一种本体数据存储方法与流程

文档序号:14719729发布日期:2018-06-17 02:16阅读:257来源:国知局

本发明涉及本体数据存储的技术领域,具体涉及一种本体数据存储方法。



背景技术:

随着信息科技的发展,信息技术的知识化和智能化趋势使得信息和数据的表示不只是停留在语法层面,更要聚焦到语义及语用层面。本体作为一种能在语义层面上描述信息和数据的概念模型,为解决该类问题提供了一种良好途径。

本体(Ontology)源于哲学概念,从哲学范畴来说,本体是对客观存在的一个系统的解释和说明,关心的是客观现实的抽象本质。在人工智能领域,本体被定义为:“概念模型的明确的规范说明”。本体自从被提出来以后,已在诸多领域得到了广泛应用,如计算机、生物、化学、医学、农业、历史、军事等领域。在计算机领域,本体被应用于知识工程、数字图书馆、信息检索、信息过滤、自然语言处理、数据集成及语义Web等许多方面,并取得了显著效果。

本体存储是本体研究中的重点也是难点,如何有效存储海量本体数据是一个急需解决的问题。目前的本体存储方法主要分为两大类,一类是文本方式存储,一类是采用关系数据库存储。

对于第一类,主要是将本体以RDF、OWL等格式存储,然而对于大规模的本体数据,存储和查询效率低下,并且难于进行本体的合并和进化。

考虑到关系数据库的SQL查询效率,因此,可以用关系数据库来存储本体,基于关系数据库的本体存储方式主要有水平模式,垂直模式、分解模式和混合模式四种。

水平模式是在数据库中设计一个二维表,本体中概念(或实例)的每一个关系(或属性)是该表的一列,表中的每一条记录为本体中的一个概念或实例。水平模式比较简单,易于理解,但是可读性差,不支持大规模本体的存储,况且关系数据库对表的列数有一定限制。再者,因为本体概念或实例的关系与属性千差万别,一个概念c1具有r1,r2属性,然而概念c2具有r3,r4属性,所以会导致这张二维表的稀疏性较大。

垂直模式是在数据库中设计了一个RDF三元组的表。然而,该模式会使表的记录数增多,不利于存储和查询效率的提高,尤其是对于复杂的查询,查询效率非常低。

分解模式是将本体按一定的原则进行分解,对本体中的每一类概念均设计一个表,因为类中的属性或关系都是相同的,避免了该类表中数据的稀疏性。但是,因为本体中的类非常多,这种存储模式会导致数据库的表过多。另外,各表之间也需要大量链接,所以会使得查询比较复杂,从而导致查询效率低下。

混合模式是各种不同存储方式的结合,但最终也需要设计大量的二维表以及建立表间链接,导致存储和查询效率较低。

目前,在本体数据存储方面也有用图数据库来存储,然而,其存储模型是以RDF或OWL为基础,而RDF或OWL在表达能力上较弱。



技术实现要素:

针对上述缺陷或不足,本发明的目的在于提供一种本体数据存储方法,该方法能够对本体中的概念(或实例)及概念间关系(或属性)进行有效合理的存储,便于本体间数据的处理和本体数据间计算与推理,解决了通过RDF、OWL及关系数据库存取本体数据瓶颈问题。

为达到以上目的,本发明的技术方案为:

包括以下步骤:

1)、建立本体数据存储的数据库结构:

在Nosql数据库中建立数据表组,所述数据表组包括:概念术语表(ConTerm)、概念数据表(ConData)、关系术语表(RelTerm)、关系数据表(RelData)以及id池表(IdPool);

2)、概念的存储:

2.1)、将第一概念的概念术语存储到概念术语表的term键中,作为term键值写入;

2.2)、从id池表中取出第一概念的第一ID号,并将所述第一ID号作为概念术语表的cid键的键值写入;

2.3)、将所述第一ID号作为概念数据表中的cid键的键值写入,并且,将所述概念术语作为syn键的键值存储到该cid键记录中;

2.4)、重复步骤2.1)~2.3),直到将所有概念添加到数据库;

3)关系与属性的存储:

3.1)、将关系概念的概念术语存储到关系术语表的term键中,作为term键值写入;

3.2)、从id池表中取出关系概念的第二ID号,并将所述第二ID号存放到关系术语表的rid键中,作rid的键值;

3.3)、将所述第二ID号作为关系术语表的rid键的键值写入,并且,将所述关系的概念术语作为关系术语表的syn键的键值存储到该rid记录中;此外还有关系与属性的定义域和值域的存储;

在插入某一个关系后,其逆关系也要插入,并且逆关系的定义域和值域与原关系的定义域和值域相反,即原关系的定义域是其逆关系的值域;原关系的值域是其逆关系的定义域;

3.4)、重复步骤3.1)~3.3),直到将所有关系与属性添加到数据库;

4)、本体数据的关联:

4.1)、在概念数据表中查找到所存储的第一概念的ID号cid1所在的记录,并在该记录中添加一个键,所述键的键名为所述第一概念的关系概念的ID号rid1;

