企業内のビジネス・プロセスを統合するためにタクソノミーを管理する場合であれ、コンテンツをインテリジェントに取得できるようにコンテンツに割り当てられたキーワードを管理する場合であれ、あるいは Web ベースの大規模な小売サイトのメニューを管理する場合であれ、タクソノミー管理ツールが独自のバイナリー・フォーマットでデータを保存してしまうため、他のツールにそのデータをうまく移植することができない、と感じることはないでしょうか。これらのデータを標準に基づく方法によって表現すると、複数ソースの語彙データが統合しやすくなると同時に、独自ツールへの依存を軽減することができます。
SKOS (Simple Knowledge Organization System) は W3C の標準であり、W3C の RDF、RDFS、OWL 仕様をベースに作られており、統制語彙を表現するための標準的なモデルを提供します。SKOS はフラットなリストに使用することや、タクソノミーやシソーラスなどの追加メタデータを持つ、より構造化された統制語彙に使用することができます。
SKOS は RDF モデルを使用して定義されているため、XML フォーマットで容易にデータを読み取ったり作成したりすることができます。SKOS に対するツール・サポートが増えているということは、SKOS を使用する上で、関連する W3C 標準の知識は必要ないということです。しかし、それらの標準を理解すればするほど SKOS の拡張性を活用できるようになり、SKOS 標準には含まれていない、カスタマイズされたメタデータを語彙に含められるようになります。
The New York Times から NASA (米航空宇宙局) や UN Food and Agriculture Organization (国際連合食糧農業機関) に至るまで、さまざまな組織がそれらの組織の主題の一覧を SKOS で公開しています。そのため、この標準により、よく知られた語彙を再利用したり、皆さんのコンテンツと同じ語彙を使用する他のコンテンツを皆さんのコンテンツと関連付けたりすることも、容易にできるようになります。
語彙管理システムは必ず、用語とともに用語間の関係や他のメタデータとの間の関係も管理できるように構成されています。SKOS では管理対象を上位レベルで見るため、国際化は非常に容易です。例えば古い体系では、「dog (犬)」という用語を、広義語での「mammal (ほ乳類)」という用語と、狭義語での「dachshund (ダックスフンド)」あるいは「bulldog (ブルドッグ)」という用語とともに保存することができます。「mutt (犬っころ)」という用語は別の用語であり、「dog (犬)」は「mutt (犬っころ)」に対し、タクソノミストが非優先関係 (UF) と呼ぶ関係を持っています。例えば写真にキーワードを付けている誰かが、Lassie (ラッシー) の写真に「mutt (犬っころ)」という語をキーワードとして付けようとする場合、語彙アプリケーションはその人に対し、「mutt (犬っころ)」ではなく「dog (犬)」を使うように指示します。「perro (犬)」という用語は「dog (犬)」という用語に対して「Spanish (スペイン語)」という関係を持つことができ、「chien (犬)」という用語は「dog (犬)」という用語に対して「French (フランス語)」という関係を持つことができます。しかし、「perro (犬)」に相当するフランス語を知らないスペイン人のユーザーは、「perro (犬)」と「chien (犬)」が英語の用語「dog (犬)」との関係によって結びつけられていることを知らない限り「chien (犬)」を参照することはできません。
この体系のもう 1 つの欠点は、「mutt (犬っころ)」という用語と「perro (犬)」という用語が「dog (犬)」とは切り離されている点です。これは「cat (猫)」という用語と「gato (猫)」(スペイン語の用語) とが切り離されているのと同じです。「mutt (犬っころ)」、「dog (犬)」、「perro (犬)」が同じものを指すにもかかわらず、それらの関係を明示的に指定する必要があります。図 1 は、これらの関係を図に示したものです。実線の矢印は「broader than (より広義)」な関係 (「cat (猫)」と「dog (犬)」に対する「mammal (ほ乳類)」、「bulldog (ブルドッグ)」と「dachshund (ダックスフンド)」に対する「dog (犬)」) を表します。破線の矢印にはラベルが付いており、「dog (犬)」に相当するスペイン語 (「perro (犬)」) またはフランス語 (「chien (犬)」)、「dog (犬)」に対する代替語を表すスペイン語 (「chucho (犬)」) と英語 (「mutt (犬っころ)」)、そして「cat (猫)」に相当するスペイン語 (「gato (猫)」) という関係を説明しています。
図 1. SKOS が登場する以前のタクソノミーにおけるラベルによる関係の例
SKOS を利用することにより、さまざまな種類のラベルが付けられた概念を管理することができ、各ラベルに言語が関連付けられる場合もあります。最も重要なラベルは優先ラベルです。SKOS では、各概念が言語ごとに優先ラベルを 1 つしか持てないようになっています。例えば 1 つの概念が英語の優先ラベルとして「dog (犬)」を持ち、スペイン語の優先ラベルとして「perro (犬)」を持ち、フランス語の優先ラベルとして「chien (犬)」を持つことができます。
別の種類のラベルとして、代替ラベルがあります。SKOS ベースのソフトウェアは代替ラベルを使用することにより、追跡対象ではあっても推奨されないラベルを表現することができます。例えば、英語の優先ラベル「dog (犬)」を持つ概念は、英語の代替ラベル「mutt (犬っころ)」とスペイン語の代替ラベル「chucho (犬っころ)」を持つことができます。「dog (犬)」、「perro (犬)」、「chien (犬)」、「mutt (犬っころ)」、「chucho (犬っころ)」はすべて同じ概念を指し、明示的に関係を記さなければならない別の用語として存在するのではなく、各アプリケーションの要求に応じてその概念についての異なる情報を提供します。図 2 は図 1 の情報を SKOS の概念として再構成したものです。矢印の数は図 1 よりも少なく、また用語間の関係が図 1 よりも明確になっています (図 1 の場合と同じく、実線の矢印は「broader than (より広義)」な関係を表します)。各概念に対する実際の識別子は URI ですが、この識別子は語彙管理アプリケーションによって表示されないようになっている場合もあります (図 2 のテキストのみを表示したものを見るには、ここをクリックしてください)。
図 2. SKOS における概念の関係の例
2 つの図を比較してみると、図 1 の「perro (犬)」と「mutt (犬っころ)」は、「dog (犬)」が指している単なる追加の用語に過ぎず、「bulldog (ブルドッグ)」と「dachshund (ダックスフンド)」とは異なりますが、図 2 では、「perro (犬)」と「mutt (犬っころ)」は同じ概念を表す一方、「bulldog (ブルドッグ)」と「dachshund (ダックスフンド)」とは異なる概念であることがわかります。
SKOS では、概念は「broader than (より広義)」な関係以外にも多様な関係を持つことができます。英語の優先ラベル「dog (犬)」を持つ概念は、別のタクソノミーの「doghouse (犬小屋)」という概念と「related (関連する)」関係を持つことができます。SKOS では概念の識別子としてラベル自体を使用するわけではなく、一意の URI を使用するため、アクセス可能な世界中の SKOS 語彙の任意の概念と、指定された概念との間に関係を定義することができ、たとえその語彙が NASA や The New York Times によって管理される語彙であっても構いません。
漁業や農業など食料関係分野のための UN Food and Agriculture Organization による AGROVOC シソーラスは、真に国際的な利用者を対象にする必要があります。AGROVOC の 1 つの概念が持つ優先ラベルは十数種類の言語で表現される可能性があり、さらにそれ以外にも代替ラベルがある可能性もあります。指定された概念に対して各言語で規定できる代替ラベルの数には制限がないからです。SKOS ではラベルのプロパティーを持つ概念を使用しており、シソーラス・データの構成を用語ベースで行っている古い方式よりも、多言語による用語追跡が大幅に容易になっています。そのため、異なる文化の人々の間で食料問題を議論する場合、コミュニケーションがはるかに容易になります。
SKOS を利用することにより、上記で説明した優先ラベルと代替ラベル、そして概念の間の関係の他にも、用語の定義、スコープに対する注記、履歴に対する注記、その他さまざまなプロパティーを各概念に関して保存することができます。SKOS の定義にはオントロジーを規定するための W3C の OWL 標準が使用されているため、語彙の中にある概念に対し、業界やビジネスに特有の追加のプロパティーを非常に容易に定義したり使用したりすることができます。
これらのプロパティーは他のデータ標準やメタデータ標準に規定されているプロパティーであっても構いません (他のデータ標準の例として、Dublin Core 語彙、金融業界向けに開発された Market Data Definition Language、あるいは米国議会図書館で開発された Metadata Object Description Schema などがあります)。また、企業のシステムに特有で、他には誰も使わないプロパティーであっても構いません (それらのプロパティーは企業が情報を管理する上での付加価値の一部だからです)。例えば製薬会社であれば、動物のタクソノミーに「requires (必要)」という新しい関係を定義することで、動物用ワクチンに関するタクソノミーのデータの概念を指すようにすることができます。
語彙の編集や管理を行う SKOS ベースのツールは、こうした拡張性が SKOS 標準の一部であることを理解できなければなりません。データを扱う場合、ツールのインターフェースの一部として SKOS 仕様にはない追加プロパティーを扱える必要があり、フォームやレポートには SKOS 標準のプロパティーと共に追加のプロパティーも表示される必要があります。
SKOS を指定するために使用される OWL 言語は、オブジェクト指向によるデータ・モデリング手法とは重要な違いがいくつもありますが、両者の間には重要な共通点が 1 つあります。それは、データ・モデルを定義する場合には、クラスとサブクラス、そしてこれらのクラスのプロパティー (または、オブジェクト指向の用語を使うなら属性) を宣言することです。SKOS のオントロジーでは Concept クラスを定義し、優先ラベル、代替ラベル、他の概念との関係は、Concept クラスのプロパティーとしてモデル化されます。
指定された概念に対し、ありとあらゆるメタデータを割り当てることはできますが、SKOS には特定のラベルにメタデータを割り当てる手段がありません。「chucho (犬)」というラベルのソースを記述するデータを保存したい場合や、そのソースが最後に編集されたのはいつか、誰がそのソースを編集したのか、などを保存したい場合にはどうすればよいのでしょう?
そうした状況に対応するために、W3C は SKOS-XL (SKOS Extension for Labels) 仕様を公開しました。この仕様では、ある概念の優先ラベル、代替ラベル、その他のラベルの値は、ストリングではなく、この拡張仕様で定義される新しい Label クラスのメンバーです。これらのラベルはクラスのインスタンスなので、あらゆるメタデータをこれらのラベルに割り当てることができ、非常に柔軟性が高まります。
先ほど、SKOS は概念の識別子として一意の URI を使用するため、指定された概念と、URI ID がわかっている SKOS ベースの他の概念との間の関係を定義することができる、と説明しました。このことは、その SKOS ベースの他の概念が同じタクソノミーに属するにせよ、あるいは別の会社によって Web 上に公開されている別のタクソノミーに属するにせよ、変わることはありません。こうした関係の定義が可能であると、上述のような両極端の間にある状況にも好都合です。つまり同じ企業内の異なるグループが独自の語彙を使って管理している場合、これらの語彙を統合して中央管理の 1 つの語彙にしても有害無益です。というのも、データの規模が大きくなるにつれて語彙の保守が複雑になり、異なるグループの要求に合わせて妥協を図るためにデータを改訂しなければならなくなるからです。「customer (顧客)」という用語を使用する場合、マーケティング部門と修理部門では異なる対象を意味するかもしれませんが、そこには妥当な理由が存在する可能性があります。両方の部門に同じ定義を使用するように強制すると、その語彙の価値はどちらの部門にとっても低くなってしまいかねません。
SKOS を使用することで、異なる語彙による概念の間に関係を定義することができます。そのため、概念の間の関係を適切に定義したメタデータにより、さまざまな部門の語彙を一緒に利用できるようになります。無理に語彙を改訂、統合した一体型の語彙を作成し、結局どのグループの要求にも完全には対応できない、ということはなくなります。概念の間に定義される関係は、「related (関連する)」や「broader than (より広義)」であるといった SKOS の標準的な関係です (例えば、マーケティング部門での「customer (顧客)」の概念は修理部門の「customer (顧客)」の概念よりも広義である、というような関係を定義することができます)。ただし繰り返しますが、皆さんが独自のカスタマイズされた関係を定義することもできます。
セマンティック技術に関心を持つようになると、多くの人達は自分達にとっての最初のアプリケーションを作成する前に、RDF のデータ・モデル、そのモデルを表現するための多様な構文、SPARQL 問い合わせ言語、RDF スキーマと OWL を使ったデータのモデル化の方法、などを学ばなければならないのではないか、と心配します。SKOS ベースの語彙マネージャーを使用する場合、ほとんどの場合は単にフォームに記入し、典型的なユーザー・インターフェース・ウィジェットを使用してデータを管理するだけであり、SKOS の基礎となっている W3C の基本的な標準について学ぶ必要はありません。しかし、それらの標準について少し学んでみると、それらのデータをより有効に活用できるようになります。例えば SPARQL 問い合わせ言語を使用すると、皆さんの語彙管理パッケージには含まれていないかもしれない問い合わせができるようになります。また先ほど触れたように、よりカスタマイズされたメタデータを追跡するために、新しいプロパティーに加えて新しいクラスも定義することができます。
また、皆さんのデータが SKOS オントロジーを使用しているか否かに関わらず、世の中にある多種多様なデータと皆さんのデータとを結びつけられるようになります。RDF データ・モデルを使うことによって、独立に作成されたデータを結びつけられることが、セマンティック Web を Web たるものにしており、データセットを組み合わせられることは、その重要な成果です。例えば、The New York Times は彼らが SKOS ベースで作成した主題ヘッダーの索引を Web 上に無料で公開し、他の出版社がその主題ヘッダーを各社独自のコンテンツに使えるようにしました。それにより、各出版社は自社の独自コンテンツを The New York Times の記事に結びつけられるようになっただけでなく、もっと重要な点として、これらの主題ヘッダーでタグ付けされた The New York Times の記事には、より多くのトラフィックが集まるようになりました。
SKOS データに何らかのプロパティーを追加した後、そのデータに対していくつかの SPARQL クエリーを実行してみると、SKOS とは別の新しいオントロジーを定義すること (あるいは SKOS 以外に既に存在している標準のオントロジーを見つけて拡張すること) などを考えつくようになり、さらにセマンティック Web 技術を活用できるようになります。
特定のオントロジーに従ってデータを編集できる RDF ツールであれば、SKOS の OWL オントロジーをロードして SKOS の概念を作成することや、それらの概念のプロパティーに適切なメタデータを設定することができます。RDF の経験がない人達が語彙を管理するためのツールとして、以下のようなものがあります。
-
TopQuadrant の EVN (Enterprise Vocabulary Net) は、Web ベースの商用コラボレーション・システムとして SKOS データ・モデルに従って構築されており、統制語彙を企業全体にわたって管理することができます。
-
PoolParty は商用のシソーラス管理および SKOS エディター・システムであり、テキスト・マイニングとデータ・リンク機能を持っています。
-
Protégé オントロジー・エディター用の SKOSed プラグインを利用すると、SKOS で表現されたシソーラスを編集することができます。SKOSed もProtégé もオープンソースです。
-
iQvoc はオープンソースの語彙管理ツールであり、SKOS をインポート、エクスポートすることができます。
-
TemaTres はオープンソースの語彙マネージャーであり、語彙データを SKOS ファイルとして出力することができます。
語彙管理ツールによって SKOS をインポート、エクスポートする機能はやがて、スプレッドシート・プログラムで CSV をインポート、エクスポートする機能と同じくらい一般的になるはずです。皆さんが使用しているタクソノミー管理プログラムが SKOS 標準をサポートしていない場合には、そのメーカーに対し、SKOS のサポートを要求してください。
SKOS の基礎は RDF であることから、RDF 対応のアプリケーション開発ツールやライブラリーを利用することで、独自の SKOS 編集システムを作成することができます。これは、タクソノミー管理システムを作成する場合には、開発者がすべてのデータ構造を定義して実装しなければならないのに比べ、遥かに簡単です。
大規模で複雑な統制語彙を 1 つ以上管理する場合、それらをすべて変換して新しいフォーマットを使用するようにするのは、大がかりで費用のかかる作業になりかねません。そのサブセットをパイロット・プロジェクトとして SKOS に変換すれば、作業ははるかに容易になります。また、いくつかの異なるサブセットへと変換した後、複数の語彙の境界にまたがる概念の関係を適切に定義してサブセット同士を結びつけてみると、皆さん自身の組織で SKOS を使用するメリットがわかるようになります。無料のソフトウェアと商用ソフトウェアの両方で SKOS 標準をサポートするものが増えつつある中、語彙を管理する人、そして標準化することのメリットに関心がある人すべてにとって、SKOS はさらに詳しく調査する価値があります。
学ぶために
- 「XML 的思索: SKOS
を使って表現力豊かなスキーマ定義を実現する」(Uche Ogbuji 著、developerWorks、2008年11月) を読んでください。要素を定義するための XSD スキーマのドキュメントに対し、SKOS を定義することによって正確なセマンティクスを追加でき、そのドキュメントをアプリケーションに活用できるようになることが解説されています。
- 「DITAとSKOSによる主題の分類」(Erik Hennum、Robert Anderson、Colin Bird の共著、developerWorks、2005年10月) を読んでください。コンテンツの検索、統合、その他の処理を適切に行うために DITA トピックを構成する上で、SKOS がどのように役立つかを学ぶことができます。
- 「大きく異なるデータ・ソースをセマンティック
Web 技術を使って統合する」(Bob DuCharme 著、developerWorks、2010年9月) を読んでください。RDF データ・モデルにより、必ずしも RDF ではないローカル・データやリモート・データを容易に集約する方法を学ぶことができます。
- SKOS
Simple Knowledge Organization System Reference (W3C 勧告、2009年8月) を読み、W3C の仕様から SKOS の正式な詳細を学んでください。
- SKOS Simple Knowledge
Organization System eXtension for Labels (SKOS-XL) Namespace Document - HTML Variant (W3C 勧告、2009年8月) を読み、より詳細なメタデータを使えるようにするための SKOS 拡張機能に関する W3C 仕様について調べてください。
- SKOS Datasets は、さまざまな組織から提供、公開されている SKOS データセットを W3C が一覧にしたものです。
- 著者の
Bob DuCharme が developerWorks に寄稿した他の記事も読んでください (2010年11月から現在まで)。セマンティクス、DITA、その他の技術が解説されています。
- developerWorks の XML ゾーンには、XML
の領域でのスキルを磨くためのリソースが豊富に用意されています。XML 技術文書一覧に用意された、さまざまな技術記事やヒント、チュートリアル、技術標準、IBM Redbook を見てください。
- XML および関連技術において IBM 認定技術者になる方法については、IBM XML certification を参照してください。
- developerWorks の
Technical events and webcasts で最新情報を入手してください。
- 今すぐ Twitter に参加して developerWorks のツイートをフォローしてください。
- developerWorks podcasts でソフトウェア開発者のための興味深いインタビューや議論を聞いてください。
- developerWorks On demand
demos をご覧ください。初心者のための製品インストール方法やセットアップのデモから、上級開発者のための高度な機能に至るまで、多様な話題が解説されています。
製品や技術を入手するために
- TopQuadrant の EVN
(Enterprise Vocabulary Net) は、相互に結びつけられた統制語彙、タクソノミー、シソーラス、オントロジーを単純に開発、管理できるようにするための Web ベースのソリューションです。
- セマンティック Web のためのシソーラス管理システムと
SKOS エディター、PoolParty について調べてください。
- Protégé オントロジー・エディターのための SKOSed プラグインを利用し、SKOS (Simple Knowledge Organisation System) で表現されたシソーラスを作成、編集してください。
- SKOS をインポート、エクスポートでき、語彙を管理するためのオープンソースのツール、iQvoc について調べてみてください。
- SourceForge.net から TemaTres ソフトウェアをダウンロードし、この Web アプリケーションを試してみてください。TemaTres により、ナレッジ、シソーラス、タクソノミー、多言語語彙の正式な表現を管理することができます。
- IBM 製品の評価版をダウンロードするか、あるいは IBM SOA Sandbox
のオンライン試用版で、DB2、Lotus、Rational、Tivoli、WebSphere などが提供するアプリケーション開発ツールやミドルウェア製品を試してみてください。
議論するために
- XML zone discussion
forums では XML に関する議論が行われています。
- developerWorks コミュニティーで開発者向けのブログ、フォーラム、グループ、ウィキなどを利用しながら、他の developerWorks ユーザーとやり取りしてください。
