* RDFa 処理器 (RDFa 1.0) [2] [DFN[[RUBYB[適合]@en[conforming]] RDFa [RUBYB[処理器]@en[processor]]]]は、 [[RDFa]] 仕様書に従って [[RDF]] [[三項組]]を取り出す[[処理器]]です。 ** 仕様書 [REFS[ -[1] [CITE@en[RDFa in XHTML: Syntax and Processing]] ([TIME[2008-10-14 00:17:32 +09:00]] 版) ]REFS] ** 要件 -[3] [[消費応用]]に対し、 [[RDFa]] 仕様書の[[処理モデル]]の章の規則によって生成した[[三項組]]すべてを含む単一の [[RDFグラフ]]を提供しなければ[['''なりません''']] -[5] >>4 の追加[[三項組]]を[[既定グラフ]]において提供しては[['''なりません''']] ** 許可 -[4] [[RDFa]] 仕様書の規則に則らない[[三項組]]を提供して[['''構いません''']] ** 関連 [6] [[適合RDFa利用者エージェント]]との関係は明示されていません。 * RDFa 処理器 (RDFa 1.1) [17] [[RDFa]] が含まれる[[文書]]を処理して[[グラフ]]を取り出すものを [DFN[RDFa [RUBYB[処理器]@en[processor]]]]といいます。 [15] [[RDFa]] の処理は[[文書木]]に対する[[探索]]として定義されています。[[文書]]オブジェクトから順に[[子要素]]を[[文書順]]にたどって処理していきます。 [SRC[>>16]] ** 仕様書 [REFS[ - [14] [CITE@en[RDFa Core 1.1 - Second Edition]] ([TIME[2013-08-15 17:12:47 +09:00]] 版) - [16] [CITE@en[RDFa Core 1.1 - Second Edition]] ([TIME[2013-08-15 17:12:47 +09:00]] 版) ]REFS] ** 出力 [11] [DFN[[RUBYB[[[適合RDFa処理器]]]@en[conforming RDFa Processor]]]]は処理の結果として[DFN[[RUBYB[[[出力グラグ]]]@en[output graph]]]]と[DFN[[RUBYB[[[処理器グラグ]]]@en[processor graph]]]]を[[応用]]に提供しなければ[['''なりません''']]。 [SRC[>>5]] [12] [[出力グラフ]]は、 [[RDFa 1.1]] の処理モデルにより得られたすべての[[三項組]]からなる[[RDFグラグ]]です。 [SRC[>>5]] [13] [[処理器グラフ]]は、[[RDFa処理器]]が報告した[[エラー]]、[[警告]]、情報を集めたものです。 [SRC[>>5]] ** 評価文脈 [18] [[RDFa]] の処理は[DFN[[RUBYB[[[評価文脈]]]@en[evaluation context]]]]を使って行われます。 開始時には[DFN[[RUBYB[初期文脈]@en[initial context]]]]が使われ、[[子要素]]の評価の際はそれぞれのために作られた[[評価文脈]]が使われます。 [SRC[>>16]] [19] [[評価文脈]]には次の項目が含まれます [SRC[>>16]]。 [FIG[ -[DFN[[RUBYB[基底]@en[base]]]] -[DFN[[RUBYB[親主語]@en[parent subject]]]] -[DFN[[RUBYB[親目的語]@en[parent object]]]] -[DFN[[RUBYB[IRI 写像]@en[IRI mappings]]]]のリスト -[DFN[[RUBYB[不完全三項組]@en[incomplete triples]]]]のリスト -[DFN[[RUBYB[リスト写像]@en[list mapping]]]] -[DFN[[RUBYB[言語]@en[language]]]] -[DFN[[RUBYB[語写像]@en[term mappings]]]]のリスト -[DFN[[RUBYB[既定語彙]@en[default vocabulary]]]] ]FIG] [20] [[初期文脈]]は次のように定義されています。 [FIG[ - [[基底]]は処理する[[文書]]の[[基底URL]] [SRC[>>16]] - [[親主語]]は[[基底]]と同じ [SRC[>>16]] - [[親目的語]]は null [SRC[>>16]] - [[IRI写像]]のリストは空 ([[RDFaホスト言語]]が定義することもできる) [SRC[>>16]] - [[不完全三項組]]のリストは空 [SRC[>>16]] - [[リスト写像]]は空 [SRC[>>16]] - [[言語]]は null [SRC[>>16]] - [[語写像]]のリストは定義しない ([[RDFaホスト言語]]が定義して[['''構わない''']]) [SRC[>>16]] - [[既定語彙]]は定義しない ([[RDFaホスト言語]]が定義して[['''構わない''']]) [SRC[>>16]] ]FIG] ;; [21] 仕様書の規定は曖昧かつ分散しています。この程度の単純な定義くらいはっきり書けてほしいのですが・・・。 [22] [[評価文脈]]に関連して、処理中は次の一時変数が使われます [SRC[>>16]]。 [FIG[ - [DFN[[RUBYB[IRI写像の局所リスト]@en[local list of IRI mappings]]]]: 初期状態は空 - [DFN[[RUBYB[不完全三項組の局所リスト]@en[local list of incomplete triples]]]]: 初期状態は空 - [DFN[[RUBYB[言語]@en[language]]]]: 初期状態は空 - [DFN[[RUBYB[要素を飛ばす]@en[skip element]]]]フラグ - [DFN[[RUBYB[新主語]@en[new subject]]]] - [DFN[[RUBYB[現在特性値]@en[current property value]]]] - [DFN[[RUBYB[現在目的語資源]@en[current object resource]]]] - [DFN[[RUBYB[型付き資源]@en[typed resource]]]] - [DFN[[RUBYB[局所語写像]@en[local term mappings]]]] - [DFN[[RUBYB[局所リスト写像]@en[local list mapping]]]] - [DFN[[RUBYB[局所既定語彙]@en[local default vocabulary]]]] ]FIG] [23] [[RDFa]] の[[属性]]は[[ホスト言語]]によっては省くことができますが、 その場合当該[[属性]]に関する処理は行いません [SRC[>>16]]。 [27] [[CURIE]] を含む[[属性]]の処理については、 [[CURIE]] の項をご覧ください。 [[CURIE]] 等が[[非妥当]]である場合その値が無視されると規定されており、その結果[[属性]]が[[空]]とみなされることもあります。 空と[[属性]]が存在しないのは別の状態のようです。 [25] [DFN[[RUBYB[現在要素]@en[current element]]]]に対する [[RDFa]] の処理は次のように行われます [SRC[>>16]]。 [FIG[ = [24] 次の通り初期化します。 -- [[要素を飛ばす]]フラグは[[偽]]に -- [[新主語]]、[[現在目的語資源]]、[[型付き資源]]、[[不完全三項組の局所リスト]]は [[null]] に -- その他は[[評価文脈]]の値に = [26] [[現在要素]]の [CODE(HTMLa)@en[[[vocab]]]] [[属性]]の値があれば、それを[[局所既定語彙]]とします。空なら、[[ホスト言語]]によって規定された既定値 (または null) とします。 -- ここでいう既定値とは[[初期文脈]]の[[既定語彙]]と同じものでしょうか? -= [28] 値があれば ([[基底]], [CODE(URI)[[[http://www.w3.org/ns/rdfa#usesVocabulary]]]], [[局所既定語彙]]) の[[三項組]]を生成します。 = [29] [[現在要素]]で[[IRI写像]]が定義されていれば、[[IRI写像の局所リスト]]に追加します。既に同名のものがあれば上書きします。 == [30] [CODE(XML)@en[[[xmlns]]]] [[宣言]]があれば、[[名前空間接頭辞]]を[[接頭辞]]、[[属性値]]を [[IRI]] とする[['''べきです''']]。 --- この手順は[['''べき''']]レベルであり、[['''必須''']]ではないようです。 == [31] [CODE(HTMLa)@en[[[prefix]]]] [[属性]]があれば、そこにある[[接頭辞]]と [[IRI]] の組を最初から最後の順で処理していきます。 =- [32] ここで[[接頭辞]]は[[小文字]]に変換しなければ[['''なりません''']]。 =- [33] また [[IRI]] を[[解決]]しては[['''なりません''']]。 @@ ... ]FIG]