第三章 理论可行性分析
本章详细分析结合本体和SWRL/SWRL
FOL规则通过一阶谓词逻辑推理引擎进行推理可行性的逻辑基础;3.1介绍一阶谓词逻辑;3.2介绍描述逻辑以及分析它与OWL本体的关系;3.3分析描述逻辑与一阶谓词逻辑的关系,进而推导出OWL本体与一阶谓词逻辑的关系。
3.1 一阶谓词逻辑
一阶谓词逻辑(FOL,First-Order
Logic)[13]在计算机科学中有着广泛的应用,它不仅是程序设计理论、程序逻辑研究的重要基础,而且还是程序正确性证明、定理机器证明和知识表示技术的有力工具。一阶谓词逻辑也是研究其它逻辑系统的内核和基础,其它逻辑系统都可看作是它的扩充和推广。
一阶谓词逻辑建立在命题的基础上。其取值为真或假(表示是否成立)的句子称作命题。一阶逻辑中,命题被分解为个体和谓词两部分。个体(individuals)是指可独立存在的客体,可以是一个具体的事物,也可以是一个抽象的概念。而谓词(predication)是用来刻划个体词的性质及事物关系的词。带有一个变量(个体)的谓词叫一目谓词,带有两个变量(个体)的谓词叫二目谓词。通俗的讲命题是陈述句,在自然语言中,通常陈述句有主语、谓语和宾语,主语和宾语都可能是个体,而谓语及其相连的宾语通常被看成是谓词。如“我是硕士生”就是一个命题,其中“我”和“硕士生”都是个体,“是”是谓词。
l
一阶谓词逻辑知识表示体系
在一阶谓词逻辑中使用的符号一般包括:
Ø
常量:以小写字母组成的符号串
Ø
变量符号:习惯上是小写字母x,y,z,u,v,w
Ø
函数符号:通常以小写字母或小写字母串表示
Ø
谓词符号:通常以大写字母或大写字母串表示
函数与谓词的形式分别为:
谓词 P(x1,x2,...,xn)
函数 f(x1,x2,...,xn)
x1,x2,...,xn为个体变量
以上符号中常量用来表示个体;变量表示非特定的个体;谓词用来表达n个实体之间的关系或属性;其取之为真或假;函数仅实现个体域中n个个体到某一个体的映射,没有真假取值。
Ø
连接词:

Ø
量词:
全称量词,表示所有的。
例如,对于个体域中所有个体,谓词F(x)均成立时,可用含全称量词的谓词表示为
F(x)
存在量词,表示存在一些(至少一个)。
例如,若至少存在一个个体x,使谓词F(x)成立时,可用含存在量词的谓词表示为
F(x)
利用上述符号,可把单个谓词组合成复杂的谓词公式,表达复杂的领域知识。例如用谓词S(x)表示个体x学习好,W(x)表示x工作好;谓词公式S(x)
W(x)就表示x不仅学习好而且工作好,S(y)
W(y)表示y的学习好但工作不好;谓词公式表示所有的计算机(个体z)都有CPU。再如三个人a,b,c赛跑,他们之间的关系为Faster(a,b)表示a比b跑得快;Faster(b,c)表示b比c跑得快;谓词公式
就表示如果a比b跑得快,b比c跑得快,那么a比c跑得快。
这样,一阶谓词逻辑语言的直观意义容易理解为:“符号表”相当于自然语言中的字母表,“公式”代表完整的句子。而其中的函数符号构造复杂的个体,谓词符号则构造最原子的公式。
l
一阶谓词逻辑的推理
我们称蕴涵式(A1∧A2∧…∧Ak)->B为推理的形式结构,A1, A2, …,
Ak为推理的前提,B为推理的结论。若(A1∧A2∧…∧Ak)->B为永真式,则称从前提A1,
A2, …, Ak推出结论B的推理正确(或说有效),B是A1, A2, …,
Ak的逻辑结论或称有效结论,否则称推理不正确。若从前提A1, A2, …,
Ak推出结论B的推理正确,则记为(A1∧A2∧…∧Ak)=>B。
在推理过程中主要通过以下四种推理规则和其它一些等价定律完成推理:
(1)前提引入规则:在推理过程中的任何步骤都可以引入已知的前提;
(2)结论引入规则:在推理过程中的任何步骤都可以引入这次已经得到的结论作为后续推理的前提;
(3)置换规则:谓词公式中任意部分公式都可用其等价的公式替换;
(4)假言推理规则:已知谓词公式C -> D及E,则可推出公式E;
推理过程就是反复使用谓词演算的推理规则和基本等价定律,对已知谓词公式进行变换,以得到所需逻辑结论的过程。
l
Horn子句
我们称不含任何连接词和量词的谓词公式是原子公式,如Computer(x)、hasMom(x,y)都是原子公式。一些原子公式的析取(或)式称为子句,如
P(x)
Q(x)就是子句。这样我们称最多含一个非否定原子公式的谓词子句为Horn子句,其一般形式为:

