数字资源语义互联研究(II)——桥本体系统的设计与实现
牟冬梅1, 余鲲涛1, 范轶1, 韩毅2
1.吉林大学公共卫生学院 长春 130021
2.空军航空大学图书馆 长春 130022
摘要

采用静态和动态相结合的方案构建桥本体,利用Protégé 3.4静态构建桥本体的类、子类和属性,在EclipseSDKv3.4.2开发平台下,通过语义相似度计算动态构建桥本体的实例和属性值,最终形成可共享的OWL语言描述的桥本体。

关键词: 本体整合; 桥本体; 本体
中图分类号:TP391
Study on Semantic Interconnection of Digital Resources(II)——Design and Implementation of Bridge Ontology
Mu Dongmei1, Yu Kuntao1, Fan Yi1, Han Yi2
1.School of Public Health,Jilin University, Changchun 130021,China
2.Library of Aviation University of AirForce, Changchun 130022,China
Abstract

This paper builds bridge Ontology by the combination of static and dynamic methods. It uses Protégé 3.4 to build static classes, subclasses and properties of bridge Ontology, then builds the dynamic instances and property values using semantic similarity calculation on the EclipseSDKv3.4.2 platform. Ultimately it forms a shared bridge Ontology described by OWL.

Keyword: Ontology integration; Bridge; Ontology; Ontology
1 引 言

多领域本体环境中的语义标注成为本体应用过程中的瓶颈问题。国内外研究者就此已经提出几种方案:

(1)对已有本体进行扩展或者整合多个本体,以获得更大的本体来满足语义标注要求。但整合多个本体的方法工作量非常大,并且用扩展和整合方法得到的本体在本体演化方面能力比较弱,因此至今还没有大规模开展[ 1]

(2)用分布描述逻辑来处理语义标注问题,提出用一种简单的桥规则来表示本体间相互联系的概念。文献[2]对多本体之间的不同联系进行了分析和分类,提出利用桥规则处理多本体。由于简单桥规则在对本体之间复杂联系的描述方面存在不足,因此该方法仍不能大范围应用。

(3)董慧等进行了基于数字图书馆的本体演化和知识管理研究,从本体基本元素展开本体融合和构建研究,力图从本体分子由底向上探讨数字图书馆数字资源管理与语义互操作问题[ 3, 4, 5]

(4)德国卡尔斯鲁厄大学的信息技术研究中心设计了分布式本体映射框架MAFRA[ 6],在MAFRA中定义了语义桥(Semantic Bridge),它根据两个本体元素的相似性建立两者的通信,其规范由语义桥本体(Semantic Bridge Ontology,SBO)来定义。SBO对实体通过概念、关系和属性进行描述,定义了Semantic Bridge类、Service类、Transformation类、Condition类和两个建模原语:COMPOSITION和ALTERNATIVE。SBO运用DAML+OIL语言来表示,提供一组语义映射的构造子集,能够被大多数语义Web工具理解[ 7]

这几种方式都将解决本体异质,充分、有效地利用多领域本体对数字资源进行类聚、融合和科学的重组,解决语义层的异质[ 8]作为研究的重点。

本文借助MAFRA思想和[2]中桥本体的概念模型,尝试用静态和动态相结合的方式,利用HP实验室开发的本体Java开发工具包Jean2.5.7解析本体,在EclipseSDKv3.4.2开发平台下构建用OWL语言表示的桥本体,用桥本体来解决本体异质,把桥本体作为数字资源语义互联的基础和工具,其目的是将多个领域本体整合为统一的语义视图,为语义发现、语义标注、语义映射和语义服务提供支撑。本课题组研制的面向医学领域的语义互联模拟系统(MOSISS)中,桥本体构建为本体管理子系统中的一个功能模块。

2 桥本体概念模型
2.1 概念模型

桥本体是一种特殊的本体,完成不同领域本体概念之间关系的映射,进而实现本体整合,形成领域内的共享本体。

在概念上桥本体具有4层树形结构,如图1所示[ 9]:

图1 桥本体的概念结构图

(1)第一层是最普遍的概念,标记为T;

(2)第二层具有概念桥(Concept Bridge)和关系桥(Relation Bridge)两个概念,它们分别表示了两种不同的桥关系;

(3)第三层由10种不同类型的子类桥组成,具体如表1所示[ 9]:

表1 桥本体的概念结构

