[5] SPDX は Linux ソフトウェアパッケージを RDFデータモデルを使って記述する規格ですが、 ライセンス記述についても規定があります。
[11] SPDX License List は SPDX のライセンス情報データベースです。 >>9
[12] 年に数回更新されています。基本的にはオープンソースまたはそれに類するライセンスが対象ですが、 そうでないものも一部含まれるようです。 >>9, >>7, >>14, >>15
[16] 単体のライセンスの他に、ライセンスに追加される例外条項もいくつか登録されています。 >>14, >>22
[13] 登録されているライセンスはWebサイトで一覧表示されている >>9 ほか、 元データは GitHub で管理されており >>7、 扱いやすい JSON 形式でも提供されています >>10。
[17] データファイル自体のライセンスは困ったことにどこにも明記されていません。 ただしWebページには運営元の Linux Foundation の利用規約ページへのリンクがあり、そのリンク先記事によると Creative Commons Attribution 3.0 License で利用できます >>9, >>19。
[21] 一覧の各ライセンス、例外にはASCII文字で構成される短い識別子が割り当てられています。 (>>6)
[18]
一覧には OSI
の承認 (
[20]
一覧には自由ソフトウェア財団による自由なライセンスとの判断の有無
(
[57] SPDX という規格の出自の関係でオープンソース系のライセンスは充実しています。
[58] しかしオープンソースでないものは一部例外を除いて登録されていません。
[59] また、プログラム以外のライセンス (オープンデータ関係など) は不十分な上に、汎用性のない個別の規約は基本的に対象外となっているようです。 (政府機関のデータ公開などでは一般化されていない当該機関専用の許諾になっていることが多い。)
[60]
CC-BY-SA-2.1-JP
はあるのに、
CC BY 2.1 JP
は登録されていません。
[6] SPDX は各ライセンスおよび例外に識別子を与えています。 SPDX license identifier, SPDX ID などと呼ばれて SPDX 以外でも使われています。
[25]
SPDX License List では short identifier (短い識別子) と呼ばれています。
短い識別子は、
ASCII英数字,
.
,
-
で構成されます。
>>24
[52] SPDXライセンス式で使われます。
[50] Open Source Initiative のライセンスの一覧で使われています。
[51]
Open Definition のライセンスの一覧で使われています。
Open Definition はそれ以外の独自の ID 体系も使っています。
[54]
GitHub その他のライセンス記述の検知で使われています。
GitHub は SPDX ID の他にライセンス族 (family) の識別子もいくつか使っています。
[37] SPDX license expression (SPDX license expression) はライセンスを表す式言語です。
[38] ライセンスや例外は、 SPDX License List の短い識別子で表せます。 >>36, >>29
[39]
また、未登録の利用者定義のライセンスや例外を DocumentRef-
から始まる名前で記述する方法もあります。 >>36
[41]
ライセンスの末尾に +
をつけることで、その版以上を表せます。
>>36, >>29
[42] ただし GNU 系ライセンスは「以上」入りのライセンスの定義が SPDX License List に登録されているので、そちらを使うことになっています。 >>29, >>43
[46]
AND
, OR
の演算子が用意されています。
>>36, >>29
[47]
WITH
によってライセンスに例外を付加できます。
>>36, >>29
[48]
(
, )
で括ってまとめることができます。
>>36, >>29
[44]
AND
等の演算子は、大文字版と小文字版が用意されていますが、
大文字・小文字不区別とされます。
>>36
つまりどちらでもいいものの、混合は駄目ということです。
[45] ライセンスや例外の名前は、大文字・小文字不区別であるものの、 SPDX License List 掲載の名前通りが望ましいとされます。 >>36
[49] dual license のような現実に必要とされるライセンス付与形態を正確に記述できる反面、 ライセンス情報を読取る処理が複雑になってしまうのは大きな欠点です。
[53]
SPDX-License-Identifier:
で使われます。
SPDX-License-Identifier:
[30] SPDX short form identifier と称してソースコード等にコメントとしてライセンス情報を記述することを SPDX では推奨しています。 >>29
[28]
具体的には
SPDX-License-Identifier:
の後に
SPDXライセンス識別子またはSPDXライセンス式を書きます。
>>29, >>35
[31] プログラミング言語のコメントとしての記号を前後にいれることができます。
[33] この記述はライセンスの種類を記述するだけです。従来の著作権表記等はそのまま書く必要があるとされます。 >>29
[34] この表記法は比較的新しい慣習で、オープンソースコミュニティーの一部では受け入れられていますが、 一方でこのような表記の必要を感じないとして拒む人々もいます。
[26] SPDX License List には各ライセンスの適用を記述する著作権表記等の文章の雛形が含まれています >>27。 例えば条項の文言のうち権利者名がここに入る、というような形で記載されています。 SPDX 仕様書では、この雛形を使用して実際の著作権表記等の文章との一致を判定する方法が定められています >>23。 例えばこのような表記揺れは無視する、などの規則が列挙されています。