uno*_*nor 90
虽然存在许多(技术上,较小的)差异,但这里有一些我认为重要的选择(使用我在网站管理员身上的答案作为基础).
由于W3C的HTML工作组没有发现编辑Microdata规范的志愿者,现在它只是一个W3C Group Note(见历史),这意味着没有任何进一步工作的计划.
因此,WHATWG的"HTML生活标准"中的微数据部分是Microdata可能发展的唯一地方.根据改变的内容,可能会发生他们的Microdata与W3C的HTML5不兼容.
更新: 2017年,工作再次开始,旨在将微数据发布为W3C推荐标准.
RDFa作为W3C推荐标准发布.
微数据只能用于(X)HTML5(分别由WHATWG定义的HTML).
RDFa可以用于各种主语言,即几种(X)HTML变体和XML(因此也可以在SVG,MathML,Atom等中使用).
并且可以支持新的主机语言,因为RDFa Core "是用于以任何标记语言表达结构化数据的属性的规范".
在Microdata中,对同一内容使用多个词汇表更难,有时甚至是不可能的.
由于使用了前缀,RDFa允许混合词汇表.
微数据不提供使用反向属性的方法.对于没有定义反向属性的词汇表,您需要这个(例如,它们只定义parent
而不是parent
&child
).流行的Schema.org就是这样一个词汇表(只有少数几个例外).
虽然W3C Note Microdata to RDF定义了实验itemprop-reverse
,但该属性不是W3C和WHATWG的微数据的一部分.
RDFa支持使用反向属性(使用rev
属性).
通过使用Microdata,您不是直接参与语义Web(并且AFAIK Microdata不打算参与),主要是因为它没有被定义为RDF序列化(尽管有方法从Microdata中提取RDF).
规范RDFa Core和HTML + RDFa可能比HTML微数据更复杂,但它不是"公平"比较,因为它们提供更多功能.
与Microdata类似的是RDFa Lite("确实适用于大多数日常需求"),至少在我看来,这个规范并不像Microdata那么复杂.
如果您想支持特定的消费者(例如,搜索引擎和浏览器插件),您应该检查他们关于支持的语法的文档.
如果你只想学习一种语法并且没有特定的消费者,(注意,主观意见!)请使用RDFa.为什么?
请注意,您也可以对同一内容使用多种语法,因此您可以使用Microdata 和 RDFa(以及 Microformats 和 JSON-LD,以及 ......)以获得最大兼容性.
这是一个简单的Microdata片段:
<p itemscope itemtype="http://schema.org/Person">
<span itemprop="name">John Doe</span> is his name.
</p>
Run Code Online (Sandbox Code Playgroud)这是使用RDFa(Lite)的相同代码段:
<p typeof="schema:Person">
<span property="schema:name">John Doe</span> is his name.
</p>
Run Code Online (Sandbox Code Playgroud)这里两个语法一起使用:
<p itemscope itemtype="http://schema.org/Person" typeof="schema:Person">
<span itemprop="name" property="schema:name">John Doe</span> is his name.
</p>
Run Code Online (Sandbox Code Playgroud)但通常没有必要/建议沿着这条路走下去.
lin*_*ark 31
您从任何语义格式中获得的主要优势是消费者能够重用您的数据.
例如,像谷歌这样的搜索引擎是重用您的数据来显示Rich Snippets的消费者,例如:
为了确定哪种格式最佳,您需要知道要定位的消费者.例如,谷歌在他们的常见问题解答说,他们只会处理微数据(尽管测试工具现在可以使用RDFa,因此他们可能接受RDFa).
除非您知道您的目标消费者只接受RDFa,否则您最好使用微数据.虽然许多消费RDFa的服务(例如语义搜索引擎Sindice)也接受微数据,但微数据消费服务不太可能接受RDFa.
这很长,但是你会得到这个问题最全面的答案之一是Jeni Tennison的博客文章:Microdata和RDFa和谐共处
归档时间: |
|
查看次数: |
18370 次 |
最近记录: |