在成功学习 RDFa Lite 之后,我目前正在自学 RDFa Core 1.1。直截了当,我无法理解两件事: and 之间的区别property和andrel之间的区别。resourceabout
请用比规范更简单的术语向我解释:)
在成功学习 RDFa Lite 之后,我目前正在自学 RDFa Core 1.1。直截了当,我无法理解两件事: and 之间的区别property和andrel之间的区别。resourceabout
请用比规范更简单的术语向我解释:)
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,这同时带来了一些进一步的简化。因此,我只使用以下属性:resourcetypeof
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