当前位置: 首页 > 专利查询>微软公司专利>正文

查询中间语言的方法和系统技术方案

技术编号:2863766 阅读:190 留言:0更新日期:2012-04-11 18:40
一种计算机系统和方法,其生成了跨越关系和非相关数据源的一个或多个XML语言询问的语义表示。语义中间语言表示明确地描述了一种或多种XML语言询问的含义。语义中间语言可以是具有节点的图形结构,所述节点描述了初始查询的操作。语义图形中赋值给节点的运算符允许初始XML查询的明确定义。语义中间语言可以用来遍及单个或多个数据源执行XML查询。一种方法,包括:接收至少一个询问,为接收到的询问内的每个操作定义至少一个节点对象,利用运算符来变换每个节点对象,以及从运算符生成语义表示。

【技术实现步骤摘要】

本专利技术总体上涉及遍及数据源进行查询的软件的领域,更具体而言,涉及利用中间语言来遍及一个或多个XML或虚拟XML数据源进行查询的软件的领域。
技术介绍
可扩展标记语言(XML)是签署文件格式化标准的万维网协会(W3C),所述文件格式化标准提供了具有人类可读标记的用于标记数据的遗传语法。XML不具有固定的标记集和元素集,因此只要这类标记符合XML标准就允许用户定义它们。可以将数据作为由文本标记围绕的文本串存储在XML文档中。W3C已经以一种称为XML信息集(XML Infoset)的技术规范编纂了XML的抽象数据模型。目前的Infoset根据包含属性的节点描述了XML文档的逻辑结构。尽管XML可能易于以定义明确的格式来描述文档内容,但是仍存在不易描述的其它数据源,这是因为它们的结构与标准文本文档的结构不一致或者是由于其它的非XML可兼容特性的原因。这类数据源的一个例子可能是电子表格或关系数据库。虚拟XML是这样一种概念,即其跨越多种不同形式的数据访问程序设计模型而建立一致性,并允许用户按照他们考虑数据的方式而不是实际存储格式来利用他们的所述数据进行工作。遍及虚拟XML数据进行查询的概念涉及把数据当成仿佛它就是XML一样来对待,而无需实际上曾经把它转换成XML。这一概念中的一个优点就是将XML编码的开销保持到最少。如果虚拟XML情形有这样的优点,即它能够使用询问语言来遍及非XML数据源进行查询,就仿佛该数据源是XML一样,那么是人们所希望的。同样,在实际数据与虚拟XML表示之间的映射具有高保真度也是人们所希望的。实现虚拟XML存在许多的内在挑战。一个问题就是效率。人们仅仅能够利用虚拟XML接口来陈列数据源,比如像XMLReaderTM,然后利用现有的XML查询实施方案(比如XPathNavigatorTM)经该接口进行查询。然而,所有的工作都发生在XML查询引擎中,而不是由数据源本身执行的。举例来说,考虑下列经嵌入在SQL服务器中的结构化查询语言(SQL)来进行的虚拟XML查询sqldatabase(″Northwind″)/Customer[@ID=′ALKFI′]/Order在这次查询中,sqldatabase(″Northwind″)把SQL服务器的Northwind数据库陈列为虚拟XML,然后XPath/Customer[@ID=′ALKFT]/Order选择来自于消费者元素之一的所有指令元素(Order elements)。实施方案可以类似下列这样进行尝试SQLServerMapping map=new SQLServerMapping(″Northwind″);SQDServerXmlReader Data=new SQLServerXmlReader(map);XPathNavigator nav=new XpathNavigator(data,″/Customer[@ID=′ALKFI′]/Order;在这个方法中存在至少两个缺陷。第一,全部映射都是通过XmlReader来执行的,即便只有其一部分是用于查询的。第二个缺陷就是SQL服务器能够比XpathNavigator可以的更加有效地通过ID来选择消费者。注意上面的例子已经XPathNavigator执行所有的工作。对于这一挑战的最佳解决方案可能就是尽可能把更多的查询下载转移到数据源(这里,是SQL服务器数据库)中。然而,这可能会包含显著的查询分析及重写。实现虚拟XML过程中的另一个问题就是XML数据模型未必总是能与下层数据模型及其类型系统很好地保持谐调。一个人能够将所有类型的下层数据源映射到XML类型中,但是这一过程失掉了保真度而且也很低效。此外,一个系统中的类型可能不会明显等同于另一个系统的类型。例如,以XML表示二进制数据(比如图像)需要代价很高地将其转换成XML字符集(例如,base64-编码)。早先试图遍及虚拟XMI进行查询,通过构建两种不同的数据结构来解决上述问题;所述两种数据结构一个用于查询一个用于映射,然后,一前一后地遍历它们以便直接遍及原始数据源产生高效查询,而无需曾经使虚拟XML视图(view)具体化。尽管这个方法最初运行良好,但是由于查询和映像语言复杂度增加而使得开发变得极其困难。查询或映射中的概念往往未直接转换成目标数据模型,并且利用复杂视图构成的复杂查询需要许多语义分析及重写。因此,存在统一表示的需要,以经XML和非XML数据源为XML查询和视图实现虚拟XML。人们期望这样一种方法和系统,其通过将复杂映射变成构成查询的较少复杂问题并经较少复杂映射执行所述问题来实现查询。本专利技术针对上述需要和缺陷,并且利用这里所表述的附加优点来解决它们。专利技术概述本专利技术涉及一种被称为查询中间语言(QIL)的XML中间语言定义,,它表示XML语言查询或视图的含义。QIL是对XML中查询或视图的含义的抽象,并且可以用来执行查询或者可以用作到语言翻译器或编译器的输入,以便执行目标语言中的查询。QIL可以用来遍及相关和非相关数据源进行查询。根据本专利技术的一些方面,QIL是通过接收XML语言询问、为XML语言询问内的每个操作定义至少一个节点对象、利用特定QIL运算符来变换每个定义好的节点对象、然后从节点图形中的运算符生成初始询问的查询中间语言表示来构建的。通常,将QIL语言用作为计算机系统的的一部分,所述计算机系统包括用于XML语言的前端编译器,在其中生成XML查询和视图;QIL发生器和后端引擎,所述后端引擎可以使用XML查询或视图的QIL语义表示来遍及一个或多个数据源进行搜索。所查询的数据源可以是相关数据或非相关数据。前端XML语言的例子是XPath、XSLT、XQuery、DML、OPath和注释概要。后端引擎类型的例子可以是用于查询语言转换器的QIL,在该查询语言转换器中查询语言可以是任何大量的数据搜索语言,仅举几个例子来讲,比如是SQL、MSIL和XQuery。示例性的QIL定义包括一组基于XMLInfoset的明确定义的运算符,所述XMLInfoset可以用作为提供明确的且显式的指令的节点定义运算符,以用来表示XML查询和视图表达式的含义。举例来说,期望的运算符包括元组、文字、布尔运算符、序列运算符、算术运算符、串运算符、值比较运算符、节点比较运算符、函数定义与调用、XML导航、XML组成、XML属性存取器、类型运算符、特定语言的运算符、数据操作、特定运算符和数据源运算符。通过参照附图阅读下列说明性实施例的详述,本专利技术的附加特征和优点将变得明显。附图简要说明当结合附图阅读前述概述及下列优选实施例的详细说明时,将会更好地理解本专利技术。为了举例说明本专利技术,在附图中示出了本专利技术的示例性组成结构;然而,本专利技术不限于所公开的特定方法和手段。在附图中附图说明图1是示出示例性计算环境的框图,在该计算环境中可以实现本专利技术的多个方面;图2是描绘具体化本专利技术示例性方面的示例性功能结构的框图;图3是描绘依照本专利技术实施例的中间语言生成的一些示例性元素的框图;和图4是描绘依照本专利技术实施例的中间语言生成的示例性过程的流程图。说明性实施例详述概观本专利技术的XML中间语言显式地表示查询的含义或语义。将XML中间语言称为查询中间语言(QIL)。XML中间语本文档来自技高网...

【技术保护点】
一种跨越关系和非相关数据源的一种或多种XML语言询问的语义表示方法,包括:接收至少一个询问;为至少一个接收到的询问中的每个操作定义至少一个节点对象;利用运算符来变换至少一个节点对象中的每一个;以及从运算符生成 语义表示;其中所述语义表示显式地描述一个或多个XML语言询问的含义。

【技术特征摘要】
US 2003-6-23 10/601,4441.一种跨越关系和非相关数据源的一种或多种XML语言询问的语义表示方法,包括接收至少一个询问;为至少一个接收到的询问中的每个操作定义至少一个节点对象;利用运算符来变换至少一个节点对象中的每一个;以及从运算符生成语义表示;其中所述语义表示显式地描述一个或多个XML语言询问的含义。2.如权利要求1所述的方法,其中所述语义表示是为目标查询引擎进行解译和执行而形成的中间语言表示。3.如权利要求2所述的方法,其中所述非相关数据源包括文本文档、电子表格和非关系数据库中的一个或多个。4.如权利要求1所述的方法,其中所述生成步骤还包括将接收到的询问的高级操作分解成显式部分。5.如权利要求4所述的方法,其中所述显式部分是跨越多种XML语言公用的。6.如权利要求1所述的方法,其中所述运算符包括以下运算符中的一个或多个特定运算符、数据源、文字、布尔运算符、序列运算符、算术运算符、串运算符、值比较运算符、节点比较运算符、元组空间、函数定义与调用、XML导航、XML组成、XML属性存取器、类型运算符、特定语言的运算符以及数据操作运算符。7.如权利要求1所述的方法,进一步包括形成至少一个节点对象的图形数据结构。8.如权利要求1所述的方法,其中所述至少一个接收到的询问包括XML查询语言和XML视图定义语言中的一种或多种。9.如权利要求1所述的方法,其中所述至少一个接收到的询问包括XPath、XSLT、XQuery、DML、OPath和注释模式询问中的一个或多个。10.如权利要求1所述的方法,其中所述语义语言表示允许XML遍及相关数据的XML视图来进行查询。11.一种用于表示跨越多个数据源的XML查询和XML视图中一个或多个的语义解释器,包括输入端,用于接收形成询问的XML查询和XML视图中的一个或多个;图形结构发生器,用于为询问内的每个操作定义节点对象;翻译器,用于为每个节点对象赋值运算符,其中所述运算符将询问的操作分解成显式部分;和输出端,用于提供显式部分以作为用于表示XML查询和XML视图中一个或多个的中间语言表示。12.如权利要求11所述的语义解释器,其中所述多个数据源包括关系和非相关数据源。13.如权利要求12所述的语义解释器,其中所述非相关数据源包括文本文档、电子表格和非关系数据库中的一个或多个。14.如权利要求11所述的语义解释器,其中所述运算符包括以下运算符中的一个或多个特定运算符、数据源、...

【专利技术属性】
技术研发人员:ML布鲁恩答基CA苏弗尔
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1