APP下载

从关系数据库学习OWL本体的方法

2010-05-11

网络安全与数据管理 2010年22期
关键词:主键关系数据库数据类型

王 琦

(南京工程学院 计算机工程学院,江苏 南京211167)

本体是语义Web的关键使能技术。使用现有本体编辑器手工开发本体是一项冗长而繁琐的工作,极易导致知识获取的瓶颈,所以本体学习[1]技术应运而生。它极大地简化了本体的构建,满足了语义Web对于快速简便构造本体的需求,在语义Web中起到了杠杆的作用。关系数据库是基于Web的数据密集型应用的主要信息源,数据库模式中隐含着领域知识。因此,从关系数据库学习出的OWL本体更适合于数据密集型Web应用的需要。本文在形式化表示关系数据库模式和OWL本体的基础上,介绍了一种从关系数据库半自动学习OWL本体的方法,设计出一套通用的映射方法和规则,并基于Java 2平台实现了原型工具OntoLearner。

1 关系数据库模式

关系数据库模型是以集合论中的关系(relation)概念为基础发展起来的数据模型[2]。为了便于形式化描述本体学习方法中的映射规则,这里给出了关系数据库模式的形式化定义(符合3NF)。

定义 1:一个关系数据库模式 S=(L,pkey,unique,notnull,fkey,subof,fdependency)是七元组,其中:

(1)名集L=E∪R∪D是一个有限集,由两两不相交的集合组成:

①一个实体关系(entity relation)名的集合E;

②一个联系关系(relationship relation)名的集合R;

③一个数据类型(data type)名的集合 D,每个数据类型名是RDBMS预定义的数据类型名。

(2)∀T∈E∪R,T有一个非空的属性集合 att(T),且每个属性A∈att(T)有一个相关的预定义数据类型type(A)∈D作为它的取值范围,其中type(*)表示“*”的预定义数据类型。

(3)∀T∈E∪R,T的属性集 att(T)中所有属性的一次取值的组合称为T的一个元组,其中,每个属性取值(称属性值)称为相应属性在此元组中的一个实例(instance),在某个时刻T的所有元组所组成的集合tup(T)称为T的一个实例。

(4)∀T∈E∪R,T有且仅有一个唯一决定其元组的属性或属性组称为T的主键pkey(T):要么pkey(T)只包含一个属性(称pkey(T)为单主键,此时T是实体关系),要么 pkey(T)包含多个属性(称 pkey(T)为复合主键,此时T是联系关系)。

(5)∀T∈E∪R,若存在属性 A∈att(T),且 A的所有元组在T中取值唯一,则称A为T的唯一属性,可表示为布尔函数 unique(A)=True;否则 unique(A)=False。

(6)∀T∈E∪R,若存在属性 A∈att(T),且 A的所有元组在T中取值非空,则称A为T的非空属性,可表示为布尔函数 notnull(A)=True;否则 notnull(A)=False。

(7)∀T∈E∪R,T中一个引用其他实体关系 G∈E主键 pkey(G)的属性称为 T的外键 fkey(T,G),满足:fkey(T,G)⊆att(T)且 value(fkey(T,G))⊆value(pkey(G))∪{null},其中 value(*)表示“*”的值域,“null”表示空值。T可能有 0·n(n≥0)个外键。

(8)对∀T∈E,若T引用G∈E主键的外键的同时又作为 T 的主键(即 fkey(T,G)=pkey(G)∈att(T)),则 称T和G之间存在 “子/超关系”,T为G的子实体关系,G为T的超实体关系,此时可表示为布尔函数subof(T,G)=Ture;否则 subof(T,G)=False。若干个连续的子/超实体关系对构成关系数据库模式中的一个子/超实体关系层次。

(9)∀T∈E∪R,α、β⊆att(T),α≠β,对∀t1,t2∈tup(T),若有 t1[α]=t2[α],则必有 t1[β]=t2[β],则称 α 和 β 之间存在函数依赖关系,β 函数依赖于 α(或 α 函数决定 β),α称为函数依赖的决定子,β称为函数依赖的被决定子,此时可表示为布尔函数 fdependency(α,β)=True(简记为fdependency(α,β)),否则 fdependency(α,β)=False。 T 中所有函数依赖关系组成的集合称为T的函数依赖集,记为FT。

