JP2014041615A - コプロセッサを使った高性能のデータメタタグ付けおよびデータ索引付けの方法およびシステム - Google Patents

コプロセッサを使った高性能のデータメタタグ付けおよびデータ索引付けの方法およびシステム Download PDF

Info

Publication number
JP2014041615A
JP2014041615A JP2013172294A JP2013172294A JP2014041615A JP 2014041615 A JP2014041615 A JP 2014041615A JP 2013172294 A JP2013172294 A JP 2013172294A JP 2013172294 A JP2013172294 A JP 2013172294A JP 2014041615 A JP2014041615 A JP 2014041615A
Authority
JP
Japan
Prior art keywords
data
metadata
flowing
generated
coprocessor
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.)
Granted
Application number
JP2013172294A
Other languages
English (en)
Other versions
JP5746286B2 (ja
Inventor
S Indeck Ronald
ロナルド・エス・インデツク
Singla Naveen
ナビーン・シングラ
E Taylor David
デイビツド・イー・テイラー
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.)
IP Reservoir LLC
Original Assignee
IP Reservoir LLC
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 IP Reservoir LLC filed Critical IP Reservoir LLC
Publication of JP2014041615A publication Critical patent/JP2014041615A/ja
Application granted granted Critical
Publication of JP5746286B2 publication Critical patent/JP5746286B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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

Landscapes

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

Abstract

【課題】従来の索引付け技法は、比較的小規模なデータセットでさえも効果的に索引付けするのに何日もかかることがある。データの大部分を効率よく管理し、探索するための有効な手段を提供する。
【解決手段】データのメタデータの生成をハードウェアアクセラレートする技法を開示する。このデータは、構造化データおよび/または非構造化データを含んでもよい。このメタデータから、ロバストで、高性能なデータ探索および解析を可能にする豊富な索引を生成することができる。データがコプロセッサに流され、索引用のメタデータがバス帯域幅速度で生成され、それによって索引付け待ち時間の劇的な改善がもたらされる。このような待ち時間の改善により、(すべてではないにせよ)はるかに大量の企業体データを効率よく、効果的に索引付けすることができる。
【選択図】図2a

Description

