List of rdf - Baldanders.info
tag:Baldanders.info,2014-09-17:/tags
2014-09-17T09:00:00+00:00
バルトアンデルスは連続的な怪物,時間の怪物である。(ホルヘ・ルイス・ボルヘス 『幻獣辞典』より)
https://baldanders.info/images/avatar.jpg
https://baldanders.info/images/avatar.jpg
ハイパーピクトグラム(Hyper Pictogram)
tag:Baldanders.info,2014-09-17:/blog/000738/
2014-09-17T09:00:00+00:00
2014-09-17T09:00:00+00:00
Creative Commons のキーワードで見つけたのだが,面白い提案ではある。
Spiegel
/profile/
<ul> <li><a href="http://tourinfo.jp/articles/pictogram/">ハイパーピクトグラム整備事業の提案 - 観光情報インフラ整備計画</a></li> </ul><p> <q lang="en">Creative Commons</q> のキーワードで見つけたのだが,面白い提案ではある。 </p><p> そもそも道案内等で使う pictogram って非識字者(「文盲」って差別用語らしい)のための sign であって,それに言語的な説明を加えるのは本末転倒じゃないかという気がするが </p><ol> <li>スマホのアイコンと同じで,種類が多すぎてワケワカメな状態になってるのは確か。リンク元で紹介されている国立能楽堂の pictogram なんか日本人でも分からんよ。てか,あれを pictogram と言い張るか</li> <li>したがって pictogram に言語的な説明を加えるという本末転倒な事態に既になっている</li> <li>しかし空間的に言語的な説明は限界があるし,ましてやあらゆる言語を網羅的に配置するのは不可能</li> </ol><p> ということらしい。 そこで Hyper Pictogram 構想へ繋がるようだ。 </p><p> 簡単に言うと Hyper Pictogram は,現行で使われている pictogram に対するカタログサイトのようなものを作成し,検索エンジン等を利用して pictogram と連動させようということらしい。 提唱者はこれを2020年の東京オリンピックに便乗した「公共事業」として提案しているようだ(この辺が日本の建築家らしい発想だな)。 </p><p> オリンピックに東京都がいくら<q><a href="http://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E5%88%97%E5%B3%B6%E6%94%B9%E9%80%A0%E8%AB%96">金とコンクリート</a></q>を突っ込もうが(それは東京都民の問題なので)知ったことではないが,もし国の公共事業としてやるなら話ば別。 それに日本でこの手のプロジェクトに役人が首を突っ込んでうまくいった試しはない。 なので,どうせやるなら「公共事業」じゃない方法にすべき。 なぜならオリンピックは(夏冬あわせて)世界中で2年おきに必ず行われるものだからだ。 (あぁでも既に進行中ならヤメロとは言わないけどね) </p><p> 発想自体は面白いと思う。 リンク元では <a href="https://support.google.com/websearch/answer/166331">Google Goggles</a> との連動を考えているらしい。 それなら Google と提携して(あるいは Bing も巻き込んで)オープンデータ・プロジェクトとしてやったほうが効率がいい(あるいは <a href="http://www.openstreetmap.org/">OSM</a> と連携するのも面白いかもしれない)。 </p><p> もしやるなら,それはおそらく </p><ol> <li>pictogram 収集フェーズ</li> <li>pictogram 翻訳フェーズ</li> </ol><p> の2つのフェーズで構成されることになるだろう。 </p><p> 収集フェーズはそれほど難しくはないだろう。 オリンピックを当面のターゲットとするのならオリンピックで使われる公式 pictogram のデータを提供してもらえばいいからだ。 それ以外のものについてはプロジェクトの参加者が任意で追加できる仕組みを提供すればいい。 道案内などで使うような pictogram は,その目的からして,著作権フリーかそれに近いライセンスになってる筈なので問題にはならないだろう。 spam に注意する必要があるが。 </p><p> 大変なのは翻訳フェーズ。 日本にいると「英語とあとは隣国の中国語と韓国語くらいでいいだろう」とかなりそうだけど(「中国語」という括りもかなり大雑把だけど),「あらゆる言語を網羅的に」対応するなら,そんなわけにはいかない。 たとえば <a href="http://creativecommons.org/licenses/by-sa/4.0/rdf">cc-license の RDF データ</a>とかを見ればわかると思うけど(日本語以外に漢字表記が3つある),かなりの数の言語をサポートしなければならない。 これは内輪でやっても到底ムリな話で,オープンかつ Wiki 的に世界規模でやる必要がある(故に<a href="http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%83%87%E3%83%BC%E3%82%BF">オープンデータ</a>である必要があるのだ)。 </p><p> Hyper Pictogram は cc-license を参考にして Human-Readable なレイヤと Machine-Readable なレイヤを持つことを考えているらしい。 Machine-Readable なレイヤを持つ,というのは検索エンジン等で利用しやすいようにしようということだろう。 多言語に対応するということなら RDF だろうか。 たとえば RDF/XML であれば </p><pre class="brush:xml" title="RDF/XML for Noh Theater"><?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:dc='http://purl.org/dc/terms/'>
<dc:StillImage rdf:about="http://example.org/pictogram/Noh-Theater/">
<dc:title xml:lang="ja">能楽堂</dc:title>
<dc:description xml:lang="ja">能舞台と観客席を設けている建物</dc:description>
<dc:title xml:lang="en">Noh Theater</dc:title>
<dc:description xml:lang="en">a building which has a stage and audience seats for playing Noh.</dc:description>
<dc:hasPart rdf:resource="http://example.org/pictogram/Noh-Theater/image.png"/>
<dc:license rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/"/>
</dc:StillImage>
</rdf:RDF></pre>
<p>
みたいな感じかな? 専用の語彙を定義したほうがいいかもだけど。
実際には何らかのデータベース(NoSQL で構わない)を使って情報を整理して,それにしたがって XML なり JSON(P) なり HTML なりで表現することになると思う。
</p><p>
考えるだけなら楽しいんだけどねぇ。
</p>
Microdata は machine-understandable ではない
tag:Baldanders.info,2014-09-02:/blog/000729/
2014-09-02T09:00:00+00:00
2014-09-02T09:00:00+00:00
長年(といっても10年足らずだけど)RDF を使ってたおかげで Semantic Web について考える際にはどうしても「主語-述語-目的語」の Triple で考える癖がついてしまってるのだが,その発想が Microdata の理解を妨げているらしいと気がついた。そこでちょっとアプローチを変えてみることにした。その上で RDF/RDFa と Microdata を比較・考察してみる。
Spiegel
/profile/
<p> 長年(といっても10年足らずだけど)RDF を使ってたおかげで Semantic Web について考える際にはどうしても「主語-述語-目的語」の Triple で考える癖がついてしまってるのだが,その発想が Microdata の理解を妨げているらしいと気がついた。 そこでちょっとアプローチを変えてみることにした。 その上で RDF/RDFa と Microdata を比較・考察してみる。 </p> <section> <h3>勝手に「Microdata 用語」</h3> <p> Microdata に関する色々なページを回ってみるが,体系的にきちんとした説明をしているところはほぼない。 「<a href="http://www.w3.org/TR/2013/NOTE-microdata-20131029/">W3C のドキュメント</a>を見ろ」と言われそうだが,こちらも「使い方」以上の説明がない。 (ところで Microdata に関する「勧告(Recommendation)」レベルのドキュメントってあるの?) </p><p> そこでこちらで勝手に「用語」を設定して整理してみることにする。 もちろんここで言う「用語」はこのページでしか通用しない。ゴメンペコン。 </p><p> Microdata を理解するには「オブジェクト指向(object-orientation)」で考えると分かりやすい。 また Microdata のデータ構造は HTML 記述の制約を受ける。 したがって Microdata による記述の範囲は,最大でもそのページの内部に限られる。 なぜなら Microdata は <a href="http://www.w3.org/DOM/">DOM(Document Object Model)</a>に組み込まれている(<a href="http://html5experts.jp/shumpei-shiraishi/1710/">予定</a>だ)からだ。 </p><p> <code>itemscope</code> 属性(値なし)をセットされた要素およびその子要素は item と呼ばれる。 item の type は <code>itemtype</code> 属性で指定する。 つまり item と type は is-a 関係である,と言える。 違う言い方をするなら, item は instance object で type は class object である,とも言える。 実際, <a href="http://schema.org/">schema.org</a> を見ると type 同士も is-a 関係による hierarchical 構造を持っているのがわかる。 (<span class="offrec">この辺は Semantic Web における <a href="http://www.w3.org/TR/owl-features/">ontology 研究</a>の成果かねぇ</span>) </p><ul> <li><a href="http://schema.org/docs/full.html">Full Hierarchy - schema.org</a> (<a href="http://schema-ja.appspot.com/docs/full.html">日本語訳</a>)</li> </ul><p> item 内では「名前-値」の組合せで構成された property を設置することができる。 property 名は item の type によって使える名前が決まっていて <code>itemprop</code> 属性で指定する。 property 値には literal 以外に item を指定することができる(したがって property 値は構造を持つ)。 property 値についても対応する property 名によって <q lang="en">expected type</q> が決められているが(他所のサイトの例示等を見る限り)強い制約ではないようである。 </p><p> item と property は常に has-a 関係である。 </p><p> item 自身には「名前」がない。 何故かというと Microdata には property 以外に item 同士を関連付ける手段がないため,<strong>識別(identification)</strong>のための「名前」は不要なのである。 (<code>itemref</code> 属性および <code>itemid</code> 属性については後述) </p><p> 大雑把な説明はここまで。 ここでいったん「用語」を整理しておこう。 </p> <figure> <table> <thead> <tr><th>用語</th><th>内容</th></tr> </thead> <tbody> <tr><td>item</td> <td>Microdata における instance object の単位</td></tr> <tr><td>type</td> <td>Microdata における class object の単位</td></tr> <tr><td>property</td> <td>item の内容を示す情報。「名前-値」の組合せ(連想配列)で表現する</td></tr> <tr><td>property 名</td><td>property の名前</td></tr> <tr><td>property 値</td><td>property の(名前に対する)値。 literal または item の表現をとる</td></tr> <tr><td>literal</td> <td>特定の書式を持った文字列表現(例:日付 "2014-09-02")</td></tr> <tr><td>is-a 関係</td> <td>両オブジェクトが「継承」関係であることを示す(例: He is-a man.)</td></tr> <tr><td>has-a 関係</td> <td>両オブジェクトが「包含」関係であることを示す(例: She has-a book.)</td></tr> <tr><td>application</td><td>Microdata を読み込み解釈(parse)し利用するプログラムまたはサービス。<br/>parser も application の一種</td></tr> </tbody> </table> <figcaption>勝手に「Microdata 用語」</figcaption> </figure> <p> こうしてみると, Microdata は(Microformats から fork した)RDFa よりも Microformats に近いと言える。 </p> </section> <section> <h3>itemref は property を include する</h3> <p> <code>itemref</code> 属性で ID(<code>id</code> 属性で<strong>指示(indication)</strong>する)を指定すると,対象の ID で示された要素(およびその子要素)内に記述された property を構造ごと取り込み(include), item 内の property として再構成する。 これは結構危険な機能である。 </p><p> まず <code>itemref</code> 属性による指定を忘れると,どの item にも属さない「孤独な property」が存在する可能性がある。 この状態で parser がどう反応するか試してみた。 <q lang="en"><a href="http://www.google.com/webmasters/tools/richsnippets">Google Structured Data Testing Tool</a></q> では単純に <code>itemprop</code> 属性を無視するようだ。 property 値が item の場合は,その item はどこにも属さない独立した item として認識される。 一方 <q lang="en"><a href="http://validator.w3.org/">The W3C Markup Validation Service</a></q> ではガッツリ怒られた。 </p><p> もうひとつは <code>itemref</code> 属性による指定が循環する可能性である。 A → B → C → A と指定すると include が循環して無限ループになる。 さすがにこれがどうなるかは試してない。 まさか今時これで stack overflow するバカな parser はないと思うけど。 </p> </section> <section> <h3>Microdata は itemid を参照しない</h3> <p> item には <code>itemid</code> 属性を使って(ページの外部という意味での)グローバルな ID を<strong>指示(indication)</strong>できる。 ただしこの ID を参照する手段は Microdata 自身には存在しない。 </p><p> property 値(literal 表現)として指定することは可能かもしれないが,たとえ全く同じ文字列であっても property 値と <code>itemid</code> 属性で示した ID が同じであると Microdata 自身は保証しない。 また異なる item に同じ ID を指示することが可能なので, <code>itemid</code> 属性を item の<strong>識別(identification)</strong>手段として用いることもできない。 </p><p> じゃあ何のためにこの機能があるかというと, application 側でこの ID に対応する item を検索するためにある(と思われる)。 </p> </section> <section> <h3>Microdata vs. RDFa</h3> <p> Microdata と RDFa の決定的な違いは, RDFa がネット上のあらゆるリソース(= URI)をノードとしたゆるやかな「網(web)」を構成するのに対し, Microdata はページ内の hierarchical な「構造(structure)」を構成する。 しかも Microdata を読む application は,構造化データのうち自身に必要な項目を読むだけで,そこにある意味を「理解」しているわけではない。 何故なら(それは application がヘボいのではなく)もともと Microdata は application にとって制御情報にすぎないからだ。 </p><p class="offrec"> (たとえば,ある item の type に <a href="http://schema.org/Person"><code>http://schema.org/Person</code></a> を指定した際, <code>itemprop='name'</code> を含む property がないと <q lang="en"><a href="http://www.google.com/webmasters/tools/richsnippets">Google Structured Data Testing Tool</a></q> がエラーを吐く。 <code>givenName</code> や <code>familyName</code> では「名前」と見なしてくれないのだ。 これだけを見ても,いかに世の application が「意味」を「理解」する気がないかが分かる) </p><p> たとえば Google なんかは「世界中の情報をグラフ化する」という社是があるんだから,ページ単位でしかデータを構成できない Microdata よりネット上のあらゆるノードを横断する RDFa を支持すべきだろう,となりそうだが実際にはそうならなかった(RDFa も「読める」程度にはサポートしているが)。 理由は政治的なものも含めて色々あるだろうが,おそらく最も大きな理由は RDF が(Google 等のサービス・プロバイダにとって)uncontrollable だからではないだろうか。 それに比べれば hierarchical な構造を持つ Microdata は御しやすい。 ならば, Microdata は machine-understandable というよりは machine-controllable である,とするべきだ。 </p><p> サービス・プロバイダ(の application)にすり寄っていかざるを得ない SEO(Search Engine Optimization)業者にとっても RDFa を支持する理由はない。 少なくとも <a href="https://developers.facebook.com/docs/opengraph">OGP</a> や <a href="https://dev.twitter.com/ja/docs/cards">Twitter Cards</a> なんかよりは Microdata のほうがよほど「冴えたやり方」と言える。 </p><p class="offrec"> (それでも全部対応せざるを得ないのが SEO の悲しさだが。 どっかにも書いたのだが, SEO ってやればやるほど虚しくなるよね。 サービス・プロバイダの提示するジコチューな仕様に振り回されるだけ。 SEO 屋さんって自分の仕事をどう思ってるのかねぇ) </p><p> Microdata が machine-controllable であることは SEO 以外のメリットもあって(というか,こちらが本命だと思うが),それはブラウザの拡張機能やスマートフォン・タブレットなどの携帯端末で動作する application と相性がいいということだ。 今までもそうだったが,これからもっともっと Web は(application との連携により)programmable になる。 そのための要素技術として Microdata は必須の要件になっていくと思う(DOM API も含めてちゃんと Recommendation が出ればだけど)。 </p><p> これまで述べたように Microdata と RDFa とでは出自も目的も構造もまるで異なる。 競合する規格ではないということだ。 まぁ個人的には,世の中がもうすこしだけ semantics に興味を持っていただければと思うわけだが,需要がないということなんだろうなぁ。 </p> </section> <section> <h3>参考</h3> <p>RDFa については拙文<q><a href="https://baldanders.info/spiegel/rdfa/">RDFa 入門</a></q>をどうそ。いくつか間違いがあったのでそのうち修正する。</p> <ul> <li><a href="http://syncer.jp/schema-entering">Googleリッチスニペット対策!初心者向けSchema.org解説!</a></li> <li><a href="http://junmaruyama.info/schemaorgjenerater/">schema.orgを生成してくれるサイト・ツールまとめ | Jun Maruyama Online クズの条件</a></li> <li><a href="http://www.publickey1.jp/blog/09/html5microdata_1.html">HTML5のドラフト仕様書からMicrodataの抄訳 - Publickey</a> (内容が古いが,日本語ではここが一番まとも)</li> </ul> <div class="hreview"> <a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711QS/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/51918WvpWNL._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711QS/baldandersinf-22/">HTML5 スタンダード・デザインガイド~Webサイト制作者のためのビジュアル・リファレンス&セマンティクスによるコンテンツデザインガイド~ [リフロー版]</a></dt><dd>エ・ビスコム・テック・ラボ </dd><dd>マイナビ 2013-02-14</dd><dd>評価<abbr class="rating" title="4"><img src="https://images-fe.ssl-images-amazon.com/images/G/01/detail/stars-4-0.gif" alt=""/></abbr> </dd></dl><p class="similar"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711R2/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00CZ711R2.09._SCTHUMBZZZ_.jpg" alt="CSS3 スタンダード・デザインガイド【改訂第2版】 [リフロー版]"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CALAWC8/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00CALAWC8.09._SCTHUMBZZZ_.jpg" alt="よくわかるJavaScriptの教科書 (教科書シリーズ)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00BPLSH9E/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00BPLSH9E.09._SCTHUMBZZZ_.jpg" alt="jQueryデザインブック 仕事で絶対に使うプロのテクニック"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00ME0FJ14/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00ME0FJ14.09._SCTHUMBZZZ_.jpg" alt="PHPライブラリ&サンプル実践活用[厳選100] (Software Design Plus)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00M0ESXUI/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00M0ESXUI.09._SCTHUMBZZZ_.jpg" alt="Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法"/></a> </p> <p class="gtools">reviewed by <a href="#me" class="reviewer">Spiegel</a> on <abbr class="dtreviewed" title="2014/09/02">2014/09/02</abbr> (powered by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a>)</p> </div> <p class="offrec">(あとはこの hReview なんだよなぁ。どうにかしたいがどうにかなるのだろうか)</p> </section>
ccREL と RDFa,もしくは Open Graph と Microdata
tag:Baldanders.info,2014-08-22:/blog/000726/
2014-08-22T09:00:00+00:00
2014-08-22T09:00:00+00:00
これで一応完成。夏休みの読書感想文ってところですかね。
Spiegel
/profile/
<p> 「<a href="https://baldanders.info/cc-license.shtml">クリエイティブ・コモンズ・ライセンスについて</a>」の <a href="https://baldanders.info/cc-license.shtml#metadata">RDF の節</a>と「<a href="https://baldanders.info/spiegel/rdfa/">RDFa 入門</a>」の <a href="https://baldanders.info/spiegel/rdfa/#ccrel">ccREL の節</a>を追記した。 両者はお互いに関連してるので記述をどう分けるかで悩んだ。 まぁ,でも,これで一応完成。 夏休みの読書感想文ってところですかね。 「<a href="https://baldanders.info/cc-license.shtml">クリエイティブ・コモンズ・ライセンスについて</a>」は当初予想してたより随分量が増えてしまったので目次を付けないとダメかもしれん。 まぁその辺はおいおい。 </p><p> サイトのリニューアルも <a href="https://baldanders.info/profile/">Profile のページ</a>と <a href="https://baldanders.info/spiegel/archive/">Archive のページ</a>を整理すれば一応完了。 古いコンテンツは引き続き放置することにした。 ここまでできれば夏休みの宿題完了ってところだろうか。 </p><p> RDFa についてひとつだけ理解したことがある。 それは </p><p class="center"> <strong class="caution">Open Graph は RDFa じゃねー!</strong> </p><p> ということだった。 単に RDFa に似せて作ってるというだけで RDFa の機能,つまり「意味を構成する」ことができない。 要するにアプリの制御情報(文字通りの property)を「RDFa みたいな」しくみで HTML の <code><head></code> 要素に埋め込んでるだけなのだ。 だいたい Open Graph なんて思わせぶりな名前がいけないんだよな。 そういう方面を期待しちゃうじゃない。 </p><p> で,こういうバカな仕組みほど真似する奴が多いようで, <a href="https://dev.twitter.com/ja/docs/cards">Twitter Card</a> なんてそのまんまだし, <a href="http://developer.mixi.co.jp/connect/mixi_plugin/mixi_check/spec_mixi_check/">mixi</a> や <a href="https://docs.developer.gree.net/ja/platform/connect/socialfeedback">GREE</a> は Open Graph に独自仕様を混ぜ込んで「さすが日本は素晴らしいガラパゴスですね」って感じである。 </p><p> こういうアホなものにつきあうのは業腹なので Open Graph の記述は全部取っ払った。 お陰で <code><head></code> 要素内がスッキリしたよ。 シンプルなのが一番。 もともと Open Graph の情報を入れたのは Facebook や Facebook ページの調査のためだったしな。 Facebook ブームも終わったみたいだし,もうええやろ。 </p><p> SEO 的な効果を考えるのなら Open Graph より Microdata を導入することをお薦めする。 手始めに以下はどうだろうか。 </p><ul> <li><a href="http://kots.jp/blog/site-structured/6284/">microdata のスニペットをbodyタグに書く方法 | kots blog</a></li> </ul><p> これは面白そうなので後日試してみる。 Microdata の勉強になるかな。 </p> <div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711QS/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/51918WvpWNL._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711QS/baldandersinf-22/">HTML5 スタンダード・デザインガイド~Webサイト制作者のためのビジュアル・リファレンス&セマンティクスによるコンテンツデザインガイド~ [リフロー版]</a></dt><dd>エ・ビスコム・テック・ラボ </dd><dd>マイナビ 2013-02-14</dd><dd>評価<abbr class="rating" title="4"><img src="https://images-fe.ssl-images-amazon.com/images/G/01/detail/stars-4-0.gif" alt=""/></abbr> </dd></dl><p class="similar"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711R2/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00CZ711R2.09._SCTHUMBZZZ_.jpg" alt="CSS3 スタンダード・デザインガイド【改訂第2版】 [リフロー版]"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CALAWC8/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00CALAWC8.09._SCTHUMBZZZ_.jpg" alt="よくわかるJavaScriptの教科書 (教科書シリーズ)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00BPLSH9E/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00BPLSH9E.09._SCTHUMBZZZ_.jpg" alt="jQueryデザインブック 仕事で絶対に使うプロのテクニック"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00M0ESXUI/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00M0ESXUI.09._SCTHUMBZZZ_.jpg" alt="Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00IWHVLUG/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00IWHVLUG.09._SCTHUMBZZZ_.jpg" alt="これからの「標準」を身につける HTML+CSSデザインレシピ[固定レイアウト版]"/></a> </p><p class="gtools">by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a> , <abbr class="dtreviewed" title="2014/08/22">2014/08/22</abbr></p></div>
RDFa についてちゃんと書いてみた
tag:Baldanders.info,2014-08-18:/blog/000725/
2014-08-18T09:00:00+00:00
2014-08-18T09:00:00+00:00
前回 RDFa についてちょろんと書いたが,そろそろ頭のなかが煮詰まってきたので,整理も兼ねて RDFa についてちゃんと書いてみることにした。
Spiegel
/profile/
<p> 前回 <a href="https://baldanders.info/blog/000722/">RDFa についてちょろんと書いた</a>が,そろそろ頭のなかが煮詰まってきたので,整理も兼ねて RDFa についてちゃんと書いてみることにした。 </p><ul> <li><a href="https://baldanders.info/spiegel/rdfa/">RDFa 入門 — Baldanders.info</a></li> </ul><p> <a href="https://baldanders.info/spiegel/rdfa/#foaf">FoaF まで書いた</a>ところで力尽きた。 ccREL までたどり着かなかったよ。 続きはまた今度。 </p><p> しかし,考えれば考えるほど Open Graph はダサいと思うのだが,その辺どうなんだろう。 なんで FoaF より後発の Open Graph のほうがデキが悪いのか分からない。 それともみんなもう Microdata の方に行っちゃってるのかな。 </p> <div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/483993195X/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/51oaN2iq9xL._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/483993195X/baldandersinf-22/">セマンティック HTML/XHTML</a></dt><dd>神崎 正英 </dd><dd>毎日コミュニケーションズ 2009-05-28</dd><dd>評価<abbr class="rating" title="4"><img src="https://images-fe.ssl-images-amazon.com/images/G/01/detail/stars-4-0.gif" alt=""/></abbr> </dd></dl><p class="similar"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/4627829310/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4627829310.09._SCTHUMBZZZ_.jpg" alt="セマンティック・ウェブのためのRDF/OWL入門"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4873114527/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4873114527.09._SCTHUMBZZZ_.jpg" alt="セマンティックWeb プログラミング"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4764904276/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4764904276.09._SCTHUMBZZZ_.jpg" alt="Linked Data: Webをグローバルなデータ空間にする仕組み"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4274202925/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4274202925.09._SCTHUMBZZZ_.jpg" alt="オントロジー構築入門"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4501542101/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4501542101.09._SCTHUMBZZZ_.jpg" alt="トピックマップ入門 (セマンティック技術シリーズ)"/></a> </p><p>残念ながら紙の本は実質的に絶版なんですよねぇ。是非デジタル化を希望します。</p><p class="gtools">by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a> , <abbr class="dtreviewed" title="2014/08/17">2014/08/17</abbr></p></div> <div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711QS/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/51918WvpWNL._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711QS/baldandersinf-22/">HTML5 スタンダード・デザインガイド~Webサイト制作者のためのビジュアル・リファレンス&セマンティクスによるコンテンツデザインガイド~ [リフロー版]</a></dt><dd>エ・ビスコム・テック・ラボ </dd><dd>マイナビ 2013-02-14</dd><dd>評価<abbr class="rating" title="4"><img src="https://images-fe.ssl-images-amazon.com/images/G/01/detail/stars-4-0.gif" alt=""/></abbr> </dd></dl><p class="similar"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711R2/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00CZ711R2.09._SCTHUMBZZZ_.jpg" alt="CSS3 スタンダード・デザインガイド【改訂第2版】 [リフロー版]"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CALAWC8/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00CALAWC8.09._SCTHUMBZZZ_.jpg" alt="よくわかるJavaScriptの教科書 (教科書シリーズ)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00BPLSH9E/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00BPLSH9E.09._SCTHUMBZZZ_.jpg" alt="jQueryデザインブック 仕事で絶対に使うプロのテクニック"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00IWHVLUG/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00IWHVLUG.09._SCTHUMBZZZ_.jpg" alt="これからの「標準」を身につける HTML+CSSデザインレシピ[固定レイアウト版]"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00M0ESXUI/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00M0ESXUI.09._SCTHUMBZZZ_.jpg" alt="Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法"/></a> </p><p class="gtools">by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a> , <abbr class="dtreviewed" title="2014/08/17">2014/08/17</abbr></p></div>
RDFa 入門
tag:Baldanders.info,2014-08-18:/spiegel/rdfa/
2014-08-18T05:02:47+00:00
2019-06-16T07:50:24+00:00
Web ページにメタデータを記述する RDFa について簡単に説明します。
Spiegel
/profile/
<p>ここでは Web ページにメタデータを記述する RDFa について簡単に説明します。</p>
<p>「メタデータ(metadeta)」というのは「情報に関する情報」といった程度の意味で,特に RDF/RDFa の場合は,検索エンジンなどの機械が理解可能な(machine-understandable)情報を記述することを目標にしています。</p>
<ol>
<li><a href="#fromrdf">まずは RDF から</a></li>
<li><a href="#tordfa">RDF から RDFa へ</a></li>
<li><a href="#rule">RDFa の基本的なルールと語彙</a></li>
<li><a href="#dct">Dublin Core Terms</a></li>
<li><a href="#foaf">Friend of a Friend</a></li>
<li><a href="#ccrel">Creative Commons Rights Expression Language</a></li>
<li><a href="#og">付録: Open Graph</a></li>
</ol>
<h2 id="fromrdf">まずは RDF から</h2>
<p>RDF(Resource Description Framework)は情報を「主語( subject)」,「述語(predicate)」,「目的語(object)」の3つに分類し,この3つ組(triple)の関係を使って情報を記述します。
例えば「私は猫が好きです」という文章は主語を「私」,述語を「好き」,目的語を「猫」と分類し,以下の関係で表すことができます。</p>
<figure style='margin:0 auto;text-align:center;'><a href="./rdf1.svg"><img src="./rdf1.svg" srcset="./rdf1.svg 500w" sizes="(min-width:600px) 500px, 80vw" alt="RDF の Triple (1)" loading="lazy"></a><figcaption><div><a href="./rdf1.svg">RDF の Triple (1)</a></div></figcaption>
</figure>
<p>更にもうひとつ「猫の名前はべるのです」という情報を加えてみましょう。</p>
<figure style='margin:0 auto;text-align:center;'><a href="./rdf2.svg"><img src="./rdf2.svg" srcset="./rdf2.svg 650w" sizes="(min-width:600px) 500px, 80vw" alt="RDF の Triple (2)" loading="lazy"></a><figcaption><div><a href="./rdf2.svg">RDF の Triple (2)</a></div></figcaption>
</figure>
<p>ここで「私は猫が好きです」の目的語である「猫」と「猫の名前はべるのです」の主語である「猫」が同一であるなら上の図のような関係になります。
人間であれば前後の文脈から2つの「猫」が同じものであると推測できますが,機械にはそれができません。
2つの「猫」が同じであるとするためには両者に同じ識別情報(identifier)を与える必要があります。
RDF ではこの識別情報に <a href="http://tools.ietf.org/html/rfc3986">URI (Uniform Resource Identifier)</a> を用います(URI は URL (Uniform Resource Locator) の拡張と考えていただければ概ね間違いないです)。
また URI によって一意に決まる情報を「リソース(resource)」と呼びます。</p>
<p>一方で,「べるの」という目的語はただの文字列で一意である必要がありません。
このようなデータを「リテラル・データ(literal data)」と呼びます。
リテラル・データは目的語には使えますが主語には使えません。
主語は必ずリソースである必要があります。</p>
<p>主語や目的語と同じく述語もまた URI で表現します。
従って「私は犬も好きです」と言うとき</p>
<figure style='margin:0 auto;text-align:center;'><a href="./rdf3.svg"><img src="./rdf3.svg" srcset="./rdf3.svg 650w" sizes="(min-width:600px) 500px, 80vw" alt="RDF の Triple (3)" loading="lazy"></a><figcaption><div><a href="./rdf3.svg">RDF の Triple (3)</a></div></figcaption>
</figure>
<p>「猫」に対する「好き」と「犬」に対する「好き」が同一であるとするなら,「私」と「猫」,「私」と「犬」との関係は「好き」という点において同じであると「<strong>理解</strong>」することができます。
これが machine-understandable であるということの意味です。</p>
<p>(RDF で使われる述語等のセットを語彙(vocabulary)といいます。
語彙は RDF Schema のルールに従えばだれでも定義することができます(語彙の定義に興味のある方は<a href="http://www.kanzaki.com/docs/sw/rdf-schema.html">こちらのページ</a>をどうぞ)。
しかし通常は <a href="#dct">Dublin Core Terms</a> などの汎用の語彙を使うべきです)</p>
<p>このように RDF では, Triple を用いてリソースをノードとした意味(semantic)の網(web)を構成していくのです。</p>
<h2 id="tordfa">RDF から RDFa へ</h2>
<p>RDF は仕様としては良く出来ていましたが,主な形式である RDF/XML の記述が複雑なため使い勝手がイマイチなのと HTML に情報を埋め込む方法がなかったため(RSS(RDF Site Summary)など一部での利用を除いて)普及しているとは言えない状況です。
この状況を改善するために RDFa(Resource Description Framework in Attributes)が提案されました。
RDFa は <a href="http://microformats.org/">Microformats</a> からの fork と言えるもので, <code>rel</code> や <code>property</code> といった HTML 要素の属性を使い, RDF の語彙によって HTML 上の情報同士を関連付けていきます。</p>
<p>RDFa は2013年に W3C によってバージョン 1.1 が勧告(Recommendation)となりました。</p>
<ul>
<li><a href="http://www.w3.org/TR/rdfa-core/">RDFa Core 1.1 - Second Edition</a> (2013-08-22)</li>
<li><a href="http://www.w3.org/TR/xhtml-rdfa/">XHTML+RDFa 1.1 - Second Edition</a> (2013-08-22)</li>
<li><a href="http://www.w3.org/TR/html-rdfa/">HTML+RDFa 1.1</a> (2013-08-22)</li>
<li><a href="http://www.w3.org/TR/rdfa-lite/">RDFa Lite 1.1</a> (2012-06-07)</li>
<li><a href="http://www.w3.org/TR/rdfa-primer/">RDFa 1.1 Primer - Second Edition</a> (2013-08-22 Group Note)</li>
</ul>
<h2 id="rule">RDFa の基本的なルールと語彙</h2>
<p>RDFa で利用することのできる属性は以下のとおりです。</p>
<figure>
<table>
<thead>
<tr><th>RDF 要素</th><th>属性名</th><th>内容</th></tr>
</thead>
<tbody>
<tr><td rowspan='1'>主語</td> <td><code>about</code>, <code>src</code></td><td>主語となるリソースを指示します</td></tr>
<tr><td rowspan='3'>述語</td> <td><code>rel</code>, <code>rev</code></td><td>目的語がリソースである述語を指示します(<code>rev</code> は主語と目的語が反転します)</td></tr>
<tr> <td><code>property</code></td><td>目的語がリテラル・データである述語を指示します</td></tr>
<tr> <td><code>inlist </code></td><td>目的語がコレクションになります(他の述語と組み合わせて使います)</td></tr>
<tr><td rowspan='2'>目的語</td><td><code>resource</code>, <code>href</code></td><td>目的語となるリソースを指示します</td></tr>
<tr> <td><code>content</code></td><td>目的語となるリテラル・データを記述します</td></tr>
<tr><td>クラス</td> <td><code>typeof</code></td><td>主語または述語となるリソースのタイプを指示します</td></tr>
<tr><td>データタイプ</td> <td><code>datatype</code></td><td>リテラル・データのデータタイプを指示します</td></tr>
<tr><td rowspan='1'>語彙</td> <td><code>prefix</code>, <code>vocab</code></td><td>語彙を指示します</td></tr>
</tbody>
</table>
<figcaption>RDFa で利用できる属性</figcaption>
</figure>
<p>語彙を追加するには主に <code>prefix を用います。 </code>prefix` は接頭辞(prefix)を指定することで複数の語彙を指示できます。
たとえば <a href="#dct">Dublin Core Terms</a> および <a href="#ccrel">ccREL</a> の語彙を追加する場合は以下のように記述します。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">html</span> <span class="na">prefix</span><span class="o">=</span><span class="s">'dc: http://purl.org/dc/terms/ cc: http://creativecommons.org/ns#'</span><span class="p">></span>
</span></span></code></pre></div><p>ただし, HTML5 では以下の語彙が組込み済みとなっているため,これらについて改めて指示する必要はありません。</p>
<ul style='list-style:none;'>
<li><code>bibo:</code> <a href="http://purl.org/ontology/bibo/"><code>http://purl.org/ontology/bibo/</code></a></li>
<li><code>cc:</code> <a href="http://creativecommons.org/ns#"><code>http://creativecommons.org/ns#</code></a></li>
<li><code>dbp:</code> <a href="http://dbpedia.org/property/"><code>http://dbpedia.org/property/</code></a> (<a href="http://www.w3.org/2012/pyRdfa/Validator.html">Validator</a> 等では認識しない?)</li>
<li><code>dbp-owl:</code> <a href="http://dbpedia.org/ontology/"><code>http://dbpedia.org/ontology/</code></a> (<a href="http://www.w3.org/2012/pyRdfa/Validator.html">Validator</a> 等では認識しない?)</li>
<li><code>dbr:</code> <a href="http://dbpedia.org/resource/"><code>http://dbpedia.org/resource/</code></a></li>
<li><code>dc:</code> <a href="http://purl.org/dc/terms/"><code>http://purl.org/dc/terms/</code></a></li>
<li><code>ex:</code> <a href="http://example.org/"><code>http://example.org/</code></a></li>
<li><code>foaf:</code> <a href="http://xmlns.com/foaf/0.1/"><code>http://xmlns.com/foaf/0.1/</code></a></li>
<li><code>owl:</code> <a href="http://www.w3.org/2002/07/owl#"><code>http://www.w3.org/2002/07/owl#</code></a></li>
<li><code>rdf:</code> <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><code>http://www.w3.org/1999/02/22-rdf-syntax-ns#</code></a></li>
<li><code>rdfa:</code> <a href="http://www.w3.org/ns/rdfa#"><code>http://www.w3.org/ns/rdfa#</code></a></li>
<li><code>rdfs:</code> <a href="http://www.w3.org/2000/01/rdf-schema#"><code>http://www.w3.org/2000/01/rdf-schema#</code></a></li>
<li><code>xhv:</code> <a href="http://www.w3.org/1999/xhtml/vocab#"><code>http://www.w3.org/1999/xhtml/vocab#</code></a></li>
<li><code>xsd:</code> <a href="http://www.w3.org/2001/XMLSchema#"><code>http://www.w3.org/2001/XMLSchema#</code></a></li>
</ul>
<p>主語・述語・目的語の Triple の指定は,以下のように行います。
たとえば,以下のテキストがあるとします。</p>
<blockquote>
<section id='AlbertEinstein'>
<h4>アルベルト・アインシュタインについて</h4>
<p>
アルベルト・アインシュタインは1879年3月14日,ドイツ生まれの理論物理学者です。
彼による革命的な3つの論文<q>光電効果の理論</q><q>ブラウン運動の理論</q><q>特殊相対性理論</q>が発表された1905年は<q><a href='http://www.einstein1905.info/einstein/1905.html'>奇跡の年</a></q>と呼ばれています。
</p>
</section>
</blockquote><p>
<p>アインシュタインに関する記述ですね。
このテキストのマークアップは以下のとおりです。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">section</span> <span class="na">id</span><span class="o">=</span><span class="s">'AlbertEinstein'</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">h4</span><span class="p">></span>アルベルト・アインシュタインについて<span class="p"></</span><span class="nt">h4</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">p</span><span class="p">></span>
</span></span><span class="line"><span class="cl">アルベルト・アインシュタインは1879年3月14日,ドイツ生まれの理論物理学者です。
</span></span><span class="line"><span class="cl">彼による革命的な3つの論文<span class="p"><</span><span class="nt">q</span><span class="p">></span>光電効果の理論<span class="p"></</span><span class="nt">q</span><span class="p">><</span><span class="nt">q</span><span class="p">></span>ブラウン運動の理論<span class="p"></</span><span class="nt">q</span><span class="p">><</span><span class="nt">q</span><span class="p">></span>特殊相対性理論<span class="p"></</span><span class="nt">q</span><span class="p">></span>が発表された1905年は<span class="p"><</span><span class="nt">q</span><span class="p">><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">'http://www.einstein1905.info/einstein/1905.html'</span><span class="p">></span>奇跡の年<span class="p"></</span><span class="nt">a</span><span class="p">></</span><span class="nt">q</span><span class="p">></span>と呼ばれています。
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">p</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">section</span><span class="p">></span>
</span></span></code></pre></div><p>これに名前・生年月日等のメタデータを加えます。
人物についての記述ですので <a href="#foaf">FoaF</a> および <a href="http://vocab.org/bio/0.1/">BIO</a> 語彙が中心になります。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">section</span> <span class="na">id</span><span class="o">=</span><span class="s">'AlbertEinstein'</span> <span class="na">about</span><span class="o">=</span><span class="s">'#AlbertEinstein'</span> <span class="na">prefix</span><span class="o">=</span><span class="s">'bio: http://purl.org/vocab/bio/0.1/'</span> <span class="na">typeof</span><span class="o">=</span><span class="s">'foaf:Person'</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">h4</span><span class="p">></span>アルベルト・アインシュタインについて<span class="p"></</span><span class="nt">h4</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">p</span> <span class="na">property</span><span class="o">=</span><span class="s">'bio:biography'</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">span</span> <span class="na">property</span><span class="o">=</span><span class="s">'foaf:name'</span><span class="p">></span>アルベルト・アインシュタイン<span class="p"></</span><span class="nt">span</span><span class="p">></span>は<span class="p"><</span><span class="nt">span</span> <span class="na">id</span><span class="o">=</span><span class="s">'birth'</span> <span class="na">resource</span><span class="o">=</span><span class="s">'#birth'</span> <span class="na">rel</span><span class="o">=</span><span class="s">'bio:birth'</span> <span class="na">typeof</span><span class="o">=</span><span class="s">'bio:Birth'</span><span class="p">><</span><span class="nt">span</span> <span class="na">property</span><span class="o">=</span><span class="s">'dc:date'</span> <span class="na">content</span><span class="o">=</span><span class="s">'1879-03-14'</span> <span class="na">datatype</span><span class="o">=</span><span class="s">'xsd:date'</span><span class="p">></span>1879年3月14日<span class="p"></</span><span class="nt">span</span><span class="p">></</span><span class="nt">span</span><span class="p">></span>,<span class="p"><</span><span class="nt">span</span> <span class="na">property</span><span class="o">=</span><span class="s">'bio:olb'</span><span class="p">></span>ドイツ生まれの理論物理学者<span class="p"></</span><span class="nt">span</span><span class="p">></span>です。
</span></span><span class="line"><span class="cl">彼による革命的な3つの論文<span class="p"><</span><span class="nt">span</span> <span class="na">id</span><span class="o">=</span><span class="s">'docs'</span> <span class="na">resource</span><span class="o">=</span><span class="s">'#docs'</span> <span class="na">rel</span><span class="o">=</span><span class="s">'foaf:made'</span> <span class="na">rev</span><span class="o">=</span><span class="s">'foaf:maker'</span> <span class="na">typeof</span><span class="o">=</span><span class="s">'foaf:Document'</span><span class="p">><</span><span class="nt">q</span> <span class="na">property</span><span class="o">=</span><span class="s">'dc:title'</span><span class="p">></span>光電効果の理論<span class="p"></</span><span class="nt">q</span><span class="p">><</span><span class="nt">q</span> <span class="na">property</span><span class="o">=</span><span class="s">'dc:title'</span><span class="p">></span>ブラウン運動の理論<span class="p"></</span><span class="nt">q</span><span class="p">><</span><span class="nt">q</span> <span class="na">property</span><span class="o">=</span><span class="s">'dc:title'</span><span class="p">></span>特殊相対性理論<span class="p"></</span><span class="nt">q</span><span class="p">></span>が発表された<span class="p"><</span><span class="nt">span</span> <span class="na">property</span><span class="o">=</span><span class="s">'dc:created'</span> <span class="na">content</span><span class="o">=</span><span class="s">'1905'</span> <span class="na">datatype</span><span class="o">=</span><span class="s">'xsd:date'</span><span class="p">></span>1905年<span class="p"></</span><span class="nt">span</span><span class="p">></span>は<span class="p"><</span><span class="nt">q</span><span class="p">><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">'http://www.einstein1905.info/einstein/1905.html'</span> <span class="na">rel</span><span class="o">=</span><span class="s">'dc:references'</span><span class="p">></span>奇跡の年<span class="p"></</span><span class="nt">a</span><span class="p">></</span><span class="nt">q</span><span class="p">></</span><span class="nt">span</span><span class="p">></span>と呼ばれています。
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">p</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">section</span><span class="p">></span>
</span></span></code></pre></div><p>ちょっとゴチャゴチャし過ぎちゃいましたかね。
関係を分かりやすくするために <a href="http://www.w3.org/2012/pyRdfa/">Distiller</a> を使って RDF/XML に変換してみます。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="cp"><?xml version="1.0" encoding="utf-8"?></span>
</span></span><span class="line"><span class="cl"><span class="nt"><rdf:RDF</span>
</span></span><span class="line"><span class="cl"> <span class="na">xmlns:foaf=</span><span class="s">"http://xmlns.com/foaf/0.1/"</span>
</span></span><span class="line"><span class="cl"> <span class="na">xmlns:bio=</span><span class="s">"http://purl.org/vocab/bio/0.1/"</span>
</span></span><span class="line"><span class="cl"> <span class="na">xmlns:rdf=</span><span class="s">"http://www.w3.org/1999/02/22-rdf-syntax-ns#"</span>
</span></span><span class="line"><span class="cl"> <span class="na">xmlns:dc=</span><span class="s">"http://purl.org/dc/terms/"</span>
</span></span><span class="line"><span class="cl"><span class="nt">></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><bio:Birth</span> <span class="na">rdf:about=</span><span class="s">"#birth"</span><span class="nt">></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><dc:date</span> <span class="na">rdf:datatype=</span><span class="s">"http://www.w3.org/2001/XMLSchema#date"</span><span class="nt">></span>1879-03-14<span class="nt"></dc:date></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></bio:Birth></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><foaf:Person</span> <span class="na">rdf:about=</span><span class="s">"#AlbertEinstein"</span><span class="nt">></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><foaf:name></span>アルベルト・アインシュタイン<span class="nt"></foaf:name></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><bio:olb></span>ドイツ生まれの理論物理学者<span class="nt"></bio:olb></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><bio:biography></span>
</span></span><span class="line"><span class="cl">アルベルト・アインシュタインは1879年3月14日,ドイツ生まれの理論物理学者です。
</span></span><span class="line"><span class="cl">彼による革命的な3つの論文光電効果の理論ブラウン運動の理論特殊相対性理論が発表された1905年は奇跡の年と呼ばれています。
</span></span><span class="line"><span class="cl"><span class="nt"></bio:biography></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><bio:birth</span> <span class="na">rdf:resource=</span><span class="s">"#birth"</span><span class="nt">/></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><foaf:made></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><foaf:Document</span> <span class="na">rdf:about=</span><span class="s">"#docs"</span><span class="nt">></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><dc:title></span>特殊相対性理論<span class="nt"></dc:title></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><dc:title></span>ブラウン運動の理論<span class="nt"></dc:title></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><dc:title></span>光電効果の理論<span class="nt"></dc:title></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><dc:created</span> <span class="na">rdf:datatype=</span><span class="s">"http://www.w3.org/2001/XMLSchema#date"</span><span class="nt">></span>1905<span class="nt"></dc:created></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><dc:references</span> <span class="na">rdf:resource=</span><span class="s">"http://www.einstein1905.info/einstein/1905.html"</span><span class="nt">/></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><foaf:maker</span> <span class="na">rdf:resource=</span><span class="s">"#AlbertEinstein"</span><span class="nt">/></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></foaf:Document></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></foaf:made></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></foaf:Person></span>
</span></span><span class="line"><span class="cl"><span class="nt"></rdf:RDF></span>
</span></span></code></pre></div><p>更にこれを RDF のグラフで表すと以下のようになります。
(図のクリックで拡大されます)</p>
<figure style='margin:0 auto;text-align:center;'><a href="./rdf5.svg"><img src="./rdf5.svg" srcset="./rdf5.svg 2496w" sizes="(min-width:600px) 500px, 80vw" alt="About Albert Einstein (by RDF Graph)" loading="lazy"></a><figcaption><div><a href="./rdf5.svg">About Albert Einstein (by RDF Graph)</a></div></figcaption>
</figure>
<p>RDFa と RDF/XML の記述を見比べるといくつかわかることがあります。</p>
<p>まず,全体の主語は <code>#AlbertEinstein</code> で,主語を指示している <code><section></code> 要素の子要素が全て <code>#AlbertEinstein</code> に対する目的語になっています。
このように, RDFa では HTML 要素の親子関係から主語と目的語を推測します。
明示的な主語が見つからない場合にはページそのもの(の URI)が主語となります。</p>
<p>次に <code>#docs</code> に注目してみます。
<code>#docs</code> は <code>#AlbertEinstein</code> の目的語ですが(述語は <code>foaf:made</code>),同時に <code>#docs</code> を含む <code><span></code> 要素の子要素の主語にもなっています(<code>#docs</code> 自体は <code>resource</code> 属性で指示されている点に注目して下さい)。
RDFa では,リソースは <code>about</code> や <code>resource</code> といったHTML 要素の属性を使って主語か目的語かを指示するのですが,絶対的なものではなく, HTML 要素の親子関係によって主語と目的語が反転する場合があります。
他の例でいくと,以下のようなテキストの場合,</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt"><div</span> <span class="na">id=</span><span class="s">'AlbertEinstein'</span> <span class="na">about=</span><span class="s">'#AlbertEinstein'</span> <span class="na">typeof=</span><span class="s">'foaf:Person'</span> <span class="na">rel=</span><span class="s">'foaf:made'</span><span class="nt">></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><ul></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><li</span> <span class="na">id=</span><span class="s">'doc1'</span> <span class="na">about=</span><span class="s">'#doc1'</span> <span class="na">typeof=</span><span class="s">'foaf:Document'</span><span class="nt">><span</span> <span class="na">property=</span><span class="s">'dc:title'</span><span class="nt">></span>ブラウン運動の理論<span class="nt"></span></li></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><li</span> <span class="na">id=</span><span class="s">'doc2'</span> <span class="na">about=</span><span class="s">'#doc2'</span> <span class="na">typeof=</span><span class="s">'foaf:Document'</span><span class="nt">><span</span> <span class="na">property=</span><span class="s">'dc:title'</span><span class="nt">></span>光電効果の理論<span class="nt"></span></li></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><li</span> <span class="na">id=</span><span class="s">'doc3'</span> <span class="na">about=</span><span class="s">'#doc3'</span> <span class="na">typeof=</span><span class="s">'foaf:Document'</span><span class="nt">><span</span> <span class="na">property=</span><span class="s">'dc:title'</span><span class="nt">></span>特殊相対性理論<span class="nt"></span></li></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></ul></span>
</span></span><span class="line"><span class="cl"><span class="nt"></div></span>
</span></span></code></pre></div><p>RDF/XML に変換するとこのようになります。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="cp"><?xml version="1.0" encoding="utf-8"?></span>
</span></span><span class="line"><span class="cl"><span class="nt"><rdf:RDF</span>
</span></span><span class="line"><span class="cl"> <span class="na">xmlns:foaf=</span><span class="s">"http://xmlns.com/foaf/0.1/"</span>
</span></span><span class="line"><span class="cl"> <span class="na">xmlns:rdf=</span><span class="s">"http://www.w3.org/1999/02/22-rdf-syntax-ns#"</span>
</span></span><span class="line"><span class="cl"> <span class="na">xmlns:dc=</span><span class="s">"http://purl.org/dc/terms/"</span>
</span></span><span class="line"><span class="cl"><span class="nt">></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><foaf:Person</span> <span class="na">rdf:about=</span><span class="s">"#AlbertEinstein"</span><span class="nt">></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><foaf:made></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><foaf:Document</span> <span class="na">rdf:about=</span><span class="s">"#doc1"</span><span class="nt">></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><dc:title></span>ブラウン運動の理論<span class="nt"></dc:title></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></foaf:Document></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></foaf:made></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><foaf:made></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><foaf:Document</span> <span class="na">rdf:about=</span><span class="s">"#doc2"</span><span class="nt">></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><dc:title></span>光電効果の理論<span class="nt"></dc:title></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></foaf:Document></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></foaf:made></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><foaf:made></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><foaf:Document</span> <span class="na">rdf:about=</span><span class="s">"#doc3"</span><span class="nt">></span>
</span></span><span class="line"><span class="cl"> <span class="nt"><dc:title></span>特殊相対性理論<span class="nt"></dc:title></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></foaf:Document></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></foaf:made></span>
</span></span><span class="line"><span class="cl"> <span class="nt"></foaf:Person></span>
</span></span><span class="line"><span class="cl"><span class="nt"></rdf:RDF></span>
</span></span></code></pre></div><p>(<code>about</code> 属性で指示している <code>#doc1</code> ~ <code>#doc3</code> が <code>#AlbertEinstein</code> の目的語になっているのがわかると思います)</p>
<p>目的語がリテラル・データの場合,通常は HTML 要素で囲まれた内容がリテラル・データとなりますが, <code>content</code> 属性があると <code>content</code> の内容が優先されます。
たとえば</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">span</span> <span class="na">id</span><span class="o">=</span><span class="s">'birth'</span> <span class="na">resource</span><span class="o">=</span><span class="s">'#birth'</span> <span class="na">rel</span><span class="o">=</span><span class="s">'bio:birth'</span> <span class="na">typeof</span><span class="o">=</span><span class="s">'bio:Birth'</span><span class="p">><</span><span class="nt">span</span> <span class="na">property</span><span class="o">=</span><span class="s">'dc:date'</span> <span class="na">content</span><span class="o">=</span><span class="s">'1879-03-14'</span> <span class="na">datatype</span><span class="o">=</span><span class="s">'xsd:date'</span><span class="p">></span>1879年3月14日<span class="p"></</span><span class="nt">span</span><span class="p">></</span><span class="nt">span</span><span class="p">></span>
</span></span></code></pre></div><p>の記述部分では, <code>dc:date</code> の目的語は <code>1879年3月14日</code> ではなく <code>1879-03-14</code> となります(RDF/XML の記述を参照してみてください)。</p>
<p>何故このようなことをするかというと, <code>1879年3月14日</code> では機械が日付として解釈できないからです。
このため機械が解釈可能な <a href="http://www.w3.org/TR/NOTE-datetime">W3C Date and Time Formats</a>(今回の例では <code>1879-03-14</code>)で上書きしているのです。
HTML の内容と解離するようなものはダメですが,機械可読な状態に「翻訳」するのであれば,この方法は有効です。</p>
<p>さて,基本的なルールについては以上です。
ここからは Web 上でよく使われる語彙について解説していきます。</p>
<h2 id="dct">Dublin Core Terms</h2>
<p><a href="http://dublincore.org/">DCMI (Dublin Core Metadata Initiative)</a> が管理・運用している語彙のセットを “<a href="http://dublincore.org/documents/dcmi-terms/">Dublin Core Terms</a>” といいます<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>。</p>
<p>Dublin Core Terms は15の基本要素(<a href="http://purl.org/dc/elements/1.1/"><code>http://purl.org/dc/elements/1.1/</code></a>)を再定義したものと,その拡張語彙から構成されています。
以下に Dublin Core Terms の一覧を示します。</p>
<figure id='dct-list' about='#dct-list' typeof='dc:Text'>
<style scoped>
#dct-list table {font-size:smaller;}
#dct-list table .odd td {color:inherit; background:#f3ffff;}
#dct-list table .even td {color:inherit; background:#f3f3ff;}
</style>
<table>
<thead>
<tr><th>dcterms:</th><th>subPropertyOf</th><th>domain</th><th>range</th></tr>
</thead>
<tbody class="odd">
<tr><td><strong>contributor</strong></td><td>dc:contributor</td><td>rdfs:Resource</td><td>dcterms:Agent</td></tr>
<tr><td><strong>creator</strong></td><td>dc:creator, dcterms:contributor</td><td>rdfs:Resource</td><td>dcterms:Agent</td></tr>
</tbody>
<tbody class="even">
<tr><td><strong>coverage</strong></td><td>dc:coverage</td><td>rdfs:Resource</td><td>dcterms:LocationPeriodOrJurisdiction</td></tr>
<tr><td>spatial</td><td>dc:coverage, dcterms:coverage</td><td>rdfs:Resource</td><td>dcterms:Location</td></tr>
<tr><td>temporal</td><td>dc:coverage, dcterms:coverage</td><td>rdfs:Resource</td><td>dcterms:PeriodOfTime</td></tr>
</tbody>
<tbody class="odd">
<tr><td><strong>date</strong></td><td>dc:date</td><td>rdfs:Resource</td><td>rdfs:Literal</td></tr>
<tr><td>available</td><td>dc:date, dcterms:date</td><td>rdfs:Resource</td><td>rdfs:Literal</td></tr>
<tr><td>created</td><td>dc:date, dcterms:date</td><td>rdfs:Resource</td><td>rdfs:Literal</td></tr>
<tr><td>dateAccepted</td><td>dc:date, dcterms:date</td><td>rdfs:Resource</td><td>rdfs:Literal</td></tr>
<tr><td>dateCopyrighted</td><td>dc:date, dcterms:date</td><td>rdfs:Resource</td><td>rdfs:Literal</td></tr>
<tr><td>dateSubmitted</td><td>dc:date, dcterms:date</td><td>rdfs:Resource</td><td>rdfs:Literal</td></tr>
<tr><td>issued</td><td>dc:date, dcterms:date</td><td>rdfs:Resource</td><td>rdfs:Literal</td></tr>
<tr><td>modified</td><td>dc:date, dcterms:date</td><td>rdfs:Resource</td><td>rdfs:Literal</td></tr>
<tr><td>valid</td><td>dc:date, dcterms:date</td><td>rdfs:Resource</td><td>rdfs:Literal</td></tr>
</tbody>
<tbody class="even">
<tr><td><strong>description</strong></td><td>dc:description</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>abstract</td><td>dc:description, dcterms:description</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>tableOfContents</td><td>dc:description, dcterms:description</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
</tbody>
<tbody class="odd">
<tr><td><strong>format</strong></td><td>dc:format</td><td>rdfs:Resource</td><td>dcterms:MediaTypeOrExtent</td></tr>
<tr><td>extent</td><td>dc:format, dcterms:format</td><td>rdfs:Resource</td><td>dcterms:SizeOrDuration</td></tr>
<tr><td>medium</td><td>dc:format, dcterms:format</td><td>dcterms:PhysicalResource</td><td>dcterms:PhysicalMedium</td></tr>
</tbody>
<tbody class="even">
<tr><td><strong>identifier</strong></td><td>dc:identifier</td><td>rdfs:Resource</td><td>rdfs:Literal</td></tr>
<tr><td>bibliographicCitation</td><td>dc:identifier, dcterms:identifier</td><td>dcterms:BibliographicResource</td><td>rdfs:Literal</td></tr>
</tbody>
<tbody class="odd">
<tr><td><strong>language</strong></td><td>dc:language</td><td>rdfs:Resource</td><td>dcterms:LinguisticSystem</td></tr>
</tbody>
<tbody class="even">
<tr><td><strong>publisher</strong></td><td>dc:publisher</td><td>rdfs:Resource</td><td>dcterms:Agent</td></tr>
</tbody>
<tbody class="odd">
<tr><td><strong>relation</strong></td><td>dc:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td><strong>source</strong></td><td>dc:source, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>conformsTo</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>dcterms:Standard</td></tr>
<tr><td>hasFormat</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>hasPart</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>hasVersion</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>isFormatOf</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>isPartOf</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>isReferencedBy</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>isReplacedBy</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>isRequiredBy</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>isVersionOf</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>references</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>replaces</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
<tr><td>requires</td><td>dc:relation, dcterms:relation</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
</tbody>
<tbody class="even">
<tr><td><strong>rights</strong></td><td>dc:rights</td><td>rdfs:Resource</td><td>dcterms:RightsStatement</td></tr>
<tr><td>accessRights</td><td>dc:rights, dcterms:rights</td><td>rdfs:Resource</td><td>dcterms:RightsStatement</td></tr>
<tr><td>license</td><td>dc:rights, dcterms:rights</td><td>rdfs:Resource</td><td>dcterms:LicenseDocument</td></tr>
</tbody>
<tbody class="odd">
<tr><td><strong>subject</strong></td><td>dc:subject</td><td>rdfs:Resource</td><td>rdfs:Resource</td></tr>
</tbody>
<tbody class="even">
<tr><td><strong>title</strong></td><td>dc:title</td><td>rdfs:Resource</td><td>rdfs:Literal</td></tr>
<tr><td>alternative</td><td>dc:title, dcterms:title</td><td>rdfs:Resource</td><td>rdfs:Literal</td></tr>
</tbody>
<tbody class="odd">
<tr><td><strong>type</strong></td><td>dc:type</td><td>rdfs:Resource</td><td>rdfs:Class</td></tr>
</tbody>
<tbody class="even">
<tr><td>audience</td><td></td><td>rdfs:Resource</td><td>dcterms:AgentClass</td></tr>
<tr><td>educationLevel</td><td>dcterms:audience</td><td>rdfs:Resource</td><td>dcterms:AgentClass</td></tr>
<tr><td>mediator</td><td>dcterms:audience</td><td>rdfs:Resource</td><td>dcterms:AgentClass</td></tr>
</tbody>
<tbody class="odd">
<tr><td>accrualMethod</td><td></td><td>dcmitype:Collection</td><td>dcterms:MethodOfAccrual</td></tr>
<tr><td>accrualPeriodicity</td><td></td><td>dcmitype:Collection</td><td>dcterms:Frequency</td></tr>
<tr><td>accrualPolicy</td><td></td><td>dcmitype:Collection</td><td>dcterms:Policy</td></tr>
<tr><td>instructionalMethod</td><td></td><td>rdfs:Resource</td><td>dcterms:MethodOfInstruction</td></tr>
<tr><td>provenance</td><td></td><td>rdfs:Resource</td><td>dcterms:ProvenanceStatement</td></tr>
<tr><td>rightsHolder</td><td></td><td>rdfs:Resource</td><td>dcterms:Agent</td></tr>
</tbody>
</table>
<figcaption><span property='dc:title'>dcterms: の述語一覧</span><br>(via <q><a href="http://www.kanzaki.com/docs/sw/dc-domain-range.html" rel='dc:source'><span property='dc:title'>DCプロパティと定義域、値域一覧</span></a></q> <span about="http://www.kanzaki.com/docs/sw/dc-domain-range.html"><a href="http://www.kanzaki.com/info/ccl#NoOnlineDistribution" rel='cc:license'>licensed</a> (and <a href="http://www.kanzaki.com/info/disclaimer" rel='cc:useGuidelines'>guideline</a>) by <a href="http://www.kanzaki.com/info/who" rel='foaf:maker' typeof='foaf:Person'><span property='foaf:name'>KANZAKI, Masahide</span></a>, <span property='dc:dateCopyrighted' datatype='xsd:date'>2008</span>-<span property='dc:modified' datatype='xsd:date'>2010</span></span>)</figcaption>
</figure>
<p>この表では包含関係を明確にするため接頭辞を</p>
<ul style='list-style:none;'>
<li><code>dc:</code> <a href="http://purl.org/dc/elements/1.1/"><code>http://purl.org/dc/elements/1.1/</code></a></li>
<li><code>dcterms:</code> <a href="http://purl.org/dc/terms/"><code>http://purl.org/dc/terms/</code></a></li>
</ul>
<p>として再定義しています。
<code>dc:</code> と同じ名前で <code>dcterms:</code> で再定義された述語は<strong>強調</strong>して表示しています。
domain は主語として使えるリソースの種類を, range は目的語として使えるリソースの種類(またはリテラル・データ)を示しています。</p>
<p>またリソースのタイプを示すクラスとしては以下のものが用意されています。</p>
<figure id='dct-class' about='#dct-class' typeof='dc:Text'>
<table>
<thead>
<tr><th>クラス</th><th>説明</th></tr>
</thead>
<tbody>
<tr><td>dc:Collection</td> <td>リソースのコレクション</td></tr>
<tr><td>dc:Dataset</td> <td>データベースなどの符号化されたデータ構造</td></tr>
<tr><td>dc:Event</td> <td>時間に基づいた非永続的な事象</td></tr>
<tr><td>dc:Image</td> <td>写真,絵画,映画,地図,音楽記号などの象徴的な視覚表現</td></tr>
<tr><td>dc:InteractiveResource</td><td>対話的なリソース。 Web ページのフォームやチャットなど</td></tr>
<tr><td>dc:MovingImage</td> <td>アニメーション,映画,テレビ番組,ビデオなどの動画。 dc:Image のサブクラス</td></tr>
<tr><td>dc:PhysicalObject</td> <td>彫刻などの実体,あるいは3次元オブジェクト。これらの映像表現は dc:Image クラスなどに分類される</td></tr>
<tr><td>dc:Service</td> <td>サービス。銀行サービスなどオンラインでないものも含まれる</td></tr>
<tr><td>dc:Software</td> <td>ソフトウェアのソースコードまたはバイナリ</td></tr>
<tr><td>dc:Sound</td> <td>音楽ファイル,CD,スピーチなど音声表現</td></tr>
<tr><td>dc:StillImage</td> <td>絵画,グラフィックデザイン,地図,図案などの静止画像。 dc:Image のサブクラス</td></tr>
<tr><td>dc:Text</td> <td>書籍,手紙,論文,詩,新聞など語(words)による表現。画像データでも文字表現が主なものであればこのクラスに分類される</td></tr>
</tbody>
</table>
<figcaption property='dc:title'>Dublin Core Terms のクラス</figcaption>
</figure>
<h2 id="foaf">Friend of a Friend</h2>
<p><a href="http://rdfweb.org/foaf/">FoaF (Friend of a Friend)</a> は知人・友人のネットワークを記述するための語彙です。
また(自分を含む)人物の Profile 情報を記述するためにも使えます<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>。</p>
<p>まずFoaF の基本クラス(主語または述語となるリソースのタイプ)は以下のとおりです。</p>
<figure id='foaf-class1' about='#foaf-class1' typeof='dc:Text'>
<table>
<thead>
<tr><th>クラス</th><th>説明</th></tr>
</thead>
<tbody>
<tr><td>foaf:Agent</td> <td>エージェント(人間,グループ,ソフトウェア,人工物など)</td></tr>
<tr><td>foaf:Person</td> <td>人物。実存するかどうかは問わない。 foaf:Agent のサブクラス</td></tr>
<tr><td>foaf:Organization</td> <td>会社,組織など。 foaf:Agent のサブクラス</td></tr>
<tr><td>foaf:Group</td> <td>個々の foaf:Agent の集合体としてのグループ。 foaf:Agent のサブクラス</td></tr>
<tr><td>foaf:Project</td> <td>プロジェクト。公式・非公式を問わない</td></tr>
<tr><td>foaf:Document</td> <td>(広い意味での)文書。映像作品や Web ページなども含まれる</td></tr>
<tr><td>foaf:Image</td> <td>映像。 foaf:Document のサブクラス</td></tr>
<tr><td>foaf:PersonalProfileDocument</td><td>人物について記述された RDF 文書</td></tr>
</tbody>
</table>
<figcaption property='dc:title'>FoaF の基本クラス</figcaption>
</figure>
<p>このうち <code>foaf:Agent</code> クラスに関する述語について主なものを挙げます。</p>
<figure id='foaf-property1' about='#foaf-property1' typeof='dc:Text'>
<style scoped>
#foaf-property1 table {font-size:smaller;}
</style>
<table>
<thead>
<tr><th>述語</th><th>domain</th><th>range</th><th>説明</th></tr>
</thead>
<tbody>
<tr><td>foaf:mbox</td> <td>foaf:Agent</td> <td>owl:Thing</td> <td>mailto: から始まるメールアドレスの URI。識別子(identifier)として機能する</td></tr>
<tr><td>foaf:mbox_sha1sum</td> <td>foaf:Agent</td> <td>rdfs:Literal</td> <td>foaf:mbox の SHA1 ハッシュ値。 foaf:mbox を示さなくても,この値を識別子として使うことができる</td></tr>
<tr><td>foaf:name</td> <td>owl:Thing</td> <td>rdfs:Literal</td> <td>名前(人とは限らない)</td></tr>
<tr><td>foaf:givenName</td> <td>—</td> <td>—</td> <td>姓名の「名」</td></tr>
<tr><td>foaf:familyName</td> <td>foaf:Person</td><td>rdfs:Literal</td> <td>姓名の「姓」</td></tr>
<tr><td>foaf:nick</td> <td>—</td> <td>—</td> <td>ニックネーム</td></tr>
<tr><td>foaf:depiction</td> <td>owl:Thing</td> <td>foaf:Image</td> <td>対象を描いた絵や写真など</td></tr>
<tr><td>foaf:birthday</td> <td>foaf:Agent</td> <td>rdfs:Literal</td> <td>誕生日</td></tr>
<tr><td>foaf:schoolHomepage</td> <td>foaf:Person</td><td>foaf:Document</td><td>対象の人物の母校</tr>
<tr><td>foaf:workplaceHomepage</td><td>foaf:Person</td><td>foaf:Document</td><td>対象の人物の勤務先</tr>
<tr><td>foaf:workInfoHomepage</td> <td>foaf:Person</td><td>foaf:Document</td><td>対象の人物の仕事内容</tr>
<tr><td>foaf:knows</td> <td>foaf:Person</td><td>foaf:Person</td> <td>知人(相互に知り合ってるレベル)</td></tr>
<tr><td>foaf:homepage</td> <td>owl:Thing</td> <td>foaf:Document</td><td>ホームページ</td></tr>
<tr><td>foaf:weblog</td> <td>foaf:Agent</td> <td>foaf:Document</td><td>ウェブログ</td></tr>
<tr><td>foaf:tipjar</td> <td>foaf:Agent</td> <td>foaf:Document</td><td>対象への支払いや寄付の方法を記述したページ。 <a href="https://baldanders.info/spiegel/log2/000631.shtml">Flattr</a> にも使える?</td></tr>
<tr><td>foaf:interest</td> <td>foaf:Agent</td> <td>foaf:Document</td><td>関心を持ってる事に関するページ</tr>
<tr><td>foaf:topic_interest</td> <td>foaf:Agent</td> <td>owl:Thing</td> <td>関心を持ってるトピック</tr>
<tr><td>foaf:publications</td> <td>foaf:Person</td><td>foaf:Document</td><td>対象の人物の出版物</tr>
<tr><td>foaf:made</td> <td>foaf:Person</td><td>owl:Thing</td> <td>対象の人物の作品</tr>
<tr><td>foaf:currentProject</td> <td>foaf:Person</td><td>owl:Thing</td> <td>対象の人物が現在手がけているプロジェクト</tr>
<tr><td>foaf:pastProject</td> <td>foaf:Person</td><td>owl:Thing</td> <td>対象の人物が過去に手がけてたプロジェクト</tr>
</tbody>
</table>
<figcaption property='dc:title'>FoaF の述語一覧(1)</figcaption>
</figure>
<p>また <code>foaf:Agent</code> で記述される作品やプロジェクト等に関する述語(上記以外)も挙げておきます。</p>
<figure id='foaf-property2' about='#foaf-property2' typeof='dc:Text'>
<style scoped>
#foaf-property2 table {font-size:smaller;}
</style>
<table>
<thead>
<tr><th>述語</th><th>domain</th><th>range</th><th>説明</th></tr>
</thead>
<tbody>
<tr><td>foaf:page</td> <td>owl:Thing</td> <td>foaf:Document</td><td>ページ</td></tr>
<tr><td>foaf:topic</td> <td>foaf:Document</td><td>owl:Thing</td> <td>ページに関するトピック。 foaf:page の逆</td></tr>
<tr><td>foaf:primaryTopic</td> <td>foaf:Document</td><td>owl:Thing</td> <td>主語ページ・文書のメイントピック</td></tr>
<tr><td>foaf:isPrimaryTopicOf</td><td>owl:Thing</td> <td>foaf:Document</td><td>目的語ページ・文書のメイントピック。 foaf:primaryTopic の逆で foaf:page のサブプロパティ</td></tr>
<tr><td>foaf:maker</td> <td>owl:Thing</td> <td>foaf:Agent</td> <td>主語を作った人。 foaf:made の逆</td></tr>
<tr><td>foaf:logo</td> <td>owl:Thing</td> <td>owl:Thing</td> <td>ロゴ</td></tr>
<tr><td>foaf:depicts</td> <td>foaf:Image</td> <td>owl:Thing</td> <td>映像が描写している対象。 foaf:depiction の逆</td></tr>
<tr><td>foaf:thumbnail</td> <td>foaf:Image</td> <td>foaf:Image</td> <td>映像のサムネイル</td></tr>
</tbody>
</table>
<figcaption property='dc:title'>FoaF の述語一覧(2)</figcaption>
</figure>
<p><code>foaf:maker</code> は <a href="#dct">Dublin Core Terms</a> の <code>dc:creator</code> と被りますが, <code>foaf:maker</code> のほうが構造化リソースとしての作者を記述することができます。</p>
<p>FoaF にはオンラインサービスのアカウントに関する語彙もあります。
以下にオンラインサービスのアカウントに関するクラスと述語を挙げます。</p>
<figure id='foaf-class2' about='#foaf-class2' typeof='dc:Text'>
<table>
<thead>
<tr><th>クラス</th><th>説明</th></tr>
</thead>
<tbody>
<tr><td>foaf:OnlineAccount</td> <td>オンラインサービスのアカウント</td></tr>
<tr><td>foaf:OnlineGamingAccount</td> <td>オンラインゲームのアカウント。 foaf:OnlineAccount のサブクラス</td></tr>
<tr><td>foaf:OnlineEcommerceAccount</td><td>オンラインショップ等のアカウント。foaf:OnlineAccount のサブクラス</td></tr>
<tr><td>foaf:OnlineChatAccount</td> <td>チャットやメッセージング・サービスのアカウント。 foaf:OnlineAccount のサブクラス</td></tr>
</tbody>
</table>
<figcaption property='dc:title'>FoaF のアカウント関連クラス</figcaption>
</figure>
<figure id='foaf-property3' about='#foaf-property3' typeof='dc:Text'>
<style scoped>
#foaf-property3 table {font-size:smaller;}
</style>
<table>
<thead>
<tr><th>述語</th><th>domain</th><th>range</th><th>説明</th></tr>
</thead>
<tbody>
<tr><td>foaf:account</td> <td>foaf:Agent</td> <td>foaf:OnlineAccount</td><td>オンラインサービスのアカウント</td></tr>
<tr><td>foaf:accountServiceHomepage</td><td>foaf:OnlineAccount</td><td>foaf:Document</td> <td>オンラインサービスのホームページ</td></tr>
<tr><td>foaf:accountName</td> <td>foaf:OnlineAccount</td><td>rdfs:Literal</td> <td>オンラインサービスのアカウント名(識別子)</td></tr>
</tbody>
</table>
<figcaption property='dc:title'>FoaF の述語一覧(3)</figcaption>
</figure>
<h2 id="ccrel">Creative Commons Rights Expression Language</h2>
<p><a href="http://www.w3.org/Submission/2008/SUBM-ccREL-20080501/">ccREL (Creative Commons Rights Expression Language)</a> は Web 上の作品の著作権情報を記述するための語彙です。
<a href="http://creativecommons.jp/licenses/">Creative Commons License</a> 3.0 を念頭に設計されていますが,他の(自由な)著作権ライセンスや利用ガイドラインにも対応しています。</p>
<p>ccREL の語彙は「著作権ライセンスを記述する」語彙と「著作権ライセンスを表示する」語彙とに分かれます。
以下は ccREL の基本クラス(主語または述語となるリソースのタイプ)です。</p>
<figure id='ccrel-class' about='#ccrel-class' typeof='dc:Text'>
<table>
<thead>
<tr><th>クラス</th><th>説明</th></tr>
</thead>
<tbody>
<tr><td>cc:Work</td> <td>作品</td></tr>
<tr><td>cc:License</td> <td>ライセンス。 dc:LicenseDocument のサブクラス</td></tr>
<tr><td>cc:Jurisdiction</td><td>準拠法</td></tr>
<tr><td>cc:Permission</td> <td>ライセンスにおける許諾事項</td></tr>
<tr><td>cc:Requirement</td> <td>ライセンスにおける要求(条件)事項</td></tr>
<tr><td>cc:Prohibition</td> <td>ライセンスにおける禁止事項</td></tr>
</tbody>
</table>
<figcaption property='dc:title'>ccREL(cc: <a href="http://creativecommons.org/ns#">http://creativecommons.org/ns#</a>)のクラス</figcaption>
</figure>
<p>このうち「著作権ライセンスを表示する」語彙である <code>cc:Work</code> に関する述語を挙げてみます。</p>
<figure id='ccrel-property' about='#ccrel-property' typeof='dc:Text'>
<table>
<thead>
<tr><th>述語</th><th>domain</th><th>range</th><th>説明</th></tr>
</thead>
<tbody>
<tr><td>cc:license</td> <td>cc:Work</td><td>cc:License</td> <td>ライセンス</td></tr>
<tr><td>cc:morePermissions</td><td>cc:Work</td><td>rdfs:Resource</td><td>(cc:license 以外の)追加の許諾</td></tr>
<tr><td>cc:useGuidelines</td> <td>cc:Work</td><td>rdfs:Resource</td><td>利用ガイドライン</td></tr>
<tr><td>cc:attributionURL</td> <td>cc:Work</td><td>rdfs:Resource</td><td>著作(権)者</td></tr>
<tr><td>cc:attributionName</td><td>cc:Work</td><td>rdfs:Literal</td> <td>著作(権)者名</td></tr>
</tbody>
</table>
<figcaption property='dc:title'>cc:Work 関連の述語</figcaption>
</figure>
<p>明確な「利用許諾(license)」がない場合,またはライセンスに対して付加情報(免責事項など)がある場合には <code>cc:useGuidelines</code> を使います。
また,ライセンスに対して追加の許諾がある場合(ライセンスとしては by-nc だけど条件によっては個別に商用利用も許可するなど)には <code>cc:morePermissions</code> を使います。</p>
<p>作品の著作権は著作者に自動的に付与されますが,権利自体は譲渡可能なため(譲渡できない権利もあります),著作者と著作<strong>権</strong>者が異なる場合があります。
その場合は <code>cc:attributionURL</code> や <code>cc:attributionName</code> で権利の帰属先を明示します。
著作者と著作権者が同一であるなら <code>foaf:maker</code> 等で置き換えることもできます<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>。</p>
<p>RDFa であれば主語を明示することでページ内のテキスト,映像,音声等に対して個別に権利表示を行うことができます。
たとえば先程の「<a href="#dct-list">dcterms: の述語一覧</a>」の表は「<a href="http://www.kanzaki.com/docs/sw/dc-domain-range.html">DCプロパティと定義域、値域一覧</a>」のものを流用していますが,以下のように記述しています。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">figure</span> <span class="na">id</span><span class="o">=</span><span class="s">'dct-list'</span> <span class="na">about</span><span class="o">=</span><span class="s">'#dct-list'</span> <span class="na">typeof</span><span class="o">=</span><span class="s">'dc:Text'</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">table</span><span class="p">></span>
</span></span><span class="line"><span class="cl">[...]
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">table</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">figcaption</span><span class="p">><</span><span class="nt">span</span> <span class="na">property</span><span class="o">=</span><span class="s">'dc:title'</span><span class="p">></span>dcterms: の述語一覧<span class="p"></</span><span class="nt">span</span><span class="p">></span>(via <span class="p"><</span><span class="nt">q</span><span class="p">><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"http://www.kanzaki.com/docs/sw/dc-domain-range.html"</span> <span class="na">rel</span><span class="o">=</span><span class="s">'dc:source'</span><span class="p">><</span><span class="nt">span</span> <span class="na">property</span><span class="o">=</span><span class="s">'dc:title'</span><span class="p">></span>DCプロパティと定義域、値域一覧<span class="p"></</span><span class="nt">span</span><span class="p">></</span><span class="nt">a</span><span class="p">></</span><span class="nt">q</span><span class="p">></span> <span class="p"><</span><span class="nt">span</span> <span class="na">about</span><span class="o">=</span><span class="s">"http://www.kanzaki.com/docs/sw/dc-domain-range.html"</span><span class="p">><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"http://www.kanzaki.com/info/ccl#NoOnlineDistribution"</span> <span class="na">rel</span><span class="o">=</span><span class="s">'cc:license'</span><span class="p">></span>licensed<span class="p"></</span><span class="nt">a</span><span class="p">></span> (and <span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"http://www.kanzaki.com/info/disclaimer"</span> <span class="na">rel</span><span class="o">=</span><span class="s">'cc:useGuidelines'</span><span class="p">></span>guideline<span class="p"></</span><span class="nt">a</span><span class="p">></span>) by <span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"http://www.kanzaki.com/info/who"</span> <span class="na">rel</span><span class="o">=</span><span class="s">'foaf:maker'</span> <span class="na">typeof</span><span class="o">=</span><span class="s">'foaf:Person'</span><span class="p">><</span><span class="nt">span</span> <span class="na">property</span><span class="o">=</span><span class="s">'foaf:name'</span><span class="p">></span>KANZAKI, Masahide<span class="p"></</span><span class="nt">span</span><span class="p">></</span><span class="nt">a</span><span class="p">></span>, <span class="p"><</span><span class="nt">span</span> <span class="na">property</span><span class="o">=</span><span class="s">'dc:dateCopyrighted'</span> <span class="na">datatype</span><span class="o">=</span><span class="s">'xsd:date'</span><span class="p">></span>2008<span class="p"></</span><span class="nt">span</span><span class="p">></span>-<span class="p"><</span><span class="nt">span</span> <span class="na">property</span><span class="o">=</span><span class="s">'dc:modified'</span> <span class="na">datatype</span><span class="o">=</span><span class="s">'xsd:date'</span><span class="p">></span>2010<span class="p"></</span><span class="nt">span</span><span class="p">></</span><span class="nt">span</span><span class="p">></span>)<span class="p"></</span><span class="nt">figcaption</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">figure</span><span class="p">></span>
</span></span></code></pre></div><p>これを RDF Graph にすると以下のようになり,元になった Web ページを指し示しているのがわかると思います。
(図のクリックで拡大されます)</p>
<!--
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/terms/"
>
<dc:Text rdf:about="https://baldanders.info/spiegel/archive/rdfa/#dct-list">
<dc:source>
<rdf:Description rdf:about="http://www.kanzaki.com/docs/sw/dc-domain-range.html">
<foaf:maker rdf:resource="http://www.kanzaki.com/info/who"/>
<cc:useGuidelines rdf:resource="http://www.kanzaki.com/info/disclaimer"/>
<dc:title>DCプロパティと定義域、値域一覧</dc:title>
<dc:dateCopyrighted rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2008</dc:dateCopyrighted>
<dc:modified rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2010</dc:modified>
<cc:license rdf:resource="http://www.kanzaki.com/info/ccl#NoOnlineDistribution"/>
</rdf:Description>
</dc:source>
<dc:title>dcterms: の述語一覧</dc:title>
</dc:Text>
<foaf:Person rdf:about="http://www.kanzaki.com/info/who">
<foaf:name>KANZAKI, Masahide</foaf:name>
</foaf:Person>
</rdf:RDF>
-->
<figure style='margin:0 auto;text-align:center;'><a href="./rdf6.svg"><img src="./rdf6.svg" srcset="./rdf6.svg 2448w" sizes="(min-width:600px) 500px, 80vw" alt="「dcterms: の述語一覧」の RDF Graph" loading="lazy"></a><figcaption><div><a href="./rdf6.svg">「dcterms: の述語一覧」の RDF Graph</a></div></figcaption>
</figure>
<p>Creative Commons License では提示される内容が「コモンズ証(Commons Deed)」「法的条項(Legal Code)」「メタデータ(Metadata)」の3つのレイヤに分かれていて,そのうちメタデータのレイヤを RDF で実装しています。
たとえば「表示-継承(by-sa)」ライセンスの場合は各レイヤの URI は以下のようになっています。</p>
<ul style='list-style:none;'>
<li><strong>コモンズ証</strong>: <a href="http://creativecommons.org/licenses/by-sa/4.0/">http://creativecommons.org/licenses/by-sa/4.0/</a></li>
<li><strong>法的条項</strong>: <a href="http://creativecommons.org/licenses/by-sa/4.0/legalcode">http://creativecommons.org/licenses/by-sa/4.0/legalcode</a></li>
<li><strong>メタデータ</strong>: <a href="http://creativecommons.org/licenses/by-sa/4.0/rdf">http://creativecommons.org/licenses/by-sa/4.0/rdf</a></li>
</ul>
<p>実際にはコモンズ証にも RDFa 付与がされていますが,明示的にメタデータへ誘導するのなら,このページのフッタ部のように記述するのがいいかもしれません。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl">Licensed under <span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">'http://creativecommons.org/licenses/by/4.0/'</span> <span class="na">rel</span><span class="o">=</span><span class="s">'cc:license'</span> <span class="na">typeof</span><span class="o">=</span><span class="s">'cc:License'</span><span class="p">><</span><span class="nt">span</span> <span class="na">resource</span><span class="o">=</span><span class="s">'http://creativecommons.org/licenses/by/4.0/rdf'</span> <span class="na">rel</span><span class="o">=</span><span class="s">'dc:relation'</span><span class="p">><</span><span class="nt">img</span> <span class="na">src</span><span class="o">=</span><span class="s">'/images/cc/by.s.png'</span> <span class="na">alt</span><span class="o">=</span><span class="s">'Attribution License'</span> <span class="na">height</span><span class="o">=</span><span class="s">'12'</span><span class="p">></</span><span class="nt">span</span><span class="p">></</span><span class="nt">a</span><span class="p">></span>
</span></span></code></pre></div><p>Creative Commons License について詳しくは「<a href="https://text.baldanders.info/cc-licenses/" title="改訂3版: CC Licenses について | text.Baldanders.info">CC Licenses について</a>」を参照して下さい<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>。</p>
<h2 id="og">付録: Open Graph</h2>
<p><a href="http://ogp.me/">Open Graph Protocol</a> はもともと <a href="https://developers.facebook.com/docs/opengraph">Facebook で提案</a>されたもので, RFDa のような体裁をとっていますが(<a href="http://www.w3.org/2012/pyRdfa/Validator.html">Validator</a> でチェックしてもエラーにはなりません),似て非なるものです。
Open Graph は以下のような関係を想定しています。</p>
<figure style='margin:0 auto;text-align:center;'><a href="./ogp.svg"><img src="./ogp.svg" srcset="./ogp.svg 500w" sizes="(min-width:600px) 500px, 80vw" alt="Open Graph の相関図" loading="lazy"></a><figcaption><div><a href="./ogp.svg">Open Graph の相関図</a></div></figcaption>
</figure>
<ul>
<li><strong>The actor</strong> : 行動をおこすユーザ</li>
<li><strong>The app</strong> : 行動をおこすためのアプリケーション</li>
<li><strong>The action</strong> : 行動</li>
<li><strong>The object</strong> : 行動の対象となる「もの」</li>
</ul>
<p>つまり Open Graph の記述は The App からみれば制御情報に過ぎず, Open Graph 自体は意味を構成していません。
そして,当然ながら Facebook 以外のサービスには使いづらいため <a href="https://dev.twitter.com/ja/docs/cards">Twitter Card</a> の登場に加え <a href="http://developer.mixi.co.jp/connect/mixi_plugin/mixi_check/spec_mixi_check/">mixi</a> や <a href="https://docs.developer.gree.net/ja/platform/connect/socialfeedback">GREE</a> も OGP に独自の仕様を混ぜています。
もはやこれは「濫用」と呼ぶべき状況かもしれません。</p>
<p>Open Graph が RDFa と異なる点は以下のとおりです。</p>
<ul>
<li><code><head></code> 要素内の <code><meta></code> 要素にしか記述できない。他は全て無視される</li>
<li>したがってページ全体に関する記述しかできず,ページ内の構造を記述できない。また他の語彙とも組み合わせられない</li>
<li>記述を <code><meta></code> 要素に限定しているためリテラル・データしか扱えない</li>
<li>リテラル・データの <code>datatype</code> は <a href="http://ogp.me/">Open Graph</a> で用意されているものを使わなければならない</li>
</ul>
<p>Open Graph を設置する際は以上の点に気をつけて下さい。
具体的な設定方法については割愛します(SEO 関連のサイトを探せば大抵設定方法が載っています)。</p>
<h2 id="ブックマーク">ブックマーク</h2>
<ul>
<li><a href="http://www.kanzaki.com/docs/sw/">メタ情報とセマンティック・ウェブ</a>(私は最初にここで RDF を勉強しました)</li>
<li><a href="http://domes.lingua.heliohost.org/rdfa/intro-syntax1.html">RDFa 入門(Introduction to RDFa)</a>(ちょっと古いですが RDFa の記述方法について包括的に書かれていて参考になります)</li>
<li><a href="http://validator.w3.org/">The W3C Markup Validation Service</a>(記述が正しいか常にチェックしましょう)</li>
<li><a href="http://www.w3.org/2012/pyRdfa/Validator.html">RDFa 1.1 Validator</a>(記述が正しいか常にチェックしましょう)</li>
<li><a href="http://kots.jp/blog/site-structured/3567/">MicroformatsとRDFaのhReviewを比較 | kots blog</a></li>
<li><a href="http://internet-apps.blogspot.jp/2008/02/first-steps-in-rdfa-creating-foaf.html">First steps in RDFa: Creating a FOAF profile</a></li>
<li><a href="https://wiki.creativecommons.org/CC_REL">CC REL - CC Wiki</a></li>
<li><a href="http://html5experts.jp/shumpei-shiraishi/1710/">RDFa関連の3仕様が勧告に!その時Microdataは……? | HTML5Experts.jp</a></li>
</ul>
<h2 id="参考図書">参考図書</h2>
<div class="hreview">
<div class="photo"><a class="item url" href="https://www.amazon.co.jp/%E3%82%BB%E3%83%9E%E3%83%B3%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF-HTML-XHTML-%E7%A5%9E%E5%B4%8E-%E6%AD%A3%E8%8B%B1/dp/483993195X?SubscriptionId=AKIAJYVUJ3DMTLAECTHA&tag=baldandersinf-22&linkCode=xm2&camp=2025&creative=165953&creativeASIN=483993195X"><img src="https://images-fe.ssl-images-amazon.com/images/I/51oaN2iq9xL._SL160_.jpg" width="124" alt="photo"></a></div>
<dl class="fn">
<dt><a href="https://www.amazon.co.jp/%E3%82%BB%E3%83%9E%E3%83%B3%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF-HTML-XHTML-%E7%A5%9E%E5%B4%8E-%E6%AD%A3%E8%8B%B1/dp/483993195X?SubscriptionId=AKIAJYVUJ3DMTLAECTHA&tag=baldandersinf-22&linkCode=xm2&camp=2025&creative=165953&creativeASIN=483993195X">セマンティック HTML/XHTML</a></dt>
<dd>神崎 正英</dd>
<dd>毎日コミュニケーションズ 2009-05-28</dd>
<dd>Book 単行本(ソフトカバー)</dd>
<dd>ASIN: 483993195X, EAN: 9784839931957</dd>
<dd>評価<abbr class="rating fa-sm" title="4"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description">残念ながら紙の本は実質的に絶版なんですよねぇ。是非デジタル化を希望します。</p>
<p class="powered-by" >reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2014-08-17">2014-08-17</abbr> (powered by <a href="https://github.com/spiegel-im-spiegel/amazon-item" >amazon-item</a> 0.2.1)</p>
</div>
<div class="hreview">
<div class="photo"><a class="item url" href="https://www.amazon.co.jp/HTML5-%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%80%E3%83%BC%E3%83%89%E3%83%BB%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%AC%E3%82%A4%E3%83%89%EF%BD%9EWeb%E3%82%B5%E3%82%A4%E3%83%88%E5%88%B6%E4%BD%9C%E8%80%85%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%93%E3%82%B8%E3%83%A5%E3%82%A2%E3%83%AB%E3%83%BB%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%EF%BC%86%E3%82%BB%E3%83%9E%E3%83%B3%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9%E3%81%AB%E3%82%88%E3%82%8B%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%AC%E3%82%A4%E3%83%89%EF%BD%9E-%E3%83%AA%E3%83%95%E3%83%AD%E3%83%BC%E7%89%88-%E3%82%A8%E3%83%BB%E3%83%93%E3%82%B9%E3%82%B3%E3%83%A0%E3%83%BB%E3%83%86%E3%83%83%E3%82%AF%E3%83%BB%E3%83%A9%E3%83%9C-ebook/dp/B00CZ711QS?SubscriptionId=AKIAJYVUJ3DMTLAECTHA&tag=baldandersinf-22&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B00CZ711QS"><img src="https://images-fe.ssl-images-amazon.com/images/I/51918WvpWNL._SL160_.jpg" width="124" alt="photo"></a></div>
<dl class="fn">
<dt><a href="https://www.amazon.co.jp/HTML5-%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%80%E3%83%BC%E3%83%89%E3%83%BB%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%AC%E3%82%A4%E3%83%89%EF%BD%9EWeb%E3%82%B5%E3%82%A4%E3%83%88%E5%88%B6%E4%BD%9C%E8%80%85%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%93%E3%82%B8%E3%83%A5%E3%82%A2%E3%83%AB%E3%83%BB%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%EF%BC%86%E3%82%BB%E3%83%9E%E3%83%B3%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9%E3%81%AB%E3%82%88%E3%82%8B%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%AC%E3%82%A4%E3%83%89%EF%BD%9E-%E3%83%AA%E3%83%95%E3%83%AD%E3%83%BC%E7%89%88-%E3%82%A8%E3%83%BB%E3%83%93%E3%82%B9%E3%82%B3%E3%83%A0%E3%83%BB%E3%83%86%E3%83%83%E3%82%AF%E3%83%BB%E3%83%A9%E3%83%9C-ebook/dp/B00CZ711QS?SubscriptionId=AKIAJYVUJ3DMTLAECTHA&tag=baldandersinf-22&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B00CZ711QS">HTML5 スタンダード・デザインガイド~Webサイト制作者のためのビジュアル・リファレンス&セマンティクスによるコンテンツデザインガイド~ [リフロー版]</a></dt>
<dd>エ・ビスコム・テック・ラボ</dd>
<dd>マイナビ出版 2013-02-14 (Release 2013-02-14)</dd>
<dd>eBooks Kindle版</dd>
<dd>ASIN: B00CZ711QS</dd>
<dd>評価<abbr class="rating fa-sm" title="4"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description">最初に HTML5 の基礎的な知識を仕入れるにはちょうどよかったが,今では古い内容。</p>
<p class="powered-by" >reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2014-08-17">2014-08-17</abbr> (powered by <a href="https://github.com/spiegel-im-spiegel/amazon-item" >amazon-item</a> 0.2.1)</p>
</div>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Dublin Core の名前は1995年3月に米国オハイオ州のダブリン(Dublin)で開催された OCLC/NCSA Metadata Workshop での討議結果を “Dublin Core Metadata” と呼んだところに由来しているそうです。 <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
<li id="fn:2">
<p>最近は後者の利用が多いような気がします。後述する Open Graph なんかよりこちらのほうが断然 COOL なのですが(Open Graph より FoaF のほうが先なんですよ),サポートするサービス・プロバイダが皆無なため SEO(Search Engine Optimization)的には不利と言えます。 <a href="#fnref:2" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
<li id="fn:3">
<p>「製作委員会」方式などで権利を集約している場合や(独占契約を結ぶ代わりに)出版社および権利管理団体に権利を譲渡する場合は権利の帰属先が変わります。著作権ライセンスの場合は「誰が作ったか」よりも「誰に権利があるか」のほうが重要なので権利の帰属先を明記することは重要です。もちろん(たとえ著作者であっても)権利のない人が勝手にライセンスを設定することはできません。 <a href="#fnref:3" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
<li id="fn:4">
<p>Creative Commons License のメタデータはかなり不遇な経緯をたどっています。というより, RDF 自体が不遇なのかもしれませんが。最初の Creative Commons License が登場した2002年当時は RDF をまともに解釈できる parser がありませんでした。その後, Creative Commons License については mozCC のようなツールも登場しますが, mozCC はどういうわけかコメントアウトされた RDF 情報しか読まず,他のツールも似たり寄ったりの状況です。さらに Microformats の <a href="http://microformats.org/wiki/rel-license-ja">rel-license</a> も登場しますが,これも URL からあらかじめ持ってる知識でライセンスの種類を推測するだけの実装がほとんどで「意味を理解する」という RDF の目標からは遠いものです。近年 RDFa やその語彙である ccREL が整備されてきましたが,果たしてどうなるでしょうか。 <a href="#fnref:4" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
</ol>
</div>
サイトをリニューアルしました
tag:Baldanders.info,2014-08-11:/blog/000723/
2014-08-11T09:00:00+00:00
2014-08-11T09:00:00+00:00
モロモロ捨てたおかげで Privacy Policy のページがエラくスッキリしてしまった。善き哉。
Spiegel
/profile/
<p> 皆様のところは台風11合の影響はどうだったでしょうか。 広島は,今回もうま~く逸れてくれたおかげで大したことなくて済みましたが,四国辺りは例によって大変だったみたいですね。 被害にあった方々にはお見舞い申し上げます。 </p><p> では本題。 </p><p> サイトをリニューアルしました。 ポイントは以下の4つ。 </p><ol> <li>HTML5+CSS3+RDFa ベースの構成に変更</li> <li>デザインの統一</li> <li>ライセンス運用の見直し</li> <li>重くなったブログパーツを捨てる</li> </ol><p> まずレイアウトを float ベースから flex ベースに変更した。 これがもう超絶楽チン♥。 </p><ul> <li><a href="https://developer.mozilla.org/ja/docs/Web/Guide/CSS/Flexible_boxes">CSS flexible box の利用 - Web developer guide | MDN</a></li> </ul><p> flex はころころと仕様が変わるみたいで,そもそも名前からして2転3転してるので「ええんか? これ」とか思ったりするが,そろそろ仕様も固まったみたいだしいいかな,って感じで。 </p><p> アイコンは <a href="http://fontawesome.io/icons/">Font Awesome</a> を利用している。 <a href="https://github.com/FortAwesome/Font-Awesome">プロジェクトが GitHub にある</a>のでしばらく Watch していたのだが,流量が多すぎて give up した。 最近こういうのが多いなぁ。 フォントを指定する際は <a href="http://www.bootstrapcdn.com/#fontawesome_tab">Bootstrap CDN を利用</a>すると良い。 </p><p> そうそう。 Internet Explorer はサポート対象から外した。 っていうか,前からサポートしてないけど。 今回 CSS3 の機能を割と使ってるんだけど「IExx は対応してない」ってのが多すぎる。 んなもん面倒見きれるかっての。 まぁ業務系でもパソコンからタブレットにシフトしつつあるみたいだし(それも何故か iPad が多い) IE は淘汰されていくことを願うよ。 </p><p> 確認は Firefox と Chrome でしかしてない(Android 版の Firefox ではフォントサイズがグチャグチャになるけど,よくわからないので放置。仕事じゃないし)。 Safari のパソコン版はないので確認のしようがない。 結局ブラウザは Firefox と Chromium 系に2極化されてる感じだね(同じ WebKit でも Chromium 以外はあまり使いものにならない感じ。 Mac? iOS? 無視無視)。 せっかくなので,過去の古いしがらみを捨てた全く新しい実装とか出てこないものかねぇ。 </p><p> もうひとつ。 <a href="http://www.ipa.go.jp/security/vuln/icat.html">IPA の icat</a> を捨てた。 厳密には Flash のブログパーツを捨てて Twitter(<a href="https://twitter.com/ICATalerts/">@ICATalerts</a>) の Widget に切り替えた。 いや, <a href="http://jvndb.jvn.jp/apis/myjvn/vccheck.html">MyJVN バージョンチェッカ</a>にしてもそうだけどさ,なんでわざわざ Java とか Flash とかセキュリティ・リスクの高い製品を使うわけ? </p><p> 捨てたといえば <a href="http://www.google.com/analytics/">Google Analytics</a> も捨てた。 うちのような辺境サイトには過ぎた玩具でした。 モロモロ捨てたおかげで <a href="https://baldanders.info/site-policy/">Privacy Policy のページ</a>がエラくスッキリしてしまった。 善き哉。 </p><p> ライセンスについては<a href="https://baldanders.info/blog/000721/">既に書いた</a>のでここでは割愛する。 RDFa についてはだいぶ理解できた気がするので,そのうちちゃんとしたドキュメントにまとめるつもり。 </p> <div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711QS/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/51918WvpWNL._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711QS/baldandersinf-22/">HTML5 スタンダード・デザインガイド~Webサイト制作者のためのビジュアル・リファレンス&セマンティクスによるコンテンツデザインガイド~ [リフロー版]</a></dt><dd>エ・ビスコム・テック・ラボ </dd><dd>マイナビ 2013-02-14</dd><dd>評価<abbr class="rating" title="4"><img src="https://images-fe.ssl-images-amazon.com/images/G/01/detail/stars-4-0.gif" alt=""/></abbr> </dd></dl><p class="similar"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711R2/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00CZ711R2.09._SCTHUMBZZZ_.jpg" alt="CSS3 スタンダード・デザインガイド【改訂第2版】 [リフロー版]"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00M0ESXUI/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00M0ESXUI.09._SCTHUMBZZZ_.jpg" alt="Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CALAWC8/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00CALAWC8.09._SCTHUMBZZZ_.jpg" alt="よくわかるJavaScriptの教科書 (教科書シリーズ)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00BPLSH9E/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00BPLSH9E.09._SCTHUMBZZZ_.jpg" alt="jQueryデザインブック 仕事で絶対に使うプロのテクニック"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00IWHVLUG/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00IWHVLUG.09._SCTHUMBZZZ_.jpg" alt="これからの「標準」を身につける HTML+CSSデザインレシピ[固定レイアウト版]"/></a> </p><p class="gtools">by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a> , <abbr class="dtreviewed" title="2014/08/11">2014/08/11</abbr></p></div> <div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/4627829310/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/4186NJ98Z7L._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/4627829310/baldandersinf-22/">セマンティック・ウェブのためのRDF/OWL入門</a></dt><dd>神崎 正英 </dd><dd>森北出版 2005-01-07</dd><dd>評価<abbr class="rating" title="4"><img src="https://images-fe.ssl-images-amazon.com/images/G/01/detail/stars-4-0.gif" alt=""/></abbr> </dd></dl><p class="similar"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/4764904276/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4764904276.09._SCTHUMBZZZ_.jpg" alt="Linked Data: Webをグローバルなデータ空間にする仕組み"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4873114527/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4873114527.09._SCTHUMBZZZ_.jpg" alt="セマンティックWeb プログラミング"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4501540109/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4501540109.09._SCTHUMBZZZ_.jpg" alt="オントロジ技術入門―ウェブオントロジとOWL (セマンティック技術シリーズ)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4274079791/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4274079791.09._SCTHUMBZZZ_.jpg" alt="セマンティックWeb入門"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4774163260/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4774163260.09._SCTHUMBZZZ_.jpg" alt="エンジニアのための データ可視化[実践]入門 ~D3.jsによるWebの可視化 (Software Design plus)"/></a> </p><p class="gtools">by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a> , <abbr class="dtreviewed" title="2014/08/11">2014/08/11</abbr></p></div>
Metadata と RDFa と ccREL
tag:Baldanders.info,2014-08-04:/blog/000722/
2014-08-04T09:00:00+00:00
2014-08-04T09:00:00+00:00
Web ページに cc-license のメタデータを指示するために RDFa をお勉強中。以下は覚え書きのために残しておく。
Spiegel
/profile/
<p> Web ページに cc-license のメタデータを指示するために RDFa をお勉強中。 以下は覚え書きのために残しておく。 </p><p> HTML5 下でメタデータを埋め込むまたは指示する仕組みとしては Microdata と RDFa が有力っぽい。 </p><p> (Microformats はよく分からないけど,あれってもう死んでるんじゃないのかなぁ(とはいえ RDFa は Microformats からの fork なんだけど。まぁ Trunk が潰れて Branch のみが生き残るってのはよく聞く話だし。それも進化の多様性のあり方じゃよ,フォッフォッフォッ)。 <a href="https://baldanders.info/blog/000346/">以前も思った</a>けど, Microformats は何がしたいのかさっぱりわからない。 たぶん基盤(infrastructure)がないせいだと思う。 メタデータってのは語彙(vocabulary)をいかに制御するかが肝で,たとえ「知らない語彙」でも合理的に扱えるようになっていなければならない。 何故ならメタデータを解釈(parse)する「機械」は何も知らない(ところから始める)のだから。 それが Machine-Readable であるということだ) </p><p> Microdata と RDFa の最大の違いは DOM の要素として制御できるかどうかで,その点では最後発の Microdata がもっとも有利といえる。 RDF/RDFa は意味(semantics)を解釈するための独自の parser が必要で, DOM つまり JavaScript 等で制御可能な Microdata のほうが将来性が見込める。 </p><p> とはいえ Microdata の JavaScript 実装は進んでないみたい。 </p> <figure> <blockquote> 「JavaScript APIが削除されるに至った主な理由は、実装の欠如です。具体的には、FirefoxとOpera (Presto)が一度は実装したものの、OperaがChromiumに移行したため実装例が減ってしまい、勧告の条件(二つ以上の相互運用可能な実装が存在すること)を満たせるか怪しくなったというもの。 Blinkからはすでに実装が削除されており、Firefoxでも削除を検討中、WebKitからもMicrodataのAPIに関連するコードは削除されたそうで、MicrodataのJavaScript APIは実質上「終わった」と言っても良いかもしれません(ただし、WHATWG仕様においては、「代替案がない」という理由で仕様が残されることが決定しています)。」 </blockquote> <figcaption>(<q><a href="http://html5experts.jp/shumpei-shiraishi/1710/">RDFa関連の3仕様が勧告に!その時Microdataは……? | HTML5Experts.jp</a></q> より)</figcaption> </figure> <p> どうなるのかなぁ。 もったいない気がするんだけど。 </p><p> というわけで,今回は RDFa で行きます。 </p> <h3>RDFa の基礎</h3> <p> まず W3C のドキュメントから </p><ul> <li><a href="http://www.w3.org/TR/rdfa-lite/">RDFa Lite 1.1</a> (2012-06-07)</li> <li><a href="http://www.w3.org/TR/rdfa-core/">RDFa Core 1.1 - Second Edition</a> (2013-08-22)</li> <li><a href="http://www.w3.org/TR/xhtml-rdfa/">XHTML+RDFa 1.1 - Second Edition</a> (2013-08-22)</li> <li><a href="http://www.w3.org/TR/html-rdfa/">HTML+RDFa 1.1</a> (2013-08-22)</li> </ul><p> で,これだとちょっと分かりにくいので以下を参照するとよい。 </p><ul> <li><a href="http://domes.lingua.heliohost.org/rdfa/intro-syntax1.html">RDFa 入門 (Introduction to RDFa)</a></li> </ul><p> RDF では主語・述語・目的語の Triple を構成する。 実は主語と目的語は等価な resource で,つまり resource 同士を(述語を使って)つなぎ合わせてネットワーク(というか Web)にしていくことで意味(semantics)を形成する。 これが RDF の本質的な機能である。 だから RDF/RDFa では常に主語はなにか,述語はなにか,目的語はなにか,を意識していくとよい(という説明をちゃんとしているページを殆ど見かけないのだが,みんなどうしてるんだろう)。 ちなみに resource には URI を指定する。 またリテラルデータ(タイトルとか名前とか)は目的語にしか使えない。 </p><p> ただし,自前で間違えずに RDFa の Triple を作るのは結構難しいので,以下の Validator の助けを借りることをお薦めする。 </p><ul> <li><del><a href="http://html5.validator.nu/">Validator.nu (X)HTML5 Validator</a></del>(チェック基準が古い?) <a href="http://validator.w3.org/">The W3C Markup Validation Service</a></li> <li><a href="http://www.w3.org/2012/pyRdfa/Validator.html">RDFa 1.1 Validator</a></li> </ul><p> なんで2つも Validate しないといけないかというと HTML5 的には OK でも RDFa 的には NG だったり,またその逆もあったりして結構面倒なのだ。 この辺は慣れていくしかない,トホホ。 </p> <h3>RDFa の語彙</h3> <p> RDFa 1,1 以降では語彙の指定を prefix 属性を使って行う。 </p><div> <pre class="brush:html" title="prefix 属性"><html prefix='dc: http://purl.org/dc/terms/
cc: http://creativecommons.org/ns#'></pre>
</div><p>
これで <a href="http://dublincore.org/">Dublin Core</a> の語彙が <code>dc:</code> プレフィクスに, <a href="http://creativecommons.org/ns#">ccREL</a> の語彙が <code>cc:</code> プレフィクスに割り当てられる。
ただし以下の語彙については組み込み済みなので prefix 指定なしで使うことができる。
</p><ul>
<li><code>bibo:</code> <a href="http://purl.org/ontology/bibo/">http://purl.org/ontology/bibo/</a></li>
<li><code>cc:</code> <a href="http://creativecommons.org/ns#">http://creativecommons.org/ns#</a></li>
<li><code>dbp:</code> <a href="http://dbpedia.org/property/">http://dbpedia.org/property/</a></li>
<li><code>dbp-owl:</code> <a href="http://dbpedia.org/ontology/">http://dbpedia.org/ontology/</a></li>
<li><code>dbr:</code> <a href="http://dbpedia.org/resource/">http://dbpedia.org/resource/</a></li>
<li><code>dc:</code> <a href="http://purl.org/dc/terms/">http://purl.org/dc/terms/</a></li>
<li><code>ex:</code> <a href="http://example.org/">http://example.org/</a></li>
<li><code>foaf:</code> <a href="http://xmlns.com/foaf/0.1/">http://xmlns.com/foaf/0.1/</a></li>
<li><code>og:</code> <a href="http://ogp.me/ns#">http://ogp.me/ns#</a> (<a href="http://www.w3.org/TR/rdfa-core/">RDFa Core 1.1</a> のドキュメントにはなかったけど使えた)</li>
<li><code>owl:</code> <a href="http://www.w3.org/2002/07/owl#">http://www.w3.org/2002/07/owl#</a></li>
<li><code>rdf:</code> <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#">http://www.w3.org/1999/02/22-rdf-syntax-ns#</a></li>
<li><code>rdfa:</code> <a href="http://www.w3.org/ns/rdfa#">http://www.w3.org/ns/rdfa#</a></li>
<li><code>rdfs:</code> <a href="http://www.w3.org/2000/01/rdf-schema#">http://www.w3.org/2000/01/rdf-schema#</a></li>
<li><code>xhv:</code> <a href="http://www.w3.org/1999/xhtml/vocab#">http://www.w3.org/1999/xhtml/vocab#</a></li>
<li><code>xsd:</code> <a href="http://www.w3.org/2001/XMLSchema#">http://www.w3.org/2001/XMLSchema#</a></li>
</ul><p>
まぁ <code>dc:</code> <code>cc:</code> <code>og:</code> <code>foaf:</code> といったメジャーどころは組み込み済みなので,自前で語彙を作らない限り, prefix のお世話になることはほぼないだろう。
</p>
<h3>cc-license のメタデータを指示する</h3>
<p>
これで準備はできたので,早速 cc-license のメタデータを指示してみる。
cc-license のメタデータを指示するには <a href="http://dublincore.org/">Dublin Core</a> と <a href="http://creativecommons.org/ns">ccREL(Creative Commons Rights Expression Language)</a> の語彙を使う。
</p><p>
(ちなみに <a href="http://creativecommons.org/">Creative Commons</a> のサイトでは<a href="http://creativecommons.org/choose/">選択したライセンスのメタデータを吐いてくれるツール</a>があるが,あれをそのまま貼り付けると Validator に怒られる,困ったことに)
</p><p>
使うプロパティは以下のとおり。
</p><ul>
<li>dc:title : 作品のタイトル</li>
<li>dc:dateCopyrighted : 公表日</li>
<li>dc:source : 元になった作品(URL) 二次的著作物の場合</li>
<li>cc:attributionName : 著作(権)者名</li>
<li>cc:attributionURL : 著作(権)者の URL</li>
<li>cc:license : ライセンス(URL)</li>
<li>cc:morePermissions : 追加許可(URL)</li>
<li>cc:useGuidelines : ガイドライン(URL)</li>
</ul><p>
実際には以下のように使う。
</p><div>
<pre class="brush:html" title="/cc-license.shtml フッタ部"><div class='copyright' about='cc-license.shtml'>
Written and revised by <a href='#me' rel='cc:attributionURL' property='cc:attributionName'>Yasuhiro (Spiegel) ARAKAWA</a>
on <span property="dc:dateCopyrighted">Sunday, 03-Aug-2014 21:11:27 JST</span>,<br>
Licensed under <&span rel='cc:license' resource='http://creativecommons.org/licenses/by/4.0/rdf'gt;<a property='cc:license' href='http://creativecommons.org/licenses/by/4.0/'><img src='/images/cc/by.s.png' alt='Attribution License' height='12'></a>
and <a href='/cc-license.shtml#morePermissions' rel='cc:morePermissions'>more permissions</a></span>.
</div></pre>
</div><p>
<del>述語が全て property 属性で指定されている点に注意。
ライセンスを指示する a 要素の場合は rel 属性のほうが正しい気がするが(実際 <a href="http://www.w3.org/2012/pyRdfa/Validator.html">RDFa Validator</a> は OK なんだけど), <a href="http://html5.validator.nu/">HTML5 Validator</a> のほうが NG を吐く。
理由は不明。</del>
</p><p>
これを <a href="http://www.w3.org/2012/pyRdfa/Validator.html">RDFa Validator</a> にかけると Turtle フォーマットで以下の情報を吐いてくれる。
</p><div>
<pre class="brush:plain" title="RDFa 解析結果">@prefix cc: <http://creativecommons.org/ns#> .
@prefix dc: <http://purl.org/dc/terms/> .
<p></cc-license.shtml>
cc:attributionName "Yasuhiro (Spiegel) Arakawa"@ja;
cc:attributionURL </cc-license.shtml#me>;
cc:license <http://creativecommons.org/licenses/by/4.0/rdf>;
cc:morePermissions </cc-license.shtml#morePermissions>;
dc:dateCopyrighted "Sunday, 03-Aug-2014 21:16:13 JST"@ja;
dc:title "クリエイティブ・コモンズ・ライセンスについて"@ja .</pre></p>
</div><p>
ま,まぁ,正しく解釈してるみたいなんでいいのかな?
</p><p>
RDFa の仕様はかなり parser 任せな部分があるように感じる。
属性の指定さえ間違えなければ parser 側で勝手に解釈して主語や目的語を推定してくれる。
そもそも HTML5 の仕様からしてかなり ad hoc な感じだしなぁ。
まぁいいや。
今日はここまで。
</p>
<div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/4627829310/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/4186NJ98Z7L._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/4627829310/baldandersinf-22/">セマンティック・ウェブのためのRDF/OWL入門</a></dt><dd>神崎 正英 </dd><dd>森北出版 2005-01-07</dd><dd>評価<abbr class="rating" title="4"><img src="https://images-fe.ssl-images-amazon.com/images/G/01/detail/stars-4-0.gif" alt=""/></abbr> </dd></dl><p class="similar"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/4764904276/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4764904276.09._SCTHUMBZZZ_.jpg" alt="Linked Data: Webをグローバルなデータ空間にする仕組み"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4873114527/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4873114527.09._SCTHUMBZZZ_.jpg" alt="セマンティックWeb プログラミング"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4501540109/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4501540109.09._SCTHUMBZZZ_.jpg" alt="オントロジ技術入門―ウェブオントロジとOWL (セマンティック技術シリーズ)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4274079791/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4274079791.09._SCTHUMBZZZ_.jpg" alt="セマンティックWeb入門"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4274202925/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4274202925.09._SCTHUMBZZZ_.jpg" alt="オントロジー構築入門"/></a> </p><p class="gtools">by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a> , <abbr class="dtreviewed" title="2014/08/03">2014/08/03</abbr></p></div>
OGP を使って Web ページと Facebook を連携する
tag:Baldanders.info,2011-06-20:/blog/000521/
2011-06-20T09:00:00+00:00
2011-06-20T09:00:00+00:00
私のごく狭い観測範囲で OGP (Open Graph protocol)なるものが流行ってるようなので,便乗してこのサイトでも設置してみることにした。
Spiegel
/profile/
<p>
私のごく狭い観測範囲で <a href="http://ogp.me/">OGP (Open Graph protocol)</a>なるものが流行ってるようなので,便乗してこのサイトでも設置してみることにした。
</p><p>
OGP は Web 上のリソースをソーシャル・グラフと関連付けるための仕組みのようだ。
Facebook の Like ボタンや mixi チェックなどでは OGP による記述を読み込むことで Web 上のリソースとユーザの活動を関連付けることができる。
分かりにくいかな。
少しづつ説明していこう。
</p><p>
OGP は <a href="http://www.w3.org/TR/rdfa-syntax/">RDFa</a> の<a href="http://ogp.me/">語彙</a>として定義されている。
主なプロパティを挙げてみる。
</p><div>
<table class="solid">
<tbody><tr><th style="white-space:nowrap;">プロパティ</th><th>働き</th></tr>
<tr><td>url</td><td>リソースの canonical URL</td></tr>
<tr><td>title</td><td>リソースのタイトル</td></tr>
<tr><td>type</td><td>リソースの種別</td></tr>
<tr><td>description</td><td>リソースの説明</td></tr>
<tr><td>image</td><td>リソースを表現しているイメージ(画像データへの URL)</td></tr>
<tr><td>site_name</td><td>リソースが置かれているサイト名</td></tr>
<tr><td>author</td><td>リソースの作者</td></tr>
</tbody></table>
</div><p>
RFDa は XHTML に埋め込むことを前提にしているのでプロパティのみ定義される。
クラスやインスタンスは定義されてない(したがってプロパティの有効範囲(ドメインやレンジ)も定義されない)。
</p><p>
リソースは URL で指示されるもので種別は<a href="http://ogp.me/">OGP で定義</a>されているものなら何でも良い。
今回は Web サイトおよびページを対象とするので以下の type のうちいずれかを選択する。
</p><ul>
<li>article</li>
<li>blog</li>
<li>website</li>
</ul><p>
また Facebook の Like ボタンとの連携を前提に設定してみる。
</p><p>
まずはトップページから。
</p><p>
Facebook には OGP の設定方法について解説したページがある。
</p><ul>
<li><a href="https://developers.facebook.com/docs/opengraph/">Open Graph protocol - Facebook開発者</a></li>
</ul><p>
これによると, XHTML のヘッダ内に meta 要素として記述するようになっている。
RFDa ではヘッダ以外にも記述可能なのだが, Facebook のパーサがどの程度の性能なのか分からないので,ここは大人しく Facebook に従うことにする。
全部手作業で記述してもいいのだが, Facebook では OGP の meta 要素を生成するツールがあるので,これを使う。
</p><ul>
<li><a href="https://developers.facebook.com/docs/reference/plugins/like/">Like Button - Facebook開発者</a>(「Step 2 - Get Open Graph Tags」で生成される)</li>
</ul><p>
具体的にはこんな感じ:
</p>
<blockquote><pre><code><meta property="og:title" content="Baldanders.info" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/" />
<meta property="og:image" content="/profile/potrait3.jpg" />
<meta property="og:site_name" content="Baldanders.info" />
<meta property="fb:admins" content="XXXXXXXXX" />
<meta property="og:author" content="Spiegel" />
<meta property="og:description" content="..." /></code></pre></blockquote>
<p>
※ fb:admins はリソースの作者と Facebook のアカウントを紐付ける記述。
上述のツールが自動で生成してくれる。
Facebook のユーザ名ではないので注意。
</p><p>
また html 要素のプロパティとして OGP および FBML の語彙を追加するのを忘れないように。
</p>
<blockquote><pre><code><html xmlns="http://www.w3.org/1999/xhtml"
xmlns:og="http://ogp.me/ns#"
xmlns:fb="http://www.facebook.com/2008/fbml" ></code></pre></blockquote>
<p>
(<a href="http://www.facebook.com/2008/fbml">http://www.facebook.com/2008/fbml</a> は実在しない URL なんだけど,まずいんじゃないのかなぁ)
</p><p>
Facebook では Lint ツールも提供している。
</p><ul>
<li><a href="https://developers.facebook.com/tools/lint">URLリンター - Facebook開発者</a></li>
</ul><p>
OGP を設置したページを読み込ませて正しい記述になっているか確認すると良い。
(<a href="https://developers.facebook.com/tools/lint?url=http%3A%2F%2Fwww.baldanders.info%2F">トップページの Lint 結果がこれ</a>)
</p><p>
確認手段としてはもうひとつある。
</p><ul>
<li><a href="http://www.w3.org/2007/08/pyRdfa/">RDFa Distiller and Parser</a></li>
</ul><p>
このツールでページを読み込ませると RDFa の記述から RDF (XML)を抽出してくれる。
ちなみに<a href="https://baldanders.info/">トップページ</a>を読み込ませると以下の RDF が抽出される。
</p>
<blockquote><pre><code><?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:og="http://ogp.me/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>
<rdf:Description rdf:about="/">
<og:image>/profile/potrait3.jpg</og:image>
<og:description>...</og:description>
<og:site_name>Baldanders.info</og:site_name>
<og:author>Spiegel</og:author>
<og:type>website</og:type>
<og:url>/</og:url>
<og:title>Baldanders.info</og:title>
</rdf:Description>
</rdf:RDF></code></pre></blockquote>
<p>
これを <a href="http://www.w3.org/RDF/Validator/">RDF Validation Service</a> に読み込ませれば OGP 記述が RDF 的にどのような構造になっているか分かると思う。
</p><p>
OGP を設置したページに Like ボタンを設置し(<a href="https://developers.facebook.com/docs/reference/plugins/like/">Like Button</a> ツールで作成可能)そのボタンを押すと,ボタンを押したユーザの Wall に以下のリンク情報が書き込まれる。
</p><div class="center">
<img src="https://baldanders.info/profile/facebook.png" width="452" height="114"/>
</div><p>
ところで,ページの type を blog または website として設定すると,site_name と同名の Facebbook ページが作成される(既に存在している場合にどうなるかは不明)。
この Facebook ページと実際の Web ページは OGP を通じて連携していて, Web ページの Like ボタンを押すと Facebook ページの Like ボタンも押された状態になる。
したがって, Facebook ページの Wall を更新すれば Like ボタンを押したユーザにも(News Feed 上で)更新内容が通知されることになる。
これをうまく使えば Web サイトの更新をリアルタイムに(Like ボタンを押した人に)広めることができる。
ただし,ここで作成される Facebook ページは(fb:admins で指定される)管理者しかアクセスできない。
管理者以外はあくまで Web サイトからの更新として News Feed 上に表示されるようだ。
</p><p>
さて,トップページの設定ができたので,次はブログのエントリページにも OGP を設置する。
エントリページの場合は type に article を指定する。
このページであれば以下のような感じになる。
</p>
<blockquote><pre><code><meta property="og:title" content="OGP を使って..." />
<meta property="og:type" content="article" />
<meta property="og:url" content="/blog/000521/" />
<meta property="og:image" content="/profile/potrait3.jpg" />
<meta property="og:site_name" content="Baldanders.info" />
<meta property="fb:admins" content="XXXXXXXXX" />
<meta property="og:author" content="Spiegel" />
<meta property="og:description" content="..." /></code></pre></blockquote>
<p>
これをページのヘッダ内に追加する。
html 要素に OGP と FBML の語彙を追加するのを忘れずに。
(<a href="https://developers.facebook.com/tools/lint?url=http%3A%2F%2Fwww.baldanders.info%2Fspiegel%2Flog2%2F000521.shtml">このページの Lint 結果がこれ</a>)
</p><p>
article ページはサイトの Facebook ページとは連携しない。
Facebook ページに Web サイトの更新を自動で行うには RSS Graffiti などのアプリケーションを使うと良い。
</p>
<p>
参考:
</p><ul>
<li><a href="http://d.hatena.ne.jp/amachang/20110117/1295233078">フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か</a></li>
<li><a href="http://www.machu.jp/diary/20110619.html#p01">Facebook のいいね!ボタンと OGP の設置</a></li>
</ul>
CC-license のメタデータ入門 付録
tag:Baldanders.info,2008-02-26:/blog/000374/
2008-02-26T09:00:00+00:00
2008-02-26T09:00:00+00:00
前回の最後にも書いたけど,XML ベースの RDF を使った CC-license のメタデータ記述がなくなりつつあるため,資料保存の目的でまとめておく。
Spiegel
/profile/
<p>
<a href="https://baldanders.info/blog/000371/">前回</a>の最後にも書いたけど,
XML ベースの RDF を使った CC-license のメタデータ記述がなくなりつつあるため,
資料保存の目的でまとめておく。
なお,
語彙の定義については <a href="http://creativecommons.org/ns">http://creativecommons.org/ns</a> を参考にしている。
翻訳が怪しい部分もあるので,
ツッコミよろしくお願いします。
</p><p>
まず CC 語彙のうち基本クラスについて以下に列挙する。
</p>
<table class="solid" style="margin-left:1em">
<tbody><tr><th>クラス名</th><th>内容</th></tr>
<tr><td>Work</td><td>作品</td></tr>
<tr><td>License</td><td>ライセンス: 要求・許可・禁止事項のセット</td></tr>
<tr><td>Jurisdiction</td><td>準拠法? (legal jurisdiction of a license)</td></tr>
<tr><td>Permission</td><td>許可事項</td></tr>
<tr><td>Requirement</td><td>要求事項</td></tr>
<tr><td>Prohibition</td><td>禁止事項</td></tr>
</tbody></table>
<p>
このうち Permission, Requirement, Prohibition 各クラスについては,
あらかじめ定義されたインスタンス(=リソース)が存在する。
これらのインスタンスは主に目的語として使われる。
</p><p>
Permission クラスの定義済みインスタンスは以下のとおり。
</p>
<table class="solid" style="margin-left:1em">
<tbody><tr><th>インスタンス名</th><th>内容</th></tr>
<tr><td>Reproduction</td><td>複製</td></tr>
<tr><td>Distribution</td><td>頒布,展示,実演</td></tr>
<tr><td>DerivativeWorks</td><td>二次的著作物の作成</td></tr>
<tr><td>HighIncomeNationUse</td><td>非発展途上国での使用</td></tr>
<tr><td>Sharing</td><td>商用での二次的著作物の作成,ただし頒布,展示,実演は非営利目的のみ</td></tr>
</tbody></table>
<p>
Requirement クラスの定義済みインスタンスは以下のとおり。
</p>
<table class="solid" style="margin-left:1em">
<tbody><tr><th>インスタンス名</th><th>内容</th></tr>
<tr><td>Notice</td><td>著作権およびライセンスを変更せずに記載</td></tr>
<tr><td>Attribution</td><td>著作(権)者のクレジットを表記</td></tr>
<tr><td>ShareAlike</td><td>二次的著作物も原著作物と同じ条件によってライセンスすること</td></tr>
<tr><td>SourceCode</td><td>二次的著作物とともにソースコードも提供</td></tr>
</tbody></table>
<p>
Prohibition クラスの定義済みインスタンスは以下のとおり。
</p>
<table class="solid" style="margin-left:1em">
<tbody><tr><th>インスタンス名</th><th>内容</th></tr>
<tr><td>CommercialUse</td><td>営利目的で利用</td></tr>
</tbody></table>
<p>
</p><p>
最後に,
プロパティ(述語)について以下に列挙する。
</p>
<table class="solid" style="margin-left:1em">
<tbody><tr><th>プロパティ</th><th>働き</th><th>domain</th><th>range</th></tr>
<tr><td>license</td><td>ライセンスする</td><td>Work</td><td>License</td></tr>
<tr><td>permits</td><td>許可する</td><td>License</td><td>Permission</td></tr>
<tr><td>requires</td><td>要求する</td><td>License</td><td>Requirement</td></tr>
<tr><td>prohibits</td><td>禁止する</td><td>License</td><td>Prohibition</td></tr>
<tr><td>morePermissions</td><td>追加で許可する</td><td>Work</td><td>任意のリソース</td></tr>
<tr><td>attributionName</td><td>作者の表記</td><td>Work</td><td>任意</td></tr>
<tr><td>attributionURL</td><td>作品 URL の表記</td><td>Work</td><td>任意のリソース</td></tr>
<tr><td>jurisdiction</td><td>ライセンスの準拠法?の表記</td><td>License</td><td>Jurisdiction</td></tr>
<tr><td>legalcode</td><td>ライセンスの法的条項の表記</td><td>License</td><td>任意のリソース</td></tr>
<tr><td>deprecatedOn</td><td>ライセンスの有効期限?の表記(provides the date deprecated on)</td><td>License</td><td>日付</td></tr>
</tbody></table>
<p>
domain と range については<a href="https://baldanders.info/blog/000371/">前回</a>説明しなかった。
domain と range はそれぞれプロパティが使える適用範囲を示す。
domain は主語となるインスタンス(=リソース)のクラスを示す。
例えば permits プロパティの主語は必ず License クラスのインスタンスでなければならない。
range は述語の範囲を示す。
「任意」はリソース以外にリテラルのデータを許容する。
「日付」は日付形式(yyyy-mm-dd)のリテラル・データだ。
</p><p>
<a href="http://web.resource.org/cc/">http://web.resource.org/cc/</a> にはあって <a href="http://creativecommons.org/ns">http://creativecommons.org/ns</a> にはない語もあるようだ。
Agent クラスは <a href="http://creativecommons.org/ns">http://creativecommons.org/ns</a> ではなくなっている。
License クラスの定義済みインスタンスである PublicDomain もなくなっているようである。
プロパティの derivativeWork もない(けどこれは単に抜けてるだけかなぁ)。
</p><p>
以降には CC-license のライセンスオプションの組み合わせごとに RDF の XML 記述を挙げておく。
いずれも日本版 2.1 のライセンスに対応している。
他のバージョンについては <code>rdf:about</code> の URI を適宜変更すればよい。
</p><p>
by ライセンス:
</p>
<blockquote><pre><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#">
<p><cc:License rdf:about="http://creativecommons.org/licenses/by/2.1/jp/">
<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
<cc:requires rdf:resource="http://web.resource.org/cc/Attribution" />
<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
</cc:License></p>
<p></rdf:RDF></pre></blockquote></p>
<p>
by-nc ライセンス:
</p>
<blockquote><pre><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#">
<p><cc:License rdf:about="http://creativecommons.org/licenses/by-nc/2.1/jp/">
<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
<cc:requires rdf:resource="http://web.resource.org/cc/Attribution" />
<cc:prohibits rdf:resource="http://web.resource.org/cc/CommercialUse" />
<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
</cc:License></p>
<p></rdf:RDF></pre></blockquote></p>
<p>
by-sa ライセンス:
</p>
<blockquote><pre><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#">
<p><cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.1/jp/">
<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
<cc:requires rdf:resource="http://web.resource.org/cc/Attribution" />
<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
</cc:License></p>
<p></rdf:RDF></pre></blockquote></p>
<p>
by-nd ライセンス:
</p>
<blockquote><pre><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#">
<p><cc:License rdf:about="http://creativecommons.org/licenses/by-nd/2.1/jp/">
<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
<cc:requires rdf:resource="http://web.resource.org/cc/Attribution" />
</cc:License></p>
<p></rdf:RDF></pre></blockquote></p>
<p>
by-nc-sa ライセンス:
</p>
<blockquote><pre><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#">
<p><cc:License rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.1/jp/">
<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
<cc:requires rdf:resource="http://web.resource.org/cc/Attribution" />
<cc:prohibits rdf:resource="http://web.resource.org/cc/CommercialUse" />
<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
</cc:License></p>
<p></rdf:RDF></pre></blockquote></p>
<p>
by-nc-nd ライセンス:
</p>
<blockquote><pre><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#">
<p><cc:License rdf:about="http://creativecommons.org/licenses/by-nc-nd/2.1/jp/">
<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
<cc:requires rdf:resource="http://web.resource.org/cc/Attribution" />
<cc:prohibits rdf:resource="http://web.resource.org/cc/CommercialUse" />
</cc:License></p>
<p></rdf:RDF></pre></blockquote></p>
<p>
以上。
</p>
ちょっとだけ GRDDL
tag:Baldanders.info,2007-09-30:/blog/000351/
2007-09-30T09:00:00+00:00
2007-09-30T09:00:00+00:00
自サイトの blog ページをまたいじる。
Spiegel
/profile/
<p>
自サイトの blog ページをまたいじる。
</p><p>
「はてなスター」は止めた。
いや,どう考えても私にメリットがないし
(アカウントは持ってても私は「はてな」市民でも村民でもないしね)。
☆付けてくださった方々どうもすみません。
Hatena Inc. もうちょっとやるかと思ったけどなぁ。
</p><p>
ついでに blog ページを microformat 対応にしてみる。
とりあえず head 要素に profile をセット。
</p>
<blockquote><pre><head profile="http://purl.org/net/ns/metaprof"></pre></blockquote>
<p>
これだけで <a href="http://www.w3.org/2003/11/rdf-in-xhtml-demo">“Demonstration of an RDF in XHTML processor”</a> のパーサにかけて RDF を抽出することができる。
<a href="http://www.w3.org/2005/08/online_xslt/xslt?xslfile=http%3A%2F%2Fwww.w3.org%2F2003%2F11%2Frdf-in-xhtml-processor&xmlfile=http%3A%2F%2Fwww.baldanders.info%2Fspiegel%2Flog2%2F000349.shtml">例えばこんな感じ</a>。
更に <a href="http://microformats.org/wiki/rel-license-ja">rel-license</a> があればそれも解釈してくれるらしいんだけど,
これはうまくいかなかった。
まぁ,
CC-license をちゃんと記述するなら <a href="http://www.w3.org/TR/grddl/">GRRDL</a> 使わないとダメだろうしな。
でもそれをするには XSLT を使って定義してやる必要がある。
<a href="http://www.kanzaki.com/memo/2006/04/29-1">神崎正英さんの汎用 XSLT</a> を使ってみようかな(改造する必要があるかも知れんけど)。
</p><p>
とか言いつつ,
今は<a href="http://phantasystaruniverse.jp/">「イルミナスの野望」</a>に引きこもっているので何もできないのだった。
</p><p>
おっと,
記事中に埋め込んである RDF コードで,
ノードがつながっていない個所があった。
これも修正。
</p>