相关热词搜索:
从文本自动构建OWL本体的研究8400字
从文本自动构建OWL本体的研究8400字 随着语义检索的发展,近年来涌现了许多基于本体的研究和应用,但本体本 身仍离不开领域专家手工或半自动化的构建,成为了本体研究领域的一个瓶颈。因此,本文着眼于本体的自动化构建,提出了一种用FCA(形式概念分析)从文 本中提取并自动生成符合W3C标准的OWL通用本体库的方法。解决了目前本体构建 自动化程度低,领域依赖性强的问题,使得本体的发展和应用不再是空中楼阁。
摘 要:
本体;
形式概念分析;
本体描述语言 一、背景介绍 近年来,“万维网之父”Berners-Lee提出的语义网的理念得到越来越广泛 的认同和重视。在语义网层次结构中本体(Ontology)处在核心层位置。
“本体是概念模型的明确的规范说明”,通过本体描述的概念间语义关系, 可以进行语义上的逻辑推理从而实现语义检索。当前的本体基本上是基于专家或 词典手工构建的,自动化程度很低,繁琐而耗时,难以随着人类认知结构的发展 对本体库进行自动更新。因而,本体的自动化构建是个迫在眉睫的难题。
要实现本体的构建,关键在于找出概念及概念间的关系。中,概念被理解为 由外延和内涵两个部分所组成的思想单元。其中概念的外延被理解为属于这个概 念的所有对象的集合,而内涵被认为是所有这些对象所共有的属性集。德国Wille R教授提出的形式概念分析(Formal Concept Analysis) 方法就是通过找出对象 间的共有属性来确定对象之间的关系。目前国际上利用FCA方法进行本体学习的 研究还处在探索阶段,通过FCA方法得到的是一种称为概念格的数据结构,它的 层次结构揭示了概念之间的泛化与例化关系,但与本体仍有一定差距。本文在前 人的基础上通过研究,实践了一种借助FCA方法从文本中自动提取概念及其语义 关系并最终生成国际通用的OWL本体的方法,从而显著提高本体构建的自动化程 度。
以上介绍了本文研究的内容、背景和现状;
接下来,第二节将介绍形式背景以及形式概念分析方法;
第三节分析从形式概念分析方法得到的概念格的结构特 点及OWL语言的语义要素,给出它们之间的转化算法;
第四节将得到的OWL本体导 入Protégé进行推理验证和修正,得到语义丰富的通用本体。最后,第五节总结 本文所做工作,提出下一步改进方向。
二、从形式背景到概念格 2.1 形式背景介绍 研究形式概念分析(FCA),通常要从形式背景(如:图1左边)这一基本概念 开始。
定义1 形式背景(context):
一个形式背景K是由(O,A,R)三元组构成,O是 对象集,A是属性集,R 是O和A之间的二元关系,表示为K=(O,A,R)且RO×A。对 于o∈O,a∈A,若对象o具有属性a,则说o与a是有关的,记为o R a ,或(o , a) ∈R。
定义2 形式概念(concept):
序偶(E,I)是形式背景K=(O,A,R)的一个形式 概念C(简称,概念),当且仅当EO,IA,E=I且I=E时。E为概念的外延(Extent), 而I称为概念的内涵(Intent)。
定义3 格(lattice):
设( L,≤ )是一个偏序集,如果 L 中任意两个元素 都有最小上界和最大下界,则称( L,≤ )为格。
定义4 概念格(concept lattice):对于所有概念所属的形式文本K而言,存 在因概念层次包含关系(子概念-超概念)而形成的偏序:即E1,E2均O,I1,I2 均A时,(E1, I1)≤(E2, I2) E1E2(且I2I1),则称此偏序集为K的概念格G,此 时称(E1, I1)是(E2, I2)的子概念,(E2, I2)是(E1, I1)的超概念。
根据偏序关系可生成概念格的Hasse图。如果有概念C2 ≤C1,并且不存在另 一个概念C3使得C2≤C3≤C1,则从C1到C2就存在一条边,即C1是C2的直接超概念, C2是C1的直接子概念。如下图1右边所示,我们可以看出,满足直接子概念―超 概念关系的所有概念节点的集合是一个完全格,每个概念节点对(E, I)都是完全 对,即关系R满足以下性质:
1) I = f(E) 当 f(E) = {a A o E, o R a};2) E = f "(I) 当 f "(I) = {o O a I, o R a}. 此性质保证了对于同一个形式背景K而言,构造的概念格G不受数据或属性排 列次序的影响,是唯一的,从而保证了算法设计的可行性。
[1] [2] [3] [4] 图1. FCA示例 左:形式背景K=(Object={1,..,4}, Attribute={a1,a2}, R);
右:由左边形式背景K所得到的概念格的Hasse图 通过自然语言处理(NLP)工具,如“Stanford Parser”软件,可将文本提 取成形如(o, a)的对象属性对(pairs)或(o, a, R)的三元组(tuple)。
例如,“Most frogs can move easily on land by jumping or climbing.”通 过Stanford Parser进行句型结构分析和词性标注后可得到以下信息:
amod(frogs-2, Most-1) -- amod : adjectival modifier(定语) nsubj(move-4, frogs-2) -- nsubj : nominal subject(主语) aux(move-4, can-3) -- aux : auxiliary(助词) advmod(move-4, easily-5) -- advmod : adverbial modifier(状语) prep_on(move-4, land-7) -- prep : prepositional modifier(介词) prepc_by(move-4, jumping-9) -- prep : prepositional modifier(介词) conj_or(jumping-9, climbing-11) -- conj : conjunct(连词) 抽取句子的主干,即表示主谓关系的nsubj(move-4, frogs-2)和aux(move-4, can-3),可得到(frog, can move)这样的对象属性对。通过处理大量文本数据 便可得到相应的形式背景,图2是张从生物类文本得到的形式背景。
图2 Live In Water形式背景 2.2 概念格建格算法 从形式背景生成概念格有许多建格算法,本文采用Ganter的批处理建格算法进行形式概念分析,得到如下图3的概念格:
[4] [5] 图3 Live In Water概念格 自顶向下地考察这个概念格,为方便描述,称相邻两个节点中,位于上方的 是父节点(直接超概念),位于下方的叫子节点(直接子概念)。图3为便于展 示简化了概念格,只显示每个节点相对其父节点新增的属性和相对其子节点新增 的对象。因此,不难看出最顶端的节点拥有所有对象但拥有的属性最少或为空, 最底端节点拥有所有属性但对象最少或为空。这不难理解,因为概念格中的每个 节点的含义是,该节点中所有对象所共有的属性,所以把越多对象放在一起,能 找到的共同点(即共有属性)就越少。正好说明概念格结构与本体想要描述的客 观现实是一致的。
我们按节点生成的次序将每个概念格节点标上序号,并作为其id存储到整个 格 数组中。其中每个格节点存储的信息应包括:该节点的对象集E和属性集I, 该节点新增的对象和属性,该节点的父节点id以及子节点id。得到这样的概念格 后,还需理解格的语义信息,从中提取本体要素,并输出生成OWL描述的本体。
三、从概念格到OWL本体 3.1 OWL介绍 OWL(本体论Web 语言,Ontology Web Language)是W3C推荐的本体描述语 言的标准。
其基本元素有类、属性和实例[6]:
(1)Class(类):类定义了一组共享某些属性的个体所组成的集合。使用 rdfs:subClassOf(子类)可以将不同的类组织成为特定的层次结构。
(2)rdfs:Property(属性):属性可以用于说明个体之间或个体到数值间的关 系。与类相似,属性可以有子属性。属性的rdfs:domain(域)限定了可以应用该 属性的个体的类。属性的rdfs:range(范围)在另一个方向上限定个体的取值。
(3)Individual(个体):个体是类的实例。可以用属性将一个个体与另一个个体关联起来。
3.2 概念格与OWL的转化 横向和纵向地分析概念格结构的逻辑含义,不难看出:概念格中超概念是子 概念的泛化,相应的子概念是超概念的例化,因此,格节点之间的层次关系就对 应于OWL中父类和子类的关系;
其次,概念格节点的内涵体现了该节点中对象所 共有的属性,即该节点所代表类所具有的属性;
此外,概念格节点的外延是该节 点所包含的对象,相当于类的实例。
经过以上分析和理解,得到如下FCA概念格元素的描述逻辑及其与OWL中语义 要素的对应和转化关系:
[7] 由于子类将继承父类的所有属性,为避免冗余,每个节点类只需将其相对父 节点新增的属性作为其属性即可,同时还可以确定这些新增属性的域便是该节点 所对应的类。同理,虽然一个实例可以属于多个不同的类,但若所属的类之间存 在包含关系则只作为最例化的那个类的实例出现,因此,每个节点类只将其相对 子节点新增的对象作为其所代表类的实例即可。
综上所述,得到概念格至OWL本体的生成转化算法:
[8] for (i=0;i
sup = getFirstSet (supC);
// 获取第一个直接超概念 while(sup != -1) { // 判断是否还存在直接超概念 fprintf(outputFile, "
// 获取下一个直接超概念 } fprintf(outputFile, "n");
// 输出该类的属性 if((atr = getFirstSet(newAtrs))!=-1) // 判断该节点是否有新增属性 fprintf (outputFile, "n");
while (atr != -1) { // 若存在新增属性,则将新增属性作为该类的属性输出 fprintf(outputFile, "
fprintf(outputFile, "
fprintf(outputFile, "
atr = getNextSet(newAtrs, atr);
// 获取下一个新增属性 } // 输出该类的实例 if((obj = getFirstSet(newObjs))!=-1) // 判断该节点是否有新增对象 fprintf (outputFile, "n");
while (obj != -1) { // 若存在新增对象,则将新增对象作为该类的实例输出 fprintf (outputFile, "
fprintf (outputFile, "
fprintf (outputFile, "
obj = getNextSet(newObjs, obj);
// 获取下一个新增对象 } } 四、实验结果评价和修正 4.1 实验结果展示 经过FCA处理和OWL转化,得到Live In Water的本体片段如下:
….
该本体构建方法的时间复杂度主要依赖于建格算法的时间复杂度,目前最快 的建格算法可以达到随属性个数线性增长的速度。由于本体一旦构建完成就极少 修 改,对时间复杂度要求并不高,故不多加分析。
综上所述,本体的自动构建是语义检索等基于本体的研究和应用的基石,具 有广阔的研究空间和重要的研究意义。
[1] 宋炜,张铭.《语义网简明教程》.高等出版社 [2] Karl Erich Wolff. A First Course in Formal Concept Analysis. Faulbaum, F. (ed.) SoftStat"93 Advances in Statistical Software 4, 429-438. [3] 宫玲.《概念格建格算法的研究》.辽宁师范大学硕士论文.2006年6月 [4] Godin R. Incremental concept formation algorithm bases on Galois (concept) lattices. Computational Intelligence, 1995, 11(2):246-267. [5] Ganter B, Wille R. Formal Concept Analysis: Mathematical Foundations. Springer-Verlag, 1999 [6] 胡 鹤,刘大有,王生生.《Web本体语言OWL》.工程,第30卷,2004年6 月 [7] Baader F., I. Horrocks, and U. Sattler. Description logics as ontology languages for the semantic web. In Hutter D. and W. Stephan, editors, Mechanizing Mathematical Reasoning: Essays in Honor of J?org H. Siekmann on the Occasion ofHis 60th Birthday, volume 2605 of Lecture Notes in Arti?cial Intelligence, pages 228{248. Springer-Verlag, 2005. [8] Christian Lindig. Fast Concept Analysis. April 21, 2002 图5 修正后的Live In Water本体 4.3 本体语法检查 最后,经racer推理机的一致性检查,该本体不存在语义冲突。
至此,我们得到了语义完整正确的Live In Water本体,完成了从形式背景 数据到OWL本体的转化。配合之前提到的自然语言处理工具Parser对普通文本进 行语法分析和提取形成形式背景,辅以少许的类名标注,便可实现从文本到OWL 本体的自动构建。
五、总结与展望 本文提出了一种本体自动化构建的方法。通过自然语言处理工具从文本中得 到形式背景,经FCA方法从形式背景得到概念格,又通过一定的逻辑规则将概念 格转化输出为OWL本体,最后在Protégé工具中对生成的本体进行类名标注,得到 语义丰富满足逻辑推理的本体,为进一步进行各种诸如语义检索、知识管理、数 据挖掘等的智能处理奠定了基石。
该方法相比其他本体构建方法的优点在于,首先,它能处理非结构化文档, 数据来源丰富;
其次,它能自动生成OWL本体,虽然类名的描述不够精确;
最后, 它解决了同一层次上不同角度的分类问题及类之间交叉隶属的复杂问题,这是本 体构建工程师最常面临和最易产生分歧的地方。
不过,该方法在类名的获取方面仍需改进,类名的手工标注降低了该本体构 建方法的自动化程度,下一步的研究将通过专业词典或领域知识库的自动匹配来 完成类名自动标识别和标注。进一步提高该本体构建方法的自动化程度,从而真 正意义上实现本体的自动构建。