データモデル

下記は、schema.orgによって使用されているデータモデルに関してのものです。

使用されるデータモデルは、RDF schemaから派生しており、その特性を受け継いでいます。(そのRDFはCycLから派生しており、それはまた…と続きます)

  1. 用意されている型は、複数の遺伝階層に並べられており、それぞれの型は複数の型の子クラスにも成りえます。
  2. プロパティもあります。
    1. 全てのプロパティは1つもしくは複数の型をドメインとして持っています。プロパティは、そういった型のインスタンスに使用できます。
    2. 全てのプロパティは1つもしくは複数の型をレンジとして持っています。各プロパティの値はそういった型のインスタンスでなければなりません。

ドメインやレンジを複数所持できるというのは、とても実用的です。ドメインやレンジは1つだけという計算プロパティのシステムは分かりやすいという利点がありますが、自分の手で多くの型を作り出さなければならなくなってしまいます。そして、それらは他のプロパティのドメインやレンジとして使用されているのです。

他の多くのシステムがそうであるように、ここで紹介されているschemaは拡張可能で、TypeやProperty、ドメインやレンジといったプロパティを使って、schema自身を説明することが可能です。Mcirodataの例は こちらで、OWL例はこちらです。

このサイトで紹介されている型の階層は、世界の全ての事象をカバーしているわけではありません。カバーしてあるのは、我々(Microsoft, Yahoo!, Google)が、近い将来検索エンジンを通してサポート出来ると判断した型です。

規格適合性

全てのマークアップにschemaに沿った使われ方をしてほしいと思っています。しかし、実際のところ、多くのデータはそのような使われ方をしないだろうとも思います。schema.orgのプロパティは新しい型と一緒に使用されることでしょう。また、person, place, organizationや他のThingの子タイプのプロパティの値が使用されるべき箇所でテキストが使われるだろうことも予測できます。“無いよりはマシ”の精神のもと、このようなマークアップも受け付け、出来る限りのサポートはしていくつもりです。

RDFa 1.1への対応

我々のmicrodataの使用法はRDFa 1.1にも適用できます。事実、schema.orgはRDFa 1.1の構文と同じように使用できるのです。RDFa 1.1のマークアップは、microdataとほとんど同じです。下記は、Product型のRDFa 1.1を使用したマークアップの例です。

<div vocab="http://schema.org/" typeof="Product">
  <img rel="image" src="dell-30in-lcd.jpg" />
  <span property="name">Dell UltraSharp 30" LCD Monitor</span>

  <div rel="hasAggregateRating" >
    <div typeof="http://schema.org/AggregateRating">
      <span property="ratingValue">87</span>
      out of <span property="bestRating">100</span>
      based on <span property="ratingCount">24</span> user ratings
    </div>
 </div>

  <div rel="offers" >
    <div typeof="http://schema.org/AggregateOffer">
      <span property="lowPrice">$1250</span>
       to <span property="highPrice">$1495</span>
        from <span property="offerCount">8</span> sellers
   </div>
 </div>


  Sellers:
  <div rel="offers"  >
    <div typeof="http://schema.org/Offer">
    <a property="url" href="save-a-lot-monitors.com/dell-30.html">
     Save A Lot Monitors - $1250</a>
    </div>
 </div>

  <div rel="offer" >
    <div typeof="http://schema.org/Offer">
    <a property="url" href="jondoe-gadgets.com/dell-30.html">
     Jon Doe's Gadgets - $1350</a>
    </div>
  </div>
  ...
</div>

厳密に説明しますと、値がテキスト か別の物かによって、 itemprop の代わりに プロパティrelが使用されています。 itemscope は使用されず、itemtypeの代わりにtypeofが使用されています。また、属性値である pair vocab="http://schema.org/"がボディや他の囲みタグに追加されています。

Microdataは、RDFaにあるようなCURIES, Turtles, Chaining, Typed・Plainテキストといったものはありません。

Last Updated: 04 Dec 2011