Gartner Column:第11回 そもそも「セマンティクス」とは何だろう?

【国内記事】 2001.08.20

 前回予告したSemantic Webの話をする前に,IT用語の中でもイメージがわきにくい言葉のひとつである「セマンティクス」について解説しよう。セマンティクスとは「データの意味」のことであり,シンタックス(データの形式や構造)に対応する概念だ。ずいぶんアカデミックな議論をしているかと思われるかもしれないがそうではない。これは,企業のアプリケーション統合を考える上でも,きわめて重要なポイントなのだ。

 大雑把に言えば,シンタックスがデータの「枠組み」を指すのに対して,セマンティクスはデータの「中身」を指すと考えればいいだろう。メッセージのやり取りやデータベースの共用で,2つのアプリケーションがデータを共用する場合には,当然ながら,両者がシンタックスとセマンティクスの両方に関して合意している必要がある。

 例えば,80バイトのASCIIコードによるデータのやり取りを行なうというデータの形式(シンタックス)上の取り決めを行なうだけでは,意味のあるやり取りを行なうことはできない。先頭から8バイトが製品コード,次の3バイトが売上数といったように,データの中身(セマンティクス)に関する取り決めを行なっておく必要があるのは当たり前のことだ。

 XMLの使用により,例えば,<seihin>0822891</seihin><unit>100</unit>といったように,やり取りされるデータ自身の中ににセマンティクス的な要素を持たせることが可能になる。この自己記述性はXMLがもたらす最大のメリットだ。効率性は犠牲になるものの,それを補って余りあるだけの柔軟性を手に入れられるからだ。一般的なビジネスアプリケーションは,1回作成すれば終わりというものではなく,本番稼働後も仕様変更が頻繁に発生する。つまり,データとその記述を別の場所で管理するということは,不一致のリスクが生じるということである。1対1の通信ならばまだしも,インターネット経由で数百もの企業がやり取りする場合にはこのリスクは飛躍的に大きくなるだろう。XMLの使用によりこの仕様不一致のリスクに柔軟に対応できるようになる。

 では,XMLの使用によってセマンティクスの問題は解決するのだろうか?

 実は,解決には近付いたとは言えるのだが,100%解決したとは言えない。なぜなら現実の環境では,同一企業内であっても完全にデータのセマンティクスの標準化が行なわれているとは限らないからだ。例えば,同じ企業内で,工場系のシステムと販売系のアプリケーションでコード体系が異なることもある。さらに,製品区分などの属性については,すべてのアプリケーションで共通になっていることの方が珍しいだろう。つまり,一見自明に思えるようなデータ項目でも,そのセマンティクスにはアプリケーションごとに微妙な違いがあることが多いのだ。これを,セマンティクスギャップと呼ぶ。

 このようなセマンティクスギャップを解消するために,全社的共通データモデルを設計し,データに関する記述データ(メタデータ)を集中管理することで標準化を目指すのはどこの企業でも行なっていることであろう。しかし,このような試みが完了した例を筆者は知らない。ただでさえ,部門間をまたがった標準化が困難であるのに加えて,独自のデータ設計を持つ業務パッケージ製品の導入や企業のM&Aなどによって,データのセマンティクスの多様性はますます拡大していくからだ。セマンティックギャップを最小化する努力は必要だが,完全に解消できるという期待は持たない方がいい。

 このあたりの議論は,通常のデータベースや分散システムの教科書にはあまり出てこない泥臭い話だ。例えば,複数の社内アプリケーションから顧客情報を集約して全社的データウェアハウスを構築するという,一見単純に見えるシステム開発に思ったよりも時間がかかるといった背景にも,セマンティクスギャップの影響が過小評価されているケースが多い。

 企業が克服すべき課題は,セマンティクスギャップをゼロにすることではなく,それを最小限に抑え,できるだけスマートなやり方でギャップを吸収する(つまり,セマンティクスの適切な変換を行なうアプリケーションロジックを開発する)ことだ。ここで重要になるのががハブ&スポークやEAIという手法だ。EAIの本質とは,企業内に存在するセマンティクスギャップの変換をひとつの場所(つまり,ハブ)で行なうことで,将来の変化への対応力を高めることにある。単に,ミドルウェア製品を組み合わせてシステム間のやり取りを行なわせるという話ではないのだ。このあたりの話についても,また回を改めてじっくりと解説したい。

 さて,Semantic Webとは,その名のとおり,現在のワールド・ワイド・ウェブにコンテンツのセマンティクスを付加し,類似のセマンティクス間を相互リンクすることで,ウェブの有用性を飛躍的に向上しようという野心的なプロジェクトだ。次回は,このSemantic Webについて紹介したい。

[栗原潔ガートナージャパン]