このドキュメントは
A strawman Unstriped syntax for RDF in XML
http://www.w3.org/DesignIssues/Syntax.html
の和訳です。
この文書には和訳上の誤りがありえます。
内容の保証はいたしかねますので、必ずW3C Webサイトの正式版文書を参照して下さい。

Status: Strawman draft.

これはセマンティックWeb Toolboxのページの一部として書かれたもので、付随的に生まれました。


A strawman Unstriped syntax for RDF in XML

(このドキュメントの中で、名前空間接頭辞を伴ったXML要素は読み手がわかる何かを指していることとして定義されていると仮定されている。そして接頭辞を伴わない要素の名前はこのドキュメントの中で紹介されている新しい特色のために使われている。)

この文法とRDF 1.0 M&Sとの主要な差異は、RDF edgesが要素と一致していることと、RDFノードが暗に示されていることである。基本的にparseType=resourceがデフォルトのM&S文法である。

Syntax requirements 文法要件

基本的にこの特定の文法を駆動する物事は、
  1. シリアライゼーションのためにW3CポリシーとしてXMLを使うことが要求されるもの(excutiatingly painfulなところ以外)
  2. 入れ子になった要素が互い違いにノードとアークを記述しているRDF M&S 1.0の”stiping”をもつことは要求されないもの;
  3. RDFは他のXML情報の中に入れてもたれる、そして文法の中に他のXML情報を挿入させることができる;
  4. 効果的に情報を表現し、名前空間スキーマを読む必要なしに、RDFグラフを抽出するための文法をRDFパーサに気付かせるドキュメントを作成することを可能にすべきである。
  5. RDFはオプションとなり得る拡張をもつことができる。

Assumed syntax 想定上の文法

私はToolboxのページの目的のために、以下のカテゴリに分類されるXML要素があるXML内のデータのための文法を仮定する。

RDF-Property element RDF-Property要素

この要素はグラフ内のアークに関する情報を紹介する。RDF内のノードは本質的にそれらのアークを除いて全く情報を持っていないので、プロパティが実際にRDF情報を記述する唯一の方法である。Property要素は以下のようにはたらく:
  1. XML要素はスキーマの中でRDFアサーションとなるように宣言され、それゆえそのように取り扱われる可能性がある。これらはproperty elementsとして知られる。
  2. XMLドキュメント内の任意の場所にdefault subject setが存在するかもしれない。これはその他は示さない任意のプロパティ要素のサブジェクトである。
  3. rdf:for属性は1つのプロパティ要素のためのサブジェクトを別な方法で示す。(これは手っ取り早い方法である。)
  4. 任意の要素上のrdf:about属性は、任意の包含された要素のためのデフォルトサブジェクトを設定する。(RDF M&Sと同じ)
  5. 要素上のrdf:fyi属性は任意の要素のためのデフォルトサブジェクトを取り除き、別な方法がない限りその子孫が明示される。RDFパーサはRDFセマンティクスが続く限りその要素とその内容を無視するかもしれない。
  6. 任意の要素上のrdf:extend属性は、要素のセマンティクスがRDFパーサと関連があり、仕様に従って解釈されなければならないことを示す。そしてこれが実行できないところはRDFセマンティクスが定義されていない(一般的にエラーの状態は評価の試みに起因する)。この要素はRDF-opaque要素として知られる。
  7. プロパティ要素がrdf:value 属性を持つときは、それはプロパティの値を示す。これは、要素の中身に値を持つためのまさに手っ取り早い方法である。
  8. プロパティ要素がatomic (string) contentを持つ場合、それはステートメントのオブジェクトである(これとその前のとが存在するとき、それらは釣り合わなければならない)。
  9. もしプロパティ要素が子要素を持つ場合、その値はデフォルトサブジェクトとなるRDFノードである(parsetypeがコンテントがリテラルXMLであるように宣言するために使われていない限り)。

RDF-Transparent

セマンティックコンテクストは変化しない。そして例は、HTMLドキュメント中にRDFを含める(そしてRDFを抽出する)ことを単純にするために、全てHTMLタグであるかもしれない。

RDF-Opaque

RDFパーサは要素やその内容について、要素のセマンティクスを知らない限り、何も推測することができない。例:<sense:room-temperature/>

RDF-Opaqueタグは、それが入っている名前空間に従いながら、パーサによって理解される。

toolboxの中で、私達は新しい特色を紹介するでしょう、それらは既存のXML-RDF表記法中に実際に普通の手書きで表現されているのだが、実際に高いレベルでより簡潔なフォームにおいて利用できる必要がある。それらはそれゆえロジックのためのRDF-XML文法の拡張である。例:<not>

