基于RDF的数据模型映射方法研究

  • 格式:pdf
  • 大小:175.18 KB
  • 文档页数:3

20O8年第6期 (总第106期) 大众科技 DAZHONG KEJI No.6,2008 (Cumulatively No.1 06) 基于RDF的数据模型映射方法研究 卓国锋 (成都职业技术学院软件学院,四川成都610041) 【摘要】为了无缝集成各种异构数据模型的数据,文章在对已有典型公共数据模型进行详细分析的基础上,结合RDF 技术构建了公共数据模型RCDM。在构建公共数据模型时,根据RDF文档结构特点,提出了单元格数据的概念。同时,根据 其它数据模型到公共数据模型映射的需要,将所有类型的数据都划分成单元格数据,并详细分析了RDBMS数据和XML数据 到公共数据模型RcDM的映射方法。 【关键词】公共数据模型;单元格数据;RDF;数据模型映射 【中图分类号】TP31 【文献标识码】A 【文章编号】1008-1151(2008)06—0062一o3 (一)引言 在异构信息集成中,实际上就将多个已分别开发的信息 系统集成为一个集成信息系统。为了解决异构集成系统中各 成员系统数据模型的异构性,集成多个数据模型的系统必须 提供一个模型中的概念与另一个模型中的概念映射,最常的 方法是提供一个公共数据模型,使每个成员模型被映射到公 共数据模型上。 在异构数据源公共数据模型的研究方面,国外Stanford 大学在TSIMMIS项目中提出的OEM模型、国内东南大学在 Versatile项目中提出的OIM模型及华中科技大学在Panorama 项目中提出的XIDM模型都是比较典型的成功应用。 对于HTML表达的半结构数据,可以方便地采用OEM 或OIM模型来表示,其中对象对应HTML文档的元素,子对 象之间的关系反映了HTML文档中元素之间的层次嵌套以及 引用关系。同样,OEM模型与OIM模型也可以描述XML文 档,但由于这两个公共数据模型数据结构都比较复杂,故在 表示XML文档数据时不够灵活。针对目前已有公共数据模型 的各自不足,我们就需要建立一种能够灵活表示半结构化数 据与结构化数据的数据模型。目前RDF技术正逐步成为元数 据的交换标准,且RDF本身也有自己的模型结构,因此构建 基于RDF的公共数据模型即结构简单又能灵活表示各种结构 的数据。 (二)RDF技术概述 1.RDF基本概念 RDF是用于描述元数据的一种标准语言框架。RDF是基于 这一思想的:被描述的事物具有一些属性,而这些属性各有 其值(values);对资源的描述可以通过对它作出指定了上 述属性及值的陈述(statement)来进行。RDF用一套特定的 术语来表达陈述中的各个部分:在陈述中用于识别事物的那 部分就叫做主体,而在陈述中用于区分该陈述对象主体的各 个不同属性的那部分就叫做谓词,在陈述中用于区分各个属 性的值的那部分叫做客体。例如我们要描述这样一个陈述: http://bmwdii.org/index.html has a creator whose value is Smith, 这个陈述里的不同部分用RDF术语来说就是: ●主体是URL http://bmwdii.org/index.html; ●谓词是词“creator”: ●客体是短语“Smith”。 RDF的陈述可以用RDF/xML语法来描写,以便能被机器识 别处理。例如上述英文陈述可以用RDF/XML语法表示如下: <?xml version= 1.0 ?> <rdf:RDF xmlns:rdf= http://www.w3.org/1999/02/22一rdf—synta)c—ns# xmlns exterms= http }} .examp1e.org/terms/ 、> <rdf:Description rdf:about= http://bmwdii.org/index.html > <exterms:creator>Smi th</exterms:creator> (/rdf:Description> </rdf:RDF> 2.RDF模型 (1)RDF三元组 由上述RDF基本概念描述可知,RDF使用一组属性及其 取值来描述资源。在RDF中,需要描述的资源称为subject, 资源的某个属性称为predicate,属性的值称为object。因此 就它们组成一个三元组:<subject,predicate.object>。对于上一 节所提到的英文陈述,可以把它写成一个三元组的形式为: <subject,predicate,object>=<http://bmwdii. org/index.htm1.creator,John Smith>。 (2)RDF图模型 在RDF的图模型中,一个陈述可表示为:一个表示主体 的节点;一个表示客体的节点;一个由主体节点指向客体节 点的表示谓词的弧。在画RDF图时,节点为URIrefs的用椭 圆来表示,而节点为文字的则用方框来表示。对于陈述 http://bmwdii.org/index.html has a creator whose value is John Smith,可用RDF图模型表示成如图2.6所示: 

