赞
踩
OWL的特性:
语法:RDF语法,三元组:(subject, property, object)
逻辑基础:描述逻辑
一个描述逻辑系统由四个基本部分组成:
不同的描述逻辑系统的表示能力与推理机制由于对这四个组分的不同选择而不同。
下面对四个组成部分进行介绍:
学生:{x|student(x)}
朋友:{<x,y>|friend(x,y)}
小明:{Ming}
Mother
、Person
、has_child
Mother(Alice)
、Person(Bob)
。has_child(Alice, Bob)
。描述逻辑的语义:
有了语义之后,我们可以进行推理。通过语义来保证推理的正确和完备性。
下图给出描述逻辑的语义表:
构造算子 | 语法 | 语义 | 例子 |
---|---|---|---|
原子概念 | A | A Ⅰ ⊆ Δ Ⅰ A^Ⅰ\subseteq\Delta^Ⅰ AⅠ⊆ΔⅠ | Human |
原子关系 | R | R Ⅰ ⊆ Δ Ⅰ × Δ Ⅰ R^Ⅰ\subseteq\Delta^Ⅰ\times \Delta^Ⅰ RⅠ⊆ΔⅠ×ΔⅠ | has_child |
对概念 C,D和关系(role) R | |||
合取 | C ⊓ D C\sqcap{D} C⊓D | C Ⅰ ∩ D Ⅰ C^Ⅰ\cap{D^Ⅰ} CⅠ∩DⅠ | H u m a n ⊓ M a l e \mathrm{Human}\sqcap\mathrm{Male} Human⊓Male |
析取 | C ⊔ D C\sqcup{D} C⊔D | C Ⅰ ∪ D Ⅰ C^Ⅰ\cup{D^Ⅰ} CⅠ∪DⅠ | H u m a n ⊔ M a l e \mathrm{Human}\sqcup\mathrm{Male} Human⊔Male |
非 | ¬ C \neg C ¬C | Δ Ⅰ ∖ C \Delta^Ⅰ\setminus C ΔⅠ∖C | ¬ M a l e \neg Male ¬Male |
存在量词 | ∃ R . C \exists R.C ∃R.C | { x ∣ ∃ y . ⟨ x , y ⟩ ∈ R Ⅰ ∧ y ∈ C Ⅰ } \{x\mid \exists y.\langle {x,y} \rangle\in {R^Ⅰ}\wedge{y\in{C^Ⅰ}}\} {x∣∃y.⟨x,y⟩∈RⅠ∧y∈CⅠ} | ∃ h a s _ c h i l d . M a l e \exists \mathrm{has\_child.Male} ∃has_child.Male |
全称量词 | ∀ R . C \forall R.C ∀R.C | { x ∣ ∀ y . ⟨ x , y ⟩ ∈ R Ⅰ ⇒ y ∈ C Ⅰ } \{x\mid \forall y.\langle {x,y} \rangle\in {R^Ⅰ}\Rightarrow{y\in{C^Ⅰ}}\} {x∣∀y.⟨x,y⟩∈RⅠ⇒y∈CⅠ} | ∃ h a s _ c h i l d . M a l e \exists \mathrm{has\_child.Male} ∃has_child.Male |
描述逻辑与OWL词汇的对应
知识推理:通过各种方法获取新的知识或者结论,这些知识和结论满足语义。
具体任务可分为:
本体可满足性
概念可满足性
示例: 两个不可满足的例子。
分类:针对 Tbox 的推理,计算新的概念包含关系。
注意:这里的分类与机器学习中分类不同。
示例:
实例化:计算属于某个概念或关系的所有实例的集合。
示例:
基于本体推理的常见方法:
基本思想:
适用性:检查某一本体的可满足性,以及实例检测。
Tableaux运算规则(以主要DL算子举例):
示例:检测实例 Allen 是否在 Woman中? 即:检测 W o m a n ( A l l e n ) \mathrm{Woman(Allen)} Woman(Allen) ?
M a n ⊓ W o m a n ⊑ ⊥ \mathrm{Man}\sqcap\mathrm{Woman}\sqsubseteq\bot Man⊓Woman⊑⊥
M a n ( A l l e n ) \mathrm{Man(Allen)} Man(Allen)
其解决流程为:
首先加入带反驳的结论:
M a n ⊓ W o m a n ⊑ ⊥ \mathrm{Man}\sqcap\mathrm{Woman}\sqsubseteq\bot Man⊓Woman⊑⊥
M a n ( A l l e n ) \mathrm{Man(Allen)} Man(Allen)
W o m a n ( A l l e n ) \mathrm{Woman(Allen)} Woman(Allen)
初始Abox,记为 ϕ \phi ϕ,其内包含 M a n ( A l l e n ) \mathrm{Man(Allen)} Man(Allen)、 W o m a n ( A l l e n ) \mathrm{Woman(Allen)} Woman(Allen)。
运用
⊓
−
\sqcap^-
⊓− 规则,得到
M
a
n
⊓
W
o
m
e
n
(
A
l
l
e
n
)
\mathrm{Man}\sqcap \mathrm{Women(Allen)}
Man⊓Women(Allen)。将其加入到
ϕ
\phi
ϕ 中,
现在的
ϕ
\phi
ϕ 为
M
a
n
(
A
l
l
e
n
)
W
o
m
a
n
(
A
l
l
e
n
)
M
a
n
⊓
W
o
m
e
n
(
A
l
l
e
n
)
\mathrm{Man(Allen)} \ \ \ \mathrm{Woman(Allen)} \ \ \ \ \mathrm{Man}\sqcap \mathrm{Women(Allen)}
Man(Allen) Woman(Allen) Man⊓Women(Allen)。
运用
⊑
\sqsubseteq
⊑ 规则到
M
a
n
⊓
W
o
m
e
n
(
A
l
l
e
n
)
\mathrm{Man}\sqcap \mathrm{Women(Allen)}
Man⊓Women(Allen) 与
M
a
n
⊓
W
o
m
e
n
⊑
⊥
\mathrm{Man}\sqcap \mathrm{Women}\sqsubseteq\bot
Man⊓Women⊑⊥ 上,得到
⊥
A
l
l
e
n
\bot\mathrm{Allen}
⊥Allen。
此时的
ϕ
\phi
ϕ 包含
M
a
n
(
A
l
l
e
n
)
W
o
m
a
n
(
A
l
l
e
n
)
M
a
n
⊓
W
o
m
e
n
(
A
l
l
e
n
)
⊥
A
l
l
e
n
\mathrm{Man(Allen)} \ \ \ \mathrm{Woman(Allen)} \ \ \ \ \mathrm{Man}\sqcap \mathrm{Women(Allen)}\ \ \ \ \bot\mathrm{Allen}
Man(Allen) Woman(Allen) Man⊓Women(Allen) ⊥Allen。
运用 ⊥ \bot ⊥ 规则,拒绝现在的 ϕ \phi ϕ 。
得出 Allen 不在 Woman 的结论。如果 W o m a n ( A l l e n ) \mathrm{Woman(Allen)} Woman(Allen) 在初始情况已存在于原始本体,那么推导出该本体不可满足!
正确性:基于Herbrand模型,Herbrand模型可以把它简单的理解为所有可满足模型的最小模型,具体的可以参考逻辑方面的书籍。
工具名称 | 支持本体语言 | 编程语言 | 算法 |
---|---|---|---|
FaCT++ | OWL DL | C++ | tableau-based |
Racer | OWL DL | Common Lisp | tableau-based |
Pellet | OWL DL | Java | tableau-based |
HermiT | OWL 2 Profiles | Java | tableau-based |
本体推理的局限性:
解决方法:引入规则推理
Datalog语言
Datalog的语法:
Datalog 推理的示例:
工具名称 | 支持本体语言 | 实现编程语言 | 支持编程语言 |
---|---|---|---|
KAON2 | OWL DL/SWRL | Java | Java |
RDFox | OWL 2 RL | C++ | Java/C++/Python |
查询重写的目的:
一阶查询:具有一阶逻辑形式的语言
Q: 给定如下本体,查询所有研究人员及其所从事的项目?
用 SPARQL 表示为:
SELECT ?r ?p
WHERE {
?r exp:worksFor ?p .
?p rdf:type exp:Project
}
给定Datalog 规则如下:
C
o
o
r
d
i
n
a
t
o
r
⊑
R
e
s
e
a
r
c
h
e
r
∃
w
o
r
k
F
o
r
⊑
R
e
s
e
a
r
c
h
e
r
∃
w
o
r
k
F
o
r
−
⊑
P
r
o
j
e
c
t
R
e
s
e
a
r
c
h
e
r
⊑
∃
w
o
r
k
F
o
r
P
r
o
j
e
c
t
⊑
∃
w
o
r
k
F
o
r
−
∃
n
a
m
e
−
⊑
x
s
d
:
S
t
r
i
n
g
R
e
s
e
a
r
c
h
e
r
⊑
∃
n
a
m
e
P
r
o
j
e
c
t
⊑
∃
n
a
m
e
底层数据具体为某数据库中为下图中的两张表:
步骤一: 重写为 Datalog 查询
产生式系统
产生式系统的 组成:
1. 事实集/运行内存(Working Memory, WM)
(student name:Alice age:24)
。2. 产生式集合(Production Memory, PM)
conditions
是由条件组成的集合,又称为 LHS。actions
是由动作组成的序列,称为 RHS 。3. 推理引擎(核心步骤):
产生式系统的执行流程:
模式匹配:用每条规则的条件部分匹配当前WM。
RETE算法——高效的模式匹配算法(空间换时间)
冲突解决:从被触发的多条规则中选择一条
随机选择:从被触发的规则中随机选择一条执行;
具体性(specificity):选择最具体的规则;
示例:
( S t u d e n t n a m e : x ) ⇒ . . . (\mathrm{Student\ name:}x) \Rightarrow ... (Student name:x)⇒...
( S t u d e n t n a m e : x a g e : 20 ) ⇒ . . . (\mathrm{Student\ name:}x\ \mathrm{age}:20) \Rightarrow ... (Student name:x age:20)⇒...
存在上述两条规则时,若根据具体性,则选择第二条
新近程度(recency):选择最近没有被触发的规则执行动作;
Drools
Jena
RDF4J
GraphDB(原OWLIM)
对比
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。