CN102033956A - 具有智能提示功能的图形化xml内容和结构查询系统 - Google Patents

具有智能提示功能的图形化xml内容和结构查询系统 Download PDF

Info

Publication number
CN102033956A
CN102033956A CN 201010606470 CN201010606470A CN102033956A CN 102033956 A CN102033956 A CN 102033956A CN 201010606470 CN201010606470 CN 201010606470 CN 201010606470 A CN201010606470 A CN 201010606470A CN 102033956 A CN102033956 A CN 102033956A
Authority
CN
Grant status
Application
Patent type
Prior art keywords
node
step
value
user
query
Prior art date
Application number
CN 201010606470
Other languages
English (en)
Inventor
林春彬
陆嘉恒
Original Assignee
陆嘉恒
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date

Links

Abstract

本发明属于信息技术领域关于智能化的XML数据查询技术,具体的是在提出新的XML图形化查询方法的基础上设计了一套具有智能提示功能的XML查询系统。该系统提供在一个图形化创建查询的界面上,针对标签名称和结点值提供了智能提示功能来引导用户创建查询。从而使用户在不了解XML模式、内容、结构甚至不会写XQuery等查询语言的情况下也能进行XML搜索。系统定义了一个综合考虑查询结果的排序机制,并把对每个结果进行打分后用树的形式展示给用户:1,开发支持图形化拖拽方式创建XML查询语句的界面;2,设计智能提示算法;3,设计对查询结果根据结构和内容信息排序的机制;4,开发为结果打分并以树的显示展示结果的界面。 

Description

具有智能提示功能的图形化XML内容和结构查询系统技术领域[0001] 本发明涉及信息检索或数据查询等应用领域中XML查询的应用,尤其是当用户不 了解要查询的XML文档的内容,结构,模式等信息的情况下的图形化XML小枝查询技术。背景技术[0002] 已有的XML数据库允许用户提交一个XPath或者XQuery来查询相关的结果。这种 信息查询模式需要用户对XML数据库的结构和内容比较了解,而且要对查询语言很熟悉。 如果一个用户对XML 了解很少,则在写查询时他经常会感到困惑,所以他不得不去学习复 杂的DTD或者XML模式从而来了解XML文档的结构。[0003] 为了解决这些问题,学者们已经设计了多种系统旨在简化用户的查询过程。已有 的图形化XML查询系统大致可以分为两类:(i)开发图形化系统支持传统的XQuery语言, 例如XQE,这些系统提供友好的接口来输入XQuery表达式并且作了大量的工作来优化查询 计划。(ii)开发图形化查询语言来把查询转化为SQL或者SQL/XML,例如GLASS,XML-GL, 这些系统提供新的图形化语言来查询XML文档。但是上述这些系统依然要求用户对XML文 档的结构和内容的知识,但是这对于普通用户而言是很困难的,而且随着XML文档越来越 复杂,越来越大,要在查询前事先对文档进行了解是很不合理,很不科学的。而且不利于推发明内容[0004] 为了克服已有XML图形化查询系统要求用户必须对XML文档的结构或者内容了解 的不足,本发明开发新颖的图形化界面来提供XML小枝查询下的智能提示功能,以此来智 能引导用户完成查询条件的创建,并用新的排序公式来对结果进行排序,最后用图形化界 面来直观展示结果。[0005] 本发明首先利用JavMcript+jsp设计了支持图形化方式创建小枝模式的系统。 该步骤A的主要实现步骤包括:A1、实现通过拖拽产生结点。A2、根据B和C返回的列表来 确定结点。A3、通过为结点加边来完成小枝模式的创建。A4、通过增加顺序标志来实现带顺 序的查询。[0006] 其次,本发明提出了智能提示算法来返回标签名称列表。该步骤B主要实现步骤 包括:B1、把正在创建的结点的X,Y坐标通过AJAX发送给服务器。Β2、通过智能提示算法返 回目前可行的标签名称。Β3、为这些标签名称构建tag-trie。[0007] 接着,本发明提出了结点值提示方案。该步骤C主要包括:C1、通过AJAX把n0de_ name中的值发给服务器。C2、通过预处理时的统计信息来来判断该结点下的值的类型:为 数值型还是字符串型,并根据不同类型返回相应的输入框。C3、根据索引找到属于该标签名 的值,并抽取具有代表性的几个来构建value-trie。C4、通过AJAX把用户在node-value中 输入字符发给服务器,服务器会调整抽取的值来构建新的value-trie。[0008] 进一步,本发明设计了新的结果排序公式。该步骤D主要包括:D1、设计考虑内容5的排序公式Sv。D2、设计考虑结构的结果排序公式&。D3、设计公Skore把Sv和&结合 起来对结果进行排序。[0009] 最后,本发明利用Jav必cript+jsp设计了结果展示和打分系统。该步骤E包括: E1、求得结果中各个元素的坐标。E2、用Jav必cript在这些坐标点上相应的图形来表示相 应的元素。E3、用JavMcript为各个元素连接相应的边。E4、用JavMcript绘制相应长度 的进度条来表示公式score的值。[0010] 本发明的有益效果是,提供高效的智能提示功能来改进传统的图形化XML搜索系 统必须要求用户事先对要搜索的XML文档的结构和内容了解的不足,使得用户(即使是对 文档一无所知的初级用户)能方便地创建有意义的小枝查询。而且本发明设计了新颖的图 形化创建小枝模式的界面。本发明还提出了新的排序公式综合考虑了内容和结构信息,很 好地对结果进行排序,并能通过图形化的方式直观地展示搜索结果给用户。附图说明[0011] 图1 :XML文档转化为一棵有序树。[0012] 图2 :—个小枝模式在XML文档中执行的结果。[0013] 图 3 :由{b, abc, abd, bed, abed, efg, hii}这六个词构成的 Trie 树的结构。[0014] 图4 :有无顺序限制时智能提示的不同。[0015] 图5 :查询带顺序要求的航班信息时的小枝模式。[0016] 图6:系统结构图[0017] 图7 :是否在一个结点的影响范围内对潜在结点名称的影响[0018] 图8 :新结点落在多个结点的范围内时可行结点名称必须保证是其他所有结点的 后代。[0019] 图9 :父亲结点是否有顺序要求时可行结点名列表的不同。[0020] 图10 :能自动考虑结点在小枝中的位置以及结点间的关系并为结点返回智能提 示的算法。具体实施方式[0021] 为了更全面地理解本发明及其优点,下面结合附图及具体实施过程对本发明做进 一步详细地说明。[0022] 一.为了便于清楚理解期间,首先对以下几个定义进行简单地介绍。[0023] XML文档:XML文档由各种用户自定义的标签有结构有顺序地组成,可以转化为一 棵带根结点的有序树。图1是XML文档转化为有序树的例子。[0024] XQuery语言:是另外一种XML查询语言,XQuery相对于XML的关系,等同于SQL相 对于数据库表的关系。XQuery使用函数来提取XML文档中的数据。XQuery还定义了 FLWOR 结构来进行规范查询,其中:FLW0R是〃 For, Let, Where, Order by, Return"的首字母缩 写。下面是一个XQuery表达式:[0025]

Figure CN102033956AD00071

[0026] 这个查询表达式是要选取bookstore元素下的book元素下所有的title元素,并 且其中的price元素的值必须大于30。[0027] 小枝模式(twig pattern):一个XML小枝模式就是一棵节点表示标签,属性或者 文本,边表示父子关系(一般用一条边表示)或者祖孙关系(一般用两条平行边表示)的 小枝。Twig Pattern常常在XML树枝查询时使用。小枝模式查询是XQuery的核心操作,执 行XQuery时实际上是先转化为相应的小枝模式。[0028] 小枝模式查询:在给定的一个XML数据集D中,把内容和结构都满足小枝模式Q 的结果求出来。图2展示了一个小枝查询在XML文档中查询得到的结果。该例子中的小枝 模式的含义是“t与f为s的后代”,只要满足这个小枝模式的都是结果。因此结果有:<sl, tl, fl>, <s2, t2, fl>, <sl, t2, fl>。[0029] Trie :也称为字典树,利用字符串的公共前缀来节约存储空间。Trie树每一层的 节点数是26~i级别的。Trie树有三点性质:1.根结点不包含字符,除根结点外每一个结点 都只包含一个字符;2.从根结点到某一结点,路径上经过的字符连接起来,为该结点对应 的字符串;3.每个结点的所有子结点包含的字符都不相同。图3是一个由字符串{b,abc, abd,bed, abed, efg,hii}这6个单词构建成的trie树。当给定一个关键字时,trie树进 行如下步骤的搜索:(1)从根结点开始一次搜索;(2)取得要查找关键词的第一个字母,并 根据该字母选择对应的子树并转到该子树继续进行检索;C3)在相应的子树上,取得要查 找关键词的第二个字母,并进一步选择对应的子树进行检索;(4)迭代过程……(¾在某个 结点处,关键词的所有字母已被取出,则读取附在该结点上的信息,即完成查找。查找的时 间复杂度为0 (η),η为字符串长度。例如有关键字“ab”,则根据上面的搜索步骤,返回的结 果为abc,abed, abd。这就为前缀搜索提供了很好的方案。[0030] Tag-trie :由上面的trie介绍可知,trie树消耗的内存是比较大的,但是搜索效 率是很高的,特别在前缀搜索中。因为XML文档中的标签名称基本都是字母,所以tag-trie 每一层的节点数最多是^Ti级别的。而且标签名称的个数往往都不多,例如dblp(130M) 的公开数据集中的标签名也才不过30多个。因此考虑到XML标签名的组成元素单一,个数 少的特性,我们就采用标准的trie树方法来构建tag-trie来对标签名称进行搜索。[0031] Value-trie =XML中结点值往往个数是很多的,而且组成值的元素往往包含数字, 字母,符号等。如果直接用标准的trie为这些值构建value-trie,那么内存很容易崩溃。这 样大的消耗是很不科学的。但是在智能提示中输入结点值时又必须提供前缀搜索的功能。 于是本发明中采用了动态构建value-trie的方法。即事先为结点值建立索引,把属于同一 个标签名下的值放到一个物理块中,并把每个物理块中的值按照字典顺序进行排序,并把 第一个字符相同的值归到一个小块中,再把小块中的前两个字符相同的归到更小块中…… 以此类推,把值按照前缀的相似度在物理块上划分开来。[0032] 当用户输入字符时,利用索引快速定位到以该字符为前缀的值所在的地址,并从中抽取出一些具有代表性的值来为这些值动态构建value-trie树,这样就保证了值的个 数少却不缺乏代表性,也保证了 value-trie的大小和效率。[0033] 顺序:在XML搜索中,带顺序的搜索在XPath和XQuery中已经运用得比较多了(例 如XPath中的following-sibling和preceding-sibling等),但是在小枝模式查询中还没 有得到很好的表示和处理。顺序要求也就是要求标签在XML文档中出现的顺序。[0034] 图4很好地说明了没有顺序要求和有顺序要求时查询结果的不同。在图4(a)中 当没有顺序要求时,这个小枝模式查询的结果为两个:(sl,tl,fl)和(sl,t2,fl)。[0035] 在图4(b)中当在这个小指模式上增加顺序要求时(这里用一个红色的”〈”表示 s结点的孩子必须有顺序)。则这个小枝模式查询的结果就剩一个(sl,tl,fl) 了,而(sl, t2,fl)不再是结果,因为在文档中的t2是在fl之后的,而小枝模式中要求t在f之前。[0036] 传统的小枝模式是不能表示顺序的,而为传统的小枝模式拓展了表示顺序功能 后,用户可以表示更丰富的查询,例如用户可以查找“起飞时间为10点的航班的降落时间, 并且起始时间应在降落时间之前。这用传统的小枝模式是没办法表示的,而我们用增加了 顺序的小枝模式则可以很轻松地表示,图5就是该查询对应的一个小枝模式。[0037] 二、以下内容详细说明本发明的具体实施步骤:[0038] 步骤A,开发图形化创建小枝模式系统。[0039] 下面结合图6、图7说明步骤A的具体实施步骤:[0040] 图6中的“小树生成界面”部分对应的也就是步骤A的内容。[0041] 步骤Al :开发一个面板,用于实现通过拖拽圆来产生结点,在拖拽后的结点的右 下角出现两个输入框:标签名称(必填)和结点值(可选)。[0042] 步骤Al中的过程可进一步分解为以下几个步骤:[0043] 步骤Al-I :事先在系统中放置N个ID不同的圆(c_i,i表示第i个圆),其中1个 可见N-I个不可见,每个圆都有一个变量flag来控制它是否可以被拖拽。N个ID不同的不 可见的层(l_i,i表示第i个层),每个层中包含四个输入框,两个可见的用于输入标签名 (node_name)和结点值(nodejalue),两个不可见的用于记录提交信息时对应结点的X,Y 坐标(xpos和ypos);还需放置三个不可见的输入框,一个用于记录当前的小枝情况(twig_ current),另一个用于记录哪个结点被标志了顺序(node^rder),最后一个记录所有结点 信息串(nodejnessage),格式为[结点名,结点值,X坐标,Y坐标];[0044] 步骤A1-2 :利用Javakript实现当对第一个圆进行拖拽时,第一个圆跟随鼠标移 动到任意位置,同时原来不可见的第二个圆变得可见,以此类推;[0045] 步骤A1-3 :利用JavMcript实现当第一个圆被拖拽到一个地方后,第一个层变 得可见,并出现在该结点的右下角,并把该结点的X,Y坐标记录到xpos和ypos中。[0046] 步骤A2 :通过为两个输入框输入值来确定正在创建的结点的信息。[0047] 步骤A2中的过程可进一步分解为以下几个步骤:[0048] 步骤A2-1 :当用户把鼠标定位到标签名称的输入框时,JavaScript调用AJAX发送 请求,把当前结点的xpos和ypos发送到服务器,然后根据权利申请1中的步骤B在输入框 旁边出现了一个存放目前可行的标签名称列表,图8(a)就是服务器为一个结点返回的列 表的形式。[0049] 步骤A2-2 :用户选择列表中的任意一个,则node_name输入框中的值也跟着变化。8如果用户通过键盘直接在nodmame输入框中输入字符,则用户每输入一个字符就触发一 次AJAX请求的发送,则根据权利申请1中的步骤B返回一个前缀与用户输入信息相同的, 并且在目前位置下是可行的标签名称列表,并更新nodejiiessage的值。[0050] 步骤A2-3 :当用户选定一个结点名称后并把鼠标定位到node_Value输入框中时, 触发一次AJAX请求,则根据权利申请1中的步骤C反馈该标签名称下的所有值中具有代表 性的几个,当用户在node^alue中输入字符时,用户每输入一个字符就触发一次AJAX请求 的发送,由于值的个数一般都很多,所以根据权利申请1中的步骤C返回一些前缀与用户输 入信息相同的并具有代表性的值(图8(b)就是服务器返回的在author标签下,开头为Ah 的部分值的列表),并更新node_message的值。[0051] 步骤A3 :通过为结点加边来生成小枝模式。[0052] 步骤A3中的过程可进一步分解为以下几个步骤:[0053] 步骤A3-1 :利用JavMcript实现平面上任意两点间的连线,定义draWPC(xl, yl, x2, y2)方法来对点(xl,yl)和(x2, y2)连接一条直线表示Parent-Child关系; drawAD(xl, yl, x2, y2)方法来对点(xl,yl)和(x2,y2)连接两条平行的直线表示 Ancestor-Descendant关系(用一条直线表示父子关系,两条平行的直线表示祖先后代关 系是在XML研究领域中对小枝模式描述时的规范表示)。[0054] 步骤A3-2 :利用Javakript从node_message中获取已经创建好的结点名称和当 选定要连线的两个结点对应的X,Y坐标。[0055] 步骤A3-3 :当选择要连接Parent-Child边时,系统会调用drawPC方法来加边。当 选择Ancestor-Descendant时,则调用drawAD方法来加边。每次为两个结点加边的操作实 际上就是创建小枝(Twig)的操作,因此要更新twig_current的值。[0056] 步骤A4 :为小枝模式增加顺序限制。[0057] 步骤A4中的过程可进一步分解为以下几个步骤:[0058] 步骤A4-1 :利用Javakript实现markOrder (x, y)方法在任意一点增加顺序标记。[0059] 步骤A4-2 :利用Javakript从nodejiiessage中获取要增加顺序要求的结点对应 的X,Y坐标,然后调用markOrder来增加“〈”标记到相应的结点上(图5中结点“航班”上 面的那个红色标志”〈”就表示航班的所有子结点必须是有序的,即查询结果中“起飞时间” 必须在“降落时间”之前)。[0060] 步骤A4-3 :设置nodejrder的值为被被标记了顺序的结点,并更新twig_current 的值。[0061] 步骤B:设计智能提示算法来返回不同位置下的可行的标签名称,并设计 tag-trie来支持前缀搜索。[0062] 下面结合图6、图8、图9、图10来说明步骤B的具体实施步骤:[0063] 步骤Bl :当用户把鼠标定位到node_name输入框中时,AJAX会把xpos和ypos中 的值发给服务器,图6展示了如何从client端通过javascript发送AJAX请求到server 端。[0064] 步骤B2 :服务器根据传来的值调用智能提示算法,把所有可行的结果反馈出来, 并构建tag-trie来支持用户的前缀搜索。图6展示了如何从server端把tag-name通过AJAX响应返回到client端。[0065] 首先,规定创建小枝查询时每个结点下方的150°为该结点的领域(scope)。假设 有A,B两个结点,当B结点落在A结点的领域内,则B就应该是A的后代,即B的潜在标签 名称的集合就是所有A的后代的集合,这里用Desc(A)表示。图8(a)中X与school构成 了 43°的角度(小于75° )即X落在了 school的领域内。因此(a)中的返回列表中的标 签名称都是school的后代,而(b)中X没有落在school内,没有必须是school后代这个 限制,因为它与school构成的角度为92°大于75°,所以(b)中列表中的标签名比(a)中^^ ο[0066] 而在图9中,X落在了 dblp,school和inproceedings的领域内。特别注意,在这 个小枝模式中dblp比school禾口 inproceedings所处的层次高,而school禾口 inproceedings 是同一层次。因此X 的潜在标签名称为 Desc (dblp) Π (Desc (school) U Desc (inproceedin gs))。这样才能满足实际的需求。[0067] 因此,在创建小枝模式时,我们采用公式:

Figure CN102033956AD00101

来判断一个标签名是否能被加到列表中,这里表示小枝查询中第i层第j个结点。[0068] 如果新的结点(称为newNode)在某个被标注顺序的结点的范围内时,智能提示算 法会识别在小枝查询中newNode的左右两边的结点各是哪些(令左兄弟为left-sibling 右兄弟为right-sibling),然后算法只返回那些在文档中的标签顺序符合newNode在 left-sibling右边且在right-sibling左边的结点,图10(a)中的book没有被标注顺序而 (b)中被标注了顺序,可以很清楚地看出在(b)中的潜在标签比(a)少得多,因为(b)中的 标签在文档中的位置应在author的右边,section的左边。[0069] 当服务器接收到传过来的X,Y参数时智能提示算法首先判断该结点是不是创建 的第一个结点,如果是,服务器将把所有的标签名称返回给用户;否则,服务器将检查现在 界面上的结点间的结构关系和顺序限制,并且用上面的公式来计算潜在的标签名称。如果 有顺序限制,那么标签名称就应该满足相应的顺序限制。[0070] 步骤C :设计实时动态构建value-trie的方案来支持对大量值的前缀搜索。[0071] 下面结合图6、图7说明步骤C的具体实施步骤:[0072] 步骤Cl :当用户把鼠标定位到node_value输入框中时,AJAX会把node_name中的 值发给服务器,图6中显示了值从客户端通过AJAX发送到服务器端的过程。[0073] 步骤C2 :服务器获得通过Ajax传来的结点名称后,根据预处理时存储的统计信 息,判断出该结点下的值的类型:数值型或者字符串型。然后根据不同的类型返回不同的输 入框给用户输入。图7(a)显示的是结点值为数值型时系统返回的输入框的形式,图7(b) 显示的是结点值为字符串时系统返回的输入框的形式。[0074] 步骤C3 :服务器根据传来的值在利用索引定位到该标签名称下的值所在的位置, 由于值特别多,先选取少数代表性的值构建value-trie来支持前缀搜索。[0075] 步骤C4 :当用户在node-value中输入字符时,之前的value-trie返回的结果个 数如果少于5个或者不存在以这些字符为前缀的值时,会删除该value-trie,继续根据索 引寻找符合前缀要求的值,并选择这些值中的少数有代表性的,再构建新的value-trie来 提供前缀搜索。直到用户在列表中找到自己想要的值为止,图6也展示了 value-trie是如何通过AJAX响应把查询结果反馈给用户的流程,图7(b)展示了反馈回的列表的样式。[0076] 步骤D :设计新的既考虑结构又考虑内容的排序公式。 程可以分为以下几步:[0077] 步骤Dl :提出公式Sv来对结果按照内容进行排序[0078]

Figure CN102033956AD00111

[0081] 其中,c是各个结果r中一个术语。[0082] 步骤D2 :提出公式&来对结果按照结构进行排序

Figure CN102033956AD00112

[0084] 其中{pq,pr}表示从查询q和结果r中的路径的匹配。T表示那些出现在结果r 中但是不出现在查询q中的结点类型的集合。参数tM,、tT分别表示来自路径pq,结果r 和集合T的结点类型。[0085] 步骤D3 :提出公式kore综合考虑Sv和&来对结果进行排序。score (r,q)= aSv(r) + (l-a)&(r,q)其中α是一个在介于0,1之间的系数,而且Sv和&分别表示值和 结构因素。[0086] 步骤E :开发展示查询结果和为结果打分的系统。[0087] 步骤El :查询结果返回的是XML小文档,用jsp来计算文档中结点,结点值,属性 等赋予能构成树形式的坐标(即根结点的y坐标最小,叶子结点的y坐标最大,χ坐标的分 配按照各层的结点个数多少来动态改变)。[0088] 步骤E2 :用JavMcript在这些坐标点上绘制相应的图形来表示结果中的各个元 素,按照国内外XML相关论文的习惯,我们采用圆表示结点,方形表示结点值而菱形则表示 属性。[0089] 步骤E3 :用Javakript实现类似权利申请5步骤A3_l中的drawPC那样的画线 功能,这里要实现三种边:结点与结点,结点与值,结点与属性。[0090] 步骤E4 :根据步骤El的求得的坐标,以及识别每个坐标对应的元素来来相应的线^^ ο[0091] 步骤E5 :根据权利申请8步骤D3中求出的score的值,为每个结果绘制出一个以 该值为宽度的有背景色的层,并绘制一个宽度为100的,无背景色但是有边框颜色的层放 在后面。这样就能直观地表示出各个结果的分数。[0092] 三.测试结果[0093] 1.准备工作:[0094] 在实验系统中测试了图形化小枝模式查询中智能提示的准确性和高效性。系统 中执行查询部分由JSP1. 2和servlet2. 5开发,而创建小枝模式和结果展示部分由JSP和11步骤D的具体设计实现过

tr&rJavaScript实现。系统运行在UbuntuLinux 9. 10操作系统中的Apache Tomcat 6.0上。实 验测试所用的数据集为130MB的dblp数据集,50M的airline数据集,以及30M的Sigmod数 据集。测试系统已经发布到互联网上,可以通过网址访问:http://datasearch. rue, edu. cn :8080/LotusX/[0095] 2、提示的重要性[0096] 实验中使用130MB的dblp数据集。在不知道各个数据集的结构、内容时,用户不 知道该搜索什么,更不知道该怎么搜索,留给用户的只有疑惑与无助。而使用该发明,用户 可以通过拖拽圆来产生结点,通过选择列表中的值来确定结点,通过增加边来确定结点间 的关系。[0097] 在智能提示下,初级用户甚至可以为写出带有顺序的查询,因为只要用户在某个 结点上标注了要求有顺序限制,那么系统的智能提示功能就能反馈回当前情况下的可用值。[0098] 3、排序的精确性[0099] 一个好的排序公式需要考虑结构因素和内容因素来获得综合的排序结果。对于内 容而言,不同的值在文档中的重要性是不同的(基于它出现的频率和分布)。对于结构而 言,以下几点为重要的因素:(1)标签权重,不同的标签需要有不同的权重,结果中包含的 标签有更高的权重更可能是用户想要的,(¾路径长度:直观地,如果在结果中的路径与在 小枝中的对应的路径的分布紧凑性很接近,那么这样的结果应该有更高的分数,(3)结点数 量:一个结果中的无关结点(出现在结果中但是不出现在小枝查询中的结点)个数越多,那 么这个结果很可能不是很重要。我们设计的排序公式把上面所有这些因素都涵盖进来了。[0100] 本发明中介绍了如何开发图形化的小枝模式生成界面,并介绍了在小枝模式生成 中使用到的智能提示功能的实现,包括标签名称和结点值的提示。介绍了针对查询结果的 结构和内容信息进行排序的公式,并介绍了如何把结果展示为树形并为不同的结果按照排 序来打分的界面。[0101] 本发明还有许多更具有深远意义的发展前景。例如,由于本方法提出的在XML查 询中的智能提示功能可以很容易拓展到支持XML的关系数据库数据库中,可以从另外一个 方面优化数据库的查询方式,甚至用户可以不用学习SQL语言,不用对数据库有所了解就 可以直接进行查询。这在各个领域都有很大的发展潜力。而且本发明的结果排序功能更是 充分考虑了结构和内容信息,这无论在XML关键字搜索还是小枝模式查询中都有很大的应 用空间。[0102] 此外,本发明中提出的对结果的树形展示方式可以直观地让用户了解到结果的样 子,这也给XML展示查询结果方面起了一个比较好的规范和引导作用。在支持XML的关系 数据库中执行得到的查询结果可以在本发明的基础上进行修改,从而来更好地表示结果。

Claims (13)

1.具有智能提示功能的图形化XML数据的查询技术,具体的步骤包括:A、开发一个图形化创建小枝模式的操作界面。B、设计智能提示算法,能根据小枝中结点的不同位置来自动反馈当前该结点可行的标 签名称,并设计tag-trie来支持前缀搜索。C、设计能自动识别结点类型并且动态构建value-trie来支持对大量结点值的前缀搜索。D、设计新的既考虑结构又考虑内容的排序公式E、开发能以树形方式展示结果,并对查询结果进行打分界面。
2.根据权利请求1中的步骤A,其具体步骤包括如下内容:步骤Al :实现拖拽圆(系统中给定的,并且支持多次拖拽)到任意的地方来产生结点, 在拖拽后的结点的右下角出现两个输入框:标签名称(必填)和结点值(可选)。步骤A2 :根据权利申请1中B和C的方法分别完成对这两个输入框的信息提交,结点 则创建成功。步骤A3 :选定两个结点,并且确定要连接的边的类型,然后进行连线。连线后一棵小枝 创建成功。步骤A4 :如果要对某个结点增加顺序要求,则选中那个结点,点击增加顺序按钮。
3.根据权利请求2,其中步骤Al进一步阐述为:步骤Al-I :事先在系统中放置N个ID不同的圆(c_i,i表示第i个圆),其中1个可 见N-I个不可见,每个圆都有一个变量flag来控制它是否可以被拖拽。N个ID不同的不 可见的层(1」,i表示第i个层),每个层中包含四个输入框,两个可见的用于输入标签名 (node_name)和结点值(nodejalue),两个不可见的用于记录提交信息时对应结点的X,Y 坐标(xpos和ypos);还需放置三个不可见的输入框,一个用于记录当前的小枝情况(twig_ current),另一个用于记录哪个结点被标志了顺序(node^rder),最后一个记录所有结点 信息串(nodejnessage),格式为[结点名,结点值,X坐标,Y坐标];步骤A1-2 :利用JavMcript实现当对第一个圆进行拖拽时,原来不可见的第二个圆变 得可见,以此类推;步骤A1-3 :利用JavMcript实现当第一个圆被拖拽到一个地方后,第一个层变得可 见,并出现在该结点的右下角,并把该结点的X,Y坐标记录到xpos和ypos中。
4.根据权利请求2,其中步骤A2进一步过程为:步骤A2-1 :当用户把鼠标定位到标签名称的输入框时,JavMcript调用AJAX发送请 求,把当前结点的xpos和ypos发送到服务器,然后根据权利申请1中的步骤B在输入框旁 边出现了一个存放目前可行的标签名称列表。步骤A2-2 :用户选择列表中的任意一个,则n0de_name输入框中的值也跟着变化。如 果用户通过键盘直接在nodmame输入框中输入字符,则用户每输入一个字符就触发一次 AJAX请求的发送,则根据权利申请1中的步骤B返回一个前缀与用户输入信息相同的,并且 在目前位置下是可行的标签名称列表,并更新nodejnessage的值。步骤A2-3 :当用户选定一个结点名称后并把鼠标定位到node^alue输入框中时,触发 一次AJAX请求,则根据权利申请1中的步骤C反馈该标签名称下的所有值中具有代表性的 几个,当用户在node^alue中输入字符时,用户每输入一个字符就触发一次AJAX请求的发送,由于值的个数一般都很多,所以根据权利申请1中的步骤C返回一些前缀与用户输入信 息相同的并具有代表性的值,并更新nodejiiessage的值。
5.根据权利请求2,其中步骤A3进一步过程为:步骤A3-1 :利用JavMcript实现平面上任意两点间的连线,定义drawPC(xl, yl, x2, y2)方法来对点(xl, yl)和(x2, y2)连接一条红线,表示Parent-Child关系; drawAD(xl, yl, x2, y2)方法来对点(xl,yl)和(x2,y2)连接两条平行的绿线,表示 Ancestor-Descendant 关系。步骤A3-2 :利用JavMcript从nodejiiessage中获取已经创建好的结点名称和当选定 要连线的两个结点对应的X,Y坐标。步骤A3-3 :当选择要连接Parent-Child边时,系统会调用drawPC方法来加边。当选 择Ancestor-Descendant时,则调用drawAD方法来加边。每次为两个结点加边的操作实际 上就是创建小枝(Twig)的操作,因此要更新twig_current的值。
6.根据权利请求2,其中步骤A4进一步过程为:步骤A4-1 :利用JavMcript实现markOrder (x,y)方法在任意一点增加顺序标记。 步骤A4-2 :利用Javakript从nodejiiessage中获取要增加顺序要求的结点对应的X, Y坐标,然后调用markOrder来增加“〈”标记到相应的结点上。步骤A4-3 :设置n0de_0rder的值为被被标记了顺序的结点,并更新twig_current的值。
7.根据权利请求1,其中步骤B进一步过程为:步骤Bl :当用户把鼠标定位到node_name输入框中时,AJAX会把xpos和ypos中的值 发给服务器。步骤B2 :服务器根据传来的值调用智能提示算法,把所有可行的结果反馈出来,并构 建tag-trie来支持用户的前缀搜索。
8.根据权利请求1中的步骤C,其具体步骤包括如下内容:步骤Cl :当用户把鼠标定位到nodejalue输入框中时,AJAX会把nodejame中的值发 给服务器。步骤C2 :服务器根据传来的节点名称在预处理XML文档时记录下的统计信息中找该结 点下的值的类型。如果为数值型,则返回一个具有描述大于,小于,等于以及“and”与“or” 操作的下拉框组;如果为字符串型则返回一个输入框即可。步骤C3:当判断出结点值的类型为字符串时,就要选择结点值中具有代表性的一些进 行构建value-trie来支持前缀搜索。步骤C4 :当用户在node-value中输入字符时,之前的value-trie返回的结果个数如 果少于5个或者不存在以这些字符为前缀的值时,会删除该value-trie,继续根据索引寻 找符合前缀要求的值,并选择这些值中的少数有代表性的,再构建新的value-trie来提供 前缀搜索。直到用户在列表中找到自己想要的值为止。
9.根据权利请求1,其中步骤D的进一步过程为: 步骤Dl :提出公式Sv来对结果按照内容进行排序 步骤D2 :提出公式&来对结果按照结构进行排序步骤D3 :提出公式kore综合考虑Sv和&来对结果进行排序。
10.根据权利请求9,其中步骤Dl的进一步过程为
Figure CN102033956AC00041
其中,c是各个结果r中一个术语。
11.根据权利请求9,其中步骤D2的进一步过程为
Figure CN102033956AC00042
其中{pq,pr}表示从查询q和结果r中的路径的匹配。T表示那些出现在结果r中但 是不出现在查询q中的结点类型的集合。参数tM,、tT分别表示来自路径pq,结果r和集 合T的结点类型。
12.根据权利请求9,其中步骤D3的进一步过程为: score (r, q) = α Sv (r)+ (I-α )ST(r, q)其中α是一个在介于0,1之间的系数,而且Sv和&分别表示值和结构因素。
13.根据权利请求1,其中步骤E的进一步过程为:步骤El :查询结果返回的是XML小文档,用jsp来计算文档中结点,结点值,属性等赋 予能构成树形式的坐标(即根结点的y坐标最小,叶子结点的y坐标最大,χ坐标的分配按 照各层的结点个数多少来动态改变)。步骤E2 :用JavMcript在这些坐标点上绘制相应的圆(表示结点),方形(表示结点 值)或者菱形(表示属性)。步骤E3 :用JavMcript实现类似权利申请5步骤A3-1中的drawPC那样的画线功能, 这里要实现三种边:结点与结点,结点与值,结点与属性。步骤E4 :根据步骤El的求得的坐标,以及识别每个坐标对应的元素来来相应的线条。 步骤E5 :根据权利申请8步骤D3中求出的score的值,为每个结果绘制出一个以该值 为宽度的有背景色的层,并绘制一个宽度为100的,无背景色但是有边框颜色的层放在后 面。这样就能直观地表示出各个结果的分数。
CN 201010606470 2010-12-27 2010-12-27 具有智能提示功能的图形化xml内容和结构查询系统 CN102033956A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010606470 CN102033956A (zh) 2010-12-27 2010-12-27 具有智能提示功能的图形化xml内容和结构查询系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010606470 CN102033956A (zh) 2010-12-27 2010-12-27 具有智能提示功能的图形化xml内容和结构查询系统

Publications (1)

Publication Number Publication Date
CN102033956A true true CN102033956A (zh) 2011-04-27

Family

ID=43886849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010606470 CN102033956A (zh) 2010-12-27 2010-12-27 具有智能提示功能的图形化xml内容和结构查询系统

Country Status (1)

Country Link
CN (1) CN102033956A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016180186A1 (zh) * 2015-07-01 2016-11-17 中兴通讯股份有限公司 语义数据的存储方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725212B2 (en) * 2001-08-31 2004-04-20 International Business Machines Corporation Platform-independent method and system for graphically presenting the evaluation of a query in a database management system
US20050278286A1 (en) * 2004-06-10 2005-12-15 International Business Machines Corporation Dynamic graphical database query and data mining interface
CN1904884A (zh) * 2005-07-29 2007-01-31 株式会社理光 用于异构媒体的图形化查询构建器及其方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725212B2 (en) * 2001-08-31 2004-04-20 International Business Machines Corporation Platform-independent method and system for graphically presenting the evaluation of a query in a database management system
US20050278286A1 (en) * 2004-06-10 2005-12-15 International Business Machines Corporation Dynamic graphical database query and data mining interface
CN1904884A (zh) * 2005-07-29 2007-01-31 株式会社理光 用于异构媒体的图形化查询构建器及其方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《Computer Networks》 19990531 S.Ceri等 XML-GL:a Graphical Language for Querying and Restructuring XML Documents , 2 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016180186A1 (zh) * 2015-07-01 2016-11-17 中兴通讯股份有限公司 语义数据的存储方法及装置

Similar Documents

Publication Publication Date Title
Kaushik et al. Exploiting local similarity for indexing paths in graph-structured data
DeRose et al. Making hypermedia work: A user’s guide to HyTime
Schreiber et al. Semantic annotation and search of cultural-heritage collections: The MultimediaN E-Culture demonstrator
US7103611B2 (en) Techniques for retaining hierarchical information in mapping between XML documents and relational data
Liu et al. Vide: A vision-based approach for deep web data extraction
US20050278633A1 (en) Legal research system
Green et al. The skull beneath the skin: entity-relationship models of information artifacts
Chamberlin et al. XML query use cases
US6868528B2 (en) Systems and methods for creating and displaying a user interface for displaying hierarchical data
US20060184516A1 (en) Search engine
US20080001948A1 (en) Method and apparatus for the collaborative knowledge-based creation and extension of an information graph
US20070203923A1 (en) Schema mapping and data transformation on the basis of a conceptual model
US20130191392A1 (en) Advanced summarization based on intents
US20120303645A1 (en) System and method for extraction of structured data from arbitrarily structured composite data
US20060106843A1 (en) Database track history
US20100185651A1 (en) Retrieving and displaying information from an unstructured electronic document collection
US20040172616A1 (en) Markup language visual mapping
US20060195424A1 (en) Generating business warehouse reports
Kay XSLT 2.0 and XPath 2.0 Programmer's Reference
Erwig Xing: A visual XML query language
CN101908040A (zh) 一种数据报表系统
Van Hooland et al. Linked Data for Libraries, Archives and Museums: How to clean, link and publish your metadata
CN102073725A (zh) 结构化数据的搜索方法和实现该搜索方法的搜索引擎系统
Salas et al. Publishing statistical data on the web
Erwig A visual language for XML

Legal Events

Date Code Title Description
C06 Publication
C10 Request of examination as to substance
C02 Deemed withdrawal of patent application after publication (patent law 2001)