セマンティック Web サービスによるサービス検索支援に関する研究
2008MI048 久田 真寛
指導教員

1 はじめにサービス指向アーキテクチャ（以下，SOA）と分散システムとしての Web サービス技術が，ビジネスへ柔軟に対応するために注目を集めている．SOA の目標として，サービス利用者は公開されたサービスを動的に検索・結合・実行することがある．セマンティック Web
サービス [5] では，機械が理解可能な意味をサービスに付加し，高度な，あるいは自動的なサービス検索・結合・実行を目指している．D. Martin らの研究 [1] では，オントロジ言語を用いることで，サービスの詳細な入出力情報を用いた意味的な検索を行なう．
D. Martin らの研究の問題点として，何を行なうサービスなのかという情報をサービスの意味として記述できていないという点がある．小出誠二らによると OWL-Sのようにオントロジ言語を用いた入出力の記述では，サービスの意味を機械に理解させるという点で役に立たないと述べられている [4]．同様に，入出力情報から人間がサービスの意味を理解することも困難であり，検索者の意図するサービスを検索することは難しい．以上のことから，何を行なうサービスなのかという情報を用いたサービスの検索手法を提案する必要がある．また，何を行なうサービスなのかという情報は，検索のキーにも用いられることから，人間が見ることで直感的に理解可能にする必要がある．
本研究の目的は，サービスの意味情報としてビジネスプロセスモデル (以下，BPM) を定義し，検索に用いることでサービスの検索支援を行なうことである．サービ
ス検索の際には検索のキーとして，入出力情報とビジネスプロセスの特徴をアクティビティ図として記述して入力する．検索結果として，入力したアクティビティ図に類似した BPM を視覚化することで，検索者はサービスが適切であるかを直感的に判断可能となる．
本研究では，サービス同士の関係や，サービスとアクティビティの対応関係を BPM として定義し，サービスの意味とする．定義した BPM を視覚化することで，ビジネスプロセス内のサービス同士の関係からサービスの行なう内容の理解が可能となる．また，BPM をデータモデルとして定義する．定義したデータモデルをサービス検索に用いることで，検索者の意図に類似したビジネスプロセスを検索可能となる．
BPM からサービスの行なう内容を判別可能であるかを確認するために，複数のビジネスプロセスを事例として検証を行なう．また，同様の事例から，検索者の意図に類似するビジネスプロセスを検索可能であることを検証する．

2008MI270 山本 幸法

張漢明
本研究の結果として，サービスの意味情報を BPM として定義し，検索支援を行なった．検索に BPM を用いて視覚化することで，何を行なうサービスなのかという情報を用いた検索手法を提案することができた．

2 背景技術と関連研究
セマンティック Web サービスについて説明する．
セマンティック Web サービス
セマンティック Web サービスとは，サービスに機械が理解可能な意味情報を付与することで，意味的なサービス検索を可能にする技術である．

2.1

2.2 OWL-S(Web Ontology Language for Service)
OWL-S とは，OWL(Web Ontology Language)[3] を用いてセマンティック Web サービスを実現する枠組として D. Martin らに研究されている技術である [5]．
OWL によって記述されている主な情報はサービスの入出力情報である．
OWL-S の問題点として，何を行なうサービスなのかという情報をサービスの意味として記述しきれていないという点が挙げられる．OWL による入出力記述では，同じデータを扱うサービスの判別が困難であるという理由から，検索者の意図するサービスかを判断する情報として不十分である．以上のことから，何を行なうサービスなのかという情報を用いたサービスの検索手法を提案する必要がある．また，何を行なうサービスなのかという情報は，検索のキーにも用いられることから，人間が見ることで直感的に理解可能にする必要がある．

3 BPM の定義
サービスの意味を表現するモデルとして BPM を定義する．定義する際には，含まれるサービスが何を行なうのかという情報を考慮する．
3.1 ビジネスプロセスの特徴抽出
既 存 の BPM か ら ビ ジ ネ ス プ ロ セ ス の 特 徴 を 抽 出する．既存の BPM として，BPMN(Business ProcessModeling Notation) が挙げられる．BPMN とは，ビジネスプロセスの視覚的な設計に用いられるフローチャー
ト形式の言語である [2]．BPMN を参考に，ビジネスプロセスの特徴を抽出した．抽出したビジネスプロセスの特徴を以下に列挙し，それぞれの特徴について説明する．

• アクティビティの階層構造
1 つのアクティビティが複数のサブアクティビティで構成されていることを表す．階層構造を用いることで処理の流れを理解しやすくなる．
• アクティビティの実行順序

ビジネスプロセス内で行なわれる処理の順序（プロセス）を表す．
• アクティビティの動作結果動作の結果による分岐などから，アクティビティの実行順を表現する．
サービスの理解に必要な情報サービスを理解するために新しく BPM に必要となる情報として以下の 3 点が挙げられる．それぞれの情報について説明する．

3.2

