将xml数据转换为资源描述框架数据的方法和系统的制作方法

文档序号:6582395阅读:107来源:国知局
专利名称:将xml数据转换为资源描述框架数据的方法和系统的制作方法
技术领域
本发明涉及网络数据处理技术,特别地,本发明涉及用于将可扩展标记语言数据 转换为资源描述框架数据的方法和系统。
背景技术
可扩展标记语言(Extensible Markup Language, XML)作为一种标准化的标记语 言被广泛用来作为网络中跨平台之间交互数据的形式。主要针对数据的内容来说明数据是 什么并且携带数据信息,然后通过不同的格式化描述手段可以完成最终的形式表达。然而 在实践中,网络中的许多XML文档之中存在很多种类似“方言”的领域专用语言。这些表达 具有相当的任意性,因此阻碍了跨区域或领域进行理解。RDF (Resource Description Framework,资源描述框架),是万维网联盟(W3C)提 出的一组标记语言的技术标准,以便更为丰富地描述和表达网络资源的内容与结构。具体 而言,RDF提供了一种标准,将资源描述为形式为主体_谓词_客体的语句。它通过使用统 一资源标识符(Uniform Resource Identifier,URI)来唯一地标识资源并且用简单的属性 (property)以及属性的值来描述资源,从而在网络中实现数据整合。W3C提出了一种将XML数据转换为RDF数据的解决方案,即从语言的方言中采撷资 源描述(Gleaning Resource Descriptions fromDialects of Language)。GRDDL 的基本思 想在于利用扩展样式表转换语 g (Extensible Stylesheet Language Transformations, XSLT)编写转换代码,从相关的XML文档中提取数据,并对所提取的数据进行编写从而输出 RDF 数据(RDF/XML)。然而,GRDDL存在许多问题。GRDDL所使用的XSLT代码可读性差。XSLT是一种基 于XPath的转换语言。通过指定存在所需数据路径(XPath)可以使用XSLT从给定的XML 文档中选择数据,以类似于拼字符串的方式生成所需的RDF数据。但是,应该注意到所生成 的RDF数据通常遵从某些预定义的本体模型。因此,使用诸如XSLT编程语言,很难向读者 表现本体的内在逻辑。因此,这使得他人很难理解现有的GRDDL脚本,更难于进行维护或者 修改。而且,利用GRDDL很难有效地处理XML中的复杂关系。例如,XML允许递归数据的存 在。但是XSLT脚本没有提供能够有效处理这些递归结构的能力。因此,当处理递归XML数 据时,用户必须基于XML实例编写XSLT脚本,而不是基于XML文档纲要结构。显然,这是一 个相当费时费力的过程。因此需要一种从XML数据转换到RDF数据的新方案。

发明内容
为了克服现有技术中的缺陷,本发明提出一种基于映射文件将XML数据转换为 RDF数据的新方案,其中该映射文件定义了 XML数据中XML元素和/或属性和RDF数据的概 念之间的对应关系。基于提供的映射文件,可以从XML数据自动生成目标RDF数据。根据本发明的第一方面,提供一种用于将可扩展标记语言数据转换为资源描述框架数据的方法接收预定义的映射文件;读取该映射文件指定的可扩展标记语言数据中可 扩展标记语言元素和/或属性和资源描述框架数据的概念之间的对应关系;对映射文件的 元素进行处理,以获取可扩展标记语言元素和/或属性并生成相应资源描述框架资源;以 及利用生成的RDF资源生成资源描述框架数据。根据本发明的第二方面,提供一种用于将可扩展标记语言数据转换为资源描述框 架数据的装置,包括用于接收预定义的映射文件的装置;用于读取该映射文件指定的可 扩展标记语言数据中可扩展标记语言元素和/或属性和资源描述框架数据的概念之间的 对应关系的装置;用于对映射文件的元素进行处理,以获取可扩展标记语言元素和/或属 性并生成相应资源描述框架资源的装置;以及用于利用生成的RDF资源生成资源描述框架 数据的装置。根据本发明的技术方案,利用映射文件来描述XML数据中XML元素和/或属性和 RDF数据的概念之间的关系,从而用户无需如GRDDL那样使用代码从XML文档中直接选择数 据。由于采用了相较于代码脚本更易阅读和理解的映射文件,使得易于对根据本发明的转 换方案的系统进行功能维护和扩展。进一步地,通过设计映射文件所包括的元素,可以对映 射文件进行扩展以支持对特定形式的转换有益的新的特征。


