[发明专利]一种开源许可证合规性分析与冲突性检测方法有效
| 申请号: | 201810691548.3 | 申请日: | 2018-06-28 |
| 公开(公告)号: | CN109063421B | 公开(公告)日: | 2022-03-04 |
| 发明(设计)人: | 李必信;宋震天;周颖;王璐璐 | 申请(专利权)人: | 东南大学 |
| 主分类号: | G06F21/10 | 分类号: | G06F21/10 |
| 代理公司: | 南京众联专利代理有限公司 32206 | 代理人: | 杜静静 |
| 地址: | 210096 *** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 许可证 合规 分析 冲突 检测 方法 | ||
1.一种开源许可证合规性分析与冲突性检测方法,其特征在于,所述方法包括以下步骤:
第一步,许可证仓库的构建;
第二步,许可证的识别;
第三步,许可证信息提取与模型构建;
第四步,许可证合规性分析;
第五步,许可证冲突识别与定位;
所述第一步,许可证仓库的构建,具体如下,分析十种主流的开源许可证协议,基于许可证协议统一描述模型构建许可证仓库,包括对许可证的条款和许可证之间的兼容关系进行分析,将十种开源软件许可证基于名称、权利、条件和限制四个方面进行归纳与分类,存储于许可证仓库中;
第二步,许可证的识别,包括直接识别方式和间接识别方式,
其中,直接识别方式是基于混源软件的软件包许可证信息,利用许可证仓库,采用模式匹配的启发式算法来识别其许可证类型;间接识别方式是基于混源软件的源代码,利用开源库匹配技术,将软件包与开源库标准软件进行匹配,从而推断混源软件中软件包许可证类型;
第三步,许可证信息提取与模型构建,其分为特征信息提取、特征信息合并、生成软件包树和项目级特征提取四个方面,具体如下,
3.1特征信息提取:项目许可证特征信息提取是从文件层级出发,利用许可证特征提取器从许可证文件和普通文件注释中提取许可证特征信息,记录许可证种类、数量和分布,文件级许可证差异性信息从文件层级提取不符合开源软件规范的信息;
3.2特征信息合并:目录级许可证特征信息的提取与文件级许可证特征信息的提取类似,只是基于更高层次的目录级去提取信息,目录级许可证差异信息提取与文件级许可证差异信息提取类似,从更高层次的目录级提取不符合开源软件规范的信息;
3.3生成软件包树:软件包层级许可证信息是对目录层级许可证特征信息的收集归纳,软件包层级相对于目录层级层次结构更加清晰,软件包层级许可证特征信息同时作为项目层级许可证特征信息的信息来源,软件包的差异信息基于对目录级的差异信息的归纳;
3.4项目级特征提取:基于对混源项目的文件、目录、软件包三个层级许可证特征信息的分析,分析出的信息包括许可证种类,数量及分布,在此基础上构建项目许可证特征树,利用许可证识别技术,并结合开源库搜索技术,识别出项目中软件包对应的许可证类别,开源软件名称,并更新到项目软件包树中,同时将软件包目录和标准开源软件目录之间许可证声明信息和代码修改信息进行比对,将两者的差异信息存储到项目许可证差异库中,用于混源软件项目中许可证的特征信息检索及特征关联分析,并以此作为许可证进行合规性分析和冲突性分析的基础;
所述第四步,许可证合规性分析,具体如下,
合规性定量分析的对象是混源项目本身和混源项目所使用的许可证协议,以使用的许可证协议为标准,找出混源项目中与许可证协议一致和不一致的地方,包括以下几个方面:许可证协议标准的量化、许可证关联特征信息的收集与比对和许可证合规性的分析,具体如下:
4.1许可证协议标准的量化:对于许可证协议标准的量化问题,通过对十种许可证条款的分析,将许可证的条款分为名称、权利、限制、条件四个纬度,每个纬度下又有不同的条目,不同许可证协议所具有的约束则不尽相同,经分析“条件”维度下的“许可证和版本提示”条目是识别许可证协议种类的关键,许可证协议标准的量化结果按照协议统一描述模型存放在许可证仓库中;
4.2许可证关联特征信息的收集与比对:基于许可证特征树和许可证差异库模型对许可证关联特征信息进行整合,完整地保存了整个混源项目许可证特征信息,并根据需要从文件、目录、软件包和项目层级进行扩展;
4.3许可证合规性的分析:许可证合规性分析是基于OMM即Open Source MaturityModel模型评估树对许可证合规性条款和特征信息进行分析,具体如下,首先对项目许可证特征树和许可证差异库模型进行信息提取,然后基于模型评估树设置阈值和获取处理策略,再通过合规性分析引擎执行处理策略,并基于设置的阈值生成对应项目许可证集的评估结果。
2.根据权利要求1所述的开源许可证合规性分析与冲突性检测方法,其特征在于,所述第五步,许可证冲突识别和定位具体如下:许可证冲突是指许可证之间、混源项目的许可证和开源库标准开源软件之间的不兼容的情况,混源项目的许可证和开源库标准开源软件之间的冲突检测是基于开源库匹配的结果对许可证文件和版权文件的冲突情况进行分析,许可证冲突的识别定位根据许可证特征树和许可证差异库模型,冲突的定位是通过在许可证特征树中标注特征位置,并根据链接跳转到具体项目代码的方式来实现,通过对混源项目版本库历史信息的提取,对项目开发生命周期内的许可证冲突的情况进行度量,绘制冲突趋势图,以便对许可证冲突风险进行管控。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810691548.3/1.html,转载请声明来源钻瓜专利网。