定义 2:∀T∈E∪R,α、β⊆att(T),α≠β,β⊄α,∀fdependency(α,β)∈FT, 满 足 下 列 条 件 之 一 :(1)α 是 超键;(2)β是主属性,则此关系T属于第三范式。若关系数据库模式中的所有关系均属于第三范式,则称其为规范化至第三范式(3NF)的关系数据库模式。

2 OWL本体

本体是一组描述某领域内概念及其属性以及概念间关系的词汇和公理的集合。W3C在2004年2月发布了标准化的Web本体语言OWL[3]。这里给出OWL DL本体的形式化定义。

定义 3:一个 OWL DL本体 O=(Cept,Axiom)是二元组,其中:

(1)标识符集Cept=CID∪DPID∪OPID∪DTID是一个有限集,由两两不相交的集合组成:

①一个类(class)标识符集 CID;

②一个数据类型属性(datatype property)标识符集DPID;

③一个对象属性(object property)标识符集OPID;

④一个数据类型(data type)标识符集 DTID,每个数据类型标识符是OWL本体中使用的预定义XML Schema数据类型标识符。

(2)公理集Axiom=CAxiom∪PAxiom是一个有限集,由两两不相交的集合组成:

①一个类公理(class axiom)集 CAxiom,包含本体中定义的所有类公理;

②一个属性公理(property axiom)集 PAxiom,包含本体中定义的所有属性公理。

3 从关系数据库学习OWL本体的方法

从关系数据库学习OWL本体的可行性基于以下事实:运用数据库逆向工程方法可从关系数据库模式中提取ER模式[4];ER模式可语义保持地转换成OWL本体[5-6]。因此,本文针对现有本体学习方法和工具的不足,提出了一种从关系数据库学习OWL本体的方法,该方法分为关系数据库的逆向工程和从关系数据库模式到OWL本体的映射两部分。

3.1 关系数据库的逆向工程

数据库逆向工程DBRE(Database Reverse Engineering)指的是从物理数据库恢复数据库逻辑和概念模式,一般分成两个互相独立的阶段:数据结构的提取和概念化。在研究和分析数据库逆向工程现有理论和方法的基础上,本文制定了一套适合本体学习工程环境的较完备的逆向工程方法。

3.2 从关系数据库模式到OWL本体的映射

为了形式化表示从关系数据库模式到OWL本体的映射规则,需要预先定义以下辅助函数:

(1)IS(x):布尔函数。 若 x(表达式)成立,则 IS(x)=True;否则 IS(x)=False。

(2)idMap(ID):将关系数据库模式中的关系名和属性名映射为OWL本体中的同名标识符。即若ID是关系数据库模式中的关系名和属性名,则idMap(ID)=ID∈CID∪DPID∪OPID。

(3)dtMap(DT):将关系数据库模式中的数据类型名映射为OWL本体中使用的数据类型(XML Schema数据类型)标识符。即若DT是关系数据库模式中的数据类型名,则 dtMap(DT)=DType∈DTID。

3.2.1 属性公理的生成规则

规则1将关系数据库模式中关系的非外键属性及其相应的预定义数据类型映射为OWL本体中以关系对应类为定义域的数据类型属性及其相应的预定义XML Schema数据类型。形式化表示为:

∀T,G∈E∪R∧∀A∈att(T)∧¬IS(A=fkey(T,G))→DatatypeProperty(idMap(T_A)domain(idMap(T))range(dtMap(type(A))))。

规则2将关系数据库模式中关系T引用实体关系G主键的外键(且不是T的主键也不属于T的主键)作如下映射:生成一个新的OWL本体中的类(联系类),一对分别以T对应类和联系类为定义域的互逆的对象属性,一对分别以G对应类和联系类为定义域的互逆的对象属性。形式化表示为:

