基于图模型的软件项目语义信息表示及检索方法

文档序号:6544180阅读:246来源:国知局
基于图模型的软件项目语义信息表示及检索方法
【专利摘要】本发明涉及一种软件项目语义信息的表示及检索方法,尤其是涉及一种采用图模型表示和检索软件项目语义信息的方法。包括:抽取软件项目信息的步骤:从软件项目资源中抽取结构化信息本体和无结构信息本体;存储结构化信息本体的步骤:将结构化信息本体以图模型库形式进行表示和存储;存储无结构信息的步骤:以文件形式存储无结构信息本体,并建立结化信息本体和无结构信息本体之间的关联关系。因此,本发明具有如下优点:1.分别采用图模型和文本索引技术组织存储结构化信息和无结构信息,使数据间关联的表示更加灵活;2.基于图模型、文本索引、关联机制提供综合的问题查询方法,对问题的查询定位更加准确。
【专利说明】基于图模型的软件项目语义信息表示及检索方法
【技术领域】
[0001]本发明涉及一种软件项目语义信息的表示及检索方法,尤其是涉及一种采用图模型表不和检索软件项目语义息的方法。
【背景技术】
[0002]在软件开发中,软件代码、文档等的存储往往以传统的文件系统、关系型数据库等形式为主,对文档中蕴含的语义信息不进行处理和明确的表示。但是,软件代码和文档中提供了理解该软件的重要资源,其中包含了软件业务领域的需求分析、软件的系统架构、程序结构、软件功能的实现流程、软件使用方法等信息,这些包含了描述软件项目语义的信息,对于项目开发者理解软件业务需求、参与代码编写都有重要作用。
[0003]目前,关于表示软件项目资源中的语义信息的现有技术主要有基于NOSQL(NotOnly SQL)数据库的表示方式和基于语义网表技术的表示方式,但是这些技术的局限之处在于语义网的描述框架的使用和构造存在一定难度,尚未有软件工程领域的应用技术。
[0004]因此,对软件构件、软件系统或项目的代码、文档等资源进行深入分析,对其中蕴含的软件项目语义信息进行清晰合理的展示,进而帮助软件复用者、开发者更容易地理解软件项目,是一项亟待解决的问题,对于软件开发效率的提高具有重要意义。。

【发明内容】