(関連出願の相互参照および優先権主張)
本出願は、参照によりその開示全体が本明細書に組み込まれる、2006年11月13日に出願された、米国仮特許出願第60/865629号の優先権を主張するものである。
本出願は、参照によりその開示全体が本明細書に組み込まれる、「Method and System for High Performance Integration,Processing and Searching of Structured and Unstructured Data Using Coprocessors」という名称の、本出願と同日に出願された、米国特許出願第11/938,709号に関連するものである。
本発明は、一般に、メタデータ生成およびデータ索引付けの分野を対象とし、詳細には、高速データストリームの索引付けを対象とする。
(用語)
以下の各項に、本明細書で使用する様々な用語のいくつかの定義を示す。また以下の項には、これらの用語に関連する背景情報も示す。
GPP:本明細書で使用する場合、「汎用プロセッサ」(またはGPP)という用語は、固定された形態を有し、その機能が可変であり、この可変機能が、命令を取り出し、その命令を実行することによって定義されるハードウェア装置(例えば、IntelのXeonプロセッサやAMDのOpteronプロセッサなど)をいい、従来の中央処理装置(CPU)がその一般的な例である。
再構成可能論理:本明細書で使用する場合、「再構成可能論理」という用語は、その形態および機能を、製造後に現場で大幅に変更(すなわち再構成)することのできる任意の論理技術をいう。これはGPPと対比されるものであり、GPPの機能は製造後に変化し得るが、その形態は製造時に固定されている。
ソフトウェア:本明細書で使用する場合、「ソフトウェア」という用語は、GPPまたは他の処理装置上で展開されるデータ処理機能をいい、ソフトウェアは、ソフトウェアがロードされる装置の形態を変更し、または定義するのに使用することはできない。
ファームウェア:本明細書で使用する場合、「ファームウェア」という用語は、再構成可能論理または他の処理装置上で展開されるデータ処理機能をいい、ファームウェアは、ファームウェアがロードされる装置の形態を変更し、または定義するのに使用され得る。
コプロセッサ:本明細書で使用する場合、「コプロセッサ」という用語は、主プロセッサを有する計算処理システムにおいて、他の構成要素と連携して動作するように設計された計算エンジンをいう(マルチコアプロセッサアーキテクチャの場合のように、主プロセッサ自体が複数のプロセッサを備えてもよい)。典型的には、コプロセッサは、特定のタスク集合を実行するように最適化され、システム性能を最適化するために(典型的にはGPPである)主プロセッサのタスクを軽減するのに使用される。コプロセッサによって実行されるタスクの範囲は、コプロセッサのアーキテクチャに応じて、固定とすることも、可変とすることもできる。固定式コプロセッサアーキテクチャの例には、広範囲のタスクを実行するグラフィックスプロセッサユニットや、比較的狭い範囲のタスク集合を実行する浮動小数点数値コプロセッサが含まれる。再構成可能コプロセッサアーキテクチャの例には、幅広い種類の固定型の、またはプログラム可能な計算エンジンを実施するように再構成され得る、フィールドプログラマブルゲートアレイ(FPGA)などの再構成可能論理回路が含まれる。コプロセッサの機能は、ソフトウェアおよび/またはファームウェアによって定義されてもよい。
ハードウェアアクセラレーション:本明細書で使用する場合、「ハードウェアアクセラレーション」という用語は、主プロセッサから1つまたは複数の処理タスクを軽減して主プロセッサに関連したこれらのタスクの処理待ち時間を低減するために、コプロセッサ上に実施されたソフトウェアおよび/またはファームウェアを使用することをいう。
企業体:本明細書で使用する場合、「企業体」という用語は、その進行中の業務の一部として(「企業体データ」と呼ばれる)データを格納し、かつ/または処理する任意の事業組織または行政主体をいう。
データベース:本明細書で使用する場合、「データベース」という用語は、問い合わせ処理を迅速化するための索引付け機能を有する永続的データストアをいう。様々なデータベース管理システム(DBMS)実装形態が、関係型(RDBMS)、オブジェクト指向型(OODBMS)、階層型などとして類別され得る。しかし、今日業界において優勢なアーキテクチャは関係型の、行/列からなる、構造化照会言語(SQL)対応データベースである。ANSI標準のSQLデータベースエンジンは、普通は効率的な方法で、問い合わせに応答して構造化データを検索することのできる、成熟したソフトウェアアーキテクチャである。
構造化データ:本明細書で使用する場合、「構造化データ」という用語は、関係データベースに合わせて正規化され、永続化されているデータをいう。正規化とは、データを表の行/列形式にし、重複データを別々の表に抽出するデータ設計プロセスである。関係列内の構造化データには、Bツリー索引を用いて索引付けして、これらの列内のデータへのアクセスを大幅に迅速化することができる。SQLでは、構造化列にはサイズ限界がある。これらの列には、一貫性のあるデータ品質を保証するための制約条件および参照整合性が適用され得る。一般的な構造化SQLデータ型の例は、INT(eger)、NUMBER、CHAR(acter)、VARCHAR、DATE、TIMESTAMPなどである。
非構造化データ:本明細書で使用する場合、「非構造化データ」という用語は、前記の構造化データの定義の範囲に入らないデータをいう。したがって、非構造化データという用語は、自由な形のテキストまたは埋込み値が含まれているファイル、ドキュメントまたはオブジェクトを含む。このデータは、データを生成したアプリケーションによって使用された、しばしばバイナリ形式のデータを含む、完全なバイト集合を含む。非構造化データの例には、ワードプロセッシングドキュメント(Microsoft Wordの固有の形式のドキュメントなど)、Adobe Acrobatドキュメント、電子メール、画像ファイル、映像ファイル、オーディオファイル、およびファイルを作成したソフトウェアアプリケーションに関連する固有の形式の他のファイルなどが含まれる。SQLでは、非構造化列は、無制限ではないにせよ、非常に大きいサイズを有する。非構造化SQLデータ型の一般的な例は、BLOB、TEXT、XML、RAW、IMAGEなどである。また、非構造化オブジェクトは、データベースの外部に、例えばオペレーティングシステムファイルなどに格納されてもよい。データベースエンジン内からこれらの外部オブジェクトへのアクセスには、データベース表のメタデータ内の格納場所へのリンクを使用する。
本明細書で使用する際に、XMLという用語を通常は「構造化」として類別しない理由には以下のものがある:
・XMLは、大きな値、またはサイズが無制限の値を持ち得る。
・XMLは、しばしば、強制されたデータ型を持たないことがある。
・XMLは柔軟なスキーマを有する。
・要素および属性のXML値は、しばしば、従来の「構造化」データベース列ほど厳格に適合されず、不要なものが完全に除去されていないことがある。
柔軟なスキーマを有する「半構造化」データの概念が、特にXMLについては台頭しつつあるが、本発明では、関係データベースに合わせて正規化され、永続化されていないあらゆるものは、非構造化データとみなす。したがって、XMLデータ型のものである列は、この「非構造化データ」の定義に該当することになる。
メタデータ:本明細書で使用する場合、データオブジェクトおよびドキュメントの文脈における「メタデータ」という用語は、データオブジェクトまたはドキュメントを記述し、または特徴付けるデータをいう。オブジェクトおよびドキュメントのメタデータの例には、それだけに限らないが、ファイル型、バイトサイズ、作成日、最終変更日、著者、表題、ドキュメント/オブジェクトのデータソースに関する情報(任意選択で、ドキュメントを作成するのに使用されたプログラムの名称およびバージョン番号を含む)、データが他のデータとマッチするかどうかに関する情報、主題対象、分類情報(ドキュメント/オブジェクトの概念に関する情報、ドキュメント/データオブジェクト内に含まれる人名/地名/企業名、語数カウントなど)、ドキュメント/オブジェクト内のデータに関連する位置情報、ドキュメント/オブジェクトに関する他の内容から派生する情報が含まれる。
バス:本明細書で使用する場合、「バス」という用語は、装置および場所がそのアドレスによりアクセスされる任意の物理的相互接続を含む論理バスをいう。本発明の実施に際して使用され得るバスの例には、それだけに限らないが、PCIバスファミリ(PCI−XやPCI−Expressなど)およびHyperTransportバスが含まれる。
パイプライン化:本明細書で使用する場合、「パイプライン」、「パイプライン化シーケンス」、または「連鎖」という用語は、あるアプリケーションモジュールの出力が、シーケンス内の次のアプリケーションモジュールの入力に接続されているアプリケーションモジュールの配列をいう。このパイプライン化配列は、各アプリケーションモジュールが、所与のクロックサイクルの間に受け取る任意のデータを独立に操作し、次いで、別のクロックサイクルの間にその出力をシーケンス内の次の下流側アプリケーションモジュールに渡すことを可能にする。
全文検索:本明細書で使用する場合、「全文検索」という用語は、ドキュメントまたはオブジェクトの全体を通してスキャンし、あらゆる単語またはバイトを考慮することをいう。この処理は、近似、柔軟なスキーマでのタグ付けに基づくトークン化、ワイルドカード処理、または複雑なマッチングを可能にし得る。
テキスト解析およびテキストマイニング:本明細書で使用する場合、「テキスト解析」および「テキストマイニング」という用語は、意味論のような複雑な言語概念を使ってドキュメントオブジェクトを操作するアルゴリズムをいう。テキスト解析/テキストマイニング処理の例には、名前付きエンティティ認識、内容抽出、ドキュメント分類、ドキュメント要約、自然言語処理、統計パターン学習、および関連性ランク付けが含まれる。
企業、団体、機関、その他の事業体といった企業体は、管理する必要のある大量のデータを有する。企業体の重要データの中には、正規化され、構造化され、関係データベースに格納されているものもあるが、大部分の企業体のデータ(一般に企業体データの80%前後と考えられる)は構造化されていない。従来の計算システムでは、このような非構造化データの効果的管理および効率的アクセスに問題がある。
索引付けは、データを探索するための効率を高めるのに使用される公知の技法である。索引とは、データの集合と関連付けられた用語およびポインタのリストである。このような索引の一例100を図1に示す。索引100は、それぞれが用語104(表の「用語」列参照)および1つまたは複数のポインタ106(表の「ポインタ」列参照)を含む複数の索引エントリ102を含む。索引内の各用語104は、語、句、またはデータと関連付けられた他の情報とすることができる。多くの場合、これらの用語はユーザにより指定される。索引内の各ポインタ106は、そのエントリ102の用語104に対応し、その用語がデータ内のどこにあるか識別する。非構造化データでは、データ集合は、しばしば、複数のドキュメントを含む。ドキュメントの例には、ワードプロセッシングファイル、スプレッドシートファイル、電子メール、画像、Adobe Acrobatファイル、ウェブページ、ブック、ブックのページなどといった項目が含まれる。
しかし本発明者らは、従来の索引付け技法は効果的な索引を作成するのに多大な時間を要すると考えるものである。索引付けの計算集約的特性のために、GPPなどの中央プロセッサ上にソフトウェアとして展開される従来の索引付け技法では、比較的小規模なデータセットでさえも効果的に索引付けするのに何日もかかることがある。企業体には毎日のように大量のデータが発生するため、これらの従来の索引付け技法を使って、企業体が所有する(また企業体がアクセスすることのできる)すべてのデータに索引付けすることは全くもって現実的ではない。むしろ企業体は、どのデータに索引付けすべきかについて事前に判断せざるを得ず、しかもこのことは、ほとんどの企業体のデータの大部分を含む非構造化データについて特に当てはまる。その際に企業体には、そのデータの大部分を効率よく管理し、探索するための有効な手段がない。
米国特許第6711558号明細書 米国特許第7139743号明細書 米国特許出願公開2006/0294059号明細書 米国特許出願公開2007/0067108号明細書 米国特許出願公開2007/0130140号明細書 米国特許出願公開2007/0174841号明細書 米国特許出願公開2007/0237327号明細書
当分野の必要に対処するために、本発明者らは本明細書において、データのメタデータの生成をハードウェアアクセラレートする技法を開示する。このデータは、構造化データおよび/または非構造化データを含んでもよい。このメタデータから、ロバストで、高性能なデータ探索および解析を可能にする豊富な索引を生成することができる。本発明の実施形態では、データがコプロセッサに流され、索引用のメタデータがバス帯域幅速度で生成され、それによって索引付け待ち時間の劇的な改善がもたらされる。このような待ち時間の改善により、(すべてではないにせよ)はるかに大量の企業体データを効率よく、効果的に索引付けすることができる。
その際に本発明は、好ましくは、以下の特許および特許出願に開示されている基礎をなすハードウェアアクセラレーション技法を利用する。「Associated Database Scanning and Information Retrieval」という名称の米国特許第6711558号明細書、「Associative Database Scanning and Information Retrieval using FPGA Devices」という名称の米国特許第7139743号明細書、「Intelligent Data Storage and Processing Using FPGA Devices」という名称の米国特許出願公開第2006/0294059号明細書、「Method and Apparatus for Performing Biosequence Similarity Searching」という名称の米国特許出願公開第2007/0067108号明細書、(2007年8月10日に出願された米国出願第11/836947号から公開された)「Method and Apparatus for Protein Sequence Alignment Using FPGA Devices」という名称の米国特許出願公開第2008/0086274号明細書、「Method and Device for High Performance Regular Expression Pattern Matching」という名称の米国特許出願公開第2007/0130140号明細書、(2006年5月2日に出願された米国出願第11/381214号から公開された)「Method and Apparatus for Approximate Pattern Matching」という名称の米国特許出願公開第2007/0260602号明細書、「Firmware Socket Module for FPGA−Based Pipeline Processing」という名称の米国特許出願公開第2007/0174841号明細書、および「Method and System for High Throughput Blockwise Independent Encryption/Decryption」という名称の米国特許出願公開第2007/0237327号明細書。各特許および特許出願の開示全体を参照により本明細書に組み込むものとする。
ドキュメントがコプロセッサに流される際に、ドキュメントストリームに対していくつかのメタデータ生成操作のいずれかを柔軟に実行することができる。例えば、ドキュメントストリーム内の各語に対して、ドキュメントストリーム内のどの単語がいくつかの辞書のうちのいずれかの単語に対する「ヒット」であるか見つけ出すために、完全マッチング操作および近似マッチング操作を行うことができる。これらの「ヒット」から、豊富な索引を迅速に生成することができる。
参照を容易にするために、以下では本発明の様々な実施形態に従って索引付けされる非構造化データを記述するのにしばしば「ドキュメント」という用語を使用する。しかし、「ドキュメント」という用語の使用は例示のためにすぎず、本明細書で説明する技法を使って他の形の非構造化データを索引付けすることもできることに留意すべきである。また、「単語」という用語は、メタデータ生成操作のためにグループ化されているデータストリーム内のビットを記述するのにも使用される。単語は、好ましくは、個別の文字列を形成するバイトに対応し、各文字は、英字、数字、または他の文字の任意の組み合わせとすることができる。
本発明の実施形態のきわめて強力な一態様によれば、コプロセッサは、ドキュメントストリーム内に複数の事前定義パターンのいずれかが存在するかどうか検出するために、受け取ったドキュメントストリームに対して正規表現パターンマッチングを行うことができる。正規表現パターンマッチングを使って検出され得るパターンの例には、社会保障番号、クレジットカード番号、電話番号、電子メールアドレスなどが含まれる。これらのパターンに基づいて索引を策定することにより、企業体は、企業体のすべてのドキュメントを解析し直さなくても、「当社のドキュメントのうちの何件がクレジットカード番号を含むか?」といった、不明確なパターンに基づく質問に効果的に応答することができる。企業体のすべてのドキュメントを解析し直すのではなく、生成されたクレジットカードパターンに関連する索引にアクセスして、クレジットカード番号を含むものとして識別されているすべてのドキュメントを検索することができる。
さらに、コプロセッサを使ってドキュメントをさらに解析し、索引付けするために、それらのドキュメントに対して分類操作およびクラスタ化操作を行うことができる。
本発明によって可能とされる高性能のストリーム索引付けには無数の有用な用途がある。例えば、企業体内の、かつ/または企業体に入ってくる電子メールトラフィックに、その電子メールトラフィックが受取人に届く前に、または届く際に、「オンザフライで」効果的に索引付けすることができる。
同様に、ウェブトラフィック(企業体内のユーザコンピュータによってダウンロードされたウェブページなど)にも、本発明の様々な実施形態を使って「オンザフライで」索引付けすることができる。
ウェブサーチエンジンは、本発明の実施形態を用いて、本明細書で説明するメタデータ生成および索引生成の技法を実行するように構成された機器にウェブページコンテンツを流すこともできる。その後ウェブサーチエンジンは、探索問い合わせへの応答を作成するときに、生成された(1つまたは複数の)索引に対して探索問い合わせを適用することができる。本発明を用いて、新しいウェブページがインターネットサーチエンジンにより「検索可能」になるまでにかかる遅延時間を劇的に低減し得ることが期待される。
また、本発明の各実施形態は、企業体内の任意のコンピュータによってディスクに保存されるデータを操作するのに用いることもできる。
別の用途は、入来売上取引、入来ニュースサービス情報、ログファイルといったデータストリームを解析し、索引付けすることに関するものである。
別の用途は、以前に索引が付けられなかった企業体データに索引付けすること、および以前に索引付けされた企業体データに索引付けし直すことを含めて、既存の企業体データに遡及的に索引付けすることに関するものである。
本発明の前記その他の特徴および利点は、以下の説明および図面を考察すれば当業者には明らかになるであろう。
索引の例を示す図である。 本発明の一実施形態によるメタデータ生成機器の例を示す図である。 本発明の別の実施形態によるメタデータ生成機器の例を示す図である。 本発明の別の実施形態によるメタデータ生成機器の例を示す図である。 図2aから図2cの機器において使用するためのプリント回路基板の例を示す図である。 図2aから図2cの機器において使用するためのプリント回路基板の例を示す図である。 ファームウェアパイプラインが複数の再構成可能論理回路にまたがってどのようにして展開され得るかを例示する図である。 コプロセッサがコプロセッサを流れるデータのメタデータを生成するのにどのようにして使用され得るかを示すハイレベルブロック図である。 図5aのコプロセッサによって生成されたメタデータから作成され得る索引の例を示す図である。 所望のメタデータ生成操作を実行するために再構成可能論理内で展開され得るファームウェアパイプラインの例を示す図である。 図6に示すストリーム前処理操作を実行するのに使用され得るファームウェアパイプラインの例を示す図である。 図7aのファームウェアパイプラインによって生成され得る単語および特徴ベクトルの出力ストリームの例を示す図である。 入来データストリーム内の単語を辞書内の単語と対照して完全マッチさせるシークを実行して特殊索引を生成する特殊索引生成操作の例を示す図である。 入来データストリーム内の単語を辞書内の単語と対照して近似マッチさせるシークを実行して特殊索引を生成する特殊索引生成操作の例を示す図である。 入来データストリーム内の単語を複数の異なる辞書内の単語と対照して完全マッチさせるシークを実行して複数の特殊索引を生成する特殊索引生成操作の例を示す図である。 入来データストリーム内の単語を複数の異なる正規表現パターンと対照してマッチさせるシークを実行して複数の特殊索引を生成する特殊索引生成操作の例を示す図である。 入来データストリーム内の単語を複数の異なる辞書内の単語と、複数の異なる正規表現パターンとに対照してマッチさせるシークを実行して複数の特殊索引を生成する特殊索引生成操作の例を示す図である。 生成された索引を、関係データベースによって維持されている作動用索引に挿入する技法の例を示す図である。 語数カウントモジュールを含むストリーム前処理ファームウェアパイプラインを示す図である。 図11aの語数カウント機能に関連するメタデータを含む索引の例を示す図である。 生成されたメタデータが入来ドキュメントに関する分類データに対応するファームウェアパイプラインの例を示す図である。 入来ドキュメントの複数の異なる分類への関連性を評価するために入来ドキュメントのクラススコアを生成する分類操作の例を示す図である。 各入来ドキュメントごとの分類を決定する分類操作の例を示す図である。 ドキュメントクラスタ化を可能にするのにヒストグラム生成を用いるファームウェアパイプラインの例を示す図である。 ドキュメントクラスタ化を可能にするのにヒストグラム生成を用いるファームウェアパイプラインの例を示す図である。 入来ドキュメントに対して分類操作、特殊索引生成操作、およびヒストグラム生成操作を実行するファームウェアパイプラインの例を示す図である。 入来ドキュメントに対して分類操作、特殊索引生成操作、およびヒストグラム生成操作を実行するファームウェアパイプラインの例を示す図である。 図2aから図2cの機器が用いられ得る環境の例を示す図である。 本明細書で説明するメタデータ生成法を用いることのできるドキュメント取込み前処理操作の概要例を示す図である。 図2cの実施形態によるドキュメント取込み前処理操作の例を示す論理図である。 本明細書で説明するメタデータ生成法を用いることのできるドキュメント取込み前処理操作のための図2cの機器内のデータフローの例を示す図である。
図2aに、メタデータ生成機器200の例示的実施形態を示す。機器200の実施形態をメタデータ生成機器と呼ぶことができるが、前記の組み込まれた「Method and System for High Performance Integration,Processing and Searching of Structured and Unstructured Data Using Coprocessors」という名称の、本出願と同日に出願された、米国特許出願第11/938,709号明細書に記載されているように、機器200はメタデータ生成以外の諸機能をサポートすることもできることに留意すべきである。
機器200は、好ましくは、所望のメタデータを生成するのに、コプロセッサ450によるハードウェアアクセラレートされたデータ処理機能を用いる。機器200内にはコプロセッサ450が、(ネットワークインターフェース410を介して)ネットワーク420から機器200に流れ込むデータを受け取るように配置されている。ネットワーク420は、好ましくは、内部に様々な異なるデータソースが位置する企業体ネットワーク(LANであれWANであれ)を備える。このような入来データは構造化データと非構造化データの両方を含んでもよい。これは、機器200がどちらのデータ型にも有益なメタデータ生成操作を提供することができるからである。
プロセッサ412およびRAM408によって定義されるコンピュータシステムは、当業者であれば理解するはずの任意の市販のコンピュータシステムとすることができる。例えばコンピュータシステムは、IntelのXeonシステムやAMDのOpteronシステムなどとすることもできる。したがって、機器200の中央または主プロセッサとして使用されるプロセッサ412は、好ましくは、GPPを含む。
好ましい実施形態では、コプロセッサ450は、再構成可能論理回路402を備える。好ましくは、データはシステムバス406を介して再構成可能論理回路402に流れ込むが、他の設計アーキテクチャも可能である(図3b参照)。好ましくは、再構成可能論理回路402はフィールドプログラマブルゲートアレイ(FPGA)であるが、そうでなくてもよい。また、システムバス406は、再構成可能論理回路402と、機器のプロセッサ412および機器のRAM408とを相互接続することもできる。好ましい実施形態では、システムバス406はPCI−XバスまたはPCI−Expressバスとすることができるが、そうでなくてもよい。
再構成可能論理回路402には、その機能を定義するファームウェアモジュールが展開されている。ファームウェアソケットモジュール404は、再構成可能論理回路へのデータ移動要件と、再構成可能論理回路からのデータ移動要件(コマンドデータとターゲットデータの両方)を処理し、それによって、やはり再構成可能論理回路上に展開されているファームウェアアプリケーションモジュール(FAM)連鎖350への一貫性のあるアプリケーションインターフェースを提供する。FAM連鎖350の各FAM350iは、ファームウェアソケットモジュール404から連鎖350に流れる任意のデータに対して指定されたデータ処理操作を実行するように構成されている。本発明の好ましい実施形態による、再構成可能論理上に展開され得るFAMの好ましい例を以下で説明する。
FAMによって実行される特定のデータ処理操作は、FAMがファームウェアソケットモジュール404から受け取るコマンドデータによって制御/パラメータ化される。このコマンドデータはFAM特有のものとすることができ、コマンドを受け取るとFAMは、受け取ったコマンドによって制御されるデータ処理操作を実行するように編成される。例えば、完全マッチ操作を実行するように構成されたFAM内では、FAMの完全マッチ操作は、完全マッチ操作を実行するための(1つまたは複数の)キーを定義するようにパラメータ化され得る。このようにして、完全マッチ操作を実行するように構成されたFAMに1つまたは複数の異なるキーの新しいパラメータをロードするだけで、そのFAMを、別の完全マッチ操作を実行するように容易に編成し直すことができる。
FAMは、受け取ったコマンドによって指定されるデータ処理操作を実行するように編成された後で、ファームウェアソケットモジュールから受け取るデータストリームに対して、コマンドで指定されたデータ処理操作を実行することができるようになる。よってFAMは、指定されたデータストリームを指定された方法で処理するための適切なコマンドによって、編成されることができる。FAMがそのデータ処理操作を完了すると、そのFAMには、FAMによって実行されるデータ処理操作の性質を変更するようFAMを再編成させる別のコマンドを送ることができる。FAMは、ハードウェア速度で動作(し、FAMを介して高スループットのデータを提供)するのみならず、そのデータ処理操作のパラメータを変更するよう柔軟にプログラムし直すこともできる。
FAM連鎖350は、好ましくは、パイプライン化シーケンスとして配列された複数のファームウェアアプリケーションモジュール(FAM)350a、350b、...を備える。しかし、ファームウェアパイプライン内には、FAM350iの1つまたは複数の並列経路を用いることもできることに留意すべきである。例えばファームウェア連鎖は、相互に並列な、第1のパイプライン化経路として配列された3つのFAM(FAM350a、350b、350cなど)と、第2のパイプライン化経路として配列された4つのFAM(FAM350d、350e、350fおよび350gなど)とを含んでもよい。さらに、ファームウェアパイプラインは、既存のパイプライン経路から分岐する1つまたは複数の経路を備えることもできる。本発明の実施者は、所与の用途の処理要件に基づき、FAM連鎖350の適切なFAM配列を設計することができる。
通信路430は、ファームウェアソケットモジュール404を、パイプライン化FAMの第1のFAM350aの入力と接続する。第1のFAM350aの入力は、FAM連鎖350への入口点として使用される。通信路432はパイプライン化FAM350mの最後のFAMの出力を、ファームウェアソケットモジュール404と接続する。最後のFAM350mの出力は、FAM連鎖350からの出口点として使用される。通信路430も通信路432も、好ましくは、マルチビット経路である。
特に、ファームウェアソケットモジュールへの、およびファームウェアソケットモジュールからのデータフローに関連して、機器200によって使用されるソフトウェアおよびハードウェア/ソフトウェアインターフェースがどういったものであるかは、前記の組み込まれた米国特許出願公開第2007/0174841号明細書に詳細に記載されている。
図2bに、機器200の別の例示的実施形態を示す。図2bの例において機器200はディスクコントローラ414を介してバス406と通信状態にある関係データベース管理システム304を含む。したがって、コプロセッサ450に流されるデータは、RDBMS304からも発し得る。さらに、コプロセッサ450によって生成されるメタデータは、RDBMS304内に構造化データとして格納することもでき、RDBMS304からのメタデータを、様々なデータ探索/解析操作のため索引として使用することができる。このような索引は、Bツリー索引の形を取り得る。図2bの機器200でのこのような用法の例が、前記の組み込まれた「Method and System for High Performance Integration,Processing and Searching of Structured and Unstructured Data Using Coprocessors」という名称の、本出願と同日に出願された、米国特許出願第11/938,709号明細書に記載されている。
図2cに、機器200の別の例示的実施形態を示す。図2cの例において、機器200は、ディスクコントローラ416を介してバス406と通信状態にある非構造化データのデータストア306も含む。したがって、コプロセッサ450に流されるデータは、データストア306からも発し得る。さらに、そのメタデータを生成するためにコプロセッサ450に流される非構造化データは、任意選択で、データストア306内に格納することもできる。前記の組み込まれた「Method and System for High Performance Integration,Processing and Searching of Structured and Unstructured Data Using Coprocessors」という名称の、本出願と同日に出願された、米国特許出願第11/938,709号明細書に記載されているように、RDBMS304内のメタデータ表は、データストア306内に格納された非構造化データに対する探索/解析操作をより効率的にするのに使用され得る。
図3aに、図2aから図2cの実施形態のいずれかの機器200においてコプロセッサ450として使用するために市販のコンピュータシステムのPCI−XまたはPCI−eバス406に接続することのできるプリント回路基板またはカード700を示す。図3aの例において、プリント回路基板は、メモリ素子702およびPCI−Xバスコネクタ704と通信状態にあるFPGA402(Xilinx Virtex II FPGAなど)を含む。好ましいメモリ素子702は、SRAMおよびDRAMメモリを備える。好ましいPCI−XまたはPCI−eバスコネクタ704は標準のカード端コネクタである。
図3bに、プリント回路基板/カード700の代替の構成を示す。図3bの例において、プリント回路基板700上には、バス706(PCI−XバスやPCI−eバスなど)、1つまたは複数のディスクコントローラ708、およびディスクコントローラ710もインストールされている。当分野で理解されるように、任意の市販のディスクインターフェース技術をサポートすることができる。この構成において、ファームウェアソケット404は、プロセッサ412に、専用PCI−Xバス706を介して接続される任意の(1つまたは複数の)ディスクへの通常のアクセスを可能にするPCI−X/PCI−Xブリッジとしても使用される。図3bに示すディスクコントローラおよびディスクコネクタに加えて、またはその代りに、ネットワークインターフェースを使用することもできることを理解すべきである。
図3aまたは図3bの構成において、ファームウェアソケット404は、メモリ702をバス406にアクセス可能にすることができ、それによって、OSカーネルがメモリ702を、バスにアクセスすることのできるデータソースからFAMへの転送用のバッファとして使用することが可能になることは注目に値する。また、図3aおよび図3bのプリント回路基板上にはただ1つのFPGA402しか示されていないが、プリント回路基板700上に複数のFPGAを含めることにより、または機器200に複数のプリント回路基板700をインストールすることにより複数のFPGAをサポートすることができることが理解されるはずであることも注目に値する。図4に、1つのパイプライン内の多数のFAMが複数のFPGAにまたがって展開されている例を示す。
図5aに、入来データストリームを受け取り、データストリームのメタデータを生成し、生成されたメタデータと共にデータストリームを出力するコプロセッサ450をハイレベルで示す。以下では、様々なハードウェアアクセラレートされたメタデータ生成操作の例を、より詳細に説明する。メタデータを生成するために、いくつかのテキストマイニング操作およびテキスト解析操作のいずれかを用いることができる。メタデータ生成操作の例には、それだけに限らないが、品詞タグ付け、情報およびエンティティ抽出、ドキュメント分類、ドキュメントクラスタ化、ならびにテキスト要約が含まれる。これらの例において、考察対象となるデータストリームは、ドキュメントのストリームである。前記のように、この用法は例にすぎず、コプロセッサ450および本明細書で説明する技法を使用すれば、ドキュメント以外のデータストリームも容易に処理することができる。これらのデータストリームは、非構造化データおよび/または構造化データを含んでもよい。
図5bに、コプロセッサ450によって生成されたメタデータから構築され得る索引100の例を示す。図1に関連して説明したように、各表エントリ102は、用語104および用語と関連付けられたポインタ106を含む。図5bの例において、各ポインタ106は、ドキュメント識別子D、および1つまたは複数の位置識別子pを含む。各ドキュメント識別子は、そのポインタ106に対応する用語104が存在するドキュメントを識別する。ポインタ内の各位置識別子は、その用語104が位置する識別ドキュメント内の位置を識別する。好ましくは、位置識別子は、ドキュメントの始めに対するバイトオフセットで表わされる。したがって、図5bの「Azkaban」という用語のポインタは、「Azkaban」がドキュメントD12の位置pと、ドキュメント9919の位置pおよび位置pとにあることを示している。図5bに示すようなポインタを企業体のファイルシステム内に格納されているドキュメントにマップするには、いくつかの公知の技法のいずれかを使用することができる。
図6に、再構成可能論理402においてドキュメント600の入来ストリームに対してメタデータ生成操作604を実行するのに用いられ得るファームウェア350の例を示す。メタデータ生成操作604の例には、ストリーム前処理操作602が含まれる。ストリーム前処理は、好ましくは、様々な位置および特徴ベクトル抽出操作を含む。これらの操作では、本明細書で説明する値およびリストを生成させ、活用させることを可能にするための用語記述子および表を提供するのに、当分野で暗号化ハッシュ法と呼ばれる技法を用いてもよい。
図7aに、ストリーム前処理段602の処理モジュールのシーケンスの例を示す。単語解析モジュール750は、好ましくは、ドキュメント内の空白および/または句読点で区切られた用語を識別し、それらの位置を記録するように動作する。次いでこれらの記録した位置を使って、ドキュメント内の単語位置(図5bのポインタ内のp値など)を決定することができる。ストップリストフィルタモジュール752は、好ましくは、ドキュメントストリームからストップリストに表示されている単語を除外するように動作する。これが求められるのは、ドキュメントストリームから、その索引付けが特に有用ではないはずの共通単語(「the」、「a」、「an」など)を除外するためである。ストップリストは、好ましくは、どの単語がドキュメントストリームから除外されるか制御するように調整できる。語幹抽出モジュール754は、好ましくは、ドキュメントストリーム内の単語を語幹抽出してその語根にするように動作する。語幹抽出操作の例には、複数形の除外、接頭辞の除外、接尾辞の除外、動名詞形の除外などが含まれる。また、必要な場合には、ストリーム前処理602に他の処理モジュールを含めることもできることにも留意すべきである。例えば、単語ストリーム内に存在し得るつづり間違いを訂正するのにスペルチェックモジュールを使用することもできる。
図7bに、各単語がその単語の位置識別子758を伴うような解析された単語760を含む、ストリーム前処理操作602からの出力データストリームの例を示す。さらに、ストリーム内に新しいドキュメントがあるときにそれを識別するドキュメント識別子756も含まれている。図7bの例はこのようなデータの直列ストリームを示すものであるが、ドキュメント識別子756および位置識別子758は、ファームウェア350内で、単語のビットストリーム760と並列のビットストリームとして流れてもよいことに留意すべきである。
図7aに戻って、単語が前処理モジュール602を流れる際に、ドキュメントの索引を含むメモリを生成することができる。この索引100は、ストリーム前処理モジュール602が遭遇した異なる単語ごとのエントリが、その単語と関連付けられた位置ベクトル情報(図5bに示すドキュメント識別子や位置識別子など)と共に取り込まれている総索引として使用することができる。ストリーム内にすでに総索引100に加えられている単語が再度発生した場合、索引100内のその単語のポインタ情報は、単語が見つかった最新の位置を反映するように更新することができる。
単語が前処理モジュール602を流れる際に索引100を格納するのに使用されるメモリは、いくつかの場所のうちのいずれかに置くことができることに留意すべきである。例えばこのメモリは、FPGA402の利用可能なオンチップメモリに置くこともできる。またこのメモリは、図3aおよび図3bに示すメモリ素子702とすることもできる。さらに、このメモリはRAM408とすることもできる。このメモリは、RDBMS304などの場所とすることさえできる。好ましくは、コプロセッサ450は、索引100を更新する動作を実行する。索引100に新しいデータを挿入するのにハッシュ法などの技法を使用することができる。
図7aに示す各モジュールも、ストリーム前処理操作602自体も任意選択の特徴であることに留意すべきである。望ましい場合には、前処理されていないドキュメント600に対してメタデータ生成操作604を行うこともできる。
図8aに、特殊索引生成操作850も実行されるメタデータ生成操作604の例示的実施形態を示す。図8aでは、単語および位置ベクトルが完全マッチングモジュール800に流れ込む。この完全マッチングモジュール800には、辞書802から単語804がロードされる。完全マッチングモジュールは、単語804を、流れる単語を比較するためのキーとして使用して、単語間に任意の完全マッチが存在するかどうか判定する。モジュール800によりマッチが見つかると、メモリに維持されている特殊索引860が、マッチ単語情報およびマッチ単語の対応するポインタ(図5b参照)で更新される。ポインタ情報として、ストリーム前処理操作602によって検出された位置ベクトル(ドキュメント識別子756や位置識別子758など)を使用することができる。したがって、図7aに関連して説明した総索引100に加えて、(辞書802に特有の)特殊索引860も、コプロセッサ450のデータ処理操作により効率よく生成することができる。
完全マッチング操作を実行するために、いくつかの完全マッチング法のいずれかを使用することができる。例えば、ハードウェアアクセラレートされたマッチング法は、前記の組み込まれた米国特許第6711558号明細書および米国特許第7139743号明細書、米国特許出願公開第2006/0294059号明細書、米国特許出願公開第2007/0130140号明細書、ならびに(2006年5月2日に出願された米国出願第11/381214号から公開された)「Method and Apparatus for Approximate Pattern Matching」という名称の米国特許出願公開第2007/0260602号明細書などに開示されている。
どんな単語の集合でも辞書802として使用することができる。使用され得る辞書802の例には、まる1冊分の英語辞書、まる1冊分の外国語辞書、科学/技術辞書などといった大規模な単語集合が含まれる。また、もっと小規模な単語集合を使用することもできる。
図8bに、完全マッチングモジュールではなく近似マッチングモジュール810が使用される索引生成の別の実施形態を示す。つづり間違いなどによりドキュメントテキストに誤った索引付けが行われない可能性を低減するために、索引生成操作850に近似マッチングモジュール810を用いることが望ましい場合もある。また、近似マッチングモジュール810として使用するのに適した、ハードウェアアクセラレートされた近似マッチング法の例も、前記の組み込まれた米国特許第6711558号明細書および米国特許第7139743号明細書、米国特許出願公開第2006/0294059号明細書、米国特許出願公開第2007/0130140号明細書、ならびに(2006年5月2日に出願された米国出願第11/381214号から公開された)「Method and Apparatus for Approximate Pattern Matching」という名称の米国特許出願公開第2007/0260602号明細書に開示されている。ストリーム前処理段において前記のようなスペルチェックモジュールが使用される場合、つづり間違いなどに対処するために近似マッチングを用いる必要はなくなることに留意すべきである。
また、流れる単語を単語キー804にマッチさせる作業負荷を、複数のマッチングモジュール800/810にわたって分散させるために、複数の完全マッチング/近似マッチングモジュール800/810を並列に展開することができることにも留意すべきである。しかし、望ましい場合には、マッチングモジュール800/810が、流れる単語を単語キー804と順次に比較するのに、比較レジスタの単一の直列パイプライン化シーケンスを使用することもできる。
総索引100を格納するのに使用されるメモリと同様に、特殊索引860を格納するのに使用されるメモリは、いくつかの場所のうちのいずれか(FPGA402のオンチップメモリ、メモリ素子702など)に置くことができる。
本発明の様々な実施形態の強力な一態様は、複数の特殊索引を同時に生成することができることである。この例が図9aに示されている。この実施形態では、マッチングモジュール800/810は、入来単語を、それぞれが入来単語を判断するためのキーとして使用される独自の単語集合を有する複数の辞書802と対照してマッチさせる。図示のように、英語辞書、仏語辞書、医学辞書、技術辞書といった辞書内の単語を入来単語ストリームと比較することができる。入来単語とこれらの辞書のいずれかの単語との間にマッチが見つかると、各辞書と関連付けられた特殊索引をポインタ情報で更新することができる。図9aには、このような特殊索引の例として英語辞書索引902および技術辞書索引904が示されている。好ましくは、これらの特殊索引の用語列には、索引と関連付けられた辞書内のすべての単語が事前に取り込まれている。マッチングモジュール800/810により単語ストリーム内でその用語が検出されると、その用語のポインタ情報をそれに応じて更新することができる。
このような実施形態における総索引100は、どの辞書802にも完全マッチングモジュールを流れる単語のマッチが見つからないときに、更新することができる。さらに、望ましい場合には、その他の特殊索引内の各エントリを総索引にマージして、総索引100がドキュメントストリーム600内のすべての単語に適用できるようにすることもできる。このマージは、オフラインで行うこともでき、その他の索引を更新するのと同時に行うこともできる。そうではなくコプロセッサ450を、単語がストリーム前処理モジュール602から流れ出る際に総索引100を更新し、単語が完全/近似マッチングモジュール800/810から流れ出る際に特殊索引を更新するように構成することもできる。
本発明の様々な実施形態の別の強力な態様は、入来単語に対して正規表現パターンマッチングを行うことができることである。この例が図9bに示されている。正規表現は、当分野で周知のように、単語ストリーム内の様々な複雑度のパターンを検出するのに使用することができる。正規表現が検出の有効な手段であるパターンの例が社会保障番号(SSN)である。SSNはxxx−xx−xxxxのパターンを有し、xは0から9までの任意の数とすることができる。また、電話番号、クレジットカード番号、主要口座番号(PAN)、電子メール、URLなどといった項目も、正規表現によって検出可能なパターンを有する。
図9bに示すように、正規表現マッチングモジュール910を、コプロセッサ450上に(好ましくは再構成可能論理回路402上のファームウェア350に)展開することができる。正規表現マッチングモジュール910は、1つまたは複数のユーザ定義のパターンを検出するように構成することができる。例えば、図9bの正規表現マッチングモジュール910は、電子メールパターン912、電話番号パターン914、クレジットカード番号パターン916、およびSSNパターン918を示す単語(単語部分を含む)を検出するように構成されている。正規表現マッチングモジュール910により単語ストリーム内でこれらのパターンが検出されると、各パターンと関連付けられた特殊索引を、マッチングパターンの内容とそのマッチングパターンのポインタ情報とで更新することができる。図9bに、このような索引の例として電子メール索引920およびSSN索引922が示されている。したがって、単語ストリーム内で123−45−6789が発生した場合、正規表現マッチングモジュール910はこのパターンをSSNパターンとして識別し、SSN索引922に、用語「123−45−6789」および単語ストリーム内のその用語を指し示すポインタを含むエントリを追加する。好ましくは、図9aに関連して説明したように、単語が正規表現マッチングモジュール910を流れるとき、および正規表現マッチングモジュール910がどんなパターンマッチも検出しないときに、総索引100も更新される。
正規表現マッチングモジュール910として使用するのに適した、ハードウェアアクセラレートされた正規表現マッチング法の例は、前記の組み込まれた米国特許出願公開第2007/0130140号明細書に開示されている。
また、マッチングモジュール800/810に関連して前記したように、コプロセッサ450内では、パターンマッチング作業負荷を複数のリソースにわたって分散させるために、直列および並列の正規表現マッチングモジュール910の様々な組み合わせを用いることもできる。
図9bで示すこのようなパターン索引の威力を軽視することはできない。企業体内の人が、「当企業体内のどのドキュメントがSSNを含むか?」といった質問や、「クレジットカード番号を含む当企業体内のすべてのドキュメントを示せ」といったコマンドに対する回答を効率よく取得することは、通常きわめて難しい。同様に、ウェブサーチエンジンが、個々の番号を特定せずに、クレジットカード番号またはSSNを含むウェブページを検索するよう求めるインターネット探索問い合わせに対して関連する結果を提供することも難しい。しかし、図9bに関連して開示する索引付け技法によれば、このような質問に対する回答が容易に示される。
図9cに、ハードウェアアクセラレートされた索引生成操作850が、対応する特殊索引(索引902、904、920、922など)および総索引100を生成するための、1つまたは複数の完全/近似マッチングモジュール800/810および1つまたは複数の正規表現マッチングモジュール910を含む例示的実施形態を示す。この場合もやはり、このような効率的に生成される索引の威力を軽視することはできない。これらの索引は、ドキュメント600の集合全体を解析し直すことなく、「クレジットカード番号を含み、かつ「盗まれた(stolen)」という単語を含むすべてのドキュメントを示せ」といった複雑な問い合わせコマンドに回答するのに使用することができる。
コプロセッサ450は、好ましくは、マッチングモジュール800/810/910によって使用される辞書および/またはパターンを変更するように構成されていることに留意すべきである。好ましくは、このような変更は、ファームウェアソケットモジュール404によりコマンドデータとして受け取られるユーザコマンドに応答して行われる。これらの変更には、辞書/パターンの追加/除去および/または様々な辞書へ/辞書からの単語の追加/除去が含まれ得る。
また、コプロセッサ450は、これらのモジュール800/810および910を、要望通りに、直列、並列、または直列/並列混成の配列として展開することができることにも留意すべきである。
図10に、生成された索引(索引100、902、904、920、922など)を、RDBMS(RDBMS304や企業体ネットワーク420内の他の何らかのRDBMSなど)内の対応する作動用索引にマージするために、これらの周期的バッチ転送が実行される実施形態を示す。したがって、作動用総索引1000に総索引100の内容を挿入するためのバッチ挿入/マージ操作を実行することができる。同様に、索引902、904、920、および922の内容を、対応する作動用索引1002、1004、1020、および1022に挿入することもできる。これらの転送は、予定された間隔をおいて周期的に実行することもでき、索引100、902、904、920、および922に利用可能なメモリ空間が不足したときに、必要に応じて実行することもできる。
各作動用索引が更新された後、SQLデータベースによって格納されている作動用索引に適用されるSQLコマンドなどの標準化された問い合わせを介して、新しく索引付けされたデータにアクセスすることができる。前記の組み込まれた「Method and System for High Performance Integration,Processing and Searching of Structured and Unstructured Data Using Coprocessors」という名称の、本出願と同日に出願された、米国特許出願第11/938,709号明細書には、RDBMSがメタデータ索引を維持している非構造化データを対象とする問い合わせに特に効率のよい問い合わせ処理法が開示されている。
ストリーム前処理モジュール602によって実行され得る別のメタデータ生成操作は、図11aに示すような、語数カウント操作1150である。問い合わせ処理操作時にドキュメント600の関連性を確認するために、索引付けエンジンは、好ましくは、ドキュメント内の単語に関する統計情報を獲得する。この統計情報は、特定の単語がドキュメントにおいて出現する回数のカウント、および(ドキュメント600が1つまたは複数の集合にグループ化されている場合には)特定の単語がドキュメント集合全体において出現する回数のカウントを含んでもよい。関連性評価のために求め、使用することのできる別のパラメータは、各ドキュメントの(単語数またはバイト数の)サイズである。これらのパラメータを知ることにより、問い合わせ時に検索されるドキュメントの関連性を、Okapi BM25モデルなどの公知の確率論的関連性モデルを使って計算することができる。参照によりその開示全体が本明細書に組み込まれる、Karen Spaerck Jones、Steve Walker、およびStephen E.Robertson著、「A Probabilistic Model of Information Retrieval:Development and Comparative Experiments(parts 1 and 2)」、Information Processing and Management、36(6):779−840頁、2000年を参照されたい。
語数カウントモジュール1150により、単語がそこを流れる際に、ドキュメントおよびドキュメント集合のための単語リストが生成される。リスト上の各単語と関連付けられるのは、ストリームにおいて関連付けられた単語が検出されるたびに増分されるカウント値である。図11bに、ポインタ106が、参照されるドキュメントにおいて各用語が何回出現するか特定する語数カウントパラメータwcを含む索引の例1154を示す。また、これらのポインタは、各ドキュメントのサイズを特定するパラメータも含んでもよい(が、この情報を別の索引表に維持することもできる)。また、表1154は、ドキュメント集合において各用語が何回出現するか特定する「集合カウント」パラメータを含む別の列1160も含んでもよい。単語および位置ベクトルストリーム内のビットには、集合分離を識別するための適切なフラグを加えることができる。語数カウントモジュールからの出力は、好ましくは、このカウント情報を含むため、図11aには、語数カウントモジュール1150からの出力がカウントベクトルを含むものとして示されている。
コプロセッサ450によって実行され得る別のメタデータ生成操作604は、分類操作1100である。このような動作のためのパイプラインの例が図11cに示されている。ドキュメントに対して実行され得るドキュメント分類操作の例には言語分類が含まれる。言語分類では、ドキュメントを、ドキュメント内のテキストが最も密接にマッチする言語を特定するように構成されている統計的Nグラムアルゴリズムに適用することができる。参照によりその開示全体が本明細書に組み込まれる、William B.CavnarおよびJohn M.Trenkle著、「N−Gram−Based Text Categorization」、Proceedings of SDAIR−94、3rd Annual Symposium on Document Analysis and Information Retrieval、米国ネバダ州ラスベガス、161−175頁、1994年を参照されたい。別のドキュメント分類操作では、ドキュメントのある種の分類を学習するのに隠れマルコフモデル(HMM)を用いてもよい。参照によりその開示全体が本明細書に組み込まれる、Ludovic Denoyer、Hugo ZaragozaおよびPatrick Gallinari著、「HMM−based Passage Models for Document Classification and Ranking」、Proceedings of ECIR−01、23rd European Colloquium Information Retrieval Research、独国ダルムシュタット、126−135頁、2001年を参照されたい。
図12aに、単語のリストが複数の異なるクラスのために維持される分類操作の例を示す。例えば、第1のクラス1202が単語1204と関連付けられており、以下同様に、クラスn1206が単語1208と関連付けられている。これらの単語を、1つまたは複数のマッチングモジュール800/810が、入来単語と対照して比較するためのキーとして使用することができる。キー単語がドキュメント内の単語とのマッチを検出すると、各クラスごとのマッチのカウントを追跡する得点メモリ1210を適宜更新することができる。したがって、マッチングモジュール800/810が、ドキュメントX内の所与の単語と第1のクラス1202内の単語1204との間のマッチを検出すると、そのドキュメントと関連付けられた得点メモリ1210内のクラス1の「カウント」フィールドを更新することができる。これらのカウントは、所与のドキュメントが個々のクラスにどの程度の関連性を有するか示すための、各ドキュメントごとのクラス得点として使用することができる。好ましくは、得点メモリ1210は、単語ストリームにおいて新しいドキュメントが発生するとリフレッシュされる。得点メモリ1210は、好ましくは、FPGA402の利用可能なオンチップメモリにおいて、またはメモリ素子702において維持される(図3aおよび図3b参照)。
異なるクラスを、「ニュース」、「スポーツ」、「法律」、「医薬」などといった分類に関連付けることができる。各クラス内の単語は、クラスによって定義された主題に関連するドキュメントにおいて検出されるものと一般的に期待される単語とすることができる。例えば、「野球」という単語は、「スポーツ」分類の単語リストに含まれ、「禁反言で禁ずる(estop)」という単語は、「法律」分類の単語リストに含まれる。別のドキュメント分類の例を言語分類とすることができる。このような用途では、図12aに示す各クラスを異なる言語と関連付けることができ、その場合各クラス内の単語は、その言語のまる1冊分の(または編集された)辞書を含むことになる。図9aの実施形態を参照すると、このような言語分類操作は、特殊索引付けへの付加語として機能することができ、その場合図9aに示すマッチング操作は、得点メモリ1210を適宜更新するようにも動作し得ることが理解される。さらに別のドキュメント分類の例は、「読解力レベル」とすることができる。各クラスは、異なる読解力レベル(「第5学年の読解力レベル」、「高校1年生の読解力レベル」、「大学学部生の読解力レベル」など)と関連付けることができ、各クラス内の単語は、対応する読解力レベルに属するドキュメントにおいて見られるものと期待される単語とすることができる。図11aの語数カウントモジュールによって生成されるカウントベクトル情報は、「読解力レベル」などの分類にも役立ち得ることに留意すべきである。
図12bに、判断論理1212を用い、得点メモリ1210によって記録されたドキュメントのクラスカウントに基づいてドキュメントに1つまたは複数のクラスが割り当てられる分類実施形態の例を示す。例えば各クラスは関連付けられた閾値を持つことができる。クラスカウントがそのクラスの閾値に合致し、または閾値を超える場合、そのクラスに属するものとしてドキュメントにタグ付けすることができる。したがって、同じドキュメントの複数のクラスでのカウントが、それらのクラスと関連付けられた閾値に合致し、または閾値を超える場合には、そのドキュメントが複数のクラスに属する可能性もある。
さらに、有利には、分類操作1100と関連して1つまたは複数の正規表現マッチングモジュール910を(おそらく1つまたは複数のマッチングモジュール800/810と組み合わせて)用いることもできることに留意すべきである。例えば、ドキュメントがクレジットカード番号を含むことが検出された場合には、このドキュメントはおそらく、「売上げ記録」、「個人記録」などとして分類されるべきであるという推論が行われ得るはずである。また、正規表現マッチングは、いくつの単語が特定の文字長を有するかカウントするのにも役立つ。例えば、xを任意の文字とする正規表現「xxxx」は、4文字の単語のカウントを更新するのに使用することができ、正規表現「xxxxx」は、5文字の単語のカウントを更新するのに使用することができ、以下同様である。このような単語長カウントは、前記の「読解力レベル」などの分類を評価するのに役立てることができる。
分類モジュール1100を使って、各ドキュメントごとに、それぞれが各ドキュメントを特定のクラスに属するものとしてタグ付けするビットストリングをストリームに加えることにより、モジュール1100から発する単語ストリームが豊富化されてもよい。例えば分類モジュールが、ドキュメントが属するのは20分類のうちのどれか判定するように構成されている場合には、各ドキュメントごとに、各ビットが特定の分類と関連付けられており、ドキュメントがその分類に属するかどうかフラグを立てる20ビットのビットストリングを出力ストリームに加えることができる。したがって、このビットストリング内のビットXを、ドキュメントがクレジットカード番号を含むかどうかのフラグを立てるために取っておくことができる。したがって、正規表現マッチングモジュール910がドキュメント内にクレジットカード番号パターンが存在することを検出した場合、そのドキュメントのビットストリングは、ビットXをハイに設定するように更新され得る。同様に、ビットストリング内のビットYを、ドキュメントが法律ドキュメントであるかどうかのフラグを立てるために取っておくこともできる。分類操作により、ドキュメントが法律ドキュメントとみなされるべきであると判定された場合、ビットYはハイに設定され得る。
また、分類操作1100によって生成される分類情報は、クラスごとのドキュメントの特殊索引を生成するのに使用することもできるため、分類操作1100を、メタデータ生成操作の特殊索引生成カテゴリにも属するものとみなし得ることにも留意すべきである。このような索引は、「企業体内に何件のスペイン語ドキュメントがあるか」といった質問に回答し、「スポーツと医薬の間にはどんな関係が存在するか」や、「ジョンスミスに言及されているすべての法律ドキュメントを検索せよ」といった調査を行うのに使用することができるという点で、強力な探索用補助として使用することができる。
また、分類操作は、図9aから図9cに示す実施形態などの実施形態から生成された総索引および特殊索引を使って、ソフトウェア(プロセッサ412によって実行されるソフトウェアなど)として実行することができることにも留意すべきである。各ドキュメントごとの分類情報を決定するために、これらの異なる索引を、異なる各クラスのための事前定義された単語リストと相互相関させることができる。
図11aに続いて図13aを参照すると、コプロセッサ450によって実行され得る別のメタデータ生成操作604は、ドキュメントクラスタ化に役立つヒストグラム生成操作1300である。ドキュメントクラスタ化では、異なるドキュメント同士の相互関係を知ることが求められる。このようなクラスタ化判定に役立つように、コプロセッサ450を、ドキュメント600に対してヒストグラム生成操作1300を実行するように構成することができる(この操作は、同一ではないにせよ、前記の語数カウント操作と同様のものとすることができる)。これらのヒストグラムは、ドキュメント内の単語の頻度を特定することができる。生成されたヒストグラムから、ソフトウェアを使って、特徴ベクトル拡張を実行し、共通の主題などに関して相互に関連し合う可能性の高いドキュメントクラスタを識別する(操作1302)ことができる。特徴ベクトル拡張は、個別ドキュメントの特徴ベクトルが、集合内のすべてのドキュメントからの単語を含むように拡張される標準技法である。クラスタ化は、K平均クラスタ化、ファジィC平均クラスタ化、階層的クラスタ化などといった公知の技法のいずれかを使って行うことができる。参照によりその開示全体が本明細書に組み込まれる、M.Steinbach、G.Karypis、およびV.Kumar著、「A comparison of Document clustering techniques」、KDD Workshop on Text Mining、2000年を参照されたい。
ストリーム前処理モジュール602がすでに語数カウントを用いている場合には、図13bに示すように、ヒストグラム生成段1300を省略することができる。
図13aおよび図13bで示されるクラスタ化操作は、クラスタ化情報が、クラスタごとのドキュメントの特殊索引を生成するのにも使用され得るため、メタデータ生成操作の特殊索引生成カテゴリにも属するものとみなし得ることに留意すべきである。このような索引は、「企業体内のどのドキュメントがドキュメントXに類似しているか?」や、「このウェブサイトから購入することのできるどの書籍が書籍Xと類似しているか?」といった質問に回答するのに使用することができるという点で、強力な探索用補助として使用することができる。
図14aおよび図14bに、ハードウェアアクセラレートされたメタデータ生成操作604が分類1100、特殊索引生成850、およびヒストグラム生成1300(または語数カウント1150)を含むパイプラインの例を示す。
図15に、機器200を効果的に用いることのできる環境の例を示す。図15には、インターネット1500から大量の入来データを受け取る企業体コンピュータシステム1504が示されている。この入来データは、企業体ファイアウォール1502を通過した後で、ファイアウォール出力に接続している機器200に流すことができる。よって機器200は、入来データが企業体に到達する際、企業体ネットワーク420内のどこかのデータ記憶に入れられる前に、入来データのメタデータおよび索引を生成するのに使用することができる。また、機器200によって処理されたデータは、企業体コンピュータシステム1504内から発せられるデータを含むこともできる。さらに、機器200は、任意選択で、その生成メタデータを、企業体ネットワーク420内の他のリポジトリに配信するために出力するように構成することもできる。さらに任意選択で、機器200によって索引付けされたデータに対して全文検索または他のデータ解析操作を行うための問い合わせを適用することもできる。前記のように、このような機器200の使用例が、前記の組み込まれた「Method and System for High Performance Integration,Processing and Searching of Structured and Unstructured Data Using Coprocessors」という名称の、本出願と同日に出願された、米国特許出願第11/938,709号明細書に開示されている。
図16に、機器200が企業体内のドキュメントに索引付けするのに使用される一実施形態によるドキュメント取込み前処理の概要を示す。好ましくは、企業体ネットワーク420内のユーザコンピュータ上に表示された何らかの形のドキュメント取込みGUI1600を介して、ユーザは、どの(1つまたは複数の)ドキュメントが図2cのデータストア306に取り込まれるべきか指定することができる。任意選択でユーザは、取り込まれるべき(1つまたは複数の)ドキュメントに関する様々な形のメタデータを打ち込むこともできる。しかし、前記のように、コプロセッサ450が所望のメタデータ生成操作を自動的に実行するように構成されているため、これが必要であるとは限らない。GUI1600から機器200に送られた適切なコマンド1612に応答して、企業体ネットワーク420を介してアクセス可能であるが、機器200の外部にあるデータストア308に格納された1つまたは複数のドキュメント600が機器200に送られる。機器200が、NTFS、FAT、CIFS、様々な特色を有するUNIX(登録商標)ファイルシステムといった共通ファイルシステム上に格納されたドキュメントへのアクセス、ならびにHTTPを介したウェブアクセスを可能にするために用いるドキュメント検索機能1652においては、様々なアダプタを用いることができる。
コプロセッサが、ファームウェア350が展開された再構成可能論理回路402を用いる場合には、ファームウェアパイプライン350に置かれた各FAMは、受け取ったドキュメントに対してドキュメントメタデータ生成操作を実行するように構成される。これらのメタデータ生成操作の例については前記している。
次いで、ファームウェア350の操作によって生成されたドキュメントメタデータ1650をRDBMS304に格納することができ、RDBMSエンジンは、後で、データストア306内のどのドキュメントが、問い合わせ処理時にハードウェア速度でコプロセッサ450によって処理されるべきか特定するために標準化データベース問い合わせを使って問い合わせすることのできる、このドキュメントメタデータの索引を生成し、維持するように動作する。受け取られたドキュメント600がファームウェア350によって処理された後で、非構造化データのデータストア306を格納することによりドキュメント600を機器に取り込むことができる。メタデータ生成およびドキュメント取込みの動作は、好ましくは、事実上ほぼリアルタイムで同時に行われる。ドキュメントメタデータ1650は、任意選択で、機器200の外部にある構造化データベースに格納することもできることに留意すべきである。
図17に、このドキュメント取込み前処理1700を論理フローとして示す。ステップ1で、ユーザはGUI1600と対話して、機器200に取り込むための新しいドキュメント600を特定する。GUI1600は、任意選択で、ドキュメント600からどんなメタデータを生成すべきかユーザに指定させるように構成されてもよい。次にステップ2で、ドキュメント600がその元の場所(企業体ドキュメントストア308、インターネットまたは企業体ネットワーク420からアクセス可能な他の何らかのネットワーク)から取り出される。次いで、ファームウェア350がドキュメント600に対してそのドキュメントメタデータ生成操作604を行ってドキュメントメタデータ1650を生成する。次いでステップ3で、ドキュメント600がデータストア306のファイルシステムに格納され、(そのデータストア306のファイルシステム内の場所を含む)ドキュメントメタデータがRDBMS304の関係表に保存される。図18に、このデータフローが図2cの機器200上に重ね合わせられたものを示す。
このように、機器200はこれ以後、RDBMS304によって索引付けされたドキュメントメタデータ1650を使って、コプロセッサ450による問い合わせ指定のデータ処理操作(全文検索操作など)をどのドキュメントに行うべきかに判断するのに役立てることができる。さらに、機器200内では標準化RDBMS技術が活用されているため、所与の問い合わせを処理するときに、どのドキュメントにコプロセッサベースのデータ処理操作を行うべきか判断するのに、多くのユーザに周知の標準化データベース問い合わせを使用することができる。この種の問い合わせ処理は、前記の組み込まれた「Method and System for High Performance Integration,Processing and Searching of Structured and Unstructured Data Using Coprocessors」という名称の、本出願と同日に出願された、米国特許出願第11/938,709号明細書に開示されている。
本明細書で開示した好ましい実施形態においてコプロセッサ450はFPGAなどの再構成可能論理回路402を備えているが、コプロセッサ450は他の処理装置を使って実現することもできる。例えば、コプロセッサ450は、グラフィックス処理装置(GPU)、汎用グラフィックスプロセッサ、チップマルチプロセッサ(CMP)、専用メモリ素子、複合プログラマブル論理回路、特定用途向け集積回路(ASIC)、および他の入出力処理構成要素を含んでもよい。さらに、機器200は、直列と並列のどちらかまたは両方のマルチコプロセッサアーキテクチャとして複数のコプロセッサ450を用いてもよいことにも留意すべきである。
以上、本発明をその好ましい実施形態に関連して説明したが、本発明には、やはり本発明の範囲内に含まれる様々な変更が加えられ得る。このような本発明への変更は、本明細書の教示を考察すれば理解されるであろう。したがって、本発明の完全な範囲は、もっぱら添付の特許請求の範囲およびその法的な均等物によって定義されるべきものである。

