RDFa 1.1 Lite を使用して HTML ページをリッチな情報が含まれたページにする

検索エンジンをはじめとする高度なツールを最適化する

RDF (Resource Description Framework) は時とともに、より実用的なフォーマットへと進化してきました。なかでも RDFa (RDF annotation) は Web 上の HTML 文書にインラインでアノテーションを追加するためのシステムとして成功を収めてきており、Google をはじめとする検索エンジンによって、リッチ・スニペットの形でサポートされています。その一方で、microdata や schema.org イニシアチブの登場によって、RDFa をもっと単純化すべきだという圧力が高まりました。W3C はこれに対応し、RDFa 1.1 を大幅に単純化した RDFa 1.1 Lite を作成しました。この記事を読んで、RDFa Lite について学び、これからのリッチ・スニペットの形に対応した HTML ページを今から作成、処理できるようになってください。

Uche Ogbuji, Partner, Zepheira, LLC

Photo of Uche OgbujiUche OgbujiZepheira のパートナーであり、高度な Web カタログやその他のリッチなコンテキスト・データベースの作成を監督しています。彼は長年、XML、セマンティック Web や Web サービス、Akara などのオープンソース・プロジェクトといった高度な Web 技術を初期段階から扱ってきました (Akara は Web データ・アプリケーションのためのオープンソース・プラットフォームです)。彼はナイジェリア生まれのコンピューター・エンジニア兼ライターであり、コロラド州ボルダー近郊に住み、そこで働いています。彼についての詳細は彼のブログ、Copia をご覧ください。



2012年 5月 31日

概要:

これまで Web に関する技術は、Web ページや Web サイトのルック・アンド・フィールをどのようなものにするかという点に焦点を当ててきました。そのため、最も重要視されていたのは、視覚的に魅きつけるデザインを作成すること、リンクおよび JavaScript アプリケーションが意図した通りの動作をすること、そして最新のマルチメディア機能を集めることでした。しかし次第に検索エンジンで上位にランクされることが重要になってきました。悲しいことに、検索エンジンが見るのは、Web サイトのデザインや動的な振る舞いではなくマークアップであり、これまでの Web ページではそのマークアップの大半は太字あるいは斜体であることを示すためか、コンテンツ・ブロックとして使われていました。

頻繁に使用される略語

  • HTML: HyperText Markup Language
  • RDF: Resource Description Framework
  • SEO: Search Engine Optimization

Web サイト制作者達は表示の装飾以上のものが必要だと気付き始めました。彼らは、検索エンジンやそれと同様のソフトウェアに対し、構造化されたデータが実際に何であるかを定義する必要がありました。例えば、これは価格であり、これはイベントの日付であり、残りのアイテムはある人の連絡先である、といったものです。つまり「データの Web」が必要だったのです。データの Web という概念は長い間、RDF (Resource Description Framework) に興味を持つ人々の中心的な関心事項でした。

RDF の背景にある概念は非常に単純です。しかし残念なことに、その概念を定義する方法、表現する方法、処理する方法の大部分は、あまりにも複雑すぎます。Web 技術に関する一般的で実用的な指針として、「Web 技術は、通常の Web サイト制作者が一日で学べるものでなければならない」のです。長い年月を要しましたが、その指針を満たしそうな RDF のフレーバーがついに登場しました。それが RDFa 1.1 Lite です。

RDFa Lite は RDFa (RDF annotations) を単純化したバージョンです。RDFa は HTML や類似の語彙内に完全な RDF データ・モデルをエンコードするためのメカニズムです。RDFa は「一日で学べるもの」という規準を満たすには少し複雑すぎるため、WHAT WG (HTML 5 を生み出したグループ) は HTML microdata 仕様を作成しました。microdata は Web 上のデータのマークアップ方法を規定するためのイニシアチブである schema.org の中核になりました (「参考文献」を参照)。その後 microdata は W3C のワーキング・ドラフトになりましたが (「参考文献」を参照)、RDF と RDFa の提唱者達は、少なくとも microdata と同じ程度に単純なサブセットがあれば、今こそ RDFa を宣伝する好機だと考えました。このようにして、長きにわたり定着してきたデータ・モデルを単純な構文で利用できるという恩恵にあずかれることになったのです。

