6

私は現在、RDFa Lite をかなり簡単に習得した後、RDFa Core 1.1 を独学で学んでいます。はっきり言って、 と の違いと と のproperty違いの2 つが理解できません。relresourceabout

仕様よりも簡単な言葉で説明してください:)

4

3 に答える 3

2

propertyrel:

両方の属性は、トリプルの述語rel="http://purl.org/dc/terms/creatorを示します。たとえば、述語は... has as a creator: ...です。

違いは、どこからオブジェクトを取得するかです。少し単純化されたルールpropertyは次のとおりです。オブジェクトは取得されます...

  • 有効なcontent属性から、またはこれがタグに存在しない場合は、
  • (datatypeタグに attr が存在しない場合:) 有効なresource属性から、またはこれがタグに存在しない場合は、
  • (datatypeタグに attr が存在しない場合:) 有効なhref属性から、またはこれがタグに存在しない場合は、
  • (datatypeタグに attr が存在しない場合:) 有効なsrc属性から、またはこれがタグに存在しない場合は、
  • タグで始まる要素の内部コンテンツから。

少し簡略化されてrelいますが、次の 2 つの点で異なります。

  • そのオブジェクトは、またはresource属性からのみ取得されます。hrefsrc
  • 同じタグの属性からオブジェクトを取得するだけでなく、子孫タグから取得することもできます。全体のメカニズムは「連鎖」と呼ばれます。1通常、ただし、property一緒に使用すると連鎖を引き起こす可能性がありますtypeof(cf. 2 )。

aboutresource:

aboutトリプルの主語を示す属性です。のルールresourceはより複雑です。主語または目的語を示す場合があり、ここでも連鎖が役割を果たします。

私見ですが、連鎖は RDFa の中で最も複雑で紛らわしい部分です (そして、構文糖衣以上のものは得られません)。私は連鎖を避けます。relこれは、属性、revresourceおよびを回避することで可能になりtypeof、同時にさらに単純化されます。したがって、次の属性のみを使用します。

  • about主題のために
  • property述語
  • contentor hrefor src(または要素の内部コンテンツ) objectの場合、上記のルールに従います
  • langオブジェクトリテラルの言語タグ用。lang="en"
  • datatypeオブジェクトリテラルのデータ型タグ用
  • prefix(ただし、ドキュメント内で 1 回だけ)、たとえば、プレフィックスを付けて URL を省略できるようにします。property="dc:creator"
  • vocab(めったになく、ドキュメント内で最大でも 1 回)、URL を暗黙的に省略できるようにしますproperty="creator"

(そして、タグを使用して<base href="...">、ドキュメントの URL ベース値を示します。)

これは、RDFa の厳密で安全、使いやすく、解析しやすいサブセットであり、任意のトリプルを表現できます。

于 2013-09-17T15:15:55.163 に答える
1

個人的には、rel などの使用を無視/回避することをお勧めします。特定の HTML 要素にできるだけ多くの属性を詰め込んで賢くなりすぎないようにするという経験則に従う場合、これらは RDFa を記述する必要はありません。下位互換性の理由から存在します。ただし、1.1 のその他の属性である content と datatype は学ぶ価値があります。

于 2013-06-05T05:11:02.620 に答える
1

Stephan のアドバイスは、 RDF Lite 1.1に一般的に準拠してい@relます。RDF Lite 1.1には含まれていません@about

もう 1 つの適切な経験則は、特定の要素に複数のエンティティのマークアップを含めようとしないことです。これは、多くの場合、画像ライセンスを指定する例でした。

@property@relは互いに非常に似ていますが、RDFa 1.0 では異なる目的を果たしていましたが、これは専門家にとっても混乱を招きました。(以前は、@relは他のノードであるオブジェクトを指定するため@propertyに使用され、リテラル値を指定するために使用されていました。残りのいくつかの違いはありますが、巧妙でないマークアップに固執すると、 でできることはすべて で行う@propertyことができます@rel

同様に、@about単に使用することを避けることができます@resource。違いは@about、現在のサブジェクトと現在のオブジェクトを設定することですが@resource、子ノードの場合、(parent object親から取得したものは になります。current objectcurrent subject@typeof@resource

RDFa Lite 1.1 のベスト プラクティスを要約するには、RDFa 1.1 Primerも参照してください。

  • @vocab@prefix@property@resourceおよび@typeof
  • 特定の要素で複数のステートメントを作成しないでください
于 2013-06-07T23:22:16.283 に答える