∀T∈E∪R∧∃G∈E∧∀A∈att(T)∧¬IS(A=pkey(T))∧¬IS(A∈pkey(T))∧IS(B=pkey(G))∧IS(A=fkey(T,G))→ObjectProperty(idMap(T_A)domain(idMap(T))range(dtMap(T_G))),ObjectProperty(idMap(G_B)domain(idMap(G))range(idMap(T_G))),ObjectProperty(idMap(T_G_A)domain(idMap(T_G))range(idMap(T))inverseOf(idMap(T_A))),ObjectProperty(idMap(T_G_B)domain(idMap(T_G))range(idMap(G))inverseOf(idMap(G_B)))。

规则3将关系数据库模式中关系T引用实体关系G主键的外键(且同时又是T的主键或属于T的主键)映射为OWL本体中一对分别以T对应类和G对应类为定义域的互逆的对象属性。形式化表示为:

∀T∈E∪R∧∃G∈E∧∀A∈att(T)∧(IS(A=pkey(T))∨IS(A∈pkey(T)))∧IS(B=pkey(G))∧IS(A=fkey(T,G))→ObjectProperty(idMap(T_A)domain(idMap(T))range(dtMap(G))),ObjectProperty(idMap(G_B)domain(idMap(G))range(idMap(T_G))inverseOf(idMap(T_A)))。

规则4将关系数据库模式中实体关系的主键(且非外键)映射的OWL本体的数据类型属性声明为函数属性。形式化表示为:

∀T,G∈E∧∀A∈att(T)∧IS(A=pkey(T))∧¬IS(A∈fkey(T,G))→DatatypeProperty(idMap(T_A)Functional)。

规则5将关系数据库模式中关系取值唯一的非外键属性映射的OWL本体的数据类型属性声明为函数属性。形式化表示为:

∀T,G∈E∪R∧∀A∈att(T)∧¬IS(A=fkey(T,G))∧unique(A)→DatatypeProperty(idMap(T_A)Functional)。

3.2.2 类公理的生成规则

规则6将关系数据库模式中关系的非外键属性映射为OWL本体中的类公理。形式化表示为:

∀T,G∈E∪R∧∀A∈att(T)∧¬IS(A=fkey(T,G))→Class(idMap(T)partial restriction(idMap(T_A)allValueFrom(dtMap(type(A)))minCardinality(0)maxCardinality(1)))。

规则7将关系数据库模式中关系T引用实体关系G主键的外键(且不是T的主键也不属于T的主键)映射为OWL本体中的类公理。形式化表示为:

∀T∈E∪R∧∃G∈E∧∀A∈att(T)∧¬IS(A=pkey(T))∧¬IS(A∈pkey(T))∧IS(B=pkey(G))∧IS(A=fkey(T,G))→Class(idMap(T)partial restriction(idMap(T_A)allValueFrom(idMap(T_G)))),Class(idMap(G)partial restriction(idMap(G_B))allValueFrom(idMap(T_G)))),Class(idMap(T_G)partial restriction(idMap(T_G_A))allValueFrom(idMap(T)))),Class(idMap(T_G)partial restriction(idMap(T_G_B))allValueFrom(idMap(G))))。

规则8将关系数据库模式中关系T引用实体关系G主键的外键(且同时又是T的主键或属于T的主键)映射为OWL本体中的类公理。形式化表示为:

∀T∈E∪R∧∃G∈E∧∀A∈att(T)∧(IS(A=pkey(T))∨IS(A∈pkey(T)))∧IS(B=pkey(G))∧IS(A=fkey(T,G))→Class(idMap(T)partial restriction(idMap(T_A)allValueFrom(idMap(G)))),Class(idMap(G)partial restriction(idMap(G_B)allValueFrom(idMap(T))))。

规则9将关系数据库模式中实体关系的主键属性(且非外键属性)映射为OWL本体中的类公理。形式化表示为:

∀T,G∈E∧∀A∈att(T)∧IS(A=pkey(T))∧¬IS(A=fkey(T,G))→Class(idMap(T)partial restriction(idMap(T_A)Cardinality(1)))。

规则10将关系数据库模式中关系取值不为空的属性(且非外键属性)映射为OWL本体中的类公理。形式化表示为:

∀T,G∈E∪R∧∀A∈att(T)∧¬IS(A=fkey(T,G))∧notnull(A)→Class(idMap(T)partial restriction(idMap(T_A)Cardinality(1)))。

3.2.3 类关系的启发式规则

规则11如果两个实体关系的主键之间存在包含依赖关系,则这两个关系对应的OWL本体中的两个类之间存在父类和子类的关系。形式化表示为:

∀T,G∈E∧idependency(T,G))→SubClassOf(idMap(T)idMap(G))。

规则12关系数据库模式中的每个联系关系映射的类与OWL本体中的其他类之间是互不相交的。形式化表示为:

∀T∈R∧∀W∈CID∧idMap(T)≠W→DisjointClassers(idMap(T)W)。

规则13关系数据库模式中关系T引用实体关系G主键的外键(且不是T的主键也不属于T的主键))映射生成的类(联系类)与OWL本体中的其他类之间是互不相交的。形式化表示为:

∀T∈E∪R∧∃G∈E∧∀A∈att(T)∧¬IS(A=pkey(T))∧¬IS(A∈pkey(T))∧IS(A∈fkey(T,G))∧∀W∈CID∧idMap(T_G)≠W→DisjointClassers(idMap(T_G)W)。

3.3 OntoLearner设计思想

本体学习工具OntoLearner的体系结构如图1所示。基于OntoLearner,本体学习的过程由下面三个子过程组成:

(1)关系数据库的逆向工程。使用逆向工程的方法从关系数据库中获取规范化至3NF的数据库模式信息,明确数据源的语义;

(2)从关系数据库模式到OWL本体的映射。以提取出的关系数据库模式(3NF)作为输入,按照一组通用的启发式规则实现从关系数据库模式到OWL本体的映射,并以可视化的方式显示;

(3)利用现有本体工程工具对生成的OWL本体进行精炼、评估和验证。

4 实例

使用MS SQL Server 2000创建一个包含大学基本信息情况的关系数据库University,并插入实例数据。利用OntoLearner对该数据库进行本体学习,运行结果如图2所示。

语义Web研究的重点就是如何把信息表示为计算机能够理解和处理的形式,即带有语义。本体在创建这种机器可理解和处理的Web内容中扮演着关键的角色。由于关系数据库是本体学习重要的知识源,所以研究从关系数据库学习OWL本体的方法,对数据密集型Web站点向语义Web迁移、动态Web页语义标注、构建新一代信息管理基础结构等均具有重要的现实意义。

[1]STAAB S,MAEDCHE A.Ontology learning for the semantic Web[J/OL].IEEE Intelligent Systems,2001,16(2):72-79.

[2]王能斌.数据库系统教程(上册)[M].北京:电子工业出版社,2002:22-238.

[3]MICHAEL K S,CHRIS W,DEBORAH L.OWL Web ontology language guide(W3C Recommendation)[J/OL].(2004-02-10).http://www.w3.org/TR/2004/REC-owl-guide-20040210/.

[4]CHIANG R HL,BARRON T M,STOREY VC.Reverse engineering of relational databases:extraction of an EER model from a relational database[C].Data&Knowledge Engineering,1994,12(2):107-142.

[5]XU Zhuo Ming,CAO Xiao,DONG Yi Sheng,et al.Formal approach and automated tool for translating ER schemata into OWL ontologies[J/OL].Advances in Knowledge Discovery and Data Mining,2004(3056):464-475.

[6]王琦.计算机与信息技术[M].安徽:安徽省计算机学会.2009.

猜你喜欢

主键关系数据库数据类型
基于Go 实现的分布式主键系统研究
关系数据库在高炉数据采集系统中的应用
如何理解数据结构中的抽象数据类型
基于外键的E-R图绘制方法研究
基于SeisBase模型的地震勘探成果数据管理系统设计
线上众筹产品的特征分析与研究
相似度计算及其在数据挖掘中的应用
基于索引结构的关系数据库关键词检索
数据库主键设置探讨
一种基于数据图划分的关系数据库关键词检索方法