此式等价于

式中 ,B均为谓词子句,
1,2,……,n
可见,Horn子句是包含若干个条件(前提)子句,仅含一个结论子句的谓词公式。由于运用Horn子句表达知识较方便,推力比较简单,已成为人工智能问题求解的重要工具。SWRL语言描述的规则就采用类似Horn子句的形式来描述。
3.2.1 描述逻辑基础
描述逻辑(DL, Description
Logics)[12]是一种基于对象的知识表示的形式化工具,是一阶谓词逻辑的一个可判定的子集,能够提供可判定的推理服务,并且具有语义特征。从某种意义上说,描述逻辑是语义Web的逻辑基础。描述逻辑建立在概念(concept)和角色(role即二元关系)之上,由构造算子(constructor)从简单概念和角色中构造出复杂概念和角色。例如我们定义Person、Female为原子概念,hasChild为原子角色,那么Person∩Female就可以构成新的Woman概念,如果有公理Woman≡Person∩Female,从而Woman∩hasChild.Person就可以构成新的Mothers概念。
根据构造算子的不同, 可对DL进行分类, 最基本的DL是ALC,
它只包含“合取”、“析取”、“非”、“存在量词”和“全称量词”这些构造算子。SHIQ
DL在ALC的基础上增加了数量约束构造算子,OWL DL即是基于SHIQ
DL的。为了定义DL的语义,我们定义一个解释I=
<ΔI,·I>,它包含一个非空集合ΔI,也就是这个解释的论域,还包括一个解释函数·I,它把DL中的原子概念A映射为一个集合AI啨?SUP>I,把原子属性R映射为一个二元关系RI啨?SUP>I×ΔI。表3.1给出了DL支持的若干构造算子及其语义。

表3.1 描述逻辑中的构造算子及语义
一个描述逻辑表示知识库主要由TBox和ABox两部分组成。TBox定义了特定知识领域的结构并包含一系列公理,可以通过已有概念构成新的概念。ABox包含了TBox中概念的实例。
TBox具有分类(Taxonomy)的能力,分类是系统化建立知识的第一步,通过分类的动作可以将事物的本体集合成共通的概念,这些概念又可组合成更广泛的概念,例如“快速排序”和“选择排序”共通的类别为“排序”,“排序”就是一个上层概念,而“排序”和“递归”又推演出“算法”这个上层概念,在这个分类过程中,每一个类都有其属性和限制,在分类的过程中可以建立类的限制式,这些限制式可以表达出类和类的关系,使用描述逻辑可以针对类的关系限制作描述。
ABox是实例断言的集合,用于指明个体的属性或个体之间的关系。由概念断言(如:student(Bob))和关系断言(如:hasMom(Bob,Nancy))组成。简单的讲,ABox是将与TBox中的类相对应的实例填入,所建立的实例要符合TBox中类设计的限制和属性,这些类的实体(individual)称为实例(instance),由这些实例可以将原来只具有概念的架构,组合为可以表现实体知识关系的架构。例如Problem_001为一个实体,若建立在“题目”这个类中,则Problem_001是这个类的实例,这个实例必须符合所有“题目”类的特性和限制。
描述逻辑作为一种知识表示方法,它不但可以表示领域中的知识,也具有推理机制,能够推导出隐含的知识。在描述逻辑中的推理分成概念推理和实例检测两种。概念推理包括判定概念的一致性(可满足性)、包含关系、等价关系和不相交性等;实例检测指判定一个给定的个体是否是一个给定概念的实例。
一般而言,所有的推理问题都可以归结为一致性检测(或称为可满足性检测)。例如对于描述逻辑知识库KB
(T,
A)(其中T表示TBox,A表示ABox),包含性检测C咲即是要对C∩﹁D作一致性检测,也即C咲成立,当且仅当C∩﹁D在KB
(T,A)中是不一致的。
在描述逻辑推理应用方面,现已有Racer、FaCT++等实用的DL推理机,DL推理机可以推导出两个概念之间的包含关系,并完成一致性检验。
使用描述逻辑具有如下特点:
l
知识结构不被破坏,将类和实体分开。
l
具有较好的推理能力,若描述相同的事实,使用描述逻辑比其他方法容易许多,而且可以专注于类的关系进行推理。
因此通过层次的关系可以使知识的表示更具有结构化,将类和实体分离的架构也易于推理,通过以类为基础的推理可以将类中约束的隐含关系挖掘出来;另外,通过描述逻辑可以表示类间复杂的关系,包含交集、并集、基数等关系。
描述逻辑可以呈现层次性的架构,具有类(class)和实例(instance)的概念也就是Tbox/Abox,但是以描述逻辑表示的知识跟基于XML的文件相比难以被解析和传输,若没有特定的推理引擎无法解析描述逻辑语言,因此使用上有很多的限制。以描述逻辑表示的知识库较难被重用和共享,并且支持描述逻辑的平台也不多,若能够将描述逻辑的概念与基于XML描述的本体表示方式相结合,则可以解决上述问题,较容易的实现重用和共享。
3.2.3 OWL与描述逻辑的关系
采用描述逻辑作为知识的表示方式是Tbox与Abox的架构,将概念与实例分开表示,描述逻辑语法若采用基于XML的表示方式便是OWL的语法,通过OWL语法可以将描述逻辑的关系体现出来。而本体表示的主要目的就是希望机器能够理解其所描述的资源的含义,XML具有人机可读(human
machine readable)的特点,语义Web是希望进一步实现人机可理解(human
machine
understand),达到在语义层次上的理解。因为具有人机可理解的关系和层次架构,OWL便可实现以类为基础的推理,从已分类的知识推导出未分类的隐含知识。
OWL是以描述逻辑为逻辑基础的本体语言,也就意味着OWL中的类构造算子(类约束)及公理具有与描述逻辑相应地表示。表3.2给出了OWL中的类构造算子(类约束)与描述逻辑语法的对应关系。通过描述逻辑来表示类与类之间的关系。这些约束可以一个到多个混合使用,来表达类的组成概念。
表3.2 OWL类构造算子与描述逻辑的对应
|
OWL 元素
|
描述逻辑语法
|
举例
|
|
Thing
|
T
|
I1, I2…
|
|
intersectionOf
|
C1∩…∩Cn
|
C =
intersectionOf(C1…Cn)
|
|
unionOf
|
C1∪…∪Cn
|
C = unionOf(C1…Cn)
|
|
complementOf
|
C
|
C = complementOf(C1)
|
|
oneOf
|
{X1...X2}
|
C = one of (v1...vn )
|
|
someValuesFrom
|

