(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US
オントロジーを使用し、マッピングを生成する際に使用するための装置であって、装置は、それぞれのオントロジー用語を有するオントロジーを決定し、オントロジーの少なくとも1つからオントロジー用語のグループを決定し、オントロジー用語のグループの少なくともいくつかのためにオントロジーのオントロジー用語間のアラインメントを決定し、アラインメントがオントロジー用語のオントロジー用語意味に少なくとも部分的に従って決定され、アラインメントに従ってマッピングを生成する少なくとも1つの電子処理装置含む。
前記マッピングが、いくつかのソースデータフィールドを含んだソースデータ構造を有するソースデータストアからいくつかのターゲットデータフィールドを含んだターゲットデータ構造を有するターゲットデータストアにコンテンツを転送する際に使用され、前記オントロジーが前記ソースデータ構造及び前記ターゲットデータ構造に関連付けられ、前記電子処理装置が前記マッピングを使用し、前記ソースデータフィールドと前記ターゲットデータフィールドとの間でコンテンツを転送する、請求項1に記載の装置。
前記オントロジーが前記ソースデータ構造に関連付けられたソースオントロジー及び前記ターゲットデータ構造に関連付けられたターゲットオントロジーを含む、請求項5に記載の装置。
前記ソースオントロジー及び前記ターゲットオントロジーが推測上のオントロジーであり、前記ソースオントロジー及び前記ターゲットオントロジーが1つ又は複数の様式化オントロジーにマップされる、請求項6に記載の装置。
前記電子処理装置が複数のオントロジーのために単一のインデックスを生成し、前記インデックスエントリが前記オントロジー用語に関連付けられた前記オントロジーの表示を含む、請求項15に記載の装置。
前記実行可能なコードが、前記コンピュータシステムにソースオントロジー又はターゲットオントロジーに従ってソースデータ構造又はターゲットデータ構造に記憶されたデータと対話するためのクエリーを生成させる、請求項21に記載の装置。
前記実行可能なコードが、前記コンピュータシステムにデータプロパティ及びオントロジーの前記ユーザによって選択されたオントロジー用語間の関係性の少なくとも1つに従ってクエリーを生成させる、請求項21に記載の装置。
前記電子処理装置が、ソースオントロジーからの1つ又は複数のソースオントロジー用語とターゲットオントロジーからの1つ又は複数のターゲットオントロジー用語との間のアラインメントを決定する、請求項29に記載の装置。
前記電子処理装置が、すべての前記選択されたオントロジー用語が関係性によって接続されるまで、識別されたオントロジー用語を繰り返し追加する、請求項34に記載の装置。
【発明を実施するための形態】
【0055】
オントロジーを使用し、マッピングを生成する方法例はここで
図1Aを参照して説明される。
【0056】
この例の目的のために、プロセスは、より詳細に以下に説明されるように、コンピュータシステムのマイクロプロセッサ等の電子処理装置を使用し、少なくとも部分的に実行されることが仮定される。
【0057】
例の少なくともいくつかでは、コンテンツが、データベース又はファイル等のコンテンツレポジトリとして作用するデータストアのコンテンツフィールドに1つ又は複数のコンテンツインスタンスとして記憶されると仮定される。したがって、コンテンツフィールドは、1つ又は複数のデータベースフィールドにわたって記憶される値を含んだ、データベースレコードに対応するコンテンツインスタンスを有するデータベースのデータベースフィールドとなるだろう。代わりに、コンテンツフィールドは、以下の説明から明らかになるように、例えばデータがデータベースから抽出される、及び/又はデータベースに転送されるとき、データをトランスポートするために使用されてよいXMLファイル等のファイルの中に定義されたフィールドとなるだろう。別の代替策として、コンテンツフィールドは、以下の説明から明らかになるように、例えば、データがRDFトリプルストアデータベースから抽出される、及び/又はRDFトリプルストアデータベースに転送されるとき、データをトランスポートするために使用されてよいRDFトリプルストア等のファイルの中で定義されるフィールドとなるだろう。
【0058】
以下の説明を通して説明の目的上、用語「ソース」は、データがそこから抽出されているデータベース又はファイル等のデータストアを指すために使用される。一方、用語「ターゲット」は、データがその中に記憶されているデータベース又はファイル等のデータストアを指すために使用される。これらの用語は、例えば、考えられるソースとターゲットを区別するため等の説明のためだけであり、制限的になることを意図していない。
【0059】
用語「コンテンツインスタンス」は、ソースから抽出中、及び/又はターゲットに転送中であり、制限的になることを意図していないコンテンツの個々の要素である。例えば、用語コンテンツインスタンスは、いくつかの異なるデータベースフィールドに記憶された値を有するデータベースレコード若しくは関係するデータベースレコードのセットを指すことがある、又は代わりに単一のフィールドの中に記憶された単一の値を指すことがあるだろう。
【0060】
用語「オントロジー」は、ドメインの中の概念のセットとして、それらの概念のタイプ、プロパティ、及び相互関係を示すために共有された語彙を使用し、知識を表す。オントロジーは、通常、個人、クラス、オブジェクト、属性等のいくつかの構成要素を含み、用語「オントロジー用語」は概して、これらの構成要素及び任意選択でこれらの概念の特定の概念を指すために使用される。
【0061】
用語「意味」は、特定のオントロジー用語、コンテンツフィールド名等の意味解釈を指すことを目的とする。したがって、用語意味は、以下により詳細に説明されるように、例えば同音異義語、同義語、部分語等の問題を説明するために、オントロジー用語又はコンテンツフィールドの意図された意味を包含する。
【0062】
この例では、ステップ100で、電子処理装置はそれぞれのオントロジー用語を有するオントロジーを決定する。このプロセスは任意の適切な方法で実行することができ、これは電子処理装置に、例えば1つ又は複数のオントロジーデータベースに記憶されている、いくつかの既存のオントロジーの内の1つ又は複数を選択させることを含むことがあり、又は代わりに推測上のオントロジーを生成することによって達成できるだろう。一例では、選択されたオントロジーは、ソースデータ構造と関連付けられたソースオントロジー、及びターゲットデータ構造と関連付けられたターゲットオントロジーに相当する。ただし、これは必須ではない。
【0063】
オントロジーの選択は、ソースデータ構造又はターゲットデータ構造に基づいて達成でき、適切なマッチが見つけられるまでオントロジー用語にデータ構造の中のフィールドを比較することを含むことがあるだろう。また、このプロセスは、いくつかのオントロジーのドメインを調べ、ドメイン、したがってコンテンツの特定の主題フィールドに関連性のあるオントロジー、コンテンツが関係する業界等を選択することも含むだろう。オントロジーの選択は、例えば電子処理装置に、関連するコンテンツの主題フィールドの表示を提供することによって自動化されることがあり、例えば電子処理装置にユーザがこれらを選択できるようにする利用可能なオントロジーの詳細を表示させることによって手動になることがあり、又は手動プロセス及び自動プロセスの組合せによることがある。
【0064】
代わりに、これは、例えばメタデータ、データベーススキーマ等を使用し、ソースデータ構造又はターゲットデータ構造から『推測上の』オントロジーを生成することを含むことがあるだろう。このプロセスは相関的な参照整合性の制約からなんらかのオントロジー公理を導き出すことを含むことがあるが、大部分の公理は手作業で追加する又は無視する必要があるだろう。この推測上のオントロジーはメタデータを追加するために既存の豊かなオントロジーと合わせられてよい。
【0065】
ステップ110で、電子処理装置はオントロジーの少なくとも1つからオントロジー用語のグループを決定する。オントロジー用語のグループは、通常、それぞれのオントロジーのサブグループであり、関係するオントロジー用語のグループを表す。グループは通常、例えば対象のオントロジー用語に対応する選択されたオントロジー用語を含む。したがって、例えば、ソースデータ構造及びターゲットデータ構造をマップする際に使用されるとき、オントロジー用語のグループは、例えばその中のコンテンツを抽出し、ターゲットデータストアに転送できるようにするためにターゲットデータフィールド又はソースデータフィールドにマップされるべきであるソースデータフィールド又はターゲットデータフィールドに対応する選択されたオントロジー用語を含むことがある。グループは、さらに通常、選択されたオントロジー用語間の関係性を維持するために必要とされるオントロジー用語を含む。
【0066】
グループがどのようにして決定されるのかは好まれる実装に応じて変化し、例えば抽出されるコンテンツに基づいて、いくつかの従前の決定されたグループの1つを選択することを含むことがあるだろう。ただし、代わりに、これは、選択されたオントロジー用語を識別することによってグループを生成することを含み、次いで選択されたオントロジー用語のそれぞれを接続する経路が見つけられるまで関係するオントロジー用語を漸次的に調べる。このプロセスは、それが、オントロジー全体よりもより容易に管理できるが、依然としてオントロジーの構造及び公理を維持する、削減された数のオントロジー用語にオントロジーを切り詰めることを実際上含むことがあるので、切り詰めることと呼ばれることがある。
【0067】
ステップ120で、電子処理装置は、オントロジー用語のグループの少なくともいくつかについてオントロジー用語間のアラインメントを決定し、アラインメントはオントロジー用語のオントロジー用語意味に従って少なくとも部分的に決定される。したがって、電子処理装置は一方のオントロジーのオントロジー用語の少なくとも意味を調べ、他方のオントロジーの同等のオントロジー用語を識別しようと試みる。したがって、最も簡略なレベルで、これは同じ意味を有するソースオントロジー用語及びターゲットオントロジー用語を識別することを含むことがあるが、より典型的には、ソースオントロジー用語及びターゲットオントロジー用語が他方のソースオントロジー用語及びターゲットオントロジー用語と類似した関係性を有するかどうかを識別するために、ソースオントロジー用語間、及びターゲットオントロジー用途間の関係性も調べる。
【0068】
アラインメントは1対1のマッピングである必要はなく、一方のオントロジーでの単一のオントロジー用語が他方のオントロジーでの複数のオントロジー用語と一致することがあることに留意されたい。ターゲットオントロジーが名前及び苗字を別々の概念として定義することがあり、その場合コンテンツは、コンテンツがソースからターゲットに転送される際にマージされる必要があるのに対し、例えば、ソースオントロジーは単一の概念として個人の名前を定義してよい。
【0069】
ステップ130で、電子処理装置はアラインメントに従ってマッピングを生成するために機能する。マッピングはオントロジー自体の間のマッピングを表すことがある、及び/又はターゲットオントロジー用語とソースオントロジー用語の間のアラインメントに基づいて、それぞれのソースデータ構造及びターゲットデータ構造のソースデータフィールドとターゲットデータフィールドの間のマッピングを表すことがある。このようにして、例えば電子処理装置はソースデータフィールドについて対応するソースオントロジー用語を、次いでアラインメントを使用し、合わせられたターゲットオントロジー用語、したがってターゲットデータフィールドを決定できる。マッピングは次いで通常マッピングファイル、インデックス、テーブル、マージされたオントロジー等の形式で記憶され、後にデータを転送する際にマッピングを使用できるようにする。
【0070】
したがって、上記プロセスは、2つのオントロジーを合わせることを可能にし、これは同様にマッピングを作成するために使用される。マッピングは異なるオントロジーでオントロジー用語を等しくするために使用でき、これを同様に、それぞれのオントロジーを使用し、ソースデータフィールドをターゲットデータフィールドにマップするために使用できるようにする。このマッピングは、コンテンツが異なるデータ構造を有するデータストア間で転送されているときにもコンテンツの構造が維持されることを保証するために役立つオントロジーを使用して、ソースとターゲットの間でコンテンツを転送する際に使用できる。また、オントロジーの使用は、例えば、コンテンツが必要とされる通常の形式をとり、必要とされる場合には正規化も提供することを保証するために、転送されているコンテンツの整合性が維持される、又はそれが転送される際に改善されていることを保証するのに役立つこともある。このようにして、オントロジーを使用することは、コンテンツがソースからターゲットデータストアに転送される際に追加の関係性制限を課すことを可能にし、これによりソースデータストアのデータが第3の通常の形式で記憶されない場合にも、データは、転送される際に第3の通常に変換できる。
【0071】
プロセスがソースデータ構造とターゲットデータ構造との間でマッピングを作成するために使用されているとき、ソースオントロジー及びターゲットオントロジーは、Galenオントロジー(概して様式化オントロジーと呼ばれる)等の公式に作成されたオントロジー等の従前に定義されたオントロジーであることがある、又は代わりにデータ構造自体に基づいて生成される推測上のオントロジーであることがある。これは、
図1Bを参照してここで説明されるように、いくつかの異なるマッピング関係を確立できるようにする。
【0072】
この例では、それぞれのソースデータ構造及びターゲットデータ構造S、Tを有するソースデータストア及びターゲットデータストアが示される。各データストアは対応する推測上のオントロジー150,160を有することがあり、対応する様式化オントロジー151、161も存在している。これが、いくつかの異なるマッピングと確立できるようにする。
【0073】
例えば、マッピングは、推測上のオントロジー150、160間で直接的に作成することができ、ソースとターゲットS、Tの間で直接的にコンテンツを転送できるようにする。
【0074】
さらに、及び/又は代わりに、マッピングは、上述された技法を使用し、推測上のオントロジー150、160と対応する様式化オントロジー151、161との間で作成できるだろう。このプロセスは、ソースデータ構造又はターゲットデータ構造S、Tに基づいて推測上のオントロジー150、160を作成し、次いで実質的に自動で様式化オントロジー151、161にマップし、それによって推測上のオントロジー150、160のオントロジー用語に、意味、定義、及び潜在的な関係性を提供することを可能にする。また、このプロセスはそれぞれのデータ構造に記憶されるデータを正規化する際にも使用できる。
【0075】
オントロジー151、161が同一である場合、様式化オントロジー151、161に推測上のオントロジー150、160をマップすることは、ソースとターゲットS、Tの間でコンテンツを転送できるようにする。代わりに、様式化オントロジーは、ソースとターゲットS、Tとの間でのコンテンツの転送を再び可能にするためにそれらの間のマッピングを可能にするために合わせることもできるだろう。
【0076】
したがって、上述された技法はオントロジー間でマッピングを作成するために使用することができ、これらは同様にソースデータ構造とターゲットデータ構造との間で直接的にマッピングを確立するために使用されることが理解される。これは、不同等のソース及びターゲット間でのコンテンツの転送を促進し、様式化データ構造に従ってこれを実行できるようにし、それによってコンテンツが正規化された形式で提供されることを保証する。したがって、これは不同等のデータ構造間のコンテンツ転送を可能にするだけではなく、非正規化形式で記憶されるデータと関連付けられた問題を克服するために使用することもできる。
【0077】
いくつかの追加の特徴がここで説明される。この点で、電子処理装置は、ここでさらに説明されるように、通常、いくつかの異なる機能を実行して、オントロジーのインデックスを生成すること、ユーザがオントロジーをブラウズし、オントロジーと対話し、オントロジーを切り詰め、オントロジー用語の意味を解釈することを可能にすることを含んだ上述のプロセスを容易にするように適合される。
【0078】
上述されたように、マッピングは任意の形式となることがある。マッピングがオントロジー間であるとき、以下により詳細に説明されるように、これはマージされたオントロジー、又は代わりにアラインメントインデックスの形式となることがある。
【0079】
含まれているオントロジーは、好ましい実装に応じて推測上のオントロジー及び/又は様式化オントロジーを含むことがある。1つの特定の例では、電子処理装置は様式化オントロジーに推測上のオントロジーをマップするためにマッピングを生成する。
【0080】
また上述されたように、マッピングは、いくつかのソースデータフィールドを含んだソースデータ構造を有するソースデータストアからいくつかのターゲットデータフィールドを含んだターゲットデータストアを有するターゲットデータストアにコンテンツを転送する際に使用でき、オントロジーはソースデータ構造及びターゲットデータ構造と関連付けられ、電子処理装置はマッピングを使用し、ソースデータフィールドとターゲットデータフィールド間でコンテンツを転送する。したがって、オントロジーはソースデータ構造と関連付けられたソースオントロジー、及びターゲットデータ構造と関連付けられたターゲットオントロジーを含むことがあり、ソースオントロジー及びターゲットオントロジーは1つ又は複数の様式化オントロジーにマップされた推測上のオントロジーである。
【0081】
したがって、上述されたプロセスでは、電子処理装置は、推測上のオントロジーを生成する又はいくつかの既存の推測上のオントロジー若しくは様式化オントロジーの内の1つを選択することによってオントロジーを決定できる。
【0082】
電子処理装置は、通常、ソースデータ構造若しくはターゲットデータ構造と関連付けられたメタデータ、又はソースデータ構造若しくはターゲットデータ構造のソースデータフィールド及びターゲットデータフィールドのどちらかを使用し、ソースオントロジー又はターゲットオントロジーを決定する。このプロセスは、推測上のオントロジーを生成すること、又は例えばオントロジーデータベース等のストアに記憶されているオントロジーからいくつかの既存のオントロジーの1つを選択することを含むことがあるだろう。この後者の場合、電子処理装置は、いくつかの既存のオントロジーのオントロジー用語とデータ構造データフィールドを比較し、比較の結果に従って該いくつかの既存のオントロジーの1つを選択できる。
【0083】
代わりに、例えばデータベーススキーマからオントロジーを生成するとき、電子処理装置は、通常、スキーマのテーブルを識別し、各テーブルに対応するオントロジー用語を作成し、少なくとも1つの部品表テーブルを識別し、部品表テーブルの各エントリに対応するオントロジー用語を作成する。このようにして、このプロセスはあらゆる非正規化データベーステーブルのコンテンツを調べるために機能し、追加のオントロジー用語を識別するためにこのテーブルのコンテンツを拡大する。このプロセスの一部として、電子処理装置は部品表テーブルの各エントリに対応するオントロジー用語の表示を表示し、ユーザ入力コマンドに応じて推測上のオントロジーに該オントロジー用語を追加できる。これにより、ユーザは、必要な場合、オントロジーの作成を無効にできる。
【0084】
電子処理装置は、推測上のオントロジーを生成するとき、データベーススキーマによって定義されたテーブル構造を使用し、オントロジー用語間の関係性をさらに生成できる。このプロセスは、電子処理装置が、オントロジー用語に対応するクラス、クラスの少なくともいくつかに対するデータプロパティ、及びクラス間の関係性を定義するオブジェクトプロパティを含んだ推測上のオントロジーを生成できるようにする。
【0085】
一例では、電子処理装置は、少なくとも1つのオントロジーのオントロジー用語の表示を含んだ、少なくとも1つのオントロジーのためのインデックスを決定し、オントロジー用語のグループ及びオントロジー用語間のアラインメントを決定するためにインデックスを使用する。インデックスの使用は必須ではないが、インデックスの使用は、オントロジー全体の使用と比較して処理する必要があるデータの量をかなり削減し、それによってブラウズ、グループ化(切り詰め)、及びアラインメントのプロセスをより扱いやすくする。
【0086】
インデックスは任意の適切な形式となることがあるが、通常、オントロジー用語ごとに、オントロジー用語の名前、及びオントロジー用語の意味の表示、及びオントロジー用語のタイプを含む。また、インデックスは、URI(ユニフォーム・リソース・アイデンティファイア)等の形式をとることがあるだろう、それぞれのオントロジーでのオントロジー用語のアドレス等の追加の情報を含んでもよい。
【0087】
電子処理装置は、オントロジー用語ごとに、オントロジー用語名を識別し、オントロジー用語タイプを識別し、セマンティックマッチングプロセスを使用して各オントロジー用語のオントロジー意味を識別し、オントロジー用語名、オントロジー用語タイプ、及びオントロジー用語意味の表示を含んだインデックスエントリを作成することによってインデックスを生成する。
【0088】
一例では、電子処理装置は、複数のオントロジーのために単一のインデックスを生成し、これは必須ではなく、代わりに別個のインデックスが、インデックスが付けられるオントロジーごとに使用できるが、インデックスエントリはオントロジー用語と関連付けられたオントロジーの表示を含む。
【0089】
電子処理装置は、通常さらに、オントロジーに1つ又は複数のオントロジー用語の表示を表示し、ユーザ入力コマンドに応じて少なくとも1つのオントロジー用語を識別し、少なくとも1つの識別されたオントロジー用語及び少なくとも1つの識別されたオントロジー用語と関連付けられたデータプロパティの内の少なくとも1つの詳細を表示するように適合される。したがって、これによりユーザはオントロジーをブラウズし、その中に定義されたオントロジー用語の詳細を見ることができる。これは、ユーザが、正しいオントロジーが使用されているかどうかを評価し、オントロジーの範囲を理解し、異なるオントロジー用語間の関係性を探索し、ソースデータ構造又はターゲットデータ構造がどのようにオントロジーに関係するかを評価することを可能にするために有用であることがある。
【0090】
電子処理装置は、通常、オントロジーインデックスを使用し、1つ又は複数のオントロジー用語の表示を決定する。したがって、インデックスが、オントロジー用語のリストを表示し、次いでその後選択されたオントロジー用語と関連付けられたデータプロパティを探索するために電子処理装置に迅速な仕組みを提供することが理解される。
【0091】
電子処理装置は、通常、ユーザ入力コマンドに応じて、ユーザによって選択されたオントロジー用語、及び対応するユーザによって選択されたデータプロパティを決定するように適合される。これは選択されたオントロジー用語及びデータプロパティの詳細を表示するために使用できるだけではなく、電子処理装置が実行可能コードを生成できるようにもする。実行可能コードは、ユーザによって選択されたオントロジー用語及びデータプロパティに基づき、コンピュータシステムで実行されるとき、コンピュータシステムに、ユーザが、ユーザによって選択されたオントロジー用語に対応するデータ構造を有するデータストアに記憶されたコンテンツと対話できるようにするユーザインタフェースを表示させる。したがって、これは、電子処理装置が、ユーザがコンテンツと対話し、その後それぞれのソースデータ構造及び/又はターゲットデータ構造からコンテンツをエクスポートする又はコンテンツをインポートすることを可能にするインタフェースを表示するために使用できるコードを自動的に生成できるようにするための機構を提供する。
【0092】
したがって、これによってユーザがオントロジーの中のオントロジー用語をブラウズし、次いでデータ構造のデータフィールドに対応するオントロジー用語を選択できることが理解される。これは、同様に、ユーザが次いでデータ構造の中に記憶されたコンテンツと対話できるようにするインタフェースとして作用することができるコードを生成できるようにする。
【0093】
一例では、実行可能コードは、コンピュータシステムに、例えばSPARQL(SPARQLプロトコル及びRDFクエリー言語)を使用し、例えば、クエリーを行い、コンテンツを取り出すことによってソースオントロジー又はターゲットオントロジーに従ってソースデータ構造又はターゲットデータ構造に記憶されたデータと対話するためのクエリーを生成させる。これは、データベースに対するインタフェースとして作用することができるコンピュータソフトウェアを迅速に配備するための機構を提供する。さらに、これがオントロジーに基づいて生成されているおかげで、それはオントロジーの中で定義された関係性をコードの構造、したがって結果として生じるクエリーの中に統合できる。したがって、これによってコンピュータシステムは、データプロパティ又はユーザによって選択されたオントロジー用語間の関係性に従ってクエリーを生成できる。
【0094】
これを達成するために、コンピュータシステムは、通常、例えばソースオントロジー又はターゲットオントロジーから1つ又は複数のオントロジー用語の表示を表示し、ユーザ入力コマンドに応じて少なくとも1つのオントロジー用語の選択を決定し、対応するデータフィールドに記憶されたデータにクエリーを行う。
【0095】
オントロジー用語の意味を決定し、異なるオントロジー用語の意味の類似性を比較するために、電子処理装置は通常セマンティックマッチングを実行するように適合される。これは、通常、例えば概念マッチングデータベース等の参照データベースに記憶された、いくつかの潜在的なオントロジー用語意味とオントロジー用語を比較すること、及び比較の結果に従ってオントロジー用語意味として潜在的なオントロジー用語意味の1つを選択することを含む。
【0096】
これを達成するために、電子処理装置は、各比較の結果にマッチングスコアを生成し、マッチングスコアに従ってオントロジー用語意味を決定することによってオントロジー用語意味を決定する。マッチングスコアを決定する際に、電子処理装置は、潜在的なオントロジー用語意味が、検討中のオントロジー用語の同義語、反意語、部分語、スーパークラス、及びサブクラスの内の少なくとも1つであるかどうかを判断する。
【0097】
いったんオントロジー用語意味が作成されると、これの表示は通常インデックスの部分として記憶され、表示は定義された意味を示す識別子及び同等な意味のリストの少なくとも1つを含む。したがって、単一の一意識別子がいくつかの異なるオントロジーの中の各一意の概念に割り当てられ、異なるオントロジー全体で共通の識別子によって共通の意味を識別できるようにする。識別子は、好ましい実装に応じて一意の英数字コード、見出し語、語根等であるだろう。これにより、同等なオントロジー用語、したがって合わせられたオントロジー用語を識別するプロセスははるかに容易になる。
【0098】
同様に、電子処理装置は、通常、いくつかのオントロジー用語のオントロジー用語意味を比較し、各比較の結果にマッチングスコアを生成し、マッチングスコアに従ってアラインメントを決定することによってオントロジー用語間のアラインメントを決定する。また、より典型的には、電子処理装置は、オントロジー用語、又はオントロジー用語のデータプロパティの間の関係性に基づいてアラインメントを決定する。したがって、これは、アラインメントが存在するかどうかを判断するために、用語の絶対的な意味だけではなく、オントロジーの相対的な構造も考慮に入れる。したがって、電子処理装置はソースオントロジー用語間の関係性を決定し、ターゲットオントロジー用語間の関係性を決定し、関係性を比較し、比較の結果に従ってソースオントロジー用語とターゲットオントロジー用語間のアラインメントを決定できる。
【0099】
電子処理装置は、通常、ソースオントロジーからの1つ又は複数のソースオントロジー用語とターゲットオントロジーからの1つ又は複数のターゲットオントロジー用語間のアラインメントを決定し、したがってこれが1対1の関係性、多対1の関係性、及び1対多の関係性を包含できるようにする。
【0100】
上述されたように、電子処理装置は、例えば現在の用途に関連性がない又は使用されていないオントロジー用語を削除することができ、現在の状況に関連性があるオントロジー用語だけが残るようにオントロジーを切り詰めることによってオントロジー用語のグループを決定できる。一例では、これは選択されたオントロジー用語を決定し、次いで選択されたオントロジー用語及びオントロジー用語間の関係性に少なくとも部分的に従って、オントロジー用語のグループを決定することによって達成される。
【0101】
したがって、選択されたオントロジー用語ごとに、電子処理装置は、いくつかの異なるタイプの関係性のそれぞれに定義された関係性経路長の中でオントロジー用語を識別し、ソースオントロジー用語のグループに識別されたオントロジー用語を追加する。このプロセスは、電子処理装置が、すべての選択されたオントロジー用語が関係性によって接続されるとき等の所望される端点に到達するまで識別されたオントロジー用語を反復して追加するように、繰り返し実行できる。これは、次いでオントロジーの中の関係性を保ち、オントロジーを合わせる、マッピングを作成する等の他のプロセスで使用できるようにする、関係するオントロジー用語のグループを確立する。
【0102】
上記プロセスの一部として、いくつかの異なる関係性が、選択されたオントロジー用語のすべての間で経路を確立しようとして調べることができ、電子処理装置は任意選択で異なるタイプの関係性に異なる関係性経路長を使用する。したがって、例えば、なんらかのタイプの関係性はより重要と見なされ、したがって関係オントロジー用語を識別するときに、通常、より長い経路長を与えられるだろう。一例では、経路長(複数の場合がある)は、ユーザによって定義され、グループの作成を制御する際に手動介入を使用できるようにする。
【0103】
一例では、上述されたプロセスを実行できるようにするために、いくつかの異なるツールを使用して、マッピングを生成し、オントロジーを管理するのを支援できる。一例では、ツールは、オントロジーツール及びデータ管理ツールの統合されたパッケージを形成するソフトウェアスイートの一部として提供される。一例では、ツールは、オントロジーのオントロジー用語を示すインデックスを生成するインデクサモジュール、オントロジーのオントロジー用語のブラウズを可能にし、オントロジーの少なくとも一部を具現化するコードを生成し、それによってユーザがオントロジーに従ってデータ構造に記憶されたデータと対話できるようにするブラウザモジュール、オントロジー用語異なるオントロジー間のアラインメントを決定するアライナモジュール、オントロジー用語間の関係性を少なくとも部分的に使用し、少なくとも1つのオントロジーの中でオントロジー用語のグループを決定するプルーナモジュール、及びオントロジー用語意味を識別するセマンティックマッチャモジュールを含む。ただし、それぞれのモジュールの使用は必須ではなく、他の構成を使用できる。
【0104】
一例では、プロセスは、プログラムされたコンピュータシステム等の処理システムを少なくとも部分的に使用して実行できる。これは、スタンドアロンコンピュータで実行でき、マイクロプロセッサは上述された方法を実行できるようにするアプリケーションソフトウェアを実行する。代わりに、プロセスは、
図2を参照してここで説明される例である分散型アーキテクチャの一部として動作する1つ又は複数の処理システムによって実行できる。
【0105】
この例では、2つの基地局201はインターネット202、及び/又はいくつかのローカルエリアネットワーク(LAN)204等、通信網を介していくつかのコンピュータシステム203に結合される。ネットワーク202、204の構成は例のためだけであり、実際には、基地局201、コンピュータシステム203は、直接接続又はBluetooth等のポイントツーポイント接続だけではなく、モバイルネットワーク、802.11ネットワーク等のプライベートネットワーク、インターネット、LAN、WAN等を含むが、これに限定されるものではない、有線接続又は無線接続を介して等、任意の適切な機構も介して通信できることが理解される。
【0106】
一例では、各基地局201はデータベース211に結合された処理システム210を含む。基地局201は、例えばソースデータストアとターゲットデータストアとの間でコンテンツを転送する際に使用するためのマッピングの生成だけではなく、例えば切り詰め又はアラインメントを実行するためにオントロジーを管理する際に使用されるように適合される。コンピュータシステム203は、マッピングの生成等のプロセスを制御できるようにするために基地局201と通信するように適合できる。ただし、これは必須ではなく、プロセスは基地局201を介して直接的に制御できる。
【0107】
各基地局201は単一のエンティティとして示されているが、基地局201は、例えば、処理システム210及び/又はクラウドベースの環境の一部として提供されるデータベース211を使用することによっていくつかの地理的に別々の場所上で分散できることが理解される。この点で、代わりに、データストアはコンピュータシステム203と関連付けられるだろうが、それぞれがそれぞれのデータストア又はオントロジーと関連付けられる複数の基地局201が提供できる。
【0108】
ただし、上述された構成は必須ではなく、他の適切な構成を使用できるだろう。例えば、プロセスはスタンドアロンコンピュータシステムで実行できるだろう。
【0109】
適切な処理システム210の例は
図3に示される。この例では、処理システム210は、図示されるように、バス304を介して相互接続された少なくとも1台のマイクロプロセッサ300、メモリ301、キーボード及び/又はディスプレイのような入出力装置302、及び外部インタフェース303を含む。この例では、外部インタフェース303は、通信ネットワーク202、204、データベース211、他のストレージデバイス等のような周辺装置に処理システム210を接続するために活用できる。単一の外部インタフェース303が示されているが、これは例のためだけであり、実際には多様な方法(例えば、イーサネット、シリアル、USB、無線等)を使用する複数のインタフェースが提供されてよい。
【0110】
使用中、マイクロプロセッサ300は、コンピュータシステム203と通信するだけではなく、インデックス生成、マッピング、及びデータベース211への/データベース211からのコンテンツ転送を実行することも可能にするためにメモリ301に記憶されているアプリケーションソフトウェアの形式の命令を実行する。アプリケーションソフトウェアは1つ又は複数のソフトウェアモジュールを含んでよく、オペレーティングシステム環境等のような適切な実行環境で実行されてよい。
【0111】
したがって、処理システム210が、適切にプログラムされたコンピュータシステム、PC、DMBSを実行するデータベースサーバ、ウェブサーバ、ネットワークサーバ等のような任意の適切な処理システムから形成されてよいことが理解される。1つの特定の例では、処理システム210は、不揮発性(例えばハードディスク)ストレージに記憶されているソフトウェアアプリケーションを実行する32ビット又は64ビットのIntel Architectureをベースにした処理システムのような標準的な処理システムである。ただし、これは必須ではない。しかしながら、処理システムがマイクロプロセッサ、マイクロチッププロセッサ、論理ゲート構成、FPGA(フィールド・プログラマブル・ゲート・アレイ)のような実装論理と任意選択で関連付けられたファームウェア、又は任意の他の電子機器、システム、若しくは構成のような任意の電子処理装置であることがあることも理解される。
【0112】
図4に示されるように、一例では、コンピュータシステム203は、図示されるようにバス404で相互接続された少なくとも1台のマイクロプロセッサ400、メモリ401、キーボード及び/又はディスプレイのような入出力装置402、及び外部インタフェース403を含む。この例では、外部インタフェース403は、通信ネットワーク202、204、データベース211、他のストレージデバイス等のような周辺装置にコンピュータシステム203を接続するために活用できる。単一の外部インタフェース403が示されているが、これは例のためだけであり、実際には多様な方法(例えば、イーサネット、シリアル、USB、無線等)を使用する複数のインタフェースが提供されてよい。
【0113】
使用中、マイクロプロセッサ400は、基地局201との通信を可能にして、例えばオペレータが制御入力を提供できるようにするためにメモリ401に記憶されるアプリケーションソフトウェアの形式の命令を実行する。
【0114】
したがって、コンピュータシステム203は、適切にプログラムされたPC、インターネット端末、ラップトップ、ハンドヘルドPC、スマートフォン、PDA、ウェブサーバ等のような任意の適切な処理システムから形成されてよいことが理解される。したがって、一例では、処理システム100は、不揮発性(例えば、ハードディスク)ストレージに記憶されているソフトウェアアプリケーションを実行する、32ビット又は64ビットのIntel Architectureをベースにした処理システムのような標準的な処理システムである。ただし、これは必須ではない。しかしながら、コンピュータシステム203が、マイクロプロセッサ、マイクロチッププロセッサ、論理ゲート構成、FPGA(フィールド・プログラマブル・ゲート・アレイ)のような実装論理と任意選択で関連付けられたファームウェア、又は任意の他の電子機器、システム、若しくは構成のような任意の電子処理装置であることがあることも理解される。
【0115】
マッピングを生成し、ブラウズ、オントロジーを合わせること、及びオントロジーを切り詰めることを含んだオントロジーのインデックス付け及びオントロジーとの対話を可能にするためのシステムの動作の例がここでさらに詳細に説明される。
【0116】
これらの例のために、基地局201の処理システム210がプロセスを実行するためのアプリケーションソフトウェアをホストし、処理システム210によって実行されるアクションが、メモリ301にアプリケーションソフトウェアとして記憶される命令、及び/又はI/O装置302を介してユーザから受信される入力コマンド、又はコンピュータシステム203から受信されるコマンドに従ってプロセッサ300によって実行されていることが想定される。この点で、以下の例のために、処理システム210は、インデクサモジュール、ブラウザモジュール、アライナモジュール、プルーナモジュール、セマンティックマッチャモジュール、及びETLモジュールを含んだいくつかのモジュールを有するアプリケーションソフトウェアを実行する。ただし、それぞれのモジュールの使用は必須ではなく、他の構成を使用できる。
【0117】
ユーザが、入出力装置302又はコンピュータシステム203のどちらかに提示されるGUI等を介して処理システム210によって実行されるアプリケーションソフトウェアと対話することも想定される。コンピュータシステム203によって実行されるアクションは、メモリ401にアプリケーションソフトウェアとして記憶された命令、及び/又はI/O装置402を介してユーザから受信される入力コマンドに従ってプロセッサ400によって実行される。基地局201は、通常、利用可能な特定のネットワークインフラを介してコンピュータシステム203と通信し、例えば1つ又は複数のコンピュータシステム203のユーザのためにデータベース211と対話するエンタープライズサーバの形式であってよいサーバである。
【0118】
しかしながら、上述された構成は例のためだけであり、制限的になることを意図していないため、実際には任意のデータベース管理システムを使用できることが理解される。また、コンピュータシステム203及び基地局201との間の機能性の区分化が特定の実装に応じて変化してよいことも理解される。
【0119】
マッピングを決定し、ソースからターゲットにコンテンツを転送するためにこれを使用するためのプロセスの概要が、ここで
図5を参照して説明される。この例のために、処理システム210が異なる機能性を提供するためにいくつかの異なるモジュールを実装することが想定される。
【0120】
この例では、ステップ500で、処理システム210はソースデータ構造及びターゲットデータ構造を使用し、ソースオントロジー及びターゲットオントロジーを識別する。これはいかなる方法でも達成できるが、通常、ソースデータストア及びターゲットデータストアのためのソースデータ構造及びターゲットデータ構造に基づいて推測上のオントロジーを作成することを含む。例えば、異なるソースデータフィールド及びターゲットデータフィールドの名前はオントロジー用語に等しくされ、オントロジー用語間の関係性はソースデータ構造及びターゲットデータ構造の関係性から識別される。推測上のオントロジーを生成するプロセスの特定の例は、
図6を参照してより詳細に説明される。
【0121】
ステップ510で、インデクサモジュールはソースオントロジー及びターゲットオントロジーのインデックスを決定する。インデックスは通常、各オントロジー用語、これが既知である場合は関連付けられたオントロジー用語タイプ、及び任意選択でオントロジー用語の意味も示すエントリを含んだリストの形式をとる。この点で、オントロジー用語意味は通常、ステップ520で、概念マッチングデータベースとオントロジーを比較し、インデックスの各オントロジー用語の意味を識別するために比較の結果を使用するセマンティックマッチャモジュールによって決定される。
【0122】
ステップ530で、ブラウザモジュールはオントロジーをブラウズし、ソースオントロジー用語又はターゲットオントロジー用語を選択するために使用される。これによって、ユーザは、通常はソースデータストアから抽出される又はターゲットデータストアにインポートされるコンテンツに対応する、対象のそれらのオントロジー用語を選択できる。
【0123】
選択されたオントロジー用語は、次いで、ブラウザモジュールがそれぞれのデータ構造に従ってデータストアに記憶されたコンテンツと対話するためのコードを生成できるようにするためにステップ540で使用できる。特に、これは、ユーザが、以下により詳細に説明されるように、データ構造のデータフィールドを見て、抽出/インポートされるコンテンツを選択し、次いで抽出/インポートを実行するために必要なクエリーを生成するために使用できるユーザインタフェースを、コンピュータシステムが生成できるようにするためのコードを含むことがある。
【0124】
代わりに、ステップ550で、選択されたオントロジー用語は、ソースオントロジー及び/又はターゲットオントロジーのどちらかを切り詰めるためにプルーナモジュールによって使用される。特に、これによってユーザは対象のオントロジーのそれらの部分だけを選択することができ、処理システム210は次いで、以下により詳細に説明されるように、選択されたオントロジー用語間の関係性を維持するために必要とされる追加のオントロジー用語を選択する。
【0125】
いったんオントロジーの1つ又は複数が切り詰められると、ステップ560で、処理システム210はソースオントロジー及びターゲットオントロジーを合わせるためにアライナモジュールを使用する。これは、ソースオントロジー用語の1つ又は複数とターゲットオントロジー用語の1つ又は複数との間の対応を識別し、それによってステップ570で、ソースデータストアからターゲットデータストアにコンテンツを転送するために、同様にブラウザモジュールによって生成されたコードともに使用できるソースデータ構造とターゲットデータ構造の間のマッピングを決定できるようにする。
【0126】
データベーススキーマ等のデータ構造から推測上のオントロジーを生成するためのプロセスの例は、ここで
図6を参照して説明される。
【0127】
この例はリレーショナルデータベースのために推測上のオントロジーを生成することに特有であるが、類似した概念を他のデータ構造にも適用できること、及びこの例が例示のためだけであり、制限的となることを意図していないことが理解される。
【0128】
この例では、ステップ600で、処理システム210は、通常、データベーススキーマを定義するメタデータからこの情報を抽出することによって、データベースの各テーブルを決定する。ステップ610で、処理システム210は、データベースの各テーブルに対応するクラスを定義する。この点で、用語クラスは、以下により詳細に説明されるように、オントロジーの中の概念に相当する特定のオントロジー用語を参照する。
【0129】
ステップ620で、処理システム210は、BOM(部品表)構造又はタイプ構造を有するあらゆるデータベーステーブルを識別する。この点で、BOMテーブルは2つの「1対多」の関係性を有し、アイテム、オブジェクト、又は商品を構成するすべてのパーツのリストに対して使用される。タイプ構造は1つの「多対1」の関係性を有し、関係するテーブルでの値の範囲を制限するために使用されるただ1つの関連性がある属性又は列を有する。係るテーブルは、多くの場合、データを非正規化するために使用されるため、それぞれがそれぞれのオントロジー用語を表すべきである多くの概念又はクラスを含むことがある。したがって、ステップ630で、処理システムは、テーブルのそれぞれの一意のエントリに対応する追加のクラスを定義するために、各タイプテーブル及び各BOMテーブルを拡大する。
【0130】
ステップ640で、処理システム210は、タイプテーブル又はBOMテーブルの中からそれぞれの識別されたクラスを任意選択で表示し、ユーザが、クラスがステップ650で保持されるべきかどうかを確認できるようにする。タイプクラス又はBOMクラスが保持されるべきではないことが示される場合、タイプクラス又はBOMクラスはステップ660で削除される。
【0131】
いったん関連性のあるBOMクラスが選択されると、処理システム210は、データベーススキーマに基づいて関係性及び属性(データオブジェクト及びデータプロパティとも呼ばれる)を定義する。したがって、テーブル構造は、識別されたクラス間の関係性を識別するために使用できる。一方、テーブルのデータフィールドはクラスの属性を識別するために使用される。関係性及び属性は同様に、オントロジーでオブジェクトプロパティ及びデータプロパティを定義するために使用され、それによって推測上のオントロジーを生成し、ステップ680で、例えばオントロジーデータベースに保存できるようにする。
【0132】
したがって、これによって推測上のオントロジーは、データベース、構造化ファイル等のようなデータストアのデータ構造の分析からだけ、実質的に自動化された様式で作成できる。これに続き、推測上のオントロジーの中で異なるクラスに意味を定義することが必要とされる場合、以下により詳細に説明されるように、推測上のオントロジーは様式化オントロジーと合わせることができる。
【0133】
インデックスを生成するためのプロセスの例は、ここで
図7を参照して説明される。
【0134】
この例では、ステップ700で、インデクサモジュールは対象のオントロジーを決定する。これは、例えばブラウザモジュールを介して供給されるユーザ入力コマンドに基づいて決定されてよい、又はインデックスを必要とする別のモジュールから受け取ることができるだろう。例えば、推測上のオントロジーを生成したETLモジュールは、これがインデックスを付けられることを必要とし、インデクサモジュールにオントロジーの表示を提供することがある、又は代わりにプルーナモジュールはオントロジーに対して切り詰めを実行できるようにするインデックスを要求することがある。
【0135】
ステップ705で、インデクサモジュールは、通常インデックスデータベースに記憶される1つ又は複数の既存のインデックスとオントロジーを比較し、インデックスがすでに存在しているかどうかを判断する。これは、オントロジーの名前及び/又はアドレスのようなオントロジーと関連付けられたメタデータを、インデックスと関連付けられた対応する情報と比較することによって、又は代わりに既存のインデックスのオントロジー用語と1つ又は複数のオントロジー用語を比較することによって達成できる。
【0136】
ステップ710でインデックスが存在すると判断される場合、次いでインデックスは、例えばインデックスを要求したモジュールにインデックスを提供することによってステップ715で提供される。それ以外の場合、インデックスが生成されなければならず、その場合、インデクサモジュールがステップ720で次のオントロジー用語を選択し、次いでステップ725で、オントロジー用語名、オントロジー用語タイプ、及び通常、URI(ユニフォームリソースアイデンティファイア)又は同等のものを示すオントロジー用語アドレスの表示を含んだインデックスエントリを作成する。ステップ730で、インデクサモジュールは、以下により詳細に説明されるように、セマンティックマッチャモジュールからオントロジー用語の意味論的意味を入手し、インデックスエントリにこれを追加する。
【0137】
ステップ735で、インデクサモジュールは、すべてのオントロジー用語が完成したかどうかを判断し、完成していない場合、プロセスは720に戻り、次のオントロジー用語を選択できるようにする。それ以外の場合、ステップ740で、インデックスは記憶され、任意選択で別のモジュールに提供される。
【0138】
オントロジーのブラウズのためのプロセスの例は、ここで
図8を参照して説明される。
【0139】
この例では、ステップ800で、ブラウザモジュールがオントロジーインデックスを使用し、選択されたオントロジーにオントロジー用語リストを生成する。したがって、このプロセスの部分として、ブラウザモジュールは、例えば選択されたオントロジーのアイデンティティに基づいて、インデクサモジュールからオントロジーインデックスを要求できる。オントロジー用語リストは、次いで適切なGUI(グラフィックユーザインタフェース)を介してユーザに表示できる。
【0140】
ステップ805で、ユーザは、ステップ810で見るための次のオントロジー用語を選択する前に対象の1つ又は複数のオントロジー用語にタグを付け、ブラウザモジュールがステップ815で選択されたオントロジー用語のためのデータプロパティを含んだオントロジー用語画面を表示できるようにする。この点で、データプロパティは、オントロジーの一部として定義されるオントロジー用語の属性に相当する。
【0141】
ステップ820で、ブラウザモジュールは、検索オプションがユーザによって選択されたかどうかを判断し、その場合、ユーザはステップ825でデータプロパティのデータフィールドに検索用語を入力する。ブラウザモジュールは次いでそれぞれのオントロジー用語データプロパティに関連付けられたデータのクエリーを生成し、実行し、結果を戻し、ステップ830でユーザに表示する。したがって、このプロセスによってユーザは、対応するソースデータストア又はターゲットデータストアでそれぞれのデータプロパティと関連付けられるだろうコンテンツを見直すことができ、それによってユーザは、オントロジー用語及び関連付けられたデータプロパティ対象のものかどうかを確かめることができる。
【0142】
いったん検索が実行されると、又は検索が実行されない場合、ユーザは835で対象の1つ又は複数のデータプロパティにタグを付ける。このようにして、このプロセスによってユーザはオントロジー用語及び関連付けられたデータプロパティを見直し、次いで対象のオントロジー用語及びデータプロパティを、それらにタグを付けることによって選択できる。
【0143】
ステップ840で、オントロジー用語は、ユーザにとって対象のすべてのオントロジー用語及びデータプロパティが選択されたかどうかを判断するために見直される。選択されていない場合、プロセスはステップ810に戻り、追加のオントロジー用語を見直すことを可能にする。
【0144】
それ以外の場合、ステップ845で、ブラウザモジュールはタグが付けられたオントロジー用語及び関連付けられたデータプロパティを選択し、例えばステップ850で切り詰めを実行するために、又はステップ855でアプリケーションを生成するために、これらを他のプロセスで使用できるようにする。この点で、アプリケーションの生成は、以下により詳細に説明されるように、コンピュータシステムでの実行時に、コンピュータシステムが、選択されたオントロジー用語又はデータプロパティに対応するソース又はターゲットのフィールドのコンテンツと対話するためのユーザインタフェースを表示できるようにする実行可能コードを生成するためにスクリプト等を使用することを含む。
【0145】
したがって、上述されたプロセスは、ユーザがオントロジー用語及び関連付けられたデータプロパティをブラウズして、それらの内のどれが、ユーザがソースからエクスポート又はターゲットにインポートすることを希望するコンテンツに関して対象となるかを識別できるようにするために使用できる。
【0146】
オントロジーを切り詰めるためのプロセスの例は、ここで
図9を参照して説明される。
【0147】
この例では、ステップ900で、選択されたオントロジー用語は切り詰めプロセス用のシードとして追加される。これに続き、シードオントロジー用語を相互接続する経路が識別されるまで、シードオントロジー用語に関係するオントロジー用語を繰り返し探索するために反復プロセスが実行される。これを達成するために、ステップ905で、異なるタイプの関係性及び関連付けられたデフォルト経路長が表示される。この点で、オントロジー用語は、親、子、兄弟等の異なるタイプの関係性によって関係付けることができる。一定のタイプの関係性は他よりもより重要であることがあるので、異なる関係性タイプは異なる長さを有することがある。さらに、関係性のタイプごとに探索される経路の長さは変えることができ、それによってより重要な関係性を介してシードオントロジー用語に接続された、より多数のオントロジー用語が含まれることを保証する。したがって、ステップ910で、ユーザは異なる関係性のための経路長を調整することができ、それによって例えば、切り詰めの範囲及び/又は方向を制御するために、切り詰めプロセスをユーザによって調整できるようにする。
【0148】
ステップ915で、選択されたオントロジー用語に関係するオントロジー用語は、指定された経路長の関係性によって関係付けられたそれらのオントロジー用語を識別することによって決定される。ステップ920で、プルーナモジュールは、選択されたシード用語がリンクされるかどうかを判断する。言い換えると、シードオントロジー用語をリンクする一連の相互接続されたオントロジー用語があり、その場合、切り詰めプロセスは、切り詰められたオントロジー又は切り詰められたインデックスとして記憶できるステップ925で切り詰められたオントロジーを定義する、使用中に識別された、選択され、関係付けられたオントロジー用語で終了することがある。
【0149】
それ以外の場合、ステップ930で、反復が完了しているかどうかが判断され、完了していない場合、関係するオントロジー用語は追加され、選択されたオントロジー用語、プロセスはステップ915に戻り、追加の関係するオントロジー用語を識別できるようにする。したがって、シードオントロジー用語に関係付けられたオントロジー用語の数は、シードオントロジー用語が関係性の経路によって接続されるまで徐々に増加する。
【0150】
したがって、上述されたプロセスは、オントロジーが無事に切り詰められ、その時点でシードオントロジー用語が関係するオントロジー用語の経路を介して相互接続されるまで、又は所定数の繰り返しが完了され、経路が識別されず、その場合プロセスがステップ940で休止されるまでのどちらか、繰り返される。後者の場合、これは通常、オントロジー用語が異なるオントロジーからであることを示唆し、その場合、切り詰めプロセスはアラインメントプロセスと併せて実行され、以下により詳細に説明されるように、切り詰めプロセスが複数のオントロジーにわたることを可能にする。代わりに、これは、オントロジー用語を容易にリンクできないことを示す。
【0151】
ソースオントロジー及びターゲットオントロジーを合わせるためのプロセスの例が、ここで
図10を参照して説明される。
【0152】
この例では、ステップ1000で、ソースオントロジー用語及び/又はターゲットオントロジー用語がインデックスを使用し、選択される。これは、ユーザにブラウザモジュールを使用し、オントロジー用語を選択させる、又はより典型的には、対象のソース用語及び/又はオントロジー用語を含むソースオントロジー及びターゲットオントロジーの切り詰められたバージョンに相当する2つの切り詰められたオントロジーを選択させることを含むことがある。ステップ1005で、マッチャモジュールは、ソースオントロジー用語及びターゲットオントロジー用語の対の異なる組合せのマッチングスコアを決定するために使用される。これらのスコアは、ステップ1010でソースオントロジー及びターゲットオントロジーの意味がどれほど類似しているのかだけに基づいて予備的なアラインメントを定義するために使用される。
【0153】
ステップ1015で、アライナモジュールは、予備的なアラインメントが正しいかどうかを判断するためにソースオントロジー用語及びターゲットオントロジー用語の関係性(オブジェクトプロパティ)及び属性(データプロパティ)を調べる。このようにして、例えば、これは予備的な合わせられたソースオントロジー用語及びターゲットオントロジー用語が類似した数の属性を有しているのか、並びにこれらが他のソースオントロジー用語又はターゲットオントロジー用語と類似した関係性を有するのかどうかを調べる。これは、用語の苗字及び名前のそれぞれが名前に予備的に照合されてよい場合、不正確なマッチを識別するために使用でき、関係性の調査は、これが多対1の関係性となるべきであることを明示するために使用される。
【0154】
ステップ1020で、これはアラインメントを精緻化するために使用することができ、ステップ1025でソースオントロジーとターゲットオントロジーとの間のアラインメントを表すためにこれらを記憶できるようにする。これはマージされたオントロジー、又は代わりにアラインメントインデックスの形式をとることがある。
【0155】
セマンティックマッチングプロセスの例は、ここで
図11を参照して説明される。
【0156】
この例では、ステップ1100で、マッチャモジュールは、マッチングのためにオントロジー用語を受け取る。これはブラウザモジュールを介したユーザ選択に基づくことがあるが、より典型的にはインデクサモジュール又はアライナモジュールから用語を受け取ることによる。ステップ1105で、次の対の組合せが、マッチングデータベースの複数のそれぞれの用語と単一オントロジー用語を比較すること、又は受け取られたソースオントロジー用語及びターゲットオントロジー用語の次の対を選択することのどちらかによって選択される。
【0157】
ステップ1110で、セマンティックマッチャモジュールは、概念マッチングデータベースを使用し、意味類似性を計算する。スコアはいくつかの方法の内のいずれか1つによって決定できるが、通常、例えばそれらが反意語であるのか、同義語であるのかのような、意味が多少なりとも関係しているかどうかに基づいてスコアを計算する所定の数式を適用することを含む。1つの特定の例では、これは、例えばWordNet等のようなディクショナリを使用し、オントロジー用語を定義にマッチさせることを含む。この点で、WordNetは英語の大規模な語彙データベースである。名詞、動詞、形容詞、及び副詞は、それぞれが異なる概念を表す知的同義語(synsets)のセットにグループ化され、Fellbaum、Christiane(2005年)に説明されている。WordNet及びwordnets。Brown、Keithら(編集)、Encyclopedia of Language and Linguistics、第2版、Oxford:Elsevier、665〜670。
【0158】
いったん定義が識別されると、これは、次いでデータベースに記憶されるRDFトリプルについて表される。次いで2つのオントロジー用語の意味の類似性を示す類似性スコアを決定するために使用されるトリプル間の類似性を決定するために2つの異なる意味のためのRDFトリプルにクエリーを行うことができる。
【0159】
これに続き、ステップ1115で、セマンティックマッチャモジュールは、用語がサブクラス及びスーパークラスの配置によって関係付けられているかどうかを判断する。この情報は、次いで、ステップ1120でマッチングスコアを計算するために類似性スコアと結合される。ステップ1125で、すべての対が完了しているかどうかが判断され、完了していない場合、プロセスはステップ1105に戻り、ソースオントロジー及びターゲットオントロジーの次の対を選択できるようにし、マッチングスコアが計算される。いったんオントロジー用語のすべての潜在的な対、又はオントロジー用語、及びデータベースのマッチング概念がチェックされると、セマンティックマッチャモジュールはステップ1130で最良のマッチを選択し、次いでこれの表示を提供できる。
【0160】
したがって、上述されたプロセスによって、ユーザが、オントロジーと対話し、対象のオントロジー用語を選択し、これを使用して、それぞれのオントロジーに従ってデータベース又はXMLファイルのようなデータストアに記憶されたコンテンツと対話するためのソフトウェアを生成することを可能にすることが理解される。ユーザは、さらにオントロジーを調査し、次いでプルーナモジュールを使用し、これを切り詰めることができ、ユーザが対象のコンテンツと対話できるようにする最小限度のオントロジーを決定できるようにする。切り詰められたオントロジーは、次いで別の切り詰められたオントロジーと合わせることができ、これによりこれはその間のマッピングを定義するために使用することができ、このことはソースデータ構造及びターゲットデータ構造を有するデータストア間でデータを転送するために同様に使用できる。
【0161】
より詳細な例がここで説明される。この例のために、オントロジーは以下の通りに定義される。
・「インヘリタンス」関係とも呼ばれるサブクラス/スーパークラス関係性を使用し、いくつかが互いに関係付けられている、クラス又はオブジェクトとも呼ばれる関係する概念のセット。例は、インヘリタンスを表示する「組織」、「企業」、「クラブ」、及びインヘリタンスを表示しない「ランドマス」、「性別」、「人」である。
・クラスを関係付けるための追加の機構を提供するオブジェクトプロパティ。例えば、「に位置する」「性別を有する」。これらの関係性は、概念、関係性、及びプロパティの推論を可能にする。
・各クラスと関連付けられたデータプロパティのセット。例えば、クラス「人」は氏名、敬称、誕生日、及び性別のデータプロパティを有することがある。
・先行するプロパティのいずれかの間の公式の関係性を提供する公理のセット。例えば、「人が『Mrs』の敬称を有する場合、性別は女性でなければならない」、又は「2つのオブジェクトが同じ一意の識別子を有する場合、該オブジェクトは同じオブジェクトである」。これらの公理は、概念、関係性、及びプロパティのさらなる推論を可能にする。
【0162】
オントロジーはRDFS、XML、DAML、OIL、N3、及びOWLのようないくつかの言語で記述できる。これらの言語はOWL−Lite又はOWL−DLのような異なる方言を有することがある。機能性の視点から、該言語は複雑な関係性及び公理を管理し、記述する能力において異なる。
【0163】
オントロジーは数十万の概念を含んでよい。ユーザはこれらの概念のサブセットに関心があることがある。このサブセットは、以下からであることがある。
・単一のオントロジー
・複数の重複するオントロジー、又は
・複数の不同等のオントロジー
【0164】
ターゲットオントロジーのいくつかの概念は事前に定義されないことがあり、ソースオントロジーのいずれにも存在しないことがある。係る場合、ユーザは手作業で欠けている概念を追加する必要がある場合がある。必要とされるサブセットは、開始概念及び終了概念の両方又はどちらかを有することがある。
【0165】
説明のために、2つのきわめて簡略な例のオントロジーが
図12A及び
図12Bに示される。これらはインデックスを付けるプロセス、セマンティックマッチングを切り詰めるプロセス、及びアラインメントのプロセスを示すために活用され、制限的となることを目的としていないことが理解される。
【0166】
これらの例では、2つのタイプの関係性、つまり階層的に接続されている関係性及び階層的に接続されていない関係性がある。これらの例では、階層的に接続されているクラスは、スーパークラスからサブクラスを指す実線によって階層的に接続されている実線の楕円により表される。各サブクラスはそのスーパークラスのすべてのプロパティを継承する。破線の楕円として示される、非階層的に接続されるクラスのセットは、ここでは破線として示され、オブジェクトプロパティという名前の線によって任意のクラスに接続される。各クラスはデータプロパティのセットを有し、データプロパティのいくつかは説明のために表1に示される。
【表1】
【0167】
オントロジーが類似した概念を示すが、いくつかの相違点があることが理解される。
・いくつかの概念は異なった名前を有する。『当事者』は『クライアント』と同一であり、『人』は『個人』と同一であり、『メンバー』は『メンバーシップ』と同一であり、『雇用』は『職歴』と同一であると言うことができるのか。
‐『雇用』を除く各ケースで、クラスはそれぞれ同一のデータプロパティを有するため、該クラスがほぼ同一であると想定できる。数学的には、同一性(C
1i,C
2i)〜1.0であり、ここでC
1iは第1のオントロジーからの概念であり、C
2iは第2のオントロジーからの概念である。
・いくつかの概念は異なるデータプロパティを有する。『雇用』及び『職歴』の場合、概念はなんらかの同一のデータプロパティ、及び『職歴』だけに適用する1つの『に報告する』を有する。事実上、『職歴』は、『開始日』及び『終了日』が『役割』を参照するのか、それとも『に報告する』データプロパティを指すのかに関して不明瞭であるので、『職歴』は第4の正規形に違反する。
・いくつかの概念は異なるオブジェクトプロパティを有する。『雇用』は1つしかオブジェクトプロパティを有さないのに対し、『職歴』は『人』を有する2つのオブジェクトプロパティを有する。オントロジー2では、『株式』が『企業』を『クライアント』と関連付けるのに対し、オントロジー1では『株式』は『企業』を『個人』と関係付ける。
・いくつかの概念は1つのオントロジーに存在しない。『上場企業』はオントロジー2に存在するが、オントロジー1には存在しない。
【0168】
これらの例のため、システムは
図13に示される機能性を実行し、これらはそれぞれのモジュールによって実装される。この点で、モジュールは以下を含む。
・ETL(抽出−変換−ロード)モジュール1300。これは、構造化データソースの中でコンテンツを抽出し、変換し、ロードする。これは、以下を含んだ2つのサブ構成要素を含む。
‐指定されたオントロジーを介して、又はオントロジーがない場合は、プロセッサがデータを記述するために作成する推測上のオントロジーを介してのどちらかでソースデータを抽出するプロセッサ1301。プロセッサは、クラウドに又はデータと同じマシンに又はメッセージング、ODBC、https、SOAP、若しくは任意の同等なプロトコルを介してデータにアクセスできるマシンに配備できる。プロセッサの複数のコピーは、複数のソースからデータを入手するために配備できる。
‐多様なプロセッサからデータを収集し、ターゲットオントロジーにソースオントロジーをマップするオーケストレータ1302。クエリーはターゲットオントロジーを使用し、作成され、同等なソースオントロジークエリーに変換され、ターゲットオントロジーを使用し、データを戻すことを可能にする。
・ブラウザ1311、エディタ1312、及びジェネレータ1313を含んだオントロジーブラウザモジュール1310。これは画面、及びそれらを管理するために関連付けられたソフトウェア及びデータを生成し、このことによってユーザはオントロジー及びオントロジーによって記述されるデータをブラウズし、編集することができる。これらの画面は2つの段階で表示される。第1の段階は生成プロセスの間である。この段階で、画面は動的に作成され、ユーザがどの機能が生成されるべきかを選択できるようにするために追加の情報を表示する。第2の段階では、画面はハードコードされ、生成のために指定された情報だけしか表示しない。
・オントロジーインデクサモジュール1320。インデクサモジュールはすべてのクラス名、データプロパティ名、及びオブジェクトプロパティ名の1つ又は複数のオントロジーでリンクされたインデックスのセットを作成する。さらに、インデックスは、意味論的に同等な機能からを加えた、ソースオントロジーから生じる意味論的に同等な用語(例えば、同義語及び同音異義語)を含む。
・オントロジープルーナモジュール1330。プルーナモジュールはオントロジーを採取し、ユーザがどのクラス、データプロパティ、オブジェクトプロパティ、及び公理を保持することを希望するのかを指定できるようにする。保持されたものを使用し、プルーナモジュールは、オントロジーに定義された相関的な及び公理の整合性が維持されていることを確かめるためにチェックする。
・オントロジーアライナモジュール1340。アライナモジュールは2つ以上のオントロジーを採取し、いくつかの技法を使用して、多様なオントロジーの概念を、互いと又は指定されたターゲットオントロジーのどちらかと合わせる。該技法は、意味論的に類似する概念を見つけるためにインデクサモジュールによって作成されたインデックスを活用する。各データプロパティ及び概念はセマンティックマッチャモジュールを使用して比較される。セマンティックマッチャモジュールはオントロジー構造及びデータプロパティに基づいてマッチングを精緻化する。
・セマンティックマッチャモジュール1350。マッチャモジュールは2つの用語又は用語の2つのリストを比較して、それらが例えば医学又は工学等、指定された文脈の中で数学的に定められた程度の意味論的等価を有するかどうかを決定する、又は別の例では、単一の用語を所与として、指定された文脈に基づいて同義語、同音異義語等のリストを提供する。
【0169】
通常、オントロジーは例を除きデータインスタンスを有さない。ただし、オントロジーは2つの方法の内の1つで既存のデータにマッチさせることができる。
・オントロジーは既存のデータから構築される。例えば、リレーショナルデータベースは、相関的なエンティティ(テーブル)がオントロジーのクラスとして定義され、相関的な関係性がオントロジーのオブジェクトプロパティとして定義され、相関的な属性(列)がオントロジーのデータプロパティとして定義されることによって『推測上の』オントロジーに自動的に変換できるだろう。いくつかのオントロジーの公理は、相関的な参照整合性の制約から引き出すことができるだろうが、大部分の公理は手作業で追加又は無視する必要がある。この推測上のオントロジーは、次いでメタデータを追加するために既存の豊富なオントロジーと合わせられてよい。
・データにオントロジーをマッチさせること。これを行うためのいくつかのツールがある(例えば、S−マッチ)。
【0170】
データフォーマットとは関わりなく、推測上のオントロジーは、ソースデータ構造及び(メタデータが存在する場合)メタデータに適切な方法を使用し、ソースデータから自動的に生成できる。この推測上のオントロジーは、オントロジーエディタを使用し、手作業で更新されてよい、又は生成された通りに使用されてよい。どちらの場合も、推測上のオントロジーは次いでアライナモジュールを使用し、(ETLモジュールプロセッサによって呼び出される)主題領域のオントロジーと、及び(ETlモジュールオーケストレータによって呼び出される)ターゲットオントロジーと合わせられる。
【0171】
ターゲットオントロジーは、ターゲットオントロジーが、所望される概念の整合性を保証するために必要とされるそれらの概念、公理、プロパティ、推論、及び起源の詳細を加えた所望された概念だけを含むことを保証するために、プルーナモジュールを使用して切り詰められてよい。
【0172】
すべてのこれらのツールは、2つの意味論的な概念がマッチするのかどうかをチェックするためにセマンティックマッチャモジュールによって、並びに多様なソースオントロジー及びターゲットオントロジーでマッチする概念及び概念構造を探すためにインデクサモジュールによって提供されるサービスを利用する。
【0173】
それぞれのモジュールの例は、ここでさらに詳細に説明される。
ETLモジュール
【0174】
ETLモジュールは、メタデータレポジトリを使用することなく、すべてのETLツールに共通のデータの抽出、変換、及びロードの機能を実行する。ETLモジュールは、データ構造を決定するためにソースデータと関連付けられたメタデータを使用することによって、及びその後オントロジーにこのメタデータをマップすることによってこれを行う。ETLモジュールは、さらにデータに意味を割り当て、したがってデータをマップし、変換する際に高レベルの自動化を達成できる。
【0175】
メタデータレポジトリの必要性を排除することは、プロセスの柔軟性がそれを維持するために必要とされるヒューマンインタフェースにより制約されないことを意味する。新しいデータフォーマットおよび技術は自動的に収容できる。
【0176】
高レベルで、実行される2つの主要なプロセスがある。これらのプロセスを実行するためのコードは、プロセッサ及びオーケストレータと呼ばれる。プロセッサの多数のコピーは任意の定められた場所でデータを読み取るために配備されてよい。プロセッサはデータと同じ装置上に同一場所に配置できる、又はプロセッサはクラウドに位置し、リモートアクセスプロトコルを使用してデータにアクセスできる。プロセッサはソースからメタデータを抽出し、そのメタデータから推測上のオントロジーを作成する。プロセッサは次いでなんらかの初歩的なデータ変換を実行し、オーケストレータにデータ及びオントロジーを渡す。
【0177】
オーケストレータは多様なプロセッサから入力を受け取り、それらのオントロジーを合わせる。オーケストレータは次いで合わせられたソースオントロジーからユーザによって定義されたターゲットオントロジーにマッピングを適用する。ユーザはここで多様なソースオントロジーからのすべてのデータを確かめることができる。データは、以下により詳細に説明されるように、ターゲットオントロジーに対して特定のクエリーを指定する又はクエリーを作成するためにオントロジーブラウザを使用するかのどちらかによって抽出できる。
【0178】
この結果を達成するために必要とされる多様なソフトウェア構成要素を含んだETLモジュールソフトウェアスタックの例が
図14Aに示される。一方、
図14Bは、いくつかのプロセッサがネットワーク配置を介して単一のオーケストレータに結合される配備例を示す。
【0179】
プロセッサは、不同等のデータソースからデータを読み取り、該データをRDFデータとして露呈し、該データを記述するために推測上のオントロジーを作成することを担う。高レベルの機能は以下の通りである。
・メタデータ及びマッピングファイルを追加するによって不同等のデータソースを登録する。
・構造化されていないデータをRDFに変換する。
・トリプルストアにRDFをロードする。
・推測上のオントロジーにマッピングファイルを変換する。
・ソースごとにSPAQRL端点を露呈する。
【0180】
オーケストレータは、ターゲットオントロジー及びマッピングデータを読み取り、要求及び応答の変換を調整することを担う。高レベルの機能は以下の通りである。
・ターゲットオントロジーを登録する。
・マッピングファイルを読み取り、マッピングファイルにインデックスを付ける。
・ターゲットからのSPARQLクエリーをマップされたソース語彙に変換する。
・ソース語彙からの応答をターゲット語彙に変換する。
・変換規則を記憶する。
・ターゲットのためにSPARQL端点を露呈する。
オントロジーブラウザモジュール
【0181】
オントロジーブラウザモジュールは、ユーザがオントロジーをブラウズし、オントロジーによって定義されるデータのクエリーを行い、オントロジーによって定義されたデータにインスタンスデータを追加できるようにするために画面のセットを自動的に作成するために機能する。このようにして作成された画面は、次いで完全なスタンドアロンアプリケーションとして、オントロジー及び作成ツールとは無関係に使用できる。
【0182】
この点で、現在、リンクされた概念を定義するため、及びデータにアクセスするためのオントロジーの使用はおもに研究者及び専門のオントロジストに制限されている。この理由は、ユーザがオントロジーをブラウズし、次いで構造化データストアに記憶されたデータとの対話を誘導するためにこれを使用できるようにするための簡略な機構がないことである。したがって、オントロジーの専門知識をほとんど又は少しも有さない人が簡略で分かりやすい方法でオントロジーのすべての詳細にアクセスできるようにするツールを提供することによって、これは、ユーザが、簡略化されたクエリー構築機構を使用するオントロジーによって記述されたデータを選択し、検査できるようにする。ユーザは、まだ実行中である元のオントロジーに存在するすべての制約及び推論とともにデータにレコードを追加できるようになる。最終的には、ユーザは本部の職員による使用に適切なスタンドアロンアプリケーションとして生成された画面を配備できるようになる。
【0183】
データを検査するとき、ユーザはいくつかのフォーマットでデータを表示できる。基本的なデータは、例えばRDF Triplesとして記憶できる。これらはリレーショナルテーブル、スプレッドシート、名前‐値の対、又はユーザによって定義された任意のフォーマットとして表示できる。
【0184】
オントロジーブラウザモジュールは、スタンドアロンツールとして、又は第2に(Protegeのような)既存のオントロジーツールに対するプラグインとしてのどちらかで2つの主要な形式で存在することがある。どちらの形式でも、オントロジーブラウザモジュールは選択されたオントロジーに特有のアプリケーションを生成できる。
【0185】
生成されたアプリケーションは、実行されている元のオントロジーに定義されたすべてのデータ規則とともに、レコードにアクセスする、レコードを更新する、レコードを削除する、及びレコードを追加するための完全な機能コードセットとしてオントロジーなしに使用できる。
【0186】
したがって、オントロジーブラウザモジュールは、画面並びに関連付けられたソフトウェア及びデータを生成してそれらを管理し、ユーザがオントロジー及び該オントロジーによって記述されるデータをブラウズし、編集できるようにする、コンピュータプログラムで実装できるプロセスのセットを提供する。これらの画面は2つの段階で現れる。第1の段階は生成プロセスの間である。この段階では、画面は動的に作成され、ユーザがどの特徴が生成されるべきであるのかを選択できるようにするための追加の情報を表示する。第2の段階で、画面はハードコードされ、生成のために指定された情報だけしか表示しない。
【0187】
画面の簡略な説明は以下の表2に提示される。
【表2】
【0188】
これらの画面は、単一の画面が各種の画面に使用されるような一般的な形式で生成せれずに利用できる。画面レイアウトは、オントロジーコンテンツによって動的に決定される。
【0189】
一般的な画面はユーザフレンドリではなく、カスタマイズできない。したがって、プロセスにより、ユーザは、ルックアンドフィールがカスケード式シート、テンプレート、アイコン、及びユーザ供給パラメータのような機能を使用しパラメータ的に事前に決定することができる画面の完全なセットを生成できるようにする。
【0190】
ブラウザモジュールの配置例は
図15に示される。
【0191】
この点で、ブラウザモジュール1310はオーケストレータ1302からのターゲットオントロジー1501又はユーザによって定義される任意のオントロジーを採取する。ブラウザモジュール1310は、ユーザがオントロジーをブラウズすること、及びオントロジーのどの構成要素をスタンドアロンアプリケーションの中に生成するのかを指定することを可能にする画面1502のセットを表示する。
【0192】
ブラウザモジュール1302は、ターゲットオントロジーに指定された構造及び規則を使用してデータを管理するためのコンピュータ画面1504のセットを含んだスタンドアロンアプリケーション1503を生成する。アプリケーションは、純粋にオントロジー又はデータブラウザモジュールのようないくつかのモードで、又は完全機能データ追加、更新、及び削除アプリケーションとして生成できる。この場合、ユーザはここでオントロジーによって記述されたデータを管理するための完全なアプリケーション1503を有する。
【0193】
OWLファイル又はRDFファイルを使用するオントロジーは、ウェブページを生成し、情報を記憶するための対応するデータベース1505を作成するのに十分な情報を有する。RDFファイル又はOWLファイルはオントロジストによって、彼らの詳細なビジネス知識に基づいて作成された可能性がある。
【0194】
このようにして、ブラウザモジュール1310は、ユーザがクエリーを行う又はトランザクションデータを入力するためのアプリケーション1503を作成する。OWLファイル又はRDFファイルは、アプリケーションカスタマイズファイル、データベース接続詳細、及びアプリケーションを作成するために必要とされる任意の他のメタデータとともにブラウザモジュール1310の中に送られる。
【0195】
ブラウザモジュール1310は、例えばHTML5、JSP、JSF、又は任意の類似した技術を使用し、ウェブページを作成できる。オントロジーのクラスごとに、ブラウザモジュール1310はウェブページを作成し、そのクラスと関連付けられたプロパティは該ページの中のフィールドとして作成される。アプリケーション1503は、生成されたウェブページとデータベース1505との間で橋渡しをする。それは、ウェブページからデータベース1505にデータを持続するためのプロセス、データベース1505からデータを抽出するためのプロセス、データベース1505でデータにクエリーを行うためのプロセス、及びウェブページにデータを表示するためのプロセスを実行する。ブラウザモジュール1310は、次いでユーザによって供給されるメタデータに指定されるタイプのデータベースを作成し、ロードするためのデータベーススクリプトを作成する。これは、リレーショナルデータベース(RDBMS)、Triple Store、NOSQL、NewSQL、Graph Database又は任意の他の認識されているデータベースであるだろう。
【0196】
ブラウザモジュールの動作は、ここでより詳細に説明される。この点で、オントロジーをブラウズするために、ユーザは以下のオントロジー用語を見つけることができなければならない。
・概念
・データプロパティ
・オブジェクトプロパティ、及び
・推論
【0197】
これは、2つの機構、つまり
・インデクサモジュールに関して以下に説明されるように、名前で係る任意のオントロジー用語を検索するためにオントロジーから上記オントロジー用語にインデックスを付けるための方法、及び
・いったん特定のプロパティが選ばれると、すべての関係するデータ及びオブジェクトプロパティを表示するための方法
【0198】
これを達成するために、ユーザは当初、表2に記載された『ランディング画面』でブラウズされるオントロジーを選択する。オントロジーはファイル又はウェブアドレスから選択できる。いったんオントロジーが選択されると、オントロジーのインデックスを使用してクラスリストが生成される。このリストは各クラスの名前及び記述を表示する。より大きいリストの場合、リスト検索機能が提供され、ユーザがクラス名又はクラス説明の一部によって検索できるようにする。データプロパティに対して検索することも可能である。どちらの場合も、検索はそのデータプロパティを含むクラスのリストを返すだろう。
【0199】
ユーザは、次いで対象のクラスを選択し、このことが、以下に示すようにフレーム又はタグ付きサブ画面の形式をとる4つの構成要素を含んだ『クラス画面』を表示させる。
・データプロパティ構成要素。各データプロパティの名前はフィールドの脇に説明ボックスとともにリストフォーマットで表示される。フィールドの脇の情報アイコンをクリックすると、すべてのフィールド属性及びそのフィールドに関係するあらゆる公理が表示される。任意選択で(クリック可能)、親クラス/スーパークラス又は関係クラスの1つ又は複数のクラスのデータプロパティも表示されてよい。
・親クラス構成要素/スーパークラス構成要素。これは、それに対するクリック可能なリンクとともに、表示されたクラスの親クラス/スーパークラスの名前及び説明を表示する。このリンクをクリックすると、ブラウザモジュールはカレントクラスのParentを表示する画面を表示する。
・子クラス構成要素/サブクラス構成要素。これは、サブクラス関係性を活用するクリック可能リンクとともに表示されているクラスのサブクラスの名前及び説明を表示する。これらのリンクの1つをクリックすると、ブラウザモジュールは子クラス/サブクラス又はカレントクラスのサブクラスを表示する。
・オブジェクトプロパティ構成要素。これは、それぞれオブジェクトプロパティを使用するクリック可能リンクとともに、選択されたクラスの関係するクラスを表示する。これらのリンクの1つをクリックすると、ブラウザモジュールはカレントクラスに関係するクラスを表示する。
【0200】
クラス画面で『検索』オプションを選択することによって、クエリーはそのクラスのすべてのデータインスタンスを返すために発行される。これは、クラスのインスタンスごとに1行を有するリストとして表示される。特定の行をクリックすることによって、その行はオントロジークラス画面に類似したフォーマットされた画面として表示される。一例では、返されるデータは、結果にフィルタをかけるだろうクエリーを実行することによって制限されてよい。係るクエリーの構築及び使用はここでさらに詳細に説明される。
【0201】
この点で、ユーザに返されるデータにフィルタをかけることは、ユーザから返されるデータのユーザの正確な要件を、フィルタの形で取り込み、次いでそのフィルタに基づいてクエリーを生成することによって達成される。フィルタは、クラス画面のデータプロパティフィールドの中に値又は式を入力することによって構築される。例えば、どのくらい多くの株式をジョン・ドウが所有しているのかを突き止めるために上述されたサンプルオントロジーを使用すると、以下のステップが必要となるだろう。
・クラスリスト画面から『個人』クラスを選択する。
・データプロパティフィールドで、名に『ジョン』を、苗字に『ドウ』を入力する。
・『個人』クラス画面のオブジェクトプロパティフレームから、『株式』クラスを選択する。
・『検索』オプションを選択する。
【0202】
株式クラス画面で『検索』オプションを選択することによって、ジョン・ドウによって所有されるものだけを除いたそのクラスのすべてのデータプロパティを返すためにクエリーが発行される。フィルタは、生成されたアプリケーション1503によってSPARQL、又はデータベース1505に記憶されたデータに対して実行できる、機能的に同等なクエリーに変換される。
【0203】
ブラウザモジュール1310がアプリケーション1503を生成できるようにするために、以下のプロセスが実行される。
・任意選択で、
‐企業名、ロゴ等
‐生成されるアプリケーションの名前
‐作成されるデータベースの名前及びタイプ
‐データベースの場所
‐生成されるアプリケーションのための命名及びコーディングの仕様及び規格。これはスタイルシート、テンプレート、Javaスクリプト、及び他の表示仕様を含む。
‐クラス及びアクションに関連付けられたアイコン
‐ヘルプデスクの場所及び連絡先詳細
‐エラー及びログメッセージの冗長
のようなアイテムを含む、生成されるアプリケーションのためのメタデータを構成する。
・『ランディング画面』では、生成元のオントロジーを選択し、『クラスリスト』画面はブラウザモジュール1310によって表示されている。
・クラスリスト画面で、『g』で生成される各クラスにタグを付ける。
・生成される各クラスを選択し、ブラウザモジュール1310に『クラス表示』画面を表示させる。
・クラス表示画面で、すべてのフィールドは当初『g』にタグ付けされる。各データプロパティフィールド、各スーパー/サブクラスリンク、及び生成される各オブジェクト・プロパティ・リンクを見直し、タグが必要とされない場合はタグを削除する。
・デフォルトで、すべてのフィールドは検索可能である(つまり、フィルタに追加できる)。データプロパティフィールドに『ns』タグを追加することは、そのフィールドが生成されたアプリケーションでは検索不可となることを意味する。
・スーパー/サブクラスリンクフィールド及びオブジェクト・プロパティ・リンク・フィールドのそれぞれに追加のフィールドタグ位置がある。これらのフィールドに『I』タグを設定することによって、それはリンクされたクラスから生成された画面にデータフィールドを生成する。これらのフィールドは更新不可フィールドとして表示される。
・リンクされたクラスからのあらゆるフィールドが表示されなければならない場合、リンクされているクラスを選択し、『I』で適切なフィールドにタグを付ける。
・クラス表示画面に戻り、それが実行されていない場合は、各公理説明からタグを削除する。それ以外の場合、生成されたアプリケーションで整合性の損失がある可能性があるので、公理の前にフィールドを取り除くことは重要である。
・必要とされるクラスが生成のために選択されるまでステップ3〜9を繰り返す。
・クラスリスト画面に戻り、『アプリケーションの生成』オプションを選択する。
・アプリケーションはブラウザモジュール1310によって生成され、アプリケーションメタデータに指定される場所に保存される(ステップ1)。データベース作成及びロードのスクリプトが作成される。これらのスクリプトを実行してアプリケーションを使用できるよう準備する。
【0204】
したがって、上述されたブラウザモジュール1310は、ユーザがオントロジーをブラウズし、オントロジーと対話し、次いで特定のクラス及びデータプロパティを選択することによって、選択されたクラス及びデータプロパティに従ってデータストア1505に記憶されたデータと対話するために使用できるアプリケーション1503を生成できるようにする。
オントロジーインデクサモジュール
【0205】
インデクサモジュールは1つ又は複数のオントロジーの集合体で使用される用語のインデックスのセットを自動的に作成し、ユーザがオントロジーをブラウズし、オントロジーによって定義されたデータのクエリーを促進させるのを支援する。これらのインデックスは、オントロジーのアラインメント、切り詰め、及びブラウズを支援するために他のモジュールによって使用される。
【0206】
インデクサモジュールは、すべてのクラス名、データプロパティ名、及びオブジェクトプロパティ名のリンクされたインデックスのセット、並びに関係性を作成することによって1つ又は複数のオントロジーにインデックスを付ける。インデックスは、意味論等価機能から加えた、ソースオントロジーに由来する意味論的に同等な用語を含む。
【0207】
インデクサの機能性の例は、ここで
図16を参照して説明される。
【0208】
この例では、インデクサモジュール1320は、画面1602のセットを介して又はプロセッサ1301によって、オーケストレータ1302からのオントロジー1601、又はユーザによって定義されたあらゆるオントロジーを受け取り、すべてのクラス名、データプロパティ名、及びオブジェクトプロパティ名のインデックス1603を作成する。画面は、上述されたように、ブラウザモジュール1310によって生成されてよいことが理解される。
【0209】
各オントロジー用語はインデックスを付けられるので、概念マッチングデータベース1604を使用し、セマンティックマッチャモジュール1350から入手されるそのアイテムの同義語にもインデックスが付けられる。オブジェクトプロパティの場合、オブジェクトプロパティによってリンクされる概念はインデックスで相互参照される。
【0210】
上記の例のオントロジーに基づいた概念−データプロパティ−オブジェクトプロパティ(CDO)インデックスのサンプルが表3に示される。これが説明のためのインデックスの表示形式であるが、実際にはインデックスは、以下により詳細に説明されるように、より複雑なインデックス構造に記憶され得ることに留意されたい。
【表3】
【0211】
同義語を包含しなくても、これはきわめて有用なインデックスである。例えば、2つの異なるオントロジーで同じ名前を有するあらゆる概念は、潜在的に合わせられてよい。アライナモジュールは係る各対を採取し、第1のそのオブジェクトプロパティ、及び次いでそのデータプロパティを採取するだろう。
【0212】
例えば、概念『株式』は、概念Ont 1.7及びOnt 2.10として両方のオントロジーに現れる。このレベルで、それらは類似しているように見え(名前は同一であるため、S
1.7,2.10=1.0)、インデクサモジュールの観点から、それは十分である。
【0213】
追加の分析は、以下により詳細に説明されるアライナモジュールによって実行されるだろう。オブジェクトプロパティを調べることによって、アライナモジュールは、オブジェクトプロパティが以下の表4に示されるように異なることに気付くだろう。それらは数及びオブジェクトプロパティ名でマッチするが、関係する概念の1つは異なり、S
1.7,2.10=0.8571を示す。データプロパティを調べることによって、それらが同一のデータプロパティを有し、S
1.7,2.10=1.0を示すことに気付く。
【0214】
アライナモジュールが上記計算を実行したソース情報は、インデクサによって作成されたインデックスですべて利用可能である。
【表4】
【0215】
セマンティックマッチャモジュールを使用する他の概念の追加の分析は、「個人」が「クライアント」のサブクラスであることを示し、したがってS
1.7,2.10=0.8‐>0.95を示すだろう。オントロジー2は、オントロジー1よりもより一般的なモデルである。この類似性の範囲は、2つのオントロジーの株式の間のアンカー点を確立するには十分である。S
i,jの計算はアライナモジュールによって実行される。
【0216】
概念間の関係性は、概念C1がどのように概念C2に関連するかを示す表5に表示形式で示される概念対概念(C2C)テーブルで抽出される。
【表5】
【0217】
インデックスは、上記テーブルを異なるシーケンスにソートすることに対応する複数のフォーマットで構築される。アライナモジュールは、インデックスに対してSQLクエリーを実行することによってそのタスクの多くを実行できる。
【0218】
インデックス構造例は、ここでより詳細に説明される。この点で、セマンティックマッチャモジュールを使用し、語根又は見出し語が同義語セットごとに決定される。セマンティックマッチャモジュールは、文脈が最適結果を得るために設定されることを必要とする。一般に、いくつかのオントロジーに対してインデックスを構築するとき、各オントロジーの文脈は既知で狭く、対象の他のオントロジーに関係付けられる。
【0219】
インデックスの最終セットは、以下に要約されるマルチステッププロセスで作成される。
・インデックスが付けられているオントロジーからのすべての概念、オブジェクトプロパティ、及びデータプロパティを抽出する。
・表3及び表5に示されるフォーマットを用いて一時テーブル(CDO及びC2C)の中にこれらの値をロードする。これらのテーブルは、インデックスを付けられているオントロジーごとに空で作成又は再作成される。
・オントロジーはセマンティックマッチャモジュールにロードされる。これは、オントロジーに含まれるあらゆる定義を使用し、それらを、セマンティックマッチャモジュールにすでにロードされている、又はWordNetのような公のディクショナリから利用できるそれらの定義と比較することによってあらゆる単語を意味論的に調べる。文脈はオントロジー(例えば、医療/外科、又は地理位置)によって供給される。
・セマンティックマッチャモジュールは概念Id、つまり同義語のあらゆるファミリの見出し語又は語根に対応する一意の数を定義する。
・同義語テーブルは、次いで概念Idを有する上述された一時テーブルの用語にマッチする用語をロードされる。
・セマンティックマッチャモジュールによってインデックスを付けられているオントロジーの用語ごとに識別されるすべての同義語も同義語テーブルにロードされる。
・最終的なCDOインデックスは、次いでCDOテーブルの用語ごとに適切な概念Idを置換することによって作成される。
・最終的なC2Cインデックスは、次いでC2Cテーブルの用語ごとに適切な概念Idを置換することによって作成される。
・インデックスの一時(表示バージョン)は削除される。
・インデックスを付けられる次のオントロジーは、次いですべての上述のステップを繰り返すことによってロードされる。
・すべての関連性のあるオントロジーにインデックスが付けられるとき、セマンティックマッチャモジュールに対する同義語テーブルの最終的な通過は、あらゆる新しい同義語がロードプロセス中に識別される場合に実行される。
・インデックスは適切なデータベース構造にロードされ、性能について調整される。通常、これは、オントロジーインデックステーブルに対して複数のデータベースインデックスを作成することを含む。
【0220】
ツールと又はインデックスとの直接的なユーザ対話がないことが理解される。代わりに、インデクサモジュールは他のモジュール、ツール、又は構成要素によって使用されるサービスを提供する。
【0221】
本インデックスが提供できるサービスのいくつかは、以下を行う強化された能力を含む。
・オントロジーの選択から最良のオントロジーを選ぶ。
・複数のオントロジーを合わせる又はマージする、
・オントロジーをナビゲーションする、
・同意語を抽出する、
・セマンティックマッチングを実行する。
オントロジープルーナモジュール
【0222】
プルーナモジュールは、ユーザが、ユーザの対象のオントロジー用語に関連するデータ又は公理を含む構成要素を不注意に削除することによって整合性を失うことなく、大きなオントロジー又は合わせられたオントロジーの集合体を採取し、それらをユーザのニーズにとって対象のクラスに切り詰めることを可能にするように設計されている。
【0223】
例えば、解剖学の基礎的なモデル(FMA)のような大きい参照オントロジーを構築し、活用するときに問題が生じる。この点で、FMAは、本来はごく一般的でもある(例えば、アプリケーションに特有ではない)が、非常に大きくきわめて詳細である。また、FMAは、適切なモデリング原則に対するその順守においても厳格である。これらの基準はともにFMAを多くの可能性があるアプリケーションに与える。ただし、これらの基準は、任意の特定のアプリケーションによる使用にFMAを扱いにくくする(つまり過剰に大きい又は詳細又は原則に基づかせる)。
【0224】
結果として、FMAの潜在的なユーザは以下の基本的な形の要求、つまり「本当にFMAを気に入っているが、FMAは自分たちのニーズにとっては大きすぎる又は詳しすぎであり、実際にはFMA全体のサブセットに基づいた何かしか必要としていない」を有していた。分割のための基礎は、アプリケーションごとに変化したが、例は以下を含む。
・部位ベース、つまり脳又は腹部
・システムベース、つまり心臓血管系又は骨格系
・粒度ベース、つまりx線に見えるアイテム又は細胞成分及び亜細胞成分のみ
【0225】
所望されるオントロジー派生物は概して上記のもののようなサブセット抽出に基づいていたが、該派生物はアプリケーションの必要性により見合うために多くの場合さらに操作された(つまり、追加されたクラス、削除されたクラス、削除されたプロパティ、追加されたプロパティ等)。
【0226】
係る要求は、以下の3通りの内の1つで処理できるだろう。
・一般的な解決策ではない、それぞれの新しい要求に特有な手続き型コードを作成すること、
・定義及びソースオントロジー(複数の場合がある)からアプリケーションKBを生成できるだろうエンジンだけではなく、所望されるアプリケーション(KB)(必ずしも適切なオントロジーではない)を定義するための言語も必要とする、オントロジーに対するビューを作成すること。これはプロパティの追加及び削除に問題を有する。
・よくモデル化されたサブセットオントロジーを送達するためにオントロジーを切り詰めること。
【0227】
このようにして、関連性、性能、管理容易性、及びテスト容易性のような切り詰められたオントロジーに多くのニーズがあり、これらの要件は、オントロジーの専門知識をほとんど又は少しも有さない人が不必要な概念を安全に切り詰めることができるようにするツールによって満たされるべきである。さらに、その人は簡略化されたクエリー構築機構を使用することによって、オントロジーにより記述されるデータを選択し、検査できる必要がある。次いで彼らはその削除に取り組む前にオントロジーから構成要素を削除することの影響を研究し、次いで切り詰められたオントロジーを新しいオントロジーとして「保存できるだろう。
【0228】
例えば、SNOMED−CTは、臨床文書で使用される医学用語の大きな医学オントロジーである。SNOMED−CTは、医学用語間の約1,400,000の関係性を有する300,000超えの概念から成る。概念は19の機能領域に分割される。研究者にこれらの領域の1つ、例えばメンタルヘルスにしか関心がない場合がある。他の18の領域を削除すると、医療健康用語と薬剤用語との間の関係性の多くが壊れるだろう。研究者がこれらのアイテムの保持を希望する可能性があることは明らかである。手作業でこのようにすることは既存のツールを用いた何か月もの作業を必要とし、エラーを発生しやすいであろう。
【0229】
別の例として、ユーザはいくつかの既存のソースオントロジーの構成要素から新しいオントロジーを作成し、次いでそれら独自の追加を追加することを希望することがある。結合されたオントロジーは、削除される必要があるだろう多くの関連性のない概念を含むだろう。例えば、配達ルートを決定し、最適化できるようにするオントロジーを作成するために地理位置オントロジーと輸送オントロジーを結合する宅配便会社。これらのオントロジーを結合し、空港で旅程を開始及び停止する飛行機、港での船舶、並びに駅での列車のような公理を追加することによって、彼らのビジネスモデルであらゆる概念をカバーする情報ベースを構築することが可能になるだろう。ただし、各ソースオントロジーの多くは必要とされないだろう。
【0230】
切り詰められたオントロジー定義は、完全なオントロジーに対するビューの代わりに使用され得る。このビューは、アクセス制御、範囲管理等のようないくつかの目的に使用できるだろう。
【0231】
これを達成するために、プルーナモジュールは、以下の表6に提示される機能を実行するためにブラウザモジュールと併せて動作する。
【表6】
【0232】
プルーナモジュールは、ユーザが、選択したオントロジーのどのクラス、データプロパティ、オブジェクトプロパティ、及び公理を保持することを希望するのかをユーザが指定できるようにするためにブラウザモジュールと対話する。保持されたものを使用し、プルーナモジュールは、オントロジーで定義されている相関的な及び公理的な整合性が維持されていることを確かめるためにチェックする。
【0233】
別のバージョンでは、ユーザは、切り詰められたオントロジーで保持されなければならない、単一のオントロジーの中の2つの必須概念を指定してよい。本発明は、次いでクラス間のすべての概念関係性をマップし、指定された概念を分析するために必要とされるすべてのクラスをタグ付けする。追加のクラス、オブジェクトプロパティ、及び公理は次いで切り詰められたオントロジーの整合性を保証するためにソースオントロジーから含まれる。
【0234】
別のバージョンでは、ユーザは、切り詰められたオントロジーで保持されなければならない、異なるオントロジーから2つの必須概念を指定してよい。プルーナモジュールは次いでクラス間のすべての概念関係性のマッピングを試み、指定された概念を分析するために必要とされるすべてのクラスをタグ付けする。接続経路が識別されない場合、ソフトウェアは2つの開始概念を接続する切り詰められたオントロジーを作成する潜在的な不可能性を認識する。ユーザは、以下を行うように求められる。
・該試みを断念する、又は
・目標を再定義し、再び開始する、又は
・手作業で又は別のオントロジーからのどちらかで追加クラスを追加することによって範囲を拡大し、再び開始する。
【0235】
成功を想定し、ユーザは結合されたソースオントロジーからサイズが大幅に削減された完全なオントロジーを有する。
【0236】
プルーナモジュールの配置の例は、
図17Aに示される。
【0237】
この例で、プルーナモジュール1330はOWLファイル及びRDFSファイルに定義されたオントロジー1701を開き、ユーザは次いで以下の表7に定義される画面1702のセットを介してプルーナモジュール1330と対話して、それによって切り詰められたオントロジー1703を作り出す。画面が上述されたようにブラウザモジュール1310によって生成され得ることが理解される。
【表7】
【0238】
図17Bを参照してここで説明されるように、単一オントロジーを切り詰めるとき、これはツールによって支援される手動プロセスである。
【0239】
この例で、ユーザは、ユーザが必要とする概念を選択し、ツールは完全性及び整合性に必要とされる構成要素を識別し、追加する。ユーザはソースオントロジーで開始シード点S
0としてクラスを選択し、キープためにそれにK
0としてタグを付ける。
【0240】
コンピュータは、K
0としてタグを付けられたクラス及び推論から、『K
0』として記されたクラスのすべての親、すべてのクラス及び推論を識別し、『K
1』としてタグをつける。これらのタグを付けられた変数はS
1−シェルと呼ばれる。ユーザはコンピュータによってタグが付けられたアイテムを見直し、それらにキープ(Keep)のK
1、不確実性(Maybe)のM
1、及び廃棄(Discard)のD
1としてタグを付け直す。すべての公理はタグを付けられたM
i構成要素及びK
i構成要素のためにロードされる。プロセスは次いで繰り返され、ユーザが適切なオントロジーに対するすべての構成要素にタグを付けるまで、毎回iを増分する。
【0241】
次いで、潜在的なエラーを識別し、推論された値を追加するために、リーズナが結果として生じるオントロジーに適用される。このようにして追加されたあらゆる概念、推論、又は公理はK
nとタグを付けられ、タグを付けられた構成要素は切り詰められたオントロジーとしてエクスポートされる。
【0242】
複数の重複するオントロジーの場合、プロセスは
図17Cに示される通りである。
【0243】
この例で、ユーザは、1つのオントロジーで開始シード点S
0としてクラスを選択し、同じ又は別のオントロジーのどちらかで終了点E
0として別のクラスを選択し、それらの両方をKeepのためのKとして『K
0s』又は『K
0e』でタグ付けする。
【0244】
コンピュータは、『K
0x』と記されたクラスのすべての親を『K
1s』又は『K
1e』としてタグ付けし、クラス及び推論からのすべてのサブクラス及び推論は『K
nx』としてタグ付けされ、n=1である。これらのタグ付けされた変数はS
1−シェル及びE
1−シェルと呼ばれる。Sシェル及びEシェルの変数は、以下により詳細に説明されるセマンティックマッチャモジュールによって比較される。マッチャモジュールは各シェルの変数間のマッチ品質に対する数値を返す。所定のマッチ品質が満たされると、次いで2つのシェルの間に経路が決定される。これは、シェルが重複する場合にだけ発生するはずである。開始点及び終了点が同じオントロジーにある場合、マッチ品質は1.0、つまり完全一致でなければならない。
【0245】
いかなる段階でも、タグ付きデータクラスのデータプロパティは切り詰められてよい。これは、クラスを選択し、データフィールド(データプロパティ)をDiscardの『D』として記すことによって実行される。廃棄されたフィールドの存在に基づいたあらゆる推論が無視される。
【0246】
これらのステップは反復され、所定数の変数が適切なマッチ品質を有する又はシェルの所定の深さに到達するまで毎回1ずつ、nを増分する。マッチング変数のシェル経路は『P
jx』とタグ付けられる。経路を確立せずにシェルの所定の深さに到達する場合、次いでプロセスは失敗し、オントロジーは不同等とみなされる。プロセスは停止する。この点で、所定のシェルの深さを増加し、KからDiscardのDまでの範囲外と見なされるあらゆる概念のタグを手作業で変更することが可能である。プロセスを再開できる。
【0247】
いったんこれらが確立されると、S
0とE
0間の経路P
jをポピュレートすることができ、骨組みの切り詰められたオントロジーはこれらの経路の観点から定義できる。タグ付けされたP
j経路構成要素のすべてのクラスの親及び推論された親も経路P
jに属するようにタグ付けされる。すべての公理がタグ付けされたP
j経路構成要素のためにロードされ、このようにして拡大されたオントロジーを作成する。
【0248】
リーズナは潜在的なエラーを識別し、推論された値を追加するために拡大されたオントロジーに適用される。このようにして追加されたあらゆる概念、推論、又は公理はタグ付けされ、切り詰められたオントロジーの一部としてエクスポートされる。
【0249】
不同等のオントロジーの場合、プロセスは
図17Dに示される。この点で、不同等のオントロジーは、次の2つの考えられる理由から発生することがある。
・ユーザが、ユーザがオントロジーを合わせる又は2つのオントロジーの概念からサブセットオントロジーを抽出しようと試みるまでオントロジーは不同等であることを理解していなかった。これは前項の潜在的な失敗結果である。又は、
・ユーザは、オントロジーが不同等であることを知っており、オントロジーが結合できるよう概念及びプロパティを供給している。
【0250】
いずれの場合も、ユーザはオントロジーを結合できるよう情報を供給しなければならない。これが事実上プロセスの開始点である。
【0251】
ユーザは一方のオントロジーで開始シード点S
0としてクラスを選択し、他方のオントロジーで終了シード点E
0として別のクラスを選択し、両方をKeepのKとして『K
0s』又は『K
0e』でタグ付けする。さらに、それらは、線1710によって示されるように、オントロジーを接続するユーザによって定義された経路のセットを定義する。
【0252】
これらの経路は、『i』が定義されている経路番号である、開始点及び終了点『U
0Si』及び『U
0Ei』を有する。これらの経路は、あるオントロジーのクラスで開始し、別のオントロジーのクラスで終了する、関係する概念の隣接するセットを形成する。
【0253】
開始点/終了点とユーザによって定義された概念『i』との間の経路P
si及びP
eiを確立するために、各概念対S
0と『U
0Si』及びE
0と『U
0Ei』に次いで適用された重複オントロジーについて上述されたプロセス。いったんこれらが確立されると、S
0とE
0の間の経路P
iはポピュレートすることができ、骨組みの切り詰められたオントロジーはこれらの経路の観点から定義できる。タグ付けされたP
i経路構成要素のすべてのクラス親及び推論された親も経路P
iに属するとしてタグ付けされる。すべての公理がタグ付けされたP
i経路構成要素のためにロードされる。これが拡大されたオントロジーと呼ばれる。
【0254】
リーズナは潜在的なエラーを識別し、推論された値を追加するために拡大されたオントロジーに適用される。このようにして追加されたあらゆる概念、推論、又は公理は追加され、エクスポートできる切り詰められたオントロジー1711に含まれる。
【0255】
概念が切り詰めの開始点としてユーザによって選択されるとき、どの追加概念を含める必要があるのかを判断することが必要である。この判断を下すために適用されるオブジェクトプロパティ及びデータプロパティベースのアルゴリズムベースがある。この点で、オブジェクトプロパティは以下の属性を有する。
・オブジェクトプロパティは2つの概念間の関係性に名前を付ける。
・関係性は方向を有する。これは『ドメイン』概念から『範囲』概念として定義される。リレーショナルデータベースの専門用語では、ドメインの一次キーがRangeの外部キーになる。
・任意選択で、関係性は以下を含んだタイプを有する。
‐機能的
‐逆機能的
‐推移的
‐対称
‐非対称
‐再帰的
‐非再帰的
【0256】
また、スーパークラス/サブクラスの関係性はオブジェクトプロパティの特別な場合に同等である。サブクラスは、そのスーパークラスのすべてのデータプロパティ及びすべてのオブジェクトプロパティを『継承する』。
【0257】
上述されたサンプルオントロジーを使用し、切り詰めの開始点が『クラブ』であると、次いで切り詰められたオントロジーにクラブのすべてのスーパークラス、つまり組織及び当事者を含めることが必要になるだろう。その関係性の方向及びタイプがその自動包含を除外するので、メンバーのクラスは含まれないだろう。同じ理由から、組織及び当事者のサブクラスは自動的に含まれず、クラブのサブクラスも、あったとしても含まれないだろう。
【0258】
ただし、メンバーが含まれた場合には、オブジェクトプロパティ『有する』の方向及びタイプは、クラブが個人であり、そのすべてのスーパークラスが自動的に含まれたことを保証するだろう。
【0259】
任意の概念のデータプロパティ『タイプ』は、それがモデル化されていない概念、すなわちクラブでの『クラブのタイプ』、メンバーでの『メンバーのタイプ』等の存在を暗示するため警戒を促す。例えば、『クラブのタイプ』概念はセーリング、チェス、事務等のようなすべての有効値のリストを含むことがあるだろうクラブのタイプ概念は『クラブの範囲』とともに『タイプを有する』と呼ばれるオブジェクトプロパティを有するだろう。この概念は切り詰められたオントロジーに自動的に含まれるだろう。
【0260】
すべての自動的な包含及び排除は、すべての概念にわたって又は概念単位でのどちらかで修正できる。ユーザは各タイプのオブジェクトプロパティに『包含』、『排除』又は『尋ねる』を指定する。
【0261】
特定の概念を包含する決定は、オントロジー規則、特にオブジェクトプロパティを推論エンジンに対する入力として使用して専門化されたSemantic Reasonerを使用することにより下される。一階述語論理は明白な包含及び排除を得るために初めに使用される。『タイプ』データプロパティの例の通り、追加の推論は前方推論連鎖及び後方推論連鎖を使用し、決定されなければならない。最良の結果を得るために、それぞれの局所化された問題領域にNovamenteの確率論ネットワーク技法を適用できる。
【0262】
プルーナモジュールの動作例はここでより詳細に説明される。この例では、オントロジーを切り詰めるために、該オントロジーに含まれる概念、データプロパティ、オブジェクトプロパティ、及び推論を識別することが必要である。一例では、これはオントロジーアイテムにインデックスを付けるためにインデクサモジュールを使用し、次いで上述されたように選択のためにオントロジー用語を表示するためにブラウザモジュールを使用して達成される。
【0263】
特に、ユーザはブラウザモジュール『ランディング画面』で切り詰められるオントロジーを選択する。この点で、オントロジーは、ファイル、ウェブアドレス等のような任意のソースから選択できる。いったんオントロジーが選択されると、クラスリストがオントロジーのインデックスを使用して生成される。このリストは各クラスの名前及び説明を表示する。より大きいリストの場合、リスト検索機能が提供され、ユーザがクラス名又はクラス説明の一部ごとに検索できるようにする。データプロパティに対して検索することも可能である。どちらの場合も、検索はそのデータプロパティを含むクラスのリストを返すだろう。ユーザは次いで開始点としてクラスを選択し、該クラスにS
0とタグを付ける。
【0264】
任意選択で、ユーザは次いで終了点E
0を選択する。ユーザが終了点を選択しない場合、次いでユーザは上述されたように切り詰め動作を手作業で制御する必要がある。また、ユーザはランディング画面に戻り、終了点の別のオントロジーを選択してよい、又は代わりにユーザは選ばれたオントロジーが不同等であることを認識している場合には、ブリッジ概念及び関係性のセットを追加できるだろう。ユーザがブリッジ概念を指定しない場合、次いでプロセスは上述された重複オントロジープロセスに基づいて進み、それ以外の場合、プロセスは不同等のオントロジーのプロセスに従って進む。
【0265】
切り詰めプロセスを制御するために、以下を含んだいくつかのメタデータパラメータを設定できる。
・切り詰められたオントロジーを記憶するための場所
・調査のためのシェル深さ
・同一性を受け入れるためのマッチ品質
・手動編集を可能にするために各シェルの完了時にプロセスを休止するかどうか
・最大ランタイム
・エラー及びログメッセージの冗長
【0266】
手動切り詰めプロセスの例は、ここでより詳細に説明される。
【0267】
この例で、ユーザは切り詰めプロセスを開始する開始点だけを指定する。ユーザはいかなるときにも交互に用いることができる2つの方法の内の1つで手動切り詰めを実行できる。
・通常ブラウザモジュール1310によって表示されるクラスリスト画面から、ユーザは『K』で、保持されるクラスにタグを付けることができる。いかなるときでも、ユーザは、あらゆる関係するクラス及び公理に自動的にタグを付け、クラスリストにタグ付けられたクラスを表示する『有効化』オプションを選択できる。さらに、ユーザは、選択されたクラス及び関係性を図式で示すためにタグ付けされたクラスをグラフ作成プログラムに渡す『見る』オプションを選択できる。グラフ作成プログラムはOntoGraf等のような公に入手できるグラフ作成パッケージであることがある。
・代わりに、ユーザは、ブラウザモジュール1310によって表示されるクラスリスト画面のクラスをクリックすることによってクラス表示画面の開始クラスを開くことができる。ユーザは次いでユーザが保持を希望する、あらゆるサブクラス/スーパークラスに、オブジェクトプロパティフレームに指定されるあらゆるクラスを加えたすべてのデータプロパティにタグを付けることができる。このプロセスは表示される任意の関係するクラスに対するリンクをクリックすることによって反復して実行できる。いかなるときにも、ユーザはクラスリスト画面に戻って進行を有効化又は見ることができる。
【0268】
いったんユーザが切り詰められたオントロジーに必要とされるクラスのタグ付けを終了すると、ユーザはクラスリスト画面に戻り、『オントロジーの生成』オプションを選択できる。これにより、切り詰められたオントロジーがアプリケーションメタデータで指定された場所に生成される。タグは、切り詰めプロセスの容易な再編集を可能にするために保存できる。
【0269】
重複オントロジーを切り詰めることの例は、ここでより詳細に説明される。
【0270】
この例で、ユーザは、切り詰めプロセスを実行するための開始点及び終了点だけを指定する。プロセスは上述された複数の重複するオントロジーで説明されるように進行する。
【0271】
アプリケーションメタデータパラメータがシェル間で休止するように設定されていると仮定し、プロセスは各シェルの完了時に停止する。この点で、ユーザは自動的にタグ付けされたアイテムを確証する又は見ることができ、ユーザが関連性がないとして認識するあらゆるタグを削除してよい。開始点及び終了点を接続する経路が確立されるまで、ビュー機能は2つの部分的なオントロジーを表示する。『再開』オプションを選択することによって、プログラムは次のシェルの決定時に開始する。
【0272】
1つの経路が識別された後のいかなるときにも、プロセスを停止できる。ただし、代わりに、開始点と終了点の間のいくつかの異なる考えられる経路を決定できる。
【0273】
いったん処理条件の指定された目的が満たされると、プロセスは停止し、以下の内の1つを含むだろうステータスメッセージとともにユーザに戻る。
・指定最大シェル深さに到達した。経路は見つからなかった。オントロジーは不同等である可能性がある。(失敗)
・指定最大シェル深さに到達した。『n』個の経路が見つかった。『m』個の経路が要求された。(部分的な成功)
・指定数の経路が見つかった。(完全な成功)
【0274】
ユーザは、アプリケーションメタデータの完了基準を変更し、再開オプションを選択することによってプロセスを拡張することを決定してよい。ユーザが結果に満足した場合、ユーザは『オントロジーの生成』オプションを選択するだろう。これによって、切り詰められたオントロジーがアプリケーションメタデータで指定された場所に生成される。タグは、切り詰めプロセスの容易な再編集を可能にするために保存できる。
【0275】
ユーザが、オントロジーが事実上不同等であると決定する場合、次いでユーザは以下に説明されるように進むだろう。
【0276】
この例で、ユーザは、切り詰めプロセスを実行するための開始点及び終了点、並びに関係するブリッジ概念を指定する。ユーザは、オントロジーを切り詰め、マージするために以前の試みからタグを保存していた可能性がある。
【0277】
切り詰め開始オプションを選択することによって、プロセスは上述の不同等のオントロジーのプロセスに従って説明されたように開始する。シェル間で休止するためにアプリケーションメタデータパラメータが設定されたと仮定すると、プロセスは、各シェルが完了すると停止する。
【0278】
この点で、ユーザは自動的にタグ付けされたアイテムを確証する又は見ることができ、ユーザが関連性がないとして認識するあらゆるタグを削除してよい。ユーザによって定義されたブリッジ点の1つに開始点及び終了点を接続する経路が確立されるまで、ビュー機能は、ユーザ定義点ごとに1つ、並びに開始点及び終了点に1つ、多くの部分的なオントロジーを表示する。
【0279】
再開オプションを選択することによって、プロセスは次のシェルの判断について開始する。ソースオントロジーの1つの経路及びターゲットオントロジーの1つの経路がブリッジクラスを介して接続された後のいかなるときでも、プロセスは停止できる。ただし、代わりに、開始点と終了点との間の可能な限り多くの経路を決定できる。
【0280】
いったん処理条件の指定された目的が満たされると、プロセスは停止し、以下の内の1つを含むだろうステータスメッセージとともにユーザに戻る。
・指定最大シェル深さに到達した。経路は見つからなかった。オントロジーは不同等である可能性がある。(失敗)
・指定最大シェル深さに到達した。『n』個の経路が見つかった。『m』個の経路が要求された。(部分的な成功)
・指定数の経路が見つかった。(完全な成功)
【0281】
ユーザはアプリケーションメタデータの完了基準を変更し、再開オプションを選択することによってプロセスを拡張することを決定してよい。
【0282】
ユーザが、オントロジーがまだ事実上不同等であると決定する場合、次いでユーザはブリッジ概念を調べる上である程度の努力を費やす必要があるだろう。ユーザは、経路が合流することを保証するために手作業のタグ付けを実行する必要がある場合がある。
【0283】
ユーザが結果に満足した場合、ユーザはオントロジー生成オプションを選択し、切り詰められたオントロジーがアプリケーションメタデータで指定された場所に生成される。タグは、切り詰めプロセスの容易な再編集を可能にするために保存できる。
セマンティックマッチャモジュール
【0284】
セマンティックマッチャモジュールは、2つの概念がある特定の文脈の中で考慮されるときに類似する程度まで数学値を適用できるようにする。このプロセスの名前は『セマンティックマッチング』であり、2つのオントロジーで概念を合わせようとするときに、それは特に重要である。例えば、ビジネスの文脈での単語『企業』及び『組織』は厳密には同じ意味をもたない。すべての企業は組織であるが、すべての組織が企業であるわけではない。事実上、クラス企業はクラス組織のサブセットである。例えば、『この組織は上場企業であるが、その組織はゴルフクラブである』。
【0285】
社会的な文脈では、企業は組織に関係付けられているのではなく、共同経営者の集合に関係付けられている。例えば、『ジョン・ドウは悪友と付き合う』。クラブ及び企業はともに組織であるため、なんらかの類似性がある。上場企業及び非上場企業も類似し、共通の親を共有する。それらはクラブ及び企業と同程度に概念上近いのか。非上場の公開会社(>50人の株主)及び非上場の非公開会社(<51人の株主)はどうだろうか。それらは上場企業及び非上場企業よりも近いのか。
【0286】
2つの概念がどれほど類似している可能性があるのかを測るための数学的なベースを与えるために、『同一性』の概念を導入する。いくつかの公式の測定基準がある。例えば、Levenstein距離(Levenshtein、1966年)は、2つの文字列をマッチさせるために必要とされる挿入及び削除を数え、Needleman−Wunsch(Needleman、1970年)距離は編集動作に異なるコストを割り当て、Smith−Waterman(Smith、1981年)はさらにコストにアルファベットマッピングを使用し、Monge−Elkan(Monge、1996年)は単語間のサブ文字列ギャップに応じて可変コストを使用する。さらに、2つのストリングが「短い」距離によって置き違えられても2つの文字列間の共通の文字を数えるJaro−Winkler類似性、2つの文字列間で共有される三重文字の数を数えるQ−Gram(Sutinen、1995年)、及び最大公約サブ文字列を検索するサブ文字列距離を使用した。ただし、これらの内のどれも特に効果的であることは判明していない。
【0287】
もう1つの共通技法は、『物事』の概念を根とする単一の階層木で概念を配置することである。大部分の同一性式は測定されている概念とその共通の親との間の概念の数、及び階層の根までの距離の関数である。
【0288】
ただし、オントロジーを構築したオントロジスト及びオントロジーがオントロジーを使用する人によって切り詰められているかどうかに応じて、階層の根までの距離が大幅に異なることがあることを考慮すると、根までの距離は概して関連性がない。
【0289】
概して、同一性は概念の間のエッジ数によって測定される。他の可能性は、データプロパティの数に基づいて存在する。例えば、上場公開企業及び非上場公開企業はそれぞれ1つの属性しか有さないことがあり、バランスは企業の定義に保持されるのに対し、クラブ及び企業はそれぞれ「5」つのデータプロパティを有することがあり、バランスは組織の定義で保持される。したがって、企業がクラブに類似するよりも、非上場の公開企業は上場公開企業により類似している(「10」の代わりに「2」つの属性、つまり言い換えると、より少ない相違があり、相違は距離に同等である)。
【0290】
『距離』の概念は重要と見なされる。2つの概念はどれほど遠く離れているのか。測定されている概念とその共通の親との間の概念の数に基づいた式がある。距離が「1」である場合には、一方の概念が他方のスーパークラスであることは明らかである。しかしながら、距離が「2」である場合には、概念は兄弟又は孫のどちらかである。これは特に有用な事実ではない。
【0291】
距離と同一性の間にはいくつかの関係性がある。明らかに、距離が「0」である場合には、同一性は「1.0」である。つまり、概念は同一であるため、実際にはこのインスタンスには1つの概念しかない。
【0292】
優れたセマンティックマッチャモジュールは、あらゆる適切な数式を使用し、マッチの同一性及び距離を計算できなければならない。
【0293】
それを考慮に入れると、科学の世界、工学の世界、及びビジネスの世界のあらゆる態様を記述する何千もの公のオントロジー及び私的なオントロジーがある。2つのオントロジーを合わせるためには、2つのオントロジーの概念間に意味論的なマッチがあるかどうかを判断することが必要である。
【0294】
現在では、リンクされた概念を定義するオントロジーの操作は研究者及び専門のオントロジストに制限されている。概念の定義及び名前は、文脈に応じて非常に変化する。オントロジーの中で及びオントロジーにわたって用語を比較するためには、用語を意味論的に調べるためのなんらかの機構を有する必要がある。2つの概念が実際に同じ事柄に対する同義語であるのか、それともそれらはなんらかの方法で関係付けられているのか。例えば、組織及び企業はある程度の同一性があるようにいくつかの属性を共通して有している。すべての企業は組織であるが、すべての組織が企業であるわけではない(小前提)。
【0295】
別の例では、指の存在は手の存在を暗示する。指及び手は同じではないが、それらの間には関係性があり、一方が他方の一部であるため、一方の存在は他方の存在を暗示する。(部分語)
【0296】
任意の2つの概念を考慮すると、該概念がどれほど類似しているのかを知りたいと思う。つまり、同一性0−>1であり、上式では1.0が、一方が他方のサブクラスであるのか、それともスーパークラスであるのか(−1,0,1)、及び1つが別のものの部分であるかどうか(−1,0,1)に関わらず、該概念が同一であることを暗示している。
【0297】
セマンティックマッチャモジュールは、概念、概念の意味、及び概念間の関係性のデータベースを含む。セマンティックマッチャモジュールは、概念と概念の定義との間の関係性を手作業で編集するため、及び数学的に定義された方法で概念を分析するための、オントロジーから概念をロードするためのツールを有する。これらの数学的に定義された概念のプロパティ及び概念の関係性は、次いでディクショナリとして及びセマンティック概念マッチャモジュールとして、オントロジーを合わせることのようなさまざまな状況で使用できる。
【0298】
セマンティックマッチャモジュール概念はある特定の文脈(例えば、医学、ビジネス)で同義語、小前提(クラス階層)、及び部分語(の部分)を見付ける。それは、オントロジーをパースし、クラス、クラスの注釈、クラス構造、及び任意のオブジェクトプロパティ「の部分」を得ることによって最初にロードされる。クラス名は次いで、意味及び考えられる同義語を決定するためにWordNet又はWatsonなどの何かに使用される。意味は、あらゆる表記がパースされるように、トリプルにパースされる。マッチャモジュールは次いで同義性を決定するトリプルの数学的な対応を探す。
【0299】
セマンティックマッチャモジュールは、通常は2つのオントロジーからの概念の2つのリストを評価するか、あるいは単一の概念を評価し、参照用語にこれをマッチして概念の意味を決定するかのどちらかのスタンドアロンプロセスである。
【0300】
第1のインスタンスで、マッチャモジュールは第1のリストの各アイテムを第2のリストの各アイテムと対にする。各対i
,jは次いで以下のアイテムを決定するために分析される。
・意味類似性S
ij
‐用語が同義語である場合には類似性はS
ij=1.0である。
‐反意語の場合にはS
ij=−1である。
‐関係性がない場合にはS
ij=0である。
・小前提関係性Sub
ij
‐C
iがC
jのサブクラスである場合には、S
ij=−1である。
‐C
iがC
jのスーパークラスである場合には、S
ij=1である。
‐それ以外では、S
ij=0である。
・部分語関係性Mer
ij
‐C
iがfC
jの一部分である場合には、Mer
ij=−1である。
‐C
jがC
iの一部分である場合には、Mer
ij=1である。
‐それ以外では、Mer
ij=0である。
【0301】
第2のインスタンスでは、マッチャモジュールは単一の概念及び文脈定義をとり、その文脈のその概念のために同義語、サブクラス及びスーパークラス、並びに部分語のリストを作成する。文脈が与えられない場合、すべての文脈にわたって評価が実行される。
【0302】
医学オントロジー及び人事オントロジーはSemMatchに従って定義された旨の推測に基づいていくつかの例が後続する。
【0303】
2つの異なる使用方法は、
図18A及び
図18Bを参照してここでより詳細に説明される。
【0304】
セマンティックマッチャモジュール1350はその評価を実行するために概念マッチングデータベース1604を使用する。
図18Aの例で、オントロジー用語A、B及びX、Yのような概念の2つのリスト1801、1802が受け取られ、次いでオントロジー用語の考えられる対成ごとに同一性スコア1803を生成するためにセマンティックマッチャモジュール1350によって比較される。
【0305】
図18Bの例で、単一のオントロジー用語1804のような単一の概念が受け取られ、セマンティックマッチャモジュール1350は概念マッチングデータベース1604とこれを比較し、同義語1805のリストを返す。
【0306】
概念マッチングデータベース(CMD)1604は、インデクサモジュール1320を使用して構築される。CMDが使用できる前に、データベースが最初にロードされなければならず、通常、データベースは対象の文脈に基づいてオントロジーをパースすることによってロードされるだろう。データベースは新しい文脈を追加するときは常にユーザによって更新できる。
【0307】
CMD1604は、18Cに示されているテーブル間の関係性とともに表8に定義されるいくつかのテーブルを含む。
【表8】
【0308】
ロード機構が、
図18Dを参照してここで詳細に説明される。
【0309】
最初に、ロードされるオントロジー1801の全体的な文脈が決定され、1のIDを用いてコンテキストテーブルに入力される。例えば、医学オントロジーがロードされる場合、文脈は「医学」として識別されるだろう。
【0310】
以下に示されるこのカテゴリのオントロジー及びそれぞれの文脈名の例。
・有害事象報告オントロジーAERO
・アフリカ伝統医学オントロジーATMO
・アレン脳地図成体マウス(ABA)の脳オントロジーABA−AMB
・アルツハイマー病オントロジーADO
・アミノ酸オントロジーAMINO−ACID
・両生類肉眼解剖学オントロジーAAO
・両生類分類法オントロジーATO
・解剖病理学用語集PATHLEX
・解剖エンティティオントロジーAEO
【0311】
これらのオントロジーのそれぞれはソーステーブルにロードされるソースを有し、このようにしてソース2のコンテキストテーブルもロードできるようにする。
【0312】
次に、以下の情報が抽出され、オントロジーのそれぞれからパースされる。
・クラス
・オブジェクトプロパティ
・注釈
・ラベル
【0313】
すべての単語は1つのオントロジーに由来するので、コンテキスト_IDは既知である。各クラスは単語テーブルで単語になる。注釈は単語テーブルで意味としてロードされる。ともにヌルに設定される単語_ID2コンテキスト_IDを見出し語(ルート意味)及び概念と関係付け、ヌルに設定されたクラス及び概念_IDごとにクラス2オブジェクトプロパティ2クラスを単語_IDに関係付けて、一時的なテーブルが作成される。
【0314】
これに続き、抽出されたクラス及びその注釈は次いで単語テーブルにロードされる。各クラスが単語になる。各単語は一意の単語_IDを割り当てられ、クラス注釈が単語テーブルの意味になる。すべての単語は1つのオントロジーから由来しているので、上述されたようにコンテキスト_IDは既知である。
【0315】
ともにヌルに設定された単語_ID2コンテキスト_IDを見出し語及び概念に関係付け、ヌルに設定されたクラス及び概念_IDごとにクラス2オブジェクトプロパティ2クラスを単語_IDに関係付けて、一時テーブルが作成される。
【0316】
文脈ごとに、第1のステップは、各単語をWordNet1802のような標準的なディクショナリから得られる意味及び同義語にマッチさせることである。あらゆるマッチしない単語は次いで同義語を識別するために他の文脈からの単語にマッチされる。これらのステップはここでより詳細に説明される。
【0317】
単語テーブルの各単語は、その単語に基づいて、同義語又は語彙素のグループの意味及び潜在的に語根又は見出し語を得るためにWordNet1802に渡される。WordNetの意味は注釈から引き出される意味と語彙的に比較される。
【0318】
これは、RDFトリプルに意味を変換し、トリプルを評価することによって行われる。このプロセスは以下により詳細に説明される。
【0319】
意味がマッチする場合、次いでWordnetの単語及び意味が、新しい単語_IDとともに単語テーブルにロードされる。新しい単語_IDは単語_ID_Cに割り当てられ、元の単語_IDは単語_ID_Pに割り当てられ、両方とも次いで単語2単語にロードされる。
【0320】
単語_ID2コンテキスト_IDテーブルはWordnet見出し語に単語_IDとして割り当てられた単語_ID、及び単語_ID_Pとしてロードされた関係する単語_IDと同じコンテキスト_IDをロードされる。単語_ID2コンテキスト_IDテーブルは2つの列、見出し語及び概念しか有さない。したがって、見出し語は新しい単語_ID_Cを割り当てられ、概念は単語_ID_Pから割り当てられる。
【0321】
最後に、クラス2オブジェクトプロパティ2クラスは、WordNet1802から単語_ID情報をロードされる。
【0322】
見出し語が定義されたすべての単語は次いで概念テーブルにロードされる。単語_ID2コンテキスト_IDはここで既知の概念_ID及び見出し語で更新され、概念_単語_コンテキストテーブルをロードするために使用され、その結果、CWC_IDは名前が付けられたコンテキストで使用される概念及び単語ごとに割り当てられる。CWC_IDは、クラス2オブジェクトプロパティ2クラスで単語を識別するために、及び同時にCWC2CWCテーブル及び関係_タイプテーブルをポピュレートするために使用できる。
【0323】
単語テーブルの第2の経路は、他の文脈での単語の意味と該意味を構文的に比較することによって、関係する見出し語がないあらゆる単語の意味を調べる。マッチさせるための第1の意味の単語_IDは見出し語として選ばれる。プロセスは、次いでWordnetのための識別された見出し語に関して続行する。
【0324】
第3の経路は、見出し語であるとして、見出し語に関係付けられていない各単語を識別する。これらの3つの経路の完了時、あらゆる単語は概念テーブル1809のあらゆる考えられる文脈で識別されるだろう。
【0325】
これに続き、同一性の値が計算される。完全なオントロジーが既知である場合、次いで同一性の計算は、比較されている概念の属性(データプロパティ)をマッチングすることによって実行できるだろう。属性リストは必然的に概念のスーパークラスの属性を含むだろう。
【0326】
現在の例では、同一性は2つの単語の意味を分析することによって計算される。英語での意味は形式の主語述語目的語(spo)のrdfトリプルに変換される。これは、自然処理言語(NLP)−RDF変換器を使用して実行される(Arndt及びAuer、2014年)(Augensteinら、2013年)。
【0327】
例えば、クラブは意味「株主ではないメンバーを有し、そのメンバーのなんらかの職業上の必要性を満たすために存在する組織のタイプ」を有し、以下の表9に示されるように変換できるだろう。
【表9】
【0328】
組織は以下の通り、つまり「組織は、集まることの合意された理由をもった個人の集まりである」に定義される概念であり、表10に示されるように変換できるだろう。
【表10】
【0329】
クラブの定義に組織の定義を挿入して、表11に示される定義を得る。
【表11】
【0330】
ただし、メンバーが個人であると推論することはできない。この分析は、以下を判断するために使用できる。
・クラブのメンバーは個人である。これは、メンバーシップ概念が、個人がメンバーシップを保持する(Individual Holds Membership)の代わりにメンバーは個人である(Member isAn Individual)としてより正しく定義されるオブジェクトプロパティを有した場合には推論できただろう。
・集まることの合意された理由は、職業上の必要性を満たすことである。
【0331】
上述の例のオントロジーで特殊法人に同じプロセスを適用すると、意味から、特殊法人は「指定された政府の必要性を満たすために政府によって作られる組織」であることを得るだろう。これは表12に示されるトリプルにつながる。
【表12】
【0332】
これは、
図13に示される共通の述語及び目的語に基づいて比較表を構築するために使用できる。
【表13】
【0333】
これによって、以下の要因に基づいて同一性の数式を使用できる。
・クラブ及び特殊法人の概念のトリプルの数はN1及びN2によってそれぞれ示され、N1=9であり、N2=7である。
・2つの概念クラブ及び特殊法人の間で共有される述語(SP)の数は5である。つまりSP=5。
・2つの概念クラブと特殊法人との間で共有される述語目的語(SPO)対の数は4である。つまりSPO=4
【0334】
例えば、
・同一性=SPO/SP=4/5=0.8又は
・同一性=(SP+SPO)/(N1+N2)=9/16=0.5625
【0335】
使用される実際の式は関連性がない。重要な事実は、同一性の評価基準を示す式を引き出すことができる点である。
【0336】
このプロセスを通して、ユーザは、通常はブラウザモジュールによって表示される画面1808を使用し、セマンティックマッチャモジュールと対話できる。
アライナモジュール
【0337】
オントロジーアライメントの必要性は、異種のデータベース、つまり無関係に開発され、したがってそれぞれが独自のデータ語彙を有するデータベースを統合する必要性から生じる。独自のオントロジーを提供する多くの動作主体を含んだSemantic Webの文脈では、オントロジーマッチングは異種リソースが相互運用するのに役立つための重大な位置を占めている。オントロジーアラインメントツールは、例えば「トラック」及び「大型トラック」等、「意味論的に同等」であるデータのクラスを見つける。これらのクラスは必ずしも論理的に同一ではない。
【0338】
オントロジーアラインメントの結果は、異なるオントロジーのエンティティ間の対応を表すステートメントのセットである。これは、専用の言語『表出型及び宣言型オントロジーアラインメント言語(Expressive and Declarative Ontology Alignment Language)』(EDOAL)(Davidら、2013年)又は他の言語(ZIMMERMANNら、2006年)で表されてよい。
【0339】
第1の要件は、合わせられているオントロジーの概念間に意味論的なマッチがあるかどうかを判断することであり、これは上述のセマンティックマッチャモジュールを使用して判断できる。例えば、ビジネスの文脈での単語『企業』及び『組織』は厳密に同じ意味をもたない。すべての企業は組織であるが、すべての組織が企業であるわけではない。事実上、クラス企業はクラス組織のサブセットである。例えば、『この組織は上場企業であるが、その組織はゴルフクラブである』。社会的な文脈では、企業は組織に関係付けられるのではなく、共同経営者の集合に関係付けられてもよい。例えば、『ジョン・ドウは悪友と付き合う。』
【0340】
クラブ及び企業はともに組織であるため、なんらかの類似性がある。上場企業及び非上場企業も類似し、共通の親、つまり企業を共有する。それらはクラブと企業と同程度に概念上近いのか。非上場の公開会社(>50人の株主)及び非上場の非公開会社(<51人の株主)はどうだろうか。それらは上場企業及び非上場企業よりも近いのか。
【0341】
2つの概念がどれほど類似している可能性があるのかを測るための数学的なベースを与えるために、『同一性』の概念を導入する。同一性にはいくつかの公式の測定基準がある。最も一般的な技法は、『物事』の概念を根とする単一の階層木で概念を配置することである。大部分の式は測定されている概念とその共通の親との間の概念の数、及び階層の根までの距離の関数である。
【0342】
ただし、オントロジーを構築したオントロジスト及びオントロジーがオントロジーを使用する人によって切り詰められたかどうかに応じて、階層の根までの距離が大幅に異なることがあることを考慮すると、根までの距離は概して関連性がない。
【0343】
概して、同一性は概念の間のエッジ数によって測定される。他の可能性は、データプロパティの数に基づいて存在する。例えば、上場公開企業及び非上場公開企業はそれぞれ1つの属性しか有さないことがあり、バランスは企業の定義に保持されるのに対し、クラブ及び企業はそれぞれ「5」つのデータプロパティを有することがあり、バランスは組織の定義で保持される。したがって、企業がクラブに類似するよりも、上場の非公開企業は上場公開企業により類似している(「10」の代わりに「2」つの属性、つまり言い換えると、より少ない相違があり、相違は距離に同等である)。
【0344】
推測上のオントロジー(PO)は、通常、リレーショナルデータベース、xmlファイル、又はスプレッドシート等の構造化ソースから作成されたオントロジーである。係るアラインメントは、推測上のオントロジーのデータインスタンスが完全なオントロジーのクラスにマップするいくつかの非常に複雑なマッピングを有することがある。これはアラインメントの特殊ケースである。
【0345】
4つのテーブルの中のデータだけではなく、メタデータ(したがって構造)も含むことがあるため、完全に非正規化されたデータ構造の例である「物事データベース」を示す単純な例が、
図19Aを参照してここで説明される。
【0346】
例えば、物事タイプテーブルが『クラス』の物事タイプを含む場合、次いで物事テーブルのあらゆる関係する行はクラスの名前を含む。クラス間の関係性は、『物事タイプ対物事タイプ』が関係性のタイプを指定する『物事対物事』テーブルに定義されるだろう。
【0347】
オントロジー用語では、任意のタイプテーブルがクラスのセットを生じさせることがある。車両セットの詳細を含むテーブルを考える。車両タイプテーブルは、車両の有効なタイプだけが含まれることを保証するために使用できるだろう。例えば、車、トラック、トラクタであるが、ベビーカー、自転車、船舶ではない。オントロジー的に、次いで車両タイプテーブルに指定される車両のタイプごとに別々のクラスを有することができるだろう。この概念は一般化できるが、必ずしもつねに適切ではない。もしそうであれば、あらゆる人員テーブルは男性クラス及び女性クラスに分割されることになるだろう。結果的に、プログラムはデータに含まれている隠されたクラスが暴露され、有効化のためにユーザに該クラスを提示することがある、あらゆる状況を識別するべきである。
【0348】
いくつかの場合、タイプテーブルは多くのタイプのタイプを含むことがある。例えば、概念、データプロパティ、及び車両、トラック、車、エンジンタイプ、重量、キログラムのようなデータプロパティのプロパティ。これは以下のように示されることがあるだろう。
・車はエンジンタイプディーゼルを有する。
・車は重量2000を有する。
・重量は計測単位キログラムを有する。
・車は車両のサブクラスである。
【0349】
物事データベースの例は、データベースが表14〜17に示されるようにポピュレートされると仮定して、ここで説明される。
【表14】
【表15】
【表16】
【表17】
【0350】
関係性スキーマに基づいた推測上のオントロジーは、名前がテーブル名に関係付けられた4つのクラスだけを示すだろう。ただし、データに基づいたオントロジーは、
図19Bに示されるように他の2つのテーブルで識別されたオブジェクトプロパティを加えた、『物事』テーブル及び『物事タイプ』テーブルの名前に基づいて8つのクラスを示すだろう。この例では、残りの用語が物事テーブル(テーブル14)から得られるのに対して、「ビジネス構成要素」及び「有機的構造」の用語は物事タイプテーブル(テーブル16)から得られる。
【0351】
これは、1つのオントロジーのクラスが別のオントロジーのデータインスタンスにマッチする問題の例である。明確にするために、これは『推測上のマッピング問題』(PMP)として識別される。それは、推測上のオントロジーが、『主キー』若しくは『外部キー』にマッチする名前、又は『親』及び『子』(BOM)でのような同じ外部キーの複数のインスタンスを有するクラス、又は関連付けられたタイプクラスを有するクラスを有するデータプロパティを有するときにアラインメント中に現れることがある。これらの例は、潜在的にデータインスタンスに隠されているクラス階層を隠ぺいする可能性がある。
【0352】
共通アラインメント技法は、各オントロジーからの概念を、それぞれが根として『物事』の概念を有する2つの階層木の中に配置することである。次いで、アラインメントを決定するためのなんらかの数学的な機構を与えるために『距離』の数学的概念が導入される。大部分の距離数式は、測定されている概念とその共通の親との間の概念の数、及び階層の根までの距離の関数である。
【0353】
ただし、オントロジーを構築したオントロジスト、オントロジーがオントロジーを使用する人によって切り詰められているかどうか、及び概念の傘として働く『上位』オントロジーがあるかどうかに応じて、階層の根までの距離が大幅に異なることがあることを考慮すると、根までの距離は概して関連性がない。
【0354】
オントロジーアライナモジュールは複数のオントロジーで共通の概念を探し、一方のオントロジーから他方に概念をマップし、このようにして2つのオントロジーを1つのオントロジーとして扱うことを可能にする。アラインメントを使用すると、2つのオントロジーをマージすることも可能である。ただし、これは危険なプロセスであり、意味論的なミスマッチの伝搬の可能性のため一般に推奨されていない。
【0355】
一般に、オントロジーは完璧ではない。例えば、ここで使用されているサンプルオントロジーには多くのモデル化エラーがある。『株式』が『個人』よりむしろ『クライアントs』によって『所有』するべきであり、『職歴』が『企業』よりむしろ『クライアント』によって『雇用』するべきであることは明らかである。これらのインスタンスの両方とも、関係性がより制限的な関係性からあまり制限的ではない関係性に移動していることを示す。それはこれらの場合には可能であろうが、クラブのメンバーシップを『個人』から『クライアント』に移動するのはおそらく無効であろう。
【0356】
メンバーシップと個人との間の関係性は『保有する』であるので、クラス『メンバーシップ』はさらに不適切に名前が付けられている。クラスが『メンバー』と名前を付けられていた場合、次いで関係性は『Aである』であっただろう。これによりメンバーが個人のプロパティを継承できただろう。オブジェクトプロパティ『有する』が完全に定義されない限り、次いで推論でのその使用は制限される。
【0357】
これらのエラーは、アラインメントの複雑さのいくつかを示すためにサンプルに導入された。
【0358】
アライナモジュールの動作は、
図19Cを参照してここにより詳細に説明される。
【0359】
この点で、使用中、OWLファイル及びRDFSファイルで定義されたオントロジー1901、1902は、アライナモジュール1340を使用して開かれ、ユーザは次いで以下に定義される画面のセットを使用し、オントロジーと対話し、最終的に一連のアラインメント1905によって接続されたオントロジー1903、1904、及び潜在的にマージされ、合わせられたオントロジー1906を生じさせる。
【0360】
プロセスは、以下を含んだいくつかのサブプロセスから成る。
・初期化
・低レベルクラスマッチング‐最小マッピングを識別する。
・推測上のマッピング問題識別
・オブジェクトプロパティ分析
・データプロパティ分析
・マルチクラスマッピング
・PMP解決
・兄弟分析
・最小マッピング解決
【0361】
アラインメントは多くのステップで識別できるため、概念の特定の対についてアラインメントを計算し直す可能性がある。この問題は、アラインメントマップを維持することによって克服される。このマップは、アラインメントが識別されるたびに更新され、努力の重複を防ぐために評価について新しいアラインメントの対が検討される前にプログラムによって参照され得る。アラインメントマップはユーザに表示され、ユーザがアラインメントプロセスに従い、任意の潜在的なアライメントにクエリーを行い、任意の潜在的なアラインメントを無効にし、プログラムに任意のプロセスを実行し直すように命令できるようにする。
【0362】
これらのステップは個々でより詳細に説明される。各ステップiは重み係数Wiを割り当てられ、結果は全体的なアラインメントスコアを提供するために結合される。これらの重み係数は一定のステップで適用される。考えられる重み付け累積数式が示されるが、使用できるだろう多くの考えられる重み付け方式がある。これは、適切な重み付け数式を決定するために機械学習又は統計分析及び推論を使用できる分野である。
【0363】
初期化プロセスの間、インデックス1603がインデックスモジュールから得られる。これに続き、オントロジー1901、1902がセマンティックマッチャモジュール1340にロードされる。アラインメントテーブルが事前にロードされていないときには、W
0=0.0である。
【0364】
以下の例では、技術の説明のためW
i=iである。それ以外の場合、重みW
iがユーザによって割り当てられる、又はヒューリスティックな機構が機械学習若しくは経験によって決定される。一般に、任意のステップiの場合、累積的に決定されたマッチ値MV
iAは以下によって決定される。
【数1】
上式ではMV
iはステップiで計算された未処理のマッチ値である。
別の、より従来の重み付け方式は以下の通りである。
【数2】
上式ではMVは重み付けされたマッチ値であり、MV
iはステップiでのマッチ値である。
【0365】
このプロセスは、好ましい実装に応じて、各ステップで、又はプロシジャの終わりでのみのどちらかで実行できるだろう。
【0366】
次に、オントロジーの用語の意味論的意味に基づいて実行される。このプロセスはクラス名に基づいて潜在的なマッチを見付けるためにセマンティックマッチャモジュールを使用し、それぞれの潜在的なアラインメント対を調べる。それがアラインメントを見付ける場合、それは次いでそのアラインメントから継承チェーン(オブジェクトプロパティ=『のサブクラス』)を横断し、セマンティックマッチャモジュールを使用し、別のアライメントのクラス名をチェックする。
【0367】
すべてのマッチングクラスを見つけることが可能であるが、これは、少数のマッチを必要とするにすぎない場合がある。マッチングされているオントロジーが同じ基本オントロジーを使用している場合、完了した1−1マッチが可能である。例えば、
・有害事象報告オントロジーAERO
・アフリカ伝統医学オントロジーATMO
【0368】
両方とも標準的なGalenオントロジーに基づいているため、1−1マッチが期待されるだろう。
【0369】
対ごとのMVはセマンティックマッチャモジュールによって提供されるスコアに基づき、この例のためにSet W
1=1.0である。
【0370】
この第1のオントロジーの根で開始し、第2のオントロジーの根クラスで開始する各クラスを調べる。概念対のためにセマンティックマッチャモジュールを使用し見付けられた同一性がアラインメント(MV
AT)の閾値マッチ値を超えるときにマッチが発生する。許容できるマッチが見付けられる場合、それは潜在的なアラインメントと呼ばれ、詳細はアラインメントマップに記録される。
【0371】
アラインメントマップは2つの概念を記録し、アラインメントId、最小マップId、アラインメントに関連付けられたあらゆるタグ、割り当てられているあらゆるPMP Id、任意の濃縮Id、及び最終処理ステップIdを割り当てる。アライメントId上で関係付けられる別々のテーブルはステップごとにマッチ値を記憶する。これらの値は、所望される場合、手作業で無効にできる。
【0372】
アラインメントマップは、あらゆる既知のアラインメントにより事前にロードされてよい。これらはユーザタグ『ユーザ開始済み』でタグ付けされ、マッチ値は概して1.00に設定されなければならない。ただし、より低い値も可能である。『ユーザ開始済み』及びMV=1.00の組合せは、このアラインメントの追加の処理を妨げる。
【0373】
プロセスは、オブジェクトプロパティによる第1のオントロジーでのカレントクラスに関係する次のクラスまで続行する。カレントクラスのスーパークラスは最初に処理される。プログラムは、他のオブジェクトプロパティの前にインヘリタンスオブジェクトプロパティを処理する。カレントクラスのスーパークラスは、あらゆるサブクラスが調べられる前に処理される。MV<MV
ATとのアラインメントが見付けられるとすぐに、プロセスは停止する。
【0374】
潜在的なアラインメントが識別されるたびに、それは最小マッピングセットに割り当てられ、最小マップId mm_IDを与えられる。階層関連クラスが識別されると同じmm_IDに追加される。このステップの終わりで、最小マッピングの基準を潜在的に満たすいくつかの最小マップが定義される。この累積マッチ値は続いて起こるステップごとに精緻化される。
【0375】
潜在的なPMPの認識がつねに実行される。PMP解決は、設定ファイルで要求される場合にだけ実行される。要求されない場合、潜在的なPMPの認識は、アラインメントが情報メッセージとして実行され、累積統計報告書に追加される際に作成される活動ログに記録される。
【0376】
いくつかのインスタンスでは、両方のオントロジーとも推定上のオントロジーである可能性があるのでPMPを解決するのは望ましくない場合があり、BOM構造を保持することが望ましい場合がある。
【0377】
PMP解決が要求された場合、次いでPMPタグ付けが実行される。データプロパティ名は、以下のようなキーワードの存在について調べられる。
・オブジェクトプロパティ名は以下を含む。
‐タイプ
‐関係
‐クラス
‐概念
‐…
・データプロパティ名は以下を含む。
‐識別子
‐ID
‐キー
‐親
‐子
‐一次キー
‐外部キー
‐…
【0378】
これらのキーワードを含んだデータプロパティの存在は必ずしもPMPを暗示しない。追加のアルゴリズムは確実となるために適用される必要がある。規格に応じてマップする任意の構造。
・ERA図の『タイプ』テーブルは識別されなければならない。ユーザは、あるべきタイプテーブルの各行を選択しなければならない。
・『部品表』構造は識別され、適切なクラス構造に潜在的に拡大されなければならない。
【0379】
この段階で、各PMPに関与するクラスは『PMP』としてタグ付けされ、同等なBOMテーブルのセットごとにPMP−set−Identifier PMP01、PMP02、...を与えられる。以下のより詳細に説明されるように、それらは後に解決される。各PMPクラスが識別されるにつれ、詳細がそのインスタンスがPMPではないと決定してよいユーザに提示されてよい。
【0380】
MVはこのステップについて計算されないため、MV
2A=MV
1A=0.5である。
【0381】
これに続き、オブジェクトプロパティ及び以前の各ステップからのアラインメント対と関連付けられたそれらの関係するクラスが分析される。このステップは、『構造分析』と呼ばれることがある。これは、以下を識別する。
・すべての関係するクラス及びオブジェクトプロパティの名前がマッチする場合、次いで対を『アンカーポイント』としてタグ付ける。MV=1.0である。関係するクラスがすでにそこにない場合には、最小マップに関係するクラスを追加し、その最小マップの関係するクラスにステップ2データプロパティ分析を繰り返す。
・名前及び関係するスーパークラスがマッチするが、サブクラスのいずれもマッチしない場合、対に『考えられる兄弟』としてタグを付ける。MV=0.3である。最小マップにスーパークラスを追加する。以下のマルチクラスマッピングに移動する。
・名前及び関係するスーパークラスがマッチするが、サブクラスのいくつかしかマッチしない場合、次いで対を『関連サブセット』としてタグを付ける。
・MVは以下の通り計算される。
‐各マッチングサブクラスに2.0、及び他の各マッチング関係クラスに1.0の重みを割り当てる。
‐N
Mにマッチする数字として、これらの重みを合計する。
‐各サブクラスに1.0、及びそれぞれの他の関係クラスに0.5を割り当てる。
‐合計数N
Aとして両方のスーパークラスにわたってこれらの重みを合計する。
‐マッチ値 MV
3=N
M/N
A
・関係クラスがマッチしない場合には、MV
3=0.001である。
・最小マップにSuperクラスを追加する。以下のマルチクラスマッピングに移動する。
【0382】
対ごとに、以下のように累積重み付けマッチ値を計算する。
【数3】
以下を仮定する。W
3=3
以前の例からMV
2A=0.5
オブジェクトプロパティマッチからMV
3=1.0
次いで、
【数4】
【0383】
これに続き、マッチングクラスのデータプロパティ(属性)が類似しているかどうかを分析するために、データプロパティ分析が実行される。クラスの対ごとに、分析は、
・正確な名前マッチがないSemMatを使用し、クラスごとにデータプロパティを比較する。
・データプロパティに基づいて「マッチ値」(MV)を割り当てる。
・マッチタイプでアラインメント対にタグを付ける。最小マップの次の対を選択し、上記プロセスを繰り返す。最小マップの中にもはやアラインメントがない場合、次の最小マップに移動する。
【0384】
より詳細には、A={a
1,a
2,a
3,...a
i}が第1の概念のデータプロパティのセットであり、B={b
1,b
2,b
3,...b
j}が第2の概念のデータプロパティのセットである場合、次いで以下の可能性が存在する。
・クラスのすべてのデータプロパティがマッチする。「正確なマッチ」としてタグを付ける。つまり、
【数5】
マッチ値=1.000
・一方のオントロジーからのデータプロパティのサブセットは他方のオントロジーのすべてのデータプロパティにマッチする。「サブセット」としてタグ付けする。
つまり
【数6】
【数7】
上式では、N(A)は、(NA)<N(B)を仮定したときの、Aのデータプロパティの数である。
・一方のオントロジーからのデータプロパティのサブセットは他方のオントロジーのデータプロパティのサブセットにマッチする。「部分マッチ」としてタグを付ける。
つまり
【数8】
【数9】
上式ではN(A)は以下を仮定したときのAのDataプロパティの数である。
【数10】
・データプロパティがマッチしない。MV=0.1であり、「名前のみ」としてタグ付けする。
つまり、
【数11】
【0385】
MVが所定の閾値未満である場合(デフォルト=0.1)、最小マップからそのマッチ対を廃棄し、次のマッチ対に進む。プロセスは、すべての最小マップが分析されるまで繰り返され、その点でマッチング値が計算される。
【数12】
以下を想定する。W
4=4
MV
3A=0.833333
データプロパティマッチからMV
4=1.0
次いで
【数13】
【0386】
マルチクラスマッピングは、オントロジーのクラスが別のオントロジーのいくつかのサブクラスに分割されるとき、マルチクラスマッピングが発生する。係る場合、対が『考えられる兄弟』又は『マルチクラスマッピング』のどちら及び『サブセット』としてすでにタグ付けされているのが期待されるだろう。
【0387】
マルチクラスマッピングは、各オントロジーのクラス及びサブクラスの潜在的に関係するクラスのためにデータプロパティの数を分析することによって通常検出される。サブクラスを有さないオントロジークラスが、大部分のデータプロパティを有するサブクラスのデータプロパティを加えた、他方のオントロジーのクラスにほぼ等しいデータプロパティの数を有する場合、第2のオントロジーのクラスのサブクラスが第1のオントロジーのクラスに非正規化されることが推定される。
【0388】
以下の考えられるシナリオがある。
・一方のオントロジーの単一クラスのデータプロパティは、他方のオントロジーのクラス及び1つ又は複数のサブクラスでデータプロパティにマップする。
・クラス及びサブクラスのデータプロパティは、他方のオントロジーのクラス及びいくつかのサブクラスのデータプロパティにマッチする。
【0389】
第1の場合、データプロパティカウントは、第1のオントロジークラスのデータプロパティを、第2のオントロジーのクラス+サブクラスから成る各対のデータプロパティとマッチさせることを検討することによって実行される。
【0390】
例えば、オントロジー1の企業は子がなく、オントロジー2に2つの子を有する。企業(1)のデータプロパティを企業+上場企業(2)で分析することが、データプロパティの数がマッチするが、すべての意味はマッチしないことを示す場合。
【0391】
企業(A)のデータプロパティを企業+非上場企業(B)で分析することは、データプロパティの数及び意味の両方がマッチすることを示す。これは、『異なる正規化』としてタグを付けられ、マッチング値MV=1.0を割り当てられることがある。
【0392】
上場企業及び非上場企業が兄弟であるため、上場企業がオントロジー2の濃縮であり、したがってそれは『エンリッチメント』としてタグを付け、マッチング値は二度、マッチングデータプロパティをデータプロパティの総数で除算することによって計算できる。
【数14】
上式ではN()は、概念A、B及びA∩Bのデータプロパティの数を生じせるための関数である。
【0393】
この方法は、2つのクラスが異なる数の子を有する状況に対して一般化できる。この状況は『可能なエンリッチメント』としてタグを付けることができ、関与する各クラスは単一の濃縮IDを与えられる。
【0394】
マルチクラスマッピングの別のケースは、クラスが異なる方法で正規化されていたことである。例えば、車両クラスは(SUV、セダン、クーペ、コンバーチブルとしてのサブクラスとなる、又はそれは製造メーカ(Citroen、Peugeot、Fiat、Rover)によってサブクラス化できるだろう。したがって、2つの車両オントロジーはデータプロパティを異なる方法でパースするだろう。しかしながら、車両の属性は2つのオントロジーで同一であろう。
【0395】
一般的なケースでは、データプロパティのセットが2つのオントロジーからのサブクラスのセットに割り当てられ、サブクラスが各オントロジーで異なるが、これらのクラスを定義するデータプロパティのセットが同一又は非常に類似するどちらかである場合、定義されたサブクラス間には多対多のマッピングがある。これは、『可能なエンリッチメント』としてもタグ付けられ、関与する各クラスは単一の濃縮IDを与えられる。
【0396】
このステップについてMVが計算されないため、MV
5A=MV
4A=0.9583である。
【0397】
PMP解決は、テーブルに記憶される非正規化されたクラスを識別することによって推測上のオントロジーの追加クラスを識別することを含み、オントロジーが引き出されたオントロジーの主要な濃縮を生じさせる。
【0398】
各PMP−set−Identifierは、上述されたようにタイプ構造又はBOM構造へのそのマッチングを決定するために分析される。これらは、
図19Aのマッチング構造関係性でオブジェクトプロパティだけをマップすることによって決定されるように、概して
図19Aに示されるERA図のなんらかの配置にマップする。データプロパティインスタンスから抽出されたクラスの例は、表14〜17に示される。
【0399】
いったんマッピングが決定されると、BOM構造で取り込まれる非正規化オントロジーを生成することは相対的に簡単なことである。この生成されたオントロジー構成要素は、次いで、上述されたクラスの意味論的意味に基づいて低レベルクラスマッチングのステップに戻ることによって合わせることができる。このステップで、BOM分析から生成されるクラスが適切な最小マップに追加される。
【0400】
それは低レベルクラスマッチングのステップ及び新規に識別されたクラスのMV値の再計算を生じさせるので、MVはこのステップでは計算されない。
【0401】
この濃縮に続き、分析が実行され、マルチクラスマッピングプロセスで識別された各エンリッチメント_IDが2つのオントロジーからのサブクラスセットがマッチするか、それとも兄弟を含むのかを判断するために分析される。例えば、オントロジー1クラス組織はサブクラスクラブ及び企業を有する。オントロジー2は特殊法人、クラブ、及び企業を含む。特殊法人はオントロジー2で兄弟であるが、オントロジー1には表示されない。例えば、特殊法人が何にも合わないというよりむしろ、それをオントロジー1に対する濃縮として識別する方がよいだろう。
【0402】
濃縮を適用できる前に、特殊法人が、クラブ及び企業のデータプロパティを分析することによって、他方のサブクラスの1つに非正規化されたかどうかを判断することが必要であるだろう。
【0403】
クラスが兄弟として追加される基準を満たすと仮定すると、クラス及びサブクラスを含んだ最小マップがこの段階で同一であることを保証することが可能であるべきである。
【0404】
このステップには新しいMVは計算されない。各兄弟はそのカレントMVを保持する。このMVは、1.0のカレントMVを兄弟として識別された構成要素に割り当てることによって、小さい係数分、上昇させることができるだろう。
【0405】
いったんすべてのクラスが解決され、濃縮が完了されると、任意の主要な再構築はすでに発生したはずであり、したがって最小マップを分解できる。濃縮が上記の項で追加された場合、追加の再構築が発生した。これらの事実の両方とも、最小マッピングを改善するだろう。
【0406】
MV
7<MV
ATとのアラインメント、閾値は拒絶されるだろう。MV
ATはアラインメントのためのマッチ値閾値である。
【0407】
次のステップは、冗長性認識パターンを適用することであり、これにより各最小マップの中で、冗長性、非一貫性、及び小前提が決定される。これは、上述のステップによって大部分はすでに実行されている。
【0408】
いったん最小マップが完全に処理されると、それはRDFトリプルのセットとしてそのクラスとともに記録される。
【0409】
最後に、最小マップは、上記に生成されたRDFトリプルにクエリーを行うことによって、単一のマップの中に組み入れられなければならない。これは、受け入れ可能な閾値値とのアラインメントが見付けられたすべてのクラスのマップとなる。合わされていないアイテムがある場合がある。
【0410】
累積マッチング数式を使用すると、最終マッチ値MV
8=0.9375である。
【0411】
線形マッチング数式MV=(1
*.5+2
*1+3
*1)/(1+2+3)=5.5/6=0.9167である。
【0412】
例のアラインメントインデックスは、上述されたオントロジー例のアラインメントマップを示す表18に示される。結果は、多様なアルゴリズムの効果を強調するために、アラインメント対及びステップ番号ごとに順番に配列されている。実際には、それらは
シーケンス(列1)で実行されるだろう。
【表18】
【0413】
マージプロセスは、次いでマージされたオントロジー1906を生じさせるために実行できる。ただし、これは任意選択であり、好ましい実装による。ユーザがオントロジーをマージすることを決定する場合、次いで以下を含んだいくつかの決定を下す必要がある。
・マージされたオントロジーがオントロジー2の中へのオントロジー1であるのか、それとも逆であるのか、又はマージされたオントロジーが新しいURIを与えられるのかどうかを判断する。これらのケースは、
図19D及び
図19Eに図式で示される。
・MV
MTをマージのためのマッチ値閾値として選択する。実際には合わない関係クラスを含む場合があるので、概して、MV
MTはMV
ATよりも低いだろう。
・クラスがマージされない場合、次いでマージされたオントロジーにはクラスの両方とも含まれるべきか、クラスのどちらも含まれてはならないのか、それともクラスの内の一方だけが含まれるべきかに関して決定が必要とされる。これは規則として、又は「尋ねる」として指定でき、その場合、マージプロセスは、ユーザがアクションを決定できるようにするために休止するだろう。
・アラインメントがなかったクラスはマージされたオントロジーに追加されるべきだろうか。例えば、オントロジー1がクラスA、B、及びクラスB,Cのオントロジー2から成り、ここでBが合わされているクラスのセットである場合には、マージされたオントロジーはA、B、C、又はA、B、又はB、C、又は単にBとなるべきか。
【0414】
いったんマージパラメータが決定されると、2つのオントロジーのクラス、データプロパティ、及びオブジェクトプロパティをマージすることは簡単なことである。
【0415】
あらゆるデータプロパティインスタンスは、特別の定めのない限り、その元のURIを保持するだろう。したがって、合わせられたクラスが各オントロジーにインスタンスデータを有する場合、次いで単一のマージされたクラスは両方のオントロジーからのインスタンスを含むだろう。
【0416】
一般に、アライナモジュールとのユーザ対話は、アラインメントプロセスを制御するためだろう。
【0417】
第1のステップは、アラインメント及びマージで使用されるパラメータを指定する設定ファイルをロードすることである。設定できるいくつかのメタデータパラメータがある。これらは、以下を含む。
・合わせられるオントロジーのURI
・アラインメントマップを記憶するための場所
・マージされたオントロジーを記憶するための場所
・MV
ATを合わせるためのマッチ値閾値
・MV
MTをマージするためのマッチ値閾値
・低レベルクラスマッチング中に同一性を受け入れるためのマッチ品質
・任意選択で、アライメントテーブルに既知のアラインメントを事前にロードする
・各分析ステップで適用される重み。これらは機械学習アルゴリズムによって決定されるだろう。
・マージに対するユーザ入力を可能にするために、マージ中にプロセスを休止するかどうか
・最大ランタイム
・エラー及びログメッセージの冗長
・その他。
【0418】
ユーザは次いでプロセスを実行又は予定する。ユーザ入力のための休止が指定されていた場合、要求されると、及び典型的にはブラウザモジュールによって表示される画面を介して提供されると、ユーザは入力を提供する。
【0419】
プロセスの完了時、ユーザは以下を調べる。
・以下の統計を示す、作成された報告書
‐各オントロジーの入力クラスの数
‐合わせられたクラスの数
‐識別されたPMPの数
‐拡大されたPMPの数
‐PMPから拡大されたクラスの数
‐PMPから拡大されたデータプロパティインスタンスの数
‐最大マッチ値及び最小マッチ値
‐マージされたクラスの数
‐マージされたオントロジーのクラスの数
‐マージされたオントロジーのデータインスタンスの数
‐他
・エラーメッセージ、警告メッセージ、及び情報メッセージを評価するためのランタイムログ
【0420】
この情報に基づいて、ユーザはアラインメントを受け入れる又はマージする又は設定パラメータのいくらかを変化し、プロセスをスケジューリングし直すことを決定する。
【0421】
したがって、上述されたプロセスは、ユーザがオントロジーと対話して、オントロジーをブラウズすること、切り詰めること、及び合わせることを含んださまざまなタスクを実行できるようにする。これらのプロセスは、さまざまなモジュールを使用し、ソースデータストアとターゲットデータストアとの間でのコンテンツの転送を容易にするために、ソースデータ構造及びターゲットデータ構造をマップする際に同様に使用できる、推測上のオントロジー及び様式化オントロジーを含んだオントロジー間のマッピングを決定するような動作を実行できるようにする。
【0422】
明細書及び続く特許請求の範囲を通して、文脈上他の意味に解釈すべき場合を除いて、単語「含む」及び「含む」又は「含んでいる」などの変形は、記載されている整数又は整数のグループ又はステップの包含であるが、任意の他の整数又は整数のグループの排除を暗示しないと理解される。
【0423】
当業者は、多数の変形形態及び修正形態が明らかになることを理解する。当業者にとって明らかになるすべての係る変形形態及び修正形態は、本発明が説明される前に広く表示される精神及び範囲内であるとみなされるべきである。
【発明を実施するための形態】
【0056】
オントロジーを使用し、マッピングを生成する方法例はここで
図1Aを参照して説明される。
【0057】
この例の目的のために、プロセスは、より詳細に以下に説明されるように、コンピュータシステムのマイクロプロセッサ等の電子処理装置を使用し、少なくとも部分的に実行されることが仮定される。
【0058】
例の少なくともいくつかでは、コンテンツが、データベース又はファイル等のコンテンツレポジトリとして作用するデータストアのコンテンツフィールドに1つ又は複数のコンテンツインスタンスとして記憶されると仮定される。したがって、コンテンツフィールドは、1つ又は複数のデータベースフィールドにわたって記憶される値を含んだ、データベースレコードに対応するコンテンツインスタンスを有するデータベースのデータベースフィールドとなるだろう。代わりに、コンテンツフィールドは、以下の説明から明らかになるように、例えばデータがデータベースから抽出される、及び/又はデータベースに転送されるとき、データをトランスポートするために使用されてよいXMLファイル等のファイルの中に定義されたフィールドとなるだろう。別の代替策として、コンテンツフィールドは、以下の説明から明らかになるように、例えば、データがRDFトリプルストアデータベースから抽出される、及び/又はRDFトリプルストアデータベースに転送されるとき、データをトランスポートするために使用されてよいRDFトリプルストア等のファイルの中で定義されるフィールドとなるだろう。コンテンツはデータベーススケーマ、XMLドキューメント定義、オン
トロジーそれともスケーマなどのデータ構造に従って保存していることを想定してい
る。
【0059】
以下の説明を通して説明の目的上、用語「ソース」は、データがそこから抽出されているデータベース又はファイル等のデータストアを指すために使用される。一方、用語「ターゲット」は、データがその中に記憶されているデータベース又はファイル等のデータストアを指すために使用される。これらの用語は、例えば、考えられるソースとターゲットを区別するため等の説明のためだけであり、制限的になることを意図していない。
【0060】
用語「コンテンツインスタンス」は、ソースから抽出中、及び/又はターゲットに転送中であり、制限的になることを意図していないコンテンツの個々の要素である。例えば、用語コンテンツインスタンスは、いくつかの異なるデータベースフィールドに記憶された値を有するデータベースレコード若しくは関係するデータベースレコードのセットを指すことがある、又は代わりに単一のフィールドの中に記憶された単一の値を指すことがあるだろう。
【0061】
用語「オントロジー」は、ドメインの中の概念のセットとして、それらの概念のタイプ、プロパティ、及び相互関係を示すために共有された語彙を使用し、知識を表す。オントロジーは、通常、個人、クラス、オブジェクト、属性等のいくつかの構成要素を含み、用語「オントロジー用語」は概して、これらの構成要素及び任意選択でこれらの概念の特定の概念を指すために使用される。
【0062】
用語「意味」は、特定のオントロジー用語、コンテンツフィールド名等の意味解釈を指すことを目的とする。したがって、用語意味は、以下により詳細に説明されるように、例えば同音異義語、同義語、部分語等の問題を説明するために、オントロジー用語又はコンテンツフィールドの意図された意味を包含する。
【0063】
この例では、ステップ100で、電子処理装置はそれぞれのオントロジー用語を有するオントロジーを決定する。このプロセスは任意の適切な方法で実行することができ、これは電子処理装置に、例えば1つ又は複数のオントロジーデータベースに記憶されている、いくつかの既存のオントロジーの内の1つ又は複数を選択させることを含むことがあり、又は代わりに推測上のオントロジーを生成することによって達成できるだろう。一例では、選択されたオントロジーは、ソースデータ構造と関連付けられたソースオントロジー、及びターゲットデータ構造と関連付けられたターゲットオントロジーに相当する。ただし、これは必須ではない。
【0064】
オントロジーの選択は、ソースデータ構造又はターゲットデータ構造に基づいて達成でき、適切なマッチが見つけられるまでオントロジー用語にデータ構造の中のフィールドを比較することを含むことがあるだろう。また、このプロセスは、いくつかのオントロジーのドメインを調べ、ドメイン、したがってコンテンツの特定の主題フィールドに関連性のあるオントロジー、コンテンツが関係する業界等を選択することも含むだろう。オントロジーの選択は、例えば電子処理装置に、関連するコンテンツの主題フィールドの表示を提供することによって自動化されることがあり、例えば電子処理装置にユーザがこれらを選択できるようにする利用可能なオントロジーの詳細を表示させることによって手動になることがあり、又は手動プロセス及び自動プロセスの組合せによることがある。
【0065】
代わりに、これは、例えばメタデータ、データベーススキーマ等を使用し、ソースデータ構造又はターゲットデータ構造から『推測上の』オントロジーを生成することを含むことがあるだろう。このプロセスは相関的な参照整合性の制約からなんらかのオントロジー公理を導き出すことを含むことがあるが、大部分の公理は手作業で追加する又は無視する必要があるだろう。この推測上のオントロジーはメタデータを追加するために既存の豊かなオントロジーと合わせられてよい。
【0066】
ステップ110で、電子処理装置はオントロジーの少なくとも1つからオントロジー用語のグループを決定する。オントロジー用語のグループは、通常、それぞれのオントロジーのサブグループであり、関係するオントロジー用語のグループを表す。グループは通常、例えば対象のオントロジー用語に対応する選択されたオントロジー用語を含む。したがって、例えば、ソースデータ構造及びターゲットデータ構造をマップする際に使用されるとき、オントロジー用語のグループは、例えばその中のコンテンツを抽出し、ターゲットデータストアに転送できるようにするためにターゲットデータフィールド又はソースデータフィールドにマップされるべきであるソースデータフィールド又はターゲットデータフィールドに対応する選択されたオントロジー用語を含むことがある。グループは、さらに通常、選択されたオントロジー用語間の関係性を維持するために必要とされるオントロジー用語を含む。
【0067】
グループがどのようにして決定されるのかは好まれる実装に応じて変化し、例えば抽出されるコンテンツに基づいて、いくつかの従前の決定されたグループの1つを選択することを含むことがあるだろう。ただし、代わりに、これは、選択されたオントロジー用語を識別することによってグループを生成することを含み、次いで選択されたオントロジー用語のそれぞれを接続する経路が見つけられるまで関係するオントロジー用語を漸次的に調べる。このプロセスは、それが、オントロジー全体よりもより容易に管理できるが、依然としてオントロジーの構造及び公理を維持する、削減された数のオントロジー用語にオントロジーを切り詰めることを実際上含むことがあるので、切り詰めることと呼ばれることがある。
【0068】
ステップ120で、電子処理装置は、オントロジー用語のグループの少なくともいくつかについてオントロジー用語間のアラインメントを決定し、アラインメントはオントロジー用語のオントロジー用語意味に従って少なくとも部分的に決定される。したがって、電子処理装置は一方のオントロジーのオントロジー用語の少なくとも意味を調べ、他方のオントロジーの同等のオントロジー用語を識別しようと試みる。したがって、最も簡略なレベルで、これは同じ意味を有するソースオントロジー用語及びターゲットオントロジー用語を識別することを含むことがあるが、より典型的には、ソースオントロジー用語及びターゲットオントロジー用語が他方のソースオントロジー用語及びターゲットオントロジー用語と類似した関係性を有するかどうかを識別するために、ソースオントロジー用語間、及びターゲットオントロジー用途間の関係性も調べる。
【0069】
アラインメントは1対1のマッピングである必要はなく、一方のオントロジーでの単一のオントロジー用語が他方のオントロジーでの複数のオントロジー用語と一致することがあることに留意されたい。ターゲットオントロジーが名前及び苗字を別々の概念として定義することがあり、その場合コンテンツは、コンテンツがソースからターゲットに転送される際にマージされる必要があるのに対し、例えば、ソースオントロジーは単一の概念として個人の名前を定義してよい。
【0070】
ステップ130で、電子処理装置はアラインメントに従ってマッピングを生成するために機能する。マッピングはオントロジー自体の間のマッピングを表すことがある、及び/又はターゲットオントロジー用語とソースオントロジー用語の間のアラインメントに基づいて、それぞれのソースデータ構造及びターゲットデータ構造のソースデータフィールドとターゲットデータフィールドの間のマッピングを表すことがある。このようにして、例えば電子処理装置はソースデータフィールドについて対応するソースオントロジー用語を、次いでアラインメントを使用し、合わせられたターゲットオントロジー用語、したがってターゲットデータフィールドを決定できる。マッピングは次いで通常マッピングファイル、インデックス、テーブル、マージされたオントロジー等の形式で記憶され、後にデータを転送する際にマッピングを使用できるようにする。
【0071】
したがって、上記プロセスは、2つのオントロジーを合わせることを可能にし、これは同様にマッピングを作成するために使用される。マッピングは異なるオントロジーでオントロジー用語を等しくするために使用でき、これを同様に、それぞれのオントロジーを使用し、ソースデータフィールドをターゲットデータフィールドにマップするために使用できるようにする。このマッピングは、コンテンツが異なるデータ構造を有するデータストア間で転送されているときにもコンテンツの構造が維持されることを保証するために役立つオントロジーを使用して、ソースとターゲットの間でコンテンツを転送する際に使用できる。また、オントロジーの使用は、例えば、コンテンツが必要とされる通常の形式をとり、必要とされる場合には正規化も提供することを保証するために、転送されているコンテンツの整合性が維持される、又はそれが転送される際に改善されていることを保証するのに役立つこともある。このようにして、オントロジーを使用することは、コンテンツがソースからターゲットデータストアに転送される際に追加の関係性制限を課すことを可能にし、これによりソースデータストアのデータが第3の通常の形式で記憶されない場合にも、データは、転送される際に第3の通常に変換できる。
【0072】
プロセスがソースデータ構造とターゲットデータ構造との間でマッピングを作成するために使用されているとき、ソースオントロジー及びターゲットオントロジーは、Galenオントロジー(概して様式化オントロジーと呼ばれる)等の公式に作成されたオントロジー等の従前に定義されたオントロジーであることがある、又は代わりにデータ構造自体に基づいて生成される推測上のオントロジーであることがある。これは、
図1Bを参照してここで説明されるように、いくつかの異なるマッピング関係を確立できるようにする。
【0073】
この例では、それぞれのソースデータ構造及びターゲットデータ構造S、Tを有するソースデータストア及びターゲットデータストアが示される。各データストアは対応する推測上のオントロジー150,160を有することがあり、対応する様式化オントロジー151、161も存在している。これが、いくつかの異なるマッピングと確立できるようにする。
【0074】
例えば、マッピングは、推測上のオントロジー150、160間で直接的に作成することができ、ソースとターゲットS、Tの間で直接的にコンテンツを転送できるようにする。
【0075】
さらに、及び/又は代わりに、マッピングは、上述された技法を使用し、推測上のオントロジー150、160と対応する様式化オントロジー151、161との間で作成できるだろう。このプロセスは、ソースデータ構造又はターゲットデータ構造S、Tに基づいて推測上のオントロジー150、160を作成し、次いで実質的に自動で様式化オントロジー151、161にマップし、それによって推測上のオントロジー150、160のオントロジー用語に、意味、定義、及び潜在的な関係性を提供することを可能にする。また、このプロセスはそれぞれのデータ構造に記憶されるデータを正規化する際にも使用できる。
【0076】
オントロジー151、161が同一である場合、様式化オントロジー151、161に推測上のオントロジー150、160をマップすることは、ソースとターゲットS、Tの間でコンテンツを転送できるようにする。代わりに、様式化オントロジーは、ソースとターゲットS、Tとの間でのコンテンツの転送を再び可能にするためにそれらの間のマッピングを可能にするために合わせることもできるだろう。
【0077】
したがって、上述された技法はオントロジー間でマッピングを作成するために使用することができ、これらは同様にソースデータ構造とターゲットデータ構造との間で直接的にマッピングを確立するために使用されることが理解される。これは、不同等のソース及びターゲット間でのコンテンツの転送を促進し、様式化データ構造に従ってこれを実行できるようにし、それによってコンテンツが正規化された形式で提供されることを保証する。したがって、これは不同等のデータ構造間のコンテンツ転送を可能にするだけではなく、非正規化形式で記憶されるデータと関連付けられた問題を克服するために使用することもできる。
【0078】
いくつかの追加の特徴がここで説明される。この点で、電子処理装置は、ここでさらに説明されるように、通常、いくつかの異なる機能を実行して、オントロジーのインデックスを生成すること、ユーザがオントロジーをブラウズし、オントロジーと対話し、オントロジーを切り詰め、オントロジー用語の意味を解釈することを可能にすることを含んだ上述のプロセスを容易にするように適合される。
【0079】
上述されたように、マッピングは任意の形式となることがある。マッピングがオントロジー間であるとき、以下により詳細に説明されるように、これはマージされたオントロジー、又は代わりにアラインメントインデックスの形式となることがある。
【0080】
含まれているオントロジーは、好ましい実装に応じて推測上のオントロジー及び/又は様式化オントロジーを含むことがある。1つの特定の例では、電子処理装置は様式化オントロジーに推測上のオントロジーをマップするためにマッピングを生成する。
【0081】
また上述されたように、マッピングは、いくつかのソースデータフィールドを含んだソースデータ構造を有するソースデータストアからいくつかのターゲットデータフィールドを含んだターゲットデータストアを有するターゲットデータストアにコンテンツを転送する際に使用でき、オントロジーはソースデータ構造及びターゲットデータ構造と関連付けられ、電子処理装置はマッピングを使用し、ソースデータフィールドとターゲットデータフィールド間でコンテンツを転送する。したがって、オントロジーはソースデータ構造と関連付けられたソースオントロジー、及びターゲットデータ構造と関連付けられたターゲットオントロジーを含むことがあり、ソースオントロジー及びターゲットオントロジーは1つ又は複数の様式化オントロジーにマップされた推測上のオントロジーである。
【0082】
したがって、上述されたプロセスでは、電子処理装置は、推測上のオントロジーを生成する又はいくつかの既存の推測上のオントロジー若しくは様式化オントロジーの内の1つを選択することによってオントロジーを決定できる。
【0083】
電子処理装置は、通常、ソースデータ構造若しくはターゲットデータ構造と関連付けられたメタデータ、又はソースデータ構造若しくはターゲットデータ構造のソースデータフィールド及びターゲットデータフィールドのどちらかを使用し、ソースオントロジー又はターゲットオントロジーを決定する。このプロセスは、推測上のオントロジーを生成すること、又は例えばオントロジーデータベース等のストアに記憶されているオントロジーからいくつかの既存のオントロジーの1つを選択することを含むことがあるだろう。この後者の場合、電子処理装置は、いくつかの既存のオントロジーのオントロジー用語とデータ構造データフィールドを比較し、比較の結果に従って該いくつかの既存のオントロジーの1つを選択できる。
【0084】
代わりに、例えばデータベーススキーマからオントロジーを生成するとき、電子処理装置は、通常、スキーマのテーブルを識別し、各テーブルに対応するオントロジー用語を作成し、少なくとも1つの部品表テーブルを識別し、部品表テーブルの各エントリに対応するオントロジー用語を作成する。このようにして、このプロセスはあらゆる非正規化データベーステーブルのコンテンツを調べるために機能し、追加のオントロジー用語を識別するためにこのテーブルのコンテンツを拡大する。このプロセスの一部として、電子処理装置は部品表テーブルの各エントリに対応するオントロジー用語の表示を表示し、ユーザ入力コマンドに応じて推測上のオントロジーに該オントロジー用語を追加できる。これにより、ユーザは、必要な場合、オントロジーの作成を無効にできる。
【0085】
電子処理装置は、推測上のオントロジーを生成するとき、データベーススキーマによって定義されたテーブル構造を使用し、オントロジー用語間の関係性をさらに生成できる。このプロセスは、電子処理装置が、オントロジー用語に対応するクラス、クラスの少なくともいくつかに対するデータプロパティ、及びクラス間の関係性を定義するオブジェクトプロパティを含んだ推測上のオントロジーを生成できるようにする。
【0086】
一例では、電子処理装置は、少なくとも1つのオントロジーのオントロジー用語の表示を含んだ、少なくとも1つのオントロジーのためのインデックスを決定し、オントロジー用語のグループ及びオントロジー用語間のアラインメントを決定するためにインデックスを使用する。インデックスの使用は必須ではないが、インデックスの使用は、オントロジー全体の使用と比較して処理する必要があるデータの量をかなり削減し、それによってブラウズ、グループ化(切り詰め)、及びアラインメントのプロセスをより扱いやすくする。
【0087】
インデックスは任意の適切な形式となることがあるが、通常、オントロジー用語ごとに、オントロジー用語の名前、及びオントロジー用語の意味の表示、及びオントロジー用語のタイプを含む。また、インデックスは、URI(ユニフォーム・リソース・アイデンティファイア)等の形式をとることがあるだろう、それぞれのオントロジーでのオントロジー用語のアドレス等の追加の情報を含んでもよい。
【0088】
電子処理装置は、オントロジー用語ごとに、オントロジー用語名を識別し、オントロジー用語タイプを識別し、セマンティックマッチングプロセスを使用して各オントロジー用語のオントロジー意味を識別し、オントロジー用語名、オントロジー用語タイプ、及びオントロジー用語意味の表示を含んだインデックスエントリを作成することによってインデックスを生成する。
【0089】
一例では、電子処理装置は、複数のオントロジーのために単一のインデックスを生成し、これは必須ではなく、代わりに別個のインデックスが、インデックスが付けられるオントロジーごとに使用できるが、インデックスエントリはオントロジー用語と関連付けられたオントロジーの表示を含む。
【0090】
電子処理装置は、通常さらに、オントロジーに1つ又は複数のオントロジー用語の表示を表示し、ユーザ入力コマンドに応じて少なくとも1つのオントロジー用語を識別し、少なくとも1つの識別されたオントロジー用語及び少なくとも1つの識別されたオントロジー用語と関連付けられたデータプロパティの内の少なくとも1つの詳細を表示するように適合される。したがって、これによりユーザはオントロジーをブラウズし、その中に定義されたオントロジー用語の詳細を見ることができる。これは、ユーザが、正しいオントロジーが使用されているかどうかを評価し、オントロジーの範囲を理解し、異なるオントロジー用語間の関係性を探索し、ソースデータ構造又はターゲットデータ構造がどのようにオントロジーに関係するかを評価することを可能にするために有用であることがある。
【0091】
電子処理装置は、通常、オントロジーインデックスを使用し、1つ又は複数のオントロジー用語の表示を決定する。したがって、インデックスが、オントロジー用語のリストを表示し、次いでその後選択されたオントロジー用語と関連付けられたデータプロパティを探索するために電子処理装置に迅速な仕組みを提供することが理解される。
【0092】
電子処理装置は、通常、ユーザ入力コマンドに応じて、ユーザによって選択されたオントロジー用語、及び対応するユーザによって選択されたデータプロパティを決定するように適合される。これは選択されたオントロジー用語及びデータプロパティの詳細を表示するために使用できるだけではなく、電子処理装置が実行可能コードを生成できるようにもする。実行可能コードは、ユーザによって選択されたオントロジー用語及びデータプロパティに基づき、コンピュータシステムで実行されるとき、コンピュータシステムに、ユーザが、ユーザによって選択されたオントロジー用語に対応するデータ構造を有するデータストアに記憶されたコンテンツと対話できるようにするユーザインタフェースを表示させる。したがって、これは、電子処理装置が、ユーザがコンテンツと対話し、その後それぞれのソースデータ構造及び/又はターゲットデータ構造からコンテンツをエクスポートする又はコンテンツをインポートすることを可能にするインタフェースを表示するために使用できるコードを自動的に生成できるようにするための機構を提供する。
【0093】
したがって、これによってユーザがオントロジーの中のオントロジー用語をブラウズし、次いでデータ構造のデータフィールドに対応するオントロジー用語を選択できることが理解される。これは、同様に、ユーザが次いでデータ構造の中に記憶されたコンテンツと対話できるようにするインタフェースとして作用することができるコードを生成できるようにする。
【0094】
一例では、実行可能コードは、コンピュータシステムに、例えばSPARQL(SPARQLプロトコル及びRDFクエリー言語)を使用し、例えば、クエリーを行い、コンテンツを取り出すことによってソースオントロジー又はターゲットオントロジーに従ってソースデータ構造又はターゲットデータ構造に記憶されたデータと対話するためのクエリーを生成させる。これは、データベースに対するインタフェースとして作用することができるコンピュータソフトウェアを迅速に配備するための機構を提供する。さらに、これがオントロジーに基づいて生成されているおかげで、それはオントロジーの中で定義された関係性をコードの構造、したがって結果として生じるクエリーの中に統合できる。したがって、これによってコンピュータシステムは、データプロパティ又はユーザによって選択されたオントロジー用語間の関係性に従ってクエリーを生成できる。
【0095】
これを達成するために、コンピュータシステムは、通常、例えばソースオントロジー又はターゲットオントロジーから1つ又は複数のオントロジー用語の表示を表示し、ユーザ入力コマンドに応じて少なくとも1つのオントロジー用語の選択を決定し、対応するデータフィールドに記憶されたデータにクエリーを行う。
【0096】
オントロジー用語の意味を決定し、異なるオントロジー用語の意味の類似性を比較するために、電子処理装置は通常セマンティックマッチングを実行するように適合される。これは、通常、例えば概念マッチングデータベース等の参照データベースに記憶された、いくつかの潜在的なオントロジー用語意味とオントロジー用語を比較すること、及び比較の結果に従ってオントロジー用語意味として潜在的なオントロジー用語意味の1つを選択することを含む。
【0097】
これを達成するために、電子処理装置は、各比較の結果にマッチングスコアを生成し、マッチングスコアに従ってオントロジー用語意味を決定することによってオントロジー用語意味を決定する。マッチングスコアを決定する際に、電子処理装置は、潜在的なオントロジー用語意味が、検討中のオントロジー用語の同義語、反意語、部分語、スーパークラス、及びサブクラスの内の少なくとも1つであるかどうかを判断する。
【0098】
いったんオントロジー用語意味が作成されると、これの表示は通常インデックスの部分として記憶され、表示は定義された意味を示す識別子及び同等な意味のリストの少なくとも1つを含む。したがって、単一の一意識別子がいくつかの異なるオントロジーの中の各一意の概念に割り当てられ、異なるオントロジー全体で共通の識別子によって共通の意味を識別できるようにする。識別子は、好ましい実装に応じて一意の英数字コード、見出し語、語根等であるだろう。これにより、同等なオントロジー用語、したがって合わせられたオントロジー用語を識別するプロセスははるかに容易になる。
【0099】
同様に、電子処理装置は、通常、いくつかのオントロジー用語のオントロジー用語意味を比較し、各比較の結果にマッチングスコアを生成し、マッチングスコアに従ってアラインメントを決定することによってオントロジー用語間のアラインメントを決定する。また、より典型的には、電子処理装置は、オントロジー用語、又はオントロジー用語のデータプロパティの間の関係性に基づいてアラインメントを決定する。したがって、これは、アラインメントが存在するかどうかを判断するために、用語の絶対的な意味だけではなく、オントロジーの相対的な構造も考慮に入れる。したがって、電子処理装置はソースオントロジー用語間の関係性を決定し、ターゲットオントロジー用語間の関係性を決定し、関係性を比較し、比較の結果に従ってソースオントロジー用語とターゲットオントロジー用語間のアラインメントを決定できる。
【0100】
電子処理装置は、通常、ソースオントロジーからの1つ又は複数のソースオントロジー用語とターゲットオントロジーからの1つ又は複数のターゲットオントロジー用語間のアラインメントを決定し、したがってこれが1対1の関係性、多対1の関係性、及び1対多の関係性を包含できるようにする。
【0101】
上述されたように、電子処理装置は、例えば現在の用途に関連性がない又は使用されていないオントロジー用語を削除することができ、現在の状況に関連性があるオントロジー用語だけが残るようにオントロジーを切り詰めることによってオントロジー用語のグループを決定できる。一例では、これは選択されたオントロジー用語を決定し、次いで選択されたオントロジー用語及びオントロジー用語間の関係性に少なくとも部分的に従って、オントロジー用語のグループを決定することによって達成される。
【0102】
したがって、選択されたオントロジー用語ごとに、電子処理装置は、いくつかの異なるタイプの関係性のそれぞれに定義された関係性経路長の中でオントロジー用語を識別し、ソースオントロジー用語のグループに識別されたオントロジー用語を追加する。このプロセスは、電子処理装置が、すべての選択されたオントロジー用語が関係性によって接続されるとき等の所望される端点に到達するまで識別されたオントロジー用語を反復して追加するように、繰り返し実行できる。これは、次いでオントロジーの中の関係性を保ち、オントロジーを合わせる、マッピングを作成する等の他のプロセスで使用できるようにする、関係するオントロジー用語のグループを確立する。
【0103】
上記プロセスの一部として、いくつかの異なる関係性が、選択されたオントロジー用語のすべての間で経路を確立しようとして調べることができ、電子処理装置は任意選択で異なるタイプの関係性に異なる関係性経路長を使用する。したがって、例えば、なんらかのタイプの関係性はより重要と見なされ、したがって関係オントロジー用語を識別するときに、通常、より長い経路長を与えられるだろう。一例では、経路長(複数の場合がある)は、ユーザによって定義され、グループの作成を制御する際に手動介入を使用できるようにする。
【0104】
一例では、上述されたプロセスを実行できるようにするために、いくつかの異なるツールを使用して、マッピングを生成し、オントロジーを管理するのを支援できる。一例では、ツールは、オントロジーツール及びデータ管理ツールの統合されたパッケージを形成するソフトウェアスイートの一部として提供される。一例では、ツールは、オントロジーのオントロジー用語を示すインデックスを生成するインデクサモジュール、オントロジーのオントロジー用語のブラウズを可能にし、オントロジーの少なくとも一部を具現化するコードを生成し、それによってユーザがオントロジーに従ってデータ構造に記憶されたデータと対話できるようにするブラウザモジュール、オントロジー用語異なるオントロジー間のアラインメントを決定するアライナモジュール、オントロジー用語間の関係性を少なくとも部分的に使用し、少なくとも1つのオントロジーの中でオントロジー用語のグループを決定するプルーナモジュール、及びオントロジー用語意味を識別するセマンティックマッチャモジュールを含む。ただし、それぞれのモジュールの使用は必須ではなく、他の構成を使用できる。
【0105】
一例では、プロセスは、プログラムされたコンピュータシステム等の処理システムを少なくとも部分的に使用して実行できる。これは、スタンドアロンコンピュータで実行でき、マイクロプロセッサは上述された方法を実行できるようにするアプリケーションソフトウェアを実行する。代わりに、プロセスは、
図2を参照してここで説明される例である分散型アーキテクチャの一部として動作する1つ又は複数の処理システムによって実行できる。
【0106】
この例では、2つの基地局201はインターネット202、及び/又はいくつかのローカルエリアネットワーク(LAN)204等、通信網を介していくつかのコンピュータシステム203に結合される。ネットワーク202、204の構成は例のためだけであり、実際には、基地局201、コンピュータシステム203は、直接接続又はBluetooth等のポイントツーポイント接続だけではなく、モバイルネットワーク、802.11ネットワーク等のプライベートネットワーク、インターネット、LAN、WAN等を含むが、これに限定されるものではない、有線接続又は無線接続を介して等、任意の適切な機構も介して通信できることが理解される。
【0107】
一例では、各基地局201はデータベース211に結合された処理システム210を含む。基地局201は、例えばソースデータストアとターゲットデータストアとの間でコンテンツを転送する際に使用するためのマッピングの生成だけではなく、例えば切り詰め又はアラインメントを実行するためにオントロジーを管理する際に使用されるように適合される。コンピュータシステム203は、マッピングの生成等のプロセスを制御できるようにするために基地局201と通信するように適合できる。ただし、これは必須ではなく、プロセスは基地局201を介して直接的に制御できる。
【0108】
各基地局201は単一のエンティティとして示されているが、基地局201は、例えば、処理システム210及び/又はクラウドベースの環境の一部として提供されるデータベース211を使用することによっていくつかの地理的に別々の場所上で分散できることが理解される。この点で、代わりに、データストアはコンピュータシステム203と関連付けられるだろうが、それぞれがそれぞれのデータストア又はオントロジーと関連付けられる複数の基地局201が提供できる。
【0109】
ただし、上述された構成は必須ではなく、他の適切な構成を使用できるだろう。例えば、プロセスはスタンドアロンコンピュータシステムで実行できるだろう。
【0110】
適切な処理システム210の例は
図3に示される。この例では、処理システム210は、図示されるように、バス304を介して相互接続された少なくとも1台のマイクロプロセッサ300、メモリ301、キーボード及び/又はディスプレイのような入出力装置302、及び外部インタフェース303を含む。この例では、外部インタフェース303は、通信ネットワーク202、204、データベース211、他のストレージデバイス等のような周辺装置に処理システム210を接続するために活用できる。単一の外部インタフェース303が示されているが、これは例のためだけであり、実際には多様な方法(例えば、イーサネット、シリアル、USB、無線等)を使用する複数のインタフェースが提供されてよい。
【0111】
使用中、マイクロプロセッサ300は、コンピュータシステム203と通信するだけではなく、インデックス生成、マッピング、及びデータベース211への/データベース211からのコンテンツ転送を実行することも可能にするためにメモリ301に記憶されているアプリケーションソフトウェアの形式の命令を実行する。アプリケーションソフトウェアは1つ又は複数のソフトウェアモジュールを含んでよく、オペレーティングシステム環境等のような適切な実行環境で実行されてよい。
【0112】
したがって、処理システム210が、適切にプログラムされたコンピュータシステム、PC、DMBSを実行するデータベースサーバ、ウェブサーバ、ネットワークサーバ等のような任意の適切な処理システムから形成されてよいことが理解される。1つの特定の例では、処理システム210は、不揮発性(例えばハードディスク)ストレージに記憶されているソフトウェアアプリケーションを実行する32ビット又は64ビットのIntel Architectureをベースにした処理システムのような標準的な処理システムである。ただし、これは必須ではない。しかしながら、処理システムがマイクロプロセッサ、マイクロチッププロセッサ、論理ゲート構成、FPGA(フィールド・プログラマブル・ゲート・アレイ)のような実装論理と任意選択で関連付けられたファームウェア、又は任意の他の電子機器、システム、若しくは構成のような任意の電子処理装置であることがあることも理解される。
【0113】
図4に示されるように、一例では、コンピュータシステム203は、図示されるようにバス404で相互接続された少なくとも1台のマイクロプロセッサ400、メモリ401、キーボード及び/又はディスプレイのような入出力装置402、及び外部インタフェース403を含む。この例では、外部インタフェース403は、通信ネットワーク202、204、データベース211、他のストレージデバイス等のような周辺装置にコンピュータシステム203を接続するために活用できる。単一の外部インタフェース403が示されているが、これは例のためだけであり、実際には多様な方法(例えば、イーサネット、シリアル、USB、無線等)を使用する複数のインタフェースが提供されてよい。
【0114】
使用中、マイクロプロセッサ400は、基地局201との通信を可能にして、例えばオペレータが制御入力を提供できるようにするためにメモリ401に記憶されるアプリケーションソフトウェアの形式の命令を実行する。
【0115】
したがって、コンピュータシステム203は、適切にプログラムされたPC、インターネット端末、ラップトップ、ハンドヘルドPC、スマートフォン、PDA、ウェブサーバ等のような任意の適切な処理システムから形成されてよいことが理解される。したがって、一例では、処理システム100は、不揮発性(例えば、ハードディスク)ストレージに記憶されているソフトウェアアプリケーションを実行する、32ビット又は64ビットのIntel Architectureをベースにした処理システムのような標準的な処理システムである。ただし、これは必須ではない。しかしながら、コンピュータシステム203が、マイクロプロセッサ、マイクロチッププロセッサ、論理ゲート構成、FPGA(フィールド・プログラマブル・ゲート・アレイ)のような実装論理と任意選択で関連付けられたファームウェア、又は任意の他の電子機器、システム、若しくは構成のような任意の電子処理装置であることがあることも理解される。
【0116】
マッピングを生成し、ブラウズ、オントロジーを合わせること、及びオントロジーを切り詰めることを含んだオントロジーのインデックス付け及びオントロジーとの対話を可能にするためのシステムの動作の例がここでさらに詳細に説明される。
【0117】
これらの例のために、基地局201の処理システム210がプロセスを実行するためのアプリケーションソフトウェアをホストし、処理システム210によって実行されるアクションが、メモリ301にアプリケーションソフトウェアとして記憶される命令、及び/又はI/O装置302を介してユーザから受信される入力コマンド、又はコンピュータシステム203から受信されるコマンドに従ってプロセッサ300によって実行されていることが想定される。この点で、以下の例のために、処理システム210は、インデクサモジュール、ブラウザモジュール、アライナモジュール、プルーナモジュール、セマンティックマッチャモジュール、及びETLモジュールを含んだいくつかのモジュールを有するアプリケーションソフトウェアを実行する。ただし、それぞれのモジュールの使用は必須ではなく、他の構成を使用できる。
【0118】
ユーザが、入出力装置302又はコンピュータシステム203のどちらかに提示されるGUI等を介して処理システム210によって実行されるアプリケーションソフトウェアと対話することも想定される。コンピュータシステム203によって実行されるアクションは、メモリ401にアプリケーションソフトウェアとして記憶された命令、及び/又はI/O装置402を介してユーザから受信される入力コマンドに従ってプロセッサ400によって実行される。基地局201は、通常、利用可能な特定のネットワークインフラを介してコンピュータシステム203と通信し、例えば1つ又は複数のコンピュータシステム203のユーザのためにデータベース211と対話するエンタープライズサーバの形式であってよいサーバである。
【0119】
しかしながら、上述された構成は例のためだけであり、制限的になることを意図していないため、実際には任意のデータベース管理システムを使用できることが理解される。また、コンピュータシステム203及び基地局201との間の機能性の区分化が特定の実装に応じて変化してよいことも理解される。
【0120】
マッピングを決定し、ソースからターゲットにコンテンツを転送するためにこれを使用するためのプロセスの概要が、ここで
図5を参照して説明される。この例のために、処理システム210が異なる機能性を提供するためにいくつかの異なるモジュールを実装することが想定される。
【0121】
この例では、ステップ500で、処理システム210はソースデータ構造及びターゲットデータ構造を使用し、ソースオントロジー及びターゲットオントロジーを識別する。これはいかなる方法でも達成できるが、通常、ソースデータストア及びターゲットデータストアのためのソースデータ構造及びターゲットデータ構造に基づいて推測上のオントロジーを作成することを含む。例えば、異なるソースデータフィールド及びターゲットデータフィールドの名前はオントロジー用語に等しくされ、オントロジー用語間の関係性はソースデータ構造及びターゲットデータ構造の関係性から識別される。推測上のオントロジーを生成するプロセスの特定の例は、
図6を参照してより詳細に説明される。
【0122】
ステップ510で、インデクサモジュールはソースオントロジー及びターゲットオントロジーのインデックスを決定する。インデックスは通常、各オントロジー用語、これが既知である場合は関連付けられたオントロジー用語タイプ、及び任意選択でオントロジー用語の意味も示すエントリを含んだリストの形式をとる。この点で、オントロジー用語意味は通常、ステップ520で、概念マッチングデータベースとオントロジーを比較し、インデックスの各オントロジー用語の意味を識別するために比較の結果を使用するセマンティックマッチャモジュールによって決定される。
【0123】
ステップ530で、ブラウザモジュールはオントロジーをブラウズし、ソースオントロジー用語又はターゲットオントロジー用語を選択するために使用される。これによって、ユーザは、通常はソースデータストアから抽出される又はターゲットデータストアにインポートされるコンテンツに対応する、対象のそれらのオントロジー用語を選択できる。
【0124】
選択されたオントロジー用語は、次いで、ブラウザモジュールがそれぞれのデータ構造に従ってデータストアに記憶されたコンテンツと対話するためのコードを生成できるようにするためにステップ540で使用できる。特に、これは、ユーザが、以下により詳細に説明されるように、データ構造のデータフィールドを見て、抽出/インポートされるコンテンツを選択し、次いで抽出/インポートを実行するために必要なクエリーを生成するために使用できるユーザインタフェースを、コンピュータシステムが生成できるようにするためのコードを含むことがある。
【0125】
代わりに、ステップ550で、選択されたオントロジー用語は、ソースオントロジー及び/又はターゲットオントロジーのどちらかを切り詰めるためにプルーナモジュールによって使用される。特に、これによってユーザは対象のオントロジーのそれらの部分だけを選択することができ、処理システム210は次いで、以下により詳細に説明されるように、選択されたオントロジー用語間の関係性を維持するために必要とされる追加のオントロジー用語を選択する。
【0126】
いったんオントロジーの1つ又は複数が切り詰められると、ステップ560で、処理システム210はソースオントロジー及びターゲットオントロジーを合わせるためにアライナモジュールを使用する。これは、ソースオントロジー用語の1つ又は複数とターゲットオントロジー用語の1つ又は複数との間の対応を識別し、それによってステップ570で、ソースデータストアからターゲットデータストアにコンテンツを転送するために、同様にブラウザモジュールによって生成されたコードともに使用できるソースデータ構造とターゲットデータ構造の間のマッピングを決定できるようにする。
【0127】
データベーススキーマ等のデータ構造から推測上のオントロジーを生成するためのプロセスの例は、ここで
図6を参照して説明される。
【0128】
この例はリレーショナルデータベースのために推測上のオントロジーを生成することに特有であるが、類似した概念を他のデータ構造にも適用できること、及びこの例が例示のためだけであり、制限的となることを意図していないことが理解される。
【0129】
この例では、ステップ600で、処理システム210は、通常、データベーススキーマを定義するメタデータからこの情報を抽出することによって、データベースの各テーブルを決定する。ステップ610で、処理システム210は、データベースの各テーブルに対応するクラスを定義する。この点で、用語クラスは、以下により詳細に説明されるように、オントロジーの中の概念に相当する特定のオントロジー用語を参照する。
【0130】
ステップ620で、処理システム210は、BOM(部品表)構造又はタイプ構造を有するあらゆるデータベーステーブルを識別する。この点で、BOMテーブルは2つの「1対多」の関係性を有し、アイテム、オブジェクト、又は商品を構成するすべてのパーツのリストに対して使用される。タイプ構造は1つの「多対1」の関係性を有し、関係するテーブルでの値の範囲を制限するために使用されるただ1つの関連性がある属性又は列を有する。係るテーブルは、多くの場合、データを非正規化するために使用されるため、それぞれがそれぞれのオントロジー用語を表すべきである多くの概念又はクラスを含むことがある。したがって、ステップ630で、処理システムは、テーブルのそれぞれの一意のエントリに対応する追加のクラスを定義するために、各タイプテーブル及び各BOMテーブルを拡大する。
【0131】
ステップ640で、処理システム210は、タイプテーブル又はBOMテーブルの中からそれぞれの識別されたクラスを任意選択で表示し、ユーザが、クラスがステップ650で保持されるべきかどうかを確認できるようにする。タイプクラス又はBOMクラスが保持されるべきではないことが示される場合、タイプクラス又はBOMクラスはステップ660で削除される。
【0132】
いったん関連性のあるBOMクラスが選択されると、処理システム210は、データベーススキーマに基づいて関係性及び属性(データオブジェクト及びデータプロパティとも呼ばれる)を定義する。したがって、テーブル構造は、識別されたクラス間の関係性を識別するために使用できる。一方、テーブルのデータフィールドはクラスの属性を識別するために使用される。関係性及び属性は同様に、オントロジーでオブジェクトプロパティ及びデータプロパティを定義するために使用され、それによって推測上のオントロジーを生成し、ステップ680で、例えばオントロジーデータベースに保存できるようにする。
【0133】
したがって、これによって推測上のオントロジーは、データベース、構造化ファイル等のようなデータストアのデータ構造の分析からだけ、実質的に自動化された様式で作成できる。これに続き、推測上のオントロジーの中で異なるクラスに意味を定義することが必要とされる場合、以下により詳細に説明されるように、推測上のオントロジーは様式化オントロジーと合わせることができる。
【0134】
インデックスを生成するためのプロセスの例は、ここで
図7を参照して説明される。
【0135】
この例では、ステップ700で、インデクサモジュールは対象のオントロジーを決定する。これは、例えばブラウザモジュールを介して供給されるユーザ入力コマンドに基づいて決定されてよい、又はインデックスを必要とする別のモジュールから受け取ることができるだろう。例えば、推測上のオントロジーを生成したETLモジュールは、これがインデックスを付けられることを必要とし、インデクサモジュールにオントロジーの表示を提供することがある、又は代わりにプルーナモジュールはオントロジーに対して切り詰めを実行できるようにするインデックスを要求することがある。
【0136】
ステップ705で、インデクサモジュールは、通常インデックスデータベースに記憶される1つ又は複数の既存のインデックスとオントロジーを比較し、インデックスがすでに存在しているかどうかを判断する。これは、オントロジーの名前及び/又はアドレスのようなオントロジーと関連付けられたメタデータを、インデックスと関連付けられた対応する情報と比較することによって、又は代わりに既存のインデックスのオントロジー用語と1つ又は複数のオントロジー用語を比較することによって達成できる。
【0137】
ステップ710でインデックスが存在すると判断される場合、次いでインデックスは、例えばインデックスを要求したモジュールにインデックスを提供することによってステップ715で提供される。それ以外の場合、インデックスが生成されなければならず、その場合、インデクサモジュールがステップ720で次のオントロジー用語を選択し、次いでステップ725で、オントロジー用語名、オントロジー用語タイプ、及び通常、URI(ユニフォームリソースアイデンティファイア)又は同等のものを示すオントロジー用語アドレスの表示を含んだインデックスエントリを作成する。ステップ730で、インデクサモジュールは、以下により詳細に説明されるように、セマンティックマッチャモジュールからオントロジー用語の意味論的意味を入手し、インデックスエントリにこれを追加する。
【0138】
ステップ735で、インデクサモジュールは、すべてのオントロジー用語が完成したかどうかを判断し、完成していない場合、プロセスは720に戻り、次のオントロジー用語を選択できるようにする。それ以外の場合、ステップ740で、インデックスは記憶され、任意選択で別のモジュールに提供される。
【0139】
オントロジーのブラウズのためのプロセスの例は、ここで
図8を参照して説明される。
【0140】
この例では、ステップ800で、ブラウザモジュールがオントロジーインデックスを使用し、選択されたオントロジーにオントロジー用語リストを生成する。したがって、このプロセスの部分として、ブラウザモジュールは、例えば選択されたオントロジーのアイデンティティに基づいて、インデクサモジュールからオントロジーインデックスを要求できる。オントロジー用語リストは、次いで適切なGUI(グラフィックユーザインタフェース)を介してユーザに表示できる。
【0141】
ステップ805で、ユーザは、ステップ810で見るための次のオントロジー用語を選択する前に対象の1つ又は複数のオントロジー用語にタグを付け、ブラウザモジュールがステップ815で選択されたオントロジー用語のためのデータプロパティを含んだオントロジー用語画面を表示できるようにする。この点で、データプロパティは、オントロジーの一部として定義されるオントロジー用語の属性に相当する。
【0142】
ステップ820で、ブラウザモジュールは、検索オプションがユーザによって選択されたかどうかを判断し、その場合、ユーザはステップ825でデータプロパティのデータフィールドに検索用語を入力する。ブラウザモジュールは次いでそれぞれのオントロジー用語データプロパティに関連付けられたデータのクエリーを生成し、実行し、結果を戻し、ステップ830でユーザに表示する。したがって、このプロセスによってユーザは、対応するソースデータストア又はターゲットデータストアでそれぞれのデータプロパティと関連付けられるだろうコンテンツを見直すことができ、それによってユーザは、オントロジー用語及び関連付けられたデータプロパティ対象のものかどうかを確かめることができる。
【0143】
いったん検索が実行されると、又は検索が実行されない場合、ユーザは835で対象の1つ又は複数のデータプロパティにタグを付ける。このようにして、このプロセスによってユーザはオントロジー用語及び関連付けられたデータプロパティを見直し、次いで対象のオントロジー用語及びデータプロパティを、それらにタグを付けることによって選択できる。
【0144】
ステップ840で、オントロジー用語は、ユーザにとって対象のすべてのオントロジー用語及びデータプロパティが選択されたかどうかを判断するために見直される。選択されていない場合、プロセスはステップ810に戻り、追加のオントロジー用語を見直すことを可能にする。
【0145】
それ以外の場合、ステップ845で、ブラウザモジュールはタグが付けられたオントロジー用語及び関連付けられたデータプロパティを選択し、例えばステップ850で切り詰めを実行するために、又はステップ855でアプリケーションを生成するために、これらを他のプロセスで使用できるようにする。この点で、アプリケーションの生成は、以下により詳細に説明されるように、コンピュータシステムでの実行時に、コンピュータシステムが、選択されたオントロジー用語又はデータプロパティに対応するソース又はターゲットのフィールドのコンテンツと対話するためのユーザインタフェースを表示できるようにする実行可能コードを生成するためにスクリプト等を使用することを含む。
【0146】
したがって、上述されたプロセスは、ユーザがオントロジー用語及び関連付けられたデータプロパティをブラウズして、それらの内のどれが、ユーザがソースからエクスポート又はターゲットにインポートすることを希望するコンテンツに関して対象となるかを識別できるようにするために使用できる。
【0147】
オントロジーを切り詰めるためのプロセスの例は、ここで
図9を参照して説明される。
【0148】
この例では、ステップ900で、選択されたオントロジー用語は切り詰めプロセス用のシードとして追加される。これに続き、シードオントロジー用語を相互接続する経路が識別されるまで、シードオントロジー用語に関係するオントロジー用語を繰り返し探索するために反復プロセスが実行される。これを達成するために、ステップ905で、異なるタイプの関係性及び関連付けられたデフォルト経路長が表示される。この点で、オントロジー用語は、親、子、兄弟等の異なるタイプの関係性によって関係付けることができる。一定のタイプの関係性は他よりもより重要であることがあるので、異なる関係性タイプは異なる長さを有することがある。さらに、関係性のタイプごとに探索される経路の長さは変えることができ、それによってより重要な関係性を介してシードオントロジー用語に接続された、より多数のオントロジー用語が含まれることを保証する。したがって、ステップ910で、ユーザは異なる関係性のための経路長を調整することができ、それによって例えば、切り詰めの範囲及び/又は方向を制御するために、切り詰めプロセスをユーザによって調整できるようにする。
【0149】
ステップ915で、選択されたオントロジー用語に関係するオントロジー用語は、指定された経路長の関係性によって関係付けられたそれらのオントロジー用語を識別することによって決定される。ステップ920で、プルーナモジュールは、選択されたシード用語がリンクされるかどうかを判断する。言い換えると、シードオントロジー用語をリンクする一連の相互接続されたオントロジー用語があり、その場合、切り詰めプロセスは、切り詰められたオントロジー又は切り詰められたインデックスとして記憶できるステップ925で切り詰められたオントロジーを定義する、使用中に識別された、選択され、関係付けられたオントロジー用語で終了することがある。
【0150】
それ以外の場合、ステップ930で、反復が完了しているかどうかが判断され、完了していない場合、関係するオントロジー用語は追加され、選択されたオントロジー用語、プロセスはステップ915に戻り、追加の関係するオントロジー用語を識別できるようにする。したがって、シードオントロジー用語に関係付けられたオントロジー用語の数は、シードオントロジー用語が関係性の経路によって接続されるまで徐々に増加する。
【0151】
したがって、上述されたプロセスは、オントロジーが無事に切り詰められ、その時点でシードオントロジー用語が関係するオントロジー用語の経路を介して相互接続されるまで、又は所定数の繰り返しが完了され、経路が識別されず、その場合プロセスがステップ940で休止されるまでのどちらか、繰り返される。後者の場合、これは通常、オントロジー用語が異なるオントロジーからであることを示唆し、その場合、切り詰めプロセスはアラインメントプロセスと併せて実行され、以下により詳細に説明されるように、切り詰めプロセスが複数のオントロジーにわたることを可能にする。代わりに、これは、オントロジー用語を容易にリンクできないことを示す。
【0152】
ソースオントロジー及びターゲットオントロジーを合わせるためのプロセスの例が、ここで
図10を参照して説明される。
【0153】
この例では、ステップ1000で、ソースオントロジー用語及び/又はターゲットオントロジー用語がインデックスを使用し、選択される。これは、ユーザにブラウザモジュールを使用し、オントロジー用語を選択させる、又はより典型的には、対象のソース用語及び/又はオントロジー用語を含むソースオントロジー及びターゲットオントロジーの切り詰められたバージョンに相当する2つの切り詰められたオントロジーを選択させることを含むことがある。ステップ1005で、マッチャモジュールは、ソースオントロジー用語及びターゲットオントロジー用語の対の異なる組合せのマッチングスコアを決定するために使用される。これらのスコアは、ステップ1010でソースオントロジー及びターゲットオントロジーの意味がどれほど類似しているのかだけに基づいて予備的なアラインメントを定義するために使用される。
【0154】
ステップ1015で、アライナモジュールは、予備的なアラインメントが正しいかどうかを判断するためにソースオントロジー用語及びターゲットオントロジー用語の関係性(オブジェクトプロパティ)及び属性(データプロパティ)を調べる。このようにして、例えば、これは予備的な合わせられたソースオントロジー用語及びターゲットオントロジー用語が類似した数の属性を有しているのか、並びにこれらが他のソースオントロジー用語又はターゲットオントロジー用語と類似した関係性を有するのかどうかを調べる。これは、用語の苗字及び名前のそれぞれが名前に予備的に照合されてよい場合、不正確なマッチを識別するために使用でき、関係性の調査は、これが多対1の関係性となるべきであることを明示するために使用される。
【0155】
ステップ1020で、これはアラインメントを精緻化するために使用することができ、ステップ1025でソースオントロジーとターゲットオントロジーとの間のアラインメントを表すためにこれらを記憶できるようにする。これはマージされたオントロジー、又は代わりにアラインメントインデックスの形式をとることがある。
【0156】
セマンティックマッチングプロセスの例は、ここで
図11を参照して説明される。
【0157】
この例では、ステップ1100で、マッチャモジュールは、マッチングのためにオントロジー用語を受け取る。これはブラウザモジュールを介したユーザ選択に基づくことがあるが、より典型的にはインデクサモジュール又はアライナモジュールから用語を受け取ることによる。ステップ1105で、次の対の組合せが、マッチングデータベースの複数のそれぞれの用語と単一オントロジー用語を比較すること、又は受け取られたソースオントロジー用語及びターゲットオントロジー用語の次の対を選択することのどちらかによって選択される。
【0158】
ステップ1110で、セマンティックマッチャモジュールは、概念マッチングデータベースを使用し、意味類似性を計算する。スコアはいくつかの方法の内のいずれか1つによって決定できるが、通常、例えばそれらが反意語であるのか、同義語であるのかのような、意味が多少なりとも関係しているかどうかに基づいてスコアを計算する所定の数式を適用することを含む。1つの特定の例では、これは、例えばWordNet等のようなディクショナリを使用し、オントロジー用語を定義にマッチさせることを含む。この点で、WordNetは英語の大規模な語彙データベースである。名詞、動詞、形容詞、及び副詞は、それぞれが異なる概念を表す知的同義語(synsets)のセットにグループ化され、Fellbaum、Christiane(2005年)に説明されている。WordNet及びwordnets。Brown、Keithら(編集)、Encyclopedia of Language and Linguistics、第2版、Oxford:Elsevier、665〜670。
【0159】
いったん定義が識別されると、これは、次いでデータベースに記憶されるRDFトリプルについて表される。次いで2つのオントロジー用語の意味の類似性を示す類似性スコアを決定するために使用されるトリプル間の類似性を決定するために2つの異なる意味のためのRDFトリプルにクエリーを行うことができる。
【0160】
これに続き、ステップ1115で、セマンティックマッチャモジュールは、用語がサブクラス及びスーパークラスの配置によって関係付けられているかどうかを判断する。この情報は、次いで、ステップ1120でマッチングスコアを計算するために類似性スコアと結合される。ステップ1125で、すべての対が完了しているかどうかが判断され、完了していない場合、プロセスはステップ1105に戻り、ソースオントロジー及びターゲットオントロジーの次の対を選択できるようにし、マッチングスコアが計算される。いったんオントロジー用語のすべての潜在的な対、又はオントロジー用語、及びデータベースのマッチング概念がチェックされると、セマンティックマッチャモジュールはステップ1130で最良のマッチを選択し、次いでこれの表示を提供できる。
【0161】
したがって、上述されたプロセスによって、ユーザが、オントロジーと対話し、対象のオントロジー用語を選択し、これを使用して、それぞれのオントロジーに従ってデータベース又はXMLファイルのようなデータストアに記憶されたコンテンツと対話するためのソフトウェアを生成することを可能にすることが理解される。ユーザは、さらにオントロジーを調査し、次いでプルーナモジュールを使用し、これを切り詰めることができ、ユーザが対象のコンテンツと対話できるようにする最小限度のオントロジーを決定できるようにする。切り詰められたオントロジーは、次いで別の切り詰められたオントロジーと合わせることができ、これによりこれはその間のマッピングを定義するために使用することができ、このことはソースデータ構造及びターゲットデータ構造を有するデータストア間でデータを転送するために同様に使用できる。
【0162】
より詳細な例がここで説明される。この例のために、オントロジーは以下の通りに定義される。
・「インヘリタンス」関係とも呼ばれるサブクラス/スーパークラス関係性を使用し、いくつかが互いに関係付けられている、クラス又はオブジェクトとも呼ばれる関係する概念のセット。例は、インヘリタンスを表示する「組織」、「企業」、「クラブ」、及びインヘリタンスを表示しない「ランドマス」、「性別」、「人」である。
・クラスを関係付けるための追加の機構を提供するオブジェクトプロパティ。例えば、「に位置する」「性別を有する」。これらの関係性は、概念、関係性、及びプロパティの推論を可能にする。
・各クラスと関連付けられたデータプロパティのセット。例えば、クラス「人」は氏名、敬称、誕生日、及び性別のデータプロパティを有することがある。
・先行するプロパティのいずれかの間の公式の関係性を提供する公理のセット。例えば、「人が『Mrs』の敬称を有する場合、性別は女性でなければならない」、又は「2つのオブジェクトが同じ一意の識別子を有する場合、該オブジェクトは同じオブジェクトである」。これらの公理は、概念、関係性、及びプロパティのさらなる推論を可能にする。
【0163】
オントロジーはRDFS、XML、DAML、OIL、N3、及びOWLのようないくつかの言語で記述できる。これらの言語はOWL−Lite又はOWL−DLのような異なる方言を有することがある。機能性の視点から、該言語は複雑な関係性及び公理を管理し、記述する能力において異なる。
【0164】
オントロジーは数十万の概念を含んでよい。ユーザはこれらの概念のサブセットに関心があることがある。このサブセットは、以下からであることがある。
・単一のオントロジー
・複数の重複するオントロジー、又は
・複数の不同等のオントロジー
【0165】
ターゲットオントロジーのいくつかの概念は事前に定義されないことがあり、ソースオントロジーのいずれにも存在しないことがある。係る場合、ユーザは手作業で欠けている概念を追加する必要がある場合がある。必要とされるサブセットは、開始概念及び終了概念の両方又はどちらかを有することがある。
【0166】
説明のために、2つのきわめて簡略な例のオントロジーが
図12A及び
図12Bに示される。これらはインデックスを付けるプロセス、セマンティックマッチングを切り詰めるプロセス、及びアラインメントのプロセスを示すために活用され、制限的となることを目的としていないことが理解される。
【0167】
これらの例では、2つのタイプの関係性、つまり階層的に接続されている関係性及び階層的に接続されていない関係性がある。これらの例では、階層的に接続されているクラスは、スーパークラスからサブクラスを指す実線によって階層的に接続されている実線の楕円により表される。各サブクラスはそのスーパークラスのすべてのプロパティを継承する。破線の楕円として示される、非階層的に接続されるクラスのセットは、ここでは破線として示され、オブジェクトプロパティという名前の線によって任意のクラスに接続される。各クラスはデータプロパティのセットを有し、データプロパティのいくつかは説明のために表1に示される。
【表1】
【0168】
オントロジーが類似した概念を示すが、いくつかの相違点があることが理解される。
・いくつかの概念は異なった名前を有する。『当事者』は『クライアント』と同一であり、『人』は『個人』と同一であり、『メンバー』は『メンバーシップ』と同一であり、『雇用』は『職歴』と同一であると言うことができるのか。
‐『雇用』を除く各ケースで、クラスはそれぞれ同一のデータプロパティを有するため、該クラスがほぼ同一であると想定できる。数学的には、同一性(C
1i,C
2i)〜1.0であり、ここでC
1iは第1のオントロジーからの概念であり、C
2iは第2のオントロジーからの概念である。
・いくつかの概念は異なるデータプロパティを有する。『雇用』及び『職歴』の場合、概念はなんらかの同一のデータプロパティ、及び『職歴』だけに適用する1つの『に報告する』を有する。事実上、『職歴』は、『開始日』及び『終了日』が『役割』を参照するのか、それとも『に報告する』データプロパティを指すのかに関して不明瞭であるので、『職歴』は第4の正規形に違反する。
・いくつかの概念は異なるオブジェクトプロパティを有する。『雇用』は1つしかオブジェクトプロパティを有さないのに対し、『職歴』は『人』を有する2つのオブジェクトプロパティを有する。オントロジー2では、『株式』が『企業』を『クライアント』と関連付けるのに対し、オントロジー1では『株式』は『企業』を『個人』と関係付ける。
・いくつかの概念は1つのオントロジーに存在しない。『上場企業』はオントロジー2に存在するが、オントロジー1には存在しない。
【0169】
これらの例のため、システムは
図13に示される機能性を実行し、これらはそれぞれのモジュールによって実装される。この点で、モジュールは以下を含む。
・ETL(抽出−変換−ロード)モジュール1300。これは、構造化データソースの中でコンテンツを抽出し、変換し、ロードする。これは、以下を含んだ2つのサブ構成要素を含む。
‐指定されたオントロジーを介して、又はオントロジーがない場合は、プロセッサがデータを記述するために作成する推測上のオントロジーを介してのどちらかでソースデータを抽出するプロセッサ1301。プロセッサは、クラウドに又はデータと同じマシンに又はメッセージング、ODBC、https、SOAP、若しくは任意の同等なプロトコルを介してデータにアクセスできるマシンに配備できる。プロセッサの複数のコピーは、複数のソースからデータを入手するために配備できる。
‐多様なプロセッサからデータを収集し、ターゲットオントロジーにソースオントロジーをマップするオーケストレータ1302。クエリーはターゲットオントロジーを使用し、作成され、同等なソースオントロジークエリーに変換され、ターゲットオントロジーを使用し、データを戻すことを可能にする。
・ブラウザ1311、エディタ1312、及びジェネレータ1313を含んだオントロジーブラウザモジュール1310。これは画面、及びそれらを管理するために関連付けられたソフトウェア及びデータを生成し、このことによってユーザはオントロジー及びオントロジーによって記述されるデータをブラウズし、編集することができる。これらの画面は2つの段階で表示される。第1の段階は生成プロセスの間である。この段階で、画面は動的に作成され、ユーザがどの機能が生成されるべきかを選択できるようにするために追加の情報を表示する。第2の段階では、画面はハードコードされ、生成のために指定された情報だけしか表示しない。
・オントロジーインデクサモジュール1320。インデクサモジュールはすべてのクラス名、データプロパティ名、及びオブジェクトプロパティ名の1つ又は複数のオントロジーでリンクされたインデックスのセットを作成する。さらに、インデックスは、意味論的に同等な機能からを加えた、ソースオントロジーから生じる意味論的に同等な用語(例えば、同義語及び同音異義語)を含む。
・オントロジープルーナモジュール1330。プルーナモジュールはオントロジーを採取し、ユーザがどのクラス、データプロパティ、オブジェクトプロパティ、及び公理を保持することを希望するのかを指定できるようにする。保持されたものを使用し、プルーナモジュールは、オントロジーに定義された相関的な及び公理の整合性が維持されていることを確かめるためにチェックする。
・オントロジーアライナモジュール1340。アライナモジュールは2つ以上のオントロジーを採取し、いくつかの技法を使用して、多様なオントロジーの概念を、互いと又は指定されたターゲットオントロジーのどちらかと合わせる。該技法は、意味論的に類似する概念を見つけるためにインデクサモジュールによって作成されたインデックスを活用する。各データプロパティ及び概念はセマンティックマッチャモジュールを使用して比較される。セマンティックマッチャモジュールはオントロジー構造及びデータプロパティに基づいてマッチングを精緻化する。
・セマンティックマッチャモジュール1350。マッチャモジュールは2つの用語又は用語の2つのリストを比較して、それらが例えば医学又は工学等、指定された文脈の中で数学的に定められた程度の意味論的等価を有するかどうかを決定する、又は別の例では、単一の用語を所与として、指定された文脈に基づいて同義語、同音異義語等のリストを提供する。
【0170】
通常、オントロジーは例を除きデータインスタンスを有さない。ただし、オントロジーは2つの方法の内の1つで既存のデータにマッチさせることができる。
・オントロジーは既存のデータから構築される。例えば、リレーショナルデータベースは、相関的なエンティティ(テーブル)がオントロジーのクラスとして定義され、相関的な関係性がオントロジーのオブジェクトプロパティとして定義され、相関的な属性(列)がオントロジーのデータプロパティとして定義されることによって『推測上の』オントロジーに自動的に変換できるだろう。いくつかのオントロジーの公理は、相関的な参照整合性の制約から引き出すことができるだろうが、大部分の公理は手作業で追加又は無視する必要がある。この推測上のオントロジーは、次いでメタデータを追加するために既存の豊富なオントロジーと合わせられてよい。
・データにオントロジーをマッチさせること。これを行うためのいくつかのツールがある(例えば、S−マッチ)。
【0171】
データフォーマットとは関わりなく、推測上のオントロジーは、ソースデータ構造及び(メタデータが存在する場合)メタデータに適切な方法を使用し、ソースデータから自動的に生成できる。この推測上のオントロジーは、オントロジーエディタを使用し、手作業で更新されてよい、又は生成された通りに使用されてよい。どちらの場合も、推測上のオントロジーは次いでアライナモジュールを使用し、(ETLモジュールプロセッサによって呼び出される)主題領域のオントロジーと、及び(ETlモジュールオーケストレータによって呼び出される)ターゲットオントロジーと合わせられる。
【0172】
ターゲットオントロジーは、ターゲットオントロジーが、所望される概念の整合性を保証するために必要とされるそれらの概念、公理、プロパティ、推論、及び起源の詳細を加えた所望された概念だけを含むことを保証するために、プルーナモジュールを使用して切り詰められてよい。
【0173】
すべてのこれらのツールは、2つの意味論的な概念がマッチするのかどうかをチェックするためにセマンティックマッチャモジュールによって、並びに多様なソースオントロジー及びターゲットオントロジーでマッチする概念及び概念構造を探すためにインデクサモジュールによって提供されるサービスを利用する。
【0174】
それぞれのモジュールの例は、ここでさらに詳細に説明される。
ETLモジュール
【0175】
ETLモジュールは、メタデータレポジトリを使用することなく、すべてのETLツールに共通のデータの抽出、変換、及びロードの機能を実行する。ETLモジュールは、データ構造を決定するためにソースデータと関連付けられたメタデータを使用することによって、及びその後オントロジーにこのメタデータをマップすることによってこれを行う。ETLモジュールは、さらにデータに意味を割り当て、したがってデータをマップし、変換する際に高レベルの自動化を達成できる。
【0176】
メタデータレポジトリの必要性を排除することは、プロセスの柔軟性がそれを維持するために必要とされるヒューマンインタフェースにより制約されないことを意味する。新しいデータフォーマットおよび技術は自動的に収容できる。
【0177】
高レベルで、実行される2つの主要なプロセスがある。これらのプロセスを実行するためのコードは、プロセッサ及びオーケストレータと呼ばれる。プロセッサの多数のコピーは任意の定められた場所でデータを読み取るために配備されてよい。プロセッサはデータと同じ装置上に同一場所に配置できる、又はプロセッサはクラウドに位置し、リモートアクセスプロトコルを使用してデータにアクセスできる。プロセッサはソースからメタデータを抽出し、そのメタデータから推測上のオントロジーを作成する。プロセッサは次いでなんらかの初歩的なデータ変換を実行し、オーケストレータにデータ及びオントロジーを渡す。
【0178】
オーケストレータは多様なプロセッサから入力を受け取り、それらのオントロジーを合わせる。オーケストレータは次いで合わせられたソースオントロジーからユーザによって定義されたターゲットオントロジーにマッピングを適用する。ユーザはここで多様なソースオントロジーからのすべてのデータを確かめることができる。データは、以下により詳細に説明されるように、ターゲットオントロジーに対して特定のクエリーを指定する又はクエリーを作成するためにオントロジーブラウザを使用するかのどちらかによって抽出できる。
【0179】
この結果を達成するために必要とされる多様なソフトウェア構成要素を含んだETLモジュールソフトウェアスタックの例が
図14Aに示される。一方、
図14Bは、いくつかのプロセッサがネットワーク配置を介して単一のオーケストレータに結合される配備例を示す。
【0180】
プロセッサは、不同等のデータソースからデータを読み取り、該データをRDFデータとして露呈し、該データを記述するために推測上のオントロジーを作成することを担う。高レベルの機能は以下の通りである。
・メタデータ及びマッピングファイルを追加するによって不同等のデータソースを登録する。
・構造化されていないデータをRDFに変換する。
・トリプルストアにRDFをロードする。
・推測上のオントロジーにマッピングファイルを変換する。
・ソースごとにSPAQRL端点を露呈する。
【0181】
オーケストレータは、ターゲットオントロジー及びマッピングデータを読み取り、要求及び応答の変換を調整することを担う。高レベルの機能は以下の通りである。
・ターゲットオントロジーを登録する。
・マッピングファイルを読み取り、マッピングファイルにインデックスを付ける。
・ターゲットからのSPARQLクエリーをマップされたソース語彙に変換する。
・ソース語彙からの応答をターゲット語彙に変換する。
・変換規則を記憶する。
・ターゲットのためにSPARQL端点を露呈する。
オントロジーブラウザモジュール
【0182】
オントロジーブラウザモジュールは、ユーザがオントロジーをブラウズし、オントロジーによって定義されるデータのクエリーを行い、オントロジーによって定義されたデータにインスタンスデータを追加できるようにするために画面のセットを自動的に作成するために機能する。このようにして作成された画面は、次いで完全なスタンドアロンアプリケーションとして、オントロジー及び作成ツールとは無関係に使用できる。
【0183】
この点で、現在、リンクされた概念を定義するため、及びデータにアクセスするためのオントロジーの使用はおもに研究者及び専門のオントロジストに制限されている。この理由は、ユーザがオントロジーをブラウズし、次いで構造化データストアに記憶されたデータとの対話を誘導するためにこれを使用できるようにするための簡略な機構がないことである。したがって、オントロジーの専門知識をほとんど又は少しも有さない人が簡略で分かりやすい方法でオントロジーのすべての詳細にアクセスできるようにするツールを提供することによって、これは、ユーザが、簡略化されたクエリー構築機構を使用するオントロジーによって記述されたデータを選択し、検査できるようにする。ユーザは、まだ実行中である元のオントロジーに存在するすべての制約及び推論とともにデータにレコードを追加できるようになる。最終的には、ユーザは本部の職員による使用に適切なスタンドアロンアプリケーションとして生成された画面を配備できるようになる。
【0184】
データを検査するとき、ユーザはいくつかのフォーマットでデータを表示できる。基本的なデータは、例えばRDF Triplesとして記憶できる。これらはリレーショナルテーブル、スプレッドシート、名前‐値の対、又はユーザによって定義された任意のフォーマットとして表示できる。
【0185】
オントロジーブラウザモジュールは、スタンドアロンツールとして、又は第2に(Protegeのような)既存のオントロジーツールに対するプラグインとしてのどちらかで2つの主要な形式で存在することがある。どちらの形式でも、オントロジーブラウザモジュールは選択されたオントロジーに特有のアプリケーションを生成できる。
【0186】
生成されたアプリケーションは、実行されている元のオントロジーに定義されたすべてのデータ規則とともに、レコードにアクセスする、レコードを更新する、レコードを削除する、及びレコードを追加するための完全な機能コードセットとしてオントロジーなしに使用できる。
【0187】
したがって、オントロジーブラウザモジュールは、画面並びに関連付けられたソフトウェア及びデータを生成してそれらを管理し、ユーザがオントロジー及び該オントロジーによって記述されるデータをブラウズし、編集できるようにする、コンピュータプログラムで実装できるプロセスのセットを提供する。これらの画面は2つの段階で現れる。第1の段階は生成プロセスの間である。この段階では、画面は動的に作成され、ユーザがどの特徴が生成されるべきであるのかを選択できるようにするための追加の情報を表示する。第2の段階で、画面はハードコードされ、生成のために指定された情報だけしか表示しない。
【0188】
画面の簡略な説明は以下の表2に提示される。
【表2】
【0189】
これらの画面は、単一の画面が各種の画面に使用されるような一般的な形式で生成せれずに利用できる。画面レイアウトは、オントロジーコンテンツによって動的に決定される。
【0190】
一般的な画面はユーザフレンドリではなく、カスタマイズできない。したがって、プロセスにより、ユーザは、ルックアンドフィールがカスケード式シート、テンプレート、アイコン、及びユーザ供給パラメータのような機能を使用しパラメータ的に事前に決定することができる画面の完全なセットを生成できるようにする。
【0191】
ブラウザモジュールの配置例は
図15に示される。
【0192】
この点で、ブラウザモジュール1310はオーケストレータ1302からのターゲットオントロジー1501又はユーザによって定義される任意のオントロジーを採取する。ブラウザモジュール1310は、ユーザがオントロジーをブラウズすること、及びオントロジーのどの構成要素をスタンドアロンアプリケーションの中に生成するのかを指定することを可能にする画面1502のセットを表示する。
【0193】
ブラウザモジュール1302は、ターゲットオントロジーに指定された構造及び規則を使用してデータを管理するためのコンピュータ画面1504のセットを含んだスタンドアロンアプリケーション1503を生成する。アプリケーションは、純粋にオントロジー又はデータブラウザモジュールのようないくつかのモードで、又は完全機能データ追加、更新、及び削除アプリケーションとして生成できる。この場合、ユーザはここでオントロジーによって記述されたデータを管理するための完全なアプリケーション1503を有する。
【0194】
OWLファイル又はRDFファイルを使用するオントロジーは、ウェブページを生成し、情報を記憶するための対応するデータベース1505を作成するのに十分な情報を有する。RDFファイル又はOWLファイルはオントロジストによって、彼らの詳細なビジネス知識に基づいて作成された可能性がある。
【0195】
このようにして、ブラウザモジュール1310は、ユーザがクエリーを行う又はトランザクションデータを入力するためのアプリケーション1503を作成する。OWLファイル又はRDFSファイルは、アプリケーションカスタマイズファイル、データベース接続詳細、及びアプリケーションを作成するために必要とされる任意の他のメタデータとともにブラウザモジュール1310の中に送られる。
【0196】
ブラウザモジュール1310は、例えばHTML5、JSP、JSF、又は任意の類似した技術を使用し、ウェブページを作成できる。オントロジーのクラスごとに、ブラウザモジュール1310はウェブページを作成し、そのクラスと関連付けられたプロパティは該ページの中のフィールドとして作成される。アプリケーション1503は、生成されたウェブページとデータベース1505との間で橋渡しをする。それは、ウェブページからデータベース1505にデータを持続するためのプロセス、データベース1505からデータを抽出するためのプロセス、データベース1505でデータにクエリーを行うためのプロセス、及びウェブページにデータを表示するためのプロセスを実行する。ブラウザモジュール1310は、次いでユーザによって供給されるメタデータに指定されるタイプのデータベースを作成し、ロードするためのデータベーススクリプトを作成する。これは、リレーショナルデータベース(RDBMS)、Triple Store、NOSQL、NewSQL、Graph Database又は任意の他の認識されているデータベースであるだろう。
【0197】
ブラウザモジュールの動作は、ここでより詳細に説明される。この点で、オントロジーをブラウズするために、ユーザは以下のオントロジー用語を見つけることができなければならない。
・概念
・データプロパティ
・オブジェクトプロパティ、及び
・推論
【0198】
これは、2つの機構、つまり
・インデクサモジュールに関して以下に説明されるように、名前で係る任意のオントロジー用語を検索するためにオントロジーから上記オントロジー用語にインデックスを付けるための方法、及び
・いったん特定のプロパティが選ばれると、すべての関係するデータ及びオブジェクトプロパティを表示するための方法
を必要とする。
【0199】
これを達成するために、ユーザは当初、表2に記載された『ランディング画面』でブラウズされるオントロジーを選択する。オントロジーはファイル又はウェブアドレスから選択できる。いったんオントロジーが選択されると、オントロジーのインデックスを使用してクラスリストが生成される。このリストは各クラスの名前及び記述を表示する。より大きいリストの場合、リスト検索機能が提供され、ユーザがクラス名又はクラス説明の一部によって検索できるようにする。データプロパティに対して検索することも可能である。どちらの場合も、検索はそのデータプロパティを含むクラスのリストを返すだろう。
【0200】
ユーザは、次いで対象のクラスを選択し、このことが、以下に示すようにフレーム又はタグ付きサブ画面の形式をとる4つの構成要素を含んだ『クラス画面』を表示させる。
・データプロパティ構成要素。各データプロパティの名前はフィールドの脇に説明ボックスとともにリストフォーマットで表示される。フィールドの脇の情報アイコンをクリックすると、すべてのフィールド属性及びそのフィールドに関係するあらゆる公理が表示される。任意選択で(クリック可能)、親クラス/スーパークラス又は関係クラスの1つ又は複数のクラスのデータプロパティも表示されてよい。
・親クラス構成要素/スーパークラス構成要素。これは、それに対するクリック可能なリンクとともに、表示されたクラスの親クラス/スーパークラスの名前及び説明を表示する。このリンクをクリックすると、ブラウザモジュールはカレントクラスのParentを表示する画面を表示する。
・子クラス構成要素/サブクラス構成要素。これは、サブクラス関係性を活用するクリック可能リンクとともに表示されているクラスのサブクラスの名前及び説明を表示する。これらのリンクの1つをクリックすると、ブラウザモジュールは子クラス/サブクラス又はカレントクラスのサブクラスを表示する。
・オブジェクトプロパティ構成要素。これは、それぞれオブジェクトプロパティを使用するクリック可能リンクとともに、選択されたクラスの関係するクラスを表示する。これらのリンクの1つをクリックすると、ブラウザモジュールはカレントクラスに関係するクラスを表示する。
【0201】
クラス画面で『検索』オプションを選択することによって、クエリーはそのクラスのすべてのデータインスタンスを返すために発行される。これは、クラスのインスタンスごとに1行を有するリストとして表示される。特定の行をクリックすることによって、その行はオントロジークラス画面に類似したフォーマットされた画面として表示される。一例では、返されるデータは、結果にフィルタをかけるだろうクエリーを実行することによって制限されてよい。係るクエリーの構築及び使用はここでさらに詳細に説明される。
【0202】
この点で、ユーザに返されるデータにフィルタをかけることは、ユーザから返されるデータのユーザの正確な要件を、フィルタの形で取り込み、次いでそのフィルタに基づいてクエリーを生成することによって達成される。フィルタは、クラス画面のデータプロパティフィールドの中に値又は式を入力することによって構築される。例えば、どのくらい多くの株式をジョン・ドウが所有しているのかを突き止めるために上述されたサンプルオントロジーを使用すると、以下のステップが必要となるだろう。
・クラスリスト画面から『個人』クラスを選択する。
・データプロパティフィールドで、名に『ジョン』を、苗字に『ドウ』を入力する。
・『個人』クラス画面のオブジェクトプロパティフレームから、『株式』クラスを選択する。
・『検索』オプションを選択する。
【0203】
株式クラス画面で『検索』オプションを選択することによって、ジョン・ドウによって所有されるものだけを除いたそのクラスのすべてのデータプロパティを返すためにクエリーが発行される。フィルタは、生成されたアプリケーション1503によってSPARQL、又はデータベース1505に記憶されたデータに対して実行できる、機能的に同等なクエリーに変換される。
【0204】
ブラウザモジュール1310がアプリケーション1503を生成できるようにするために、以下のプロセスが実行される。
・任意選択で、
‐企業名、ロゴ等
‐生成されるアプリケーションの名前
‐作成されるデータベースの名前及びタイプ
‐データベースの場所
‐生成されるアプリケーションのための命名及びコーディングの仕様及び規格。これはスタイルシート、テンプレート、Javaスクリプト、及び他の表示仕様を含む。
‐クラス及びアクションに関連付けられたアイコン
‐ヘルプデスクの場所及び連絡先詳細
‐エラー及びログメッセージの冗長
のようなアイテムを含む、生成されるアプリケーションのためのメタデータを構成する。
・『ランディング画面』では、生成元のオントロジーを選択し、『クラスリスト』画面はブラウザモジュール1310によって表示されている。
・クラスリスト画面で、『g』で生成される各クラスにタグを付ける。
・生成される各クラスを選択し、ブラウザモジュール1310に『クラス表示』画面を表示させる。
・クラス表示画面で、すべてのフィールドは当初『g』にタグ付けされる。各データプロパティフィールド、各スーパー/サブクラスリンク、及び生成される各オブジェクト・プロパティ・リンクを見直し、タグが必要とされない場合はタグを削除する。
・デフォルトで、すべてのフィールドは検索可能である(つまり、フィルタに追加できる)。データプロパティフィールドに『ns』タグを追加することは、そのフィールドが生成されたアプリケーションでは検索不可となることを意味する。
・スーパー/サブクラスリンクフィールド及びオブジェクト・プロパティ・リンク・フィールドのそれぞれに追加のフィールドタグ位置がある。これらのフィールドに『I』タグを設定することによって、それはリンクされたクラスから生成された画面にデータフィールドを生成する。これらのフィールドは更新不可フィールドとして表示される。
・リンクされたクラスからのあらゆるフィールドが表示されなければならない場合、リンクされているクラスを選択し、『I』で適切なフィールドにタグを付ける。
・クラス表示画面に戻り、それが実行されていない場合は、各公理説明からタグを削除する。それ以外の場合、生成されたアプリケーションで整合性の損失がある可能性があるので、公理の前にフィールドを取り除くことは重要である。
・必要とされるクラスが生成のために選択されるまでステップ3〜9を繰り返す。
・クラスリスト画面に戻り、『アプリケーションの生成』オプションを選択する。
・アプリケーションはブラウザモジュール1310によって生成され、アプリケーションメタデータに指定される場所に保存される(ステップ1)。データベース作成及びロードのスクリプトが作成される。これらのスクリプトを実行してアプリケーションを使用できるよう準備する。
【0205】
したがって、上述されたブラウザモジュール1310は、ユーザがオントロジーをブラウズし、オントロジーと対話し、次いで特定のクラス及びデータプロパティを選択することによって、選択されたクラス及びデータプロパティに従ってデータストア1505に記憶されたデータと対話するために使用できるアプリケーション1503を生成できるようにする。
オントロジーインデクサモジュール
【0206】
インデクサモジュールは1つ又は複数のオントロジーの集合体で使用される用語のインデックスのセットを自動的に作成し、ユーザがオントロジーをブラウズし、オントロジーによって定義されたデータのクエリーを促進させるのを支援する。これらのインデックスは、オントロジーのアラインメント、切り詰め、及びブラウズを支援するために他のモジュールによって使用される。
【0207】
インデクサモジュールは、すべてのクラス名、データプロパティ名、及びオブジェクトプロパティ名のリンクされたインデックスのセット、並びに関係性を作成することによって1つ又は複数のオントロジーにインデックスを付ける。インデックスは、意味論等価機能から加えた、ソースオントロジーに由来する意味論的に同等な用語を含む。
【0208】
インデクサの機能性の例は、ここで
図16を参照して説明される。
【0209】
この例では、インデクサモジュール1320は、画面1602のセットを介して又はプロセッサ1301によって、オーケストレータ1302からのオントロジー1601、又はユーザによって定義されたあらゆるオントロジーを受け取り、すべてのクラス名、データプロパティ名、及びオブジェクトプロパティ名のインデックス1603を作成する。画面は、上述されたように、ブラウザモジュール1310によって生成されてよいことが理解される。
【0210】
各オントロジー用語はインデックスを付けられるので、概念マッチングデータベース1604を使用し、セマンティックマッチャモジュール1350から入手されるそのアイテムの同義語にもインデックスが付けられる。オブジェクトプロパティの場合、オブジェクトプロパティによってリンクされる概念はインデックスで相互参照される。
【0211】
上記の例のオントロジーに基づいた概念−データプロパティ−オブジェクトプロパティ(CDO)インデックスのサンプルが表3に示される。これが説明のためのインデックスの表示形式であるが、実際にはインデックスは、以下により詳細に説明されるように、より複雑なインデックス構造に記憶され得ることに留意されたい。
【表3】
【0212】
同義語を包含しなくても、これはきわめて有用なインデックスである。例えば、2つの異なるオントロジーで同じ名前を有するあらゆる概念は、潜在的に合わせられてよい。アライナモジュールは係る各対を採取し、第1のそのオブジェクトプロパティ、及び次いでそのデータプロパティを採取するだろう。
【0213】
例えば、概念『株式』は、概念Ont 1.7及びOnt 2.10として両方のオントロジーに現れる。このレベルで、それらは類似しているように見え(名前は同一であるため、S
1.7,2.10=1.0)、インデクサモジュールの観点から、それは十分である。
【0214】
追加の分析は、以下により詳細に説明されるアライナモジュールによって実行されるだろう。オブジェクトプロパティを調べることによって、アライナモジュールは、オブジェクトプロパティが以下の表4に示されるように異なることに気付くだろう。それらは数及びオブジェクトプロパティ名でマッチするが、関係する概念の1つは異なり、S
1.7,2.10=0.8571を示す。データプロパティを調べることによって、それらが同一のデータプロパティを有し、S
1.7,2.10=1.0を示すことに気付く。
【0215】
アライナモジュールが上記計算を実行したソース情報は、インデクサによって作成されたインデックスですべて利用可能である。
【表4】
【0216】
セマンティックマッチャモジュールを使用する他の概念の追加の分析は、「個人」が「クライアント」のサブクラスであることを示し、したがってS
1.7,2.10=0.8‐>0.95を示すだろう。オントロジー2は、オントロジー1よりもより一般的なモデルである。この類似性の範囲は、2つのオントロジーの株式の間のアンカー点を確立するには十分である。S
i,jの計算はアライナモジュールによって実行される。
【0217】
概念間の関係性は、概念C1がどのように概念C2に関連するかを示す表5に表示形式で示される概念対概念(C2C)テーブルで抽出される。
【表5】
【0218】
インデックスは、上記テーブルを異なるシーケンスにソートすることに対応する複数のフォーマットで構築される。アライナモジュールは、インデックスに対してSQLクエリーを実行することによってそのタスクの多くを実行できる。
【0219】
インデックス構造例は、ここでより詳細に説明される。この点で、セマンティックマッチャモジュールを使用し、語根又は見出し語が同義語セットごとに決定される。セマンティックマッチャモジュールは、文脈が最適結果を得るために設定されることを必要とする。一般に、いくつかのオントロジーに対してインデックスを構築するとき、各オントロジーの文脈は既知で狭く、対象の他のオントロジーに関係付けられる。
【0220】
インデックスの最終セットは、以下に要約されるマルチステッププロセスで作成される。
・インデックスが付けられているオントロジーからのすべての概念、オブジェクトプロパティ、及びデータプロパティを抽出する。
・表3及び表5に示されるフォーマットを用いて一時テーブル(CDO及びC2C)の中にこれらの値をロードする。これらのテーブルは、インデックスを付けられているオントロジーごとに空で作成又は再作成される。
・オントロジーはセマンティックマッチャモジュールにロードされる。これは、オントロジーに含まれるあらゆる定義を使用し、それらを、セマンティックマッチャモジュールにすでにロードされている、又はWordNetのような公のディクショナリから利用できるそれらの定義と比較することによってあらゆる単語を意味論的に調べる。文脈はオントロジー(例えば、医療/外科、又は地理位置)によって供給される。
・セマンティックマッチャモジュールは概念Id、つまり同義語のあらゆるファミリの見出し語又は語根に対応する一意の数を定義する。
・同義語テーブルは、次いで概念Idを有する上述された一時テーブルの用語にマッチする用語をロードされる。
・セマンティックマッチャモジュールによってインデックスを付けられているオントロジーの用語ごとに識別されるすべての同義語も同義語テーブルにロードされる。
・最終的なCDOインデックスは、次いでCDOテーブルの用語ごとに適切な概念Idを置換することによって作成される。
・最終的なC2Cインデックスは、次いでC2Cテーブルの用語ごとに適切な概念Idを置換することによって作成される。
・インデックスの一時(表示バージョン)は削除される。
・インデックスを付けられる次のオントロジーは、次いですべての上述のステップを繰り返すことによってロードされる。
・すべての関連性のあるオントロジーにインデックスが付けられるとき、セマンティックマッチャモジュールに対する同義語テーブルの最終的な通過は、あらゆる新しい同義語がロードプロセス中に識別される場合に実行される。
・インデックスは適切なデータベース構造にロードされ、性能について調整される。通常、これは、オントロジーインデックステーブルに対して複数のデータベースインデックスを作成することを含む。
【0221】
ツールと又はインデックスとの直接的なユーザ対話がないことが理解される。代わりに、インデクサモジュールは他のモジュール、ツール、又は構成要素によって使用されるサービスを提供する。
【0222】
本インデックスが提供できるサービスのいくつかは、以下を行う強化された能力を含む。
・オントロジーの選択から最良のオントロジーを選ぶ。
・複数のオントロジーを合わせる又はマージする、
・オントロジーをナビゲーションする、
・同意語を抽出する、
・セマンティックマッチングを実行する。
オントロジープルーナモジュール
【0223】
プルーナモジュールは、ユーザが、ユーザの対象のオントロジー用語に関連するデータ又は公理を含む構成要素を不注意に削除することによって整合性を失うことなく、大きなオントロジー又は合わせられたオントロジーの集合体を採取し、それらをユーザのニーズにとって対象のクラスに切り詰めることを可能にするように設計されている。
【0224】
例えば、解剖学の基礎的なモデル(FMA)のような大きい参照オントロジーを構築し、活用するときに問題が生じる。この点で、FMAは、本来はごく一般的でもある(例えば、アプリケーションに特有ではない)が、非常に大きくきわめて詳細である。また、FMAは、適切なモデリング原則に対するその順守においても厳格である。これらの基準はともにFMAを多くの可能性があるアプリケーションに与える。ただし、これらの基準は、任意の特定のアプリケーションによる使用にFMAを扱いにくくする(つまり過剰に大きい又は詳細又は原則に基づかせる)。
【0225】
結果として、FMAの潜在的なユーザは以下の基本的な形の要求、つまり「本当にFMAを気に入っているが、FMAは自分たちのニーズにとっては大きすぎる又は詳しすぎであり、実際にはFMA全体のサブセットに基づいた何かしか必要としていない」を有していた。分割のための基礎は、アプリケーションごとに変化したが、例は以下を含む。
・部位ベース、つまり脳又は腹部
・システムベース、つまり心臓血管系又は骨格系
・粒度ベース、つまりx線に見えるアイテム又は細胞成分及び亜細胞成分のみ
【0226】
所望されるオントロジー派生物は概して上記のもののようなサブセット抽出に基づいていたが、該派生物はアプリケーションの必要性により見合うために多くの場合さらに操作された(つまり、追加されたクラス、削除されたクラス、削除されたプロパティ、追加されたプロパティ等)。
【0227】
係る要求は、以下の3通りの内の1つで処理できるだろう。
・一般的な解決策ではない、それぞれの新しい要求に特有な手続き型コードを作成すること、
・定義及びソースオントロジー(複数の場合がある)からアプリケーションKBを生成できるだろうエンジンだけではなく、所望されるアプリケーション(KB)(必ずしも適切なオントロジーではない)を定義するための言語も必要とする、オントロジーに対するビューを作成すること。これはプロパティの追加及び削除に問題を有する。
・よくモデル化されたサブセットオントロジーを送達するためにオントロジーを切り詰めること。
【0228】
このようにして、関連性、性能、管理容易性、及びテスト容易性のような切り詰められたオントロジーに多くのニーズがあり、これらの要件は、オントロジーの専門知識をほとんど又は少しも有さない人が不必要な概念を安全に切り詰めることができるようにするツールによって満たされるべきである。さらに、その人は簡略化されたクエリー構築機構を使用することによって、オントロジーにより記述されるデータを選択し、検査できる必要がある。次いで彼らはその削除に取り組む前にオントロジーから構成要素を削除することの影響を研究し、次いで切り詰められたオントロジーを新しいオントロジーとして「保存できるだろう。
【0229】
例えば、SNOMED−CTは、臨床文書で使用される医学用語の大きな医学オントロジーである。SNOMED−CTは、医学用語間の約1,400,000の関係性を有する300,000超えの概念から成る。概念は19の機能領域に分割される。研究者にこれらの領域の1つ、例えばメンタルヘルスにしか関心がない場合がある。他の18の領域を削除すると、医療健康用語と薬剤用語との間の関係性の多くが壊れるだろう。研究者がこれらのアイテムの保持を希望する可能性があることは明らかである。手作業でこのようにすることは既存のツールを用いた何か月もの作業を必要とし、エラーを発生しやすいであろう。
【0230】
別の例として、ユーザはいくつかの既存のソースオントロジーの構成要素から新しいオントロジーを作成し、次いでそれら独自の追加を追加することを希望することがある。結合されたオントロジーは、削除される必要があるだろう多くの関連性のない概念を含むだろう。例えば、配達ルートを決定し、最適化できるようにするオントロジーを作成するために地理位置オントロジーと輸送オントロジーを結合する宅配便会社。これらのオントロジーを結合し、空港で旅程を開始及び停止する飛行機、港での船舶、並びに駅での列車のような公理を追加することによって、彼らのビジネスモデルであらゆる概念をカバーする情報ベースを構築することが可能になるだろう。ただし、各ソースオントロジーの多くは必要とされないだろう。
【0231】
切り詰められたオントロジー定義は、完全なオントロジーに対するビューの代わりに使用され得る。このビューは、アクセス制御、範囲管理等のようないくつかの目的に使用できるだろう。
【0232】
これを達成するために、プルーナモジュールは、以下の表6に提示される機能を実行するためにブラウザモジュールと併せて動作する。
【表6】
【0233】
プルーナモジュールは、ユーザが、選択したオントロジーのどのクラス、データプロパティ、オブジェクトプロパティ、及び公理を保持することを希望するのかをユーザが指定できるようにするためにブラウザモジュールと対話する。保持されたものを使用し、プルーナモジュールは、オントロジーで定義されている相関的な及び公理的な整合性が維持されていることを確かめるためにチェックする。
【0234】
別のバージョンでは、ユーザは、切り詰められたオントロジーで保持されなければならない、単一のオントロジーの中の2つの必須概念を指定してよい。本発明は、次いでクラス間のすべての概念関係性をマップし、指定された概念を分析するために必要とされるすべてのクラスをタグ付けする。追加のクラス、オブジェクトプロパティ、及び公理は次いで切り詰められたオントロジーの整合性を保証するためにソースオントロジーから含まれる。
【0235】
別のバージョンでは、ユーザは、切り詰められたオントロジーで保持されなければならない、異なるオントロジーから2つの必須概念を指定してよい。プルーナモジュールは次いでクラス間のすべての概念関係性のマッピングを試み、指定された概念を分析するために必要とされるすべてのクラスをタグ付けする。接続経路が識別されない場合、ソフトウェアは2つの開始概念を接続する切り詰められたオントロジーを作成する潜在的な不可能性を認識する。ユーザは、以下を行うように求められる。
・該試みを断念する、又は
・目標を再定義し、再び開始する、又は
・手作業で又は別のオントロジーからのどちらかで追加クラスを追加することによって範囲を拡大し、再び開始する。
【0236】
成功を想定し、ユーザは結合されたソースオントロジーからサイズが大幅に削減された完全なオントロジーを有する。
【0237】
プルーナモジュールの配置の例は、
図17Aに示される。
【0238】
この例で、プルーナモジュール1330はOWLファイル及びRDFSファイルに定義されたオントロジー1701を開き、ユーザは次いで以下の表7に定義される画面1702のセットを介してプルーナモジュール1330と対話して、それによって切り詰められたオントロジー1703を作り出す。画面が上述されたようにブラウザモジュール1310によって生成され得ることが理解される。
【表7】
【0239】
図17Bを参照してここで説明されるように、単一オントロジーを切り詰めるとき、これはツールによって支援される手動プロセスである。
【0240】
この例で、ユーザは、ユーザが必要とする概念を選択し、ツールは完全性及び整合性に必要とされる構成要素を識別し、追加する。ユーザはソースオントロジーで開始シード点S
0としてクラスを選択し、キープためにそれにK
0としてタグを付ける。
【0241】
コンピュータは、K
0としてタグを付けられたクラス及び推論から、『K
0』として記されたクラスのすべての親、すべてのクラス及び推論を識別し、『K
1』としてタグをつける。これらのタグを付けられた変数はS
1−シェルと呼ばれる。ユーザはコンピュータによってタグが付けられたアイテムを見直し、それらにキープ(Keep)のK
1、不確実性(Maybe)のM
1、及び廃棄(Discard)のD
1としてタグを付け直す。すべての公理はタグを付けられたM
i構成要素及びK
i構成要素のためにロードされる。プロセスは次いで繰り返され、ユーザが適切なオントロジーに対するすべての構成要素にタグを付けるまで、毎回iを増分する。
【0242】
次いで、潜在的なエラーを識別し、推論された値を追加するために、リーズナが結果として生じるオントロジーに適用される。このようにして追加されたあらゆる概念、推論、又は公理はK
nとタグを付けられ、タグを付けられた構成要素は切り詰められたオントロジーとしてエクスポートされる。
【0243】
複数の重複するオントロジーの場合、プロセスは
図17Cに示される通りである。
【0244】
この例で、ユーザは、1つのオントロジーで開始シード点S
0としてクラスを選択し、同じ又は別のオントロジーのどちらかで終了点E
0として別のクラスを選択し、それらの両方をKeepのためのKとして『K
0s』又は『K
0e』でタグ付けする。
【0245】
コンピュータは、『K
0x』と記されたクラスのすべての親を『K
1s』又は『K
1e』としてタグ付けし、クラス及び推論からのすべてのサブクラス及び推論は『K
nx』としてタグ付けされ、n=1である。これらのタグ付けされた変数はS
1−シェル及びE
1−シェルと呼ばれる。Sシェル及びEシェルの変数は、以下により詳細に説明されるセマンティックマッチャモジュールによって比較される。マッチャモジュールは各シェルの変数間のマッチ品質に対する数値を返す。所定のマッチ品質が満たされると、次いで2つのシェルの間に経路が決定される。これは、シェルが重複する場合にだけ発生するはずである。開始点及び終了点が同じオントロジーにある場合、マッチ品質は1.0、つまり完全一致でなければならない。
【0246】
いかなる段階でも、タグ付きデータクラスのデータプロパティは切り詰められてよい。これは、クラスを選択し、データフィールド(データプロパティ)をDiscardの『D』として記すことによって実行される。廃棄されたフィールドの存在に基づいたあらゆる推論が無視される。
【0247】
これらのステップは反復され、所定数の変数が適切なマッチ品質を有する又はシェルの所定の深さに到達するまで毎回1ずつ、nを増分する。マッチング変数のシェル経路は『P
jx』とタグ付けられる。経路を確立せずにシェルの所定の深さに到達する場合、次いでプロセスは失敗し、オントロジーは不同等とみなされる。プロセスは停止する。この点で、所定のシェルの深さを増加し、KからDiscardのDまでの範囲外と見なされるあらゆる概念のタグを手作業で変更することが可能である。プロセスを再開できる。
【0248】
いったんこれらが確立されると、S
0とE
0間の経路P
jをポピュレートすることができ、骨組みの切り詰められたオントロジーはこれらの経路の観点から定義できる。タグ付けされたP
j経路構成要素のすべてのクラスの親及び推論された親も経路P
jに属するようにタグ付けされる。すべての公理がタグ付けされたP
j経路構成要素のためにロードされ、このようにして拡大されたオントロジーを作成する。
【0249】
リーズナは潜在的なエラーを識別し、推論された値を追加するために拡大されたオントロジーに適用される。このようにして追加されたあらゆる概念、推論、又は公理はタグ付けされ、切り詰められたオントロジーの一部としてエクスポートされる。
【0250】
不同等のオントロジーの場合、プロセスは
図17Dに示される。この点で、不同等のオントロジーは、次の2つの考えられる理由から発生することがある。
・ユーザが、ユーザがオントロジーを合わせる又は2つのオントロジーの概念からサブセットオントロジーを抽出しようと試みるまでオントロジーは不同等であることを理解していなかった。これは前項の潜在的な失敗結果である。又は、
・ユーザは、オントロジーが不同等であることを知っており、オントロジーが結合できるよう概念及びプロパティを供給している。
【0251】
いずれの場合も、ユーザはオントロジーを結合できるよう情報を供給しなければならない。これが事実上プロセスの開始点である。
【0252】
ユーザは一方のオントロジーで開始シード点S
0としてクラスを選択し、他方のオントロジーで終了シード点E
0として別のクラスを選択し、両方をKeepのKとして『K
0s』又は『K
0e』でタグ付けする。さらに、それらは、線1710によって示されるように、オントロジーを接続するユーザによって定義された経路のセットを定義する。
【0253】
これらの経路は、『i』が定義されている経路番号である、開始点及び終了点『U
0Si』及び『U
0Ei』を有する。これらの経路は、あるオントロジーのクラスで開始し、別のオントロジーのクラスで終了する、関係する概念の隣接するセットを形成する。
【0254】
開始点/終了点とユーザによって定義された概念『i』との間の経路P
si及びP
eiを確立するために、各概念対S
0と『U
0Si』及びE
0と『U
0Ei』に次いで適用された重複オントロジーについて上述されたプロセス。いったんこれらが確立されると、S
0とE
0の間の経路P
iはポピュレートすることができ、骨組みの切り詰められたオントロジーはこれらの経路の観点から定義できる。タグ付けされたP
i経路構成要素のすべてのクラス親及び推論された親も経路P
iに属するとしてタグ付けされる。すべての公理がタグ付けされたP
i経路構成要素のためにロードされる。これが拡大されたオントロジーと呼ばれる。
【0255】
リーズナは潜在的なエラーを識別し、推論された値を追加するために拡大されたオントロジーに適用される。このようにして追加されたあらゆる概念、推論、又は公理は追加され、エクスポートできる切り詰められたオントロジー1711に含まれる。
【0256】
概念が切り詰めの開始点としてユーザによって選択されるとき、どの追加概念を含める必要があるのかを判断することが必要である。この判断を下すために適用されるオブジェクトプロパティ及びデータプロパティベースのアルゴリズムベースがある。この点で、オブジェクトプロパティは以下の属性を有する。
・オブジェクトプロパティは2つの概念間の関係性に名前を付ける。
・関係性は方向を有する。これは『ドメイン』概念から『範囲』概念として定義される。リレーショナルデータベースの専門用語では、ドメインの一次キーがRangeの外部キーになる。
・任意選択で、関係性は以下を含んだタイプを有する。
‐機能的
‐逆機能的
‐推移的
‐対称
‐非対称
‐再帰的
‐非再帰的
【0257】
また、スーパークラス/サブクラスの関係性はオブジェクトプロパティの特別な場合に同等である。サブクラスは、そのスーパークラスのすべてのデータプロパティ及びすべてのオブジェクトプロパティを『継承する』。
【0258】
上述されたサンプルオントロジーを使用し、切り詰めの開始点が『クラブ』であると、次いで切り詰められたオントロジーにクラブのすべてのスーパークラス、つまり組織及び当事者を含めることが必要になるだろう。その関係性の方向及びタイプがその自動包含を除外するので、メンバーのクラスは含まれないだろう。同じ理由から、組織及び当事者のサブクラスは自動的に含まれず、クラブのサブクラスも、あったとしても含まれないだろう。
【0259】
ただし、メンバーが含まれた場合には、オブジェクトプロパティ『有する』の方向及びタイプは、クラブが個人であり、そのすべてのスーパークラスが自動的に含まれたことを保証するだろう。
【0260】
任意の概念のデータプロパティ『タイプ』は、それがモデル化されていない概念、すなわちクラブでの『クラブのタイプ』、メンバーでの『メンバーのタイプ』等の存在を暗示するため警戒を促す。例えば、『クラブのタイプ』概念はセーリング、チェス、事務等のようなすべての有効値のリストを含むことがあるだろうクラブのタイプ概念は『クラブの範囲』とともに『タイプを有する』と呼ばれるオブジェクトプロパティを有するだろう。この概念は切り詰められたオントロジーに自動的に含まれるだろう。
【0261】
すべての自動的な包含及び排除は、すべての概念にわたって又は概念単位でのどちらかで修正できる。ユーザは各タイプのオブジェクトプロパティに『包含』、『排除』又は『尋ねる』を指定する。
【0262】
特定の概念を包含する決定は、オントロジー規則、特にオブジェクトプロパティを推論エンジンに対する入力として使用して専門化されたSemantic Reasonerを使用することにより下される。一階述語論理は明白な包含及び排除を得るために初めに使用される。『タイプ』データプロパティの例の通り、追加の推論は前方推論連鎖及び後方推論連鎖を使用し、決定されなければならない。最良の結果を得るために、それぞれの局所化された問題領域にNovamenteの確率論ネットワーク技法を適用できる。
【0263】
プルーナモジュールの動作例はここでより詳細に説明される。この例では、オントロジーを切り詰めるために、該オントロジーに含まれる概念、データプロパティ、オブジェクトプロパティ、及び推論を識別することが必要である。一例では、これはオントロジーアイテムにインデックスを付けるためにインデクサモジュールを使用し、次いで上述されたように選択のためにオントロジー用語を表示するためにブラウザモジュールを使用して達成される。
【0264】
特に、ユーザはブラウザモジュール『ランディング画面』で切り詰められるオントロジーを選択する。この点で、オントロジーは、ファイル、ウェブアドレス等のような任意のソースから選択できる。いったんオントロジーが選択されると、クラスリストがオントロジーのインデックスを使用して生成される。このリストは各クラスの名前及び説明を表示する。より大きいリストの場合、リスト検索機能が提供され、ユーザがクラス名又はクラス説明の一部ごとに検索できるようにする。データプロパティに対して検索することも可能である。どちらの場合も、検索はそのデータプロパティを含むクラスのリストを返すだろう。ユーザは次いで開始点としてクラスを選択し、該クラスにS
0とタグを付ける。
【0265】
任意選択で、ユーザは次いで終了点E
0を選択する。ユーザが終了点を選択しない場合、次いでユーザは上述されたように切り詰め動作を手作業で制御する必要がある。また、ユーザはランディング画面に戻り、終了点の別のオントロジーを選択してよい、又は代わりにユーザは選ばれたオントロジーが不同等であることを認識している場合には、ブリッジ概念及び関係性のセットを追加できるだろう。ユーザがブリッジ概念を指定しない場合、次いでプロセスは上述された重複オントロジープロセスに基づいて進み、それ以外の場合、プロセスは不同等のオントロジーのプロセスに従って進む。
【0266】
切り詰めプロセスを制御するために、以下を含んだいくつかのメタデータパラメータを設定できる。
・切り詰められたオントロジーを記憶するための場所
・調査のためのシェル深さ
・同一性を受け入れるためのマッチ品質
・手動編集を可能にするために各シェルの完了時にプロセスを休止するかどうか
・最大ランタイム
・エラー及びログメッセージの冗長
【0267】
手動切り詰めプロセスの例は、ここでより詳細に説明される。
【0268】
この例で、ユーザは切り詰めプロセスを開始する開始点だけを指定する。ユーザはいかなるときにも交互に用いることができる2つの方法の内の1つで手動切り詰めを実行できる。
・通常ブラウザモジュール1310によって表示されるクラスリスト画面から、ユーザは『K』で、保持されるクラスにタグを付けることができる。いかなるときでも、ユーザは、あらゆる関係するクラス及び公理に自動的にタグを付け、クラスリストにタグ付けられたクラスを表示する『有効化』オプションを選択できる。さらに、ユーザは、選択されたクラス及び関係性を図式で示すためにタグ付けされたクラスをグラフ作成プログラムに渡す『見る』オプションを選択できる。グラフ作成プログラムはOntoGraf等のような公に入手できるグラフ作成パッケージであることがある。
・代わりに、ユーザは、ブラウザモジュール1310によって表示されるクラスリスト画面のクラスをクリックすることによってクラス表示画面の開始クラスを開くことができる。ユーザは次いでユーザが保持を希望する、あらゆるサブクラス/スーパークラスに、オブジェクトプロパティフレームに指定されるあらゆるクラスを加えたすべてのデータプロパティにタグを付けることができる。このプロセスは表示される任意の関係するクラスに対するリンクをクリックすることによって反復して実行できる。いかなるときにも、ユーザはクラスリスト画面に戻って進行を有効化又は見ることができる。
【0269】
いったんユーザが切り詰められたオントロジーに必要とされるクラスのタグ付けを終了すると、ユーザはクラスリスト画面に戻り、『オントロジーの生成』オプションを選択できる。これにより、切り詰められたオントロジーがアプリケーションメタデータで指定された場所に生成される。タグは、切り詰めプロセスの容易な再編集を可能にするために保存できる。
【0270】
重複オントロジーを切り詰めることの例は、ここでより詳細に説明される。
【0271】
この例で、ユーザは、切り詰めプロセスを実行するための開始点及び終了点だけを指定する。プロセスは上述された複数の重複するオントロジーで説明されるように進行する。
【0272】
アプリケーションメタデータパラメータがシェル間で休止するように設定されていると仮定し、プロセスは各シェルの完了時に停止する。この点で、ユーザは自動的にタグ付けされたアイテムを確証する又は見ることができ、ユーザが関連性がないとして認識するあらゆるタグを削除してよい。開始点及び終了点を接続する経路が確立されるまで、ビュー機能は2つの部分的なオントロジーを表示する。『再開』オプションを選択することによって、プログラムは次のシェルの決定時に開始する。
【0273】
1つの経路が識別された後のいかなるときにも、プロセスを停止できる。ただし、代わりに、開始点と終了点の間のいくつかの異なる考えられる経路を決定できる。
【0274】
いったん処理条件の指定された目的が満たされると、プロセスは停止し、以下の内の1つを含むだろうステータスメッセージとともにユーザに戻る。
・指定最大シェル深さに到達した。経路は見つからなかった。オントロジーは不同等である可能性がある。(失敗)
・指定最大シェル深さに到達した。『n』個の経路が見つかった。『m』個の経路が要求された。(部分的な成功)
・指定数の経路が見つかった。(完全な成功)
【0275】
ユーザは、アプリケーションメタデータの完了基準を変更し、再開オプションを選択することによってプロセスを拡張することを決定してよい。ユーザが結果に満足した場合、ユーザは『オントロジーの生成』オプションを選択するだろう。これによって、切り詰められたオントロジーがアプリケーションメタデータで指定された場所に生成される。タグは、切り詰めプロセスの容易な再編集を可能にするために保存できる。
【0276】
ユーザが、オントロジーが事実上不同等であると決定する場合、次いでユーザは以下に説明されるように進むだろう。
【0277】
この例で、ユーザは、切り詰めプロセスを実行するための開始点及び終了点、並びに関係するブリッジ概念を指定する。ユーザは、オントロジーを切り詰め、マージするために以前の試みからタグを保存していた可能性がある。
【0278】
切り詰め開始オプションを選択することによって、プロセスは上述の不同等のオントロジーのプロセスに従って説明されたように開始する。シェル間で休止するためにアプリケーションメタデータパラメータが設定されたと仮定すると、プロセスは、各シェルが完了すると停止する。
【0279】
この点で、ユーザは自動的にタグ付けされたアイテムを確証する又は見ることができ、ユーザが関連性がないとして認識するあらゆるタグを削除してよい。ユーザによって定義されたブリッジ点の1つに開始点及び終了点を接続する経路が確立されるまで、ビュー機能は、ユーザ定義点ごとに1つ、並びに開始点及び終了点に1つ、多くの部分的なオントロジーを表示する。
【0280】
再開オプションを選択することによって、プロセスは次のシェルの判断について開始する。ソースオントロジーの1つの経路及びターゲットオントロジーの1つの経路がブリッジクラスを介して接続された後のいかなるときでも、プロセスは停止できる。ただし、代わりに、開始点と終了点との間の可能な限り多くの経路を決定できる。
【0281】
いったん処理条件の指定された目的が満たされると、プロセスは停止し、以下の内の1つを含むだろうステータスメッセージとともにユーザに戻る。
・指定最大シェル深さに到達した。経路は見つからなかった。オントロジーは不同等である可能性がある。(失敗)
・指定最大シェル深さに到達した。『n』個の経路が見つかった。『m』個の経路が要求された。(部分的な成功)
・指定数の経路が見つかった。(完全な成功)
【0282】
ユーザはアプリケーションメタデータの完了基準を変更し、再開オプションを選択することによってプロセスを拡張することを決定してよい。
【0283】
ユーザが、オントロジーがまだ事実上不同等であると決定する場合、次いでユーザはブリッジ概念を調べる上である程度の努力を費やす必要があるだろう。ユーザは、経路が合流することを保証するために手作業のタグ付けを実行する必要がある場合がある。
【0284】
ユーザが結果に満足した場合、ユーザはオントロジー生成オプションを選択し、切り詰められたオントロジーがアプリケーションメタデータで指定された場所に生成される。タグは、切り詰めプロセスの容易な再編集を可能にするために保存できる。
セマンティックマッチャモジュール
【0285】
セマンティックマッチャモジュールは、2つの概念がある特定の文脈の中で考慮されるときに類似する程度まで数学値を適用できるようにする。このプロセスの名前は『セマンティックマッチング』であり、2つのオントロジーで概念を合わせようとするときに、それは特に重要である。例えば、ビジネスの文脈での単語『企業』及び『組織』は厳密には同じ意味をもたない。すべての企業は組織であるが、すべての組織が企業であるわけではない。事実上、クラス企業はクラス組織のサブセットである。例えば、『この組織は上場企業であるが、その組織はゴルフクラブである』。
【0286】
社会的な文脈では、企業は組織に関係付けられているのではなく、共同経営者の集合に関係付けられている。例えば、『ジョン・ドウは悪友と付き合う』。クラブ及び企業はともに組織であるため、なんらかの類似性がある。上場企業及び非上場企業も類似し、共通の親を共有する。それらはクラブ及び企業と同程度に概念上近いのか。非上場の公開会社(>50人の株主)及び非上場の非公開会社(<51人の株主)はどうだろうか。それらは上場企業及び非上場企業よりも近いのか。
【0287】
2つの概念がどれほど類似している可能性があるのかを測るための数学的なベースを与えるために、『同一性』の概念を導入する。いくつかの公式の測定基準がある。例えば、Levenstein距離(Levenshtein、1966年)は、2つの文字列をマッチさせるために必要とされる挿入及び削除を数え、Needleman−Wunsch(Needleman、1970年)距離は編集動作に異なるコストを割り当て、Smith−Waterman(Smith、1981年)はさらにコストにアルファベットマッピングを使用し、Monge−Elkan(Monge、1996年)は単語間のサブ文字列ギャップに応じて可変コストを使用する。さらに、2つのストリングが「短い」距離によって置き違えられても2つの文字列間の共通の文字を数えるJaro−Winkler類似性、2つの文字列間で共有される三重文字の数を数えるQ−Gram(Sutinen、1995年)、及び最大公約サブ文字列を検索するサブ文字列距離を使用した。ただし、これらの内のどれも特に効果的であることは判明していない。
【0288】
もう1つの共通技法は、『物事』の概念を根とする単一の階層木で概念を配置することである。大部分の同一性式は測定されている概念とその共通の親との間の概念の数、及び階層の根までの距離の関数である。
【0289】
ただし、オントロジーを構築したオントロジスト及びオントロジーがオントロジーを使用する人によって切り詰められているかどうかに応じて、階層の根までの距離が大幅に異なることがあることを考慮すると、根までの距離は概して関連性がない。
【0290】
概して、同一性は概念の間のエッジ数によって測定される。他の可能性は、データプロパティの数に基づいて存在する。例えば、上場公開企業及び非上場公開企業はそれぞれ1つの属性しか有さないことがあり、バランスは企業の定義に保持されるのに対し、クラブ及び企業はそれぞれ「5」つのデータプロパティを有することがあり、バランスは組織の定義で保持される。したがって、企業がクラブに類似するよりも、非上場の公開企業は上場公開企業により類似している(「10」の代わりに「2」つの属性、つまり言い換えると、より少ない相違があり、相違は距離に同等である)。
【0291】
『距離』の概念は重要と見なされる。2つの概念はどれほど遠く離れているのか。測定されている概念とその共通の親との間の概念の数に基づいた式がある。距離が「1」である場合には、一方の概念が他方のスーパークラスであることは明らかである。しかしながら、距離が「2」である場合には、概念は兄弟又は孫のどちらかである。これは特に有用な事実ではない。
【0292】
距離と同一性の間にはいくつかの関係性がある。明らかに、距離が「0」である場合には、同一性は「1.0」である。つまり、概念は同一であるため、実際にはこのインスタンスには1つの概念しかない。
【0293】
優れたセマンティックマッチャモジュールは、あらゆる適切な数式を使用し、マッチの同一性及び距離を計算できなければならない。
【0294】
それを考慮に入れると、科学の世界、工学の世界、及びビジネスの世界のあらゆる態様を記述する何千もの公のオントロジー及び私的なオントロジーがある。2つのオントロジーを合わせるためには、2つのオントロジーの概念間に意味論的なマッチがあるかどうかを判断することが必要である。
【0295】
現在では、リンクされた概念を定義するオントロジーの操作は研究者及び専門のオントロジストに制限されている。概念の定義及び名前は、文脈に応じて非常に変化する。オントロジーの中で及びオントロジーにわたって用語を比較するためには、用語を意味論的に調べるためのなんらかの機構を有する必要がある。2つの概念が実際に同じ事柄に対する同義語であるのか、それともそれらはなんらかの方法で関係付けられているのか。例えば、組織及び企業はある程度の同一性があるようにいくつかの属性を共通して有している。すべての企業は組織であるが、すべての組織が企業であるわけではない(小前提)。
【0296】
別の例では、指の存在は手の存在を暗示する。指及び手は同じではないが、それらの間には関係性があり、一方が他方の一部であるため、一方の存在は他方の存在を暗示する。(部分語)
【0297】
任意の2つの概念を考慮すると、該概念がどれほど類似しているのかを知りたいと思う。つまり、同一性0−>1であり、上式では1.0が、一方が他方のサブクラスであるのか、それともスーパークラスであるのか(−1,0,1)、及び1つが別のものの部分であるかどうか(−1,0,1)に関わらず、該概念が同一であることを暗示している。
【0298】
セマンティックマッチャモジュールは、概念、概念の意味、及び概念間の関係性のデータベースを含む。セマンティックマッチャモジュールは、概念と概念の定義との間の関係性を手作業で編集するため、及び数学的に定義された方法で概念を分析するための、オントロジーから概念をロードするためのツールを有する。これらの数学的に定義された概念のプロパティ及び概念の関係性は、次いでディクショナリとして及びセマンティック概念マッチャモジュールとして、オントロジーを合わせることのようなさまざまな状況で使用できる。
【0299】
セマンティックマッチャモジュール概念はある特定の文脈(例えば、医学、ビジネス)で同義語、小前提(クラス階層)、及び部分語(の部分)を見付ける。それは、オントロジーをパースし、クラス、クラスの注釈、クラス構造、及び任意のオブジェクトプロパティ「の部分」を得ることによって最初にロードされる。クラス名は次いで、意味及び考えられる同義語を決定するためにWordNet又はWatsonなどの何かに使用される。意味は、あらゆる表記がパースされるように、トリプルにパースされる。マッチャモジュールは次いで同義性を決定するトリプルの数学的な対応を探す。
【0300】
セマンティックマッチャモジュールは、通常は2つのオントロジーからの概念の2つのリストを評価するか、あるいは単一の概念を評価し、参照用語にこれをマッチして概念の意味を決定するかのどちらかのスタンドアロンプロセスである。
【0301】
第1のインスタンスで、マッチャモジュールは第1のリストの各アイテムを第2のリストの各アイテムと対にする。各対i
,jは次いで以下のアイテムを決定するために分析される。
・意味類似性S
ij
‐用語が同義語である場合には類似性はS
ij=1.0である。
‐反意語の場合にはS
ij=−1である。
‐関係性がない場合にはS
ij=0である。
・小前提関係性Sub
ij
‐C
iがC
jのサブクラスである場合には、Sub
ij=−1である。
‐C
iがC
jのスーパークラスである場合には、Sub
ij=1である。
‐それ以外では、Sub
ij=0である。
・部分語関係性Mer
ij
‐C
iがfC
jの一部分である場合には、Mer
ij=−1である。
‐C
jがC
iの一部分である場合には、Mer
ij=1である。
‐それ以外では、Mer
ij=0である。
【0302】
第2のインスタンスでは、マッチャモジュールは単一の概念及び文脈定義をとり、その文脈のその概念のために同義語、サブクラス及びスーパークラス、並びに部分語のリストを作成する。文脈が与えられない場合、すべての文脈にわたって評価が実行される。
【0303】
医学オントロジー及び人事オントロジーはSemMatchに従って定義された旨の推測に基づいていくつかの例が後続する。
【0304】
2つの異なる使用方法は、
図18A及び
図18Bを参照してここでより詳細に説明される。
【0305】
セマンティックマッチャモジュール1350はその評価を実行するために概念マッチングデータベース1604を使用する。
図18Aの例で、オントロジー用語A、B及びX、Yのような概念の2つのリスト1801、1802が受け取られ、次いでオントロジー用語の考えられる対成ごとに同一性スコア1803を生成するためにセマンティックマッチャモジュール1350によって比較される。
【0306】
図18Bの例で、単一のオントロジー用語1804のような単一の概念が受け取られ、セマンティックマッチャモジュール1350は概念マッチングデータベース1604とこれを比較し、同義語1805のリストを返す。
【0307】
概念マッチングデータベース(CMD)1604は、インデクサモジュール1320を使用して構築される。CMDが使用できる前に、データベースが最初にロードされなければならず、通常、データベースは対象の文脈に基づいてオントロジーをパースすることによってロードされるだろう。データベースは新しい文脈を追加するときは常にユーザによって更新できる。
【0308】
CMD1604は、18Cに示されているテーブル間の関係性とともに表8に定義されるいくつかのテーブルを含む。
【表8】
【0309】
ロード機構が、
図18Dを参照してここで詳細に説明される。
【0310】
最初に、ロードされるオントロジー1801の全体的な文脈が決定され、1のIDを用いてコンテキストテーブルに入力される。例えば、医学オントロジーがロードされる場合、文脈は「医学」として識別されるだろう。
【0311】
以下に示されるこのカテゴリのオントロジー及びそれぞれの文脈名の例。
・有害事象報告オントロジーAERO
・アフリカ伝統医学オントロジーATMO
・アレン脳地図成体マウス(ABA)の脳オントロジーABA−AMB
・アルツハイマー病オントロジーADO
・アミノ酸オントロジーAMINO−ACID
・両生類肉眼解剖学オントロジーAAO
・両生類分類法オントロジーATO
・解剖病理学用語集PATHLEX
・解剖エンティティオントロジーAEO
【0312】
これらのオントロジーのそれぞれはソーステーブルにロードされるソースを有し、このようにしてソース2のコンテキストテーブルもロードできるようにする。
【0313】
次に、以下の情報が抽出され、オントロジーのそれぞれからパースされる。
・クラス
・オブジェクトプロパティ
・注釈
・ラベル
【0314】
すべての単語は1つのオントロジーに由来するので、コンテキスト_IDは既知である。各クラスは単語テーブルで単語になる。注釈は単語テーブルで意味としてロードされる。ともにヌルに設定される単語_ID2コンテキスト_IDを見出し語(ルート意味)及び概念と関係付け、ヌルに設定されたクラス及び概念_IDごとにクラス2オブジェクトプロパティ2クラスを単語_IDに関係付けて、一時的なテーブルが作成される。
【0315】
これに続き、抽出されたクラス及びその注釈は次いで単語テーブルにロードされる。各クラスが単語になる。各単語は一意の単語_IDを割り当てられ、クラス注釈が単語テーブルの意味になる。すべての単語は1つのオントロジーから由来しているので、上述されたようにコンテキスト_IDは既知である。
【0316】
ともにヌルに設定された単語_ID2コンテキスト_IDを見出し語及び概念に関係付け、ヌルに設定されたクラス及び概念_IDごとにクラス2オブジェクトプロパティ2クラスを単語_IDに関係付けて、一時テーブルが作成される。
【0317】
文脈ごとに、第1のステップは、各単語をWordNet1802のような標準的なディクショナリから得られる意味及び同義語にマッチさせることである。あらゆるマッチしない単語は次いで同義語を識別するために他の文脈からの単語にマッチされる。これらのステップはここでより詳細に説明される。
【0318】
単語テーブルの各単語は、その単語に基づいて、同義語又は語彙素のグループの意味及び潜在的に語根又は見出し語を得るためにWordNet1802に渡される。WordNetの意味は注釈から引き出される意味と語彙的に比較される。
【0319】
これは、RDFトリプルに意味を変換し、トリプルを評価することによって行われる。このプロセスは以下により詳細に説明される。
【0320】
意味がマッチする場合、次いでWordnetの単語及び意味が、新しい単語_IDとともに単語テーブルにロードされる。新しい単語_IDは単語_ID_Cに割り当てられ、元の単語_IDは単語_ID_Pに割り当てられ、両方とも次いで単語2単語にロードされる。
【0321】
単語_ID2コンテキスト_IDテーブルはWordnet見出し語に単語_IDとして割り当てられた単語_ID、及び単語_ID_Pとしてロードされた関係する単語_IDと同じコンテキスト_IDをロードされる。単語_ID2コンテキスト_IDテーブルは2つの列、見出し語及び概念しか有さない。したがって、見出し語は新しい単語_ID_Cを割り当てられ、概念は単語_ID_Pから割り当てられる。
【0322】
最後に、クラス2オブジェクトプロパティ2クラスは、WordNet1802から単語_ID情報をロードされる。
【0323】
見出し語が定義されたすべての単語は次いで概念テーブルにロードされる。単語_ID2コンテキスト_IDはここで既知の概念_ID及び見出し語で更新され、概念_単語_コンテキストテーブルをロードするために使用され、その結果、CWC_IDは名前が付けられたコンテキストで使用される概念及び単語ごとに割り当てられる。CWC_IDは、クラス2オブジェクトプロパティ2クラスで単語を識別するために、及び同時にCWC2CWCテーブル及び関係_タイプテーブルをポピュレートするために使用できる。
【0324】
単語テーブルの第2の経路は、他の文脈での単語の意味と該意味を構文的に比較することによって、関係する見出し語がないあらゆる単語の意味を調べる。マッチさせるための第1の意味の単語_IDは見出し語として選ばれる。プロセスは、次いでWordnetのための識別された見出し語に関して続行する。
【0325】
第3の経路は、見出し語であるとして、見出し語に関係付けられていない各単語を識別する。これらの3つの経路の完了時、あらゆる単語は概念テーブル1809のあらゆる考えられる文脈で識別されるだろう。
【0326】
これに続き、同一性の値が計算される。完全なオントロジーが既知である場合、次いで同一性の計算は、比較されている概念の属性(データプロパティ)をマッチングすることによって実行できるだろう。属性リストは必然的に概念のスーパークラスの属性を含むだろう。
【0327】
現在の例では、同一性は2つの単語の意味を分析することによって計算される。英語での意味は形式の主語述語目的語(spo)のrdfトリプルに変換される。これは、自然処理言語(NLP)−RDF変換器を使用して実行される(Arndt及びAuer、2014年)(Augensteinら、2013年)。
【0328】
例えば、クラブは意味「株主ではないメンバーを有し、そのメンバーのなんらかの職業上の必要性を満たすために存在する組織のタイプ」を有し、以下の表9に示されるように変換できるだろう。
【表9】
【0329】
組織は以下の通り、つまり「組織は、集まることの合意された理由をもった個人の集まりである」に定義される概念であり、表10に示されるように変換できるだろう。
【表10】
【0330】
クラブの定義に組織の定義を挿入して、表11に示される定義を得る。
【表11】
【0331】
ただし、メンバーが個人であると推論することはできない。この分析は、以下を判断するために使用できる。
・クラブのメンバーは個人である。これは、メンバーシップ概念が、個人がメンバーシップを保持する(Individual Holds Membership)の代わりにメンバーは個人である(Member isAn Individual)としてより正しく定義されるオブジェクトプロパティを有した場合には推論できただろう。
・集まることの合意された理由は、職業上の必要性を満たすことである。
【0332】
上述の例のオントロジーで特殊法人に同じプロセスを適用すると、意味から、特殊法人は「指定された政府の必要性を満たすために政府によって作られる組織」であることを得るだろう。これは表12に示されるトリプルにつながる。
【表12】
【0333】
これは、
図13に示される共通の述語及び目的語に基づいて比較表を構築するために使用できる。
【表13】
【0334】
これによって、以下の要因に基づいて同一性の数式を使用できる。
・クラブ及び特殊法人の概念のトリプルの数はN1及びN2によってそれぞれ示され、N1=9であり、N2=7である。
・2つの概念クラブ及び特殊法人の間で共有される述語(SP)の数は5である。つまりSP=5。
・2つの概念クラブと特殊法人との間で共有される述語目的語(SPO)対の数は4である。つまりSPO=4
【0335】
例えば、
・同一性=SPO/SP=4/5=0.8
、又は
、
・同一性=(SP+SPO)/(N1+N2)=9/16=0.5625
【0336】
使用される実際の式は関連性がない。重要な事実は、同一性の評価基準を示す式を引き出すことができる点である。
【0337】
このプロセスを通して、ユーザは、通常はブラウザモジュールによって表示される画面1808を使用し、セマンティックマッチャモジュールと対話できる。
アライナモジュール
【0338】
オントロジーアライメントの必要性は、異種のデータベース、つまり無関係に開発され、したがってそれぞれが独自のデータ語彙を有するデータベースを統合する必要性から生じる。独自のオントロジーを提供する多くの動作主体を含んだSemantic Webの文脈では、オントロジーマッチングは異種リソースが相互運用するのに役立つための重大な位置を占めている。オントロジーアラインメントツールは、例えば「トラック」及び「大型トラック」等、「意味論的に同等」であるデータのクラスを見つける。これらのクラスは必ずしも論理的に同一ではない。
【0339】
オントロジーアラインメントの結果は、異なるオントロジーのエンティティ間の対応を表すステートメントのセットである。これは、専用の言語『表出型及び宣言型オントロジーアラインメント言語(Expressive and Declarative Ontology Alignment Language)』(EDOAL)(Davidら、2013年)又は他の言語(ZIMMERMANNら、2006年)で表されてよい。
【0340】
第1の要件は、合わせられているオントロジーの概念間に意味論的なマッチがあるかどうかを判断することであり、これは上述のセマンティックマッチャモジュールを使用して判断できる。例えば、ビジネスの文脈での単語『企業』及び『組織』は厳密に同じ意味をもたない。すべての企業は組織であるが、すべての組織が企業であるわけではない。事実上、クラス企業はクラス組織のサブセットである。例えば、『この組織は上場企業であるが、その組織はゴルフクラブである』。社会的な文脈では、企業は組織に関係付けられるのではなく、共同経営者の集合に関係付けられてもよい。例えば、『ジョン・ドウは悪友と付き合う。』
【0341】
クラブ及び企業はともに組織であるため、なんらかの類似性がある。上場企業及び非上場企業も類似し、共通の親、つまり企業を共有する。それらはクラブと企業と同程度に概念上近いのか。非上場の公開会社(>50人の株主)及び非上場の非公開会社(<51人の株主)はどうだろうか。それらは上場企業及び非上場企業よりも近いのか。
【0342】
2つの概念がどれほど類似している可能性があるのかを測るための数学的なベースを与えるために、『同一性』の概念を導入する。同一性にはいくつかの公式の測定基準がある。最も一般的な技法は、『物事』の概念を根とする単一の階層木で概念を配置することである。大部分の式は測定されている概念とその共通の親との間の概念の数、及び階層の根までの距離の関数である。
【0343】
ただし、オントロジーを構築したオントロジスト及びオントロジーがオントロジーを使用する人によって切り詰められたかどうかに応じて、階層の根までの距離が大幅に異なることがあることを考慮すると、根までの距離は概して関連性がない。
【0344】
概して、同一性は概念の間のエッジ数によって測定される。他の可能性は、データプロパティの数に基づいて存在する。例えば、上場公開企業及び非上場公開企業はそれぞれ1つの属性しか有さないことがあり、バランスは企業の定義に保持されるのに対し、クラブ及び企業はそれぞれ「5」つのデータプロパティを有することがあり、バランスは組織の定義で保持される。したがって、企業がクラブに類似するよりも、上場の非公開企業は上場公開企業により類似している(「10」の代わりに「2」つの属性、つまり言い換えると、より少ない相違があり、相違は距離に同等である)。
【0345】
推測上のオントロジー(PO)は、通常、リレーショナルデータベース、xmlファイル、又はスプレッドシート等の構造化ソースから作成されたオントロジーである。係るアラインメントは、推測上のオントロジーのデータインスタンスが完全なオントロジーのクラスにマップするいくつかの非常に複雑なマッピングを有することがある。これはアラインメントの特殊ケースである。
【0346】
4つのテーブルの中のデータだけではなく、メタデータ(したがって構造)も含むことがあるため、完全に非正規化されたデータ構造の例である「物事データベース」を示す単純な例が、
図19Aを参照してここで説明される。
【0347】
例えば、物事タイプテーブルが『クラス』の物事タイプを含む場合、次いで物事テーブルのあらゆる関係する行はクラスの名前を含む。クラス間の関係性は、『物事タイプ対物事タイプ』が関係性のタイプを指定する『物事対物事』テーブルに定義されるだろう。
【0348】
オントロジー用語では、任意のタイプテーブルがクラスのセットを生じさせることがある。車両セットの詳細を含むテーブルを考える。車両タイプテーブルは、車両の有効なタイプだけが含まれることを保証するために使用できるだろう。例えば、車、トラック、トラクタであるが、ベビーカー、自転車、船舶ではない。オントロジー的に、次いで車両タイプテーブルに指定される車両のタイプごとに別々のクラスを有することができるだろう。この概念は一般化できるが、必ずしもつねに適切ではない。もしそうであれば、あらゆる人員テーブルは男性クラス及び女性クラスに分割されることになるだろう。結果的に、プログラムはデータに含まれている隠されたクラスが暴露され、有効化のためにユーザに該クラスを提示することがある、あらゆる状況を識別するべきである。
【0349】
いくつかの場合、タイプテーブルは多くのタイプのタイプを含むことがある。例えば、概念、データプロパティ、及び車両、トラック、車、エンジンタイプ、重量、キログラムのようなデータプロパティのプロパティ。これは以下のように示されることがあるだろう。
・車はエンジンタイプディーゼルを有する。
・車は重量2000を有する。
・重量は計測単位キログラムを有する。
・車は車両のサブクラスである。
【0350】
物事データベースの例は、データベースが表14〜17に示されるようにポピュレートされると仮定して、ここで説明される。
【表14】
【表15】
【表16】
【表17】
【0351】
関係性スキーマに基づいた推測上のオントロジーは、名前がテーブル名に関係付けられた4つのクラスだけを示すだろう。ただし、データに基づいたオントロジーは、
図19Bに示されるように他の2つのテーブルで識別されたオブジェクトプロパティを加えた、『物事』テーブル及び『物事タイプ』テーブルの名前に基づいて8つのクラスを示すだろう。この例では、残りの用語が物事テーブル(テーブル14)から得られるのに対して、「ビジネス構成要素」及び「有機的構造」の用語は物事タイプテーブル(テーブル16)から得られる。
【0352】
これは、1つのオントロジーのクラスが別のオントロジーのデータインスタンスにマッチする問題の例である。明確にするために、これは『推測上のマッピング問題』(PMP)として識別される。それは、推測上のオントロジーが、『主キー』若しくは『外部キー』にマッチする名前、又は『親』及び『子』(BOM)でのような同じ外部キーの複数のインスタンスを有するクラス、又は関連付けられたタイプクラスを有するクラスを有するデータプロパティを有するときにアラインメント中に現れることがある。これらの例は、潜在的にデータインスタンスに隠されているクラス階層を隠ぺいする可能性がある。
【0353】
共通アラインメント技法は、各オントロジーからの概念を、それぞれが根として『物事』の概念を有する2つの階層木の中に配置することである。次いで、アラインメントを決定するためのなんらかの数学的な機構を与えるために『距離』の数学的概念が導入される。大部分の距離数式は、測定されている概念とその共通の親との間の概念の数、及び階層の根までの距離の関数である。
【0354】
ただし、オントロジーを構築したオントロジスト、オントロジーがオントロジーを使用する人によって切り詰められているかどうか、及び概念の傘として働く『上位』オントロジーがあるかどうかに応じて、階層の根までの距離が大幅に異なることがあることを考慮すると、根までの距離は概して関連性がない。
【0355】
オントロジーアライナモジュールは複数のオントロジーで共通の概念を探し、一方のオントロジーから他方に概念をマップし、このようにして2つのオントロジーを1つのオントロジーとして扱うことを可能にする。アラインメントを使用すると、2つのオントロジーをマージすることも可能である。ただし、これは危険なプロセスであり、意味論的なミスマッチの伝搬の可能性のため一般に推奨されていない。
【0356】
一般に、オントロジーは完璧ではない。例えば、ここで使用されているサンプルオントロジーには多くのモデル化エラーがある。『株式』が『個人』よりむしろ『クライアントs』によって『所有』するべきであり、『職歴』が『企業』よりむしろ『クライアント』によって『雇用』するべきであることは明らかである。これらのインスタンスの両方とも、関係性がより制限的な関係性からあまり制限的ではない関係性に移動していることを示す。それはこれらの場合には可能であろうが、クラブのメンバーシップを『個人』から『クライアント』に移動するのはおそらく無効であろう。
【0357】
メンバーシップと個人との間の関係性は『保有する』であるので、クラス『メンバーシップ』はさらに不適切に名前が付けられている。クラスが『メンバー』と名前を付けられていた場合、次いで関係性は『Aである』であっただろう。これによりメンバーが個人のプロパティを継承できただろう。オブジェクトプロパティ『有する』が完全に定義されない限り、次いで推論でのその使用は制限される。
【0358】
これらのエラーは、アラインメントの複雑さのいくつかを示すためにサンプルに導入された。
【0359】
アライナモジュールの動作は、
図19Cを参照してここにより詳細に説明される。
【0360】
この点で、使用中、OWLファイル及びRDFSファイルで定義されたオントロジー1901、1902は、アライナモジュール1340を使用して開かれ、ユーザは次いで以下に定義される画面のセットを使用し、オントロジーと対話し、最終的に一連のアラインメント1905によって接続されたオントロジー1903、1904、及び潜在的にマージされ、合わせられたオントロジー1906を生じさせる。
【0361】
プロセスは、以下を含んだいくつかのサブプロセスから成る。
・初期化
・低レベルクラスマッチング‐最小マッピングを識別する。
・推測上のマッピング問題識別
・オブジェクトプロパティ分析
・データプロパティ分析
・マルチクラスマッピング
・PMP解決
・兄弟分析
・最小マッピング解決
【0362】
アラインメントは多くのステップで識別できるため、概念の特定の対についてアラインメントを計算し直す可能性がある。この問題は、アラインメントマップを維持することによって克服される。このマップは、アラインメントが識別されるたびに更新され、努力の重複を防ぐために評価について新しいアラインメントの対が検討される前にプログラムによって参照され得る。アラインメントマップはユーザに表示され、ユーザがアラインメントプロセスに従い、任意の潜在的なアライメントにクエリーを行い、任意の潜在的なアラインメントを無効にし、プログラムに任意のプロセスを実行し直すように命令できるようにする。
【0363】
これらのステップは個々でより詳細に説明される。各ステップiは重み係数Wiを割り当てられ、結果は全体的なアラインメントスコアを提供するために結合される。これらの重み係数は一定のステップで適用される。考えられる重み付け累積数式が示されるが、使用できるだろう多くの考えられる重み付け方式がある。これは、適切な重み付け数式を決定するために機械学習又は統計分析及び推論を使用できる分野である。
【0364】
初期化プロセスの間、インデックス1603がインデックスモジュールから得られる。これに続き、オントロジー1901、1902がセマンティックマッチャモジュール1340にロードされる。アラインメントテーブルが事前にロードされていないときには、W
0=0.0である。
【0365】
以下の例では、技術の説明のためW
i=iである。それ以外の場合、重みW
iがユーザによって割り当てられる、又はヒューリスティックな機構が機械学習若しくは経験によって決定される。一般に、任意のステップiの場合、累積的に決定されたマッチ値MV
iAは以下によって決定される。
【数1】
上式では
、MV
iはステップiで計算された未処理のマッチ値である。
別の、より従来の重み付け方式は以下の通りである。
【数2】
上式ではMVは重み付けされたマッチ値であり、MV
iはステップiでのマッチ値である。
【0366】
このプロセスは、好ましい実装に応じて、各ステップで、又はプロシジャの終わりでのみのどちらかで実行できるだろう。
【0367】
次に、オントロジーの用語の意味論的意味に基づいて実行される。このプロセスはクラス名に基づいて潜在的なマッチを見付けるためにセマンティックマッチャモジュールを使用し、それぞれの潜在的なアラインメント対を調べる。それがアラインメントを見付ける場合、それは次いでそのアラインメントから継承チェーン(オブジェクトプロパティ=『のサブクラス』)を横断し、セマンティックマッチャモジュールを使用し、別のアライメントのクラス名をチェックする。
【0368】
すべてのマッチングクラスを見つけることが可能であるが、これは、少数のマッチを必要とするにすぎない場合がある。マッチングされているオントロジーが同じ基本オントロジーを使用している場合、完了した1−1マッチが可能である。例えば、
・有害事象報告オントロジーAERO
・アフリカ伝統医学オントロジーATMO
【0369】
両方とも標準的なGalenオントロジーに基づいているため、1−1マッチが期待されるだろう。
【0370】
対ごとのMVはセマンティックマッチャモジュールによって提供されるスコアに基づき、この例のためにSet W
1=1.0である。
【0371】
この第1のオントロジーの根で開始し、第2のオントロジーの根クラスで開始する各クラスを調べる。概念対のためにセマンティックマッチャモジュールを使用し見付けられた同一性がアラインメント(MV
AT)の閾値マッチ値を超えるときにマッチが発生する。許容できるマッチが見付けられる場合、それは潜在的なアラインメントと呼ばれ、詳細はアラインメントマップに記録される。
【0372】
アラインメントマップは2つの概念を記録し、アラインメントId、最小マップId、アラインメントに関連付けられたあらゆるタグ、割り当てられているあらゆるPMP Id、任意の濃縮Id、及び最終処理ステップIdを割り当てる。アライメントId上で関係付けられる別々のテーブルはステップごとにマッチ値を記憶する。これらの値は、所望される場合、手作業で無効にできる。
【0373】
アラインメントマップは、あらゆる既知のアラインメントにより事前にロードされてよい。これらはユーザタグ『ユーザ開始済み』でタグ付けされ、マッチ値は概して1.00に設定されなければならない。ただし、より低い値も可能である。『ユーザ開始済み』及びMV=1.00の組合せは、このアラインメントの追加の処理を妨げる。
【0374】
プロセスは、オブジェクトプロパティによる第1のオントロジーでのカレントクラスに関係する次のクラスまで続行する。カレントクラスのスーパークラスは最初に処理される。プログラムは、他のオブジェクトプロパティの前にインヘリタンスオブジェクトプロパティを処理する。カレントクラスのスーパークラスは、あらゆるサブクラスが調べられる前に処理される。MV<MV
ATとのアラインメントが見付けられるとすぐに、プロセスは停止する。
【0375】
潜在的なアラインメントが識別されるたびに、それは最小マッピングセットに割り当てられ、最小マップId mm_IDを与えられる。階層関連クラスが識別されると同じmm_IDに追加される。このステップの終わりで、最小マッピングの基準を潜在的に満たすいくつかの最小マップが定義される。この累積マッチ値は続いて起こるステップごとに精緻化される。
【0376】
潜在的なPMPの認識がつねに実行される。PMP解決は、設定ファイルで要求される場合にだけ実行される。要求されない場合、潜在的なPMPの認識は、アラインメントが情報メッセージとして実行され、累積統計報告書に追加される際に作成される活動ログに記録される。
【0377】
いくつかのインスタンスでは、両方のオントロジーとも推定上のオントロジーである可能性があるのでPMPを解決するのは望ましくない場合があり、BOM構造を保持することが望ましい場合がある。
【0378】
PMP解決が要求された場合、次いでPMPタグ付けが実行される。データプロパティ名は、以下のようなキーワードの存在について調べられる。
・オブジェクトプロパティ名は以下を含む。
‐タイプ
‐関係
‐クラス
‐概念
‐…
・データプロパティ名は以下を含む。
‐識別子
‐ID
‐キー
‐親
‐子
‐一次キー
‐外部キー
‐…
【0379】
これらのキーワードを含んだデータプロパティの存在は必ずしもPMPを暗示しない。追加のアルゴリズムは確実となるために適用される必要がある。規格に応じてマップする任意の構造。
・ERA図の『タイプ』テーブルは識別されなければならない。ユーザは、あるべきタイプテーブルの各行を選択しなければならない。
・『部品表』構造は識別され、適切なクラス構造に潜在的に拡大されなければならない。
【0380】
この段階で、各PMPに関与するクラスは『PMP』としてタグ付けされ、同等なBOMテーブルのセットごとにPMP−set−Identifier PMP01、PMP02、...を与えられる。以下のより詳細に説明されるように、それらは後に解決される。各PMPクラスが識別されるにつれ、詳細がそのインスタンスがPMPではないと決定してよいユーザに提示されてよい。
【0381】
MVはこのステップについて計算されないため、MV
2A=MV
1A=0.5である。
【0382】
これに続き、オブジェクトプロパティ及び以前の各ステップからのアラインメント対と関連付けられたそれらの関係するクラスが分析される。このステップは、『構造分析』と呼ばれることがある。これは、以下を識別する。
・すべての関係するクラス及びオブジェクトプロパティの名前がマッチする場合、次いで対を『アンカーポイント』としてタグ付ける。MV=1.0である。関係するクラスがすでにそこにない場合には、最小マップに関係するクラスを追加し、その最小マップの関係するクラスにステップ2データプロパティ分析を繰り返す。
・名前及び関係するスーパークラスがマッチするが、サブクラスのいずれもマッチしない場合、対に『考えられる兄弟』としてタグを付ける。MV=0.3である。最小マップにスーパークラスを追加する。以下のマルチクラスマッピングに移動する。
・名前及び関係するスーパークラスがマッチするが、サブクラスのいくつかしかマッチしない場合、次いで対を『関連サブセット』としてタグを付ける。
・MVは以下の通り計算される。
‐各マッチングサブクラスに2.0、及び他の各マッチング関係クラスに1.0の重みを割り当てる。
‐N
Mにマッチする数字として、これらの重みを合計する。
‐各サブクラスに1.0、及びそれぞれの他の関係クラスに0.5を割り当てる。
‐合計数N
Aとして両方のスーパークラスにわたってこれらの重みを合計する。
‐マッチ値 MV
3=N
M/N
A
・関係クラスがマッチしない場合には、MV
3=0.001である。
・最小マップにSuperクラスを追加する。以下のマルチクラスマッピングに移動する。
【0383】
対ごとに、以下のように累積重み付けマッチ値を計算する。
【数3】
以下を仮定する。W
3=3
以前の例からMV
2A=0.5
オブジェクトプロパティマッチからMV
3=1.0
次いで、
【数4】
【0384】
これに続き、マッチングクラスのデータプロパティ(属性)が類似しているかどうかを分析するために、データプロパティ分析が実行される。クラスの対ごとに、分析は、
・正確な名前マッチがないSemMatを使用し、クラスごとにデータプロパティを比較する。
・データプロパティに基づいて「マッチ値」(MV)を割り当てる。
・マッチタイプでアラインメント対にタグを付ける。最小マップの次の対を選択し、上記プロセスを繰り返す。最小マップの中にもはやアラインメントがない場合、次の最小マップに移動する。
【0385】
より詳細には、A={a
1,a
2,a
3,...a
i}が第1の概念のデータプロパティのセットであり、B={b
1,b
2,b
3,...b
j}が第2の概念のデータプロパティのセットである場合、次いで以下の可能性が存在する。
・クラスのすべてのデータプロパティがマッチする。「正確なマッチ」としてタグを付ける。つまり、
【数5】
マッチ値=1.000
・一方のオントロジーからのデータプロパティのサブセットは他方のオントロジーのすべてのデータプロパティにマッチする。「サブセット」としてタグ付けする。
つまり
【数6】
又
は
【数7】
【数8】
上式では、N(A)は、(NA)<N(B)を仮定したときの、Aのデータプロパティの数である。
・一方のオントロジーからのデータプロパティのサブセットは他方のオントロジーのデータプロパティのサブセットにマッチする。「部分マッチ」としてタグを付ける。
つまり
、
【数9】
【数10】
上式では
、N(A)は以下を仮定したときのAのDataプロパティの数である。
【数11】
・データプロパティがマッチしない。MV=0.1であり、「名前のみ」としてタグ付けする。
つまり、
【数12】
【0386】
MVが所定の閾値未満である場合(デフォルト=0.1)、最小マップからそのマッチ対を廃棄し、次のマッチ対に進む。プロセスは、すべての最小マップが分析されるまで繰り返され、その点でマッチング値が計算される。
【数13】
以下を想定する。W
4=4
MV
3A=0.833333
データプロパティマッチからMV
4=1.0
次いで
、
【数14】
【0387】
マルチクラスマッピングは、オントロジーのクラスが別のオントロジーのいくつかのサブクラスに分割されるとき、マルチクラスマッピングが発生する。係る場合、対が『考えられる兄弟』又は『マルチクラスマッピング』のどちら及び『サブセット』としてすでにタグ付けされているのが期待されるだろう。
【0388】
マルチクラスマッピングは、各オントロジーのクラス及びサブクラスの潜在的に関係するクラスのためにデータプロパティの数を分析することによって通常検出される。サブクラスを有さないオントロジークラスが、大部分のデータプロパティを有するサブクラスのデータプロパティを加えた、他方のオントロジーのクラスにほぼ等しいデータプロパティの数を有する場合、第2のオントロジーのクラスのサブクラスが第1のオントロジーのクラスに非正規化されることが推定される。
【0389】
以下の考えられるシナリオがある。
・一方のオントロジーの単一クラスのデータプロパティは、他方のオントロジーのクラス及び1つ又は複数のサブクラスでデータプロパティにマップする。
・クラス及びサブクラスのデータプロパティは、他方のオントロジーのクラス及びいくつかのサブクラスのデータプロパティにマッチする。
【0390】
第1の場合、データプロパティカウントは、第1のオントロジークラスのデータプロパティを、第2のオントロジーのクラス+サブクラスから成る各対のデータプロパティとマッチさせることを検討することによって実行される。
【0391】
例えば、オントロジー1の企業は子がなく、オントロジー2に2つの子を有する。企業(1)のデータプロパティを企業+上場企業(2)で分析することが、データプロパティの数がマッチするが、すべての意味はマッチしないことを示す場合。
【0392】
企業(A)のデータプロパティを企業+非上場企業(B)で分析することは、データプロパティの数及び意味の両方がマッチすることを示す。これは、『異なる正規化』としてタグを付けられ、マッチング値MV=1.0を割り当てられることがある。
【0393】
上場企業及び非上場企業が兄弟であるため、上場企業がオントロジー2の濃縮であり、したがってそれは『エンリッチメント』としてタグを付け、マッチング値は二度、マッチングデータプロパティをデータプロパティの総数で除算することによって計算できる。
【数15】
上式では
、N()は、概念A、B及びA∩Bのデータプロパティの数を生じせるための関数である。
【0394】
この方法は、2つのクラスが異なる数の子を有する状況に対して一般化できる。この状況は『可能なエンリッチメント』としてタグを付けることができ、関与する各クラスは単一の濃縮IDを与えられる。
【0395】
マルチクラスマッピングの別のケースは、クラスが異なる方法で正規化されていたことである。例えば、車両クラスは(SUV、セダン、クーペ、コンバーチブルとしてのサブクラスとなる、又はそれは製造メーカ(Citroen、Peugeot、Fiat、Rover)によってサブクラス化できるだろう。したがって、2つの車両オントロジーはデータプロパティを異なる方法でパースするだろう。しかしながら、車両の属性は2つのオントロジーで同一であろう。
【0396】
一般的なケースでは、データプロパティのセットが2つのオントロジーからのサブクラスのセットに割り当てられ、サブクラスが各オントロジーで異なるが、これらのクラスを定義するデータプロパティのセットが同一又は非常に類似するどちらかである場合、定義されたサブクラス間には多対多のマッピングがある。これは、『可能なエンリッチメント』としてもタグ付けられ、関与する各クラスは単一の濃縮IDを与えられる。
【0397】
このステップについてMVが計算されないため、MV
5A=MV
4A=0.9583である。
【0398】
PMP解決は、テーブルに記憶される非正規化されたクラスを識別することによって推測上のオントロジーの追加クラスを識別することを含み、オントロジーが引き出されたオントロジーの主要な濃縮を生じさせる。
【0399】
各PMP−set−Identifierは、上述されたようにタイプ構造又はBOM構造へのそのマッチングを決定するために分析される。これらは、
図19Aのマッチング構造関係性でオブジェクトプロパティだけをマップすることによって決定されるように、概して
図19Aに示されるERA図のなんらかの配置にマップする。データプロパティインスタンスから抽出されたクラスの例は、表14〜17に示される。
【0400】
いったんマッピングが決定されると、BOM構造で取り込まれる非正規化オントロジーを生成することは相対的に簡単なことである。この生成されたオントロジー構成要素は、次いで、上述されたクラスの意味論的意味に基づいて低レベルクラスマッチングのステップに戻ることによって合わせることができる。このステップで、BOM分析から生成されるクラスが適切な最小マップに追加される。
【0401】
それは低レベルクラスマッチングのステップ及び新規に識別されたクラスのMV値の再計算を生じさせるので、MVはこのステップでは計算されない。
【0402】
この濃縮に続き、分析が実行され、マルチクラスマッピングプロセスで識別された各エンリッチメント_IDが2つのオントロジーからのサブクラスセットがマッチするか、それとも兄弟を含むのかを判断するために分析される。例えば、オントロジー1クラス組織はサブクラスクラブ及び企業を有する。オントロジー2は特殊法人、クラブ、及び企業を含む。特殊法人はオントロジー2で兄弟であるが、オントロジー1には表示されない。例えば、特殊法人が何にも合わないというよりむしろ、それをオントロジー1に対する濃縮として識別する方がよいだろう。
【0403】
濃縮を適用できる前に、特殊法人が、クラブ及び企業のデータプロパティを分析することによって、他方のサブクラスの1つに非正規化されたかどうかを判断することが必要であるだろう。
【0404】
クラスが兄弟として追加される基準を満たすと仮定すると、クラス及びサブクラスを含んだ最小マップがこの段階で同一であることを保証することが可能であるべきである。
【0405】
このステップには新しいMVは計算されない。各兄弟はそのカレントMVを保持する。このMVは、1.0のカレントMVを兄弟として識別された構成要素に割り当てることによって、小さい係数分、上昇させることができるだろう。
【0406】
いったんすべてのクラスが解決され、濃縮が完了されると、任意の主要な再構築はすでに発生したはずであり、したがって最小マップを分解できる。濃縮が上記の項で追加された場合、追加の再構築が発生した。これらの事実の両方とも、最小マッピングを改善するだろう。
【0407】
MV
7<MV
ATとのアラインメント、閾値は拒絶されるだろう。MV
ATはアラインメントのためのマッチ値閾値である。
【0408】
次のステップは、冗長性認識パターンを適用することであり、これにより各最小マップの中で、冗長性、非一貫性、及び小前提が決定される。これは、上述のステップによって大部分はすでに実行されている。
【0409】
いったん最小マップが完全に処理されると、それはRDFトリプルのセットとしてそのクラスとともに記録される。
【0410】
最後に、最小マップは、上記に生成されたRDFトリプルにクエリーを行うことによって、単一のマップの中に組み入れられなければならない。これは、受け入れ可能な閾値値とのアラインメントが見付けられたすべてのクラスのマップとなる。合わされていないアイテムがある場合がある。
【0411】
累積マッチング数式を使用すると、最終マッチ値MV
8=0.9375である。
【0412】
線形マッチング数式MV=(1
*.5+2
*1+3
*1)/(1+2+3)=5.5/6=0.9167である。
【0413】
例のアラインメントインデックスは、上述されたオントロジー例のアラインメントマップを示す表18に示される。結果は、多様なアルゴリズムの効果を強調するために、アラインメント対及びステップ番号ごとに順番に配列されている。実際には、それらは
シーケンス(列1)で実行されるだろう。
【表18】
【0414】
マージプロセスは、次いでマージされたオントロジー1906を生じさせるために実行できる。ただし、これは任意選択であり、好ましい実装による。ユーザがオントロジーをマージすることを決定する場合、次いで以下を含んだいくつかの決定を下す必要がある。
・マージされたオントロジーがオントロジー2の中へのオントロジー1であるのか、それとも逆であるのか、又はマージされたオントロジーが新しいURIを与えられるのかどうかを判断する。これらのケースは、
図19D及び
図19Eに図式で示される。
・MV
MTをマージのためのマッチ値閾値として選択する。実際には合わない関係クラスを含む場合があるので、概して、MV
MTはMV
ATよりも低いだろう。
・クラスがマージされない場合、次いでマージされたオントロジーにはクラスの両方とも含まれるべきか、クラスのどちらも含まれてはならないのか、それともクラスの内の一方だけが含まれるべきかに関して決定が必要とされる。これは規則として、又は「尋ねる」として指定でき、その場合、マージプロセスは、ユーザがアクションを決定できるようにするために休止するだろう。
・アラインメントがなかったクラスはマージされたオントロジーに追加されるべきだろうか。例えば、オントロジー1がクラスA、B、及びクラスB,Cのオントロジー2から成り、ここでBが合わされているクラスのセットである場合には、マージされたオントロジーはA、B、C、又はA、B、又はB、C、又は単にBとなるべきか。
【0415】
いったんマージパラメータが決定されると、2つのオントロジーのクラス、データプロパティ、及びオブジェクトプロパティをマージすることは簡単なことである。
【0416】
あらゆるデータプロパティインスタンスは、特別の定めのない限り、その元のURIを保持するだろう。したがって、合わせられたクラスが各オントロジーにインスタンスデータを有する場合、次いで単一のマージされたクラスは両方のオントロジーからのインスタンスを含むだろう。
【0417】
一般に、アライナモジュールとのユーザ対話は、アラインメントプロセスを制御するためだろう。
【0418】
第1のステップは、アラインメント及びマージで使用されるパラメータを指定する設定ファイルをロードすることである。設定できるいくつかのメタデータパラメータがある。これらは、以下を含む。
・合わせられるオントロジーのURI
・アラインメントマップを記憶するための場所
・マージされたオントロジーを記憶するための場所
・MV
ATを合わせるためのマッチ値閾値
・MV
MTをマージするためのマッチ値閾値
・低レベルクラスマッチング中に同一性を受け入れるためのマッチ品質
・任意選択で、アライメントテーブルに既知のアラインメントを事前にロードする
・各分析ステップで適用される重み。これらは機械学習アルゴリズムによって決定されるだろう。
・マージに対するユーザ入力を可能にするために、マージ中にプロセスを休止するかどうか
・最大ランタイム
・エラー及びログメッセージの冗長
・その他。
【0419】
ユーザは次いでプロセスを実行又は予定する。ユーザ入力のための休止が指定されていた場合、要求されると、及び典型的にはブラウザモジュールによって表示される画面を介して提供されると、ユーザは入力を提供する。
【0420】
プロセスの完了時、ユーザは以下を調べる。
・以下の統計を示す、作成された報告書
‐各オントロジーの入力クラスの数
‐合わせられたクラスの数
‐識別されたPMPの数
‐拡大されたPMPの数
‐PMPから拡大されたクラスの数
‐PMPから拡大されたデータプロパティインスタンスの数
‐最大マッチ値及び最小マッチ値
‐マージされたクラスの数
‐マージされたオントロジーのクラスの数
‐マージされたオントロジーのデータインスタンスの数
‐他
・エラーメッセージ、警告メッセージ、及び情報メッセージを評価するためのランタイムログ
【0421】
この情報に基づいて、ユーザはアラインメントを受け入れる又はマージする又は設定パラメータのいくらかを変化し、プロセスをスケジューリングし直すことを決定する。
【0422】
したがって、上述されたプロセスは、ユーザがオントロジーと対話して、オントロジーをブラウズすること、切り詰めること、及び合わせることを含んださまざまなタスクを実行できるようにする。これらのプロセスは、さまざまなモジュールを使用し、ソースデータストアとターゲットデータストアとの間でのコンテンツの転送を容易にするために、ソースデータ構造及びターゲットデータ構造をマップする際に同様に使用できる、推測上のオントロジー及び様式化オントロジーを含んだオントロジー間のマッピングを決定するような動作を実行できるようにする。
【0423】
明細書及び続く特許請求の範囲を通して、文脈上他の意味に解釈すべき場合を除いて、単語「含む」及び「含む」又は「含んでいる」などの変形は、記載されている整数又は整数のグループ又はステップの包含であるが、任意の他の整数又は整数のグループの排除を暗示しないと理解される。
【0424】
当業者は、多数の変形形態及び修正形態が明らかになることを理解する。当業者にとって明らかになるすべての係る変形形態及び修正形態は、本発明が説明される前に広く表示される精神及び範囲内であるとみなされるべきである。
前記マッピングが、いくつかのソースデータフィールドを含んだソースデータ構造を有するソースデータストアからいくつかのターゲットデータフィールドを含んだターゲットデータ構造を有するターゲットデータストアにコンテンツを転送する際に使用され、前記オントロジーが前記ソースデータ構造及び前記ターゲットデータ構造に関連付けられ、前記電子処理装置が前記マッピングを使用し、前記ソースデータフィールドと前記ターゲットデータフィールドとの間でコンテンツを転送する、請求項1又は2に記載の装置。
前記ソースオントロジー及び前記ターゲットオントロジーが推測上のオントロジーであり、前記ソースオントロジー及び前記ターゲットオントロジーが1つ又は複数の様式化オントロジーにマップされる、請求項7に記載の装置。
前記電子処理装置が複数のオントロジーのために単一のインデックスを生成し、前記インデックスエントリが前記オントロジー用語に関連付けられた前記オントロジーの表示を含む、請求項16に記載の装置。
前記実行可能なコードが、前記コンピュータシステムにソースオントロジー又はターゲットオントロジーに従ってソースデータ構造又はターゲットデータ構造に記憶されたデータと対話するためのクエリーを生成させる、請求項22に記載の装置。
前記電子処理装置が、ソースオントロジーからの1つ又は複数のソースオントロジー用語とターゲットオントロジーからの1つ又は複数のターゲットオントロジー用語との間のアラインメントを決定する、請求項29に記載の装置。