昨年、schema.org の発足者達は Web 上の構造化データに関するコミュニティーの専門家向けにワークショップを開催しました。私はそのワークショップに参加しましたが、そこで RDFa 仕様の編集者である Ben Adida 氏は、RDF Web Applications Working Group が RDFa Lite に関して行った成果を私達に示しました。このドラフト仕様に対する反響が非常に好意的であったため、W3C は RDFa Lite のための作業を倍加しました。RDFa 1.1 Lite はありがたいことに、W3C が作成した非常に簡潔なワーキング・ドラフトです (そして、皆さんがこの記事を読む頃には完全な W3C 勧告になっているかもしれません)。

この記事では RDFa 1.1 Lite について学び、早速、データの Web に参加する HTML ページを作成します。この記事は読者のみなさんが HTML を十分に理解していることを前提にしています。


属性によってコンテンツを明確化する

適合性

RDFa は HTML 4、HTML 5、XHTML などと適合するように設計されています。

RDFa は Web サイト内の構造化データをマークアップしますが、単にユーザーに対してコンテンツをどう表示すべきかに注目するわけではなく、日付を日付として、人の名前を人の名前として、イベントをイベントとして、組織を組織として、といった具合にマークアップする必要があります。RDFa Lite はこうした極めて高い目標を取り下げ、ともかく動作する至って単純なものを目指した仕様であり、たった 5 つの属性を HTML または XHTML に追加するにすぎません。コンピューターはこうした属性を容易に解釈することができ、そのページから有用な情報を抽出することができます。簡単に言えば、RDFa Lite とはそれだけのことです。

リスト 1 はオンライン記事のプレーン HTML の例です。

リスト 1. オンライン記事のプレーン HTML
<body>

<a href="http://www.ibm.com/developerworks/">IBM developerWorks</a> >
 <a href="http://www.ibm.com/developerworks/web/">Web development</a> >
 <a href="http://www.ibm.com/developerworks/views/web/library.jsp">Technical library</a>

<div>
An introduction to RDF by <a href="http://uche.ogbuji.net">Uche Ogbuji</a>, 
Partner, Zepheira.
</div>

<div>Published: 01 Dec 2000</div>

<div>
<b>Summary</b>: This article introduces Resource Description Framework (RDF),

Web ベースのメタデータのために W3C によって開発された RDF は、データを交換するための構文として XML を使用します。RDF の基本的な目標は自律的なエージェントの作業を楽にすることです。それによって検索エンジンやサービス・ディレクトリーが改善されることで Web が改善されます。RDF についての詳細は、「RDF とは」(developerWorks、2000年 12月) を参照してください。

この記事のこれから先では、リスト 2 の HTML に対して RDFa Lite によって付けられるアノテーションについて見ていきます。ここでは、RDFa Lite 仕様の 5 つの属性すべて (vocabtypeofpropertyresourceprefix) について説明します。

リスト 2. RDFa Lite を説明するための HTML
<div>Tags for this article: introduction, rdf, tutorial.</div>

<div>
  This article's text is suitable for a wide audience, with a Fog index of 10.2.
</div>

</body>

vocab 属性

リスト 3 では、記事の記述全体をラップする body 要素を変更しています。

リスト 3. vocab 属性を使用する
<body vocab="http://schema.org/">
    ...
</body>

vocab 属性は RDFa Lite を使用するための基本設定を行います。vocab 属性では、アノテーションでデフォルトの語彙として使用される語彙を指定します。この例では schema.org で定義される語彙を使用するため、ラッパー要素で記事全体を schema.org の語彙を使用するものとしてマークアップしています。必ずしも body 要素内で指定する必要はありませんが、すべてのアノテーションをラップする要素内で指定する必要があります。

typeof 属性

リスト 4 は記述する対象となる 1 つの記事を囲む div の概要を示しています。

リスト 4. typeof 属性を使用する
<div typeof="Article">
    ....
</div>

要素の中で typeof 属性を使用すると、この属性の値として指定したクラスのインスタンスを記述あるいは表現するものとして、その要素がマークアップされます。リスト 4 の typeof 属性の指定は、vocab 属性に “http://schema.org” を指定したスコープ内のコンテキストに追加されるため、ここで扱っている “Article” がどの語彙で定義されているものなのかは明らかです。この ”Article” は schema.org で定義されるクラスの 1 つです。各クラスの定義は、そのクラスの使い方や関連するプロパティーについての規約を含めて文書化されます。

property 属性

リスト 5 は記事のタイトルをマークアップする部分を示しています。

リスト 5. property 属性を使用する
<div property="name">An introduction to RDF</div>

property 属性は先ほど schema.org の Article として宣言したエンティティーのプロパティーを指定します。”name” プロパティーを定義することで、ここで記述する schema.org の Article の記事のタイトルが指定されます。

リスト 6 は RDFa Lite の属性のうちの最初の 3 つを示しています。

リスト 6. RDFa Lite の 3 つの属性
<body vocab="http://schema.org/">
...
<div typeof="Article">

<div property="name">An introduction to RDF</div>

...More information regarding this article, or even the content itself...

</div>
...
</body>

リスト 6 は以下の内容を RDFa の方法で表現し、この内容をコンピューターが処理できるようにしたものです。

This HTML document represents an article as defined by Schema.org, and the title of the
article is "An introduction to RDF."

より高度な記述

HTML 仕様には既に、記事のタイトルを配置する場所としてコンピューターで処理可能な場所、つまり head 要素が用意されています。しかし schema.org の語彙は単なるタイトル以外にも、HTML に含まれていない構成体を含め、記事に関してはるかに多くの内容を表現できるようになっています (この記事の執筆時点で 46 種類のプロパティーがあります)。タイトルのようなプロパティーの場合でさえ、HTML の表現は必ずしも十分ではありませんでした。例えば、複数の記事に対する 1 つのインデックスで構成されるページ、つまり検索によるランディング・ページがあったとしたらどうでしょう。その場合には複数の記事の実際のエンティティーを 1 つの HTML ページの中に記述しなければなりません。HTML にはこうしたケースに対する規定がありませんが、schema.org を利用すると、複数の div 要素を含めることができ、そのそれぞれが記事を参照しています。

resource 属性

1 つのページ上で複数のエンティティーを記述できるのであれば、各エンティティーに 1 つのハンドルを指定できることが重要になります。そのために、RDFa には resource 属性が用意されています。リスト 7 は記事の著者をアノテーションとして追加するスニペットを示しています。

リスト 7. resource 属性
<p property="author" resource="#uche.ogbuji" typeof="Person">
   <span property="name">Uche Ogbuji</span>, <span property="jobTitle">Partner</span>,
   <span property="worksFor">Zepheira</span>. 01 Dec 2000.
</p>

このスニペットは、「この記事は Zepheira のパートナーである Uche Ogbuji という人によって著された」という詳細情報を追加しています。p 要素が、schema.org で定義される Person 型の新しいエンティティーを記述したものとして、どのようにマークアップされているかに注目してください。p 要素には、このエンティティーとそれを包含するエンティティー (記事) とを関連付ける property 属性もあります。

resource 属性は p 要素内で記述されるエンティティーに対するハンドルです。resource 属性は、ページの URL そのものに対する相対的なフラグメント識別子です。例えば、このページが http://www.ibm.com/developerworks/library/w-rdf にあるとすると、http://www.ibm.com/developerworks/library/w-rdf#uche.ogbuji というハンドルで認識できるエンティティーがあることになります。

Zepheira は組織です。この例をさらに拡張し、schema.org の Organization クラスを使用することにより、もう 1 つ別のネストされたエンティティーとして <span property="worksFor">Zepheira</span> を表現することができます。RDFa というのは、重要と考えられるものにアノテーションを追加することなのです。この場合、私達は著者については詳しく知りたいですが、著者が所属する組織についてはそれほど関心がありません。

prefix 属性

RDFa Lite で定義される最後の属性が prefix です。prefix は 1 つの記述の中で複数の語彙を組み合わせるために使用されます。リスト 8 は、記事の読みやすさの指標に関するアノテーションを追加する方法を示しています。

