この春頃からMicrodataを試してみたりHTML5にかかわる機会が増えてきたので、いずれ実施しようと考えていたサイト全ページの書き換えを敢行しました。スタイルシートはごく一部を除いてほとんど従来のまま。ページ自身のメタデータほかの構造化データは、Schema.org語彙を中心にして表現しています。
Microdataの記述
今回使ったMicrodataの一部を紹介しておきます。Microdataは、文書内に記述されたものごとの特徴を表す名前-値の対(プロパティ)のグループをアイテムと呼び、基本単位として扱います。
- アイテムと型
- Microdataの場合、まず最初にアイテムの範囲(スコープ)をitemscope属性で示します。文書のメタデータを表現したいので、
html
要素にこの属性を加えて全体を一つのアイテムとします(itemscope
は真偽値属性で属性名のみを記述しますが、XHTML構文の場合は整形式とするためにitemscope=""
とします)。このときアイテムが型(RDFでいえばクラス)を持つなら、同じ要素にitemtype属性も加えます。ここではSchema.orgのWebPageを用います。 - アイテムの識別子
- またMicrodata仕様では、語彙がサポートする場合、アイテムはグローバル識別子をitemid属性に持つことができるとしています。Schema.orgサイトには
itemid
を用いた例も掲載されていますから、利用できると考えてよいでしょう。itemid
の値は絶対URIに解決することになっているので、itemid=""
でウェブページ自身を表すことができます。 -
(例)
<html
itemscope
=""itemtype
="http://schema.org/WebPage"itemid
="" xmlns="http://www.w3.org/1999/xhtml"> - プロパティ
- アイテムの持つプロパティは子孫要素のitemprop属性で示します(子孫ではない要素を
itemref
で参照することもできますが、ややこしいので割愛します)。型付きアイテムの場合は、その語彙が定めるプロパティを(通常単語の形で)用いるか、他の語彙のプロパティを完全URIで記述します。schema.orgのWebPageにはname
、creator
が定義されているので、文書タイトルと作者の記述にはこれらが利用できます。 - プロパティの値
- 一般には、
itemprop
を持つ要素のテキスト内容がプロパティ値となります。a
、link
などhref
属性を持つ要素では、その値を絶対URIに解決したものが値となります(同じ要素にitemscope
属性があると、この要素を起点にした子アイテムが値=目的語となります)。name
プロパティのExpected Type(RDFでいえば値域)はTextですから、普通にtitle要素に記述します。creator
はPerson
型のアイテムが期待されるので、ここではlink
要素のhref
を用い、address
など別の場所に記述するPerson
型アイテムのitemid
と同一のURIを記述しておきます。 -
(例)
<head> <title
itemprop
="name">ちょっとしたメモ</title> <linkitemprop
="creator" href="http://purl.org/net/who/kanzaki#masahide" /> ... </head>
アイテム型WebPage
を利用する場合、Schema.orgの例がitemtype
をbody
要素に設定しているところが気になるかも知れませんが、Microdataのitemscope
、itemtype
はhtml
要素も含めどの要素にも記述できます(これはたとえばW3CのVocabメーリングリストの記事using <html> tagでも取り上げられています)。こうすることでtitle
要素をはじめとするhead
要素内の情報をそのままメタデータとし、さらに本文(body
要素)のマーク付の情報も同じアイテムに含めることができます。
W3CのMicrodata to RDFの手順で、上の記述から次のRDFが得られます。
(例)
@prefix schema: <http://schema.org/> . <> a schema:WebPage; schema:name "ちょっとしたメモ"; schema:creator (<http://purl.org/net/who/kanzaki#masahide>).