Baldanders.info

CC-license のメタデータ入門

CC+ とか CC0 とか, 世の中面白い方向に向かっているのに日本ではさっぱり盛り上がりそうもない (CC0 については先日, 議論のまとめが公開されている)。 にもかかわらず, 私の英語不得手具合と本業の負荷具合(と PSU のハマり具合)を鑑みると, これらについて言及するのは当面無理そうなので(将来的にできるとも限らない。 ゴメンペコン), 今回は CC-license のメタデータを紹介することでお茶を濁しておく。

とはいえ CC-license のメタデータについては, 神崎正英さんの 「クリエイティブ・コモンズのメタデータ」 を参照すれば全て載っている。 またメタデータのベースになっている RDF についても神崎正英さんによる優れた本がある。

なので, これから書くことはかなり蛇足的な内容になるのであしからず。

まず RDF について簡単に解説しよう。 CC-license のメタデータは RDF をベースに設計されている。 RDF はセマンティック Web の中核技術のひとつである。 RDF とは何か。 ぶっちゃけて言うと, 主語(Subject)・述語(Predicate)・目的語(Object)のトリプルから成る文の連鎖が RDF である。 簡単でしょ。 主語には必ずリソース(= URI)が入る。 目的語はリテラルな内容で構わないが, リソースを当てることもできる。 目的語にリソースを当てることで複数の文がリソースを中心に意味的にリンクするのである。 文の意味や定義を集めたものを語彙(Vocabulary)と言う。 語彙は誰でも作ることができる。 RDF の表現には XML を用いるのが普通だが, トリプルを表現できるのであれば XML にこだわる必要はない。

では早速 CC-license の RDF 表現を見てみよう。

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:cc="http://creativecommons.org/ns#">

  <cc:License rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.1/jp/">
    <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction" />
    <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution" />
    <cc:requires rdf:resource="http://creativecommons.org/ns#Notice" />
    <cc:requires rdf:resource="http://creativecommons.org/ns#Attribution" />
    <cc:prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" />
    <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
    <cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike" />
  </cc:License>

</rdf:RDF>

これが by-nc-sa ライセンス の RDF 表現だ。 ひとつづつ見ていこう。

xmlns:cc="http://creativecommons.org/ns#"

この部分が CC の語彙の定義である。 この URI は実在のページで, 実際に行ってみれば分かるが, 人にも読めるかたちで CC の語彙について記述している。 この中の cc の部分が名前空間接頭辞を定義している。 例えば cc:License は実際には http://creativecommons.org/ns#License に展開される。 上の例では他に rdf 語彙も定義している。

なお, 以前は CC 語彙を定義しているのは http://web.resource.org/cc/ だったが(今もあるけど), 新たに http://creativecommons.org/ns が作られた。 これは以前からある語に加えて相当数の語が追加されている。 また, 後述する microformat に配慮する定義になっている。

<cc:License rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.1/jp/">

cc:License はクラスと呼ばれていて, 文の種類を定義したものだ。 cc:License のブロックは License について記述した文というわけだ。 クラスに対して rdf:about 属性が書かれているが, これがトリプルで言う主語にあたる。 (追記 2/26: 書き忘れていたが, クラスに対する rdf:about 属性のリソースを「インスタンス」と言う。 上の例では 「http://creativecommons.org/ns は License のインスタンスである」 といった感じで言う)

<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction" />

cc:permits はプロパティと呼ばれるもので, トリプルで言う述語に相当する。 cc:requirescc:prohibits も述語である。 rdf:resource はリソースを指していて, プロパティとの組み合わせで目的語として機能する。 つまりこの文は(先ほどの主語を補って) 「ライセンス by-nc-sa は複製(Reproduction)を許可(permits)する」 となるわけだ。 (追記 2/26: Reproduction は Permission クラスの定義済みインスタンスである)

ここまで読んで 「これってひょっとして CC-license 以外にも使えるんとちゃうけ?」 と思った貴方は鋭い! そのとおりである。 主語である rdf:about に適当なライセンスへの URI を指示して, それに対して許可・要求・禁止事項を列挙すればいい。 また CC の語彙には Permission, Requirement, Prohibition といったクラスも定義されているので, これらについてもっと柔軟な記述も可能である。 (この実装例が CC-GPL である)

ただし, 現在のところ CC の語彙を詳細に読んでくれるパーサは多分存在しない(RDF 全般を読むパーサはあるけど)。 例えば Firefox には MozCC というアドオンがあるけど, これが何故かコメントアウトした RDF 記述しか見ないという不可思議な仕様になっている。 しかも明らかに rdf:about の URI のみで(つまりプリセットされた知識で)判断している。 全然セマンティックではないのである。

さて, ライセンス自体を RDF で記述する方法は分かったけど, これを実際のコンテンツとリンクさせなければならない。 CC の語彙には Work クラスも用意されていて, 例えば以下のように記述できる。

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:cc="http://creativecommons.org/ns#">

  <cc:Work rdf:about="http://www.baldanders.info/spiegel/log2/000370.shtml">
    <cc:license rdf:resource="http://creativecommons.org/licenses/by/2.1/jp/" />
  </cc:Work>

  <cc:License rdf:about="http://creativecommons.org/licenses/by/2.1/jp/">
    <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction" />
    <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution" />
    <cc:requires rdf:resource="http://creativecommons.org/ns#Notice" />
    <cc:requires rdf:resource="http://creativecommons.org/ns#Attribution" />
    <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
  </cc:License>

</rdf:RDF>

cc:license のプロパティ値(=目的語)と cc:License の主語が同じ URI になっていることに注意。 このようにして Work に関する文と License に関する文を繋げるのである。 しかしコンテンツに対するライセンスを示すためだけに RDF ファイルを用意するのは少々面倒である。 でも, もし RSS フィードの形式が RSS 1.0 なら, 中身は RDF なので, ライセンスに関する記述を埋め込むことができる。 (記述例はこのブログの RSS 等を参考にして欲しい)

最近は, RSS 1.0 形式が嫌われているせいもあるかもしれないが, RDF によるライセンス記述も減ってきている。 その代わりに(というのも変かもしれないが)台頭してきているのが microformat である。 microformat を使ったライセンスの指示は以下のような記述になる。

<a rel="license" href="http://creativecommons.org/licenses/by/2.1/jp/">licensed</a>

このように HTML 記述の中に直接埋め込めるのが microformat の利点である。 CC のライセンス・ツールも, RDF ではなく microformat を使った記述を吐き出すようになった。 更に GRRDL が W3C 勧告になり microformat と RDF の親和性が高まりつつある。 今後, 少なくとも Web 上のコンテンツは microformat を使ったライセンス記述にシフトしていくのだろう。 (以前「microformat が分からない」と書いたが, その後 CC の語彙の定義などはかなり整備されているようだ)

photo
セマンティック・ウェブのためのRDF/OWL入門
神崎 正英
森北出版 2005-01-07
評価

CD‐ROMで始めるセマンティックWeb オントロジ技術入門―ウェブオントロジとOWL (セマンティック技術シリーズ) オントロジー工学 (知の科学) オントロジー構築入門 メタデータ技術とセマンティックウェブ

by G-Tools , 2008/02/20