[0005]本发明主要是解决现有技术中所存在的缺乏有效表示软件项目文档中所蕴含的丰富语义信息的表示和处理方法等问题,提供了一种软件项目语义信息的表示方法,该方法可以对代码、文档等各类软件资源中蕴含的语义信息进行整合、关联、存储和查询,以帮助软件开发者、复用者对软件项目资源进行更深入的理解,并帮助解决实际开发中可能遇到的问题。
[0006]本发明还有一目的是解决现有技术中所存在的缺乏有效查找软件项目中与语义相关的文档代码等问题,提供了一种对基于图模型表示的软件项目语义信息进行检索的方法。该方法将图模型查询技术、文本索引检索技术、关联定位技术相结合,能基于软件项目语义信息快速进行检索。
[0007]本发明的上述技术问题主要是通过下述技术方案得以解决的:
[0008]一种基于图模型的软件项目语义信息表示方法,包括:
[0009]抽取软件项目信息的步骤:从软件项目资源中抽取结构化信息本体和无结构信息本体;
[0010]存储结构化信息本体的步骤:将结构化信息本体以图数据库形式进行表示和存储;
[0011]存储无结构信息的步骤:以文件形式存储无结构信息本体,并建立结化信息本体和无结构信息本体之间的关联关系。
[0012]优化的,上述的一种基于图模型的软件项目语义信息表示方法,所述抽取软件项目信息的步骤进一步包括以下子步骤:
[0013]步骤2.1:将结构化信息本体构建成一个抽象语法树,结构化信息本体的每个元素都对应一个抽象语法树上的结点;
[0014]步骤2.2:根据步骤2.1中构建的语法树上的结点所包含的具体元素内容,构建抽象语法树各结点之间的关系;
[0015]步骤2.3:将步骤2.1中构建的语法树上的结点和步骤2.2中构建的各结点之间的关系储存在数据库中。
[0016]优化的,上述一种基于图模型的软件项目语义信息表示方法,所述结构化信息本体是项目代码,所述步骤2.2中构建的抽象语法树各结点之间的关系是项目代码中的继承、包含、依赖、调用、实现关系中的一种或多种。
[0017]优化的,上述一种基于图模型的软件项目语义信息表示方法,所述存储结构化信息本体的步骤进一步包括以下子步骤:
[0018]步骤4.1:为每一类结构化信息本体建立图数据库中的本体类型以及每一类本体包含的具体属性;
[0019]步骤4.2:对于每一个结构化信息本体,在图数据库中建立相应的实体,并存储其具体的属性值;
[0020]步骤4.3:为每一类结构化信息本体之间的关系建立图数据库中的关系类型以及每一类关系包含具体的属性;
[0021]步骤4.4:为每一个结构化信息本体之间的关系,在图数据库中建立相应的关系,并存储其具体的属性值,关系两端是步骤4.2中建立的实体。
[0022]优化的,上述一种基于图模型的软件项目语义信息表示方法,所述存储无结构信息的步骤进一步包括以下子步骤:
[0023]步骤5.1:在图数据库中建立用来表示无结构本体的文档类型以及用来表示结构化信息本体和无结构信息本体之间关联的关系类型;
[0024]步骤5.2:将无结构信息按照步骤5.1所建立的文档类型进行存储并建立表示无结构文本与该无结构文本在图模型库中存储的无结构信息本体之间对应关系的索引表;
[0025]步骤5.3:提取步骤5.2中存储的无结构信息本体中所包含的元素,若所述元素存在于存储结构化信息本体的步骤中所存储的结构化信息本体中,则在对应的无结构信息本体和结构化信息本体之间建立一个步骤5.1所述的关系类型的属性值。
[0026]一种对基于图模型表示的软件项目语义信息进行检索的方法,包括以下步骤:
[0027]构造查询请求的步骤:根据待检索问题构造图模型查询请求和无结构信息的查询请求;
[0028]无结构信息的查询步骤:在无结构信息中处理无结构信息的查询请求,获取查询结果;
[0029]关联结点的定位步骤:采用关联定位技术查询无结构信息与图模型的关联关系,并定位到关联节点;
[0030]图模型查询的步骤:在图数据库中根据图模型查询请求对所定位关联节点进行查询,返回数据模型的查询子图,并将关联结点的定位步骤中与结构化信息本体关联的无结构信息作为描述性补充信息。[0031]优化的,上述的一种对基于图模型表示的软件项目语义信息进行检索的方法,所述关联结点的定位步骤进一步包括以下子步骤:
[0032]步骤7.1:通过无结构文本与该无结构文本在图数据库中存储的本体之间对应关系的索引表,在图数据库中找出无结构文本本体;
[0033]步骤7.2:对无结构文本进行词法分析和句法分析,识别其中的查询关键词或查询目标,并结合步骤7.1中找出的图数据库中的文本本体,构造相应的查询语句;
[0034]步骤7.3:根据步骤7.2中生成的查询语句,并按照指定的图查询参数,在图数据库中查询无结构文本相关联的关联结点。
[0035]优化的,上述的一种对基于图模型表示的软件项目语义信息进行检索的方法,在所述图模型查询的步骤中,首先解析受限的自然语言查询语句,若查询语句句法正确则继续执行以下子步骤:
[0036]步骤8.1:将解析结果规整为结构化的数据库查询指令;
[0037]步骤8.2:将数据库查询指令编译为图数据库的通用查询语句并执行该查询语句,返回由关联节点构成的连通子图;
[0038]步骤8.3:将步骤8.2得到的子图可视化;
[0039]步骤8.4:呈现子步骤8.3中的连通子图的各个节点所关联到的非结构化文本信
肩、O
[0040]优化的,上述的一种对基于图模型表示的软件项目语义信息进行检索的方法,在所述图模型查询的步骤中,首先解析受限的自然语言查询语句,若查询语句句法错误则继续执行以下子步骤:
[0041]步骤9.1:根据自然语言文本之间的相似度算法,计算自然语言查询语句与图数据库中结构化信息本体之间的相似度,返回图数据库中与自然语言查询语句相似度最高的节点作为关联的节点;
[0042]步骤9.2:通过展开步骤9.1中返回的关联节点的邻接节点的方式或通过计算步骤9.1中返回的关联节点子图相似度的方式,在图数据库中找到关联节点的连通子图作为结果;
[0043]步骤9.3:将步骤9.2所得到的连通子图可视化;
[0044]步骤9.4:呈现子步骤9.3中的连通子图的各个节点所关联到的非结构化文本信
肩、O
[0045]因此,本发明具有如下优点:1.分别采用图模型和文本索引技术组织存储结构化信息和无结构信息,使数据间关联的表示更加灵活;2.基于图模型、文本索引、关联机制提供综合的问题查询方法,对问题的查询定位更加准确。
【专利附图】

