W3C标准:在RDF与Topic Maps间建立联系

ZDNet软件频道 时间:2006-06-22 作者:Peter V. Mikhalenko |  我要评论()
本文关键词:xml webtrend
W3C试图通过合并现有的整合RDF与主题数据的提案,为RDF/主题地图互用性建立指导方针。

关于资源描述框架(RDF)、主题地图与一些存在论表达语言之间的关系,在互联网上有许多争论。新出现的其它存在论语言,如OWLSKOS,也为这些争论火上浇油。W3C试图通过合并现有的整合RDF与主题数据的提案,为RDF/主题地图互用性建立指导方针。

在本文中,我将努力分析这两种标准的开发背景,概括说明五个不同的关系提案。这五个提案足够完善、证据充分,适合进行详细地检验。

W3C的主要目标是在数据层次上在RDF与主题地图间达到互用性。这意味着它应可以将数据从一种形式转换成另一种形式,但不会造成不可接受的信息损失或语义中断;它还可以根据目标模型查询转换的结果,并可在两个实例间共享词汇。

那些不够了解主题地图的读者可在史蒂夫-佩珀的著名文章《主题地图之道:资讯时代的前进方向》中找到它的详细介绍。我们还假定读者十分熟悉RDF与它的三元概念和语义网络概念。

介绍

资源描述框架(RDF)是W3C为呈现与互联网资源有关信息而开发的一种模型。主题地图是ISO开发的知识整合标准。这两个规范是于20世纪90年代末在其各自的机构中同时开发的,起初它们的目标各不一样,但后来发现它们有许多共同点。

在揭示RDF与主题地图间的协同关系,并找出在数据层次上达到互用性的手段方面,人们已经做过许多尝试。现在,W3C的目标是,为希望组合W3C的RDF/OWL规范家族与ISO的主题地图标准家族的用户提供指导。本文简单概括了现有的方法,并分析它们的优劣。关于转换的W3C推荐也即将出版。

存在哪些提案?

我选择了五个不同的提案进行分析。我们根据作者的姓名,或在有多名作者的情况下,根据作者所属机构的名称来提及这些提案。每个提案都以前面的提案为基础,并以其作参考。在这里,它们以它们所包含的转换指导为特点:即RDF参考主题地图(RDF2TM),主题地图参考RDF(TM2RDF)。

有必要解释XTM标准中的一个词。TM是主题地图,即标准名称、范例与(小写字母)人工制品本身的缩写。XTM为互换语法标准(xml主题地图),在提及XTM时进行阐述。

现有的所有方法分为两个截然不同的种类,摩尔最初称之为“为模型建模”与“为模型映射”。将它们分别称之为“对象映射”与“语义映射”可能更为合适。这两个方法的根本差别总结如下:

  • 对象映射应用一种语言的低级组建模块来描述另一个的object model(对象模型)。例如,假定现在一个简单的二元关联数据模型由五部分——一个关联(a)、两个任务(r)和二个任务角色(P),(p-r-a-r-p)——组成,那个关联将用一个对象映射呈现四个联系到五个资源的语句。
  • 语义映射由包含每个模型语义的更高层概念开始,并试图找出它们之间的同等关系。主题地图中的二元关联被看作是代表经常由RDF语句(即两个实体之间的关系)呈现的同种事物,并因此只用一个单独的RDF语句来表现。其中找不到直接的语义等同项,缺乏的语义用两个范例中一个的工具,即类、属性或公布的主题来定义。

摩尔提案

这是第一个解决RDF与主题地图之间互用性问题的提案。介绍两个模型后,摩尔指出它所称的“为模型映射”与“为模型建模”间的差别。其关键的不同在于前者是语义性的,而后者“应用每个标准作为描述其它模型的工具”。下面让我们了解一下其实际意义。

摩尔的RDF2TM对象映射方法以两个事件为基础:一为他的模型中的每个RDF结构(即资源、语句、属性、主题、对象、实体、文字与模型)定义的PSI(PSI是一个公布的主题标识符,是一个模拟词典中单独名词的主题类型);以及用角色类型rdf-subjectrdf-propertyrdf-object将RDF语句表达为三元关联类型rdf-statement。这又引起了文字处理问题(因为关联中的任务角色不能为字符串),这一问题还没有提出解决方案。