リスト 8. prefix 属性
<div prefix="fben: http://rdf.freebase.com/ns/">
  This article's texts is suitable for a wide audience, with a Fog index of 
<span property="fben:gunning_fog_index">10.2</span>
</div>

英語のテキストの読みやすさの指標である Gunning Fog Index 用のプロパティーは schema.org には含まれていませんが、Freebase には含まれています。Freebase はウィキペディアをさらに構造化したようなものですが、多様なエンティティーやエンティティー型のスキーマや記述を管理することができます。ここでは、schema.org のデフォルト語彙で定義されるプロパティーではなく Freebase で定義されるプロパティーを指すように prefix を定義し、この記事の読みやすさの指標値を記述するテキストを囲むように、その prefix を使用しました。


これまでの例を 1 つにまとめる

ここまでに説明したすべてをまとめ、パンくずリストなどを追加したものがリスト 9 です。

リスト 9. RDFa Lite の 5 つの属性をすべて使用する
<body vocab="http://schema.org/">
...
<div property="breadcrumb">
  <a href="http://www.ibm.com/developerworks/">IBM developerWorks</a> >
    <a href="http://www.ibm.com/developerworks/web/">Web development</a> >
    <a href="http://www.ibm.com/developerworks/views/web/library.jsp"
        >Technical library</a>
</div>

<div typeof="Article">

<div property="name">An introduction to RDF</div>

<p property="author" resource="#uche.ogbuji" typeof="Person">
   by <span property="name">Uche Ogbuji</span>, <span property="jobTitle">Partner</span>,
   <span property="worksFor">Zepheira</span>.
</p>

<div>Published: <span property="datePublished">01 Dec 2000</span></div>

<div property="description">
  <b>Summary</b>: This article introduces Resource Description Framework (RDF),
  developed by the W3C for Web-based metadata, using XML as an interchange syntax.
  RDF's essential aim is to make work easier for autonomous agents, 
  which would refine the Web by improving search engines and service directories. 
  Author Uche Ogbuji gives an overview of RDF aspects from schemas to usage scenarios.
  The article assumes that you are already familiar with XML.
</div>

<div>Tags for this article: 
  <span property="keywords">introduction</span>,
  <span property="keywords">rdf</span>,
  <span property="keywords">tutorial</span>
.</div>

<div prefix="fben: http://www.freebase.com/ns/">
  This article's texts is suitable for a wide audience, with a Fog index of 
  <span property="fben:gunning_fog_index">10.2</span>.
</div>

</div>
...
</body>

ここには構造的に新しいものは何もありませんが、リスト 9 を見ると、記事のために使用できる schema.org のプロパティーが他にもいくつかあることがわかります。


まとめ

語彙は schema.org 以外にもあり、例えば昔からの (中核として RDFa をサポートする) Dublin Core や Facebook の Social Open Graph などがあります。しかし schema.org は有名企業が支持していることから、最近では schema.org に関する報道が増えています。これは検索エンジン最適化 (SEO) が長年にわたって発展してきたなかの最新の成果にすぎません。

SEO はマーケティングの概念かもしれませんが、Web エンジニアリングの中核概念によって完全に SEO の機能が強化されています。その中核概念の例としては、アクセシビリティー、明確なマークアップ、そして可能な場合にはページにアノテーションを追加し、そのページのコンテンツが実際に何を意味しているのかに関する情報を追加することなどが挙げられます。RDFa Lite などの発展により、ほとんどすべての Web 作成者が強力な SEO を利用できるようになります。皆さんが 1 日で RDFa を学ぶ上で、この記事が役立ったようであれば幸いです。ぜひ今すぐ、皆さんのページにアノテーションを追加してください。

参考文献

学ぶために

製品や技術を入手するために

  • IBM 製品の評価版: IBM 製品の評価版をダウンロードするか、あるいは IBM SOA Sandbox のオンライン試用版で、DB2、Lotus、Rational、Tivoli、WebSphere などが提供するアプリケーション開発ツールやミドルウェア製品を試してみてください。

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Web development
ArticleID=818644
ArticleTitle=RDFa 1.1 Lite を使用して HTML ページをリッチな情報が含まれたページにする
publish-date=05312012