JP3832821B2 - データ検索の方法、システム、およびプログラム製品 - Google Patents

データ検索の方法、システム、およびプログラム製品 Download PDF

Info

Publication number
JP3832821B2
JP3832821B2 JP2002102491A JP2002102491A JP3832821B2 JP 3832821 B2 JP3832821 B2 JP 3832821B2 JP 2002102491 A JP2002102491 A JP 2002102491A JP 2002102491 A JP2002102491 A JP 2002102491A JP 3832821 B2 JP3832821 B2 JP 3832821B2
Authority
JP
Japan
Prior art keywords
data
match
computer
fptr
fragments
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002102491A
Other languages
English (en)
Other versions
JP2002366576A (ja
Inventor
ラジェンドラ・クムラ・ベーラ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2002366576A publication Critical patent/JP2002366576A/ja
Application granted granted Critical
Publication of JP3832821B2 publication Critical patent/JP3832821B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータ環境でのデータ検索すなわち、ユーザによってコンピュータに供給された検索照会に作用し、照会に従ってデータを突き止める方法、システム、およびプログラム製品に関する。排他的ではなく、具体的には、本発明は、保管されたテキスト・ファイルのデータベース内に存在する可能性があり、ユーザが供給した検索照会に従うテキストを突き止めることに関する。
【0002】
本明細書での用語「プログラム製品」は、CD−ROMもしくは1つまたは複数のフロッピ(R)・ディスクなどの機械可読記憶媒体によって保管されるか、リモート・コンピュータ・サイトからダウンロードのために使用可能にされるコンピュータ・コードの本体を意味する。
【0003】
【従来の技術】
テキスト・ファイルのデータ・ベース内で特定の文書またはテキストのブロックを識別するか突き止めるために、特定のテキスト・ストリングを含むユーザ供給の検索要求を受け取ることができ、索引付きデータベースの階層検索を実行してデータベース内の一致するストリングを見つける方法および装置を提供することが既知である。そのような既知の方法および装置の1つが、米国特許第5781772号に開示されている。また、データベースに保管された文書が、AND、OR、およびAND NOTなどの論理演算子によってリンクされた複数のテキスト・ストリングからなる検索照会に基づいて突き止められる、ブール検索を実行するシステムが既知である。時には、たとえば、2つの特定の単語が、文書内で互いに並んでまたはお互いから指定された単語数以内に現れる場合に文書が突き止められる「near」など、特殊な論理演算子も使用可能である。
【0004】
大きいデータベースの検索の結果には、多数の、おそらくは大量の「ヒット」が含まれることが当然であり、これは、検索者が、自分が探している項目を正確に想起することができないことと、検索をさらに洗練することを可能にするある検索機能が欠けていることに起因する。また、既知のシステムは、検索照会に含まれるテキスト・ストリングを含む特定の文書を識別することができるが、見つかった各文書を検索して、テキスト・ストリングがその文書内のどこにあるかと、たとえば意味のある形で一節を識別するテキスト節に含まれるかどうかなど、テキスト・ストリングが意味のある全体になっているかどうかを識別する必要がある。
【0005】
本願の譲受人に譲渡され、参照によって本明細書に組み込まれる米国特許出願第09/574152号に、一実施形態が所定の順序でのテキスト断片を含むテキスト部分を探すことを目的とする、テキスト検索方法が開示されている。より一般的には、この方法に、データの本体(データは、テキストとすることができるが、必ずテキストであるわけではない)内に含まれることが期待される複数のデータ断片のシーケンスを受け取るステップと、データとそれぞれのデータ断片の間の一致を突き止めるためにデータの本体を検索するステップと、シーケンスの最初のデータ断片との一致のアドレスおよびシーケンス内の最後のデータ断片との一致の終端アドレスから、データの本体の部分を識別するステップが含まれる。
【0006】
上記の特許出願書に記載された方法の一実施形態では、所与の順序のテキスト断片を含む最小テキスト部分が識別される(この用語最小部分は、テキスト断片の1つの完全なシーケンスだけを含む部分を意味する。一般に、断片の少なくとも1つが、1回だけ現れるが、この部分に、1つまたは複数の断片の複数のインスタンスが含まれる可能性がある)。しかし、おそらくは、複数の所与のテキスト断片を含むが、その順序が既知でない部分について、所与のテキスト内を検索する必要がある。たとえば、見つけたいテキスト部分が、
1. The man was lurking in the dark alley.
または
2. The alley was dark. The man was lurking there.
のいずれかであることを曖昧に記憶している場合がある。
【0007】
テキスト断片"man ... lurking ... dark"を含む検索要求が、前に提案されたアルゴリズムに渡される場合には、この要求によって、第1のテキスト部分が見つかるが、第2のテキスト部分は見つからない。その一方で、検索要求がテキスト断片"dark ... man ... lurking"からなる場合には、第2のテキスト部分が見つかるが、第1のテキスト部分は見つからない。これは、前に提案されたアルゴリズムが、テキストのうち、テキスト断片が検索要求で与えられたものと同一の順序で現れる部分を探すからである。
【0008】
【発明が解決しようとする課題】
本発明の目的は、文書を識別するかテキスト・ファイルのデータベース内のテキストのブロックを突き止めるための、追加の機能性または追加の検索照会フォーマットを提供する検索アルゴリズムを使用可能にすることである。
【0009】
本発明のもう1つの目的は、検索照会によって識別されるテキストの特定のブロックをよりよく区別することができるデータ検索の装置および方法を提供することである。
【0010】
具体的には、目的は、テキスト断片を含む検索照会を処理し、これらの断片を検索照会の順序と異なる順序で含むテキスト部分を見つける、アルゴリズムを提供することである。
【0011】
【課題を解決するための手段】
本発明には、検索照会によって識別されるデータの部分を突き止めるために前記データを検索するコンピュータ方法、システム、およびプログラム製品が含まれる。本発明には、前記データ内に含まれると期待される複数のデータ断片を含む検索照会を受け取り、前記データと前記データ断片のそれぞれとの間の一致を突き止めるために前記データを検索し、前記データ断片のすべてとの一致を含む前記データの最小部分を識別する、ステップ、手段、またはプログラム部分が含まれる。
【0012】
本発明では、用語「最小部分」によって、データ断片の1つの完全な組だけを含むデータの部分を意味する。すなわち、最小部分に、その部分に複数回現れる1つまたは複数の断片が含まれる場合があるが、これらのすべてが複数回現れることはできず、データ断片の少なくとも1つが、1回だけ現れる。これをさらに説明するために、検索照会に、データ断片A、B、およびCが含まれるが、検索される所与のデータに次の断片が含まれるものとする。
ABBAACCA
【0013】
最小部分は、下線付きの部分である。すなわち、最小部分には、検索照会のデータ断片A、B、およびCのすべてが含まれるが、そのうちの少なくとも2つ、この例では2番目と最後が、1回だけ現れる。テキスト断片を含むデータの最小部分を識別することによって、意味のある形で断片に関連する部分が見つかる可能性が高まり、たとえば、断片"man"、"lurking"、および"dark"を含む照会の前の例では、最小部分が、これらの断片を含む所与の文または句になる。データの最小部分を識別するために、この「課題を解決するための手段」で前に説明したように、検索照会を受け取り、データとそれぞれのデータ断片との間の一致を突き止めるためにデータを検索した後に、本発明に、前記データ断片のすべてを含み、
前記データ断片のうちデータ内で最後に現れる1つとの最初の一致の終端位置である終了位置と、
前記データ断片のうちデータ内で最初に現れる1つとの、前記終了位置の前の最も近い一致の位置である開始位置と
の間に存在する部分を識別することを含めることができる。
【0014】
どの場合でも、データを、データの前記識別された部分の強調表示または他の形でその部分をグラフィカルに示すことを用いて表示画面に表示することができる。
【0015】
本発明のよりよい理解と、本発明を実施できる方法を示すために、例として添付図面を参照する。
【0016】
【発明の実施の形態】
本明細書で説明する方法は、下記の機能を提供することを意図されている。すなわち、テキストと、各テキスト断片が区切り記号によってテキストから分離される複数のテキスト断片を含む検索要求とを与えられるものとして、作業は、テキストの先頭から、すべてのテキスト断片を含むが、断片が検索要求に現れる順序に無関係な、テキストの最初の最小部分を見つけることである。検索は、そのようなテキストの最小部分が見つかる場合に成功とみなされる。このアルゴリズムは、特定の順序で断片を含むテキストを見つける、前述の前に提案されたアルゴリズムをも含むソフトウェアに関連して使用されることを意図され、また、そのようなソフトウェアに組み込むことができる。どの特定のアルゴリズムを使用するかを指定するために、それぞれの異なる区切り文字を、テキスト断片の間で使用することができる。たとえば、前の特許出願で開示された、順序に依存する検索について、省略記号を使用することができ(前の特許出願に開示されているように)、たとえばアンド記号などの代替分離文字を、順序に依存しない検索に使用することができる。
【0017】
テキストの最小部分には、検索テキスト断片の1つの完全な組だけが含まれる。しかし、検索要求からの、すべてではないが1つまたは複数のテキスト断片が、この部分に複数回現れる場合がある。複数のテキスト断片は、同一の内容を担わず、テキスト断片を、検索要求内の別のテキスト断片のサブストリングにすることもできない。本明細書で説明する本発明の好ましい実施形態では、テキスト断片が、互いに部分的にオーバーラップすることができるが、このオーバーラップを解決するためには、アルゴリズムに複雑さが追加される。
【0018】
検索要求に、1つのテキスト断片だけが含まれる場合には、テキストの最小部分は、単純に、所与のテキスト内のそのテキスト断片の最初のオカレンスである。
【0019】
本明細書で説明するアルゴリズムが有用になる可能性がある状況の具体的な例は、次のとおりである。
"insurgent&&&gent and &&&her cat&&& and other&&&green&&&sun"
が、検索要求であるものとする。ここには、6つのテキスト断片すなわち、"insurgent"、"gent and "、"her cat"、" and other"、"green"、および"sun"がある。テキスト断片が、3つの連続するアンド記号(本明細書で使用される区切り記号)によって区切られていることに留意されたい。テキスト断片の先頭および末尾の空白は、存在する場合に、そのテキスト断片の一部とみなされる。テキスト
"Counterinsurgent and other categories of insurgent people sat around her cat. The gent and others with him stood a little far off from this group. With the setting sun, and the lake on one side of the house, and a green pasture on the other, it was a picturesque scene."
と、上の検索要求を与えられたものとして、作業は、テキストの先頭から、検索要求を満足する「テキストの最小部分」を見つけることである。
【0020】
この例では、成功するアルゴリズムが、「テキストの最小部分」が下記であることを見つける。
" and other categories of insurgent people sat around her cat. The gent and others with him stood a little far off from this group. With the setting sun, and the lake on one side of the house, and a green"
【0021】
テキスト検索と同様に、本発明による検索の方法、システム、およびプログラムは、下記などの他の状況で使用することができる。
1.断片間の間隔が未知の状況で、DNA断片を見つけることが所望される、ゲノム内のDNAシーケンスの検索(たとえば、遺伝子と、それらにコード化された、治療的価値を有する可能性があるタンパクの探求を助けるため。DNAのコードの97%が、遺伝子ではなく、したがって、よい検索技法が真に有用になる可能性があることに留意されたい)。
2.データ・マイニングすなわち、データ・フィールドへの明示的な参照なしでのデータベース・レコードの検索。たとえば、アプリケーション・プログラムによってデータベースから照合されたテキスト・ファイルとして作成された住所のリストを使用して、その人に関する断片的な情報だけが使用可能である人を検索することができる。この場合に、データベースの構造は重要ではなく、アプリケーション・プログラムによって作成されるテキスト・ファイルが重要である。
3.ウェブ検索。ウェブ上の文書のより意味のある検索。ウェブでのキーワード検索が、非常に長い文書のリストをもたらす時に、本発明などの検索アルゴリズムによって、特に自分の専門領域の文書を検索する領域専門家によって使用される時に、関連性に関する、リストされた文書のさらなる検索を自動化することができる。
4.非常に大きいコード内のあるパターンに従うコード断片の検索。
【0022】
図1に、本発明を実施することができるコンピューティング環境の1例を示す。
【0023】
この実施形態には、いわゆる独立型のコンピュータ1すなわち、ネットワークに永久的にリンクされてはおらず、表示モニタ2、キーボード3、マイクロプロセッサ・ベースの中央処理装置4、ハード・ディスク5、およびランダム・アクセス・メモリ6を含み、これらのすべてが接続バス7によって互いに結合される、コンピュータである。キーボード3は、ユーザが、検索照会などのユーザ・データと共にコマンドをコンピュータに入力できるようにするために動作可能である。キーボード3と同様に、コンピュータには、特にコンピュータがグラフィカル・ユーザ・インターフェースを有するオペレーティング・システムによって制御される場合に、ユーザ・コマンドを入力するためのマウスまたはトラック・ボール(図示せず)を含めることができる。
【0024】
プログラム命令をコンピュータ1に導入するため、すなわち、プログラム命令をランダム・アクセス・メモリ6にロードするか、ハード・ディスク5に保管するか、その両方を行い、その結果、コンピュータが、動作を開始するか、指令された時に動作できるようにされるようにするために、本発明に従って、コンピュータ1に、CD−ROM9を受け取るCD−ROMドライブ8が含まれる。
【0025】
プログラム命令が、CD−ROM9に保管され、このCD−ROM9から、CD−ROMドライブ8によって読み取られる。しかし、当業者によってよく理解されるように、CD−ROMドライブ8によって読み取られる命令は、CD−ROM9から直接に使用可能ではなく、ランダム・アクセス・メモリ6にロードされ、ハード・ディスク5に保管され、そこからコンピュータ1によって使用される場合がある。また、命令は、CD−ROM上またはランダム・アクセス・メモリ6内の適当な伸長ソフトウェアを使用してCD−ROMから伸長される必要がある場合があり、どの場合でも、CD−ROMに保管されるシーケンスと異なるシーケンスでコンピュータ1によって受け取られ、保管される場合がある。
【0026】
CD−ROMドライブ8の他に、またはその代わりに、たとえばフロッピ(R)・ディスク・ドライブ、磁気テープ・ドライブ、または、赤外線レシーバなどの無線通信デバイス(いずれも図示せず)などの他の適当な入力手段を設けることができる。
【0027】
最後に、コンピュータ1には、電話モデム10も含まれ、この電話モデム10を介して、コンピュータが、電話回線11、インターネット・サービス・プロバイダ(ISP)の構内に配置されたモデム12、およびISPのコンピュータ13を介して、インターネットに一時的にリンク・アップすることができる。やはりインターネットに接続されるのが、コンピュータ14などの多数のリモート・コンピュータであり、これらのリモート・コンピュータから、コンピュータ1へのダウロードのために情報、ソフトウェア、および他のサービスが使用可能である。
【0028】
したがって、本発明によるプログラム製品には、コンピュータ1に発明的方法を実行させるコンピュータ・コードの本体を保管されたCD−ROMなどの記憶媒体を含めることができる。その代わりに、プログラム製品を、コンピュータ14を運営または使用する供給者によってコンピュータ14からコンピュータ1へのダウンロードのために使用可能にされるコンピュータ・コードの本体として実施することができる。ISPのコンピュータ13も、コンピュータ14と同一の形で使用することができる。
【0029】
コンピュータ1は、独立型環境にある必要はない。その代わりに、永久的に接続される他のコンピュータと共にネットワーク(図示せず)の一部を形成することができる。コンピュータ1は、いわゆるイントラネットに永久的に結合されるか、一時的リンクを有することもでき、このイントラネットは、インターネット・サイトまたはURLに類似する、インターネットと同一の形で配置されるが、たとえば特定の会社の従業員など、特定のユーザだけがアクセス可能な、データ保持サイトのグループである。電話モデム10の代わりに、コンピュータ1が、ISPのコンピュータ13へのディジタル・ハードワイヤード・リンクを有することができ、また、コンピュータ1自体に、他のリモート・ユーザのためのISPとして働くか否かに無関係に、永久的に接続されたインターネット・サイト(URL)を含めることができる。言い換えると、本発明は、ローカルのキーボード3を介してのみ使用可能であるのではなく、ISPとしてまたは単にインターネット・サイトとして働くコンピュータ1への一時的または永久的リンクを介して作業するリモート・ユーザに使用可能にすることができる。
【0030】
検索されるデータは、おそらくは長い期間にわたって、キーボード3を介してコンピュータに入力され、ハード・ディスク5または、ドライブおよび他のCD−ROMが、CD−ROMへのデータの書換が可能であると仮定してCD−ROMドライブ8に入れられた別のCD−ROM、または前述の任意選択のフロッピ(R)・ディスクまたは磁気テープ・ドライブに保管された、データとすることができる。検索されるデータは、プログラム命令と共にCD−ROM9に保管されたデータとすることもでき、また、たとえば前述のネットワークの一部を形成するファイル・サーバ(図示せず)から、または、インターネットまたは前述のイントラネット内のデータ保持サイトから入手可能なデータとすることができる。
【0031】
検索方法を、図2を参照して下で説明するが、図2の番号付きのステップは、下の説明のステップ番号に対応する。しかし、まず、検索要求内の所与のテキストおよびまたはテキスト断片を、検索を開始する前に標準形にフォーマットできることを諒解されたい。これは、図2には示されていないが、推奨される。この標準形では、たとえば、複数の連続する空白を、単一の空白によって置換することができ、ある句読点(ピリオド、コンマ、セミコロン、コロン、ハイフン、感嘆符、疑問符など)の前に空白が見つかった場合に、その空白が除去され、そのような句読点の後に空白がない場合に、空白が置かれる。この標準フォーマッティングは、たとえば、検索されるテキストが専門家によって編集されていない場合に役立つ。
【0032】
この検索方法は、上で定義したテキストの最小部分bを見つけることを意図されている。変数bstartおよびbendが、それぞれ部分bの先頭および末尾を指すのに使用される。
【0033】
このアルゴリズムを実行するコンピュータ・コードに、ブロックbの強調表示ならびにその中のテキスト断片の強調表示などの機能を組み込むことができる。
【0034】
検索作業を達成するアルゴリズムを、これから説明する。
【0035】
frag[0]、frag[1]、…、frag[n-1]が、検索要求のテキスト断片であるものとする。同一の断片がなく、別の断片のサブストリングである断片もないと仮定する。そのような断片の組について、i≠jであるものとして、frag[i]の末尾部分がfrag[j]の先頭部分とオーバーラップする場合に、frag[i]がfrag[j]にオーバーラップすると言う。上の仮定の下で、オーバーラップが、部分的になるに過ぎず、絶対に完全にならないことに留意されたい。このテキスト断片の組に対して、i、j=0、…、n−1について、下記の動作を実行する。
【0036】
ステップ1 ストリング配列変数を作成し、これをfrag[ ]と呼び、この配列に、検索要求内に現れるのと同一のシーケンスで(便宜上。どのような順序付けでも構わない)テキスト断片を書き込む。したがって、上に示した検索の例について、n=6であり、下記が得られる。
frag[0] = "insurgent"
frag[1] = "gent and "
frag[2] = "her cat"
frag[3] = " and other"
frag[4] = "green"
frag[5] = "sun"
【0037】
frag[0]がfrag[1]にオーバーラップし、frag[1]がfrag[3]にオーバーラップし、frag[3]がfrag[2]にオーバーラップすることに留意されたい。frag[i]のそれぞれについて、対応するポインタ変数fptr[i]を作成して、テキスト内で見つかったfrag[i]のインスタンスの位置に関する情報、および、このインスタンスに関するオーバーラップがあればそのオーバーラップ情報を保管する。また、対応するポインタ変数nptr[i]を作成して、テキスト内で次に見つかったfrag[i]のインスタンスの位置に関する情報を保管する。bstart=0にする。以下では、ステップ2ないし8が反復的である。
【0038】
ステップ2 frag[i]のそれぞれについて、所与のテキストの先頭からその最初のインスタンスを探し、見つかった場合に、frag[i]のインスタンスへのポインタを、文字ストリングの形でfptr[i]に保管する。この保管されたポインタを、<fptr[i]>と表す。すべてのfrag[i]のインスタンスが見つかった場合には、次のステップに進み、そうでない場合には、ステップ9に進む。
【0039】
ステップ3 iのそれぞれについて、あるfptr[j](j≠i)に保管されたアドレス(すなわち<fptr[j]>)が、<fptr[i]>と<fptr[i]> + strlen(frag[i])の間にある、すなわち<fptr[j]> > <fptr[i]>かつ<fptr[j]> < <fptr[i]> + strlen(frag[i])であるかどうかを判定する。あるjについてそうである場合に、fptr[i]に保管されたアドレスに、ストリング".<fptr[j]>,j"を付加し、その結果、fptr[i]に、修正されたストリング"<fptr[i]>.<fptr[j]>,j"が含まれるようにする。ここでは、ドットを使用して、frag[i]のこのインスタンスについて、frag[i]が終わる前にfrag[j]が始まることを示し、",j"を使用して、後の参照のためにインデックスjを保管することに留意されたい。また、frag[j]が、たとえばもう1つの断片frag[k]とオーバーラップする場合に、この事実が、fptr[j]が検査される時に明らかになることに留意されたい。したがって、そのような性質の複数のオーバーラップを、互いに連鎖し、追跡することができる。最後に、少なくとも1つのfptr[i]が、ドット付き拡張を有しない、たとえば、最上位アドレスを有するfptr[i]が、ドット付き拡張を有しないことに留意されたい。
【0040】
ステップ4 fptr[i]のどれもが、ステップ3でドット付きにならなかった場合には、現在の反復を終え、bstart = min(fptr[ ])、およびbend = lptr + strlen(lptr) - 1、ただしlptr = max(fptr[ ])を計算し、ステップ8に進む。そうでない場合には、次のステップに進む。
【0041】
ステップ5 iのそれぞれについて、frag[i]の次のインスタンスを検索し、見つかった場合に、そのポインタをnptr[i]に保管する。見つからない場合には、ヌル・ポインタをnptr[i]に保管する。
【0042】
ステップ6 ドット付き拡張、たとえばfptr[j]を有するfptr[i]について(すなわち、<fptr[i]>.<fptr[j]>,jの形を有する)、fptr[j]、nptr[i]、およびnptr[j]を調べ、適用可能な下記のサブステップ(a)ないし(f)に進む。ドット付き拡張を有するfptr[i]がなくなるまでこのステップを繰り返し、その後、ステップ7に進む。
(a)fptr[j]がドット付き拡張を有しておらず、かつ、nptr[i]およびnptr[j]の両方にヌル・ポインタが含まれる場合には、ステップ9に進む。
(b)fptr[j]がドット付き拡張を有しておらず、かつ、nptr[i]にヌル・ポインタが含まれるが、nptr[j]にヌル・ポインタが含まれない場合には、fptr[i]の内容からドット付き拡張を削除し(すなわち、サブストリング".<frag[j]>,j"を除去し)、fptr[j]の内容をnptr[j]の内容に置換する。
(c)fptr[j]がドット付き拡張を有しておらず、かつ、nptr[i]にヌル・ポインタが含まれないが、nptr[j]にヌル・ポインタが含まれる場合には、fptr[i]の内容をnptr[i]の内容に置換する。
(d)fptr[j]がドット付き拡張を有しておらず、かつ、<nptr[i]> < <nptr[j]>である場合には、fptr[ ]内で"<fptr[k]>.<fptr[i]>,i"を検索し(存在するとしても1つだけである)、見つかった場合には、"<fptr[k]>.<fptr[i]>,i"を"<fptr[k]>"に置換する。"<fptr[i]>.<fptr[j]>,i"を"<nptr[i]>"に置換する。
(e)fptr[j]がドット付き拡張を有しておらず、かつ、<nptr[i]> > <nptr[j]>である場合には、fptr[i]の内容からドット付き拡張を削除し(すなわち、サブストリング".<frag[j]>,j"を除去し)、fptr[j]の内容をnptr[j]の内容に置換する。
(f)fptr[j]がドット付き拡張を有する場合には、ドット付き拡張のないfptr[l]が見つかるまでチェーンをたどる(そのようなものが1つある)。fptr[l]への上向きリンクがfptr[k]である(すなわち、fptr[k]の内容が、<fptr[k]>.<fptr[l]>,lである)ものとする。fptr[k]をfptr[i]として扱い、fptr[l]をfptr[j]として扱い、上のステップ6(a)からもう一度開始する。
【0043】
ステップ7 ステップ3に進む。
【0044】
ステップ8 ステップ2に進み、テキストを、ポインタbstart + 1から始まり、ポインタbendで終わる文字シーケンスとして再定義して、次の反復を開始する。このステップで、検索要求内のテキスト断片のすべての少なくとも1つのインスタンスを含むテキスト・ブロックを有することに留意されたい。反復では、検索要求の条件に違反しない、bstartの最も高い値を探すことによって、このブロックのサイズを圧縮するという作業を行う。
【0045】
ステップ9 bstart = 0の場合には、検索を不成功としてマークし、そうでない場合には成功としてマークする。成功の場合に、見つかったテキストbは、bstartから始まり、bendで終わる。bが、前の反復の所与のテキストであることに留意されたい。
【0046】
説明した方法へのさらなる洞察を与えるために、所与のテキストが下記である例(前に説明した)にこの方法を適用する。
"Counterinsurgent and other categories of insurgent people sat around her cat. The gent and others with him stood a little far off from this group. With the setting sun, and the lake on one side of the house, and a green pasture on the other, it was a picturesque scene."
【0047】
所与のテキストは(メモリに保管される時にメモリ・アドレス1000から始まると仮定)され、検索要求は次の通りである。
"insurgent&&&gent and &&&her cat&&& and other&&&green&&&sun"
【0048】
最初の反復
ステップ1 n=6であり、テキスト断片は次の通りである。
frag[0] = "insurgent"
frag[1] = "gent and "
frag[2] = "her cat"
frag[3] = " and other"
frag[4] = "green"
frag[5] = "sun"
frag[0]がfrag[1]にオーバーラップし、frag[1]がfrag[3]にオーバーラップし、frag[3]がfrag[2]にオーバーラップすることに留意されたい。配列fptr[i]およびnptr[i]を作成する。bstart = 0にする。最初の反復を開始する。
【0049】
ステップ2 テキスト断片の最初のインスタンスへのポインタを、それぞれのfptr[ ]に保管する。すなわち、
fptr[0] = "1007"
fptr[1] = "1012"
fptr[2] = "1023"
fptr[3] = "1016"
fptr[4] = "1214"
fptr[5] = "1164"
ただし、所与のテキストが、アドレス1000から始まると仮定されている。すべてのfptr[ ]が取り込まれたので、次のステップに進む。
【0050】
ステップ3 オーバーラップについて検索した後に、fptr[ ]の内容が次のように修正される。
fptr[0] = "1007.1012,1"
fptr[1] = "1012.1016,3"
fptr[2] = "1023"
fptr[3] = "1016.1023,2"
fptr[4] = "1214"
fptr[5] = "1164"
【0051】
ステップ4 fptr[ ]のいくつかにドット付き項目があるので、次のステップに進む。
【0052】
ステップ5 nptr[ ]の項目は次の通りである。
nptr[0] = "1041"
nptr[1] = "1082"
nptr[2] = "1069"
nptr[3] = "1086"
nptr[4] = ""
nptr[5] = ""
【0053】
ステップ6 fptr[0]を検査する時に、サブステップ6(f)で設定された条件が当てはまることがわかる。したがって、fptr[0]からfptr[1]に進み、その後fptr[3]に進み、最後にfptr[2]に進む。fptr[2] = "1023"への上向きリンクは、fptr[3] = "1016.1023,2"である。fptr[i] = fptr[3]かつfptr[j] = fptr[2]として、サブステップ6(a)に進む。サブステップ6(a)ないし6(d)は当てはまらない。fptr[2]がドット付き拡張を有しておらず、<nptr[3]>が<nptr[2]>より大きいので、サブステップ6(e)が当てはまる。したがって、fptr[3]の内容からドット付き拡張を削除し、"1016"が残され、fptr[2]の内容が、nptr[2]の内容に置換される。更新されたfptr[ ]の内容は、次の通りである。
fptr[0] = "1007.1012,1"
fptr[1] = "1012.1016,3"
fptr[2] = "1069"
fptr[3] = "1016"
fptr[4] = "1214"
fptr[5] = "1164"
サブステップ6(f)は当てはまらない。まだドット付き拡張を有するfptr[ ]があるので、ステップ6を繰り返す。
【0054】
ステップ6(繰返し) fptr[0]を検査する時に、サブステップ6(f)が当てはまることがわかる。fptr[0]からfptr[1]に進み、最後にfptr[3]に進む。fptr[3] = "1016"への上向きリンクは、fptr[1] = "1012.1016,3"である。fptr[i] = fptr[1]かつfptr[j] = fptr[3]として、サブステップ6(a)に進む。サブステップ6(a)ないし6(c)は当てはまらない。fptr[3]がドット付き拡張を有しておらず、<nptr[1]>が<nptr[3]>より小さいので、サブステップ6(d)が当てはまる。fptr[l]がドット付き拡張であるfptr[k](k = 0)があるので、ドット付き拡張をfptr[0]の内容から削除し、fptr[1]の内容を、nptr[1]の内容に置換する。fptr[ ]の更新された内容は、次のようになる。
fptr[0] = "1007"
fptr[1] = "1082"
fptr[2] = "1069"
fptr[3] = "1016"
fptr[4] = "1214"
fptr[5] = "1164"
サブステップ6(e)および6(f)で設定された条件は当てはまらない。fptr[ ]は、ドット付き拡張を有する要素を有しないので、ステップ7に進み、これによって、この方法が、もう1つの検索反復のためにステップ3に向けられる。
【0055】
ステップ3 fptr[ ]にオーバーラップがないので、この方法は、ステップ4に進み、bstart = 1007およびbend = 1214 + strlen(frag[4]) - 1 = 1214 + 5 - 1 = 1218を計算する。bstartおよびbendによって挟まれるテキストの部分は次のとおりである。
"insurgent and other categories of insurgent people sat around her cat. The gent and others with him stood a little far off from this group. With the setting sun, and the lake on one side of the house, and a green"
この方法は、ステップ8を介してステップ2に進み、所与のテキストが、bstart + 1およびbendによって挟まれる、すなわち、所与のテキストが、次のようになる。
"nsurgent and other categories of insurgent people sat around her cat. The gent and others with him stood a little far off from this group. With the setting sun, and the lake on one side of the house, and a green"
【0056】
2回目の反復
ステップ2 これによって下記が作られる。
fptr[0] = "1041"
fptr[1] = "1012"
fptr[2] = "1023"
fptr[3] = "1016"
fptr[4] = "1214"
fptr[5] = "1164"
【0057】
ステップ3 オーバーラップの検索によって、fptr[ ]が次のように修正される。
fptr[0] = "1041"
fptr[1] = "1012.1016,3"
fptr[2] = "1023"
fptr[3] = "1016.1023,2"
fptr[4] = "1214"
fptr[5] = "1164"
【0058】
ステップ4 fptr[ ]のいくつかにドット付き項目があるので、次のステップに進む。
【0059】
ステップ5 nptr[ ]の項目が次のようになる。
nptr[0] = ""
nptr[1] = "1082"
nptr[2] = "1069"
nptr[3] = "1086"
nptr[4] = ""
nptr[5] = ""
【0060】
ステップ6 fptr[1]を検査する時に、6(f)が当てはまることがわかる。fptr[1]からfptr[3]に進み、最後にfptr[2]に進む。fptr[2] = "1023"への上向きリンクは、fptr[3] = "1016.1023,2"である。fptr[i] = fptr[3]かつfptr[j] = fptr[2]として、ステップ6(a)に進む。ステップ6(a)ないし6(d)は当てはまらない。fptr[2]がドット付き拡張を有しておらず、<nptr[3]>が<nptr[2]>より大きいので、ステップ6(e)が当てはまる。したがって、fptr[3]の内容からドット付き拡張を削除し、"1016"が残され、fptr[2]の内容をnptr[2]の内容に置換する。fptr[ ]の更新された内容は、次のようになる。
fptr[0] = "1041"
fptr[1] = "1012.1016,3"
fptr[2] = "1069"
fptr[3] = "1016"
fptr[4] = "1214"
fptr[5] = "1164"
ステップ6(f)が当てはまらないことがわかる。ドット付き拡張を有するfptr[ ]がまだあるので、ステップ6を繰り返す。
【0061】
ステップ6(繰返し) fptr[1]を検査する時に、fptr[3]がドット付き拡張を有しておらず、<nptr[1]>が<nptr[3]>より小さいので、ステップ6(d)が当てはまることがわかる。fptr[1]がそのドット付き拡張であるfptr[k]がないので、fptr[1]の内容をnptr[1]の内容に置換する。fptr[ ]の更新された内容は、次のようになる。
fptr[0] = "1041"
fptr[1] = "1082"
fptr[2] = "1069"
fptr[3] = "1016"
fptr[4] = "1214"
fptr[5] = "1164"
ステップ6(e)および6(f)が当てはまらないことがわかる。fptr[ ]は、ドット付き拡張を有する要素を有しないので、ステップ7に進み、これによって、もう1つの検索反復のためにステップ3に進む。
【0062】
ステップ3 fptr[ ]内でオーバーラップが見つからなかった。ステップ4に進む。
【0063】
ステップ4 bstart = 1016およびbend = 1214 + strlen(frag[4]) - 1 = 1214 + 5 - 1 = 1218を計算する。bstartおよびbendによって挟まれるテキストの部分は、次のようになる。
" and other categories of insurgent people sat around her cat. The gent and others with him stood a little far off from this group. With the setting sun, and the lake on one side of the house, and a green"
ステップ8に進み、そこからステップ2に進んで、所与のテキストが、bstart + 1およびbendによって挟まれる、すなわち、所与のテキストが次のようになる。
"and other categories of insurgent people sat around her cat. The gent and others with him stood a little far off from this group. With the setting sun, and the lake on one side of the house, and a green"
【0064】
3回目の反復
ステップ2 これによって下記が作られる。
fptr[0] = "1041"
fptr[1] = "1082"
fptr[2] = "1023"
fptr[3] = "1086"
fptr[4] = "1214"
fptr[5] = "1164"
【0065】
ステップ3 オーバーラップの検索によって、fptr[ ]が次のように修正される。
fptr[0] = "1041"
fptr[1] = "1082.1086,3"
fptr[2] = "1023"
fptr[3] = "1086"
fptr[4] = "1214"
fptr[5] = "1164"
【0066】
ステップ4 fptr[ ]のいくつかにドット付き項目があるので、次のステップに進む。
【0067】
ステップ5 nptr[ ]の項目が次のようになる。
nptr[0] = ""
nptr[1] = ""
nptr[2] = "1069"
nptr[3] = ""
nptr[4] = ""
nptr[5] = ""
【0068】
ステップ6 fptr[1]を検査する時に、6(a)が当てはまることがわかる。したがって、ステップ9に進む。
【0069】
ステップ9 bstart≠0なので、検索が成功した。すなわち、前の反復のテキストが、所望のbである。
【0070】
本発明の特定の好ましい実施形態を図示し、本明細書で説明してきたが、当業者が、実施形態を修正でき、そのような修正形態および開発が、記載されたまたは請求された発明の範囲内であることを理解されたい。
【0071】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0072】
(1)コンピュータ環境において、検索照会によって識別されるデータの部分を突き止めるために前記データを検索する方法であって、
前記データ内に含まれると期待される複数のデータ断片を含む検索照会を受け取るステップと、
前記データと前記データ断片のそれぞれとの間の一致を突き止めるために前記データを検索するステップと、
前記データ断片のすべてとの一致を含む前記データの最小部分を識別するステップと
を含む方法。
(2)前記データ断片のうち前記データ内に最後に現れるものとの最初の一致の位置である終了位置と、
前記データ断片のうち前記データ内に最初に現れるものとの、前記終了位置の前の最も近い一致の位置である開始位置と
の間に存在する、前記データ断片のすべてを含む前記データの部分を識別するステップを含む、上記(1)に記載の方法。
(3)(i)コンピュータ・メモリ内で前記データを受け取るステップと、
(ii)複数のデータ断片を含む検索照会を受け取るステップと、
(iii)前記データと前記データ断片のそれぞれとの間の一致を突き止めるために前記データを検索するステップと、
(iv)前記一致のメモリ・アドレスを記録するステップと、
(v)一致のそれぞれについて、他の一致との部分的オーバーラップのすべてを識別するステップと、
(vi)そのような部分的オーバーラップのそれぞれについて、他の一致とオーバーラップしない新しい一致を探すために、前記データを検索するステップと、
(vii)前記データの、最初のオーバーラップしない一致の位置から最後のオーバーラップしない一致の位置までの部分を識別するステップと
を含む、上記(1)に記載の方法。
(4)(i)前記データ断片をコンピュータ・メモリ内でストリング変数として保管するステップと、
(ii)前記データと各データ断片との間の最初の一致を突き止め、各データ断片について、その最初の一致の位置をそれぞれのポインタ変数として保管するために、前記データを検索するステップと、
(iii)前記ポインタ変数および前記データ断片のストリング長さへの参照によって、前記一致の間の部分的オーバーラップのすべてを判定するステップと、
(iv)そのような部分的オーバーラップのすべてについて、関連するデータ断片との次の一致を突き止め、その次の一致の位置をそれぞれのさらなるポインタ変数に保管するために、前記データを検索するステップと、
(v)前記ポインタ変数を参照することによって、前記一致の間の残りの部分的オーバーラップのすべてを判定し、前記データ断片のすべてを、その間のオーバーラップなしに含む前記データの部分が識別されるまで、ステップ(iv)を繰り返すステップと
を含む、上記(1)に記載の方法。
(5)前記データを表示画面に表示し、データの前記識別された部分を強調表示するステップを含む、上記(1)に記載の方法。
(6)検索照会によって識別されるデータの部分を突き止めるために前記データを検索するシステムであって、
複数のデータ断片を含む検索照会を受け取る入力手段と、
検索されるデータを供給するデータ供給手段と、
前記入力手段および前記データ供給手段に接続され、前記データと前記データ断片のそれぞれとの間の一致を突き止めるために、前記データ供給手段によって使用可能にされるデータを検索するように動作可能である制御手段と、前記データ断片のすべてとの一致を含む前記データの最小部分を識別する情報を登録する手段と
を含むシステム。
(7)ユーザが供給する検索照会によって識別されるデータの部分を突き止めるために前記データを検索するようにコンピュータを動作可能にするコンピュータ・コードの本体を含むコンピュータ・プログラム製品であって、
前記コンピュータが複数のデータ断片を含む検索照会を受け取ることを可能にするコンピュータ・コード部分と、
前記コンピュータに、前記データと前記データ断片のそれぞれとの間の一致を突き止めるために前記データを検索するように指令するコンピュータ・コード部分と、
前記コンピュータに、前記データ断片のすべてとの一致を含む前記データの最小部分を識別させるコンピュータ・コード部分と
を含むコンピュータ・プログラム製品。
【図面の簡単な説明】
【図1】コンピューティング環境のブロック図である。
【図2】データ検索処理を示す流れ図である。
【符号の説明】
1 コンピュータ
2 表示モニタ
3 キーボード
4 中央処理装置
5 ハード・ディスク
6 ランダム・アクセス・メモリ
7 接続バス
8 CD−ROMドライブ
9 CD−ROM
10 電話モデム
11 電話回線
12 モデム
13 コンピュータ
14 コンピュータ

Claims (7)

  1. コンピュータ・システムを用いて、検索照会によってデータを検索する方法であって、
    コンピュータ・メモリ内で前記データを受け取るステップと、
    前記データ内に含まれると期待される複数のデータ断片を含む検索照会をコンピュータ・メモリ内で受け取るステップと、
    前記データと前記データ断片のそれぞれとの間の一致を突き止めるために前記データを中央処理装置が検索するステップと、
    前記データ断片のすべてとの一致を含む前記データの最小部分を前記中央処理装置が識別するステップと
    を含み、
    前記データと前記データ断片のそれぞれとの間の一致を突き止めるために前記データを検索するステップと、
    前記一致のメモリ・アドレスを記録するステップと、
    一致のそれぞれについて、他の一致との部分的オーバーラップのすべてを識別するステップと、
    そのような部分的オーバーラップのそれぞれについて、他の一致とオーバーラップしない新しい一致を探すために、前記データを検索するステップと、
    前記データの、最初のオーバーラップしない一致の位置から最後のオーバーラップしない一致の位置までの部分を識別するステップと
    を含む、方法。
  2. コンピュータ・システムを用いて、検索照会によってデータを検索する方法であって、
    前記データ内に含まれると期待される複数のデータ断片を含む検索照会をコンピュータ・メモリ内で受け取るステップと、
    前記データと前記データ断片のそれぞれとの間の一致を突き止めるために前記データを中央処理装置が検索するステップと、
    前記データ断片のすべてとの一致を含む前記データの最小部分を前記中央処理装置が識別するステップと
    を含み、
    (i)前記データ断片をコンピュータ・メモリ内でストリング変数として保管するステップと、
    (ii)前記データと各データ断片との間の最初の一致を突き止め、各データ断片について、その最初の一致の位置をそれぞれのポインタ変数として保管するために、前記データを検索するステップと、
    (iii)前記ポインタ変数および前記データ断片のストリング長さへの参照によって、前記一致の間の部分的オーバーラップのすべてを判定するステップと、
    (iv)そのような部分的オーバーラップのすべてについて、関連するデータ断片との次の一致を突き止め、その次の一致の位置をそれぞれのさらなるポインタ変数に保管するために、前記データを検索するステップと、
    (v)前記ポインタ変数を参照することによって、前記一致の間の残りの部分的オーバーラップのすべてを判定し、前記データ断片のすべてを、その間のオーバーラップなしに含む前記データの部分が識別されるまで、ステップ(iv)を繰り返すステップと
    を含む、方法。
  3. 前記データを表示モニタに表示し、データの前記識別された部分を前記表示モニタにおいて強調表示するステップを含む、請求項1又は2に記載の方法。
  4. 検索照会によって識別されるデータの部分を突き止めるために前記データを検索するコンピュータ・システムであって、
    コンピュータ・メモリ内で前記データを受け取る受け取り手段と、
    複数のデータ断片を含む検索照会をコンピュータ・メモリにおいて受け取る入力手段と、
    検索されるデータをハードディスク、記憶媒体、またはインターネット経由にて供給するデータ供給手段と、
    前記入力手段および前記データ供給手段に接続され、前記データと前記データ断片のそれぞれとの間の一致を突き止めるために、前記データ供給手段によって使用可能にされるデータを中央処理装置に検索するように動作可能である制御手段と、
    前記データ断片のすべてとの一致を含む前記データの最小部分を識別する情報を登録する手段と
    を含み、
    前記データと前記データ断片のそれぞれとの間の一致を突き止めるために前記データを検索する検索手段と、
    前記一致のメモリ・アドレスを記録する記録手段と、
    一致のそれぞれについて、他の一致との部分的オーバーラップのすべてを識別する識別手段と、
    そのような部分的オーバーラップのそれぞれについて、他の一致とオーバーラップしない新しい一致を探すために、前記データを検索する検索手段と、
    前記データの、最初のオーバーラップしない一致の位置から最後のオーバーラップしない一致の位置までの部分を識別する識別手段と
    を含む、コンピュータ・システム。
  5. 検索照会によって識別されるデータの部分を突き止めるために前記データを検索するコンピュータ・システムであって、
    複数のデータ断片を含む検索照会をコンピュータ・メモリにおいて受け取る入力手段と、
    検索されるデータをハードディスク、記憶媒体、またはインターネット経由にて供給するデータ供給手段と、
    前記入力手段および前記データ供給手段に接続され、前記データと前記データ断片のそれぞれとの間の一致を突き止めるために、前記データ供給手段によって使用可能にされるデータを中央処理装置に検索するように動作可能である制御手段と、
    前記データ断片のすべてとの一致を含む前記データの最小部分を識別する情報を登録する手段と
    を含み、
    (i)前記データ断片をコンピュータ・メモリ内でストリング変数として保管する保管手段と、
    (ii)前記データと各データ断片との間の最初の一致を突き止め、各データ断片について、その最初の一致の位置をそれぞれのポインタ変数として保管するために、前記データを検索する検索手段と、
    (iii)前記ポインタ変数および前記データ断片のストリング長さへの参照によって、前記一致の間の部分的オーバーラップのすべてを判定する判定手段と、
    (iv)そのような部分的オーバーラップのすべてについて、関連するデータ断片との次の一致を突き止め、その次の一致の位置をそれぞれのさらなるポインタ変数に保管するために、前記データを検索する検索手段と、
    (v)前記ポインタ変数を参照することによって、前記一致の間の残りの部分的オーバーラップのすべてを判定し、前記データ断片のすべてを、その間のオーバーラップなしに含む前記データの部分が識別されるまで、ステップ(iv)を繰り返す繰り返し手段と
    を含む、コンピュータ・システム。
  6. 検索照会によって識別されるデータの部分を突き止めるために前記データを検索するよ うにコンピュータ・システムを動作可能にするコンピュータ記憶媒体を含むコンピュータ・プログラムであって、
    コンピュータ・メモリ内で前記データを受け取ることを可能にするコンピュータ・コード部分と、
    中央処理装置が複数のデータ断片を含む検索照会をコンピュータ・メモリにおいて受け取ることを可能にするコンピュータ・コード部分と、
    前記中央処理装置に、前記データと前記データ断片のそれぞれとの間の一致を突き止めるために前記データを検索するように指令するコンピュータ・コード部分と、
    前記中央処理装置に、前記前記データの最小部分を識別させるコンピュータ・コード部分と
    を含み、
    前記データと前記データ断片のそれぞれとの間の一致を突き止めるために前記データを検索するコンピュータ・コード部分と、
    前記一致のメモリ・アドレスを記録するコンピュータ・コード部分と、
    一致のそれぞれについて、他の一致との部分的オーバーラップのすべてを識別するコンピュータ・コード部分と、
    そのような部分的オーバーラップのそれぞれについて、他の一致とオーバーラップしない新しい一致を探すために、前記データを検索するコンピュータ・コード部分と、
    前記データの、最初のオーバーラップしない一致の位置から最後のオーバーラップしない一致の位置までの部分を識別するコンピュータ・コード部分と
    を含む、コンピュータ・プログラム。
  7. 検索照会によって識別されるデータの部分を突き止めるために前記データを検索するようにコンピュータ・システムを動作可能にするコンピュータ記憶媒体を含むコンピュータ・プログラムであって、
    中央処理装置が複数のデータ断片を含む検索照会をコンピュータ・メモリにおいて受け取ることを可能にするコンピュータ・コード部分と、
    前記中央処理装置に、前記データと前記データ断片のそれぞれとの間の一致を突き止めるために前記データを検索するように指令するコンピュータ・コード部分と、
    前記中央処理装置に、前記前記データの最小部分を識別させるコンピュータ・コード部分と
    を含み、
    (i)前記データ断片をコンピュータ・メモリ内でストリング変数として保管するコンピュータ・コード部分と、
    (ii)前記データと各データ断片との間の最初の一致を突き止め、各データ断片について、その最初の一致の位置をそれぞれのポインタ変数として保管するために、前記データを検索するコンピュータ・コード部分と、
    (iii)前記ポインタ変数および前記データ断片のストリング長さへの参照によって、前記一致の間の部分的オーバーラップのすべてを判定するコンピュータ・コード部分と、
    (iv)そのような部分的オーバーラップのすべてについて、関連するデータ断片との次の一致を突き止め、その次の一致の位置をそれぞれのさらなるポインタ変数に保管するために、前記データを検索するコンピュータ・コード部分と、
    (v)前記ポインタ変数を参照することによって、前記一致の間の残りの部分的オーバーラップのすべてを判定し、前記データ断片のすべてを、その間のオーバーラップなしに含む前記データの部分が識別されるまで、ステップ(iv)を繰り返すコンピュータ・コード部分と
    を含む、コンピュータ・プログラム。
JP2002102491A 2001-04-05 2002-04-04 データ検索の方法、システム、およびプログラム製品 Expired - Fee Related JP3832821B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/826710 2001-04-05
US09/826,710 US6963865B2 (en) 2001-04-05 2001-04-05 Method system and program product for data searching

Publications (2)

Publication Number Publication Date
JP2002366576A JP2002366576A (ja) 2002-12-20
JP3832821B2 true JP3832821B2 (ja) 2006-10-11

Family

ID=25247313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002102491A Expired - Fee Related JP3832821B2 (ja) 2001-04-05 2002-04-04 データ検索の方法、システム、およびプログラム製品

Country Status (2)

Country Link
US (1) US6963865B2 (ja)
JP (1) JP3832821B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205463A1 (en) * 2002-01-22 2004-10-14 Darbie William P. Apparatus, program, and method for summarizing textual data
US7010522B1 (en) * 2002-06-17 2006-03-07 At&T Corp. Method of performing approximate substring indexing
US20070178049A1 (en) * 2005-12-20 2007-08-02 Verus Pharmaceuticals, Inc. Systems and methods for the delivery of corticosteroids having an enhanced pharmacokinetic profile
US7672982B2 (en) * 2007-01-18 2010-03-02 Raxco Software, Inc. Systems, methods, and computer-usable medium for defragmenting a windows NT file system volume
US9087427B2 (en) * 2007-09-27 2015-07-21 Wayne Fueling Systems Llc Conducting fuel dispensing transactions
WO2011137368A2 (en) 2010-04-30 2011-11-03 Life Technologies Corporation Systems and methods for analyzing nucleic acid sequences
US9268903B2 (en) 2010-07-06 2016-02-23 Life Technologies Corporation Systems and methods for sequence data alignment quality assessment

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3099298B2 (ja) * 1991-03-20 2000-10-16 株式会社日立製作所 文書検索方法および装置
US5694593A (en) * 1994-10-05 1997-12-02 Northeastern University Distributed computer database system and method
JP3752698B2 (ja) * 1994-11-21 2006-03-08 カシオ計算機株式会社 文書処理装置
JPH08212230A (ja) * 1995-01-31 1996-08-20 Toshiba Corp 文書検索方法及び文書検索装置
JPH08255172A (ja) * 1995-03-16 1996-10-01 Toshiba Corp 文書検索システム
JP3606401B2 (ja) * 1995-11-30 2005-01-05 富士通株式会社 文書検索装置および方法
GB9605473D0 (en) * 1996-03-15 1996-05-15 Int Computers Ltd Parallel searching technique
JPH10340271A (ja) * 1997-06-09 1998-12-22 Fuji Xerox Co Ltd 文書抄録作成装置及び文書抄録作成プログラムを記録した記憶媒体
JP3832693B2 (ja) * 1997-07-01 2006-10-11 株式会社日立製作所 構造化文書検索表示方法及び装置
US6493709B1 (en) * 1998-07-31 2002-12-10 The Regents Of The University Of California Method and apparatus for digitally shredding similar documents within large document sets in a data processing environment

Also Published As

Publication number Publication date
JP2002366576A (ja) 2002-12-20
US20020147705A1 (en) 2002-10-10
US6963865B2 (en) 2005-11-08

Similar Documents

Publication Publication Date Title
US7085761B2 (en) Program for changing search results rank, recording medium for recording such a program, and content search processing method
US5404507A (en) Apparatus and method for finding records in a database by formulating a query using equivalent terms which correspond to terms in the input query
US8706854B2 (en) System and method for organizing, managing and running enterprise-wide scans
JP3664874B2 (ja) 文書検索装置
US8583808B1 (en) Automatic generation of rewrite rules for URLs
Krishnan et al. Estimating alphanumeric selectivity in the presence of wildcards
US20030069882A1 (en) Context sensitive method for data retrieval from databases
US20130166562A1 (en) Renaming Multiple Files
US7636732B1 (en) Adaptive meta-tagging of websites
US8423885B1 (en) Updating search engine document index based on calculated age of changed portions in a document
JP2004326216A (ja) 文書検索装置、方法、プログラム、及び記録媒体
CN101310277B (zh) 获得文本的表示的方法和系统
JP3832821B2 (ja) データ検索の方法、システム、およびプログラム製品
US20050188259A1 (en) Patch application that enables the identification of patches for installation on a computer system in a reactive manner
JP2008198237A (ja) 構造化文書管理システム
US10255362B2 (en) Method for performing a search, and computer program product and user interface for same
KR100551954B1 (ko) 유전자 온톨로지를 이용한 단백질 상호작용 네트워크 검색시스템 및 방법
US8738601B2 (en) String searches in a computer database
CN112131455B (zh) 列表页检索降级方法、装置、电子设备和存储介质
JP2006106907A (ja) 構造化文書管理システム、索引構築方法及びプログラム
JP4160627B2 (ja) 構造化文書管理システム及びプログラム
CN111104491A (zh) 一种级联式病况询问程序设计方法
JP2006072628A (ja) 情報抽出装置
JP2008198235A (ja) 構造化文書管理システム
JPH1091493A (ja) データベースの構築方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050308

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050601

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051128

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051128

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20051128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060407

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060407

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060607

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060607

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060707

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20060707

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060714

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100728

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees