用于动态生成XQuery的方法和XQuery生成器的制作方法

文档序号:6467734阅读:189来源:国知局
专利名称:用于动态生成XQuery的方法和XQuery生成器的制作方法
技术领域
本发明涉及一种用于为存储有多个非XML文档的XML数据库动态生 成XQuery的方法和XQuery生成器。
背景技术
XML数据库是现代信息社会的最重要的技术工具之一。这种数据库 的高度灵活性允许以高效的方式存储和检索数据。通常,XML数据库设 计用于XML文档。然而,在现有技术中还已知的是,扩展XML数据库以 使得它能够存储其它类型的文档。例如,申请人的XML数据库Tamiiio适 于存储非XML文档,例如纯文本文件、MS Office文件、PDF文件、图像 和音频文件等。为了使得这种非XML文档能够在未来从数据库检索到, 已知的是分析要存储的任何非XML文档并且提取元数据,以用于生成对 应于非XML文档的所谓XML影像文档。使用XQuery,可在随后搜索这 种影像XML文档,并且可检索对应的非XML文档。
因为XQuery最初仅具备有限的文本检索(TR)功能,现有技术中已 知的是用附加的TR索引和专用的TR査询引擎来扩展其能力。例如,申 请人的"Tamino" XML数据库中的XQuery版本提供有常见TR功能包, 像"包含"、"附近"、或"邻近"。
XQuery生成器是用于数据库的工具应用,通常包含在数据管理和审 査包中。XQuery生成器通过向用户遮掩查询语言有时复杂的语法和语义 来提高用户的生产力。代替地,给用户提供对査询语言的受限制功能进行 的支持GUI的访问,使他能够在不懂查询语言的语法和语义的情况下完成 其大部分的例行工作。在US 2006/0101002中公开了现有技术的这种 XQuery生成器的一个示例。
但是,当搜索大量未知并且未分类的数据,尤其是文本数据时,现有技术的XQuery生成器是不适合的,因为它们仍然要求用户的高级技能。 因此本发明在基于该技术问题一个方面中用来便利在这种文档中进行搜索 并且同时为用户保持尽可能多的灵活性,以便他可从非XML文档的集合 中得到所有期望的信息。

发明内容
在本发明的一个方面中,由根据权利要求1的方法解决该问题。在一 个实施例中,提供了一种用于为存储有多个非XML文档的XML数据库动 态生成XQuery的方法,每个非XML文档具有在XML数据库中的相应影 像XML文档,其中,所述方法包括以下步骤
-提供XQuery代码的多个静态单元,这些静态单元是根据非XML文 档来预定义的。
-组合一个或多个具有来自用户的动态输入的静态单元来生成 XQuery o
结果,用户可容易地生成XQuery,其特别适于某组非XML文档(及 其相应影像XML文档),这通过灵活地组合特别适合的预定义的静态 XQuery代码单元来实现。例如,如果非XML文档是文本文档,预定义的 代码单元可包含TR函数,其接着可容易地由用户按需进行组合或调整。
为实现所描述的方法,"数据架构"起先可预定义静态代码单元并接 着让用户组合这些单元,并且如果期望的话,甚至为由此得到的查询添加 一些自由格式部分。因此这种数据架构可充当在缺乏经验的用户和将由 XQuery检索的数据之间的媒介,类似于便利访问图书馆的书的图书管理 员。在一个实施例中通过给用户呈现GUI得到来自用户的动态输入,该 GUI提供了与一个或多个静态单元相关的一个或多个按钮。
在一个实施例中,在步骤a中提供了一个FLWOR表达式,其包括根 据非XML文档来预定义的静态for子句。该for子句表示包含将在其上执 行査询的文档的集合和文档类型。在影像XML文档上执行XQuery。
FLWOR表达式可进一步包括根据非XML文档来预定义的静态return 子句。该静态return子句可包含关于结果集的相关信息,即相应的ino:id(s)、 ino:docname(s)等等。此外,FLWOR表达式可包括一个静态let 子句用于声明变量,例如非XML文档的创建时间。最后FLWOR表达式 可包括一个where子句,其包括用于XQuery的至少一个动态定义的用户 判别式。该where子句不限制为单个判别式而是可包括由布尔操作符组合 的多个用户判别式。
在一个实施例中,非XML文档是文本文档,尤其是Microsoft Office 文档和/或Adobe PDF文档。每个文本文档可包括预定义文本部分和自由 格式文本。
根据另一方面,本发明涉及一种用于存储有多个非XML文档的XML 数据库的XQuery生成器,每个非XML文档具有在XML数据库中的相应 影像XML文档,该XQuery生成器适于执行上述方法中的任意一个。这种 XQuery生成器可以是较大数据库管理系统(DBMS)的一部分。
最后,提供了包括适于执行所述方法中的任意一个的指令的计算机程序。


