Schema.org 语法

原文地址: https://www.ibm.com/developerworks/cn/web/wa-schemaorg1/index.html

系列内容:

此内容是该系列 4 部分中的第 1 部分: 通过 Schema.org 让网站更智能

随着人工智能 (AI) 和认知计算的兴起,对其他计算机可以轻松理解的结构化数据格式的需求与日俱增。为了满足这一需求,在 2011 年,一些搜索引擎公司和大型 Web 发布者创建了一个名为 Schema.org 的项目,以便描述网页实际涉及的对象。

在这个包含 4 个部分的系列中,我将介绍 Schema.org,展示如何使用它创建更容易搜索的网页。在第 1 部分,我们首先将介绍该项目的历史。

Schema.org 的好处

首先,让我们看看 Schema.org 的一些好处。为什么要将 Schema.org 标记添加到您的页面中?最重要的是,这样做可以使您的页面更容易访问,更容易通过搜索引擎、AI 助手和相关 Web 应用程序找到。您不需要学习任何新的开发系统或工具来使用标记,而且在几小时内就可以快速上手。其他好处包括:

  • 为上下文搜索提供帮助。搜索引擎公司和专家开始越来越多地根据特定兴趣来引导用户,而不是通过地毯式的搜索进行引导。他们正在理解用户意图并提供满足用户意图的内容。用户是否在购物?正想找一部电影来看?通过搜索来解决一个技术问题?如果使用 Schema.org 标记,就会允许搜索引擎根据上下文特征来提供您搜索的网站。如果用户通过语音或在移动设备上搜索,更是如此。
  • 标明已更新的、高质量的内容。在提高搜索引擎排名方面,创建大量高质量的内容并培养您的内容的合法链接,这是其他方法无法替代的。但是使用 Schema.org 标记会告诉搜索引擎,您的内容经常更新且具有良好品质。
  • 提高点击率。当您经过 Schema.org 扩充的网站在搜索引擎排名中有所上升时,他们在包含现代上下文特征的清单(称为富摘要)中的排名位置也会上升。富摘要从其他搜索结果中脱颖而出,能得到更高的用户点击率。
  • 改进内容的可维护性。在规划网站内容时,许多人忘了规划如何处理过时或无关的内容。拥有包含 Schema.org 标记的页面,会使得用户在过渡期间更容易识别这些页面并实施相应计划。添加 Schema.org 标记后,会让用户更容易开发工具来处理现有页面,并将它们合并到后续网站和软件项目中。还使得您更容易与合作伙伴基于现有网站的新联合项目开展合作。

吸引眼球的主页

在 Web 诞生之初,您想查看的所有内容都在一个主页上。最初的这些网页就像贴在公告板上的个人公告,但包含一些超链接。Web 的目的是让人们查看这些页面。

不久以后,Mosaic 浏览器实现了在文本间嵌入图像,这使 Web 变得对用户更具吸引力。嵌入式媒体对象向音频、视频和应用程序对象敞开了大门。很快,除了信息和通信行业,其他行业也开始使用(并最终主导)Web。

“如果有了一种通用语言,我们将能达到更高的自动化程度。Web 似乎是一个令人惊艳的创新之地,但我们错失了更多的可能性。”

随着互联网数据的爆炸性增长,人们很快就必须对内容进行分类和标记,以便更容易地找到他们想要寻找的信息。

早期的 Web 发明者希望在 Web 上更广泛地传播组织工具。在 20 世纪 90 年代,“Web 数据”技术的研究工作就开始了。人们对 Web 上数据的最初预期是非常高的。2001 年 5 月,Sir Tim Berners-Lee 和同事在科学美国人上发表了一篇名为《语义网》的文章,阐述了他们对一种新技术的雄心,该技术将为 Web 上的数据提供一种通用语言,使自动化变得更容易。

尽管所构想的这种自动化如今在很大程度上已成为现实,但这主要归功于大型搜索引擎和科技公司大量处理数据的卓越功绩,而不是由于针对 Web 上的数据的通用语言的诞生。结果,由于没有通用语言,我们现在拥有的自动化并不是很有用。Web 似乎是一个令人惊艳的创新之地,但我们错过了更多的可能性。

Schema.org 的诞生为语义网带来了生机。通过一些大型企业的努力,即使较小的企业现在也能从 Web 中获益。

RDF、链接数据、微格式等

