#author("2022-03-15T11:04:32+00:00","","")
#author("2022-03-15T11:08:55+00:00","","")
[[引き継ぎ]]

ライセンス判定ツールNinka(&attachref(ninka-1.1.zip);)

未知ライセンスの定義
-ライセンス判定ツールNinkaがソースファイルのライセンス記述からライセンスの判定を行った際に判定できなかったライセンス記述のこと


これまでにやられている研究
-未知ライセンスからライセンスルールを自動作成(東さん)(既存ライセンス文修正型の処理が同じ)


本研究の目的とアプローチ
-ライセンスルール自動更新ツール(既存ライセンスルールの一部を修正するだけで判定できるようになるなど)を作成するために必要な知見を整理するために,Debian-7.8.0を対象とした未知ライセンス文の調査を行った

分類したタイプについて
-既存ライセンス文修正型(制約内容が同一で文字列が類似している)
--this source file is under the GPL(既存ライセンスルール)
--this source file is under GPL(未知ライセンス文)
--this source file is under (the)?GPLと既存ライセンスルールを修正する
-既存ライセンス文追加型(制約内容が同一で文字列が類似していない){東さんがやっていた自動化ツール}
--this source file is under the GPL(既存ライセンスルール)
--licensed GPL(未知ライセンス文)
--licensed GPLのライセンスルールを追加する
-新規ライセンス文修正型(制約内容が異なっており文字列が類似している)
--this source file is under the GPL(既存ライセンスルール)
--this source file is under the BSD(未知ライセンス文)
--this source file is under the BSDのライセンスルールを追加する
-新規ライセンス文追加型(制約内容が異なっており文字列が類似していない)
--this source file is under the GPL(既存ライセンスルール)
--licensed BSD(未知ライセンス文)
--licensed BSDのライセンスルールを追加する


今回の研究でわかった知見
-新規ライセンス文修正型が非常に少ない(全体の5%)た,え,新規ライセンス文修正型に該当する未知ライセンス文は自動化する必要はあまりない可能性がある
-既存ライセンスのバリエーションが多いことが理解できた(全体の58%)ため,ライセンスルールの自動更新ツールを作成する場合は,既存ライセンスのバリエーションに対応できるツールを作成した場合,多くの未知ライセンスを判定できるようになると考えられる
-また,ライセンスルールを追加すべき未知ライセンス文が多い(全体の77%)ので,将来的にライセンスルールが多く作成されることが理解できたため,多くライセンスルールが作成されることから,ライセンス文判定処理が重くなる可能性がある.そのため,ライセンス文判定を行う前にライセンスルールの優先付けを行うことによって,ライセンス文判定処理を軽くすることができると考えられる


これから研究としてやれること
-今回の知見を元にライセンスルール自動更新ツールを作成する
-ただ,自動更新は今回の分類をしただけで4タイプに分類されているため,未知ライセンス文によって4種類の更新方法が必要なため,その内の一つを自動化していけばいいのではと考えられる
-未知ライセンス文を大きく削減できるのは既存ライセンス文追加型と新規ライセンス文追加型のため,大きな結果を得られやすい

*西山 [#xff699e7]
実験に使ったデータを
bitbucketに保存しました
https://bitbucket.org/wakayama_oss/graduation_thesis_2021/src/master/nishiyama/data/
に保存しました。
以下はその中のディレクトリの説明です。
-checkstyle・・・実験で使用したcheckstyle8.44のファイル
-docker ・・・githubのプロジェクトを収集した結果を入れるためのmongodbが入っている
-ninka-master・・・東さんから頂いたソースファイルのライセンス特定ツール
-project_license・・・WilldflyとPowermockで、ライセンス別にソースファイルを分類している
-xml ・・・収集したcheckstyle設定用のxmlファイル
-checkstyle実行結果・・・ライセンス別にファイル単位でcheckstyleを実行した結果
-code・・・実験で使用したスクリプトやcsvファイル
-エクセル・・・分析や集計に使ったデータ色々

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS