“RDFa, like Microformats [MICROFORMATS] and Microdata [MICRODATA], enables us to talk about things on the Web such that a machine can understand what we are saying.”
就如上面那句话说的,RDFa的作用就是为文档添加机器可读的语义信息。
RDFa是W3C的一个推荐标准,用于在HTML、XHTML和XML文档中添加attribute级的扩展,将元数据绑定在文档中。
RDFa在2004年被Mark Birbeck首次提出。早期的RDFa1.0是XHTML2.0工作草案的一部分,只能够在基于XML的文档中添加元数据。但是随着XHTML2.0宣告夭折,RDFa开始向支持非XML文档的方向发展,2012年六月RDFa1.1成为推荐标准,并支持HTML。
RDFa只定义了嵌入结构化数据的文法,它依赖于特定的词典来表示具体的语义,这意味着要使用RDFa就必须找到一个适用的词典或自己创造。这里面隐含了良好的可扩展性,但是同时也有风险,词典的碎片化和不兼容将会成为RDFa发展的阻碍。
RDFa现在有两个分支,分别是Core和Lite,Core是RDFa1.1的完整版本,Lite是RDFa1.1的轻量级版本,下面通过介绍Lite来简单介绍RDFa的文法。RDFa主要通过扩展标签的属性(Attribute)来承载语义信息。在Lite中总共只定义了5个属性,分别是vocab, typeof, property, resource和prefix。
属性vocab指的是当前所用的词典,由于RDFa对词典的依赖性,所以这个属性是必须的;
属性typeof指代信息的类型,例如类型名可以为:People, Places, Reviews, Recipes, Events;
属性property指代该类型所具有的特性,例如类型Person可以有人名(name)、电话(telephone)等;
属性resource用于标记所描述的信息;
属性prefix用于对vocab所声明的词典中没有涉及的词进行扩展。
代码示例:
<p vocab="http://schema.org/" prefix="ov: http://open.vocab.org/terms/" resource="#manu" typeof="Person">
My name is
<span property="name">Manu Sporny</span>
and you can give me a ring via
<span property="telephone">1-800-555-0199</span>.
<img property="image" src="http://manu.sporny.org/images/manu.png" />
My favorite animal is the <span property="ov:preferredAnimal">Liger</span>.
</p>