关系数据库中基于关键字的查询主要忽略了数据之间的语义关系(包括同名异义Homonymy、异名同义Synonymy、上下位Hyponymy、转喻Metonymy、反义Antonym),其中主要的两类:忽略Synonymy会降低查询结果的查全率,忽略Homonymy会降低查询结果的查准率。
关系数据库中的本体主要从三个方面建立:一是数据库中的模式信息(如表名、表的属性名等);二是数据库中的数据;三是数据与数据之间的关系。统言之,可以用class、relation、function、axiom、instance来建模。
关系数据库语义检索中涉及的技术有本体合并Ontology Merging、本体集成Ontology Integration和本体标注Ontology Annotation(本体标注这方面,可以充分利用RDB的触发器技术进行自动标注)。
关系数据库语义检索通用框架:
上述图解:在领域专家的参与下利用本体标注器对关系数据库进行数据标注,并建立合理的语义索引,然后将结果保存在本体库中。用户输入查询(包括SQL查询、关键字查询、语义查询)后,根据不同的查询模式在本体库的基础上进行查询扩展,以提高查全率和查准率。继而查询处理器利用语义索引执行高效的语义查询。最后得到查询结果,根据特定算法进行排序或者分类。
基于本体的语义检索方法
1、查询扩展方法:把一个SQL查询扩展成多个查询加以执行,称为OntoQE(Ontology_based Query Expansion)。本方法分三步进行:
(1)预处理(Preprocessing):从附带到数据库上的本体中抽取出新的关键字(术语Term),将用户查询转换成另一个查询。应用到的规则有:(a)查询扩展。利用异名同义和上下位关系等改变查询中的选择条件;(b)查询替换。利用语义上等价的查询条件替换原有查询。
(2)执行阶段(Execution):执行转换后的查询。若返回空,则进入第(3)步。
(3)后处理(Postprocessing):因为子概念的实例为父概念的实例,所以利用本体关系的上一级概念(父概念)修改查询条件,重新执行。重复上述过程。
优缺点:只适合查询属性值为本体中概念值的那些属性,没有使用本体标注和语义索引,查询扩展只利用了异名同义、上下位等简单关系,提高了查全率,但有可能降低查准率。
2、关系模型和关系代数扩展方法:主要有一种利用约束概率本体(Constrained Probabilistic Ontology,CPO)扩展关系模型和关系代数的方法,以实现关系数据库语义检索,提高查全率。原型系统PARQ(Probabilistic Answers Relational Queries)。
在PARQ中,一个关系的每个属性都附带一个CPO以描述关系数据库语义,需要用到本体合并、集成技术。
优缺点:可以有效提高查全率,但仅适合于简单字符类型的属性,且查准率有较大下降。
3、SQL扩展方法:Oracle公司提出,在RDB中存储OWL格式本体,然后扩展SQL以提供有关本体的操作,从而实现在RDB中的语义检索,成为OntoSQL(Ontology_based SQL)方法。
定义了6个系统表:Ontologies、Terms、Properties、PropertyValues、Restrictions、Relationships,可以存储和管理多个本体。
上图注解:下划线标明的为主键。单向箭头为外键约束关系。
扩充了四个与本体有关的操作:
(1)ONT_RELATED(Term1,RelType,Term2,OntologyName) Returns Integer
若两个概念Term1和Term2在Ontology上具有语义关系RelType,该函数返回1,否则返回0;Term1和Term2只能是简单概念,不能复合。RelType可以由Not、And、Or复合。
(2)ONT_EXPAND(Term1,RelType,Term2,OntologyName) Returns ONT_TermRelTableType
返回匹配的概念集合。ONT_TermRelTableType为对象表,由下面两条语句创建:
Create Type ONT_TermRelType As Object(Term1Name Varchar(32),ProperytName Varchar(32),Term2Name Varchar(32),TermDistance Number, TermPath Varchar(2000));
Create Type ONT_TermRelTableType As Table of ONT_TermRelType;
(3)ONT_DISTANCE(Number) Returns Number
与(1)中的ONT_RELATED连用,返回与要匹配概念具有最小距离或最短路径的概念。
(4)ONT_PATH(Number) Returns Varchar
与(1)中的ONT_RELATED连用,返回与要匹配概念具有最小距离或最短路径的路径字符串。
ONT_RELATED和ONT_EXPAND操作符都要计算“RelType”关系的传递闭包,通过Oracle的传递闭包查询“Select ……From……Start With Connect by ”实现。包含这两个本体操作符的SQL查询会通过查询重写转换成相应的传递闭包查询。为提高效率,OntoSQL创建了一个传递闭包表用以预存本体中所有概念在所有关系上的传递闭包。
优缺点:充分利用了Oracle的已有技术,具有基于对称属性和传递属性的简单推理。不支持本体合并,不支持用户自定义规则推理,需用户指定本体和具体数据(指定特定表的特定属性列)之间的语义联系,只适应存储有单个本体概念的简单字符类型属性(可以借助于Oracle的基于本体的引用约束,……Foreign Key……References)进行语义匹配,没有内嵌概念抽取和本体标注功能。
4、语义映射方法:将关系数据通过“关系-语义映射器”转换为可存储的断言,然后允许用户以SPARQL的形式查询,称为OntoRSM(Ontology_based Relational to Semantic Mapping)。这是基于关系数据库进行语义检索唯一支持SPARQL的方法。
上述图解:RDT通过R2SM转换成Minerva推理系统的断言存储在Minerva数据库表中,用户以SPARQL形式提交语义查询到查询处理机,然后提交到Minerva推理系统加以执行,最后返回语义查询结果。
关键特征:预先计算所有推论,加上由关系到语义映射器转换而来的基本断言存储在关系数据库中,查询时不用进行DL推理,提高了效率。
优缺点:可以直接执行SPARQL,但该语言对于一般用户而言不够友好,查询效率较低。
————————以上内容,主要摘自于王珊等人所著的《基于本体的关系数据库语义检索》一文。
关系数据库中的本体主要从三个方面建立:一是数据库中的模式信息(如表名、表的属性名等);二是数据库中的数据;三是数据与数据之间的关系。统言之,可以用class、relation、function、axiom、instance来建模。
关系数据库语义检索中涉及的技术有本体合并Ontology Merging、本体集成Ontology Integration和本体标注Ontology Annotation(本体标注这方面,可以充分利用RDB的触发器技术进行自动标注)。
关系数据库语义检索通用框架:
上述图解:在领域专家的参与下利用本体标注器对关系数据库进行数据标注,并建立合理的语义索引,然后将结果保存在本体库中。用户输入查询(包括SQL查询、关键字查询、语义查询)后,根据不同的查询模式在本体库的基础上进行查询扩展,以提高查全率和查准率。继而查询处理器利用语义索引执行高效的语义查询。最后得到查询结果,根据特定算法进行排序或者分类。
基于本体的语义检索方法
1、查询扩展方法:把一个SQL查询扩展成多个查询加以执行,称为OntoQE(Ontology_based Query Expansion)。本方法分三步进行:
(1)预处理(Preprocessing):从附带到数据库上的本体中抽取出新的关键字(术语Term),将用户查询转换成另一个查询。应用到的规则有:(a)查询扩展。利用异名同义和上下位关系等改变查询中的选择条件;(b)查询替换。利用语义上等价的查询条件替换原有查询。
(2)执行阶段(Execution):执行转换后的查询。若返回空,则进入第(3)步。
(3)后处理(Postprocessing):因为子概念的实例为父概念的实例,所以利用本体关系的上一级概念(父概念)修改查询条件,重新执行。重复上述过程。
优缺点:只适合查询属性值为本体中概念值的那些属性,没有使用本体标注和语义索引,查询扩展只利用了异名同义、上下位等简单关系,提高了查全率,但有可能降低查准率。
2、关系模型和关系代数扩展方法:主要有一种利用约束概率本体(Constrained Probabilistic Ontology,CPO)扩展关系模型和关系代数的方法,以实现关系数据库语义检索,提高查全率。原型系统PARQ(Probabilistic Answers Relational Queries)。
在PARQ中,一个关系的每个属性都附带一个CPO以描述关系数据库语义,需要用到本体合并、集成技术。
优缺点:可以有效提高查全率,但仅适合于简单字符类型的属性,且查准率有较大下降。
3、SQL扩展方法:Oracle公司提出,在RDB中存储OWL格式本体,然后扩展SQL以提供有关本体的操作,从而实现在RDB中的语义检索,成为OntoSQL(Ontology_based SQL)方法。
定义了6个系统表:Ontologies、Terms、Properties、PropertyValues、Restrictions、Relationships,可以存储和管理多个本体。
上图注解:下划线标明的为主键。单向箭头为外键约束关系。
扩充了四个与本体有关的操作:
(1)ONT_RELATED(Term1,RelType,Term2,OntologyName) Returns Integer
若两个概念Term1和Term2在Ontology上具有语义关系RelType,该函数返回1,否则返回0;Term1和Term2只能是简单概念,不能复合。RelType可以由Not、And、Or复合。
(2)ONT_EXPAND(Term1,RelType,Term2,OntologyName) Returns ONT_TermRelTableType
返回匹配的概念集合。ONT_TermRelTableType为对象表,由下面两条语句创建:
Create Type ONT_TermRelType As Object(Term1Name Varchar(32),ProperytName Varchar(32),Term2Name Varchar(32),TermDistance Number, TermPath Varchar(2000));
Create Type ONT_TermRelTableType As Table of ONT_TermRelType;
(3)ONT_DISTANCE(Number) Returns Number
与(1)中的ONT_RELATED连用,返回与要匹配概念具有最小距离或最短路径的概念。
(4)ONT_PATH(Number) Returns Varchar
与(1)中的ONT_RELATED连用,返回与要匹配概念具有最小距离或最短路径的路径字符串。
ONT_RELATED和ONT_EXPAND操作符都要计算“RelType”关系的传递闭包,通过Oracle的传递闭包查询“Select ……From……Start With Connect by ”实现。包含这两个本体操作符的SQL查询会通过查询重写转换成相应的传递闭包查询。为提高效率,OntoSQL创建了一个传递闭包表用以预存本体中所有概念在所有关系上的传递闭包。
优缺点:充分利用了Oracle的已有技术,具有基于对称属性和传递属性的简单推理。不支持本体合并,不支持用户自定义规则推理,需用户指定本体和具体数据(指定特定表的特定属性列)之间的语义联系,只适应存储有单个本体概念的简单字符类型属性(可以借助于Oracle的基于本体的引用约束,……Foreign Key……References)进行语义匹配,没有内嵌概念抽取和本体标注功能。
4、语义映射方法:将关系数据通过“关系-语义映射器”转换为可存储的断言,然后允许用户以SPARQL的形式查询,称为OntoRSM(Ontology_based Relational to Semantic Mapping)。这是基于关系数据库进行语义检索唯一支持SPARQL的方法。
上述图解:RDT通过R2SM转换成Minerva推理系统的断言存储在Minerva数据库表中,用户以SPARQL形式提交语义查询到查询处理机,然后提交到Minerva推理系统加以执行,最后返回语义查询结果。
关键特征:预先计算所有推论,加上由关系到语义映射器转换而来的基本断言存储在关系数据库中,查询时不用进行DL推理,提高了效率。
优缺点:可以直接执行SPARQL,但该语言对于一般用户而言不够友好,查询效率较低。
————————以上内容,主要摘自于王珊等人所著的《基于本体的关系数据库语义检索》一文。