当前位置: 首页 > 专利查询>复旦大学专利>正文

一种基于知识图谱的API元素比较结果自动生成方法技术

技术编号:26762647 阅读:23 留言:0更新日期:2020-12-18 23:14
本发明专利技术属于软件工程技术领域,具体为一种基于知识图谱的API元素比较结果自动生成方法。本发明专利技术基本步骤为:从API参考文档中抽取API结构知识作为知识图谱的骨架;从API结构知识中以及API元素对应的描述性句子中抽取出8种不同类型的知识;通过引入通用词典、通用知识图谱外部知识实现概念和关系的扩展,将从不同来源抽取出来的表达方式有差异的API知识进行融合;利用对齐的方式为给定的一对API元素生成一个表格形式的比较结果。本发明专利技术为软件开发人员提供了一种从API功能、特性、概念等不同维度进行API元素比较的方式,开发人员能够快速地了解API元素的共性和差异,从而能更快速准确地选择满足当前开发需求的API元素和学习API相关知识。

【技术实现步骤摘要】
一种基于知识图谱的API元素比较结果自动生成方法
本专利技术属于软件工程
,具体涉及一种基于知识图谱的API元素比较结果自动生成方法。
技术介绍
框架和库通常提供具有相似功能但是又细微差别的API元素,忽视相似API元素的差异可能会导致一些编程错误,例如JDK提供了两个具有相似功能的API类,java.lang.StringBuffer和java.lang.StringBuilder,前者可以在多线程情况下使用而后者不能。因此开发者经常关心于相似API元素的比较,比如截至2019年5月3日,编程问答网站StackOverflow有13,228个带有java标签的问题,其中38%的问题没有接受答案。实际上API参考文档包含了丰富的关于API元素不同方面的知识,如API的功能,API的特性,API的概念分类等,可以用来直接用来回答API比较的问题。但是自动地获取和利用这些API知识并且用来解决API元素比较问题是一个挑战。首先API知识散布在API参考文档地不同地方,即使是同一个API的知识也可能会跨越多个API的文档,并且API知识隐藏在非本文档来自技高网...

【技术保护点】
1.一种基于知识图谱的API元素比较结果自动生成方法,其特征在于,基于通用API的参考文档自动化地构造API知识图谱,通过API知识图谱中的结构化规范化表示的API知识来支持API元素比较,自动生成结果;具体步骤为:/n首先,从API参考文档中抽取API结构知识作为知识图谱的骨架,API结构知识包括API包、类、接口、方法这些API元素的定义声明和API元素之间的包含、实现的结构关系;/n然后,从API结构知识中以及API元素对应的描述性句子中,抽取出可以用来回答API比问题的8种不同类型的知识,这8种不同类型的API知识是:概念分类、成员关系、功能说明、表现说明、功能比较、特性说明、特性比较...

【技术特征摘要】
1.一种基于知识图谱的API元素比较结果自动生成方法,其特征在于,基于通用API的参考文档自动化地构造API知识图谱,通过API知识图谱中的结构化规范化表示的API知识来支持API元素比较,自动生成结果;具体步骤为:
首先,从API参考文档中抽取API结构知识作为知识图谱的骨架,API结构知识包括API包、类、接口、方法这些API元素的定义声明和API元素之间的包含、实现的结构关系;
然后,从API结构知识中以及API元素对应的描述性句子中,抽取出可以用来回答API比问题的8种不同类型的知识,这8种不同类型的API知识是:概念分类、成员关系、功能说明、表现说明、功能比较、特性说明、特性比较和约束;
然后,通过引入通用词典、通用知识图谱这些外部知识来实现概念和关系的扩展,将从不同来源抽取出来的表达方式有差异的API知识进行融合,以便在API比较的时候相似的API知识能够进行更好地对齐;
最后,基于API知识图谱,利用对齐的方式来为给定的一对API元素(两个API方法或者两个API类)生成一个表格形式的比较结果,整个比较结果展示两个API的共性和差异。


2.根据权利要求1所述的基于知识图谱的API元素比较结果自动生成方法,其特征在于,具体操作分为两个部分:离线的API知识图谱的构建,在线的API比较服务;其中:
离线API知识图谱的构建,是根据API库的参考文档,构建得到API知识图谱,具体流程为:API结构抽取;API描述性句子抽取;API知识抽取;概念和关系扩展;
在线API比较服务,是根据一对要比较的API类/方法和构建好的API知识图谱,得到API比较结果表格,具体流程为:API知识对齐;API比较及结果生成。


3.根据权利要求2所述的基于知识图谱的API元素比较结果自动生成方法,其特征在于,所述API结构抽取的流程为:
首先,定义API知识图谱中包含的API元素和这些元素之间的结构关系;API元素包括API包、类、接口、方法、属性、异常、方法参数与返回值,API元素结构关系包括继承关系、实现关系、包含关系;
然后,用网页爬虫自动化地爬取API参考文档;基于API参考文档,通过设计一个网页包装器,自动化地从网页结构中抽取需要的API元素和API元素之间结构关系,从而得到API知识图谱的骨架。


4.根据权利要求3所述的基于知识图谱的API元素比较结果自动生成方法,其特征在于,所述API描述性句子抽取的流程为:
对于API参考文档中的API描述文本,首先经过分词、分句预处理,得到原始的描述性句子的集合;然后为了减少噪音,过滤掉少于三个词的句子或者包含代码片段的句子;之后,用一个自然语言处理工具来识别不完整的句子,如果其缺少主语,将句子属于的API元素的权限定名补全在句子的开头,如果同时缺少谓语,则在主语后面补充一个默认谓语“is”;为了更好地将句子和对应的API关联起来,让句子的语义更加完整,在识别句子里面以各种别名形式对于API元素的指代,将其替换成API的全限定名,以及利用自然语言处理工具中的指代消解模块来将指代API元素的代词替换成指代的API元素的全限定名。


5.根据权利要求4所述的基于知识图谱的API元素比较结果自动生成方法,其特征在于,所述API知识抽取的流程为:
利用设计的一系列启发式规则,从API描述性句子和从API结构中抽取API知识:
针对API描述性句子,定义一系列模板,每个模板描述某种特定的语言学描述模式,与一种API知识对应;并且每个模板有对应的代码来按照API知识的高层概念模型提取API知识的组成成分;对于一个API描述性句子,首先将其解析成简单句,对于每个简单句,识别其匹配的模板,然后用匹配的模板提取对应的API知识;
针对API结构,根据以下规则对API元素的名称及其继承、实现关系进行分析并抽取功能说明、特性说明、概念分类、成员关系这些API知识,然后加入到API知识图谱中,并与对应的API元素建立关系;
规则1:从类/接口名称中抽取功能说明:如果一个类/接口C的名称是一个名词N1加上一个可以转变成动词V的名词N2,那么为C抽取一个功能说明,其动作是由名词N2转变成的动词V,对象是起始的名词N1;
规则2:从方法名称中抽取功能说明:如果一个方法M的名称是一个动词V加上一到多个名词N,那么为M抽取一个功能说明,其动作动词V,对象是一到多个名词N;
规则3:从类/接口名称中抽取特性说明:如果一个类/接口C的名称包含形容词,那么就为C抽取一个特性说明,其特性表达式是这个形容词;
规则4:从继承实现关系中抽取特性说明:如果一个类/接口C1继承或者实现了另外一个接口/类C2,并且C2的名称是以形容词结尾的,那...

【专利技术属性】
技术研发人员:彭鑫刘名威赵文耘
申请(专利权)人:复旦大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1