首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Schema.org 语法(1)

Schema.org 语法(1)

备选                Schema.org 语法第 1 部分中已提到,Schema.org 基于 RDF。有许多针对 RDF 的语法格式。尽管这些格式最初都设计为独立文档,但是很快,人们就实现了在 HTML 中表示                RDF。为了提供灵活性,Schema.org 支持 3 种不同的表示选项。
  • Microdata。Microdata 由 WHATWG HTML 工作组创建,它并不是真的基于                    RDF,但它的元模型与 RDF 非常相似,所以能在 Schema.org                    中使用。它或许是可用格式中采用概念最少和最不花哨的一种。
  • RDFa Lite。Resource Description Framework in                    Attributes (RDFa) 是一种 W3C 推荐标准,它定义了一组属性,以便通过机器友好的元数据来增强 HTML。它的理念是将                    RDF 模型的丰富性和 HTML 的所有其他方面(包括内容、样式和超链接)都结合起来。RDF 和 RDFa 的全部功能超过大部分                    Web 发布者所需,所以 RDFa Lite 是一个单独的 W3C                    推荐标准。它提供了一个更轻量级的语法特性子集,同时省略了 RDF 模型的一些更晦涩的方面。Schema.org 支持此变体。
  • JSON-LD。JavaScript Object Notation for Linked Data                    (JSON-LD) 是一项针对在流行 JSON 格式中表达 RDF 的 W3C 推荐标准。JSON-LD 让 RDF                    细节尽可能不突兀,使许多已在使用 JSON 的开发人员能轻松采用它。JSON-LD 支持完整的 RDF 模型,但它在 Schema.org                    中仅使用了比其他两个选项更简单的模型兼容的子集。
尽管 Schema.org 支持所有这 3 种选项,但不是每个实现该格式的应用程序都支持所有 3 种选项。一些 Web                抓取工具和其他代理读取某些格式的能力高于其他格式,而一些工具可能仅能读取一种格式。因此,您可能必须根据您所针对的应用程序的偏好对格式进行初步选择。
Schema.org 文档在其介绍性文本和许多示例中使用了 Microdata,但这样做只是为了方便用户入门。所有 3                种格式都同样有效,而且网站上也有许多 RDFa 和 JSON-LD 示例。
“一个重要的考虑因素是您选择的格式受支持的广泛程度。一般印象是,对 3                    种格式的支持程度都差不多。”

在 HTML                中对读书俱乐部示例进行编码在第 1 部分中,我给出了一个虚构的读书俱乐部网页的信息模型示例。图 1 显示了该读书俱乐部基于 Schema.org 的模型图。
图 1. 读书俱乐部 Schema.org 信息模型
让我们看看如何在 HTML 中表示此模型。首先看看 RDFa。
使用 RDFa                的读书俱乐部示例在将该模型转换为 RDFa 的过程中,我创建了一个简单的页面,并向主元素添加了一些必要属性,以传达来自该信息模型的相应概念。清单 1                显示了结果。
清单 1. bookclub-rdfa.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<main vocab="http://schema.org/" typeof="Organization">
          <h1 property="name">Geo Book Club</h1>
          <div property="member" typeof="Person" resource="ang">
          Founding member <span property="name">Alice Ng</span> welcomes you!
          </div>

          <div property="event" typeof="Event" resource="GBC_mtg_2">
            Please join us for our next meeting where we shall discuss the novel
            <span property="about" typeof="Book">
              <u property="name">Things Fall Apart</u> by
              <a property="author" typeof="Person" href="http://enwp.org/Chinua_Achebe">
                <span property="name">Chinua Achebe</span>
              </a> (ISBN: <span property="isbn">9780393932195</span>)
            </span>
            <img property="image" src="TFA_cover.jpg">
          </div>

          We hope you've been able to attend our past meetings
          <ul>
            <li property="event" typeof="Event" resource="GBC_mtg_1">
              …
            </li>
          </ul>

          </main>




了解神奇的属性这个示例使用了 RDFa 的最常用属性,包括:
  • vocab - 为主元素中发现的元数据指定一个或多个词汇表。在本例中,一个词汇表(用于 Schema.org                    的词汇表)被定义为所有已表达的元数据属性的默认词汇表。有一些词汇表可用于 RDFa,而不能用于                    Schema.org。您甚至可以定义自己的词汇表。
  • typeof - 表明主元素表示一个具有特定资源类型的概念(即一个资源),并指定资源类型。
  • property - 通常是最常用的属性。在直接包含的资源上指定一个特定属性。
  • resource - 表明主元素表示一个概念(或资源),并指定资源标识符 URL。
让我们自上而下分析一下。第一个元素                <main vocab="http://schema.org/" typeof="Organization">                执行了 3 个与 RDFa 相关的操作:
  • 将默认词汇表设置为 http://schema.org/。
  • 创建一个与 main 元素一致的隐式资源。它由该元素及其内容来描述。
  • 设置这个隐式资源的类型。typeof 的值被附加到默认词汇表,从而获得一个完整的 URL                    http://schema.org/Organization。
如果 typeof 属性是 URL 引用(即相对 URL)而不是完整                URL,则将默认词汇表放在这些属性的值的前面。例如,假设您将开始标签更改为以下代码段:
1
<main vocab="http://schema.org/" typeof="http://example.org/Organization">




在本例中,资源类型忽略了默认词汇表,因为它是完整 URL,而不是相对 URL。这种对相对 URL 应用默认词汇表的方式也适用于                property 属性。                (您也可以使用一种特殊的前缀语法对词汇表中除默认项以外的项进行缩写,这将在后面的文章中介绍。)
返回列表