オントロジを利用する装置、コンピュータシステムおよびデータ処理方法
【課題】 セマンティックウェブ技術において、オントロジサーバからオントロジをダウンロードする場合に、必要な一部を選択してダウンロードすることにより、オントロジを利用する際におけるネットワーク負荷や通信コストを軽減し、オントロジを利用した処理に要する時間を短縮する。
【解決手段】 オントロジサーバ100において、オントロジ記述言語で記述されたオントロジのファイルを格納したオントロジ格納部200と、このオントロジ格納部200からオントロジを読み出し、読み出されたオントロジから所定の部分を切り出し、オントロジクライアント400に送信するオントロジ編集部300とを備え、オントロジクライアント400からの要求に応じて、オントロジから切り出されたサブセットを、このオントロジクライアント400に送信する。
【解決手段】 オントロジサーバ100において、オントロジ記述言語で記述されたオントロジのファイルを格納したオントロジ格納部200と、このオントロジ格納部200からオントロジを読み出し、読み出されたオントロジから所定の部分を切り出し、オントロジクライアント400に送信するオントロジ編集部300とを備え、オントロジクライアント400からの要求に応じて、オントロジから切り出されたサブセットを、このオントロジクライアント400に送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セマンティックウェブ技術において、オントロジを効率的に利用するためのシステムおよびその方法に関する。
【背景技術】
【0002】
近年、コンピュータが意味(セマンティック:Semantic)を理解し、様々な処理を行えるようにするセマンティックウェブ(Semantic Web)技術の研究が盛んに行われており、セマンティックウェブ技術で用いられるオントロジ(ontology)を利用した情報検索システムなどが開発されている(例えば、特許文献1、2参照)。ここで、オントロジとは、「概念化の明示的な記述」(a specification of a conceptualization)などと定義され、セマンティックウェブの意味記述に用いられる知識表記法である。オントロジは、システム上では、例えば分類体系と推論ルール集とで実現される。
【0003】
図17は、セマンティックウェブによる情報検索システムの構成例を示す図である。
図17において、エージェントサーバ1710のパーソナルエージェント1711は、ユーザによる検索要求に応じてOWL(Web Ontology Language)などのオントロジ記述言語で記述された照会文を作成し、エージェントサーバ1720へ送信する。エージェントサーバ1720のブローカエージェント1721は、エージェントサーバ1710から受信した照会文に基づいてネットワーク上のウェブサービスを提供するエージェントサーバから情報を取得し、取得した情報に基づいてOWLで記述された応答文を作成し、エージェントサーバ1710へ返信する。エージェントサーバ1710のパーソナルエージェント1711は、受信した応答文の内容を検索結果としてユーザに返す。
【0004】
ここで、エージェントサーバ1710のパーソナルエージェント1711が照会文を作成する際および応答文を解釈する際、またエージェントサーバ1720のブローカエージェント1721が照会文を解釈する際および応答文を作成する際に、パーソナルエージェント1711およびブローカエージェント1721(以下、これらを合わせて単にエージェントと称す)は、それぞれオントロジサーバ1730にアクセスしてオントロジを参照する。
【0005】
図18は、エージェントがオントロジを参照する様子を示す図である。
図18においてオントロジサーバ1730は、OWLで記述されたオントロジを格納している。オントロジサーバ1730に対するクライアント(オントロジクライアント)であるエージェント1810は、照会文の作成、解釈、応答文の作成、解釈を行うために、まずオントロジサーバ1730に格納されているオントロジを全部ダウンロードする。そして、照会文や応答文を作成する際は、それらの文に含まれる語のIDを記述すると共に、ダウンロードされたオントロジを参照してその語が定義されているオントロジのURLを記述する。一方、照会文や応答文を解釈する際は、文中の各語の概念がダウンロードされたオントロジでどのように定義されているかを調べ、得られた情報に基づいて検索などの処理を実行する。
【0006】
【特許文献1】特開2002−63033号公報
【特許文献2】特開2001−92827号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述したように、セマンティックウェブ技術においてエージェントがオントロジを利用する場合、従来は、エージェントがオントロジサーバに格納されているオントロジを一旦全部ダウンロードして参照していた。
しかし、一般的な語彙を網羅する実用的なオントロジでは、データサイズも大きくなるため、オントロジ全体をダウンロードすると、ネットワークへの負荷や通信コストが増大してしまうという問題があった。
また、オントロジを参照して処理を行う際にも、所望の語彙の情報を得るために、ダウンロードされたオントロジ全体を参照することとなるため、処理に長時間を要するという問題があった。
【0008】
そこで本発明は、セマンティックウェブ技術において、エージェントがオントロジサーバからオントロジをダウンロードする場合に、必要な一部を選択してダウンロードする方法およびそのシステムを提供することを目的とする。
これにより本発明は、エージェントがオントロジを利用する際におけるネットワーク負荷や通信コストを軽減し、オントロジを利用した処理に要する時間を短縮することを他の目的とする。
【課題を解決するための手段】
【0009】
上記の目的を達成するため、本発明は、オントロジを格納したオントロジサーバと、このオントロジサーバにアクセスしてオントロジを参照するオントロジクライアントとを備えたコンピュータシステムとして実現される。このシステムにおいて、オントロジサーバは、オントロジ記述言語で記述されたオントロジのデータを格納したオントロジ格納部と、このオントロジ格納部からオントロジを読み出し、読み出されたオントロジから所定の部分を切り出し、オントロジクライアントに送信するオントロジ編集部とを備えることを特徴とする。
【0010】
より詳細には、オントロジサーバにおけるオントロジ編集部は、オントロジクライアントから目標の語およびオントロジの切り出し条件(extraction condition)を指定したリクエストを受信し、このリクエストで指定された目標の語および切り出し条件を満たす部分、すなわち、目標の語と当該目標の語に対しオントロジの定義において一定の関係を有する語とを含むオントロジの部分を、オントロジから切り出す。さらに好ましくは、オントロジ編集部は、オントロジ記述言語で記述されたオントロジを、N−Triples表記に変換し、各語の関係をたどることによって、オントロジから切り出す部分を特定する。あるいは、N−Triples表記のオントロジを、さらに、各語に対応するノードと各語の間の関係を示すアークとで構成されたRDF(Resource Description Framework)モデルに変換し、ノード間に張られたアークをたどることによってオントロジから切り出す部分を特定する。
【0011】
また、より好ましくは、オントロジ編集部は、オントロジにより定義された各語に対応する各ノードに関して、個々のノードと他のノードとの間のアークの本数を示すノード間距離情報をノード間距離テーブルに登録して管理し、このノード間距離情報を参照してオントロジから切り出す部分を特定する。さらにオントロジ編集部は、オントロジ記述言語の文法に基づいて単一のグループとして扱うべき語の組をグループノード管理テーブルに登録して管理し、オントロジの切り出しを行う際には、このグループノード管理テーブルに登録された語の組を分割することなく、オントロジから切り出す部分を特定する。
【0012】
また、このシステムのオントロジクライアントは、所定の語およびオントロジの切り出し条件を指定したリクエストをサーバに送信するエージェントを備える。このエージェントは、オントロジのファイルのURLに所定の語およびオントロジの切り出し条件を指定するパラメータを付加し、このパラメータの記述されたURLを含むHTTPリクエストをオントロジサーバへ送信する。
【0013】
上記の目的を達成する他の本発明は、クライアントからの要求に応じてオントロジを当該クライアントに送信するオントロジサーバのデータ処理方法としても実現される。この方法は、オントロジサーバが、オントロジ記述言語で記述されたオントロジのデータを記憶装置から読み出し、オントロジに定義されている各語の関係を調べる第1のステップと、オントロジによって定義されている所定の語およびオントロジの切り出し条件を取得し、このオントロジに定義されている各語の関係に基づいて、オントロジから所定の語および切り出し条件を満たす部分を切り出す第2のステップと、切り出されたオントロジをクライアントに送信する第3のステップとを含むことを特徴とする。
【0014】
さらに本発明は、コンピュータを制御して上記のオントロジサーバの各機能を実現させるプログラム、あるいはコンピュータに上記のデータ処理方法の各ステップに対応する処理を実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供される。
【発明の効果】
【0015】
以上のように構成された本発明によれば、エージェントがオントロジサーバからオントロジをダウンロードする場合に、必要な一部を選択してダウンロードすることができる。このため、オントロジを利用するコンピュータシステムにおいて、ネットワーク負荷や通信コストを軽減し、オントロジを利用した処理に要する時間を短縮することができる。
また、オントロジクライアントにおいても、自身の処理を行うために必要なオントロジの情報のみを取得して参照するため、処理に要する時間を短縮することが可能となる。
【発明を実施するための最良の形態】
【0016】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、実施形態)について詳細に説明する。
まず、本実施形態の概要を説明する。
図1は、本実施形態のセマンティックウェブシステムにおけるオントロジサーバとオントロジクライアントとの関係を示す図である。
図1に示すように、本実施形態のオントロジサーバ100は、OWL文書であるオントロジを格納したオントロジ格納部200と、オントロジクライアント400からのリクエストに応じてオントロジ格納部200に格納されているオントロジの一部を切り出して返送するオントロジ編集部300とを備える。オントロジクライアント400は、ユーザが使用するクライアントマシンやポータルサーバ、検索サイトのエージェントサーバ等、オントロジサーバ100にアクセスしてオントロジを利用する各種の情報処理装置が該当し、オントロジサーバ100へのアクセスを行うエージェント410を備える。
【0017】
図1に示すシステムにおいて、オントロジクライアント400のエージェント410は、オントロジサーバ100のオントロジ格納部200に格納されているオントロジのURLとパラメータ(URLパラメータ)とを含むHTTPリクエストを作成し、オントロジサーバ100に対して送信する。HTTPリクエストに含まれるパラメータについては後述する。
このHTTPリクエストを受信したオントロジサーバ100では、オントロジ編集部300が、このHTTPリクエストを解釈し、そのパラメータに基づいてオントロジ格納部200に格納されているオントロジの一部を切り出し、切り出されたオントロジのサブセットをHTTPレスポンスとしてオントロジクライアント400に返送する。
【0018】
図2は、本実施形態におけるオントロジサーバ100およびオントロジクライアント400を実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
図2に示すコンピュータ装置は、演算手段であるCPU(Central Processing Unit:中央処理装置)11と、M/B(マザーボード)チップセット12およびCPUバスを介してCPU11に接続されたメインメモリ13と、同じくM/Bチップセット12およびAGP(Accelerated Graphics Port)を介してCPU11に接続されたビデオカード14と、PCI(Peripheral Component Interconnect)バスを介してM/Bチップセット12に接続された磁気ディスク装置(HDD)15、ネットワークインタフェース16と、さらにこのPCIバスからブリッジ回路17およびISA(Industry Standard Architecture)バスなどの低速なバスを介してM/Bチップセット12に接続されたフレキシブルディスクドライブ18およびキーボード/マウス19とを備える。
【0019】
なお、図2は本実施形態を実現するコンピュータ装置のハードウェア構成を例示するに過ぎず、本実施形態を適用可能であれば、他の種々の構成を取ることができる。例えば、ビデオカード14を設ける代わりに、ビデオメモリのみを搭載し、CPU11にてイメージデータを処理する構成としても良いし、外部記憶装置として、ATA(AT Attachment)やSCSI(Small Computer System Interface)などのインタフェースを介してCD−R(Compact Disc Recordable)やDVD−RAM(Digital Versatile Disc Random Access Memory)のドライブを設けても良い。
【0020】
次に、本実施形態のオントロジサーバ100について詳細に説明する。
本実施形態のオントロジサーバ100は、上述したように、オントロジクライアント400からのHTTPリクエストに含まれるパラメータにより指定された切り出し条件に応じて、オントロジ格納部200に格納されているオントロジの一部を切り出し、オントロジのサブセットを生成する。まず、このオントロジの切り出し作業について説明する。
図3は、オントロジを記述するOWLのデータモデルを示す図である。
OWLはRDF(Resource Description Framework)に基づいて記述される。RDFは、主語(リソース)、述語(プロパティ)、目的語(オブジェクト:プロパティの値)の三者関係によって、関係の連鎖を辿ることができるようなデータモデルを記述する。RDFのデータモデルは、図3(A)に示すように主語、述語、目的語を1行に記述するN−Tripleと呼ばれる表記法や、図3(B)に示すようなラベル付き有向グラフで表現することができる。したがって、OWLで記述されたオントロジは、オントロジにおいて定義される各語をノードとし、各語の間の関係をノード間に張られたアークとしたRDFモデル(グラフモデル)で表すことができる。この場合、各ノードはN−Triples表記における主語および目的語に対応し、ノード間のアークは述語に対応する。
図4は、OWLをRDFモデルで表現した例を示す図である。
図4において、アークによって結ばれた任意の2つのノードは、間に張られたアークを述語として主語と目的語の関係をそれぞれ有する。
【0021】
本実施形態では、オントロジ編集部300が、オントロジからその一部を切り出してオントロジのサブセットを生成するが、この際、切り出すべき部分を特定するために、オントロジ編集部300は、このオントロジにおいて定義されている各語の間の関係を知っていなければならない。そこで、オントロジ編集部300がオントロジで定義されている各語の関係を知る手段として、本実施の形態では、オントロジ格納部200に格納されているOWLで記述されたオントロジをN−Triples表記に変換する。
また、オントロジから切り出すべき部分、すなわちオントロジクライアント400からのHTTPリクエストに含まれるパラメータにより指定された切り出し条件を満たす部分を特定する作業は、N−Triples表記のオントロジを対象として行うよりも、RDFモデルを対象として行う方が、効率が良い。これは次のような理由による。すなわち、N−Triples表記のオントロジを対象として切り出し条件を満たす部分を特定する場合は、このN−Triples表記の記述全体を何度も走査しながら切り出し条件を満たす語を1語ずつ検索する必要がある。これに対して、RDFモデルを対象として行う場合は、アークをたどりながら切り出し条件を満たすノードを順次特定していけば良い。そこで、本実施形態では、オントロジ編集部300が、N−Triples表記されたオントロジから、これと等価なRDFモデルを生成し、このRDFモデル上で切り出すべき部分を特定し、サブセットを生成することとする。
【0022】
図5は、本実施形態におけるオントロジの切り出しを行う際のデータ変換の様子を示す図である。
上述したように、オントロジ格納部200から読み出されたOWL文書のオントロジがN−Triples表記に変換され、さらにRDFモデルに変換された後に切り出され、次に、切り出されたRDFモデルの部分がN−Triples表記に変換され、OWL文書に変換されて、切り出し条件に応じたオントロジのサブセットが生成される。これにより、本実施形態では、オントロジクライアント400からオントロジサーバ100へオントロジの取得を要求するHTTPリクエストが送信されると、このオントロジのサブセットを内容とするHTTPレスポンスが、オントロジサーバ100からオントロジクライアント400に送信される。
【0023】
図6は、本実施形態におけるオントロジサーバ100の構成を示す図である。
図6において、オントロジ格納部200は、図2のメインメモリ13や磁気ディスク装置15等の記憶手段にて実現される。オントロジ格納部200には、RDF/XML文書(XML表記されたRDF文書)として記述されたOWL文書が格納されている。
また、オントロジ編集部300は、例えば図2に示したコンピュータ装置のプログラム制御されたCPU11およびメインメモリ13等の記憶手段にて実現される。図6を参照すると、オントロジ編集部300は、オントロジクライアント400から受け付けたHTTPリクエストを解釈するHTTPリクエスト解釈部310と、オントロジの切り出しを行うためのRDFパーサ320、RDFモデル管理部330、RDFシリアライザ340およびHTTPレスポンス作成部350とを備える。
【0024】
HTTPリクエスト解釈部310は、オントロジクライアント400から送信されたHTTPリクエストを解析して、HTTPリクエストに含まれるオントロジの切り出し条件を記述したパラメータを抽出する。
RDFパーサ320は、オントロジ格納部200からオントロジのOWL文書を読み出し、N−Triples表記に変換する。
RDFモデル管理部330は、HTTPリクエスト解釈部310により抽出されたパラメータと、RDFパーサ320により変換されたN−Triples表記のオントロジとを入力し、パラメータにより指定された切り出し条件に基づきオントロジの切り出しを行う。切り出されたオントロジのサブセットは、N−Triples表記で記述されている。オントロジ切り出し処理の具体的な内容については後述する。
RDFシリアライザ340は、RDFモデル管理部330により切り出されたオントロジのサブセットをOWL文書(RDF/XML文書)に変換する。
HTTPレスポンス生成部350は、RDFシリアライザ340により生成されたOWL文書によるオントロジのサブセットを含むHTTPレスポンスを生成して、HTTPリクエストを送信したオントロジクライアント400へ返送する。
【0025】
図7は、RDFモデル管理部330の機能構成を示す図である。
図7を参照すると、RDFモデル管理部330は、RDFモデル生成部331と、ノード間距離計算部332と、OWL整合性管理部333と、サブセット抽出部334と、N−Triples生成部335とを備える。
RDFモデル生成部331は、RDFパーサ320より入力したN−Triples表記のオントロジから、図4に示したようなRDFモデルを生成する。生成されたRDFモデルは、例えば図2に示したメインメモリ13やCPU11のキャッシュメモリに保持される。
図8は、RDFモデルをC言語で記述したデータ構造の例を示す図である。ここで、図9に示すようなRDFモデルを考える。図9において、ノードAは、述語に対応するアークrの関係によりノードEに対する目的語となっている。同様に、アークpの関係によりノードFに対する目的語となっている。一方、このノードAは、アークpの関係によりノードBおよびノードCに対する主語となっている。また、アークqの関係によりノードDに対する主語となっている。図10は、図8に示したデータ構造を用いて図9のRDFモデルを表した図である。図10において、各ノードおよびアークを表すデータブロックには、他のデータブロックへのポインタが記述され、図9に示したRDFモデルのイメージと対応するように関連付けられている。
【0026】
ノード間距離計算部332は、RDFモデル生成部331により生成されたRDFモデルの全てのノードに対して、他の各ノードとの間の距離を計算し、ノード間距離テーブル336に登録する。
図11は、ノード間距離テーブル336の例を示す図である。
図11に示すノード間距離テーブル336は、それぞれノードのIDを項目とした2次元のテーブルであり、2つのノードの組合せ全てについて、ノード間距離の値が登録される。例えば、図11においてノードAとノードBとの間の距離は3、ノードAとノードCとの間の距離は6である。ここで、ノード間距離の値は、RDFモデル上で一方のノードから他方のノードまでたどる場合に通過するアークの数である。なお、テーブルの項目には、RDFモデル上での対応するノードへのポインタを登録しても良い。作成されたノード間距離テーブル336は、例えば図2に示したメインメモリ13やCPU11のキャッシュメモリに保持される。
【0027】
OWL整合性管理部333は、RDFモデル生成部331により生成されたRDFモデルのノードのうち、単一のグループとして扱うべきノードセットを特定し、グループノード管理テーブル337に登録する。OWL言語要素では、所定の複数のノードに関して、それらをセットとして扱わないとOWL文法的に不整合が起こる場合がある。そこで、オントロジの切り出しを行う際に、そのようなノードセットを分割しないために、グループとして管理する。
図12は、グループノード管理テーブル337の例を示す図である。
図12に示すグループノード管理テーブル337には、ノードのIDと各ノードが該当するグループのIDとが対応付けられて登録される。なお、図示のノードBのように、1つのノードが複数のグループに属する場合もある。作成されたグループノード管理テーブル337は、例えば図2に示したメインメモリ13やCPU11のキャッシュメモリに保持される。
【0028】
このようにグループとして扱うべきノードセットの例としては、例えばowl:onPropertyと以下のプロパティの組合せがある。
・owl:hasValue
・owl:allValuesFrom
・owl:someValuesFrom
・owl:cardinality
・owl:maxCardinality
・owl:minCardinality
すなわち、この場合、所定の3つのノードA、B、Cに関して、ノードAを主語、ノードBを目的語として、ノードA、B間のアークのプロパティがowl:onPropertyであり、かつノードAを主語、ノードCを目的語として、ノードA、C間のアークのプロパティが上記の6種類のプロパティのいずれかであるなら、ノードA、B、Cはグループとして扱われる(ノードA、B間およびノードA、C間のアークでRDFモデルを切ることはしない)。
また、RDFにおけるrdf:first、rdf:restの組合せを用いたOWL言語要素に該当するノード等もグループとして扱われる。
この他、RDFモデルを切ることが好ましくない関係は、OWL文法に基づいて適宜設定することができ、OWL文法が更新された場合等には、動的に対応させて設定を更新することができる。
【0029】
サブセット抽出部334は、HTTPリクエスト解釈部310によりHTTPリクエストから抽出されたパラメータを入力し、RDFモデル生成部331により生成されたRDFモデルからパラメータにより指定された切り出し条件を満たす部分を切り出し、RDFモデルのサブセットを生成する。この際、ノード間距離テーブル336およびグループノード管理テーブル337を参照することができる。RDFモデルの切り出しを行う場合、RDFモデルのノードおよびアークを辿って切り出し条件を満たす部分を特定することも可能であるが、後述する切り出し条件の指定方法によっては、ノード間距離テーブル336を参照することにより、効率よく切り出し条件を満たす部分を特定することができる。また、RDFモデルを切り出す上で、グループノード管理テーブル337に登録されたグループのノードセットを分割しないのは上述の通りである。
RDFモデルを切り出す際には、各ノード間のアークをなすプロパティについても、元のRDFモデルから抜き出す。このプロパティについては、RDFモデルのpropertyFlagが1であるので、owl:Propertyのrdf:typeであるとして良い。以上のようにしてサブセット抽出部334により生成されたRDFモデルのサブセットは、例えば図2に示したメインメモリ13やCPU11のキャッシュメモリに保持される。
【0030】
N−Triples生成部335は、サブセット抽出部334により生成されたRDFモデルのサブセットから、当該サブセットに対応するN−Triples表記のオントロジを生成する。生成されたN−Triples表記のオントロジは、例えば図2に示したメインメモリ13やCPU11のキャッシュメモリに保持され、RDFシリアライザ340に読み込まれて処理される。
【0031】
次に、オントロジのサブセットを生成するためのオントロジの切り出し条件の指定方法について説明する。
本実施形態では、オントロジクライアント400のエージェント410が所望するサブセットを適切に切り出すため、切り出し条件として、オントロジの情報を得ようとする目標(ターゲット)のノード(語)と所望する情報の範囲とを指定する。情報の範囲の指定の仕方としては、例えば、目標のノードからのレイヤー数(距離)で指定する方法、サブセットに含まれるノードの数を指定する方法等が考えられる。この切り出し条件は、エージェント410がオントロジサーバ100からオントロジをダウンロードするためのHTTPリクエストにおいて、当該オントロジのURLの一部(URLパラメータ)として当該URLに付加される。
【0032】
以下、本実施形態における切り出し条件の指定方法およびそのパラメータにおける記述の具体例をいくつか挙げる。
1.目標のノードおよびレイヤー数による指定方法
この指定方法では、目標のノードとそのノードからのレイヤー数とを指定することにより、そのノードから指定されたレイヤー数だけアークをたどることによって到達するノードまでをサブセットとして切り出す。
図13は、ノードおよびレイヤー数の指定により特定されるオントロジの切り出し範囲の例を示す図である。
図13の例では、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&layer1=2という記述によって切り出し条件が指定されている。このURLのうち、「〜.owl」までがオントロジのOWL文書のURLであり、「?id1=Apple&layer1=2」の部分が切り出し条件を記述したパラメータである。このパラメータの記述では、切り出し条件における目標のノードを「Apple」、レイヤー数を2と指定している。図13において、点線で囲まれた範囲1301がこの切り出し条件を満たす範囲であり、この範囲がサブセットとして切り出されるオントロジの部分となる。図を参照すると、ノード「Apple」からアークを2本たどって到達できるノードまでが、点線で囲まれた範囲1301に含まれている(図中、太線で示したノードおよびアーク)。
【0033】
この指定方法は、より一般的には、複数のノードを指定することができる。例えば、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&layer1=2&id2=Monkey&layer2=3という記述によって、切り出し条件が次のように指定される。
・ノード「Apple」、レイヤー数=2
・ノード「Monkey」、レイヤー数=3
この切り出し条件により、ノード「Apple」からアークを2本たどって到達できるノードまでの範囲、およびノード「Monkey」からアークを3本たどって到達できるノードまでの範囲が、サブセットとして切り出される部分となる。
【0034】
また、予めデフォルトのレイヤー数を決めておき、パラメータにおいてレイヤー数の指定がない場合はデフォルトのレイヤー数を適用することができる。
例えば、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&id2=Monkey&defaultLayer=2という記述では、ノード「Apple」、「Monkey」は指定されているが、それぞれのレイヤー数は指定されていない。この場合、デフォルトのレイヤー数(defaultLayer)=2が適用され、ノード「Apple」、「Monkey」からそれぞれアークを2本たどって到達できるノードまでの範囲がサブセットとして切り出される部分となる。
同様に、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&layer1=2&id2=Monkey&defaultLayer=3という記述では、ノード「Apple」についてはレイヤー数=2が指定されているが、ノード「Monkey」についてはレイヤー数が指定されていないので、デフォルトのレイヤー数=3が適用されることとなる。
【0035】
2.目標のノードおよびノード数による指定方法
この指定方法では、目標のノードとサブセットに含まれるノードの数とを指定することにより、そのノードに近いノードから順にノードを特定していき、特定されたノードが指定された数に達した場合に、そのノードまでをサブセットとして切り出す。ノード数の指定の仕方としては、例えばオントロジ全体のノード数に対する割合(パーセンテージ)を指定することができる。
図14は、ノードおよびノード数の指定により特定されるオントロジの切り出し範囲の例を示す図である。
図14の例では、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&rate1=50という記述によって切り出し条件が指定されている。このURLのうち、「〜.owl」までがオントロジのOWL文書のURLであり、「?id1=Apple&rate1=50」の部分が切り出し条件を記述したパラメータである。このパラメータの記述では、切り出し条件における目標のノードを「Apple」、ノード数をオントロジ全体のノード数の50%と指定している。図14において、点線で囲まれた範囲1401がこの切り出し条件を満たす範囲であり、この範囲がサブセットとして切り出されるオントロジの部分となる。図を参照すると、ノード「Apple」を中心に、オントロジ全体の50%(=20個)のノードが、点線で囲まれた範囲1401に含まれている(図中、太線で示したノードおよびアーク)。この範囲1401の個々のノードは、ノード「Apple」からアークを2本たどって到達できるノードの全て、およびノード「Apple」からアークを3本たどって到達できるノードの一部となっている。
【0036】
この指定方法は、より一般的には、複数のノードを指定することができる。例えば、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&rate1=10&id2=Monkey&rate2=20という記述によって、切り出し条件が次のように指定される。
・ノード「Apple」、ノード数=オントロジ全体の10%
・ノード「Monkey」、ノード数=オントロジ全体の20%
この切り出し条件により、ノード「Apple」を中心にオントロジ全体の10%のノード、およびノード「Monkey」を中心にオントロジ全体の20%のノードが特定されて、サブセットとして切り出される部分となる。
【0037】
また、予めデフォルトのノード数を決めておき、パラメータにおいてノード数の指定がない場合はデフォルトのノード数を適用することができる。
例えば、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&id2=Monkey&defaultRate=10という記述では、ノード「Apple」、「Monkey」は指定されているが、それぞれのノード数は指定されていない。この場合、デフォルトのノード数(defaultRate)=10%が適用され、ノード「Apple」、「Monkey」を中心に、それぞれオントロジ全体の10%のノードが特定されて、サブセットとして切り出される部分となる。
同様に、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&rate1=10&id2=Monkey&defaultRate=20という記述では、ノード「Apple」についてはノード数=10%が指定されているが、ノード「Monkey」についてはノード数が指定されていないので、デフォルトのノード数=20%が適用されることとなる。
なお、この例のようにノード数をオントロジ全体のノード数に対する割合で指定する以外に、サブセットに含むべきノードの数値を直接指定することもできる。ただし、実用的なオントロジサーバが格納するオントロジのノード数は膨大であり、かつノード間の関係は実際にオントロジを調べるまで分からないことを考慮すれば、オントロジ全体のノード数に対する割合でノード数を指定する方法が適当であると考えられる。
【0038】
3.複数のノードおよびそのノード間の最短経路上のノードからのレイヤー数による指定方法
この指定方法では、目標のノードを複数指定すると共に、それらのノードの間の最短経路上のノードからのレイヤー数を指定することにより、それらのノードから指定されたレイヤー数だけアークをたどることによって到達するノードまでをサブセットとして切り出す。
図15は、複数のノードおよびそのノード間の最短経路上のノードからのレイヤー数の指定により特定されるオントロジの切り出し範囲の例を示す図である。
図15の例では、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&id2=Monkey&dijkstraLayer=1という記述によって切り出し条件が指定されている。このURLのうち、「〜.owl」までがオントロジのOWL文書のURLであり、「?id1=Apple&id2=Monkey&dijkstraLayer=1」の部分が切り出し条件を記述したパラメータである。このパラメータの記述では、切り出し条件における目標のノードを「Apple」、「Monkey」とし、これらのノード間の最短経路上のノードからのレイヤー数(dijkstraLayer)を1と指定している。図15において、点線で囲まれた範囲1501がこの切り出し条件を満たす範囲であり、この範囲がサブセットとして切り出される部分となる。図を参照すると、ノード「Apple」からノード「Monkey」までを結ぶ最短経路上の各ノード(図中、太線で記載したノードA、B、C)からアークを1本たどって到達できるノードまでが、点線で囲まれた範囲1501に含まれている(図中、太線で示したノードおよびアーク)。
【0039】
この指定方法は、経路を特定する目標のノードの組を複数指定し、それぞれの最短経路上のノードからのレイヤー数を指定することができる。例えば、http://www.ibm.com/ontology/upperlevel.owl?id11=Apple&id12=Monkey&dijkstraLayer1=5& id21=Apple&id22=Dog&dijkstraLayer2=3という記述によって切り出し条件が次のように指定される。
・ノード「Apple」「Monkey」、最短経路上のノードからのレイヤー数=5
・ノード「Apple」「Dog」、最短経路上のノードからのレイヤー数=3
この切り出し条件により、ノード「Apple」からノード「Monkey」までを結ぶ最短経路上の各ノードからアークを5本たどって到達できるノードまでの範囲、およびノード「Apple」からノード「Dog」までを結ぶ最短経路上の各ノードからアークを3本たどって到達できるノードまでの範囲が、サブセットとして切り出される部分となる。
【0040】
以上のようにしてサブセットに含まれるノードが特定された際、サブセット抽出部334は、当該ノードをグループノード管理テーブル337に照合する。そして、当該ノードが登録されていたならば、当該ノードが属するグループの他のノードも全てサブセットに含まれるノードとして特定する。
なお、上述した切り出し条件の指定方法を複数混在させてパラメータを記述することもできる。その場合、それぞれの指定方法で特定された切り出し範囲の和で表される範囲が、サブセットとして切り出される部分となる。
【0041】
ところで、上述した1、3の切り出し条件の指定方法では、HTTPリクエストのパラメータにおいて目標のノードからのレイヤー数が指定され、その目標のノードからアークをたどって到達するノードによりサブセットの範囲が決定される。この場合、実際にRDFモデルにおいて目標のノードからアークをたどってサブセットに含まれるノードを特定していっても良いが、ノード間距離テーブル336が作成されているならば、これを用いることにより効率良くサブセットの範囲を決定することができる。すなわち、サブセット抽出部334は、ノード間距離テーブル336を参照して、目標のノードからの距離の値がパラメータにおいて指定されたレイヤー数の値以下であるノードを検出し、検出されたノードをRDFモデル上で特定してサブセットの範囲を決定する。
【0042】
さらに、上述した2の切り出し条件の指定方法においても、ノード間距離テーブル336を利用して効率良くサブセットの範囲を決定することができる。すなわち、サブセット抽出部334は、ノード間距離テーブル336を参照して、まず目標のノードからの距離の値が1のノードから順に検出し、検出されたノード数がHTTPリクエストのパラメータにおいて指定されたノード数に達したかどうかを判断しながら、次第に目標のノードからの距離の値が大きいノードを検出していく。図14に示した例では、ノード「Apple」からアークを2本たどって到達できるノードは全てサブセットに含まれるので、ノード間距離テーブル336においてノード「Apple」に対する距離の値が2までのノードは、サブセットに含まれるノードとして直ちに特定することができる。しかし、ノード「Apple」に対する距離の値が3までのノードの総和はパラメータで指定されたノード数を越えてしまうので、サブセット抽出部334は、このノード「Apple」に対する距離の値が3であるノードに対して、RDFモデルやノード間距離テーブル336を参照して取捨選択を行い、パラメータで指定されたノード数に一致するようにノードを特定していけば良い。
【0043】
次に、本実施形態におけるオントロジサーバ100の全体的な動作の流れを説明する。
図16は、本実施形態のオントロジサーバ100の動作を説明するフローチャートである。
オントロジサーバ100のオントロジ編集部300は、図16に示すように、まずオントロジ格納部200からオントロジを読み出し(ステップ1601)、読み出したオントロジをパースしてN−Triples表記に変換する(ステップ1602)。そして、このN−Triples表記のオントロジからRDFモデルを生成する(ステップ1603)。この際、ノード間距離テーブル336およびグループノード管理テーブル337も生成しておく。
ここまでの動作は、オントロジの切り出し条件がなくても行うことが可能である。したがって、オントロジクライアント400からのHTTPリクエストの受信前に、事前動作として行っておくことができる。
【0044】
オントロジクライアント400からオントロジの取得を要求するHTTPリクエストを受信すると、次にオントロジ編集部300は、受信したHTTPリクエストのパラメータに記述された切り出し条件に基づき、ステップ1603で生成されたRDFモデルの一部を切り出す(ステップ1604)。そして、切り出した部分をN−Triples表記に変換し(ステップ1605)、さらにこれをシリアライズしてOWL文書に変換する(ステップ1606)。最後にオントロジ編集部300は、このOWL文書に変換されたオントロジのサブセットを内容とするHTTPレスポンスを生成し、HTTPリクエストを送信したオントロジクライアント400に返送する(ステップ1607)。
【0045】
上記のように、本実施形態のオントロジサーバ100は、オントロジクライアント400からのオントロジの取得要求に応じて、オントロジ全体ではなく、オントロジクライアント400が必要とする情報に該当するオントロジの一部のみを提供する。これにより、本実施形態によれば、ネットワークの負荷を軽減し、通信コストを減少させることができる。
また、オントロジクライアント400においても、自身の処理を行うために必要なオントロジの情報のみを取得して参照するため、処理に要する時間を短縮することができる。
【0046】
一方、本実施形態では、オントロジサーバ100において、OWL文書をRDFモデルに変換して一部を切り出し、切り出された部分を再度OWL文書に変換してオントロジのサブセットを作成しているため、単にオントロジ全体をオントロジクライアント400へ送信する場合に比べて、オントロジサーバ100における処理が多い。そのため、オントロジクライアント400がオントロジをダウンロードする際に要する時間が増大することとなる。
しかしながら上述した動作のように、オントロジクライアント400からHTTPリクエストを受信する前に、オントロジサーバ100が、予めOWL文書のオントロジをRDFモデルに変換しておくことにより、オントロジクライアント400がオントロジをダウンロードする際の時間の増大を最低限に抑えることができる。
ただし、この場合、OWL文書のオントロジが更新されたならば、そのたびにRDFモデルへの変換、ノード間距離テーブル336およびグループノード管理テーブル337の生成を行って、これらを常に最新の状態にしておくことが必要である。
【0047】
なお、本実施形態において、事前にOWL文書をRDFモデルに変換しておくことは必須の動作ではなく、オントロジサーバ100が高性能で変換処理を高速に行うことができる等の条件によっては、HTTPリクエストを受信後にOWL文書の読み出しおよびデータ形式の変換を行ってもかまわない。
また、本実施形態では、OWL文書のオントロジをRDFモデルに変換して、所定の切り出し条件を満たす部分を切り出すこととした。しかしながら、[0022]で述べたように、OWL文書をRDFモデルに変換するのは、オントロジ編集部300がオントロジで定義されている各語の関係を知るためと、OWL文書やN−Triples表記から切り出し条件を満たす部分を検索するよりもRDFモデルのグラフから該当部分を特定する方が簡単な作業で済むためである。したがって、処理速度が問題とならない等の条件によっては、HTTPリクエストから抽出される切り出し条件に基づいて、当該切り出し条件を満たす語およびその定義をOWL文書から直接検索したり、N−Triples表記のオントロジから検索したりすることも可能である。
【0048】
OWL文書から直接サブセットの生成を行う場合、図6に示したオントロジサーバ100のオントロジ編集部300の構成において、RDFパーサ320やRDFシリアライザ340は必須の構成要素ではない。RDFモデル管理部330は、OWL文書を走査して切り出し条件を満たす語の定義を検索することとなる。また、N−Triples表記のオントロジからの切り出しを行う場合、図7に示したオントロジサーバ100のRDFモデル管理部330の構成において、RDFモデル生成部331やN−Triples生成部335は必須の構成要素ではない。サブセット抽出部334は、N−Triples表記のオントロジを走査して切り出し条件を満たす語を検索することとなる。
【図面の簡単な説明】
【0049】
【図1】本実施形態のセマンティックウェブシステムにおけるオントロジサーバとオントロジクライアントとの関係を示す図である。
【図2】本実施形態におけるオントロジサーバおよびオントロジクライアントを実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
【図3】オントロジを記述するOWLのデータモデルを示す図である。
【図4】OWLをRDFモデルで表現した例を示す図である。
【図5】本実施形態におけるオントロジの切り出しを行う際のデータ変換の様子を示す図である。
【図6】本実施形態におけるオントロジサーバの構成を示す図である。
【図7】本実施形態のRDFモデル管理部の機能構成を示す図である。
【図8】RDFモデルをC言語で記述したデータ構造の例を示す図である。
【図9】RDFモデルの一例を示す図である。
【図10】図8に示したデータ構造を用いて、図9に示したRDFモデルを表した図である。
【図11】本実施形態のノード間距離テーブルの構成例を示す図である。
【図12】本実施形態のグループノード管理テーブルの構成例を示す図である。
【図13】本実施形態において、ノードおよびレイヤー数の指定により特定されるオントロジの切り出し範囲の例を示す図である。
【図14】本実施形態において、ノードおよびノード数の指定により特定されるオントロジの切り出し範囲の例を示す図である。
【図15】本実施形態において、複数のノードおよびそのノード間の最短経路上のノードからのレイヤー数の指定により特定されるオントロジの切り出し範囲の例を示す図である。
【図16】本実施形態のオントロジサーバの動作を説明するフローチャートである。
【図17】セマンティックウェブ技術による情報検索システムの構成例を示す図である。
【図18】エージェントがオントロジを参照する様子を示す図である。
【符号の説明】
【0050】
11…CPU(Central Processing Unit:中央処理装置)、13…メインメモリ、15…磁気ディスク装置(HDD)、100…オントロジサーバ、200…オントロジ格納部、300…オントロジ編集部、310…HTTPリクエスト解釈部、320…RDFパーサ、330…RDFモデル管理部、331…RDFモデル生成部、332…ノード間距離計算部、333…OWL整合性管理部、334…サブセット抽出部、335…N−Triples生成部、400…オントロジクライアント、410…エージェント
【技術分野】
【0001】
本発明は、セマンティックウェブ技術において、オントロジを効率的に利用するためのシステムおよびその方法に関する。
【背景技術】
【0002】
近年、コンピュータが意味(セマンティック:Semantic)を理解し、様々な処理を行えるようにするセマンティックウェブ(Semantic Web)技術の研究が盛んに行われており、セマンティックウェブ技術で用いられるオントロジ(ontology)を利用した情報検索システムなどが開発されている(例えば、特許文献1、2参照)。ここで、オントロジとは、「概念化の明示的な記述」(a specification of a conceptualization)などと定義され、セマンティックウェブの意味記述に用いられる知識表記法である。オントロジは、システム上では、例えば分類体系と推論ルール集とで実現される。
【0003】
図17は、セマンティックウェブによる情報検索システムの構成例を示す図である。
図17において、エージェントサーバ1710のパーソナルエージェント1711は、ユーザによる検索要求に応じてOWL(Web Ontology Language)などのオントロジ記述言語で記述された照会文を作成し、エージェントサーバ1720へ送信する。エージェントサーバ1720のブローカエージェント1721は、エージェントサーバ1710から受信した照会文に基づいてネットワーク上のウェブサービスを提供するエージェントサーバから情報を取得し、取得した情報に基づいてOWLで記述された応答文を作成し、エージェントサーバ1710へ返信する。エージェントサーバ1710のパーソナルエージェント1711は、受信した応答文の内容を検索結果としてユーザに返す。
【0004】
ここで、エージェントサーバ1710のパーソナルエージェント1711が照会文を作成する際および応答文を解釈する際、またエージェントサーバ1720のブローカエージェント1721が照会文を解釈する際および応答文を作成する際に、パーソナルエージェント1711およびブローカエージェント1721(以下、これらを合わせて単にエージェントと称す)は、それぞれオントロジサーバ1730にアクセスしてオントロジを参照する。
【0005】
図18は、エージェントがオントロジを参照する様子を示す図である。
図18においてオントロジサーバ1730は、OWLで記述されたオントロジを格納している。オントロジサーバ1730に対するクライアント(オントロジクライアント)であるエージェント1810は、照会文の作成、解釈、応答文の作成、解釈を行うために、まずオントロジサーバ1730に格納されているオントロジを全部ダウンロードする。そして、照会文や応答文を作成する際は、それらの文に含まれる語のIDを記述すると共に、ダウンロードされたオントロジを参照してその語が定義されているオントロジのURLを記述する。一方、照会文や応答文を解釈する際は、文中の各語の概念がダウンロードされたオントロジでどのように定義されているかを調べ、得られた情報に基づいて検索などの処理を実行する。
【0006】
【特許文献1】特開2002−63033号公報
【特許文献2】特開2001−92827号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述したように、セマンティックウェブ技術においてエージェントがオントロジを利用する場合、従来は、エージェントがオントロジサーバに格納されているオントロジを一旦全部ダウンロードして参照していた。
しかし、一般的な語彙を網羅する実用的なオントロジでは、データサイズも大きくなるため、オントロジ全体をダウンロードすると、ネットワークへの負荷や通信コストが増大してしまうという問題があった。
また、オントロジを参照して処理を行う際にも、所望の語彙の情報を得るために、ダウンロードされたオントロジ全体を参照することとなるため、処理に長時間を要するという問題があった。
【0008】
そこで本発明は、セマンティックウェブ技術において、エージェントがオントロジサーバからオントロジをダウンロードする場合に、必要な一部を選択してダウンロードする方法およびそのシステムを提供することを目的とする。
これにより本発明は、エージェントがオントロジを利用する際におけるネットワーク負荷や通信コストを軽減し、オントロジを利用した処理に要する時間を短縮することを他の目的とする。
【課題を解決するための手段】
【0009】
上記の目的を達成するため、本発明は、オントロジを格納したオントロジサーバと、このオントロジサーバにアクセスしてオントロジを参照するオントロジクライアントとを備えたコンピュータシステムとして実現される。このシステムにおいて、オントロジサーバは、オントロジ記述言語で記述されたオントロジのデータを格納したオントロジ格納部と、このオントロジ格納部からオントロジを読み出し、読み出されたオントロジから所定の部分を切り出し、オントロジクライアントに送信するオントロジ編集部とを備えることを特徴とする。
【0010】
より詳細には、オントロジサーバにおけるオントロジ編集部は、オントロジクライアントから目標の語およびオントロジの切り出し条件(extraction condition)を指定したリクエストを受信し、このリクエストで指定された目標の語および切り出し条件を満たす部分、すなわち、目標の語と当該目標の語に対しオントロジの定義において一定の関係を有する語とを含むオントロジの部分を、オントロジから切り出す。さらに好ましくは、オントロジ編集部は、オントロジ記述言語で記述されたオントロジを、N−Triples表記に変換し、各語の関係をたどることによって、オントロジから切り出す部分を特定する。あるいは、N−Triples表記のオントロジを、さらに、各語に対応するノードと各語の間の関係を示すアークとで構成されたRDF(Resource Description Framework)モデルに変換し、ノード間に張られたアークをたどることによってオントロジから切り出す部分を特定する。
【0011】
また、より好ましくは、オントロジ編集部は、オントロジにより定義された各語に対応する各ノードに関して、個々のノードと他のノードとの間のアークの本数を示すノード間距離情報をノード間距離テーブルに登録して管理し、このノード間距離情報を参照してオントロジから切り出す部分を特定する。さらにオントロジ編集部は、オントロジ記述言語の文法に基づいて単一のグループとして扱うべき語の組をグループノード管理テーブルに登録して管理し、オントロジの切り出しを行う際には、このグループノード管理テーブルに登録された語の組を分割することなく、オントロジから切り出す部分を特定する。
【0012】
また、このシステムのオントロジクライアントは、所定の語およびオントロジの切り出し条件を指定したリクエストをサーバに送信するエージェントを備える。このエージェントは、オントロジのファイルのURLに所定の語およびオントロジの切り出し条件を指定するパラメータを付加し、このパラメータの記述されたURLを含むHTTPリクエストをオントロジサーバへ送信する。
【0013】
上記の目的を達成する他の本発明は、クライアントからの要求に応じてオントロジを当該クライアントに送信するオントロジサーバのデータ処理方法としても実現される。この方法は、オントロジサーバが、オントロジ記述言語で記述されたオントロジのデータを記憶装置から読み出し、オントロジに定義されている各語の関係を調べる第1のステップと、オントロジによって定義されている所定の語およびオントロジの切り出し条件を取得し、このオントロジに定義されている各語の関係に基づいて、オントロジから所定の語および切り出し条件を満たす部分を切り出す第2のステップと、切り出されたオントロジをクライアントに送信する第3のステップとを含むことを特徴とする。
【0014】
さらに本発明は、コンピュータを制御して上記のオントロジサーバの各機能を実現させるプログラム、あるいはコンピュータに上記のデータ処理方法の各ステップに対応する処理を実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供される。
【発明の効果】
【0015】
以上のように構成された本発明によれば、エージェントがオントロジサーバからオントロジをダウンロードする場合に、必要な一部を選択してダウンロードすることができる。このため、オントロジを利用するコンピュータシステムにおいて、ネットワーク負荷や通信コストを軽減し、オントロジを利用した処理に要する時間を短縮することができる。
また、オントロジクライアントにおいても、自身の処理を行うために必要なオントロジの情報のみを取得して参照するため、処理に要する時間を短縮することが可能となる。
【発明を実施するための最良の形態】
【0016】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、実施形態)について詳細に説明する。
まず、本実施形態の概要を説明する。
図1は、本実施形態のセマンティックウェブシステムにおけるオントロジサーバとオントロジクライアントとの関係を示す図である。
図1に示すように、本実施形態のオントロジサーバ100は、OWL文書であるオントロジを格納したオントロジ格納部200と、オントロジクライアント400からのリクエストに応じてオントロジ格納部200に格納されているオントロジの一部を切り出して返送するオントロジ編集部300とを備える。オントロジクライアント400は、ユーザが使用するクライアントマシンやポータルサーバ、検索サイトのエージェントサーバ等、オントロジサーバ100にアクセスしてオントロジを利用する各種の情報処理装置が該当し、オントロジサーバ100へのアクセスを行うエージェント410を備える。
【0017】
図1に示すシステムにおいて、オントロジクライアント400のエージェント410は、オントロジサーバ100のオントロジ格納部200に格納されているオントロジのURLとパラメータ(URLパラメータ)とを含むHTTPリクエストを作成し、オントロジサーバ100に対して送信する。HTTPリクエストに含まれるパラメータについては後述する。
このHTTPリクエストを受信したオントロジサーバ100では、オントロジ編集部300が、このHTTPリクエストを解釈し、そのパラメータに基づいてオントロジ格納部200に格納されているオントロジの一部を切り出し、切り出されたオントロジのサブセットをHTTPレスポンスとしてオントロジクライアント400に返送する。
【0018】
図2は、本実施形態におけるオントロジサーバ100およびオントロジクライアント400を実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
図2に示すコンピュータ装置は、演算手段であるCPU(Central Processing Unit:中央処理装置)11と、M/B(マザーボード)チップセット12およびCPUバスを介してCPU11に接続されたメインメモリ13と、同じくM/Bチップセット12およびAGP(Accelerated Graphics Port)を介してCPU11に接続されたビデオカード14と、PCI(Peripheral Component Interconnect)バスを介してM/Bチップセット12に接続された磁気ディスク装置(HDD)15、ネットワークインタフェース16と、さらにこのPCIバスからブリッジ回路17およびISA(Industry Standard Architecture)バスなどの低速なバスを介してM/Bチップセット12に接続されたフレキシブルディスクドライブ18およびキーボード/マウス19とを備える。
【0019】
なお、図2は本実施形態を実現するコンピュータ装置のハードウェア構成を例示するに過ぎず、本実施形態を適用可能であれば、他の種々の構成を取ることができる。例えば、ビデオカード14を設ける代わりに、ビデオメモリのみを搭載し、CPU11にてイメージデータを処理する構成としても良いし、外部記憶装置として、ATA(AT Attachment)やSCSI(Small Computer System Interface)などのインタフェースを介してCD−R(Compact Disc Recordable)やDVD−RAM(Digital Versatile Disc Random Access Memory)のドライブを設けても良い。
【0020】
次に、本実施形態のオントロジサーバ100について詳細に説明する。
本実施形態のオントロジサーバ100は、上述したように、オントロジクライアント400からのHTTPリクエストに含まれるパラメータにより指定された切り出し条件に応じて、オントロジ格納部200に格納されているオントロジの一部を切り出し、オントロジのサブセットを生成する。まず、このオントロジの切り出し作業について説明する。
図3は、オントロジを記述するOWLのデータモデルを示す図である。
OWLはRDF(Resource Description Framework)に基づいて記述される。RDFは、主語(リソース)、述語(プロパティ)、目的語(オブジェクト:プロパティの値)の三者関係によって、関係の連鎖を辿ることができるようなデータモデルを記述する。RDFのデータモデルは、図3(A)に示すように主語、述語、目的語を1行に記述するN−Tripleと呼ばれる表記法や、図3(B)に示すようなラベル付き有向グラフで表現することができる。したがって、OWLで記述されたオントロジは、オントロジにおいて定義される各語をノードとし、各語の間の関係をノード間に張られたアークとしたRDFモデル(グラフモデル)で表すことができる。この場合、各ノードはN−Triples表記における主語および目的語に対応し、ノード間のアークは述語に対応する。
図4は、OWLをRDFモデルで表現した例を示す図である。
図4において、アークによって結ばれた任意の2つのノードは、間に張られたアークを述語として主語と目的語の関係をそれぞれ有する。
【0021】
本実施形態では、オントロジ編集部300が、オントロジからその一部を切り出してオントロジのサブセットを生成するが、この際、切り出すべき部分を特定するために、オントロジ編集部300は、このオントロジにおいて定義されている各語の間の関係を知っていなければならない。そこで、オントロジ編集部300がオントロジで定義されている各語の関係を知る手段として、本実施の形態では、オントロジ格納部200に格納されているOWLで記述されたオントロジをN−Triples表記に変換する。
また、オントロジから切り出すべき部分、すなわちオントロジクライアント400からのHTTPリクエストに含まれるパラメータにより指定された切り出し条件を満たす部分を特定する作業は、N−Triples表記のオントロジを対象として行うよりも、RDFモデルを対象として行う方が、効率が良い。これは次のような理由による。すなわち、N−Triples表記のオントロジを対象として切り出し条件を満たす部分を特定する場合は、このN−Triples表記の記述全体を何度も走査しながら切り出し条件を満たす語を1語ずつ検索する必要がある。これに対して、RDFモデルを対象として行う場合は、アークをたどりながら切り出し条件を満たすノードを順次特定していけば良い。そこで、本実施形態では、オントロジ編集部300が、N−Triples表記されたオントロジから、これと等価なRDFモデルを生成し、このRDFモデル上で切り出すべき部分を特定し、サブセットを生成することとする。
【0022】
図5は、本実施形態におけるオントロジの切り出しを行う際のデータ変換の様子を示す図である。
上述したように、オントロジ格納部200から読み出されたOWL文書のオントロジがN−Triples表記に変換され、さらにRDFモデルに変換された後に切り出され、次に、切り出されたRDFモデルの部分がN−Triples表記に変換され、OWL文書に変換されて、切り出し条件に応じたオントロジのサブセットが生成される。これにより、本実施形態では、オントロジクライアント400からオントロジサーバ100へオントロジの取得を要求するHTTPリクエストが送信されると、このオントロジのサブセットを内容とするHTTPレスポンスが、オントロジサーバ100からオントロジクライアント400に送信される。
【0023】
図6は、本実施形態におけるオントロジサーバ100の構成を示す図である。
図6において、オントロジ格納部200は、図2のメインメモリ13や磁気ディスク装置15等の記憶手段にて実現される。オントロジ格納部200には、RDF/XML文書(XML表記されたRDF文書)として記述されたOWL文書が格納されている。
また、オントロジ編集部300は、例えば図2に示したコンピュータ装置のプログラム制御されたCPU11およびメインメモリ13等の記憶手段にて実現される。図6を参照すると、オントロジ編集部300は、オントロジクライアント400から受け付けたHTTPリクエストを解釈するHTTPリクエスト解釈部310と、オントロジの切り出しを行うためのRDFパーサ320、RDFモデル管理部330、RDFシリアライザ340およびHTTPレスポンス作成部350とを備える。
【0024】
HTTPリクエスト解釈部310は、オントロジクライアント400から送信されたHTTPリクエストを解析して、HTTPリクエストに含まれるオントロジの切り出し条件を記述したパラメータを抽出する。
RDFパーサ320は、オントロジ格納部200からオントロジのOWL文書を読み出し、N−Triples表記に変換する。
RDFモデル管理部330は、HTTPリクエスト解釈部310により抽出されたパラメータと、RDFパーサ320により変換されたN−Triples表記のオントロジとを入力し、パラメータにより指定された切り出し条件に基づきオントロジの切り出しを行う。切り出されたオントロジのサブセットは、N−Triples表記で記述されている。オントロジ切り出し処理の具体的な内容については後述する。
RDFシリアライザ340は、RDFモデル管理部330により切り出されたオントロジのサブセットをOWL文書(RDF/XML文書)に変換する。
HTTPレスポンス生成部350は、RDFシリアライザ340により生成されたOWL文書によるオントロジのサブセットを含むHTTPレスポンスを生成して、HTTPリクエストを送信したオントロジクライアント400へ返送する。
【0025】
図7は、RDFモデル管理部330の機能構成を示す図である。
図7を参照すると、RDFモデル管理部330は、RDFモデル生成部331と、ノード間距離計算部332と、OWL整合性管理部333と、サブセット抽出部334と、N−Triples生成部335とを備える。
RDFモデル生成部331は、RDFパーサ320より入力したN−Triples表記のオントロジから、図4に示したようなRDFモデルを生成する。生成されたRDFモデルは、例えば図2に示したメインメモリ13やCPU11のキャッシュメモリに保持される。
図8は、RDFモデルをC言語で記述したデータ構造の例を示す図である。ここで、図9に示すようなRDFモデルを考える。図9において、ノードAは、述語に対応するアークrの関係によりノードEに対する目的語となっている。同様に、アークpの関係によりノードFに対する目的語となっている。一方、このノードAは、アークpの関係によりノードBおよびノードCに対する主語となっている。また、アークqの関係によりノードDに対する主語となっている。図10は、図8に示したデータ構造を用いて図9のRDFモデルを表した図である。図10において、各ノードおよびアークを表すデータブロックには、他のデータブロックへのポインタが記述され、図9に示したRDFモデルのイメージと対応するように関連付けられている。
【0026】
ノード間距離計算部332は、RDFモデル生成部331により生成されたRDFモデルの全てのノードに対して、他の各ノードとの間の距離を計算し、ノード間距離テーブル336に登録する。
図11は、ノード間距離テーブル336の例を示す図である。
図11に示すノード間距離テーブル336は、それぞれノードのIDを項目とした2次元のテーブルであり、2つのノードの組合せ全てについて、ノード間距離の値が登録される。例えば、図11においてノードAとノードBとの間の距離は3、ノードAとノードCとの間の距離は6である。ここで、ノード間距離の値は、RDFモデル上で一方のノードから他方のノードまでたどる場合に通過するアークの数である。なお、テーブルの項目には、RDFモデル上での対応するノードへのポインタを登録しても良い。作成されたノード間距離テーブル336は、例えば図2に示したメインメモリ13やCPU11のキャッシュメモリに保持される。
【0027】
OWL整合性管理部333は、RDFモデル生成部331により生成されたRDFモデルのノードのうち、単一のグループとして扱うべきノードセットを特定し、グループノード管理テーブル337に登録する。OWL言語要素では、所定の複数のノードに関して、それらをセットとして扱わないとOWL文法的に不整合が起こる場合がある。そこで、オントロジの切り出しを行う際に、そのようなノードセットを分割しないために、グループとして管理する。
図12は、グループノード管理テーブル337の例を示す図である。
図12に示すグループノード管理テーブル337には、ノードのIDと各ノードが該当するグループのIDとが対応付けられて登録される。なお、図示のノードBのように、1つのノードが複数のグループに属する場合もある。作成されたグループノード管理テーブル337は、例えば図2に示したメインメモリ13やCPU11のキャッシュメモリに保持される。
【0028】
このようにグループとして扱うべきノードセットの例としては、例えばowl:onPropertyと以下のプロパティの組合せがある。
・owl:hasValue
・owl:allValuesFrom
・owl:someValuesFrom
・owl:cardinality
・owl:maxCardinality
・owl:minCardinality
すなわち、この場合、所定の3つのノードA、B、Cに関して、ノードAを主語、ノードBを目的語として、ノードA、B間のアークのプロパティがowl:onPropertyであり、かつノードAを主語、ノードCを目的語として、ノードA、C間のアークのプロパティが上記の6種類のプロパティのいずれかであるなら、ノードA、B、Cはグループとして扱われる(ノードA、B間およびノードA、C間のアークでRDFモデルを切ることはしない)。
また、RDFにおけるrdf:first、rdf:restの組合せを用いたOWL言語要素に該当するノード等もグループとして扱われる。
この他、RDFモデルを切ることが好ましくない関係は、OWL文法に基づいて適宜設定することができ、OWL文法が更新された場合等には、動的に対応させて設定を更新することができる。
【0029】
サブセット抽出部334は、HTTPリクエスト解釈部310によりHTTPリクエストから抽出されたパラメータを入力し、RDFモデル生成部331により生成されたRDFモデルからパラメータにより指定された切り出し条件を満たす部分を切り出し、RDFモデルのサブセットを生成する。この際、ノード間距離テーブル336およびグループノード管理テーブル337を参照することができる。RDFモデルの切り出しを行う場合、RDFモデルのノードおよびアークを辿って切り出し条件を満たす部分を特定することも可能であるが、後述する切り出し条件の指定方法によっては、ノード間距離テーブル336を参照することにより、効率よく切り出し条件を満たす部分を特定することができる。また、RDFモデルを切り出す上で、グループノード管理テーブル337に登録されたグループのノードセットを分割しないのは上述の通りである。
RDFモデルを切り出す際には、各ノード間のアークをなすプロパティについても、元のRDFモデルから抜き出す。このプロパティについては、RDFモデルのpropertyFlagが1であるので、owl:Propertyのrdf:typeであるとして良い。以上のようにしてサブセット抽出部334により生成されたRDFモデルのサブセットは、例えば図2に示したメインメモリ13やCPU11のキャッシュメモリに保持される。
【0030】
N−Triples生成部335は、サブセット抽出部334により生成されたRDFモデルのサブセットから、当該サブセットに対応するN−Triples表記のオントロジを生成する。生成されたN−Triples表記のオントロジは、例えば図2に示したメインメモリ13やCPU11のキャッシュメモリに保持され、RDFシリアライザ340に読み込まれて処理される。
【0031】
次に、オントロジのサブセットを生成するためのオントロジの切り出し条件の指定方法について説明する。
本実施形態では、オントロジクライアント400のエージェント410が所望するサブセットを適切に切り出すため、切り出し条件として、オントロジの情報を得ようとする目標(ターゲット)のノード(語)と所望する情報の範囲とを指定する。情報の範囲の指定の仕方としては、例えば、目標のノードからのレイヤー数(距離)で指定する方法、サブセットに含まれるノードの数を指定する方法等が考えられる。この切り出し条件は、エージェント410がオントロジサーバ100からオントロジをダウンロードするためのHTTPリクエストにおいて、当該オントロジのURLの一部(URLパラメータ)として当該URLに付加される。
【0032】
以下、本実施形態における切り出し条件の指定方法およびそのパラメータにおける記述の具体例をいくつか挙げる。
1.目標のノードおよびレイヤー数による指定方法
この指定方法では、目標のノードとそのノードからのレイヤー数とを指定することにより、そのノードから指定されたレイヤー数だけアークをたどることによって到達するノードまでをサブセットとして切り出す。
図13は、ノードおよびレイヤー数の指定により特定されるオントロジの切り出し範囲の例を示す図である。
図13の例では、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&layer1=2という記述によって切り出し条件が指定されている。このURLのうち、「〜.owl」までがオントロジのOWL文書のURLであり、「?id1=Apple&layer1=2」の部分が切り出し条件を記述したパラメータである。このパラメータの記述では、切り出し条件における目標のノードを「Apple」、レイヤー数を2と指定している。図13において、点線で囲まれた範囲1301がこの切り出し条件を満たす範囲であり、この範囲がサブセットとして切り出されるオントロジの部分となる。図を参照すると、ノード「Apple」からアークを2本たどって到達できるノードまでが、点線で囲まれた範囲1301に含まれている(図中、太線で示したノードおよびアーク)。
【0033】
この指定方法は、より一般的には、複数のノードを指定することができる。例えば、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&layer1=2&id2=Monkey&layer2=3という記述によって、切り出し条件が次のように指定される。
・ノード「Apple」、レイヤー数=2
・ノード「Monkey」、レイヤー数=3
この切り出し条件により、ノード「Apple」からアークを2本たどって到達できるノードまでの範囲、およびノード「Monkey」からアークを3本たどって到達できるノードまでの範囲が、サブセットとして切り出される部分となる。
【0034】
また、予めデフォルトのレイヤー数を決めておき、パラメータにおいてレイヤー数の指定がない場合はデフォルトのレイヤー数を適用することができる。
例えば、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&id2=Monkey&defaultLayer=2という記述では、ノード「Apple」、「Monkey」は指定されているが、それぞれのレイヤー数は指定されていない。この場合、デフォルトのレイヤー数(defaultLayer)=2が適用され、ノード「Apple」、「Monkey」からそれぞれアークを2本たどって到達できるノードまでの範囲がサブセットとして切り出される部分となる。
同様に、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&layer1=2&id2=Monkey&defaultLayer=3という記述では、ノード「Apple」についてはレイヤー数=2が指定されているが、ノード「Monkey」についてはレイヤー数が指定されていないので、デフォルトのレイヤー数=3が適用されることとなる。
【0035】
2.目標のノードおよびノード数による指定方法
この指定方法では、目標のノードとサブセットに含まれるノードの数とを指定することにより、そのノードに近いノードから順にノードを特定していき、特定されたノードが指定された数に達した場合に、そのノードまでをサブセットとして切り出す。ノード数の指定の仕方としては、例えばオントロジ全体のノード数に対する割合(パーセンテージ)を指定することができる。
図14は、ノードおよびノード数の指定により特定されるオントロジの切り出し範囲の例を示す図である。
図14の例では、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&rate1=50という記述によって切り出し条件が指定されている。このURLのうち、「〜.owl」までがオントロジのOWL文書のURLであり、「?id1=Apple&rate1=50」の部分が切り出し条件を記述したパラメータである。このパラメータの記述では、切り出し条件における目標のノードを「Apple」、ノード数をオントロジ全体のノード数の50%と指定している。図14において、点線で囲まれた範囲1401がこの切り出し条件を満たす範囲であり、この範囲がサブセットとして切り出されるオントロジの部分となる。図を参照すると、ノード「Apple」を中心に、オントロジ全体の50%(=20個)のノードが、点線で囲まれた範囲1401に含まれている(図中、太線で示したノードおよびアーク)。この範囲1401の個々のノードは、ノード「Apple」からアークを2本たどって到達できるノードの全て、およびノード「Apple」からアークを3本たどって到達できるノードの一部となっている。
【0036】
この指定方法は、より一般的には、複数のノードを指定することができる。例えば、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&rate1=10&id2=Monkey&rate2=20という記述によって、切り出し条件が次のように指定される。
・ノード「Apple」、ノード数=オントロジ全体の10%
・ノード「Monkey」、ノード数=オントロジ全体の20%
この切り出し条件により、ノード「Apple」を中心にオントロジ全体の10%のノード、およびノード「Monkey」を中心にオントロジ全体の20%のノードが特定されて、サブセットとして切り出される部分となる。
【0037】
また、予めデフォルトのノード数を決めておき、パラメータにおいてノード数の指定がない場合はデフォルトのノード数を適用することができる。
例えば、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&id2=Monkey&defaultRate=10という記述では、ノード「Apple」、「Monkey」は指定されているが、それぞれのノード数は指定されていない。この場合、デフォルトのノード数(defaultRate)=10%が適用され、ノード「Apple」、「Monkey」を中心に、それぞれオントロジ全体の10%のノードが特定されて、サブセットとして切り出される部分となる。
同様に、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&rate1=10&id2=Monkey&defaultRate=20という記述では、ノード「Apple」についてはノード数=10%が指定されているが、ノード「Monkey」についてはノード数が指定されていないので、デフォルトのノード数=20%が適用されることとなる。
なお、この例のようにノード数をオントロジ全体のノード数に対する割合で指定する以外に、サブセットに含むべきノードの数値を直接指定することもできる。ただし、実用的なオントロジサーバが格納するオントロジのノード数は膨大であり、かつノード間の関係は実際にオントロジを調べるまで分からないことを考慮すれば、オントロジ全体のノード数に対する割合でノード数を指定する方法が適当であると考えられる。
【0038】
3.複数のノードおよびそのノード間の最短経路上のノードからのレイヤー数による指定方法
この指定方法では、目標のノードを複数指定すると共に、それらのノードの間の最短経路上のノードからのレイヤー数を指定することにより、それらのノードから指定されたレイヤー数だけアークをたどることによって到達するノードまでをサブセットとして切り出す。
図15は、複数のノードおよびそのノード間の最短経路上のノードからのレイヤー数の指定により特定されるオントロジの切り出し範囲の例を示す図である。
図15の例では、http://www.ibm.com/ontology/upperlevel.owl?id1=Apple&id2=Monkey&dijkstraLayer=1という記述によって切り出し条件が指定されている。このURLのうち、「〜.owl」までがオントロジのOWL文書のURLであり、「?id1=Apple&id2=Monkey&dijkstraLayer=1」の部分が切り出し条件を記述したパラメータである。このパラメータの記述では、切り出し条件における目標のノードを「Apple」、「Monkey」とし、これらのノード間の最短経路上のノードからのレイヤー数(dijkstraLayer)を1と指定している。図15において、点線で囲まれた範囲1501がこの切り出し条件を満たす範囲であり、この範囲がサブセットとして切り出される部分となる。図を参照すると、ノード「Apple」からノード「Monkey」までを結ぶ最短経路上の各ノード(図中、太線で記載したノードA、B、C)からアークを1本たどって到達できるノードまでが、点線で囲まれた範囲1501に含まれている(図中、太線で示したノードおよびアーク)。
【0039】
この指定方法は、経路を特定する目標のノードの組を複数指定し、それぞれの最短経路上のノードからのレイヤー数を指定することができる。例えば、http://www.ibm.com/ontology/upperlevel.owl?id11=Apple&id12=Monkey&dijkstraLayer1=5& id21=Apple&id22=Dog&dijkstraLayer2=3という記述によって切り出し条件が次のように指定される。
・ノード「Apple」「Monkey」、最短経路上のノードからのレイヤー数=5
・ノード「Apple」「Dog」、最短経路上のノードからのレイヤー数=3
この切り出し条件により、ノード「Apple」からノード「Monkey」までを結ぶ最短経路上の各ノードからアークを5本たどって到達できるノードまでの範囲、およびノード「Apple」からノード「Dog」までを結ぶ最短経路上の各ノードからアークを3本たどって到達できるノードまでの範囲が、サブセットとして切り出される部分となる。
【0040】
以上のようにしてサブセットに含まれるノードが特定された際、サブセット抽出部334は、当該ノードをグループノード管理テーブル337に照合する。そして、当該ノードが登録されていたならば、当該ノードが属するグループの他のノードも全てサブセットに含まれるノードとして特定する。
なお、上述した切り出し条件の指定方法を複数混在させてパラメータを記述することもできる。その場合、それぞれの指定方法で特定された切り出し範囲の和で表される範囲が、サブセットとして切り出される部分となる。
【0041】
ところで、上述した1、3の切り出し条件の指定方法では、HTTPリクエストのパラメータにおいて目標のノードからのレイヤー数が指定され、その目標のノードからアークをたどって到達するノードによりサブセットの範囲が決定される。この場合、実際にRDFモデルにおいて目標のノードからアークをたどってサブセットに含まれるノードを特定していっても良いが、ノード間距離テーブル336が作成されているならば、これを用いることにより効率良くサブセットの範囲を決定することができる。すなわち、サブセット抽出部334は、ノード間距離テーブル336を参照して、目標のノードからの距離の値がパラメータにおいて指定されたレイヤー数の値以下であるノードを検出し、検出されたノードをRDFモデル上で特定してサブセットの範囲を決定する。
【0042】
さらに、上述した2の切り出し条件の指定方法においても、ノード間距離テーブル336を利用して効率良くサブセットの範囲を決定することができる。すなわち、サブセット抽出部334は、ノード間距離テーブル336を参照して、まず目標のノードからの距離の値が1のノードから順に検出し、検出されたノード数がHTTPリクエストのパラメータにおいて指定されたノード数に達したかどうかを判断しながら、次第に目標のノードからの距離の値が大きいノードを検出していく。図14に示した例では、ノード「Apple」からアークを2本たどって到達できるノードは全てサブセットに含まれるので、ノード間距離テーブル336においてノード「Apple」に対する距離の値が2までのノードは、サブセットに含まれるノードとして直ちに特定することができる。しかし、ノード「Apple」に対する距離の値が3までのノードの総和はパラメータで指定されたノード数を越えてしまうので、サブセット抽出部334は、このノード「Apple」に対する距離の値が3であるノードに対して、RDFモデルやノード間距離テーブル336を参照して取捨選択を行い、パラメータで指定されたノード数に一致するようにノードを特定していけば良い。
【0043】
次に、本実施形態におけるオントロジサーバ100の全体的な動作の流れを説明する。
図16は、本実施形態のオントロジサーバ100の動作を説明するフローチャートである。
オントロジサーバ100のオントロジ編集部300は、図16に示すように、まずオントロジ格納部200からオントロジを読み出し(ステップ1601)、読み出したオントロジをパースしてN−Triples表記に変換する(ステップ1602)。そして、このN−Triples表記のオントロジからRDFモデルを生成する(ステップ1603)。この際、ノード間距離テーブル336およびグループノード管理テーブル337も生成しておく。
ここまでの動作は、オントロジの切り出し条件がなくても行うことが可能である。したがって、オントロジクライアント400からのHTTPリクエストの受信前に、事前動作として行っておくことができる。
【0044】
オントロジクライアント400からオントロジの取得を要求するHTTPリクエストを受信すると、次にオントロジ編集部300は、受信したHTTPリクエストのパラメータに記述された切り出し条件に基づき、ステップ1603で生成されたRDFモデルの一部を切り出す(ステップ1604)。そして、切り出した部分をN−Triples表記に変換し(ステップ1605)、さらにこれをシリアライズしてOWL文書に変換する(ステップ1606)。最後にオントロジ編集部300は、このOWL文書に変換されたオントロジのサブセットを内容とするHTTPレスポンスを生成し、HTTPリクエストを送信したオントロジクライアント400に返送する(ステップ1607)。
【0045】
上記のように、本実施形態のオントロジサーバ100は、オントロジクライアント400からのオントロジの取得要求に応じて、オントロジ全体ではなく、オントロジクライアント400が必要とする情報に該当するオントロジの一部のみを提供する。これにより、本実施形態によれば、ネットワークの負荷を軽減し、通信コストを減少させることができる。
また、オントロジクライアント400においても、自身の処理を行うために必要なオントロジの情報のみを取得して参照するため、処理に要する時間を短縮することができる。
【0046】
一方、本実施形態では、オントロジサーバ100において、OWL文書をRDFモデルに変換して一部を切り出し、切り出された部分を再度OWL文書に変換してオントロジのサブセットを作成しているため、単にオントロジ全体をオントロジクライアント400へ送信する場合に比べて、オントロジサーバ100における処理が多い。そのため、オントロジクライアント400がオントロジをダウンロードする際に要する時間が増大することとなる。
しかしながら上述した動作のように、オントロジクライアント400からHTTPリクエストを受信する前に、オントロジサーバ100が、予めOWL文書のオントロジをRDFモデルに変換しておくことにより、オントロジクライアント400がオントロジをダウンロードする際の時間の増大を最低限に抑えることができる。
ただし、この場合、OWL文書のオントロジが更新されたならば、そのたびにRDFモデルへの変換、ノード間距離テーブル336およびグループノード管理テーブル337の生成を行って、これらを常に最新の状態にしておくことが必要である。
【0047】
なお、本実施形態において、事前にOWL文書をRDFモデルに変換しておくことは必須の動作ではなく、オントロジサーバ100が高性能で変換処理を高速に行うことができる等の条件によっては、HTTPリクエストを受信後にOWL文書の読み出しおよびデータ形式の変換を行ってもかまわない。
また、本実施形態では、OWL文書のオントロジをRDFモデルに変換して、所定の切り出し条件を満たす部分を切り出すこととした。しかしながら、[0022]で述べたように、OWL文書をRDFモデルに変換するのは、オントロジ編集部300がオントロジで定義されている各語の関係を知るためと、OWL文書やN−Triples表記から切り出し条件を満たす部分を検索するよりもRDFモデルのグラフから該当部分を特定する方が簡単な作業で済むためである。したがって、処理速度が問題とならない等の条件によっては、HTTPリクエストから抽出される切り出し条件に基づいて、当該切り出し条件を満たす語およびその定義をOWL文書から直接検索したり、N−Triples表記のオントロジから検索したりすることも可能である。
【0048】
OWL文書から直接サブセットの生成を行う場合、図6に示したオントロジサーバ100のオントロジ編集部300の構成において、RDFパーサ320やRDFシリアライザ340は必須の構成要素ではない。RDFモデル管理部330は、OWL文書を走査して切り出し条件を満たす語の定義を検索することとなる。また、N−Triples表記のオントロジからの切り出しを行う場合、図7に示したオントロジサーバ100のRDFモデル管理部330の構成において、RDFモデル生成部331やN−Triples生成部335は必須の構成要素ではない。サブセット抽出部334は、N−Triples表記のオントロジを走査して切り出し条件を満たす語を検索することとなる。
【図面の簡単な説明】
【0049】
【図1】本実施形態のセマンティックウェブシステムにおけるオントロジサーバとオントロジクライアントとの関係を示す図である。
【図2】本実施形態におけるオントロジサーバおよびオントロジクライアントを実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
【図3】オントロジを記述するOWLのデータモデルを示す図である。
【図4】OWLをRDFモデルで表現した例を示す図である。
【図5】本実施形態におけるオントロジの切り出しを行う際のデータ変換の様子を示す図である。
【図6】本実施形態におけるオントロジサーバの構成を示す図である。
【図7】本実施形態のRDFモデル管理部の機能構成を示す図である。
【図8】RDFモデルをC言語で記述したデータ構造の例を示す図である。
【図9】RDFモデルの一例を示す図である。
【図10】図8に示したデータ構造を用いて、図9に示したRDFモデルを表した図である。
【図11】本実施形態のノード間距離テーブルの構成例を示す図である。
【図12】本実施形態のグループノード管理テーブルの構成例を示す図である。
【図13】本実施形態において、ノードおよびレイヤー数の指定により特定されるオントロジの切り出し範囲の例を示す図である。
【図14】本実施形態において、ノードおよびノード数の指定により特定されるオントロジの切り出し範囲の例を示す図である。
【図15】本実施形態において、複数のノードおよびそのノード間の最短経路上のノードからのレイヤー数の指定により特定されるオントロジの切り出し範囲の例を示す図である。
【図16】本実施形態のオントロジサーバの動作を説明するフローチャートである。
【図17】セマンティックウェブ技術による情報検索システムの構成例を示す図である。
【図18】エージェントがオントロジを参照する様子を示す図である。
【符号の説明】
【0050】
11…CPU(Central Processing Unit:中央処理装置)、13…メインメモリ、15…磁気ディスク装置(HDD)、100…オントロジサーバ、200…オントロジ格納部、300…オントロジ編集部、310…HTTPリクエスト解釈部、320…RDFパーサ、330…RDFモデル管理部、331…RDFモデル生成部、332…ノード間距離計算部、333…OWL整合性管理部、334…サブセット抽出部、335…N−Triples生成部、400…オントロジクライアント、410…エージェント
【特許請求の範囲】
【請求項1】
オントロジを参照するクライアントからの要求を処理するための装置において、
オントロジ記述言語で記述された前記オントロジのデータを格納したオントロジ格納部と、
前記オントロジ格納部から前記オントロジを読み出し、読み出された当該オントロジから前記クライアントの参照に必要な部分を切り出し、当該オントロジの一部を当該クライアントに送信するオントロジ編集部と
を備えることを特徴とする装置。
【請求項2】
前記オントロジ編集部は、前記クライアントからの要求に含まれる1または複数の目標の語と当該目標の語に対し前記オントロジにおいて所定の条件を満たす1または複数の語とを含む前記オントロジの部分を、当該オントロジから切り出すことを特徴とする請求項1に記載の装置。
【請求項3】
前記オントロジに含まれる複数の語のそれぞれがノードで表され、前記所定の条件が、前記目標の語に対応するノードと当該ノードからのレイヤー数により指定されることを特徴とする請求項2に記載の装置。
【請求項4】
前記目標の語が複数指定される場合、当該複数のノード間の最短経路上のノードからのレイヤー数により前記所定の条件が指定されることを特徴とする請求項3に記載の装置。
【請求項5】
前記オントロジに含まれる複数の語のそれぞれがノードで表され、前記所定の条件が、前記目標の語に対応するノードと切り出されるノードの数により指定されることを特徴とする請求項2に記載の装置。
【請求項6】
前記オントロジ編集部は、オントロジ記述言語で記述された前記オントロジを、N−Triples表記に変換し、各語の関係をたどることによって当該オントロジから切り出す部分を特定することを特徴とする請求項1に記載の装置。
【請求項7】
前記オントロジ編集部は、オントロジ記述言語で記述された前記オントロジを、当該オントロジに含まれる複数の語のそれぞれに対応するノードと当該複数の間の関係を示すアークとを有するRDFモデルに変換し、当該ノード間に張られた当該アークをたどることによって当該オントロジから切り出す部分を特定することを特徴とする請求項1に記載の装置。
【請求項8】
前記オントロジ編集部は、前記ノードのそれぞれについてノード間のアークの本数を示すノード間距離情報を管理し、当該ノード間距離情報を参照して前記オントロジから切り出す部分を特定することを特徴とする請求項7に記載の装置。
【請求項9】
前記オントロジ編集部は、オントロジ記述言語の文法に基づいて単一のグループとして扱うべき語の組を、分割することなく、前記オントロジから切り出す部分を特定することを特徴とする請求項1に記載の装置。
【請求項10】
オントロジを格納したサーバと、当該サーバにアクセスしてオントロジを参照するクライアントとを備えたコンピュータシステムにおいて、
前記クライアントは、
照会する語およびオントロジの切り出し条件を指定したリクエストを前記サーバに送信するエージェントを備え、
前記サーバは、
オントロジ記述言語で記述された前記オントロジのデータを格納したオントロジ格納部と、
前記オントロジ格納部から前記オントロジを読み出し、当該オントロジから前記リクエストで指定された語および切り出し条件を満たす部分を切り出し、前記クライアントに送信するオントロジ編集部と
を備えることを特徴とするコンピュータシステム。
【請求項11】
前記サーバの前記オントロジ編集部は、オントロジ記述言語で記述された前記オントロジを、N−Triples表記に変換し、前記リクエストで指定された語から当該オントロジに含まれる他の語の関係をたどり、前記切り出し条件を満たす前記オントロジの部分を特定することを特徴とする請求項10に記載のコンピュータシステム。
【請求項12】
前記サーバの前記オントロジ編集部は、オントロジ記述言語で記述された前記オントロジを、各語に対応するノードと各語の間の関係を示すアークとで構成されたRDFモデルに変換し、前記リクエストで指定された語に対応するノードからノード間に張られた当該アークをたどり、前記切り出し条件を満たす前記オントロジの部分を特定することを特徴とする請求項10に記載のコンピュータシステム。
【請求項13】
前記クライアントのエージェントは、前記オントロジのファイルのURLに所定の語およびオントロジの切り出し条件を指定するパラメータを付加し、当該パラメータの記述されたURLを含むHTTPリクエストを前記サーバへ送信することを特徴とする請求項10に記載のコンピュータシステム。
【請求項14】
クライアントからの要求に応じてオントロジを当該クライアントに送信するサーバのデータ処理方法であって、
前記サーバが、オントロジ記述言語で記述された前記オントロジのデータを記憶装置から読み出し、当該オントロジに定義されている複数の語の関係を調べる第1のステップと、
前記サーバが、前記クライアントの要求から目標の語およびオントロジの切り出し条件を取得し、前記オントロジに定義されている複数の語の関係に基づいて、当該オントロジから当該目標の語および切り出し条件を満たす部分を切り出す第2のステップと、
前記サーバが、切り出された前記オントロジの部分を前記クライアントに送信する第3のステップと
を含むことを特徴とする方法。
【請求項15】
前記オントロジに定義されている複数の語のそれぞれがノードで表され、前記切り出し条件が、前記目標の語に対応するノードと当該ノードからのレイヤー数により指定される、請求項14に記載の方法。
【請求項16】
前記目標の語が複数指定される場合、当該複数のノード間の最短経路上のノードからのレイヤー数により前記切り出し条件が指定される、請求項15に記載の方法。
【請求項17】
前記オントロジに定義されている複数の語のそれぞれがノードで表され、前記切り出し条件が、前記目標の語に対応するノードと切り出されるノードの数により指定される、請求項14に記載の方法。
【請求項18】
前記第1のステップでは、前記サーバが、当該オントロジをN−Triples表記または当該オントロジに定義されている複数の語のそれぞれに対応する当該複数のノードと各語の間の関係を示すアークとを有するRDFモデルに変換することにより、当該複数の語の関係を調べ、
前記第2のステップでは、前記サーバが、前記N−Triples表記のオントロジまたは前記RDFモデルから前記目標の語および切り出し条件を満たす部分を切り出し、
前記第3のステップでは、前記サーバが、切り出された前記N−Triples表記のオントロジまたは前記RDFモデルの部分をオントロジ記述言語で記述されたオントロジに変換して前記クライアントに送信することを特徴とする請求項14に記載の方法。
【請求項19】
前記第2のステップでは、オントロジ記述言語の文法に基づいて単一のグループとして扱うべき語の組を、分割することなく、前記オントロジから切り出す部分を特定することを特徴とする請求項14に記載の方法。
【請求項1】
オントロジを参照するクライアントからの要求を処理するための装置において、
オントロジ記述言語で記述された前記オントロジのデータを格納したオントロジ格納部と、
前記オントロジ格納部から前記オントロジを読み出し、読み出された当該オントロジから前記クライアントの参照に必要な部分を切り出し、当該オントロジの一部を当該クライアントに送信するオントロジ編集部と
を備えることを特徴とする装置。
【請求項2】
前記オントロジ編集部は、前記クライアントからの要求に含まれる1または複数の目標の語と当該目標の語に対し前記オントロジにおいて所定の条件を満たす1または複数の語とを含む前記オントロジの部分を、当該オントロジから切り出すことを特徴とする請求項1に記載の装置。
【請求項3】
前記オントロジに含まれる複数の語のそれぞれがノードで表され、前記所定の条件が、前記目標の語に対応するノードと当該ノードからのレイヤー数により指定されることを特徴とする請求項2に記載の装置。
【請求項4】
前記目標の語が複数指定される場合、当該複数のノード間の最短経路上のノードからのレイヤー数により前記所定の条件が指定されることを特徴とする請求項3に記載の装置。
【請求項5】
前記オントロジに含まれる複数の語のそれぞれがノードで表され、前記所定の条件が、前記目標の語に対応するノードと切り出されるノードの数により指定されることを特徴とする請求項2に記載の装置。
【請求項6】
前記オントロジ編集部は、オントロジ記述言語で記述された前記オントロジを、N−Triples表記に変換し、各語の関係をたどることによって当該オントロジから切り出す部分を特定することを特徴とする請求項1に記載の装置。
【請求項7】
前記オントロジ編集部は、オントロジ記述言語で記述された前記オントロジを、当該オントロジに含まれる複数の語のそれぞれに対応するノードと当該複数の間の関係を示すアークとを有するRDFモデルに変換し、当該ノード間に張られた当該アークをたどることによって当該オントロジから切り出す部分を特定することを特徴とする請求項1に記載の装置。
【請求項8】
前記オントロジ編集部は、前記ノードのそれぞれについてノード間のアークの本数を示すノード間距離情報を管理し、当該ノード間距離情報を参照して前記オントロジから切り出す部分を特定することを特徴とする請求項7に記載の装置。
【請求項9】
前記オントロジ編集部は、オントロジ記述言語の文法に基づいて単一のグループとして扱うべき語の組を、分割することなく、前記オントロジから切り出す部分を特定することを特徴とする請求項1に記載の装置。
【請求項10】
オントロジを格納したサーバと、当該サーバにアクセスしてオントロジを参照するクライアントとを備えたコンピュータシステムにおいて、
前記クライアントは、
照会する語およびオントロジの切り出し条件を指定したリクエストを前記サーバに送信するエージェントを備え、
前記サーバは、
オントロジ記述言語で記述された前記オントロジのデータを格納したオントロジ格納部と、
前記オントロジ格納部から前記オントロジを読み出し、当該オントロジから前記リクエストで指定された語および切り出し条件を満たす部分を切り出し、前記クライアントに送信するオントロジ編集部と
を備えることを特徴とするコンピュータシステム。
【請求項11】
前記サーバの前記オントロジ編集部は、オントロジ記述言語で記述された前記オントロジを、N−Triples表記に変換し、前記リクエストで指定された語から当該オントロジに含まれる他の語の関係をたどり、前記切り出し条件を満たす前記オントロジの部分を特定することを特徴とする請求項10に記載のコンピュータシステム。
【請求項12】
前記サーバの前記オントロジ編集部は、オントロジ記述言語で記述された前記オントロジを、各語に対応するノードと各語の間の関係を示すアークとで構成されたRDFモデルに変換し、前記リクエストで指定された語に対応するノードからノード間に張られた当該アークをたどり、前記切り出し条件を満たす前記オントロジの部分を特定することを特徴とする請求項10に記載のコンピュータシステム。
【請求項13】
前記クライアントのエージェントは、前記オントロジのファイルのURLに所定の語およびオントロジの切り出し条件を指定するパラメータを付加し、当該パラメータの記述されたURLを含むHTTPリクエストを前記サーバへ送信することを特徴とする請求項10に記載のコンピュータシステム。
【請求項14】
クライアントからの要求に応じてオントロジを当該クライアントに送信するサーバのデータ処理方法であって、
前記サーバが、オントロジ記述言語で記述された前記オントロジのデータを記憶装置から読み出し、当該オントロジに定義されている複数の語の関係を調べる第1のステップと、
前記サーバが、前記クライアントの要求から目標の語およびオントロジの切り出し条件を取得し、前記オントロジに定義されている複数の語の関係に基づいて、当該オントロジから当該目標の語および切り出し条件を満たす部分を切り出す第2のステップと、
前記サーバが、切り出された前記オントロジの部分を前記クライアントに送信する第3のステップと
を含むことを特徴とする方法。
【請求項15】
前記オントロジに定義されている複数の語のそれぞれがノードで表され、前記切り出し条件が、前記目標の語に対応するノードと当該ノードからのレイヤー数により指定される、請求項14に記載の方法。
【請求項16】
前記目標の語が複数指定される場合、当該複数のノード間の最短経路上のノードからのレイヤー数により前記切り出し条件が指定される、請求項15に記載の方法。
【請求項17】
前記オントロジに定義されている複数の語のそれぞれがノードで表され、前記切り出し条件が、前記目標の語に対応するノードと切り出されるノードの数により指定される、請求項14に記載の方法。
【請求項18】
前記第1のステップでは、前記サーバが、当該オントロジをN−Triples表記または当該オントロジに定義されている複数の語のそれぞれに対応する当該複数のノードと各語の間の関係を示すアークとを有するRDFモデルに変換することにより、当該複数の語の関係を調べ、
前記第2のステップでは、前記サーバが、前記N−Triples表記のオントロジまたは前記RDFモデルから前記目標の語および切り出し条件を満たす部分を切り出し、
前記第3のステップでは、前記サーバが、切り出された前記N−Triples表記のオントロジまたは前記RDFモデルの部分をオントロジ記述言語で記述されたオントロジに変換して前記クライアントに送信することを特徴とする請求項14に記載の方法。
【請求項19】
前記第2のステップでは、オントロジ記述言語の文法に基づいて単一のグループとして扱うべき語の組を、分割することなく、前記オントロジから切り出す部分を特定することを特徴とする請求項14に記載の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2006−11739(P2006−11739A)
【公開日】平成18年1月12日(2006.1.12)
【国際特許分類】
【出願番号】特願2004−186779(P2004−186779)
【出願日】平成16年6月24日(2004.6.24)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
【復代理人】
【識別番号】100118201
【弁理士】
【氏名又は名称】千田 武
【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
【Fターム(参考)】
【公開日】平成18年1月12日(2006.1.12)
【国際特許分類】
【出願日】平成16年6月24日(2004.6.24)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
【復代理人】
【識別番号】100118201
【弁理士】
【氏名又は名称】千田 武
【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
【Fターム(参考)】
[ Back to top ]