【附图说明】
[0046]附图1是实施例1抽取软件项目信息步骤的流程图。
[0047]附图2是实施例1存储结构化信息本体步骤的流程图。
[0048]附图3是实施例1存储无结构信息步骤的流程图。
【具体实施方式】[0049]实施例1:
[0050]参照图1,抽取软件项目信息:对项目代码进行静态分析,从软件项目的代码、文档资源中抽取结构化信息本体和无结构信息本体。
[0051]结构化信息是指根据预先定义的数据模型,或者客观存在的组织形式进行存储和表达的信息。例如,软件代码是按照程序语言语法表达的结构化信息,软件项目的开发者邮件包含收、发件人,邮件主题,发送时间等固定内容的结构化信息,软件用户文档的章节是符合文档撰写习惯的结构化信息。
[0052]无结构信息是指不具备结构化特征的信息,例如,无组织的纯自然语言文本段落。
[0053]在本实施例中,结构化信息本体是指项目代码。该抽取软件项目信息的步骤进一步包括以下子步骤:
[0054]步骤2.1:将结构化信息本体构建成一个DOM结构的抽象语法树,结构化信息本体的每个元素都对应一个抽象语法树上的结点;
[0055]步骤2.2:根据步骤2.1中构建的语法树上的结点所包含的具体元素内容,构建抽象语法树各结点之间的关系,如继承、包含、依赖、调用、实现等关系中的一种或多种。
[0056]步骤2.3:将步骤2.1中构建的语法树上的结点和步骤2中构建的各结点之间的关系储存在SQL数据库之中。
[0057]在完成抽取软件项目信息的步骤之后,进入如图2所示的存储结构化信息本体的步骤,将抽取软件项目信息步骤中提取出的代码元素以及它们之间的关系以图数据库的形式存储,该步骤进一步包括以下子步骤:
[0058]步骤4.1:为每一类代码元素建立图数据库中的本体类型,每一类本体包含具体的属性;
[0059]步骤4.2:对于提取出的每一个代码元素,在图数据库中建立相应的实体,并存储其具体的属性值;
[0060]步骤4.3:为每一类代码元素之间的关系建立图数据库中的关系类型,每一类关系包含具体的属性;
[0061]步骤4.4:为每一个代码元素之间的关系,在图数据库中建立相应的关系,并存储其具体的属性值,关系两端是4.2中建立的实体。
[0062]在完成存储无结构信息的步骤之后,进入如图3所示的存储无结构信息的步骤,将项目相关文档存储在图模型库中,并以代码元素为核心建立它们之间的关联。该步骤进一步包括以下子步骤:
[0063]步骤5.1:在图模型库中建立用来表示文档本体的文档类型以及用来表示代码元素本体和文档本体之间关联的关系类型;
[0064]步骤5.2:将每一个文档按照步骤5.1所建立的文档类型以倒排索引的方式进行组织和存储。
[0065]步骤5.3:提取步骤5.2中存储的文档本体中所包含的代码元素,若该代码元素存在于步骤5.2建立的实体中,则在对应的文档本体和5.2建立的实体之间建立一个“关联”关系,并存储其属性值。
[0066]本实施例还支持对所抽取并基于图模型表示的软件项目语义信息进行检索。提供将图模型查询技术、文本索引检索技术、关联定位技术相结合的软件项目语义信息检索方法。具体步骤包括:
[0067]构造查询请求的步骤、:根据待检索问题构造图模型查询请求和无结构信息的查询请求;
[0068]无结构信息的查询步骤:在无结构信息中处理无结构信息的索引查询请求,获取查询结果;其中无结构信息为文本时,无结构信息的查询步骤是在文本索引中处理无结构文本索引的查询请求;
[0069]关联结点的定位步骤:采用关联定位技术查询无结构文本与图模型的关联关系,并定位到关联节点;
[0070]图模型查询的步骤:在图模型中根据图模型查询请求对所定位关联节点进行查询,返回数据模型的查询子图,并将关联结点的定位步骤中与结构化信息本体关联的无结构信息作为描述性补充信息。
[0071]其中,关联结点的定位步骤主要有以下步骤:
[0072]步骤7.1:通过无结构文本与该无结构文本在图数据库中存储的本体之间对应关系的索引表,在图数据库中找出无结构文本本体;
[0073]步骤7.2:对无结构文本进行词法分析和句法分析,识别其中的查询关键词或查询目标,并结合步骤7.1中找出的图数据库中的文本本体,构造相应的查询语句;
[0074]步骤7.3:根据步骤7.2中生成的查询语句,并按照指定的图查询参数,在图数据库中查询无结构文本相关联的关联结点。其中,图查询参数为查询范围、节点类型、邻接节点扩展数量中的一种或多种。
[0075]本实施例的图模型查询的步骤中,首先解析受限的自然语言查询语句,若查询语句句法正确则继续执行以下子步骤:
[0076]步骤8.1:将解析结果规整为结构化的数据库查询指令;
[0077]步骤8.2:将数据库查询指令编译为图数据库的通用查询语句并执行该查询语句,返回由关联节点构成的连通子图;
[0078]步骤8.3:将步骤8.2得到的子图可视化;
[0079]步骤8.4:呈现子步骤8.3中的连通子图的各个节点所关联到的非结构化文本信
肩、O
[0080]解析受限的自然语言查询语句时,若查询语句句法错误则继续执行以下子步骤:
[0081]步骤9.1:根据自然语言文本之间的相似度算法,计算自然语言查询语句与图数据库中结构化信息本体之间的相似度,返回图数据库中与自然语言查询语句相似度最高的节点作为关联的节点;
[0082]步骤9.2:通过展开步骤9.1中返回的关联节点的邻接节点的方式或通过计算步骤9.1中返回的关联节点子图相似度的方式,在图数据库中找到关联节点的连通子图作为结果;
[0083]步骤9.3:将步骤9.2所得到的连通子图可视化;
[0084]步骤9.4:呈现子步骤9.3中的连通子图的各个节点所关联到的非结构化文本信
肩、O
[0085]本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属【技术领域】的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
【权利要求】
1.一种基于图模型的软件项目语义信息表示方法,其特征在于,包括: 抽取软件项目信息的步骤:从软件项目资源中抽取结构化信息本体和无结构信息本体; 存储结构化信息本体的步骤:将结构化信息本体以图数据库形式进行表示和存储; 存储无结构信息的步骤:以文件形式存储无结构信息本体,并建立结化信息本体和无结构信息本体之间的关联关系。
2.根据权利要求1所述的一种基于图模型的软件项目语义信息表示方法,其特征在于,所述抽取软件项目信息的步骤进一步包括以下子步骤: 步骤2.1:将结构化信息本体构建成一个抽象语法树,结构化信息本体的每个元素都对应一个抽象语法树上的结点; 步骤2.2:根据步骤2.1中构建的语法树上的结点所包含的具体元素内容,构建抽象语法树各结点之间的关系; 步骤2.3:将步骤2.1中构建的语法树上的结点和步骤2.2中构建的各结点之间的关系储存在数据库中。
3.根据权利要求2所述一种基于图模型的软件项目语义信息表示方法,其特征在于,所述结构化信息本体是项目代码,所述步骤2.2中构建的抽象语法树各结点之间的关系是项目代码中的继承、包含、依赖、调用、实现关系中的一种或多种。
4.根据权利要求1所述一种基于图模型的软件项目语义信息表示方法,其特征在于,所述存储结构化信息本体的步骤进一步包括以下子步骤: 步骤4.1:为每一类结构化信息本体建立图数据库中的本体类型以及每一类本体包含的具体属性; 步骤4.2:对于每一个结构化信息本体,在图数据库中建立相应的实体,并存储其具体的属性值; 步骤4.3:为每一类结构化信息本体之间的关系建立图数据库中的关系类型以及每一类关系包含具体的属性; 步骤4.4:为每一个结构化信息本体之间的关系,在图数据库中建立相应的关系,并存储其具体的属性值,关系两端是步骤4.2中建立的实体。
5.根据权利要求1所述一种基于图模型的软件项目语义信息表示方法,其特征在于,所述存储无结构信息的步骤进一步包括以下子步骤: 步骤5.1:在图数据库中建立用来表示无结构本体的文档类型以及用来表示结构化信息本体和无结构信息本体之间关联的关系类型; 步骤5.2:将无结构信息按照步骤5.1所建立的文档类型进行存储并建立表示无结构文本与该无结构文本在图模型库中存储的无结构信息本体之间对应关系的索引表; 步骤5.3:提取步骤5.2中存储的无结构信息本体中所包含的元素,若所述元素存在于存储结构化信息本体的步骤中所存储的结构化信息本体中,则在对应的无结构信息本体和结构化信息本体之间建立一个步骤5.1所述的关系类型的属性值。
6.一种对基于图模型表示的软件项目语义信息进行检索的方法,其特征在于,包括以下步骤: 构造查询请求的步骤:根据待检索问题构造图模型查询请求和无结构信息的查询请求; 无结构信息的查询步骤:在无结构信息中处理无结构信息的查询请求,获取查询结果; 关联结点的定位步骤:采用关联定位技术查询无结构信息与图模型的关联关系,并定位到关联节点; 图模型查询的步骤:在图数据库中根据图模型查询请求对所定位关联节点进行查询,返回数据模型的查询子图,并将关联结点的定位步骤中与结构化信息本体关联的无结构信息作为描述性补充信息。
7.根据权利要求6所述的一种对基于图模型表示的软件项目语义信息进行检索的方法,其特征在于,所述关联结点的定位步骤进一步包括以下子步骤: 步骤7.1:通过无结构文本与该无结构文本在图数据库中存储的本体之间对应关系的索引表,在图数据库中找出无结构文本本体; 步骤7.2:对无结构文本进行词法分析和句法分析,识别其中的查询关键词或查询目标,并结合步骤7.1中找出的图数据库中的文本本体,构造相应的查询语句; 步骤7.3:根据步骤7.2中生成的查询语句,并按照指定的图查询参数,在图数据库中查询无结构文本相关联的关联结点。
8.根据权利要求6所述的一种对基于图模型表示的软件项目语义信息进行检索的方法,其特征在于,在所述图模型查询的步骤中,首先解析受限的自然语言查询语句,若查询语句句法正确则继续执行以下子步骤: 步骤8.1:将解析结果规整为结构化的数据库查询指令; 步骤8.2:将数据库查询指令编译为图数据库的通用查询语句并执行该查询语句,返回由关联节点构成的连通子图; 步骤8.3:将步骤8.2得到的子图可视化; 步骤8.4:呈现子步骤8.3中的连通子图的各个节点所关联到的非结构化文本信息。
9.根据权利要求6所述的一种对基于图模型表示的软件项目语义信息进行检索的方法,其特征在于,在所述图模型查询的步骤中,首先解析受限的自然语言查询语句,若查询语句句法错误则继续执行以下子步骤: 步骤9.1:根据自然语言文本之间的相似度算法,计算自然语言查询语句与图数据库中结构化信息本体之间的相似度,返回图数据库中与自然语言查询语句相似度最高的节点作为关联的节点; 步骤9.2:通过展开步骤9.1中返回的关联节点的邻接节点的方式或通过计算步骤9.1中返回的关联节点子图相似度的方式,在图数据库中找到关联节点的连通子图作为结果; 步骤9.3:将步骤9.2所得到的连通子图可视化; 步骤9.4:呈现子步骤9.3中的连通子图的各个节点所关联到的非结构化文本信息。
【文档编号】G06F17/30GK103927360SQ201410156422
【公开日】2014年7月16日 申请日期:2014年4月18日 优先权日:2014年4月18日
【发明者】谢冰, 朱子骁, 华哲邦 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1