XML的思索: PRISMを解明する

出版のための標準メタデータ・ボキャブラリー

PRISMは、出版に関連した標準メタデータです。これを使用すると、標準化されたプロパティー、制御されたボキャブラリー、およびユーザー独自の制御されたボキャブラリーを定義できるようにする拡張性メカニズムが提供されるため、コンテンツおよび参考文献の正式な記述を行うことができます。Uche Ogbujiはこのコラムで、例を使用してPRISMを紹介しています。

Uche Ogbuji, Principal Consultant, Fourthought, Inc.

Photo of Uche OgbujiUche Ogbuji は、次世代の Web 技術を専門とするサービスの会社である、Uli, LLC の代表者です。Ogbuji 氏は XML、RDF、およびナレッジ管理アプリケーション用のオープン・ソース・プラットフォームである 4Suite の開発リーダーであり、Versa RDF 照会言語の開発リーダーでもあります。ナイジェリア出身のコンピューター・エンジニア兼ライターで、米国コロラド州ボールダー在住です。彼に関して詳しくは、彼のブログである Copia を見てください。



2002年 10月 01日

出版に関連したさまざまな業界は、XMLをサポートし、その実用的な価値をいち早く研究したグループに属しています。出版業界がXMLの親に当たるSGMLの強固な支持者であったことを考えると、これは驚くことではありません。1998年には、XMLを使用するための初期の主要な業界標準として、Information and Content Exchangeプロトコル (ICE) が登場しました。ICEは、インターネットでコンテンツを提示しているさまざまなパートナーに、コンテンツを電子的に配布するためのプロトコルです。XMLは、出版業界におけるもう1つの重要な要件である、コンテンツ・メタデータ管理にも非常に適しています。ICEはコンテンツを交換するためのメカニズムを備えていますが、そのICE仕様でさえ、該当のコンテンツを記述するための正式な手段が必要であることを認めています。

この必要性を満たすために、出版業界は、コンテンツの処理を指示するためのXMLメタデータ標準、Publishing Requirements for Industry Standard Metadata (PRISM) を開発しました。PRISMは、カタログから書籍まで、幅広いコンテンツに対応し、また、さまざまな形式の電子出版から多様な印刷形式まで、各種のメディアに対応しています。PRISMは、電子テクノロジーのインフラストラクチャーに関与する出版社のコンソーシアムである、IDEAlliance (以前はGCAと呼ばれていました) の作業グループによって開発されています。PRISMのメンバーには、Adobeなどのテクノロジー・ベンダーや、Time IncおよびMcGraw-Hillなどの雑誌出版社が含まれます。

この記事では、PRISM 1.2仕様の現行の草案に焦点を当ててPRISMを紹介します。読者は、XMLおよびRDFについてよく理解している必要があります。

基礎からの構築

PRISMの最も基本的な部分は、Dublin Coreボキャブラリーを使用するRDF/XML文書として定義されています。例えばリスト1 は、このコラムの前回の記事を記述する有効なPRISM文書です。

リスト1. 初歩的なPRISMで正式に記述された「XML的思索」コラムの第12回
<?xml version="1.0" encoding="UTF-8"?> 
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="en"
>
 <rdf:Description
    rdf:about="http://www.ibm.com/developerworks/xml/library/x-think12.html">
  <dc:description>
    A discussion of the broader context and relevance of XML/RDF techniques.
  </dc:description> <dc:title>Basic XML and RDF techniques for knowledge management, Part 7
  </dc:title>
  <dc:publisher>IBM developerWorks</dc:publisher>
  <dc:creator>Uche Ogbuji</dc:creator>
  <dc:subject>XML</dc:subject>
  <dc:subject>RDF</dc:subject>
  <dc:format>text/html</dc:format>
 </rdf:Description>
</rdf:RDF>