(4)第四层是一系列动态创建概念的集合,它们的属性描述了不同本体之间关系的信息。

其中上面三层是固定的,称之为静态层;第四层的概念是根据已知的多本体动态产生的,为动态层。

2.2 桥本体与本体映射的关系

本体映射是本体集成的一个关键环节,它通过一定的方法在已存在的不同本体间建立映射,以便在已存在的和新的领域之间进行交流时有通用的接口和共同的理解[ 10]。由于本体结构的复杂性及组织本体形式上的多种异构性等,使本体映射在实现上还存在诸多问题:

(1)构建本体映射大多还需要领域专家大量地人工介入,自动化程度还达不到大规模本体共享与交流的要求。

(2)本体映射采用的语言规范以及映射规则的表示、结果和处理方法还没有规范统一,这给本体的共享使用带来阻碍。

(3)实际的本体映射并不是简单地一对一的映射,还需要对继承和推理的一致性进行校验和确认,这使得本体映射规则的构建变得更加困难。

桥本体可以有效地解决目前多领域本体映射所面临的一些问题:

(1)桥本体避免了为每一个领域本体提供一组转换函数,避免了在没有中介本体的情况下直接跟其他领域本体交流所面临的计算复杂度。

(2)桥本体无需创建一个超复杂的共享本体。类似于本体聚类技术,只需将现存的本体进行简单加工,进行简单的语义标注,增加必要的语义链,即可与相关的本体进行关联,多个领域本体根据其相关性,利用语义知识链连接起来,形成一个既关联、又相对独立的桥本体。

(3)借助桥本体可以实现多对一、一对多和多对多的本体映射。桥本体并不储存概念的细节描述,只是给大量的领域本体建立相互参照通道,使领域概念和知识的描述通过复用其他领域本体变得丰富。

3 桥本体的设计与构建
3.1 静态层构建

桥本体采用半自动化方法构建,其中桥本体的静态层采用手工建立方式,动态层采用计算机自动构建。静态层利用Protégé 3.4 构建桥本体BridgeOntology.owl的类、子类和属性,采用OWL DL描述语言。例如:其中的两个大类包含子类(概念类包括8个子类、关系类包括两个子类)。属性包括以下三种:

(1)come_From:为Concept类所具有的属性,表示此概念所在的本体;

(2)has_Concept:为ConneptBridge类所具有的属性,表示该种桥关系所包含的概念;

(3)has_Ontolgy:是RelationshipBridge类所具有的属性,表示该种桥关系所包含的本体。

具体如表2所示:

表2 桥本体类、子类、属性表

在Protégé3.4 中类和属性如图2所示:

图2 Protégé3.4 构建桥本体静态层——类和属性

3.2 动态层构建

在动态层构建过程中,只需根据给定的领域本体,增加、删除或修改桥本体动态层的属性值,将具有桥关系的来自不同本体的概念以实例形式写入各自的桥关系中,实现领域本体的聚合。第四层概念的构建采用语义相似度算法完成,这种方式创建桥本体的过程比较简易,而且能适应动态分布的数字资源环境。

(1)概念名称相似度

桥本体的构建是在同领域多个不同源本体的基础上进行的,因此对不同领域本体(OM,ON)的概念名称(Ci,Cj)相似度计算作出假设:两个领域本体的概念名称相同,则视为同一概念,即假设不存在同名异义的情况;若完全不同则视为概念名称不同;但概念是否相似将通过实例、属性进行语义相似度计算。

概念名称如果部分相同,则通过自然语言处理,进行分词,将字符串分成若干个词,每个独立的单词作为变量的一个属性,把所有的单词设定为变量属性集合R,要比较的两个概念(Ci,Cj)包含在这个集合R中。设q为两个概念名称中都存在的单词总数;s是Ci中存在,而Cj中不存在的单词总数;r是Cj中存在而Ci中不存在的单词总数。利用非恒定的相似度评价系数(Jaccard系数[ 11])来描述两个字符串之间的相似度公式为:

NSim(Ci,Cj)=q/(q+r+s) (1)

对NSim(Ci,Cj)的结果进行分析,确定权重值,结果在50%以上的进行实例特征相似度计算。

具体程序代码如下:

//概念名称相似度计算//

public static int nSimAlg_equal(String str1,String str2){

//两个字符串前缀的最大相同个数

int i;

for(i=1;i<=str1.length()&&i<=str2.length();i++){

if(!str1.substring(0, i).equals(str2.substring(0, i)))break;

}

if(i==1||i==2)return 0;

else return i-1;

}

