论文部分内容阅读
摘要:作为人工智能领域的一个热点问题,知识图谱逐渐成为语义搜索和知识问答的关键技术之一。本文研究了学科体系的本体模型,利用RDF三元组进行知识表示,并通过Jsoup爬虫技术来对知识库进行扩充,实现了学科体系知识图谱构建,这对复杂领域知识图谱构建具有实际意义。
关键词:本体;RDF;学科体系;知识图谱
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2019)09-0187-03
Abstract: As a hot topic in the field of artificial intelligence,knowledge graph has gradually become one of the key technology of semantic search and knowledge base question answering. This paper studies the ontology model of discipline system,uses RDF three triple represent knowledge,and extends the knowledge base by Jsoup crawler technology,it achieves the construction of discipline system of knowledge graph, and it has practical significance to build a complex domain knowledge graph.
Key words: Ontology;RDF;Discipline;Knowledge Graph
1 引言
知識图谱作为语义网的数据支撑,在搜索和问答方面已经成功应用到了很多领域[1]。知识图谱用于描述真实世界中存在的各种实体或概念,以及实体概念之间的关系[2]。每个实体或概念用一个全局唯一确定的标识符来标识,属性-值对用来刻画实体的内在特性,利用关系来连接两个实体,知识图谱可有效反映它们之间的关联。
学科体系是根据科学分工和产业结构的需要所设置的学科门类。研究学科体系知识图谱的构建能有效解决学科内一些知识记忆类的问题。本文采用惠普实验室开发的Jena技术框架,它为RDF、RDFS、OWL提供了一个程序开发环境[3],并支持利用Excel文档去批量导入数据三元组的方式。通过对基于本体的学科体系知识图谱构建研究,本文为知识图谱的应用提供了新思路。
2 学科体系知识图谱建模
知识图谱构建主要分为本体层和数据层[4]。本体层是知识图谱的骨架,强调的是学科体系中概念与概念之间的关系。数据层是本体的一个丰富过程,强调的是学科体系中实体与实体之间的关系,以及它们的属性和属性值。本文知识图谱建模分为以下六个步骤,具体流程如图1所示。
1)本体模型的构建;
2)通过数据标注的方式创建实例和三元组;
3)将数据以RDF表示的形式存储;
4)知识库扩充采用爬虫算法去爬取网络数据;
5)外源数据进行数据融合,并将数据存储入库;
6)数据入库后,可以对知识进行查询,查询无结果,进行数据更新,重新数据标注。
2.1本体模型
本体模型是按照现实生活中的概念、概念间的关系、概念所具有的特征(即属性)以及概念的实例抽象出现实的模型。本文学科体系的本体模型是通过学科领域各实例抽象出来的概念,以及概念之间的关系所构成的模型。其本体模型构建分为以下五个步骤:
1)本体的专业领域和范畴的确定:本文研究的本体范畴是学科体系,下文以政治学科为例,给出基于本体的学科体系知识图谱构建过程。政治学科本体范围需要在政治老师的指导下,以初高中教材为主,结合教辅教材,确定本体范围。
2)概念体系的确定:构建概念体系要明确概念的定义,本文把很多具有相同特性的实例抽象为一个概念,对应于模型中类(owl:Class)[5]。而概念体系则是多个类结合在一起,构成的一个有上下位关系的体系。本文结合政治学科的特点以及政治老师的建议,最终确定了概念体系。
3)属性及其约束的确定:本体里面的属性一般分为对象属性(owl:ObjectProperty)和数据属性(owl:DatatypeProperty)。对象属性一般指实例与实例之间的关系,以及实例与概念之间的关系。数据属性一般指实例的自身属性,如某个实例的内容、含义等。属性的约束在本文是指代定义域(rdfs:Domain)和值域(rdfs:Range)的约束。
4)创建实例:本文采用标注的方法创建实例。通过把教材电子化,然后对每个章节的内容进行标注,利用标注出的实例以及它的基础属性生成一个有主谓宾部分的Excel文档,此部分对应于知识图谱里面的RDF三元组。
5)本体存储和更新:本文本体数据以Excel导入的方式存储。在知识更新的过程中,本体需要逐步的完善,尽可能覆盖更多的知识点。
2.2 知识表示
本文采用W3C规范的RDF资源描述框架(Resource Description Framework)对知识进行表示。RDF将知识表示成资源-属性-值这样的三元组形式。本文将RDF三元组形式分别对应于主谓宾部分,并以列的形式存储在Excel文档内,利用Jena技术将Excel数据以RDF形式批量导入的方式来构建知识图谱。
RDF三元组可以利用图形结构表示,本文知识图谱部分数据表示关系如图2所示。节点表示概念或实例,边表示关系或属性。图2上面部分是本体层,每个圆形节点表示一个概念,节点的边表示他们的关系。图2下面部分是数据层,每个椭圆形节点表示实例,实例与实例之间的边表示关系,与实例相连的每个方框和边构成实例的属性-值对。 2.3 数据存储
知识图谱的数据存储主要采用RDF数据库和图数据库这种非关系型数据库来存储,包括Neo4J,RDF4J,Virtuoso,StarDog等[6]。本文采用基于Jena-TDB的技术对RDF三元组提供数据存储。作为Java中本体文件的管理编辑工具,Jena提供了TDB用来对RDF数据进行存储和查询,支持所有的Jena Api[7]。Jena-TDB还集成了SPARQL,支持SPARQL查询。
TDB的使用一般可以分为以下四步:第一步是建立Dataset;第二步是装载Model;第三部是固化TDB文件;第四步是提交和关闭操作。通过知识表示将数据以RDF三元组的形式存储到数据库中,最终完成知识库的数据存储。
3 知识库扩充和查询显示
3.1 知识库扩充
学科体系包含核心知识点和非核心知识点。我们需要对非核心知识点的数据进行扩充。本文采取的是网络爬虫算法的方式收集数据。相关技术采用的是Jsoup爬虫技术,它是一款Java 的Html解析器,可直接解析某个Html文本内容。
本文学科体系知识库扩充分文以下几步:首先是实体集扩充,本文在相关权威的教材教辅网站上面,爬取一些高频词汇。然后通过和知识库里面的实例对比去重,再给相关的专家老师进行审核,确定实例。接着是三元组的扩充,本文选用了可信度较高的百度百科,通过Jsoup爬虫去爬取实例百科页面的内容解释和属性-值对,以及链接到下一层的相关数据。最后对爬虫结果进行了数据整合和清洗,并将Excel表格数据导入知识库中存储,完成知识库的扩充。本文爬虫算法步骤分为以下七步,具体流程如图3所示。
1)根据实例名获取对应的百度百科Url;
2)查看目标网页的Html源码;
3)利用Jsoup对应的方法对目标内容进行解析;
4)查看当前解析内容是否有链接到下一层的Url;
5)如果有链接到下一层的Url,则获取该Url,深度减1(初始深度值默认2),然后继续执行第四步;
6)如果没有链接到下一层的Url,则直接获取该实例对应的相关属性和属性值;
7)将获取的数据按照主谓宾三元组的形式导出到Excel。
3.2 查询显示
为了提升问答质量,本文采用了SPARQL来对RDF数据进行查询。SPARQL是专门针对RDF三元组的一种查询语言,它的重要性类似于关系数据库中的SQL。这里以查询“货币的职能”这一个概念所拥有的实例为例,其查询语句如下:
PREFIX resource:
PREFIX rdf:
SELECT ?s WHERE {?s rdf:type resource:貨币的职能}
4 结论
构建学科体系知识图谱能有效地解决学科领域知识记忆类问题,这对学科体系知识的应用具有现实意义。本文基于本体通过本体模型、知识表示、数据存储的方式对学科体系知识图谱的构建进行了研究,利用爬虫技术对知识库的扩充进行了探索,这为进一步构建复杂领域知识图谱打下了基础。
参考文献:
[1]徐增林,盛泳潘,贺丽荣,等.知识图谱技术综述[J].电子科技大学学报,2016,45(4):589-606.
[2]漆桂林,高桓,吴天星.知识图谱研究进展[J].情报工程,2017,3(1):4-25.
[3]王劲东,武频,朱永华. 基于Jena的电影素材领域本体构建及推理研究[J]. 计算机技术与发展,
2016,26(08):30-34.
[4]李涓子,侯磊.知识图谱研究综述[J].山西大学学报(自然科学版),2017,40(03):454-459.
[5]张德政,谢永红,李曼,石川.基于本体的中医知识图谱构建[J].情报工程,2017,3(01):35-42.
[6]胡泽文, 孙建军, 武夷山.国内知识图谱应用研究综述[J]. 图书情报工作, 2013, 57(3):131-137.
[7]Saruladha K, Aghila G, Sathiya B. A Comparative Analysis of Ontology and Schema Matching Systems[J]. International Journal of Computer Applications, 2011, 34(8):14-21.
【通联编辑:唐一东】
关键词:本体;RDF;学科体系;知识图谱
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2019)09-0187-03
Abstract: As a hot topic in the field of artificial intelligence,knowledge graph has gradually become one of the key technology of semantic search and knowledge base question answering. This paper studies the ontology model of discipline system,uses RDF three triple represent knowledge,and extends the knowledge base by Jsoup crawler technology,it achieves the construction of discipline system of knowledge graph, and it has practical significance to build a complex domain knowledge graph.
Key words: Ontology;RDF;Discipline;Knowledge Graph
1 引言
知識图谱作为语义网的数据支撑,在搜索和问答方面已经成功应用到了很多领域[1]。知识图谱用于描述真实世界中存在的各种实体或概念,以及实体概念之间的关系[2]。每个实体或概念用一个全局唯一确定的标识符来标识,属性-值对用来刻画实体的内在特性,利用关系来连接两个实体,知识图谱可有效反映它们之间的关联。
学科体系是根据科学分工和产业结构的需要所设置的学科门类。研究学科体系知识图谱的构建能有效解决学科内一些知识记忆类的问题。本文采用惠普实验室开发的Jena技术框架,它为RDF、RDFS、OWL提供了一个程序开发环境[3],并支持利用Excel文档去批量导入数据三元组的方式。通过对基于本体的学科体系知识图谱构建研究,本文为知识图谱的应用提供了新思路。
2 学科体系知识图谱建模
知识图谱构建主要分为本体层和数据层[4]。本体层是知识图谱的骨架,强调的是学科体系中概念与概念之间的关系。数据层是本体的一个丰富过程,强调的是学科体系中实体与实体之间的关系,以及它们的属性和属性值。本文知识图谱建模分为以下六个步骤,具体流程如图1所示。
1)本体模型的构建;
2)通过数据标注的方式创建实例和三元组;
3)将数据以RDF表示的形式存储;
4)知识库扩充采用爬虫算法去爬取网络数据;
5)外源数据进行数据融合,并将数据存储入库;
6)数据入库后,可以对知识进行查询,查询无结果,进行数据更新,重新数据标注。
2.1本体模型
本体模型是按照现实生活中的概念、概念间的关系、概念所具有的特征(即属性)以及概念的实例抽象出现实的模型。本文学科体系的本体模型是通过学科领域各实例抽象出来的概念,以及概念之间的关系所构成的模型。其本体模型构建分为以下五个步骤:
1)本体的专业领域和范畴的确定:本文研究的本体范畴是学科体系,下文以政治学科为例,给出基于本体的学科体系知识图谱构建过程。政治学科本体范围需要在政治老师的指导下,以初高中教材为主,结合教辅教材,确定本体范围。
2)概念体系的确定:构建概念体系要明确概念的定义,本文把很多具有相同特性的实例抽象为一个概念,对应于模型中类(owl:Class)[5]。而概念体系则是多个类结合在一起,构成的一个有上下位关系的体系。本文结合政治学科的特点以及政治老师的建议,最终确定了概念体系。
3)属性及其约束的确定:本体里面的属性一般分为对象属性(owl:ObjectProperty)和数据属性(owl:DatatypeProperty)。对象属性一般指实例与实例之间的关系,以及实例与概念之间的关系。数据属性一般指实例的自身属性,如某个实例的内容、含义等。属性的约束在本文是指代定义域(rdfs:Domain)和值域(rdfs:Range)的约束。
4)创建实例:本文采用标注的方法创建实例。通过把教材电子化,然后对每个章节的内容进行标注,利用标注出的实例以及它的基础属性生成一个有主谓宾部分的Excel文档,此部分对应于知识图谱里面的RDF三元组。
5)本体存储和更新:本文本体数据以Excel导入的方式存储。在知识更新的过程中,本体需要逐步的完善,尽可能覆盖更多的知识点。
2.2 知识表示
本文采用W3C规范的RDF资源描述框架(Resource Description Framework)对知识进行表示。RDF将知识表示成资源-属性-值这样的三元组形式。本文将RDF三元组形式分别对应于主谓宾部分,并以列的形式存储在Excel文档内,利用Jena技术将Excel数据以RDF形式批量导入的方式来构建知识图谱。
RDF三元组可以利用图形结构表示,本文知识图谱部分数据表示关系如图2所示。节点表示概念或实例,边表示关系或属性。图2上面部分是本体层,每个圆形节点表示一个概念,节点的边表示他们的关系。图2下面部分是数据层,每个椭圆形节点表示实例,实例与实例之间的边表示关系,与实例相连的每个方框和边构成实例的属性-值对。 2.3 数据存储
知识图谱的数据存储主要采用RDF数据库和图数据库这种非关系型数据库来存储,包括Neo4J,RDF4J,Virtuoso,StarDog等[6]。本文采用基于Jena-TDB的技术对RDF三元组提供数据存储。作为Java中本体文件的管理编辑工具,Jena提供了TDB用来对RDF数据进行存储和查询,支持所有的Jena Api[7]。Jena-TDB还集成了SPARQL,支持SPARQL查询。
TDB的使用一般可以分为以下四步:第一步是建立Dataset;第二步是装载Model;第三部是固化TDB文件;第四步是提交和关闭操作。通过知识表示将数据以RDF三元组的形式存储到数据库中,最终完成知识库的数据存储。
3 知识库扩充和查询显示
3.1 知识库扩充
学科体系包含核心知识点和非核心知识点。我们需要对非核心知识点的数据进行扩充。本文采取的是网络爬虫算法的方式收集数据。相关技术采用的是Jsoup爬虫技术,它是一款Java 的Html解析器,可直接解析某个Html文本内容。
本文学科体系知识库扩充分文以下几步:首先是实体集扩充,本文在相关权威的教材教辅网站上面,爬取一些高频词汇。然后通过和知识库里面的实例对比去重,再给相关的专家老师进行审核,确定实例。接着是三元组的扩充,本文选用了可信度较高的百度百科,通过Jsoup爬虫去爬取实例百科页面的内容解释和属性-值对,以及链接到下一层的相关数据。最后对爬虫结果进行了数据整合和清洗,并将Excel表格数据导入知识库中存储,完成知识库的扩充。本文爬虫算法步骤分为以下七步,具体流程如图3所示。
1)根据实例名获取对应的百度百科Url;
2)查看目标网页的Html源码;
3)利用Jsoup对应的方法对目标内容进行解析;
4)查看当前解析内容是否有链接到下一层的Url;
5)如果有链接到下一层的Url,则获取该Url,深度减1(初始深度值默认2),然后继续执行第四步;
6)如果没有链接到下一层的Url,则直接获取该实例对应的相关属性和属性值;
7)将获取的数据按照主谓宾三元组的形式导出到Excel。
3.2 查询显示
为了提升问答质量,本文采用了SPARQL来对RDF数据进行查询。SPARQL是专门针对RDF三元组的一种查询语言,它的重要性类似于关系数据库中的SQL。这里以查询“货币的职能”这一个概念所拥有的实例为例,其查询语句如下:
PREFIX resource:
PREFIX rdf:
SELECT ?s WHERE {?s rdf:type resource:貨币的职能}
4 结论
构建学科体系知识图谱能有效地解决学科领域知识记忆类问题,这对学科体系知识的应用具有现实意义。本文基于本体通过本体模型、知识表示、数据存储的方式对学科体系知识图谱的构建进行了研究,利用爬虫技术对知识库的扩充进行了探索,这为进一步构建复杂领域知识图谱打下了基础。
参考文献:
[1]徐增林,盛泳潘,贺丽荣,等.知识图谱技术综述[J].电子科技大学学报,2016,45(4):589-606.
[2]漆桂林,高桓,吴天星.知识图谱研究进展[J].情报工程,2017,3(1):4-25.
[3]王劲东,武频,朱永华. 基于Jena的电影素材领域本体构建及推理研究[J]. 计算机技术与发展,
2016,26(08):30-34.
[4]李涓子,侯磊.知识图谱研究综述[J].山西大学学报(自然科学版),2017,40(03):454-459.
[5]张德政,谢永红,李曼,石川.基于本体的中医知识图谱构建[J].情报工程,2017,3(01):35-42.
[6]胡泽文, 孙建军, 武夷山.国内知识图谱应用研究综述[J]. 图书情报工作, 2013, 57(3):131-137.
[7]Saruladha K, Aghila G, Sathiya B. A Comparative Analysis of Ontology and Schema Matching Systems[J]. International Journal of Computer Applications, 2011, 34(8):14-21.
【通联编辑:唐一东】