作成したモデルでは，アクションと振る舞い呼び出しアクションを用いてアクティビティの階層構造を記述した．プリミティブなアクティビティにはノートを用いてサービスを対応付け，ノートにサービスの情報を記述した．ユーザの入力の記述にはオブジェクトノードを用いた．
3.4 想定する検索手順作成した BPM をサービス検索に用いた際の検索手順を説明する．検索手順を図 3 と以下に示す．

• アクティビティとサービスの対応関係各アクティビティがどのサービスを用いて実現されているかを表す．
• サービスの詳細
サービスの名前や入出力情報，ID を記述する．
• ユーザの入力ユーザの入力情報を記述する．
上述した情報が提案する BPM に必要であると考えた．サービスの詳細や対応関係の情報を追加することで，ビジネスプロセス内でのサービス同士の関係が明確になり，サービスの行なう内容を理解しやすくなると考える．また，ビジネスプロセスが必要としているユーザの入力情報は，ビジネスプロセスの特徴であると考えられ，ビジネスプロセスの理解に役立つと考えられる．
3.3 作成した BPM
BPMN から抽出した特徴と，考察したサービスを理解するために必要となる情報から，アクティビティ図を用いて BPM を作成する．BPM の作成には，電車検索
ビジネスプロセスの事例を用いる．作成した BPM を図1，図 2 に示す．

図1

図2

電車検索 BPM

経路検索アクティビティのサブアクティビティ

図3想定する検索手順

1. ユーザは，オントロジによる入出力情報とビジネスプロセスの特徴 (アクティビティ図) を検索のキーとして入力する

2. オントロジによる類似したサービスの検索とそのサービスを含む検索者の意図に類似したビジネスプロセスの検索を行なう
3. 検索結果として BPM を視覚化する
4. 検索者は視覚化された BPM からサービスの行なう内容を理解し適切なサービスを選択する
上記の手順でサービス検索を行なうことで，入出力やサービスが含まれるビジネスプロセスの特徴から検索結果を絞り込む．検索結果として，ビジネスプロセスモデルを視覚化することで，検索者はサービス同士の関係から適切なサービスを選択可能となる．
アクティビティ図を検索に用いる際には，機械が処理可能なデータモデルに変換する必要がある．変換処理はユーザ側のアプリケーションによって行なわれ，図 4 と以下の箇条書きで示す手順で検索が行なわれる．以下に示した図の番号と手順の番号は対応付いている．

図4

検索手順の詳細1. サービス情報・入出力情報・アクティビティ図を入力する
2. 既存のセマンティック Web サービスによるサービス検索を行なう
3. 該当したサービスのデータモデルを BPM を取得する
4. ユーザ側のアプリケーションでユーザが入力したアクティビティ図をデータモデルに変換し，取得したデータモデルと比較する
5. 類似していると判断したデータモデルに対応する
BPM を視覚化するノードの集合をブロックとして定義した．また，サブアクティビティを含むアクティビティは，アクティビティ1 つでブロックとして定義する．
ブロックを定義することで，アクティビティ図の部分的な一致による検索が可能となり，類似したアクティビティ図を検索可能になると考える．
4.2 データモデルの定義定義したブロックを用いて BPM を検索する際に用いるデータモデルを定義する．データモデルの定義には木構造を用いる．定義したデータモデルを図 6 に示す．

ユーザが入力したアクティビティ図のデータモデルへの変換と，データモデルを用いた類似した BPM の検索はユーザ側のアプリケーションで行なわれると考える．上記のように，既存のセマンティック Web サービスによる検索を行なった後に，データモデルを用いて検索結果を絞りこみ，ユーザの意図するサービスを検索する．

4 検索に用いるデータモデルの定義
ユーザが入力するアクティビティ図に類似した BPMを検索するために，アクティビティ図を複数のブロックに分割して定義し，データモデルとして定義する．定義したブロック同士を比較することで，ユーザが入力したアクティビティ図に類似した BPM を検索する．
4.1 類似したアクティビティ図の検索類似したアクティビティ図を検索する方法を提案する．アクティビティ図を複数のブロックとして定義し，ブロック単位で類似しているかを比較することで，類似した BPM を検索する．
4.1.1 ノードの類似性
ブロック単位で類似しているかを判断するために，ノードの類似性について考える．ノードには種類があり，同じ種類のノードを比較する．類似した BPM の検索ではアクションノードを比較し，同じ単語が含まれるノードも類似したノードとして扱う．
4.1.2 比較に用いるブロックの定義
比較に用いるブロックを定義する．定義したブロックの例を図 5 に示す．

図6

電車検索ビジネスプロセスのデータモデル

BPM のアクションを木構造で記述し，ビジネスプロセス内のブロックを走査することで，類似したアクティビティ図を検索する．ブロックを定義する際には，ブロックそれぞれにも名前を付ける．ブロックに含まれるアクティビティが親アクティビティの場合は，ブロックに親アクティビティの名前を付け，属性として含んでいるアクティビティ名を記述する．ブロックに複数のアクティビティを含む場合には，そのブロックが何を行なっているのかを表す名前を含んでいるアクティビティを参考にして記述する．また，根ノードにはビジネスプロセスノードを定義し，ビジネスプロセスの名前や，ビジネスプロセス全体でユーザが入力している情報を記述する．
ブロック名や，ブロックに含まれるアクティビティ名からブロックが一致するかを検索し，複数のブロックが一致する類似したアクティビティ図を検索する．

5 事例検証図5

定義したブロックの例

図 5 の破線で囲まれている部分をブロックとして定義する．ブロックを定義する際には，制御フローグラフやコンパイラで用いられる基本ブロックの定義を参考にした．基本ブロックの定義から，途中で分岐などがない事例から BPM を作成し，類似したサービスを判別可能であるかを確認する．また，定義した検索基準を用いてビジネスプロセスを検索可能であるかを確認する．
5.1 BPM の検証
3 章で用いた電車検索ビジネスプロセスと，電車の切符予約ビジネスプロセスは互いに料金検索サービスを含んでいる．電車の切符予約の事例をもとに作成した
BPM を図 7，図 8 に示す．
類似した異なるサービスを BPM から判別可能かを確認する．2 つのビジネスプロセスに含まれる運賃計算サービスはサービス名や入出力に同じデータを含んでいる．電車検索ビジネスプロセス内の運賃計算サービス

6.1 BPM の表現に UML を用いたことの妥当性
BPM の作成には UML のアクティビティ図を用いた．
UML は一般的に用いられている記法であり，モデルを理解するための特別な知識を必要としない．BPMN で

図7

図8

電車の切符予約 BPM

切符予約アクティビティのサブアクティビティ

は，あらかじめ特定された 1 つの経路の運賃を計算して出力するサービスであることがわかる．切符予約ビジネ
スプロセス内の運賃計算サービスでは，事前に経路の特定を行なっていない．複数の経路が存在する場合，入力された駅間の経路すべてに対して運賃を計算して出力していることがわかる．以上より，BPM からサービスの行なう内容を判別可能であることが確認できた．
5.2 ブロックを用いた検索の検証
ブロックを用いることで，類似したアクティビティ図を検索可能であることを確認する．ユーザが入力するア
クティビティ図と，アクティビティ図を変換したデータモデルを図 9 と図 10 に示す．

は特殊なノードが多数存在し，理解するためには専門の知識が必要となる．検索者のモデルを理解するための労力を削減できていることから，BPM の作成に UML を用いることは妥当であると言える．
6.2 BPM に追加した情報の妥当性提案した BPM では，アクティビティとサービスの対応関係やサービス情報を記述した．サービスとアクティビティの対応関係を記述することで，ビジネスプロセス内でのサービスの行なう内容を理解することが可能となる．また，サービス情報を記述することで，サービスの詳細やサービス同士の関係を理解することが容易になる．よって，アクティビティとサービスの対応関係やサービス情報を追加することは妥当であると言える．
6.3 データモデルの考察
木構造を用いてデータモデルを定義することで，ブロックを検索に用いることができたと考える．しかし，他のデータモデルとの比較を行なっていないことから，今後の課題として他のデータモデルと比較し，妥当性を確認する必要がある．

7 おわりに
本研究では，サービス検索に用いる BPM を提案することで検索支援を行なった．提案するモデルを検索に用いることで，何を行なうサービスなのかという情報を用いたサービスの検索手法を提案した．今後の課題として，ブロックを用いた検索の妥当性の確認と，他のデータモデルとの比較を行なう必要がある．

参考文献

図9

アクティビティ図

図 10

データモデル

ユーザが入力するアクティビティ図のノードはすべてブロックとして定義した．また，アクティビティ図の名前をビジネスプロセスの名前としてデータモデルへの変換を行なう．この事例では，検索者は運賃計算サービスを検索しようとしている．運賃計算サービスが含まれいそうなビジネスプロセスをアクティビティ図で作成し，検索キーとして入力する．検索の際には，経路の検索ブロックと運賃計算ブロックが一致していると考えらる．
よって，アクティビティ図が部分的に類似していると判断でき，類似したアクティビティ図として検索が可能であることが確認できた．

6 考察
提案したモデルについての考察を行なう．

[1] D. Martin, M. Burstein, J. Hobbs, O. Lassila,
D. McDermott, S. McIlraith, S. Narayanan, M.
Paolucci, B. Parsia, T. Payne, E. Sirin, N. Srinivasan, and K. Sycara, “OWL-S Semantic Markup
for Web Service,”
http://www.w3.org/Submission/OWL-S/, 2004.
[2] M. Hevey, Essential Business Process Modeling.
O’Reilly Media Inc., 2005.
[3] 神 崎 正 英 ，“ウ ェ ブ・オ ン ト ロ ジ 言 語 OWL，”
http://www.kanzaki.com/docs/sw/webontowl.html，2004.
[4] 小出誠二，島田紀一，“セマンティックウェブサービ
スのためのタスク処理言語，”
http://sigswo.org/papers/SIG-SWO-A404/SIGSWO-A404-02.pdf，2005．
[5] 益岡竜介，“米国におけるセマンティック Web サービスの現状と動向，” 人工知能学会誌，vol.20，no.6，
2005．