public static int nSimAlg_split(String myStr,Map map){

}

public static String nSimAlg(){

for(int i=0;i<=name_class[0].length();i++){

for(int j=0;j<=name_class[1].length();j++){

index= nSimAlg_equal(name_class[0].substring(i),name_class[1].substring(j));

if(index!=0){

map1.put(i,name_class[0].substring(i,i+index).trim());

map2.put(j,name_class[1].substring(j,j+index).trim());

j=j+index;

}

if(max_index

}

i=i+max_index;

}

double nsim=map1.size()/(float)(nSimAlg_split(name_class[0],map1)+nSimAlg_split(name_class[1],map2)-map1.size());

System.out.println("概念名称相似度计算:"+nsim);

if(nsim>=0.9999)return "BCequal";

else if(nsim<=0.0001)return "";

else return "BCoverlap";

}

(2)实例特征相似度计算

通过实例特征的比对计算(Ci,Cj)的关联程度。将OM中Ci的实例定义为CiIM; 将ON中Cj的实例定义为CjIN;其中CiIM和CjIN都是实例的集合。通过比较实例的重合程度计算概念之间的关联程度,重合程度越高代表概念之间的关联程度越高。如果实例完全重合,则代表虽然Ci与Cj之间的名称不同,但表示的是同一概念。实例重合程度通过实例相同和不同的个数进行计算,将概念在本体中的深度引入到实例不同个数的权重计算中,深度表示本体内部概念所在的层次。本体内部两个概念的语义相似度随着它们深度总和的增加而增加,本体间的两概念应对深度越深的概念予以较高权重,因为如果位于两个不同本体的类表达的概念相同,则类别处于越深层代表该本体的分类越详尽,对于同样领域的本体分类越详尽应得到较高的权重,因此类别的深度位置越深得到的权重越大。其计算公式[ 12]如下:

ISim(Ci,Cj)= q/(q+α(r-s)+β(s-r)) (2)

其中,q为Ci与Cj实例相同的个数; r为Ci中有而Cj中没有的实例个数; s 为Cj中有而Ci中没有的实例个数;α和β分别为(Ci,Cj)深度的权重。

具体程序代码如下:

//实例特征相似度计算//

public static String IsimAlg(){ //实例特征相似度计算

double NUM_Sim=0,NUM;

for (Map.Entry entity : map.entrySet()){

if(entity.getValue()>=2)NUM_Sim++;

}

if(NUM_Ont[0]!=0&&NUM_Ont[1]!=0) {

NUM=NUM_Sim/((map.size()-NUM_Ont[0])/2.0+(map.size()-NUM_Ont[1])/2.0+NUM_Sim);

System.out.println("实例特征相似度计算:"+NUM);

}

else return "";

if(NUM>=0.9999)return "BCequal";

else if(NUM<=0.0001)return "";

else return "BCoverlap";

(3)实例向量相似度计算

通过(Ci,Cj)之间实例的相关程度进行相似度的计算。通过用矢量代表实例的集合,两个矢量相等当且仅当方向和数值都相同,则相似度用两向量的角度表示;假设方向相同,则相似度为1,方向垂直,则相似度为0。

设概念Ci 的实例集合为n,概念Cj 的实例集合为m,则每个概念用|n+m|维的向量表示。存在实例的维度用1表示,反之为0。计算公式[ 13, 14]如下:

VSim(Ci,Cj) =N×M/|N|×|M| (3)

其中,N、M分别表示概念Ci 和Cj的|n+m|维向量;N×M表示向量相乘;|N|和|M|表示向量的长度。

当实例向量相似度为1时,认为不同本体的两个概念具有同义桥关系,并将其写入桥本体的同义桥下(具体程序代码略)。

3.3 桥本体构建测试

选用两对相同领域本体,其中Family.owl和Generations.owl为本课题组所开发的测试本体,Meshionto4.owl和MDM0.73.owl是开源的医学领域本体。Meshionto4.owl是韩国生物医学知识工程实验室开发的MeSH本体[ 15],MDM0.73.owl是Protégé 网站提供的乳腺癌本体[ 16]。利用HP实验室开发的本体Java开发工具包Jean2.5.7,对选用的本体进行解析,提取概念,对概念进行语义相似度计算,在EclipseSDKv3.4.2开发平台下利用Jean API将计算结果写入桥本体BridegeOntology.owl文件中。以同义桥关系为例,测试结果具体如表3所示:

表3 桥本体的实例和属性值
4 结 语

利用桥规则可以表示本体间相互联系的概念,并可以有效地处理多本体问题。将多个源本体映射形成桥本体,可用于本体映射,完成本体整合,进而解决本体异质和多领域本体应用过程中的瓶颈问题。本文尝试性地构建了桥本体,探索了桥本体的实现技术和路径,采用静态与动态相结合的方法,既可以保证桥本体的稳定,又可以不断完成桥本体的进化。在研究中发现尚有一些问题需要进一步解决:

(1)桥本体的概念模型,目前的桥本体定义没有十分清晰地描述其内涵和外延,没有明确其作用和价值;

(2)桥关系的界定,目前桥本体中定义了概念和本体所具有的10种桥关系,但对桥关系的界定没有研究清楚;

(3)动态构建桥本体的语义相似度算法有待进一步研究;

(4)如何利用桥本体进行语义标注,即桥本体的应用有待进一步挖掘。

参考文献
[1] 冯志勇, 李文杰, 李晓红. 本体论工程及其应用[M]. 北京: 清华大学出版社, 2007. [本文引用:1]
[2] Wang P, Xu B, Lu J, et al. Theory and Semi-automatic Generation of Bridge Ontology in Multi-ontologies Environment[C]. In: Proceedings of the 16th IEEE International Conference on Tools with Artificial Intelligence. 2004: 442-449. [本文引用:1]
[3] 董慧, 姜赢, 高巾, . 基于数字图书馆的本体演化和知识管理研究(Ⅰ)——本体分子理论[J]. 情报学报, 2009(3): 323-330. [本文引用:1]
[4] 董慧, 姜赢, 王菲, . 基于数字图书馆的本体演化和知识管理研究(Ⅱ)——动态知识组织[J]. 情报学报, 2009(4): 489-491. [本文引用:1]
[5] 董慧, 姜赢, 曾杰, . 基于数字图书馆的本体演化和知识管理研究(Ⅲ)——动态知识描述[J]. 情报学报, 2009(5): 643-645. [本文引用:1]
[6] Maedche A, Motik B, Silva N, et al. MAFRA — A MApping FRAmework for Distributed Ontologies in the Semantic Web[J]. Web Intelligence and Agent System, 2003(1): 235-248. [本文引用:1]
[7] 刘紫玉. 多专业领域本体的构建及语义检索研究[D]. 北京: 北京交通大学, 2009. [本文引用:1]
[8] Bouquet P, Ehrig M, Euzenat J, et al. Specification of a Common Framework for Characterizing Alignment[EB/OL]. [2008-11-24]. http://www.aifb.uni-karlsruhe.de/WBS/phi/pub/kweb-221.pdf. [本文引用:1]
[9] Xu B, Wang P, Lu J, et al. Bridge Ontology and Its Role in Semantic Annotation[C]. In: Proceedings of International Conference on Cyberworlds2004
(CW 2004). 2004: 329-331. [本文引用:2]
[10] Grarino N, Poli R. Formal Ontology in Conceptual Analysis and Knowledge Representation[M]. The Netherland s: Kluwer Academic Publishers, 1993: 199-220. [本文引用:1]
[11] 肖波. 如何确定中文字符串的相似度[J/OL]. [2008-12-24]. http://hi.baidu.com/dayouluo/blog/item/0236970a356651c95ca6b49d.html. [本文引用:1]
[12] 陈怡燕. 以本体论为基之知识整合机制研发[D]. 台湾: 国立成功大学, 2007. [本文引用:1]
[13] Ruben T, Jaime D. A Vector Space Model for Semantic Similarity Calculation and OWL Ontology Alignment[C]. In: Proceedings of DEXA2006. 2006: 307-316. [本文引用:1]
[14] 王婷. OWL本体之间概念相似度计算研究[D]. 南京: 河海大学, 2007. [本文引用:1]
[15] BreastCancer[EB/OL]. [2009-01-20]. http://acl.icnet.uk/~mw/MDM0.73.owl. [本文引用:1]
[16] MeSH Ontology in OWL Format[EB/OL]. [2008-12-10]. http://bike.snu.ac.kr/?p=102. [本文引用:1]