平易なRDFや人気を増しつつあるDublin Coreエレメント・セットとこのように連携できることは、PRISMが、RDFで適切に用意されているツールおよび技法の多くとよく調和していることを意味します。Dublin Coreプロパティーに関するかぎり、PRISMでは、プロパティーの値を柔軟に設定することができます。したがって、上に示したように臨時のプレーン・テキスト値を使用したり、ISBN番号などの制御されたボキャブラリーから得られたプレーン・テキスト値を使用したり、URIを使用したりすることができます。例えば、私は上記のdc:publisher プロパティーを次のように表現しています。

<dc:publisher>IBM developerWorks</dc:publisher>

これは、IBM developerWorks用のInternational Standard Serial Number (ISSN) (実際には、これは既成のISSNです) を使用して表現することも可能でした。

<dc:publisher>1234-5678</dc:publisher>

また、IBM developerWorks用のISSNキー・タイトル を使用することも可能でした。キー・タイトルは、ISSNとともに割り当てられる特殊名です。キー・タイトルは一般に、出版物の一般名の変形であり、グローバルで固有になるように名前を変更したものです。ISSNのキー・タイトルおよび番号は、ISSN International Centreで制御されたボキャブラリーです。それらをメタデータ・フィールド内で使用すると、出版物の一般的な名前を使用した場合に生じるあいまいさを排除することができます。

第3のオプションとして、IBM developerWorksのURLを使用することも可能でした。

<dc:publisher rdf:resource="http://www.ibm.com/developerworks"/>

RDFの異なる構文形式が使用されていることに注意してください。これは、プロパティー値が単なるプレーン・テキスト・ストリングではなく、別のリソースであることを示しています。この最後のオプションは制御されたボキャブラリーでもありますが、単一の本体で制御が設定されるのではなく、このURLで使用されるドメイン・ネームおよびこのドメイン・ネームにマップされるマシンのIPアドレスをIBMが所有していることによって設定されます。

重要なことは、PRISMが抽象モデルではなくRDF/XMLシリアライゼーションに基づいていることです。私はこのコラムの前回の記事で、RDFのユーザーに対し、XMLシリアライゼーションではなく抽象モデルに注意を注ぐように強くお勧めしました。PRISMがこれに反しているのは理解できます。コンテンツ・プロバイダーに配慮して、どのXMLエレメントをメタデータ通信に組み込むのかを正しく指示する必要があるためと思われます。PRISMは構文レベルで強力なインターオペラビリティーを確立することを目指しています。このことを強調するために、PRISMは以前はDTDによって定義されていました。これはおそらく、出版向けであったというPRISMの起源から考えて当然の結論でしょう。

構文に焦点を当てることの不利な点は、RDF/XMLシリアライゼーションが各RDFモデルを表現できないことです。例えば、ある組織が、XML接頭部/ローカル名の組み合わせに分けることのできないURIフォームを使用してコンテンツを識別する必要がある場合、PRISMを使用してこのようなコンテンツを記述する方法を見出すことは困難です。利点をあげると、PRISMは、独立の文書の中で使用することもコンテンツに組み込むこともできるという、RDF/XML仕様の柔軟性を利用しています。通常の場合と同様に、rdf:RDF ラッパー・エレメントによってメタデータがカプセル化されます。


彩りの追加

PRISMでは、Dublin Coreで許容される基本的な記述を拡張するためのプロパティーのセットも定義されています。これらのプロパティーは、以下のことをサポートします。

  • 一般特性の記述
  • コンテンツの出所
  • 出版に関連した重要な日時
  • コンテンツの件名およびトピック
  • リソース間の関係
  • コンテンツの使用を管理する権限および許可

これらすべてのプロパティーは、PRISMのコア・ネーム・スペースhttp://prismstandard.org/namespaces/1.2/basic/ に基づいています。これは、この仕様のセクションII 4.4で正式に定義されています。重要な注意点があります。それは、PRISM仕様の草案で使用されている例におけるPRISMネーム・スペースの定義が矛盾していることです。標準のネーム・スペースが使用されている例もありますが、どういう理由からか、http://prismstandard.org/namespaces/basic/、さらにはhttp://prismstandard.org/namespaces/basic/1.2/ などの、異なるネーム・スペースが使用されている例もあります。私は、これらは単なるタイプミスであると考えています。

