通过 RDFa 1.1 Lite 使您的 HTML 页面更加聪明

针对搜索引擎和其他复杂工具而优化

随着时间的推移,资源描述框架 (Resource Description Framework, RDF) 已逐渐演化为一种实用格式。具体来讲,RDF 注释 (RDFa) 作为一个在 Web 上以内联方式注释 HTML 文档的系统取得了巨大成功。谷歌和其他搜索引擎都以 Rich Snippets 的形式为它提供支持。Microdata 和 Schema.org 计划的出现为进一步简化 RDFa 带来了压力。W3C 采取了应对措施,生成了一个大大简化的版本:RDFa 1.1 Lite。在本文中,我们将了解 RDFa Lite,在造就和应对即将出现的 Rich Snippets 形势上领先一步。

Uche Ogbuji, 首席顾问, Fourthought Inc.

Uche Ogbuji 的照片Uche Ogbuji 是 Fourthought Inc. 的顾问和创立者之一,这是一家专门从事企业知识管理 XML 解决方案的软件供应商和咨询公司。Fourthought 开发了 4Suite,这是一个用于 XML、RDF 和知识管理应用程序的开放源码平台。Ogbuji 先生还是 Versa RDF 查询语言的主要开发人员。他是一位出生在尼日利亚的计算机工程师和作家,目前在美国科罗拉多州博耳得定居和工作。您可以通过他的 Weblog Copia 进一步了解 Ogbuji 先生。



2012 年 11 月 06 日

概述

在过去,Web 上的技术主要注重页面和站点的观感。最重要的考虑因素包括:直观且富有吸引力的设计、按预期运行的链接和 JavaScript 应用程序,以及最新的多媒体功能。在搜索引擎的搜索结果上名列前茅变得越来越重要。而且,搜索引擎看不到网站的任何设计或动态行为;它们看到的是标记,其中大部分是粗体、斜体或作为内容块被撇在一边。

常用缩略语

  • HTML:超文本标记语言
  • RDF:资源描述框架
  • SEO:搜索引擎优化

Web 作者开始认识到他们需要的不仅仅是表象上的花哨。他们需要向搜索引擎或其他这类软件定义结构化数据到底是什么。例如,这是一个价格,这是一场活动的日期,以及另一项是一个人的联系信息。人们需要一种 “数据 Web”,这个概念是对资源描述框架 (RDF) 感兴趣的人们长久以来关注的一个主要方面。

RDF 背后的理念非常简单,但不幸的是,定义、探讨和处理它的方式太过复杂。对于 Web 技术,一种常见的实用技巧是:“确保一位普通的 Web 开发者可在一天内学会它”。它被采用了许多年,但最终是 RDF 的一个特色版本通过了此考验:RDFa 1.1 Lite。

RDFa Lite 是 RDF 注释 (RDFa) 的一个简化版本。RDFa 是一种在 HTML 和类似词汇内编码整个 RDF 数据模型的机制。RDFa 太过复杂,难以满足 “在一天内学会它” 的门槛,所以 WHAT WG(推出 HTML 5 的小组)创建一种 HTML Microdata 规范。Microdata 变成了 Schema.org 的内核(参见 参考资料),后者是一项规范化在 Web 上标记数据的方式的计划。Microdata 自那时起就成为了一项 W3C 工作草案(参见 参考资料),但 RDF 和 RDFa 的拥护者看到了一个推广 RDFa 的机会,只要他们拥有一个像 Microdata 那么简单的子集。因此,您拥有一个成熟的数据模型的优势,但采用一种简单的语法。

去年,Schema.org 创始人举行了一次面向 Web 上的结构化数据领域的社区专家的研讨会。我参加了该研讨会,RDFa 规范的编辑 Ben Adida 在会上向我们展示他在 RDFa Lite 上的成就。基于非常积极的反馈,W3C 将这一工作继续了下去。RDFa 1.1 Lite 是来自 W3C 的一个非常简短的工作草案(在您阅读本文时可能已是一项完整的 W3C 建议)。

在本文中,我们将了解 RDFa 1.1 Lite,并且快速掌握如何生成可用于数据 Web 中的 HTML 页面。本文假设您已熟悉 XML。


阐述您内容的属性

兼容性

RDFa 的设计兼容 HTML 4、HTML 5 或 XHTML。

