CN106934254A - 一种开源许可证的分析方法及装置 - Google Patents
一种开源许可证的分析方法及装置 Download PDFInfo
- Publication number
- CN106934254A CN106934254A CN201710081702.0A CN201710081702A CN106934254A CN 106934254 A CN106934254 A CN 106934254A CN 201710081702 A CN201710081702 A CN 201710081702A CN 106934254 A CN106934254 A CN 106934254A
- Authority
- CN
- China
- Prior art keywords
- licensing
- increasing income
- income
- conflict
- detection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title abstract description 13
- 238000012502 risk assessment Methods 0.000 claims abstract description 22
- 238000001514 detection method Methods 0.000 claims description 74
- 239000011159 matrix material Substances 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 239000012634 fragment Substances 0.000 claims description 13
- 238000007689 inspection Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例涉及计算机技术领域,尤其涉及一种开源许可证的分析方法及装置,包括:接收待测文件和规划条件;检测所述待测文件涉及的开源许可证;将检测出的开源许可证与所述规划条件进行冲突匹配,确定所述检测出的开源许可证与所述规划条件之间的第一冲突;根据所述第一冲突生成第一风险评估报告。本发明实施例用以对开源许可证的使用风险进行分析和评估。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种开源许可证的分析方法及装置。
背景技术
开源许可证是对商业应用友好的许可。开源即为开放源代码,是在产品的出品和开发中提供最终源材料,平时所述的开源大多指开源软件,这种软件的版权持有人在协议的规定之下保留一部分权利并允许用户学习、修改、增进提高软件的质量。开源软件并非完全没有限制。最基本的限制,就是开源软件强迫任何使用和修改该软件的人承认发起人的著作权和所有参与人的贡献。任何人拥有可以自由复制、修改、使用这些源代码的权利,不得设置针对任何人或团体领域的限制。不得限制开源软件的商业使用等。而许可证就是这样一个保证这些限制的法律文件。
开源许可证规定了关于修改、复制和再发布源代码的条款。行业内现行的开源许可证数量繁多、种类多样,不同开源许可证授予被许可人的各项权利大小和范围各不相同。由于同一软件经常会涉及多个开源许可证,不同开源许可证之间可能会相互冲突或是与使用者的预期目标相悖,因此在商业环境中使用开源软件或基于开源软件进行二次开发会面临许多潜在的法律问题和风险。
开源许可证检测工具通过对软件源代码扫描等方式自动定位并识别特定的开源许可证。现有的许可证检测及分析工具只能进行简单的检测、标记和统计操作,不能支持进一步的风险评估和分析,在对开源许可证的内容及风险分析方面亟待加强。
发明内容
本申请提供一种开源许可证的评估方法及装置,用以对开源许可证的使用风险进行分析和评估。
本发明实施例提供一种开源许可证的评估方法,包括以下步骤:
接收待测文件和规划条件;
检测所述待测文件涉及的开源许可证;
将检测出的开源许可证与所述规划条件进行冲突匹配,确定所述检测出的开源许可证与所述规划条件之间的第一冲突;
根据所述第一冲突生成第一风险评估报告。
可选的,所述检测所述待测文件涉及的开源许可证,包括:
所述待测文件包括多个检测文本,针对一个检测文本,利用k-shingle算法确定所述检测文本的词汇表;
统计所述词汇表中各个词语在所述检测文本中的词频,确定所述检测文本的第一特征矩阵;
针对数据库中存储的一个开源许可证,确定所述词汇表中各个词语在所述开源许可证中的词频,从而确定所述开源许可证的第二特征矩阵;
根据所述第一特征矩阵和所述第二特征矩阵,计算所述检测文本与所述开源许可证之间的文本相似度;
将文本相似度最高的开源许可证作为所述检测文本涉及的开源许可证。
可选的,所述检测所述待测文件涉及的开源许可证之后,还包括:
将检测出的多个开源许可证进行冲突匹配,确定所述检测出的多个开源许可证之间的第二冲突;
根据所述第二冲突生成第二风险评估报告。
可选的,所述确定所述检测出的开源许可证与所述规划条件之间的第一冲突之后,还包括:
确定所述第一冲突对应的风险等级;
所述确定所述检测出的多个开源许可证之间的第二冲突之后,还包括:
确定所述第二冲突对应的风险等级。
可选的,还包括:
接收开源许可证的标识和/或片段;
根据所述标识和/或片段,从数据库中确定出对应的开源许可证;
根据所述对应的开源许可证生成许可证列表。
一种开源许可证的评估装置,包括:
接收单元,用于接收待测文件和规划条件;
检测单元,用于检测所述待测文件涉及的开源许可证;
匹配单元,用于将检测出的开源许可证与所述规划条件进行冲突匹配,确定所述检测出的开源许可证与所述规划条件之间的第一冲突;
报告单元,用于根据所述第一冲突生成第一风险评估报告。
可选的,所述检测单元,具体用于:
所述待测文件包括多个检测文本,针对一个检测文本,利用k-shingle算法确定所述检测文本的词汇表;
统计所述词汇表中各个词语在所述检测文本中的词频,确定所述检测文本的第一特征矩阵;
针对数据库中存储的一个开源许可证,确定所述词汇表中各个词语在所述开源许可证中的词频,从而确定所述开源许可证的第二特征矩阵;
根据所述第一特征矩阵和所述第二特征矩阵,计算所述检测文本与所述开源许可证之间的文本相似度;
将文本相似度最高的开源许可证作为所述检测文本涉及的开源许可证。
可选的,所述匹配单元,还用于将检测出的多个开源许可证进行冲突匹配,确定所述检测出的多个开源许可证之间的第二冲突;
所述报告单元,还用于根据所述第二冲突生成第二风险评估报告。
可选的,所述匹配单元,还用于:
确定所述第一冲突对应的风险等级;
确定所述第二冲突对应的风险等级。
可选的,所述接收单元,还用于接收开源许可证的标识和/或片段;
所述匹配单元,还用于根据所述标识和/或片段,从数据库中确定出对应的开源许可证;
所述报告单元,还用于根据所述对应的开源许可证生成许可证列表。
本发明实施例中,服务器接收用户上传的待测文件,检测该待测文件涉及的开源许可证。同时,服务器也接收用户输入的规划条件,该规划条件为软件项目未来规划的相关条件。将检测出的开源许可证与规划条件进行冲突匹配,即确定出涉及到的开源许可证的内容与软件的规划条件存在的冲突,最后根据第一冲突生产第一风险评估报告,并向用户进行反馈。本发明实施例自动识别软件中包含的开源许可证,并确定开源许可证与规划条件之间的冲突,最后基于冲突生成风险评估报告,为开源软件的用户更好地跟踪开发软件并作出合理决策提供支持和参考。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例适用的一种系统架构示意图;
图2为本发明实施例提供的一种开源许可证的评估的流程示意图;
图3为本发明具体实施例中开源许可证的评估的流程示意图;
图4为本发明实施例提供的一种开源许可证的评估装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,本发明实施例所适用的一种系统架构,包括网页服务模块101、处理引擎模块102、数据库模块103和更新维护模块104。网页服务模块101、处理引擎模块102、数据库模块103和更新维护模块104可以集中在一个服务器中,也可以为不同服务器中的模块,这里的服务器可以是计算机等网络设备。优选地,网页服务模块101、处理引擎模块102、数据库模块103和更新维护模块104可以采用云计算技术进行信息处理。
网页服务模块101向用户提供开源许可证信息查询、开源许可证检测以及风险评估等功能的入口,即用户通过网页服务模块101向服务器输入待测文件和规划条件等。此外,网页服务模块101通过列表、图表、文本等形式,向用户展示查询和分析结果。
处理引擎模块102根据用户的输入从数据库模块103检索符合条件的信息,并将结果反馈到网页服务模块101,从而以搜索列表、详情信息等不同的形式向用户进行展示。该模块支持关键字模糊查询,即支持通过字符片段查找相关数据。
处理引擎模块102还通过分析接收到的软件源代码,检测出待测文件中涉及的开源许可证,并检测出有版权文件和无版权文件等生成开源许可证的使用报告,并以PDF文件或图表等的格式反馈给用户。在检测出开源许可证之后,基于用户设置或输入的软件项目规划条件和专家预先设定的冲突规则,检测待测文件中有冲突的开源许可证,或开源许可证与规划条件之间的冲突,并以此为基础分析前置的法律风险,生成风险评估报告,之后以PDF文件或图表的格式反馈给用户。
数据库模块103可以分为开源许可证信息库和冲突规则库两部分。开源许可证信息库保存了市面上现有各类开源许可证的协议条款、适用场景、使用条件和限制等信息。冲突规则库一方面保存了不同开源许可证间的冲突规则表达式,根据这些表达式可以判断两个开源许可证之间存在的已知冲突;另一方面,冲突规则库还保存了各个开源许可证不适用的业务场景表达式,根据这些表达式可以判断项目规划相关选项与开源许可证间的潜在冲突。
更新维护模块104允许用户或管理员对数据库模块103的内容进行更新和维护的操作。可通过文件导入的方式批量导入开源许可证信息和冲突规则,通过手动输入的方式手动添加所需信息。除此之外还支持删除和修改数据的操作。
图2示例性示出了本发明实施例提供的一种开源许可证的评估方法的流程示意图,如图2所示,本发明实施例提供的开源许可证的评估方法,包括以下步骤:
步骤201、接收待测文件和规划条件;
步骤202、检测所述待测文件涉及的开源许可证;
步骤203、将检测出的开源许可证与所述规划条件进行冲突匹配,确定所述检测出的开源许可证与所述规划条件之间的第一冲突;
步骤204、根据所述第一冲突生成第一风险评估报告。
本发明实施例中,服务器接收用户上传的待测文件,检测该待测文件涉及的开源许可证。同时,服务器也接收用户输入的规划条件,该规划条件为软件项目未来规划的相关条件。将检测出的开源许可证与规划条件进行冲突匹配,即确定出涉及到的开源许可证的内容与软件的规划条件存在的冲突,最后根据第一冲突生产第一风险评估报告,并向用户进行反馈。本发明实施例自动识别软件中包含的开源许可证,并确定开源许可证与规划条件之间的冲突,最后基于冲突生成风险评估报告,为开源软件的用户更好地跟踪开发软件并作出合理决策提供支持和参考。
对于开源许可证的检测,现有技术中一般基于关键字匹配的方法实现,存在识别精度不高的问题,会出现许可证漏查、误差的情况。本发明实施例中,检测所述待测文件涉及的开源许可证,包括:
所述待测文件包括多个检测文本,针对一个检测文本,利用k-shingle算法确定所述检测文本的词汇表;
统计所述词汇表中各个词语在所述检测文本中的词频,确定所述检测文本的第一特征矩阵;
针对数据库中存储的一个开源许可证,确定所述词汇表中各个词语在所述开源许可证中的词频,从而确定所述开源许可证的第二特征矩阵;
根据所述第一特征矩阵和所述第二特征矩阵,计算所述检测文本与所述开源许可证之间的文本相似度;
将文本相似度最高的开源许可证作为所述检测文本涉及的开源许可证。
面对开源许可证检测工具存在识别精度不高的问题,本文提出的解决方案主要为借助文本相似度计算帮助用户识别潜在开源许可证信息,降低开源许可证漏查、误查的发生机率。除了用文本相似度的方法,也有基于正则表达式的方法,但是运用正则表达式的方法需要人为设置大量规则,且易出现对所识别开源许可证无法分类的情况,文本相似度的方法能较好克服以上缺陷。
具体来说,本发明实施例中,针对不同开源许可证的文本特性定义k-shingle算法的K值,并使用Jaccard Similarity算法计算检测文本与数据库中各开源许可证的相似度,从而有更好的时间效率、准确率和召回率。
由于待测文件中包括多个检测文本,这些检测文本可能是该待测文件涉及的开源许可证,也可能是源代码,或者是其它相关数据,本发明实施例中将检测文本与数据库中的开源许可证计算文本相似度,从而检测出这些文本中的开源许可证。
针对一个检测文本,本发明实施例的文本相似度计算方法如下:
1、通过k-shingle算法统计检测文本的词汇表。其中,k为自定义变量,表示提取检测文本中的k个字符。遍历检测文本并依次保存k个字符,例如文本内容是abcdefg,k=2,得到词汇表ab、bc、cd、de、ef、fg。
2、统计上述词汇表中各个词语在检测文本中的词频,构建检测文本的第一特征矩阵;同时,统计上述词汇表中各个词语在数据库的开源许可证中的词频,构建每个开源许可证的第二特征矩阵。
3、根据第一特征矩阵和第二特征矩阵,使用Jaccard Similarity算法计算检测文本与数据库中各个开源许可证的相似度。Jaccard Similarity算法为两个集合的交集除以两个集合的并集,得到两个集合的相似度。在本发明实施例中,两个集合分别为检测文本和一个开源许可证文本,文本中出现的词语就是集合中的元素,故计算检测文本和开源许可证的相似度即为利用检测文本的第一特征矩阵和一个开源许可证的第二特征矩阵计算两个检测文本与该开源许可证的相似度。
4、利用上述计算出的检测文本与每个开源许可证之间的文本相似度,从中选出文本相似度最高的开源许可证作为匹配结果。
检测出待测文件涉及的开源许可证之后,基于开源许可证的使用信息和用户输入的软件项目规划条件,分析开源许可证与规划条件之间是否存在冲突,存在什么冲突。具体地,将开源许可证使用信息,例如GPL(GNU General PublicLicense,GNU通用公共许可证)、BSD(Berkeley Software Distribution,伯克利软件套件)、Apache(阿帕奇网页服务器软件)等开源许可证,和软件项目规划条件(例如未来是否有闭源需求、是否要引入其他许可证等),作为输入条件,逐一与冲突规则库中的规则表达式进行匹配。这里的规则表达式举例为:
if((LGPL||Mozilla||GPL)&&(closed source==true)){Conflict=true;RiskLevel=high;}
上述代码表示,如果存在LGPL,Mozilla或者GPL类型的许可证协议,并且软件项目发展的规划条件为闭源软件,那么存在协议冲突,风险等级为高。
除了上述开源许可证与规划条件之间的冲突,本发明实施例中还对开源许可证之间的冲突进行分析。所述检测所述待测文件涉及的开源许可证之后,还包括:
将检测出的多个开源许可证进行冲突匹配,确定所述检测出的多个开源许可证之间的第二冲突;
根据所述第二冲突生成第二风险评估报告。
开源许可证可以分为五类:1、许可证拥有这可以为了任何目的在任何地方使用软件;2、许可证拥有者只能自由拷贝开源软件;3、许可证拥有者只能自由拷贝或者对软件进行再开发;4、许可证拥有者可以自由地访问软件以及使用软件的源代码,但不能与其它组件组合;5、许可证拥有者可以自由地把开源软件与其它软件组合。使用由冲突的许可证对软件开发特别是商业软件的开发有很大的影响。因此,本发明实施例中对有冲突的开源许可证进行检测,确定同一个待测文件涉及的两个或多个开源许可证之间的冲突。具体地,将检测出的开源许可证与冲突规则库中的规则表达式进行匹配,从而确定开源许可证之间是否存在冲突。例如规则表达式可以为:
if(GPL&&BSD){Conflict=true;Risk Level=medium;}
上述代码表示,如果同时存在GPL和BSD协议,那么存在协议冲突,风险等级为中。
所述确定所述检测出的开源许可证与所述规划条件之间的第一冲突之后,还包括:
确定所述第一冲突对应的风险等级;
所述确定所述检测出的多个开源许可证之间的第二冲突之后,还包括:
确定所述第二冲突对应的风险等级。
本发明实施例中对各种冲突划分风险等级,便于为开源软件使用者对待测文件以及涉及的开源许可证作出合理决策作为参考。
除了检测开源许可证,本发明实施例可以基于用户输入的开源许可证的名称或片段,检索得到匹配的许可证列表。本发明实施例中还包括:
接收开源许可证的标识和/或片段;
根据所述标识和/或片段,从数据库中确定出对应的开源许可证;
根据所述对应的开源许可证生成许可证列表。
这样,便于用户快速查询各个开源许可证的各种信息。用户点击列表中的单个条目进入相应开源许可证的详情页,详情信息包含对开源许可证内容、典型应用案例、使用条件和限制等的介绍。
此外,由于数据库的冲突规则库中规则是不断增加的,且同一规则可能存在多种变体,因此每次分析都遍历整个冲突规则库使得检测分析的效率十分低下。本发明实施例通过建立分类索引的方式对分析方式进行优化,根据涉及开源许可证类型的不同对冲突规则库设置分类索引,通过该索引列表快速定位与特定开源许可证相关联的规则集合,提升分析效率。
具体的分类索引方法可以采用基于图的索引结构,用邻接表的形式存储图,定义表头为开源许可证或其他实体,边为不同开源许可证之间的规则。该方案可以快速定位和查询特定条件下的规则,并且易于规则的动态扩充,方便更新和维护。
为了更清楚地理解本发明,下面以具体的实施例对上述流程进行详细描述,具体步骤如图3所示,包括:
步骤301、服务器接收用户输入的待测文件和规划条件,待测文件中包括多个检测文本。
步骤302、针对一个检测文本,利用k-shingle算法确定该检测文本的词汇表。
步骤303、统计词汇表中各个词语在检测文本中的词频,确定第一特征矩阵。
步骤304、针对数据库中存储的一个开源许可证,确定词汇表中各个词语在该开源许可证中的词频,确定该开源许可证的第二特征矩阵。
步骤305、根据第一特征矩阵和第二特征矩阵,利用Jaccard Similarity算法,计算检测文本与开源许可证之间的文本相似度。
步骤306、确定文本相似度最高的开源许可证作为该检测文本对应的开源许可证。
步骤307、将检测出的每一个开源许可证与规划条件进行冲突匹配,确定开源许可证与规划条件之间的第一冲突,并确定第一冲突对应的风险等级。
步骤308、将检测出的多个开源许可证进行冲突匹配,确定多个开源许可证之间的第二冲突,并确定所述第二冲突对应的风险等级。
步骤309、生成风险评估报告,并以PDF的格式向用户反馈。
图4示例性示出了本发明实施例提供的一种身份认证装置的结构示意图。
如图4所示,本发明实施例提供的一种身份认证装置,包括:
接收单元401,用于接收待测文件和规划条件;
检测单元402,用于检测所述待测文件涉及的开源许可证;
匹配单元403,用于将检测出的开源许可证与所述规划条件进行冲突匹配,确定所述检测出的开源许可证与所述规划条件之间的第一冲突;
报告单元404,用于根据所述第一冲突生成第一风险评估报告。
可选的,所述检测单元402,具体用于:
所述待测文件包括多个检测文本,针对一个检测文本,利用k-shingle算法确定所述检测文本的词汇表;
统计所述词汇表中各个词语在所述检测文本中的词频,确定所述检测文本的第一特征矩阵;
针对数据库中存储的一个开源许可证,确定所述词汇表中各个词语在所述开源许可证中的词频,从而确定所述开源许可证的第二特征矩阵;
根据所述第一特征矩阵和所述第二特征矩阵,计算所述检测文本与所述开源许可证之间的文本相似度;
将文本相似度最高的开源许可证作为所述检测文本涉及的开源许可证。
可选的,所述匹配单元403,还用于将检测出的多个开源许可证进行冲突匹配,确定所述检测出的多个开源许可证之间的第二冲突;
所述报告单元404,还用于根据所述第二冲突生成第二风险评估报告。
可选的,所述匹配单元403,还用于:
确定所述第一冲突对应的风险等级;
确定所述第二冲突对应的风险等级。
可选的,所述接收单元401,还用于接收开源许可证的标识和/或片段;
所述匹配单元403,还用于根据所述标识和/或片段,从数据库中确定出对应的开源许可证;
可选的,所述报告单元404,还用于根据所述对应的开源许可证生成许可证列表。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (10)
1.一种开源许可证的评估方法,其特征在于,包括:
接收待测文件和规划条件;
检测所述待测文件涉及的开源许可证;
将检测出的开源许可证与所述规划条件进行冲突匹配,确定所述检测出的开源许可证与所述规划条件之间的第一冲突;
根据所述第一冲突生成第一风险评估报告。
2.如权利要求1所述的方法,其特征在于,所述检测所述待测文件涉及的开源许可证,包括:
所述待测文件包括多个检测文本,针对一个检测文本,利用k-shingle算法确定所述检测文本的词汇表;
统计所述词汇表中各个词语在所述检测文本中的词频,确定所述检测文本的第一特征矩阵;
针对数据库中存储的一个开源许可证,确定所述词汇表中各个词语在所述开源许可证中的词频,从而确定所述开源许可证的第二特征矩阵;
根据所述第一特征矩阵和所述第二特征矩阵,计算所述检测文本与所述开源许可证之间的文本相似度;
将文本相似度最高的开源许可证作为所述检测文本涉及的开源许可证。
3.如权利要求1或2所述的方法,其特征在于,所述检测所述待测文件涉及的开源许可证之后,还包括:
将检测出的多个开源许可证进行冲突匹配,确定所述检测出的多个开源许可证之间的第二冲突;
根据所述第二冲突生成第二风险评估报告。
4.如权利要求3所述的方法,其特征在于,所述确定所述检测出的开源许可证与所述规划条件之间的第一冲突之后,还包括:
确定所述第一冲突对应的风险等级;
所述确定所述检测出的多个开源许可证之间的第二冲突之后,还包括:
确定所述第二冲突对应的风险等级。
5.如权利要求1所述的方法,其特征在于,还包括:
接收开源许可证的标识和/或片段;
根据所述标识和/或片段,从数据库中确定出对应的开源许可证;
根据所述对应的开源许可证生成许可证列表。
6.一种开源许可证的评估装置,其特征在于,包括:
接收单元,用于接收待测文件和规划条件;
检测单元,用于检测所述待测文件涉及的开源许可证;
匹配单元,用于将检测出的开源许可证与所述规划条件进行冲突匹配,确定所述检测出的开源许可证与所述规划条件之间的第一冲突;
报告单元,用于根据所述第一冲突生成第一风险评估报告。
7.如权利要求6所述的装置,其特征在于,所述检测单元,具体用于:
所述待测文件包括多个检测文本,针对一个检测文本,利用k-shingle算法确定所述检测文本的词汇表;
统计所述词汇表中各个词语在所述检测文本中的词频,确定所述检测文本的第一特征矩阵;
针对数据库中存储的一个开源许可证,确定所述词汇表中各个词语在所述开源许可证中的词频,从而确定所述开源许可证的第二特征矩阵;
根据所述第一特征矩阵和所述第二特征矩阵,计算所述检测文本与所述开源许可证之间的文本相似度;
将文本相似度最高的开源许可证作为所述检测文本涉及的开源许可证。
8.如权利要求6或7所述的装置,其特征在于,
所述匹配单元,还用于将检测出的多个开源许可证进行冲突匹配,确定所述检测出的多个开源许可证之间的第二冲突;
所述报告单元,还用于根据所述第二冲突生成第二风险评估报告。
9.如权利要求8所述的装置,其特征在于,所述匹配单元,还用于:
确定所述第一冲突对应的风险等级;
确定所述第二冲突对应的风险等级。
10.如权利要求6所述的装置,其特征在于,
所述接收单元,还用于接收开源许可证的标识和/或片段;
所述匹配单元,还用于根据所述标识和/或片段,从数据库中确定出对应的开源许可证;
所述报告单元,还用于根据所述对应的开源许可证生成许可证列表。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710081702.0A CN106934254B (zh) | 2017-02-15 | 2017-02-15 | 一种开源许可证的分析方法及装置 |
EP17896537.2A EP3584728B1 (en) | 2017-02-15 | 2017-11-15 | Method and device for analyzing open-source license |
PCT/CN2017/111095 WO2018149187A1 (zh) | 2017-02-15 | 2017-11-15 | 一种开源许可证的分析方法及装置 |
US16/485,358 US10942733B2 (en) | 2017-02-15 | 2017-11-15 | Open-source-license analyzing method and apparatus |
TW107103031A TWI662431B (zh) | 2017-02-15 | 2018-01-29 | 一種開源許可證的分析方法及裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710081702.0A CN106934254B (zh) | 2017-02-15 | 2017-02-15 | 一种开源许可证的分析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106934254A true CN106934254A (zh) | 2017-07-07 |
CN106934254B CN106934254B (zh) | 2020-05-26 |
Family
ID=59424093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710081702.0A Active CN106934254B (zh) | 2017-02-15 | 2017-02-15 | 一种开源许可证的分析方法及装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10942733B2 (zh) |
EP (1) | EP3584728B1 (zh) |
CN (1) | CN106934254B (zh) |
TW (1) | TWI662431B (zh) |
WO (1) | WO2018149187A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018149187A1 (zh) * | 2017-02-15 | 2018-08-23 | 中国银联股份有限公司 | 一种开源许可证的分析方法及装置 |
CN108984391A (zh) * | 2018-06-06 | 2018-12-11 | 优视科技有限公司 | 应用程序的分析方法、装置及电子设备 |
CN109063421A (zh) * | 2018-06-28 | 2018-12-21 | 东南大学 | 一种开源许可证合规性分析与冲突性检测方法 |
CN110826834A (zh) * | 2018-08-14 | 2020-02-21 | 中国石油天然气股份有限公司 | 不同职责分离规则集之间的比对方法及装置 |
CN111291331A (zh) * | 2019-06-27 | 2020-06-16 | 北京关键科技股份有限公司 | 混源文件许可冲突检测方法 |
CN111400672A (zh) * | 2020-03-18 | 2020-07-10 | 中国信息安全测评中心 | 一种开源软件的监测方法及装置 |
CN112084309A (zh) * | 2020-09-17 | 2020-12-15 | 北京中科微澜科技有限公司 | 基于开源软件图谱的许可证选取方法和系统 |
CN113282965A (zh) * | 2021-05-20 | 2021-08-20 | 苏州棱镜七彩信息科技有限公司 | 开源许可证和版权信息篡改的检测方法及系统 |
CN115080924A (zh) * | 2022-07-25 | 2022-09-20 | 南开大学 | 一种基于自然语言理解的软件许可证条款抽取方法 |
CN118051889A (zh) * | 2024-04-16 | 2024-05-17 | 北京安普诺信息技术有限公司 | 基于llm的sca许可证风险分析方法、装置及设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268713A (zh) * | 2021-06-03 | 2021-08-17 | 西南大学 | 基于软件依赖的开源软件许可证选择方法 |
JP7055232B1 (ja) * | 2021-08-24 | 2022-04-15 | ビジョナル・インキュベーション株式会社 | 処理装置及び処理方法 |
CN116302042B (zh) * | 2023-05-25 | 2023-09-15 | 南方电网数字电网研究院有限公司 | 协议要素内容推荐方法、装置和计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101223549A (zh) * | 2005-07-14 | 2008-07-16 | 微软公司 | 根据多个许可证的聚集来操作的数字应用程序 |
US8589306B1 (en) * | 2011-11-21 | 2013-11-19 | Forst Brown Todd LLC | Open source license management |
US20140115720A1 (en) * | 2012-10-19 | 2014-04-24 | Samsung Electronics Co., Ltd. | License verification method and apparatus |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040068734A1 (en) * | 2002-10-07 | 2004-04-08 | Microsoft Corporation | Software license isolation layer |
US10437964B2 (en) * | 2003-10-24 | 2019-10-08 | Microsoft Technology Licensing, Llc | Programming interface for licensing |
US9489687B2 (en) * | 2003-12-04 | 2016-11-08 | Black Duck Software, Inc. | Methods and systems for managing software development |
US8700533B2 (en) * | 2003-12-04 | 2014-04-15 | Black Duck Software, Inc. | Authenticating licenses for legally-protectable content based on license profiles and content identifiers |
US7747533B2 (en) * | 2005-07-14 | 2010-06-29 | Microsoft Corporation | Digital application operating according to aggregation of plurality of licenses |
US8359655B1 (en) * | 2008-10-03 | 2013-01-22 | Pham Andrew T | Software code analysis and classification system and method |
US9020857B2 (en) * | 2009-02-11 | 2015-04-28 | Johnathan C. Mun | Integrated risk management process |
CN101651564B (zh) * | 2009-09-08 | 2011-07-06 | 杭州华三通信技术有限公司 | 一种许可证检测方法、分布式网管系统和服务器 |
US8875301B2 (en) * | 2011-10-12 | 2014-10-28 | Hewlett-Packard Development Company, L. P. | Software license incompatibility determination |
US9424401B2 (en) * | 2012-03-15 | 2016-08-23 | Microsoft Technology Licensing, Llc | Automated license management |
FR3009634B1 (fr) * | 2013-08-09 | 2015-08-21 | Viaccess Sa | Procede de fourniture d'une licence dans un systeme de fourniture de contenus multimedias |
CN103440441A (zh) * | 2013-08-28 | 2013-12-11 | 北京华胜天成科技股份有限公司 | 软件保护的方法及系统 |
CN106934254B (zh) * | 2017-02-15 | 2020-05-26 | 中国银联股份有限公司 | 一种开源许可证的分析方法及装置 |
-
2017
- 2017-02-15 CN CN201710081702.0A patent/CN106934254B/zh active Active
- 2017-11-15 WO PCT/CN2017/111095 patent/WO2018149187A1/zh unknown
- 2017-11-15 EP EP17896537.2A patent/EP3584728B1/en active Active
- 2017-11-15 US US16/485,358 patent/US10942733B2/en active Active
-
2018
- 2018-01-29 TW TW107103031A patent/TWI662431B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101223549A (zh) * | 2005-07-14 | 2008-07-16 | 微软公司 | 根据多个许可证的聚集来操作的数字应用程序 |
US8589306B1 (en) * | 2011-11-21 | 2013-11-19 | Forst Brown Todd LLC | Open source license management |
US20140115720A1 (en) * | 2012-10-19 | 2014-04-24 | Samsung Electronics Co., Ltd. | License verification method and apparatus |
Non-Patent Citations (3)
Title |
---|
YUHAO WU等: "A Method to Detect License Inconsistencies in Large-Scale Open Source Projects", 《2015 IEEE/ACM 12TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES》 * |
许洪波等: "开源许可证检测系统的研究", 《计算机应用研究》 * |
魏诗云等: "网页近似重复检测算法研究", 《计算机光盘软件与应用》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10942733B2 (en) | 2017-02-15 | 2021-03-09 | China Unionpay Co., Ltd. | Open-source-license analyzing method and apparatus |
WO2018149187A1 (zh) * | 2017-02-15 | 2018-08-23 | 中国银联股份有限公司 | 一种开源许可证的分析方法及装置 |
CN108984391A (zh) * | 2018-06-06 | 2018-12-11 | 优视科技有限公司 | 应用程序的分析方法、装置及电子设备 |
CN109063421A (zh) * | 2018-06-28 | 2018-12-21 | 东南大学 | 一种开源许可证合规性分析与冲突性检测方法 |
CN109063421B (zh) * | 2018-06-28 | 2022-03-04 | 东南大学 | 一种开源许可证合规性分析与冲突性检测方法 |
CN110826834B (zh) * | 2018-08-14 | 2023-04-18 | 中国石油天然气股份有限公司 | 不同职责分离规则集之间的比对方法及装置 |
CN110826834A (zh) * | 2018-08-14 | 2020-02-21 | 中国石油天然气股份有限公司 | 不同职责分离规则集之间的比对方法及装置 |
CN111291331A (zh) * | 2019-06-27 | 2020-06-16 | 北京关键科技股份有限公司 | 混源文件许可冲突检测方法 |
CN111291331B (zh) * | 2019-06-27 | 2022-02-22 | 北京关键科技股份有限公司 | 混源文件许可冲突检测方法 |
CN111400672A (zh) * | 2020-03-18 | 2020-07-10 | 中国信息安全测评中心 | 一种开源软件的监测方法及装置 |
CN112084309A (zh) * | 2020-09-17 | 2020-12-15 | 北京中科微澜科技有限公司 | 基于开源软件图谱的许可证选取方法和系统 |
CN112084309B (zh) * | 2020-09-17 | 2024-06-04 | 北京中科微澜科技有限公司 | 基于开源软件图谱的许可证选取方法和系统 |
CN113282965A (zh) * | 2021-05-20 | 2021-08-20 | 苏州棱镜七彩信息科技有限公司 | 开源许可证和版权信息篡改的检测方法及系统 |
CN115080924B (zh) * | 2022-07-25 | 2022-11-15 | 南开大学 | 一种基于自然语言理解的软件许可证条款抽取方法 |
CN115080924A (zh) * | 2022-07-25 | 2022-09-20 | 南开大学 | 一种基于自然语言理解的软件许可证条款抽取方法 |
CN118051889A (zh) * | 2024-04-16 | 2024-05-17 | 北京安普诺信息技术有限公司 | 基于llm的sca许可证风险分析方法、装置及设备 |
CN118051889B (zh) * | 2024-04-16 | 2024-08-02 | 北京安普诺信息技术有限公司 | 基于llm的sca许可证风险分析方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2018149187A1 (zh) | 2018-08-23 |
EP3584728A4 (en) | 2020-05-20 |
EP3584728B1 (en) | 2022-05-04 |
EP3584728A1 (en) | 2019-12-25 |
TW201832118A (zh) | 2018-09-01 |
TWI662431B (zh) | 2019-06-11 |
CN106934254B (zh) | 2020-05-26 |
US20200026512A1 (en) | 2020-01-23 |
US10942733B2 (en) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106934254A (zh) | 一种开源许可证的分析方法及装置 | |
Zohair et al. | Prediction of Student’s performance by modelling small dataset size | |
CN110223168B (zh) | 一种基于企业关系图谱的标签传播反欺诈检测方法及系统 | |
CN111639497B (zh) | 一种基于大数据机器学习的异常行为发现方法 | |
CN104391860B (zh) | 内容类别检测方法及装置 | |
WO2019019630A1 (zh) | 反欺诈识别方法、存储介质、承载平安脑的服务器及装置 | |
CN106708738B (zh) | 一种软件测试缺陷预测方法及系统 | |
WO2016177069A1 (zh) | 一种管理方法、装置、垃圾短信监控系统及计算机存储介质 | |
CN110990529B (zh) | 企业的行业明细划分方法及系统 | |
US20160239766A1 (en) | Systems, methods, and user interfaces for evaluating quality, health, safety, and environment data | |
CN110310012B (zh) | 数据分析方法、装置、设备及计算机可读存储介质 | |
CN114448657B (zh) | 一种配电通信网络安全态势感知与异常入侵检测方法 | |
CN116414815A (zh) | 数据质量检测方法、装置、计算机设备和存储介质 | |
CN112069069A (zh) | 缺陷自动定位分析方法、设备及可读存储介质 | |
CN111078512A (zh) | 告警记录生成方法、装置、告警设备及存储介质 | |
CN113807728A (zh) | 基于神经网络的绩效考核方法、装置、设备及存储介质 | |
WO2017156399A1 (en) | Systems, methods, and user interfaces for evaluating quality, health, safety, and environment data | |
CN116739764A (zh) | 一种基于机器学习的交易风险检测方法、装置、设备及介质 | |
El Bekri et al. | Assuring data quality by placing the user in the loop | |
US20240152818A1 (en) | Methods for mitigation of algorithmic bias discrimination, proxy discrimination and disparate impact | |
CN112506930B (zh) | 一种基于机器学习技术的数据洞察系统 | |
de Sousa et al. | Integrated detection and localization of concept drifts in process mining with batch and stream trace clustering support | |
CN113590825A (zh) | 文本质检方法、装置及相关设备 | |
Qiu | [Retracted] Application of Software Data Analysis Model Based on K‐Means Clustering Algorithm | |
Presser et al. | A scope classification of data quality requirements for food composition data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1239904 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |