XML文档近似检索系统设计
2014-02-19张硕石成
张硕 石成
摘 要:本系统主要是实现了一种找寻近似结果的方式,它是一种使用基于代价的查询转换的树型查询方法,通过调节转化的代价,能适应不同类型的XML文档。
关键词:MSXML;DOM;XML;近似检索
前言
今天,XML语言的使用已经覆盖了各行各业,其内容的庞大和结构的复杂使用户不能轻易的全面掌握整个文档。了解到XML文档的异构性和复杂性,发现现有的XML文档检索系统已不能够满足用户需求,急需更进步更人性化的文档检索系统。本系统就是在XML文档精确检索的基础上发展起来的近似检索系统,通过引入XML文档,实现查询条件的模糊查找,为用户提供相似度最大的查询结果。
1 系统简介
本系统避免了一般XML文档检索系统给用户造成的使用上的困难性,形成了方便实用,为用户提供最大便捷性的文档近似检索系统。它采用VC++开发工具,设计了方便快捷的用户使用界面,用户使用用户名和密码登录本系统,可以对本系统进行各项操作。系统具有友好的使用界面,能够让用户引入用户希望查询的XML文档,为了减轻用户的使用负担,不需要用户对整个XML文档了解,只需要清楚要查询的那部分结构信息,在查询命令输入界面内输入查询命令。为了能够实现近似的检索,需要用户输入相应节点的插入,删除,更名代价值。这样,将用户输入的查询表达式进行适当的插入节点或删除节点或将节点更名等转化后,变为与引入的XML文档内的某一段内容相符。通过不同的转换,能够得到不同的结果,将最小代价和也就是系统认为最相近的查询结果返回给用户。这样实现了文档的近似检索。
关于XML文档的近似性,其主旨是如果没有精确匹配文件被找出, 根据他们的相似性应当将其查询的最相似结果应该找出.
关于用户输入的查询命令,例如:\cd[title["piano" and "concerto"] and composer["rachmaninov"]],在设计时,将属性名和属性值同样对待,作为元素节点。将其与用户添加的XML文本进行对照,找到相似的那部分。如图1所示。
图1 嵌入树模型
在转化的过程中,有时候不可能正好一一对照。有可能多一个节点,少一个节点或者有一个节点的名称不相符。这就要求系统能对不相符的节点进行近似转化。如图2所示。
添加节点、删除节点、更名节点对系统来说是有代价大小的,不同的节点的代价值也是不相同的。例如:将cd转化为dvd这就是针对cd节点的更名,用户需要输入相对节点的代价值。如果设计这种代价很小,那么对于系统来说将其更名是非常容易的,更名后的转化结果与原文件的相似度是最大的。相反,如果设置这个代价值为无限大,那么就是告诉系统这个节点不能被更名。同样对于节点的添加、删除有一样的意义。用户将自定义节点及对应的代价值,系统把输入的这些数据系统进行后台计算。系统设定所有没有在表中列出的删除和更名代价都是无限大,所有更名的插入代价都是1。如表1所示。
表1 代价输入表
2 系统功能
2.1 系统提供了新建工程、打开工程和保存工程的功能。用户在第一次使用此系统时,需要新建工程;对XML文件检索完毕后如果用户想要在以后查询此次检索结果,可以将此次的检索工程进行保存,需要输入保存工程的工程名;在今后需要调用以前保存过的工程时,要打开用户所需的工程。
2.2 系统提供了对XML的管理功能。用户可以通过系统对需要检索的XML文件进行添加或删除操作,并且提供了友好的文本显示界面,对添加的XML文件系统会自动对其进行遍历以文本形式将每个节点显示给用户,其方便简洁性供用户可以很快对新添加的XML文件有一个整体的了解。
2.3 为了实现用户的近似查询,系统除了提供查询语句输入功能外还提供了节点的代价值输入功能。实现近似查询关键在代价值的定义,通过用户定义不同节点的插入代价、删除代价或更名代价,能够将用户输入的查询语句进行有代价的转化,适当的转化能够使原输入语句变为与引入XML文档中的一部分内容相符的结果,这就实现了用户的近似查询。不需要用户非要清楚的记住精确的路径表达式,也能够通过不同节点的转化达到成功查询的目的。
2.4 随着用户的要求不断增多,系统提供了功能的扩展,可以及时将用户的要求加进系统中。其虽然增加了新的功能,但并不影响系统原有的功能。系统将每一个功能做成一个功能模块,新增加的功能变成了新的功能模块,各个功能模块之间由主框架进行连接,使系统具有良好的扩展性。
2.5 由于本系统能够直接对数据库进行添加修改操作,不良的操作可能对数据库造成不良的后果。因此,需要对用户进行身份验证,只有获得用户名和密码的用户才能够对系统进行操作。没有输入正确的用户名和密码的用户将无权使用本系统,系统将自动关闭。另外,由于在编写程序的时候,各个功能被做成了对应的功能模块,各个功能模块之间没有直接的关联关系,一个功能模块出了问题,不会影响其它的功能模块。每个功能模块提供了容错能力,避免了因为错误操作造成系统或服务的不正常运行。
3 结束语
本系统可以在Windows XP操作系统以上环境中运行,通过用多类不同行业定义的XML文档结构进行测试,能够快速将用户输入节点的代价和检索命令进行转化形成五元组,系统再将五元组进行转化与用户引入的XML文档进行比较,得到最相近的一段XML文本,在显示对话框中显示出来,实现XML文档近似检索的设计目的,为用户的快速查找提供了方便性与时效性。
参考文献
[1]余宏,万常选.面向XML的语义近似检索模型[J].情报,2007(10).
[2]张晓琳.面向对象的XML数据管理技术研究[D].东北大学,2006.