4.2)、在概念数据表中查找与该关系概念有关系的第二概念的ID号cid2,将所查找的第二概念的ID号cid2作为步骤4.1)中键rid1的键值写入;

4.3)、在概念数据表中查找第二概念的ID号cid2所在的记录,并在该记录中添加一个键,所述键的键名为该第二概念的一个关系的逆关系所对应的id号rid1’,将所查找的第一概念的ID号cid1作为键rid1’的键值写入;

4.4)、重复步骤4.1)~4.3),直到建立所有本体数据间的关联关系。

所述id池表中设置有概念的ID号以及关系的ID号。

所述步骤1)中:

概念术语表(ConTerm):用于存储概念或实例的术语以及其概念的ID号cid的对应关系,一个概念或实例术语对应多个概念的ID号cid或者多个概念或实例术语也可以对应一个概念的ID号cid;

概念数据表(ConData):用于存储概念的关系及关系值;

关系术语表(RelTerm):用于存储关系或属性的术语以及其关系概念的ID号rid的对应关系;一个关系或属性术语对应多个关系概念的ID号rid或者多个关系或属性术语对应一个关系概念的ID号rid;

关系数据表(RelData):用于存储关系的关系及关系值;其中,关系值是概念或者是关系;

Id池表(IdPool):用于存储概念与关系的id号;增加一个概念,则从id池中取出一个概念的ID号cid号,增加一个关系,则从id池中取出一个关系概念的ID号rid。

与现有技术比较,本发明的有益效果为:

1、本发明中,数据库设计简单,Nosql数据库的数据存储模式能够方便的存储数据的语义信息,而存储同样的本体数据,SQL等关系数据库需要建立大量的数据表及数据表之间的链接。

2、本发明中,将符号语言与事物ID分离存储,有效解决了事物术语和事物本身间经常混淆的问题。该存储方式是确定性与不确定性的统一。确定性指的是数据表中的内容是确定的,无疑义的内容。不确定性指的术语表中的术语有多对一和一对多的情况,即,给定一个术语,并不清楚其与哪个概念绑定。

3、本发明中的数据库的本体存储方法,能够适用于任何领域的本体数据的存储,也兼容现有的其它格式的本体。

4、本发明具有较强的表达能力,该存储方式除了能够存储静态的事物外,还可以存储具体的动态的方式方法,因此,结合相关推理机制不仅可以推理得到本体中的隐含知识,而且还可以进行具体的问题求解。

5、本发明中因为本体是目前讨论最多的知识图谱的基础,是其概念层的知识表达,所以,该存储方式还可以应用于知识图谱的存储。

附图说明

图1是本体数据结构示意图;

图2是插入数据前数据库各表中数据示意图;

图3是插入术语c1后各表中数据示意图;

图4是从IdPool取出001插入到ConTerm表后各表中数据示意图;

图5是将001号概念插放到ConData表后各表中数据示意图;

图6是将c2插入到数据库中各表中数据示意图;

图7是将关系术语r1添加到数据库中各表中数据示意图;

图8是将201号插入到数据库中各表中数据示意图;

图9是将关系术语r1添加到关系数据库中示意图;

图10是将所有关系概念添加到数据库中各表中数据示意图;

图11是将与c1相关系的关系概念添加到数据库中各表中数据示意图;

图12是将于c1互逆关系的关系概念添加到数据库中各表中数据示意图。

具体实施方式

下面结合附图对本发明做详细描述。

实施例1

本发明提供了一种本体数据存储方法,如图1所示,为本发明的本体数据结构示意图,图中c1、c2、c3……为概念或实例,r1、r2、r3……为关系或属性,其中,c1具有r1,r2属性,概念c2具有r3,r4属性……。

本发明为针对该本体数据结构,提出了一种基于Nosql数据库的本体存储方法,具体步骤如下:

1)、建立本体数据存储的数据库结构:

在Nosql数据库中建立数据表组,所述数据表组包括:概念术语表(ConTerm)、概念数据表(ConData)、关系术语表(RelTerm)、关系数据表(RelData)以及id池表(IdPool),所述id池表中设置有概念的ID号以及关系的ID号,如图2所示。

概念术语表(ConTerm):用于存储概念或实例的术语以及其概念的ID号cid的对应关系,一个概念或实例术语对应多个概念的ID号cid或者多个概念或实例术语也可以对应一个概念的ID号cid;

概念数据表(ConData):用于存储概念(或实例)的关系(或属性)及关系(或属性)值;

关系术语表(RelTerm):用于存储关系或属性的术语以及其关系概念的ID号rid的对应关系;一个关系或属性术语对应多个关系概念的ID号rid或者多个关系或属性术语对应一个关系概念的ID号rid;

关系数据表(RelData):用于存储关系(或属性)的关系(或属性)及关系(或属性)值;其中,关系(或属性)值可以是概念(或实例),也可以是关系(或属性);