次のリストでは、この仕様で定義されている50ほどのPRISMプロパティーの中から、比較的興味深いものをいくつか選びました。

  • prism:category: コンテンツの性質またはジャンル。PRISMは、advertisement、cartoon、column、およびrecipe などの用語を含む、このプロパティーとして推奨される制御されたボキャブラリーを備えています。
  • prism:creationTime およびprism:modificationTime:コンテンツのライフ・サイクルにおける作成日付と修正日付。
  • prism:event: コンテンツで参照されたり記述されたりするイベント。
  • prism:location: コンテンツで参照されたり記述されたりする位置。
  • prism:person およびprism:organization:コンテンツで参照されたり記述されたりする人物または組織。
  • prism:isPartOf: 記述対象のリソースの物理的または論理的な一部であるリソース。prism:hasPart は、この逆の関係に当たります。
  • prism:isFormatOf: 記述対象のリソースの変形であるリソース。prism:hasFormat は、この逆の関係に当たります。これは、例えば印刷形式または電子形式のリソースに関連します。
  • prism:isReferencedBy: 記述対象のリソースを (引用などによって) 参照するリソース。prism:references は、この逆の関係に当たります。
  • prism:isTranslationOf: 記述対象のリソースを言語翻訳したものであるリソース。prism:hasTranslation は、この逆の関係に当たります。
  • prism:copyright: コンテンツの著作権表示。

リスト2 は、これらのPRISMコア・エレメントを使用してリスト1 を拡張した例です。

リスト2: コア・エレメントを使用してPRISMで正式に記述されたXML的思索コラムの第12回
<?xml version="1.0" encoding="UTF-8"?> 
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:prism="http://prismstandard.org/namespaces/1.2/basic/"
  xml:lang="en"
>
 <rdf:Description
    rdf:about="http://www.ibm.com/developerworks/xml/library/x-think12.html">
  <dc:description>
    A discussion of the broader context and relevance of XML/RDF techniques.
  </dc:description> <dc:title>Basic XML and RDF techniques for knowledge management, Part 7
  </dc:title>
  <dc:publisher>IBM developerWorks</dc:publisher>
  <dc:creator>Uche Ogbuji</dc:creator>
  <dc:subject>XML</dc:subject>
  <dc:subject>RDF</dc:subject>

  <prism:category>column</prism:category>
  <prism:organization>OMG</prism:organization>
  <dc:format>text/html</dc:format>
 </rdf:Description>
</rdf:RDF>

追加された素材は太字体で示してあります。私は、PRISMネーム・スペースを宣言し、このネーム・スペースからステートメントを追加しました。


カスタム制御されたボキャブラリー

PRISMで用意されている重要な機能として、独自の制御されたボキャブラリーを他の人々に明確にする正式な方法という面があります。この方法により、PRISMはXMLおよびRDFの基本的な拡張性を超えた、拡張性メカニズムを提供します。リスト1 および2 の記述を見ると、私がdc:subject プロパティーをXML およびRDF という単純な値で使用していることをお気付きになるはずです。しかしこれは、制御されたボキャブラリーから得られたものではないため、不明瞭かもしれません。例えば、鉱業に従事したことのある人は、RDF を誤解する可能性があります。鉱業ではこれは「refuse derived fuels (廃棄物利用燃料)」を意味する略語でもあるためです。私がここで言いたいことは、問題となるコンテンツが、W3C仕様の特定のペアに関するものであることです。しかし、PRISMは業界仕様に関する制御されたボキャブラリーを定義していないのです。代わりに、リスト3 のように、PRISMの機能を使用してこのようなボキャブラリーを自分で定義することにします。

