基于本体的知识管理关键技术研究,本文主要内容关键词为:本体论文,技术研究论文,知识管理论文,关键论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
1 引言
随着信息技术的普及和深入应用,企事业已将大量关于顾客、产品开发和协作的知识包含于以电子文档、电子表格、Web页面和E-mail等形式表示的信息体中,存储于内部的信息系统。同时,因特网上也出现与日俱增的令企事业感兴趣的信息(主要存在于Web页面上),从中获取有用的知识,可增加企事业的技术、竞争、商务和策略智能。面临经济的全球化和激烈的市场竞争,如何有效地重用包含于企事业内外信息系统的相关知识,去提高企事业的运营效益和市场竞争力,已引起越来越多的知识密集型企事业的关注和重视。知识管理(KM,Knowledge Management)技术应运而生[1]。
知识的价值取决于应用,这使得能否准确和快捷地将信息体内含的知识与工作实践中要解决的问题相关联,成为KM技术面临的挑战性问题[2.3]。另外,当前的知识管理系统存在一个共同的不足,即系统的动态参与性程度不够,表现为系统的知识只能被静态取用和系统的维护是封闭的。
考虑到知识管理的上述情况,本文提出基于本体的开放知识管理方法OOKM(Ontology-based Open Knowledge Management),旨在构建一个三层结构的知识管理系统。该系统以开放性为核心,从三维——理解的共享型建立、知识的开放性集成和本体知识的自动化构建,分多个层次系统化地研究了知识管理系统中的开放性实现。理解的共享型建立旨在提供信息内容的建模方法、语言和工具,去辅助企事业给其OM制定和维护由知识工作者一致赞同的且为机器理解的共享本体,使知识工作者之间和人机之间对于流通的信息具有共同的理解基础。知识的开放性集成依赖基于本体的集成机制,提供基于本体的辅助工具,去帮助知识工作者在按指定的格式建立信息体的同时,便捷地形成附加的元知识。
本文首先构建了一个基于本体的开放性知识管理系统的框架OOKM。为了维护系统中知识的实时性,提出了面向知识管理的本体学习和本体演化框架,实现从企事业内外部文档尤其是Web页面中自动抽取概念模型,即本体的自动化构建。
2 系统框架
2.1 基本概念
为了解决目前KM系统存在严重的局限性——知识的静态取用和封闭维护,本文提出基于本体的知识开放性集成机制,并提供基于表示本体的辅助工具.去帮助知识工作者在按指定的样式建立信息体的同时,便捷地形成附加的元知识,并遵从领域本体的定义将产生的知识项插入构成KM的层次分类体系中。
本体(Ontology)是共享概念模型的明确的形式化规范说明。它是一个规范的、已经得到公认的描述。它包含词表(或称名称表、术语表),词表中的术语是与某一学科领域相关的,词表中的逻辑声明用来描述那些术语的含义和术语间的关系(它们是怎样和其他术语相关联的)。因此,本体提供了一个用来表达和交流某些主题知识的词表,还包括一个关系集。关系集定义了词表中这些术语间的联系。
定义1:本体是某一领域D的概念化描述,它包括一组概念集及其关系。即O[,D]={CS,RS},其中CS为概念集合,RS为关系集合。
定义2:概念总是与某一类对象集合相对应,概念可视为该对象集合或其抽象描述。即D中的概念C[,i]={O[,i1],O[,i2],O[,ik]},其中O[,ij]为领域D中的对象。通常,采用一个专用的标识符来标记概念。
情报学中常用的叙词表(Thesaurus)与本体的区别是:
(1)叙词表中的术语均是规范的科学语言,而本体中的概念、术语可以用自然语言和半自然语言来表达。这是两者在逻辑表达形式上的区别。
(2)在组织结构上,叙词表中知识点的分布是线性的、一维的;而本体中的知识点和概念分布是网状的,它不单纯是一张平面的网格,而是一个网状结构。
(3)本体是一个开放集成的体系,它的底层知识库与概念集可以随着学科领域的更新和发展随时进行修正和更新;叙词表则做不到这一点。
(4)叙词表中只包含“用、代、属、分、参、族”这样简单的语义关系;而本体中概念间的关系,则被描述得更为广泛、深入、细致和全面。这是两者的最主要区别。
(5)叙词表是一个词汇库(语料库),但不是知识库;而本体不仅仅是概念集、语料库,还可以是一个知识库:一个实际存在的本体可以是一个自备知识库或知识底层的完备的知识组织体系,具有智能查询、回答用户问题、机器翻译和预测知识增长点等传统的基于叙词表的系统不具备的功能。
(6)叙词表相对稳定,结构保守而单一,不会经常修订;而本体的结构可以是一个基于XML的开放体系,可以被复用,可以增加或减少枝节,可以对每个枝节处进行修改和校验,可以对原有的模式进行保存。
2.2 系统框架
知识的开放性集成主要包括3部分功能:知识转换、知识抽取和知识标注。通过这3部分的处理,把各种数据源中的知识按本体规定的形式予以表达,形成结构化的知识存储进知识库。我们的体系结构,将KM的知识过程精简地分为3个阶段:获取、存储和重用。并且利用知识的连接和转化机制驱动获取和重用过程。设计OOKM系统框架如图1,图中细黑线表示知识流。
图1 OOKM体系结构
知识的获取是指将信息加上元信息,是结构化、半结构化和非结构化信息向结构化信息转化的过程。从信息的来源说,有以下几类转化:(1)人员和团体的背景信息;(2)各种同构的或异质的数据库;(3)各种文档资料;(4)Web上的知识(包括数据挖掘出来的信息)。
知识的存储是将上述转化以后的知识存放在知识库中。转化过以后的知识有两部分:一种是结构化的元知识,另一种是半结构化或非结构化的信息体,分别存放于数据库和文档库之中。
知识的重用是利用知识于应用系统的过程,我们以人和知识的连接实现知识的重用,主要包括4种连接:(1)连接人到知识。指通过可视化的查询与检索工具,找到不同层次的相关内容,以拉取(pull)的方式获取知识。(2)连接人到人。知识工作者通过KM系统找到相关领域的专家并咨询或讨论。(3)连接知识到人。指KM系统根据个人偏好或即时所需,主动地推送(push)相关的知识。(4)连接知识到知识,知识之间实现超链接。只有很好地实现了知识连接的知识重用,才能建立灵活的人机共栖系统。
2.3 关键技术
在获取、存储和重用过程中,本体起着贯穿始终的作用。该系统框架的开放性体现在以下几个方面:(1)允许用户根据自身情况对本体进行定制,以便适应不同企业或同一企业不同时期的不同需求,避免为不同应用、对知识管理系统进行重复开发的繁重劳动;(2)在知识的获取阶段,依据本体提供的概念和关系为各种信息标注结构化的说明,能准确地反映信息的内容(Content)和上下文(Context);(3)通过本体,可实现不同知识源之间的集成;(4)通过本体学习来自动或半自动地化实现领域本体的构建。
从上述的本体可以看到,应用域表示本体和基础本体的建立是OOKM中的关键,要花费较大的工作量,还要依靠专家在这一应用域的精深和全面的了解。低效率的手工标引成为制约本体系统构建和完善更新的最大瓶颈。为此,我们在OOKM中引入了本体学习(Ontology Learning),以实现本体的自动构建。
因此,OOKM的关键技术主要包括本体学习和本体演化,分别见本文的第3节和第4节。
3 本体学习
3.1 本体学习的概念及目标
像在语义Web中一样,为了实现OOKM,需要构建大量的本体来满足其需求[7]。但本体和知识库从何而来?目前只有很少手工构建的本体如WordNet和Cyc。但是一方面用手工方式构建本体需要耗费大量的人力和时间,另一方面这些通用本体只包含非常少的领域概念。其次,如何维护现有本体,尤其是如何保持更新?因为新的概念、新的实例和已有概念的属性在不断引入。譬如,某一医学本体中可能并不包含SARS,更不可能包括其与香港和北京的关联。几年前手机并没有无线因特网访问这一特征,但如今这是手机重的要特征之一。为了解决“知识瓶颈”问题,我们需要自动化或半自动化工具来构建本体。
本体自动学习技术是当前的一个研究热点[9],其目的旨在开发能够实现本体自动构建的机器学习技术来协助知识工程师构建本体。基本原理如图2所示。本体学习的主要任务包括:领域概念的识别和获取;如何定义概念之间的关系;确定自然语言文本之间的关系。
图2 本体学习的基本原理
3.2 OOKM中本体学习的实现
在OOKM中,我们设计了基础本体与应用本体合成的领域本体,并且给出了这术语集的选择原则及方法。最原始的方法是从领域专家处获取词汇或表示本体的概念,但是这种方法存在至少两点缺陷:首先,专家的时间是非常珍贵的,在一个单位中,能够将他们全部召集起来探讨本体的设计成本比较高、难度比较大。其次,这种方法不利于本体以及系统的演化(Evolution),系统管理人员并不知道工程实践中的概念是不是已经发生变化;或者说即使知道这种变化,也很难确定一种机制不断地修改本体。
OOKM本体学习的任务包括:(1)自动建立基础本体中的术语分类体系;(2)同应用表示本体中的任务概念相结合,自动生成该任务下的槽名和槽值;(3)通过文档的分析,提醒知识工作者领域本体已经产生演化。
术语分类体系的自动产生原理如图3,主要包括4个步骤:(1)文本分析;(2)术语产生;(3)生成术语-上下文矩阵;(4)术语相似度计算。
图3中自动工具的外部的输入信息为:(1)文档的Schemata。指划分文档的逻辑结构的词汇,如学术论文中的标题、摘要、关键字等标号。(2)stopwords。一些与文本内容无关的、出现频率较高的词汇,如介词,定冠词。(3)一些可以预先确定的无关文本。主要包含3类操作:①忽略现有的行、段落和逻辑结构,如摘要、正文等;②忽略当前位置前面的行、段落和逻辑结构;③忽略当前位置后面的行、段落和逻辑结构。(4)重要词汇。指文档被分析前可以列举的可能的重要词汇,如产品、姓名等。(5)操作参数。指自动生成过程中控制参数,如上下文选择范围等。
图3 分类词汇自动生成原理
具体算法如下:
3.2.1 文本分析
包括固定结构的文档,此时执行下列全部步骤;否则,执行后两个步骤。
(1)当文档的逻辑结构已经指定时,通过输入的Schemata可以将文档切成若干个单元,继续后面的操作;如果指定的Schemata没有按顺序出现,打印错误信息;如果文档中一个Schemata都没有,将文档视为一个文档块。
(2)文档分段。每一块中的文档可以分段,主要是通过空行、行首的嵌入和行的长度不同来识别;行标记和连字符被去除;删除non-text部分。
(3)提取词汇。将文档段落逐字扫描,生成词汇;数字或数字与字符的组合被着重处理,同时处理大小写,使所有的词汇同一化。
经过文档分析步骤,已经产生一系列的词汇。
3.2.2 术语产生
(1)词汇的形态分析。每一个词汇都经过形态分析,依据系统中固化的某些基本词干,得到该词汇的语法类型(名词、动词、形容词等)和词干(wordstem)。这个过程中也可以借助一些其他语法标记,如名词首字母大写,动词可加“ed”等。
(2)区分重要词汇和stop-words。
(3)词汇选择和词组产生。这是一个手工和自动相结合的过程。用户对每个单词进行以下选择:
选项1:该单词是否只包括一个词汇;
选项2:是否作为一个词组的首字符,给出最大词组长度。
从而生成词汇及一系列附加信息,如语法属性大小写等。
3.2.3 建立术语-上下文矩阵
这个阶段的目的是统计术语在一定的上下文中出现的频率。上下文包括以下几类:(1)整个文档。多数情况下,上下文为整个文档。(2)独立的文档段落。(3)在术语周围的一个长度为n的浮动框。
知识工作者先选择上下文种类,然后统计术语出现次数。算法中缺省使用(1)和(3)。在基础本体的术语产生阶段,如果是少量的大文档(如小说,长篇报告),则采用上下文类型(3),这样可以抽取更多的有用信息;如果是大量的小文档,且带有相同结构(例如表格),则采用上下文类型(1)。上下文类型(2)用于在任务情景模式的建立中,当槽名已给出时收集的词汇。
3.2.4 术语相似度计算
如果两个术语总是频繁出现在同一上下文中,可认为它们是相似的。
定义3:如果两个词汇在各种上下文环境中同时出现的频率高于某一阈值,称两个词汇是相似的。这里的阈值依据实际情况选定。
相似度计算包括术语上下文选择、权值分配方案和相似度度量方法。每一个侧面提供若干种方法,它们可以相互组合得到不同的结果。
上下文种类包括前述的“全文”、“段落”、“滑动窗”3种。这3种上下文在文档规模不是很大时,都是适宜的。然而,当文档变大时,由于矩阵是稀疏矩阵,所以计算存在一定的困难。可考虑用潜语义分析(LSA,Latent Semantic Analyze)中的奇异值分解(SVD,Singular Value Decomposition)来降低术语-上下文矩阵的维数,这是我们未来的工作。
权值分配方案有两种:(1)二进制权值分配,也就是如果一个术语在一定的上下文出现过,置权为1,否则为0。二进制权值分配方式的思想是如果术语在上下文中出现一次,即表示该文档是讨论相关论题的(Topic),该方式记为“B”。(2)词频TF(Term Frequency)与反篇频IDF(Inverse Document Frequency)的乘积。
相似度计算方法:计算若干个上下文中的术语频率权值,可形成该术语的矢量,计算两个矢量的相似度,可得到词汇的相似度。具体算法有3种:(1)两个矢量的标量积(scalar product);(2)两个矢量的余弦夹角(cosine);(3)二进制权值下的雅可比度量(Jaccard Score)。
4 本体演化
4.1 本体演化的原因
在OOKM中,一般的做法是在系统建立之初,根据系统的应用需求和应用环境,构造出相应的本体。随后,以该本体为中心,对系统做全面的应用设计。现实世界是持续变化的,其所包含的知识的内容、结构、存在形式是不断变化的,某些术语的含义也是不断变化的,同时用户的需求也是不断变化的,而在建立本体时显然是无法预见这种变化的。这样,固定的本体与变化的知识源之间的数据一致性就可能遭到破坏:本体已经不能正确地反映知识源的新状态。如何让本体适应动态变化的外部世界,根据外部知识源的变化做出及时的调整,即实现本体的动态演化(Ontology Evolution),已成本体研究中的一个重要内容[6]。
但目前大多数本体库系统(Ontology Library Systems)并没有考虑本体演化的问题,通常这些系统是用于研究的系统原型,相互之间的关联性并不明显。对于集中式系统而言,本体的某一变化与任何相关信息的变化同步,因此无需变化管理[12,14]。
有多种原因会导致本体的演化。根据其定义,引起本体变化的原因包括如下几个方面:
(1)领域的变化。领域的改变非常普遍,它们的影响也与数据库模式的影响基本类似。Ventrone[13]总结了几种现实世界的变化(领域演化)带来的数据库模式的更新。例如,当两个具有不同管理机构的大学里的系进行合并时,描述该领域的本体需要变更以反映这种变化。
(2)共享概念模型的变化。概念模型的改变是由于领域视图或使用角度的改变引起的,即上下文语义(Semantic)的变化。当本体应用于新的任务或新的领域时,则概念化的表示也要相应地变化。
(3)表示的变化。表示(Representation)的变化是指一种转换,当本体由一种知识表示语言翻译成另一种语言表示时,就会产生显式定义的改变。这些语言不仅语法各异,而且更重要的是语义和表达也各不相同。
4.2 本体演化计算
本体演化计算是指及时地调整本体以适应企事业的要求。一个本体的变化将引起各种不一致性,包括本体本身以及本体的实例,这使得本体演化成为一个非常复杂的问题。
给定一本体O和其两个版本V[,old]和V[,new],本体演化计算所支持的任务包括:
(1)数据转换。它必须能解决本体变化的问题,并确保底层本体和所有相关本体的一致性。当本体某一版本V[,oid]变成V[,new]时,V[,old]所描述的数据可能需要进行翻译以与V[,new]保持一致。例如,如果将V[,old]的两个概念A和B融合成V[,new]中的C,我们必须同时合并A和B的实例[6]。
(2)本体更新。当将一个网络本体按本地特定需求进行改编时,一旦网络本体发生变化,也必须将这些变化反映到该本地本体上。
(3)推导的一致性。本体作为一种形式化描述,通常包括逻辑性的公理。当本体发生变化时,必须分析这些变化以确定某些在V[,old]有效的公理是否在v[,new]中仍然有效。例如,了解某一变化并不影响两概念之间的包含关系,如果AB在V[,old]中成立,则在V[,new]中仍有效。逻辑理论的变化总会影响通用推导,特定查询的应答可能并不改变。
(4)数据访问。如果有数据遵循V[,old],我们必须能通过v[,new]访问这些数据并对其正确解释,即用户应能通过V[,new],的术语检索到所有通过V[,old],术语查询得到的数据。而且,V[,old]中概念的实例应为V[,new]中等价概念的实例。另外,由于相同的本体可能由不同的用户自行修改,需要经常集成本体的不同版本,它应能将同一本体的不同版本再次集成。
(5)验证。它应能让用户更方便地监控和管理变化,可让开发人员验证和批准本体的改变。它应能向用户提供反复本体精化的建议。
从本质上来说,本体演化要做的工作就是根据演化需求对系统内的所有相关部分进行修改,以保证系统各部分的一致性。下面就以本体中概念的变化检测为例说明本体演化的计算。
本体中一般会预先定义一系列的概念,这些概念大多是相互关联、相互依赖的。当一个概念发生改变时,与它相关联的概念必然受到影响,甚至有可能遭到破坏。例如,teacher概念的ID槽就是从person继承而来,当person的ID槽发生变化时,teacher的ID槽显然也要随之发生变化。其算法描述如下:
算法:Get_Related_concept
输入:欲进化的本体对象名称Evo_Concept
系统中全部概念的集合All_Concept
输出:相关概念的集合Related_Concept
{
Related_Concept=Evo_Concept
All_Concept=All_Concept-Evo_Concept //待处理的本体集合
Temp_Concept≠φ
DO While Temp_concept≠Related_Concept//比较前后两次迭代结果
{
Temp_concept=Related_Concept
Do While All_onto≠φ
{
Now_Concept=Fetch(All_Concept)//从待处理的概念集合中取出一个处理
All_Concept=All_Concept-Now_Concept
If Now_Concept的Super槽值是Related_Concept集合的元素then
//Now_Concept是相关的
{
Related_Concept=Related_Concept+Now_Concept.
Super
}
else
{
对Now_Concept的每一个槽
{
If Now_Concept的Type侧面是Related_Concept集合中的元素then
//处理Type侧面
{
Related_Concept=Related_Concept+Now_Concept.槽.Type
}
}
}
}
Return Related_Concept
}
算法执行完毕后,在Related_Concept集合中存储的是与被进化对象Evo_Concept存在相关的所有对象,包括直接相关的和间接相关的(通过迭代得到)。这就为后续的进化执行提供了操作对象。
5 结论
由于当前知识管理系统的动态参与性程度不够,系统的知识只能被静态取用和系统的维护是封闭的。为此,我们提出了一种基于本体的开放知识管理框架OOKM,并开发一个用于高校科研管理的知识管理实际原型系统。该系统以开放性为核心,从三维——理解的共享型建立、知识的开放性集成和本体知识的自动化构建,分多个层次系统化地研究了知识管理系统中的开放性实现。经实际应用,系统在支持相容匹配、涵义领会、知识联网、知识工作者自行建立和维护本体等方面,都达到了预期的效果。
进一步的研究工作将是提高应用域基础本体建立的自动化程度,并解决将OOKM方法推广应用到因特网时面临的异构系统间的互操作问题。