[发明专利]软件项目知识图谱自动构造方法与系统在审
申请号: | 201711307630.3 | 申请日: | 2017-12-11 |
公开(公告)号: | CN108196880A | 公开(公告)日: | 2018-06-22 |
发明(设计)人: | 谢冰;沈琦;林泽琦;邹艳珍;赵俊峰 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F8/74 | 分类号: | G06F8/74 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 邱晓锋 |
地址: | 100871 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件项目 基础知识 图谱 关联 软件资源 自动构造 解析 数据库 存储 提炼 插件形式 多源异构 可扩展性 原始软件 资源数据 插件 | ||
1.一种软件项目知识图谱自动构造方法,其特征在于,包括以下步骤:
1)对原始软件资源数据进行解析,得到软件项目的基础知识实体及其关联,并将基础知识实体及其关联以顶点和边的形式存储在图数据库中;
2)在已有基础知识实体及其关联的基础上,采用知识提炼方法在实体之间建立新的关联,和/或在知识图谱中添加新的基础知识实体及其关联,并以顶点和边的形式存储在图数据库中;
3)选择步骤1)、步骤2)得到的部分或全部基础知识实体及其关联,构成软件项目知识图谱。
2.如权利要求1所述的方法,其特征在于,步骤1)中每种软件资源数据的解析方法以插件形式存在,步骤2)中的知识提炼方法以插件形式存在,步骤3)通过选择并运行需要的插件来生成软件项目知识图谱。
3.如权利要求2所述的方法,其特征在于,基于开源的Spring框架实现软件项目知识图谱的自动构造,支持动态灵活地添加两种类型的插件:数据解析插件和知识提炼插件。
4.如权利要求1至3中任一权利要求所述的方法,其特征在于,步骤1)包括软件项目源代码解析、软件项目问答文档解析和软件项目需求/设计文档解析。
5.如权利要求4所述的方法,其特征在于,所述软件项目源代码解析包括以下步骤:
1-1-1)将Java编写的软件项目源代码解析为抽象语法树;
1-1-2)遍历抽象语法树,记录代码中代码元素信息;
1-1-3)在图数据库中添加4种类型的顶点:类、方法、接口、域,以及6种关联:类和类之间的继承关联、类和接口之间的实现关联、类和方法之间的包含关联、类和域之间的包含关联、方法和方法之间的调用关联、方法和域之间的调用关联;每种类型的顶点都有对应的属性值。
6.如权利要求4所述的方法,其特征在于,所述软件项目问答文档解析包括以下步骤:
1-2-1)从XML格式的归档文件中根据标签提取项目相关Post和User;
1-2-2)根据Post ID和User ID,将多个Post组织成一个问答文档,每个问答文档包含一个问题,0个或多个回答,每个问题和回答都有唯一的作者及若干评论;
1-2-3)遍历所有的问答文档,在图数据库中添加4种类型的顶点:问题、回答、评论、用户,以及4种关联:问题和回答之间的回复关联、问题/回答和评论之间的评论关联、问题/回答和用户之间的作者关联、问题和问题之间的重复关联。
7.如权利要求4所述的方法,其特征在于,所述软件项目需求/设计文档解析,要求文档格式为微软Office Word文档,在存放文档的根目录下标明该目录下是需求文档或设计文档,包括以下步骤:
1-3-1)递归搜索文档根目录下的文件,如果后缀名是“.docx”则执行1-3-2),否则跳过该文件;
1-3-2)对.docx格式的文件进行解析,解析后的每个文档是由多个章节组成的树形结构,每个章节下细分为三种类型的节点:纯文本、表格、子章节;
1-3-3)遍历单个文档所对应的结构树,在图数据库中添加4种类型的顶点:文档、文档章节、文档表格、文档纯文本,其中文档类型节点含有一个文档类型属性,根据根目录的信息可设置为需求/设计;同时在图数据库种添加1种关联:包含关联,表示文档和章节、章节和子章节、章节和纯文本、章节和表格之间的从属关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711307630.3/1.html,转载请声明来源钻瓜专利网。