rdf
microdata
rdfa

RDFa について勉強してみた。

More than 5 years have passed since last update.


RDFa?

htmlをマークアップするための方法の1つとして,RDFaがあります。(他にmicrodataとmicroformatsという2大巨人がいます。)個人的には,書き方が簡便で,大手の検索エンジンが採用すると公言しているmicrodataを支援していました。私たちが開発している創薬・疾患研究のための生命科学分野のデータベースの横断検索サービス Sagace では,microdataを使ってマークアップしているサイトの結果をよりよく表示するというサービスを提供しています。Sagace:マークアップ方法 。というわけでmicrodataを超プッシュしていたのですが,最近,RDFa Liteというやっちゃが現れ,書き方は,microdata並に簡単だし,外部のボキャブラリも使いやすいので,もしかしたらRDFa Liteの方が良いかもしれないということがあり,乙女心は揺れております。(詳細は,後で書きます)

RDFa Liteについてはあらかた理解していたのですが,じゃあ,RDFa Core(もともとはこれがRDFaだったのですが,RDFa Liteと区別するために,こう呼んでるみたいです。)と比べて何が違うのさ,ということを知らなかったので(遅いって?ごめんよ。だってそんなに使わないと思ったんだもん。でも,古文を理解するみたいに大事なこともあるかも。)RDFa について調べてみました。

手っ取り早く理解するには,コードを見ようぜ,というわけで,

ここのhtmlを追ってみました。http://www.w3.org/TR/rdfa-syntax/#s_Syntax_overview

以下雑記です。もしかしたら,誰かの役に立つ解説もあるかもしれない。

けど,ほんとただのメモです。分かりにくいところがあったら,@maoringoまで聞いてください。


RDF Attributes Examplesの雑多な解説

もとのhtmlを…

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Page 7</title>
<meta name="author" content="Mark Birbeck" />
<link rel="prev" href="page6.html" />
<link rel="next" href="page8.html" />
</head>
<body>...</body>
</html>

RDFa でマークアップしてみたよ。

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>My home-page</title>
<meta property="http://purl.org/dc/terms/creator" content="Mark Birbeck" />
<link rel="http://xmlns.com/foaf/0.1/topic" href="http://www.example.com/#us" />
</head>
<body>...</body>
</html>

propertyを付け加えて,語彙の指定をしている。

link(関連する別のファイル)についても,その説明とURIを追加して書いている。

prefixを追加して,本文の表示を簡単にすることも出来る。

<html

xmlns="http://www.w3.org/1999/xhtml"
prefix="foaf: http://xmlns.com/foaf/0.1/
dc: http://purl.org/dc/terms/"

>
<head>
<title>My home-page</title>
<meta property="dc:creator" content="Mark Birbeck" />
<link rel="foaf:topic" href="http://www.example.com/#us" />
</head>
<body>...</body>
</html>

リンク内にprefixを入れてrelを使ってpredicateを書き,そのobjectをhref内に書くのもあり。ちなみに。relがそのまんまの矢印でー>revがreverseで逆側の矢印<ーということらしい。そして,このrelとrevはどこでも使えるらしい。

This document is licensed under the 

<a prefix="cc: http://creativecommons.org/ns#"
rel="cc:license"
href="http://creativecommons.org/licenses/by-nc-nd/3.0/"
>Creative Commons By-NC-ND License</a>.

propertyもrelと同様に使えるが,もともとは,propertyの場合は,文字列をObjectとすることを対象としており,relは他のソースのオブジェクトでURIであることを前提としていたらしい。でも,いくつかこれに関して議論している人の投稿を見た限り,どっちでもいーよーと書いていた。参考 : In RDFa, difference between property=“” & rel=“”, and resource=“” & about=“”?

日付など,正式なフォーマットで書いておいたほうが,メタデータとしては良いけれど,実際の表記は,自然言語の方が読みやすいよね〜という場合にはcontentが使えて,データタイプ(その日付データの書き方は何のボキャブラリを使ったのかを示す,RDFでいうと^xsd:dateTime という感じかな?)もdatatypeで記述できる。

