我对RDFa和微数据有一个快速的问题。
我目前的理解是RDFa是RDF实现到HTML中的,但是对于像我这样的新开发人员来说却很复杂,Microdata看起来确实很容易实现。
这两种语义格式的其他优点和缺点是什么?
最佳答案
微数据和RDFa之间的区别
尽管有很多(技术上的,较小的)差异,但这里有一些我认为很重要的差异(以my answer on Webmasters为基础)。
技术指标
因此,WHATWG的“HTML生活标准”中的Microdata section是唯一可以发展微数据的地方。根据更改的内容,它们的微数据可能会与W3C的HTML5不兼容。
更新:在2017年,work started again,旨在将微数据作为W3C建议发布。
适用性
并且可以支持新的宿主语言,因为RDFa Core“是用于以任何标记语言表达结构化数据的属性的规范”。
使用多个词汇
使用反向属性
parent
而不是parent
和child
),您需要使用它。流行的Schema.org就是这样的词汇表(只有一些较旧的异常(exception))。尽管RDF的W3C注意微数据定义了实验性
itemprop-reverse
,但此属性不是W3C或WHATWG的微数据的一部分。 rev
attribute)。 语义网
规格RDFa Core和HTML+RDFa可能比HTML Microdata更复杂,但是由于它们提供了更多功能,因此这并不是“公平”的比较。
类似于Microdata的是RDFa Lite(“它可以满足大多数日常需求”),并且至少在我看来,此规范比Microdata复杂得多。
该怎么办?
如果要支持特定使用者(例如,搜索引擎和浏览器加载项),则应查看其有关受支持语法的文档。
如果您只想学习一种语法并且没有特定的使用对象,(请注意,主观意见!)可以使用RDFa。 Why?
不能决定吗?同时使用。
请注意,you can also use several syntaxes具有相同的内容,因此可以使用Microdata和RDFa(以及Microformats,JSON-LD和…)来实现最大的兼容性。
<p itemscope itemtype="http://schema.org/Person">
<span itemprop="name">John Doe</span> is his name.
</p>
<p typeof="schema:Person">
<span property="schema:name">John Doe</span> is his name.
</p>
<p itemscope itemtype="http://schema.org/Person" typeof="schema:Person">
<span itemprop="name" property="schema:name">John Doe</span> is his name.
</p>
但是通常不必/不建议沿着这条路线走。