ライセンス知識に基づくライセンス特定ツールの設計
真 鍋 雄

貴†1

Daniel M. German †2

井 上克郎†1

開発者がオープンソースソフトウェアに含まれるソフトウェア部品（部品）を利用する場合，それらのソフトウェアライセンス（ライセンス）を理解し，尊守する必要がある．しかし，開発者がライセンスを正確に読解することは容易ではない．そこで，部品のライセンスが既知のどのライセンスと合致しているか調べること（特定）で，ライセンス理解にかかるコストを削減したい．本稿では，ライセンス特定ツールに求められる要件を整理し，それに基づき，どのようにライセンス特定ツールを設計するかを述べる．

Design of License knowledge-based License Identification Tool
Yuki Manabe ,†1 Daniel M. German †2 and Katuro Inoue†1
Developers which use software components included in open source software must understand and follow each license of them. However, it is diﬃcult for developers to understandthem accurately. To reduce this eﬀort, we aim to retrieve the license matching the licenseof the component from known licenses. In this paper, we describes requirements for license
identiﬁcation tool and designs this tool on the basis of these requirements.

1. は じ め にすることができる．
しかし，ライセンスの特定も容易ではない．ソース

開発コスト削減のため，オープンソースソフトウェ

コード中のライセンスの記述には，綴り間違いや単語

ア (OSS) に含まれる関数やクラスなどのソフトウェの同義語への変更などの表記揺れ，ソースファイルにア部品（部品）が新規開発に利用されることが多い．

より変化する著者名や組織名が含まれるため，簡単なOSS の部品を利用するためには，多くの場合，ソー照合だけで特定することは困難である．そのため，細スファイルのコメントとして記述されている，利用にかい差異を認識して，ライセンスの特定を効率良く行関する許諾と許諾を受けるために負う義務を示したソえるシステムが望まれる．

フトウェアライセンス（ライセンス）を読み，理解し，それを尊守しなければならない．
一般に，ライセンスは自然言語で記述された長文で本稿では，ライセンス特定ツールに求められる要件を述べ，それに基づくライセンス特定ツールの設計について述べる．

あり，また，前提知識が必要だったり，他のファイルへ提案するツールを用いることで，再配布可能なソーの参照を含んだりするため，開発者がライセンスを正スファイルを容易に特定することができるようになり，確に読解することは容易ではない．一方，多くの OSSプログラム解析技術をその適用結果だけでなく，使用部品のライセンスは，定型の文で構成された既知のラしたソースファイルとともに公開することが容易になイセンスが用いられている場合が多い．この場合，ラる．そのため，一般の利用者が評価，検証可能になり，イセンスの文章全体を詳細に読解せずに，既知のどのプログラム解析技術を利用してもらいやすくなるのでライセンスと合致しているかが分かれば（これをライはないかと考えている．

センスの特定と呼ぶ），どのような許諾条件や義務があるか比較的容易に認識でき，その許諾条件や義務をそのまま適用することで，効率的な部品の利用を促進

2. ライセンス特定ツールに求められる要件
1 節で述べたライセンス特定の問題と，OSS におけるライセンスの特徴に基づき，ライセンス特定ライ†1 大阪大学
Osaka University†2 ビクトリア大学
University of Victoria, Canada

センス特定ツールに求められる要件を以下のように定めた．
要件１：現状の調査に基づいていて，多くのライセンスを特定できる

実際に，どのようにライセンスの記述に表記揺れが含まれるか，類似したライセンスの記述があるかどうかについては明らかになっていな
い．そのため，実際に開発されている OSS を多数調査し，その多くのライセンスの特定ができる必要がある．さらに，調査により明らかにできた表記揺れや，類似したライセンスの記述を認識してライセンスを特定するため，細かい表現の差異を正しく認識できる機構を備えていることが望ましい．
要件２：新しいライセンスの記述への適合が容易

Open Source Initiative?1 に承認されている OSS の定義を満たすライセンスは 76 種あるが，それ以外のライセンスも多数あり，必要に応じてそれらを特定できるようにしたい．また，ひとつのライセンスが複数のソースファイル
1. コメントの抽出
コメント
2. テキストの分割文
3. 文のフィルタリング
ライセンスに関連する文
4. ライセンス文マッチング
ライセンス文名
5. ライセンスルールマッチング
特定したライセンス名

凡例
処理
データ

ライセンス知識キーワード集合ライセンス文集合
ライセンス集合

図 1 ライセンス特定ツールの構成記述を持つ場合がある．これらに対応するため，新しいライセンスに容易に適合できるようにするための機

あらかじめ表記揺れを含む正規表現で表し，調べる対構を備えていることが望ましい．

象の各文との照合を行う (4)．次に，得られたライセ

要件３：高速に処理できる

OSS の部品を利用す

ンス文の系列に対し，類似する系列を持つライセンスるためには，事前に各部品のライセンスを特定しておを探す (5)．このように照合を２段階に分割すること

くことが便利である，しかし OSS が大きいと，部品により，表記揺れの吸収，ライセンスの追加での変更の数も増え，全てのライセンスの特定に要する時間もを簡単に行えるようになる．これらはいずれも正規表大きくなる．従って，個々のライセンスの特定には，現の照合であり，高速に実行可能である．また，ライ高速な処理が望まれる．

センスと関係のない文とライセンス文の照合を避ける

ライセンス特定ツールの既存研究として，Fossol-ogy1)2)と，ASLAがある．

Fossology は bSAM アルゴリズムを用いて既存ライセンスの記述とコメントを比較し，近似の記述を持ため，特定のキーワードを持たない文を除去することでさらに高速化を図る (3)．

4. まとめと今後の課題

つライセンスを特定結果として出力する．しかし，こ本稿では，ライセンス特定ツールの要件と，それにのアルゴリズムの計算量が大きいため，要件３を満た基づくライセンス特定ツールの設計について述べた．

さない．ASLA は既存ライセンスの記述に対応する正今後の課題として，ツールの実装と評価，そして，よ規表現のパターンを用いることで，差異を吸収して特り多くの調査に基づくライセンス文やキーワードの追定する．しかし，ふつう各記述の正規表現は複雑で容加，洗練がある．

易に作成できないため，要件２を満たさない．また，謝辞 本研究は，文部科学省科学研究費補助金若手

これらの研究論文には背景の調査が示されていないた研究（B）（課題番号:20700024）の助成を得た．また，め，要件１を満たしているかは不明である．

本研究は，文部科学省グローバルＣＯＥプログラム

3. ツールの設計
図 1 に提案するツールの構成を示す．本ツールの設計に当たって FreeBSD，OpenBSD，Linux，Eclipse

JDT，Mozilla といった大規模 OSS を調査した．調
査ではコメントを文に分割し，どのような文が存在するかを調べた．その結果，多数の表記揺れを検出した．
これらを吸収するため，本ツールでは，まず，既存のライセンスで用いられる各々の文（ライセンス文）を?1 http://www.opensource.org/（研究拠点形成費）の補助によるものである．

参考文

献1) Gobeille, R.: The FOSSology project, MSR’08: Proceedings of the 2008 International Conference on Mining Software Repositories, NewYork, NY, USA, ACM, pp.47–50 (2008).
2) Tuunanen, T., Koskinen, J. and Kärkkäinen,
T.: Automated software license analysis, Automated Software Engineering, Vol.16, No.3-4,
pp.455–490 (2009).