数据模型
下面是 schema.org 所使用的数据模型的探讨。
我们所用的数据模型非常具有通用性,它衍生于 RDF Schema (RDF 也是由 CycL 派生而来,而 CycL 又是来自……)。
- 我们有一套类型集合,以多层次的继承结构组织起来,每一种类型都可能是很多类型的子类。
- 我们有一套属性集合,
- 每一种属性都可能应用于一个或多个类型。即属性用在类型的实例上。
- 每一种属性都可能限定用于一个或多个类型。即属性的值至少应该是一种或多种类型的实例。
允许多个类型的做法是具有实际意义的。当然,限定属性应用于单个类型是很容易理解的,也更容易实现,但在实际中,这样将不得不定义很多类型,来充当某些属性的主体和应用范围。
和其他很多标记系统类似,这里的 schema 具有可扩展性(例如名为“类型”、“属性”的类型,以及名为“范围”、“主体”的属性),从而使得 schema 可以自我解释。 这样的可自我解释的系统我们维护了一个 微数据版本 以及一个实验性的 RDFa 版本。 同时还有一个 OWL 版本,但并不保持更新。
本站所展示的类型层次结构并不是想要成为一个全世界的“本体”(global ontology)。它仅仅包含了我们(Microsoft, Yahoo!, Google 和 Yandex)认为我们搜索引擎近期可以做些特殊处理的实体。
一致性
我们希望获得所有的标记,但是必须借助于模式,在实践中,我们期望大多数数据不用那么做。我们期望schema.org的属性与新类型一起使用。同样也常常希望,如果我们想要得到Person,Place,Organization或者其它Thing的子类类型中的属性 ,就可以得到一个文本字符串。在“数据聊胜于无”的精神下,我们会接受该标记并做到最好。
映射到RDFa Lite
我们使用的微数据可以轻松地映射到 RDFa Lite中去。实际上,所有的 Schema.org 在RDFa Lite的语法中使用。RDFa Lite版本的标记看起来与微数据版本是同构的。下面给出的是一个 RDFa Lite标记标记的Product类型例子。<div vocab="http://schema.org/" typeof="Product"> <img property="image" src="dell-30in-lcd.jpg" /> <span property="name">戴尔外星人30寸LCD显示屏</span> <div property="aggregateRating" typeof="AggregateRating"> <span property="ratingValue">87</span> ...分之...<span property="bestRating">100</span> 基于 <span property="ratingCount">24</span> 用户评价 </div> <div property="offers" typeof="AggregateOffer"> <span property="lowPrice">$1250</span> to <span property="highPrice">$1495</span> from <span property="offerCount">8</span> 经销商 </div> Sellers: <div property="offers" typeof="Offer"> <a property="url" href="save-a-lot-monitors.com/dell-30.html"> 中关村电脑大世界 - $1250</a> </div> <div property="offers" typeof="Offer"> <a property="url" href="jondoe-gadgets.com/dell-30.html"> 广埠屯电脑资讯广场 - $1350</a> </div> ... </div>
更具体地说, itemprop
被property替代
. itemscope
被放弃而
itemtype
被typeof替代
。除此之外, 属性 vocab="http://schema.org/"
及其值被添加到主体或其他封闭标签中。
最后更新时间:2012年6月6日