Claims (130)

  1. コプロセッサにデータを流すステップと、
    コプロセッサを使って流れるデータのメタデータを生成するステップと、
    生成されたメタデータに基づき流れるデータの索引を生成するステップと
    を含む、索引付けの方法。
  2. コプロセッサが再構成可能論理回路を備える、請求項1に記載の方法。
  3. 再構成可能論理回路に、メタデータを生成するステップを実行するように構成されたファームウェアが展開されている、請求項2に記載の方法。
  4. ファームウェアがさらに索引を生成するステップを実行するように構成されている、請求項3に記載の方法。
  5. 索引を生成するステップが、生成されたメタデータに基づき複数の索引を生成するステップを含む、請求項4に記載の方法。
  6. メタデータを生成するステップが、流れるデータに対して、複数の辞書内の複数の単語をキーとする完全マッチング操作を実行するステップを含み、それぞれの辞書が生成された索引のうちの異なる1つに対応している、請求項5に記載の方法。
  7. メタデータを生成するステップが、流れるデータに対して、複数の事前定義されたパターンをキーとする正規表現パターンマッチング操作を実行するステップをさらに含み、複数の生成された索引が複数の辞書に対応し、別の複数の生成された索引が複数の事前定義されたパターンに対応するように、それぞれの事前定義されたパターンが生成された索引のうちの異なる1つに対応している、請求項6に記載の方法。
  8. メタデータを生成するステップが、流れるデータに対して、複数の辞書内の複数の単語をキーとする近似マッチング操作を実行するステップを含み、それぞれの辞書が生成された索引のうちの異なる1つに対応している、請求項5に記載の方法。
  9. メタデータを生成するステップが、流れるデータに対して、複数の事前定義されたパターンをキーとする正規表現パターンマッチング操作を実行するステップをさらに含み、複数の生成された索引が複数の辞書に対応し、別の複数の生成された索引が複数の事前定義されたパターンに対応するように、それぞれの事前定義されたパターンが生成された索引のうちの異なる1つに対応している、請求項8に記載の方法。
  10. メタデータを生成するステップが、流れるデータに対して、複数の事前定義されたパターンをキーとする正規表現パターンマッチング操作を実行することをさらに含み、それぞれの事前定義されたパターンが生成された索引のうちの異なる1つに対応している、請求項5に記載の方法。
  11. メタデータを生成するステップが、流れるデータに対して分類操作を実行するステップを含む、請求項5に記載の方法。
  12. メタデータを生成するステップが、流れるデータに対してヒストグラム生成操作を実行するステップを含む、請求項5に記載の方法。
  13. 生成されたヒストグラムに基づき流れるデータに対してクラスタ化操作を実行するステップをさらに含む、請求項12に記載の方法。
  14. ファームウェアを使って流れるデータに対して特徴ベクトル抽出を実行するステップをさらに含む、請求項5に記載の方法。
  15. 特徴ベクトル抽出操作が、流れるデータに対して単語解析操作を実行するステップを含む、請求項14に記載の方法。
  16. 特徴ベクトル抽出操作が、解析された流れるデータに対してストップリストフィルタ操作を実行するステップをさらに含む、請求項15に記載の方法。
  17. 特徴ベクトル抽出操作が、解析され、フィルタリングされた流れるデータに対して語幹抽出操作を実行するステップをさらに含む、請求項16に記載の方法。
  18. 流れるデータが非構造化データである、請求項5に記載の方法。
  19. 非構造化データが複数のドキュメントを含む、請求項18に記載の方法。
  20. 生成された索引を、関係データベースによって格納されている複数の作動用索引とマージするステップをさらに含む、請求項5に記載の方法。
  21. データを受け取るステップと、
    受け取ったデータを、システムの主プロセッサ以外の処理装置に流すステップと、
    処理装置を使い流れるデータに対してメタデータ生成操作を実行して、流れるデータのメタデータを生成するステップと
    を含むデータのメタデータを生成する方法。
  22. 処理装置がコプロセッサを備える、請求項21に記載の方法。
  23. コプロセッサが再構成可能論理回路を備える、請求項22に記載の方法。
  24. 再構成可能論理回路に、メタデータ生成操作を実行するように構成されたファームウェアが展開されている、請求項23に記載の方法。
  25. メタデータ生成操作を実行するステップが、生成されたメタデータに基づき流れるデータの索引を生成するステップを含む、請求項22に記載の方法。
  26. 索引を生成するステップが、生成されたメタデータに基づき流れるデータの複数の索引を同時に生成するステップを含む、請求項25に記載の方法。
  27. データストリームが複数のデータ単語を含み、メタデータ生成操作を実行するステップが、
    流れるデータ単語と辞書内の複数の単語との間で完全マッチ操作を実行するステップと、
    流れる単語と辞書内の単語の間に完全マッチが見つかったことに応答して、その辞書単語に対応する生成された索引内のエントリを、その辞書単語の完全マッチである流れるデータ内のデータ単語を指し示すポインタで更新するステップと
    を含む、請求項25に記載の方法。
  28. メタデータ生成操作を実行するステップが、生成されたメタデータに基づき流れるデータの複数の索引を同時に生成するステップを含み、完全マッチ操作を実行するステップが、流れるデータ単語と、複数の辞書内の複数の単語との間で完全マッチ操作を実行するステップを含み、それぞれの辞書が生成された索引のうちの異なる1つに対応している、請求項27に記載の方法。
  29. 索引を生成するステップが、どの辞書内のどの単語の完全マッチでもない流れるデータ内の単語の総索引を生成するステップをさらに含む、請求項28に記載の方法。
  30. 辞書のうちの少なくとも1つがまる1冊分の英語辞書である、請求項28に記載の方法。
  31. 辞書のうちの少なくとも1つがまる1冊分の外国語辞書である、請求項28に記載の方法。
  32. 辞書のうちの少なくとも1つが技術辞書である、請求項28に記載の方法。
  33. 辞書のうちの少なくとも1つが医学辞書である、請求項28に記載の方法。
  34. 辞書が、事前定義された単語のリストを含む、請求項27に記載の方法。
  35. 辞書の内容を変更するステップをさらに含む、請求項34に記載の方法。
  36. データストリームが複数のデータ単語を含み、メタデータ生成操作を実行するステップが、
    流れるデータ単語と辞書内の複数の単語との間で近似マッチ操作を実行するステップと、
    流れる単語と辞書内の単語の間に完全マッチが見つかったことに応答して、その辞書単語に対応する生成された索引内のエントリを、その辞書単語の近似マッチである流れるデータ内のデータ単語を指し示すデータ単語で更新するステップと
    を含む、請求項25に記載の方法。
  37. メタデータ生成操作を実行するステップが、生成されたメタデータに基づき流れるデータの複数の索引を同時に生成するステップを含み、近似マッチ操作を実行するステップが、流れるデータ単語と、複数の辞書内の複数の単語との間で近似マッチ操作を実行するステップを含み、それぞれの辞書が生成された索引のうちの異なる1つに対応している、請求項36に記載の方法。
  38. 索引を生成するステップが、どの辞書内のどの単語の近似マッチでもない流れるデータ内の単語の総索引を生成するステップをさらに含む、請求項37に記載の方法。
  39. 辞書のうちの少なくとも1つがまる1冊分の英語辞書である、請求項37に記載の方法。
  40. 辞書のうちの少なくとも1つがまる1冊分の外国語辞書である、請求項37に記載の方法。
  41. 辞書のうちの少なくとも1つが技術辞書である、請求項37に記載の方法。
  42. 辞書のうちの少なくとも1つが医学辞書である、請求項37に記載の方法。
  43. 辞書が事前定義された単語のリストを含む、請求項36に記載の方法。
  44. 辞書の内容を変更するステップをさらに含む、請求項43に記載の方法。
  45. データストリームが複数のデータ単語を含み、メタデータ生成操作を実行するステップが、
    流れるデータ単語と、複数の事前定義されたパターンとの間で正規表現パターンマッチング操作を実行するステップと、
    生成されたメタデータに基づき流れるデータの複数の索引を同時に生成するステップとを含み、それぞれの事前定義されたパターンが生成された索引のうちの異なる1つに対応しており、さらに、
    流れる単語と事前定義されたパターンの間にパターンマッチが見つかったことに応答して、その事前定義されたパターンに対応する生成された索引内のエントリを、その事前定義されたパターンのパターンマッチである流れるデータ内のデータを指し示すポインタで更新するステップ
    を含む、請求項25に記載の方法。
  46. 索引を生成するステップが、どの事前定義されたパターンのパターンマッチでもない流れるデータ内のデータの総索引を生成するステップをさらに含む、請求項45に記載の方法。
  47. 事前定義されたパターンのうちの少なくとも1つがクレジットカード番号である、請求項45に記載の方法。
  48. 事前定義されたパターンのうちの少なくとも1つが社会保障番号である、請求項45に記載の方法。
  49. 事前定義されたパターンのうちの少なくとも1つが電子メールアドレスである、請求項45に記載の方法。
  50. 事前定義されたパターンのうちの少なくとも1つが電話番号である、請求項45に記載の方法。
  51. 事前定義されたパターンのうちの少なくとも1つがインターネットユニフォームリソースロケータ(URL)である、請求項45に記載の方法。
  52. 事前定義されたパターンのうちの少なくとも1つを変更するステップをさらに含む、請求項45に記載の方法。
  53. メタデータ生成操作を実行するステップが、流れるデータに対して分類操作を実行するステップを含む、請求項22に記載の方法。
  54. 分類操作を実行するステップが、流れるデータの各部分が複数の事前定義されたクラスのうちのいずれかに属するかどうか判定するステップを含む、請求項53に記載の方法。
  55. 分類操作に基づき流れるデータの複数のデータクラス索引を生成するステップをさらに含む、請求項54に記載の方法。
  56. 事前定義されたクラスのうちの少なくとも1つが法律分類である、請求項54に記載の方法。
  57. 事前定義されたクラスのうちの少なくとも1つが医学分類である、請求項54に記載の方法。
  58. 事前定義されたクラスのうちの少なくとも1つがニュース分類である、請求項54に記載の方法。
  59. 事前定義されたクラスのうちの少なくとも1つがスポーツ分類である、請求項54に記載の方法。
  60. 事前定義されたクラスのうちの少なくとも1つが、データストリームの部分が事前定義されたパターンを含むかどうかに関する分類である、請求項54に記載の方法。
  61. 事前定義されたパターンがクレジットカード番号のパターンである、請求項54に記載の方法。
  62. メタデータ生成操作を実行するステップが、流れるデータのヒストグラムを生成するステップを含む、請求項22に記載の方法。
  63. 生成されたヒストグラムに基づき流れるデータ内のデータのクラスタ化操作を実行するステップをさらに含む、請求項62に記載の方法。
  64. クラスタ化操作に基づき流れるデータ内のデータの索引を生成するステップをさらに含む、請求項63に記載の方法。
  65. 生成された索引を、関係データベースによって維持されている既存の作動用索引とマージするステップ
    をさらに含む、請求項25に記載の方法。
  66. 流れるデータが非構造化データである、請求項25に記載の方法。
  67. 非構造化データが複数のドキュメントを含む、請求項66に記載の方法。
  68. 流れるデータが構造化データである、請求項25に記載の方法。
  69. コプロセッサで流れるデータを前処理して流れるデータの複数の特徴ベクトルを生成するステップと、索引を生成するときに生成された特徴ベクトルを使用するステップとをさらに含む、請求項25に記載の方法。
  70. データのメタデータを生成するシステムであって、
    主プロセッサと、
    主プロセッサ以外の処理装置と
    を備え、
    主プロセッサがデータストリームを処理装置に向けるように構成されており、
    処理装置が、データストリームを受け取り、データストリームにメタデータ生成操作を実行してデータストリームのメタデータを生成するように構成されているシステム。
  71. 処理装置がコプロセッサを備える、請求項70に記載のシステム。
  72. コプロセッサが再構成可能論理回路を備える、請求項71に記載のシステム。
  73. 再構成可能論理回路に、メタデータ生成操作を実行するように構成されたファームウェアが展開されている、請求項72に記載のシステム。
  74. コプロセッサがさらに、生成されたメタデータに基づきデータストリームの索引を生成するように構成されている、請求項71に記載のシステム。
  75. コプロセッサがさらに、生成されたメタデータに基づきデータストリームの複数の索引を同時に生成するように構成されている、請求項74に記載のシステム。
  76. データストリームが複数のデータ単語を含み、コプロセッサが、辞書がロードされた完全マッチングモジュールで構成されており、完全マッチングモジュールが、データストリーム内の単語と辞書内の複数の単語との間に存在する任意の完全マッチを検出するように構成されており、コプロセッサがさらに、データストリーム内の単語と辞書内の単語との間で完全マッチを検出したことに応答して、その辞書単語に対応する生成された索引内のエントリを、その辞書単語の完全マッチであるデータストリーム内のデータ単語を指し示すポインタで更新するように構成されている、請求項74に記載のシステム。
  77. コプロセッサがさらに、生成されたメタデータに基づきデータストリームの複数の索引を同時に生成するように構成されており、完全マッチングモジュールがさらに、データストリームの単語と、複数の辞書内の複数の単語との間に存在する任意の完全マッチを検出するように構成されており、それぞれの辞書が生成された索引のうちの異なる1つに対応している、請求項76に記載のシステム。
  78. コプロセッサがさらに、どの辞書内のどの単語の完全マッチでもないデータストリーム内の単語の総索引を生成するように構成されている、請求項77に記載のシステム。
  79. データストリームが複数のデータ単語を含み、コプロセッサが、辞書がロードされた近似マッチングモジュールで構成されており、近似マッチングモジュールが、データストリーム内の単語と辞書内の複数の単語との間に存在する任意の近似マッチを検出するように構成されており、コプロセッサがさらに、データストリーム内の単語と辞書内の単語との間で近似マッチを検出したことに応答して、その辞書単語に対応する生成された索引内のエントリを、その辞書単語の近似マッチであるデータストリーム内のデータ単語を指し示すポインタで更新するように構成されている、請求項74に記載のシステム。
  80. コプロセッサがさらに、生成されたメタデータに基づきデータストリームの複数の索引を同時に生成するように構成されており、近似マッチングモジュールがさらに、データストリームの単語と、複数の辞書内の複数の単語との間に存在する任意の近似マッチを検出するように構成されており、それぞれの辞書が生成された索引のうちの異なる1つに対応している、請求項79に記載のシステム。
  81. コプロセッサがさらに、どの辞書内のどの単語の近似マッチでもないデータストリーム内の単語の総索引を生成するように構成されている、請求項80に記載のシステム。
  82. データストリームが複数のデータ単語を含み、コプロセッサがさらに、生成されたメタデータに基づきデータストリームの複数の索引を同時に生成するように構成されており、コプロセッサが、複数の事前定義されたパターンがロードされた正規表現パターンマッチングモジュールで構成されており、正規表現パターンマッチングモジュールが、データストリーム内の単語と事前定義されたパターンとの間に存在する任意のパターンマッチを検出するように構成されており、コプロセッサがさらに、データストリーム内のデータと事前定義されたパターンとの間のパターンマッチを検出したことに応答して、その事前定義されたパターンに対応する生成された索引内のエントリを、その事前定義されたパターンのパターンマッチであるデータストリーム内のデータを指し示すポインタで更新するように構成されている、請求項74に記載のシステム。
  83. コプロセッサがさらに、どの事前定義されたパターンのパターンマッチでもないデータストリーム内のデータの総索引を生成するように構成されている、請求項82に記載のシステム。
  84. コプロセッサがさらに、生成されたメタデータに基づきデータストリームに対して分類操作を実行するように構成されている、請求項71に記載のシステム。
  85. コプロセッサがさらに、データストリームの各部分が複数の事前定義されたクラスのうちのいずれかに属するかどうか判定するように構成されている、請求項84に記載のシステム。
  86. コプロセッサがさらに、分類操作に基づきデータストリームの複数のデータクラス索引を生成するように構成されている、請求項85に記載のシステム。
  87. コプロセッサがさらに、データストリームのヒストグラムを生成するように構成されている、請求項71に記載のシステム。
  88. プロセッサがさらに、生成されたヒストグラムに基づきデータストリーム内のデータのクラスタ化操作を実行するように構成されている、請求項87に記載のシステム。
  89. プロセッサがさらに、生成された索引を、関係データベースによって維持されている既存の作動用索引とマージするように構成されている、請求項74に記載のシステム。
  90. 複数のウェブページに索引付けする方法であって、
    コプロセッサに複数のウェブページのデータを流すステップと、
    コプロセッサを使って流れるデータのメタデータを生成するステップと、
    生成されたメタデータに基づきウェブページの索引を生成するステップと
    を含む、方法。
  91. コプロセッサが再構成可能論理回路を備える、請求項90に記載の方法。
  92. 再構成可能論理回路に、メタデータを生成するステップを実行するように構成されたファームウェアが展開されている、請求項91に記載の方法。
  93. ファームウェアがさらに、索引を生成するステップを実行するように構成されている、請求項92に記載の方法。
  94. 索引を生成するステップが、生成されたメタデータに基づき複数の索引を生成するステップを含む、請求項93に記載の方法。
  95. メタデータを生成するステップが、流れるデータに対して、複数の辞書内の複数の単語をキーとする完全マッチング操作を実行するステップを含み、それぞれの辞書が生成された索引のうちの異なる1つに対応している、請求項94に記載の方法。
  96. メタデータを生成するステップが、流れるデータに対して、複数の事前定義されたパターンをキーとする正規表現パターンマッチング操作を実行するステップをさらに含み、複数の生成された索引が複数の辞書に対応し、別の複数の生成された索引が複数の事前定義されたパターンに対応するように、それぞれの事前定義されたパターンが生成された索引のうちの異なる1つに対応している、請求項95に記載の方法。
  97. メタデータを生成するステップが、流れるデータに対して、複数の辞書内の複数の単語をキーとする近似マッチング操作を実行するステップを含み、それぞれの辞書が生成された索引のうちの異なる1つに対応している、請求項94に記載の方法。
  98. メタデータを生成するステップが、流れるデータに対して、複数の事前定義されたパターンをキーとする正規表現パターンマッチング操作を実行するステップをさらに含み、複数の生成された索引が複数の辞書に対応し、別の複数の生成された索引が複数の事前定義されたパターンに対応するように、それぞれの事前定義されたパターンが生成された索引のうちの異なる1つに対応している、請求項97に記載の方法。
  99. メタデータを生成するステップが、流れるデータに対して、複数の事前定義されたパターンをキーとする正規表現パターンマッチング操作を実行するステップをさらに含み、それぞれの事前定義されたパターンが生成された索引のうちの異なる1つに対応している、請求項94に記載の方法。
  100. メタデータを生成するステップが、流れるデータに対して分類操作を実行するステップを含む、請求項94に記載の方法。
  101. メタデータを生成するステップが、流れるデータに対してヒストグラム生成操作を実行するステップを含む、請求項94に記載の方法。
  102. 生成されたヒストグラムに基づき流れるデータに対してクラスタ化操作を実行するステップをさらに含む、請求項101に記載の方法。
  103. ファームウェアを使って流れるデータに対して特徴ベクトル抽出を実行するステップをさらに含む、請求項94に記載の方法。
  104. 特徴ベクトル抽出操作が、流れるデータに対して単語解析操作を実行するステップを含む、請求項103に記載の方法。
  105. 特徴ベクトル抽出操作が、解析された流れるデータに対してストップリストフィルタ操作を実行するステップをさらに含む、請求項104に記載の方法。
  106. 特徴ベクトル抽出操作が、解析され、フィルタリングされた流れるデータに対して語幹抽出操作を実行するステップをさらに含む、請求項105に記載の方法。
  107. 生成された索引を、関係データベースによって格納されている複数の作動用索引とマージするステップをさらに含む、請求項94に記載の方法。
  108. メタデータでビットストリームを豊富化する方法であって、
    データオブジェクトに対応するビットストリームを受け取るステップと、
    コプロセッサを使ってビットストリームのメタデータを生成するステップと、
    コプロセッサを使い生成されたメタデータに基づいてビットストリームを変更するステップと
    を含む、方法。
  109. コプロセッサを使い生成されたメタデータに基づいてデータオブジェクトを分類するステップ
    をさらに含み、
    変更するステップが、コプロセッサを使った分類するステップに基づいてビットストリームを変更するステップを含む、請求項108に記載の方法。
  110. 分類するステップが、データオブジェクトに分類を割り当てるステップを含み、変更するステップが、データオブジェクトに割り当てられた分類を示す少なくとも1ビットをビットストリームに加えるステップを含む、請求項109に記載の方法。
  111. コプロセッサが再構成可能論理回路を備える、請求項110に記載の方法。
  112. メタデータを生成するステップが、ビットストリームに対して、複数の辞書内の複数の単語をキーとする完全マッチング操作を実行するステップを含む、請求項111に記載の方法。
  113. メタデータを生成するステップが、ビットストリームに対して、複数の事前定義されたパターンをキーとする正規表現パターンマッチング操作を実行するステップを含む、請求項111に記載の方法。
  114. メタデータを生成するステップが、ビットストリームに対して、複数の辞書内の複数の単語をキーとする近似マッチング操作を実行するステップを含む、請求項111に記載の方法。
  115. 主プロセッサとコプロセッサとを備えるシステム内で、非構造化データのメタデータ索引を構築する方法であって、
    コプロセッサに非構造化データを流すステップと、
    コプロセッサを使い流れる非構造化データに対してメタデータ生成操作を実行して非構造化データに関するメタデータを生成するステップと
    を含む、方法。
  116. 非構造化データがコプロセッサを流れた後で非構造化データを非構造化データのデータストアに格納するステップと、
    生成されたメタデータを構造化データのデータベースに格納するステップと
    をさらに含む、請求項115に記載の方法。
  117. コプロセッサが再構成可能論理回路を備える、請求項116に記載の方法。
  118. 再構成可能論理回路に、メタデータ生成操作を実行するように構成されたファームウェアが展開されている、請求項117に記載の方法。
  119. メタデータが、非構造化データが非構造化データのデータストア内のどこに格納されているかの識別を含む、請求項118に記載の方法。
  120. メタデータを格納するステップが、メタデータをRDBMSに格納するステップを含む、請求項119に記載の方法。
  121. 流すステップが、
    ファームウェアに企業体のすべての非構造化データを流してその非構造化データに関するメタデータを生成するステップ
    を含む、請求項119に記載の方法。
  122. 非構造化データのメタデータ索引を構築するシステムであって、
    主プロセッサと、
    非構造化データストリームを受け取り、非構造化データストリームに対してメタデータ生成操作を実行して非構造化データに関するメタデータを生成するように構成されたコプロセッサと
    を備える、システム。
  123. コプロセッサが再構成可能論理回路を備える、請求項122に記載のシステム。
  124. 再構成可能論理回路に、メタデータ生成操作を実行するように構成されたファームウェアが展開されている、請求項123に記載のシステム。
  125. 非構造化データのメタデータ索引を構築する方法であって、
    流される非構造化データに対してメタデータ生成操作を実行して非構造化データに関するメタデータを生成するように構成されている、再構成可能論理回路に展開されたファームウェアに非構造化データを流すステップと、
    非構造化データを非構造化データのデータストアに格納するステップと、
    非構造化データに関するメタデータを構造化データのデータベースに格納するステップと
    を含む、方法。
  126. データストリームにハードウェア速度で索引付けするように構成されたファームウェアパイプラインを備える、データストリームを受け取るように構成された再構成可能論理回路
    を備える、索引付け装置。
  127. ファームウェアパイプラインがデータストリームを操作する完全マッチングモジュールを備え、完全マッチングモジュールが複数の辞書をキーとして複数の索引の索引付け情報を生成する、請求項126に記載の装置。
  128. ファームウェアパイプラインがデータストリームを操作する近似マッチングモジュールを備え、近似マッチングモジュールが複数の辞書をキーとして複数の索引の索引付け情報を生成する、請求項126に記載の装置。
  129. ファームウェアパイプラインがデータストリームを操作する正規表現パターンマッチングモジュールを備え、正規表現パターンモジュールが複数の事前定義されたパターンをキーとして複数の索引の索引付け情報を生成する、請求項126に記載の装置。
  130. ファームウェアパイプラインがデータストリームを操作するマッチングモジュールをさらに備え、マッチングモジュールが複数の辞書をキーとして別の複数の索引の索引付け情報を生成する、請求項129に記載の装置。