|
P(x,y) and y = someValuesForm(C)
|
|
allvalueFrom
|

|
P(x,y) and y = allValuesForm(C)
|
|
hasValue
|
 |
P(x,y) and y = hasValue(v)
|
|
minCardinality
|
≤nP
|
minCardinality(P) = N
|
|
maxCardinality
|
≥nP
|
maxCardinality(P) = N
|
l
Thing:OWL 的根节点,许多本体的起始点都由thing开始,再由thing
展开到其它类。
l
intersectionOf:类之间具有交集的关系,表示and的意思。例如:Boy=Male∩children。
l
unionOf:类之间具有并集的关系,表示or的意思。在多个类中只要符合一个就可以。
l
complementOf:类之间具有补集的关系,表示not的意思。这个类不属于下列类,例如琝\
Male表示非男性,若性别选择只有两个非男性就一定是女性,但若选择不只一个表示可能是剩下的任一选择。
l
oneOf:类的值为集合范围中的一个,例如{A、B}表示类的值需从A和B选择一个。
l
someValuesFrom:表示类中有部分的成员具有下列特性,但不是全部的成员皆有。例如.
hasChild.Customer,表示部分客户有小孩。
l
allvalueFrom:表示该类中全部的成员都具有下列特性,例如:
hasChild.Costomer,表示所有的客户都有小孩。
l
hasValue:表示该类的成员具有下列特性,例如hasChild.Doctor,表示医生有小孩。但这个约束方式不同于allValue和someValue,约束性较弱。
l
minCardinality:表示该类具有至少n个特性,只能超过但不能不足,例如≥1hasChild
表示至少要有一个小孩,制定本体时很多约束属于必要条件,至少要有一个关系才能成立时,就可以使用这个约束条件。
l
maxCardinality:表示该类至多具有n个特性,只能少于但不能超过。例如≤3hasChild表示最多有三个小孩,可以是0,1,2,3的任一个数目。
l
除了类与类之间的关系之外,OWL对公理(axiom)也提供了很多约束,这些约束主要是属性(property)和类(class)的约束,每个类不同的特性都是由属性约束出来,不同的属性约束可表示该类需要呈现的知识,OWL可表示的属性为数据属性(datatype
property)和对象属性(object
property),其中对象属性专用的axiom有inverseOf,Symmetric,Functional,Inverse,Transitive。下表3.3是OWL公理与描述逻辑语法的对应:
表3.3 OWL的Axioms的描述逻辑的对应
|
Axiom
|
描述逻辑语法
|
举例
|
|
subClassOf
|

|

|
|
equivalentClass
|

|
C1=C2
|
|
disjointWith
|

|
C1!=C2
|
|
sameIndividualAs
|

|
I1= I2
|
|
differentFrom
|

|
I1!=I2
|
|
subPropertyOf
|

|

|
|
equipmentProperty
|

|

|
|
inverseOf
|
 |
If P1(x, y) then P2(y, x)
|
|
transitive
|
 |
If P(x, y) and P(y, z) then P(x,z)
|
|
symmetric
|
 |
If P(x, y) then P(x, y)
|
|
functional
|
 |
If P(x, y) and P(x, z) then y = z
|
|
inverseFunction
|
 |
If P(y, x) and P(z, x) then y = z
|
加载中,请稍候......