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