RDFa 涉及到标记一个网站中的结构化数据。您不是简单地关注应该向用户提供的内容观感。您可以将一个日期标记为日期,将个人的姓名标记为个人的姓名,将一个活动标记一个活动,将组织标记为组织等。RDFa Lite 将这一远大的抱负精简为可行的最简单的事物:仅向 HTML 或 XHTML 增加了 5 个属性。机器可轻松地解释这些属性,以从页面中提取有用的数据。简单来讲,这就是 RDFa Lite。

清单 1 是一篇在线文章的纯 HTML 示例。

清单 1. 一篇在线文章的纯 HTML
<body>

<a href="http://www.ibm.com/developerworks/">IBM developerWorks</a> >
 <a href="http://www.ibm.com/developerworks/web/">Web development</a> >
 <a href="http://www.ibm.com/developerworks/views/web/library.jsp">Technical library</a>

<div>
An introduction to RDF by <a href="http://uche.ogbuji.net">Uche Ogbuji</a>, 
Partner, Zepheira.
</div>

<div>Published: 01 Dec 2000</div>

<div>
<b>Summary</b>: This article introduces Resource Description Framework (RDF),

RDF 由 W3C 针对基于 Web 的元数据而开发,它使用 XML 作为一种交换语法。RDF 的基本目标是简化自主代理人的工作,这将通过改进搜索引擎和服务目录而细化 Web。请参阅 “RDF 简介”(developerWorks,2010 年 12 月)了解有关 RDF 的更多信息。

本文其余小节将探讨 清单 2 中的 HTML 注释,使用 RDFa Lite 演示来自规范的所有 5 个属性:vocabtypeofpropertyaboutprefix

清单 2. 用于 RDFa Lite 演示的 HTML
<div>Tags for this article: introduction, rdf, tutorial.</div>

<div>
  This article's text is suitable for a wide audience, with a Fog index of 10.2.
</div>

</body>

vocab 属性

清单 3 显示 body 元素的更改以包装整个文章描述。

清单 3. 使用 vocab 属性
<body vocab="http://schema.org">
    ...
</body>

vocab 属性设置 RDFa Lite 中的阶段。它指定默认在注释中使用的词汇表。该示例使用 Schema.org 中定义的一个词汇表,所以我们挑选一个包装器元素来这样标记它。您无需使用 body 元素,但您应使用一个包装所有注释的元素。

typeof 属性

清单 4 给出了 div 大纲以围绕被描述的一个文章。

清单 4. 使用 typeof 属性
<div typeof="Article">
    ....
</div>

typeof 属性将它的元素标记为给定类的一个实例的描述或表示。这个是通过 http://schema.org 的范围内 vocab 名称将其放置上下文中,使我们对正在处理的 “Article” 定义变得一目了然。Article 是 Schema.org 中定义的一个类。每个类定义都已记录在案,包括对它们的用途和关联特性的约定。

property 属性

清单 5 显示了标记文章标题的代码段。

清单 5. 使用 property 属性
<div property="name">An introduction to RDF</div>

property 属性提供了声明为 Schema.org 文章的实体的一个属性。定义 name 属性来提供 Schema.org Article 的标题。

清单 6 显示了前 3 个 RDFa Lite 属性。

清单 6. 3 个 RDFa Lite 属性
<body>
...
<div typeof="Article">

<div property="name">An introduction to RDF</div>

...More information regarding this article, or even the content itself...

</div>
...
</body>

清单 6 是表明以下含义的 RDFa 方式以使机器可以对它进行处理:

This HTML document represents an article as defined by Schema.org, and the title of the
article is "An introduction to RDF."

更复杂的语句

HTML 规范已提供了一种机器可处理的位置来放置文章标题(在 head 元素中)。但是,Schema.org 的词汇表让您能够表达的文章信息远不止是一个标题,还包括 HTML 特性中没有的结构(事实上在编写本文时有 46 个属性)。甚至对于像 title 等属性,HTML 所提供的信息并不总是足够的。如果您有一个页面包含一个文章索引或来自一次搜索的登录页面,会怎样?您将在一个 HTML 页面中描述多个实际的文章实体。HTML 没有针对此情景的规定,但使用 Schema.org,您可以拥有多个 div 元素,每个元素对应于一个引用的文章。

about 属性

如果可以在一个页面上描述多个实体,那么能够为每个实体提供一个句柄就变得很重要。RDFa 为此用途提供了 about 属性。清单 7 显示了一段注释文章作者的代码段。

清单 7. about 属性
<p property="author" about="#uche.ogbuji" typeof="Person">
   <span property="name">Uche Ogbuji</span>, <span property="jobTitle">Partner</span>,
   <span property="worksFor">Zepheira</span>. 01 Dec 2000.
</p>