在 2000 年,我为 IBM developerWorks 编写了一篇名为“RDF 简介”的文章,解释了万维网联盟 (W3C) 提倡的这种技术,该技术旨在为 Web 上的数据提供一种通用语言。Resource Description Framework (RDF) 是一组用于在网络上对数据进行建模的规范,旨在让自主代理的工作更轻松,并改进搜索引擎和服务目录。RDF 最初被构想为一种简单模型,用于表示 Web 上的大量数据。

不幸的是,W3C 最终在 RDF 上堆叠了如此多的复杂规范(包括成熟的 AI 工具),以至于他们从未真正弄清楚如何将语义网简化为一个典型 Web 开发人员可以轻松学习的足够简单的东西。

图 1. 语义网堆栈
语义网堆栈

为了抵消这些复杂规范,一个名为“Linked Open Data”的项目开始推行一组简化的原则。该规范的名称简称为“Linked Data”,并且很明显,这些原则甚至对于企业和私有上下文也很有用。Linked Data 主要推荐使用 HTTP URL 来标识事物,而不是纯文本字符串,并使用简单 RDF 之类的约定来提供所识别事物的相关信息。例如,此信息可能包括使用了纯文本字符串的标签。

最初,此元数据是与网页本身分开提供的,但 Web 开发人员很快开始提倡使用简单 HTML 约定将元数据编码到网页中。这些约定称为微格式

十年来取得的所有这些进展都在 2011 年浓缩为 Schema.org。人们寄予厚望的语义网被简化为 Linked Data,而使用微格式技术消除了对单独文件表示的需求。

网页的一种信息模型

那么,所有这些对今天的 Web 开发人员意味着什么?一方面,它意味着您必须问:“我的内容到底是关于什么的?”

假设您在维护一个读书俱乐部的网站。您的页面是关于什么的?它们可能是关于图书、会议和会员的,而且您通过一套常规的描述来描述这些事物。例如:

  • 图书用标题、作者、ISBN、封面图片等词汇来描述。
  • 会议用时间/日期、地点和与会者来描述。
  • 会员通过他们的姓名、联系人信息和照片来描述。

一个人可能是俱乐部的会员,也可能是一本书的作者。在这种情况下,会员身份描述中的一些元素可能与作者身份的元素相同。考虑到这一点,您就可以对描述您的俱乐部的数据执行可视化,类似于面向对象编程中的数据组织方式。

图 2 显示了这个思维图的一部分,我在其中虚构了一个叫做 Geo Book Club 的俱乐部。

图 2. 读书俱乐部原始信息模型
读书俱乐部原始信息模型

点击查看大图

那么,我们看到了什么?

Web 资源

椭圆形代表 Web 资源(有点类似于面向对象的实例)。这种思维模式最重要的特征是,您可以从他们所描述的事物的角度 和他们提供的内容来考虑 URL。http://example.com/geobookclub 是 Geo Book Club 的网站。在这个模型中,我将它也视为一个事物,即一个俱乐部。资源类型描述了该事物所属的类型,我使用了一个用大写字母表示的前导行,在图中表明了这一点。

资源类型组织与特定事物相关的属性的约定。例如,某个人不会与 ISBN 联系在一起。资源类型对数据模式进行控制,使应用程序能够更有效地理解数据。

关系

箭头显示了对象之间的关系或链接。将您希望提升为明确关系的每个链接都标出来很重要。您并不只是想要表明图书“Things Fall Apart”与作者“Chinua Achebe”相关。而是更加明确地表明:图书“Things Fall Apart”由作者“Chinua Achebe”所著。因为一本书可能有其他相关人员,比如编辑或插画家,标出明确的关系有助于 Web 应用程序准确地处理数据。

有时,某个关系的值仅是文本,而不是另一种 Web 资源。该图将这些值显示在矩形中,并将其称为文字。文字也可以是数字、日期、布尔值和其他类型的基本数据。

额外信息

图中云状图形只是对本教程不需要的细节的一种方便的标记。我使用它们来表明一个俱乐部可以有多场会议,但在本系列中,我们只关心第二场会议的细节。云状图形意味着可以有多场会议,每场会议都有一个单独的关系。

您可以设想一种使用某种容器对象来建模此情形的方法,比如使用“membership”来保存会员,或者使用“schedule”来保存事件。但是,容器很快会变得很复杂。Schema.org 注重简单性,所以约定通常只是表示一个关系的多个实例。