Id池表(IdPool):用于存储概念(或实例)与关系(或属性)的id号。增加一个概念(或实例),则从id池中取出一个cid号(cid号中概念和实例的id号,是可以区分的,即根据是否是概念或实例取相应的cid);增加一个关系(或属性),则从id池中取出一个rid号(rid号中关系与属性的id号,是可以区分的,即根据是否是关系或属性取相应的rid)。

2)、概念的存储:

2.1)、将第一概念的概念术语存储到概念术语表的term键中,作为term键值写入,如图3所示;

2.2)、从id池表中取出第一概念的第一ID号,并将所述第一ID号作为概念术语表的cid键的键值写入,如图4所示;

2.3)、将所述第一ID号作为概念数据表中的cid键的键值写入,并且,将所述概念术语作为syn键的键值存储到该cid键记录中,如图5所示;

2.4)、重复步骤2.1)~2.3),直到将所有概念添加到数据库,如图6所示;

3)关系与属性的存储:

3.1)、将关系概念的概念术语存储到关系术语表的term键中,作为term键值写入,如图7所示:

3.2)、从id池表中取出关系概念的第二ID号,并将所述第二ID号存放到关系术语表的rid键中,作rid的键值,如图8所示,

3.3)、将所述第二ID号作为关系术语表的rid键的键值写入,并且,将所述关系的概念术语作为关系术语表的syn键的键值存储到该rid记录中,此外还有关系与属性的定义域和值域,如图9所示;

-在插入某一个关系后,其逆关系也要插入,并且逆关系的定义域和值域与原关系的定义域和值域相反,即原关系的定义域是其逆关系的值域;原关系的值域是其逆关系的定义域。

3.4)、重复步骤3.1)~3.3),直到将所有关系与属性添加到数据库,如图10所示;

4)、本体数据的关联:

4.1)、在概念数据表中查找到所存储的第一概念的ID号cid1所在的记录,并在该记录中添加一个键,所述键的键名为所述第一概念的关系概念的ID号rid1,如图11所示;

4.2)、在概念数据表中查找与该关系概念有关系的第二概念的ID号cid2,将所查找的第二概念的ID号cid2作为步骤4.1)中键rid1的键值写入;

4.3)、在概念数据表中查找第二概念的ID号cid2所在的记录,并在该记录中添加一个键,所述键的键名为该第二概念的一个关系的逆关系所对应的id号rid1’,将所查找的第一概念的ID号cid1作为键rid1’的键值写入,如图12所示;

4.4)、重复步骤4.1)~4.3),直到建立所有本体数据间的关联关系。

实施例2

本实施例是将图1中的本体数据存入本体库中的举例:

1)、建立本体数据存储的数据库结构:

在Nosql数据库中建立数据表组,所述数据表组包括:概念术语表(ConTerm)、概念数据表(ConData)、关系术语表(RelTerm)、关系数据表(RelData)以及id池表(IdPool);所述id池表中设置有概念的ID号以及关系的ID号。

2)、概念的存储:

(1)将概念c1存储到本体库中,将术语c1作为ConTerm表中term的键值写入;

(2)从IdPool表中取出一个概念的id号,如‘001’,并将其作为ConTerm表中cid的键值;

(3)将‘001’作为ConData表中cid的键值写入;

(4)将术语‘c1’作为ConData表中‘syn’的键值写入;

(5)其它概念如c2,c3等按(1)-(4)的步骤添加到本体数据库中。

3)关系与属性的存储:

(1)将概念r1存储到本体库中,将术语‘r1’作为RelTerm表中term的键值写入;

(2)从IdPool表中取出一个概念的id号,如‘201’,并将其作为RelTerm表中rid的键值;

(3)将‘201’作为RelData表中rid的键值写入;

(4)将术语‘r1’作为RelData表中‘syn’的键值写入,同时写入定义域和值域;

(5)这个地方要体现出,在插入某一个关系后,其逆关系也要插入,并且逆关系的定义域和值域与原关系的定义域和值域相反,即原关系的定义域是其逆关系的值域;原关系的值域是其逆关系的定义域。

根据上面的例子,应该将r1’‘202’等存到数据库中。

(6)其它概念如r2,r3等按(1)-(4)的步骤添加到本体数据库中。

4)、本体数据的关联:

(1)在ConData数据表中的cid:001记录中添加一键值对,键为:‘201’,键值为:‘002’(概念c2的id号),表示概念号‘001’与概念号‘002’有着关系号为‘201’的关系。即概念c1和概念c2有着r1关系;

(2)在ConData数据表中的cid:002记录中添加一对键值,键为:‘202’,键值为:‘001’(概念c2的id号),表示概念号‘002’与概念号‘001’有着关系号为‘202’的关系。即概念c1和概念c2有着r1’关系。其中r1’与r1之间是互逆关系;

按步骤(1)-(2)可以建立起其它的本体数据间的关联关系。

对于本领域技术人员而言,显然能了解到上述具体事实例只是本发明的优选方案,因此本领域的技术人员对本发明中的某些部分所可能作出的改进、变动,体现的仍是本发明的原理,实现的仍是本发明的目的,均属于本发明所保护的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1