原文は英語で、これはその翻訳です。

JavaScriptライセンス・ウェブ・ラベル: 背景と理論的根拠

ウェブを閲覧するユーザは今日、典型的には、とてもたくさんのプロプライエタリなソフトウェアをそのコンピュータで、多くの場合はそうとは知らずに実行しています。自由ソフトウェアはデスクトップで一部成功しつつありますが、それは、あるプログラムがそれを使い、研究し、共有し、変更するのに自由であるとき、コピーレフトの守りによって、ユーザは前もって、そのことを知らされることが保証されているからです。ウェブでは、ブラウザは、JavaScriptをダウンロードして実行しますが、ユーザにそのプログラムのライセンスやユーザの自由について、もしくは、いかにほかのプログラムがユーザの自由を否定するかを、なにも知らせないで進みます。

この問題を扱うために、わたしたちはLibreJSプログラムを開発しました。これは、瑣末ではないJavaScriptのコードを認識し、そのライセンスをチェックします。その機能は、人間のような知能がないプログラムが確実に認識できるようにライセンスを指定する方法に依存しています。加えて、すべてのGNUソフトウェアのライセンスは、配布者にソフトウェアと一緒にそのライセンスについて述べることを要求していますから、受け取った人は、かれらの権利について知ることができます。また、ソースコードをどこで見つけられるかについても伝えることが要求されます。

単純な方法はライセンスをJavaScriptのコードの中の様式化したコメントで指定することです。しかし、最小化したライブラリ・ファイルにはこれは不便となるでしょうから、わたしたちはライセンスについて述べるもう一つの方法を開発しました。それが、JavaScriptウェブ・ラベルです。

理論的根拠

自由ソフトウェアライセンスの条件で、ライセンス条項のコピーとソースコードへのアクセスを含めることについては、ソフトウェアがウェブやほかのインターネットのチャネルを通じて配布されるときは、ほとんどいつでも簡単に遵守することができます。しかし、ウェブサイトでJavaScriptを埋め込んで配布するのは、いくつものユニークなファクタによって分かりにくくなります。すなわち、訪問者は通常、そのソフトウェアをわざわざ要求しないで受けとること。ウェブマスタは単一のファイルのJavaScriptコードを提供することだけができること(よって、たとえば、ライセンスで要求される別のリソースを含むアーカイブファイルを送ることはできない)。

組み合わさったこれらの問題は、自由ソフトウェアライセンスが要求する追加のデータを提供する明白な方法をウェブマスタに与えないままにします。もっとも単純な解は、Javascriptをソースコードの形態だけで提供し、ライセンスのコピー全体をそのコメントのなかに置くことでしょう。小さなサイトではこれは容認できるでしょうが、JavaScriptが繰り返す通信の多くを代表し始めると、ウェブマスタはそんなにたくさんのデータを送信することについて、当然のことながら、良い顔をしなくなってくるでしょう。わたしたちの方法は、ウェブマスタにはライセンスのリソースを提供するはっきりとした追加の場所を与え、訪問者にはそれを見るはっきりとした場所を与えます。これらの両方の点を扱うのです。第一に、リンクを通じて“JavaScriptライセンス情報”を提供することで、ソフトウェアの配布を可視化します。リンクされたページは適切に目立ち、しかし、訪問者にとって紛らわしくない形で、それらのリソースを公開する場所をウェブマスタに与えます。

機械可読性

人々が不自由なJavaScriptをブラウザで拒否できることを容易にするために、わたしたちの方法は十分具体的で、プラグインやほかのソフトウェアが、サイトのJavaScriptのライセンス情報を見つけ、すべてのJavaScriptが知られた自由ライセンスの元にあることを確認し、ソースコードをダウンロードし、そのサイトから送られている最適化されたJavaScriptがソースコードに対応することを確認することができます。このようにして、訪問者は速く便利にJavaScriptが自由かどうかをチェックでき、それに応じて実行するかどうかを決定できます。LibreJSはMozillaベースのブラウザのプラグインで、不自由なJavaScriptの実行を避けることをユーザに手助けします。(将来、)LibreJSはこのチェックを実装し、その機能を強化するでしょう。

RDFのような別のフォーマットをわたしたちのシステムの基礎に使うことを検討しました。簡単にパーズできるフォーマットでより詳細な情報を与えることによって、この工程をプログラマにとって単純化するためにです。しかし、わたしたちの目標は、この情報を人間の読者にアクセスできるようにすることが第一で、機会は第二でした。よく構造化されたHTMLの使用は、この優先順位で、最適なものを提供します。

次の段階

自由ソフトウェアJavaScriptをホストするウェブマスタはライセンスを遵守するために、この具体的方法に従わなければならない、とは、わたしたちは言いません。それぞれの自由ソフトウェアライセンスは明白にその条件を設計していて、そういった条件に適合する異なる方法を使いたいウェブマスタは誰でも、そうしてなんの問題もありません。しかし、この方法は、今日までの努力されてきた問題について、Javascriptを提供するのにウェブマスタが最適と感じる方法に関して譲歩することなく。訪問者に全体のライセンスの情報を簡単にアクセスできるようにするという利点があります。

ぜひ、この同じ目標を達成できるほかの方法について、フィードバックと提案を受けたいと思います。ウェブマスタ、サイトの訪問者、または、ライセンスチェックソフトウェアについて働く開発者にとってこのシステムが有用となるように。十分な提案を受け取って、この方法よりも著しく改善された新しい方法を公開できるならば、そうしたいと思います。(この方法がこんなにも冗長な識別子をライセンス情報テーブルに使うのはこのためです: ソフトウェアがこの方法をほかと区別するように、わたしたちは将来手を加えるかもしれません。) この問題があなたの関心を呼ぶものであれば、LibreJSのメーリングリストに参加して、あなたのコメントと提案を書いてください。あなたのご意見をお待ちしてます。