JP2013172294A 2006-11-13 2013-08-22 コプロセッサを使った高性能のデータメタタグ付けおよびデータ索引付けの方法およびシステム Active JP5746286B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US86562906P 2006-11-13 2006-11-13
US60/865,629 2006-11-13

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009536535A Division JP2010509691A (ja) 2006-11-13 2007-11-12 コプロセッサを使った高性能のデータメタタグ付けおよびデータ索引付けの方法およびシステム

Publications (2)

Publication Number Publication Date
JP2014041615A true JP2014041615A (ja) 2014-03-06
JP5746286B2 JP5746286B2 (ja) 2015-07-08

Family

ID=39430470

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2009536536A Active JP5379693B2 (ja) 2006-11-13 2007-11-12 コプロセッサを使った構造化データおよび非構造化データの高性能の統合、処理および探索の方法およびシステム
JP2009536535A Pending JP2010509691A (ja) 2006-11-13 2007-11-12 コプロセッサを使った高性能のデータメタタグ付けおよびデータ索引付けの方法およびシステム
JP2013160166A Active JP5814989B2 (ja) 2006-11-13 2013-08-01 コプロセッサを使った構造化データおよび非構造化データの高性能の統合、処理および探索の方法およびシステム
JP2013172294A Active JP5746286B2 (ja) 2006-11-13 2013-08-22 コプロセッサを使った高性能のデータメタタグ付けおよびデータ索引付けの方法およびシステム

