专利名称:Xml文档的语义感知处理的制作方法
技术领域:
本发明涉及对XML数据的处理。
背景技术:
可扩展标记语言(XML)是计算机产业中被广泛接受的用于数据和文 档的标准。XML描述并提供诸如文件或数据分组之类的数据体(在此称 作XML文档或其片断)的结构。XML标准提供这样的标签,其限定被称 作XML要素的XML实体的部分。每个XML要素可以包含一个或多个名 称一值对,该名称一值对称作属性。提供以下的XML片断A来对XML 进行说明。
片断FA
<book>My book
(publication publisher="Doubleday,,
date= "January,,></publication>
<Author〉Mark Berry</Author>
<Author〉Jane Murray</Author> </book>
通过开始标签和相应的结束标签来限定XML要素。例如,程序段 (segment) A包含开始标签〈Author〉和结束标签々Author〉来限定要素。 要素间的数据被称作要素的内容。在该要素的情况下,要素的内容是文本数据Mark Berry 。
在此通过要素的要素名称来指代要素。例如,通过开始和结束标签 〈publication〉和〈/publication〉来限定的要素被称作publication。
要素内容可以包含各种其他类型的数据,这些数据包括属性和其他要 素。要素book是包含一个或多个要素的要素示例。具体地,book包含两 个要素publication和author。被另一要素包含的要素称作该要素的后 代。这样,要素publication和author是要素book的后代。要素的属性也 称作被该要素包含。
通过定义包含属性和后代要素的要素,XML文档定义了要素、其后 代要素与其属性之间的分级树关系。任一组具有这样的分级树关系的要素 在此称作XML文档或片断。 节点树模型
用于XML的重要标准是XQuery 1.0和Xpath 2.0数据模型(参见
2004年7月9日的W3C工作草案,该草案通过引用结合于此)。该模型
的一个方面是通过反映XML文档的分级本质的节点分级结构来表示XML
文档。节点分级结构由处于多个等级的节点构成。每个等级处的节点分别
链接到另一等级处的一个或多个节点。在最高等级以下的某一等级处的每
个节点是上一等级处的一个或多个父节点的子节点。处于相同等级的节点
是兄弟节点。在树分级结构或节点树中,每个子节点仅具有一个父节点,
但是父节点可以具有多个子节点。在树分级结构中,没有链接到它的父节
点的节点是根节点,没有链接到它的子节点的节点是叶子节点。树分级结 构具有单个根节点。
在表示XML文档的节点树中,节点可以对应于要素。节点的子节点
对应于包含在该要素中的属性或另一要素。
节点可以与名称相关联。例如,表示要素book的节点的名称是
book。对于表示属性publisher的节点,其名称是publisher
为了便于表述,将XML文档的要素和其他部分称作表示文档的节点 树中的节点。因此,将"My book"称作名称为book的节点的值恰好是一 种表述下述内容的便利方式,所述内容即与节点book相关联的要素的值是Mybook。要素、属性或节点的名称在此也被称作标签名称。
XML文档中节点的路径反映了一系列父一子链接,该链接从XML文 档中的节点开始,到达分级结构中更下游的特定节点。例如,从XML文 档的根到节点publication的路径是"/book/publication"。 相同语义的标签名称的增殖(proliferation)
XML越来越普遍的一个原因在于,可描述性地使用由文本构成的标 签名称,并且标签名称因此用于传达要素和属性的语义。例如,要素 〈address〉用于存储表示地址的数据。
然而,标签名称通常由实现特定应用或项目的独立个人或组创建。因 此,在不同的XML文档中,相同语义可能最终用不同标签名称来表示。 虽然存在一些从标准委员会或产业工会形成的XML词汇,但是这些词汇 仍占所使用的所有XML标签名称的很小一部分。标签名称在不断增殖, 并且许多不同的标签名称正在以ad-hoc的方式被创建以表示类似的或相同 的语义。该问题在相同公司内的组之间以及在不同公司之间出现。
例如,在一个XML文档中可能用要素〈Address〉来表示地址值,然而 在另一文档中可能用另一要素〈Addr〉来表示地址值。此外,这些标签可能 使用不同的名称空间。例如,公司Cl可能使用〈cl:Address〉而公司C2使 用〈c2:Address、从XML的观点来看,他们所定义的这些标签和要素是不 同的并且被假定为表示不同的事物。
彼此不同然而可以被视为语意上相同的一组标签名称,在此被称作语 义等价异质标签名称、语义等价名称。在上述示例中,<Address>、 <Addr>、 <cl:Address〉和〈c2:Address〉具有语义等价异质标签名称。 数据仓库(repository)内的标签名称增殖
当基于不同词汇(即,标签名称组)的XML文档最终处于单个数据 仓库(例如XML数据库)中时,存在多种情境。这在数据整合、web服 务和内容路由中是常见的。在这些情况下,很难在数据仓库中的XML文 档集合中建构査询(query)。在上述示例中,在多个文档间核对地址的查 询需要使用不同标签名称来访问不同文档中的语义等价要素的复杂査询。
对这样的查询的一种可能建构是select... from PurchaseOrder
where extractvalue (doc, '/PurchaseOrder/Address,) = '1600 Willow St.'
or extractvalue (doc, '/PurchaseOrder/Addr,) = '1600 Willow St.,;
显然,随着XML集合内所使用的XPath的表达式的复杂度增大以及 语义等价标签名称的个数增多,上述方法将越来越不可行。除查询复杂度 外,这样的査询具有很差的性能。诸如XPath、 XQuery和XSLT之类的用 于XML的所有标准查询和变换语言都存在这样的缺陷。
用于非叶子节点的标签名称增殖使标签名称增殖的问题更加复杂。如 果虽然祖先节点的后代具有相同的标签名称但是祖先具有语义等价然而不 同的名称,那么需要不同的路径字串来指代后代。例如,若干组XML文 档包括表示publisher及其address的要素。然而,在一个子集中使用要素 〈publisher〉然而在另一子集中使用要素〈publishing company〉。 二者都包含 后代要素〈address〉、 〈city〉和〈zip〉。虽然对于这两个子集而言使用了相同 的标签名称来表示语义等价的后代要素,在子集之间也必须使用不同的 XPath字串来标识后代要素。例如,为了指代要素〈address、在一个子集 中使用XPath字串/publisher/address/,而在另一子集中使用XPath字串 /publishing company/address/。
用于解决标签名称增殖的另一种方法是将所有的文档规范为针对相同 语义使用相同标签名称。例如,在XML文档的集合中,将所有的语义等 价地址要素更改为〈Address、然后访问XML集合中的地址要素的査询仅 需要引用一个标签名称。该方法的主要缺点是没有保留原始文档的保真 度。
基于前述讨论,需要一种解决标签名称增殖的改进方法。 在该部分中描述的方法可能是被研究过的方法,但是并非一定是先前 想到了的或研究过的方法。因此,除非明确指出,不应假定在该部分中描 述的任何方法仅是因为被包括在该部分中而被视为现有技术。
在附图的示图中通过示例而非通过限制示出本发明,在附图中类似标号指代类似元件,并且其中
图1示出根据本发明实施例的基于语义路径标识符(pathid)的XML 索弓l (index)。
图2示出根据本发明实施例的对查询的语义感知改写。 图3示出可以在本发明实施例中使用的计算机系统。
具体实施例方式
在以下的描述中,出于说明的目的,提出了大量具体细节以提供对本 发明全面的理解。然而,显然本发明可以被实践而不需要这些具体细节。 在其他情况下,以框图的形式示出为人熟知的结构和设备以避免不必要地 使本发明变得晦涩。 概述
在此描述的是这样的方法,当执行"标签名称操作"时该方法使得语 义等价异质标签能够被视为相同的标签名称。标签名称操作是依赖于节点 标签名称的操作。标签名称操作的示例包括计算利用诸如查询QA之类的 XPath字串来引用XML数据的査询。标签名称操作的另一示例是模式验证 (schema validation),其中XML文档被判定是否符合XML模式。
该方法基于这样的映射,该映射将一组语义等价标签名称的每个标签 名称映射到"规范(canonical)标签名称"。语义等价标签名称被分别称 作规范标签名称的同义词以及彼此的同义词。好像同义词与它们所映射的 规范标签名称是相同的那样来执行标签名称操作。以这种方式来执行标签 名称操作在此被称作语义感知处理。
例如,XML文档的集合包含如下的地址标签名称的语义等价组 Address、 Addr、 cl:Address禾卩c2:Address。
如下的XML片断XA将这些语义等价地址标签名称映射到规范标签 名称Address 。
片断XA 〈element name= "Address,,〉 〈synonym name= "Addr,,/>〈synonym name= "cl:Address,7>
〈synonym name= "c2: Address,V〉 当计算如下的查询QB时, select... from PurchaseOrder
where extractvalue (doc,'/ PurchaseOrder/Address,) = '500, 由以下路径所标识的要素被视为落入查询QB中所指定的路径/ PurchaseOrder/Address内 / PurchaseOrder/Address , / PurchaseOrder/Addr, / PurchaseOrder/c 1: Address,禾口 / PurchaseOrder/c2: Address 。
将同义词映射到规范标签名称的映射在此被称作语义映射。对诸如片 断A之类的XML文档或片断的使用是表示语义映射的一种方式的示例。 本发明并不局限于表示语义映射的任何特定方式。
根据本发明的一个实施例,由XML数据仓库来执行标签名称操作的 语义感知处理。这里使用的术语XML数据仓库是存储XML文档并管理对 其的访问的计算机系统。具体地,数据仓库是集成软件组件和计算资源配 置的组合,该计算资源配置例如是存储器、磁盘存储器、计算机和用于在 处理器上执行集成软件组件的节点上的进程,该软件和计算资源的组合专 用于管理对XML文档的存储和访问。通常,数据仓库用于代表发出访问 或操作XML文档的查询的客户端来存储和访问XML文档。由数据仓库所 处理的査询符合诸如XML查询语言("XQuery")和XML路径语言 ("XPath")之类的XML标准。在1.0版的XML路径语言(XPath) (1999年11月16日的W3C推荐规范)中描述了 XPath,该文献通过引 用被结合于此。在XQuery 1.0和XPath 2.0 (W3C候选推荐规范,2005年 11月3日)中描述了 XPath 2.0和XQuery 1.0,该文献通过引用被结合于 此。
路径标识符和索引
根据本发明的一个实施例,XML数据仓库使用语义路径标识符索弓l。路径标识符是XML文档内从一节点到另一节点的路径的标识符。
XML文档中节点的路径反映了从XML文档中的节点到分级结构中更下游 的特定节点的一系列父一子链接。路径通过路径表达式来表示,路径表达 式通常是表示路径中节点名称的级联的字串。例如,从XML文档D2的根 到节点Publication的路径通过路径表达式"/Book/Publication"来表示。
节点名称可能很长。为了縮短路径表达式的长度,并且为了减小存储 路径表达式所需的存储量,可以使用路径标识符来替代基于名称的路径表 达式。
路径标识符由节点标识符(node-id)代码组成,节点标识符代码被用 来替代节点名称。在路径标识符中,存在用于基于名称的路径表达式的每 个相应节点名称的节点标识符代码。
出于说明的目的,考虑以下两个XML文档
文档Dl
<Purchase Order〉
<Addr>10 Main St</Address〉 </Purchase Order〉
文档D2
<Purchase Order〉
<Address>500 Oracle Pkwy</Addr> </Purchase Order〉
节点标识符代码12、 23和24分别被指定给节点PurchaseOrder、 Addr 和Address 。这样,路径"/Purchase Order/Addr "的路径标识符是 "/12/23";路径"/Purchase Order/Address"的路径标识符是"/12/24"。 进一步地,路径标识符自身可以被存储在独立的系统路径标识符表中,该表为整个路径指定更短的标识符,将42用于"/12/23"并且将43用于 /丄z/w 。
路径标识符可以用于生成索引,该索引通过路径标识符来对XML文 档集合中的节点进行索引。因为路径标识符使用更少的存储空间,所以路 径标识符索引对将基于其路径而被索引到的节点进行索引,而不会引起基 于完整节点名称的索引路径表达式的存储开销。Index For Accessing XML Data描述了包括路径表和次级索引的索引示例。 语义路径标识符
语义路径标识符是基于路径表达式的语义等价物而生成的路径标识 符。对于给定的路径表达式,其语义等价的基于名称的路径表达式由规范 标签名称而非其同义词构成。同义词映射被用于确定将同义词映射到哪个 规范标签名称。语义路径标识符是基于语义等价路径表达式的节点标识符 代码的;规范标签名称的节点标识符代码被用来替代规范标签名称的同义 词的节点标识符代码。例如,规范标签名称ADDRESS的节点标识符代码 是25 。这样,路径"/Purchase Order/Addr "的语义路径标识符是
"/l2/25",并且对于"/Purchase Order/Address"的语义路径标识符也是
"/l2/25"。
正如路径标识符一样,索引可以通过节点的语义路径标识符来对 XML文档集合中的节点进行索引。这样的索引在此称作语义感知索引。 具有语义等价路径的节点被索引到相同的语义路径标识符,即语义索引的 可用于优化查询并从具有语义等价异质名称的节点取回XML数据的方 面。在XML数据仓库的背景下来说明这是如何完成的,XML数据仓库包 括针对存储和查询XML文档而配置和/或增强的对象/关系数据库服务器。 数据仓库/数据库服务器上的XML存储
根据一个实施例,XML数据仓库由针对存储和査询XML文档而配置 和/或增强的对象/关系数据库服务器构成。在这样的数据库服务器中, XML文档可以被存储在表的一行中,并且XML文档的节点存储在该行中 的各列中。整个的XML文档或其片断也可以存储在一列中的lob (大对 象)中。XML文档也可以作为数据库中对象的分级结构被存储;每个对象是对象类的实例并且存储XML文档的一个或多个要素。对象类例如定 义与要素相对应的结构,并且包括对表示要素的直接后代的对象的引用或
指针。数据库系统中保存XML值的表和/或对象在此称作基本表或对象。
对象一关系数据库服务器执行这样的查询,其至少部分地符合诸如
XQuery/XPath之类的XML标准以及诸如SQL/XML标准之类的其他标准 (参见INCITS/ISO/IEC 9075-14:2003,该文献通过引用被结合于此)。 出于展示的目的,将通过参考数据库服务器形式的数据仓库并且通过 参考由这样的数据库服务器用于存储XML数据的基本数据结构来说明本 发明的实施例,该数据库服务器包括针对存储和查询XML文档而配置和/ 或增强的对象/关系数据库服务器。然而,本发明的实施例并不局限于这样 的数据仓库。 索引
根据一个实施例,数据库服务器维护对XML文档集合进行索引的 "逻辑索引"。逻辑索引可以包含协同地用于访问另一数据体(例如一个 或多个XML文档的组)的多个结构。根据本发明的一个实施例,逻辑索 引在此被称作XML索引,并且包括路径表,该路径表包含关于XML文档 集合中节点的分级结构的信息并且可以包含节点值。逻辑索引可以包括其 他索引,这些其他索引包括对路径表进行索引的有序索引。有序索引包含 基于索引键而被排序了的条目。
图1示出根据一个实施例的XML索引的路径表102。路径表包含关于 XML文档的集合的分级信息。通过参考文档Dl和D2来示出路径表 102。
路径表102包括列RID (R标识符)、LOCATOR (定位符)、 VALUE (值)、ORDERKEY (命令键)、PATHID (路径标识符)和 SEMANTIC PATHID (语义路径标识符)。路径表102中的行各自对应于 包括文档Dl和D2的XML文档集合中的节点。列RID包括行的行标识 符。对于路径表102中特定行的节点,行标识符标识基本表中包含该节点 的行。路径表102的一组条目标识行Rl,其将文档Dl的节点保存在LOB 列中。条目103对应于文档D1中的节点/Purchase Order/Addr。路径表102的另一组条目标识行R2,其包含文档D2的节点。条目104对应于文档 Dl中的节点/Purchase Order/Address。
列LOCATOR包含节点定位符,节点定位符是指示XML文档的数据 表示中的节点位置的值。例如,对于表示XML文档的文本流,节点定位 符可以是表示文本流中表示该节点的文本的开始字节位置的值。作为另一 示例, 一组相关对象可以表示XML文档的节点。节点定位符可以是对表 示该节点的对象的引用。
列VALUE包含节点的值。可替代地,路径表可以省略保存节点值的 列。可以通过从节点定位符所标识的位置取回这些值来获得它们。
列PATHID保存路径标识符。对于条目及其各自的节点,列PATHID 保存节点的路径标识符。对于节点条目Purchase/Order/Addr, PATHID保 存值"12/23"。对于条目Purchase/Order/Address , PATHID保存值 "12/24"。
歹!j SEMANTIC PATHID保存语义路径标识符。对于条目及其各自的 节点,SEMANTIC PATHID保存节点的语义路径标识符。因为 Purchase/Order/Addr和Purchase/Order/Address具有语义等价路径,所以列 SEMANTIC PATHID中它们各自的语义路径标识符是相同的,即 "12/25"。
针对标签名称操作注册语义映射
用户可以针对XML文档的集合向数据仓库注册语义映射,从而使数 据仓库根据所注册的语义映射,以语义感知的方式对XML文档执行标签 名称操作。根据一个实施例,注册在创建语义感知索引的过程期间发生。 例如,为了创建语义索引,用户向数据库服务器发出DDL ("数据定义语 言")命令以创建用于XML文档集合的XML索引。该命令涉及由数据库 服务器所存储的、表示语义映射的XML文档。响应于接收到命令,数据 库服务器执行命令以基于所注册的语义映射来创建语义感知索引。数据库 服务器随后基于并根据语义映射来执行标签名称操作。当文档被添加到通 过语义感知索引而进行索引的XML集合时,该索引根据语义映射而被维 护。对査询的语义感知改写
图2示出查询改写操作,其中数据库服务器改写查询QP以使得查询 以语义感知的方式被计算。
用户针对包括XML文档Dl和D2的XML文档集合发出査询QP。査 询QP包括具有参数值'SEMATIC一AWARE,的extractvalue函数,该参 数值HEMATIC—AWARE'指定了査询QP将以语义感知的方式被评估。 诸如査询计算之类的语义感知处理可以以各种方式被指示;本发明并不局 限于任何特定的方式。语义感知处理可以在整个系统范围内被指定;例 如,用户可以指定针对XML文档集合所发出的所有査询都应当经过语义 感知处理。语义感知处理可以在会话层面上被指定,例如通过用户与数据 库服务器建立会话,或者通过如凭借査询QP而进行了说明的显性査询参 数。
因为片段XA已经作为针对XML集合的语义映射而被注册到了数据 库服务器,所以语义感知改写基于该语义映射和路径表102。
在步骤200,查询QP被改写为查询QP',该查询QP'查找与 extmctvahie函数所提供的路径的语义等价路径标识符相匹配的条目。语义 等价路径标识符是'12/25'。该语义等价路径标识符是基于针对XML集 合所注册的语义映射而生成的。应注意,即使文档内的实际路径是 /PurchaseOrder/Addr (而非/PurchaseOrder/Address),也通过查询QP,来选 出文档D2。 其他实施例
如之前所提到的,所描述的方法可应用于各种形式的标签名称操作, 并且并不局限于查询计算或求值。标签名称操作的另一示例是模式验证。 模式验证确定XML文档是否符合XML模式。
XML模式定义特定类型的XML文档的结构。例如,XML模式可以 指定XML文档中所包含要素的名称,XML文档中所包含要素之间的分级 关系,以及XML文档中所包含值的类型。管理XML模式的标准包括 XML Schema, Part 0, Part 1, Part 2, W3C Recommendation, 2 May 2001 (该 文献的内容通过引用被结合于此),XMLSchemaPartl: Structures, SecondEdition, W3C Recommendation 28 October 2004 (该文献的内容通过引用被 结合于此),以及XML Schema Part 2: Data Types, Second Edition, W3C Recommendation 28 October 2004 (该文献的内容通过引用被结合于此)。
在语义感知模式验证的情况下,与XML模式中所定义的节点具有语 义等价名称的特定节点被视为相同节点,即使该特定节点的真实名称与由 模式所定义的节点的不同。基于诸如由片断XA所表示的语义映射之类的 语义映射来确定语义等价物。
例如,模式可以定义XML文档包含作为〈purchase order〉的子要素的 要素々ddress、在不进行语义感知处理的情况下,文档Dl因为包含不同 的然而语义等价的要素〈AddP而不被视为符合XML模式。在进行语义感 知处理的情况下,文档D1被视为符合XML模式,因为基于语义映射,要 素〈Addr〉被视为等同于〈Address〉。
硬件概述
图3是示出其上可以实现本发明实施例的计算机系统300的框图。计 算机系统300包括总线302或者用于传送信息的其他通信机制,以及与总 线302耦合用于处理信息的处理器304。计算机系统300还包括耦合到总 线302用于存储信息和待由处理器304执行的指令的主存储器306,例如 随机存取存储器(RAM)或其他的动态存储设备。主存储器306还可以用 于在执行待由处理器304执行的指令期间存储临时变量或其他中间信息。 计算机系统300还包括耦合到总线302用于为处理器304存储静态信息和 指令的只读存储器(ROM) 308或者其他的静态存储设备。诸如磁盘或光 盘之类的存储设备310被设置并耦合到总线302用于存储信息和指令。
计算机系统300可以经由总线302耦合到用于向计算机用户显示信息 的、诸如阴极射线管(CRT)之类的显示器312。包括字母数字和其他键 的输入设备314被耦合到总线302用于向处理器304传送信息和命令选 择。另一种类型的用户输入设备是用于向处理器304传送方向信息和命令 选择的并且用于控制光标在显示器312上的移动的、诸如滑鼠、轨迹球或 光标方向键之类的光标控制器316。输入设备通常在两个轴(第一轴(例如X)和第二轴(例如y))上具有两级自由度,这使得设备能够在平面 上指定位置。
本发明涉及对用于实现在此所描述的技术的计算机系统300的使用。 根据本发明的一个实施例,由计算机系统300响应于处理器304执行主存 储器306中所包含的一个或多个指令的一个或多个序列来执行那些技术。 这样的指令可以从诸如存储设备310之类的另一计算机可读介质被读入到 主存储器306中。执行主存储器306中所包含的指令序列使处理器304执 行在此所描述的处理步骤。在替代实施例中,可以使用硬连线电路来替代 软件指令的组合从而实现本发明。因此,本发明的实施例并不局限于硬件 电路和软件的任何特定组合。
这里使用的术语"机器可读介质"指参与提供使机器以特定方式进行 操作的数据的任何介质。在一个通过使用计算机系统300来实现的实施例 中,例如在向处理器304提供待执行的指令时涉及了各种机器可读介质。 这样的介质可以采取各种形式,包括但并不局限于非易失性介质、易失性 介质和传输介质。非易失性介质例如包括诸如存储设备310之类的光盘或 磁盘。易失性介质包括诸如主存储器306之类的动态存储器。传输介质包 括同轴线缆、铜线和光纤,其包括含总线302的导线。传输介质还可以采 用声波或光波的形式,例如在无线电波和红外数据通信期间生成的那些 波。所有这些介质必须是有形的以使得由介质所承载的指令能够被将指令 读入到机器中的物理机制检测到。
机器可读介质的常见形式例如包括软盘、软磁盘、硬盘、磁带或任何 其他的磁性介质,CD-ROM或任何其他的光介质,穿孔卡片、纸带或任何 其他的有孔图案的物理介质,RAM、 PROM、 EPROM、 FLASH-EPROM 或任何其他的存储芯片或盒式磁带,以及如此后所描述的载波或任何其他 的计算机可从其进行读取的介质。
各种形式的机器可读介质可以涉及将一个或多个指令的一个或多个序 列承载到处理器304用于执行。例如,指令可以最初被承载在远程计算机 的磁盘上。远程计算机可以将指令载入其动态存储器并且通过使用调制解 调器经由电话线来发送指令。计算机系统300本地的调制解调器可以接收电话线上的数据并且使用红外发射机将数据转换为红外信号。红外检测器可以接收红外信号中所承载的数据并且适当的电路可以将数据置于总线
302上。总线302将数据承载到主存储器306,处理器304从主存储器306取回并执行指令。由主存储器306所接收到的指令可以在被处理器304执行之前或之后,选择性地被存储在存储设备310上。
计算机系统300还包括耦合到总线302的通信接口 318。通信接口318提供耦合到网络链路320的双向数据通信,网络链路320连接到本地网络322。例如,通信接口 318可以是用于将数据通信连接提供到相应类型的电话线的集成服务数字网络(ISDN)卡或者调制解调器。作为另一示例,通信接口 318可以是用于将数据通信连接提供到兼容的LAN的局域网(LAN)卡。还可以实现无线链路。在任一种这样的实现方式中,通信接口 318发送并接收承载表示各种类型的信息的数字数据流的电、电磁或光信号。
网络链路320通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路320可以通过本地网络322提供到主机计算机324的连接,或者到由因特网服务供应商(ISP) 326所运营的数据设备的连接。ISP 326接着通过万维分组数据通信网(现在通常称作"因特网")328来提供数据通信服务。本地网络322和因特网328均使用承载数字数据流的电、电磁或光信号。承载去向和来自计算机系统300的数字数据的、通过各种网络的信号和网络链路320上的并且通过通信接口 318的信号是传输信息的载波的示例形式。
计算机系统计算机系统300可以通过(一个或多个)网络、网络链路320和通信接口 318来发送消息并且接收包括程序代码的数据。在因特网的示例中,服务器330可能通过因特网328、 ISP 326、本地网络322和通信接口 318来发送所请求的应用程序代码。
所接收到的代码当其被接收到时就可以被处理器304执行,和/或被存储在存储设备310或其他的非易失性存储器中用于随后执行。以这种方式,计算机系统300可以获得载波形式的应用代码。
在前述的说明书中,通过参考大量具体细节描述了本发明的实施例,这些具体细节可能随实现方式的不同而不同。因此,本发明的本质以及申请人所希望的本发明的本质的、唯一且排他的指示物是从本申请发布的权利要求组,在这样的权利要求发布的具体形式中,包括任何后续的修正。在此明确提出的对这样的权利要求中所包含的术语的任何定义应当覆盖如权利要求中所使用的这些术语的含义。因此,没有明确记载在权利要求中的任何限制、要素、性质、特征、优点或属性都不应当以任何方式来限制这些权利要求的范围。因此,说明书和附图被视为说明性的而非限制性的。
权利要求
1.一种方法,包括由计算机实现的以下步骤存储将规范标签名称映射到第一节点的第一名称和与所述第一名称不同的第二节点的第二名称两者的语义映射,其中,XML文档的集合包括所述第一节点和所述第二节点;并且基于所述语义映射,通过将所述第一名称和所述第二名称视为相同名称来执行标签名称操作。
2. 根据权利要求1所述的方法,其中,所述标签名称操作是计算针对 所述XML文档的集合而发出的査询。
3. 根据权利要求1所述的方法,其中,所述标签名称操作包括模式验证。
4. 根据权利要求1所述的方法,其中,所述标签名称操作由管理对所 述XML文档的集合的访问的数据仓库来执行。
5. 根据权利要求4所述的方法,其中,所述由计算机实现的步骤还包括接收对表示所述语义映射的数据进行注册的请求;以及 响应于所述请求,将所述数据作为所述语义映射进行注册。
6. —种方法,包括由计算机实现的以下步骤对于XML文档的集合中的多个节点的每个节点,基于语义映射来生 成语义路径标识符;其中,所述多个节点包括第一节点和第二节点;其中,第一名称与所述第一节点或者所述第一节点的祖先节点相关联;其中,第二名称与所述第二节点或者所述第二节点的祖先相关联; 其中,所述语义映射将规范标签名称映射到所述第一名称并且映射到 所述第二名称;其中,针对所述第一节点和所述第二节点生成的语义路径标识符是相 同的。
7. 根据权利要求6所述的方法,其中,所述每个节点的语义路径标识符包括用于所述每个节点的路径中的每 个节点名称的代码;并且所述第一名称的代码和所述第二名称的代码是相同的。
8. 根据权利要求6所述的方法,所述由计算机实现的步骤还包括 创建通过针对所述多个节点而生成的语义路径标识符来对所述多个节点进行索引的索引。
9. 根据权利要求6所述的方法,其中,由数据库服务器来管理所述XML文档的集合,所述由计算机实现的步骤还包括接收针对所述XML文档的集合而发出的査询,所述査询指定路径;并且基于所述路径,数据库服务器改写所述查询以对所述索弓I进行访问。
10. —种承载一个或多个指令序列的计算机可读介质,所述一个或多个指令序列在被一个或多个处理器执行时使所述一个或多个处理器执行在 权利要求1中所记载的方法。
11. 一种承载一个或多个指令序列的计算机可读介质,所述一个或多 个指令序列在被一个或多个处理器执行时使所述一个或多个处理器执行在权利要求2中所记载的方法。
12. —种承载一个或多个指令序列的计算机可读介质,所述一个或多个指令序列在被一个或多个处理器执行时使所述一个或多个处理器执行在权利要求3中所记载的方法。
13. —种承载一个或多个指令序列的计算机可读介质,所述一个或多 个指令序列在被一个或多个处理器执行时使所述一个或多个处理器执行在 权利要求4中所记载的方法。
14. 一种承载一个或多个指令序列的计算机可读介质,所述一个或多 个指令序列在被一个或多个处理器执行时使所述一个或多个处理器执行在 权利要求5中所记载的方法。 _
15. —种承载一个或多个指令序列的计算机可读介质,所述一个或多 个指令序列在被一个或多个处理器执行时使所述一个或多个处理器执行在权利要求6中所记载的方法。
16. —种承载一个或多个指令序列的计算机可读介质,所述一个或多 个指令序列在被一个或多个处理器执行时使所述一个或多个处理器执行在 权利要求7中所记载的方法。
17. —种承载一个或多个指令序列的计算机可读介质,所述一个或多 个指令序列在被一个或多个处理器执行时使所述一个或多个处理器执行在权利要求8中所记载的方法。
18. —种承载一个或多个指令序列的计算机可读介质,所述一个或多个指令序列在被一个或多个处理器执行时使所述一个或多个处理器执行在权利要求9中所记载的方法。
19. 一种存储XML文档的集合中的多个节点的索引的计算机可读介质,其中所述多个节点的每个节点与包括所述每个节点的确定路径相关联; 所述索引的每个条目对应于所述多个节点的特定节点,并且使所述节 点与表示所述特定节点的确定路径的语义路径标识符相关联; 所述多个节点包括第一节点和第二节点;第一名称与所述第一节点或者所述第一节点的祖先节点相关联; 第二名称与所述第二节点或者所述第二节点的祖先节点相关联-, 所述第一节点和所述第二节点各自的语义路径标识符是相同的。
20. 根据权利要求10所述的计算机可读介质,其中, 所述每个节点的语义路径标识符包括用于所述每个节点的路径中的每个节点名称的代码;并且所述第一名称和所述第二名称各自的代码是相同的。
全文摘要
XML文档的语义感知处理在执行依赖于要素名称的操作(例如查询和模式验证)时,将具有不同名称然而在语义上等价的要素视为相同的要素。语义感知处理基于这样的映射,其将一组语义等价名称的每个要素名称映射到“规范标签名称”。
文档编号G06F17/30GK101517572SQ200780034627
公开日2009年8月26日 申请日期2007年7月9日 优先权日2006年7月18日
发明者拉维·穆尔蒂 申请人:甲骨文国际公司