通过以下结合附图的说明,并且随着对本发明的更全面了解,本发明的其他目的 和效果将变得更加清楚和易于理解,其中图1示意性示出根据本发明一个实施例的用于将XML数据转换为RDF数据的方 法;图2示出了根据本发明一个实施例的映射文件的基本结构;图3示出了基于如图2所示结构、针对具体XML数据以及目标RDF数据的映射文 件示例;图4示出了根据本发明一个实施例的映射文件的一种示例性扩展结构;图5是基于如图4所示映射文件扩展结构、针对具体XML数据以及目标RDF数据 指定的具体映射文件示例;图6是基于如图4所示映射文件扩展结构、针对具体XML数据以及目标RDF数据 指定的映射文件示例;图7示意性示出根据本发明一个实施例的转换引擎的示意图;在所有的上述附图中,相同的标号表示具有相同、相似或相应的特征或功能。
具体实施例方式在具体说明本发明的具体实施方式
之前,简单介绍RDF数据的背景,这有助于对 本发明的理解。在RDF数据中每个事务属于一组类似的类,用统一资源标识符来标识事务,用简 单的属性(property)及属性值来描述资源,其中被描述的事物具有一些属性,而这些属性 各有其值(values)。由此,在RDF数据中,对资源的描述可以通过对它作出指定的上述属性 及值的语句(statement)来进行。RDF用一套特定的术语来表达语句中的各个部分,即关于资源的语句中用于表示资源的部分就叫做主体,而用于区分语句对象主语的各个不同属性 的那部分就叫做谓词,语句中用于区分各个属性的值的部分叫做客体。在本文中,将RDF数 据中的一组类似的类、属性、属性值等构成RDF数据的概念级的元素称为RDF数据的概念。本发明利用映射文件来描述XML数据中XML元素和/或属性和RDF数据的RDF概 念之间的关系,从而无需如GRDDL那样使用代码从XML文档中直接选择数据。用户通过映 射文件指定XML数据中XML元素和/或属性和RDF数据的RDF概念之间的对应关系,基于 该映射文件将从XML数据获得的XML元素和/或属性转换为目标RDF数据。图1示意性示出根据本发明一个实施例的用于将XML数据转换为RDF数据的方 法。在步骤SlOO中,该方法的流程开始。在步骤SlOl中,接收预定义的映射文件。该映射文件具有一定的基本结构,从而 使得用户只要指定具体XML元素和/或属性与映射文件中各元素(即,节点、子节点、关联 等)的对应关系,就可以表示XML数据中XML元素和/或属性和目标RDF数据的概念之间 的对应关系。在步骤S102中,读取该映射文件中指定的XML数据中XML元素和/或属性和目标 RDF数据的概念之间的对应关系。其中该对应关系由映射文件的元素表示。在步骤S103中,对映射文件中各元素进行处理,以获取XML元素和/或属性并生 成相应RDF资源。参照下文所要描述的内容可以理解,该处理步骤的具体过程取决于映射 文件的结构和/或其中具体信息的配置。从下文中给出的具体实施例中可以理解到,针对 映射文件的不同结构和/或其中具体信息的不同配置,该处理步骤的具体过程可能不同。 从XML文件中获取XML元素和/或属性可以通过本领域已知的任何方式来实现。在下文对 于具体实施例的描述中,借助于XPath的方式指定并且获取XML文件中的相应元素和/或 属性。但是本领域的技术人员可以理解,这种举例是示例性的,而不是构成对本发明的限 制。在步骤S104中,根据生成的RDF资源生成目标RDF数据。在步骤S105中,该方法的流程结束。图2示出了根据本发明一个实施例的映射文件的基本结构。该映射文件将RDF数 据中的概念归纳为相应的对应元素,从而使得用户只要指定具体XML元素和/或属性与映 射文件中元素的对应关系,就表示XML数据中XML元素和/或属性和目标RDF数据的概念 之间的对应关系,从而通过执行图1所示的步骤,最终生成目标RDF数据。图2所示的映射 文件基本结构将RDF数据中的概念归纳为类、属性。如图2所示,映射文件的基本结构包括如下元素根节点00、类映射节点(以下称 为类映射)20和多个属性映射节点(以下称为属性映射)21、22,以及关联类映射和属性映 射的属性关联。根节点00是虚拟节点,可以将其理解为处理该映射的初始点。类映射20对应于RDF (OffL本体或者RDFS模式)数据的一组类似的类,用于直接指 定该一组类似的类或者将XML元素和/或属性映射到该一组类似的类。在执行转换时,通 过类映射可以定位对应于RDF数据的一组类似的类的XML数据中的XML元素和/或属性。 类映射20定义了识别类的实例的类名称,其具有一组将属性映射21、22连接到这些实例的属性关联(PropertyBridge)。属性关联指示了 RDF数据中一个属性或一组类似属性的实 例。属性映射21、22对应于RDF(0WL本体或者RDFS模式)数据的一个或一组类似属性,用 于直接指定该一个或一组类似属性或者将XML元素和/或属性映射到该一个或一组类似属 性。在执行转换时,通过属性映射可以定位对应于RDF数据的一个或一组类似属性的XML 数据中的XML元素和/或属性。属性关联关联类映射和属性映射,将映射文件中对应于主 语的元素(例如,类的实例)和对应于宾语的元素(例如,属性的值或类的实例)关联到属 性映射21、22。在执行转换时,按照属性关联确定对应于该属性映射的RDF数据的主语和/ 或宾语的元素。各类映射和属性映射节点包括多个描述特定实例的特征。这些特征在图2所示的 映射文件的基本结构中表示为各个节点的多个子节点。类映射20包括用于表示在RDF数据中该类的标识(ID)的标识子节点。虽然图2 中将该子节点示出为统一资源标识符(URI)子节点,但该类的标识的类型例如可以是统一 资源标识符、文字(不包括保留字的任何字符串)、序列、函数以及XPath表达式中的任何一 种。类映射20还包括用于指定对应于所定义类的XML元素和/或属性(实例)发生的位 置的位置子节点,图2示出为位置子节点。根据本发明的一个实施例,该位置子节点的类型 为XPath表达式。执行XML数据到RDF数据的转换时,在通过类映射定位对应于RDF数据 的类的XML元素和/或属性的过程中,可以通过该标识唯一地指定该类的标识,并且通过该 位置确定在XML数据中对应于所述类的实例的XML元素和/或属性发生的位置。属性映射21和22的每一个包括指定在XML数据中对应于所定义属性的实例的 XML元素和/或属性,在图2中表示为属性子节点。属性子节点的类型可以是统一资源标识 符、序列、函数以及XPath表达式中的任何一种。属性映射21和22还包括用于指示所定义 属性的值的子节点,在图2中表示为值子节点。该值子节点的类型可以是文字(不包括保 留字的任何字符串)、序列、函数以及XPath表达式中的任何一种。执行XML数据到RDF数 据的转换时,在通过属性映射定位对应于RDF数据的属性的XML元素和/或属性的过程中, 可以通过该属性确定对应于所述属性的实例的XML元素和/或属性,并且通过该值确定所 述属性的值。属性关联包括两种关联方式属于关联和引用关联。属于关联在图2中表示为从 属性映射到类映射的箭头,表明该属性映射属于该类映射;这指示了作为属性映射的RDF 数据的主语的类映射。引用关联在图2中表示为从类映射到属性映射的箭头,其表示与属 于关联相反的关联关系,即该属性映射引用该类映射;这指示了作为属性映射的RDF数据 的宾语的类映射。在执行XML数据到RDF数据的转换时,在按照属性关联确定对应于该属 性映射的RDF数据的主语和/或宾语的元素的过程中,当类映射和属性映射之间通过属于 关联关联,需要将该类映射作为该属性映射的“输入”;而当类映射和属性映射之间通过引 用关联关联,则需要该类映射作为该属性映射的“输出”。图2所示的预定义映射文件的基本结构中设置属性关联的优点在于,能够直观地 反映目标RDF数据中类和属性之间的关系,而且也为用户指定相应的XML元素和/或属性 提供了便利。例如,在当使用XPath作为属性子节点的数据类型时,保留字$input可以用 于将所定义类映射节点实例的对应XML元素和/或属性传递到由属于关联所连接的属性映 射节点,而保留字$output可以用于将所定义类映射节点实例的对应XML元素和/或属性传递到由引用关联所连接的属性映射节点。这有助于简化用户的指定过程。预定义的映射文件的结构配置是灵活的。例如,图2所示的映射文件基本结构可 以被扩展为具备新的特征,以提供处理复杂XML数据关系和目标RDF数据的能力。这将会 在下文中进行阐述。需要指出的是,虽然映射文件的基本结构在图2中是以图的形式示出的,本领域
的技术人员可以理解,映射文件本身是一种描述RDF数据和XML数据之间关系的声明性语 、
曰ο图3是基于如图2所示映射文件基本结构、针对具体XML数据以及目标RDF数据 指定的具体映射文件示例。图3给出一段示例性XML数据,其描述了“目录”中“⑶”的信息,包括“标题”、“艺 术家”、“国家”、“公司”、“价格”以及“年代”的信息。在目标RDF数据中,希望以RDF数据中的对应概念列出⑶中各个信息项。因此, 用户基于图1所示的映射文件基本结构指定XML数据的XML元素和/或属性和目标RDF数 据的概念之间的对应关系。如图3所示,类映射30对应于RDF数据的一组类似的类“⑶”。类映射30的位置 子节点通过XPath指定了对应于所定义类的实例发生的位置为“/目录/CD”。可见,位置子 节点的类型为XPath表达式。在该示例中,标识子节点的类型也采用XPath表达式“$位置 /0标识”,表明该类的标识为“位置”所指代的“/目录/CD”下“标识”的值,也即CD的标识 “01”。其中“$位置”(“$loCation”)是保留字,用于指示该节点对应的XML元素。类映射30具有两个属性关联,其关联方式均为属于关联,并且分别连接到两个属 性映射31和32,以表明该属性映射31和32属于类映射30。属性映射31的属性子节点为目标RDF数据中对应的属性表达“dc:title”。这是 用户基于有关目标RDF数据的知识所已知的。属性映射31的值子节点为XPath类型表达 式“$input/标题”。保留字“$input”用于将所定义类映射节点实例的对应XML元素和/ 或属性传递到由属于关联所连接的属性映射节点,在这里,保留字“$input”表示“/目录/ ⑶”,“$input/标题”指示了 XML数据中“/目录/⑶/标题”。容易理解,此时该属性映射31 对应于描述CD的XML信息中的“标题”信息。类似地,属性映射32的属性子节点为目标RDF数据中对应的属性表达 "dc:artist"0这也是用户基于有关目标RDF数据的知识所已知的。属性映射32的值子节 点为XPath类型表达式“$input/艺术家”。在这里,保留字“$input”表示“/目录/CD”, “$input/艺术家”指示了 XML数据中的“/目录/CD/艺术家”。容易理解,此时该属性映射 31对应于描述⑶的XML数据中的“艺术家”信息。虽然在图3中没有示出,但本领域的技术人员可以理解,还可以定义更多的属于 类映射30的属性映射,以将描述CD的XML数据中的其它信息(例如、“国家”,“公司”、“价 格”、“年代”等)映射到对应的RDF属性表达,以便生成所需的RDF数据。基于如图3所示的预定义的映射文件,按照属性关联的关联方式对类映射、属性 映射进行处理,能够得到指示相应XML元素和/或属性的XPath表达式。例如通过转换引 擎中包含的XPath处理装置可以从图3所示的XML文件中获取相应地XML元素和/或属性 并生成相应的RDF资源。由此,转换引擎能够将XML数据转换为目标RDF数据。在图3所示的示例中,转换后的RDF语句如下 相应地,在现有技术中使用GRDDL中基于XSLT语言的转换方法,将图3中所示的 XML数据转换为上述RDF数据,则需要编写如下XSLT脚本 显然,这样的XSLT脚本无法像图3所示的映射文件一样,直观地反映XML元素和/ 或属性和RDF概念之间的对应关系。用户必须掌握需要转换XML数据的知识、目标RDF数 据的知识,而且熟练掌握XSLT,才能够完成XSLT脚本的编写。而且,XSLT脚本相较于图3 所示的映射文件来说,不易于阅读和理解,使得对其进行后续的功能维护和扩展十分困难。图3所示的映射文件直接体现了目标RDF数据的概念和XML数据中的相应XML元 素和/或属性的对应关系。考虑到,在实践中执行XML数据到RDF数据转换的用户通常非 常熟悉目标RDF数据,因此这样的用户通常可以相对简便地完成根据本发明映射文件的指 定。特别地,通过图形化的方式可以使得映射文件更易于阅读和理解,从而适合于维护和进 一步开发。如上文中所述,为了支持XML数据中的复杂关系或者目标RDF数据中的特定表达, 可以基于如图2所示的映射文件基本结构对映射文件进行扩展,以包括更多地特征。下面通过具体示例说明,本发明中的映射文件的可扩展性。但是本领域的技术人 员应该理解所列举的示例是说明性的,并非穷举性的。本领域的技术人员可以根据本发明 的基本思想、按照所实施的XML数据到RDF数据的转换的具体情境对映射文件的结构进行扩展,以支持所需要的特征。特别地,考虑到本发明中的映射文件是以声明性语言为基础 的,这种可扩展性更为灵活。应该理解,通过使用扩展所得的各种映射文件将XML数据转换 为RDF数据的技术方案是本发明具体实施方式
的变形,并且仍然落入本发明的范围之内。图4示出了图1所述的预定义的映射文件的一种示例性扩展结构。如图4所示,扩展的映射文件包括根节点00、类映射40和多个属性映射41、42。与图2所示的基本结构不同,该扩展结构包括函数节点401用于定义用户用于生 成特定数据的机制,以在执行XML数据到RDF数据的转换过程中生成映射文件中任何元素 的指定内容。在该示例中,由该函数节点401所定义的数据生成机制可以用来生成类映射 40的标识子节点的内容,以表示在RDF数据中该类的标识。可以理解,当利用函数节点401 生成类映射40的类标识时,该类的标识的类型是函数。需要说明的是,本领域的技术人员 可以使用任何已知的技术手段来实现由函数节点401所代表的生成数据的机制,例如,生 成特定序列的机制、提取获取URI的机制等等。这里不对具体生成机制进行讨论。对属性映射41、42的每一个所包括的值子节点进行扩展当值子节点的类型为 XPath表达式时,将其扩展为进一步支持一种类XPath的表达式,以表示类实例之间的相对 路径。为了在叙述上区别于未扩展的值子节点,这里称这种扩展后的值子节点为关系子节 点,其用于指示来自属于关联的类映射到引用关联的类映射之间的关系。上述类XPath表 达式与XPath表达式的区别在于1)必须以“/”起始以表示这是一个来自属于关联的相对 上下文XPath表达式;2)必须以“//”或“/”作为结束以表明到引用关联的关系。该扩展结构还包括类表达式节点(以下成为类表达式)43,用于构造目标RDF类, 也即构造类映射40 (在图4中表示为从类映射40指向类表达式43的箭头)。类表达式43 还可以关联到另一表达式,从而由另一类表达式嵌套地进行定义(在图4中表示为指向其 自身的箭头)。在执行XML数据到RDF数据的转换时,该类表达式用于构造在字符串适当位 置处包括XML数据的XML元素和/或属性的目标RDF数据的类表达式。以下通过图5和图6所示的示例说明应用如图4所示映射文件扩展结构将XML数 据转换为RDF数据。图5是基于如图4所示映射文件扩展结构、针对具体XML数据以及目标RDF数据指 定的具体映射文件示例。其中应用了映射文件的新扩展的特征函数节点来支持目标RDF数 据中对类标识的要求,以及属性映射的关系子节点来支持对XML数据中递归关系的处理。如图5所示,XML数据是由标签A和B构成的递归结构(为了简便省略了起始标 签和结束标签之间的元素)。如图中所示,目标RDF数据需要以RDF语句表达XML的递归结 构并且对构成递归结构的标签进行顺序编号。分别为A和B定义相应类映射50A和50B。类映射50A的位置子节点通过XPath 指定了对应于所定义类的实例发生的位置为“//A”,即无论具体路径直接寻找A。类映射 50A标识子节点的类型采用函数节点(函数A),以提供生成连续编号的机制。相应地,类映 射50B的位置子节点指定了对应于所定义类的实例发生的位置为“//B”,即无论具体路径 直接寻找B。类映射50B标识子节点的类型采用函数节点(函数B),以提供生成连续编号 的机制。通过设置带有关系子节点的属性映射51和52可以表示A和B在XML数据中的递 归结构。
属性映射51通过属于关联连接到类映射50A,并且通过引用关联连接到类映射 50B。属性映射51的关系字节点为“/”,指示了类映射50A的相应实例和类映射50B的相应 实例的相对路径。属性映射51属性子节点为目标RDF数据中对应的属性表达“dc:child”。 属性映射52通过属于关联连接到类映射50B,并且通过引用关联连接到类映射50A。属性 映射52的关系字节点为“/”,指示了类映射50B的相应实例和类映射50A的相应实例的相 对路径。属性映射52属性子节点为目标RDF数据中对应的属性表达“dc:child”。在图5所示的映射文件中,通过设置与类映射关联的属性映射,能够容易地描绘 XML数据中存在的递归结构即属性映射51表示A包含B的情况,而属性映射52表示B包 含A的情况。基于如图5所示的预定义的映射文件,按照属性关联的关联方式对类映射、以及 带有关系子节点的属性映射进行处理,能够得到指示相应XML元素和/或属性的XPath表 达式。转换引擎中还可以包括函数处理装置,以支持对于映射文件中支持扩展特征的结构 的处理。例如,函数处理装置可以提供生成各种编号方式的机制。例如通过转换引擎中包 含的XPath处理装置可以从图5所示的XML数据中获取相应地XML元素和/或属性并生成 相应的RDF资源。基于该映射文件,转换引擎能够将XML数据转换为目标RDF数据。在图 5所示的示例中,转换后的RDF语句如下 在现有技术中,使用GRDDL中基于XSLT语言的转换方法,将图5中所示的XML数 据转换为上述RDF数据,则需要编写如下XSLT脚本 从以上脚本中可以看出,为了生成目标RDF数据,XML数据中存在多少层递归结构 就需要书写多少层对应的XSLT循环。这显然相当费时费力。而且在有的情况下,例如仅依 据XML模式(XMLSchema),可能并不清楚存在多少层递归结构,此时就无法通过编写XSLT脚本的 方式实现转换。因此,图5所示的映射文件在描绘XML数据的复杂结构方面显然具有GRDDL 无法比拟的优势。图6是基于如图4所示映射文件扩展结构、针对具体XML数据以及目标RDF数据 指定的映射文件示例。其中利用类表达式节点支持生成包含XML数据中XML元素和/或属 性的目标RDF类表达式。类映射60对应于目标RDF的类。位置子节点指定了对应于所定义类的实例发生 的位置为“//obs/value”。标识子节点可以表示该类的标识。类映射60具有到类表达式63A的连接,直接将对于该类的定义传递给该类表达 式63A。类表达式63A的表达式子节点定义了所要生成的RDF类表达式,其中在适当的 位置包括所需的XML数据的XML元素和/或属性,示意性地将该表达式表示为“字符串 Al+$inpUt/@COde+字符串A2”。类表达式63A还可以连接到作为其子节点的另一类表达式 63B,并可以指定到该类表达式63B的输入为“Sinput/qualifier”,其中“$input”表示对类 表达式63A的输入“//obs/value”。类表达式63B的表达式子节点定义所要生成的RDF类表达式,其中在适当位置包 括所需XML数据的XML元素和/或属性,示意性地将该表达式表示为“字符串Bl+$input/ nameOcode+字符串B2”。类表达式63B还可以连接到作为其子节点的另一类表达式。特 别地,类表达式63B可以再次连接回类表达式63A,并可以指定到该类表达式63A的输入为 “$input/value”,其中“$input” 表示对类表达式 63B 的输入 “//obs/value/qualifier”。此时,类表达式63A的表达式子节点“字符串Al+$inpUt/@COde+字符串A2”表示“字符串 A l+//obs/value/qualifier/value/@code+ 字符串 A2”。可以理解,通过上述类表达式的嵌套,描述了 XML数据中的“qualifer”和“value” 构成的递归结构。基于图6所示的预定义的映射文件,通过处理类表达式构造在字符串适当位置处 包括XML数据的XML元素和/或属性的目标RDF数据的类表达式,能够得到指示相应XML 元素和/或属性的XPath表达式。转换引擎可以包括表达式处理装置,以支持对于映射文 件中支持扩展特征的结构的处理。转换引擎通过转换引擎中包含的XPath处理装置从图6 所示的XML数据中获取各个XML元素“code”,根据表达式处理装置的输出与字符串一起构 成目标RDF数据。根据图6所示的映射文件,示例性的给出一个可能的转换后的RDF语句 图7示意性示出根据本发明一个实施例的转换引擎的示意图。如图7所示,待转换的XML数据作为根据本发明的转换引擎700的输入。转换引 擎700接收预定义的映射文件。该映射文件具有例如上文中参照图2-6中至少一个所示的 结构,从而使得用户只要指定具体XML元素和/或属性与映射文件中各元素(即,节点、子 节点、关联等)的对应关系,就可以表示XML数据中XML元素和/或属性和目标RDF数据的 概念之间的对应关系。转换引擎700被配置为读取该映射文件中指定的XML数据中XML元素和/或属性 和目标RDF数据的概念之间的对应关系。转换引擎700对映射文件中各元素进行处理,以获取XML元素和/或属性并生成 相应RDF资源。例如,对应于上文所述的映射文件的基本结构,转换引擎700可以包括相 应的类映射处理装置70,用于定位对应于RDF数据的一组类似的类的XML数据中的XML元 素和/或属性;以及包括属性映射处理装置71,用于定位对应于RDF数据的一个或一组类 似属性的XML数据中的XML元素和/或属性,其中按照属性关联确定对应于该属性映射的 RDF数据的主语和/或宾语的元素。而且,在映射文件还包括扩展的特征以支持XML数据和RDF数据的复杂结构的情况下,转换引擎700优选地包括扩展处理装置73,其中例如可以包 括函数处理装置731,用于生成所述映射文件中任何元素的指定内容;类表达式处理装置 732,用于构造在字符串适当位置处包括XML数据的XML元素和/或属性的目标RDF数据的 类表达式;等等。这些扩展处理装置可以基于映射文件中相应的扩展特征处理具有特定结 构的XML数据(例如,带有递归结构的XML数据)或者生成具有特定特征的RDF数据。转换引擎700被配置为获取XML元素和/或属性并生成相应RDF资源。转换引擎 例如包括XPath处理装置72,用于处理XPath表达式,以获取XML数据中的XML元素和/或 属性。特别地,当映射文件中类映射、属性映射的相应属性直接采用XPath表达式类型时, 可以直接通过XPath处理装置72从XML数据中获取XML元素和/或属性。具体实现中,在转换引擎700对XML数据进行转换的过程可能会生成的中间RDF 元素资源(例如RDF三元组中的任何元素)。可以将这些中间RDF元素资源临时存储在转 换引擎700的RDF资源存储(未示出)中。该RDF资源存储可以实现为计算机系统的存储 器的一部分。接着,转换引擎700利用RDF资源生成目标RDF数据。需要理解的是,转换引擎700的具体构造和处理流程是与所定义的映射文件的结 构以及其中具体信息配置相适应的。由于本发明的预定义的映射文件可以在如图2所示的 基本结构的基础上进行多种变形(例如,功能扩展),甚至可以采用任何能够指定XML数据 中XML元素和/或属性和目标RDF数据的概念之间的对应关系的具体结构,因此转换引擎 700具体构造和处理流程也存在相应的多种变形。转换引擎700需要为映射文件所支持的 所有特征设置对应的处理模块以执行对应的具体处理流程。下面以图5所示具体映射文件为例,示例性说明转换引擎700的具体处理流程。类映射处理装置70根据输入的例如图4所示的映射文件中的类映射节点进行处 理。对于每个类映射,根据其位置子节点通过XPath处理装置72在XML数据中找到该类的 实例;并且为每个实例分配标识,其中由于类映射节点的标识子节点由函数节点表示,则调 用函数处理装置731以生成所需的URI模式。例如,对于类映射A 50A根据位置“//A”由 XPath处理装置72在XML数据中找到每个出现的“<A>”。函数处理装置731生成的URI模 式为目标RDF数据中所需的顺序编号,也即当前实例“<A>”在XML数据中出现的位次。在一个优选实施中,可以将生成的RDF资源临时存储在转换引擎700的RDF资源 存储(未示出)中。属性映射处理器71根据输入的例如图5所示的映射文件中的类映射节点进行处 理。对于每个属性映射,通过XPath处理装置72从XML数据中获取属于关联所指示的实 例。对于每个实例根据关系节点通过XPath处理装置72在XML数据中找到对应结果。通 过XPath处理装置72从XML数据中获取引用关联所指示的实例。将该结果与引用关联所 指示的实例相比较。如果相匹配,则输出或临时存储该结果。否则,属性映射处理器71继 续执行上述处理。例如,对于属性映射51通过XPath处理装置72从XML数据中获取属于 关联指示的实例,某个位置的“<A>”。对于该实例根据关系节点“/”表示的关系通过XPath 处理装置72在XML数据中找到对应结果也即“<A>”之下的“<B>”。通过XPath处理装置72 从XML数据中获取引用关联所指示的实例,“<B>”。如果两个实例彼此匹配则说明,“<A>” 和“<B>”满足该关系,将该结果作为RDF三元组中的值进行临时存储或者输出。在一个优选实施中,可以将生成的RDF资源临时存储在转换引擎700的RDF资源存储(未示出)中。
当输入的XML数据全部处理完成时,输出所生成的RDF语句。通常,RDF语句为 RDF三元组,即主体、谓词和客体,对应于生成的RDF资源为类映射实例、属性映射的属性子 节点、属性映射的值子节点。根据目标RDF数据的具体要求,主体还可以包括类映射实例的 URI标识、客体还可以包括根据关系子节点找到的结果,等等。例如,在上述示例中,由转换 引擎700所输出的RDF数据为 在另一示例中,转换引擎700可以支持如图6所示的具体映射文件。因此,转换引 擎700中还可以进一步在扩展功能处理装置73中包括类表达式处理装置723。类表达式处 理装置723的具体处理算法可以根据映射文件所支持的扩展结构的具体配置来设计。对于 本领域技术人员来说,设计相应的处理算法是容易的。这里不再一一举例。这里需要说明的是,不同的映射文件的结构以及其中具体信息的不同配置会导致 转换引擎700的不同构造和/或不同处理流程。即使对于相同的映射文件结构和/或其中 具体信息的相同配置,本领域的技术人员可以采用多种不同的算法来实现转换引擎700的 处理流程。如何设计转换引擎700的具体处理流程并不在本发明的讨论范围之内。提供本发明的说明书的目的是为了说明和描述,而不是用来穷举或将本发明限制 为所公开的形式。对本领域的普通技术人员而言,许多修改和变更都是显而易见的。本领 域技术人员还应该理解,可以通过软件、硬件、固件或者它们的结合的方式,来实现本发明 实施例中的方法和装置。因此,选择并描述实施方式是为了更好地解释本发明的原理及其实际应用,并使 本领域普通技术人员明白,在不脱离本发明实质的前提下,所有修改和变更均落入由权利 要求书所限定的本发明的保护范围之内。
权利要求
一种用于将可扩展标记语言XML数据转换为资源描述框架RDF数据的方法接收预定义的映射文件;读取该映射文件指定的所述XML数据中XML元素和/或属性和RDF数据的概念之间的对应关系,其中该对应关系由映射文件的元素表示;对所述映射文件的元素进行处理,以获取XML元素和/或属性并生成相应RDF资源;以及利用生成的RDF资源,生成RDF数据。
2.根据权利要求1所述的方法,其中对所述映射文件的元素进行处理包括通过类映射定位对应于RDF数据的一组类似的类的XML数据中的XML元素和/或属 性,其中该类映射用于直接指定RDF数据的一组类似的类,或者将XML数据中的XML元素和 /或属性映射到该RDF数据的一组类似的类。
3.根据权利要求2所述的方法,其中对所述映射文件的元素进行处理包括通过属性映射定位对应于RDF数据的一个或一组类似属性的XML数据中的XML元素和 /或属性,其中该属性映射用于直接指定RDF数据的一个或一组类似属性,或者将XML数据 中的XML元素和/或属性映射到RDF数据的一个或一组类似属性;按照属性关联确定对应于该属性映射的RDF数据的主语和/或宾语的元素,其中该属 性关联关联类映射和属性映射。
4.根据权利要求2所述的方法,其中所述类映射包括以下子元素 标识,用于表示在RDF数据中该类的标识;以及位置,用于指定在XML数据中对应于所述类的实例的XML元素和/或属性发生的位置, 其中,所述通过类映射定位对应于RDF数据的一组类似的类的XML数据中的XML元素 和/或属性的步骤进一步包括由该标识唯一地指定该类的标识;以及通过该位置确定在XML数据中对应于所述类的实例的XML元素和/或属性发生的位置。
5.根据权利要求3所述的方法,其中所述属性映射包括以下子元素属性,用于指定在XML数据中对应于所述属性的实例的XML元素和/或属性; 值,用于指示所述属性的值,并且其中所述通过属性映射定位对应于RDF数据的一个或一组类似属性的XML数据中 的XML元素和/或属性的步骤进一步包括通过该属性确定在XML数据中对应于所述属性的实例的XML元素和/或属性; 通过该值确定所述属性的值。
6.根据权利要求3所述的方法,其中所述属性关联包括属于关联,指示了作为属性映射的RDF数据的主语的类映射;和/或 引用关联,指示了作为属性映射的RDF数据的宾语的类映射,其中,所述按照属性关联确定对应于该属性映射的RDF数据的主语和/或宾语的元素 的步骤进一步包括响应于类映射和属性映射之间通过属于关联关联,将该类映射作为该属性映射的输 入;和/或2响应于类映射和属性映射之间通过引用关联关联,将该类映射作为该属性映射的输出ο
7.根据权利要求4所述的方法,其中,所述映射文件的元素还包括 关联到类映射或者另一类表达式的类表达式,其中所述对所述映射文件的元素进行处理的步骤进一步包括 通过类表达式构造在字符串适当位置处包括XML数据的XML元素和/或属性的目标 RDF数据的类表达式。
8.根据权利要求6所述的方法,其中,所述属性映射包括以下子元素属性,用于指定在XML数据中对应于所述属性的实例的XML元素和/或属性; 值,用于指示来自属于关联的类映射到引用关联的类映射之间的关系, 并且其中所述通过属性映射定位对应于RDF数据的一个或一组类似属性的XML数据中 的XML元素和/或属性的步骤进一步包括通过该属性确定在XML数据中对应于所述属性的实例的XML元素和/或属性; 通过值所指示的关系连接作为该属性映射的输入的类映射和作为该属性映射的输出 的类映射。
9.根据权利要求3所述的方法,其中,所述映射文件的元素还包括 函数,用于定义用户用于生成特定数据的机制,其中所述对所述映射文件的元素进行处理的步骤进一步包括 通过函数生成所述映射文件中任何元素的指定内容。
10.根据权利要求1所述的方法,其中,所述映射文件的至少部分元素被赋予XPath表 达式值,并且其中所述对所述映射文件的元素进行处理的步骤进一步包括处理XPath表 达式,以获取XML元素和/或属性并生成相应RDF资源。
11.一种用于将可扩展标记语言XML数据转换为资源描述框架RDF数据的装置 用于接收预定义的映射文件的装置;用于读取该映射文件指定的所述XML数据中XML元素和/或属性和RDF数据的概念之 间的对应关系的装置,其中该对应关系由映射文件的元素表示;用于对所述映射文件的元素进行处理,以获取XML元素和/或属性并生成相应RDF资 源的装置;以及用于利用生成的RDF资源生成RDF数据的装置。
12.根据权利要求11所述的装置,其中用于对所述映射文件的元素进行处理的装置进 一步包括用于通过类映射定位对应于RDF数据的一组类似的类的XML数据中的XML元素和/或 属性的装置,其中该类映射用于直接指定RDF数据的一组类似的类,或者将XML数据中的 XML元素和/或属性映射到该RDF数据的一组类似的类。
13.根据权利要求12所述的装置,其中用于对所述映射文件的元素进行处理的装置进 一步包括用于通过属性映射定位对应于RDF数据的一个或一组类似属性的XML数据中的XML元 素和/或属性的装置,其中该属性映射用于直接指定RDF数据的一个或一组类似属性,或者 将XML数据中的XML元素和/或属性映射到RDF数据的一个或一组类似属性;用于按照属性关联确定对应于该属性映射的RDF数据的主语和/或宾语的元素的装 置,其中该属性关联关联类映射和属性映射。
14.根据权利要求12所述的装置,其中所述类映射包括以下子元素 标识,用于表示在RDF数据中该类的标识;以及位置,用于指定在XML数据中对应于所述类的实例的XML元素和/或属性发生的位置, 其中,用于通过类映射定位对应于RDF数据的一组类似的类的XML数据中的XML元素 和/或属性的装置进一步包括用于由该标识唯一地指定该类的标识的装置;以及用于通过该位置确定在XML数据中对应于所述类的实例的XML元素和/或属性发生的 位置的装置。
15.根据权利要求13所述的装置,其中所述属性映射包括以下子元素 属性,用于指定在XML数据中对应于所述属性的实例的XML元素和/或属性; 值,用于指示所述属性的值,并且其中用于通过属性映射定位对应于RDF数据的一个或一组类似属性的XML数据中 的XML元素和/或属性的装置进一步包括用于通过该属性确定在XML数据中对应于所述属性的实例的XML元素和/或属性的装置;用于通过该值确定所述属性的值的装置。
16.根据权利要求13所述的装置,其中所述属性关联包括 属于关联,指示了作为属性映射的RDF数据的主语的类映射;和/或 引用关联,指示了作为属性映射的RDF数据的宾语的类映射,其中,用于按照属性关联确定对应于该属性映射的RDF数据的主语和/或宾语的元素 的装置进一步包括用于响应于类映射和属性映射之间通过属于关联关联,将该类映射作为该属性映射的 输入的装置;和/或用于响应于类映射和属性映射之间通过引用关联关联,将该类映射作为该属性映射的 输出的装置。
17.根据权利要求14所述的装置,其中,所述映射文件的元素还包括 关联到类映射或者另一类表达式的类表达式,其中用于对所述映射文件的元素进行处理的装置进一步包括 用于通过类表达式构造在字符串适当位置处包括XML数据的XML元素和/或属性的目 标RDF数据的类表达式的装置。
18.根据权利要求16所述的装置,其中,所述属性映射包括以下子元素 属性,用于指定在XML数据中对应于所述属性的实例的XML元素和/或属性; 值,用于指示来自属于关联的类映射到引用关联的类映射之间的关系,并且其中用于通过属性映射定位对应于RDF数据的一个或一组类似属性的XML数据中 的XML元素和/或属性的装置进一步包括用于通过该属性确定在XML数据中对应于所述属性的实例的XML元素和/或属性的装置;用于通过值所指示的关系连接作为该属性映射的输入的类映射和作为该属性映射的 输出的类映射的装置。
19.根据权利要求13所述的装置,其中,所述映射文件的元素还包括 函数,用于定义用户用于生成特定数据的机制,其中用于对所述映射文件的元素进行处理的装置进一步包括 用于通过函数生成所述映射文件中任何元素的指定内容的装置。
20.根据权利要求10所述的装置,其中,所述映射文件的至少部分元素被赋予XPath表 达式值,并且其中用于对所述映射文件的元素进行处理的装置进一步包括用于处理XPath表 达式,以获取XML元素和/或属性并生成相应RDF资源的装置。
全文摘要
本发明提供一种用于将可扩展标记语言数据转换为资源描述框架数据的方法。该方法包括以下步骤接收预定义的映射文件;读取该映射文件指定的所述XML数据中XML元素和/或属性和RDF数据的概念之间的对应关系,其中该对应关系由映射文件的元素表示;对所述映射文件的元素进行处理,以获取XML元素和/或属性并生成相应RDF资源;以及利用生成的RDF资源生成RDF数据。本发明还提供相应的转换引擎装置。
文档编号G06F17/22GK101901234SQ20091020310
公开日2010年12月1日 申请日期2009年5月27日 优先权日2009年5月27日
发明者倪渊, 刘升平, 李含予, 梅婧, 谢国彤 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1