<html

xmlns="http://www.w3.org/1999/xhtml"
prefix="xsd: http://www.w3.org/2001/XMLSchema#
dc: http://purl.org/dc/terms/"

>
<head><title>My Home Page</title></head>
<body>
<h1 property="dc:title">My home-page</h1>
<p>Last modified: <span property="dc:modified"
content="2015-09-16T16:00:00-05:00"
datatype="xsd:dateTime">16 September 2015</span>.</p>
</body>
</html>

subjectの内容を明示して決められるabout属性。

<html

xmlns="http://www.w3.org/1999/xhtml"
prefix="bibo: http://purl.org/ontology/bibo/
dc: http://purl.org/dc/terms/"

>
<head>
<title>Books by Marco Pierre White</title>
</head>
<body>
I think White's book
'<span about="urn:ISBN:0091808189"
property="dc:title">Canteen Cuisine</span>'
is well worth getting since although it's quite advanced stuff, he
makes it pretty easy to follow. You might also like
<span
about="urn:ISBN:1596913614"
property="dc:description"
>White's autobiography</span>.
</body>
</html>

マークアップしたいオブジェクトに対する直接のpredicateの他に,Subjectからそれが何の種類であるかを示すpredicateとして,aboutが使えるらしい。

<html

xmlns="http://www.w3.org/1999/xhtml"
prefix="bibo: http://purl.org/ontology/bibo/
dc: http://purl.org/dc/terms/"

>
<head>
<title>Books by Marco Pierre White</title>
</head>
<body>
I think White's book
'<span about="urn:ISBN:0091808189" typeof="bibo:Book"
property="dc:title">Canteen Cuisine</span>'
is well worth getting since although it's quite advanced stuff, he
makes it pretty easy to follow. You might also like
<span
about="urn:ISBN:1596913614"
typeof="bibo:Book"
property="dc:description"
>White's autobiography</span>.
</body>
</html>

こんな書き方も出来て,場合によってはCURIE(short for Compact URI)よりもフルのIRIsの方が便利だよね,ということらしい。

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Books by Marco Pierre White</title>
</head>
<body>
I think White's book
'<span
about="urn:ISBN:0091808189"
typeof="http://purl.org/ontology/bibo/Book"
property="http://purl.org/dc/terms/title"
>Canteen Cuisine</span>'
is well worth getting since although it's quite advanced stuff, he
makes it pretty easy to follow. You might also like
<span
about="urn:ISBN:1596913614"
typeof="http://purl.org/ontology/bibo/Book"
property="http://purl.org/dc/terms/description"
>White's autobiography</span>.
</body>
</html>

vocabを使うと,prefixと異なり,デフォルトの語彙を設定できる。

<div vocab="http://xmlns.com/foaf/0.1/" about="#me">

My name is <span property="name">John Doe</span> and my blog is called
<a rel="homepage" href="http://example.org/blog/">Understanding Semantics</a>.
</div>


まとめ

参照:http://www.w3.org/TR/rdfa-syntax/#A-rel

個人的には,表記に揺れがあり,ややこしいRDFa Coreはやはり,あまりオススメできません。ただ,RDFa Liteに対して,RDFa Coreが大体,包含関係にあるということがわかったので,安心しました。


補足

あたくしlink属性についてよく知らなかったの…・というわけで。


Linkについて


タグはその文書ファイルと関連する別の文書ファイルを指定し、 その関係を定義するもので、

~間で使用します。

参考:★HTMLタグリファレンス|<LINK>・・・・・関連する文書ファイルを指定する

<head>   

<title>文書番号002</title>
<link rel="index" href="../index.htm"> ←indexページとの関係
<link rel="contents" href="mokuji.htm"> ←目次ページ
<link rel="search" href="kensaku.html"> ←検索ページ
<link rel="help" href="help.html"> ←ヘルプページ
<link rel="prev" href="001.htm"> ←前のページ
<link rel="next" href="003.htm"> ←次のページ
</head>