liblicenseでライセンス意識を高めよう
liblicenseはデータ・ファイルに関する「ライセンスを認識する」アプリケーションを作るための、クロスプラットフォームで移植性のあるCライブラリーだ。ファイルにライセンスが付属または組み込まれているかどうかを調べたり、ライセンスをわかりやすく読める形で選択しアプリケーションに添付したりできるようになる。CCのプロジェクトであるliblicenseが創作物に対するCCライセンスを中心とするのは当然だが、この方法はすべてのデータ、おそらくはソースコードに対してさえも有効だろう。
liblicenseの最新版は2007年8月にリリースされた0.4だ。20種あまりの関数から成るアプリケーション・プログラミング・インタフェース(API)をアプリケーションに組み込む形で利用する。これらの関数を介して、バージョン番号や裁判権など、ファイルに付属するライセンスの内容を照会したり、ライセンス情報をファイルに書き込んだりすることができる。ファイルに埋め込まれているライセンスを人間にも機械にも読め検証可能な形で適切に扱えるようになったのは相当な労力のたまものだ。
liblicenseは複数のモジュールから成り、広範なファイル・タイプに対応している。また、各ファイル・タイプの中でもライセンス情報を表現する形式は多様だが、それらにも対応している。たとえば、MP3とOgg Vorbisオーディオファイルの場合はそれぞれのフォーマットが持つ固有のタグ体系に準じてライセンスを記述し、JPEG画像ならXMPを使うことになるだろう。Flashなど標準のメタデータ・フォーマットを持たないファイル・タイプの場合は、RDFを使ってファイルと外部にあるライセンス情報とを関連づける。
ユーティリティー
liblicenseはソースコードのほかに、i386 RPMパッケージと、DebianおよびUbuntu向けにはDEBパッケージでもリリースされている。さらに、licenseという名のコマンドライン・ユーティリティーもある。これはGNOMEのNautilusファイル・マネージャーのエクステンションとして、あるいは、利用者ごとにデフォルト・コンテンツ・ライセンスを選択するツールとして利用することができる。
これをNautilusのエクステンションとして組み込むと、Propertiesダイアログ・ボックスにLicenseタブが追加され、ファイルに付属するライセンスを表示することができるようになる。また、ライセンスを割り付けることもできるが、これはもちろん著作権がある場合だけだ。
コマンドライン・ユーティリティーとして「license foo.jpg
」の形で実行すると、引数に指定したfoo.jpgのライセンスが表示される。引数を付けずにlicense
だけを実行すると、利用者のデフォルト・コンテンツ・ライセンスが設定されていればそれを、設定されていなければその旨表示する。デフォルト・コンテンツ・ライセンスを設定するときは、「default-content-license &
」を実行する。ライセンスを選択するGUIの画面が現れ、CCライセンス属性のチェックリストが表示される。わかりにくいCCライセンスの名前を覚えなくても、このリストを使えば機能からライセンスを選択することができる。
同プロジェクトのページには、そのほかのユーティリティーへのリンクも用意されている。たとえば、MozCCというFirefox用のプラグインがある。しかし、こうした小さなユーティリティーは便利ではあろうが、ライセンス意識を一気に高めることにはつながらないだろう。デスクトップ・システム上のコンテンツには制作時にライセンスを適用すべきだし、それを当然のこととするには実際に使うアプリケーションが対応していなければならない。
CCのwikiにはライセンス情報の表示・書き込みに対応済みのアプリケーションリストが掲載されている。残念ながらこのリストは短いが、その下にあるリストには希望が持てる。かなり多くのアプリケーションがバグ追跡システムを通じて機能強化が求められているのだ。それらの中には、GIMPやOpenOffice.orgなどのコンテンツを制作するアプリケーションや、音楽プレーヤーやWebブラウザーなどの汎用アプリケーションが含まれている。
過去、現在、未来
CCコミュニティーの開発者Jon Phillips氏と、liblicenseのメンテナンスを担当するAsheesh Laroia氏によると、同プロジェクトの目標は何らかのドキュメントを作る際に利用者が行う「仕業点検」の中でライセンスを割り当てるようにすることだという。写真、音楽、文章の共有が今後ますます容易になっていけば、制作時点でライセンスを検討しておくことがますます重要になるだろう。ファイルに付属する形でライセンスを指定すれば、ファイルのコピーごとに改めてライセンスを付与する必要がなくなるからだ。
liblicenseのwikiページDesktop Integrationには、ライブラリー・アプリケーションを既存のアプリケーションに組み込む方法が実例で示されている。Save Fileダイアログ・ボックスにライセンスに関するドロップダウン項目を追加するのが最も簡単で、新しい項目が形式や圧縮などファイルを保存する際に設定する項目の中にさりげなく追加される。
Phillips氏がliblicenseのアイディアを思いついたのは、数年前、Open Clip Art Libraryの仕事をしているときだった。そのとき、自称「メタデータ・オタク」のPhillips氏はコンテンツをライセンスで検索することがキーワードや時刻などで検索するのと同じくらい重要だと気づいたのだ。
CCはFlickrやInternet Archiveなどの一般向けWebサービスについてはライセンス意識の向上に成功しているが、デスクトップ・ソフトウェアという重要な分野への普及はまだだった。CCはInkscapeのベクター・エディターがメタデータの中にライセンス情報を組み込むようにしようと取り組んだ。そのとき、Inkscapeの開発者たちからさらに汎用のソリューションを求められ、そこからliblicenseが生まれたのである。
2007年の今年、liblicenseのリリースがこれまでに4回、Google Summer of CodeプロジェクトではTrackerデスクトップ検索ツールにliblicenseを組み込む指導も行われた。TrackerもNautilusと同様GNOMEのプロジェクトだが、PhillipsとLaroiaの両氏によると、KDEファンがライセンスに対応したデスクトップを手にするのも間近いという。今のところ、KDE 4.1にDolphinファイル・マネージャーの一部として組み込まれる予定だ。
また、CCはOne Laptop Per ChildのXOにライセンス「活動」を含めるよう活発に動いてきた。Journalパッケージに組み込もうというのだ。XOの場合、liblicenseの特性上、とりわけデフォルト・コンテンツ・ライセンスの設定に関する微妙な問題がある。デバイスが配布されるであろう地域の裁判権が異なっており、また利用者が未成年者だからだ。しかし、準備は1.0のリリースに向け予定どおり進んでいる。
liblicense専用のメーリングリストはまだないが、更新の速いCCのwikiページが参考になるだろう。リリースごとの日程や、GNOMEのMiroやEyeなどといったデスクトップ・アプリケーションへの統合予定も掲載されている。
また、デスクトップLinuxなどのアプリケーション開発者たちも、liblicenseに目を向けるべきだ。liblicenseは軽量で移植性に優れている。Laroiaによると、Mac OS XやWindowsでも、コンパイルや実行はLinux同様簡単だという。APIからコマンドライン・ユーティリティーやGUIツールに至るまで、プロジェクトのすべてについて詳細な解説も用意されている。
ライセンスが何であるかやドキュメントや創作物に対してどのように適用されるかについては、今では広く理解されている。しかし、それを具体的なファイルについて生かすことができなければ宝の持ち腐れだ。Laroia氏とPhillips氏はこのように指摘している。