图1 RDF的图模型 【收稿日期】2008—04—03 【作者简介】卓国锋(1974一),男,江西波阳人,成都职业技术学院软件学院讲师,硕士,研究方向为数据库应用与信息集成。 一

62— 维普资讯 http://www.cqvip.com (三)公共数据模型的构建 在对一些典型的公共数据模型分析基础上,结合RDF技 术的其本特点,建立了一种基于RDF信息交换标准的公共数 据模型RCDM。一般设计公共数据模型的基本要求是:易于 同各局部数据源的数据模型相互转换、具有较强的半结构化 数据或无结构数据的描述能力、易于被计算机识别和处理。 RCDM数据模型正是基于这样的要求,把信息世界的所有结 构化、半结构化数据都分割成一个个单元数据,对无结构数 据,可以根据具体应用环境也组建为相互独立的单元数据。 定义3.1:在RCDM模型中,一个单元数据用四元组<uri, type,pred.val>表示,其中 是能够具体定位单元数据的统一 资源定位符,也称为主体;type表示单元数据的类型;pred 表示单元数据的名称,即主体的谓词;val表示单元数据的值, 即主体属性的值,也可称为客体。 定义3.2:在RCDM模型中,单元数据根据type表示的 类型可以分为两中:集合类单元数据和原子类单元数据,如 果type表示的是集合数据类型,则为集合类单元数据;如果 type表示的是基本数据类型,则为原子类单元数据。 由RCDM数据模型的定义可知,当我们想确定某个位置 的一个属性的值时,除了可以按数据结构层次一步一步地查 找,也可以根据uri直接定位某个单元数据,即每个单元数据 都有完整的语义。四元组<uri,type,pred,val>中的uri、pred ̄ va1分别与RDF模型中的主体、谓词、客体是相对应的,都 可以带前缀。而四元组中的type是为了确定单元数据的类型 而设计的,它除了可表示基本数据类型(如integer,string等) 外,还可表示集合数据类型(seq、bag、alt、list等)和应用 类型ref,其中seq、bag与alt与RDF中的容器相对应,list 与RDF中集合(collection)相对应,ref类型表示主体参考应用 客体。 (四)数据源数据模型到RCDM模型的映射 1.关系模型到RCDM模型的转换 关系模型中的一个二维表对应RCDM数据模型中的一个 集合类单元数据,而二维表中的每一个属性值就对应原子类 单元数据。公共数据模型RCDM是基于RDF文档标准的, 可以很容易地表示成RDF文档的形式。在具体设计将 系模 型转换为RCDM模型时,根据关系模型的结构可以分两种情 况来考虑:关系表中有单主键属性、关系表中有多主键属性 或无主键属性。下面就对这两种情况分别进行转换设计。 (1)关系表中有单主键属性的转换设计 公共数据模型RCDM将关系表中的数据分成一个个单元 格数据,这个单元格数据由单元格所在行的主键和表所在位 置唯一标识。因为关系表中有单主键属性,可以用来唯一标 识此关系中的每一行,即可用来唯一标识关系中的每个单元 格数据。 例l:假设站点bmwdii.org有一关系数据库rdfdb,且为 其定义了一个词汇表vocl,rdfdb中有一个带单主键属性的关 系表course见图2所示,可以用RCDM数据模型表示成单元 数据如图3所示。 CNo. Cilame publisher OO1 数据库 cqu 002 网格计算 tsinghua 图2 course表 图3 course表用RCDM模型表示 (2)关系表中有多主键属性或无主键属性的转换设计 当关系表中的主键是由多个属性组成或无主键时,就需 要为查询结果表增加代理键或影子主码,以便在转换为 RCDM模型中的单元数据时作为其唯一标识的URI。当为关 系表中增加了代理键或影子主码,转换为RCDM数据模型的 设计方法与关系表中有单主键属性的转换设计方法相同。 2.XML文档模型到RDF文档的转换 因为RCDM模型是基于RDF模型的,在将XML 档转 换为RCDM模型时,只需将XML文档转换为RDF文档。而 RDF文档是基于XML语法的,所以XML文档可以较容易地 转换为RDF文档。但RDF文档又有其自身结构要求,图4 即为RDF文档的一般结构图。 