Family Applications Before (3)

Application Number Title Priority Date Filing Date
JP2009536536A Active JP5379693B2 (ja) 2006-11-13 2007-11-12 コプロセッサを使った構造化データおよび非構造化データの高性能の統合、処理および探索の方法およびシステム
JP2009536535A Pending JP2010509691A (ja) 2006-11-13 2007-11-12 コプロセッサを使った高性能のデータメタタグ付けおよびデータ索引付けの方法およびシステム
JP2013160166A Active JP5814989B2 (ja) 2006-11-13 2013-08-01 コプロセッサを使った構造化データおよび非構造化データの高性能の統合、処理および探索の方法およびシステム

Country Status (3)

Country Link
EP (2) EP2092419B1 (ja)
JP (4) JP5379693B2 (ja)
WO (2) WO2008063974A2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8326819B2 (en) 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
WO2008063974A2 (en) * 2006-11-13 2008-05-29 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US10229453B2 (en) 2008-01-11 2019-03-12 Ip Reservoir, Llc Method and system for low latency basket calculation
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
CA2744746C (en) * 2008-12-15 2019-12-24 Exegy Incorporated Method and apparatus for high-speed processing of financial market depth data
US8659389B2 (en) 2008-12-17 2014-02-25 The Jewellery Store Secure inventory control systems and methods for high-value goods
US8930389B2 (en) * 2009-10-06 2015-01-06 International Business Machines Corporation Mutual search and alert between structured and unstructured data stores
JP5546909B2 (ja) * 2010-03-09 2014-07-09 日本電信電話株式会社 データ処理システム及び方法及びプログラム
WO2013071305A2 (en) * 2011-11-10 2013-05-16 Inventime Usa, Inc. Systems and methods for manipulating data using natural language commands
US9292569B2 (en) * 2012-10-02 2016-03-22 Oracle International Corporation Semi-join acceleration
US10146845B2 (en) 2012-10-23 2018-12-04 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
US10102260B2 (en) 2012-10-23 2018-10-16 Ip Reservoir, Llc Method and apparatus for accelerated data translation using record layout detection
US9633093B2 (en) 2012-10-23 2017-04-25 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
JP5891313B2 (ja) * 2012-11-27 2016-03-22 株式会社日立製作所 計算機、計算機システム、及びデータ管理方法
KR101812398B1 (ko) * 2013-05-16 2017-12-26 콘비다 와이어리스, 엘엘씨 Iot 시스템들에 대한 서비스로서의 데이터 주석화
US10019483B2 (en) * 2013-07-30 2018-07-10 Hitachi, Ltd. Search system and search method
US9576039B2 (en) * 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
GB2541577A (en) 2014-04-23 2017-02-22 Ip Reservoir Llc Method and apparatus for accelerated data translation
FR3021788B1 (fr) * 2014-05-30 2023-07-21 Amadeus Sas Procede et systeme d'acces de contenu
WO2016006098A1 (ja) * 2014-07-11 2016-01-14 株式会社日立製作所 データ処理システム、データベース管理システム及びデータ処理方法
WO2016092411A1 (en) * 2014-12-09 2016-06-16 Koninklijke Philips N.V. System and method for uniformly correlating unstructured entry features to associated therapy features
US10942943B2 (en) 2015-10-29 2021-03-09 Ip Reservoir, Llc Dynamic field data translation to support high performance stream data processing
JP6509718B2 (ja) * 2015-12-17 2019-05-08 日本電信電話株式会社 文書分類装置、文書分類方法、及び文書分類プログラム
US10437780B2 (en) 2016-07-14 2019-10-08 Snowflake Inc. Data pruning based on metadata
JP7189125B2 (ja) 2016-08-09 2022-12-13 リップコード インコーポレイテッド 電子記録のタグ付けのためのシステム及び方法
JP6849904B2 (ja) * 2016-10-28 2021-03-31 富士通株式会社 検索プログラム、検索装置および検索方法
IT201700082320A1 (it) * 2017-07-19 2019-01-19 Nuovo Pignone Tecnologie Srl Sistema di ricerca per banche dati e metodo
CN110472031A (zh) * 2019-08-13 2019-11-19 北京知道创宇信息技术股份有限公司 一种正则表达式获得方法、装置、电子设备及存储介质
EP4144048A1 (en) 2020-06-08 2023-03-08 Liquid-Markets GmbH Hardware-based transaction exchange

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998052130A1 (en) * 1997-05-16 1998-11-19 Hitachi, Ltd. Text retrieval method
WO2004017604A2 (en) * 2002-08-15 2004-02-26 Washington University In St. Louis Tcp-splitter: reliable packet monitoring methods for high speed networks
WO2005048134A2 (en) * 2002-05-21 2005-05-26 Washington University Intelligent data storage and processing using fpga devices
JP2005527042A (ja) * 2002-05-21 2005-09-08 ワシントン・ユニバーシティ ネットワーク上でストリーミングされるデータを検査して再定義可能なパターンを検出しまたかつこれに応答した処理を定義するための再プログラミング可能なハードウェア

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3220865B2 (ja) * 1991-02-28 2001-10-22 株式会社日立製作所 フルテキストサーチ方法
JP2783622B2 (ja) * 1989-11-15 1998-08-06 日本電信電話株式会社 複合データベースシステム
JPH05101102A (ja) * 1991-10-03 1993-04-23 Matsushita Electric Ind Co Ltd 検索装置
JPH05204993A (ja) * 1992-01-23 1993-08-13 Matsushita Electric Ind Co Ltd 検索装置
JP3613403B2 (ja) * 1993-08-13 2005-01-26 富士ゼロックス株式会社 マルチメディア文書記憶装置
JP3673111B2 (ja) * 1999-03-31 2005-07-20 株式会社東芝 文書管理方法および文書管理装置および記憶媒体
US7139743B2 (en) * 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval using FPGA devices
JP2003323432A (ja) * 2002-05-08 2003-11-14 Ricoh Co Ltd リレーショナルデータベース管理システム、プログラム及び記録媒体
EP1609038B1 (en) * 2003-02-27 2011-02-16 Nxp B.V. Data processing system having a plurality of processing elements, a method of controlling a data processing system having a plurality of processing elements
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US8311974B2 (en) * 2004-02-20 2012-11-13 Oracle International Corporation Modularized extraction, transformation, and loading for a database
JP2005309727A (ja) * 2004-04-21 2005-11-04 Hitachi Ltd ファイルシステム
US7693856B2 (en) * 2004-06-25 2010-04-06 Apple Inc. Methods and systems for managing data
US20060047636A1 (en) * 2004-08-26 2006-03-02 Mohania Mukesh K Method and system for context-oriented association of unstructured content with the result of a structured database query
US7917299B2 (en) * 2005-03-03 2011-03-29 Washington University Method and apparatus for performing similarity searching on a data stream with respect to a query string
JP4451332B2 (ja) * 2005-03-07 2010-04-14 日本電信電話株式会社 類似時系列データ計算装置、および類似時系列データ計算プログラム
US20070244859A1 (en) * 2006-04-13 2007-10-18 American Chemical Society Method and system for displaying relationship between structured data and unstructured data
WO2008063974A2 (en) * 2006-11-13 2008-05-29 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998052130A1 (en) * 1997-05-16 1998-11-19 Hitachi, Ltd. Text retrieval method
WO2005048134A2 (en) * 2002-05-21 2005-05-26 Washington University Intelligent data storage and processing using fpga devices
JP2005527042A (ja) * 2002-05-21 2005-09-08 ワシントン・ユニバーシティ ネットワーク上でストリーミングされるデータを検査して再定義可能なパターンを検出しまたかつこれに応答した処理を定義するための再プログラミング可能なハードウェア
WO2004017604A2 (en) * 2002-08-15 2004-02-26 Washington University In St. Louis Tcp-splitter: reliable packet monitoring methods for high speed networks

