コプロセッサを使った構造化データおよび非構造化データの高性能の統合、処理および探索の方法およびシステム
ユーザおよび企業体アプリケーションに、企業体の構造化データおよび非構造化データへの効率的で、インテリジェントなアクセスを提供するためにそれらのデータを統合する方法およびシステムが本明細書で開示される。SQLコマンドなどの標準化データベース問い合わせ形式を使って、企業体の構造化と非構造化データの両方に問い合わせを向けることができる。問い合わせを処理する必要に応じて、コプロセッサを使い、非構造化データに対する(全文検索などの)データ処理タスクをハードウェアアクセラレートすることができる。さらに、ハードウェアアクセラレートされたデータ処理のために企業体の非構造化データのどの部分がコプロセッサに送られるべきか判定するために、従来の関係データベース技術を使って、関係データベースによって格納されている構造化データにアクセスすることもできる。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照および優先権主張)
本出願は、参照によりその開示全体が本明細書に組み込まれる、2006年11月13日に出願された、米国仮特許出願第60/865629号の優先権を主張するものである。
【0002】
本出願は、参照によりその開示全体が本明細書に組み込まれる、(Thompson Coburn代理人整理番号44826−65592により識別される)「Method and System for High Performance Data Metatagging and Data Indexing Using Coprocessors」という名称の、本出願と同日に出願された、米国特許出願第_____号に関連するものである。
【0003】
本発明は、一般に、データベースアクセラレーションの分野を対象とし、詳細には、企業体データ探索、ドキュメントウェアハウス、テキストマイニング、テキスト解析、情報アクセス、アクショナブルインテリジェンス(actionable intelligence、活用可能な形の情報)の実現といった領域を含む企業データウェアハウスアクセラレーションを対象とする。
【背景技術】
【0004】
(用語)
以下の各項に、本明細書で使用する様々な用語のいくつかの定義を示す。また以下の項には、これらの用語に関連する背景情報も示す。
【0005】
GPP:本明細書で使用する場合、「汎用プロセッサ」(またはGPP)という用語は、固定された形態を有し、その機能が可変であり、この可変機能が、命令を取り出し、その命令を実行することによって定義されるハードウェア装置(例えば、IntelのXeonプロセッサやAMDのOpteronプロセッサなど)をいい、従来の中央処理装置(CPU)がその一般的な例である。
【0006】
再構成可能論理:本明細書で使用する場合、「再構成可能論理」という用語は、その形態および機能を、製造後に現場で大幅に変更(すなわち再構成)することのできる任意の論理技術をいう。これはGPPと対比されるものであり、GPPの機能は製造後に変化し得るが、その形態は製造時に固定されている。
【0007】
ソフトウェア:本明細書で使用する場合、「ソフトウェア」という用語は、GPPまたは他の処理装置上で展開されるデータ処理機能をいい、ソフトウェアは、ソフトウェアがロードされる装置の形態を変更し、または定義するのに使用することはできない。
【0008】
ファームウェア:本明細書で使用する場合、「ファームウェア」という用語は、再構成可能論理または他の処理装置上で展開されるデータ処理機能をいい、ファームウェアは、ファームウェアがロードされる装置の形態を変更し、または定義するのに使用され得る。
【0009】
コプロセッサ:本明細書で使用する場合、「コプロセッサ」という用語は、主プロセッサを有する計算処理システムにおいて、他の構成要素と連携して動作するように設計された計算エンジンをいう(マルチコアプロセッサアーキテクチャの場合のように、主プロセッサ自体が複数のプロセッサを備えてもよい)。典型的には、コプロセッサは、特定のタスク集合を実行するように最適化され、システム性能を最適化するために(典型的にはGPPである)主プロセッサのタスクを軽減するのに使用される。コプロセッサによって実行されるタスクの範囲は、コプロセッサのアーキテクチャに応じて、固定とすることも、可変とすることもできる。固定式コプロセッサアーキテクチャの例には、広範囲のタスクを実行するグラフィックスプロセッサユニットや、比較的狭い範囲のタスク集合を実行する浮動小数点数値コプロセッサが含まれる。再構成可能コプロセッサアーキテクチャの例には、幅広い種類の固定型の、またはプログラム可能な計算エンジンを実施するように再構成され得る、フィールドプログラマブルゲートアレイ(FPGA)などの再構成可能論理回路が含まれる。コプロセッサの機能は、ソフトウェアおよび/またはファームウェアによって定義されてもよい。
【0010】
ハードウェアアクセラレーション:本明細書で使用する場合、「ハードウェアアクセラレーション」という用語は、主プロセッサから1つまたは複数の処理タスクを軽減して主プロセッサに関連したこれらのタスクの処理待ち時間を低減するために、コプロセッサ上に実施されたソフトウェアおよび/またはファームウェアを使用することをいう。
【0011】
企業体:本明細書で使用する場合、「企業体」という用語は、その進行中の業務の一部として(「企業体データ」と呼ばれる)データを格納し、かつ/または処理する任意の事業組織または行政主体をいう。
【0012】
データベース:本明細書で使用する場合、「データベース」という用語は、問い合わせ処理を迅速化するための索引付け機能を有する永続的データストアをいう。様々なデータベース管理システム(DBMS)実装形態が、関係型(RDBMS)、オブジェクト指向型(OODBMS)、階層型などとして類別され得る。しかし、今日業界において優勢なアーキテクチャは関係型の、行/列からなる、構造化照会言語(SQL)対応データベースである。ANSI標準のSQLデータベースエンジンは、普通は効率的な方法で、問い合わせに応答して構造化データを検索することのできる、成熟したソフトウェアアーキテクチャである。
【0013】
構造化データ:本明細書で使用する場合、「構造化データ」という用語は、関係データベースに合わせて正規化され、永続化されているデータをいう。正規化とは、データを表の行/列形式にし、重複データを別々の表に抽出するデータ設計プロセスである。関係列内の構造化データには、Bツリー索引を用いて索引付けして、これらの列内のデータへのアクセスを大幅に迅速化することができる。SQLでは、構造化列にはサイズ限界がある。これらの列には、一貫性のあるデータ品質を保証するための制約条件および参照整合性が適用され得る。一般的な構造化SQLデータ型の例は、INT(eger)、NUMBER、CHAR(acter)、VARCHAR、DATE、TIMESTAMPなどである。構造化データの処理は、周知の関係データベース技術が適するものである。非常に重要なことに、本発明は、これらの機能を活用して、関係データベースが最も得意とすること、すなわち、索引付きルックアップを使った構造化データへの迅速なアクセスを行う。
【0014】
非構造化データ:本明細書で使用する場合、「非構造化データ」という用語は、前記の構造化データの定義の範囲に入らないデータをいう。したがって、非構造化データという用語は、自由な形のテキストまたは埋込み値が含まれているファイル、ドキュメントまたはオブジェクトを含む。このデータは、データを生成したアプリケーションによって使用された、しばしばバイナリ形式のデータを含む、完全なバイト集合を含む。非構造化データの例には、ワードプロセッシングドキュメント(Microsoft Wordの固有の形式のドキュメントなど)、Adobe Acrobatドキュメント、電子メール、画像ファイル、映像ファイル、オーディオファイル、およびファイルを作成したソフトウェアアプリケーションに関連する固有の形式の他のファイルなどが含まれる。SQLでは、非構造化列は、無制限ではないにせよ、非常に大きいサイズを有する。非構造化SQLデータ型の一般的な例は、BLOB、TEXT、XML、RAW、IMAGEなどである。また、非構造化オブジェクトは、データベースの外部に、例えばオペレーティングシステムファイルなどに格納されてもよい。データベースエンジン内からこれらの外部オブジェクトへのアクセスには、データベース表のメタデータ内の格納場所へのリンクを使用する。
【0015】
本明細書で使用する際に、XMLという用語を通常は「構造化」として類別しない理由には以下のものがある:
・XMLは、大きな値、またはサイズが無制限の値を持ち得る。
・XMLは、しばしば、強制されたデータ型を持たないことがある。
・XMLは柔軟なスキーマを有する。
・要素および属性のXML値は、しばしば、従来の「構造化」データベース列ほど厳格に適合されず、不要なものが完全に除去されていないことがある。
【0016】
柔軟なスキーマを有する「半構造化」データの概念が、特にXMLについては台頭しつつあるが、本発明では、関係データベースに合わせて正規化され、永続化されていないあらゆるものは、非構造化データとみなす。したがって、XMLデータ型のものである列は、この「非構造化データ」の定義に該当することになる。XMLデータは、本発明で概説するハードウェアアクセラレートされた探索および統合の最有力候補である。
【0017】
メタデータ:本明細書で使用する場合、データオブジェクトおよびドキュメントの文脈における「メタデータ」という用語は、データオブジェクトまたはドキュメントを記述し、または特徴付けるデータをいう。オブジェクトおよびドキュメントのメタデータの例には、それだけに限らないが、ファイル型、バイトサイズ、作成日、最終変更日、著者、表題、ドキュメント/オブジェクトのデータソースに関する情報(任意選択で、ドキュメントを作成するのに使用されたプログラムの名称およびバージョン番号を含む)、データが他のデータとマッチするかどうかに関する情報、主題対象、分類情報(ドキュメント/オブジェクトの概念に関する情報、ドキュメント/データオブジェクト内に含まれる人名/地名/企業名、語数カウントなど)、ドキュメント/オブジェクト内のデータに関連する位置情報、ドキュメント/オブジェクトに関する他の内容から派生する情報が含まれる。
【0018】
バス:本明細書で使用する場合、「バス」という用語は、装置および場所がそのアドレスによりアクセスされる任意の物理的相互接続を含む論理バスをいう。本発明の実施に際して使用され得るバスの例には、それだけに限らないが、PCIバスファミリ(PCI−XやPCI−Expressなど)およびHyperTransportバスが含まれる。
【0019】
パイプライン化:本明細書で使用する場合、「パイプライン」、「パイプライン化シーケンス」、または「連鎖」という用語は、あるアプリケーションモジュールの出力が、シーケンス内の次のアプリケーションモジュールの入力に接続されているアプリケーションモジュールの配列をいう。このパイプライン化配列は、各アプリケーションモジュールが、所与のクロックサイクルの間に受け取る任意のデータを独立に操作し、次いで、別のクロックサイクルの間にその出力をシーケンス内の次の下流側アプリケーションモジュールに渡すことを可能にする。
【0020】
全文検索:本明細書で使用する場合、「全文検索」という用語は、ドキュメントまたはオブジェクトの全体を通してスキャンし、あらゆる単語またはバイトを考慮することをいう。この処理は、近似、柔軟なスキーマでのタグ付けに基づくトークン化、ワイルドカード処理、または複雑なマッチングを可能にし得る。
【0021】
SQL対応クライアントアプリケーション:本明細書で使用する場合、クライアントアプリケーションの文脈における「SQL対応の」という用語は、関係型のSQLベースのデータベースサーバにアクセスすることのできるクライアントアプリケーションをいう。ANSI標準のSQL言語は、いずれも関係型のSQLベースのデータベースサーバにアクセスすることのできる、多数の高度なソフトウェアクライアントアプリケーションの進化を可能にしている。これらのSQL対応クライアントアプリケーションの例には、ビジネスインテリジェンス(BI)報告ツール、抽出転送ロード(ETL)ツール、企業体用ソフトウェアアプリケーション(ERP、CRM、SAP)、ミドルウェア、および様々なプログラミング言語で書かれた多数の任意の特注アプリケーションなどが含まれる。
【0022】
ビジネスインテリジェンス報告ツール:本明細書で使用する場合、「ビジネスインテリジェンス報告ツール」(または「BI報告ツール」)という用語は、関係データベースへの探索問い合わせを作成し、報告書を生成、提示するための、ユーザが使いやすいグラフィカルインターフェース(GUI)を提供するソフトウェアアプリケーションをいう。BI報告ツールは、ユーザ指定の図形的に作成された問い合わせを、SQLコマンドなどの標準化データベース問い合わせに変換する。次いで、そのように作成されたSQLコマンドが、所望のデータの検索を実行するためにRDBMSに送られる。
【0023】
テキスト解析およびテキストマイニング:本明細書で使用する場合、「テキスト解析」および「テキストマイニング」という用語は、意味論のような複雑な言語概念を使ってドキュメントオブジェクトを操作するアルゴリズムをいう。テキスト解析/テキストマイニング処理の例には、名前付きエンティティ認識、内容抽出、ドキュメント分類、ドキュメント要約、自然言語処理、統計パターン学習、および関連性ランク付けが含まれる。
【0024】
企業体はそのデータを多種多様な方法で格納、管理し続ける。企業体がそのデータを格納するための1つの方法が、関係データベース管理システム(RDBMS)を使ったデータベース内に格納するものである。このようなRDBMSに格納された、表形式の正規化されたデータを一般に構造化データという。例えば企業体は、その売上記録および顧客情報を、書式設定し、不要な情報を除去し、適合させ、構造化データとしてRDBMS内に格納する。当分野では、典型的には構造化照会言語(SQL)などの標準化データ言語に基づいてこのような構造化データにインテリジェントにアクセスするための様々な公知のツールが開発されている。
【0025】
しかし一般にこのような表形式の構造化データは、企業体の格納データ全体のごくわずかな部分を表すにすぎないものであると推定される。格納データの残りの部分は典型的には、その記憶が企業体内の多種多様なファイルシステムおよび記憶手段の間に拡散しているのが普通である非構造化データで構成されている。非構造化オブジェクトおよびドキュメントの爆発的増加により、多くの企業体が深刻な「情報過負荷」状態に陥っている。このすべての構造化データおよび非構造化データにインテリジェントに、統合的にアクセスすることは、難しい課題を提起する。この課題を難しくする一因は、多くの企業体では、企業体の非構造化データの記憶が各データベースから、しばしば異なる組織部門によって別々に管理されていることである。多くの組織が直面している大きな課題が、その関係データベース内の構造化データを、BLOBを含む、この比較的整理されていない大量の他の非構造化データと効率よく、効果的に統合することである。構造化データは、テキスト解析を使って、「なにが?」、「どこで?」、「いつ?」、「だれが?」のような比較的単純明快な質問への回答を提供することができ、非構造化データは「なぜ?」のようなより複雑な質問に回答することができる。
【0026】
図1にこの問題を示す。多くの企業体では、すべてのドキュメントが、企業体全体に広がっているいくつかの別々のサーバの間のどこに位置しているかに関しての整理がほとんど行われていない。例えば、企業体がそのデータを格納するための記憶空間102は、ドキュメント管理システムA104、ネットワークファイルサーバB106、アプリケーションサーバC108といった別々の構成要素の間に拡散している。この記憶空間内の所望のドキュメントにアクセスし、所望のドキュメントを探し出すために、ユーザ100は、異なる各構成要素にアクセスするのに異なるツールを使用せざるを得なくなる可能性が高い(例えば、システム104にアクセスするのにカスタムアプリケーションを使用し、サーバ106にアクセスするのにWindows(登録商標) Explorerなどのソフトウェア製品を使用し、サーバCにアクセスするのにカスタムアプリケーションプログラミングインターフェース(API)を使用するなど)。インターネット110上でデータの探索を行うには、さらに別のツール(Googleなどのウェブサーチツール)が使用される可能性が高いはずである。このようにドキュメントの場所およびアクセス手段が乱雑な寄せ集めになっていると、ユーザは、記憶空間102内のどこに目的のドキュメントが位置しているか熟知していなければならないだけでなく、異種の構成要素104、106および108にアクセスするためのいくつかの異なるツールの使い方にも習熟していなければならない。しかも、図1に示すような企業体探索機能によってユーザは、関係データベース内に格納されている他の企業体データに直接アクセスし、これらと自分の探索を相関させることができない。
【0027】
ユーザの探索が何らかの形の全文検索を含むとき、このような全文照会をサポートするソフトウェアはしばしば、特に問い合わせが多くの長いドキュメントの本文全体をスキャンすることを必要とするときには、完了するのに比較的長い時間を要する。これが遅いのは、一部には、従来のソフトウェアを実行するときの汎用プロセッサ(GPP)の性能に関する固有の制約条件のためである。現在の索引付け法には、「発見能力(find−ability)」の実現に大きな限界がある。索引付けは関連するドキュメントを探し出すのに幾分役立つこともあるが、つづり間違い、交替するつづりの変形、正規表現を探索するタスク、または多数の用語を探索するタスクは、現在の索引付け法では容易にも、迅速にも解決されない問題であり、効果的な索引を作成するための時間に対応できなくなることが多い。言い換えると、何かの発見に役立つ効果的な索引を構築するためには、何を発見しようとしているのかがあらかじめ分かっていなければならない。従来のシステムにおける欠点の一例は、つづり間違いを探索するための容易な、または標準的な方法がないことである。この問題は、データが動的であり、または絶えず変化する状況においてはさらに悪化する。
【0028】
構造化データに関しては、SQLは、多くの関係データベースに対して標準化された一貫性を有するプログラミングインターフェースを提供することができるため、産業において広範囲に配備されている。しかし、本発明者らは、構造化データのためのSQLと、非構造化データに対する全文検索機能(またはテキスト解析やテキストマイニングといった他の処理機能)との統合を標準化しようとする現行の試みには改善が必要であると認識している。これらの試みの実現形態は、しばしば、性能上の障害を明確に示している。標準SQLを、構造化された表形式のデータと様々な形の非構造化データとを統合するように拡張しようとするいくつかの取り組みが行われている。例えば、半構造化XMLデータへの関係型アクセスのためのSQL/XML、非構造化マルチメディアデータのためのSQL/MM、非構造化外部データのためのSQL/MED、正規表現、ワイルドカード、語幹抽出、シソーラスおよびブール演算を使ってXMLデータを探索するXQuery1.0およびXPath2.0Full−Text1.0などである。本発明者らは、非構造化データを処理するこれらのSQL拡張機能の大部分が、一貫性を欠く、種々雑多な言語の寄せ集めを表すものであり、それがこれらの拡張機能のIT業界における普及を妨げていると考えている。本発明者らの考えでは、重大な性能上の問題がしばしばこれらの標準化の取り組みを遅らせている可能性が高い。
【0029】
また、SQLの普及の結果として、いくつかのビジネスインテリジェンス(BI)報告ツールも開発されている。本発明者らは、非構造化テキスト解析をサポートする報告ツールの機能は比較的限られており、当分野では、この領域における改善が求められていると考えている。これらのソフトウェアツールの大部分は、非構造化データに対する全文検索、および他の高度なテキストマイニングおよび解析を実行するための、比較的限られた能力しか備えていない。重ねていうが本発明者らは、各ツールの性能は特に有効なものになっていないと考えている。
【先行技術文献】
【特許文献】
【0030】
【特許文献1】米国特許第6711558号明細書
【特許文献2】米国特許第7139743号明細書
【特許文献3】米国特許出願公開2006/0294059号明細書
【特許文献4】米国特許出願公開2007/0067108号明細書
【特許文献5】米国特許出願公開2007/0130140号明細書
【特許文献6】米国特許出願公開2007/0174841号明細書
【特許文献7】米国特許出願公開2007/0237327号明細書
【発明の概要】
【発明が解決しようとする課題】
【0031】
したがって本発明者らは、当分野には、非構造化データへのより高速で、統合的なアクセスを可能とするシステムが大いに求められていると考えている。さらに本発明者らは、当分野には、構造化データと非構造化データを相互に連係させ、統合して、非構造化データのインテリジェントなアクセスをサポートするためのより良い方法も求められていると考えている。
【課題を解決するための手段】
【0032】
これらの目的のために、本発明者らは、従来の標準に基づく構造化データの問い合わせ処理と緊密に統合された方法で、問い合わせ処理時に、より複雑な非構造化データ解析のハードウェアアクセラレーションを活用するように構成された新規の方法およびシステムを開示する。その際に本発明は、好ましくは、以下の特許明細書および特許出願明細書に開示されている基礎をなすハードウェアアクセラレーション技術を利用する。「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」という名称の米国特許出願公開第_____号明細書、「Method and Device for High Performance Regular Expression Pattern Matching」という名称の米国特許出願公開第2007/0130140号明細書、(2006年5月2日に出願された米国出願第11/381214号から公開された)「Method and Apparatus for Approximate Pattern Matching」という名称の米国特許出願公開第_____号明細書、「Firmware Socket Module for FPGA−Based Pipeline Processing」という名称の米国特許出願公開第2007/0174841号明細書、および「Method and System for High Throughput Blockwise Independent Encryption/Decryption」という名称の米国特許出願公開第2007/0237327号明細書。各特許明細書および特許出願明細書の開示全体を参照により本明細書に組み込むものとする。
【0033】
このハードウェアアクセラレーションは、ハードウェアアクセラレーションに適した問い合わせ処理の部分(非構造化データに対して実行される全文検索操作など)に対して適用される。どの非構造化データがハードウェアアクセラレートされたデータ処理操作に適用されるべきかインテリジェントに限定するために(および、それによって全体の応答時間を早めるために)、本発明を実施するシステムは、データベースに格納された構造化データの索引付き問い合わせも用いることができる。好ましくはこれらの問い合わせは、RDBMSを対象とするSQLコマンドといった、標準化された索引付きデータベース問い合わせとして作成される。このように、ユーザは構造化データと非構造化データの両方を対象とする問い合わせを、よく知る方法で作成することができる。本発明の好ましい実施形態によるAPIを用いれば、問い合わせ処理を、構造化データ部分とハードウェアアクセラレートされた非構造化データ部分とに効果的に分岐させることができる。
【0034】
ハードウェアアクセラレートされたデータ処理操作は、好ましくは、前記の特許明細書および特許出願明細書に記載されているように、GPPとは別のコンピュータリソース(好ましくは、ファームウェアが展開されている再構成可能論理回路といったコプロセッサ)によって実行される。このためにコプロセッサを利用することにより、GPPによって実行される従来のソフトウェアを使って非構造化データの全文検索を実行する従来の解決法と比べて、問い合わせ処理の著しいアクセラレーションが達成され、それによってシステムの(1つまたは複数の)GPPを他のシステムタスクを実行するために解放することができる。
【0035】
問い合わせ処理プロセスに役立つ構造化され、索引付けされたデータは、少なくとも一部は、オブジェクト(ドキュメントなど)のメタデータを含むことが好ましい。このメタデータには、好ましくはRDBMS内の構造化関係表に格納されており、非構造化データのどの部分がコプロセッサに流されるべきか特定するために、SQLコマンドなどの標準化された問い合わせを使って問い合わせることができる。実際、一態様によれば、本発明は本質的にはコプロセッサのデータ処理機能をSQL対応にする。
【0036】
好ましくは、メタデータで索引付けされた非構造化データは、非構造化データのためのデータ処理機能が展開されているコプロセッサを用いた機器内の高性能ディスク空間内に格納されている。このように、ネットワーク帯域幅の制約条件なしで、非構造化データをコプロセッサに流すことができる。また非構造化データは、高速ネットワークを介して機器200からアクセス可能などこかに格納することもできる。
【0037】
本発明者らはさらに、非構造化オブジェクトからのメタデータの生成も、コプロセッサを使って(好ましくは、適切なファームウェアが展開されている再構成可能論理回路の形のコプロセッサを使って)ハードウェアアクセラレートすることができることを開示する。メタデータを生成すべき非構造化オブジェクトを適切に構成されたコプロセッサに流し、それによってその非構造化データに索引付けするのに使用されるメタデータの生成を迅速化することができる。このメタデータ生成に続いて、これらの非構造化オブジェクトの本体全部が、好ましくは、機器のディスク空間に取り込まれる。
【0038】
またメタデータは、好ましくは、機器の内部のRDBMSに格納されるが、本発明の好ましい実施形態の問い合わせ処理機能の一部として、機器の外部にある別の関係データベースに格納された構造化データにもアクセスすることができることに留意すべきである。
【0039】
本発明者らは、後述する一般的なデータ探索に加えて、本発明を無数の用途に適用することができるものと予想している。例えば、保健医療の症例管理においては、臨床研究データベース、患者記録データベース、保険および法的ファイルのデータベース、法規則データベースといった多種多様なデータソースを、本明細書で説明する機器によって統合し、それによって、診断の向上、誤診の低減、適切な治療の保証、サービス品質の向上、利用可能なリソースの利用率増大、不正行為の低減、費用の管理その他の目標に関して、保健医療組織の機能を強化することができる。
【0040】
科学分野では、科学的臨床的文献、治療記録および報告書、化合物データベース、医薬データベース、医学的症状データベースなどといった異種のデータソースを、本明細書で説明する機器を使って統合することができる。このように、望ましい目標には、生物医学的および化学的成分、遺伝標識、例えばタンパク質や遺伝子、塩基配列などと、諸症状、すなわち、「AはBを阻害する」、「AはBを活性化する」、「AはBと関連付けられる」といったパターンの間の関係を抽出することなどが含まれる。成分抽出とは、この文脈では、ドメイン辞書に基づく生物医学テキストおよび化学テキストから遺伝子、化学物質、症状および症候群の名称および徴候を認識することをいう。
【0041】
諜報およびテロ対策の分野では、報道および調査報告書、通信傍受、ドキュメント、ならびに事件ファイル(すべて様々な言語で書かれている)といった異種のデータソースを、本明細書で説明する機器によって統合することができる。このデータへの統合的でインテリジェントなアクセスによって検出することのできる目標およびパターンには、組織的結社およびネットワーク、行動/攻撃パターン、脅威評価、戦略策定、戦術評価、および事件予測が含まれる。
【0042】
法執行分野では、本明細書で説明する機器を使って、諜報/テロ対策分野と同様のデータソースを、犯罪および裁判報告書、法律文書、ならびに地理的、人口統計学的データと共に統合することができる。このような統合の目標には、犯罪パターン(時間的、地理空間的、対人的、および/または組織的)の検出、ならびに犯罪捜査および訴追の支援が含まれるはずである。
【0043】
有価証券詐欺行為探知の分野では、金融報告書および報道、企業ファイルおよびドキュメント、売買その他の取引記録といった異種のデータソースすべてを、本明細書で説明する機器を使って統合し、それによって、インサイダー取引、報告違反、マネーロンダリング、不法取引、価格異常といった行為を探知する能力を高めることができる。
【0044】
顧客関係管理(CRM)の分野では、顧客電子メールおよび書簡、コールセンターメモおよび転写記録、ならびに既存のCRMシステムに維持されている他の顧客データといった異種のデータソースを、本明細書で説明する機器を使って統合することができる。このような統合により、おそらくは、製品およびサービス品質の問題を特定し、製品設計および管理に役立てることができる。
【0045】
評判管理の分野では、異種のデータソースには報道、ウェブページおよび市場分析が含まれ、これらのデータソースを本明細書で説明する機器を使って統合して、企業体と社会との関係の状態を明らかにするテキストマイニングおよびパターン検出操作を実行することができる。
【0046】
同様に、本明細書で説明する機器は、個人と組織とのつながりを判断するために電子メールその他の通信、企業ドキュメント、および報道を分析する社会的ネットワーク分析ツールとして使用することもできる。
【0047】
本明細書で説明する機器を展開するための機が熟していると考えられる他の領域には、業務管理、競争インテリジェンス(competitive intelligence)、法的開示(例えば、訴訟の原告が、「ジョンスミス」に関連する、維持されており、または被告の管理下にあるすべてのデータを要求する場合など)、コンテンツ権利管理、法規順守その他が含まれる。
【0048】
さらに、本明細書で説明する発明は、内容から導出されるメタデータの自動生成を含めて、データに対して実行されるメタデータ生成操作を著しく速めるのに使用することができる。
【0049】
本発明の前記その他の特徴および利点は、以下の説明および図面を考察すれば当業者には明らかになるであろう。
【図面の簡単な説明】
【0050】
【図1】企業体がユーザに企業体のデータへのアクセスを可能にするための従来の方法を示す図である。
【図2】本発明の例示的実施形態を示す図である。
【図3】本発明の一実施形態によるドキュメント取込み前処理操作の概要を例示する図である。
【図4】本発明の一実施形態による探索機器を例示する図である。
【図5】本発明の一実施形態によるドキュメント取込み前処理操作を例示する論理図である。
【図6】本発明の一実施形態によるドキュメント取込み前処理操作のための図4の探索機器内のデータフローを例示する図である。
【図7a】図4の探索機器において使用するためのプリント回路基板を例示する図である。
【図7b】図4の探索機器において使用するためのプリント回路基板を例示する図である。
【図8】どのようにしてファームウェアパイプラインが複数の再構成可能論理回路にわたって展開され得るかを例示する図である。
【図9】本発明の一実施形態による問い合わせ処理操作の概要を例示する図である。
【図10a】どのようにして関係データベースとの対話が実行されるかに関してプロセッサとコプロセッサとの間の関係を例示する図である。
【図10b】図10aに対応する本発明の一実施形態による問い合わせ処理操作を例示する流れ図である。
【図10c】図10aに対応する本発明の一実施形態による問い合わせ処理操作を例示する論理図である。
【図11a】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図11b】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図11c】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図11d】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図11e】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図11f】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図11g】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図12】問い合わせの少なくとも一部が探索機器の外部に位置するドキュメントに対して実行される、本発明の一実施形態による問い合わせ処理操作の概要を例示する図である。
【図13】問い合わせによって指定された構造化データを検索するために探索機器の外部にあるRDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作の概要を例示する図である。
【図14】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作を例示する論理図である。
【図15a】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15b】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15c】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15d】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15e】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15f】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15g】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15h】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図16】問い合わせを処理するために探索機器によって実行されるAPIの処理フローを例示する図である。
【図17a】ドキュメント取込み前処理操作および問い合わせ指定のデータ処理操作を実行するためにどのようにしてFAMパイプラインを再構成可能論理回路上に展開することができるかを例示する図である。
【図17b】ドキュメント取込み前処理操作および問い合わせ指定のデータ処理操作を実行するためにどのようにしてFAMパイプラインを再構成可能論理回路上に展開することができるかを例示する図である。
【図18a】構造化データおよび非構造化データが共通データストアに格納されている例示的実施形態を示す図である。
【図18b】構造化データおよび非構造化データが共通データストアに格納されている例示的実施形態を示す図である。
【発明を実施するための形態】
【0051】
図2に、企業体機器200が、ユーザコンピュータ100のユーザに、(関係データベース210によって格納されているような)構造化データと、(構成要素104、106および108を介して、またはインターネット110を介して格納され、アクセスすることのできるような)非構造化データへのインテリジェントで、統合的なアクセスを可能にするように構成されている本発明の好ましい実施形態の概要を示す。機器200の実施形態を探索機器と呼ぶこともできるが、本明細書で説明するように、機器200により、探索以外に、または探索に加えて他のデータ解析機能をサポートすることもできることに留意すべきである。
【0052】
好ましくは、探索機器200は、ハードウェアアクセラレートされたデータ処理機能はもとより、少なくとも一部は構造化データを対象とする問い合わせを処理する問い合わせ処理APIも用いる。図4に、機器200の好ましい実施形態を示す。機器200内には、コプロセッサ450が、ディスクコントローラ414および416、ならびに(直接、またはRAM408などのシステムメモリ経由で間接的に)データストア304および306によって定義されるディスクサブシステムと、(ネットワークインターフェース410を介した)ネットワーク420の一方または両方から流されるデータを受け取るように配置されている。データストア304は、構造化関係データが格納されているRDBMSを備え、データストア306は、非構造化データが格納されているファイルシステムを備える。しかし、非構造化データは、以下で図18aおよび図18bに関連して説明するように、任意選択でRDBMS304内の非構造化データ列に格納されてもよいことに留意すべきである。ネットワーク420は、好ましくは、多種多様なドキュメントストア308(構成要素104、106および/または108)が位置する企業体ネットワーク(LANであれWANであれ)を備える。データストア304は構造化データのためのデータストアとして特徴付けられているが、データストア304は、任意選択で、やはり取込みおよび問い合わせ処理の対象とし得る非構造化データBLOBを含んでもよいことに留意すべきである。
【0053】
好ましい実施形態では、コプロセッサ450は、再構成可能論理回路402を備える。好ましくは、データはシステムバス406を介して再構成可能論理回路402に流れ込むが、他の設計アーキテクチャも可能である(図7b参照)。好ましくは、再構成可能論理回路402はフィールドプログラマブルゲートアレイ(FPGA)であるが、そうでなくてもよい。また、システムバス406は、再構成可能論理回路402と、機器のプロセッサ412および機器のRAM408とを相互接続することもできる。好ましい実施形態では、システムバス406はPCI−XバスまたはPCI−Expressバスとすることができるが、そうでなくてもよい。
【0054】
データストア306は任意のデータ記憶装置/システムとすることができるが、好ましくは、何らかの形の大容量記憶媒体である。例えば、データストア306は、ディスクアレイなどの磁気記憶装置とすることができる。しかし、本発明の実施に際しては他の種類の記憶媒体も使用に適することに留意すべきである。
【0055】
プロセッサ412およびRAM408によって定義されるコンピュータシステムは、当分野の技術者が理解するような任意の市販のコンピュータシステムとすることができる。例えばコンピュータシステムは、IntelのXeonシステムや、AMDのOpteronシステムなどとすることができる。したがって、機器200の中央または主プロセッサとして使用されるプロセッサ412は、好ましくは、GPPを備える。
【0056】
再構成可能論理回路402には、その機能を定義するファームウェアモジュールが展開されている。ファームウェアソケットモジュール404は、再構成可能論理回路との間のデータ移動要件(コマンドデータとターゲットデータの両方)を処理し、それによって、やはり再構成可能論理回路上に展開されているファームウェアアプリケーションモジュール(FAM)連鎖350に一貫性のあるアプリケーションインターフェースを提供する。FAM連鎖350の各FAM350iは、ファームウェアソケットモジュール404から連鎖350に流れる任意のデータに対して指定されたデータ処理操作を実行するように構成されている。以下で、本発明の好ましい実施形態による再構成可能論理上に展開され得る好ましいFAMの例を説明する。
【0057】
FAMによって実行される特定のデータ処理操作は、FAMがファームウェアソケットモジュール404から受け取るコマンドデータによって制御/パラメータ化される。このコマンドデータはFAM特有のものとすることができ、コマンドを受け取るとFAMは、受け取ったコマンドによって制御されるデータ処理操作を実行するように編成される。例えば、完全マッチ操作を実行するように構成されたFAM内では、FAMの完全マッチ操作は、完全マッチ操作を実行するための(1つまたは複数の)キーを定義するようにパラメータ化され得る。このようにして、完全マッチ操作を実行するように構成されたFAMに1つまたは複数の異なるキーの新しいパラメータをロードするだけで、そのFAMを、別の完全マッチ操作を実行するように容易に編成し直すことができる。
【0058】
FAMは、受け取ったコマンドによって指定されるデータ処理操作を実行するように編成された後で、ファームウェアソケットモジュールから受け取るデータストリームに対して、コマンドで指定されたデータ処理操作を実行することができるようになる。よってFAMは、指定されたデータストリームを指定された方法で処理するための適切なコマンドによって、編成されることができる。FAMがそのデータ処理操作を完了すると、そのFAMには、FAMによって実行されるデータ処理操作の性質を変更するようFAMを再編成させる別のコマンドを送ることができる。FAMは、ハードウェア速度で動作(し、FAMを介して高スループットの目標データを提供)するのみならず、そのデータ処理操作のパラメータを変更するよう柔軟にプログラムし直すこともできる。
【0059】
FAM連鎖350は、好ましくは、パイプライン化シーケンスとして配列された複数のファームウェアアプリケーションモジュール(FAM)350a、350b、...を備える。しかし、ファームウェアパイプライン内には、FAM350iの1つまたは複数の並列経路を用いることもできることに留意すべきである。例えばファームウェア連鎖は、相互に並列な、第1のパイプライン化経路として配列された3つのFAM(FAM350a、350b、350cなど)と、第2のパイプライン化経路として配列された4つのFAM(FAM350d、350e、350fおよび350gなど)とを含んでもよい。さらに、ファームウェアパイプラインは、既存のパイプライン経路から分岐する1つまたは複数の経路を備えることもできる。本発明の実施者は、所与の用途の処理要件に基づき、FAM連鎖350の適切なFAM配列を設計することができる。
【0060】
通信路430は、ファームウェアソケットモジュール404を、パイプライン化FAMの第1のFAM350aの入力と接続する。第1のFAM350aの入力は、FAM連鎖350への入口点として使用される。通信路432はパイプライン化FAM350mの最後のFAMの出力を、ファームウェアソケットモジュール404と接続する。最後のFAM350mの出力は、FAM連鎖350からの出口点として使用される。通信路430も通信路432も、好ましくは、マルチビット経路である。
【0061】
特に、ファームウェアソケットモジュールとの間のデータフローに関連して、機器200によって使用されるソフトウェアおよびハードウェア/ソフトウェアインターフェースがどういったものであるかは、前記の組み込まれた米国特許出願公開第2007/0174841号明細書に詳細に記載されている。
【0062】
図7aに、機器200においてコプロセッサ450として使用するために市販のコンピュータシステムのバス406に接続することのできるプリント回路基板またはカード700を示す。図7aの例では、プリント回路基板は、メモリ素子702およびPCI−Xバスコネクタ704と通信状態にあるFPGA402(Xillinx Virtex II FPGAなど)を含む。好ましいメモリ素子702は、SRAMおよびDRAMメモリを含む。好ましいバスコネクタ704は標準カード端コネクタである。
【0063】
図7bに、プリント回路基板/カード700の代替の構成を示す。図7bの例では、プリント回路基板700には、バス706(PCI−Xバスなど)、1つまたは複数のディスクコントローラ708、およびディスクコネクタ710もインストールされている。当分野で理解されているように、任意の市販のディスクインターフェース技術がサポートされ得る。この構成では、ファームウェアソケット404は、プロセッサ412に、専用PCI−XまたはPCI−eバス706を介して接続された(1つまたは複数の)ディスクへの通常のアクセスを可能にするためのPCI−X/PCI−X(またはPCI−e/PCI−e)ブリッジとしても使用される。図3bに示すディスクコントローラおよびディスクコネクタに加えて、またはこれらの代わりにネットワークインターフェースを使用することができることに留意すべきである。
【0064】
図7aまたは図7bの構成において、ファームウェアソケット404は、メモリ702をPCI−Xバスからアクセス可能にすることができ、それによって、OSカーネルがメモリ702を、ディスクコントローラおよび/またはネットワークインターフェースコントローラからFAMへ転送するためのバッファとして利用することが可能になることは注目に値する。また、図7aおよび図7bのプリント回路基板上にはただ1つのFPGA402しか示されていないが、プリント回路基板700上に複数のFPGAを含めることにより、または機器200に複数のプリント回路基板700をインストールすることにより複数のFPGAをサポートすることができることが理解されるはずであることも注目に値する。図8に、1つのパイプライン内の多数のFAMが複数のFPGAにまたがって展開されている例を示す。
【0065】
本明細書で論じる例示的実施形態において、「ドキュメント」という用語は、本発明のシステムによって処理される非構造化データを記述するのに使用される。しかし、「ドキュメント」という用語の用法は例示のためのものにすぎず、本発明のシステムおよび方法を使って他の形の非構造化データを処理することもできることに留意すべきである。
【0066】
機器200の性能を向上させ得る任意選択の一構成が、大量の(おそらくはすべての)企業体のドキュメントを機器の搭載データストア306に取り込むことができる機能である。さらにその際に機器200が、取り込む各ドキュメントに関するメタデータを構築することが好ましい。このドキュメントメタデータは、次いで、搭載するRDBMS304などの関係データベースシステムに格納することのできる構造化データを含む。
【0067】
図3に、好ましい実施形態の一態様によるドキュメント取込み前処理の概要を示す。好ましくは、ユーザコンピュータ100上に表示された何らかの形のドキュメント取込みGUI300を介して、ユーザは、どの(1つまたは複数の)ドキュメントがデータストア306に取り込まれるべきか指定することができる。任意選択でユーザは、取り込まれるべき(1つまたは複数の)ドキュメントに関する様々な形のメタデータを打ち込むこともできる。しかし、コプロセッサ450(好ましくは、ファームウェア350が展開されている再構成可能論理回路402)は、所望のメタデータ生成操作を自動的に実行するように編成され得るため、これは必要になるとは限らない。GUI300を介した適切なユーザコマンドに応答して、企業体ネットワーク420を介してアクセス可能であるが、機器200の外部にあるデータストア308に格納された1つまたは複数のドキュメント312が機器200に送られる。機器200が、NTFS、FAT、CIFS、様々な特色を有するUNIX(登録商標)ファイルシステムといった共通ファイルシステム上に格納されたドキュメントへのアクセス、ならびにHTTPを介したウェブアクセスを可能にするために用いるドキュメント検索機能352においては、様々なアダプタを用いることができる。
【0068】
ファームウェアパイプライン350にある各FAMは、好ましくは、FAMが受け取るドキュメントに対してドキュメントメタデータ生成操作を実行するように編成されている。ファームウェア350において用いられ得るドキュメントメタデータ生成法の例には、それだけに限らないが、品詞タグ付け、情報およびエンティティ抽出、ドキュメント分類、ドキュメントクラスタ化、およびテキスト要約が含まれる。これらの操作は機能的には、1つまたは複数のドキュメントのデータストリームに対する一連の「変換」とみなすことができる。ドキュメントに対して実行され得るドキュメント分類操作の一例は言語分類を含む。言語分類では、ドキュメントを、ドキュメント内のテキストが最も密接にマッチする言語を特定するように構成されている統計的Nグラムアルゴリズムに適用することができる。別のドキュメント分類操作では、ドキュメントのある種の分類を知るために隠れマルコフモデル(HMM)を用いることができる。さらに、ファームウェア350が正規表現パターンマッチングを用いてドキュメントに関する分類情報をさらに作成することもできる。例えば、使用され得るドキュメント分類器は、問題のドキュメントがクレジットカード番号を含むかどうか識別するフラグとすることができる。そのような場合、ファームウェア350は正規表現パターンマッチング操作を実施するFAMを含むことができ、この正規表現パターンマッチング操作は、FAMに流されるドキュメントがクレジットカード番号のように見えるデータパターンを含むかどうか判定することを中心としてキー指定される。この操作の結果に基づき、クレジットカード標識メタデータを正または負に設定することができる。
【0069】
従来のメタデータ生成操作の手法はこれらの操作をプロセッサ412などの主プロセッサによって実行されるソフトウェアに組み込んでおり、これは、前記のように、性能不足を示していると考えられる。本発明者らは、これらのメタデータ生成操作をコプロセッサ450に肩代わりさせることにより、著しいアクセラレーションを達成することができると考えている。メタデータ生成操作を実行するためのコプロセッサの使用に関するさらなる詳細は、前記の組み込まれた(Thompson Coburn代理人整理番号44826/65592として識別される)「Method and System for High Performance Data Metatagging and Data Indexing Using Coprocessors」という名称の、本出願と同日に出願された、米国特許出願第_____号明細書に記載されている。
【0070】
ファームウェア350の操作によって生成されたドキュメントメタデータ314は、次いでRDBMS304に格納することができ、そこでRDBMSエンジンは、後で、データストア306内のどのドキュメントが、問い合わせ処理時にコプロセッサ450によってハードウェア速度で処理されるべきか特定するために、標準化されたデータベース問い合わせを使って問い合わせすることのできるこのドキュメントメタデータの索引を生成し、維持するように動作する。受け取られたドキュメント312がファームウェア350によって処理された後で、ドキュメント312を非構造化データのデータストア306に格納することにより、ドキュメント312を機器に取り込むことができる。メタデータ生成およびドキュメント取込みの動作は、好ましくは、ほぼリアルタイムで事実上同時に行われる。ドキュメントメタデータ314は、任意選択で、機器200外部の構造化データベースに格納することもできることに留意すべきである。
【0071】
図5に、このドキュメント取込み前処理を論理フローとして示す。ステップ1でユーザは、GUI300と対話して、機器200に取り込むための新しいドキュメント312を特定する。GUI300は、任意選択で、ドキュメント312からどんなメタデータを生成すべきかユーザが指定することができるように構成されてもよい。次にステップ2で、ドキュメント312がその元の場所(企業体ドキュメントストア308、インターネットまたは企業体ネットワーク420からアクセス可能な他の何らかのネットワーク)から取り出される。次いでファームウェア350が、ドキュメント312に対してそのドキュメントメタデータ生成操作500を実行してドキュメントメタデータ314を生成する。次いでステップ3で、ドキュメント312がデータストア306のファイルシステムに格納され、ドキュメントメタデータが(そのデータストア306のファイルシステムにおける場所を含めて)RDBMS304の関係表に保存される。図6に、このデータフローを機器200上に重ね合わせたものを示す。
【0072】
このように、機器200はこれ以後、RDBMS304によって索引付けされたドキュメントメタデータ314を使って、どのドキュメントにコプロセッサ450による問い合わせ指定のデータ処理操作(全文検索操作など)を行うべきか判断するのに役立てることができる。さらに、機器200内では標準化RDBMS技術が活用されているため、所与の問い合わせ904を処理するときに、どのドキュメントにコプロセッサベースのデータ処理操作を行うべきか判断するのに、多くのユーザに周知の標準化データベース問い合わせを使用することができる。
【0073】
一般には、関係データベース304は、ドキュメントメタデータ314の問い合わせを最適化するためにBツリー索引などの索引付け法を使用することが好ましい。また、ハードウェアアクセラレートされたメタデータ生成によって生成され得る索引が豊富な情報を有するために、索引の効力を活用することによって、近接検索(すなわち、単語Xが単語YからZ単語位置未満分だけ隔てられているインスタンスを検出する)を含む、洗練された全文検索操作を効率よく達成することができる。
【0074】
さらに、企業体がその企業体データ処理操作に役立てるために機器200を使用するときには、ドキュメント取込み前処理を、将来を見越して新規に作成されたドキュメントに対して適用するだけでなく、企業体の既存のドキュメントの全部または相当な部分に対して遡及的に適用することもできる。したがって、機器200をインストールするときに、企業体は、効果的で、効率のよいドキュメント探索を可能にするために、図3、図5および図6に関連して詳述したように、機器を介して企業体のドキュメントの全部または相当な部分を取り込もうとしてもよい。しかし、図3、図5および図6に関連して説明した取込み前処理の対象とされるドキュメントは、機器200の外部のドキュメントだけに限定される必要はないことに留意すべきである。前処理は、以前にメタデータ生成操作の対象とされたことのないデータストア306内のドキュメントにも、新規のメタデータ生成操作を必要とするドキュメントにも適用することができる。
【0075】
また、ドキュメントがそこから前処理のために機器200に取り込まれる記憶308は、企業体ネットワークを介してアクセス可能な任意のデータストア(企業体ネットワーク420内の企業体データストアや、企業体ネットワークの外部にあっても、企業体ネットワークからアクセス可能なデータストアなど)とすることができることにも留意すべきである。例えば、機器200に取り込まれるドキュメントは、ウェブページなどのインターネットコンテンツとすることができる。
【0076】
相当数のドキュメント312のためのドキュメントデータ314がRDBMS304に格納されると、機器200はそれ以後ユーザ指定の問い合わせを処理することができるようになる。機器200内のAPIは、好ましくは、機器が、RDBMS304内のドキュメントメタデータ314と対照して標準化データベース問い合わせを処理し、次いで、問い合わせの結果集合を使って、どのドキュメントが問い合わせ指定のデータ処理操作のためにコプロセッサ450に送られるべきか判定することを可能にするように構成されている。
【0077】
図9に、どのようにしてこのような問い合わせを処理することができるかの概要を例示する。ユーザが自分のデスクトップ上で従来のBI報告ツール900にアクセスすることができ、このツール900を介してユーザは、報告ツール900を使用する際の訓練の一部としてすでに熟知している何らかの構文を使った所望の問い合わせ904を入力することができる。次いで報告ツール900は、ユーザ指定の問い合わせ904から標準化データベース問い合わせ(SQLコマンド906など)を生成するように動作する。探索機器200は、この標準化データベース問い合わせ906を受け取るように配置されている。機器200は、(BI報告ツール900がバス406に接続されている場合には)このような問い合わせをBI報告ツール900から直接受け取ることもでき、ネットワークインターフェース410を介してBI報告ツール900から間接的に受け取ることもできる。次いで探索機器200によって実行されるAPI902が、SQLコマンド906をRDBMS304およびデータストア306に対して適宜適用するように動作する。好ましくは、API902の操作は、機器のプロセッサ412によって実行される。しかし、API機能の少なくとも一部は、任意選択で、コプロセッサ450によって展開されてもよいことに留意すべきである。好ましくは、このAPI902は、可能な場合には、既存のANSIのSQL標準および拡張機能(SQL/XML、SQL/MED、SQL/MM、XML/Full−Textなど)に適合している。SQL標準および拡張機能が所望の機能をサポートしていない場合、APIのために(データベース用語で「外部処理手順」として類別され得る)外部機能を考案することができる。図10aにAPI902の好ましい実施形態を示す。以下で論じる図16には、API902の代替の実施形態が記載されている。
【0078】
したがって、本発明の好ましい実施形態は、SQL対応クライアントアプリケーションが、SQLコマンドを介してコプロセッサ450のハードウェアアクセラレートされた機能にアクセスすることができるようにするよう動作する。したがって、機器200は、BI報告ツール900などのSQL対応クライアントアプリケーションと統合することができるだけでなく、さらに、または代替として、他のSQL対応アプリケーションと統合することもできる。例えば機器200は、様々な企業体ソフトウェアアプリケーション(ERP、CRM、SAPなど)、ミドルウェアプログラム、クライアントプログラム、多数のプログラミング言語のいずれかで書かれた(ODBCやJDBC接続などを使った)特注のプログラム、データベース304にリンクされている別のSQLデータベースといったSQL対応アプリケーションのいずれかまたはすべてと統合することができる。
【0079】
機器200自体におけるSQL対応機能は、好ましくは、従来のSQLリレーショナルエンジンソフトウェア950との、高性能の緊密な統合を含む。この一例が図10aに示されている。リレーショナルエンジンソフトウェア950は、関係データベースにアクセスするための従来の既製品のソフトウェアとすることができる。リレーショナルエンジン950による問い合わせ処理をコプロセッサ450と統合するために、リレーショナルエンジンソフトウェア950にいくつかのカスタマイズを加えることができる。所望の統合を達成するためのこの種のカスタマイズをもたらし得る方法の例としては、C言語による外部処理手順(SQLエンジンに動的にリンクされるカスタムライブラリ)、ユーザ定義の型および関数、ストアドプロシージャ、カスタムデータプロバイダなどがある。
【0080】
例えば、SQLコマンドでいくつかの命令文に遭遇したときに所望の外部処理手順を呼び出すコードをリレーショナルエンジン950に加えることができる。この一例が図10cに示されており、リレーショナルエンジン950は、「text_contains」という命令文を、(図10aにコプロセッサインターフェースソフトウェア952として示されている)外部プログラムを呼び出すものとして理解するように構成されている。リレーショナルエンジン950は、このような命令文に遭遇すると、以下で図10bに関連して説明するように、コプロセッサインターフェースソフトウェア952を呼び出し、APIソフトウェア952に適切なデータを渡してコプロセッサを望みどおりに機能させる。リレーショナルエンジン950のために、SQLコマンドにおいて遭遇する命令文によって異なる外部プログラムを呼び出し、それによって、コプロセッサ450を用いて異なる処理結果を達成するようないくつかの外部処理手順を考案することができることが容易に理解されるはずである。前記のように「text_contains」文は、コプロセッサを完全または近似マッチング操作のために構成する外部処理手順に結び付けることができ、「relevance ranking」文は、コプロセッサを、関連性の大きさに従ってデータオブジェクトを採点するように構成する外部処理手順に結び付けることができる。
【0081】
機器200がMySQLなどのオープンソースデータベースを用いて実施されている場合には、統合を、リレーショナルエンジンのソースコード自体の内部で直接達成することができる。オープンソースを用いた方法が提供する高い柔軟性があれば、API902として使用することができ、クライアントアプリケーションとデータベース304との間のすべてのSQL要求を仲介するSQLパーサ/インタプリタを開発することができる。API902のためのSQLパーサ/インタプリタ戦略の実装例は図16に示されている。
【0082】
図10aの実施形態に戻って、図10bに、ストアドプロシージャ、外部処理手順、ユーザ定義の関数といったこのような標準SQL拡張機能に基づくものである問い合わせ処理の解決法を実施するのに使用することのできる一連のステップを示す。図10bは、同じ一連のステップ(1101から1170)を使用する図10cと密接に結びついている。ステップ1101で、ANSI標準SQLコマンド906が構成され、SQL対応クライアントアプリケーションを介して呼び出される。次にステップ1110で、リレーショナルエンジン950がプロセッサ412上で実行され、SQLコマンド906を構文解析して、RDBMS304にどのようにして問い合わせすべきか決定する。オプティマイザヒントおよび様々なコード化法により、SQL開発者は、処理の順序が保証され得るコマンドを構築することができる。すなわち、オプティマイザヒントは、SQLコマンド906内の様々な命令文の間の適切な処理順序を定義することができる。図10cを参照すると、リレーショナルエンジンは、「text_contains」文を処理する前に「date_loaded」文を満足させることを必要とするはずである。手近にあるタスクは、RDBMS304によって格納されている索引付き表を使って、コプロセッサ450による全文スキャンを必要とするオブジェクトを限定しようとするものである。本質的にリレーショナルエンジン950は、構造化データを対象とする問い合わせの部分をRDBMS304に適用する(この問い合わせ部分は、図9および図11bの例においてSQLコマンド908として識別されている)。ステップ1120でRDBMS304は、SQLコマンド906の「date_loaded」制約条件部分で表されている基準を、そのドキュメントメタデータ索引の内容と対照してマッチさせた後で、ドキュメントのリスト910を返す。ドキュメントリスト910で識別されるドキュメントは、好ましくは、データストア306内の各ドキュメントの場所によって識別することができる。ステップ1125で、リレーショナルエンジン950は次に、「text_contains」文に遭遇し、この命令文は外部処理手順を呼び出すものとして理解される。次いでリレーショナルエンジン950は、「text_contains」文と結び付けられているコプロセッサインターフェースソフトウェア952を呼び出す。リレーショナルエンジン950は「text_contains」文の後に問い合わせ文字列が続いたものをコプロセッサインターフェースソフトウェア952に渡し、さらにコプロセッサインターフェースソフトウェア952に、ステップ1120で生成されたファイルリスト910を知らせる。コプロセッサインターフェースソフトウェア952はさらには、好ましくは、コプロセッサ450に問い合わせ文字列を、問い合わせ指定のデータ処理操作を実行するのに適した構成となるようコプロセッサに命ずるコマンドと共に渡すことによって、コプロセッサの操作を指図する。次いでステップ1130で、リスト910によって識別された非構造化ドキュメントの本文全体がコプロセッサ450に読み込まれる。好ましくは、コプロセッサインターフェースソフトウェア952は、ディスクコントローラ416に、データストア306からリスト910に記載された非構造化ドキュメントを流すよう求める命令を出す。次いでデータストア306は、コプロセッサ450によって処理されるデータストリーム914として要求されたドキュメントをコプロセッサ450に提供する。次いでコプロセッサ450は、ハードウェア速度でデータストリーム914に対する指定されたデータ処理操作を実行し(ステップ1140)、従来の手法と比べて問い合わせ処理操作の大幅なアクセラレーションが実現される。次いで、コプロセッサ450によって検出された「ヒット」があれば、コプロセッサはそれをRAM408内の一時データベース表に結果集合916として返すことができる(ステップ1150)。コプロセッサインターフェースソフトウェア952は、さらには、リレーショナルエンジン950にこの結果集合916を知らせることができる。任意選択でステップ1160において、リレーショナルエンジン950は、結果916に対する任意の所望の集約、相互相関、または後続の解析を実行するようこれらの結果916を後処理することもできる。
【0083】
次にステップ1170で、リレーショナルエンジン950は、好ましくは、報告ツール900が求める書式に探索結果916を書式設定し、報告ツール900はその既存の技術を使ってそれらの探索結果916をユーザに提示する。
【0084】
産業界では多種多様なBI報告ツール900が使用されているため、API902は、好ましくは、少なくとも主要なBI報告ツールの大部分とインターフェースし得るように構成されている。例えば、探索機器200によって維持される構成ファイルを、企業体内での探索機器200の初期設定時に、探索機器200が相互のデータ交換を可能にするために対話する相手となる特定のBI報告ツール900を識別するようにセットアップすることができる。
【0085】
また、従来のBI報告ツール900を、探索機器200とユーザの間のインターフェースとして使用しなくてもよいことにも留意すべきである。例えば、探索機器200を、BI報告ツールと同じ基本機能を提供するように構成されている、ユーザに表示するための独自のGUIを提供するように構成することもできる。このような場合には、API902を、任意選択でユーザ指定の問い合わせ904をデータベース問い合わせ908に直接変換するように構成することもできる。
【0086】
さらに、標準化された問い合わせ906は、BI報告ツール900またはユーザから発せられなくてもよいことにも留意すべきである。BI報告ツール900またはユーザから発せられるのではなく、問い合わせは、探索機器200によって格納され、または知られているデータを呼び出す他の何らかの企業体アプリケーションから発せられてもよい。
【0087】
また、本明細書で探索機器200の一部として説明しているAPI902は、任意選択で、その全部または一部が、BI報告ツール900または他の上位レベルアプリケーション内に位置してもよいことにも留意すべきである。
【0088】
図10cには、本発明の好ましい実施形態による簡単な問い合わせ処理操作の論理図が示されている。この例では、ユーザは、2007年7月7日にロードされた、テキスト制約条件:「blastn」という単語の近くにある「high throughput」という句、を含むデータストア306内のドキュメントを探索しようとしている。ユーザがBI報告ツール900にこの目標に向けた問い合わせを入力した後で、BI報告ツールは、図10cに示すようなSQLコマンド906を生成するように動作する。このSQLコマンドは、問い合わせがそれと対照して処理されるべきRDBMS304内の表を指定する「select」文を含む。次の命令文は、探索の条件を指定する「where」文である。条件の1つは、ドキュメントがデータストア306にロードされた日付であり、この条件は2007年7月7日に設定されている。次の条件は前記のテキスト条件である。リレーショナルエンジンは、図10cに示すようにこのSQLコマンド906を受け取り、解釈する(ステップ1101参照、図11aも参照)。
【0089】
リレーショナルエンジン950は、前記のように、「date_loaded」制約条件をドキュメントメタデータ項目として識別し、さらに、テキスト制約条件をコプロセッサ450によって解決されるべき問題として識別する。図10aおよび図10bの実施形態に関して、リレーショナルエンジン950は、SQLコマンド906の「date_loaded」部分に対応するSQLコマンド908を使ってRDBMS304に問い合わせする(ステップ1110参照、図11bも参照)。
【0090】
次いでRDBMSは、メタデータ索引314によって、「date_loaded」制約条件にマッチするものとして識別されたすべてのドキュメントのリスト910を返し(すなわち、RDBMS304はその場合、このSQLコマンド908をそのドキュメントメタデータ索引に対して適用して、2007年7月7日にデータストア306にロードされたすべてのドキュメントのリストを返すはずである)、このリスト910はRAM408に格納することができる(ステップ1120参照、図11cも参照)。このリスト910は、好ましくは、2007年7月7日にロードされた各ドキュメントが位置するデータストア304のファイルシステム内の場所を識別するものである。
【0091】
また、API902は(図10aおよび図10bの実施形態ではAPI952を介して、ステップ1125参照)、データストア306にリスト910上のすべてのドキュメントの検索を求める要求912も出す(図11d参照)。また、API902は(図10aおよび図10bの実施形態ではAPI952を介して、ステップ1125参照)、コプロセッサのFAMパイプライン350に送るために、「「blastn」の近くにある「high throughput」」という条件を中心として構築された全文検索を実行するようにFAMパイプラインを編成する制御信号1100を生成するようにも動作する。次いでこの制御信号1100は、好ましくは、ドキュメントがコプロセッサ450に到達する前にコプロセッサ450に送られる(好ましくは、コプロセッサ450上にあるファームウェアソケットモジュール404に送られる)(図11e参照)。
【0092】
要求912に応答してデータストア306は、図11eに示すように、コプロセッサ450に(好ましくは再構成可能論理回路402上のファームウェアに)送るためのデータストリーム914を出力する(ステップ1130も参照)。次いでコプロセッサ450は(好ましくは、再構成可能論理回路402上のFAMパイプライン350を介して)、問い合わせ内のテキスト制約条件に従い、ストリーム914内のドキュメントのハードウェアアクセラレートされた全文検索を実行する(ステップ1140参照、図11f参照)。次いでこの高速データ処理操作の結果は、ファームウェアソケットモジュール404を経由してAPI902に返される(ステップ1150参照)。次いでAPI902(好ましくはリレーショナルエンジン950)は、図11gに示すように、それらの探索結果916を、ユーザにユーザの問い合わせを満足させる探索結果を提示することのできる報告ツール900に返すために、報告ツール900が求める方法で書式設定するように動作する(ステップ1170参照)。
【0093】
そのためのドキュメントメタデータ314が生成されているドキュメント312は、必ずしも機器内でデータストア306に格納されている必要はないことにも留意すべきである。それらのドキュメントは、望ましい場合には、機器200の外部のドキュメントの元の場所に保持することもできる。そのような場合、それらのドキュメントをコプロセッサ450によって全文処理すべきときには、それらのドキュメントを、ネットワークインターフェース410を介して機器200およびコプロセッサ450に流すことができる。図12は、RDBMS306によって返されたリスト910上のドキュメントが、データストア306内部のドキュメントと、企業体ネットワークを介してアクセス可能な他の何らかのデータストア308に位置する機器200の外部のドキュメントの両方を含む場合のこの態様のドキュメント探索を示す、図9の対応図である。そのような場合には、API902により、データストア306に送るためと機器200の外部に送るための2つの要求912aおよび912bが作成される。この構成は、探索が実行される際の待ち時間をネットワーク帯域幅が制約し得るためにあまり望ましくないが、それでもやはり本発明者らは、ドキュメントがデータストア306内に保持されていない場合でさえも、ある程度のアクセラレーションがなおも実現されることを認めるものである。この状況では、ドキュメント312をデータストア306に取り込む処置は、移動操作ではなくコピー操作とすることができることも注目に値する。企業体の中には、ドキュメント312の原本を機器200の外部にある元の場所に残そうとするものもある。そうした状況では、ドキュメント312のコピーだけがデータストア306によって格納される。
【0094】
好ましい実施形態の別の強力な態様は、機器200が、データ処理操作を実行するときに探索機器200の外部にある任意の企業体RDBMS1300にアクセスすることができるものである。この態様の好ましい実施形態の概要が図13に示されている。この態様の好ましい実施形態の一部として、API902により外部RDBMS1300に対してSQLコマンド1302が発行され、それらのコマンドに対する応答1304がAPI902によって受け取られる。したがって、機器200は、対象とするドキュメントの探索を実行するときに、企業体によって維持されている既存の構造化データを効率よく活用することができる。
【0095】
図14に、この態様のSQLコマンド処理の論理図を示す。図14の例では、ユーザには、なぜ最近企業体のいくつかの顧客の売上が鈍化しているのか調べるという任務が割り当てられている。この任務の一部として、ユーザは、ネットワークによって格納されている、このような売上不振に対する有益な洞察を提供し得るドキュメントを調査しようとする。これを達成するためにユーザは、2007年7月7日にロードされた、「widget」または「new product」の近くにある「trouble」というテキストを含む、その月間売上高が10,000製品(widget)を下回る顧客のすべてのドキュメントを検索することを目的とする問い合わせを指定する。BI報告ツール900は、これらの問い合わせ制約条件を、図14に示すようなSQLコマンド906に変換するように動作する。
【0096】
企業体はその顧客売上データを探索機器200の外部にあるRDBMS1300に格納するため、SQLコマンド906は、外部RDBMS1300内のデータ表をRDBMS304内のドキュメントメタデータ表と結合するように動作する。この処置は、当分野で公知のSQL操作である、(ドキュメントメタデータ表の)「D.Customer_ID」と(外部関係表の)「C.Customer_ID」とのマージキーに基づき、外部RDBMS1300内の「Customers@external_DB C」関係表の顧客データをRDBMS304内のドキュメントメタデータ関係表と結合する「inner join」文に反映されている。このマージに基づき、リレーショナルエンジン950は、外部関係表から、どの顧客が10,000を下回る売上高を有するか特定し、それらの顧客をドキュメントメタデータ表内のフィールドに結び付けることができる。次いで、ドキュメントメタデータ内の「date_loaded」メタデータフィールドに基づいて、それらの顧客のドキュメントをさらに限定することができる。最終的には、売上高とロードされた日付を満たす顧客のドキュメントを、コプロセッサ450内で「「widget」または「new product」の近くにある「trouble」」という制約条件に基づく高速テキストマイニングのために処理することができる。その後は、図10bに関連して説明したように処理を続行することができる。
【0097】
図15aに、図11aを反映した、API902によるSQLコマンド906の受け取りを示す。リレーショナルエンジン950は、SQLコマンド906内のどの(1つまたは複数の)制約条件が外部RDBMS1300を対象とするものであるか特定し、SQLコマンド906の外部関係データ制約条件部分を対象とする新しいSQLコマンド1302を生成する(図14のSQLコマンド906の例では、この外部制約条件部分は売上高制約条件である)。リレーショナルエンジン950は、新しいSQLコマンド1302を処理するために外部RDBMS1300に対して適用する(図15b参照)。その後リレーショナルエンジン950は、外部RDBMSによるSQLコマンド1302の処理から結果集合1304を受け取る(図15c参照)。
【0098】
次いでリレーショナルエンジン950は、引き続きそのSQLコマンド906を処理し、コマンド906にRDBMS304を対象とする別の制約条件が残っているかどうか判定する。制約条件が残っていない場合、結果集合1304内の顧客に基づいてRDBMS304のSQLコマンド908が構築される。制約条件が残っている場合、結果集合1304と、残りの内部RDBMSを対象とする制約条件(図14の例では「date loaded」制約条件など)とに基づいて、RDBMS304のSQLコマンド908が構築される。したがって、図14のSQLコマンド906の例では、リレーショナルエンジンは、その顧客フィールドが結果集合1304内の顧客によって限定され、そのロードされた日付フィールドが2007年7月7日によって限定されるドキュメントメタデータを有するすべのドキュメントを探し出すSQLコマンドを適用するはずである。この新しいコマンドを処理するためにRDBMS304に送ることができる(図15c参照)。
【0099】
コマンド908に応答してドキュメントリスト910を受け取ると、問い合わせ処理の残りの部分が、図15dから図15hに示すように、図11cから図11gに関連して説明したのと同様に続行される。この例では、FAMパイプライン350の制御信号1100は、どのドキュメントが「widget」または「new product」の近くにある「trouble」というテキストを含むか特定するためにデータストリーム914内のドキュメントの全文検索を実行するようFAMパイプライン350を編成するように構成されている。
【0100】
前記のように、図16には、API902の代替の実施形態が開示されている。図11aから図11gの作業例に関連して、ステップ1600、1602、1604、1606、1616、および1620は、図11aに示すフローに対応するものである。ステップ1624およびステップ1628は図11bに示すフローに対応するものである。ステップ1632は図11cに示すフローに対応するものである。ステップ1640は図11dに示すフローに対応するものである。ステップ1610およびステップ1636は図11eに示すフローに対応するものである。ステップ1648は図11fに示すフローに対応し、ステップ1650は図11gに示すフローに対応するものである。
【0101】
また、API902は、構造化データの少なくとも一部分が機器200の外部にあるRDBMSに格納されているときに使用するための一連の処理ステップも開示するものである。図15aから図15hの作業例に関連して、ステップ1600、1602、1604、1606、1616、1620、および1626は、図15aに示すフローに対応するものである。この例の問い合わせの一部は外部RDBMS1300に格納された関係データを対象としているため、プロセスフローはステップ1620からステップ1626に分岐することに留意すべきである。その後、ステップ1630は、図15bに示すフローに対応するものである。ステップ1634、1638、1642、1644、および1646は図15cに示すフローに対応するものである。その時点で図16のプロセスフローはステップ1632に分岐し、図15dから図15hが図11cから図11gに関連して説明したように動作するように残りの操作が続行される。
【0102】
また、機器200を、BI報告ツール900などの上位レベルアプリケーションからの、データストア304内のドキュメントも、RDBMS304がそれに関するメタデータを維持しているドキュメントも、RDBMS304内のデータも対象としない問い合わせも処理するように構成することができることも注目に値する。このような例では、API902は本質的に、それらの問い合わせが適切な外部構成要素に向けられる際の通路として(少なくともリレーショナルエンジン950までの通路として)機能する(ステップ1604、1608、1614および1618参照)。
【0103】
また、API902は、図16のステップ1606、1612、1614および1618で示すように、もっぱらRDBMS304内のメタデータだけを対象とする問い合わせ(メタデータに対する、ドキュメントテキスト探索制約条件を含まない問い合わせなど)を処理するように構成することもできることも分かる。
【0104】
図17aおよび図17bに、好ましい実施形態のハードウェアアクセラレートされたデータ処理タスクを実行するために、再構成可能論理回路402のFAMパイプライン350をどのようにしてセットアップすることができるかを例示する。図17aの例では、単一のFAMパイプライン350が用いられており、パイプライン内の第1のFAM集合1700はドキュメントメタデータ生成操作を実行するように構成されており、パイプライン内の第2のFAM集合1702は問い合わせ指定のデータ処理操作を実行するように構成されている(またはその逆でもよい)。この編成では、FAMパイプライン350がドキュメント取込み前処理に使用されているとき、問い合わせ指定のデータ処理を対象とするFAMを、それらが事実上オフとされる「通過」モードに設定することができる。FAMパイプライン350がそうではなく問い合わせ指定のデータ処理操作に使用されるときには、ドキュメントメタデータ生成操作を対象とするFAMを、それらが事実上オフとされる「通過」モードに設定することができる。
【0105】
この動作モードの代替として、図17bに示すように、FAM集合1700とFAM集合1702を両方とも、独自の別個のパイプラインとして設定することもできる。この例では、ファームウェアソケットモジュール404に組み込まれたインテリジェンスが、どんな種類の処理が必要とされているかに応じて、データ(制御データおよびターゲットデータ)を適切なFAM集合に向けることができる。
【0106】
コプロセッサ450によって(好ましくは、再構成可能論理回路402上に展開されたファームウェア350を介して)実行される問い合わせ指定のデータ処理操作には、様々なアルゴリズムのいずれかを使用することができる。前記のように、コプロセッサによって全文検索を実行することもできる。コプロセッサによって実行され得る様々な全文検索操作の例には、完全マッチ操作、近似マッチ操作、正規表現マッチング操作、パターンマッチング操作他が含まれる。全文検索では、(問い合わせによって定義されるように)非構造化データにおいて検出されることが求められるデータに対応する1つまたは複数のキーをコプロセッサ450にロードすることができ、流れる非構造化データのいずれかが問い合わせを満足させるかどうか判定するための様々な技法を使って、流れる非構造化データを1つまたは複数のキーと比較することができる。このような全文検索操作の例示的実施形態は、前記の組み込まれた米国特許第6711558号明細書および米国特許第7139743号明細書、米国特許出願公開第2006/0294059号明細書、米国特許出願公開第2007/0130140号明細書、ならびに(2006年5月2日に出願された米国出願第11/381214号から公開された)「Method and Apparatus for Approximate Pattern Matching」という名称の米国特許出願公開第_____号明細書に開示されている。
【0107】
コプロセッサ450によって実行され得るデータ処理操作の別の例にはバイオシーケンス類似性探索が含まれ、その実施形態は、前記の組み込まれた米国特許出願公開第2007/0067108号明細書、および(2007年8月10日に出願された、米国出願第11/836947号から公開された)「Method and Apparatus for Protein Sequence Alignment Using FPGA Devices」という名称の米国特許出願公開第_____号明細書に開示されている。
【0108】
さらに、コプロセッサ450内のパイプラインは、非構造化データに対して複数の異なるデータ処理操作を実行するように編成されることもできる。例えば、非構造化データがデータストア306に暗号化形式で格納されている場合には、コプロセッサを、全文検索操作を実行する前に、暗号化された非構造化データに対する復号操作を実行するパイプラインで構成することもできる。同様に、非構造化データがデータストア306に圧縮形式で格納されている場合には、コプロセッサを、全文検索操作を実行する前に、圧縮された非構造化データに対して伸張操作を実行するパイプラインで構成することもできる。さらに、非構造化データがデータストア306に暗号化され、圧縮された形式で格納されている場合には、コプロセッサを、全文検索操作を実行する前に復号および伸張を実行するパイプラインで構成することもできる。
【0109】
また、本発明を実施する者は、機器200内に、様々なユーザが利用し得る内容を制限するセキュリティ機構を用いようとしてもよいことにも留意すべきである。好ましくは、このようなセキュリティ機構は、LDAP、アクティブディレクトリ(Active Directory)、シングルサインオン(Single Sign−On)といった様々な企業体セキュリティアーキテクチャと統合されている。また、望ましい場合には、コプロセッサ450によってセキュリティ機能をハードウェアアクセラレートすることもできることにも留意すべきである。例えば、セキュリティ制御の粒度を、コプロセッサ450の使用により、ドキュメントレベルではなくデータレベルにおいて効率よく実施することができる。例えば、コプロセッサが再構成可能論理回路402を備える好ましい実施形態では、再構成可能論理回路上でファームウェア350を、指定のデータ処理操作のために編成されているファームウェアパイプライン内の下流側FAMへの制限データの通過を効率よくマスクする資格フィルタリング(entitlement filtering)を用いるように編成することもできる。例えば、正規表現パターンマッチングFAMを用いて、データがファームウェア350を流れる際にデータからデータの特定の部分(名前、電話番号、クレジットカード番号など)を除外することもできる。同様に、医療記録分野への本発明の適用例では、医療記録を探索しようとする、医療記録の特定部分の閲覧を許可されていないユーザが、制限されたデータにアクセスするのを防ぐために、適切に構成されたファームウェアを使って、医者/看護師だけが見るべきである医療記録内の特定のデータをフィルタリングすることもできる。このようにして、ファームウェア350によって用いられるデータ処理は、問い合わせ指定のデータ処理を用いるだけでなく、資格フィルタリング他のセキュリティ管理、暗号化/復号(例えば、前記の組み込まれた米国特許出願公開第2007/0237327号明細書に記載されている暗号化/復号技術を参照されたい)、問い合わせ指定のデータ処理操作を補助するその他のデータ処理操作といった追加の付随的なデータ処理操作を用いることもできる。
【0110】
また、コプロセッサを使って解析されるべき非構造化データの一部を特定するのに構造化データを使用する問い合わせ処理の技法は、構造化データと非構造化データが同じデータストアに位置している状況においても適用することができることにも留意すべきである。この例示的実施形態は、図18aおよび図18bに示されている。これは、関係データベース表が非構造化データの列を含む場合とすることができる。この一例は、コールセンター記録を格納する関係データベースにおいて生じ得る。コールセンターデータの各構造化フィールドは、電話が受け取られた日付、発信者の名前および電話番号、ならびに電話に出たコールセンター職員の名前を特定し得る。また、これらの記録は、発信者の通話に関するコールセンター職員の自由形式のテキストメモを含む非構造化データフィールドも含み得る。本明細書で説明した技法を使用すれば、通話メモが「refund」という単語を含む、2008年1月1日から2008年1月31日までのすべての通話記録を検索するよう求める問い合わせを機器200に向けることができる(図18b参照)。API902は構造化データ列にアクセスして、通話日付が2008年1月中であった通話記録の一部を特定することができる。その後、特定された部分におけるすべての通話記録(または少なくとも特定された部分の通話記録内のすべての非構造化列)をコプロセッサ450に流して、「refund」という単語を含む2008年1月の通話記録を特定することができる。
【0111】
本明細書で開示した好ましい実施形態においてコプロセッサ450はFPGAなどの再構成可能論理回路402を備えているが、コプロセッサ450は他の処理装置を使って実現することもできる。例えば、コプロセッサ450は、グラフィックス処理装置(GPU)、汎用グラフィックスプロセッサ、チップマルチプロセッサ(CMP)、専用メモリ素子、複合プログラマブル論理回路、特定用途向け集積回路(ASIC)、および他の入出力処理構成要素を含んでもよい。さらに、機器200は、直列と並列のどちらかまたは両方のマルチコプロセッサアーキテクチャとして複数のコプロセッサ450を用いてもよいことにも留意すべきである。
【0112】
以上、本発明をその好ましい実施形態に関連して説明したが、本発明には、やはり本発明の範囲内に含まれる様々な変更が加えられ得る。このような本発明への変更は、本明細書の教示を考察すれば理解されるであろう。したがって、本発明の完全な範囲は、もっぱら添付の特許請求の範囲およびその法的な均等物によって定義されるべきものである。
【技術分野】
【0001】
(関連出願の相互参照および優先権主張)
本出願は、参照によりその開示全体が本明細書に組み込まれる、2006年11月13日に出願された、米国仮特許出願第60/865629号の優先権を主張するものである。
【0002】
本出願は、参照によりその開示全体が本明細書に組み込まれる、(Thompson Coburn代理人整理番号44826−65592により識別される)「Method and System for High Performance Data Metatagging and Data Indexing Using Coprocessors」という名称の、本出願と同日に出願された、米国特許出願第_____号に関連するものである。
【0003】
本発明は、一般に、データベースアクセラレーションの分野を対象とし、詳細には、企業体データ探索、ドキュメントウェアハウス、テキストマイニング、テキスト解析、情報アクセス、アクショナブルインテリジェンス(actionable intelligence、活用可能な形の情報)の実現といった領域を含む企業データウェアハウスアクセラレーションを対象とする。
【背景技術】
【0004】
(用語)
以下の各項に、本明細書で使用する様々な用語のいくつかの定義を示す。また以下の項には、これらの用語に関連する背景情報も示す。
【0005】
GPP:本明細書で使用する場合、「汎用プロセッサ」(またはGPP)という用語は、固定された形態を有し、その機能が可変であり、この可変機能が、命令を取り出し、その命令を実行することによって定義されるハードウェア装置(例えば、IntelのXeonプロセッサやAMDのOpteronプロセッサなど)をいい、従来の中央処理装置(CPU)がその一般的な例である。
【0006】
再構成可能論理:本明細書で使用する場合、「再構成可能論理」という用語は、その形態および機能を、製造後に現場で大幅に変更(すなわち再構成)することのできる任意の論理技術をいう。これはGPPと対比されるものであり、GPPの機能は製造後に変化し得るが、その形態は製造時に固定されている。
【0007】
ソフトウェア:本明細書で使用する場合、「ソフトウェア」という用語は、GPPまたは他の処理装置上で展開されるデータ処理機能をいい、ソフトウェアは、ソフトウェアがロードされる装置の形態を変更し、または定義するのに使用することはできない。
【0008】
ファームウェア:本明細書で使用する場合、「ファームウェア」という用語は、再構成可能論理または他の処理装置上で展開されるデータ処理機能をいい、ファームウェアは、ファームウェアがロードされる装置の形態を変更し、または定義するのに使用され得る。
【0009】
コプロセッサ:本明細書で使用する場合、「コプロセッサ」という用語は、主プロセッサを有する計算処理システムにおいて、他の構成要素と連携して動作するように設計された計算エンジンをいう(マルチコアプロセッサアーキテクチャの場合のように、主プロセッサ自体が複数のプロセッサを備えてもよい)。典型的には、コプロセッサは、特定のタスク集合を実行するように最適化され、システム性能を最適化するために(典型的にはGPPである)主プロセッサのタスクを軽減するのに使用される。コプロセッサによって実行されるタスクの範囲は、コプロセッサのアーキテクチャに応じて、固定とすることも、可変とすることもできる。固定式コプロセッサアーキテクチャの例には、広範囲のタスクを実行するグラフィックスプロセッサユニットや、比較的狭い範囲のタスク集合を実行する浮動小数点数値コプロセッサが含まれる。再構成可能コプロセッサアーキテクチャの例には、幅広い種類の固定型の、またはプログラム可能な計算エンジンを実施するように再構成され得る、フィールドプログラマブルゲートアレイ(FPGA)などの再構成可能論理回路が含まれる。コプロセッサの機能は、ソフトウェアおよび/またはファームウェアによって定義されてもよい。
【0010】
ハードウェアアクセラレーション:本明細書で使用する場合、「ハードウェアアクセラレーション」という用語は、主プロセッサから1つまたは複数の処理タスクを軽減して主プロセッサに関連したこれらのタスクの処理待ち時間を低減するために、コプロセッサ上に実施されたソフトウェアおよび/またはファームウェアを使用することをいう。
【0011】
企業体:本明細書で使用する場合、「企業体」という用語は、その進行中の業務の一部として(「企業体データ」と呼ばれる)データを格納し、かつ/または処理する任意の事業組織または行政主体をいう。
【0012】
データベース:本明細書で使用する場合、「データベース」という用語は、問い合わせ処理を迅速化するための索引付け機能を有する永続的データストアをいう。様々なデータベース管理システム(DBMS)実装形態が、関係型(RDBMS)、オブジェクト指向型(OODBMS)、階層型などとして類別され得る。しかし、今日業界において優勢なアーキテクチャは関係型の、行/列からなる、構造化照会言語(SQL)対応データベースである。ANSI標準のSQLデータベースエンジンは、普通は効率的な方法で、問い合わせに応答して構造化データを検索することのできる、成熟したソフトウェアアーキテクチャである。
【0013】
構造化データ:本明細書で使用する場合、「構造化データ」という用語は、関係データベースに合わせて正規化され、永続化されているデータをいう。正規化とは、データを表の行/列形式にし、重複データを別々の表に抽出するデータ設計プロセスである。関係列内の構造化データには、Bツリー索引を用いて索引付けして、これらの列内のデータへのアクセスを大幅に迅速化することができる。SQLでは、構造化列にはサイズ限界がある。これらの列には、一貫性のあるデータ品質を保証するための制約条件および参照整合性が適用され得る。一般的な構造化SQLデータ型の例は、INT(eger)、NUMBER、CHAR(acter)、VARCHAR、DATE、TIMESTAMPなどである。構造化データの処理は、周知の関係データベース技術が適するものである。非常に重要なことに、本発明は、これらの機能を活用して、関係データベースが最も得意とすること、すなわち、索引付きルックアップを使った構造化データへの迅速なアクセスを行う。
【0014】
非構造化データ:本明細書で使用する場合、「非構造化データ」という用語は、前記の構造化データの定義の範囲に入らないデータをいう。したがって、非構造化データという用語は、自由な形のテキストまたは埋込み値が含まれているファイル、ドキュメントまたはオブジェクトを含む。このデータは、データを生成したアプリケーションによって使用された、しばしばバイナリ形式のデータを含む、完全なバイト集合を含む。非構造化データの例には、ワードプロセッシングドキュメント(Microsoft Wordの固有の形式のドキュメントなど)、Adobe Acrobatドキュメント、電子メール、画像ファイル、映像ファイル、オーディオファイル、およびファイルを作成したソフトウェアアプリケーションに関連する固有の形式の他のファイルなどが含まれる。SQLでは、非構造化列は、無制限ではないにせよ、非常に大きいサイズを有する。非構造化SQLデータ型の一般的な例は、BLOB、TEXT、XML、RAW、IMAGEなどである。また、非構造化オブジェクトは、データベースの外部に、例えばオペレーティングシステムファイルなどに格納されてもよい。データベースエンジン内からこれらの外部オブジェクトへのアクセスには、データベース表のメタデータ内の格納場所へのリンクを使用する。
【0015】
本明細書で使用する際に、XMLという用語を通常は「構造化」として類別しない理由には以下のものがある:
・XMLは、大きな値、またはサイズが無制限の値を持ち得る。
・XMLは、しばしば、強制されたデータ型を持たないことがある。
・XMLは柔軟なスキーマを有する。
・要素および属性のXML値は、しばしば、従来の「構造化」データベース列ほど厳格に適合されず、不要なものが完全に除去されていないことがある。
【0016】
柔軟なスキーマを有する「半構造化」データの概念が、特にXMLについては台頭しつつあるが、本発明では、関係データベースに合わせて正規化され、永続化されていないあらゆるものは、非構造化データとみなす。したがって、XMLデータ型のものである列は、この「非構造化データ」の定義に該当することになる。XMLデータは、本発明で概説するハードウェアアクセラレートされた探索および統合の最有力候補である。
【0017】
メタデータ:本明細書で使用する場合、データオブジェクトおよびドキュメントの文脈における「メタデータ」という用語は、データオブジェクトまたはドキュメントを記述し、または特徴付けるデータをいう。オブジェクトおよびドキュメントのメタデータの例には、それだけに限らないが、ファイル型、バイトサイズ、作成日、最終変更日、著者、表題、ドキュメント/オブジェクトのデータソースに関する情報(任意選択で、ドキュメントを作成するのに使用されたプログラムの名称およびバージョン番号を含む)、データが他のデータとマッチするかどうかに関する情報、主題対象、分類情報(ドキュメント/オブジェクトの概念に関する情報、ドキュメント/データオブジェクト内に含まれる人名/地名/企業名、語数カウントなど)、ドキュメント/オブジェクト内のデータに関連する位置情報、ドキュメント/オブジェクトに関する他の内容から派生する情報が含まれる。
【0018】
バス:本明細書で使用する場合、「バス」という用語は、装置および場所がそのアドレスによりアクセスされる任意の物理的相互接続を含む論理バスをいう。本発明の実施に際して使用され得るバスの例には、それだけに限らないが、PCIバスファミリ(PCI−XやPCI−Expressなど)およびHyperTransportバスが含まれる。
【0019】
パイプライン化:本明細書で使用する場合、「パイプライン」、「パイプライン化シーケンス」、または「連鎖」という用語は、あるアプリケーションモジュールの出力が、シーケンス内の次のアプリケーションモジュールの入力に接続されているアプリケーションモジュールの配列をいう。このパイプライン化配列は、各アプリケーションモジュールが、所与のクロックサイクルの間に受け取る任意のデータを独立に操作し、次いで、別のクロックサイクルの間にその出力をシーケンス内の次の下流側アプリケーションモジュールに渡すことを可能にする。
【0020】
全文検索:本明細書で使用する場合、「全文検索」という用語は、ドキュメントまたはオブジェクトの全体を通してスキャンし、あらゆる単語またはバイトを考慮することをいう。この処理は、近似、柔軟なスキーマでのタグ付けに基づくトークン化、ワイルドカード処理、または複雑なマッチングを可能にし得る。
【0021】
SQL対応クライアントアプリケーション:本明細書で使用する場合、クライアントアプリケーションの文脈における「SQL対応の」という用語は、関係型のSQLベースのデータベースサーバにアクセスすることのできるクライアントアプリケーションをいう。ANSI標準のSQL言語は、いずれも関係型のSQLベースのデータベースサーバにアクセスすることのできる、多数の高度なソフトウェアクライアントアプリケーションの進化を可能にしている。これらのSQL対応クライアントアプリケーションの例には、ビジネスインテリジェンス(BI)報告ツール、抽出転送ロード(ETL)ツール、企業体用ソフトウェアアプリケーション(ERP、CRM、SAP)、ミドルウェア、および様々なプログラミング言語で書かれた多数の任意の特注アプリケーションなどが含まれる。
【0022】
ビジネスインテリジェンス報告ツール:本明細書で使用する場合、「ビジネスインテリジェンス報告ツール」(または「BI報告ツール」)という用語は、関係データベースへの探索問い合わせを作成し、報告書を生成、提示するための、ユーザが使いやすいグラフィカルインターフェース(GUI)を提供するソフトウェアアプリケーションをいう。BI報告ツールは、ユーザ指定の図形的に作成された問い合わせを、SQLコマンドなどの標準化データベース問い合わせに変換する。次いで、そのように作成されたSQLコマンドが、所望のデータの検索を実行するためにRDBMSに送られる。
【0023】
テキスト解析およびテキストマイニング:本明細書で使用する場合、「テキスト解析」および「テキストマイニング」という用語は、意味論のような複雑な言語概念を使ってドキュメントオブジェクトを操作するアルゴリズムをいう。テキスト解析/テキストマイニング処理の例には、名前付きエンティティ認識、内容抽出、ドキュメント分類、ドキュメント要約、自然言語処理、統計パターン学習、および関連性ランク付けが含まれる。
【0024】
企業体はそのデータを多種多様な方法で格納、管理し続ける。企業体がそのデータを格納するための1つの方法が、関係データベース管理システム(RDBMS)を使ったデータベース内に格納するものである。このようなRDBMSに格納された、表形式の正規化されたデータを一般に構造化データという。例えば企業体は、その売上記録および顧客情報を、書式設定し、不要な情報を除去し、適合させ、構造化データとしてRDBMS内に格納する。当分野では、典型的には構造化照会言語(SQL)などの標準化データ言語に基づいてこのような構造化データにインテリジェントにアクセスするための様々な公知のツールが開発されている。
【0025】
しかし一般にこのような表形式の構造化データは、企業体の格納データ全体のごくわずかな部分を表すにすぎないものであると推定される。格納データの残りの部分は典型的には、その記憶が企業体内の多種多様なファイルシステムおよび記憶手段の間に拡散しているのが普通である非構造化データで構成されている。非構造化オブジェクトおよびドキュメントの爆発的増加により、多くの企業体が深刻な「情報過負荷」状態に陥っている。このすべての構造化データおよび非構造化データにインテリジェントに、統合的にアクセスすることは、難しい課題を提起する。この課題を難しくする一因は、多くの企業体では、企業体の非構造化データの記憶が各データベースから、しばしば異なる組織部門によって別々に管理されていることである。多くの組織が直面している大きな課題が、その関係データベース内の構造化データを、BLOBを含む、この比較的整理されていない大量の他の非構造化データと効率よく、効果的に統合することである。構造化データは、テキスト解析を使って、「なにが?」、「どこで?」、「いつ?」、「だれが?」のような比較的単純明快な質問への回答を提供することができ、非構造化データは「なぜ?」のようなより複雑な質問に回答することができる。
【0026】
図1にこの問題を示す。多くの企業体では、すべてのドキュメントが、企業体全体に広がっているいくつかの別々のサーバの間のどこに位置しているかに関しての整理がほとんど行われていない。例えば、企業体がそのデータを格納するための記憶空間102は、ドキュメント管理システムA104、ネットワークファイルサーバB106、アプリケーションサーバC108といった別々の構成要素の間に拡散している。この記憶空間内の所望のドキュメントにアクセスし、所望のドキュメントを探し出すために、ユーザ100は、異なる各構成要素にアクセスするのに異なるツールを使用せざるを得なくなる可能性が高い(例えば、システム104にアクセスするのにカスタムアプリケーションを使用し、サーバ106にアクセスするのにWindows(登録商標) Explorerなどのソフトウェア製品を使用し、サーバCにアクセスするのにカスタムアプリケーションプログラミングインターフェース(API)を使用するなど)。インターネット110上でデータの探索を行うには、さらに別のツール(Googleなどのウェブサーチツール)が使用される可能性が高いはずである。このようにドキュメントの場所およびアクセス手段が乱雑な寄せ集めになっていると、ユーザは、記憶空間102内のどこに目的のドキュメントが位置しているか熟知していなければならないだけでなく、異種の構成要素104、106および108にアクセスするためのいくつかの異なるツールの使い方にも習熟していなければならない。しかも、図1に示すような企業体探索機能によってユーザは、関係データベース内に格納されている他の企業体データに直接アクセスし、これらと自分の探索を相関させることができない。
【0027】
ユーザの探索が何らかの形の全文検索を含むとき、このような全文照会をサポートするソフトウェアはしばしば、特に問い合わせが多くの長いドキュメントの本文全体をスキャンすることを必要とするときには、完了するのに比較的長い時間を要する。これが遅いのは、一部には、従来のソフトウェアを実行するときの汎用プロセッサ(GPP)の性能に関する固有の制約条件のためである。現在の索引付け法には、「発見能力(find−ability)」の実現に大きな限界がある。索引付けは関連するドキュメントを探し出すのに幾分役立つこともあるが、つづり間違い、交替するつづりの変形、正規表現を探索するタスク、または多数の用語を探索するタスクは、現在の索引付け法では容易にも、迅速にも解決されない問題であり、効果的な索引を作成するための時間に対応できなくなることが多い。言い換えると、何かの発見に役立つ効果的な索引を構築するためには、何を発見しようとしているのかがあらかじめ分かっていなければならない。従来のシステムにおける欠点の一例は、つづり間違いを探索するための容易な、または標準的な方法がないことである。この問題は、データが動的であり、または絶えず変化する状況においてはさらに悪化する。
【0028】
構造化データに関しては、SQLは、多くの関係データベースに対して標準化された一貫性を有するプログラミングインターフェースを提供することができるため、産業において広範囲に配備されている。しかし、本発明者らは、構造化データのためのSQLと、非構造化データに対する全文検索機能(またはテキスト解析やテキストマイニングといった他の処理機能)との統合を標準化しようとする現行の試みには改善が必要であると認識している。これらの試みの実現形態は、しばしば、性能上の障害を明確に示している。標準SQLを、構造化された表形式のデータと様々な形の非構造化データとを統合するように拡張しようとするいくつかの取り組みが行われている。例えば、半構造化XMLデータへの関係型アクセスのためのSQL/XML、非構造化マルチメディアデータのためのSQL/MM、非構造化外部データのためのSQL/MED、正規表現、ワイルドカード、語幹抽出、シソーラスおよびブール演算を使ってXMLデータを探索するXQuery1.0およびXPath2.0Full−Text1.0などである。本発明者らは、非構造化データを処理するこれらのSQL拡張機能の大部分が、一貫性を欠く、種々雑多な言語の寄せ集めを表すものであり、それがこれらの拡張機能のIT業界における普及を妨げていると考えている。本発明者らの考えでは、重大な性能上の問題がしばしばこれらの標準化の取り組みを遅らせている可能性が高い。
【0029】
また、SQLの普及の結果として、いくつかのビジネスインテリジェンス(BI)報告ツールも開発されている。本発明者らは、非構造化テキスト解析をサポートする報告ツールの機能は比較的限られており、当分野では、この領域における改善が求められていると考えている。これらのソフトウェアツールの大部分は、非構造化データに対する全文検索、および他の高度なテキストマイニングおよび解析を実行するための、比較的限られた能力しか備えていない。重ねていうが本発明者らは、各ツールの性能は特に有効なものになっていないと考えている。
【先行技術文献】
【特許文献】
【0030】
【特許文献1】米国特許第6711558号明細書
【特許文献2】米国特許第7139743号明細書
【特許文献3】米国特許出願公開2006/0294059号明細書
【特許文献4】米国特許出願公開2007/0067108号明細書
【特許文献5】米国特許出願公開2007/0130140号明細書
【特許文献6】米国特許出願公開2007/0174841号明細書
【特許文献7】米国特許出願公開2007/0237327号明細書
【発明の概要】
【発明が解決しようとする課題】
【0031】
したがって本発明者らは、当分野には、非構造化データへのより高速で、統合的なアクセスを可能とするシステムが大いに求められていると考えている。さらに本発明者らは、当分野には、構造化データと非構造化データを相互に連係させ、統合して、非構造化データのインテリジェントなアクセスをサポートするためのより良い方法も求められていると考えている。
【課題を解決するための手段】
【0032】
これらの目的のために、本発明者らは、従来の標準に基づく構造化データの問い合わせ処理と緊密に統合された方法で、問い合わせ処理時に、より複雑な非構造化データ解析のハードウェアアクセラレーションを活用するように構成された新規の方法およびシステムを開示する。その際に本発明は、好ましくは、以下の特許明細書および特許出願明細書に開示されている基礎をなすハードウェアアクセラレーション技術を利用する。「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」という名称の米国特許出願公開第_____号明細書、「Method and Device for High Performance Regular Expression Pattern Matching」という名称の米国特許出願公開第2007/0130140号明細書、(2006年5月2日に出願された米国出願第11/381214号から公開された)「Method and Apparatus for Approximate Pattern Matching」という名称の米国特許出願公開第_____号明細書、「Firmware Socket Module for FPGA−Based Pipeline Processing」という名称の米国特許出願公開第2007/0174841号明細書、および「Method and System for High Throughput Blockwise Independent Encryption/Decryption」という名称の米国特許出願公開第2007/0237327号明細書。各特許明細書および特許出願明細書の開示全体を参照により本明細書に組み込むものとする。
【0033】
このハードウェアアクセラレーションは、ハードウェアアクセラレーションに適した問い合わせ処理の部分(非構造化データに対して実行される全文検索操作など)に対して適用される。どの非構造化データがハードウェアアクセラレートされたデータ処理操作に適用されるべきかインテリジェントに限定するために(および、それによって全体の応答時間を早めるために)、本発明を実施するシステムは、データベースに格納された構造化データの索引付き問い合わせも用いることができる。好ましくはこれらの問い合わせは、RDBMSを対象とするSQLコマンドといった、標準化された索引付きデータベース問い合わせとして作成される。このように、ユーザは構造化データと非構造化データの両方を対象とする問い合わせを、よく知る方法で作成することができる。本発明の好ましい実施形態によるAPIを用いれば、問い合わせ処理を、構造化データ部分とハードウェアアクセラレートされた非構造化データ部分とに効果的に分岐させることができる。
【0034】
ハードウェアアクセラレートされたデータ処理操作は、好ましくは、前記の特許明細書および特許出願明細書に記載されているように、GPPとは別のコンピュータリソース(好ましくは、ファームウェアが展開されている再構成可能論理回路といったコプロセッサ)によって実行される。このためにコプロセッサを利用することにより、GPPによって実行される従来のソフトウェアを使って非構造化データの全文検索を実行する従来の解決法と比べて、問い合わせ処理の著しいアクセラレーションが達成され、それによってシステムの(1つまたは複数の)GPPを他のシステムタスクを実行するために解放することができる。
【0035】
問い合わせ処理プロセスに役立つ構造化され、索引付けされたデータは、少なくとも一部は、オブジェクト(ドキュメントなど)のメタデータを含むことが好ましい。このメタデータには、好ましくはRDBMS内の構造化関係表に格納されており、非構造化データのどの部分がコプロセッサに流されるべきか特定するために、SQLコマンドなどの標準化された問い合わせを使って問い合わせることができる。実際、一態様によれば、本発明は本質的にはコプロセッサのデータ処理機能をSQL対応にする。
【0036】
好ましくは、メタデータで索引付けされた非構造化データは、非構造化データのためのデータ処理機能が展開されているコプロセッサを用いた機器内の高性能ディスク空間内に格納されている。このように、ネットワーク帯域幅の制約条件なしで、非構造化データをコプロセッサに流すことができる。また非構造化データは、高速ネットワークを介して機器200からアクセス可能などこかに格納することもできる。
【0037】
本発明者らはさらに、非構造化オブジェクトからのメタデータの生成も、コプロセッサを使って(好ましくは、適切なファームウェアが展開されている再構成可能論理回路の形のコプロセッサを使って)ハードウェアアクセラレートすることができることを開示する。メタデータを生成すべき非構造化オブジェクトを適切に構成されたコプロセッサに流し、それによってその非構造化データに索引付けするのに使用されるメタデータの生成を迅速化することができる。このメタデータ生成に続いて、これらの非構造化オブジェクトの本体全部が、好ましくは、機器のディスク空間に取り込まれる。
【0038】
またメタデータは、好ましくは、機器の内部のRDBMSに格納されるが、本発明の好ましい実施形態の問い合わせ処理機能の一部として、機器の外部にある別の関係データベースに格納された構造化データにもアクセスすることができることに留意すべきである。
【0039】
本発明者らは、後述する一般的なデータ探索に加えて、本発明を無数の用途に適用することができるものと予想している。例えば、保健医療の症例管理においては、臨床研究データベース、患者記録データベース、保険および法的ファイルのデータベース、法規則データベースといった多種多様なデータソースを、本明細書で説明する機器によって統合し、それによって、診断の向上、誤診の低減、適切な治療の保証、サービス品質の向上、利用可能なリソースの利用率増大、不正行為の低減、費用の管理その他の目標に関して、保健医療組織の機能を強化することができる。
【0040】
科学分野では、科学的臨床的文献、治療記録および報告書、化合物データベース、医薬データベース、医学的症状データベースなどといった異種のデータソースを、本明細書で説明する機器を使って統合することができる。このように、望ましい目標には、生物医学的および化学的成分、遺伝標識、例えばタンパク質や遺伝子、塩基配列などと、諸症状、すなわち、「AはBを阻害する」、「AはBを活性化する」、「AはBと関連付けられる」といったパターンの間の関係を抽出することなどが含まれる。成分抽出とは、この文脈では、ドメイン辞書に基づく生物医学テキストおよび化学テキストから遺伝子、化学物質、症状および症候群の名称および徴候を認識することをいう。
【0041】
諜報およびテロ対策の分野では、報道および調査報告書、通信傍受、ドキュメント、ならびに事件ファイル(すべて様々な言語で書かれている)といった異種のデータソースを、本明細書で説明する機器によって統合することができる。このデータへの統合的でインテリジェントなアクセスによって検出することのできる目標およびパターンには、組織的結社およびネットワーク、行動/攻撃パターン、脅威評価、戦略策定、戦術評価、および事件予測が含まれる。
【0042】
法執行分野では、本明細書で説明する機器を使って、諜報/テロ対策分野と同様のデータソースを、犯罪および裁判報告書、法律文書、ならびに地理的、人口統計学的データと共に統合することができる。このような統合の目標には、犯罪パターン(時間的、地理空間的、対人的、および/または組織的)の検出、ならびに犯罪捜査および訴追の支援が含まれるはずである。
【0043】
有価証券詐欺行為探知の分野では、金融報告書および報道、企業ファイルおよびドキュメント、売買その他の取引記録といった異種のデータソースすべてを、本明細書で説明する機器を使って統合し、それによって、インサイダー取引、報告違反、マネーロンダリング、不法取引、価格異常といった行為を探知する能力を高めることができる。
【0044】
顧客関係管理(CRM)の分野では、顧客電子メールおよび書簡、コールセンターメモおよび転写記録、ならびに既存のCRMシステムに維持されている他の顧客データといった異種のデータソースを、本明細書で説明する機器を使って統合することができる。このような統合により、おそらくは、製品およびサービス品質の問題を特定し、製品設計および管理に役立てることができる。
【0045】
評判管理の分野では、異種のデータソースには報道、ウェブページおよび市場分析が含まれ、これらのデータソースを本明細書で説明する機器を使って統合して、企業体と社会との関係の状態を明らかにするテキストマイニングおよびパターン検出操作を実行することができる。
【0046】
同様に、本明細書で説明する機器は、個人と組織とのつながりを判断するために電子メールその他の通信、企業ドキュメント、および報道を分析する社会的ネットワーク分析ツールとして使用することもできる。
【0047】
本明細書で説明する機器を展開するための機が熟していると考えられる他の領域には、業務管理、競争インテリジェンス(competitive intelligence)、法的開示(例えば、訴訟の原告が、「ジョンスミス」に関連する、維持されており、または被告の管理下にあるすべてのデータを要求する場合など)、コンテンツ権利管理、法規順守その他が含まれる。
【0048】
さらに、本明細書で説明する発明は、内容から導出されるメタデータの自動生成を含めて、データに対して実行されるメタデータ生成操作を著しく速めるのに使用することができる。
【0049】
本発明の前記その他の特徴および利点は、以下の説明および図面を考察すれば当業者には明らかになるであろう。
【図面の簡単な説明】
【0050】
【図1】企業体がユーザに企業体のデータへのアクセスを可能にするための従来の方法を示す図である。
【図2】本発明の例示的実施形態を示す図である。
【図3】本発明の一実施形態によるドキュメント取込み前処理操作の概要を例示する図である。
【図4】本発明の一実施形態による探索機器を例示する図である。
【図5】本発明の一実施形態によるドキュメント取込み前処理操作を例示する論理図である。
【図6】本発明の一実施形態によるドキュメント取込み前処理操作のための図4の探索機器内のデータフローを例示する図である。
【図7a】図4の探索機器において使用するためのプリント回路基板を例示する図である。
【図7b】図4の探索機器において使用するためのプリント回路基板を例示する図である。
【図8】どのようにしてファームウェアパイプラインが複数の再構成可能論理回路にわたって展開され得るかを例示する図である。
【図9】本発明の一実施形態による問い合わせ処理操作の概要を例示する図である。
【図10a】どのようにして関係データベースとの対話が実行されるかに関してプロセッサとコプロセッサとの間の関係を例示する図である。
【図10b】図10aに対応する本発明の一実施形態による問い合わせ処理操作を例示する流れ図である。
【図10c】図10aに対応する本発明の一実施形態による問い合わせ処理操作を例示する論理図である。
【図11a】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図11b】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図11c】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図11d】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図11e】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図11f】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図11g】本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図12】問い合わせの少なくとも一部が探索機器の外部に位置するドキュメントに対して実行される、本発明の一実施形態による問い合わせ処理操作の概要を例示する図である。
【図13】問い合わせによって指定された構造化データを検索するために探索機器の外部にあるRDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作の概要を例示する図である。
【図14】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作を例示する論理図である。
【図15a】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15b】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15c】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15d】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15e】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15f】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15g】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図15h】問い合わせによって指定された構造化データを検索するために外部RDBMSがアクセスされる、本発明の一実施形態による問い合わせ処理操作のための、図4の探索機器内でのデータフローを例示する図である。
【図16】問い合わせを処理するために探索機器によって実行されるAPIの処理フローを例示する図である。
【図17a】ドキュメント取込み前処理操作および問い合わせ指定のデータ処理操作を実行するためにどのようにしてFAMパイプラインを再構成可能論理回路上に展開することができるかを例示する図である。
【図17b】ドキュメント取込み前処理操作および問い合わせ指定のデータ処理操作を実行するためにどのようにしてFAMパイプラインを再構成可能論理回路上に展開することができるかを例示する図である。
【図18a】構造化データおよび非構造化データが共通データストアに格納されている例示的実施形態を示す図である。
【図18b】構造化データおよび非構造化データが共通データストアに格納されている例示的実施形態を示す図である。
【発明を実施するための形態】
【0051】
図2に、企業体機器200が、ユーザコンピュータ100のユーザに、(関係データベース210によって格納されているような)構造化データと、(構成要素104、106および108を介して、またはインターネット110を介して格納され、アクセスすることのできるような)非構造化データへのインテリジェントで、統合的なアクセスを可能にするように構成されている本発明の好ましい実施形態の概要を示す。機器200の実施形態を探索機器と呼ぶこともできるが、本明細書で説明するように、機器200により、探索以外に、または探索に加えて他のデータ解析機能をサポートすることもできることに留意すべきである。
【0052】
好ましくは、探索機器200は、ハードウェアアクセラレートされたデータ処理機能はもとより、少なくとも一部は構造化データを対象とする問い合わせを処理する問い合わせ処理APIも用いる。図4に、機器200の好ましい実施形態を示す。機器200内には、コプロセッサ450が、ディスクコントローラ414および416、ならびに(直接、またはRAM408などのシステムメモリ経由で間接的に)データストア304および306によって定義されるディスクサブシステムと、(ネットワークインターフェース410を介した)ネットワーク420の一方または両方から流されるデータを受け取るように配置されている。データストア304は、構造化関係データが格納されているRDBMSを備え、データストア306は、非構造化データが格納されているファイルシステムを備える。しかし、非構造化データは、以下で図18aおよび図18bに関連して説明するように、任意選択でRDBMS304内の非構造化データ列に格納されてもよいことに留意すべきである。ネットワーク420は、好ましくは、多種多様なドキュメントストア308(構成要素104、106および/または108)が位置する企業体ネットワーク(LANであれWANであれ)を備える。データストア304は構造化データのためのデータストアとして特徴付けられているが、データストア304は、任意選択で、やはり取込みおよび問い合わせ処理の対象とし得る非構造化データBLOBを含んでもよいことに留意すべきである。
【0053】
好ましい実施形態では、コプロセッサ450は、再構成可能論理回路402を備える。好ましくは、データはシステムバス406を介して再構成可能論理回路402に流れ込むが、他の設計アーキテクチャも可能である(図7b参照)。好ましくは、再構成可能論理回路402はフィールドプログラマブルゲートアレイ(FPGA)であるが、そうでなくてもよい。また、システムバス406は、再構成可能論理回路402と、機器のプロセッサ412および機器のRAM408とを相互接続することもできる。好ましい実施形態では、システムバス406はPCI−XバスまたはPCI−Expressバスとすることができるが、そうでなくてもよい。
【0054】
データストア306は任意のデータ記憶装置/システムとすることができるが、好ましくは、何らかの形の大容量記憶媒体である。例えば、データストア306は、ディスクアレイなどの磁気記憶装置とすることができる。しかし、本発明の実施に際しては他の種類の記憶媒体も使用に適することに留意すべきである。
【0055】
プロセッサ412およびRAM408によって定義されるコンピュータシステムは、当分野の技術者が理解するような任意の市販のコンピュータシステムとすることができる。例えばコンピュータシステムは、IntelのXeonシステムや、AMDのOpteronシステムなどとすることができる。したがって、機器200の中央または主プロセッサとして使用されるプロセッサ412は、好ましくは、GPPを備える。
【0056】
再構成可能論理回路402には、その機能を定義するファームウェアモジュールが展開されている。ファームウェアソケットモジュール404は、再構成可能論理回路との間のデータ移動要件(コマンドデータとターゲットデータの両方)を処理し、それによって、やはり再構成可能論理回路上に展開されているファームウェアアプリケーションモジュール(FAM)連鎖350に一貫性のあるアプリケーションインターフェースを提供する。FAM連鎖350の各FAM350iは、ファームウェアソケットモジュール404から連鎖350に流れる任意のデータに対して指定されたデータ処理操作を実行するように構成されている。以下で、本発明の好ましい実施形態による再構成可能論理上に展開され得る好ましいFAMの例を説明する。
【0057】
FAMによって実行される特定のデータ処理操作は、FAMがファームウェアソケットモジュール404から受け取るコマンドデータによって制御/パラメータ化される。このコマンドデータはFAM特有のものとすることができ、コマンドを受け取るとFAMは、受け取ったコマンドによって制御されるデータ処理操作を実行するように編成される。例えば、完全マッチ操作を実行するように構成されたFAM内では、FAMの完全マッチ操作は、完全マッチ操作を実行するための(1つまたは複数の)キーを定義するようにパラメータ化され得る。このようにして、完全マッチ操作を実行するように構成されたFAMに1つまたは複数の異なるキーの新しいパラメータをロードするだけで、そのFAMを、別の完全マッチ操作を実行するように容易に編成し直すことができる。
【0058】
FAMは、受け取ったコマンドによって指定されるデータ処理操作を実行するように編成された後で、ファームウェアソケットモジュールから受け取るデータストリームに対して、コマンドで指定されたデータ処理操作を実行することができるようになる。よってFAMは、指定されたデータストリームを指定された方法で処理するための適切なコマンドによって、編成されることができる。FAMがそのデータ処理操作を完了すると、そのFAMには、FAMによって実行されるデータ処理操作の性質を変更するようFAMを再編成させる別のコマンドを送ることができる。FAMは、ハードウェア速度で動作(し、FAMを介して高スループットの目標データを提供)するのみならず、そのデータ処理操作のパラメータを変更するよう柔軟にプログラムし直すこともできる。
【0059】
FAM連鎖350は、好ましくは、パイプライン化シーケンスとして配列された複数のファームウェアアプリケーションモジュール(FAM)350a、350b、...を備える。しかし、ファームウェアパイプライン内には、FAM350iの1つまたは複数の並列経路を用いることもできることに留意すべきである。例えばファームウェア連鎖は、相互に並列な、第1のパイプライン化経路として配列された3つのFAM(FAM350a、350b、350cなど)と、第2のパイプライン化経路として配列された4つのFAM(FAM350d、350e、350fおよび350gなど)とを含んでもよい。さらに、ファームウェアパイプラインは、既存のパイプライン経路から分岐する1つまたは複数の経路を備えることもできる。本発明の実施者は、所与の用途の処理要件に基づき、FAM連鎖350の適切なFAM配列を設計することができる。
【0060】
通信路430は、ファームウェアソケットモジュール404を、パイプライン化FAMの第1のFAM350aの入力と接続する。第1のFAM350aの入力は、FAM連鎖350への入口点として使用される。通信路432はパイプライン化FAM350mの最後のFAMの出力を、ファームウェアソケットモジュール404と接続する。最後のFAM350mの出力は、FAM連鎖350からの出口点として使用される。通信路430も通信路432も、好ましくは、マルチビット経路である。
【0061】
特に、ファームウェアソケットモジュールとの間のデータフローに関連して、機器200によって使用されるソフトウェアおよびハードウェア/ソフトウェアインターフェースがどういったものであるかは、前記の組み込まれた米国特許出願公開第2007/0174841号明細書に詳細に記載されている。
【0062】
図7aに、機器200においてコプロセッサ450として使用するために市販のコンピュータシステムのバス406に接続することのできるプリント回路基板またはカード700を示す。図7aの例では、プリント回路基板は、メモリ素子702およびPCI−Xバスコネクタ704と通信状態にあるFPGA402(Xillinx Virtex II FPGAなど)を含む。好ましいメモリ素子702は、SRAMおよびDRAMメモリを含む。好ましいバスコネクタ704は標準カード端コネクタである。
【0063】
図7bに、プリント回路基板/カード700の代替の構成を示す。図7bの例では、プリント回路基板700には、バス706(PCI−Xバスなど)、1つまたは複数のディスクコントローラ708、およびディスクコネクタ710もインストールされている。当分野で理解されているように、任意の市販のディスクインターフェース技術がサポートされ得る。この構成では、ファームウェアソケット404は、プロセッサ412に、専用PCI−XまたはPCI−eバス706を介して接続された(1つまたは複数の)ディスクへの通常のアクセスを可能にするためのPCI−X/PCI−X(またはPCI−e/PCI−e)ブリッジとしても使用される。図3bに示すディスクコントローラおよびディスクコネクタに加えて、またはこれらの代わりにネットワークインターフェースを使用することができることに留意すべきである。
【0064】
図7aまたは図7bの構成において、ファームウェアソケット404は、メモリ702をPCI−Xバスからアクセス可能にすることができ、それによって、OSカーネルがメモリ702を、ディスクコントローラおよび/またはネットワークインターフェースコントローラからFAMへ転送するためのバッファとして利用することが可能になることは注目に値する。また、図7aおよび図7bのプリント回路基板上にはただ1つのFPGA402しか示されていないが、プリント回路基板700上に複数のFPGAを含めることにより、または機器200に複数のプリント回路基板700をインストールすることにより複数のFPGAをサポートすることができることが理解されるはずであることも注目に値する。図8に、1つのパイプライン内の多数のFAMが複数のFPGAにまたがって展開されている例を示す。
【0065】
本明細書で論じる例示的実施形態において、「ドキュメント」という用語は、本発明のシステムによって処理される非構造化データを記述するのに使用される。しかし、「ドキュメント」という用語の用法は例示のためのものにすぎず、本発明のシステムおよび方法を使って他の形の非構造化データを処理することもできることに留意すべきである。
【0066】
機器200の性能を向上させ得る任意選択の一構成が、大量の(おそらくはすべての)企業体のドキュメントを機器の搭載データストア306に取り込むことができる機能である。さらにその際に機器200が、取り込む各ドキュメントに関するメタデータを構築することが好ましい。このドキュメントメタデータは、次いで、搭載するRDBMS304などの関係データベースシステムに格納することのできる構造化データを含む。
【0067】
図3に、好ましい実施形態の一態様によるドキュメント取込み前処理の概要を示す。好ましくは、ユーザコンピュータ100上に表示された何らかの形のドキュメント取込みGUI300を介して、ユーザは、どの(1つまたは複数の)ドキュメントがデータストア306に取り込まれるべきか指定することができる。任意選択でユーザは、取り込まれるべき(1つまたは複数の)ドキュメントに関する様々な形のメタデータを打ち込むこともできる。しかし、コプロセッサ450(好ましくは、ファームウェア350が展開されている再構成可能論理回路402)は、所望のメタデータ生成操作を自動的に実行するように編成され得るため、これは必要になるとは限らない。GUI300を介した適切なユーザコマンドに応答して、企業体ネットワーク420を介してアクセス可能であるが、機器200の外部にあるデータストア308に格納された1つまたは複数のドキュメント312が機器200に送られる。機器200が、NTFS、FAT、CIFS、様々な特色を有するUNIX(登録商標)ファイルシステムといった共通ファイルシステム上に格納されたドキュメントへのアクセス、ならびにHTTPを介したウェブアクセスを可能にするために用いるドキュメント検索機能352においては、様々なアダプタを用いることができる。
【0068】
ファームウェアパイプライン350にある各FAMは、好ましくは、FAMが受け取るドキュメントに対してドキュメントメタデータ生成操作を実行するように編成されている。ファームウェア350において用いられ得るドキュメントメタデータ生成法の例には、それだけに限らないが、品詞タグ付け、情報およびエンティティ抽出、ドキュメント分類、ドキュメントクラスタ化、およびテキスト要約が含まれる。これらの操作は機能的には、1つまたは複数のドキュメントのデータストリームに対する一連の「変換」とみなすことができる。ドキュメントに対して実行され得るドキュメント分類操作の一例は言語分類を含む。言語分類では、ドキュメントを、ドキュメント内のテキストが最も密接にマッチする言語を特定するように構成されている統計的Nグラムアルゴリズムに適用することができる。別のドキュメント分類操作では、ドキュメントのある種の分類を知るために隠れマルコフモデル(HMM)を用いることができる。さらに、ファームウェア350が正規表現パターンマッチングを用いてドキュメントに関する分類情報をさらに作成することもできる。例えば、使用され得るドキュメント分類器は、問題のドキュメントがクレジットカード番号を含むかどうか識別するフラグとすることができる。そのような場合、ファームウェア350は正規表現パターンマッチング操作を実施するFAMを含むことができ、この正規表現パターンマッチング操作は、FAMに流されるドキュメントがクレジットカード番号のように見えるデータパターンを含むかどうか判定することを中心としてキー指定される。この操作の結果に基づき、クレジットカード標識メタデータを正または負に設定することができる。
【0069】
従来のメタデータ生成操作の手法はこれらの操作をプロセッサ412などの主プロセッサによって実行されるソフトウェアに組み込んでおり、これは、前記のように、性能不足を示していると考えられる。本発明者らは、これらのメタデータ生成操作をコプロセッサ450に肩代わりさせることにより、著しいアクセラレーションを達成することができると考えている。メタデータ生成操作を実行するためのコプロセッサの使用に関するさらなる詳細は、前記の組み込まれた(Thompson Coburn代理人整理番号44826/65592として識別される)「Method and System for High Performance Data Metatagging and Data Indexing Using Coprocessors」という名称の、本出願と同日に出願された、米国特許出願第_____号明細書に記載されている。
【0070】
ファームウェア350の操作によって生成されたドキュメントメタデータ314は、次いでRDBMS304に格納することができ、そこでRDBMSエンジンは、後で、データストア306内のどのドキュメントが、問い合わせ処理時にコプロセッサ450によってハードウェア速度で処理されるべきか特定するために、標準化されたデータベース問い合わせを使って問い合わせすることのできるこのドキュメントメタデータの索引を生成し、維持するように動作する。受け取られたドキュメント312がファームウェア350によって処理された後で、ドキュメント312を非構造化データのデータストア306に格納することにより、ドキュメント312を機器に取り込むことができる。メタデータ生成およびドキュメント取込みの動作は、好ましくは、ほぼリアルタイムで事実上同時に行われる。ドキュメントメタデータ314は、任意選択で、機器200外部の構造化データベースに格納することもできることに留意すべきである。
【0071】
図5に、このドキュメント取込み前処理を論理フローとして示す。ステップ1でユーザは、GUI300と対話して、機器200に取り込むための新しいドキュメント312を特定する。GUI300は、任意選択で、ドキュメント312からどんなメタデータを生成すべきかユーザが指定することができるように構成されてもよい。次にステップ2で、ドキュメント312がその元の場所(企業体ドキュメントストア308、インターネットまたは企業体ネットワーク420からアクセス可能な他の何らかのネットワーク)から取り出される。次いでファームウェア350が、ドキュメント312に対してそのドキュメントメタデータ生成操作500を実行してドキュメントメタデータ314を生成する。次いでステップ3で、ドキュメント312がデータストア306のファイルシステムに格納され、ドキュメントメタデータが(そのデータストア306のファイルシステムにおける場所を含めて)RDBMS304の関係表に保存される。図6に、このデータフローを機器200上に重ね合わせたものを示す。
【0072】
このように、機器200はこれ以後、RDBMS304によって索引付けされたドキュメントメタデータ314を使って、どのドキュメントにコプロセッサ450による問い合わせ指定のデータ処理操作(全文検索操作など)を行うべきか判断するのに役立てることができる。さらに、機器200内では標準化RDBMS技術が活用されているため、所与の問い合わせ904を処理するときに、どのドキュメントにコプロセッサベースのデータ処理操作を行うべきか判断するのに、多くのユーザに周知の標準化データベース問い合わせを使用することができる。
【0073】
一般には、関係データベース304は、ドキュメントメタデータ314の問い合わせを最適化するためにBツリー索引などの索引付け法を使用することが好ましい。また、ハードウェアアクセラレートされたメタデータ生成によって生成され得る索引が豊富な情報を有するために、索引の効力を活用することによって、近接検索(すなわち、単語Xが単語YからZ単語位置未満分だけ隔てられているインスタンスを検出する)を含む、洗練された全文検索操作を効率よく達成することができる。
【0074】
さらに、企業体がその企業体データ処理操作に役立てるために機器200を使用するときには、ドキュメント取込み前処理を、将来を見越して新規に作成されたドキュメントに対して適用するだけでなく、企業体の既存のドキュメントの全部または相当な部分に対して遡及的に適用することもできる。したがって、機器200をインストールするときに、企業体は、効果的で、効率のよいドキュメント探索を可能にするために、図3、図5および図6に関連して詳述したように、機器を介して企業体のドキュメントの全部または相当な部分を取り込もうとしてもよい。しかし、図3、図5および図6に関連して説明した取込み前処理の対象とされるドキュメントは、機器200の外部のドキュメントだけに限定される必要はないことに留意すべきである。前処理は、以前にメタデータ生成操作の対象とされたことのないデータストア306内のドキュメントにも、新規のメタデータ生成操作を必要とするドキュメントにも適用することができる。
【0075】
また、ドキュメントがそこから前処理のために機器200に取り込まれる記憶308は、企業体ネットワークを介してアクセス可能な任意のデータストア(企業体ネットワーク420内の企業体データストアや、企業体ネットワークの外部にあっても、企業体ネットワークからアクセス可能なデータストアなど)とすることができることにも留意すべきである。例えば、機器200に取り込まれるドキュメントは、ウェブページなどのインターネットコンテンツとすることができる。
【0076】
相当数のドキュメント312のためのドキュメントデータ314がRDBMS304に格納されると、機器200はそれ以後ユーザ指定の問い合わせを処理することができるようになる。機器200内のAPIは、好ましくは、機器が、RDBMS304内のドキュメントメタデータ314と対照して標準化データベース問い合わせを処理し、次いで、問い合わせの結果集合を使って、どのドキュメントが問い合わせ指定のデータ処理操作のためにコプロセッサ450に送られるべきか判定することを可能にするように構成されている。
【0077】
図9に、どのようにしてこのような問い合わせを処理することができるかの概要を例示する。ユーザが自分のデスクトップ上で従来のBI報告ツール900にアクセスすることができ、このツール900を介してユーザは、報告ツール900を使用する際の訓練の一部としてすでに熟知している何らかの構文を使った所望の問い合わせ904を入力することができる。次いで報告ツール900は、ユーザ指定の問い合わせ904から標準化データベース問い合わせ(SQLコマンド906など)を生成するように動作する。探索機器200は、この標準化データベース問い合わせ906を受け取るように配置されている。機器200は、(BI報告ツール900がバス406に接続されている場合には)このような問い合わせをBI報告ツール900から直接受け取ることもでき、ネットワークインターフェース410を介してBI報告ツール900から間接的に受け取ることもできる。次いで探索機器200によって実行されるAPI902が、SQLコマンド906をRDBMS304およびデータストア306に対して適宜適用するように動作する。好ましくは、API902の操作は、機器のプロセッサ412によって実行される。しかし、API機能の少なくとも一部は、任意選択で、コプロセッサ450によって展開されてもよいことに留意すべきである。好ましくは、このAPI902は、可能な場合には、既存のANSIのSQL標準および拡張機能(SQL/XML、SQL/MED、SQL/MM、XML/Full−Textなど)に適合している。SQL標準および拡張機能が所望の機能をサポートしていない場合、APIのために(データベース用語で「外部処理手順」として類別され得る)外部機能を考案することができる。図10aにAPI902の好ましい実施形態を示す。以下で論じる図16には、API902の代替の実施形態が記載されている。
【0078】
したがって、本発明の好ましい実施形態は、SQL対応クライアントアプリケーションが、SQLコマンドを介してコプロセッサ450のハードウェアアクセラレートされた機能にアクセスすることができるようにするよう動作する。したがって、機器200は、BI報告ツール900などのSQL対応クライアントアプリケーションと統合することができるだけでなく、さらに、または代替として、他のSQL対応アプリケーションと統合することもできる。例えば機器200は、様々な企業体ソフトウェアアプリケーション(ERP、CRM、SAPなど)、ミドルウェアプログラム、クライアントプログラム、多数のプログラミング言語のいずれかで書かれた(ODBCやJDBC接続などを使った)特注のプログラム、データベース304にリンクされている別のSQLデータベースといったSQL対応アプリケーションのいずれかまたはすべてと統合することができる。
【0079】
機器200自体におけるSQL対応機能は、好ましくは、従来のSQLリレーショナルエンジンソフトウェア950との、高性能の緊密な統合を含む。この一例が図10aに示されている。リレーショナルエンジンソフトウェア950は、関係データベースにアクセスするための従来の既製品のソフトウェアとすることができる。リレーショナルエンジン950による問い合わせ処理をコプロセッサ450と統合するために、リレーショナルエンジンソフトウェア950にいくつかのカスタマイズを加えることができる。所望の統合を達成するためのこの種のカスタマイズをもたらし得る方法の例としては、C言語による外部処理手順(SQLエンジンに動的にリンクされるカスタムライブラリ)、ユーザ定義の型および関数、ストアドプロシージャ、カスタムデータプロバイダなどがある。
【0080】
例えば、SQLコマンドでいくつかの命令文に遭遇したときに所望の外部処理手順を呼び出すコードをリレーショナルエンジン950に加えることができる。この一例が図10cに示されており、リレーショナルエンジン950は、「text_contains」という命令文を、(図10aにコプロセッサインターフェースソフトウェア952として示されている)外部プログラムを呼び出すものとして理解するように構成されている。リレーショナルエンジン950は、このような命令文に遭遇すると、以下で図10bに関連して説明するように、コプロセッサインターフェースソフトウェア952を呼び出し、APIソフトウェア952に適切なデータを渡してコプロセッサを望みどおりに機能させる。リレーショナルエンジン950のために、SQLコマンドにおいて遭遇する命令文によって異なる外部プログラムを呼び出し、それによって、コプロセッサ450を用いて異なる処理結果を達成するようないくつかの外部処理手順を考案することができることが容易に理解されるはずである。前記のように「text_contains」文は、コプロセッサを完全または近似マッチング操作のために構成する外部処理手順に結び付けることができ、「relevance ranking」文は、コプロセッサを、関連性の大きさに従ってデータオブジェクトを採点するように構成する外部処理手順に結び付けることができる。
【0081】
機器200がMySQLなどのオープンソースデータベースを用いて実施されている場合には、統合を、リレーショナルエンジンのソースコード自体の内部で直接達成することができる。オープンソースを用いた方法が提供する高い柔軟性があれば、API902として使用することができ、クライアントアプリケーションとデータベース304との間のすべてのSQL要求を仲介するSQLパーサ/インタプリタを開発することができる。API902のためのSQLパーサ/インタプリタ戦略の実装例は図16に示されている。
【0082】
図10aの実施形態に戻って、図10bに、ストアドプロシージャ、外部処理手順、ユーザ定義の関数といったこのような標準SQL拡張機能に基づくものである問い合わせ処理の解決法を実施するのに使用することのできる一連のステップを示す。図10bは、同じ一連のステップ(1101から1170)を使用する図10cと密接に結びついている。ステップ1101で、ANSI標準SQLコマンド906が構成され、SQL対応クライアントアプリケーションを介して呼び出される。次にステップ1110で、リレーショナルエンジン950がプロセッサ412上で実行され、SQLコマンド906を構文解析して、RDBMS304にどのようにして問い合わせすべきか決定する。オプティマイザヒントおよび様々なコード化法により、SQL開発者は、処理の順序が保証され得るコマンドを構築することができる。すなわち、オプティマイザヒントは、SQLコマンド906内の様々な命令文の間の適切な処理順序を定義することができる。図10cを参照すると、リレーショナルエンジンは、「text_contains」文を処理する前に「date_loaded」文を満足させることを必要とするはずである。手近にあるタスクは、RDBMS304によって格納されている索引付き表を使って、コプロセッサ450による全文スキャンを必要とするオブジェクトを限定しようとするものである。本質的にリレーショナルエンジン950は、構造化データを対象とする問い合わせの部分をRDBMS304に適用する(この問い合わせ部分は、図9および図11bの例においてSQLコマンド908として識別されている)。ステップ1120でRDBMS304は、SQLコマンド906の「date_loaded」制約条件部分で表されている基準を、そのドキュメントメタデータ索引の内容と対照してマッチさせた後で、ドキュメントのリスト910を返す。ドキュメントリスト910で識別されるドキュメントは、好ましくは、データストア306内の各ドキュメントの場所によって識別することができる。ステップ1125で、リレーショナルエンジン950は次に、「text_contains」文に遭遇し、この命令文は外部処理手順を呼び出すものとして理解される。次いでリレーショナルエンジン950は、「text_contains」文と結び付けられているコプロセッサインターフェースソフトウェア952を呼び出す。リレーショナルエンジン950は「text_contains」文の後に問い合わせ文字列が続いたものをコプロセッサインターフェースソフトウェア952に渡し、さらにコプロセッサインターフェースソフトウェア952に、ステップ1120で生成されたファイルリスト910を知らせる。コプロセッサインターフェースソフトウェア952はさらには、好ましくは、コプロセッサ450に問い合わせ文字列を、問い合わせ指定のデータ処理操作を実行するのに適した構成となるようコプロセッサに命ずるコマンドと共に渡すことによって、コプロセッサの操作を指図する。次いでステップ1130で、リスト910によって識別された非構造化ドキュメントの本文全体がコプロセッサ450に読み込まれる。好ましくは、コプロセッサインターフェースソフトウェア952は、ディスクコントローラ416に、データストア306からリスト910に記載された非構造化ドキュメントを流すよう求める命令を出す。次いでデータストア306は、コプロセッサ450によって処理されるデータストリーム914として要求されたドキュメントをコプロセッサ450に提供する。次いでコプロセッサ450は、ハードウェア速度でデータストリーム914に対する指定されたデータ処理操作を実行し(ステップ1140)、従来の手法と比べて問い合わせ処理操作の大幅なアクセラレーションが実現される。次いで、コプロセッサ450によって検出された「ヒット」があれば、コプロセッサはそれをRAM408内の一時データベース表に結果集合916として返すことができる(ステップ1150)。コプロセッサインターフェースソフトウェア952は、さらには、リレーショナルエンジン950にこの結果集合916を知らせることができる。任意選択でステップ1160において、リレーショナルエンジン950は、結果916に対する任意の所望の集約、相互相関、または後続の解析を実行するようこれらの結果916を後処理することもできる。
【0083】
次にステップ1170で、リレーショナルエンジン950は、好ましくは、報告ツール900が求める書式に探索結果916を書式設定し、報告ツール900はその既存の技術を使ってそれらの探索結果916をユーザに提示する。
【0084】
産業界では多種多様なBI報告ツール900が使用されているため、API902は、好ましくは、少なくとも主要なBI報告ツールの大部分とインターフェースし得るように構成されている。例えば、探索機器200によって維持される構成ファイルを、企業体内での探索機器200の初期設定時に、探索機器200が相互のデータ交換を可能にするために対話する相手となる特定のBI報告ツール900を識別するようにセットアップすることができる。
【0085】
また、従来のBI報告ツール900を、探索機器200とユーザの間のインターフェースとして使用しなくてもよいことにも留意すべきである。例えば、探索機器200を、BI報告ツールと同じ基本機能を提供するように構成されている、ユーザに表示するための独自のGUIを提供するように構成することもできる。このような場合には、API902を、任意選択でユーザ指定の問い合わせ904をデータベース問い合わせ908に直接変換するように構成することもできる。
【0086】
さらに、標準化された問い合わせ906は、BI報告ツール900またはユーザから発せられなくてもよいことにも留意すべきである。BI報告ツール900またはユーザから発せられるのではなく、問い合わせは、探索機器200によって格納され、または知られているデータを呼び出す他の何らかの企業体アプリケーションから発せられてもよい。
【0087】
また、本明細書で探索機器200の一部として説明しているAPI902は、任意選択で、その全部または一部が、BI報告ツール900または他の上位レベルアプリケーション内に位置してもよいことにも留意すべきである。
【0088】
図10cには、本発明の好ましい実施形態による簡単な問い合わせ処理操作の論理図が示されている。この例では、ユーザは、2007年7月7日にロードされた、テキスト制約条件:「blastn」という単語の近くにある「high throughput」という句、を含むデータストア306内のドキュメントを探索しようとしている。ユーザがBI報告ツール900にこの目標に向けた問い合わせを入力した後で、BI報告ツールは、図10cに示すようなSQLコマンド906を生成するように動作する。このSQLコマンドは、問い合わせがそれと対照して処理されるべきRDBMS304内の表を指定する「select」文を含む。次の命令文は、探索の条件を指定する「where」文である。条件の1つは、ドキュメントがデータストア306にロードされた日付であり、この条件は2007年7月7日に設定されている。次の条件は前記のテキスト条件である。リレーショナルエンジンは、図10cに示すようにこのSQLコマンド906を受け取り、解釈する(ステップ1101参照、図11aも参照)。
【0089】
リレーショナルエンジン950は、前記のように、「date_loaded」制約条件をドキュメントメタデータ項目として識別し、さらに、テキスト制約条件をコプロセッサ450によって解決されるべき問題として識別する。図10aおよび図10bの実施形態に関して、リレーショナルエンジン950は、SQLコマンド906の「date_loaded」部分に対応するSQLコマンド908を使ってRDBMS304に問い合わせする(ステップ1110参照、図11bも参照)。
【0090】
次いでRDBMSは、メタデータ索引314によって、「date_loaded」制約条件にマッチするものとして識別されたすべてのドキュメントのリスト910を返し(すなわち、RDBMS304はその場合、このSQLコマンド908をそのドキュメントメタデータ索引に対して適用して、2007年7月7日にデータストア306にロードされたすべてのドキュメントのリストを返すはずである)、このリスト910はRAM408に格納することができる(ステップ1120参照、図11cも参照)。このリスト910は、好ましくは、2007年7月7日にロードされた各ドキュメントが位置するデータストア304のファイルシステム内の場所を識別するものである。
【0091】
また、API902は(図10aおよび図10bの実施形態ではAPI952を介して、ステップ1125参照)、データストア306にリスト910上のすべてのドキュメントの検索を求める要求912も出す(図11d参照)。また、API902は(図10aおよび図10bの実施形態ではAPI952を介して、ステップ1125参照)、コプロセッサのFAMパイプライン350に送るために、「「blastn」の近くにある「high throughput」」という条件を中心として構築された全文検索を実行するようにFAMパイプラインを編成する制御信号1100を生成するようにも動作する。次いでこの制御信号1100は、好ましくは、ドキュメントがコプロセッサ450に到達する前にコプロセッサ450に送られる(好ましくは、コプロセッサ450上にあるファームウェアソケットモジュール404に送られる)(図11e参照)。
【0092】
要求912に応答してデータストア306は、図11eに示すように、コプロセッサ450に(好ましくは再構成可能論理回路402上のファームウェアに)送るためのデータストリーム914を出力する(ステップ1130も参照)。次いでコプロセッサ450は(好ましくは、再構成可能論理回路402上のFAMパイプライン350を介して)、問い合わせ内のテキスト制約条件に従い、ストリーム914内のドキュメントのハードウェアアクセラレートされた全文検索を実行する(ステップ1140参照、図11f参照)。次いでこの高速データ処理操作の結果は、ファームウェアソケットモジュール404を経由してAPI902に返される(ステップ1150参照)。次いでAPI902(好ましくはリレーショナルエンジン950)は、図11gに示すように、それらの探索結果916を、ユーザにユーザの問い合わせを満足させる探索結果を提示することのできる報告ツール900に返すために、報告ツール900が求める方法で書式設定するように動作する(ステップ1170参照)。
【0093】
そのためのドキュメントメタデータ314が生成されているドキュメント312は、必ずしも機器内でデータストア306に格納されている必要はないことにも留意すべきである。それらのドキュメントは、望ましい場合には、機器200の外部のドキュメントの元の場所に保持することもできる。そのような場合、それらのドキュメントをコプロセッサ450によって全文処理すべきときには、それらのドキュメントを、ネットワークインターフェース410を介して機器200およびコプロセッサ450に流すことができる。図12は、RDBMS306によって返されたリスト910上のドキュメントが、データストア306内部のドキュメントと、企業体ネットワークを介してアクセス可能な他の何らかのデータストア308に位置する機器200の外部のドキュメントの両方を含む場合のこの態様のドキュメント探索を示す、図9の対応図である。そのような場合には、API902により、データストア306に送るためと機器200の外部に送るための2つの要求912aおよび912bが作成される。この構成は、探索が実行される際の待ち時間をネットワーク帯域幅が制約し得るためにあまり望ましくないが、それでもやはり本発明者らは、ドキュメントがデータストア306内に保持されていない場合でさえも、ある程度のアクセラレーションがなおも実現されることを認めるものである。この状況では、ドキュメント312をデータストア306に取り込む処置は、移動操作ではなくコピー操作とすることができることも注目に値する。企業体の中には、ドキュメント312の原本を機器200の外部にある元の場所に残そうとするものもある。そうした状況では、ドキュメント312のコピーだけがデータストア306によって格納される。
【0094】
好ましい実施形態の別の強力な態様は、機器200が、データ処理操作を実行するときに探索機器200の外部にある任意の企業体RDBMS1300にアクセスすることができるものである。この態様の好ましい実施形態の概要が図13に示されている。この態様の好ましい実施形態の一部として、API902により外部RDBMS1300に対してSQLコマンド1302が発行され、それらのコマンドに対する応答1304がAPI902によって受け取られる。したがって、機器200は、対象とするドキュメントの探索を実行するときに、企業体によって維持されている既存の構造化データを効率よく活用することができる。
【0095】
図14に、この態様のSQLコマンド処理の論理図を示す。図14の例では、ユーザには、なぜ最近企業体のいくつかの顧客の売上が鈍化しているのか調べるという任務が割り当てられている。この任務の一部として、ユーザは、ネットワークによって格納されている、このような売上不振に対する有益な洞察を提供し得るドキュメントを調査しようとする。これを達成するためにユーザは、2007年7月7日にロードされた、「widget」または「new product」の近くにある「trouble」というテキストを含む、その月間売上高が10,000製品(widget)を下回る顧客のすべてのドキュメントを検索することを目的とする問い合わせを指定する。BI報告ツール900は、これらの問い合わせ制約条件を、図14に示すようなSQLコマンド906に変換するように動作する。
【0096】
企業体はその顧客売上データを探索機器200の外部にあるRDBMS1300に格納するため、SQLコマンド906は、外部RDBMS1300内のデータ表をRDBMS304内のドキュメントメタデータ表と結合するように動作する。この処置は、当分野で公知のSQL操作である、(ドキュメントメタデータ表の)「D.Customer_ID」と(外部関係表の)「C.Customer_ID」とのマージキーに基づき、外部RDBMS1300内の「Customers@external_DB C」関係表の顧客データをRDBMS304内のドキュメントメタデータ関係表と結合する「inner join」文に反映されている。このマージに基づき、リレーショナルエンジン950は、外部関係表から、どの顧客が10,000を下回る売上高を有するか特定し、それらの顧客をドキュメントメタデータ表内のフィールドに結び付けることができる。次いで、ドキュメントメタデータ内の「date_loaded」メタデータフィールドに基づいて、それらの顧客のドキュメントをさらに限定することができる。最終的には、売上高とロードされた日付を満たす顧客のドキュメントを、コプロセッサ450内で「「widget」または「new product」の近くにある「trouble」」という制約条件に基づく高速テキストマイニングのために処理することができる。その後は、図10bに関連して説明したように処理を続行することができる。
【0097】
図15aに、図11aを反映した、API902によるSQLコマンド906の受け取りを示す。リレーショナルエンジン950は、SQLコマンド906内のどの(1つまたは複数の)制約条件が外部RDBMS1300を対象とするものであるか特定し、SQLコマンド906の外部関係データ制約条件部分を対象とする新しいSQLコマンド1302を生成する(図14のSQLコマンド906の例では、この外部制約条件部分は売上高制約条件である)。リレーショナルエンジン950は、新しいSQLコマンド1302を処理するために外部RDBMS1300に対して適用する(図15b参照)。その後リレーショナルエンジン950は、外部RDBMSによるSQLコマンド1302の処理から結果集合1304を受け取る(図15c参照)。
【0098】
次いでリレーショナルエンジン950は、引き続きそのSQLコマンド906を処理し、コマンド906にRDBMS304を対象とする別の制約条件が残っているかどうか判定する。制約条件が残っていない場合、結果集合1304内の顧客に基づいてRDBMS304のSQLコマンド908が構築される。制約条件が残っている場合、結果集合1304と、残りの内部RDBMSを対象とする制約条件(図14の例では「date loaded」制約条件など)とに基づいて、RDBMS304のSQLコマンド908が構築される。したがって、図14のSQLコマンド906の例では、リレーショナルエンジンは、その顧客フィールドが結果集合1304内の顧客によって限定され、そのロードされた日付フィールドが2007年7月7日によって限定されるドキュメントメタデータを有するすべのドキュメントを探し出すSQLコマンドを適用するはずである。この新しいコマンドを処理するためにRDBMS304に送ることができる(図15c参照)。
【0099】
コマンド908に応答してドキュメントリスト910を受け取ると、問い合わせ処理の残りの部分が、図15dから図15hに示すように、図11cから図11gに関連して説明したのと同様に続行される。この例では、FAMパイプライン350の制御信号1100は、どのドキュメントが「widget」または「new product」の近くにある「trouble」というテキストを含むか特定するためにデータストリーム914内のドキュメントの全文検索を実行するようFAMパイプライン350を編成するように構成されている。
【0100】
前記のように、図16には、API902の代替の実施形態が開示されている。図11aから図11gの作業例に関連して、ステップ1600、1602、1604、1606、1616、および1620は、図11aに示すフローに対応するものである。ステップ1624およびステップ1628は図11bに示すフローに対応するものである。ステップ1632は図11cに示すフローに対応するものである。ステップ1640は図11dに示すフローに対応するものである。ステップ1610およびステップ1636は図11eに示すフローに対応するものである。ステップ1648は図11fに示すフローに対応し、ステップ1650は図11gに示すフローに対応するものである。
【0101】
また、API902は、構造化データの少なくとも一部分が機器200の外部にあるRDBMSに格納されているときに使用するための一連の処理ステップも開示するものである。図15aから図15hの作業例に関連して、ステップ1600、1602、1604、1606、1616、1620、および1626は、図15aに示すフローに対応するものである。この例の問い合わせの一部は外部RDBMS1300に格納された関係データを対象としているため、プロセスフローはステップ1620からステップ1626に分岐することに留意すべきである。その後、ステップ1630は、図15bに示すフローに対応するものである。ステップ1634、1638、1642、1644、および1646は図15cに示すフローに対応するものである。その時点で図16のプロセスフローはステップ1632に分岐し、図15dから図15hが図11cから図11gに関連して説明したように動作するように残りの操作が続行される。
【0102】
また、機器200を、BI報告ツール900などの上位レベルアプリケーションからの、データストア304内のドキュメントも、RDBMS304がそれに関するメタデータを維持しているドキュメントも、RDBMS304内のデータも対象としない問い合わせも処理するように構成することができることも注目に値する。このような例では、API902は本質的に、それらの問い合わせが適切な外部構成要素に向けられる際の通路として(少なくともリレーショナルエンジン950までの通路として)機能する(ステップ1604、1608、1614および1618参照)。
【0103】
また、API902は、図16のステップ1606、1612、1614および1618で示すように、もっぱらRDBMS304内のメタデータだけを対象とする問い合わせ(メタデータに対する、ドキュメントテキスト探索制約条件を含まない問い合わせなど)を処理するように構成することもできることも分かる。
【0104】
図17aおよび図17bに、好ましい実施形態のハードウェアアクセラレートされたデータ処理タスクを実行するために、再構成可能論理回路402のFAMパイプライン350をどのようにしてセットアップすることができるかを例示する。図17aの例では、単一のFAMパイプライン350が用いられており、パイプライン内の第1のFAM集合1700はドキュメントメタデータ生成操作を実行するように構成されており、パイプライン内の第2のFAM集合1702は問い合わせ指定のデータ処理操作を実行するように構成されている(またはその逆でもよい)。この編成では、FAMパイプライン350がドキュメント取込み前処理に使用されているとき、問い合わせ指定のデータ処理を対象とするFAMを、それらが事実上オフとされる「通過」モードに設定することができる。FAMパイプライン350がそうではなく問い合わせ指定のデータ処理操作に使用されるときには、ドキュメントメタデータ生成操作を対象とするFAMを、それらが事実上オフとされる「通過」モードに設定することができる。
【0105】
この動作モードの代替として、図17bに示すように、FAM集合1700とFAM集合1702を両方とも、独自の別個のパイプラインとして設定することもできる。この例では、ファームウェアソケットモジュール404に組み込まれたインテリジェンスが、どんな種類の処理が必要とされているかに応じて、データ(制御データおよびターゲットデータ)を適切なFAM集合に向けることができる。
【0106】
コプロセッサ450によって(好ましくは、再構成可能論理回路402上に展開されたファームウェア350を介して)実行される問い合わせ指定のデータ処理操作には、様々なアルゴリズムのいずれかを使用することができる。前記のように、コプロセッサによって全文検索を実行することもできる。コプロセッサによって実行され得る様々な全文検索操作の例には、完全マッチ操作、近似マッチ操作、正規表現マッチング操作、パターンマッチング操作他が含まれる。全文検索では、(問い合わせによって定義されるように)非構造化データにおいて検出されることが求められるデータに対応する1つまたは複数のキーをコプロセッサ450にロードすることができ、流れる非構造化データのいずれかが問い合わせを満足させるかどうか判定するための様々な技法を使って、流れる非構造化データを1つまたは複数のキーと比較することができる。このような全文検索操作の例示的実施形態は、前記の組み込まれた米国特許第6711558号明細書および米国特許第7139743号明細書、米国特許出願公開第2006/0294059号明細書、米国特許出願公開第2007/0130140号明細書、ならびに(2006年5月2日に出願された米国出願第11/381214号から公開された)「Method and Apparatus for Approximate Pattern Matching」という名称の米国特許出願公開第_____号明細書に開示されている。
【0107】
コプロセッサ450によって実行され得るデータ処理操作の別の例にはバイオシーケンス類似性探索が含まれ、その実施形態は、前記の組み込まれた米国特許出願公開第2007/0067108号明細書、および(2007年8月10日に出願された、米国出願第11/836947号から公開された)「Method and Apparatus for Protein Sequence Alignment Using FPGA Devices」という名称の米国特許出願公開第_____号明細書に開示されている。
【0108】
さらに、コプロセッサ450内のパイプラインは、非構造化データに対して複数の異なるデータ処理操作を実行するように編成されることもできる。例えば、非構造化データがデータストア306に暗号化形式で格納されている場合には、コプロセッサを、全文検索操作を実行する前に、暗号化された非構造化データに対する復号操作を実行するパイプラインで構成することもできる。同様に、非構造化データがデータストア306に圧縮形式で格納されている場合には、コプロセッサを、全文検索操作を実行する前に、圧縮された非構造化データに対して伸張操作を実行するパイプラインで構成することもできる。さらに、非構造化データがデータストア306に暗号化され、圧縮された形式で格納されている場合には、コプロセッサを、全文検索操作を実行する前に復号および伸張を実行するパイプラインで構成することもできる。
【0109】
また、本発明を実施する者は、機器200内に、様々なユーザが利用し得る内容を制限するセキュリティ機構を用いようとしてもよいことにも留意すべきである。好ましくは、このようなセキュリティ機構は、LDAP、アクティブディレクトリ(Active Directory)、シングルサインオン(Single Sign−On)といった様々な企業体セキュリティアーキテクチャと統合されている。また、望ましい場合には、コプロセッサ450によってセキュリティ機能をハードウェアアクセラレートすることもできることにも留意すべきである。例えば、セキュリティ制御の粒度を、コプロセッサ450の使用により、ドキュメントレベルではなくデータレベルにおいて効率よく実施することができる。例えば、コプロセッサが再構成可能論理回路402を備える好ましい実施形態では、再構成可能論理回路上でファームウェア350を、指定のデータ処理操作のために編成されているファームウェアパイプライン内の下流側FAMへの制限データの通過を効率よくマスクする資格フィルタリング(entitlement filtering)を用いるように編成することもできる。例えば、正規表現パターンマッチングFAMを用いて、データがファームウェア350を流れる際にデータからデータの特定の部分(名前、電話番号、クレジットカード番号など)を除外することもできる。同様に、医療記録分野への本発明の適用例では、医療記録を探索しようとする、医療記録の特定部分の閲覧を許可されていないユーザが、制限されたデータにアクセスするのを防ぐために、適切に構成されたファームウェアを使って、医者/看護師だけが見るべきである医療記録内の特定のデータをフィルタリングすることもできる。このようにして、ファームウェア350によって用いられるデータ処理は、問い合わせ指定のデータ処理を用いるだけでなく、資格フィルタリング他のセキュリティ管理、暗号化/復号(例えば、前記の組み込まれた米国特許出願公開第2007/0237327号明細書に記載されている暗号化/復号技術を参照されたい)、問い合わせ指定のデータ処理操作を補助するその他のデータ処理操作といった追加の付随的なデータ処理操作を用いることもできる。
【0110】
また、コプロセッサを使って解析されるべき非構造化データの一部を特定するのに構造化データを使用する問い合わせ処理の技法は、構造化データと非構造化データが同じデータストアに位置している状況においても適用することができることにも留意すべきである。この例示的実施形態は、図18aおよび図18bに示されている。これは、関係データベース表が非構造化データの列を含む場合とすることができる。この一例は、コールセンター記録を格納する関係データベースにおいて生じ得る。コールセンターデータの各構造化フィールドは、電話が受け取られた日付、発信者の名前および電話番号、ならびに電話に出たコールセンター職員の名前を特定し得る。また、これらの記録は、発信者の通話に関するコールセンター職員の自由形式のテキストメモを含む非構造化データフィールドも含み得る。本明細書で説明した技法を使用すれば、通話メモが「refund」という単語を含む、2008年1月1日から2008年1月31日までのすべての通話記録を検索するよう求める問い合わせを機器200に向けることができる(図18b参照)。API902は構造化データ列にアクセスして、通話日付が2008年1月中であった通話記録の一部を特定することができる。その後、特定された部分におけるすべての通話記録(または少なくとも特定された部分の通話記録内のすべての非構造化列)をコプロセッサ450に流して、「refund」という単語を含む2008年1月の通話記録を特定することができる。
【0111】
本明細書で開示した好ましい実施形態においてコプロセッサ450はFPGAなどの再構成可能論理回路402を備えているが、コプロセッサ450は他の処理装置を使って実現することもできる。例えば、コプロセッサ450は、グラフィックス処理装置(GPU)、汎用グラフィックスプロセッサ、チップマルチプロセッサ(CMP)、専用メモリ素子、複合プログラマブル論理回路、特定用途向け集積回路(ASIC)、および他の入出力処理構成要素を含んでもよい。さらに、機器200は、直列と並列のどちらかまたは両方のマルチコプロセッサアーキテクチャとして複数のコプロセッサ450を用いてもよいことにも留意すべきである。
【0112】
以上、本発明をその好ましい実施形態に関連して説明したが、本発明には、やはり本発明の範囲内に含まれる様々な変更が加えられ得る。このような本発明への変更は、本明細書の教示を考察すれば理解されるであろう。したがって、本発明の完全な範囲は、もっぱら添付の特許請求の範囲およびその法的な均等物によって定義されるべきものである。
【特許請求の範囲】
【請求項1】
構造化データと非構造化データの両方への統合的アクセスを可能にする方法であって、
構造化データと非構造化データの組み合わさったものを対象とする問い合わせを受け取るステップと、
受け取った問い合わせに従って構造化データのデータベースから構造化データを取り出すステップと、
取り出した構造化データに基づいて非構造化データのデータストアから非構造化データを取り出すステップと、
取り出した非構造化データを、コンピュータシステム内のシステムの主プロセッサとは別の処理装置に流すステップと、
処理装置を使い、流れる非構造化データに対して問い合わせ指定のデータ処理操作を実行するステップと
を含む、方法。
【請求項2】
処理装置がコプロセッサを備える、請求項1に記載の方法。
【請求項3】
コプロセッサが再構成可能論理回路を備える、請求項2に記載の方法。
【請求項4】
再構成可能論理回路に、問い合わせ指定のデータ処理操作を実行するように構成されたファームウェアが展開されている、請求項3に記載の方法。
【請求項5】
問い合わせが標準化データベース問い合わせを含む、請求項1に記載の方法。
【請求項6】
標準化データベース問い合わせがSQLコマンドを含む、請求項5に記載の方法。
【請求項7】
問い合わせ指定のデータ処理操作が、問い合わせで見られる少なくとも1つのキーに基づくテキスト探索操作を含む、請求項6に記載の方法。
【請求項8】
構造化データが、非構造化データのデータストア内の非構造化データに関するメタデータを含む、請求項1に記載の方法。
【請求項9】
処理装置に新しい非構造化データを流すステップと、
新しい非構造化データに関するメタデータを生成するために、処理装置を使って流れる非構造化データに対するメタデータ生成操作を実行するステップと、
新しい非構造化データを非構造化データのデータストアに格納するステップと、
新しい非構造化データに関するメタデータを構造化データのデータベースに格納するステップと
をさらに含む、請求項8に記載の方法。
【請求項10】
処理装置がコプロセッサを備える、請求項9に記載の方法。
【請求項11】
コプロセッサが再構成可能論理回路を備える、請求項10に記載の方法。
【請求項12】
再構成可能論理回路に、メタデータ生成操作を実行するように構成されたファームウェアが展開されている、請求項11に記載の方法。
【請求項13】
構造化データのデータベースがRDBMSを備える、請求項8に記載の方法。
【請求項14】
構造化データを取り出すステップが、受け取った問い合わせに従って外部の構造化データのデータベースから構造化データを取り出すステップを含む、請求項1に記載の方法。
【請求項15】
構造化データを取り出すステップが、受け取った問い合わせに従って内部の構造化データのデータベースから構造化データを取り出すステップもさらに含む、請求項14に記載の方法。
【請求項16】
構造化データを取り出すステップが、受け取った問い合わせに従って内部の構造化データのデータベースから構造化データを取り出すステップを含む、請求項1に記載の方法。
【請求項17】
主プロセッサと、
主プロセッサとは別の処理装置と、
主プロセッサおよび処理装置と通信状態にある非構造化データのデータストアと、
主プロセッサおよび処理装置と通信状態にある構造化データのデータストアと
を備え、
主プロセッサが、(1)問い合わせを受け取り、(2)問い合わせの少なくとも一部分を満足させる非構造化データのデータストア内の非構造化データの一部を特定するために、問い合わせの少なくとも一部分を構造化データのデータストア内の構造化データと対照して処理し、(3)非構造化データの一部が処理装置に送られるよう要求するように構成されており、
処理装置が、非構造化データの一部に対して問い合わせ指定のデータ処理操作を実行するように構成されている、
データを処理するシステム。
【請求項18】
処理装置がコプロセッサを備える、請求項17に記載のシステム。
【請求項19】
コプロセッサが再構成可能論理回路を備える、請求項16に記載のシステム。
【請求項20】
再構成可能論理回路に、問い合わせ指定のデータ処理操作を実行するように構成されたファームウェアが展開されている、請求項19に記載のシステム。
【請求項21】
構造化データのデータベースがRDBMSを備え、問い合わせが標準化データベース問い合わせを含む、請求項17に記載のシステム。
【請求項22】
RDBMS内の構造化データが、非構造化データのデータストア内の非構造化データに関するメタデータを含む、請求項21に記載のシステム。
【請求項23】
標準化データベース問い合わせがSQLコマンドを含む、請求項22に記載のシステム。
【請求項24】
問い合わせ指定のデータ処理操作が、問い合わせで定義されている少なくとも1つのキーのための問い合わせ指定のテキストサーチ操作を含む、請求項23に記載のシステム。
【請求項25】
主プロセッサが、問い合わせを受け取り、処理するためのSQL対応APIを用いて構成されている、請求項24に記載のシステム。
【請求項26】
主プロセッサ、処理装置、非構造化データのデータストア、およびRDBMSを相互接続するバスをさらに備える、請求項25に記載のシステム。
【請求項27】
別の非構造化データのデータストアが位置するコンピュータネットワークと通信状態にある、バスに接続されたネットワークインターフェースをさらに備え、SQL対応APIが、問い合わせに応答して別のデータストア内の非構造化データが処理装置に流されるように、別のデータストアに格納された非構造化データを対象とする問い合わせも処理するように構成されている、請求項26に記載のシステム。
【請求項28】
SQL対応クライアントアプリケーションがあるコンピュータネットワークと通信状態にある、バスに接続されたネットワークインターフェースをさらに備え、SQL対応クライアントアプリケーションが、ユーザ入力に応答して問い合わせを作成し、ネットワークインターフェースを介してSQL対応APIに問い合わせを送るように構成されている、請求項26に記載のシステム。
【請求項29】
SQL対応クライアントアプリケーションがBI報告ツールを含む、請求項28に記載のシステム。
【請求項30】
主プロセッサ、処理装置、およびRDBMSを相互接続するバスと、
バスを経由して非構造化データのデータストアと処理装置とを相互接続するネットワークインターフェースと
をさらに備える、請求項25に記載のシステム。
【請求項31】
主プロセッサがさらに、非構造化データのストリームを処理装置に向けるように構成されており、処理装置がさらに、処理装置に流された非構造化データに関するメタデータを生成するように構成されており、主プロセッサがさらに、後で問い合わせ処理操作時に使用するために生成されたメタデータをRDBMSに格納するように構成されている、請求項25に記載のシステム。
【請求項32】
構造化データと非構造化データの両方への統合的アクセスを可能にする方法であって、
構造化データと非構造化データの組み合わさったものを対象とする問い合わせを受け取るステップと、
受け取った問い合わせに従って構造化データのデータベースから構造化データを取り出すステップと、
取り出した構造化データに基づいて非構造化データのデータストアから非構造化データを取り出すステップと、
ファームウェアに流される非構造化データに対して問い合わせ指定のデータ処理操作を実行するように構成されている、再構成可能論理回路上に展開されたファームウェアに取り出した非構造化データを流すステップと
を含む、方法。
【請求項33】
ファームウェアが展開されている再構成可能論理回路と、
再構成可能論理回路と通信状態にある非構造化データのデータストアと、
再構成可能論理回路と通信状態にある構造化データのデータストアと、
(1)問い合わせを受け取り、(2)問い合わせの少なくとも一部分を満足させる非構造化データのデータストア内の非構造化データの一部を特定するために、問い合わせの少なくとも一部分を構造化データのデータストア内の構造化データと対照して処理し、(3)非構造化データの一部が、再構成可能論理回路上のファームウェアに送られるよう要求するように構成されたインターフェースと
を備え、該ファームウェアが、非構造化データの一部に対して問い合わせ指定のデータ処理操作を実行するように構成されている、データを処理するシステム。
【請求項34】
データ解析操作を実行するために非構造化データにインテリジェントにアクセスする方法であって、
構造化データのデータストア内の非構造化データに対応するメタデータを維持するステップと、
構造化データのデータストアに、少なくとも一部がメタデータを対象とする問い合わせを適用することにより、非構造化データの一部を特定するステップと、
非構造化データのデータストアから特定した非構造化データの一部を取り出すステップと、
問い合わせへの応答のデータを生成するために、コプロセッサを使って取り出した非構造化データに対するデータ解析操作を実行するステップと
を含む、方法。
【請求項35】
コプロセッサが再構成可能論理回路を備える、請求項31に記載の方法。
【請求項36】
再構成可能論理回路上にファームウェアが展開されており、ファームウェアがデータ解析操作を実行するように構成されている、請求項35に記載の方法。
【請求項37】
データ解析操作を実行するステップが、コプロセッサを使って取り出した非構造化データを全文検索するステップを含む、請求項34に記載の方法。
【請求項38】
全文検索を行うステップが近接検索を行うステップを含む、請求項37に記載の方法。
【請求項39】
問い合わせがSQLコマンドを含む、請求項34に記載の方法。
【請求項40】
流れるデータに対してメタデータ生成操作を実行するように構成されているコプロセッサに非構造化データを流してメタデータを生成するステップをさらに含む、請求項34に記載の方法。
【請求項41】
コプロセッサとソフトウェアアプリケーションとをインターフェースするプロセッサ可読媒体であって、
(1)ソフトウェアアプリケーションから問い合わせを受け取り、(2)構造化データのデータストアによって格納されている構造化データに対して向けられるべき問い合わせの部分を判定し、(3)非構造化データのデータストアによって格納されている非構造化データに向けられるべき問い合わせの部分を判定し、(4)判定した構造化データのための問い合わせ部分を構造化データのデータストアに対して適用し、(5)判定した構造化データのための問い合わせ部分の適用に応答して、構造化データのデータストアから、格納された非構造化データの一部の識別を受け取り、(6)コプロセッサにコマンドを送って、コプロセッサを、判定した非構造化データのための問い合わせ部分によって指定されるデータ解析操作を実行するように構成し、(7)非構造化データの一部に対してデータ解析操作を実行するために非構造化データのデータストアからコプロセッサに非構造化データの一部を送るよう指図するための、プロセッサ可読媒体上にあるプロセッサ実行可能コード
を備えるプロセッサ可読媒体。
【請求項42】
問い合わせがSQLコマンドを含む、請求項41に記載のプロセッサ可読媒体。
【請求項43】
(1)データ解析操作に応答してコプロセッサからデータを受け取り、(2)ソフトウェアアプリケーションに送るために受け取ったデータを書式設定するための、プロセッサ可読媒体上にあるプロセッサ実行可能コードをさらに備える、請求項41に記載のプロセッサ可読媒体。
【請求項44】
構造化データおよび非構造化データを対象とする問い合わせを処理する方法であって、
構造化データを対象とする問い合わせの部分について構造化データ検索操作を実行するステップと、
非構造化データを対象とする問い合わせの部分について問い合わせ指定のデータ処理操作をハードウェアアクセラレートするステップと
を含む、方法。
【請求項45】
非構造化データに対する問い合わせを実行する方法であって、
問い合わせを受け取るステップと、
問い合わせに応答し、問い合わせと対照して解析されるべき非構造化データの一部を特定するために構造化データにアクセスするステップと、
問い合わせへの応答のデータを生成するために、特定した非構造化データの一部に対して問い合わせ指定のデータ解析操作を実行するステップと
を含み、
アクセスするステップがプロセッサによって行われ、
実行するステップがコプロセッサによって行われる、方法。
【請求項46】
コプロセッサが再構成可能論理回路を備える、請求項45に記載の方法。
【請求項47】
再構成可能論理回路に、非構造化データの一部に対して問い合わせ指定のデータ解析操作を実行するように構成されているファームウェアが展開されている、請求項46に記載の方法。
【請求項48】
データ解析操作が全文検索操作を含む、請求項47に記載の方法。
【請求項49】
構造化データが関係データベースに格納されている、請求項45に記載の方法。
【請求項50】
実行するステップの前に、特定した非構造化データの一部を取り出すステップをさらに含み、取り出すステップが、関係データベースから特定した非構造化データの一部を取り出すステップを含む、請求項49に記載の方法。
【請求項51】
構造化データが、非構造化データに対応するメタデータ索引を含む、請求項45に記載の方法。
【請求項52】
コンピュータと、
プロセッサ、コプロセッサおよびデータストアを備え、ネットワークを介してコンピュータと通信状態にある機器と
を備え、
コンピュータが、機器に問い合わせを送るソフトウェアアプリケーションを実行するように構成されており、
機器が問い合わせを受け取るように構成されており、
プロセッサが、データストアによって格納されている構造化データに受け取った問い合わせの一部分を選択的に適用し、適用した問い合わせに応答して非構造化データの一部を特定するように構成されており、
プロセッサがさらに、受け取った問い合わせの別の部分に基づいてコプロセッサのためのデータ処理操作を定義するように構成されており、
機器がさらに、特定した非構造化データの一部をコプロセッサに流すように構成されており、
コプロセッサが、受け取った問い合わせに対応する結果集合を生成するために、コプロセッサに流された特定された非構造化データの一部に対して定義されたデータ処理操作を実行するように構成されており、
プロセッサがさらに、(1)生成した結果集合に基づいて問い合わせへの応答を作成し、(2)問い合わせの応答をコンピュータに送るように構成されている、
企業体コンピュータシステム。
【請求項53】
データストアが、構造化データの少なくとも一部分が格納されている関係データベースを備え、機器が、非構造化データの少なくとも一部分が格納されている第2のデータストアをさらに備える、請求項52に記載のシステム。
【請求項54】
構造化データが、少なくとも一部が、非構造化データに対応するメタデータ索引を含む、請求項53に記載のシステム。
【請求項55】
ソフトウェアアプリケーションがSQL対応ソフトウェアアプリケーションを含み、問い合わせがSQLコマンドを含む、請求項54に記載のシステム。
【請求項56】
構造化データが格納されている第2の関係データベースをさらに備え、機器がネットワークを介して第2の関係データベースと通信状態にあり、プロセッサがさらに、(1)第2の関係データベースに受信した問い合わせのさらに別の部分を選択的に適用し、(2)2つの関係データベースに適用された問い合わせの部分に基づいて非構造化データの一部を特定するように構成されている、請求項54に記載のシステム。
【請求項57】
非構造化データが格納されている第3のデータストアをさらに備え、機器がネットワークを介して第2のデータストアと通信状態にあり、特定される非構造化データの一部が、第2のデータストアと第3のデータストアの両方によって格納されている非構造化データを含む、請求項54に記載のシステム。
【請求項58】
コプロセッサが再構成可能論理回路を備える、請求項54に記載のシステム。
【請求項59】
再構成可能論理回路上に、定義されたデータ処理操作を実行するように構成されたファームウェアが展開されている、請求項58に記載のシステム。
【請求項60】
定義されたデータ処理操作が全文検索操作を含む、請求項59に記載のシステム。
【請求項61】
定義されたデータ処理操作がテキストマイニング操作を含む、請求項59に記載のシステム。
【請求項62】
定義されたデータ処理操作が正規表現マッチング操作を含む、請求項59に記載のシステム。
【請求項63】
ファームウェアが、定義されたデータ処理操作の前に復号操作を実行するように構成されているファームウェアパイプラインを備える、請求項59に記載のシステム。
【請求項64】
ファームウェアが、定義されたデータ処理操作の前に伸張操作を実行するように構成されているファームウェアパイプラインを備える、請求項59に記載のシステム。
【請求項65】
プロセッサが、受け取った問い合わせを処理するためにAPIソフトウェアを実行するように構成されている、請求項54に記載のシステム。
【請求項66】
APIソフトウェアがリレーショナルエンジンソフトウェアおよびコプロセッサインターフェースソフトウェアを含み、リレーショナルエンジンソフトウェアが、受信した別の問い合わせ部分に遭遇すると、コプロセッサインターフェースソフトウェアを呼び出すように構成されており、コプロセッサインターフェースソフトウェアが、受信した別の問い合わせ部分を処理するためにコプロセッサを呼び出すように構成されている、請求項65に記載のシステム。
【請求項67】
構造化データおよび非構造化データを対象とする問い合わせを処理する装置であって、
(1)リレーショナルエンジンソフトウェアを実行し、(2)コプロセッサインターフェースソフトウェアを実行するように構成されたプロセッサ
を備え、リレーショナルエンジンソフトウェアが、(1)非構造化データの一部を特定するために構造化データを対象とする問い合わせの部分を関係データベースに適用し、(2)非構造化データを対象とする問い合わせの部分に遭遇すると、コプロセッサインターフェースソフトウェアを呼び出すように構成されており、コプロセッサインターフェースソフトウェアが、特定された非構造化データの一部に対して問い合わせ指定のデータ処理操作を実行するためにコプロセッサを呼び出すように構成されている、装置。
【請求項68】
コプロセッサインターフェースソフトウェアがさらに、コプロセッサが特定された非構造化データの一部に対して問い合わせ指定のデータ処理操作を実行することを可能にするためにコプロセッサにデータを渡すように構成されている、請求項67に記載の装置。
【請求項69】
リレーショナルエンジンソフトウェアがSQLリレーショナルエンジンソフトウェアを含む、請求項68に記載の装置。
【請求項1】
構造化データと非構造化データの両方への統合的アクセスを可能にする方法であって、
構造化データと非構造化データの組み合わさったものを対象とする問い合わせを受け取るステップと、
受け取った問い合わせに従って構造化データのデータベースから構造化データを取り出すステップと、
取り出した構造化データに基づいて非構造化データのデータストアから非構造化データを取り出すステップと、
取り出した非構造化データを、コンピュータシステム内のシステムの主プロセッサとは別の処理装置に流すステップと、
処理装置を使い、流れる非構造化データに対して問い合わせ指定のデータ処理操作を実行するステップと
を含む、方法。
【請求項2】
処理装置がコプロセッサを備える、請求項1に記載の方法。
【請求項3】
コプロセッサが再構成可能論理回路を備える、請求項2に記載の方法。
【請求項4】
再構成可能論理回路に、問い合わせ指定のデータ処理操作を実行するように構成されたファームウェアが展開されている、請求項3に記載の方法。
【請求項5】
問い合わせが標準化データベース問い合わせを含む、請求項1に記載の方法。
【請求項6】
標準化データベース問い合わせがSQLコマンドを含む、請求項5に記載の方法。
【請求項7】
問い合わせ指定のデータ処理操作が、問い合わせで見られる少なくとも1つのキーに基づくテキスト探索操作を含む、請求項6に記載の方法。
【請求項8】
構造化データが、非構造化データのデータストア内の非構造化データに関するメタデータを含む、請求項1に記載の方法。
【請求項9】
処理装置に新しい非構造化データを流すステップと、
新しい非構造化データに関するメタデータを生成するために、処理装置を使って流れる非構造化データに対するメタデータ生成操作を実行するステップと、
新しい非構造化データを非構造化データのデータストアに格納するステップと、
新しい非構造化データに関するメタデータを構造化データのデータベースに格納するステップと
をさらに含む、請求項8に記載の方法。
【請求項10】
処理装置がコプロセッサを備える、請求項9に記載の方法。
【請求項11】
コプロセッサが再構成可能論理回路を備える、請求項10に記載の方法。
【請求項12】
再構成可能論理回路に、メタデータ生成操作を実行するように構成されたファームウェアが展開されている、請求項11に記載の方法。
【請求項13】
構造化データのデータベースがRDBMSを備える、請求項8に記載の方法。
【請求項14】
構造化データを取り出すステップが、受け取った問い合わせに従って外部の構造化データのデータベースから構造化データを取り出すステップを含む、請求項1に記載の方法。
【請求項15】
構造化データを取り出すステップが、受け取った問い合わせに従って内部の構造化データのデータベースから構造化データを取り出すステップもさらに含む、請求項14に記載の方法。
【請求項16】
構造化データを取り出すステップが、受け取った問い合わせに従って内部の構造化データのデータベースから構造化データを取り出すステップを含む、請求項1に記載の方法。
【請求項17】
主プロセッサと、
主プロセッサとは別の処理装置と、
主プロセッサおよび処理装置と通信状態にある非構造化データのデータストアと、
主プロセッサおよび処理装置と通信状態にある構造化データのデータストアと
を備え、
主プロセッサが、(1)問い合わせを受け取り、(2)問い合わせの少なくとも一部分を満足させる非構造化データのデータストア内の非構造化データの一部を特定するために、問い合わせの少なくとも一部分を構造化データのデータストア内の構造化データと対照して処理し、(3)非構造化データの一部が処理装置に送られるよう要求するように構成されており、
処理装置が、非構造化データの一部に対して問い合わせ指定のデータ処理操作を実行するように構成されている、
データを処理するシステム。
【請求項18】
処理装置がコプロセッサを備える、請求項17に記載のシステム。
【請求項19】
コプロセッサが再構成可能論理回路を備える、請求項16に記載のシステム。
【請求項20】
再構成可能論理回路に、問い合わせ指定のデータ処理操作を実行するように構成されたファームウェアが展開されている、請求項19に記載のシステム。
【請求項21】
構造化データのデータベースがRDBMSを備え、問い合わせが標準化データベース問い合わせを含む、請求項17に記載のシステム。
【請求項22】
RDBMS内の構造化データが、非構造化データのデータストア内の非構造化データに関するメタデータを含む、請求項21に記載のシステム。
【請求項23】
標準化データベース問い合わせがSQLコマンドを含む、請求項22に記載のシステム。
【請求項24】
問い合わせ指定のデータ処理操作が、問い合わせで定義されている少なくとも1つのキーのための問い合わせ指定のテキストサーチ操作を含む、請求項23に記載のシステム。
【請求項25】
主プロセッサが、問い合わせを受け取り、処理するためのSQL対応APIを用いて構成されている、請求項24に記載のシステム。
【請求項26】
主プロセッサ、処理装置、非構造化データのデータストア、およびRDBMSを相互接続するバスをさらに備える、請求項25に記載のシステム。
【請求項27】
別の非構造化データのデータストアが位置するコンピュータネットワークと通信状態にある、バスに接続されたネットワークインターフェースをさらに備え、SQL対応APIが、問い合わせに応答して別のデータストア内の非構造化データが処理装置に流されるように、別のデータストアに格納された非構造化データを対象とする問い合わせも処理するように構成されている、請求項26に記載のシステム。
【請求項28】
SQL対応クライアントアプリケーションがあるコンピュータネットワークと通信状態にある、バスに接続されたネットワークインターフェースをさらに備え、SQL対応クライアントアプリケーションが、ユーザ入力に応答して問い合わせを作成し、ネットワークインターフェースを介してSQL対応APIに問い合わせを送るように構成されている、請求項26に記載のシステム。
【請求項29】
SQL対応クライアントアプリケーションがBI報告ツールを含む、請求項28に記載のシステム。
【請求項30】
主プロセッサ、処理装置、およびRDBMSを相互接続するバスと、
バスを経由して非構造化データのデータストアと処理装置とを相互接続するネットワークインターフェースと
をさらに備える、請求項25に記載のシステム。
【請求項31】
主プロセッサがさらに、非構造化データのストリームを処理装置に向けるように構成されており、処理装置がさらに、処理装置に流された非構造化データに関するメタデータを生成するように構成されており、主プロセッサがさらに、後で問い合わせ処理操作時に使用するために生成されたメタデータをRDBMSに格納するように構成されている、請求項25に記載のシステム。
【請求項32】
構造化データと非構造化データの両方への統合的アクセスを可能にする方法であって、
構造化データと非構造化データの組み合わさったものを対象とする問い合わせを受け取るステップと、
受け取った問い合わせに従って構造化データのデータベースから構造化データを取り出すステップと、
取り出した構造化データに基づいて非構造化データのデータストアから非構造化データを取り出すステップと、
ファームウェアに流される非構造化データに対して問い合わせ指定のデータ処理操作を実行するように構成されている、再構成可能論理回路上に展開されたファームウェアに取り出した非構造化データを流すステップと
を含む、方法。
【請求項33】
ファームウェアが展開されている再構成可能論理回路と、
再構成可能論理回路と通信状態にある非構造化データのデータストアと、
再構成可能論理回路と通信状態にある構造化データのデータストアと、
(1)問い合わせを受け取り、(2)問い合わせの少なくとも一部分を満足させる非構造化データのデータストア内の非構造化データの一部を特定するために、問い合わせの少なくとも一部分を構造化データのデータストア内の構造化データと対照して処理し、(3)非構造化データの一部が、再構成可能論理回路上のファームウェアに送られるよう要求するように構成されたインターフェースと
を備え、該ファームウェアが、非構造化データの一部に対して問い合わせ指定のデータ処理操作を実行するように構成されている、データを処理するシステム。
【請求項34】
データ解析操作を実行するために非構造化データにインテリジェントにアクセスする方法であって、
構造化データのデータストア内の非構造化データに対応するメタデータを維持するステップと、
構造化データのデータストアに、少なくとも一部がメタデータを対象とする問い合わせを適用することにより、非構造化データの一部を特定するステップと、
非構造化データのデータストアから特定した非構造化データの一部を取り出すステップと、
問い合わせへの応答のデータを生成するために、コプロセッサを使って取り出した非構造化データに対するデータ解析操作を実行するステップと
を含む、方法。
【請求項35】
コプロセッサが再構成可能論理回路を備える、請求項31に記載の方法。
【請求項36】
再構成可能論理回路上にファームウェアが展開されており、ファームウェアがデータ解析操作を実行するように構成されている、請求項35に記載の方法。
【請求項37】
データ解析操作を実行するステップが、コプロセッサを使って取り出した非構造化データを全文検索するステップを含む、請求項34に記載の方法。
【請求項38】
全文検索を行うステップが近接検索を行うステップを含む、請求項37に記載の方法。
【請求項39】
問い合わせがSQLコマンドを含む、請求項34に記載の方法。
【請求項40】
流れるデータに対してメタデータ生成操作を実行するように構成されているコプロセッサに非構造化データを流してメタデータを生成するステップをさらに含む、請求項34に記載の方法。
【請求項41】
コプロセッサとソフトウェアアプリケーションとをインターフェースするプロセッサ可読媒体であって、
(1)ソフトウェアアプリケーションから問い合わせを受け取り、(2)構造化データのデータストアによって格納されている構造化データに対して向けられるべき問い合わせの部分を判定し、(3)非構造化データのデータストアによって格納されている非構造化データに向けられるべき問い合わせの部分を判定し、(4)判定した構造化データのための問い合わせ部分を構造化データのデータストアに対して適用し、(5)判定した構造化データのための問い合わせ部分の適用に応答して、構造化データのデータストアから、格納された非構造化データの一部の識別を受け取り、(6)コプロセッサにコマンドを送って、コプロセッサを、判定した非構造化データのための問い合わせ部分によって指定されるデータ解析操作を実行するように構成し、(7)非構造化データの一部に対してデータ解析操作を実行するために非構造化データのデータストアからコプロセッサに非構造化データの一部を送るよう指図するための、プロセッサ可読媒体上にあるプロセッサ実行可能コード
を備えるプロセッサ可読媒体。
【請求項42】
問い合わせがSQLコマンドを含む、請求項41に記載のプロセッサ可読媒体。
【請求項43】
(1)データ解析操作に応答してコプロセッサからデータを受け取り、(2)ソフトウェアアプリケーションに送るために受け取ったデータを書式設定するための、プロセッサ可読媒体上にあるプロセッサ実行可能コードをさらに備える、請求項41に記載のプロセッサ可読媒体。
【請求項44】
構造化データおよび非構造化データを対象とする問い合わせを処理する方法であって、
構造化データを対象とする問い合わせの部分について構造化データ検索操作を実行するステップと、
非構造化データを対象とする問い合わせの部分について問い合わせ指定のデータ処理操作をハードウェアアクセラレートするステップと
を含む、方法。
【請求項45】
非構造化データに対する問い合わせを実行する方法であって、
問い合わせを受け取るステップと、
問い合わせに応答し、問い合わせと対照して解析されるべき非構造化データの一部を特定するために構造化データにアクセスするステップと、
問い合わせへの応答のデータを生成するために、特定した非構造化データの一部に対して問い合わせ指定のデータ解析操作を実行するステップと
を含み、
アクセスするステップがプロセッサによって行われ、
実行するステップがコプロセッサによって行われる、方法。
【請求項46】
コプロセッサが再構成可能論理回路を備える、請求項45に記載の方法。
【請求項47】
再構成可能論理回路に、非構造化データの一部に対して問い合わせ指定のデータ解析操作を実行するように構成されているファームウェアが展開されている、請求項46に記載の方法。
【請求項48】
データ解析操作が全文検索操作を含む、請求項47に記載の方法。
【請求項49】
構造化データが関係データベースに格納されている、請求項45に記載の方法。
【請求項50】
実行するステップの前に、特定した非構造化データの一部を取り出すステップをさらに含み、取り出すステップが、関係データベースから特定した非構造化データの一部を取り出すステップを含む、請求項49に記載の方法。
【請求項51】
構造化データが、非構造化データに対応するメタデータ索引を含む、請求項45に記載の方法。
【請求項52】
コンピュータと、
プロセッサ、コプロセッサおよびデータストアを備え、ネットワークを介してコンピュータと通信状態にある機器と
を備え、
コンピュータが、機器に問い合わせを送るソフトウェアアプリケーションを実行するように構成されており、
機器が問い合わせを受け取るように構成されており、
プロセッサが、データストアによって格納されている構造化データに受け取った問い合わせの一部分を選択的に適用し、適用した問い合わせに応答して非構造化データの一部を特定するように構成されており、
プロセッサがさらに、受け取った問い合わせの別の部分に基づいてコプロセッサのためのデータ処理操作を定義するように構成されており、
機器がさらに、特定した非構造化データの一部をコプロセッサに流すように構成されており、
コプロセッサが、受け取った問い合わせに対応する結果集合を生成するために、コプロセッサに流された特定された非構造化データの一部に対して定義されたデータ処理操作を実行するように構成されており、
プロセッサがさらに、(1)生成した結果集合に基づいて問い合わせへの応答を作成し、(2)問い合わせの応答をコンピュータに送るように構成されている、
企業体コンピュータシステム。
【請求項53】
データストアが、構造化データの少なくとも一部分が格納されている関係データベースを備え、機器が、非構造化データの少なくとも一部分が格納されている第2のデータストアをさらに備える、請求項52に記載のシステム。
【請求項54】
構造化データが、少なくとも一部が、非構造化データに対応するメタデータ索引を含む、請求項53に記載のシステム。
【請求項55】
ソフトウェアアプリケーションがSQL対応ソフトウェアアプリケーションを含み、問い合わせがSQLコマンドを含む、請求項54に記載のシステム。
【請求項56】
構造化データが格納されている第2の関係データベースをさらに備え、機器がネットワークを介して第2の関係データベースと通信状態にあり、プロセッサがさらに、(1)第2の関係データベースに受信した問い合わせのさらに別の部分を選択的に適用し、(2)2つの関係データベースに適用された問い合わせの部分に基づいて非構造化データの一部を特定するように構成されている、請求項54に記載のシステム。
【請求項57】
非構造化データが格納されている第3のデータストアをさらに備え、機器がネットワークを介して第2のデータストアと通信状態にあり、特定される非構造化データの一部が、第2のデータストアと第3のデータストアの両方によって格納されている非構造化データを含む、請求項54に記載のシステム。
【請求項58】
コプロセッサが再構成可能論理回路を備える、請求項54に記載のシステム。
【請求項59】
再構成可能論理回路上に、定義されたデータ処理操作を実行するように構成されたファームウェアが展開されている、請求項58に記載のシステム。
【請求項60】
定義されたデータ処理操作が全文検索操作を含む、請求項59に記載のシステム。
【請求項61】
定義されたデータ処理操作がテキストマイニング操作を含む、請求項59に記載のシステム。
【請求項62】
定義されたデータ処理操作が正規表現マッチング操作を含む、請求項59に記載のシステム。
【請求項63】
ファームウェアが、定義されたデータ処理操作の前に復号操作を実行するように構成されているファームウェアパイプラインを備える、請求項59に記載のシステム。
【請求項64】
ファームウェアが、定義されたデータ処理操作の前に伸張操作を実行するように構成されているファームウェアパイプラインを備える、請求項59に記載のシステム。
【請求項65】
プロセッサが、受け取った問い合わせを処理するためにAPIソフトウェアを実行するように構成されている、請求項54に記載のシステム。
【請求項66】
APIソフトウェアがリレーショナルエンジンソフトウェアおよびコプロセッサインターフェースソフトウェアを含み、リレーショナルエンジンソフトウェアが、受信した別の問い合わせ部分に遭遇すると、コプロセッサインターフェースソフトウェアを呼び出すように構成されており、コプロセッサインターフェースソフトウェアが、受信した別の問い合わせ部分を処理するためにコプロセッサを呼び出すように構成されている、請求項65に記載のシステム。
【請求項67】
構造化データおよび非構造化データを対象とする問い合わせを処理する装置であって、
(1)リレーショナルエンジンソフトウェアを実行し、(2)コプロセッサインターフェースソフトウェアを実行するように構成されたプロセッサ
を備え、リレーショナルエンジンソフトウェアが、(1)非構造化データの一部を特定するために構造化データを対象とする問い合わせの部分を関係データベースに適用し、(2)非構造化データを対象とする問い合わせの部分に遭遇すると、コプロセッサインターフェースソフトウェアを呼び出すように構成されており、コプロセッサインターフェースソフトウェアが、特定された非構造化データの一部に対して問い合わせ指定のデータ処理操作を実行するためにコプロセッサを呼び出すように構成されている、装置。
【請求項68】
コプロセッサインターフェースソフトウェアがさらに、コプロセッサが特定された非構造化データの一部に対して問い合わせ指定のデータ処理操作を実行することを可能にするためにコプロセッサにデータを渡すように構成されている、請求項67に記載の装置。
【請求項69】
リレーショナルエンジンソフトウェアがSQLリレーショナルエンジンソフトウェアを含む、請求項68に記載の装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7a】
【図7b】
【図8】
【図9】
【図10a】
【図10b】
【図10c】
【図11a】
【図11b】
【図11c】
【図11d】
【図11e】
【図11f】
【図11g】
【図12】
【図13】
【図14】
【図15a】
【図15b】
【図15c】
【図15d】
【図15e】
【図15f】
【図15g】
【図15h】
【図16】
【図17a】
【図17b】
【図18a】
【図18b】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7a】
【図7b】
【図8】
【図9】
【図10a】
【図10b】
【図10c】
【図11a】
【図11b】
【図11c】
【図11d】
【図11e】
【図11f】
【図11g】
【図12】
【図13】
【図14】
【図15a】
【図15b】
【図15c】
【図15d】
【図15e】
【図15f】
【図15g】
【図15h】
【図16】
【図17a】
【図17b】
【図18a】
【図18b】
【公表番号】特表2010−511925(P2010−511925A)
【公表日】平成22年4月15日(2010.4.15)
【国際特許分類】
【出願番号】特願2009−536536(P2009−536536)
【出願日】平成19年11月12日(2007.11.12)
【国際出願番号】PCT/US2007/084466
【国際公開番号】WO2008/063974
【国際公開日】平成20年5月29日(2008.5.29)
【出願人】(508137947)エクセジー・インコーポレイテツド (5)
【Fターム(参考)】
【公表日】平成22年4月15日(2010.4.15)
【国際特許分類】
【出願日】平成19年11月12日(2007.11.12)
【国際出願番号】PCT/US2007/084466
【国際公開番号】WO2008/063974
【国際公開日】平成20年5月29日(2008.5.29)
【出願人】(508137947)エクセジー・インコーポレイテツド (5)
【Fターム(参考)】
[ Back to top ]