图l:其中可实现本发明的实施例的XML数据库系统的图示;和
图2:由本发明的实施例生成的XQuery的图示。
具体实施例方式
在下面,描述了本发明的方法的示例实施例。将会理解,可以通过许 多可替换的方式实现下面描述的功能,例如,在单个数据库服务器上、在 多个数据库服务器的分布式布置中、使用整体存储器或外部存储器等等。 这些实现细节对本发明来说都不是本质的。
图1给出了示例XML数据库系统1的概观。在图1中系统1通常用 于存储和检索XML文档(未示出)。但是图l的XML数据库系统还能够 处理非XML文档,例如图1中示出的示例文件10。文件IO可以是任何类 型的非XML文档,例如各种格式的文本文件(WORD、 PDF)、视频文 件、音频文件、其组合、图像、诸如测量结果之类的二进制数据的任意集合等。
为了处理文件10,在一个实施例中XML数据库系统1包括文档处理 器2。文档处理器2驱动存储文档的过程。如图1左侧上虚线箭头所示 的,文件IO存储在存储装置3中,例如XML数据库系统1的RAID阵列 (未示出)或类似存储设备。任何本领域技术人员已知的易失或非易失性 存储装置可用作XML数据库系统1的存储装置3。
此外,文件10被转发到模式处理器4。图1右侧示出的XML数据库 系统1的模式处理器4和另外元件的操作用来处理文件10,使得它可类似 其它存储在数据库中的XML文档被搜索和检索。在图1的示例实施例 中,模式处理器4提供关于将被调用的服务器扩展5的信息。要注意,服 务器扩展5也可被集成到整个XML数据库系统的数据库服务器的标准处 理引擎中,并且不必作为分离实体提供。但是,提供分离的服务器扩展5 便于升级已有的XML数据库系统使其具有处理诸如文件10之类的非 XML文件的功能。
服务器扩展5处理文件10并生成影像XML文档20的内容。根据文 件10的类型,可执行不同的步骤来生成影像XML文档20。例如,可在图 像文件10上执行图像处理,所述图像处理导致输出关于该图像的元数 据,例如其分辨率、颜色分布或任何其它类型的图像相关信息。可类似地 处理其它类型的非XML文件以生成影像XML文档20的任何种类的元数 据。使用影像XML文档20,可执行搜索,这允许从数据库中快速检索相 应的非XML文件10。
上面说明的XML数据库系统的当前优选实施例可以Tamino的名称从 申请人:得到。申请人的Tamino数据库系统的服务器扩展称为Tamino非 XML分度器。它将非XML文件(例如Microsoft Office文档或Adobe PDF 文档)集成到Tamino数据库系统中。当在Tamino数据库集合(其中 Tamino非XML分度器为活动的)中存储或更新非XML文件时,Tamino 存储两个对象,即非XML文件自身及其影像文件,所述影像文件包括包 含在文件中的原始数据,例如在Microsoft Word文件中的纯ASCII文本和 从该文件中抽取的元数据。用于检索影像XML文档及相应非XML文档的XQuery通常包含 FLOWR表达式。事实上,FLWOR表达式是XQuery的核心,因为它们允 许逻辑地构造查询。FLWOR表达式包含由关键词for、 let、 where和 retum引入的子句。FLWOR表达式以for和let子句中的至少一种开始,其 后可跟有where子句并且以return子句结束。在图2中示出了所生成的包 括四个子句的XQuery的示例。
如果很可能重复用于不同XQuery的FLWOR表达式的子句是静态 的,即被预定义,那么对不熟悉该语言的语法和语义的用户而言,生成这 种Xquery变得相当容易。在图l的示例中,for子句30是静态的并且表示 包含将在其上执行査询的文档的集合和文档类型。子句30依赖于给定的 非XML文档集合并且对许多要在该集合上执行的不同XQuery将是相同 的。Let子句31也以静态方式使用;其用于变量声明,例如 CreationDate。
Where子句32动态聚集与不同的用户定义判别式相对应的XQuery碎 片。XQuery碎片可由用户动态创建或者还可预定义并且仅由用户选择。 在一个XQuery中可存在多于一个的where子句32 (图2中未示出)。此 外,可使用布尔操作符在一个where子句内组合一个或多个条件,从而为 用户提供高度灵活性。使用where子句32,可定义先前产生的元组必须满 足的条件。如果条件得到满足,则保留该元组,如果没有,则丢弃该元 组。
静态return子句33包含关于结果集的相关信息,即相应的ino:id(s)、 ino:docname(s)等等。它确定了整个FLOWR表达式的结果。它在对where 子句32求值之后为每个保留的元组所调用。可格式化返回值。此外,对 于给定数据集合上的许多XQuery, return子句33是相同的使得该子句也 可以是静态的。
用于所描述机制的优选领域涉及具有存储在Tamino (或相似XML数 据库系统)中的相当大量的文本的文档。这里,该机制与"正常" XQuery特征组合,以便于完全使用Tamino的文本检索能力。
例如,该机制可用于将自由格式文本与预定义的固定格式字段,或与自由格式文本内部的预定义标准文本组合的文档。 一个重要的示例是由公 司的人力资源部在履历(CV)文档中进行的搜索。通常一份CV是MS
Word或PDF文档,描述了教育、技能以及按照先前项目的职业生涯。另 一个相关示例是在任何种类的保健系统内的病人数据记录中进行的搜索。 在两种情况下,可能存在上万个半构造的文本文档需要管理。
为了实现所描述的根据本发明的XQuery生成器的实施例中的方法, "数据架构"最初可准备一组固定格式的XQuery,其对非XML文档的各 个集合是最适合的并且接着使其对用户可访问。例如,可提供具有相应选 择按钮的图形用户接口 (GUI)。除了选择固定格式的Xquery之一外,用 户可使用如上所描述的FLOWR表达式生成新的XQuery,例如通过任意 组合GUI的按钮选择和/或通过添加一些自由格式查询来生成新的 XQuery。
用户不必审査非XML文档来生成如上所说明的有意义的XQuery。如 果数据架构确实具有非XML的内部结构的某些知识,这将有助于预定义 FLOWR表达式部分。然而,这不是必须的。通常,本发明允许将所有非 XML文档"原样"转储到XML数据库系统(例如Tamino)中,并且所 描述的机制允许对其执行搜索。
权利要求
1. 用于为存储有多个非XML文档(10)的XML数据库(1)动态生成XQuery的方法,每个非XML文档都具有在XML数据库(1)中的相应影像XML文档(20),所述方法包括以下步骤a. 提供XQuery代码的多个静态单元(30、33),所述静态单元(30、33)是根据所述非XML文档(10)来预定义的。b. 将一个或多个静态单元(30、33)与来自用户的动态输入(32)相组合,以生成所述XQuery。
2. 根据权利要求1所述的方法,其中在步骤a中提供了一个FLWOR 表达式,包括根据所述非XML文档来预定义的静态for子句(30)。
3. 根据权利要求2所述的方法,其中所述FLWOR表达式进一步包 括根据所述非XML文档来预定义的静态return子句(33)。
4. 根据权利要求2或3中任意一个所述的方法,其中所述FLWOR表 达式包括一个where子句(32),其包括用于所述XQuery的至少一个动 态定义的用户判别式。
5. 根据权利要求4所述的方法,其中所述where子句包括由逻辑操作符组合的多个用户判别式。
6. 根据前述权利要求之一所述的方法,其中所述非XML文档(10) 是文本文档(10),尤其是Microsoft Office文档和/或Adobe PDF文档。
7. 根据权利要求6所述的方法,其中每个文本文档(10)包括自由 格式文本和可能预定义的文本部分。
8. 根据前述权利要求中任意一个所述的方法,其中通过给所述用户 呈现GUI得到来自所述用户的动态输入,所述GUI提供了与所述一个或 多个静态单元相关的一个或多个按钮。
9. 用于存储有多个非XML文档(10)的XML数据库(1)的 XQuery生成器,每个非XML文档(10)具有在所述XML数据库(1)中 的相应影像XML文档(20),所述XQuery生成器适于执行前述权利要求 1-8中任意一个所述的方法。
10. 包括根据权利要求9所述的XQuery生成器的数据库管理系统。
11. 包括适于执行如前述权利要求1-8中任意一个所述的方法的指令 的计算机程序。
全文摘要
公开了用于动态生成XQuery的方法和XQuery生成器。具体而言,提供了一种用于为存储有多个非XML文档(10)的XML数据库(1)动态生成XQuery的方法和XQuery生成器,每个非XML文档具有在XML数据库(1)中的相应影像XML文档(20),包括以下步骤-提供XQuery代码的多个静态单元(30、33),静态单元(30、33)是根据非XML文档(10)来预定义的。-将一个或多个静态单元(30、33)与来自用户的动态输入(32)相组合,以生成所述XQuery。
文档编号G06F17/30GK101419613SQ20081017341
公开日2009年4月29日 申请日期2008年10月22日 优先权日2007年10月22日
发明者扎伊纳布·加茨乌丁·萨依德, 阿日俊·本那杰 申请人:软件股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1