リスト3: 正式な仕様の制御されたボキャブラリーの例
  <?xml version="1.0" encoding="UTF-8"?>
  <rdf:RDF
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:pcv="http://prismstandard.org/namespaces/1.2/pcv/"
     xmlns:u="http://uche.ogbuji.net/eg/pcv/specs/schema/"
     xml:lang="en" >
  <pcv:Descriptor rdf:about="http://www.w3.org/TR/REC-xml">
     <pcv:label>XML 1.0 Recommendation</pcv:label>
     <u:owner rdf:resource="http://w3.org"/>
  </pcv:Descriptor>
  <pcv:Descriptor rdf:about="http://www.w3.org/TR/REC-rdf-syntax/">
     <pcv:label>RDF Model and Syntax 1.0</pcv:label>
     <u:owner rdf:resource="http://w3.org"/>
  </pcv:Descriptor>
  </rdf:RDF>

ここで私は、仕様自体のURLをIDとして使用して、pcv:Descriptor というタイプの2つのリソースを定義しています。ここではpcv:label を使用しています。これは、PRISM対応のソフトウェアで使用するのに適したリソースを、人間が読めるような形で記述するための、rdfs:label のサブクラスです。そして最後に、RDF自体の一般的な拡張性を利用して、仕様とそれを所有する組織を結び付けるための、私自身の特別なプロパティーu:owner を作成しています。これで、この制御されたボキャブラリーを使用して、私のオリジナルのdc:subject よりも洗練されたステートメントを作成できるようになりました。リスト4 は、リスト1 からの抜粋で、変更後のsubjectステートメントを示しています。

リスト4: 制御されたボキャブラリーを使用するために更新されたdc:subject
  <dc:subject>
    <pcv:Descriptor rdf:about="http://www.w3.org/TR/REC-xml"/>
  </dc:subject>
  <dc:subject>
    <pcv:Descriptor rdf:about="http://www.w3.org/TR/REC-rdf-syntax/"/>
  </dc:subject>

この形式を使用する場合、PRISMを処理してリスト4 から制御されたボキャブラリーを含む文書を検索し、記述子リソースのラベルなどの有用なものを判別するためのソフトウェアが必要になります。これは必ずしも常に使用可能とはかぎりませんので、リスト5 に示すように、PRISMを使用してRDFの構文規則を利用し、このようなプロパティーをインラインで繰り返すという方法もあります。

リスト5: リスト4の制御されたボキャブラリーを、ラベル・プロパティーを繰り返して使用するように更新されたdc:subject
 <dc:subject>
    <pcv:Descriptor rdf:about="http://www.w3.org/TR/REC-xml">
      <pcv:label>XML 1.0 Recommendation</pcv:label>
    </pcv:Descriptor>
  </dc:subject>
  <dc:subject>
    <pcv:Descriptor rdf:about="http://www.w3.org/TR/REC-rdf-syntax/">
    <pcv:label>RDF Model and Syntax 1.0</pcv:label>
    </pcv:Descriptor>
  </dc:subject>

この方法の危険な点は、インライン・ラベルと外部の制御されたボキャブラリー文書の値との同期が失われる可能性があることです。


PRISMの課外活動

ここしばらくPRISMの開発が続けられ、かなり練れてきました。PRISM作業グループは、そのメンバー数も着実に増加し、豊富になりつつあるPRISMの実動におけるサクセス・ストーリーについて引用しています。私が出版に直接関係のないプロジェクトでPRISMを使用したのは、PRISMが基本的なDublin Coreプロパティーのいくつかを充実させる能力を備えているためです。PRISMはデータベース・プロジェクトで有効であり、特に、従来型のデータベースから得られたデータ・セットをXML文書システムに統合するためには、非常に役立ちます。

参考文献

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=XML
ArticleID=241766
ArticleTitle=XML的思索: PRISMを解明する
publish-date=10012002