TM2RDF对象映射方法以下列的每个TM结构定义的RDF属性为基础:topic, topicassoc, instanceof, topicassocmember, roleplayingtopic, roledefiningtopic, topicoccur, topicname, topicnamevalue, scopeset, subjindicatorref, resourceref

摩尔的对象映射方法已相当完善,但他的语义映射方法还只是一个草案,其重点为RDF语句与关联。这两个方法都不可逆。在对象映射方法中,我们假定一个人在一个或另一个领域内工作,但不是同时在这两个领域。

在语义映射方法中,一个语句映射到一个关联,而一个关联映射到两个语句;这一事实表明转换是不可颠倒的。在自然性方面,语义映射要优于对象映射。后者在两个方向都产生了非自然的结果。不管在哪个方向,一个“自然”源文件产生一个“非自然”结果;只有起点为“非自然”,才可能得到“自然”的结果。在摩尔提案中给出的对象映射实例中,一个简单的二元关联转换成了22 RDF语句。

斯坦福提案

斯坦福提案的主要观点是用一个“RDF基础设施”使查询主题地图成为可能。因此这只是一个TM2RDF提案。它使用数据互用性的分层整合模型为参考,将数据整合问题分解成三个准独立层:语法层、对象层和语义层。其观点是在对象层上建立一个主题地图的RDF表示法,然后执行一个“双射图表转换”,这样主题地图就可看作是RDF。忽略语法层意味着此方法将与主题地图的SGML与xml序列语法合作。

据作者称,如果忽略语义层,则所有的信息将被保存下来。作者们没有定义他们自己的主题地图模型,相反他们使用PMTM4,由Newcomb和Biezunski提出的主题地图处理模型(Topicmaps.net的XTM 1.0处理模型)。总之,PMTM4是一个图表模型,它包含三个节点类型(主题、关联与范围节点)和四个弧(arc)类型:associationMember (aM)、associationScope (aS)、associationTemplate (aT)和 scopeComponent (sC)。

在主题地图中建立图表后,作者说明如何以一个用特殊逻辑语法表达的查询,对它和本地RDF数据进行查询。下例中的查询使用RDF编码的主题地图来找出所有以石油作为自然资源的国家,然后从RDF编码开放目录中提取链接到DMOZ Travel_and_Tourism页面(见example1.exe)。

例1

FORALL pages <- Country, DMOZCountry Y,X, Z

?Y[tms:roleLabel->country;rdf:object->Country]

?@CIA_WORLD_FACTBOOK and

?X[tms:roleLabel->natural-resource;

?rdf:object->petroleum;

?rdf:subject->Z[tms:associationMember->Country]

?@CIA_WORLD_FACTBOOK]

?@CIA_WORLD_FACTBOOK and

?Country[mapsTo->DMOZCountry] and

?DMOZCountry[Travel_and_Tourism ->dmozpage[links->pages]]

?@DMOZ.

斯坦福提案在PMTM4方面很完善,但后者并不是一个完美的主题地图模型,因为它不能处理URL与字符串。因此斯坦福提案本身也并不完善。在自然性方面,该提案也表现不佳,因为它需要20多语句来表现信息,这些信息被RDF中的两个语句模拟。

Ogievetsky提案

在此提案中,作者描述了一个将XTM语法表达的主题地图转换成RDF的方法,以及作者在XTM2RDF转换器(XTM2RDF Translator)中根据XSLT执行此方法的过程。转换根据XTM元素的处理过程描述,因此该方法以语法为导向。生成的RDF符合一个词汇表(称为RTM),它包含11个类和17个属性,它们部分由XTM本身、早先讨论过的PMTM4、以及在前一节描述的由Newcomb和Biezunski提出的“处理模型”定义。

