可在www.sciencedirect.com在线获取理论计算机科学电子笔记282(2012)3-18www.elsevier.com/locate/entcs实现灵活的基于XPath的查询语言1的模糊逻辑编程赫苏斯·MAlmendros-Jiménez2DEP.西班牙阿尔梅里亚大学语言与计算系Alejandro Luna和Ginés Moreno3DEP.西班牙卡斯蒂利亚-拉曼恰大学计算机系统系摘要FLOPER是我们的研究小组设计的“模糊逻辑编程环境”,用于帮助开发模糊逻辑可能发挥重要作用的实际应用程序。这是我们最近提出的流行的查询语言扩展的情况,以便处理可扩展的查询,这些查询提供排名答案,模糊运算符和,或和平均值的模糊变量,以及两个结构约束,称为下和深度,可以与一定程度的相关性相关联。保留字:模糊逻辑编程,模糊查询语言,软件工具1引言XML语言[7]已经被提议作为XML查询的标准,它基于要检索的XML树中的路径描述1这项工作得到了欧盟FEDER和西班牙科学与创新部(MICINN)的部分支持,资助号为TIN 2008 -06622-C 03 -03、TIN 2007- 65749和TIN 2011 -25846,以及卡斯蒂利亚-拉曼恰行政当局的PII 1 I 09 -0117-4481。2电子邮件:jalmen@ual.es3电子邮件:{gines.moreno,alejandro.luna}@uclm.es1571-0661 © 2011 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2011.12.0024J.M. Almendros-Jiménez等人/理论计算机科学电子笔记282(2012)3允许指定节点的名称(即,标签)和属性以及关于节点和属性的内容的布尔条件一起出现在XML树中。XML查询机制基于布尔逻辑:从XML表达式中检索的节点是那些匹配XML树路径的节点。 因此,用户应该了解XML模式以便指定查询。但是,即使XML模式存在,它也可能对用户不可用。此外,具有相同XML模式的XML文档在结构上可能非常不同。让我们假设XML文档包含某组人员的简历虽然他们可以共享相同的模式,但每个人都可以决定包括以几种方式组织的学习,工作,培训等:按年份,按相关性,以及不同的嵌套程度。因此,在半结构化数据库的上下文中,出现了对可伸缩查询语言的需求,在这种查询语言中,用户可以在不考虑刚性模式数据库的情况下制定查询此外,他们应该配备一个机制,以获得一定的排名名单的答案。答案的排名可以根据几个因素提供满意度。在基于XPath的结构化查询中,提供一定满意度的主要标准是层次深度和文档顺序。因此,当答案出现在文档的不同部分时,查询语言应该提供为答案分配优先级的机制在本文中,我们专注于实现问题的基础上,模糊逻辑编程关于我们的扩展的查询语言最初提出在[5]的处理不灵活的查询。我们的方法提出了两个结构性约束,称为下和深,其中一定程度的相关性可以相关联。因此,down根据在XML文档中从“top to down”找到答案的路径提供一组排序的这两种结构约束可以结合起来。此外,我们提供了模糊算子和,或和平均值的条件。通过这种方式,用户可以表达他们给予答案的优先级这样的模糊运算符可以被组合以提供分级的答案。我们的方法已经通过多伴随逻辑编程和FLOPER工具实现[16,17,18]。最近,为XML提供可扩展性的需求激发了对XML语言扩展的研究。最相关的是[8,9],其中作者通过称为节点内容的接近和相似的模糊约束,以及路径结构的下方和附近,此外,他们还研究了树匹配的深度相似概念为了提供他们采用的排名答案,J.M. Almendros-Jiménez等人/理论计算机科学电子笔记282(2012)35一种基于模糊集理论的方法,其中每个答案都有一个相关的数值(隶属度)。数值表示关联物料的检索状态值(RSV)。在[11]的工作中,他们提出了一种基于将重要性程度与节点关联起来的满意度表达式,并研究了如何计算最佳k答案。在这两种情况下,作者都允许用户在查询中指定答案将受到惩罚的程度我们的工作类似于[8,9]提出的。[8,9]的下面的操作符相当于我们提出的down:两者都提取当前节点的直接后代元素,并且惩罚与距离成正比。[8,9]中的near算子被定义为下面的推广,根据到所需节点的距离对答案进行排名,在任何坐标轴上。我们提出的深度排名取决于到当前节点的距离,但所考虑的节点可以是直接和非直接的从属关系。因此我们提出的深与下结合是近的一种特殊情况。然而,在未来,我们打算扩大我们的方法的约束和模糊运算符的数量感谢我们的框架的表达所谓的多伴随逻辑编程方法[15],简称MALP,是逻辑编程的扩展以支持模糊逻辑。这一框架为多方位界定可持续发展的可持续性提供了理论基础此外,该框架提供了一种机制,用于通过独立于解决方案的出现而为解决方案分配优先级来定制排名答案。关于[8,9]中提出的相似和接近关于树匹配,[8,9]中定义的深度相似算子可以通过深度和向下算子来模拟。我们相信,我们也可以在未来调整我们的框架,按照[11]的思路将重要性程度用于节点,并通过按照[10]的思路重写来放松节点表达式在这两种情况下,我们的框架可以提供排名的答案w.r.t.重要程度我们的建议利用多伴随逻辑编程框架来定义新的模糊运算符:和,或和平均。这些运算符用于节点和属性值的约束条件它们提供模糊组合来对答案进行排序。最后,让我们注意到,我们的工作是以前的工作的扩展,通过逻辑编程[4],这已经扩展到[1]中的XQuery的实现所提出的扩展遵循[1]中提出在这里,通过Prolog规则定义了一个名为xpath的谓词,该规则基本上遍历XML的Prolog表示6J.M. Almendros-Jiménez等人/理论计算机科学电子笔记282(2012)3一个Prolog列表的树。为了实现fixable的扩展,我们继续类似于Prolog实现fixable,但提出了一个新的(模糊)谓词,称为fuzzyfixable,在MALP中实现,使用«Fuzzy LOGic Programming Environment for Research» FLOPER系统[16,17,18]。新的查询语言返回一组排名的答案,每个答案都有一个相关的RSV。这样的RSV通过容易地使用MALP规则来计算。RSV的概念是在一个多伴随格中建模的,MALP语言中常用的模糊连接词充当理想资源来代表新的灵活的电信运营商。主谓词fuzzyyoung使用用户建议的深度和向下的值作为参数,而新的运营商来模拟可伸缩的条件,通过标准的模糊连接词MALP承认一个自然,优雅和直接的表示。本文的结构如下。 而在第2节中,我们提出了我们的模糊扩展的MALP,第3节致力于MALP和FLOPER环境,一起描述的模糊MALP和MALP的集成。接下来,第4节讨论了实施问题,最后,第5节总结了未来工作的规划。2柔性电缆我们的可收回金额按以下规则界定xpath:=[deepdown]pathpath:=literal |text()|节点|@ att|节点/路径|node //pathnode:=QName |QName[cond]cond:=path op pathdeepdown:=DEEP=degree,DOWN=degreeop:=>|为|<|和|或|avg基本上,我们的建议扩展了以下方面• 给定的递归表达式可以用«[DEEP =r1,DOWN =r2]»装饰,这意味着元素的深度由r1惩罚,元素的顺序由r2惩罚,并且这种惩罚与距离成比例(即,分别是树枝的长度和树的重量)。特别地,《[DEEP =1,DOWN=r2]》可以用于仅惩罚w.r.t.文件顺序。DEEP适用于//,也就是说,XML树中的深度仅在探索后代节点时计算,而DOWN适用于/和//。让我们注意到,目前DEEP和DOWN只能在表达式的开头使用,但它们是为每次出现/和//计算的。• 此外,经典的andandor连接词在这里承认一种模糊行为J.M. Almendros-Jiménez等人/理论计算机科学电子笔记282(2012)37∗−∗Fig. 1. 在我们的示例<围兜><出版年份=”2001“价格=”45.95“>
Don吉诃德del a Mancha/ t i t l e><作者:Miguelde塞万提斯Saavedra/作者><产品展示><书年份=”1997年“价格=”35.99“>La Galatea/ t i t l e><作者:Miguelde塞万提斯Saavedra/作者><出版年份=”1994“价格=”25.99“>Los trabajos de P e r si l e sySegismunda/t i t l e><作者>Miguel de Cervantes Saavedra/作者>/书>出版物>/图书>出版物>/图书><出版年份=”1999“价格=”25.65“>LaCelestina/ t i t l e><作者>FernandodeRojas/ author>/book><出版年份=”2005“价格=”29.95“><标题>哈姆雷特/标题><作者:William莎士比亚/作者><出版年份=”2000“价格=”22.5“>Romeo y朱丽叶/ t i t l e><作者:William莎士比亚/作者/书>出版物>/图书><出版年份=”2007“价格=”22.95“>Lasfer r i a sde马德里/标题><作者:Felix洛佩deVegayCarpio/作者><出版年份=”1996“价格=”27.5“>El remedio enL ad e s d i cha/ t i t l e><作者:Felix洛佩deVegayCarpio/ author>/book><出版年份=”1998“价格=”12.5“>La Dragontea/ t i t l e><作者:Felix洛佩deVegayCarpio/ author>/book>出版物>/图书>围兜>基于模糊逻辑,即, 假设两个给定的RSV的r 1和r 2,运算符和被定义为r 3 = r 1 r 2,运算符或返回r 3 = r 1 + r 2(r 1 r 2)。此外,avg运算符被定义为r3=(r1+ r2)/2。一般来说,一个扩展的表达式定义了,w.r.t.XML文档、XML文档的子树序列,其中每个子树具有关联的RSV。定义为模糊运算符应用于正则表达式的正则条件,从所涉及的正则表达式的RSV计算新的RSV,同时向节点提供RSV为了说明这些解释,让我们看一些我们根据图1所示的XML文档提出的模糊版本的XML的例子,图2描述了它的框架。示例2.1考虑下面的查询:«[DEEP= 0.9,DOWN =0.8]//title8J.M. Almendros-Jiménez等人/理论计算机科学电子笔记282(2012)3图二. 表示为树的图3.第三章。使用DEEP/DOWN的查询输出文件RSV计算0。81 =0。920。52488 = 0。九点四分。80。340122= 0。九点六分。820。648 = 0。九点二。80。5184 = 0。九点二。820。335923= 0。九点四分。83<结果>唐吉诃德/title><标题rsv=“0.52488”>La Galatea/标题> Persiles y Sigismunda的工作/title><标题rsv=“0.648”>La Celestina/标题>哈姆雷特/title>罗密欧与朱丽叶/title>Las ferias de Madrid/title>El remedio en la desdicha/title>La Dragontea/title><联系我们见图4。 使用平均运算符AV G文件RSV计算<结果><预订rsv=“0.5”...>标题>堂吉诃德.</title>.</book><图书rsv=“1.0”...>& lt;title>La Celestina/title>.</book><图书rsv=“1.0”...>& lt;title>哈姆雷特/title>...</book><本书rsv=“0.5”...>& lt;title>Las ferias deMadrid/title>...</book><联系我们0。5 =(0 + 1)/21 =(1 + 1)/21 =(1 + 1)/20。5 =(1 + 0)/2J.M. Almendros-Jiménez等人/理论计算机科学电子笔记282(2012)39图五、使用所有运算符的查询输出文件RSV计算0。3645= 0。93分1/20。59049 = 0。95∗ 10。72= 0。九块钱。8∗ 10。288= 0。九块钱。82分1/ 20。2304= 0。九块钱。83分1/ 20。373248= 0。九点三分。83∗ 10。149299= 0。九点三分。84分 1/ 2>>,其请求title以0的比例惩罚来自文档根的出现。九比零。8,我们获得了图3中列出的文档。在这样的文档中,我们已经包括了每个子树的属性,其对应的RSV。最高的RSV对应于文档的主要书籍,最低的RSV代表出现在嵌套位置的书籍(注释为相关出版物的例2.2图4显示了与该表达式相关的答案:« /bib/book[@price 30 avg @year 2006] ».在这里,我们表明,满足价格低于30美元和2006年之前的书籍具有最高的RSV。例2.3最后,在图5中,我们在查询中组合所有运算符(从而获得更分散的RSV值):«[DEEP= 0.9,DOWN =0.8]//book [(@price>25 and @price30)avg(@year 2000 or @year>2006)]/title»。3多伴随逻辑程序设计与FLOPER逻辑编程(LP)[14]在过去被广泛用作解决问题和知识表示的形式化方法。然而,trans-martLP语言不包含技术或结构来显式地处理不确定性和近似推理。为了克服这种情况,在过去的几十年中,已经开发了几个模糊逻辑编程系统,其中SLD-Resolution的经典推理机制这些系统中的大多数实现了Lee在[13]中引入的模糊归结原理,例如语言Prolog-Elf [12],Fril [6],[19]的QLP方案,以及多值逻辑编程语言[21,20]和MALP [15]。在本文中,我们主要关注最后一个框架,它使用接近Prolog的语法,但具有更高的可扩展性,我们正在开发FLOPER工具(见[16,17,18])<结果>La Galatea/title> Persiles y Sigismunda的工作/title><标题rsv=“0.72”>La Celestina/标题>哈姆雷特/title>Las ferias de Madrid/title>El remedio en la desdicha/title>La Dragontea/title><联系我们10J.M. Almendros-Jiménez等人/理论计算机科学电子笔记282(2012)3∈≥BC∨ ∨∨← B← ←←∀∃L⟨←⟩⟨ ≤ ←⟩P⟨ ≤ ← ←⟩≤L~~并访问http://dectau.uclm.es/floper)。在下文中,我们对MALP的主要特征进行了简短的总结(我们请读者参考[15]以获得完整的公式)。我们使用一阶语言, 包含变量,函数符号,谓词符号,常量,量化器(和)和几个任意连接词,如含义(1,2,...,m)、连词(&1,&2,.,&k)、析取(1,2,...,l),以及一般的混合算子(“聚合器”@1,@2,...,@n),用于通过规则组合/传播真值,从而增加语言表达能力。另外,我们的语言包含形式为L,,1,&1,.的多伴随格的值,n,&n,配备有伴随对i,&i的集合,其中每个&i是用于评估模的合取符推理规则是一个公式“A i with α“,其中A是一个原子公式(通常称为头),(通常称为体)是一个由原子公式B1,...,B n(n0),L和合取、析取和一般聚合的真值,最终α L是规则的“权重”或真度。真值集L可以是任何完全有界格的载体,例如,在区间[0,1]中的实数集及其相应的排序。例如,考虑以下程序,该程序由三个规则组成,具有关联的多伴随格[0,1],P,P,其中标号P表示具有以下连接定义的乘积逻辑(分别用于蕴涵、合取和析取符号):和“|P(x,y)= x + y − x y“。R 1:p(X)←Pq(X,Y)|Pr(Y),0。8R 2:q(a,Y)←0。9R 3:r(b)←0。7为了描述多伴随逻辑语言的过程语义一对由一个目标和一个替代组成的状态称为状态。因此,给定一个程序P,一个容许计算被形式化为一个状态转移系统,其转移关系AS是满足以下可接受的规则:1) Q[A];σ<$(Q[A/viB])θ;σθ<$如果A是目标Q中的选定原子,J.M. Almendros-Jiménez等人/理论计算机科学电子笔记282(2012)311~作为作为作为p(X,_TV0):-q(X,Y,_TV 1),r(Y,_TV 2),或_prod(_TV1,_TV2,_TV3)和_prod(0.8,_TV3,_TV0)。<$AJ←iB,其中v在P中,其中B不为空,且θ=mgu({AJ=A})。2) Q[A];σ作为 如果在P中有v <$,则θ=mgu({AJ= A})。下面的推导说明了我们的定义(注意,在相应步骤中使用的确切程序规则-在重命名后-被注释为n(X);{} n~R1100美元。8&P(q(X1,Y1)|Pr(Y1));{X/X1}~R2100美元。8&P(0. 9|Pr(Y2));{X/a,X1/a,Y1/Y2} <$R3100美元。8&P(0. 9|均p0. 7);{X/a,X1/a,Y1/b,Y2/b}最终公式可以直接在格L中解释,以获得最终模糊计算答案。所以,自从0。8&P(0. 9 |均p0. 7)= 0。8分(0. 九比零。7−(0. 九块钱。7))= 0. 776,我们说当X是a时,目标p(X)在77.6%处为真。现在,我们想总结一下管理MALP程序的FLOPER工具的主要元素我们的FLOPER工具[16,17,18]的解析器已经通过使用Prolog语言的经典DCG(定义子句Gram- mars)资源来实现一旦应用程序被加载到Prolog解释器中,它会显示一个菜单,其中包括加载/编译,解析,列出和保存模糊程序以及执行/调试模糊目标的选项。所有这些动作都是基于将模糊代码编译成标准的Prolog代码。编译的关键点是扩展每个一个额外的变量,称为真值变量,形式为“_ TV i”,其目的是包含后续原子的作用。例如,我们例子中的第一个子句被翻译成:此外,在我们的例子中,其余的规则成为纯Prolog事实最后,像“p(X)“这样的模糊目标被翻译成纯Prolog目标:“p(X,Truth_degree)“(注意,最后一个真度变量现在不是匿名的),对于该纯Prolog目标,在选择选项“run“之后,Prolog解释器返回期望的模糊计算答案[Truth _ degree = 0。776,X= a]。请注意,所有内部计算(包括编译和执行)都是纯Prolog派生,而输入(模糊程序和目标)和输出(模糊程序和目标)都是纯Prolog12J.M. Almendros-Jiménez等人/理论计算机科学电子笔记282(2012)3← Bmembe r(X):-number(X),0=