图书封面是一个有趣的特例。首先,它是一个链接到图像文件的 Web URL。Schema.org 允许您在关系中包含不同类型的 Web URL,包括图像和其他非文本媒体对象。而且这里还有未指定资源类型。在诸如此类的情况下,虽然 Schema.org 也提供了一种更全面的方法来表达这些媒体关系,但在需要时,您可以为关系赋予权重值。

模型的 RDF 版本

如果您能理解上述模型,那么您对 RDF 的理解就差不多足以让您开始使用 Schema.org 了。请记住两个考虑因素。

  • 所有关系都必须是 URL,而不是简单的字符串,比如“member”和“author”。这些 URL 在 RDF 中的正式名称是谓词,但 Schema.org 采用了术语“属性”,并为它定义的每个属性都提供一个网页。这样,一个人(甚至一台机器)可以直接访问关系的 URL,并看到一段可读的描述。
  • 资源类型是使用一个特殊的 RDF 谓词 http://www.w3.org/1999/02/22-rdf-syntax-ns#type 来表达的,这个谓词通常缩写为 rdf:type。此关系的值称为 RDF 类。

图 3 显示了 Geo Book Club 模型的子集,演示了完整表达的谓词和类型/类关系。可以想象,如果我将所有数据都放在整个图中,它会有多乱。

图 3. 包含完整 RDF 谓词和类型信息的读书俱乐部信息模型摘要
包含完整 RDF 谓词和类型信息的读书俱乐部信息模型摘要

点击查看大图

没有专门针对一个读书俱乐部的 Schema.org 类,所以我使用了一个针对组织的类。顺便说一下,Schema.org 没有打算为每个人可能希望在 Web 上表达的任何事物都提供一个全面模型。但是,如果足够多的读书俱乐部组织者聚集在一起,并决定设计 Schema.org 扩展来满足他们的需求,这些扩展最终可能被整合到核心 Schema.org 模型中。大致共识和实际用途是 Schema.org 变革过程中最重要的推动因素。

让模型适合 Schema.org

下图显示了一个与 Schema-org 一致的模型。我使用两个缩写词来减少杂乱:

  • 来自 RDF 的 URL 缩写约定:一个前缀后跟一个冒号,并以 URL 结尾。http://www.w3.org/1999/02/22-rdf-syntax-ns#type 变成rdf:typehttp://schema.org/member 变成 schema:member
  • 资源类型缩写词:第二个缩写词用于指定位于资源标识符下方括号内的资源类型。
图 4. 读书俱乐部 Schema.org 信息模型
读书俱乐部 Schema.org 信息模型

点击查看大图

除了更改为 schema:Organization 之外,还有另一个为了与 Schema.org 匹配而执行的词汇表更改。cover 关系表示为 schema:image

Schema.org 支持一种与面向对象编程类似的类继承能力。它有一个祖先类 schema:Thing,所有类都源自这个类。

  • schema:Organizationschema:Thing 的子类。
  • schema:Bookschema:CreativeWork 的子类,后者又是 schema:Thing 的子类

甚至属性也是 schema:Thing 的子类,但这涉及到一些难懂的细节。

更有趣的是,Schema.org 大量使用了子属性,子属性类似于子类。例如,Schema.org 模型没有直接将schema:isbn 指定为 schema:Book 上被认可的属性。而是指定了 schema:identifier。但是,schema:identifier 有多个子属性,包括:

  • schema:sku
  • schema:flightNumber
  • schema:isbn

这些不同类型的标识符在特定上下文中是有意义的。

子属性遵循里氏代换原则,您可能还记得面向对象编程中的这一原则。基本上讲,这意味着您可以替换父属性的任何子属性。因此,由于 schema:identifier 已在 schema:Book 上被识别,您可以自由地代换schema:isbn,就像我在 Geo Book Club 示例中所做的那样。

结束语

如果您运行着一个网站,那么您已经处理了网页应有的外观和行为的模型和框架。定义内容的含义,尤其是描述 Web 中讨论的内容,变得越来越重要。Schema.org 提供了一个表达这类信息的框架,这个框架正变得越来越受欢迎。

在这一部分,您了解了如何创建模型,朝 Schema.org 迈出了第一步。理解这里介绍的基于 Schema.org 的示意图后,您就可以在自己的 HTML 网页中实现这个模型。为此,有多个语法选项可供选择,我将在下一部分中介绍这些选项。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容