JP5986195B2 - データエンリッチメントの推奨 - Google Patents

データエンリッチメントの推奨 Download PDF

Info

Publication number
JP5986195B2
JP5986195B2 JP2014515868A JP2014515868A JP5986195B2 JP 5986195 B2 JP5986195 B2 JP 5986195B2 JP 2014515868 A JP2014515868 A JP 2014515868A JP 2014515868 A JP2014515868 A JP 2014515868A JP 5986195 B2 JP5986195 B2 JP 5986195B2
Authority
JP
Japan
Prior art keywords
data
query
enrichment
database
metadata
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014515868A
Other languages
English (en)
Other versions
JP2014523013A5 (ja
JP2014523013A (ja
Inventor
バイス,アンソニー・ニノ
ロビンソン,デーヴィッド・マイケル
シヴァラマクリシュナン,ハリハラン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2014523013A publication Critical patent/JP2014523013A/ja
Publication of JP2014523013A5 publication Critical patent/JP2014523013A5/ja
Application granted granted Critical
Publication of JP5986195B2 publication Critical patent/JP5986195B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles

Landscapes

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

Description

[0001]データベースは、今日の業務において一般的な物品である。非常に単純な業務用ソフトウェアアプリケーションであっても、多くの場合、データベースの使用を含む。データベースの使用が増加するにつれて、業務や他のデータベースにおいて見つかるデータを増加させるデータを提供するデータソースもまた、増えている。例えば、ソフトウェア開発者が、住所を決定するために、データベースにアクセスするソフトウェアアプリケーションを作成することがありうる。インターネット上では、ある目的地に行くための指示を含む地図を生成するデータソースが、いくつか利用可能である。別の例では、インターネット上には、気象情報を提供するいくつかのサイトが存在する。
実際、非常に多くのデータソースが利用可能であるため、ソフトウェア開発者が、これらのデータソースを発見して用いることは容易でない。
[0002]本明細書に特許請求されている主題は、上述したような環境においてだけ、どのような短所でも解決したり、動作したりする実施形態に限定されることはない。そうではなく、この背景は、本明細書に記載されているいくつかの実施形態を実施することが可能な、ある例示的な技術領域を説明するためだけに提供されている。
[0003]簡単には、本明細書に記載されている主題の態様は、データソースを推奨することに関する。複数の態様において、データベースのためにデータエンリッチメントの推奨を提供する要求が、推奨エンジンにおいて受け取られる。この推奨エンジンは、データベースと関連するデータの静的および動的な解析を実行することができ、更には、ポリシーに基づいて推奨を洗練することもできる。次に、推奨エンジンは、もし存在する場合にはデータエンリッチメントの推奨を提供することにより、例えばソフトウェア開発者が、データエンリッチメントが用いられるべきかどうかを示すことを可能にする。
[0004]本明細書に記載されている主題の態様を組み入れることが可能な例示的な汎用コンピューティング環境を表すブロック図である。 [0005]本明細書に記載されている主題の態様を実装可能な例示的な環境を表すブロック図である。 [0006]本明細書に記載されている主題の態様によって生じうる例示的なアクションを概略的に表す流れ図である。 本明細書に記載されている主題の態様によって生じうる例示的なアクションを概略的に表す流れ図である。
定義
[0007]本明細書では、「含む」という語およびその変形は、「含むが、それには限定されない」ことを意味する非限定的な用語であると解釈されるべきである。「または」という語は、文脈から他の意味であることが明らかに示唆されていない限り、「および/または」と解釈されるべきである。「基づく」という語は、「少なくとも部分的に基づく」と解釈されるべきである。「ある実施形態(one embodiment、an embodiment)」という語は、「少なくともひとつの実施形態」と解釈されるべきである。「別の実施形態」という語は、「少なくとも1つの他の実施形態」と解釈されるべきである。
[0008]本明細書では、「a」、「an」、「the」などの語は、指示されている項目またはアクションの1つまたは複数を含む。特に、特許請求の範囲においては、ある項目の参照は、そのような項目が少なくとも1つは存在していることを全体的に意味し、あるアクションへの参照は、その行為の少なくとも1つの例が実行されることを意味する。
[0009]本明細書では、「第1」、「第2」、「第3」などという語が使用されることがある。追加の文脈ではなく、特許請求の範囲におけるこれらの語の使用は、順序を含意することを意図するのではなく、むしろ識別の目的で用いられている。例えば、「第1のバージョン」および「第2のバージョン」という句は、必ずしも、第1のバージョンが真に第1のバージョンであり、または、第2のバージョンよりも前に生成されたことを意味するのではなく、第1のバージョンが第2のバージョンよりも前に要求または処理されることを意味するのでもない。むしろ、これらの句は、別のバージョンであることを識別するために用いられている。
[0010]見出しはあくまでも便宜のためであり、与えられたトピックに関する情報は、そのトピックを示す見出しが付されているセクション以外の箇所に見いだされる場合もありうる。
[0011]これ以外の定義は、明示的なものも、非明示的なものも、以下に含まれている場合がありうる。
例示的な動作環境
[0012]図1は、本明細書に記載されている主題の態様を実現することができる適切なコンピューティングシステム環境100の一例を示す。コンピューティングシステム環境100は、適切なコンピューティング環境の一例に過ぎず、本明細書に記載されている主題の形態の使用範囲や機能に関して、何の限定も示唆することを意図していない。また、例示的な動作環境100において示されるコンポーネントのどのような1つまたはその組み合わせに関して、いかなる依存性や要件を有するように、コンピューティング環境100を解釈してはならない。
[0013]本明細書に記載されている主題の形態は、複数の他の汎用または特殊目的のコンピューティングシステム環境または構成とであっても、動作する。本明細書に記載されている主題の態様と共に使用するのに適していると考えられる周知のコンピューティングシステム、環境、または構成の例には、パーソナルコンピュータ、サーバーコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサーシステム、マイクロコントローラベースのシステム、セットトップボックス、プログラマブル家電機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、パーソナルデジタルアシスタント(PDA)、ゲームデバイス、プリンタ、セットトップを含む機器、メディアセンター、または他の機器、車両組み込み型もしくは取り付け型のコンピューティングデバイス、他のモバイルデバイス、以上のシステムまたはデバイスの内の任意のものを含む分散型コンピューティング環境等が含まれる。
[0014]本明細書に記載されている主題の形態は、コンピュータによって実行されるプログラムモジュールなど、コンピュータ実行可能命令という一般的なコンテキストで説明することができる。一般に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、これらは、特定のタスクを実行するか、または特定の抽象データタイプを実現する。また、本明細書に記載されている主題の態様は、分散型コンピューティング環境でも使用することができ、この場合、通信ネットワークを通じてリンクされているリモート処理デバイスによってタスクが実行される。分散型コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモート双方のコンピュータ記憶媒体に配置することができる。
[0015]図1を参照すると、本明細書に記載されている主題の態様を実現するシステム例は、コンピュータ110の形態である汎用コンピューティングデバイスを含む。コンピュータは、命令を実行することができる任意の電子デバイスを含みうる。コンピュータ110のコンポーネントは、処理ユニット120、システムメモリ130、およびシステムバス121を含みうる。システムバス121は、システムメモリを含む様々なシステムコンポーネントを処理ユニット120に結合する。システムバス121は、メモリバスまたはメモリコントローラー、周辺バス、および様々なバスアーキテクチャーのうち任意のものを用いるローカルバスを含む、様々なタイプのバス構造のうち任意のものでよい。一例としては、そして限定ではないが、このようなアーキテクチャーは、業界標準アーキテクチャー(ISA)バス、マイクロチャネルアーキテクチャー(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカルバス、メザニンバス(Mezzanine bus)としても知られている周辺コンポーネント相互接続(PCI)バス、周辺コンポーネント相互接続拡張(PCI−X)バス、高度グラフィクスポート(AGP)、およびPCIエクスプレス(PCIe)を含む。
[0016]コンピュータ110は、典型的には、様々なコンピュータ読み取り可能媒体を含む。コンピュータ読み取り可能媒体は、コンピュータ110によってアクセスすることができる任意の入手可能な媒体とすることができ、揮発性および不揮発性双方の媒体、リムーバブルおよび非リムーバブルな媒体を含む。一例として、そして限定ではないが、コンピュータ読み取り可能媒体は、コンピュータ記憶媒体および通信媒体を含みうる。
[0017]コンピュータ読み取り可能記憶媒体は、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブルな媒体を含み、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータというような、情報の任意の記憶方法または技術で実現される。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶装置、あるいは所望の情報を格納するために用いることができ、コンピュータ110によってアクセスされうる任意のその他の媒体が含まれる。
[0018]通信媒体は、典型的には、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または搬送波や他の伝送メカニズムのような変調データ信号における他のデータを具体化し、任意の情報配信媒体を含む。「変調データ信号」という用語は、その信号における情報をエンコードするようにその特性の1つまたは複数が設定または変化させられている信号を意味する。一例として、そして限定ではないが、通信媒体は、有線ネットワークまたは直接有線接続のような有線媒体、ならびに音響、RF、赤外線、および他のワイヤレス媒体などのワイヤレス媒体を含む。以上のうちの任意のものの組み合わせもまた、コンピュータ読み取り可能媒体の範囲に含まれるべきである。
[0019]システムメモリ130は、リードオンリメモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。基本入出力システム133(BIOS)は、起動中の間などに、コンピュータ110内のエレメント間における情報の転送を補助する基本ルーチンを含み、ROM131に格納されているのが典型的である。RAM132は、典型的には、処理ユニット120が直ちにアクセス可能であるデータおよび/またはプログラムモジュール、および/または現在処理ユニット120によって処理されているデータおよび/またはプログラムモジュールを含む。一例として、そして限定ではないが、図1は、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137を示す。
[0020]また、コンピュータ110は、その他のリムーバブル/非リムーバブルであり、揮発性/不揮発性のコンピュータ記憶媒体も含むことがある。一例として示しているだけであるが、図1は、非リムーバブルで不揮発性の磁気媒体からの読み取りおよびこれへの書き込みを行うハードディスクドライブ141、リムーバブルで不揮発性の磁気ディスク152からの読み取りおよびこれへの書き込みを行う磁気ディスクドライブ151、ならびにCDROMまたはその他の光媒体のようなリムーバブルで不揮発性の光ディスク156からの読み取りおよびこれへの書き込みを行う光ディスクドライブ155を図解している。この例示的な動作環境で使用可能なその他のリムーバブル/非リムーバブルで揮発性/不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、他の光ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれる。ハードディスクドライブ141は、インターフェース140を介してシステムバス121に接続することができ、磁気ディスクドライブ151および光ディスクドライブ155は、インターフェース150のようなリムーバブルで不揮発性のメモリのためのインターフェースによって、システムバス121に接続することができる。
[0021]先に論じた図1に図解されているドライブおよび関連のコンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、およびコンピュータ110のその他のデータの格納を提供する。図1では、例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を格納するように図解されている。なお、これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同じ場合もあるし、異なる場合もあることに注意すべきである。オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147には、少なくともこれらが異なるコピーであることを示すように、本明細書では異なる番号が与えられている。
[0022]ユーザは、キーボード162のような入力デバイス、および一般にマウス、トラックボールまたはタッチパッドと称されるポインティングデバイス161を介して、コマンドおよび情報をコンピュータ110に入力することができる。他の入力デバイス(図示せず)としては、マイクロフォン、ジョイスティック、ゲームパッド、衛星ディッシュ、スキャナー、タッチスクリーン、ライティングタブレット等を含むことがある。これらおよびその他の入力デバイスは、多くの場合、ユーザ入力インターフェース160を介して、処理ユニット120に接続されている。ユーザ入力インターフェース160は、システムバスに結合されているが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)のようなその他のインターフェースおよびバス構造によって接続されうる。
[0023]モニタ191またはその他の形式のディスプレイデバイスも、ビデオインターフェース190のようなインターフェースを介して、システムバス121に接続されている。モニタに加えて、コンピュータは、スピーカ197およびプリンタ196のようなその他の周辺出力装置も含むことがあり、これらは出力周辺インターフェース195を通じて接続されうる。
[0024]コンピュータ110は、リモートコンピュータ180のような1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク接続環境において動作することも可能である。リモートコンピュータ180は、パーソナルコンピュータ、サーバー、ルーター、ネットワークPC、ピアデバイス、またはその他の共通ネットワークノードとすることができ、図1にはメモリ記憶装置181のみが示されているが、典型的には、コンピュータ110に関して先に説明したエレメントの多くまたはすべてを含む。図1に示されている論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークも含むこともありうる。このようなネットワーク環境は、事務所、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて、一般的である。
[0025]LANネットワーク環境で用いられるとき、コンピュータ110は、ネットワークインターフェースまたはアダプター170を介してLAN171に接続される。WANネットワーク環境で用いられるときには、コンピュータ110は、モデム172、またはインターネットのようなWAN173を通じて通信を確立するためのその他の手段を含みうる。モデム172は、内蔵でも外付けでもよく、ユーザ入力インターフェース160またはその他のしかるべき機構を介してシステムバス121に接続されうる。ネットワーク接続された環境では、コンピュータ110に関して図示されているプログラムモジュール、またはその一部は、リモートメモリ記憶装置に格納されうる。一例として、そして限定ではないが、図1は、リモートアプリケーションプログラム185をメモリ装置181に存在するものとして示している。なお、図示されているネットワーク接続は例示であり、複数のコンピュータ間で通信リンクを確立する他の手段を用いることが可能であることが理解されるであろう。
データエンリッチメント
[0026]先に述べたように、ソフトウェア開発者が増大するデータソースを発見し用いることは、容易でない。図2は、本明細書に記載されている主題の態様を実装することができる例示的環境を表すブロック図である。図2に図解されているコンポーネントは例示的なものであり、必要となるまたは含まれうるコンポーネントのすべてを含むことは意図していない。他の実施形態では、図2との関係で説明されるコンポーネントが、本明細書に記載されている主題の諸態様の精神または範囲から逸脱することなく、他のコンポーネント(図示されているまたは図示されていない)に含まれること、または、下位のコンポーネントに配置されることがありうる。
[0027]本明細書で用いられるコンポーネントという用語は、あるデバイスの全体または一部などのハードウェア、1つまたは複数のソフトウェアモジュールまたはその部分の集まり、1つまたは複数のソフトウェアモジュールまたはその部分と1つまたは複数のデバイスまたはその部分との何らかの組み合わせなどを含むように読まれるべきである。
[0028]図2を参照すると、この環境は、アプリケーション205、データベース管理システム(DMBS)206、エンリッチメントを行うデータソース207、推奨エンジン208、データストア210および211、ならびにそれ以外のコンポーネント(図示せず)を含みうる。
[0029]これらの様々なコンポーネントは、相互に比較的近接して配置される(例えば、同じマシンに、または同じネットワーク上の複数のマシンに)ことがありうるし、または、世界中に分散されることもありうる。これらの様々なコンポーネントは、オフィス内のネットワークとオフィス間のネットワークとを含む様々なネットワークを介して相互に通信することができる。
[0030]アプリケーション205、DBMS206、エンリッチメントを行うデータソース207、および推奨エンジン208は、1つまたは複数のコンピューティングデバイスを含む、または1つまたは複数のコンピューティングデバイス上に存在する。そのようなデバイスは、例えば、パーソナルコンピュータ、サーバーコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサーシステム、マルチコントローラーベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、パーソナルデジタルアシスタント(PDA)、ゲームデバイス、プリンタ、セットトップ、メディアセンターまたは他の機器を含む機器、車両組み込みまたは車両付随のコンピューティングデバイス、他の携帯デバイス、以上のシステムまたはデバイスの任意のものを含む分散型コンピューティング環境などを含みうる。上述したものの1つとして動作するように構成されうる例示的なデバイスが、図1のコンピュータ110を構成する。
[0031]アプリケーション205は、図2の他のエンティティの1つまたは複数との通信が可能なプロセスを含みうる。本明細書で用いられている「プロセス」という用語およびその変形例は、1つまたは複数の伝統的プロセス、スレッド、コンポーネント、ライブラリ、タスクを実行するオブジェクトなどを含みうる。プロセスは、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせにおいて、実装可能である。ある実施形態では、プロセスは、どのように称されるにしても、あるアクションを実行することができる、または、あるアクションを実行する際に用いられる、任意の機構である。プロセスは、複数のデバイスに分散されることがあるし、または、単一のデバイスでもありうる。同様に、アプリケーション205は、1つまたは複数のデバイスに分散されている複数のコンポーネントを有することがある。
[0032]ある実施形態では、アプリケーション205は、ソフトウェア開発ツールを含むことがある。ソフトウェア開発ツールは、ソフトウェア開発者が、コードを入力および更新し、コードをデバグし、データベースを作成および更新し、コードを1つまたは複数のデータベースと関連付け、コードをコンパイルし、パッケージを作成し、それ以外のアクションを行うことなどを可能にする統合型開発環境(IDE)を実装しうる。
[0033]データストア210におけるデータは、DBMS206を介してアクセス可能である。DBMSは、データベースの組成、格納、管理、およびデータ検索を制御する1つまたは複数のプログラムを含みうる。DBMSは、データベースにおけるデータへのアクセスの要求を受け取り、このアクセスを提供するのに必要な動作を実行することができる。本明細書において用いられているアクセスとは、データの読み出し、データの書き込み、データの消去、データの更新、以上の2つまたはそれより多くを含む組み合わせなどを含みうる。
[0034]データストア210上に格納されたデータベースは、リレーショナルデータベース、オブジェクト指向データベース、階層的データベース、ネットワークデータベース、他のタイプのデータベース、以上のものの何らかの組み合わせまたは拡張などを含みうる。データベースに格納されているデータは、テーブル、レコード、オブジェクト、それ以外のデータ構造などに編成されうる。データベースに格納されているデータは、専用のデータベースファイル、専用のハードドライブパーティション、HTMLファイル、XMLファイル、スプレッドシート、フラットファイル、文書ファイル、コンフィギュレーションファイル、それ以外のファイルなどに格納されうる。データベースは、そのデータベースに対してリードオンリであるデータセットを参照する場合も、または、そのデータセットを読み出しかつ書き込む能力を有する場合もありうる。
[0035]本明細書に記載されている主題の諸態様を説明する際には、簡潔にするために、ときには、リレーショナルデータベースに関連する用語が本明細書で用いられる。本明細書においてリレーショナルデータベースの用語が用いられることもあるが、本明細書に本明細書に記載の教示は、上述した他のタイプのデータベースにも適用することができる。
[0036]エンリッチメントを行うデータソース207は、データを供給できる任意のエンティティを含みうる。例えば、エンリッチメントを行うデータソース207は、データ(例えば、郵便番号)を受け取りそれに応答してデータ(例えば、気象情報)を提供するサービスを含みうる。他の例としては、エンリッチメントを行うデータソース207は、現実のまたは遅延した株価(real or delayed stock prices)を提供するサービスを含みうる。エンリッチメントを行うそれぞれのデータソースは、1つまたは複数のコンピュータによって実行されるプロセスを介して実装されうる。
[0037]データストア210上に格納されているデータベースは、エンリッチメントを行うデータソース207によってエンリッチメントが可能である。DBMS206は、エンリッチメントを行うデータソース207からデータを取得し、それがDBMS206によって管理されているデータベースから来ているかのように、(例えば、アプリケーション205に)そのデータを生じさせることができる。エンリッチメントを行うデータソース207から取得可能なデータは、本明細書において、データエンリッチメントと称されることがある。例えば、DBMS206は、データベースにおいて発見した郵便番号情報を用いて、エンリッチメントを行うデータソースから気象情報を取得することができる。この気象情報は、DBMS206によって開示されるテーブルの1つまたは複数のカラムを介してアクセス可能でありうる。
[0038]DBMS206は、データストア210のデータベースが提供されているデータエンリッチメントを示す情報を格納することができる。データベースからのデータを提供する際に、DBMS206は、データエンリッチメントを利用可能にすることもできる。
[0039]ある実施形態では、推奨エンジン208はデータエンリッチメントの推奨をDBMS206に提供し、すると、DBMS206が、これらの推奨をアプリケーション205に提供することができる。別の実施形態では、推奨エンジン208は、データエンリッチメントの推奨を直接にアプリケーション205に提供することもできる。推奨は、推奨の名称またはそれ以外の識別子、その推奨と関連するデータエンリッチメントによって必要とされる入力データタイプ、およびデータエンリッチメントによって提供される出力データタイプを含みうる。
[0040]推奨エンジン208は、これらの推奨を、様々な方法で決定することができる。例えば、それらの方法のいくつかは、以下のものを含む。
[0041]1.動的解析。DBMS206は、DBMS206によって実行されるクエリに関する統計的な情報を収集することができる。この情報は推奨エンジン208に提供されうるが、推奨エンジン208は、この情報を用いて新たなエンリッチメントおよびデータソースを提案することができる。例えば、クエリがCOMPANYFINANCIALのエンリッチメントを用いる場合には、推奨エンジン208はCOMPANYNEWSのエンリッチメントも同様に推奨することがありうる。この推奨は、両方のエンリッチメントが会社名を入力として用いているために、提供されうるのである。
[0042]動的解析を用いてエンリッチメントを決定するために、推奨エンジン208は、複数のエンリッチメントの間でマッピングを行うデータ構造を用いることがある。例えば、推奨エンジン208は、それぞれのローが第1のエンリッチメントと第2のエンリッチメントとのフィールドを含む複数のローを含むテーブルを維持しているか、またはそのようなテーブルを提供されていることがある。第2のエンリッチメントは、第1のエンリッチメントに基づいて推奨されるデータエンリッチメントである。ゼロまたはそれよりも多くのローを用いることにより、このテーブルは、第1のエンリッチメントを、その第1のエンリッチメントに基づいて推奨されうるゼロまたはそれより多くの他のエンリッチメントにマッピングするのに用いることができる。
[0043]クエリ時間のような統計は、現時点で用いられているデータソースとは異なるインデクスが付されているデータソースを推奨するのに用いられることがある。例えば、株式ティッカー(stock ticker)データソースは、会社名または(例えばMSFTのような)株式コード(stock symbol)を用いて最新の株価を提供するのに用いることができる。会社名が提供されると、株式ティッカーデータソースは、その会社がその証券市場で知られている株式コードを参照する必要がありうる。すると、データソースがこの株式コードを用いて、ティッカーデータを取得することができる。
[0044]ティッカーデータを取得するのに上述の方法を用いずに、株式コードを受け取るデータソースは、直ちにそのティッカーデータを直接取得することができ、それにより、会社名をティッカー名に変換しなければならないデータソースよりも高速でデータを取得することができる。会社のテーブルが株式コードのフィールドを有しているにもかかわらず、ティッカーデータを得るのに会社名のデータエンリッチメントを用いている場合には、推奨エンジン208は、株式コードのフィールドが代わりに用いられるべきであることを推奨することができる。あるいは、推奨エンジン208は、会社テーブルのそれぞれの会社に対する株式コードを含む株式コードエンティティを推奨し、更に、株式コードエンティティに基づくエンリッチメントを推奨することができる。
[0045]2.静的解析。データベースに格納されているデータは、テーブル、カラム、プロシージャ、拡張マークアップ言語(XML)などを含む、データベースオブジェクトに関する構造的メタデータを有する。この構造的メタデータを調べることにより、データベースによって格納され処理されるデータの種類を決定することができる。構造的メタデータのいくつかの例には、テーブル名、カラム名、記憶されているプロシージャ名、カラムデータタイプ、それ以外のオブジェクト名などが含まれる。
[0046]例えば、会社と称されるテーブルは、このテーブルは会社情報を有するということを示しうる。会社と称されるテーブルでは、名称と称されるカラムが会社の名称を示しうる。このメタデータは、会社テーブルの中の名称カラムは会社の名称であることを判断するのに用いることができる。次に、これは、COMPANYFINANCIALエンリッチメント、COMPANYNEWSエンリッチメント、COMPANYSOCIALNETWORKSエンリッチメント、およびそれ以外の会社エンリッチメントなど、会社に関するエンリッチメントの推奨を提供するのに用いられうる。
[0047]静的解析のためのデータエンリッチメントの決定を容易にするために、識別子(例えば、名称)をその名称と関連する1つまたは複数のエンリッチメントにマッピングするデータ構造が用いられることがある。例えば、推奨エンジン208は、それぞれのローがメタデータ属性(例えば、テーブル名、カラム、名称、データタイプ)の1つまたは複数のフィールドを含む複数のローを含むテーブルと、そのメタデータ属性に基づいて推奨されるデータエンリッチメントとを維持しているか、またはそれらを提供されていることがある。ゼロまたはそれよりも多くのローを用いることにより、このテーブルは、メタデータ属性を、そのメタデータ属性に基づいて推奨されうるゼロまたはそれよりも多くの他のエンリッチメントにマッピングするのに用いることができる。
[0048]カラムデータタイプに基づいて推奨されうるデータエンリッチメントの例として、メタデータは、カラムがGEOMETRYデータタイプを用いることを示すことがある。それに応答して、推奨エンジン208は、LOCATIONエンティティとそのLOCATIONエンティティに関連するエンリッチメント(例えば、天候、犯罪率、人口密度、人口統計情報(demographics)、住宅統計など)とを推奨することができる。
[0049]カラムデータタイプもまた、データベース自体におけるデータを調べることにより決定することができる。例えば、あるテーブルにおけるカラムを調べることにより、推奨エンジン208は、それらのカラムが住所を表していることを判断することができる。これは、例えば、カラムにおけるデータを用いて住所を参照しようとすることによって、実行することができる。推奨エンジン208は、カラムが住所を表しているといったん判断すると、本明細書において記載されているマッピング技術を用いて、住所に基づくデータエンリッチメントを推奨することができる。
[0050]同様に、データベースの中のデータの静的解析は、データベースに含まれているデータに関する追加の情報を生じさせることができる。この情報は、データエンリッチメントを推奨するのにも用いることができる。
[0051]3.ポリシー。推奨は、ポリシーに基づいてなされうる。これらのポリシーは、アプリケーション205によって、またはそれ以外の方法によって、定義されうる。ポリシーとは、条件の評価に基づいて推奨を制限する1つまたは複数の条件を有する規則であると考えることができる。例えば、ポリシーは、取引コスト、データソースの格付け、サービス契約約款(SLA)、当該データがデータベースにおいて継続することが許容されているかどうか、またはその他の条件に基づくことがありうる。例えば、ポリシーは、データエンリッチメントのための価格がある特定の額よりも低い限り、そのデータエンリッチメントの推奨が許容されることを示すことがある。
[0052]4.ディレクトリ。利用可能なデータエンリッチメントは、サーチ可能でありうる。例えば、推奨エンジン208は、データエンリッチメントとそれに対応するデータソースとのリストを、ソフトウェア開発者などが問い合わせできるテーブルにおいて提供することができる。このテーブルは、入力として受け入れられ出力として生成されるデータのタイプを示すことができる。このテーブルは、また、ライセンス上の制約、(もし存在するならば)コスト、データエンリッチメントに関するその他のデータなどを含むことがある。
[0053]データストア211は、推奨のために用いられるデータを格納するストアである。このデータは、例えば、マッピングデータ、利用可能なデータエンリッチメントのディレクトリ、価格設定、パフォーマンスおよび信頼性データ、データソースに関するライセンス契約などを含みうる。
[0054]データストア210−211は、データを格納することができる任意の記憶媒体を用いて実装することが可能である。ストアには、揮発性メモリ(例えば、キャッシュ)と不揮発性メモリ(例えば、永続性記憶装置)とを含みうる。ストアは、ファイルシステム、データベース、RAMなどの揮発性メモリ、その他の記憶装置、以上の何らかの組み合わせなどを用いて実装することが可能であり、複数のデバイスに分散させることができる。
[0055]データという用語は、1つまたは複数のコンピュータの記憶要素によって表される任意のものを含むように、広義に解釈されるべきである。論理的には、データは、揮発性または不揮発性のメモリにおける1と0の列として表すことができる。バイナリではない記憶媒体を有するコンピュータの場合には、データは、そのような記憶媒体の性能に従って表されうる。データは、異なるタイプのデータ構造として編成することが可能であり、そのようなデータ構造には、数字や文字などの単純なデータタイプ、階層的、リンク付き、またはその他の関係を有するデータタイプ、複数の他のデータ構造または単純なデータタイプを含むデータ構造などを含みうる。
[0056]図3および4は、本明細書に記載されている主題の諸態様に従って生じうる例示的なアクションを一般的に表す流れ図である。説明を簡潔にするために、図3および4に関する説明の方法について示し、一連の動作として説明しておく。本明細書に記載されている主題の態様は説明されている動作に、および/または、動作の順序に限定されないことを理解すべきである。ある実施形態では、これらの動作は、以下で説明される順序で生じる。しかし、他の実施形態では、これらの動作は、平行して、別の順序で、および/または本明細書に提示も記載もない他の動作を伴って、生じることがありうる。更に、本明細書に記載されている主題の諸態様による方法を実装するのに、説明されているすべての動作が要求されるわけではない。更に、この方法は、状態図を介して一連の相互に関連する状態として、またはイベントとして、代替的に表されうることを、当業者であれば理解し諒解しうるであろう。
[0057]次に図3を参照すると、ブロック305において、アクションが開始する。ブロック310では、データベースのためのデータエンリッチメントの推奨を提供する要求が受け取られる。例えば、図2を参照すると、アプリケーション205、DBMS206、または何らかのそれ以外のコンポーネントが、DBMSによって管理されるデータベースのためのデータエンリッチメントの推奨が推奨エンジン208によって提供されるべきだということを要求しうる。
[0058]ブロック315では、メタデータの解析が実行されうる。例えば、図2を参照すると、推奨エンジン208は、DBMS206によって供給されるデータベースに関するメタデータをデータストア211に関するマッピング情報と共に用いて、提供すべき1つまたは複数の推奨を決定することができる。更に、推奨エンジン208は、ポリシーの条件を評価することで、推奨をポリシーに違反しないものに限定することができる。
[0059]ある実施形態においては、推奨提供への要求を受け取った後でメタデータの解析が実行されうるが、別の実施形態では、そのような要求を受け取る前に解析が実行されることもある。ある実施形態では、この解析は、データベースに関するメタデータが変化するのにつれて推奨の更新を続ける継続的なプロセスである。
[0060]ある実装形態では、メタデータの解析は、以下の例示的なアクションを含みうる。
[0061]1.データベースと関連するメタデータの取得。これは、DBMSからデータを要求すること、(要求することなく)データをDBMSから受け取ること、またはその他のなんらかの機構を含みうる。
[0062]2.メタデータの中に識別子を見いだすこと。これは、1つまたは複数のテーブル、カラム、格納されているプロシージャ、またはそれ以外のデータベースオブジェクトの名称を見つけることを含みうる。
[0063]3.識別子をデータエンリッチメントと関連付けるデータ構造を用いて、識別子をデータエンリッチメントにマッピングすること。これは、1つまたは複数の識別子を含むテーブルまたはそれ以外のデータ構造を、1つまたは複数の他の識別子を識別するキーとして用いることを含みうる。例えば、テーブルまたはカラムの「会社」という名称は、データ構造における関連のエンリッチメントを見つけるのに用いることができる。他の例として、そのテーブルのカラムの「株式コード」という名称を、関連する株式ティッカーのエンリッチメントを見つけるために、共に用いることができる。
[0064]ブロック320では、動的解析が実行されうる。例えば、図2を参照すると、推奨エンジン208は、データベースに対して発行された1つまたは複数のクエリを解析して、データエンリッチメントのための推奨を決定することができる。例えば、あるクエリがあるデータエンリッチメントを示している場合には、このデータエンリッチメントを用いて、同様のデータ構造のマッピングを用いた他のデータエンリッチメントを識別することができる。更に、推奨エンジン208は、ポリシーの条件を評価することにより、推奨をポリシーに違反しないものに制限することができる。
[0065]ある実装形態では、動的解析は、データベースに対して発行されたクエリの解析を含みうる。この実装形態では、推奨の決定は、以下の例示的なアクションによって実行されうる。
[0066]1.少なくとも1つのクエリによって基準とされた第1のデータエンリッチメントの第1の識別子を取得すること。例えば、そのクエリがデータエンリッチメント(「COMPANYFINANCIAL」)の識別子(例えば、名称)を含む場合には、その識別子を取得することができる。
[0067]2.データエンリッチメントの識別子を関連付けるデータ構造を用いて、第1の識別子を第2のデータエンリッチメントの第2の識別子にマッピングすること。
[0068]他の例示的な動的解析は、以下の例示的なアクションを含みうる。
[0069]1.第1のクエリと、2つの異なるデータソースから同一の形式(株価)のエンリッチメントデータを取得する第2のクエリとを比較すること。
[0070]2.第1のクエリと第2のクエリのどちらが出力データを取得する際に最小の遅延を有するかに基づき、第1のクエリと第2のクエリから最速のクエリを選択すること。
[0071]3.最速のクエリと関連するデータエンリッチメントの識別子を決定すること。
[0072]例えば、このようにして、パフォーマンスを向上させるデータエンリッチメントを推奨することができる。
[0073]ある実施形態においては、推奨提供への要求を受け取った後でクエリの解析が実行されうるが、別の実施形態では、そのような要求を受け取る前に解析が実行されることもある。ある実施形態では、この解析は、データベースに対するクエリが受け取られるときに推奨の更新を続ける継続的なプロセスである。
[0074]ブロック325では、メタデータの解析に基づく推奨が提供される。例えば、図2を参照すると、推奨エンジン208は、データエンリッチメントの推奨を、DBMS206、アプリケーション205、または何らかのその他のコンポーネントに提供しうる。
[0075]ブロック330では、動的解析に基づく推奨が提供される。例えば、図2を参照すると、推奨エンジン208は、データエンリッチメントの推奨を、DBMS206、アプリケーション205、または何らかのその他のコンポーネントに提供しうる。
[0076]メタデータに基づく推奨と動的解析に基づく推奨とは、本明細書に記載されている主題の諸態様の精神または範囲から逸脱することなく、共にまたは別個に提供されうる。いくつかの場合には、動的解析に基づく推奨だけが存在しうる。別の場合には、静的解析に基づく推奨だけが存在しうる。
[0077]ブロック335では、もし何かがあるとするならば、他のアクションが実行されうる。他のアクションには、例えば、データエンリッチメントを識別するサーチ可能なディレクトリとデータソースに対応するデータエンリッチメントとを提供することを含みうる。
[0078]次に図4を参照すると、ブロック405において、アクションが開始する。ブロック410では、データエンリッチメントの推奨が受け取られる。この推奨は、データベースのメタデータの解析とデータベースへのアクセスを提供するDBMSに対して発行されたクエリの解析との1つまたは複数に基づく。例えば、図2を参照すると、DBMS206は、推奨エンジン208から、COMPANYNEWSのエンリッチメントの推奨を受け取ることがある。その後で、DBMS206は、この推奨をアプリケーション205に提供することができる。別の実施形態では、アプリケーション205が、推奨エンジン208から直接に、この推奨を受け取ることもありうる。
[0079]ブロック415では、推奨の指示が、グラフィカルインターフェース経由で提供されうる。例えば、図2を参照すると、アプリケーション205は、ソフトウェア開発者やユーザなどに、推奨の指示を提供することができるが、これは、その推奨を、ソフトウェア開発者がデータエンリッチメントを用いることを望むかどうかをソフトウェア開発者が示すことを可能にするユーザインターフェース要素と共にコンピュータディスプレイに表示することによって提供される。
[0080]ブロック420において、ソフトウェア開発者は、自らがデータエンリッチメントを用いることを望むかどうかを示すことが許可される。例えば、図2を参照すると、ソフトウェア開発者は、表示されているインターフェース要素を介して、推奨されたデータエンリッチメントが用いられるべきかどうかを、アプリケーション205に示すことができる。それに応答して、アプリケーション205は、DBMS206に、推奨されたデータエンリッチメントが用いられるべきかどうかを伝える。
[0081]ブロック425では、もし何かある場合には、他のアクションが実行されうる。例えば、推奨の組を受け取る代わりに、データエンリッチメントのディレクトリ、それに関連するデータソース、およびその他の情報(例えば、コスト、速度、信頼性など)を受け取ることがある。このディレクトリまたは少なくともその一部が、グラフィカルインターフェースを介して表示されることもある。また、ソフトウェア開発者は、このディレクトリに対してクエリを発行して、開発者自身が用いるのに興味を有しているエンリッチメントを見つけることができる。
[0082]別の例として、ソフトウェア開発者は、推奨の提供との関係で充足されるべき1つまたは複数のポリシーを(例えばグラフィカルインターフェースを介して)定義することができる。これらのポリシーは、次に、ポリシーに違反しないデータエンリッチメントを推奨するのに用いるために、推奨エンジンに提供されうる。
[0083]以上の詳細な説明から分かるように、データエンリッチメントを推奨することに関する諸形態について説明してきた。本明細書において記載されている主題の形態は、様々な修正および代替的な構造の余地があるが、そのうちのある種の例示的な実施形態が図面に示され、以上で詳細に説明されている。しかし、特許請求されている主題の態様を、開示された特定の形態に限定するという意図はなく、逆に、すべての修正、代替的な構造、および本明細書に記載されている主題の様々な態様の精神および範囲に含まれる均等物をすべて包含することを意図していることは理解すべきである。

Claims (21)

  1. プロセッサを含むコンピュータシステムにおける、データベースのためのデータエンリッチメントを推奨するための方法であって、前記方法は、前記プロセッサが、
    前記データベースのためのデータエンリッチメントの推奨を提供する要求を受けるステップと、
    前記データベースのメタデータを解析するステップであって、該メタデータは、前記データベースの構造を定める、ステップと、
    前記データベースのための第1のデータエンリッチメントを前記メタデータの前記解析に基づき推奨するステップであって、前記第1のデータエンリッチメントは前記データベースを補うためのものである、ステップと、
    前記データベースのための第2のデータエンリッチメントを前記第1のデータエンリッチメントと前記第2のデータエンリッチメントの類似性に基づき提案するステップであって、前記第2のデータエンリッチメントは前記データベースを補うためのものである、ステップと、
    前記第2のデータエンリッチメントを提供することが可能なデータソースを識別するステップであって、
    前記第2のデータエンリッチメントのためのエンリッチメントデータを2つの異なるエンリッチメントを行うデータソースから取得する第1のクエリと第2のクエリの特性を比較するステップと、
    最速のクエリを、前記第1のクエリと前記第2のクエリの前記特性の前記比較に基づき選択するステップと、
    前記最速のクエリに関連付けられた前記エンリッチメントを行うデータソースの識別子を求めるステップと
    により識別するステップと
    を含む、方法。
  2. 請求項1に記載の方法であって、前記第1のデータエンリッチメントを提供することが可能なデータソースを識別するステップであって、
    前記メタデータ内で識別子を見つけるステップと、
    前記識別子を前記第1のデータエンリッチメントに関連付けるデータ構造を用いて、前記識別子を前記データソースにマッピングするステップと
    により識別するステップを更に含む方法。
  3. 請求項2に記載の方法であって、前記メタデータ内で識別子を見つけるステップは、前記メタデータ内でカラム名を見つけるステップを含み、前記識別子を前記データソースにマッピングするステップは、識別子をデータエンリッチメントに関連付けるテーブルを用いるステップを含む、方法。
  4. 請求項2に記載の方法であって、前記メタデータ内で識別子を見つけるステップは、前記メタデータ内でテーブル名を見つけるステップを含み、前記識別子を前記データソースにマッピングするステップは、識別子をデータエンリッチメントに関連付けるテーブルを用いるステップを含む、方法。
  5. 請求項2に記載の方法であって、前記メタデータ内で識別子を見つけるステップは、前記メタデータ内で、記憶されているプロシージャ名を見つけるステップを含み、前記識別子を前記データソースにマッピングするステップは、識別子をデータエンリッチメントに関連付けるテーブルを用いるステップを含む、方法。
  6. 請求項2に記載の方法であって、前記メタデータ内で識別子を見つけるステップは、前記データベースのカラムのデータタイプを見つけるステップを含み、前記識別子を前記データソースにマッピングするステップは、識別子をデータエンリッチメントに関連付けるテーブルをサーチするステップを含む、方法。
  7. 請求項1に記載の方法であって、前記第1のデータエンリッチメントを推奨するステップは、前記第1のデータエンリッチメントの名前、前記第1のデータエンリッチメントの入力データタイプ及び前記第1のデータエンリッチメントの出力データタイプを送るステップを含み、前記名前、前記入力データタイプ、前記出力データタイプは、前記データベースを通じてデータエンリッチメントを参照するソフトウェアを開発する際に用いるためのものである、方法。
  8. 請求項1に記載の方法であって、最速のクエリを前記比較に基づき選択するステップは、前記第1のクエリと前記第2のクエリのどちらが最小のレイテンシを有するかに応じて最速のクエリを選択するステップを含む、方法。
  9. 請求項1に記載の方法であって、前記第1のデータエンリッチメントを示すものをグラフィカルインターフェースにて表示するステップを更に含む方法。
  10. 請求項1に記載の方法であって、
    前記第2のデータエンリッチメントのためのエンリッチメントデータを2つの異なるエンリッチメントを行うデータソースから取得する第1のクエリと第2のクエリの特性を比較するステップは、前記第1のクエリと前記第2のクエリのクエリ時間を比較するステップを含み、
    最速のクエリを、前記第1のクエリと前記第2のクエリの前記特性の前記比較に基づき選択するステップは、前記第1のクエリと前記第2のクエリのうちの最速のクエリを前記クエリ時間の比較に基づき選択するステップを含む、
    方法。
  11. 請求項10に記載の方法であって、前記第1のクエリと前記第2のクエリのうちの最速のクエリを前記クエリ時間の比較に基づき選択するステップは、前記第1のクエリと前記第2のクエリのうちの最速のクエリを、前記第1のクエリと前記第2のクエリのどちらが、前記第2のデータエンリッチメントのためのエンリッチメントデータを取得する際に最小のレイテンシを有するかに応じて選択するステップを含む、方法。
  12. プロセッサと、
    システムメモリと、
    データ及び該データに関するメタデータを格納するデータベースであって、前記メタデータは前記データベースの構造を定める、データベースと、
    コンピュータ実行可能命令を格納した1以上のコンピュータ記憶媒体と
    を備えたシステムであって、前記コンピュータ実行可能命令は、前記システムを推奨エンジンとして機能させ、該推奨エンジンは、
    前記データベースのためのデータエンリッチメントの推奨を提供する要求を受け、
    前記メタデータを解析し、
    前記データベースのための第1のデータエンリッチメントを前記メタデータの前記解析に基づき推奨し、前記第1のデータエンリッチメントは前記データベースを補うためのものであり、
    前記データベースを補うために、前記データベースのための第2のデータエンリッチメントを前記第1のデータエンリッチメントと前記第2のデータエンリッチメントの類似性に基づき提案し、
    前記第2のデータエンリッチメントを提供することが可能なデータソースを、
    前記第2のデータエンリッチメントのためのエンリッチメントデータを2つの異なるデータソースから取得する第1のクエリと第2のクエリのうちの最速のクエリを、前記第1のクエリと前記第2のクエリのクエリ時間に基づき選択し、
    最速のクエリに関連付けられた前記データソースの識別子を求める
    ことにより識別する
    ように構成された、システム。
  13. 請求項12に記載のシステムであって、DMBS、前記データベース及び前記推奨エンジンは、ソフトウェアコンポーネントから遠隔に位置する1以上のサーバにおいてホストされ、前記ソフトウェアコンポーネントは、ソフトウェア開発者により前記データベースを増大させるために用いられる、システム。
  14. 請求項12に記載のシステムであって、前記DBMS、前記データベース、前記推奨エンジン及びソフトウェアコンポーネントは、あるコンピュータにおいてホストされ、前記ソフトウェアコンポーネントはアプリケーションである、システム。
  15. 請求項12に記載のシステムであって、前記第1のデータエンリッチメントを推奨するように構成された前記推奨エンジンは、
    前記メタデータ内で識別子を見つけ、
    前記識別子を前記第1のデータエンリッチメントに、前記識別子を前記第1のデータエンリッチメントに関連付けるデータ構造を用いてマッピングする
    ように構成された推奨エンジンを含む、システム。
  16. 請求項12に記載のシステムであって、第1のクエリと第2のクエリのうちの最速のクエリを選択するように構成された前記推奨エンジンは、最速のクエリを、前記第1のクエリと前記第2のクエリのどちらが最小のレイテンシを有するかに応じて選択するように構成された推奨エンジンを含む、システム。
  17. コンピュータ実行可能命令を含むコンピュータ記憶媒体であって、前記コンピュータ実行可能命令は、コンピュータにあるアクションを実行させ、該アクションは、
    データベースのためのデータエンリッチメントの推奨を提供する要求を受けることと、
    前記データベースのメタデータを解析することであって、該メタデータは、前記データベースの構造を定める、ことと、
    前記データベースのための第1のデータエンリッチメントを前記メタデータの前記解析に基づき推奨することであって、前記第1のデータエンリッチメントは前記データベースを補うためのものである、ことと、
    前記データベースを補うために、前記データベースのための第2のデータエンリッチメントを前記第1のデータエンリッチメントと前記第2のデータエンリッチメントの類似性に基づき提案することと、
    前記第2のデータエンリッチメントを提供することが可能なデータソースを識別するスことであって、
    異なるデータソースからの前記第2のデータエンリッチメントのためのエンリッチメントデータにアクセスする第1のクエリと第2のクエリのうちの、最速のクエリ時間を有するクエリを選択し、
    前記クエリに関連付けられたデータソースの識別子を求める
    ことにより識別することと
    を含む、コンピュータ記憶媒体。
  18. 請求項17に記載のコンピュータ記憶媒体であって、前記アクションは、推奨をエンリッチメントを行うデータソースに関連付けるデータ構造を受けることと、前記推奨及び該推奨の関連付けられたエンリッチメントを行うデータソースの少なくとも一部をグラフィカルインターフェースを介して表示することとを更に含む、コンピュータ記憶媒体。
  19. 請求項17に記載のコンピュータ記憶媒体であって、前記アクションは、前記第1のデータエンリッチメントを推奨することに関して満たされるべき1以上のポリシーを提供することを更に含む、コンピュータ記憶媒体。
  20. 請求項17に記載のコンピュータ記憶媒体であって、第1のクエリと第2のクエリのうちの、最速のクエリ時間を有するクエリを選択することは、前記第1のクエリと前記第2のクエリのうちの、最小のレイテンシを有するクエリを選択することを含む、コンピュータ記憶媒体。
  21. 請求項17から20のうちの何れか一項に記載のコンピュータ実行可能命令を含むコンピュータプログラム。
JP2014515868A 2011-06-14 2012-06-05 データエンリッチメントの推奨 Active JP5986195B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/159,654 2011-06-14
US13/159,654 US9244956B2 (en) 2011-06-14 2011-06-14 Recommending data enrichments
PCT/US2012/040950 WO2012173825A2 (en) 2011-06-14 2012-06-05 Recommending data enrichments

Publications (3)

Publication Number Publication Date
JP2014523013A JP2014523013A (ja) 2014-09-08
JP2014523013A5 JP2014523013A5 (ja) 2015-07-23
JP5986195B2 true JP5986195B2 (ja) 2016-09-06

Family

ID=47354526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014515868A Active JP5986195B2 (ja) 2011-06-14 2012-06-05 データエンリッチメントの推奨

Country Status (11)

Country Link
US (3) US9244956B2 (ja)
EP (1) EP2721531A4 (ja)
JP (1) JP5986195B2 (ja)
KR (2) KR102035984B1 (ja)
CN (1) CN103608809B (ja)
AU (1) AU2012271085B2 (ja)
BR (1) BR112013032101B1 (ja)
CA (1) CA2838502A1 (ja)
MX (1) MX2013014800A (ja)
RU (1) RU2611966C2 (ja)
WO (1) WO2012173825A2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9147195B2 (en) 2011-06-14 2015-09-29 Microsoft Technology Licensing, Llc Data custodian and curation system
US10073858B2 (en) 2013-05-16 2018-09-11 Oracle International Corporation Systems and methods for tuning a storage system
US10629086B2 (en) 2015-06-09 2020-04-21 International Business Machines Corporation Providing targeted, evidence-based recommendations to improve content by combining static analysis and usage analysis
US11456885B1 (en) 2015-12-17 2022-09-27 EMC IP Holding Company LLC Data set valuation for service providers
US10528522B1 (en) 2016-03-17 2020-01-07 EMC IP Holding Company LLC Metadata-based data valuation
US10838946B1 (en) 2016-03-18 2020-11-17 EMC IP Holding Company LLC Data quality computation for use in data set valuation
US10838965B1 (en) 2016-04-22 2020-11-17 EMC IP Holding Company LLC Data valuation at content ingest
US10789224B1 (en) * 2016-04-22 2020-09-29 EMC IP Holding Company LLC Data value structures
US10671483B1 (en) 2016-04-22 2020-06-02 EMC IP Holding Company LLC Calculating data value via data protection analytics
US10210551B1 (en) 2016-08-15 2019-02-19 EMC IP Holding Company LLC Calculating data relevance for valuation
CN106372133A (zh) * 2016-08-19 2017-02-01 苏州七彩部落网络科技有限公司 一种基于大数据的用户行为分析处理方法及系统
US11157498B1 (en) 2016-09-26 2021-10-26 Splunk Inc. Query generation using a dataset association record of a metadata catalog
US11093564B1 (en) 2016-09-26 2021-08-17 Splunk Inc. Identifying configuration parameters for a query using a metadata catalog
DE112017005638T5 (de) * 2016-11-09 2019-07-25 Ab Initio Technology Llc Systeme und Verfahren zur Bestimmung der Beziehung zwischen Datenelementen
US10719480B1 (en) 2016-11-17 2020-07-21 EMC IP Holding Company LLC Embedded data valuation and metadata binding
US10936599B2 (en) 2017-09-29 2021-03-02 Oracle International Corporation Adaptive recommendations
US11392578B1 (en) 2018-04-30 2022-07-19 Splunk Inc. Automatically generating metadata for a metadata catalog based on detected changes to the metadata catalog
US11238049B1 (en) 2018-04-30 2022-02-01 Splunk Inc. Revising catalog metadata based on parsing queries
US11573955B1 (en) 2018-04-30 2023-02-07 Splunk Inc. Data-determinant query terms
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649181A (en) * 1993-04-16 1997-07-15 Sybase, Inc. Method and apparatus for indexing database columns with bit vectors
US5623652A (en) 1994-07-25 1997-04-22 Apple Computer, Inc. Method and apparatus for searching for information in a network and for controlling the display of searchable information on display devices in the network
US5608904A (en) 1995-02-13 1997-03-04 Hewlett-Packard Company Method and apparatus for processing and optimizing queries having joins between structured data and text data
US5615264A (en) 1995-06-08 1997-03-25 Wave Systems Corp. Encrypted data package record for use in remote transaction metered data system
US5960194A (en) * 1995-09-11 1999-09-28 International Business Machines Corporation Method for generating a multi-tiered index for partitioned data
WO1997043893A1 (en) * 1996-05-23 1997-11-27 Citibank, N.A. Global financial services integration system and process
US5913214A (en) 1996-05-30 1999-06-15 Massachusetts Inst Technology Data extraction from world wide web pages
US6016348A (en) 1996-11-27 2000-01-18 Thomson Consumer Electronics, Inc. Decoding system and data format for processing and storing encrypted broadcast, cable or satellite video data
JP3836928B2 (ja) * 1997-02-26 2006-10-25 株式会社日立製作所 データベース処理方法
US7092914B1 (en) 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
JP3648051B2 (ja) * 1998-02-02 2005-05-18 富士通株式会社 関連情報検索装置及びプログラム記録媒体
US6763496B1 (en) 1999-03-31 2004-07-13 Microsoft Corporation Method for promoting contextual information to display pages containing hyperlinks
JP2000293590A (ja) 1999-04-12 2000-10-20 Sony Corp 情報処理装置および方法、並びに提供媒体
US6343287B1 (en) 1999-05-19 2002-01-29 Sun Microsystems, Inc. External data store link for a profile service
US7472349B1 (en) 1999-06-01 2008-12-30 Oracle International Corporation Dynamic services infrastructure for allowing programmatic access to internet and other resources
US7007275B1 (en) 1999-10-21 2006-02-28 Unisys Corporation Method and apparatus for automatic execution of concatenated methods across multiple heterogeneous data sources
US7124101B1 (en) 1999-11-22 2006-10-17 Accenture Llp Asset tracking in a network-based supply chain environment
US7213005B2 (en) 1999-12-09 2007-05-01 International Business Machines Corporation Digital content distribution using web broadcasting services
US6618822B1 (en) 2000-01-03 2003-09-09 Oracle International Corporation Method and mechanism for relational access of recovery logs in a database system
AU2001270069A1 (en) 2000-06-23 2002-01-08 The Johns-Hopkins University Architecture for distributed database information access
JP3567861B2 (ja) * 2000-07-07 2004-09-22 日本電信電話株式会社 情報源所在推定方法及び装置及び情報源所在推定プログラムを格納した記憶媒体
JP2002149459A (ja) * 2000-11-10 2002-05-24 Mitsubishi Electric Corp 冗長化データベース管理・検索システム
JP4543563B2 (ja) 2001-02-28 2010-09-15 株式会社日立製作所 統合データベースシステムにおける問合せ最適化方法
US20030009424A1 (en) 2001-05-31 2003-01-09 Contentguard Holdings, Inc. Method for managing access and use of resources by verifying conditions and conditions for use therewith
US7546602B2 (en) 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US6928425B2 (en) 2001-08-13 2005-08-09 Xerox Corporation System for propagating enrichment between documents
US7133862B2 (en) 2001-08-13 2006-11-07 Xerox Corporation System with user directed enrichment and import/export control
WO2003058399A2 (en) 2001-12-28 2003-07-17 Sv Trycos, Llc Method and system for adaptive software system interface and external database synchronization
US20040139089A1 (en) 2002-03-29 2004-07-15 Wells Ronald B. Method and system for managing information on a network
US7233939B1 (en) * 2002-04-30 2007-06-19 Oracle International Corporation Systems and methods of optimizing database queries for efficient delivery of query data subsets
US6993534B2 (en) 2002-05-08 2006-01-31 International Business Machines Corporation Data store for knowledge-based data mining system
AU2003243635A1 (en) 2002-06-17 2003-12-31 Beingmeta, Inc. Systems and methods for processing queries
US7493311B1 (en) * 2002-08-01 2009-02-17 Microsoft Corporation Information server and pluggable data sources
EP1403764A1 (en) 2002-09-26 2004-03-31 Sap Ag Method and computer system for dynamic data type enrichment
ZA200302281B (en) * 2002-09-30 2003-09-29 Microsoft Corp Accessibility system events mechanism and method.
US7849016B2 (en) 2002-12-18 2010-12-07 Vincent So Internet-based data content rental system and method
US7177874B2 (en) 2003-01-16 2007-02-13 Jardin Cary A System and method for generating and processing results data in a distributed system
US20040148278A1 (en) 2003-01-22 2004-07-29 Amir Milo System and method for providing content warehouse
US7146356B2 (en) 2003-03-21 2006-12-05 International Business Machines Corporation Real-time aggregation of unstructured data into structured data for SQL processing by a relational database engine
JP2004304304A (ja) 2003-03-28 2004-10-28 Fujitsu Ltd 電子署名生成方法,電子署名検証方法,電子署名生成依頼プログラム,及び電子署名検証依頼プログラム
JP2004326250A (ja) 2003-04-22 2004-11-18 Nec Corp 代金情報管理サーバ、代金情報管理方法、及び代金情報管理プログラム
US20040215656A1 (en) 2003-04-25 2004-10-28 Marcus Dill Automated data mining runs
EP1482418A1 (en) 2003-05-28 2004-12-01 Sap Ag A data processing method and system
US7739223B2 (en) 2003-08-29 2010-06-15 Microsoft Corporation Mapping architecture for arbitrary data models
US7594109B2 (en) 2003-12-23 2009-09-22 Hewlett-Packard Development Company, L.P. Digital content distribution system
WO2005088462A1 (en) 2004-03-05 2005-09-22 Finisar Corporation Hierarchical and byte-configurable memory in an optical transceiver
US8521687B2 (en) * 2004-08-03 2013-08-27 International Business Machines Corporation Apparatus, system, and method for selecting optimal replica sources in a grid computing environment
US7451357B2 (en) 2004-11-18 2008-11-11 International Business Machines Corporation Apparatus and system for adjusting trace data granularity
US7427349B2 (en) 2004-12-16 2008-09-23 Chevron U.S.A. Inc. Fuels hydrocracking and distillate feed hydrofining in a single process
US20130104251A1 (en) 2005-02-01 2013-04-25 Newsilike Media Group, Inc. Security systems and methods for use with structured and unstructured data
WO2006096939A1 (en) 2005-03-18 2006-09-21 Kwok Kay Wong Remote access of heterogeneous data
US20060271575A1 (en) 2005-05-25 2006-11-30 Harris Steven T Clustered object state using field set operations
WO2007014325A2 (en) 2005-07-27 2007-02-01 Doug Carson & Associates, Inc. Verifying provenance data associated with digital content
US20070056042A1 (en) 2005-09-08 2007-03-08 Bahman Qawami Mobile memory system for secure storage and delivery of media content
US7668821B1 (en) 2005-11-17 2010-02-23 Amazon Technologies, Inc. Recommendations based on item tagging activities of users
KR100656402B1 (ko) 2005-11-26 2006-12-11 한국전자통신연구원 디지털 콘텐츠를 안전하게 배포하는 방법 및 그 장치
US7716240B2 (en) 2005-12-29 2010-05-11 Nextlabs, Inc. Techniques and system to deploy policies intelligently
US9277295B2 (en) 2006-06-16 2016-03-01 Cisco Technology, Inc. Securing media content using interchangeable encryption key
US20100138652A1 (en) 2006-07-07 2010-06-03 Rotem Sela Content control method using certificate revocation lists
US8005832B2 (en) 2006-08-29 2011-08-23 Switchbook, Inc. Search document generation and use to provide recommendations
US20080091613A1 (en) 2006-09-28 2008-04-17 Microsoft Corporation Rights management in a cloud
US8312036B2 (en) * 2006-09-29 2012-11-13 Apple Inc. Recommended systems
WO2008047363A2 (en) 2006-10-19 2008-04-24 Taboola.Com Ltd. Method and system for content composition
US20080104542A1 (en) 2006-10-27 2008-05-01 Information Builders, Inc. Apparatus and Method for Conducting Searches with a Search Engine for Unstructured Data to Retrieve Records Enriched with Structured Data and Generate Reports Based Thereon
GB2446199A (en) 2006-12-01 2008-08-06 David Irvine Secure, decentralised and anonymous peer-to-peer network
US7571069B1 (en) 2006-12-22 2009-08-04 Hewlett-Packard Development Company, L.P. Data assurance workflow derivation and execution
US20080222132A1 (en) 2007-03-07 2008-09-11 Jiangyi Pan Personalized shopping recommendation based on search units
JP4539712B2 (ja) * 2007-12-03 2010-09-08 ソニー株式会社 情報処理端末、情報処理方法、およびプログラム
US20080228716A1 (en) 2007-03-13 2008-09-18 Dettinger Richard D System and method for accessing unstructured data using a structured database query environment
US8219523B2 (en) 2007-03-23 2012-07-10 Sap Ag Data quality enrichment integration and evaluation system
US7970943B2 (en) 2007-08-14 2011-06-28 Oracle International Corporation Providing interoperability in software identifier standards
US8972518B2 (en) 2007-09-20 2015-03-03 Flash Networks Ltd. Integrated data-model and flow based policy system
AU2008337244A1 (en) 2007-12-18 2009-06-25 Bae Systems Plc Improvements relating to data curation
US7984056B1 (en) * 2007-12-28 2011-07-19 Amazon Technologies, Inc. System for facilitating discovery and management of feeds
GB2456184A (en) 2008-01-07 2009-07-08 Cvon Innovations Ltd System for selecting an information provider or service provider
ITTO20080434A1 (it) 2008-06-05 2009-12-06 Accenture Global Services Gmbh Sistema di raccolta e di analisi di dati relativi agli acquisti di consumatori e acquirenti
JP2010020524A (ja) 2008-07-10 2010-01-28 Id Solution:Kk Dna認証システム
US7991650B2 (en) 2008-08-12 2011-08-02 Amazon Technologies, Inc. System for obtaining recommendations from multiple recommenders
NO330101B1 (no) 2008-12-23 2011-02-21 Microsoft Int Holdings B V Fremgangsmåte for human-sentrisk informasjonsaksess og presentasjon
US8495005B2 (en) * 2009-01-14 2013-07-23 International Business Machines Corporation Methods for matching metadata from disparate data sources
US8452794B2 (en) 2009-02-11 2013-05-28 Microsoft Corporation Visual and textual query suggestion
EP2230612A1 (fr) 2009-03-19 2010-09-22 France Telecom Génération de recommandations pour un serveur de contenus
US8103681B2 (en) 2009-05-29 2012-01-24 Clear Channel Management Services, Inc. Associating works with unique identifiers
US8122031B1 (en) * 2009-06-11 2012-02-21 Google Inc. User label and user category based content classification
US20110010379A1 (en) 2009-07-09 2011-01-13 Xeround Systems Ltd. Database system with query interception and redirection
US8812490B1 (en) * 2009-10-30 2014-08-19 Microstrategy Incorporated Data source joins
KR101672454B1 (ko) 2009-10-30 2016-11-04 삼성전자 주식회사 컨텐트 이용 이력에 기반한 네트워크 컨텐트 서비스 관리 방법 및 장치
NO331571B1 (no) 2009-10-30 2012-01-30 Uni I Stavanger System for a beskytte en kryptert informasjonsenhet
US9208230B2 (en) * 2010-10-29 2015-12-08 Google Inc. Enriching search results
US9077462B2 (en) * 2010-12-21 2015-07-07 Cox Communications, Inc. Systems and methods for measuring audience participation over a distribution network
US9147195B2 (en) 2011-06-14 2015-09-29 Microsoft Technology Licensing, Llc Data custodian and curation system
US9122720B2 (en) 2011-06-14 2015-09-01 Microsoft Technology Licensing, Llc Enriching database query responses using data from external data sources
US20150379275A1 (en) 2013-02-08 2015-12-31 Thomson Licensing Privacy against inference attacks for large data
US10445062B2 (en) * 2016-09-15 2019-10-15 Oracle International Corporation Techniques for dataset similarity discovery

Also Published As

Publication number Publication date
RU2013155626A (ru) 2015-06-20
US9244956B2 (en) 2016-01-26
CN103608809B (zh) 2017-11-24
KR20140041546A (ko) 2014-04-04
KR102035984B1 (ko) 2019-10-23
US20200042517A1 (en) 2020-02-06
US20120323843A1 (en) 2012-12-20
US11093490B2 (en) 2021-08-17
BR112013032101B1 (pt) 2021-04-20
RU2611966C2 (ru) 2017-03-01
AU2012271085B2 (en) 2017-01-05
KR101976220B1 (ko) 2019-05-07
MX2013014800A (es) 2014-01-24
WO2012173825A2 (en) 2012-12-20
JP2014523013A (ja) 2014-09-08
BR112013032101A2 (pt) 2016-12-13
KR20190049924A (ko) 2019-05-09
CN103608809A (zh) 2014-02-26
EP2721531A4 (en) 2014-11-26
CA2838502A1 (en) 2012-12-20
US20160140170A1 (en) 2016-05-19
EP2721531A2 (en) 2014-04-23
WO2012173825A3 (en) 2013-03-21
US10540349B2 (en) 2020-01-21

Similar Documents

Publication Publication Date Title
JP5986195B2 (ja) データエンリッチメントの推奨
AU2012271085A1 (en) Recommending data enrichments
US10942926B2 (en) Identification, and query, of semantically-related database tables
US9009201B2 (en) Extended database search
US7734657B2 (en) Containment hierarchy in a database system
US8914414B2 (en) Integrated repository of structured and unstructured data
US9037579B2 (en) Generating dynamic hierarchical facets from business intelligence artifacts
US7613715B2 (en) Map and data location provider
EP3913496B1 (en) Enabling data access by external cloud-based analytics system
US10503743B2 (en) Integrating search with application analysis
US20160299945A1 (en) Declarative partitioning for data collection queries
US7769750B2 (en) Metadata based hypermedia management system
US20040015542A1 (en) Hypermedia management system

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150602

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150602

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160615

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160804

R150 Certificate of patent or registration of utility model

Ref document number: 5986195

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250