JP2004118722A - サービス情報提供装置、サービス情報提供方法及び記録媒体 - Google Patents
サービス情報提供装置、サービス情報提供方法及び記録媒体 Download PDFInfo
- Publication number
- JP2004118722A JP2004118722A JP2002283974A JP2002283974A JP2004118722A JP 2004118722 A JP2004118722 A JP 2004118722A JP 2002283974 A JP2002283974 A JP 2002283974A JP 2002283974 A JP2002283974 A JP 2002283974A JP 2004118722 A JP2004118722 A JP 2004118722A
- Authority
- JP
- Japan
- Prior art keywords
- service
- ontology
- similarity
- information
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】ネットワーク上に存在するサービスプログラムが提供するサービスの内容を記述したサービス記述を有して、サービスの情報を提供するサービス情報提供装置は、サービス記述は、サービスプログラムにおける、入出力の型、制約条件内の要素、事前条件内の要素、及び事後条件内の要素の少なくとも一つに対して、オントロジーが指定されている。
【選択図】 図4
Description
【発明の属する技術分野】
本発明は、サービス情報提供装置、サービス情報提供方法及び記録媒体に関し、特に、ネットワーク上に存在するサービスプログラムが提供するサービスの情報を提供するサービス情報提供装置、サービス情報提供方法及び記録媒体に関する。
【0002】
【従来の技術】
従来より、インターネット上のいわゆるWebページを検索するための検索エンジンは、ドキュメントであるWebページ内の言葉をキーとして検索を行う。ドキュメントでありドキュメント自身が検索キーの言葉を有するWebページと違って、Webサービスは、実態はサービスを提供するサービスプログラムであるため、プログラム自身には検索のための情報は含まれていない。そのため、Webサービス登録時にプログラムの内容を説明するために情報項目、サービス名、サービスドメイン、入出力項目、入出力に対する各種制約、その他コメントなどを、Webサービスを提供している企業等が登録する。そして、検索エンジンは、その登録された情報項目等に対して、検索を行う。
【0003】
その際、Webサービスを提供するプログラムの内容を説明する情報は、人間が話す言葉の特性とプログラム言語の特性の両方を併せ持つ。プログラム言語においては、誰が記述したプログラムを誰が解釈しても意味が異なることはなく、プログラムとその意味はほぼ一意に決まる。一方、人間の言葉は、異なる言葉が同じ意味を持つことが多い。例えば、Webサービスがどのような入力を必要とし、どのような結果を返す、すなわち出力するのかを示す入出力の型は、プログラミングの型定義の文法に従うのに対して、そこで使われる型の名前は人間が話す言葉で表現される。
【0004】
そして、従来のWebサービス検索では、プログラムの名前やコメント等の、もともと人間の言葉で書かれた情報項目に関しては、オントロジー技術を利用して、類義語の判断が行なわれていた(例えば、非特許文献1及び2参照。)。
【0005】
【非特許文献1】
カティア・シカラ、セス・ウイドフ、マチアス・クルシュ、ジャンジュオ・ル・ラークス(Katia Sycara, Seth Widoff, Matthias Klusch and Jianguo Lu. LARKS)著、「サイバースペースにおける異種ソフトウエアエージェント間の動的マッチメイキング(Dynamic Matchmaking Among Heterogeneous Software Agents in Cyberspace.)、 自律型エージェントとマルチエージェントシステム(Autonomous Agents and Multi−Agent Systems)、第5巻(Vol. 5)、P.173−203, 2002
【0006】
【非特許文献2】
日経インターネットテクノロジ、「サービスの検索条件を拡張」、2002年5月号、p.46
【0007】
【発明が解決しようとする課題】
しかし、従来のWebサービス検索では、プログラムの名前やコメント等の、もともと人間の言葉で書かれた情報項目に関しては、オントロジー技術を利用して、類義語の判断を行ない、Webサービス提供者の使用し登録した言葉の類義語の範囲まで検索していたが、入出力の型定義等のプログラム言語に係る情報項目に関しては、類似の判断をするものはなかった。
【0008】
【課題を解決するための手段】
そこで、本発明は、プログラム言語に関わる情報項目の中に現れる用語に関しても、類義語の判断等を行うオントロジー技術を適用するための仕組みを有するサービス情報提供装置を提供することを目的とする。
【0009】
本発明のサービス情報提供装置は、ネットワーク上に存在するサービスプログラムが提供するサービスの内容を記述したサービス記述を有して、前記サービスの情報を提供するサービス情報提供装置であって、前記サービス記述は、前記サービスプログラムにおける、入出力の型、制約条件内の要素、事前条件内の要素、及び事後条件内の要素の少なくとも一つに対して、オントロジーが指定されている。
【0010】
本発明のサービス情報提供方法は、ネットワーク上に存在するサービスプログラムが提供するサービスの内容を記述したサービス記述を有して、前記サービスの情報を提供するサービス情報提供方法であって、前記サービス記述は、前記サービスプログラムにおける、入出力の型、制約条件内の要素、事前条件内の要素、及び事後条件内の要素の少なくとも一つに対して、オントロジーが指定されている。
【0011】
本発明のコンピュータ読み取り可能な記録媒体は、ネットワーク上に存在するサービスプログラムが提供するサービスの内容を記述したサービス記述のデータを有して、前記サービス記述のデータは、前記サービスプログラムにおける、入出力の型、制約条件内の要素、事前条件内の要素、及び事後条件内の要素の少なくとも一つに対して、オントロジーが指定されているデータが記録されている。
【0012】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
【0013】
まず図1に基づき、本実施の形態に係わるシステムの構成を説明する。図1は、本実施の形態に係わるWebサービス検索システムの構成を示す構成図である。
【0014】
1は、サービス情報提供装置としてのウエブサーバ装置(以下、ウエブサーバという)であり、2は、ユーザが操作するパーソナルコンピュータ(以下、PCという)である。ウエブサーバ1及びPC2はインターネット3に接続されている。図1において、PC2は、一つしか図示していないが、複数接続され、各ユーザが自己のPC2からウエブサーバ1にアクセスすることによってWebサービス検索システムを利用することができる。ウエブサーバ1は、ウエブサービスマッチメイカ(ウエブサービス検索エンジン)である。ウエブサーバ1には、オントロジー辞書データをストアするメモリ装置5と、後述するWebサービスに関するサービス記述データをストアするメモリ装置6が接続されている。メモリ装置5にストアされたオントロジー辞書データは、ここでは、複数のオントロジー辞書のデータを含む。オントロジー辞書データは、ユーザ要求に含まれる述語、Webサービス等を記述するサービス記述に含まれる述語を関連付けて体系化したデータベースである。具体的には、各オントロジーでは、複数のノードがツリー形式で関連付けられ、各ノードにおいて述語が定義されている。
【0015】
4は、Webサービス用プログラムを有するサービス提供装置である。4−1から4−n(nは整数)からなるn台のサービス提供装置も、ウエブサーバ1および複数のPC2と同様に、インターネット3上に分散して存在し、インターネット3に接続されている。
【0016】
Webサービスは、インターネットを利用してアクセス可能なサービスプログラムであるアプリケーションプログラムである。(従って、以下、Webサービスは、アプリケーションプログラムともいう。)人間あるいはコンピュータプログラムであるユーザは、インターネットを介して、そのアプリケーションプログラムを呼び出すことによって、そのアプリケーションプログラムを実行し、実行結果を利用することができる。
【0017】
サービス検索装置としてのウエブサーバ1は、後述するように、ユーザであるPC2からのWebサービスの検索要求を受信すると、その要求を満たすWebサービスを検索し、検索結果としてサービス提供装置4のそのWebサービスに関する情報を、PC2へ送信する。Webサービスに関する情報としては、Webサービスの呼び出しに必要なパラメータ、Webサービスの機能のデータ等である。PC2からの要求は、人間がPC2を操作してPC2からウエブサーバ1へ送信されるか、あるいはPC2において実行されるコンピュータプログラムによって生成されてウエブサーバ1へ送信される。
【0018】
なお、以下は、アプリケーションプログラムが、インターネットを利用したWebサービスである例を用いて説明するが、インターネットでない通信回線を利用してアクセス可能なアプリケーションプログラムであってもよい。
【0019】
ウエブサーバ1には、インターネット4上にどのようなWebサービスがあるかというWebサービスに関するサービス記述データが、メモリ装置6に含まれるレジストリというデータベースに予め登録されている。ユーザからの検索要求に基づいて、ウエブサーバ1は、その登録、すなわちストアされたサービス記述データを検索して、Webサービスに関する情報、例えばそのユーザが利用したいWebサービスの有無、その呼び出し方法等の情報の提供をユーザのPC2へ送信する。
【0020】
図2は、図1のウエブサーバ1のサービス検索機能部の構成を示す機能ブロック図である。サービス情報提供装置としてのウエブサーバ1は、サービス検索機能部11を含む。サービス検索機能部11は、入出力通信機能部12と、サービス記述解析機能部13と、サービス類似性判断機能部14を有する。入出力通信機能部12は、インターネット3を介してPC2等とのデータ通信を行う処理部である。サービス記述解析機能部13は、検索要求に含まれるサービス記述のデータを解析し、かつレジストリにストアされたWebサービスに関するサービス記述のデータの解析も実行する処理部である。サービス類似性判断機能部14は、後述する各種プリチェックと、オントロジーを利用した類似性判断と、スコア処理を行なう。
【0021】
図3は、図2のサービス記述解析機能部12の構成を示す機能ブロック図である。サービス記述解析機能部12は、サービス記述解析機能部21と、入出力型情報解析機能部22と、制約条件解析機能部23と、事前事後条件解析機能部24と、属性情報解析機能部25と、オントロジー情報解析機能部26と、オントロジー情報取得機能部27と、オントロジー情報格納機能部28と、内部形式変換機能部29とを含む。
【0022】
サービス記述解析機能部21は、ユーザからの検索要求あるいはレジストリにストアされたWebサービスのサービス記述データを、入出力型情報、制約条件、事前事後条件及び属性情報に分けるための解析処理部である。サービス記述解析機能部21で分けられた入出力型情報、制約条件、事前事後条件及び属性情報のデータは、それぞれ解析する入出力型情報解析機能部22、制約条件解析機能部23、事前事後条件解析機能部24及び属性情報解析機能部25に供給され、解析される。
【0023】
入出力型情報解析機能部22、制約条件解析機能部23、事前事後条件解析機能部24及び属性情報解析機能部25において解析されたそれぞれの情報に含まれるオントロジーに関連する情報が、オントロジー情報解析機能部26に供給され、オントロジー情報、すなわちツリーとノードのデータが抽出される。そして、オントロジー情報取得機能部27は、オントロジー情報解析機能部26において抽出されたオントロジー情報を、レジストリのオントロジー辞書データから取得する。オントロジー情報格納機能部28は、オントロジー情報取得機能部27において取得されたオントロジー情報を、メモリ上にストア、すなわちキャッシュする。内部形式変換機能部29は、外部のオントロジーの表現を、レジストリに登録されたオントロジーの表現形式に変換する処理部である。従って、内部形式変換機能部29は、既にストアされている内部のオントロジー情報については、内部形式に変換しない。
【0024】
図4は、図2のサービス類似性判断機能部14の構成を示す機能ブロック図である。サービス類似性判断機能部14は、ネームスペースプリチェック機能部31と、テキストプリチェック機能部32と、引数プリチェック機能部33と、制約数プリチェック機能部34と、型類似性判断機能部35と、制約条件類似性判断機能部36と、事前事後条件類似性判断機能部37と、属性類似性判断機能部38と、スコア機能部39と、オントロジー類似性判断機能部40とを含む。図4の各部の処理内容は後述する。
【0025】
図5は、型類似性判断機能部35の機能を示す機能ブロック図である。型類似性判断機能部35は、型定義情報再帰分解機能部41と、プログラム言語依存型整合性判断機能部42と、オントロジー類似性判断機能部43とを含む。型定義情報再帰分解機能部41は、型定義情報を再帰的に分解する処理を行なう処理部である。プログラム言語依存型整合性判断機能部42は、型定義がオントロジーで指定されていない場合、すなわちプログラム言語に依存して定義された型の整合性を判断する処理を行う処理部である。オントロジー類似性判断機能部43は、オントロジーで指定された型の類似性を判断する処理を行なう処理部である。従って、入出力の型の情報は、型類似性判断機能部35において型の整合性と類似性が再帰的に実行されて判断される。
【0026】
図6は、制約条件類似性判断機能部36の機能を示す機能ブロック図である。制約条件類似性判断機能部36は、制約条件定義再帰分解機能部51と、論理的包摂関係判断機能部52と、オントロジー類似性判断機能部53とを含む。制約条件定義再帰分解機能部51は、制約条件定義情報を再帰的に分解する処理を行なう処理部である。論理的包摂関係判断機能部52は、制約条件の定義がオントロジーで指定されていない場合、すなわちプログラム言語に依存して定義された制約条件の包摂関係を判断する処理を行う処理部である。オントロジー類似性判断機能部53は、オントロジーで指定された制約条件の類似性を判断する処理を行なう処理部である。従って、制約条件の情報は、制約条件類似性判断機能部36において制約条件の包摂関係と類似性が再帰的に実行されて判断される。
【0027】
まず、サービス記述の具体例について説明する。
【0028】
図7は、あるWebサービスのサービス記述の例を示す図である。例えば、ネジを製造し販売している会社が、ユーザからの見積要求に対して、要求するネジの価格と納期をネットワーク上で回答するサービスを、サービス提供装置4−1によってWebサービスとして提供している場合の例が、示されている。そして、そのWebサービスを多くのユーザに利用して貰うために、その会社は、Webサービス検索装置であるウエブサーバ1のメモリ装置6のレジストリにそのWebサービスの内容を記述したデータ、すなわちサービス記述データを登録する。登録されたサービス記述の例を、図7は示している。なお、Webサービスの検索条件も図7に示すような記述と同様に記述され、ユーザから検索要求データとして生成されて、ウエブサーバ1へ送信される。
【0029】
図7は、ネジの見積を行うWebサービスであって、入力としてネジのタイプと個数を与えると、価格と納期を出力する見積もりサービスのサービス記述の例を示している。図7に示されたサービス記述は、そのWebサービスに関する入力、出力、入力制約及び出力制約の項目に関してのサービス記述部である、入力記述部61、出力記述部62、入力制約記述部63、出力制約記述部64及び事前条件記述部65を含む例である。なお、これらの以外の項目についての記述部を含んでいてもよい。なお、以下の例では、オントロジーは、ツリーとノードで指定されており、「オントロジーツリー名#ノード名」という形式で記述されている。
【0030】
図7において、「Parts Quoting Service Description:」は、Webサービスの名称を示している。入力記述部61中の「screw@{Parts#Screw,Buhin#neji}, num@Unit#Dozen」は、入力項目に関してオントロジーを記述、すなわち入力項目がオントロジーによって指定されていることを示す。具体的には、「screw(ネジ)」という入力項目は、ツリーである「Parts」というオントロジー辞書の中の「Screw」のノードの型か、別なツリーである「Buhin」というオントロジー辞書の中の「neji」のノードの型を使用することを示す。言い換えると、「screw(ネジ)」という入力項目のデータの型は、「Parts」というオントロジー辞書の中の「Screw」のノードの型か、「Buhin」というオントロジー辞書の中の「neji」のノードの型と同じである、ということが記述されている。すなわち、2つの引数が夫々別のオントロジーによって指定されている。
【0031】
このように、1つのサービスに関する記述中の個々の変数等の要素に対して、別々のオントロジーツリーを指定できるようになっている。以下の出力記述部62等においても同様である。
【0032】
さらに、ここの例では、「screw@{Parts#Screw,Buhin#neji}」のように、1要素「screw」に対して複数のオントロジー指定ができることを意味しており、参照しようとしたオントロジーが有効でなかった場合、例えば、ネットワークトラブルやアクセス権の問題、obsolete等の場合に、それに代わるオントロジーを付けることを許すようになっている。
【0033】
また、「num(発注数)」という入力項目は、さらに別のツリーである「Unit」というオントロジー辞書の中の「Dozen」のノードの型と同じである、ということが記述されている。すなわち、「num(発注数)」という入力項目は、オントロジーによって指定されている。
【0034】
メモリ装置5にストアされたオントロジー辞書データは、複数のノードをツリー形式で関連付け、各ノードにおいて述語が定義され、かつ各ノードのデータの型も併せて定義されている。従って、入力記述部61には、入力項目のデータの型が、どのオントロジーのどのノードの型なのかが記述される。
【0035】
同様に、図7において、出力記述部62中の「lead_times@Time#Days, price@Currency#Yen」は、出力項目に関してオントロジーを記述、すなわち出力項目がオントロジーによって指定されていることを示す。具体的には、「lead_times(リードタイム)」という出力項目は、「Time」というオントロジー辞書の中の「Days」のノードの型を使用し、「price(価格)」という出力項目は、「Currency」というオントロジー辞書の中の「Yen」のノードの型を使用することを示す。
【0036】
つぎに、入力制約記述部63について説明する。入力制約記述部63中の「Input_Constraints@Rule#Predicate」は、デフォルトのオントロジーを指定したものである。すなわち、検索要求中の入力制約の項目が、入力制約記述部63の中の「manufacturerOf(screw, ABC@Company#Manufacturer)」で指定されたオントロジーにないが、デフォルトのオントロジーに存在する場合は、デフォルトのオントロジーのノードとして処理が行われる。
【0037】
また、入力制約記述部63中の「manufacturerOf(screw, ABC@Company#Manufacturer)」は、入力制約項目に関してオントロジーを記述、すなわち入力制約項目がオントロジーによって指定されていることを示す。具体的には、「manufacturerOf」という述語名は、2つの引数、すなわち第1引数「screw」と第2引数「ABC@Company#Manufacturer」からなり、第1引数の製造メーカは第2引数であることを意味する。そして、第2引数は、「ABC」という項目は、「Company」というオントロジー辞書の中の「Manufacturer」のノードの型を使用することを示す。すなわち、第2引数がオントロジーによって指定されている。
【0038】
同様に、入力制約記述部63中の「more@Math#More(num,100)」も、入力制約項目に関してオントロジーを記述、すなわち入力制約項目がオントロジーによって指定されていることを示す。具体的には、「more@Math#More」という述語は、2つの引数、すなわち第1引数「num」と第2引数「100」からなり、「num(個数)」は、「100」個以上であることを意味する。そして、「more@Math#More」という述語は、「Math」というオントロジー辞書の中の「More」のノードの型を使用することを示す。すなわち、述語がオントロジーによって指定されている。
【0039】
つぎに、出力制約記述部64について説明する。出力制約記述部64中の「Output_Constraint@Rule#Implication」も入力制約記述部63と同様に、デフォルトのオントロジーを指定したものである。すなわち、検索要求中の出力制約の項目が、出力制約記述部64の中の「imply(less@Math#More(num,1000),less@Math#More(lead_times,7))」で指定されたオントロジーにないが、デフォルトのオントロジーに存在する場合は、デフォルトのオントロジーのノードとして処理が行われる。
【0040】
なお、以上の説明では、制約条件についてデフォルトオントロジーを指定しているが、入出力又は事前事後条件にデフォルトオントロジーを指定してもよい。
【0041】
また、図7において、出力制約記述部64中の「imply(less@Math#More(num,1000),less@Math#More(lead_times,7))」は、出力制約項目に関してオントロジーを記述、すなわち入力制約項目がオントロジーによって指定されていることを示す。具体的には、「imply」という述語は、2つの引数、すなわち第1引数「less@Math#More(num,1000)」と第2引数「less@Math#More(lead_times,7)」からなり、第1引数の条件のときは、第2引数の条件になることを意味する。
【0042】
ここで、第1引数と第2引数において、「less@Math#More」という述語において、オントロジー記述が用いられている。less@Math#More」という述語は、「Math」というオントロジー辞書の中の「More」のノードの型を使用することを示す。従って、出力制約として、個数が1000個以上であれば、納期は7日以上かかることが定義されている。すなわち、引数における述語がオントロジーによって指定されている。
【0043】
また、図7において、事前条件記述部65中の「not(ordered(screw))」は、ネジが未だ発注されていないことを示している。事後条件は存在していない。
【0044】
以上のように、サービス記述には、Webサービスのプログラムに対する入力として、ネジのタイプと個数を与えると、価格と納期を出力するWebサービスにおいて、制約として、ネジの製造者がABC会社であること、個数は100個以上であること、個数が1000個以上であれば納期は7日以上かかること、が定義されている。そして、事前条件としては、ネジがまだ発注されておらず、事後条件も存在しないことがサービス記述に記述されている。
【0045】
そのサービス記述のデータが、メモリ装置6のレジストリにストアされ、ユーザからのWebサービス検索要求を受けると、ウエブサーバ1はレジストリにストアされた複数のWebサービスについてのWebサービス記述データを検索要求データに基づいて検索して、Webサービス検索要求に合致するWebサービスに関する情報を得て、検索要求を送信したユーザへその情報を送信する。
【0046】
このとき、Webサービス記述のデータが、オントロジーによって指定されているので、例えば、項目について、データの型がオントロジー辞書によって定義されていれば、項目名が違っていても、データの型が一致する項目、あるいは類似する項目の型が検索でヒットすることになる。
【0047】
以上の例では、オントロジーは、ツリーとノードで指定されているが、オントロジーの指定は他の方法を用いてもよい。
【0048】
なお、サービス記述を、図7のような記述に代えて、図8に示すような記述にしてもよい。図8は、Webサービスの入出力、制約条件、事前事後条件等のそれぞれの参照先を記述したWebサービス記述の例を示す。
【0049】
図8に示すように、入力項目の記述は、「Input」としてURL(Uniform Resource Locator)「http://www. ABC.co.jp/parts_quote/input.xml」が記述され、出力項目の記述は、「Output」として、URL「http://www. ABC.co.jp/parts_quote/output.java」が記述され、入力制約項目の記述は、「Input_Constraints」として、URL「http://www. ABC.co.jp/parts_quote/in_const.prolog」が記述され、出力制約項目の記述は、「Output_Constraint」としてURL「http://www. ABC.co.jp/parts_quote/out_const.lisp」が記述され、事前条件項目の記述は、「Precondition」としてURL「http://www. ABC.co.jp/parts_quote/precond.txt」が記述され、事後条件の記述はここでは記載されていない。すなわち、サービス記述として、図7の各項目61から65に対応して、各項目の参照先71から75を記述し、参照先において、各項目がオントロジーによって定義されている。図9は、入力項目の参照先71における記述の例を示す図である。なお、図9に示すように、入力項目は、XML形式で記述された例である。ここでは、XML形式のタグについて、オントロジーを用いて要素が記述されている。
【0050】
このように、入出力に関する記述形式と、制約条件に関する記述形式と、事前事後条件に関する記述形式と、サービス属性に関する記述形式と、オントロジーの記述形式をそれぞれ独立させて、特定の言語に依存しないサービスの記述を行うようにしてもよい。
【0051】
次に、サービス間の類似性の判断方法について例を用いて説明する。
【0052】
例えば、オントロジーツリーが
として、定義されているとする。ここでは、「>」は親子関係を示す。carの親はAutoで、ノード間の距離を示すノード数は1であるとする。同様に、carの子はsedanで、ノード数は1であり、carの兄弟はSUVで、ノード数は2であり、SUVと4WDは同一であり、ノード数は0である。そして、オントロジーツリーのノード間のノード数(距離)を類似度と定義する。
【0053】
この機能を利用するユーザは、入出力の型、制約条件、事前事後条件の比較の有無、比較する場合はオントロジーツリーの検索範囲を、上(親)方向、下(子)方向、同一の親または祖先を有する横(兄弟)方向、同一関係、あるいはそれら一部または全部の組合わせの中から選択できる。また、オントロジーツリーを走査する距離をノード数または検索にかかる時間でユーザが指定することもできる。
【0054】
そこで、以下のような2つのサービスService 1とService 2があり、2サービス記述間の類似性をオントロジーに基づいて判定する例を説明する。
【0055】
Service 1は、
Input: auto@Vehicle#Auto
Output: price@Currency#Yen
であり、
Service 2は、
Input: seden@Vehicle#Sedan
Output: price@Currency#Yen
であるとき、ユーザが、2つのサービスを、(1)入力と出力に関して比較する、(2)入力に関しては下(子)方向で距離3で、(3)出力に関しては同一、として検索範囲を設定した場合、Auto とsedan の距離は2であるため、Service2はService1と類似性があると判断される。このように、ユーザは、オントロジーツリーにおいて類似と判断させたい範囲を設定することができる。
【0056】
なお、ユーザは、入出力、制約条件、事前事後条件に加えて、前述したサービスの属性比較においても、比較の有無、比較する場合のツリーの走査方向と距離または時間を指定することができる。
【0057】
ここで、時間の指定とは、類似性評価に掛かる時間を指定することである。類似性判断基準として、ノード間の距離の他に、評価時間を指定することによって、評価に要する時間、すなわち評価演算の時間が長くなると類似性が少ないと判断するようにしてもよい。また、最大評価時間を指定し、最大評価時間を超えた場合は、類似性が0(ゼロ)とみなすようにしてもよい。
【0058】
次に、サービス間の類似性の判定方法の詳細について、型類似性判断機能、制約条件類似性判断機能、事前事後条件類似性判断機能、属性類似性判断機能のぞれぞれについて説明する。
【0059】
まず、図4の型類似性判断機能部35におけるオントロジーによる型類似性判断機能について説明する。
【0060】
2つのサービス間において入出力の型を比較する際に、図5の型定義情報再帰分解機能部41において型定義を再帰的に分解し、数学的な型判断とオントロジーの類似性判断を再帰的に実行することができる。
【0061】
例えば、「CarOrder 」という項目について、「struct CarOrder{int number;Vehicle#Car type;}として型が定義されているとする。すなわち、ある項目が、2つの変数からなり、それぞれ型を有していることが定義されている。ここで、「Vehicle#Car」はVehicleオントロジーのCarノードを示し、類似の型を持つサービスも類似判断の対象とする。
【0062】
このような場合、その例として、以下のような2つのサービスService 3とService 4があるとする。
【0063】
Service 3は、
Input: order@CarSeller#CarOrder
Output: price@Currency#Yen
であり、Service 4は、
Input: order@Business#Order
Output: price@Currency#Yen
である。
【0064】
そして、Service 3のノード「CarOrder」とService 4のノード「Order」が、それぞれのオントロジーにおいて数学的な型とオントロジー指定が混在した一種の構造体として、次のように定義されているとする。
【0065】
ノード「CarOrder」は
であり、ノード「Order」は、
であると定義されている。すなわち、ノード「CarOrder」は、int(整数)型のnumと、Vehicle#Carの2つの項目で定義され、ノード「Order」は、float(浮動小数点)型のquantityと、Product#Objectの2つの項目で定義されている。
【0066】
オントロジーツリー上でCarSeller#CarOrderとBusiness#Orderのノードを比較すると、類似性がないと判断されてしまうが、ここでは、単にオントロジーツリー上でCarSeller#CarOrderとBusiness#Orderのノードを比較するだけではなく、両者の定義を参照し、それぞれを分解しながら、数学的な意味とオントロジー上の言葉の意味の比較を再帰的に行う。
【0067】
なお、ここでは、それぞれのオントロジー指定部分のCarSeller#CarOrderとBusiness#Orderが比較されるが、オントロジーツリーを跨いだ両者の関係(subClassOf, sameAsなどの親子関係、同一関係)は定義されていないものとする。
【0068】
まず、CarSeller#CarOrderとBusiness#Orderのそれぞれの定義を参照し、まずint(整数)型のnumとfloat(浮動小数点)型のquantityが比較される。数学的には、floatはintにキャスト(型変換)可能であることから、両者の比較は真となる。
【0069】
次にCarSeller#CarOrderとBusiness#Orderのそれぞれの定義中の、Vehicle#CarとProduct#Objectが比較される。ここで、Carの親であるAuto(前述のAutoオントロジー参照)は、Product#Objectの子孫だと定義されているものとする。そのため、CarとObjectの比較も真となる(ユーザによってツリー走査は親方向、距離無制限と設定されているものとする)。
【0070】
その結果、Service3とService4は類似性があると判断される。また、このような構造体定義の中に再度、構造体が指定されている場合は、この処理を再帰的に比較することとなる。
【0071】
次に、図4の制約条件類似性判断機能部36におけるオントロジーによる制約条件類似性判断機能について説明する。
【0072】
2つのサービスにおける制約条件を比較する際に、図6の制約条件定義再帰分解機能部51において制約条件を再帰的に分解し、制約条件の論理的な包摂関係判断とオントロジー類似性判断を再帰的に実行することができる。
【0073】
最初の例として、2つのサービスにおける制約条件が、それぞれ次の2つ、すなわち制約1と制約2であったとする。
【0074】
制約1: greater(screw,100)
制約2: larger(neji,10)
制約1は、screwは100より多いを意味し、制約2は、nejiが10より多いを意味する。ここで、greaterとlagerがオントロジーを利用した判断の結果により類似し、かつ、screwとnejiがオントロジーを利用した判断の結果によりで類似とされ、かつ、論理解釈に従って100>10であることを加味して、制約1は制約2を満たし、検索要求が制約2の場合に、制約1を持つサービスは検索マッチ、すなわち要求を満たすとする。言い換えれば、制約1の「screwが100より多い」は、制約2の「nejiが10より多い」に含まれるので、検索要求が制約2の場合は、制約1は要求を満たす制約条件である。
【0075】
また、別の例として、2つのサービスにおける入出力と制約条件が、それぞれ次の2つ、Service 5とService 6であったとする。
【0076】
Service 5は、
Input: screw@Parts#Screw
Output: price@Currency#USD
Output_Constraint: smaller(price,10)
であり、Service 6は、
Input: neji@Buhin#Neji
Output: nedan@Currency#Yen
Output_Constraint: less(nedan,2000)
である。
【0077】
ここでも、制約条件Output_Constraintの類似性を判断する際に、図6のオントロジー類似性判断機能部53と論理的包摂関係判断機能部52とにおいて、それぞれオントロジーの類似性(言葉自体の意味の関係)の判定と、論理的な包摂関係(論理表現に基づいて論理的な計算によって求められる関係)の判定を再帰的に行うことができる。
【0078】
例では、まずsmallerとlessがオントロジー的に等価であることを判断される。次に、その論理的な意味が「より小さい」であることからService 5のOutput_Constraintの第1引数priceとService 6のそれの第1引数nedanが言葉の意味において比較可能であり(オントロジー的な比較を行った結果として)、かつ、Service 5のOutput_Constraintの第2引数10がService 6のそれの第2引数2000より小さければ(論理的な比較を行った結果として)、Service 5はService 6に包摂されると判断される。言い換えると、Service 5を満たすものは常にService 5を満たすと判断される。
【0079】
なお、ここでCurrency#USDとCurrency#Yenは、exchangebleと定義されているとすると、priceとnedanは比較可能であることが分かる。次に、USDからYenへのexchange rule(オントロジー定義に付与されている)に従って、例えば10ドルが1200円に直され(1ドルが120円とした場合)、1200円は2000円より小さいことから、論理的な意味「より小さい」が満たされていると判断できる。このようにして、Service 5とService 5は類似性があると判断される。
【0080】
つぎに、図4の事前事後条件類似性判断機能部37におけるオントロジーに事前事後条件類似性判断機能について説明する。
【0081】
ここでは、2つのサービスにおける制約条件を比較する際に、述語のオントロジーを参照し、引数の順序を無視して比較するか、順序どおりに比較するかを切り替えることができるようにする例について説明する。
【0082】
例えば、以下のような2つのサービス、Service 7とService 8があったとする。Service 7は、
Input: price@Currency#USD
Output: screw@Parts#Screw
Postcondition@Rule#predicate: or(have(screw),not(have(screw)))
であり、Service 8は、:
Input: price@Currency#USD
Output: screw@Parts#Screw
Postcondition@Rule#predicate: or(not(have(screw)),have(screw))
であるとする。
【0083】
ここで、類似性を判断する場合に、orのオントロジー定義を参照し、引数の順序は同一性に関係しないことを判断し(関係するかどうかはオントロジー定義に付与されている)、Service 7とService 8は同一であると分かる。
【0084】
次に、図4の属性類似性判断機能部38の属性類似性判断機能について説明する。
【0085】
上述したオントロジーを用いたサービス記述を行うことによって、Webサービスの入出力、制約条件、事前事後条件に加えて、コメントのような属性を定義し、その属性をオントロジーを指定するようにして記述して、サービス記述に含めることができる。これによれば、サービス記述に適した属性をオントロジーで記述できる。
【0086】
例えば、属性の要素として、サービスのカテゴリー(個人向け、企業向け、業種など)を、「Category: manufacturer@Business#Manufacturer」として記述したり、サービスの提供範囲(日本、東京、浜松町など)を「Geometry: jp#Country#Japan」として記述したり、サービスのランク(信用情報など)を「Rating: 8」として記述したり、サービスの提供者を、「Provider: XYZ@Company#Manufacturer」として記述したり、サービスの提供方法(オンライン、電話、郵送など)を「Media: online@Media#Online」として記述したりすることができる。いずれも、それぞれの属性が「@」以下のオントロジーとノードによって記述されているので、Webサービス記述ならではの属性についても、Webサービス検索要求に対してオントロジー辞書を用いた検索を行うことができる。
【0087】
次に、サービス類似性判定方法の高速化方法について説明する。
【0088】
サービス間の類似性を比較する処理を高速化するため、オントロジー比較を行う前に、可能性の低いものを排除する前処理(プリチェック)を行う種々の方法について説明する。
【0089】
最初の方法は、図4のネームスペースプリチェック機能部31において、オントロジー名を比較して類似性が低いものをオントロジー比較の対象から排除するという方法である。すなわち、サービス間の類似性を比較する場合、ネームスペースプリチェック機能では、各ノードの属するオントロジーツリー名を参照し、比較するオントロジーツリー名が異なっている場合は、高い確率で類似性がないと判断し、実際のオントロジーのノード比較を行わないことを指定できるようにしたものである。
【0090】
なお、以下に説明する7つの例では、第1のServiceが要求されるサービス、第2のServiceが提供されているサービスであり、両者はマッチしないことを示している。
【0091】
第1のServiceであるService 9は、
Input: car@Vehicle#Car
であり、
第2のServiceであるService 10は、
Input: screw@Parts#Screw
である。従って、両者のオントロジー名を比較した結果、オントロジー名が異なっているため、類似性が無いと判断される。
【0092】
第2の方法は、図4のテキストプリチェック機能部32において、テキストを比較して類似性が低いものをオントロジー比較の対象から排除するという方法である。すなわち、サービス間の類似性を比較する場合、テキストプリチェック機能では、サービス記述につけられた自然言語によるコメント、説明文などのテキストを参照し、テキストの量が十分であり、かつ、TFIDF(Term Frequency / Inverse Document Frequency)による類似性が一定のレベル以下であると判断された場合は、高い確率で類似性がないと判断し、入出力や制約条件のオントロジー比較を行わないことを指定できる。
【0093】
第1のServiceであるService 11は、
Comment: Car Selling
Input: car@Vehicle#Car
であり、第2のServiceであるService 12は、
Comment: Parts Quoting
Input: screw@Parts#Screw
であるとする。この場合、両者のコメント等のテキストを比較した結果、一定の条件の下、テキストが予め決められた閾値以上類似していないときは、類似性が無いと判断され、オントロジーを利用した判断を行わない。
【0094】
第3の方法は、図4の引数プリチェック機能部33において、引数を比較して類似性が低いものをオントロジー比較の対象から排除するという方法である。すなわち、サービス間の類似性を比較する場合、引数プリチェック機能では、サービスが入力として必要とする情報(引数)の個数が要求されるサービスのそれより多い場合は、実際のオントロジーの比較を行わないことを指定できる。
【0095】
例えば、あるサービスfunc(x,y,z) は引数の数が3であり、引数の数が2の要求func(x,y)には、zがないので、そのサービスは要求に対応することができない。この様な場合は、オントロジーを利用した判断を行わない。
他の例として、例えば、第1のServiceであるService 13は、
Input: car@Vehicle#Car
であり、第2のServiceであるService 14は、
Input: car@Vehicle#Car, num@Unit#dozen
であるとする。この場合も、引数の数が違うので、オントロジーを利用した判断を行わない。
【0096】
さらに、サービスが出力する情報(返り値)の個数が要求されるサービスのそれより少ない場合は、実際のオントロジーの比較を行わないことを指定できる。例えば、価格を返すサービスは,価格と納期が欲しいという要求には対応不可として、オントロジーを利用した判断を行わない。
【0097】
さらに他の例として、例えば、第1のServiceであるService 15は、
Output: price@Currency#Yen, lead_times@Time#Days
であり、第2のServiceであるService 16は、
Output: price@Currency#Yen
であるとする。この場合も、引数の数が違うので、オントロジーを利用した判断を行わない。
【0098】
第4の方法は、図4の制約数プリチェック機能部34において、制約数を比較して類似性が低いものをオントロジー比較の対象から排除するという方法である。すなわち、サービス間の類似性を比較する場合、制約数プリチェック機能では、サービスの制約の個数が要求されるサービスの制約の個数と比べて多いか、少ないかに応じて、実際のオントロジーの比較を行わないことを指定できる。
【0099】
最初の例として、第1のServiceであるService 17は、
であり、第2のServiceであるService 18は、
であるとする。すなわち、サービス間の類似性を比較する場合、制約数プリチェック機能では、サービスの入力制約の個数が要求されるサービスのそれより多いので、実際のオントロジーの比較は行わなれない。
【0100】
他の例として、例えば、第1のServiceであるService 19は、
であり、第2のServiceであるService 20は、
であるとする。このような場合、サービスの出力制約の個数が要求されるサービスのそれより少ないので、実際のオントロジーの比較は行われない。
【0101】
第5の方法は、オントロジー情報の解析、取得、格納機能において、サービス間の類似性を比較する処理を高速化するため、オントロジー記述がWeb上に存在する場合、オントロジーツリーをプログラミング言語のオブジェクトツリーに変換してローカルディスクまたはメモリ上に保持(キャッシュ)することができるようにしたものである。
【0102】
以下の例では、Service 21を取得し解析した時点で、Vehicleオントロジーツリーは内部形式に変換され保持されるため、Service 22を解析する段階では再度取得を行わない。
【0103】
例えば、第1のServiceであるService 21は、
Input: car@Vehicle#Car
であり、第2のServiceであるService 22は、
Input: sedan@Vehicle#Sedan
であるとする。この場合、Service 21を取得し解析した時点で、Vehicleオントロジーツリーは内部形式に変換され保持されるため、その後は、一定間隔ごとにオントロジーツリーファイルの更新日時を参照し、更新されていれば再度取得するようにする。また、明示的にオントロジーツリーの更新を通知するメッセージまたはイベントを受け取った場合も再度取得する。
【0104】
次に、図4のスコア機能部39におけるサービス類似性判定結果の評価方法について説明する。具体的には、このスコア機能では、サービス類似性判定の結果表示に関して、入出力、制約条件、事前事後条件、サービス属性に対して、ユーザが設定した重要度に応じて重み付けし、総合的な類似度を点数付けして結果をソートすることができるようにしたものである。
【0105】
例えば、以下のような3つのサービスService 23、Service 24、Service 25があった場合、Service 23は、
Input price@Currency#USD
Output car@Vehicle#Car
であり、Service 24は、
Input nedan@Currency#Yen
Output car@Vehicle#Car
であり、Service 25は、
Input price@Currency#USD
Output auto@Vehicle#Auto
であるとする。ここで、Currency#USDとCurrency#Yenの距離は1、Vehicle#AutoとVehicle#Carの距離も1であるため、Service 23とService 24の類似度は、Service 23とService 25の類似度と等しいと考えることができる。しかし、ユーザが入力としての通貨の単位を重視するならば、Inputの重要度を高くすることで、Service 23とService 25の類似度をService 23とService 24の類似度よりも高くすることができる。また、その逆も可能である。
【0106】
次に、以上の説明したサービス間の類似性判定を実行するための処理の流れについて説明する。
【0107】
まず、型類似性判断機能部35の処理内容について説明する。図10は、型類似性判断機能の処理の流れの例を示すフローチャートである。
【0108】
初めに、判断対象の型がオントロジー指定の型定義か、プログラム言語依存型定義かを判断する(ステップ(以下、Sと略す。)1)。オントロジー指定の型定義の場合、処理はS2へ移行し、指定オントロジーが外部のものか否かが判断される(S2)。S2でYESならば、そのオントロジーがキャッシュに存在するか否かが判断される(S3)。S2とS3でNOの場合は、処理はS4へ進む。
【0109】
S4では、オントロジーのデータを読み込み、内部表現に変換してキャッシュに登録する(S4)。次に、類似判断基準の指定があるか否かが判断される(S5)。S5でYESならば、S6の処理へ進み、類似判断基準を設定し(S6)、次に類似性を評価し、オントロジーノード間の距離と評価計算時間のデータを記録すなわちストアする(S7)。S5においてNOの場合は、S7の処理へ移行する。
【0110】
記録されたデータに基づいて類似性が0(ゼロ)であるか否かを判断する(S8)。S8でNOの場合は、そのまま処理は終了する。S8でYESの場合は、型が構造を持つか否かを判断し(S9)、S9でYESならば、型の各要素について、本手段を再帰的に適用する(S10)。S9でNOの場合は、そのまま処理は終了する。
【0111】
S1で、判断対象がプログラム言語依存型定義であると判断されると、S11の処理へ移行し、プログラム的変換可能性をチェックし、チェック結果データを記録、すなわちストアし(S11)、S12の処理へ移行する。S12では、型変換可能性があるか否かが判断され、S12でYESならば、そのまま処理は終了する。S12でNOならば、S9の処理へ移行する。
【0112】
以上のようにして型類似性の判断の処理が実行される。
【0113】
次に、制約条件類似性判断機能部36の処理内容について説明する。図11は、制約条件類似性判断機能の処理の流れの例を示すフローチャートである。
【0114】
初めに、判断対象の制約がオントロジー指定の制約定義か、論理制約定義かを判断する(S21)。オントロジー指定の制約定義の場合、処理はS22へ移行し、指定オントロジーが外部のものか否かが判断される(S22)。S22でYESならば、そのオントロジーがキャッシュに存在するか否かが判断される(S23)。S22とS23でNOの場合は、処理はS24へ進む。
【0115】
S24では、オントロジーのデータを読み込み、内部表現に変換してキャッシュに登録する(S24)。次に、類似判断基準の指定があるか否かが判断される(S25)。S25でYESならば、S26の処理へ進み、類似判断基準を設定し(S26)、次に類似性を評価し、オントロジーノード間の距離と評価計算時間のデータを記録すなわちストアする(S27)。S25においてNOの場合は、S27の処理へ移行する。
【0116】
記録されたデータに基づいて類似性が0(ゼロ)であるか否かを判断する(S28)。S28でNOの場合は、そのまま処理は終了する。S28でYESの場合は、制約が構造を持つか否かを判断し(S29)、S29でYESならば、制約の各要素について、本手段を再帰的に適用する(S30)。S29でNOの場合は、そのまま処理は終了する。
【0117】
S21で、判断対象が論理制約定義であると判断されると、S31の処理へ移行し、制約定義のデフォルトオントロジー内に同一名称のルールがあるか否かが判断される(31)。S31でYESならば、処理はS22へ移行する。S31でNOの場合は、論理的包括可能性をチェックし、チェック結果データを記録、すなわちストアし(S32)、S33の処理へ移行する。S33では、包括可能性があるか否かが判断され、S33でYESならば、そのまま処理は終了する。S33でNOならば、S29の処理へ移行する。
【0118】
以上のようにして制約条件類似性の判断の処理が実行される。
【0119】
次に、事前事後条件類似性判断機能部37の処理内容について説明する。図12は、事前事後条件類似性判断機能の処理の流れの例を示すフローチャートである。
【0120】
初めに、判断対象の事前事後条件がオントロジー指定の事前事後条件定義か、論理事前事後条件定義かを判断する(S41)。オントロジー指定の事前事後条件定義の場合、処理はS42へ移行し、指定オントロジーが外部のものか否かが判断される(S42)。S42でYESならば、そのオントロジーがキャッシュに存在するか否かが判断される(S43)。S42とS43でNOの場合は、処理はS44へ進む。
【0121】
S44では、オントロジーのデータを読み込み、内部表現に変換してキャッシュに登録する(S44)。次に、類似判断基準の指定があるか否かが判断される(S45)。S45でYESならば、S46の処理へ進み、類似判断基準を設定し(S46)、次に類似性を評価し、オントロジーノード間の距離と評価計算時間のデータを記録すなわちストアする(S47)。S45においてNOの場合は、S47の処理へ移行する。
【0122】
記録されたデータに基づいて類似性が0(ゼロ)であるか否かを判断する(S48)。S28でNOの場合は、そのまま処理は終了する。S28でYESの場合は、事前事後条件が構造を持つか否かを判断し(S49)、S49でYESならば、事前事後条件の各要素について、本手段を再帰的に適用する(S50)。S49でNOの場合は、そのまま処理は終了する。
【0123】
S41で、判断対象が論理事前事後条件定義であると判断されると、S51の処理へ移行し、事前事後条件定義のデフォルトオントロジー内に同一名称のルールがあるか否かが判断される(51)。S51でYESならば、処理はS42へ移行する。S51でNOの場合は、論理的包括可能性をチェックし、チェック結果データを記録、すなわちストアし(S52)、S53の処理へ移行する。S53では、包括可能性があるか否かが判断され、S53でYESならば、そのまま処理は終了する。S53でNOならば、S49の処理へ移行する。
【0124】
以上のようにして事前事後条件類似性の判断の処理が実行される。
【0125】
次に、属性類似性判断機能部38の処理内容について説明する。図13は、属性類似性判断機能の処理の流れの例を示すフローチャートである。
【0126】
初めに、定義されている属性名称の一つに着目、すなわち選択し(S61)、指定オントロジーが外部のものか否かが判断される(S62)。S62でYESならば、そのオントロジーがキャッシュに存在するか否かが判断される(S63)。S62とS63でNOの場合は、処理はS64へ進む。
【0127】
S64では、オントロジーのデータを読み込み、内部表現に変換してキャッシュに登録する(S64)。次に、類似判断基準の指定があるか否かが判断される(S65)。S65でYESならば、S66の処理へ進み、類似判断基準を設定し(S66)、次に類似性を評価し、オントロジーノード間の距離と評価計算時間のデータを記録すなわちストアする(S67)。S65においてNOの場合は、S67の処理へ移行する。そして、定義されている属性全てについてチェックしたか否かが判断され(S68)、YESならば処理は終了し、NOであれば、未処理の属性にも同様の処理を行うべく、S61の処理へ移行する。
【0128】
以上のようにして属性類似性の判断の処理が実行される。
【0129】
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウエアやソフトウエア・ルーチンに1対1には対応しない。従って、本明細書では、以下、実施の形態の各機能を有する仮想的回路ブロック(部)を想定して実施の形態を説明する。また、本実施の形態における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【0130】
以上説明したように、本実施の形態によれば、サービス記述に、入出力の型、制約条件内の要素、事前条件内の要素、又は事後条件内の要素に対して、オントロジーを指定できるので、入出力の指定や、入出力に関する制約条件、事前条件、又は事後条件などを伴う特定機能を呼び出すためのインターフェースについて、異なる2サービスが類似しているかどうかを判断することができる。
【0131】
本実施の形態によれば、オントロジーを、従来のように文書理解における単語間の距離の測定に使うだけでなく、Webサービス記述において、型の判断、条件の論理判断、引数の順序判断を行うために、数学的な型に含ませてより複雑な構造体を作ったり、制約条件に含ませて条件記述に拡張性を持たせたり、関係述語が引数の順序を重視するかどうかの定義に含ませて使用することができる。
【0132】
なお、以上説明した動作を実行するプログラムは、フロッピー(登録商標)ディスク、CD−ROM等の可搬媒体や、ハードディスク等の記憶装置等に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本発明のサービス情報提供装置を実現することができる。
【0133】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【0134】
【発明の効果】
以上説明したように、本発明によれば、プログラム言語に関わる情報項目の中に現れる用語に関しても、類義語の判断などオントロジー技術を適用するための仕組みを有するサービス情報提供装置を実現することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係わるWebサービス検索システムの構成を示す構成図である。
【図2】本実施の形態に係わるウエブサーバのサービス検索機能部の構成を示す機能ブロック図である。
【図3】本実施の形態に係わるサービス記述解析機能部の構成を示す機能ブロック図である。
【図4】本実施の形態に係わるサービス類似性判断機能部の構成を示す機能ブロック図である。
【図5】本実施の形態に係わる型類似性判断機能部の機能を示す機能ブロック図である。
【図6】本実施の形態に係わる制約条件類似性判断機能部の機能を示す機能ブロック図である。
【図7】Webサービスのサービス記述の例を示す図である。
【図8】Webサービスの入出力、制約条件、事前事後条件等のそれぞれの参照先を記述したWebサービス記述の例を示す図である。
【図9】入力項目の参照先における記述の例を示す図である。
【図10】型類似性判断機能の処理の流れの例を示すフローチャートである。
【図11】制約条件類似性判断機能の処理の流れの例を示すフローチャートである。
【図12】事前事後条件類似性判断機能の処理の流れの例を示すフローチャートである。
【図13】属性類似性判断機能の処理の流れの例を示すフローチャートである。
【符号の説明】
1・・・ウエブサーバ
2・・・PC
3・・・インターネット
4・・・サービス提供装置
5、6・・・メモリ装置
Claims (29)
- ネットワーク上に存在するサービスプログラムが提供するサービスの内容を記述したサービス記述を有して、前記サービスの情報を提供するサービス情報提供装置であって、
前記サービス記述は、前記サービスプログラムにおける、入出力の型、制約条件内の要素、事前条件内の要素、及び事後条件内の要素の少なくとも一つに対して、オントロジーが指定されていることを特徴とするサービス情報提供装置。 - 前記オントロジーの指定は、オントロジーツリー名とノード名の組合わせによって行われることを特徴とする請求項1に記載のサービス情報提供装置。
- 前記サービス記述内の個々の要素に対して別々のオントロジー指定がされることを特徴とする請求項1又は請求項2に記載のサービス情報提供装置。
- 前記サービス記述内の一つの要素に対して複数のオントロジー指定がされることを特徴とする請求項1、請求項2又は請求項3に記載のサービス情報提供装置。
- 前記入出力の型、前記制約条件及び前記事前事後条件のうち少なくとも一つにデフォルトのオントロジー指定がされることを特徴とする請求項1から請求項4のいずれかに記載のサービス情報提供装置。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記入出力の型、前記制約条件及び前記事前事後条件の少なくとも一つについての比較において、前記オントロジーツリーの検索範囲を、親方向、子方向、同一の親若しくは祖先を有する兄弟方向及び同一関係の少なくとも一つを選択し、かつ距離をノード数又は検索時間で指定するようにしたことを特徴とする請求項1から請求項5のいずれかに記載のサービス情報提供装置。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記オントロジツリー内のノードを検索する前に、前記ノードの属するオントロジーツリー名が異なっている場合は、前記類似性の判定を行わないように指定できることを特徴とする請求項2から請求項6のいずれかに記載のサービス情報提供装置。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記オントロジーツリー内のノードを検索する前に、前記サービス記述につけられたテキストの量が予め決められた閾値よりも多いと判断された場合は、前記類似性の判定を行わないように指定できることを特徴とする請求項2から請求項7のいずれかに記載のサービス情報提供装置。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記オントロジーツリー内のノードを検索する前に、前記サービスが入力として必要とする情報の個数が要求される前記サービスの情報の個数より多い場合は、前記類似性の判定を行わないように指定できることを特徴とする請求項2から請求項8のいずれかに記載のサービス情報提供装置。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記オントロジーツリー内のノードを検索する前に、前記サービスが出力する情報の個数が要求される前記サービスの情報の個数より少ない場合は、前記類似性の判定を行わないように指定できることを特徴とする請求項2から請求項9のいずれかに記載のサービス情報提供装置。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記オントロジーツリー内のノードを検索する前に、前記サービスの前記制約条件のうち入力制約の個数が要求される前記サービスの前記制約条件のうち入力制約の個数より多いときは、前記類似性の判定を行わないように指定できることを特徴とする請求項2から請求項10のいずれかに記載のサービス情報提供装置。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記オントロジーツリー内のノードを検索する前に、前記サービスの前記制約条件のうち出力制約の個数が要求される前記サービスの前記制約条件のうち出力制約の個数より少ないときは、前記類似性の判定を行わないように指定できることを特徴とする請求項2から請求項11のいずれかに記載のサービス情報提供装置。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、2つの前記サービスにおける前記入出力の型を比較するとき、型定義を再帰的に分解して、数学的な型判断手段と前記オントロジー類似性を判断するオントロジー類似性判断手段とが再帰的に実行されることを特徴とする請求項1から請求項12のいずれかに記載のサービス情報提供装置。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、2つの前記サービスにおける前記制約条件を比較するとき、前記制約条件を再帰的に分解して、前記制約条件の論理的な包摂関係判定手段と前記オントロジー類似性を判断するオントロジー類似性判断手段とが再帰的に実行されることを特徴とする請求項1から請求項13のいずれかに記載のサービス情報提供装置。
- 前記サービス記述は、前記サービスの属性である前記サービスのカテゴリー、前記サービスの提供範囲、前記サービスのランク、前記サービスの提供者、前記サービスの提供方法のいずれかのデータを含み、前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供することを特徴とする請求項1から請求項14のいずれかに記載のサービス情報提供装置。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記入出力、前記制約条件、前記事前事後条件及び前記属性に対して、重要度に応じた重み付けをして、前記類似性の判定し、前記判定の結果をソートして出力することを特徴とする請求項15に記載のサービス情報提供装置。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記2つのサービスにおける前記制約条件を比較するときに、引数の順序を無視して比較するか、順序どおりに比較するかを切り替える述語の前記オントロジーを参照して、前記比較が行われることを特徴とする請求項1から請求項16のいずれかに記載のサービス情報提供装置。
- 前記オントロジーの記述データがネットワーク上に存在する場合は、前記オントロジーのデータをプログラミング言語のオブジェクトツリーに変換して、ローカルディスクまたはメモリ上に保持することを特徴とする請求項1から請求項17のいずれかに記載のサービス情報提供装置。
- さらに、前記オントロジーのデータが、前記ネットワーク上のデータ更新日時を参照して更新されていなければ前記ローカルディスクまたは前記メモリを使用し,更新されていれば再度前記ネットワークを介して取得することを特徴とする請求項18に記載のサービス情報提供装置。
- 前記サービス記述において、前記入出力に関する記述形式と、前記制約条件に関する記述形式と、前記事前事後条件に関する記述形式と、前記オントロジーの記述形式をそれぞれ独立した特定の言語に依存しない形式で記述されていることを特徴とする請求項1に記載のサービス情報提供装置。
- ネットワーク上に存在するサービスプログラムが提供するサービスの内容を記述したサービス記述を有して、前記サービスの情報を提供するサービス情報提供方法であって、
前記サービス記述は、前記サービスプログラムにおける、入出力の型、制約条件内の要素、事前条件内の要素、及び事後条件内の要素の少なくとも一つに対して、オントロジーが指定されていることを特徴とするサービス情報提供方法。 - 前記オントロジーの指定は、オントロジーツリー名とノード名の組合わせによって行われることを特徴とする請求項21に記載のサービス情報提供方法。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記オントロジーのツリー内のノードを検索する前に、前記ノードの属するオントロジーツリー名称が異なっている場合は、前記類似性の判定を行わないように指定できることを特徴とする請求項22に記載のサービス情報提供方法。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記オントロジーツリー内のノードを検索する前に、前記サービス記述につけられたテキストの量が予め決められた閾値よりも多く、かつ前記テキストの類似性が予め決められた閾値よりも低いと判断された場合は、前記類似性の判定を行わないように指定できることを特徴とする請求項22又は請求項23に記載のサービス情報提供方法。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記オントロジーツリー内のノードを検索する前に、前記サービスが入力として必要とする情報の個数が要求される前記サービスの情報の個数より多い場合は、前記類似性の判定を行わないように指定できることを特徴とする請求項22、請求項23又は請求項24に記載のサービス情報提供方法。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記オントロジーツリー内のノードを検索する前に、前記サービスが出力する情報の個数が要求される前記サービスの情報の個数より少ない場合は、前記類似性の判定を行わないように指定できることを特徴とする請求項22から請求項25のいずれかに記載のサービス情報提供方法。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記オントロジーツリー内のノードを検索する前に、前記サービスの前記制約条件のうち入力制約の個数が要求される前記サービスの前記制約条件のうち入力制約の個数より多いときは、前記類似性の判定を行わないように指定できることを特徴とする請求項22から請求項26のいずれかに記載のサービス情報提供方法。
- 前記オントロジーに基づいて2つの前記サービス記述間の類似性を判定して、前記サービスの情報を提供する場合に、前記オントロジーツリー内のノードを検索する前に、前記サービスの前記制約条件のうち出力制約の個数が要求される前記サービスの前記制約条件のうち出力制約の個数より少ないときは、前記類似性の判定を行わないように指定できることを特徴とする請求項22から請求項27のいずれかに記載のサービス情報提供方法。
- ネットワーク上に存在するサービスプログラムが提供するサービスの内容を記述したサービス記述のデータを有して、
前記サービス記述のデータは、前記サービスプログラムにおける、入出力の型、制約条件内の要素、事前条件内の要素、及び事後条件内の要素の少なくとも一つに対して、オントロジーが指定されているデータが記録されたコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002283974A JP2004118722A (ja) | 2002-09-27 | 2002-09-27 | サービス情報提供装置、サービス情報提供方法及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002283974A JP2004118722A (ja) | 2002-09-27 | 2002-09-27 | サービス情報提供装置、サービス情報提供方法及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004118722A true JP2004118722A (ja) | 2004-04-15 |
Family
ID=32277683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002283974A Pending JP2004118722A (ja) | 2002-09-27 | 2002-09-27 | サービス情報提供装置、サービス情報提供方法及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004118722A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013140767A1 (ja) * | 2012-03-23 | 2013-09-26 | 日本電気株式会社 | コンテキスト処理装置、情報処理装置、コンテキスト処理方法、および、コンピュータ・プログラム |
JP2014225092A (ja) * | 2013-05-15 | 2014-12-04 | キヤノン株式会社 | 情報処理装置、その制御方法、プログラム |
-
2002
- 2002-09-27 JP JP2002283974A patent/JP2004118722A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013140767A1 (ja) * | 2012-03-23 | 2013-09-26 | 日本電気株式会社 | コンテキスト処理装置、情報処理装置、コンテキスト処理方法、および、コンピュータ・プログラム |
JP2014225092A (ja) * | 2013-05-15 | 2014-12-04 | キヤノン株式会社 | 情報処理装置、その制御方法、プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Elgazzar et al. | Clustering wsdl documents to bootstrap the discovery of web services | |
US10705796B1 (en) | Methods, systems, and computer program product for implementing real-time or near real-time classification of digital data | |
US7191185B2 (en) | Systems and methods for facilitating access to documents via an entitlement rule | |
Medjahed et al. | A multilevel composability model for semantic web services | |
Sirin et al. | Semi-automatic composition of web services using semantic descriptions | |
US8014997B2 (en) | Method of search content enhancement | |
US20070203869A1 (en) | Adaptive semantic platform architecture | |
US20090210411A1 (en) | Information Retrieving System | |
US20050131872A1 (en) | Query recognizer | |
US20020065857A1 (en) | System and method for analysis and clustering of documents for search engine | |
US20040163043A1 (en) | System method and computer program product for obtaining structured data from text | |
US20020024532A1 (en) | Dynamic personalization method of creating personalized user profiles for searching a database of information | |
US20080301092A1 (en) | Geocoding using information retrieval | |
JP2006525601A (ja) | 概念ネットワーク | |
JP2001509293A (ja) | 情報検索 | |
JP2007500903A (ja) | 拡張検索クエリを有するユーザインターフェースを提供するシステム | |
US6963863B1 (en) | Network query and matching system and method | |
Abbattista et al. | Improving the usability of an e-commerce web site through personalization | |
US20040243575A1 (en) | Information searching system | |
Fensel et al. | What is wrong with Web services Discovery | |
Kim et al. | Agent based intelligent search framework for product information using ontology mapping | |
Ben Njima et al. | Development of a mobile web services discovery and composition model | |
JP2004118722A (ja) | サービス情報提供装置、サービス情報提供方法及び記録媒体 | |
Vaddi et al. | Webservice specification and discovery | |
Chen et al. | A web service matching algorithm based on semantic similarity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060829 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070313 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070514 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070731 |