由RTM词汇表定义的类与属性如下:

  • rdfs:类:t-node, topic, scope, member, association, basename, variantname, occurrence, class-subclass, class-instance, templaterpc。
  • rdf:属性:association-role, validIn, indicatedBy, constitutedBy, name, templatedBy, role-topic, role-basename, role-variantname, role-occurrence, role-superclass, role-subclass, role-class, role-instance, role-template, role-role, role-rpc。

此映射相当简单:每个<topic>元素建立一个rtm:topic类型的RDF语句。主题的主体定址器(如有)成为语句主体的URI;否则就建立一个空白节点。主体标识符(如有)生成rtm:indicatedBy类型属性。

关联以空白节点表现,其类型与关联的类型对应。另外,关联中的每个任务都有一个属性与任务类型对应的语句(如下例中的ns1:composerns1:work);它的值是一个rtm:member类型节点,它参考任务角色。当任务角色有一个主体标识符与一个rtm:constitutedBy属性,且当它有一个主体定址器时,参考通过一个rtm:indicatedBy属性来完成。(文中没有说明,如果任务角色没有上述两项时,该进行哪种形式的参考。)

下面的例子说明Tosca和Puccini之间的关联在“第三个RDF基本缩写形式”中如何以RDF/xml来表现(见example2.exe):

例2

<ns1:composed-by>

?<ns1:composer>

?<rtm:member>

?<rtm:indicatedByrdf:resource="http://en.wikipedia.org/wiki/Puccini" />

?</rtm:member>

?</ns1:composer>

?<ns1:work>

?<rtm:member>

?<rtm:indicatedByrdf:resource="http://psi.ontopia.net/opera/#tosca" />

?</rtm:member>

?</ns1:work>

</ns1:composed-by>

上面显示的语法与XTM间有一个非常明显的相似之处,这可能表明输出可读RDF/xml语法的期望(可能是基于XSLT处理方法的苛求)已影响到为目标模型选择的RDF形式。

姓名与内部事件的字符串值以成员节点的rtm:name属性值来表现。下例表明作曲家Puccini的基本名为xtm2rdf.xsl XSLT式样表的输出结果(见example3.txt)。空白节点代表主题-基本名关系。从语法上看,rtm:baseName结构与上面显示的关联的“形状”相同。

例3

<rtm:baseNamerdf:ID="XSLTbaseName122124120120">

?<rtm:role-topic>

?<rtm:member>

?<rtm:indicatedByrdf:resource="#puccini" />

?</rtm:member>

?</rtm:role-topic>

?<rtm:role-name>

?<rtm:member>

?<rtm:name>Giacomo Puccini</rtm:name>

?</rtm:member>

?</rtm:role-name>

</rtm:baseName>

至于二元关联,需要七个RDF语句来表现一个单独的主题名特性,它将用RDF中的一个单独的语句来模拟。

作者还说明如何对这样的“RDF主题地图”进行查询(应用RDF查询语言SquishQL)与抑制(应用DAML+OIL)。下面的查询样本(见example4.txt)说明如何找出在范围“taxon”中有姓名的所有主题。

例4

SELECT ?topic, ?name

FROM?http://www.cogx.com/xtm2rdf/seacr.rtm#

WHERE

?(rdf::type ?a ?rtm::basename)

?(rtm::role-topic ?a ?m1) (rtm::indicatedBy ?m1 ?topic)

?(rtm::role-name ?a ?m2)(rtm::name ?m2 ?name)

?(rtm::validIn ?a ?s)(rtm::indicatedBy ?s this::taxon)

USING

?rdf FOR http://www.w3.org/1999/02/22-rdf-syntax-ns#

?rtm FOR http://www.cogx.com/xtm2rdf/rtm.rdf#

?this FOR?http://www.cogx.com/xtm2rdf/seacr.rtm#

由于该提案或多或少地包含了xml语法(为支持标识符,它要求扩充基本的PMTM4模型)的各个方面,似乎它已相当完善。此提案需要七个语句来表现信息内容,这些信息内容将用RDF中的一个语句自然模拟,因此自然性并不强。转换主题地图测试实例会生成一个包含125个语句的RDF文件。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134