(58)【調査した分野】(Int.Cl.,DB名)
前記(b)段階で、前記第1ライセンスと前記第2ライセンスとが衝突すると判断される場合、前記第2ライセンスには含まれず、前記第1ライセンスのみに含まれる特徴点が存在し、前記第2ライセンスが選択条項を有し、前記第1ライセンスのみに含まれる特徴点が、いずれも前記第2ライセンスの選択条項に含まれれば、
前記第2ライセンスの代わりに、前記第2ライセンスに前記第1ライセンスのみに含まれる特徴点に該当する選択条項を追加したライセンスを対象にして、前記(a)及び(b)段階を行う段階をさらに含むことを特徴とする請求項2に記載の衝突検査方法。
前記(b)段階で、前記第1ライセンスと前記第2ライセンスとが衝突すると判断される場合、前記第1ライセンスが、前記第1ライセンスの以外の他のライセンスへの変換を許容すれば、
前記第1ライセンスの代わりに、前記他のライセンスを対象にして、前記(a)及び(b)段階を行う段階をさらに含むことを特徴とする請求項2に記載の衝突検査方法。
【発明を実施するための形態】
【0016】
以下、図面を参照して、本発明の望ましい実施形態を詳しく説明する。以下、説明及び添付図面で実質的に同じ構成要素は、それぞれ同じ符号で示すことにより、重複説明を省略する。また、本発明を説明するに当って、関連した公知の機能または構成についての具体的な説明が、本発明の要旨を不明にする恐れがあると判断される場合、それについての詳細な説明は省略する。
【0017】
本明細書では、次のように用語を定義する。但し、このような定義は、個別ライセンスではこれとは異なって再定義されうる。
【0018】
ライセンス:ライセンスは、それが適用された著作物の使用者が守らなければならない事項が明示された契約書である。
【0019】
配布者(ライセンサー;Licensor、ディストリビュータ;Distributor):原著作物の配布者である。
【0020】
使用者(ライセンシー;Licensee、レシピエント;Recipient):配布された任意の著作物を使用する者である。
【0021】
使用ライセンス:(原著作物の)配布者が、使用者が受けた著作物に適用したライセンスである。
【0022】
再配布:再配布とは、著作物の使用者が、その著作物を1)そのまま、あるいは2)改変して(modified work)、または3)一部として使用した著作物(派生著作物;derivative works)を配布すること。再配布される著作物を再配布物と言う。
【0023】
配布ライセンス:使用者が再配布物を配布する時、使用者が再配布物に適用したライセンスである。
【0024】
変換(Relicense):適用されている任意のライセンスの代わりに、他の(定められた)ライセンスを新たに適用することである。
【0025】
選択条項(Optional Clause):ライセンスの基本状態では、不活性化されている条項であるが、配布者が明示的に追加する場合、活性化される条項である。
【0026】
本発明の実施形態では、オープンソースライセンスが適用されている任意の著作物の使用者が、原著作物に適用されているライセンスとは異なる他のライセンスで再配布しようとする場合の2つのライセンス間の衝突検査方法に関して説明する。すなわち、説明の便宜上、使用ライセンスと配布ライセンスとの衝突を検査する方法を例として説明する。但し、本発明の実施形態は、任意の2つのライセンス間の衝突を検査する方法に適用可能であり、この場合、‘使用ライセンス’は、‘第1ライセンス’に、配布ライセンスは、‘第2ライセンス’に一般化されうる。
【0027】
ある著作物が任意の使用ライセンスで配布された場合、原著作物の使用者は、その使用ライセンスの内容に従わなければならない。また、任意の使用ライセンス下で配布された著作物を任意の配布ライセンス下で再配布しようとする場合、再配布された著作物の使用者は、原著作物の使用ライセンスの代わりに、使用者が適用した配布ライセンスに従わなければならない。配布される著作物、特に、FOSSソフトウェアに適用するライセンスは、一般的にその著作物の使用を許可する権利、禁止事項及び再配布時に守らなければならない事項などが明示されている。特に、再配布に関して使用ライセンスが所定の制約を加えていれば、使用者は、その制約下で配布ライセンスを選択しなければならない。この制約は、再配布に直接・間接的に関連ある制約全体を意味する。
【0028】
そのために、使用者は、再配布物に任意の配布ライセンスを適用して再配布したい場合、配布ライセンスと使用ライセンスとの内容が相衝しないかを確認しなければならない。
【0029】
本発明の実施形態において、ライセンス互換性の問題は、次のように定義することができる。ライセンス集合は、L
1={l
1、l
2、...}、特徴点の集合は、FP={fp
1、fp
2、...}、特徴点に対する表現値の集合は、ET={NoMention、Positive、Negative}、そして、互換性判定値の集合は、CS={Compatible、Suspicious、Incompatible}になりうる。ここで、特徴点とは、任意のライセンスでソフトウェア間の連結関係、配布義務、改変、特許権、私的利用、ライセンス保持、商標使用権などを表わすそれぞれの規定または条項を意味する。
【0030】
各ライセンスl
iは、あらゆる特徴点FPに関して、その表現値
【数1】
を当該ライセンスの内容から割り当てて定義することができる。特徴点に対する表現値は、ライセンスの内容を手動で、あるいは自動で分析して定義することができる。
【0031】
前記の定義によって、特徴点プロファイル(feature point profile)fpp
xを次のように定義することができる。
【数2】
【0032】
あるライセンスl
iの各特徴点の特徴点プロファイルから、ライセンスl
iに関する特徴点プロファイルの集合であるプロファイルセットを
【数3】
と定義することができる。特に、ライセンス間の再配布時の互換性の問題は、使用ライセンスl
o(オリジナルライセンス;original license)と配布ライセンスl
t(ターゲットライセンス;target license)({l
o、l
t}⊂L)とで構成される。
【0033】
本発明の実施形態では、FOSSライセンス78種に対する総合的な分析を通じて、FOSSライセンスの互換性検証時に必要な代表的な特徴点として、次のように23個の特徴点を選定した。但し、このような特徴点は、例示に過ぎず、特徴点は、いくらでも修正または削除されるか、追加されうるということはいうまでもない。
【0034】
1.(1)追加制約禁止(それ以上の制限なし;No further restriction)
当該ライセンスで明示的に定めた事項の以外に、使用者(受取人)の権利を制限する事項賦課(サブライセンス;sublicense、リライセンス;relicenseなどで)制限
【0035】
2.(2)同一ライセンス保持(コピーレフト;Copyleft)
特定のライセンスで配布されたソースコードを受領して、原本あるいは改変して再配布する時、受領当時にソースコードに適用されたライセンスと同じライセンスで再配布することを義務化
【0036】
3.(3)ライセンス料なし、ロイヤリティーフリー(No license fee、Royalty free)
ソースコードの著作権使用に対する使用料賦課禁止
・配布のために必要な最小限の配布コスト請求は該当しない。
・サービスコスト請求は該当しない。
・特許に対するライセンス料なし、ロイヤリティーフリー(No license fee、Royalty free)と区分する。
【0037】
4.ソースコード(Source Code)関連
(4)コード(Code)公開
・ソースコード公開(原本ソースコードあるいは原本+改変ソースコード)
・ソースコードを受領することができるということを明示する条項が存在(例:機械で読める完全なソースコードを受け取る;to receive the complete machine−readable source code)
(5)コード(Code)提供
・ソースコード提供方法に係わる明示(ウェブに掲載しなさい、あるいはUSBに提供しなさいなど)
・ソースコード提供約定書の提供
・ソースコード提供保証期間の明示
・ソースコード配布に必要なコスト請求不可能の明示(一般的に配布に必要な最小限のコスト請求が可能であるために、請求が不可能な場合、マトリックスに条項表示)
【0038】
5.表示(Notice)保持
(6)著作権表示(Copyright notices)保持
・著作権及び著作権関連告知事項保持
・Copyright(c)yyyy.mm.dd
*****and other contributors、All rights reserved。
(7)著者アトリビューション(Author Attribution)保持:寄与者情報の記載
(8)法的通知(Legal notices):作成者または寄与者に留保されている知識財産権に対する告知事項の作成及び保持
【0039】
6.(9)改変告知
ソースコードを改変した場合、改変に関する事項を明示(例:改変日時、改変ファイル名、改変範囲など)
【0040】
7.特許
(10)特許実施許諾:ソースコードなどに関する特許権使用実施許諾を明示的に規定
(11)特許報復条項:ソースコードなどに関する特許権使用実施許諾を明示的に規定
(12)差別的ライセンス禁止:特許実施許諾付与に差別を設けることを禁止(Aに特許実施許諾付与、BにX)
【0041】
8.商標関連
(13)広告目的の使用禁止
(14)商号、商標、サービスマークの使用禁止
・商号、商標、サービスマークの使用禁止
・寄与者、著作権者の名前の使用禁止
・具体的に‘名前’を明示し、その‘名前’の使用を禁止
【0042】
9.保証関連
(15)保証否認:2つの当事者間の契約を通じて選択的に保証義務を提供することは該当しない。
(16)兔責:2つの当事者間の契約を通じて選択的に責任義務を提供することは該当しない。
【0043】
10.(17)リバースエンジニアリングの許可(Permission of Reverse engineering):コード逆分析許容
【0044】
11.(18)DRM禁止
参照:GPL3.0第3条(技術手段に対する迂回行為禁止)
【0045】
12.(19)インストール情報(Installation Information)提供
提供されたコードのコンパイルとインストールに必要なあらゆる情報を提供する義務。受取者がソースコードの改変に必要なファイルやスクリプトなどの提供義務は該当しない。
【0046】
13.(20)準拠法
・準拠法の明示
・管轄裁判所の明示
・特定法の定義によるライセンス解釈
【0047】
14.ライセンス変換許容(リライセンス;Relicensing)
(21)特定ライセンスへの‘リライセンス(Relicensing)’
・‘特定ライセンス’名を具体的に記載(例:GPL2.0などに変換可能)
・‘特定ライセンス’と並行して使用可能(例:GPL3.0とAGPL3.0)
(22)次期ライセンスへの変換許容
【0048】
15.(23)選択的な条項適用
必要に応じて任意に追加可能なライセンス条項(特徴点)
【0049】
図1は、本発明の一実施形態によるライセンス間の衝突検査方法のフローチャートを示す。
【0050】
110段階で、与えられた使用ライセンスl
oに対して、各特徴点に対する表現値を入力され、与えられた配布ライセンスl
tに対して、各特徴点に対する表現値を入力される。
【0051】
120段階で、配布ライセンスl
tに対して、特徴点及び表現値と定義される特徴点プロファイルの集合であるプロファイルセット
【数4】
を定義する。
【0052】
130段階で、使用ライセンスl
oの各特徴点の表現値に基づいて、各特徴点に対して、任意の配布ライセンスのある特徴点が、ある表現値を有する場合、使用ライセンスの当該特徴点と衝突するかを表わす衝突プロファイルセット(conflict profile set)ps
i及び衝突プロファイルセットのリストcpsl(l
o、fp
x)を定義する。この衝突プロファイルセットのリストは、使用ライセンスが各特徴点に対して如何なる表現値を有するかによって定められる。
【0053】
一般的には、2つのライセンスが互換されるか否かを検討する時、同種の特徴点に対する表現値のみ考慮すれば良い。例えば、コード提供事項と兔責事項は、互いに無関係であり、ライセンス料なし、ロイヤリティーフリー(No license fee、Royalty free)事項とライセンス写本提供事項は、互いに無関係である。このような場合には、使用ライセンスと配布ライセンスとの特徴点プロファイルの同一性のみを検査すれば、互換性を判断することができる。このような場合、各特徴点に対する衝突プロファイルセットは、要素が1つである‘衝突プロファイル’であれば十分である。
【0054】
しかし、追加的制約禁止事項または同一ライセンス適用事項のような特徴点の互換性は、自分自身の表現値だけではなく、他の特徴点の表現値も考慮しなければならない。このような問題によって、各特徴点に対して‘衝突プロファイル’の代わりに、‘衝突プロファイルセット’を定義する。例えば、i番目の特徴点に対する衝突プロファイルセットは、i番目の特徴点に対する特徴点プロファイルのみを含み(衝突プロファイルセットの要素が1つである場合)、i番目の特徴点に対する特徴点プロファイルと共に他のj番目の特徴点に対する特徴点プロファイルを含むこともある(衝突プロファイルセットの要素が2つ以上である場合)。
【0055】
140段階で、衝突プロファイルセットのリストcpsl(l
o、fp
x)に含まれた各衝突プロファイルセットps
iと配布ライセンスのプロファイルセットps(l
t)とを比較して、使用ライセンスと配布ライセンスとの衝突有無を判断する。ここで、ある衝突プロファイルセットps
i⊂cpsl(l
o、fp
x)がps
i⊂ps(l
t)である場合、すなわち、ある衝突プロファイルセットps
iが配布ライセンスのプロファイルセットps(l
t)に属する場合、使用ライセンスと配布ライセンスは、衝突すると判断することができる。
【0056】
前記と同じ方式で、判断留保に関するプロファイルセット、すなわち、各特徴点に対して、任意の配布ライセンスのある特徴点が、ある表現値を有する場合、衝突有無に対する判断を留保するか否かを表わす判断留保プロファイルセット及び判断留保プロファイルセットのリストhpsl(l
o、fp
x)を定義し、ある判断留保プロファイルセットが配布ライセンスのプロファイルセットps(l
t)に属する場合、使用ライセンスと配布ライセンスとが衝突する‘可能性’があると判断することができる。この場合、当該特徴点と関連した事項を使用者に通知して使用者の判断に任せることができる。
【0057】
図2及び
図3は、本発明の他の一実施形態によるライセンス間の衝突検査方法のフローチャートを示す。本実施形態は、ライセンスの選択条項と変換条項とを考慮した再帰的衝突検査方法であって、ルーチン1(
図2)とルーチン2(
図3)とで構成される。
【0058】
選択条項は、ライセンスの基本状態では無効であるが、配布者の判断によって有効化される制約・許可事項である。使用ライセンスにある制約が配布ライセンスに基本的に入っていないとしても、使用者が配布ライセンスにそれに該当する選択条項を入れて配布することにより、使用ライセンスと配布ライセンスは、互換されうる。
【0059】
また、使用ライセンスに変換条項、すなわち、使用ライセンス下に配布された著作物を変換条項が指定した他のライセンスに再配布することができるという条項が入っている場合、指定されたライセンスと配布ライセンスとが互換性があれば、使用ライセンスと配布ライセンスは、間接的に互換されると言える。
【0060】
図2に示すように、100段階で、
図1を参照して、前述した衝突検査方法を通じて使用ライセンスと配布ライセンスとの衝突有無を検査する。
【0061】
210段階で、互換されると判断されれば、250段階に進行して互換判定を行う。
【0062】
210段階で、衝突すると判断されれば、220段階に進行して、配布ライセンスが選択条項を有するか、使用ライセンスが変換条項を有するか、すなわち、他のライセンスへの変換を許容するか否かを判断する。
【0063】
220段階で、配布ライセンスが選択条項を有さず、使用ライセンスが変換条項を有さなければ、260段階に進行して衝突(非互換)判定を行う。
【0064】
220段階で、配布ライセンスが選択条項を有するか、使用ライセンスが変換条項を有するならば、230段階に進行して、
図3に示されたフローチャートによってライセンス衝突有無を再検査する(ルーチン2呼び出し)。
【0065】
240段階で、ルーチン2による再検査の結果、互換されると判断されれば、250段階に進行して互換判定を行う。
【0066】
240段階で、ルーチン2による再検査の結果、衝突すると判断されれば、260段階に進行して衝突(非互換)判定を行う。
【0067】
図3に示すように、310段階で、配布ライセンスには含まれず、使用ライセンスのみに含まれる特徴点が存在するか否かを判断する。このような特徴点は、配布ライセンスの場合、表現値が‘ンーメンション(NoMention)’であり、使用ライセンスの場合、表現値が‘ポジティブ(Positive)’あるいは‘ネガティブ(Negative)’などである特徴点に該当する。
【0068】
配布ライセンスには含まれず、使用ライセンスのみに含まれる特徴点が存在しなければ、350段階に進行し、存在すれば、320段階に進行する。
【0069】
320段階で、使用ライセンスのみに含まれる特徴点がいずれも配布ライセンスの選択条項に含まれるか否かを判断する。使用ライセンスのみに含まれる特徴点が配布ライセンスの選択条項に含まれなければ、350段階に進行し、いずれも含まれれば、330段階に進行する。
【0070】
330段階で、配布ライセンスの代わりに、配布ライセンスに選択条項を追加したライセンスを対象にして、
図2のフローチャートによってライセンス衝突有無を検査する(ルーチン1呼び出し)。
【0071】
340段階で、ルーチン1の遂行結果、互換されると判断されれば、370段階に進行して互換判定を行う。
【0072】
340段階で、ルーチン1の遂行結果、衝突すると判断されれば、350段階に進行する。
【0073】
350段階で、使用ライセンスの代わりに、使用ライセンスが変換を許容した他のライセンスを対象にして、
図2のフローチャートによってライセンス衝突有無を検査する(ルーチン1呼び出し)。
【0074】
360段階で、使用ライセンスが変換を許容した他のライセンスのうち何れか1つでも配布ライセンスと互換されると判断されれば、370段階に進行して互換判定を行う。
【0075】
360段階で、使用ライセンスが変換を許容した他のライセンスのいずれも配布ライセンスと衝突すると判断されれば、380段階に進行して衝突(非互換)判定を行う。
【0076】
前述したように、FOSSライセンス78種から23個の特徴点を選定し、10個のライセンス(GPL2.0、GPL3.0、BSD−3、MIT、Apache2.0、MPL2.0、MS−RL、CDDL1.0、EPL1.0、及びCeCILL2.1)に対して、本発明の実施形態によって衝突検査を行った。
図4は、これによるライセンス互換性マトリックスを示す。
【0077】
図4に示すように、GPL2.0は、それ自体としてはGPL3.0と互換されないが、変換を許容した他のライセンスを通じてGPL3.0と互換される。同様に、CeCILL2.1は、それ自体としてはGPL2.0、GPL3.0と互換されないが、変換を許容した他のライセンスを通じてGPL2.0、GPL3.0と互換される。
【0078】
一方、上述した本発明の実施形態は、コンピュータで実行可能なプログラムで作成可能であり、コンピュータで読み取り可能な記録媒体を用いて、前記プログラムを動作させる汎用デジタルコンピュータで具現可能である。前記コンピュータで読み取り可能な記録媒体は、磁気記録媒体(例えば、ROM、フロッピーディスク、ハードディスクなど)、光学的読み取り媒体(例えば、CD−ROM、DVDなど)のような記録媒体を含む。
【0079】
以上、本発明について、その望ましい実施形態を中心に説明した。当業者ならば、本発明が、本発明の本質的な特性から外れない範囲で変形された形態として具現可能であるということを理解できるであろう。したがって、開示された実施形態は、限定的な観点ではなく、説明的な観点で考慮されなければならない。本発明の範囲は、前述した説明ではなく、特許請求の範囲に示されており、それと同等な範囲内にあるあらゆる差異点は、本発明に含まれたものと解釈しなければならない。