Also Published As

Publication number Publication date
JP2010511925A (ja) 2010-04-15
WO2008063974A3 (en) 2008-11-20
WO2008063973A3 (en) 2008-12-24
EP2092440A4 (en) 2013-06-19
WO2008063974A2 (en) 2008-05-29
EP2092419A4 (en) 2013-06-05
EP2092419A2 (en) 2009-08-26
JP2010509691A (ja) 2010-03-25
JP5379693B2 (ja) 2013-12-25
JP5814989B2 (ja) 2015-11-17
JP5746286B2 (ja) 2015-07-08
WO2008063973A2 (en) 2008-05-29
EP2092419B1 (en) 2020-01-01
JP2013242915A (ja) 2013-12-05
EP2092440B1 (en) 2019-01-09
EP2092440A2 (en) 2009-08-26

Similar Documents

Publication Publication Date Title
JP5746286B2 (ja) コプロセッサを使った高性能のデータメタタグ付けおよびデータ索引付けの方法およびシステム
US8326819B2 (en) Method and system for high performance data metatagging and data indexing using coprocessors
US11449538B2 (en) Method and system for high performance integration, processing and searching of structured and unstructured data
US11853334B2 (en) Systems and methods for generating and using aggregated search indices and non-aggregated value storage
Urvoy et al. Tracking web spam with html style similarities
US8965894B2 (en) Automated web page classification
US8577823B1 (en) Taxonomy system for enterprise data management and analysis
WO2015149533A1 (zh) 一种基于网页内容分类进行分词处理的方法和装置
US8316041B1 (en) Generation and processing of numerical identifiers
Jabbar et al. A survey on Urdu and Urdu like language stemmers and stemming techniques
US20090112845A1 (en) System and method for language sensitive contextual searching
Konchady Building Search Applications: Lucene, LingPipe, and Gate
Maciołek et al. Cluo: Web-scale text mining system for open source intelligence purposes
Raghavendra Nayaka et al. An efficient framework for algorithmic metadata extraction over scholarly documents using deep neural networks
Kostakos Strings and things: A semantic search engine for news quotes using named entity recognition
US20210073258A1 (en) Information processing apparatus and non-transitory computer readable medium
CN108733687A (zh) 一种基于文字识别的信息检索方法和系统
CN113934910A (zh) 一种自动优化、更新的主题库构建方法,及热点事件实时更新方法
Singh et al. User specific context construction for personalized multimedia retrieval
JP2004206571A (ja) 文書情報提示方法及び装置並びにプログラム及び記録媒体
JP2003099429A (ja) 用語集生成装置及び用語集生成プログラム並びに用語集検索装置
JP7116940B2 (ja) オープンデータを効率的に構造化し補正する方法及びプログラム
Wu et al. ChemBrowser: a flexible framework for mining chemical documents
Kadam Develop a Marathi Lemmatizer for Common Nouns and Simple Tenses of Verbs
CN105488035A (zh) 一种对话式的自然语言处理方法和装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140708

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141002

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20141007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150414

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150507

R150 Certificate of patent or registration of utility model

Ref document number: 5746286

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250