2012-02-20 12 views
1

通常、XMLの#は、短い文字列に接頭辞を付けると、XMLの「断片」を示すために使用されます。の後に@ID属性を使用して、そのページがロードされたときに、そのテキストがIDとして割り当てられているXHTML要素にジャンプするようにブラウザに指示するだけです。RDFaのポンド記号/ハッシュマークの完全な意味

RDFaでは、さまざまな用語ごとに異なるURLを作成する必要性を避けるために、語彙を作成するときにRDFaを使用する傾向があるようです。プライマリURIが「www.example.com/vocabulary/」のようなもので、ボキャブラリ作成者がボキャブラリの用語のURIに「www.example.com/vocabulary/term1」というURIを付けるオプションがあるとします。 「www.example.com/vocabulary#term1」などです。これらのURIが実際のWebページに解決されない奇妙なURIとして使用されることになったのであれば、それは違いなしの区別です。しかしながら、前記作成者が前記語彙を記述するためのウェブページを作成しようとする場合には、語彙全体の記述が「www.example.com/」というURLを有する1つのウェブページ上に現れるので、後者を使用する方が簡単かもしれないvocabulary/index.html "と#term1を指定すると、ブラウザは@ID属性を使用してterm1をIDとして設定したXHTML要素にジャンプします。

しかし、ここでの質問ですが、ハッシュマークはRDFaに関するさまざまな説明やチュートリアルでさまざまな方法で使用されています。私はそれがこのような@about属性内で使用さ見てきました。この場合

<span about="#jane"> 
    <!-- Other RDFa or XHTML in here. --> 
</span> 

、これらのチュートリアルは#jane一つの述語とオブジェクトを書くことができた、約、今対象URIであることを主張します。しかし、#janeがURIの場合、 "her"の完全なURIは何でしょうか?それは#janeが末尾に追加されたページの現在のベースURIでしょうか?そうであれば、about = "#jane"属性は同じXHTML要素のID = "jane"属性と同等の機能を提供しますか?しかしabout = "#jane"は多くの異なるXHTML要素で使用され、すべて同じIDを与えることになりますが、これは違法です。

ブランクノード(bNode)を作成しましたが、そのノードIDに#janeを使用して、そのブランクノードについてのことを開始しましたか?しかし、私は空のノードを作成する正しい方法は約= "[_:jane]"だと思って混乱しています。

ID = "jane"属性を含むXHTML要素について、同じページに作成されていてもいなくてもよいが、例ではあまり言及されていないのですか?

それともは説明せずに、単に一般的なチュートリアルの中に受け入れられている速記を使用して、これらすべてのチュートリアルと例のすべてのライターですが、彼らがをやっている一体?もしそうなら、私は彼らに会うときに頭の上を叩くつもりだと思う人がたくさんいます。

答えて

2

RDFaでは、about = "#xyz"は、次のRDF文のサブジェクトの識別子として相対URIを割り当てます。 グローバルURIがローカル識別子からどのように引き出されるかの正式な仕様は、少し複雑ですが、実際にはリソースのベースURIとフラグメント部分を加えたものになります。ドキュメントのベースURIが明示的に設定されていない場合、これは表現が取得されたURIになります。

ファイル製品がある場合。その後、ノード

<div typeof="http://purl.org/goodrelations/v1#Offering" about="#offer"> 
... 
</div> 

は、このデータ要素が割り当てられます、(ローカルファイル名とパブリックURIは、ハードワイヤードではないことに注意)URIの下で、これは使用可能

http://www.example.org/product.htmlをhtmlとしますグローバルURI

http://www.example.org/product.html#offer

は今、あなたはこれを何が必要なのですか?

最も一般的なケースは、このエンティティに関する別のリソース内のステートメントを作成して、巨大なグラフ内の同じオブジェクトに関するすべての情報を照合することができることです。

しかし同じIDを持つ「約」を複数回使用することが完全に合法であるため、同じHTML文書に散在しているメタデータを照合する技術を使用することもできます。

たとえば、あなたが使用することができ、この

<div typeof="http://purl.org/goodrelations/v1#Offering" about="#offer"> 
<span property="gr:name">ACME Anvil</span> 
</div> 

以下500行:名前とGR:説明プロパティが属する

<div typeof="http://purl.org/goodrelations/v1#Offering" about="#offer"> 
<span property="gr:description">The ACME Anvil is the most advanced anvil that money can buy</span> 
</div> 

アンRDFaのパーサは、その後、GRの両方があることを知っているだろう同じオブジェクト。

マイクロデータの構文では、同じオブジェクトを参照するメタデータを含むHTML要素を直接リンクするための、より洗練された「itemref」キーワードがあります。 RDFaでは、「約」と同じ識別子を再利用することで、HTMLに散在しているコンテンツを間接的に統合することしかできません。一言で言えばそう

:それは他のデータを使用してデータをリンクすることができますので、

  1. について使用RDFaの中には、非常に良い習慣です。やって!
  2. 製品にジャンプするフラグメント識別子が

    <div id="product"> blablabla> </div> 
    
    であれば..だから

を使用すると、およそプロパティのid =「#のXYZ」で、ナビゲーションの目的のために使用フラグメントを再利用しないでください。

は、データオブジェクトを識別するための#1 product_data 『「=について、しかし、例えば』#製品=については使用しないでください。

  1. 程度を使用することは完全に大丈夫です、LOと、同じ識別子で複数回属性同じオブジェクトについて話している場合(例:同じ製品、同じ会社)。

ここで、例でフラグメント識別子が普及しているのはなぜですか?そのテンプレートを使用して個々のページごとにグローバル識別子を簡単に取得できるため、1,000個の商品を販売しているショップを考えてください。

about="#product_data" 

を製品データマークアップ要素に追加すると、各単一商品には他人が参照できるグローバル識別子が付けられます。

警告:一部のテンプレートは、すべての個々のページのベースURIをメインページに設定します。この場合、すべての製品が同じURIを取得します。したがって、ベースURIをその個々のページの標準URI以外に設定すると、相対URIは機能しません。

+0

Martin、ありがとう – GrantRobertson

関連する問題