将要描述的三种We语义化技术分别是RDFa、Microformat和Microdata,除了RDFa比较繁锁,而且主要是为XML文档服务,Microformat和Microdata都更适合HTML。Microformat和Microdata各有优缺点。Microformat在于重用现在的属性和元素,而microdata则是通过在元素上添加4个属性来完成了。
Resource Description Framework – in –attributes(RDFa)是W3C推荐用来在HTML,XHTML或其它基于XML的文档中嵌入元数据的一种框架。只不过,所有这些元数据全都是通过attribute的方式实现的。
The essence ofRDFa is to provide a set of attributes that can be used to carry metadata in anXML language (hence the 'a' in RDFa).
有一个术语先要学习一下:搭配资源(Partnersource,the resource that the metadata is about)。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="XHTML+RDFa 1.0" xml:lang="en"> <head> <title>John's Home Page</title> <base href="http://example.org/john-d/" /> <meta property="dc:creator" content="Jonathan Doe" /> <link rel="foaf:primaryTopic" href="http://example.org/john-d/#me" /> </head> <body about="http://example.org/john-d/#me"> <h1>John's Home Page</h1> <p>My name is <span property="foaf:nick">John D</span> and I like <a href="http://www.neubauten.org/" rel="foaf:interest" xml:lang="de">Einstürzende Neubauten</a>. </p> <p> My <span rel="foaf:interest" resource="urn:ISBN:0752820907">favorite book is the inspiring <span about="urn:ISBN:0752820907"><cite property="dc:title">Weaving the Web</cite> by <span property="dc:creator">Tim Berners-Lee</span></span> </span> </p> </body> </html>
<html prefix="dc: http://purl.org/dc/elements/1.1/" lang="en"> <head> <title>John's Home Page</title> <link rel="profile" href="http://www.w3.org/1999/xhtml/vocab" /> <base href="http://example.org/john-d/" /> <meta property="dc:creator" content="Jonathan Doe" /> <link rel="foaf:primaryTopic" href="http://example.org/john-d/#me" /> </head> <body about="http://example.org/john-d/#me"> <h1>John's Home Page</h1> <p>My name is <span property="foaf:nick">John D</span> and I like <a href="http://www.neubauten.org/" rel="foaf:interest" lang="de">Einstürzende Neubauten</a>. </p> <p> My <span rel="foaf:interest" resource="urn:ISBN:0752820907">favorite book is the inspiring <span about="urn:ISBN:0752820907"><cite property="dc:title">Weaving the Web</cite> by <span property="dc:creator">Tim Berners-Lee</span></span> </span> </p> </body> </html>
你也许已经发现foaf前缀没有用声明,其实RDFa 1.1自动会把一些流行的词汇前缀自动加入。http://www.w3.org/2011/rdfa-context/rdfa-1.1
Microformat通过重用现有的HTML/XHTML标签或web页面的某些属性来传送(convey)元数据。
从技术层面来说,microformat主要使用下面几个属性来指示元数据的存在:
l class: classname
l rel: a锚元素目的地址的描述
l rev: 引用文档的反关系
The birds roosted at <span class="geo"> <span class="latitude">52.48</span>, <span class="longitude">-1.89</span> </span>
网络爬虫(web crawlers)可以从microsformat收集更多关于网络资源的数据,邮件或行程安排等软件可以从microformat获取更多详细信息。
已经有几个扩展(extensions),Operator为firefox,Oomph为IE,提供了检测microformat的能力。雅虎的Query Language可以从网络页面中抽取microformat。Google,2009年5月声明,他们将把页面中抽取到的hCard, hReview, hProduct等microformat也放在搜索结果页面。Bing和Yahoo!也正在实现获取microformat。
Microdata是专门为HTML提供的,搜索引擎、网络爬虫和浏览器都可以从页面中抽取和处理microdata。这个方式比RDFa和Microformats都要简单,而且机器可读。
l itemscope – 创建item,并暗示元素的子节点有关于这个item的信息;
l itemtype – 描述item和它的属性上下文的一个有效的词汇URL;
l itemprop – 指示包含该属性的标签包含item某个属性的值;这个值一般是字符串,也可能是URL,比如img的src或a元素的href属性;
l itemref – 表明还有一些属性不在有itemscope标明的子元素里,而是在文档的其它地方,itemref的值是元素的id,可以是多个id。
<section itemscope itemtype="http://schema.org/Person"> Hello, my name is <span itemprop="name">John Doe</span>, I am a <span itemprop="jobTitle">graduate research assistant</span> at the <span itemprop="affiliation">University of Dreams</span>. My friends call me <span itemprop="additionalName">Johnny</span>. You can visit my homepage at <a href="http://www.JohnnyD.com" itemprop="url">www.JohnnyD.com</a>. <section itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> I live at <span itemprop="streetAddress">1234 Peach Drive</span>, <span itemprop="addressLocality">Warner Robins</span>, <span itemprop="addressRegion">Georgia</span>. </section> </section>
l Google可以在搜索结果页面使用microdata。
l 几个著名的浏览器已经提供了microdata的DOM API:
浏览器 |
版本 |
是否支持 |
Maxthon |
3.3.9.600 |
Yes |
Opera |
11.60 |
Yes |
Firefox |
16.0a1 |
Yes |
Chrome |
No |
|
Internet Explorer |
No |
|
Safari |
No |
l 用来操作microdata的JS库包括: MicrodataJS,jQuery,其中jQuery模拟了DOM API。