GooglePlay、YouTubeも導入しているマイクロデータschema.orgとは?
検索エンジン各社が共通してサポートするschema.orgとは?
ここで、マイクロデータのitemtypeで指定するデータ型を集めたボキャブラリについて説明をしましょう。先に少し触れたように、ボキャブラリはschema.orgやdata‐vocabulary.org、rNews.orgなどがあります。
data‐vocabulary.orgは、主にGoogleがサポートしているボキャブラリです。マイクロデータの説明が行われる際には、ボキャブラリにこのdata‐vocabulary.orgが採用されています。しかし、このdata‐vocabulary.orは、Google以外の検索エンジンにおいてはサポートされていません(例えば、検索結果のリッチスニペットの反映には検索エンジンごとに差異があります)。このような、ベンダが独自に採用するボキャブラリが乱立するのは、互換性や相互運用性の観点からも、望ましいことではありません。
→参照:Googleウェブマスターツールのヘルプフォーラム
その問題を解決するために、検索エンジン各社が共通してサポートするために作られたのがschema.orgです。schema.orgは2011年にGoogle、Yahoo、Bing(Microsoft)の検索エンジン3社が共同で発表しました。またこの際、schema.orgでは優先構文として、マークアップ規格をマイクロデータ1つに定めています。
今回の記事でも、検索エンジン3社に共通してサポートしている理由から、schema.orgを採用しています。また、実際のシーンでも、schema.orgを採用しているケースは多く見られるようになってきました。例えば、「Google Play」です。
図2:GooglePlayの画像(クリックで拡大) |
ではこのページのschema.orgを採用したマイクロデータのマークアップを一部抜粋してみましょう。
<dl itemscope itemtype="http://schema.org/MobileSoftwareApplication"> <meta itemprop="name" content="速報!株式ニュース" /> <meta itemprop="image" content="画像URL " /> <span itemprop="author" itemscope itemtype="http://schema.org/Organization"> <meta itemprop="name" content="CA MOBILE,LTD." /> (以下省略)
ここでは、shcema.orgのMobileSoftwareApplicationのitemtypeを使用し、itempropで、アプリの名前や画像、アプリの製作者を定義しています(MobileSoftwareApplicationはまだschema.orgには記載されていませんが、Googleウェブマスターツールには記載されていますので、詳しくはこちらをご覧下さい)。さらに、製作者の会社名に対し、新たに別の組織を表すitemtype、Organizationを使用し、製作者の名前が企業名であることも示しています。schema.orgではこのように、1つのitemtypeの中でさらに別のitemtypeを定義し、さらに詳細な意味づけや別のitemtypeの使用も可能になります。
この他にも、Google映画検索の映画名やYouTubeなどでもschema.orgを使用したマイクロデータによるセマンティックなマークアップを見ることができます。YouTubeに実際に記述されているマークアップも見てみましょう。
<div itemscope itemtype="http://schema.org/VideoObject"> <link itemprop="url" href="http://www.youtube.com/watch?example"> <meta itemprop="name" content="動画のタイトル "> <meta itemprop="description" content="動画説明が掲載されているページ”> <div itemprop="author" itemscope itemtype="http://schema.org/Person"> <link itemprop="url" href="動画投稿者のプロフィールページ "> </div> <link itemprop="thumbnailUrl" href=" 動画サムネイルのURL"> (以下省略) </div>
上記で挙げた例で共通していることとして、ほとんどのitempropをmeta要素内で使用している点が挙げられます。これはマイクロデータの仕様で、「非表示コンテンツ」と言います。
マイクロデータにおける「非表示コンテンツ」は通常のマークアップの「例外」にあたるマークアップ方法です。マイクロデータでは、基本的にはユーザーに表示されているテキストに対してマークアップを行うことが定義されています。実際に記述のないものに対して、meta要素などで非表示コンテンツをマークアップすることは違反行為とされています。
しかし、ユーザーには見せている情報以外に、また見せているものに対して、他の記述方法で検索エンジンに情報を提供することが役に立つ場合には、このような例外が適用されます。この非表示コンテンツの代表的な例として挙げられるのが、レビューの評価です。
上記の場合は実際に記述されている箇所への記述が何らかの理由で不可能だったのか、非表示コンテンツとしてmeta要素内で意味づけを行っています。いずれにしてもユーザーは他の形で同じ内容を見ることができるので違反行為にはならない、と考えられるのかもしれません。
schema.orgのitemtype
GooglePlayやYouTubeで使用しているitemtypeから分かるように、schema.orgのタイプには数多くの種類が存在します。
上の例では、以下の4つがitemtypeになります。
- MobileSoftwareApplication
- Organization
- VideoObject
- Person
そしてこのitemtypeにはそれぞれ、共通で使用できるプロパティと、そのタイプ内に属するプロパティがいくつも定義されています。例えば、YouTubeで使用しているVideoObjectタイプで使用できるプロパティです。
図3:VideoObjectのプロパティ一覧(クリックで拡大) |
このように、1つのitemtypeには非常に多くのプロパティが定義されているのです。詳しくは以下をご覧ください。
→参照:VideoObject(Schema.org)
このitemtypeには最も一般的なitemtypeとして「Thing」と言うものが存在します。ここでは一般的なプロパティとして、以下の4つが定義されています。
- name(意味づけされるアイテムの名前を指定)
- description(意味づけされるアイテムの概要文を指定)
- url(意味づけされるアイテムのURLを指定)
- image(意味づけされるアイテムの画像を指定)
この4つのプロパティはThingだけでなく、全てのitemtypeの中で使用することができます。
Thingの以下には、さらに詳細なitemtypeが定義されています。このitemtypeやプロパティについては、今後も増えていく可能性があるようです。
現時点で定義されているitemtypeついては以下をご覧ください。
→参照:The Type Hierarchy(schema.org)
ここで、itemtypeとプロパティの位置付けについて説明しましょう。
最も大きな項目の型はThing(もの)です。Thingには、名前、詳細、URL、イメージという4つのプロパティがあります。Place(場所)はThingの子タイプです。また、Placeよりさらに詳細な意味を持つLocalBusines(組織が有する実際の店舗や支店)はPlaceの子タイプになります。子アイテムはそれぞれの親の性質を受け継いでいます。すなわち、子タイプは、親タイプと同じプロパティを持つことができます。
また、LocalBusinesは、Placeの子タイプですが、同時にOrganization(組織)の子タイプでもあります。つまり、両方の性質を受け継いでいることになります。
この記事で例として使用していたitemtypeMovieは、もともとThingの子タイプであるCreativeWorkの、さらに子タイプであるitemtypeと言うことです。
itemtypeの中で代表的なタイプが以下の7つになります。
- CreativeWork(クリエイティブな作品)
→ Article(記事)、Blog(ブログ)、Movie(映画)、VideoObject等を含む - Event(イベント)
- Intangible(質や評価などの触れられないものを包括するユーティリティクラス)
- Organization(学校や組織)
- Person(人)
- Place(場所)
- Product(製品)
itemtypeはより詳細な意味づけをするように推奨されています。さらには、できるだけ多くの意味づけをするようにも推奨されています。例えばこの記事で取り上げた以下のマークアップ例ですが、
<section itemscope itemtype=”http:// schema.org/Movie”> <h1 itemprop=”name”>映画:タイタニック</h1> 監督:<span itemprop=”director”>ジェームズ・キャメロン</span> (省略) </section>
これをさらに詳細な意味を追加するとすれば、
<section itemscope itemtype=”http:// schema.org/Movie”> <h1 itemprop=”name”>映画:タイタニック</h1> 監督:<div itemprop=”director” itemscope itemtype=”http://schema.org/Person”><span itemprop=”name”>ジェームズ・キャメロン</span></div> (省略) </section>
と、「人の名前」を表すPersonを使用して、さらにセマンティックなマークアップを行うことができます。これにより、検索エンジンやプログラムに対して、「ジェームズ・キャメロン」と言う文字群が、人の名前であること、映画の監督であること、の2つの意味を伝えることができるようになりました。
マイクロデータ(schema.org)を使ってマークアップすることで、今までは何の意味持たなかった文書が、多くの意味を持つようになります。これが、セマンティック・ウェブの実現に近づく大きな一歩となるのです。