List of programming - Baldanders.info
tag:Baldanders.info,2015-08-27:/tags
2015-08-27T09:00:00+00:00
バルトアンデルスは連続的な怪物,時間の怪物である。(ホルヘ・ルイス・ボルヘス 『幻獣辞典』より)
https://baldanders.info/images/avatar.jpg
https://baldanders.info/images/avatar.jpg
プログラミングは「損得勘定」で考える
tag:Baldanders.info,2015-08-27:/blog/000868/
2015-08-27T09:00:00+00:00
2015-08-27T09:00:00+00:00
それを「仕事」にしているなら「損得勘定」で考えなければダメである。ここで言う「損得勘定」は自分にとっての損得である。
Spiegel
/profile/
<p>
1年以上前の記事だが,たまたま見かけたので。
</p><ul>
<li><a href="http://qiita.com/hirokidaichi/items/27c757d92b6915e8ecf7">ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 - Qiita</a></li>
</ul><p>
いや,何が凄いって,ここまで「新人」に付き合えることが本当に凄い。
<a href="https://baldanders.info/blog/000832/">以前書いた記事</a>でも思ったが,こればっかりは真似できない。
</p><p>
既にあちこちで書いているのでご存じの方もいるかもしれないが,私は親に「冷血漢」の称号を頂くほどに薄情な人間なので,こういう「新人」を見ると「向いてない」とはっきり言ってしまう。
私がこの歳でまだプログラマなんかやってるのは「自分で書いたほうが早い」と思ってしまうからだ。
<a href="https://baldanders.info/blog/000851/">私みたいな人間が「人を教える」なんてのはまったくもって彼岸の話</a>である。
</p><p>
この際なのではっきり言うが
</p><p class="center">
<span class="caution">数学の問題を解くのに公式の暗記から始める人はプログラマには向いてないので諦めた方がいい</span>
</p><p>
最初に挙げた記事でも
</p>
<figure>
<blockquote>
<q>しかし、これはコピペを多用している人にありがちな考え方のようで、コピペしても動かないのはなにか間違ったことをしていて、正確にコピペできていないところがないかを探すというプログラミングサイクルが習慣化していることが背景にはあるのではないかと感じられた。
<br/>そのため、一度書き終わったコードは記号の羅列のように見えてしまい、そこに何か間違いがないか目で探すのだ。自分で書いたものもコピペで始まっているため、それは記号の羅列であって、理解していないものになってしまう。</q>
</blockquote>
<figcaption><q><a href="http://qiita.com/hirokidaichi/items/27c757d92b6915e8ecf7">ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習</a></q>より</figcaption>
</figure>
<p>
とあって,気の毒としか言いようがない。
そんなことに時間を取られるくらいなら,とっとと別の職業に転職(class change)するほうがマシだと思ってしまう。
</p><p>
プログラム言語が他の(日本語や英語などの)自然言語と決定的に異なるのは,「ゼロ知識」で記述することができる点である。
プログラム言語は与えられたルールだけで対象を記述することができ,記述することによって知識が(あと付で)積み上がっていく。
</p><p>
たとえば日本語や英語を修得する際に文法から習う人はいない(日本の学校教育は違うかもだけど)。
まずはみんなが話している会話から「文脈」を類推し,そこから言葉自体を理解していく。
「文脈」を類推するためには(他者と共有可能な)大量の知識が必要で,これは「語彙(vocabulary)」と呼ばれるものだ。
</p><p>
プログラミング言語は(原理的には)語彙を知らなくても文法(ルール)の組み合わせで記述でき,記述そのものを語彙として再利用できる。
これを面白いと思えず,他人の書いた語彙をひたすら写経のごとく書き写すのではしんどいばかりで,後には何も残らない。
</p><p>
私はそれを「センス」の問題だと思ってるけど,上述のリンク先の記事では「習慣」の問題だとしている。
しかし,たとえばチャイムと餌で条件付けされた犬に対し「チャイムを聞いて涎が出てしまうのは習慣の問題」とか言ってもどうしようもない。
いや,もしかしたら物凄く頑張れば克服できるのかもしれないけど,そのためにかかるコストは果たして意味があるものなのか疑問である。
</p><p>
趣味でやってる人は別だが,それを「仕事」にしているなら「損得勘定」で考えなければダメである。
ここで言う「損得勘定」は(顧客とか上司とか会社とかではなく)自分にとっての損得である。
</p><p>
たとえば Test First とか Test Driven とか言われているやつ。
これって要するに先にテストを書くことによってコーディングにかかるコスト(金銭的・時間的コスト)を実質ゼロにする考え方だ。
何故なら,先にテストコードを書くことによって「いきなりデバッグ」から始めることが出来るから(テストを書く行為は設計することと同等)。
1行もビジネスロジックを書いてないのにデバッグから始められるとか,なんてクールなんだろう。
</p><p>
良いひとも悪い人も,大人も子供も,貧乏人も金持ちも,誰しも有限のリソースしか持ち得ない。
その有限のリソースを最適化して最大限の効果を得るのが「損得勘定」の基本的な考え方だ。
人の直感は目先のものや心理的なバイアスに大きく左右される。
直感をコントロールして正しい「損得」を見積もれるようになるには訓練が必要である。
</p><p>
とういうわけで,楽しくお仕事しましょう。
</p>
春は始まりと諦めの季節
tag:Baldanders.info,2015-04-16:/blog/000832/
2015-04-16T09:00:00+00:00
2015-04-16T09:00:00+00:00
というわけで,これから何かを始める全ての方々に幸いあれ!
Spiegel
/profile/
<ul> <li><a href="http://wirelesswire.jp/2015/04/29316/">新世代へのどこにも行きつかない啓示 - WirelessWire News</a></li> </ul><p> 私,こういう話好きです。 いや,話の内容じゃなくて,こう果てしなく話が横滑りしていく感じ。 これって「喫煙室トーク」や「居酒屋トーク」なんかの原点じゃないのかなぁ。 こういう,一見中身がなさそうに見える「おしゃべり」の中から「情報」の上澄みを漉し取るのが「読解力(literacy)」ってやつだよね,と思ったり。 容易に横滑りするので,会話を誘導するのも楽だったり(笑) </p><p> さて,「新社会人へのアドバイス」だが,私も特に語るようなものは持ってない。 </p><p> まぁ,場末の「流しのプログラマ」に過ぎない私が会社の歯車たろうとする新入社員たちに語る言葉など持ち合わせてる筈もないのだが,それ以上に私は今でいうところの「就活」なるものを経験してない。 いわゆる「同期」や「同僚」はいないし,それゆえに「先輩」も「後輩」も存在しない(もちろん生物年齢としての「目上」や「目下」,またヒエラルキーの上位者や下位者の知り合いはいるけど)。 私には語るべき対象が存在しないのだ。 </p><p> でも,他の方が書かれていて「ほほう」と思うものはある。 たとえば </p><ul> <li><a href="http://qiita.com/ukiuni@github/items/4a252f47a37e17d99c59">やっと分かった。プログラムができるようになるためのたった一つの方法。プログラミング入門者に向けて。 - Qiita</a></li> </ul><p> みたいな話。 </p> <figure> <blockquote> <q>プログラミングができない人に共通することは、「自分のできないことをやっている」ことでした。教科書に乗っているコードを書き写してはいるのですが、それが何を意味するかがわかっていません。ただ、教科書に書いている文字をタイプしています。そんな方々は、コードが動かなくなった時は対応しようがありません。「なんか動かないんですけど、どうしたら良いですか?」と、自信をなくした目で周りに助けを求めるしかありません。</q> </blockquote> <figcaption><q><a href="http://qiita.com/ukiuni@github/items/4a252f47a37e17d99c59">やっと分かった。プログラムができるようになるためのたった一つの方法。プログラミング入門者に向けて。</a></q>より</figcaption> </figure> <p> たとえば学生時代,必死で数学の公式を覚えようとする人がいた(私は理数科にいたので,クラスメートにはそういう非効率なことをする人はいなかったが)。 仕事でも,どこかから拾ったコードを丸写しして「動かない」と悩んでいる人がたまにいる(そういえば昔,すでに辞めた人が書いた一見それっぽいソースコードが動かないので中身をよく見てみたら「それっぽい」だけで,まるきりでたらめなコードだったという「怪談」があった)。 </p><p> 今まで,なんでそんな無茶をするのか不思議だったが(<span class="offrec">私は薄情な人間なので,そういう人に助けを求められたら「向いてないから止めた方がいい」と言っていた。いや,出口のない悩みで悶々とするくらいなら,すっぱり諦めて他のことをしたほうが生産的だし</span>), </p> <figure> <blockquote> <q>対して、プログラミングができるようになる人は、うまくいかなくなった場合、自分のできるところまで戻ることをします。教科書を書き写していて、コードが動かなくなった場合も、自分がわかるところまでコードを消し戻し、不完全でも動くようにしてから課題となっているコードに再度とりかかることができます。応用の課題が出た時でも、まずは自分のわかるところまでプログラミングし、その後に必要な要素を積み重ねていくことができます。できる事を積み重ねていくことにより、できる事が広がっていきます。</q> </blockquote> <figcaption><q><a href="http://qiita.com/ukiuni@github/items/4a252f47a37e17d99c59">やっと分かった。プログラムができるようになるためのたった一つの方法。プログラミング入門者に向けて。</a></q>より</figcaption> </figure> <p> と書かれていて何となく納得してしまった。 </p><p> 大昔はコーディングのコストが高かった。 そりゃあ紙テープやパンチカードに「書く」のだから高コストで当たり前である(当時は「コーダ(coder)」という職業が実在した。エンジニアが組んだコードを書くだけのお仕事である)。 今は「書く」コストは(当時に比べれば)すごく低くなった。 書いてすぐ試せるし,間違っていればすぐやり直せる。 しかも最近はバージョン管理ツールや仮想環境もよくなってるので,何かの拍子に「やっちまった」場合でも簡単に巻き戻せる。 誰だって最初は <q lang="en">Hello World</q> から始めるのだ(<span class="offrec">GitHub には <a href="https://github.com/leachim6/hello-world"><q lang="en">Hello World</q> だけを集めた repository</a> が存在する</span>)。 </p><p> 最近,暇を見つけて Go 言語の基礎学習をしているのだが </p><ul> <li><a href="http://qiita.com/spiegel-im-spiegel/items/dca0df389df1470bdbfa">はじめての Go 言語 (on Windows) - Qiita</a></li> <li><a href="http://qiita.com/spiegel-im-spiegel/items/047a9bd6436e6391ddd4">はじめての Go 言語 (on Windows) その2 - Qiita</a></li> </ul><p> まぁ,こんなもんである(笑) いや,もちろん仕事ならちゃんとした評価をしますよ。 </p><p> ちなみに,たったこれだけの記事を書くのに,載せているコードの3倍くらいのコードを書いている(もちろん書いている記事の通りに考えているわけではない。文章書いてる人は大概そうだと思うけど)。 更に仕事でちゃんとした評価が必要なら,最低でもこの10倍くらいはコードを書く。 私は頭が悪いので書いてみないとわからないのだ。 どんな道具も手に馴染むまではいろいろと試してみるものである。 そんなもんだ。 </p> <figure> <blockquote> <q>なぜならプログラム・コードの大半は異常系,つまり「してはいけない」ことに関する記述だからだ。 今まで何度も書いているが,優れたシステムとは失敗しないシステムではなく上手に失敗するシステムである。 上手に失敗するためには「○○をしてはいけない」ことの意味を正しく理解する必要があり,正しく理解するためには「してはいけない」ことを試してみるしかないのである。 <br/>だから大量にコードを書くことをお勧めする。 良いコードも悪いコードも書いてみなければ理解できない。 また「「してはいけない」ことを試してみる」というアプローチをとれるのはソフトウェア・エンジニアリングの優れた特性であり,その行為に(罪悪感ではなく)享楽を感じないようならプログラマとか止めたほうがいい。 そしてそのことさえ押えておけば,どんな言語にも適応できる。 ソフトウェアなんて簡単なのである。 </q> </blockquote> <figcaption><q><a href="https://baldanders.info/blog/000529/">私はこうしてプログラミングを覚えた — Baldanders.info</a></q>より</figcaption> </figure> <p> というわけで,これから何かを始める全ての方々に幸いあれ! </p>
Qiita にアカウント作りました
tag:Baldanders.info,2015-02-05:/blog/000803/
2015-02-05T09:00:00+00:00
2015-02-05T09:00:00+00:00
いや, Qiita の記事にはどえらいお世話になってるのよ。「ひょっとしてこれって誰でも入れるの?」と思って試してみたら入れた(笑) ちうわけで,アカウント作りました。
Spiegel
/profile/
<p> いや, <a href="http://qiita.com/">Qiita</a> の記事にはどえらいお世話になってるのよ。 はっきり言って <a href="https://ja.stackoverflow.com/">Stack Overflow</a> よりお世話になってる。 でも,恥ずかしながら,ついさっきまで <a href="http://qiita.com/">Qiita</a> が何のサービスか知らなかった。 技術系の変わり種メディアかなぁ,とか思ってたのだ。 </p><p> あれ? と思ったのは <a href="http://qiita.com/essa">essa</a> さんの記事を見かけて。 「へぇ,最近こんなところで活動されてるんだ」と思いながら,よく見たら右上に “Sign Up” の文字が。 「ひょっとしてこれって誰でも入れるの?」と思って試してみたら入れた(笑) ちうわけで,アカウント作りました。 </p><ul> <li><a href="http://qiita.com/spiegel-im-spiegel">spiegel-im-spiegel - Qiita</a></li> </ul><p> 試しにひとつだけ<a href="http://qiita.com/spiegel-im-spiegel/items/8c60e63e7d00c5805427">記事をアップ</a>してる。 でも,おそらくこれは情報収集がメイン活動だろうな。 いや,仕事がら書けないことのほうが多いのよ。 最近は(ビジネスロジックに関係ない部分は)なるべく残そうと思って <a href="https://github.com/spiegel-im-spiegel">GitHub にアップ</a>したりしてるけど。 </p><p> そういうわけで,あまり情報発信とかはしないと思うけど,よろしくです。 </p>
明けましておめでとうございます。
tag:Baldanders.info,2015-01-11:/blog/000791/
2015-01-11T09:00:00+00:00
2015-01-11T09:00:00+00:00
今年は閏秒があります / Medium のアカウント取った / Prototyping Java / cc-license 4.0 International 日本語訳 / Movable Type はいつまで存続できるのか / 「アリスはふしぎの国で」出版150周年だそうで / さて今年は
Spiegel
/profile/
<p> (よし,まだ松の内は取れてないな) </p><p> みなさま明けましておめでとうございます。 本年もどうぞご愛顧の程,よろしくお願いいたします。 </p><p> 今回はいろいろまとめて<a href="https://baldanders.info/spiegel/log/">戯れ言</a>モードで。 </p><ol> <li><a href="#leapsecond">今年は閏秒があります</a></li> <li><a href="#medium">Medium のアカウント取った</a></li> <li><a href="#programming-java">Prototyping Java</a></li> <li><a href="#trans-ccl">cc-license 4.0 International 日本語訳</a></li> <li><a href="#mt-is-end">Movable Type はいつまで存続できるのか</a></li> <li><a href="#workflow">プロセスこそが「永遠にβ版」</a></li> <li><a href="#alice">「アリスはふしぎの国で」出版150周年だそうで</a></li> <li><a href="#2015">さて今年は</a></li> </ol> <section id="leapsecond"> <h3>今年は閏秒があります</h3> <p> <a href="http://jjy.nict.go.jp/QandA/data/leapsec.html">NICT のページ</a>によると,協定世界時の2015年7月1日直前に閏(うるう)秒が挿入されるようです。 <a href="https://baldanders.info/blog/000582/">2012年</a>以来。 日本時間では2015年7月1日の午前 9:00 の直前になります。 これによって協定世界時と国際原子時との差は36秒になります(現在は35秒)。 </p><ul> <li><a href="http://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat">UTC TIME STEP on the 1st of July 2015</a></li> <li><a href="http://hiroki.jp/leap-second-2015">7/1の閏秒を迎えるにあたってLinuxでは何をすべきか? | Act as Professional</a></li> </ul><ul> <li><a href="https://baldanders.info/blog/000045/">[鏡] 「暦」日本史 -- 戯れ言++</a></li> </ul><ul> <li><a href="https://baldanders.info/blog/000109/">時刻系の話: 閏秒ができるまで - 序章 -- 戯れ言++</a></li> <li><a href="https://baldanders.info/blog/000118/">時刻系の話: 閏秒ができるまで - 恒星時系と世界時系 -- 戯れ言++</a></li> <li><a href="https://baldanders.info/blog/000127/">時刻系の話: 閏秒ができるまで - 暦表時系 -- 戯れ言++</a></li> <li><a href="https://baldanders.info/blog/000130/">時刻系の話: 閏秒ができるまで - 原子時系と閏秒 -- 戯れ言++</a></li> <li><a href="https://baldanders.info/blog/000147/">時刻系の話: 閏秒ができるまで - 新しい暦計算システムと力学時 -- 戯れ言++</a></li> </ul><p> 本当は「時刻系の話」の改訂版を書こうと思ったんだけど,そのためには「座標時系」をちゃんと勉強しないといけないことに気がついた。 ので,しばらく保留。 </p><p> 座標時についてちゃんと解説してる Web ページって見当たらない感じ? これは最新の位置天文学の教科書を探す必要があるな。 久しぶりにリアル本屋さんで物色してみるか。 ちなみに私が今まで教科書にしているのは長沢工さんの以下の本。 数学好きにもお勧め。 こういう本を Kindle で出して欲しいんだけどなぁ。 </p> <div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/4805202254/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/51mQCyP04rL._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/4805202254/baldandersinf-22/">天体の位置計算</a></dt><dd>長沢 工 </dd><dd>地人書館 1985-09</dd><dd>評価<abbr class="rating" title="5"><img src="https://images-fe.ssl-images-amazon.com/images/G/01/detail/stars-5-0.gif" alt=""/></abbr> </dd></dl><p class="similar"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/4805206349/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4805206349.09._SCTHUMBZZZ_.jpg" alt="日の出・日の入りの計算―天体の出没時刻の求め方"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4769908180/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4769908180.09._SCTHUMBZZZ_.jpg" alt="天文計算入門―一球面三角から軌道計算まで"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4805204141/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4805204141.09._SCTHUMBZZZ_.jpg" alt="パソコンで見る天体の動き"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4416114710/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4416114710.09._SCTHUMBZZZ_.jpg" alt="天文年鑑2015年版"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00R4X7R0M/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00R4X7R0M.09._SCTHUMBZZZ_.jpg" alt="月刊 星ナビ 2015年 02月号 [雑誌]"/></a> </p> <p class="description">B1950.0 分点から J2000.0 分点への過渡期に書かれた本なので情報が古いものもあるが,基本的な内容は位置天文学の教科書として充分通用する。</p> <p class="gtools">reviewed by <a href="#me" class="reviewer">Spiegel</a> on <abbr class="dtreviewed" title="2015-01-11">2015/01/11</abbr> (powered by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a>)</p> </div> </section> <section id="medium"> <h3>Medium のアカウント取った</h3> <ul> <li><a href="https://medium.com/@spiegel_2007">Der Spiegel im Spiegel — Medium</a></li> </ul><p> <a href="https://medium.com/">Medium</a> のアカウントを取った(どうしても脳内で「メディウム」と読んでしまうが「ミディアム」と読むのが正しい?)。 とりあえず取っただけ。 どう使うかはこれから考える。 </p><p> 年末から仕事が忙しくなってきたせいか note や Tumblr をほとんど見なくなった。 note は post すらしなくなった。 </p><p> 何故かは知らないが, note はどうあっても Web Money 系のプリカ(au WALLET も Web Money 系)を受け付けてくれないらしい。 ので,しばらく休眠させることにする。 note では,私は audience に過ぎないので,私が使いたい決済手段を提供してくれないのならすることがない。 </p><p> Tumblr は Instagram との組み合わせで,これからも写真を垂れ流す予定。 相変わらずご飯と酒瓶の写真が多いけど,今年は(Ingress で歩きまわったりするので)もう少し「お散歩カメラ」的な写真も撮っていきたい。 本当は COOLPIX S810c みたいな Android コンパクトカメラがあるといいんだろうけど,まぁおいおい。 </p><ul> <li><a href="http://wired.jp/2015/01/10/medium-1/">ミディアムは世界の何を変えるのか:Twitterをつくった男の次なる挑戦 « WIRED.jp</a></li> </ul> </section> <section id="programming-java"> <h3>Prototyping Java</h3> <p> GitHub に新しい repository をアップした。 </p><ul> <li><a href="https://github.com/spiegel-im-spiegel/PrototypingJava">spiegel-im-spiegel/PrototypingJava</a></li> </ul><p> いや,普通こういう機能ってちゃんとしたフレームワークとかに入ってるわけなんだけど,たまにフレームワークの外でフルスクラッチでコードも書くことがあるわけよ。 その度に「singleton ってどうやって書くんだっけ?」とかやるのは効率が悪いので,プログラミングでよく使う細々したものをまとめておくことにした。 </p><p> 収録してるのはありがちなものばかりで権利を主張するほどの内容ではないため <a href="http://creativecommons.org/publicdomain/zero/1.0/">CC0</a> で公開するけど,個々のコードをそのまま使わないこと。 フレームワーク等に類似の機能があるのならそちらを使うこと。 </p><p> 拙いコードについてはツッコミ歓迎です。 CC0 での公開に賛同いただけるのなら pull request も歓迎です。 </p> </section> <section id="trans-ccl"> <h3>cc-license 4.0 International 日本語訳</h3> <p> <a href="https://baldanders.info/blog/000790/">前回紹介した</a>けど, CCjp が cc-license 4.0 International 日本語訳のパブリックコメントを募集している。 が,何故か PDF なためリンク関係等が分かりにくい。 そこで <a href="https://baldanders.info/spiegel/cc-license/translated-legalcode-by-nc-sa.html">HTML 版</a>を起こしてみた。 この作業の過程で思ったことについてはコメントを投げておいた。 まぁ内容の妥当性については専門家じゃないので分からないけど,表記の揺れとか訳文が抜けてるのとか細かい内容。 </p><p> 思うんだけど,これ,全ての組み合わせのライセンスについて訳した時点で,もう一回コメントを募集したほうがいいんじゃないのかなぁ。 どうも CCjp ってやることが中途半端だよな。 </p> </section> <section id="mt-is-end"> <h3>Movable Type はいつまで存続できるのか</h3> <ul> <li><a href="http://d.hatena.ne.jp/yomoyomo/20150107/movabletype">いま(だ)Movable Typeでブログを運営するということ - YAMDAS現更新履歴</a></li> </ul><p> Movable Type といっても,バージョン4までと5と6以降では(運営も含めて)それぞれ別物のツールなので切り分けて考えないとね。 </p><p> 自分自身でサイトを運用するという点に限れば,今のところ <a href="http://www.movabletype.jp/opensource/about.html">MTOS(Movable Type Open Source)</a> に代わる CMS はないんだよねー。 個人的には WordPress は(Java や Adobe 製品と同じく,攻撃者にとって格好のターゲットになり得るという点で)怖くて使えない。 </p><p class="offrec"> (もっと言うと動的ページは,アーカイブの保管という意味で,やりたくない。 もっともっと言うと,今時バックエンドに RDBMS を使うなんて全然 COOL じゃないよね。 固定ページにしておけば CMS や RDBMS を使わなくなっても(使えなくなっても)ページ自体は持続できる) </p><p> ただ MTOS は既に開発が終了していて今は保守フェーズなので,だれもコードの検証や保守をしなくなれば捨てるしかない。 </p><p> で,現状を見回してみるに,今更個人で CMS を立ち上げて運用するなんてコストが高すぎるわけよ。 それならもう Tumblr でいいぢゃん,てことになってしまう。 </p><p> そもそも「ブログ」という単位は鈍重で取り回しが難しくなってる。 周りはスポーツカーでかっとんでるのに,自分自身はいまだに戦車でキャタピラ鳴らしながらウロウロしている。 そんな感じ。 </p><p> 今年はどうなるかなぁ。 </p> </section> <section id="workflow"> <h3>プロセスこそが「永遠にβ版」</h3> <ul> <li><a href="http://blog.makotokw.com/2014/07/11/in-trouble-redmine/">Redmineを全員で使ったらカオスになった話 | kwLog</a></li> </ul><p> これ読んで思い出したのは,昔書いた記事。 </p><ul> <li><a href="https://baldanders.info/blog/000195/">コーディング規約の勘所 -- 戯れ言++</a></li> </ul><p> これは昔,車載系ソフトウェアの仕事をしてたときに叩きこまれたんだけど,「ルールが守られないのはルール(の設計)が間違っている」んだよね。 これを「ルールが守られないのはルールをやぶる人が間違っている」としてしまうと何も回らなくなってしまう。 つまり善悪の問題じゃなくて,アーキテクチャの問題だってこと。 そこに留意して常に仕事のプロセスやワークフローのチューニングを怠らないこと。 逆に言うとプロセスやワークフローは常にチューニング可能な状態にしておかなければならない。 これをガッチガチに固めすぎると「想定外」に対処できなくなる。 </p> <div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/481719412X/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/418VTG145EL._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/481719412X/baldandersinf-22/">想定外を想定する未然防止手法GD3</a></dt><dd>吉村 達彦 </dd><dd>日科技連出版社 2011-09</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/4817130458/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4817130458.09._SCTHUMBZZZ_.jpg" alt="トヨタ式未然防止手法GD3―いかに問題を未然に防ぐか"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4817194324/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4817194324.09._SCTHUMBZZZ_.jpg" alt="日産自動車における未然防止手法Quick DR"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/481719426X/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/481719426X.09._SCTHUMBZZZ_.jpg" alt="全員参画型マネジメントAPAT―「想定外」と言わない組織をつくる"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4822277054/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4822277054.09._SCTHUMBZZZ_.jpg" alt="なぜ重大な問題を見逃すのか? 間違いだらけの設計レビュー"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4542504662/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4542504662.09._SCTHUMBZZZ_.jpg" alt="FMEA辞書―気づき能力の強化による設計不具合未然防止 (JSQC選書)"/></a> </p> <p class="description">俗に「トヨタ式」と呼ばれる未然防止手法について。</p> <p class="gtools">reviewed by <a href="#me" class="reviewer">Spiegel</a> on <abbr class="dtreviewed" title="2015-01-11">2015/01/11</abbr> (powered by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a>)</p> </div> </section> <section id="alice"> <h3>「アリスはふしぎの国で」出版150周年だそうで</h3> <ul> <li><a href="http://www.aozora.gr.jp/aozorablog/?p=3072">aozorablog » 地底から不思議へ:ルイス・キャロルの加筆をたどる 第0回</a></li> </ul><p> 個人的に大久保ゆうさんのファンなので今回のシリーズも楽しみにしている。 早速 </p> <figure> <blockquote> <q>タイトルは「アリスはふしぎの国で」としました。もはや趣味の問題ですが、前から妙に思っていたのが、Alice in Wonderland はアルファベット順だと〈A〉、つまりいちばんはじめの文字のところにあるのに、『ふしぎの国のアリス』だと五十音で半分よりも後ろにあるじゃないか、ということ。Aから始まるものなので、やっぱり〈あ〉から始まってほしいな、と思ったのです。 <br/>それと、このタイトル略形の Alice in Wonderland ってフレーズ、なんだかそのあとに動詞が置けそうな、アリスを主語にしてそのまま文章が続けられそうな気がするな、と前々から感じておりまして。なので「アリスはふしぎの国で」としておくと、そのまま文をつなげていけそうな雰囲気にもなるので、そうしてみました。</q> </blockquote> <figcaption><q><a href="http://www.aozora.gr.jp/aozorablog/?p=3072">地底から不思議へ:ルイス・キャロルの加筆をたどる 第0回</a></q>より</figcaption> </figure> <p> の部分にシビれている。 面白いなぁ。 </p> </section> <section id="2015"> <h3>さて今年は</h3> <p> 昨年は体調の乱高下で安定せず,相当周囲にご迷惑をお掛けしました。 幸い Ingress を始めて以降,比較的体調が安定しています。 Ingress が健康によいというのは本当なんですねぇ。 </p><p> 今年は少しずつ再起動して行く予定です。 年末に NPO に寄付できるくらい稼げればいいけど,それはまだ難しいかなぁ。 まぁ,無理せずゆっくりと。 </p><p> そうそう,なんと私,今年で五十路に突入します。 半世紀も生きちゃったよ。 </p> </section>
SyntaxHighlighter 3.0.9 を node.js でビルドする
tag:Baldanders.info,2014-09-20:/blog/000741/
2014-09-20T09:00:00+00:00
2014-09-20T09:00:00+00:00
SyntaxHighlighter の GitHub リポジトリを見ると 3.0.9 がリリースされているようである。 3.0.9 はソースコードのみの提供で,実際に使うためには node.js でビルドする必要がある。そこで実際にやってみることにした。
Spiegel
/profile/
<p> 以前 <a href="https://baldanders.info/blog/000717/">SyntaxHighlighter を導入した</a>が,このときのバージョンは 3.0.83 だった。 しかし <a href="https://github.com/alexgorbatchev/syntaxhighlighter">GitHub のリポジトリ</a>を見ると <a href="https://github.com/alexgorbatchev/syntaxhighlighter/releases/tag/v3.0.9">3.0.9 がリリース</a>されているようである。 3.0.9 はソースコードのみの提供で,実際に使うためには <a href="http://nodejs.org/">node.js</a> でビルドする必要がある。 </p><p> まぁ,でも, <a href="http://nodejs.org/">node.js</a> はちょっと興味があったので実際にやってみることにした。 最近 <a href="http://nodejs.org/">node.js</a> を要件とするプロジェクトが多いんだよね。 </p> <section> <h3>Windows 環境に node.js をインストールする</h3> <p> なんと! node.js って Windows でも動くんだ。 知らなかった。 ならやってみるしかないよねぇ。 </p><p> <a href="http://nodejs.org/download/">ダウンロードページ</a>を見ると各 OS ごとにパッケージが用意されている。 私は 64bit 版のインストーラを選択。 </p><p> インストールは言いなりでOK。 インストールが終わったらコマンドプロンプトで node.exe を起動して PATH が通ってることを確認する。 </p> <pre class="brush:shell gutter:false" title="コマンド プロンプト">> node -v
v0.10.32</pre>
<p>
インストールを行うとインストールフォルダと <code>%HOMEPATH%\AppData\Roaming\npm</code> フォルダに PATH が通るようになるのだが,この <code>%HOMEPATH%\AppData\Roaming\npm</code> フォルダが曲者で,インストールを行っただけではフォルダを作ってくれないみたい(うちの環境の問題かもしれないけど)。
このときは手動で <code>%HOMEPATH%\AppData\Roaming\npm</code> フォルダを作ってあげるとよい(<code>%HOMEPATH%\AppData</code> フォルダは隠しフォルダになっているのでお気をつけを)。
<code>%HOMEPATH%\AppData\Roaming\npm</code> フォルダの中身は空で大丈夫。
</p><p>
では簡単な動作確認を。
みんな大好き “Hello World!”。
</p><p>
以下を記述した hello.js を作る。
</p>
<pre class="brush:javascript" title="hello.js">console.log('Hello World!');</pre>
<p>
これをコマンドプロンプトから実行して
</p>
<pre class="brush:shell gutter:false" title="コマンド プロンプト">> node hello.js
Hello World!</pre>
<p>
と表示されれば大丈夫。
まぁ今回はサーバ環境を作るわけではないので,これでOKとする。
</p>
</section>
<section>
<h3>SyntaxHighlighter 3.0.9 をビルドする</h3>
<p>
まずは <a href="https://github.com/alexgorbatchev/syntaxhighlighter">SyntaxHighlighter のリポジトリ</a>から <a href="https://github.com/alexgorbatchev/syntaxhighlighter/releases/tag/v3.0.9">3.0.9 のソースコード</a>を取得する。
これを適当な場所に展開して <code>npm install</code> を実行する。
</p>
<pre class="brush:shell gutter:false" title="コマンド プロンプト">> cd syntaxhighlighter-3.0.9
> npm install</pre>
<p>
ちなみに Windows 環境では npm の実体は npm.cmd になっていて,中で node.exe を呼び出している。
(後述する bower や grunt も同様)
</p><p>
成功すると node_modules フォルダができているので,さらに次のコマンドを実行する。
</p>
<pre class="brush:shell gutter:false" title="コマンド プロンプト">> node_modules\.bin\bower install</pre>
<p>
bower は内部で git コマンドを呼び出す(GitHub から必要なコンポーネントを取得するため)。
したがって,あらかじめ git がインストール済みで PATH が通っている必要がある。
</p><p>
では,いよいよビルド。
次のコマンドを実行する。
</p>
<pre class="brush:shell gutter:false" title="コマンド プロンプト">> node_modules\.bin\grunt build
Running "clean" task
<p>Running "compile_sass" task</p>
<p>Running "copy_misc_files" task</p>
<p>Running "build_core" task</p>
<p>Running "pack" task</p>
<p>Running "validate" task</p>
<p>Running "add_header" task</p>
<p>Done, without errors.</pre></p>
<p>
ビルドが成功すれば pkg フォルダに目的のファイルが生成されているはずである。
使い方は <a href="https://baldanders.info/blog/000717/">3.0.83 のとき</a>と同じ。
なお shCore.js は shCore.min.js に置き換えれるのでお試しを。
</p><p>
ちなみに
</p>
<pre class="brush:shell gutter:false" title="コマンド プロンプト">> node_modules\.bin\grunt test
Running "clean" task
<p>Running "compile_sass" task</p>
<p>Running "copy_misc_files" task</p>
<p>Running "build_core" task</p>
<p>Running "pack" task</p>
<p>Running "validate" task</p>
<p>Running "add_header" task</p>
<p>Running "express" task
>> You can access tests on http://localhost:3000 (Ctrl+C to stop)</pre></p>
<p>
としてブラウザで http://localhost:3000 を開くとデモ画面が見れる。
</p>
</section>
<section>
<h3>続きは Web で</h3>
<p>
node.js に関する参考ページ。
</p><ul>
<li><a href="http://sourceforge.jp/magazine/12/04/11/0618228">JavaScriptでWebアプリを開発できる「Node.js」活用入門 | SourceForge.JP Magazine</a></li>
<li><a href="http://www.atmarkit.co.jp/ait/articles/1210/10/news115.html">Node.jsを使ってみよう(1):Node.js、Socket.IO、MongoDBでリアルタイムWeb (1/2) - @IT</a></li>
<li><a href="http://blog.codebook-10000.com/entry/20130530/1369919458">JavaScript初心者によるNode.js入門 - 感謝のプログラミング 10000時間</a></li>
<li><a href="http://t.snkz.org/?p=68">Windowsのローカル環境ではじめるnode.js + express – kazano.lab</a></li>
<li><a href="http://dim5.net/nodejs/first-step-express.html">Node.jsに入門した | Webエンジニアブログ</a></li>
</ul>
</section>
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-16:/blog/000724/
2014-08-16T09:00:00+00:00
2014-08-16T09:00:00+00:00
セキュリティ・アップデート週間 / mintty + winpty / タグ一覧ページを追加 / note と KDP のいい関係 / 読者は別にどっちだっていい
Spiegel
/profile/
<p> 色々ネタも溜まってるので,今回は「戯れ言」形式で。 今回のメニューはこんな感じ。 </p> <ol> <li><a href="#sec-update">セキュリティ・アップデート週間</a></li> <li><a href="#mintty-winpty">mintty + winpty</a></li> <li><a href="#tagwire">タグ一覧ページを追加</a></li> <li><a href="#kdp1">note と KDP のいい関係</a></li> <li><a href="#kdp2">読者は別にどっちだっていい</a></li> </ol> <section id="sec-update"> <h3>セキュリティ・アップデート週間</h3> <p> はい。 今回もセキュリティ・アップデート満載でした。 主なものは以下のとおり。 </p><ul> <li><a href="https://www.jpcert.or.jp/at/2014/at140031.html">2014年8月 Microsoft セキュリティ情報 (緊急 2件含) に関する注意喚起</a></li> <li><a href="https://www.jpcert.or.jp/at/2014/at140032.html">Adobe Flash Player の脆弱性 (APSB14-18) に関する注意喚起</a></li> <li><a href="https://www.jpcert.or.jp/at/2014/at140033.html">Adobe Reader および Acrobat の脆弱性 (APSB14-19) に関する注意喚起</a></li> <li><a href="http://support.apple.com/kb/HT6367">About the security content of Safari 6.1.6 and Safari 7.0.6</a></li> </ul><p> 特に Adobe Reader に関しては </p><figure> <blockquote> 「同社のセキュリティ情報によると、Reader/Acrobatで今回修正した脆弱性は、Windows版のみが影響を受ける。悪用された場合、セキュリティ機能のサンドボックスを迂回される恐れがあるという。Windows版のReaderを標的とする「限定的な」攻撃も発生しているとされ、Adobeでは直ちに更新を適用するよう呼び掛けている」 </blockquote> <figcaption><q><a href="http://www.itmedia.co.jp/enterprise/articles/1408/13/news042.html">Adobe ReaderとFlashの脆弱性が修正される、Windows版を狙う攻撃も - ITmedia エンタープライズ</a></q>より</figcaption> </figure><p> とのことなので,該当者は早急にアップデートすること。 なお Adobe Reader は環境設定で自動アップデートにすることもできるので,設定を確認することをお薦めする。 </p><figure about="https://www.flickr.com/photos/spiegel/14742017797/" typeof="dc:Image"> <iframe src="https://www.flickr.com/photos/spiegel/14742017797/player/" width="640" height="453" allowfullscreen=""></iframe> <figcaption>via <q lang="en"><a href="https://www.flickr.com/photos/spiegel/14742017797/">Adobe Reader Preference<sup><i class="fa fa-flickr"></i></sup></a></q> by <a href="http://flickr.com/photos/spiegel/" rel="dc:creator">Spiegel</a> <a href="https://creativecommons.org/licenses/by/2.0/" rel="cc:license"><img src="https://baldanders.info/images/cc/icons/by.png" alt="Attribution" height="12"/></a></figcaption> </figure><p> まぁ <a href="http://pdfreaders.org/">Adobe Reader は使わない</a>のが一番いいんだけどねぇ。 </p><p> あと注意喚起がいくつか。 </p><ul> <li><a href="http://www.ipa.go.jp/security/topics/alert260806.html">夏休みにおける情報セキュリティに関する注意喚起:IPA 独立行政法人 情報処理推進機構</a></li> <li><a href="https://www.ipa.go.jp/about/press/20140813.html">プレス発表 注意喚起「ウェブサイトの改ざん回避のために早急な対策を」:IPA 独立行政法人 情報処理推進機構</a></li> </ul><p> まぁ基本的にはいつものやつなんだけど,<a href="http://www.ipa.go.jp/security/topics/alert260806.html">夏休みの注意喚起</a>については,家庭内のセキュリティについて言及しているのが面白い。 まぁお盆も終わったことだし,今のうちに家庭内の状況を点検しておくのもいいと思う。 </p><p> そうそう。 <a href="http://www.gpg4win.org/">Gpg4win</a> の 2.2.2-beta が出ている。 </p><ul> <li><a href="http://lists.wald.intevation.org/pipermail/gpg4win-announce/2014-August/000060.html">[Gpg4win-announce] Gpg4win 2.2.2-beta released</a></li> </ul><p> <a href="https://baldanders.info/blog/000708/">この前の問題</a>の修正を含む GnuPG 2.0.26 が同梱されているのでアップデートをお薦めする。 </p> </section> <section id="mintty-winpty"> <h3>mintty + winpty</h3> <p> <a href="https://baldanders.info/blog/000705/">この前の MinGW+MSYS</a> の続き。 </p><p> MSYS に同梱されている msys.bat は <code>-mintty</code> オプションを付けることで,コマンドプロンプトではなく, mintty を起動する。 mintty はシンプルでいいのだが, Windows アプリケーションとの間でうまくパイプがつながらないため,対話型のコマンドが動かないという問題がある。 </p><ul> <li><a href="http://dogwood.skr.jp/blog/2013/11/406/">MinGW の mintty で対話モード、ついでに vim 設定 | ユニマージュ</a></li> </ul><p> で,これを解消するためには winpty を wrapper としてかませればいいらしい。 </p><ul> <li><a href="https://github.com/rprichard/winpty">rprichard/winpty<sup><i class="fa fa-github"></i></sup></a></li> </ul><p> Download Package に入ってる実行モジュール(と DLL)を MSYS の bin ディレクトリに放り込んで </p> <pre class="brush:shell">> mintty /bin/console.exe /bin/bash</pre>
<p>
とすればよい(msys.bat に同様の記述があるので,その部分を書き換えれば OK)。
当然ながら,この方法で直接 bash を起動すると <code>/etc/profile</code> や <code>~/.profile</code> を読まずに <code>~/.bashrc</code> (MSYS インストール直後は .bashrc はほとんど空)を最初に読むので注意が必要である。
</p>
</section>
<section id="tagwire">
<h3>タグ一覧ページを追加</h3>
<p>
このブログではタグの制御に Tagwire Plugin を使っている。
</p><ul>
<li><a href="https://code.google.com/p/ogawa/wiki/Tagwire_Plugin">Tagwire_Plugin - ogawa - エントリーのキーワードをイワユル「タグ」として利用するための機能を提供するプラグイン。</a></li>
</ul><p>
Movable Type には随分昔のバージョンから「エントリータグ」の仕組みがあったのだが,当時はあまりに遅すぎて使い物にならなかったので Tagwire の方を使わせてもらっている。
で,最新バージョンを確認するために久しぶりにサポートページを覗いてみたのだが,なんか色々おもしろい機能があるようだ。
当時は気づかなかったよ。
で,早速タグ一覧ページを作ってみた。
</p><ul>
<li><a href="https://baldanders.info/tags/">Tags — Baldanders.info</a></li>
</ul><p>
作り方は簡単。
MTTags および MTEntriesWithTags のコンテナタグを使う。
こんな感じ。
</p>
<pre class="brush:html"><MTTags sort_by="count" sort_order="descend" case_sensitive="0">
<section id='<$MTTag$>'>
<h3><$MTTag$> <a href='http://delicious.com/spiegel/<$MTTag encode_url="1"$>' rel='dc:keywords'><i class='fa fa-delicious'></i></a></h3>
<p>Recently Entries</p>
<$MTTag setvar="mt_tag"$>
<ul style='list-style:none;'>
<MTEntriesWithTags tags="$mt_tag" case_sensitive="0" lastn="10">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntriesWithTags>
</ul>
</section>
</MTTags></pre>
<p>
これで,使われているタグを使用頻度の高い順から取り出して,各タグごとに関連するブログ記事を最新から10個列挙していくことができる。
</p><p>
これの何が面白いかというと,このページ自体が「タグ」というリソースを示す URI として使えるのだ。
たとえば <q lang="en">security</q> というタグを RDFa で表現する場合に
</p>
<pre class="brush:html"><a href='/tags/#security' rel='dc:keywords'>security</a></pre>
<p>
あるいは
</p>
<pre class="brush:html"><span resource='/tags/#security' property='dc:keywords'>security</span></pre>
<p>
といった感じで述語と目的語を指示できる(主語は親要素のリソース)。
ちなみに RDF/RDFa には <code>tag</code> という語彙は存在しないようなので,苦し紛れに <code>dc:keywords</code> としてみたのだが, <a href="http://www.w3.org/2012/pyRdfa/Validator.html">Validator</a> には怒られなかった。
う~む。
</p>
</section>
<section id="kdp1">
<h3>note と KDP のいい関係</h3>
<p>
<a href="https://note.mu/">note</a> で follow しているブロック作家 <a href="https://note.mu/nano_kanta">nano kanta</a> さんの Kindle 本が出た。
</p>
<div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00LHES3HU/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/51h1qEXOVbL._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00LHES3HU/baldandersinf-22/">ブロック積んでる</a></dt><dd>nano_kanta </dd><dd> 2014-07-02</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/B00K6FTQTU/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00K6FTQTU.09._SCTHUMBZZZ_.jpg" alt="魔王のホライゾンシネマ 1: 素晴らしい世界"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00MBOEPF4/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00MBOEPF4.09._SCTHUMBZZZ_.jpg" alt="面白いほどよくわかる!Kindle direct publishing"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00J0VPNAC/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00J0VPNAC.09._SCTHUMBZZZ_.jpg" alt="魔法使いのお時間よ (愉快な魔法)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00KYB3XLS/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00KYB3XLS.09._SCTHUMBZZZ_.jpg" alt="東京から電車で行ける外国"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00J9EN42O/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00J9EN42O.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/16">2014/08/16</abbr></p></div>
<div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00MHXKLRK/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/41ELcRgkdZL._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00MHXKLRK/baldandersinf-22/">ブロック積んでる2</a></dt><dd>nano_kanta </dd><dd> 2014-08-06</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/B00LHES3HU/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00LHES3HU.09._SCTHUMBZZZ_.jpg" alt="ブロック積んでる"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00I7JHVYY/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00I7JHVYY.09._SCTHUMBZZZ_.jpg" alt="超可動ガール1/6 : 1 (アクションコミックス)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00JMAIMOU/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00JMAIMOU.09._SCTHUMBZZZ_.jpg" alt="目玉焼きの黄身 いつつぶす? 2 (ビームコミックス)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00E55432M/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00E55432M.09._SCTHUMBZZZ_.jpg" alt="マンガで分かる心療内科(1) (ヤングキングコミックス)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00KYB3XLS/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00KYB3XLS.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/16">2014/08/16</abbr></p></div>
<p>
実はこれに気づいたのが 2 が出た時で,慌てて 1 の方も買ったんだよね。
最近あんまり note で遊んでないのよ。
note 側が Web Money 系のカードを認めてくれれば,もっと遊べるんだけどねぇ(<a href="https://note.mu/faq#3-7">V プリカは OK</a> らしい。 Master Card はお嫌いですか?)。
</p><p>
以前私はnote を<a href="https://note.mu/spiegel/n/n9a0e2ed0ca02">「どんつき」のメディア</a>と書いたが, Kindle は「どんつき」からの出口になりうると思う。
いや,面白い。
</p>
</section>
<section id="kdp2">
<h3>読者は別にどっちだっていい</h3>
<p>
なぜ Kindle (厳密には KDP)なのか。
それを考えるには大原ケイさんの以下の記事が参考になる。
</p><ul>
<li><a href="https://baldanders.info/tags/">アマゾンが作り上げつつある出版エコシステムとは—Amazon’s guide to the publishing galaxy | Books and the City</a></li>
</ul><p>
では具体的に見ていこう。
</p><figure>
<blockquote>
「出版社とアマゾンの大きな違いは、やはり、アマゾンがユーザー(読者)至上主義で、顧客に少しでも安く商品を届けることを第一のミッションとしてすべての決定を下せばよいのに対し、出版社は著者と読者という2つのグループ双方によかれと思うビジネスを構築しなければならないという点だろう」
</blockquote>
<figcaption><q><a href="http://oharakay.com/archives/3522">アマゾンが作り上げつつある出版エコシステムとは—Amazon’s guide to the publishing galaxy | Books and the City</a></q>より</figcaption>
</figure><p>
これは大原ケイさんの立場がよく表れていて面白いと思う。
でも,私は「読者」なので,そうは思わない。
</p><p>
喩えは悪いけど,出版社は「上座部仏教(最近は小乗仏教って言わないのね。まぁ差別用語だしなw)」で KDP は「大乗仏教」って感じだろうか。
いまどきの言い方をすれば出版社は「排除型」で KDP は「過剰包摂(bulimia)型」か。
</p><p>
「排除型」はまず舞台に立つまでが果てしなく「高い」。
出版社と契約するにしろパトロンを得るにしろ,そこに辿り着くまでにほとんどのアーティストが淘汰される。
で,出版社やパトロンは,それが「読者」のためになると思っている,本気で。
でも私たちは知っているのだ。
一方が選ばれもう一方が選ばれないことに合理的な理由などない,と。
これが音楽にしろ書籍にしろ「出版社」が機能しない(しなくなりつつある)本当の理由。
</p><p>
一方の KDP を含む「自己出版」はすべてを飲み込む。
それこそ「しっぽのさきっちょ」まで。
そして「嘔吐」するのだ。
</p><figure>
<blockquote>
「宝くじほどのヒットの可能性しかないとわかっていても、出版社に断られた時の「ゼロ」よりはチャンスがあるはずだと大勢の著者が集まってくる。アマゾンは、その本が売れようが売れまいが、アップロードするための料金を取る。著者の印税率が既存出版社より高くても、売れたら売れたで、アマゾンも売上げの恩恵にあずかれる。Eブックがダウンロードされれば、一方的に決めた料金で通信費をとることができる。著者には「安くした方がもっと売れるよ」と最初から言っておけばいいし、集まってきたタイトルの中からさらに割増料金で宣伝すれば効果が上がることも織り込み済みだ。
<br/>これがアマゾンが構築する出版エコシステムの「著者」の扱い方」
</blockquote>
<figcaption><q><a href="http://oharakay.com/archives/3522">アマゾンが作り上げつつある出版エコシステムとは—Amazon’s guide to the publishing galaxy | Books and the City</a></q>より</figcaption>
</figure><p>
これはどちらが優れているか,という問題ではない。
同じことなのだ,どちらも,「読者」から見れば。
ただ,それぞれの舞台で生き残る Player が異なるだけのこと。
この「異なる」という点だけが重要なのである。
</p><p>
だからアーティストは自身の身の丈に合う戦略をとればいい。
出版社も KDP も「手段」にすぎないのだ。
出版社に相手にされないならライブや自己出版という手もある。
パトロンを得られないのなら crowd funding という手もある。
(もちろん自分で全部やるのなら,他人のせいにすることなく,自身を promote できなければならないが。まぁでも,それはどんな職種でも同じこと)
</p><p>
中塚武さんの <q lang="en">Your Voice</q> に<q>世界中を飲み込むうねりのような流れの速さに身を任せつつ</q>という歌詞があるが,アーティストもそれに応える私たちも,ただ流されるだけの存在ではない。
</p><p>
今の時代,私たちはコンテンツ(だけ)に対価を払っているわけではない。
そもそも「コピー(=出版)できるもの」の価値が果てしなく下がっているのに,そこに敢えてお金を出すのは何故なのか,ということだ。
それがわからないなら書籍出版も音楽出版の二の舞いになる。
</p><p>
だからといって苦し紛れに著作権強化とかやめてね。
情緒的な延命措置は,結局は周囲に迷惑をまき散らす。
</p>
</section>
<div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B009GYTNT0/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/41RTBwiiIuL._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B009GYTNT0/baldandersinf-22/">ルポ 電子書籍大国アメリカ (アスキー新書)</a></dt><dd>大原 ケイ </dd><dd>KADOKAWA / アスキー・メディアワークス 2010-09-09</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/B00KAOQXTS/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00KAOQXTS.09._SCTHUMBZZZ_.jpg" alt="アメリカの電子書籍“ブーム”は今 (カドカワ・ミニッツブック)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00IJ5GMAU/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00IJ5GMAU.09._SCTHUMBZZZ_.jpg" alt="電子書籍の最新事情が1時間でわかる電子書籍 (All About Books)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00IWGKG62/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00IWGKG62.09._SCTHUMBZZZ_.jpg" alt="電子書籍の時代は本当に来るのか (ちくま文庫)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00L32KB8U/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00L32KB8U.09._SCTHUMBZZZ_.jpg" alt="アップルのデザイン戦略"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00L0WJTFE/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00L0WJTFE.09._SCTHUMBZZZ_.jpg" alt="本は死なない Amazonキンドル開発者が語る「読書の未来」"/></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/16">2014/08/16</abbr></p></div>
SyntaxHighlighter を導入してみる
tag:Baldanders.info,2014-07-08:/blog/000717/
2014-07-08T09:00:00+00:00
2014-07-08T09:00:00+00:00
今後,ブログでコードを書く機会が増えるかもしれないんで,噂の SyntaxHighlighter を導入してみることにした。
Spiegel
/profile/
<p>今後,ブログでコードを書く機会が増えるかもしれないんで,噂の SyntaxHighlighter を導入してみることにした。 </p> <ul> <li><a href="http://alexgorbatchev.com/SyntaxHighlighter/">SyntaxHighlighter</a> </li> <li><a href="https://github.com/alexgorbatchev/syntaxhighlighter">alexgorbatchev/syntaxhighlighter</a> </li> <li><a href="http://honttoni.blog74.fc2.com/blog-entry-172.html">ほんっとにはじめてのHTML5:(ちょっとメモ)SyntaxHighlighter 3.0.83 の使い方</a> </li> </ul> <p>GitHub に repository あるじゃん,と思ったが,コンパイルするのに node.js がいるようだ。 これは個人的にまだ敷居が高いので,また今度。 <a href="http://honttoni.blog74.fc2.com/blog-entry-172.html">ほんっとにはじめてのHTML5</a> の記事には本当にお世話になった。 これがなかったら途方に暮れてたよ。 感謝の涙で前が見えません。 </p> <p>試行錯誤の様子が<a href="https://baldanders.info/sh/">ここ</a>に残ってるので,興味のある方は参考にして下さい。 うまくいけばこんな感じになるはず。 </p> <pre title="hello.c" class="brush:cpp">/*
* みんな大好き hello.c
*/
#include <stdio.h>
int main() {
printf("Hello World!\n");
}</pre>
<p>いちいち手でコードを書くのは面倒なので,ファイルを読み込んで pre 要素に流し込む簡単なスクリプトを書いてみた。 </p>
<div id="importtext"></div>
<script type="text/javascript" src="https://baldanders.info/sh/scripts/shBrushJScript.js"></script><script>
var loader = new JLIB.ImportText('/js/jlib-importtext.js', 'importtext');
loader.classAttr = 'brush:javascript auto-links:false';
loader.title = 'jlib-importtext.js';
loader.load();
</script>
<p>はぁ,ようやく準備が整ったよ。 </p>
<div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711QS/baldandersinf-22/"><img class="photo" alt="photo" src="https://images-fe.ssl-images-amazon.com/images/I/51918WvpWNL._SL160_.jpg"/></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 title="4" class="rating"><img alt="" src="https://images-fe.ssl-images-amazon.com/images/G/01/detail/stars-4-0.gif"/></abbr> </dd></dl>
<p class="similar"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CZ711R2/baldandersinf-22/" target="_top"><img alt="CSS3 スタンダード・デザインガイド【改訂第2版】 [リフロー版]" src="https://images-fe.ssl-images-amazon.com/images/P/B00CZ711R2.09._SCTHUMBZZZ_.jpg"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00CALAWC8/baldandersinf-22/" target="_top"><img alt="よくわかるJavaScriptの教科書 (教科書シリーズ)" src="https://images-fe.ssl-images-amazon.com/images/P/B00CALAWC8.09._SCTHUMBZZZ_.jpg"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00IWHVLUG/baldandersinf-22/" target="_top"><img alt="これからの「標準」を身につける HTML+CSSデザインレシピ[固定レイアウト版]" src="https://images-fe.ssl-images-amazon.com/images/P/B00IWHVLUG.09._SCTHUMBZZZ_.jpg"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00BPLSH9E/baldandersinf-22/" target="_top"><img alt="jQueryデザインブック 仕事で絶対に使うプロのテクニック" src="https://images-fe.ssl-images-amazon.com/images/P/B00BPLSH9E.09._SCTHUMBZZZ_.jpg"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00C2ICGPU/baldandersinf-22/" target="_top"><img alt="HTML5+CSS3で作る魅せるiPhoneサイト iPhone / iPad / iPod touch対応" src="https://images-fe.ssl-images-amazon.com/images/P/B00C2ICGPU.09._SCTHUMBZZZ_.jpg"/></a> </p>
<p class="gtools">by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a> , <abbr title="2014/07/08" class="dtreviewed">2014/07/08</abbr></p>
</div>
今更だけど OSqlEdit 買いました
tag:Baldanders.info,2014-06-30:/blog/000712/
2014-06-30T09:00:00+00:00
2014-06-30T09:00:00+00:00
いや,ホンマに今更なんだけど。今の仕事は久しぶりの Oracle で OSqlEdit 上で思い出しながら SQL 文を組んでたりするので,いっそのこと私専用に買っちゃえ! ということで買うことにした。
Spiegel
/profile/
<p> いや,ホンマに今更なんだけど。 </p><ul> <li><a href="http://www.hi-ho.ne.jp/a_ogawa/osqledit/">OSqlEdit Oracle SQLエディタ (開発・運用支援ツール)</a></li> <li><a href="http://www.hi-ho.ne.jp/a_ogawa/osqlgrid/">OSqlGrid: Oracle データベース開発・運用支援ツール (データエディタ)</a></li> </ul><p> 今までどうしてたかというと,客先に借りて使ってたのよ(客先はちゃんとお金払ってる)。 でも昨今は Oracle の仕事もめっきり減ったしね。 ちゃんとした仕事としては<a href="https://baldanders.info/blog/000238/">2006年のとき</a>以来だから,うーわ,8年前か。 そりゃあ忘れるはずだわ。 </p><p> で,今の仕事は久しぶりの Oracle で OSqlEdit 上で思い出しながら SQL 文を組んでたりするので,いっそのこと私専用に買っちゃえ! ということで買うことにした。 テストとかはこれなしじゃできないしね。 </p> <div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/4797377070/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/41mm-1dfi9L._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/4797377070/baldandersinf-22/">プロとしてのOracle PL/SQL入門 【第3版】(Oracle 12c、11g、10g対応) (Oracle現場主義)</a></dt><dd>アシスト教育部 </dd><dd>SBクリエイティブ 2014-05-26</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/4797349808/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4797349808.09._SCTHUMBZZZ_.jpg" alt="プロとしてのOracleアーキテクチャ入門 Oracle現場主義"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4774164283/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4774164283.09._SCTHUMBZZZ_.jpg" alt="チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4798040940/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4798040940.09._SCTHUMBZZZ_.jpg" alt="図解入門よくわかる最新Oracleデータベースの基本と仕組み (How‐nual Visual Guide Book)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4798115169/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4798115169.09._SCTHUMBZZZ_.jpg" alt="達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4774163775/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/4774163775.09._SCTHUMBZZZ_.jpg" alt="【改訂新版】Linuxエンジニア養成読本 [クラウド時代も、システムの基礎と基盤はLinux! ] (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/06/30">2014/06/30</abbr></p></div>