该代码段添加了详细信息 “The article is authored by a person named Uche Ogbuji who is Partner at Zepheira.”。注意 p 元素如何被标记为一个具有 Schema.org 所定义的 Person 类型的新实体的描述。p 也有一个 property 元素可将此实体连接到一个包围元素(连接到文章)。

about 属性为 p 元素中描述的实体提供了一个句柄。它是一个与页面的 URL 本身相关的分段标识符。例如,如果此页面位于 http://www.ibm.com/developerworks/library/w-rdf,现在有一个实体可通过句柄 http://www.ibm.com/developerworks/library/w-rdf#uche.ogbuji 来理解。

Zepheira 是一个组织。您可以在此示例上更进一步,使用 Schema.org 中的 Organization 类将 <span property="worksFor">Zepheira</span> 表达为另一个嵌套实体。RDFa 关注的是您认为需要注释的内容。在本例中,我们感兴趣的是作者的更多详细信息,而不是他所服务的组织。

prefix 属性

RDFa Lite 定义的最后一个属性是 prefix,它用于将多个词汇表组合在一个描述中。清单 8 展示了如何注释文章的可读性索引。

清单 8. prefix 属性
<div prefix="fben: http://www.freebase.com">
  This article's texts is suitable for a wide audience, with a Fog index of 
<span property="fben:gunning_fog_index">10.2</span>
</div>

Schema.org 未包含针对文本的 Gunning-Fog 可读性索引的属性,但 Freebase 包含了该属性。Freebase 类似于 Wikipedia 的一个更加结构化的版本,它管理各种不同的实体和实体类型的图示和描述。我定义了一个前缀来引用 Freebase 中定义的属性,而未使用 Schema.org 的默认词汇表,然后在本文的可读性值文本周围使用该前缀。


合并示例

清单 9 将目前演示的所有内容结合在一起,并添加诸如 breadcrumbs 等回溯信息。

清单 9. 使用所有 5 个 RDFa Lite 属性
<body vocab="http://schema.org">
...
<div property="breadcrumb">
  <a href="http://www.ibm.com/developerworks/">IBM developerWorks</a> >
    <a href="http://www.ibm.com/developerworks/web/">Web development</a> >
    <a href="http://www.ibm.com/developerworks/views/web/library.jsp"
        >Technical library</a>
</div>

<div typeof="Article">

<div property="name">An introduction to RDF</div>

<p property="author" about="#uche.ogbuji" typeof="Person">
   by <span property="name">Uche Ogbuji</span>, <span property="jobTitle">Partner</span>,
   <span property="worksFor">Zepheira</span>.
</p>

<div>Published: <span property="datePublished">01 Dec 2000</span></div>

<div property="description">
  <b>Summary</b>: This article introduces Resource Description Framework (RDF),
  developed by the W3C for Web-based metadata, using XML as an interchange syntax.
  RDF's essential aim is to make work easier for autonomous agents, 
  which would refine the Web by improving search engines and service directories. 
  Author Uche Ogbuji gives an overview of RDF aspects from schemas to usage scenarios.
  The article assumes that you are already familiar with XML.
</div>

<div>Tags for this article: 
  <span property="keywords">introduction</span>,
  <span property="keywords">rdf</span>,
  <span property="keywords">tutorial</span>
.</div>

<div prefix="fben: http://www.freebase.com">
  This article's texts is suitable for a wide audience, with a Fog index of 
  <span property="fben:gunning_fog_index">10.2</span>.
</div>

</div>
...
</body>

这段代码在结构上没有新的特征,但 清单 9 向您展示了您可用于一篇文章的更多 Schema.org 属性。


结束语

除 Schema.org 外还有其他一些词汇表,包括历史悠久的 Dublin Core(它在 RDFa 中得到了核心支持)和 Facebook 的 Social Open Graph。但是,在声名赫赫的支持者推动下,Schema.org 最近名声大噪。这只是在搜索引擎优化 (SEO) 的长期发展过程中的最新发展。

尽管 SEO 可能是一个营销概念,但它得到了一些核心 Web 工程概念的全面增强,比如可访问性、简洁的标记,以及可能拥有更多关于其内容实际含义信息的注释页面。RDFa Lite 技术的发展可将强大的 SEO 带给所有的 Web 开发者。我希望本文可帮助您在一天内学会 RDFa;您现在就可以开始注释您的页面了。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Web development, XML
ArticleID=844332
ArticleTitle=通过 RDFa 1.1 Lite 使您的 HTML 页面更加聪明
publish-date=11062012