图4 RDF文档一般结构图 由上图可以看出,RDF文档中的Resource与property是 交替出现的,Resource不能直接包含Resource,且property 不能带属性。但XML文档没有这些要求,所以在XML文档 转换为RDF文档时,需要对XML文档进行一定的结构处理 后再转换为RDF文档。为此将XMI 文档分成三类:简单的 XML文档结构、简单元素带属性的XML文档结构、类元素 直接包含类元素的XML文档结构,下面就针对这三种XML 文档结构来进行转换设计。 (1)简单的XML文档结构 这里所谓简单的XML文档结构是指文档中的简单元素 不带属性,也没有类元素直接包含类元素。在得到这种结构 XML文档查询结果时,将结果转换为RDF文档比较容易。 首先需要增加根元素“rdfiRDf”,并在其中增加以rdf为前辍 的RDK命名空间,再将XML类元素的标识符改写成RDF的 uri标识形式,对XML文档中的其它部分保持不变。下面的 例2为简单XML文档结构,例3为例2中的简单XML文档 转换成RDF文档结构。 例2:简单XML文档结构 <?xml version: 1.O ?> <Student id= sO0l xmlns=http://bmwdi i.org/rdfdb xmlns:st= http:// bmwdii.org/term > 一

63— 维普资讯 http://www.cqvip.com <st:SNo.>s001</SNo.> <st:SName>张三</SName> <st:sex>男</sex> <st:address>chongqing</address> </Student> 例3:例2中的单XML文档转换成的RDF文档结构 <?xml version=”1.0”?> <rdf:RDF mnlns:rdf=“http://www.w3.org/1999/02/22一rdf-syntax-ns#’’ xmlns rdfs=http- f f .w3 org/2001/01/rdf—schema# xmlns:st=“http://bmwdii.org/term’’ xml:base=“http://bmwdi i.org/rdfdb/student”> <st:result rdf:ID=“s001”> <SNo.>s001</SNo.> <SName>张三</SName> <sex>男</sex> <address>chongqing</address> </st:result> </rdf:RDF> (2)简单元素带属性的XML文档结构 这里的XML文档简单元素是指那些转换为RDF文档谓 词的元素。因为RDF文档的谓词起始标记中不能带属性,则 在将带属性的简单元素转换为RDF文档谓词时,需要将其属 性也转换为子层的谓词,同时增)J ̄<value>{N词表示原值。对 这种情况的XML文档其它部转换与简单的XML文档相同。 下面的例4为简单元素带属性的XML文档结构,例5为例4 中的XML文档转换成RDF文档结构。 例4:简单元素带属性的XML文档结构 <?xml vers ion= 1.O ?> <Student id= s001 xmlns=http://bmwdi i.org/rdfdb xmlns:st= http://bmwdi i.org/term > <st:SNo.>sO01</SNo.> <st:sex>男</sex> <st:stature units=“cm">18O</stature> </Student> 例5:例4中的XML文档转换成的RDF文档结构 <?xml version=”1.O”?> <rdf:RDF xmlns:rdf=‘‘http://www.w3.org/1999/O2/22一 rdf—syntax—ns#’’ xmlns rdfs=http f f .w3 org/2001/01/rdf—schema#’ xmlns:st=“http://bmwdii.org/term’’ xml:base=“http://bmwdi i.org/rdfdb/student”> <st:result rdf:ID=“s001”> <SNo.>s001</SNo.> <sex>男</sex> <stature> <value>180</value> <units>cm</uints> </stature> </st:result> </rdf:RDF> (3)类元素直接包含类元素的XML文档结构 XML文档的类元素是指那些转换为RDF文档Resource 的元素。包含类元素的类元素转换为RDF文档时,则在RDF 文档含有Resource直接包含Resource的结构。在RDF文档 中,Resource只能直接包含properties类型,而不能直接包含 Resource类型,但properties可以直接包含Resource类型。为 此在将类型的XML文档转换为RDF文档时,需要在转换过 来的Resource与子Resource之间增加一个properties,通过这 . 64. 个properties来包含子Resource。在下面的例6为类元素直接 包含类元素的XML文档结构,例7为XML文档转换成RDF 文档结构。在例7中,增加了谓词study,以包含Course资源 来表示学生学习情况。 例6:类元素直接包含类元素的XML文档结构 <?xml version= 1.O ?> <Student id="s001  ̄nlns=http://bmwdii.org/frdfdb/student mlns:st= http://bmwdii.org/term > <st:SNo.>s001</SNo.> <st:SName>张三</SName> <Course i( cOo1  ̄nlns=http://bmwdii.org/rdfdb/course> <CNo.>c001</CNo.> <CName>数据库</CName> <grade>8O</grade> </Course> </Student> 例7:XML文档转换成的RDF文档结构 <?xml version=”1.0”?> <rdf:RDF xmlns:rdf=“http://www.w3.org/1999/O2/22一 rdf—syntax—ns#” mnlns:rdfs=“http://www.w3.or#2001/01/rdf-schema#’’ xmlns:st=“http://bmwdii.org/term’’ xml:base=“http://bmwdii.org/rdfdb/student”> <st:result rdf:ID=“s001”> <SNo.>sO01</SNo.> <SName>张三</SName> <study> <Course rdf:id= c001 xmlns=http://bmwdii.org/rdfdb/course> <CNo.>c001</CNo.> <CName>数据库</CName> <grade>8O</grade> </Course> </study> </st:result> </rdf:RDF> (五)结束语 在异构信息集成系统中,为了很好地解决集成系统中各 成员系统数据模型的异构性,构建能表达丰富语义的公共数 据模型至关重要。本文针对这一情况,在对目前已有的典型 公共数据模型进行分析基础上,结合RDF技术构建了公共数 据模型RCDM。同时,根据RDF文档模型的特点,将所有类型 的数据划分成单元数据,并详细分析了RDBMS数据和XML数 据到公共数据模型RCDM的映射关系。我们下一步工作是随 RDF技术不断发展而不断完善公共数据模型RCDM,并设计针 对公共数据模型RCDM的查询语言。 【参考文献】 …Peter Buneman, Susan Davidson,Gerd Hillebrand,Dan Suciu.A Query Language and Optimization Techniques for Unstructured Data.Tun 1996.ACM SIGMoD pp505-516. 『21 Frankmanola,EricMiller,W3C.RDFPlinler, w3cP,.ecommendafion 10Febmm'y2Oo4lOL1. http://www.w3.org/TR 2()o4/REC—rdf-p6mer-20040210/. 『31 Atsutoshi Imai,Shuichi Yukita.RDF Model and Relafional Metadata[C1 Proceedings of the 17th International C:onference on Advanced Inforlnadon Networking and Applications.AINA 2OO3:534—537.