Web系统的设计要点之一就是内容和表现的分离。网站以HTML发布内容,对内容进行操作的服务只能访问HTML。随着具有不同呈现格式的设备的大量增加,针对不同呈现格式的网站的数量也大大增加。与此同时,一些新的个人助理应用程序,例如GoogleAssistant和亚马逊的Alexa,已经开始为网络接触用户提供新的渠道。此外,成熟的Web应用程序越来越希望使用结构化内容来提供更丰富、更具交互性的体验。这最终使得Web系统和开发人员能够以可互操作的方式交换结构化数据变得至关重要。Schema.org是一组基于现有标准语法的词汇表,目前广泛用于Web系统上使用的结构化数据。结构化数据标记标准早期,结构化数据标准在独立领域很有用。一种方法是XML,它试图标准化语法。虽然XML最初仅被认为是HTML的未来,但它发现了结构化数据的更多用途,以及更丰富的数据互操作性场景。另一种方法是Meta-ContentFramework,它将知识表示的思想引入Web系统,并提出进一步使用通用数据模型,即有向标记图。元内容框架的愿景是创建一个关于实体的广泛知识库,其中不同的部分来自不同的网站。随着时间的推移,这一愿景逐渐涵盖了网络上的各种智能数据处理。从1997年到2004年,出现了各种结构化数据标记标准(RDF、RDFS和OWL)。许多词汇用于特定的垂直领域,其中一种被广泛采用的是RSS,它允许用户使用他们最喜欢的新闻来源来定制他们的主页。另一个是vCard/hCard(通过CSS类属性以HTML的微格式表示),用于在程序之间交换信息,如地址簿、电子邮件等。后来,hCalendar也加入了这个项目,它也是一种微格式HTML,重新表达了现有的IETF标准-iCalendar。对于每一个发布的结构化数据标准,都有一些应用程序广泛使用它。那么如果要打造一个跨越垂直领域的结构化数据标准,就需要找到一个覆盖范围广的应用,而这个应用可能就是文本搜索。网络搜索不局限于搜索结果的排名,而是提高搜索结果的质量。用一些结构化数据标记网页内容可以优化用户和网站管理员的体验。然而,大多数站点根本不向站点添加任何标记,即使添加了标记,它仍然经常是格式错误的。如此大量的畸形需要构建能够处理畸形语法和词汇的复杂解析器。结构化数据的标记标准:schema.org2011年,主要搜索引擎Bing、Google和Yahoo创建了schema.org以改善这种情况。目标是提供一个涵盖广泛主题的架构,包括人物、地点、事件、产品、优惠等,由单一架构涵盖,主要是为网站管理员提供统一的词汇表。自2011年以来,不同公司的许多不同应用程序已开始使用schema.org词汇表。其中包括:Google使用schema.org中的注释作为其知识图的数据源,提供有关知识实体(例如徽标、联系人和社交信息)的上下文信息。基于schema.org的结构化数据标记正在电子邮件等地方使用。例如,确认酒店预订、购买收据等的电子邮件都嵌入了带有交易详细信息的Schema.org标记。这种方法使电子邮件的辅助工具能够提取结构化数据,并通过移动通知、地图、日历等提供这些数据。Pinterest使用schema.org为食谱、电影、文章、产品或展示项目提供丰富的证据。Apple的Siri使用Schema.org来实现其搜索功能,包括聚合评级、报价、产品、价格、交互、组织、图像、电话号码和潜在的网站搜索,以及RSS中的新闻标签。当然,成功的关键衡量标准是网站管理员的采用。从Google索引中,大约31.3%的页面使用schema.org标记。平均而言,包含此标记的每个页面都会引用具有数十个逻辑判断的多个实体。重要的是要注意结构化数据标记与Web系统本身具有相同的数量级。Schema.org广泛的词汇被主要搜索引擎中超过四分之一的页面使用。Schema.org的成功在很大程度上归功于其背后的设计决策。Schema.org的一些设计驱动力是为了让网站管理员更容易发布他们的数据,这一设计决定将更多的精力放在标记的用户身上。表达式语法从一开始,schema.org就在多种语法和向网站管理员提供简明说明之间取得了平衡。随着时间的推移,多种语法显然是一个很好的方法,包括RDFa和JSON-LD,数据发布者可以选择。不同的语法适用于不同的工具和数据模型。JSON-LD将其中的结构化数据表示为一组javascript样式的对象。这对于JavaScript生成的网站和个性化电子邮件很有用,因为这些地方的数据结构可能更冗长。JSON-LD允许嵌入式成员在Schema.org中携带结构化数据。有时,这种情况可以理想化为机器友好格式和人类友好格式之间的权衡。RDF和XML等格式主要是为机器使用而设计的,而微格式则明确地将人类放在首位。域多态性许多知识表示的系统,每个关系都有一个域和范围。这导致了很多非直观的表示,即关系的唯一影响可能是某些关系的域或范围,并且这也使得在不更改类层次结构的情况下重用现有关系变得更加困难。允许多个域和范围的决定可能会改善此问题。例如,schema.org有多种类型(Events、reservations、Offers),其实例都可以接受startDate属性,但多态性让我们避免使用公共超类型对它们进行分组。实体引用协调数以万计的实体引用与其他站点对大多数站点来说太困难了。schema.org坚持唯一的URI,鼓励数据发布者为每个实体添加尽可能多的附加描述,以便数据消费者可以使用此描述进行实体协调。虽然这会给从多个网站获取数据的应用程序带来额外成本,但它极大地减轻了网站管理员的负担。.递增的复杂性通常,如果表示太简单,则很难构建一些更复杂的应用程序。通常,一旦构建了简单的应用程序并且词汇表的采用率很低,应用程序开发人员和网站管理员就会需要更具表现力的词汇表,这相当于添加一些更具描述性的属性或子类型。添加新类型的操作或事件是扩展Schema.org表达能力的有效方式。然而,很多时候正确答案很少,Schema.org的做法不会因为追求完美的schema而改变。清除和扩展每隔一段时间,可能会引入没有意义的词,虽然它们可能很容易处理,但最好将它们清除掉。Web底层的结构化数据是多种多样的,schema.org充其量只能为最常见的主题提供核心词汇表。即使对于汽车这样一个相对常见的主题,也可能需要数百个属性才能从各种网站上找到各种汽车规格的详细信息。Schema.org的策略是为此类主题提供一个小的核心词汇表,并依靠扩展来涵盖长尾问题。扩展主要分为两类,一类是由Schema.org社区创建的,另一类只是“民间”实现。2015年,引入了托管扩展的概念,但分层机制旨在为专家和专业组织提供更大的自主权。另一个是外部扩展的概念,它是参考Schema.org的核心词汇表设计的,期望建立在核心词汇表的基础上。结构化数据标记的其他发展自2006年以来,“关联数据”已将W3CRDF社区的重点从语义Web本体和规则语言转移到开放数据和实用数据共享上。LinkedDataConsortium已经成功地从各个公共部门和开放数据源中获取了大量以RDF为代表的开放数据,但是RDF的数据发布实践还没有被web所采用。关联数据具有更高的用途,网络上的数据源数量很少,但通常质量很高。这为结合这两种方法提供了许多机会,例如专业团队发布的链接数据通常可以权威地描述schema.org描述中提到的实体。使用身份URI和独立模式的无约束组合,链接数据可以被视为一个设计限制,另一个限制可以是知识图。2012年,谷歌提出知识图谱的概念,作为搜索及相关应用的统一图数据集。这个基本思想建立在与关联数据和schema.org共享的一个共同元素之上:一个具有带命名属性的类型化实体的图形数据模型。知识图特别强调前期实体管理,以确保新数据集成并链接到现有记录。基于共享,以Schema.org为代表的结构化数据是集成到知识图谱中的天然信息来源。没有人愿意阅读冗长的规范,大多数开发人员倾向于复制和编辑示例。随着时间的推移,复杂性逐渐增加,平台/标准中的每一层复杂性仅在更基础的层被采用后才被添加。总结网络基础设施需要结构化数据机制来描述实体和现实世界关系的想法一直存在。与其寻求创建“智能代理的语言”,不如人工辅助标记结构化数据,这可能是解决网络搜索具体场景的最佳实用途径。schema.org开发了更多的词汇表,并以更分布式的方式进行。从汽车到产品细节的一系列主题扩展提供了统一的词汇和必要的讨论空间。在Web系统中,大数据的应用越来越广泛,使得对通用模式的需求越来越重要,探索数据驱动的价值,需要从不同来源收集数据,需要共享词汇表。增加,也许这是schema.org的价值观之一。
