在成功学习 RDFa Lite 之后,我目前正在自学 RDFa Core 1.1。直截了当,我无法理解两件事: and 之间的区别property
和andrel
之间的区别。resource
about
请用比规范更简单的术语向我解释:)
在成功学习 RDFa Lite 之后,我目前正在自学 RDFa Core 1.1。直截了当,我无法理解两件事: and 之间的区别property
和andrel
之间的区别。resource
about
请用比规范更简单的术语向我解释:)
property
与rel
:
这两个属性都表示一个三元组的谓词,例如rel="http://purl.org/dc/terms/creator
,它是谓词... has as a creator: ...
。
不同之处在于,他们从哪里获取他们的对象。稍微简化一下,规则property
是:对象被采取......
content
属性,或者,如果标签中不存在该属性,datatype
标签中不存在 attr :) 来自有效resource
属性,或者,如果标签中不存在 attr,datatype
标签中不存在 attr :) 来自有效href
属性,或者,如果标签中不存在 attr,datatype
标签中不存在 attr :) 来自有效src
属性,或者,如果标签中不存在 attr,稍微简化,rel
有两个方面的不同:
resource
或 ahref
或src
属性中获取其对象。property
如果与typeof
(cf. 2 ) 一起使用会导致链接。about
与resource
:
about
是指示三元组主题的属性。的规则resource
更复杂:它可能表示一个主题或一个对象,并且链接在这里也起作用。
恕我直言,链接是 RDFa 中最复杂和最令人困惑的部分(并且除了语法糖之外没有给你更多)。我会避免链接。这可以通过避免属性rel
、和来实现rev
,这同时带来了一些进一步的简化。因此,我只使用以下属性:resource
typeof
about
为主题property
对于谓词content
对象的或href
或src
(或元素的内部内容),遵循上述规则lang
用于对象文字的语言标签,例如lang="en"
datatype
用于对象文字的数据类型标记prefix
(但在文档中只有一次),这样我就可以通过前缀来缩写 URL,例如property="dc:creator"
vocab
(在文档中很少且最多一次),以便我可以隐式缩写 URL,例如property="creator"
.(并且我使用标签<base href="...">
来指示文档的 URL 基值。)
这是 RDFa 的一个严格、安全、易于使用和易于解析的子集,并且允许表达您想要的任何三元组。
我个人建议忽略/避免使用 rel 和 about,如果您遵循经验法则,即您不应该通过在给定的 HTML 元素中填充尽可能多的属性来尝试变得太聪明,那么编写 RDFa 并不是真正必要的。出于向后兼容性的原因,周围存在。1.1 的其他属性值得学习:内容和数据类型。
Stephan 的建议大体上与RDF Lite 1.1保持一致,它不包括这些原因@rel
或@about
正是出于这些原因。
另一个好的经验法则是不要尝试在给定元素上包含多个实体的标记,这通常是指定图像许可的示例。
@property
并且@rel
彼此非常相似,但在 RDFa 1.0 中有不同的用途,但这令人困惑,即使对于专家来说也是如此。(以前,@rel
用于指定作为其他节点的对象,并@property
用于指定文字值。虽然还有一些差异,但坚持非聪明的标记,你可以@property
用@rel
.
同样,@about
可以避免只使用@resource
. 不同之处在于@about
设置当前主题和@resource
当前对象,但对于子节点parent object
(取自父节点current object
变为current subject
。关于 的存在还有另一个细微差别@typeof
,但如果您只使用@resource
,它几乎可以满足您的需求。
要总结 RDFa Lite 1.1 的最佳实践,您还可以查看RDFa 1.1 Primer:
@vocab
, @prefix
, @property
, @resource
, 和@typeof