ライセンス特定のための ライセンス知識獲得における課題

Slides:



Advertisements
Similar presentations
英語ゼミ 6/15( 水 ) 金 正福. Part2 Unit8 ~査読者とのやりと り~ 科学技術英語 ロボット工学.
Advertisements

だい六か – クリスマスとお正月 ぶんぽう. て form review ► Group 1 Verbs ► Have two or more ひらがな in the verb stem AND ► The final sound of the verb stem is from the い row.
第 5 章 2 次元モデル Chapter 5 2-dimensional model. Contents 1.2 次元モデル 2-dimensional model 2. 弱形式 Weak form 3.FEM 近似 FEM approximation 4. まとめ Summary.
Essay writing rules for Japanese!!. * First ・ There are two directions you can write. ・よこがき / 横書き (same as we write English) ・たてがき / 縦書き (from right to.
VE 01 え form What is え form? え? You can do that many things with え form?
Windows Azure ハンズオン トレーニング Windows Azure Web サイト入門.
SS2-15:A Study on Image Recognition and Understanding
Armadillo-9で作る、 シャットダウン不要な組込み型 LinuxBox の製作
英語勉強会.
第1回レポートの課題 6月15日出題 今回の課題は1問のみ 第2回レポートと併せて本科目の単位を認定 第2回は7月に出題予定
Chapter 11 Queues 行列.
日本語... ジェパディー! This is a template for you to use in your classroom.
と.
ABC社マジック・クアドラントでリーダーの位置づけ
オープンソースソフトウェアにおける ソフトウェアライセンス間の 包含関係
Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair.
研究の背景 コードクローン ソースコード中に存在する一致または類似したコード片
日本人の英語文章の中で「ENJOY」はどういうふうに使われているのか
Noun の 間(に) + Adjective Verb てform + いる間(に) during/while.
There are 5 wearing verbs in Japanese depending on the part of body or the item being worn.
肥後 芳樹, ○石尾 隆, 渡邊 結, 出張 純也, 畑 秀明, 三宅 達也, 水野 修, 丸山 勝久
Windows Summit /8/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
十年生の 日本語 Year 10 Writing Portfolio
Reasonので + Consequence clause
Licensing information
Chapter 4 Quiz #2 Verbs Particles を、に、で
CRLA Project Assisting the Project of
“You Should Go To Kyoto”
VTA 02 What do you do on a weekend? しゅうまつ、何をしますか。
Microsoft Partner Network Office 365 社内使用ライセンスの有効化
ソフトウェアリポジトリにおける コードクローン作成者・利用者関係分析手法とその適用
If we have his tool ドラえもんの道具があったら.
ストップウォッチの カード ストップウォッチの カード
Session 8: How can you present your research?
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
ソードコードの編集に基づいた コードクローンの分類とその分析システム
Causative Verbs Extensively borrowed from Rubin, J “Gone Fishin’”, Power Japanese (1992: Kodansha:Tokyo) Created by K McMahon.
ソフトウェア部品検索システムを 対象とするソフトウェアライセンス 特定手法
-Get test signed and make corrections
クローンセットに対する主要編集者の分析法の提案と調査
MIX 09 2/23/2019 1:22 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Where is Wumpus Propositional logic (cont…) Reasoning where is wumpus
Windows Summit /24/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
コンポーネントランク法を用いたJavaクラス分類手法の提案
Satoru Ishikawa Satoru Satake Denis Vazhenin
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
Question Words….
Satoshi Kawashima, LLD 川島 聡 University of Tokyo
コードクローン編集者数に着目した開発履歴の分析
2019/4/22 Warm-up ※Warm-up 1~3には、小学校外国語活動「アルファベットを探そう」(H26年度、神埼小学校におけるSTの授業実践)で、5年生が撮影した写真を使用しています(授業者より使用許諾済)。
第1回レポートの課題 6月24日出題 今回の課題は1問のみ 第2回レポートと併せて本科目の単位を認定 第2回は7月に出題予定
コーディングパターンの あいまい検索の提案と実装
北大MMCセミナー 第62回 附属社会創造数学センター主催 Date: 2016年11月4日(金) 16:30~18:00
ソフトウェアプロダクト集合に対する 派生関係木の構築
ー生命倫理の授業を通して生徒の意識に何が生じたかー
The difference between adjectives and adverbs
東北大 情報科学 田中和之,吉池紀子 山口大 工 庄野逸 理化学研究所 岡田真人
プログラムスライスを用いた凝集度メトリクスに基づく 類似メソッド集約候補の順位付け手法
ソースコードの差分を用いた関数呼び出し パターンの抽出手法の提案と実装
オープンソースソフトウェアに対する コーディングパターン分析の適用
メソッドの同時更新履歴を用いたクラスの機能別分類法
容易に使用可能な grep風コードクローン検索ツール
識別子の読解を目的とした名詞辞書の作成方法の一試案
アノテーションガイドラインの管理を行う アノテーションシステムの提案
Improving Strategic Play in Shogi by Using Move Sequence Trees
Detecting Software Modularity Violations
ABC社[マーケット・セグメント名を入力]のハイプ・サイクルで「関連プレーヤー」に選定
Presentation transcript:

ライセンス特定のための ライセンス知識獲得における課題 大阪大学 博士後期課程3年 眞鍋雄貴 2011/9/12 - SES2011 WS3

概要 ソフトウェアの再利用を円滑にするため,ソフトウェアライセンス特定ツールが開発されている ライセンス特定ツールはオープンソースソフトウェア工学にもかかわりがあると考えられる ライセンス特定ツールにおけるライセンス知識獲得の際に生じる課題について述べる 2011/9/12 - SES2011 WS3

ソフトウェアの再利用 既存のソフトウェアに含まれるソフトウェア部品を新たなソフトウェアの開発に利用すること ソフトウェア部品:ソースファイル,クラス,関数など オープンソースソフトウェアがソフトウェア部品の大きな供給源 ソフトウェア部品検索システムにより,オープンソースソフトウェアのソースファイルの取得が容易になっている Google Code Search, Koders, SPARS 2011/9/12 - SES2011 WS3

著作権 著作物の利用に関して,著作者に与えられる独占的権利 知的財産であるソフトウェアを法的に保護する仕組みの一つ 利用:複製,改変,再配布 ソフトウェアの再利用を行うためにはそのソフトウェアの著作者から許諾を得る必要がある 2011/9/12 - SES2011 WS3

ソフトウェアライセンス(ライセンス) 著作者が定めた,利用に関する許諾と許諾を得るための要求や義務 オープンソースソフトウェアの場合,指定されているライセンスに従えば利用することができる 再利用する対象のライセンスを調べないといけない オープンソースライセンス(OSSライセンス) Open Source Initiativeが承認(66種) 2011/9/12 - SES2011 WS3

代表的なOSSライセンス 3-clause BSD License(BSD3) 派生物は著作権の告知,条項のリスト,保障の放棄を含めなければならない Apache License Version 2(Apachev2) 派生物は著作権,特許,商標,帰属の告知を含めなければならない GNU General Public License Version 3(GPLv3) 派生物はGPLv3のもとで配布されなければならない 2011/9/12 - SES2011 WS3

ライセンス特定 ソースファイルからそのソースファイルのライセンスを決定する作業 ソースファイルのライセンスはコメント中で指定される ライセンスを指定する記述をライセンス記述と呼ぶ ソースファイル中のライセンス記述と既知のライセンス記述と照合することにより,ライセンスを特定する 2011/9/12 - SES2011 WS3

ライセンス記述の例 Copyright (c) 2005, 2006 Taras Puchko All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. ... Copyright (c) 2003, the JUNG Project and the Regents of the University of California All rights reserved. This software is open-source under the BSD license; see either "license.txt" or http://jung.sourceforge.net/license.txt for a description. 2011/9/12 - SES2011 WS3

ソフトウェアライセンス 特定ツールの構成 ライセンス知識作成用 ソースファイル集合 ソースファイル ライセンス知識 マッチング ルール作成 ライセンス記述の抽出 <ライセンス名,ルール> ライセンス名 2011/9/12 - SES2011 WS3

オープンソースソフトウェア工学と ソフトウェアライセンスの関連 実証的研究 ライセンスの変化[1][2] コードクローンとの関係[3] コードクローン:他のソースコード片と一致,または類似するコード片 ソースファイル検索システム ライセンス違反検出 [1] Massimiliano Di Penta et. al. "An exploratory study of the evolution of software licensing". Proc of ICSE '10, Vol. 1. pp.145-154, 2010.   [2] Yuki Manabe et. al. :"Evolutional analysis of licenses in FOSS." Proc of IWPSE-EVOL '10, pp.83-87,2010. [3] Yu Kashima et. al.: "A Preliminary Study on Impact of Software Licenses on Copy-and-Paste Reuse", International Workshop on Empirical Software Engineering in Practice 2010, 2010 2011/9/12 - SES2011 WS3

既存のライセンス特定手法 ルールに正規表現を使い,簡易なマッチングをする手法 Ninka[3] ASLA[4] Ohcount[5] FOSSology (v1.3以降)[6] ルールに単純な文字列を使い,高価なマッチング手法を用いる手法 FOSSology (v1.2以前) Open Source License Checker[7] [3] German, D.M. et. al : "A sentence-matching method for automatic license identification of source code files", Proc. ASE 2010, pp.437–446 (2010). [4] Tuunanen, T. et. al : "Automated software license analysis", Automated Software Engineering, Vol.16, pp.455–490 (2009). [5] http://www.ohloh.net/p/ohcount [6] Gobeille, R.: "The FOSSology project", Proc. MSR 2008, New York, NY, USA, pp.47–50 (2008). [7] http://sourceforge.net/projects/oslc/ 2011/9/12 - SES2011 WS3

Ninka ルール:ライセンスルールとメタライセンス文 ライセンスルール BSD2:BSDPre, BSDcondSource, BSDcondBinary, BSDasIs, BSDWarr メタライセンス文 BSDcondSource:Redistributions? of source code must retain the (above )?copyright notice, this list of conditions(,)? and the following disclaimer(, without modification)?: … マッチング ソースファイル中のコメントとメタライセンス文をマッチさせ,ライセンス文名の列を作る ライセンス文名の列とマッチしたライセンスルールからライセンス名を出力する 2011/9/12 - SES2011 WS3

Open Source License Checker ルール:既知のライセンス記述 ライセンスの条文全体が主に用いられている マッチング コメント中のライセンス記述とルール間で同一となる行を発見し,最長一致列となる部分を探索し,類似度を求める 類似度:ルールに対する最長一致列の割合 類似度の高いルールに対応するライセンスを出力 2011/9/12 - SES2011 WS3

本ポジションペーパーでの立場 精度をライセンス知識で確保するか,マッチング手法で確保するか マッチング手法で頑張る場合,ルールと一致する範囲が理解しづらくなる 誤った特定結果が増える →その結果を信用して再利用できない ⇒ライセンス知識をちゃんと作成することで,精度を担保すべき 2011/9/12 - SES2011 WS3

課題 既存のソフトウェアライセンス特定ツールではライセンス知識を手作業で作成している Ninkaの場合,427 のメタライセンス文,112 個のライセンスに対応する126 個のライセンスルールを手作業にて作成 多数のライセンスが存在している OSIに承認されたもので66種 BlackDuck は自社が所有するBlack Duck KnowledgeBase には2050 種以上のライセンスに対する詳細なデータが含まれているとしている ライセンス知識を作成するための支援が必要である 2011/9/12 - SES2011 WS3

ライセンス知識獲得における支援 ライセンス知識作成用 ソースファイル集合 ソースファイル ライセンス知識 マッチング ルール作成 ライセンス記述の抽出 ライセンス記述の分類 ルールに対する命名支援 ライセンス記述の自動抽出 ライセンス名 2011/9/12 - SES2011 WS3

支援をする上での課題 ライセンス記述の自動抽出 先頭以外のコメントの扱い ライセンス記述の自動分類 類似したライセンス記述の扱い ルールに対する命名支援 各ルールに対する名前生成 2011/9/12 - SES2011 WS3

先頭以外のコメントの扱い 多くの場合はソースファイルの先頭である ソースコードの途中に複数のライセンス記述が記述されている場合がある コードのコピーとともにライセンス記述もコピーされてきたかもしれない コードの変更が行われたとき,多くの場合で同時にコメントも変更されているという報告もある[8] それらの記述を調べる必要があるか調査する必要がある [8]Fluri, B., Wursch, M., & Gall, H. C. ,”Do Code and Comments Co-Evolve? On the Relation between Source Code and Comment Changes.”, WCRE 2007, pp. 70-79 (2007). 2011/9/12 - SES2011 WS3

類似したライセンス記述の扱い 文章としては類似しているが,異なるライセンスに対応するライセンス記述がある 例 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 自動的な分類を行うためには,どうやってこれらの記述をライセンス別に分類するか 2011/9/12 - SES2011 WS3

各ルールに対する名前生成 対応するライセンス名を明確に決められない場合がある ライセンス記述に名前が入らない 既存のライセンスに条項が追加されたり,削除されたものがライセンスとして使用されることがある[3] どうやって,名前付けをルール化するか 既知のライセンスのスタイルとの類似性 類似するライセンスとの差分 [3]German, D.M. et. al : "A sentence-matching method for automatic license identification of source code files", Proc. ASE 2010, pp.437–446 (2010). 2011/9/12 - SES2011 WS3

まとめ ソフトウェアの再利用を円滑にするため,ソフトウェアライセンス特定ツールが開発されている ライセンス特定ツールとオープンソースソフトウェア工学との関連 ライセンス特定ツールにおけるライセンス知識獲得を支援する際の課題 先頭以外にあるコメントの扱い 類似した記述の扱い 各ルールに対する名前生成 2011/9/12 - SES2011 WS3

2011/9/12 - SES2011 WS3

Evaluation of License Identification Goal: To show if our approach is better than other methods Tools Ninka (implementation of proposed approach), FOSSology 1.0.0, ohcount version 3.90rc, OSLC 3.0 Target systems Source files: 250 files in Debian 5.0.2 Randomly select 250 packages in Debian 5.0.2 For each selected packages, randomly select 1 file in each package in them We have conducted evaluation to show if our method is better than other methods. We used Ninka, an implementation of our approach, FOSSology 1.0.0, ohcount version 3.90rc and OSLC3.0. We analyzed 250 (two-fifty files) files in Debian 5.0.2 with these tools. We randomly selected these 250 files by the following approach. At first, we randomly selected 250 packages in Debian 5.0.2. Then, for each selected packages, we randomly selected 1 file in each package in them 2010/9/24 - ASE2010 Daniel M. German, Yuki Manabe, Katsuro Inoue

Method Compare the results from each tool to the results obtained by manual inspection Result category C: Correct license name and version I: Incorrect U: Unknown Measured values Recall Precision F-measure Execution Time (Explanation of terms used in this evaluation) We Compare the results from each tool to the results obtained by manual inspection. These results are classified into three category, Correct license name and version, Incorrect, and Unknown. When the result by tool is "UNKNOWN", the result are classified into "UNKNOWN" When the result by manual inspection "NONE", if the result by tool is "NONE", the result are classified into "C". To evaluate performance of each tool, we use four values, Recall, Precision, F-measure, and Execution Time. 2010/9/24 - ASE2010 Daniel M. German, Yuki Manabe, Katsuro Inoue

Definition of Scales Recall Precision F-measure 2010/9/24 - ASE2010 Daniel M. German, Yuki Manabe, Katsuro Inoue

Result Ninka has the highest precision and faster execution time Ninka FOSSology ohcount OSLC Recall [%] 82.8 99.6 100 Precision [%] 96.6 55.0 33.2 29.5 F-measure 0.891 0.709 0.498 0.371 Execution Time [s] 22 923 27 372 Ninka has the highest precision and faster execution time (Ninka has highest precision and does it efficiently) This table shows the result. Best score are in the bold typeface The results show that ninka has the highest precision and faster execution time (Recallの定義を回答率と同じにする) (ohcount, OSLCのRecall 100%) 2010/9/24 - ASE2010 Daniel M. German, Yuki Manabe, Katsuro Inoue