レベル: 中級 Uche Ogbuji (uche@ogbuji.net), Principal Consultant, Fourthought, Inc.
2002年 7月 01日 Uche Ogbuji氏は、彼が提供してきたXML/RDF技法の妥当性について、より広いコンテキストで検討するために時間を割いています。彼は、XML/RDF交換の重要性、特別なRDF照会の重要性、およびRDFモデル化から得られた教訓をアプリケーション開発全体に適用することの重要性について語っています。また、「XML的思索」コラムにおけるこのテーマが、意味体系の透過性を実現するための開発を扱うもう1つのテーマとどのように関連しているのかも示しています。
私はこのシリーズで、アプリケーションでのXML機能とRDF機能の相互運用性に関する一般的な技法を示しました。RDF交換によってXMLアプリケーションの意味体系の機能の追加、もしくは情報モデル化の柔軟性がどのように向上するのかを中心にお話してきました。このシリーズを締めくくるにあたって、これまでに紹介したさまざまな技法を検討し、それらを他のアプリケーション開発作業に適用するための例およびガイドラインを示すことにします。
構文は忘れてください
オリジナルのRDF 1.0仕様には、RDFの抽象モデルと、相互操作可能な表現および交換のためのXML構文の両方が組み込まれていました。他の人々同様、私もこの組み合わせは間違いであると考えていました。仕様設計の問題に加え、これらが組み込まれていることにより、多くの人たちは、RDFは仕様で定められた構文に厳密に従うものであり、RDFを使用するためには、例えば、すべての文書のルート要素としてrdf:RDF を使用することにより、その構文に従ってXMLファイルを仕上げるなどのことを行わなければならないと信じ込んできました。これは完全な誤りであり、あらためて次のように言う必要があります。
RDFを使用し、活用するために特定の構文に従わなければならないということはありません。RDF 1.0仕様で指定された構文に従う必要すらありません。
その秘けつは、XML文書 (あるいは、RDBMSなどの非マークアップ形式の文書でもかまいません) からキー・メタデータを抽出し、それをRDFモデルに同期させることです。そのうえで、これらのモデルを、ローカライズされた意味体系Webとして扱うのです。例えば、以下のすべてを結び付けるようなことができます。
- データ・ソースに含まれる個人連絡先情報
- 別のソースから得られたTo-Do項目およびカレンダー項目
- 信頼を確立するための公開鍵インフラストラクチャー・メタデータ
- 辞書リストその他の意味体系データ
こうした豊かな情報を統合することにより、他の場合には実現しにくい機能を使用可能にしたり、XMLモデルとRDFモデルの間でデータをやり取りする作業を埋め合わせて余りある付加価値を作り出したりすることができます。
XMLをRDF構文に変換するために示したXSLT変形 (これは、RDFモデルへの相互操作可能なインポートを行うことのみを目的としたものです) は、XML/RDF交換を実現するための方法の1つです。こうした交換は、いくつかのRDFツールで管理することができます。例えば、4Suiteツールを使用すると、RDF構文を気にすることなく、マッピング規則を定義することができます。
私が作ったサンプルの問題追跡アプリケーションでは、XML/RDFマッピングを使用して最も自然な形式でアプリケーション・データの作成と交換を行い、RDFを使用して意味体系検索などの高度な機能をきわめて少ない手間で組み合わせました。このシリーズのもう1つのテーマとして (参考文献を参照)、いくつかのe-businessディクショナリー・リソースを紹介しました。これらのリソースを利用するアプリケーションでは、XML/RDFマッピングを使用して以下のようなリソースをインポートすることができます。
- RosettaNetディクショナリー
- ISO Basic Semantic Registry (これはすでにRDF形式で使用できるようになっています)
- DISAにあるアメリカ政府の図式リポジトリー
統一RDFモデルでは、これらのリソースを各種のローカルまたは他のグローバル・データ・セットと幅広くリンクさせて、照会および自律エージェント処理を統一することができます。
最近のXML Web Services Oneコンファレンスの基調講演で、Software AGのWilliam Ruh氏は、近頃XML形式の本体論書を作成するためにきわめて多くの努力が費やされている、と指摘しました。本体論書とは、用語および概念を構造化された形式で定義し、意味体系データベースを提供する文書のことです。Ruh氏は、この未加工のXML素材をRDFテクノロジーと統合することが、実際的な意味体系Webの作成に通じると指摘しています。
照会の技法
私は、RDFモデルを照会するための非常に低水準のアプローチも示しました。RDFモデルは汎用グラフであり、グラフおよび弧を単独または集合的にトラバースすることのできる、特別な照会機能を必要とします。これは、旧来の階層データベースで使用されたハッシュおよび検索ツリー技法、リレーショナル・データベースのテーブル・スキャン、およびオブジェクト・データベースの属性集約および関係トラバースとは異なります。実際には、RDF照会は後者に最もよく似ています。オブジェクト関係が抽象グラフとして構造化されているからです。しかし、オブジェクト理論は、その弧とノードの基礎となっている多くの意味体系をすでに提供している点で、RDF照会と異なっています。RDFはこのような意味体系を提供しません (RDFを基礎にしながら、なんらかの構造および意味体系を提供するものとして、RDF SchemaおよびDAML+OILなどがありますが、これらも、オブジェクト理論に比べるとはるかに汎用的です)。
RDFのための高水準照会言語としてVersaも紹介しました。この言語は、XML処理言語などの他の言語への組み込みを行う機能を備えた、グラフ・トラバースおよびプロパティー集約を扱います。SquishやCWM (参考文献を参照) などの、その他の高水準RDF照会言語は、SQLに類似したイディオムや推論を扱うことを重視して作られています。XQueryの支持者の中には、XQueryを使用することにより、XML/RDFのシリアライゼーションからも、また、XML/RDFマッピングを使用する場合には、オリジナルのXMLからも、メタデータ照会を行うことができると示唆する人がいました。このアイデアの主要な問題は、ほとんどの汎用XQuery実装が、RDFで必要となるこうした照会パターン向けに最適化できそうにないことです。特別な照会エンジンを使用したい場合には、特化に対応した構文および意味体系 (例えばRDF) を使用する必要がありそうです。
RDF照会メカニズムを選択する際にもう1つ考慮しなければならないことは、データがどの程度分散されるかということです。これまでこのシリーズで述べてきたことの多くは、閉じたモデルおよびモノリシックなデータベースに当てはまることですが、RDFの機能の中には、分散システムで最も威力を発揮するものがあります。例えば、RDFは、イントラネット・ページに点在するメタデータを集約するため、あるいは安価なアプリケーション統合を行うためのツールとして、大いに役立つ可能性があります。このような場合、部分的な結果を保管および転送したり、サブ照会を効果的に構成したり、競合や矛盾に対処したりすることのできる、照会システムが必要です。これらの機能はすでに、検索エンジンのWebクローラーのような多くのエージェント・テクノロジーで一般的に使用されていて、基本RDF照会システムに載せることができます。
次世代の分析および設計
すでに述べたXMLマッピングまたは照会の実装の詳細以上に重要になると思われるのは、情報モデル化のレッスンです。アプリケーション開発のための一般的な方法論は、エンティティー関連モデル化およびUnified Modeling Processを含め、すべて、実装に関心を向けるあまり、問題空間 (実装により見積もられる) を構成する基本概念を考え直すことはしません。多くの点で、これは、ソフトウェアの保守および組み込みの費用がかさむ大きな要因となります。2つの異なるソフトウェア・パッケージ (例えば、人材データベースおよびコンテンツ・マネージメント・パッケージ) が従業員 に関して同じ概念を持つ可能性はありますが、それらのパッケージが従業員データの構造および処理を実際にどのようにモデル化し、実装するかは、異なることが避けられそうにありません。制約および規則が異なります。表現および組み込みデータが異なります。これら2つのアプリケーションを結び付ける必要がある場合、こうした相違点により作業が複雑になり、多くの場合、経済的に実行不可能となります。
CORBAやUMLなどの多くのオブジェクト設計仕様の管理組織であるObject Management Group (OMG) は、この問題に関してある程度の理解を示しています。OMGは、プラットフォームの中立性に基づくシステム (CORBAおよびUML) における開発活動の基礎を築くことから、組織内の概念、業界内の概念、あるいはグローバルな概念を表す完全に抽象的なモデルでの開発の基礎を築くことに、根本的な変革を進めつつあります。このようなモデルは本体論書と非常によく似ているように思われそうですが、どういう理由によるのか (おそらくは、作業の成果の外観を統合するために)、OMGはUMLを抽象モデルのための言語および表現として推進しています。ここで問題となるのは、UMLの志向が実装に偏っていることです。OMG自体がUMLの紹介で次のように語っています。
任意のタイプのハードウェア、オペレーティング・システム、プログラム言語、ネットワーク、およびそれらの組み合わせで実行される、ほとんどどのようなタイプのアプリケーションでもモデル化することができます。UMLは柔軟性に富んでいるため、市場に出ているほとんどのミドルウェアを使用する分散アプリケーションをモデル化することができます。基本概念としてクラスと操作を定義するMOF [Meta-Object Facility] メタモデルを基礎にしているため、C++、Java (言語)、および最近のC# などのオブジェクト指向の言語および環境に適しているのは当然ですが、Fortran、VB、またはCOBOLなどで、非オブジェクト指向のアプリケーションをモデル化するために使用することもできます。
結局、このOMGの説明は、オブジェクト指向設計専用であることを否定しています (もっとも、この否定自体、議論の余地があります)。しかし、たとえそのことを認めるとしても、アプリケーション開発に適合するように作られたというUMLの宣伝そのものが、残りの問題を引き立たせてしまいます。XMLの功績の1つは、アプリケーション開発という狭い領域を超えて開発者の世界観を広げたことです。もともと、XMLは、SGMLから継承した従来型の文書指向の処理の対象およびパターンを統合するという形で誕生したものです。最近になって (特に、XMLがWebサービスの形で分散プログラミングの世界に入り込むようになって)、より多くの開発者が、ステートレス情報処理モデルがどのように機能するのかを基本的に理解するようになってきています。
両方の世界の長所を取り入れて、アプリケーション開発のための持続可能な基礎を提供できるような方法を見出すために、OMGグループとRDF/本体論書グループとの協調が盛んになりつつあります。RDFにおけるモデル化は、開発者の目を、クラスやタイプなどの規定された概念の、より広い関連性に向かわせました。これは、次世代のモデル化に向かうための重要な足がかりです。さしあたり、本体論書と従来型の分析および設計との統合は、すでに開発サイクルの短縮、保守および統合の向上、および作成されたアプリケーションを駆動する知識ベースの価値の出現という形で、初期の採用者に多大な利益をもたらしています。残念なことに、こうした先駆者たちは、多くの欠乏状態も味わっています。プログラミング・ツールはまだ本体論書ツールをサポートするようになっていませんし、本体論書ツール (そう呼ぶに値するものがあるかどうかはともかくとして) は、まだ従来のプログラミングをサポートするに至っていません。このようなハイブリッド型の方法論を成功させるためには、きわめて腕前の良い開発者と、起業家精神に富んだ雰囲気が必要です。残念ながら、大多数のIT組織では、これらの両方の資産がきわめて不足しています。
重要なことは、プロジェクトが情報モデル化を優先したほうが、アプリケーションを現実世界と調和させる機会が多くなるということです。情報モデル化を優先するためには、形式的な記述を行うことと、モデル化の対象となる主要概念の振る舞いを予測することによってプロジェクトを基礎固めする必要があり、また、開発のきわめて初期の段階でXMLおよびRDFスキーマのような汎用データ表現ツールを使用する必要があります。さらに抽象モデルが正しく定義されてはじめて、それを使用して、アプリケーション設計のプログラマチックな側面を形作る成果を提供できるようになります。
次回は技術的な更新を行います
ソフトウェア・モデル化および本体論書のコミュニティーでは、目立たないところで多くの作業が行われています。このようなやり取りにより、アプリケーションの開発方法が根本的に変化することは必然的と思われます。今必要なことは、既存の確立されたツールを拡張することによって2つの世界を結び付けることです。私は、クリーン・モデル化法 と呼ぶ方法を使用して、これらのツールの実験を開始しました。クリーン・モデル化法は、実装の考慮事項をまったく含まないモデルから開始して、開発者がインターフェースおよびその他の成果物を生成するのを支援します。他の多くの開発者により、UMLテクノロジーとRDFテクノロジーの橋渡しを行うツールの研究が行われ、UMLとXMLの橋渡しとして扱いやすいツールとは言えないものの、XMIが確立されました。
次回の記事では、「ナレッジ管理のための基本的なXMLおよびRDF技法」シリーズの締めくくりとして、照会メソッドおよびスキーマに対して行われた更新を含め、問題追跡アプリケーションの統一的な実装を披露します。
参考文献
- 「ナレッジ管理のための基本的なXMLおよびRDF技法」シリーズの他の記事を参照してください。
-
その1: XSLTによるRDFの生成 (developerWorks、2001年7月)
-
その2: RDFモデルへのファイルの組み込み、および基本的なRDF照会 (developerWorks、2001年9月)
-
その3: 意味体系からの知識 (developerWorks、2001年11月)
-
その4: 問題追跡機能のスキーマ (developerWorks、2002年2月)
-
その5: RDFおよびDAML+OILスキーマの定義 (developerWorks、2002年3月)
-
その6: Versaを使用したRDF照会 (developerWorks、2002年4月)
- Edd Dumbill氏の最新コラム「XMLウォッチ: XMLとRDFによる友達の検索」(developerWorks、2002年6月) に、連絡先情報を管理するためのXMLおよびRDFアプリケーションがいくつか示されています。
- Cameron Laird氏の記事「XMI and UML combine to drive product development」(developerWorks、2001年10月) に、UML指向のXML処理が表意記号の組によってどのように行われるのかが示されています。
- このコラムのもう1つのテーマである「XMLと意味体系の出会い」を参照してください。
-
XMLおよび関連テクノロジーのIBM認証開発者 になる方法についてはこちらを参照してください。
その他の参考文献
著者について  | 
|  | Uche Ogbuji は、次世代の Web 技術を専門とするサービスの会社である、Uli, LLC の代表者です。Ogbuji 氏は XML、RDF、およびナレッジ管理アプリケーション用のオープン・ソース・プラットフォームである 4Suite の開発リーダーであり、Versa RDF 照会言語の開発リーダーでもあります。ナイジェリア出身のコンピューター・エンジニア兼ライターで、米国コロラド州ボールダー在住です。彼に関して詳しくは、彼のブログである Copia を見てください。 |
記事の評価
|