第四节:知识图谱与描述逻辑¶
约 1765 个字 1 张图片 预计阅读时间 6 分钟
1. 语义网络与知识图谱¶
在网络结构的知识体系中,知识在一个带标签的有向图中得到表达,图的节点表示各种实体,边表示实体间的关系。可以将两个节点和它们之间的边组成一个三元组 \(\operatorname*{prop}(\mathrm{Ind}, \mathrm{Prop}, \mathrm{Val})\),其中 \(\mathrm{Ind}\) 称为主语,\(\mathrm{Prop}\) 称为动词,\(\mathrm{Val}\) 称为宾语。将三元组类比成有三个词的简单句子,这个三元组的动词是一个特性。
对于上述的 \(\operatorname*{prop}\) 关系,可以在一个有向图之间得到表示,可以把 \(\operatorname*{prop}\) 关系看作位于节点 \(\mathrm{Ind}\) 和 \(\mathrm{Val}\) 之间的一条边,并且这条边的标签为 \(\mathrm{Prop}\),构成的图称为语义网络。其可以表示个体与个体之间的联系,还可以表示概念与概念之间的联系。
语义网络:语义网络是一个图,其节点表示对象或者概念,边表示这些对象或者概念之间的关系。
知识图谱是一种语义网络,用于描述现实世界中的各种实体以及其关系,其核心是如何从大数据中提取结构化知识并且以语义网络的形式加以表示。其也是由三种成分组成:节点,边和标签,任何对象都可以是一个节点,边定义了节点之间的关系。
2. 本体与描述逻辑¶
为了实现知识共享,我们需要一个统一的术语体系并且阐明各个元素的含义,这样的术语体系称为本体。本体由三个部分组成,可以被理解成一种用于描述特定领域概念及其关系的形式化规范。第一部分是关于事物分类的词汇表,第二部分是分类的组织,第三部分是一组公理集合,限制一些符号的定义。
描述逻辑是语义网络的继承与发展,是一阶逻辑的子集,可以用于本体建模。在描述逻辑中,个体、概念和角色分别对应于一阶逻辑的个体常元、一元谓词和二元谓词。
目前有很多种描述逻辑,每种描述逻辑都有自己的表示语言、表达能力和计算复杂性。属性语言 \(\mathcal{AL}\) 是描述逻辑中的一种,可以表示原子的否定、概念交、全称约束、受限的存在量化。\(\mathcal{ALC}\) 是一种有代表性的语言,它是一种属性语言,但允许有任意的概念,而不仅是原子概念。
描述逻辑区分术语框/TBox 和断言框/ABox。术语框/TBox 描述概念的结构和层次,断言框/ABox 含基句子,阐述个体处于层次的那个地方。每个员工都是人属于 TBox,Bob 是一个员工属于 ABox。
2.1 描述逻辑的基本组成元素¶
在描述逻辑中,有三种实体:概念、角色和个体名称。概念表示个体的集合,角色表示个体之间的二元关系,而个体名称代表一个领域中的单个个体。可以将它们分别视为一元谓词,二元谓词和常元。我们传统上将公理分为三类:断言型/ABox 公理、术语型/TBox 公理和关系型/RBox 公理。
- 使用 ABox 断言事实:ABox 公理可以刻画关于命名个体的知识,即它们所属的概念以及它们相互之间的关系,最常见的是概念断言,即 \(\mathrm{Employee}(x)\) 表示 \(x\) 是一个员工,角色断言描述个体之间的关联关系,比如 \(\mathrm{ParentOf}(x, y)\) 表示 \(x\) 是 \(y\) 的父母。
- 使用 TBox 表达术语知识:TBox 公理描述概念之间的关系。例如,「所有母亲都是父母」这个事实可以用概念包含表示如下 \(\mathrm{Mother} \sqsubseteq \mathrm{Parent}\)。
- 使用 RBox 建模角色之间的关系:RBox 公理是关于角色的特性的。关于概念,描述逻辑支持决策包含公理和角色等价公理,比如 \(\mathrm{ParentOf} \sqsubseteq \mathrm{AncestorOf}\) 表明 \(\mathrm{ParentOf}\) 是 \(\mathrm{AncestorOf}\) 的子角色。
2.2 概念和角色的构造算子¶
为了描述更复杂的情况,描述逻辑允许使用不同的构造算子来构建新的概念和角色:
- 布尔概念构造算子:布尔概念构造算子提供了基本的布尔运算,这些运算与人们熟悉的集合的交集、并集和补集运算,或者与逻辑表达式的合取、析取和否定运算密切相关。比如 \(\mathrm{Person} = \mathrm{Male} \sqcup \mathrm{Female}\) 表示人是由男性和女性组成的并集,未结婚的女性可以表示为 \(\neg \mathrm{Married} \sqcap \mathrm{Female}\)。
- 角色限制:描述逻辑可以形成将概念和角色联系在一起的语句,比如 \(\mathrm{Parent} \equiv \exists \mathrm{ParentOf}.\top\) 表示这样的个体集合,其中每一个个体都是至少一个个体(\(\top\) 的实例)的父母。
2.3 描述逻辑 ALC 的语法¶
再介绍描述逻辑 \(\mathcal{ALC}\),其概念定义如下:对于三元组 \((N_C, N_R, N_O)\),\(N_C\) 是概念名的集合,\(N_R\) 是角色名的集合,\(N_O\) 是个体名的集合,这仨其实构成了描述逻辑的名字表,\(\mathcal{ALC}\) 的概念集合是满足如下条件的极小集合:
- \(\top\) 和 \(\bot\) 是概念;
- 每一个原子概念 \(A \in N_C\) 是一个概念;
- 如果 \(C\) 和 \(D\) 是概念,且 \(R\in N_R\) 是一个角色名,那么下面都是概念:\(C \sqcap D\),\(C \sqcup D\),\(\neg C\)。且 \(\forall R.C\) 和 \(\exists R.C\) 也是概念。
对于概念名 \(\mathrm{Human}\)、\(\mathrm{Female}\)、角色名 \(\mathrm{hasChild}\)、\(\mathrm{hasParents}\),\(\mathrm{gender}\),\(\mathcal{ALC}\) 的概念可以表示为:
- 有孩子的东西:\(\exists \mathrm{hasChild}.\top\)
- 有孩子的人:\(\exists \mathrm{hasChild}.\top\)
- 孩子是人的人:\(\exists \mathrm{hasChild}.\mathrm{Human} \sqcap \mathrm{Human}\)
- 女人:\(\mathrm{Human} \sqcap \exists \mathrm{gender}.\mathrm{Female}\)
- 有孩子和父母的人:\(\mathrm{Human} \sqcap \exists \mathrm{hasChild}.\top \sqcap \exists \mathrm{hasParents}.\top\)
- 有女儿的人:\(\mathrm{Human} \sqcap \exists \mathrm{hasChild}. \exists \mathrm{gender}.\mathrm{Female}\)
TBox 是一组术语公理的有穷集合,ABox 是断言公理的有穷集合。
术语公理:普通概念形如 \(C \sqsubseteq D\),其中 \(C\) 和 \(D\) 是概念。当 \(C \sqsubseteq D\) 且 \(D \sqsubseteq C\) 时,记作 \(C \equiv D\)。
断言公理:概念断言是一个形如 \(a : C\) 的句子,期中 \(a\in N_O\) 是一个个体名,\(C\) 是一个概念。角色断言是一个形如 \((a, b) : R\) 的句子,其中 \(a, b\in N_O\) 是个体名,\(R\) 是一个角色名。
知识库:在描述逻辑中,一个知识库是一个有序对 \((\mathcal{T}, \mathcal{A})\),其中 \(\mathcal{T}\) 是一个 TBox,\(\mathcal{A}\) 是一个 ABox。