RDF空間中のRDF-Opaqueタグはパーサに従うことにより理解される。もし定義されたサブジェクト(デフォルトもしくは別の)そして別のRDF-Transparent(デフォルト)もしくはOpaque(特定できれば)があれば、他のタグはプロパティ要素とみなされる。
タグがRDF-Opaqueであるかに関する情報は、それらを利用したドキュメントもしくは、スキーマ内のドキュメント(もしくは本当に原理的には他のどの場所でも)によって与えられるかもしれない。それは要素によってなされるかもしれない、もしくは、もしあてはまるならば、全体の名前空間。

この文法は例として何か持つために書かれていて、この目的の一部はXMLにおけるロジックの表記のフィージビリティである。見なれない文法における作業が要求される努力に対して、私は読者にお詫びする。後でより単純な文法の要求があり、その結果これはstrawmanとして少し整理された。


Examples for rdf:for and rdf:about rdf:forとrdf:aboutの例

以下のアサーションのためのサブジェクトの定義のためだけに要素を作成する努力は、時に少々つらいものである。標準の良く知られ、必須と考えられた属性を作成することはこれを容易にするだろう。考えてみよう、例えば、rdf:about=fooは常に包含されたプロパティ要素にデフォルトで参照されるものを設定する。そしてrdf:for=barは要素そのもののためにそれを上書きしている。(rdf:forは要素がRDFプロパティであったことをも意味する。)
<dc:author rdf:for="thebook" value="Ora"/>
は1つのプロパティを明示する、より簡易な方法である。
<frontm rdf:about="theBook">
   <z:date>sdfghjk</z:date>
   <z:title>Makeing more pancakes</z:title>
   <z:obsoletes> 
      <!-- default subject is no longer theBook --!>
      <z:title>Making pankakes</z:title>
      <z:price>$3.00</z:price>
   </z:obsoletes>
   <z:price>$6.00</z:price>
   <z:price for="anotherBook">$78.00</z:price>
</frontm>
(rdf:aboutとrdf:forに関して私が抱える唯一の問題は、これを取り扱うことができることが、どの意味的認識可能なパーサにとっても必須となることである、それを無視することは当然不可能なので。)

RDF:Description

RDFノードに関する情報を紹介しようとするきには、基本的にこれはrdf:about属性をもった任意の要素によってなされる。入れ場所を提供する都合の良い他の要素がない場合は、rdf:description要素が使われるだろう。
<rdf:description rdf:about="theBook">
   <dc:author>Ralph</dc:author>
   <http:from>swick@w3.org</http:from>
</rdf:description>
もしrdf:about属性が存在するならば、それはノードがURIのあるリソース(ドキュメント)を表現することを示す。その属性は省かれるかもしれない。

RDF:Property

XML要素名をプロパティに使うことが難しかったり不可能だったりすることがある。例えば、各々が異なった名前空間からなる、リスト化されたたくさんのプロパティがあるときや、プロパティが変数の値をとらなければならないときである。(はい、私はこれがロジックを最初に狂わすと理解していますが、ステートメントを引用し参照する我々の能力はやはりその段階を生じさせると考えています。)
<rdf:property pname="http://dc.org/dc1#author"
   rdf:for="theBook"
   rdf:value="Ralph">
これは、例えば、パーサの出力をダンプするときのシリアライゼーション文法としても役に立つ。

NOTES ノート

See also

Identifying things in RDF

RDF in HTML - Transparent or not? HTML中のRDF-トランスペアレントか否か?

慣習を用いるとRDFをHTML内に入れるのは2つの方法がある。1つは全てのHTML要素をRDF-transparentに宣言することができた。そのケースではRDFはどこにでも差し込まれる。

もう1つはそれらを近づけることができ、その結果、(XHTMLスキーマに挿入されたRDFスキーマのコード内に)それらを不明瞭に宣言することによる慣習によって、URIをあてがうためにRDFサブジェクトがセットされる。このケースではHTMLのHEAD(もしくはHTMLドキュメントコンテナかもしれない)が、コンテキストがドキュメントそのものであるノード要素とみなされることを私は提案する。
Aのコンテキストをリンク先に変えることを私は提案する−なぜなら人はしばしばそれに関する情報を挿入するきっちりした方法を欲するので。

Examples:
 
Element RDF subject (URI)
HTML:HTML The document itself ("")
HTML:HEAD The document itself ("")
HTML:A The linked document (value of href)
HTML:BLOCKQUOTE The quoted document

References

See also:

So much for syntax: on to the semantic toolbox.

Last change $Id: blank.html,v 1.1 1999/05/24 14:24:19 timbl Exp $
Tim BL