没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记248(2009)131-147www.elsevier.com/locate/entcsBousi Prolog:一种支持灵活查询的Prolog扩展语言PascualJulia'n-Iranzo1ClementeRubio-Manzano2Juan Gallardo-Casero3DEP.信息技术和系统,卡斯蒂利亚-拉曼恰大学,西班牙摘要在本文中,我们提出了一种编程语言的主要特点和实现细节,我们称之为Bousi Prolog。它可以被看作是Prolog的一个扩展,能够处理基于相似性的模糊统一(“Bousi”是西班牙语“相似性模糊统一”的首字母缩写)。主要目标是实现一个声明式编程语言,非常适合灵活的查询回答。Bousi Prolog的操作语义是SLD归结原则的一个改编,其中经典的统一已经被基于语法域上定义的相似关系的算法所取代。 相似关系是等价关系的标准概念的扩展,并且它可以用于在任何情况下,平等的概念都必须被削弱。因此,Bousi Prolog的语法是Prolog 相似性方程。保留字:模糊逻辑程序设计,模糊Prolog,相似统一,弱SLD归结。1介绍模糊逻辑程序设计将模糊逻辑和纯逻辑程序设计相结合,使这两种语言具有处理不确定性和近似推理的能力。这种整合没有通用的方法,尽管如此,该领域的大多数作品可以分为两个主流。例如:[9,14,18,2,21,28],第一行,[4,5,6,7,25],第二行。如果我们想解决不灵活的查询回答问题,一种可能的方法是遵循这项工作得到了FEDER和西班牙科学和教育部(MEC)的部分支持,拨款TIN 2004-07943-C 04 -03和TIN 2007-65749。1 电子邮件:Pascual. uclm.es2电子邮件:Clemente. alu.uclm.es3 电子邮件:Juan. alu.uclm.es4如果你追求的是不同的目标,其他方法更可取。1571-0661 © 2009 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2009.07.064132P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131在[25]中引入的概念方法,其中“近似”的概念通过相似关系在句法水平上进行管理。相似关系是等价关系的标准概念的扩展,并且它可以在必须弱化相等概念的任何上下文中有用在[25]中,对于D限定子句,具有S选择函数的线性归结策略的一个新的修改版本(SLD分辨率),这被称为基于相似性的SLD分辨率(或弱SLD分辨率-WSLD-)。这种操作机制可以被看作是SLD解决过程的一个变体,其中经典的统一算法已经被[ 25 ]中正式描述的弱统一算法所取代(并在[16]中根据过渡系统重新制定)。非正式地,Maria Sessa的弱统一算法指出,两项f(t 1,...,t,n)和g(s1,.,Sn)弱统一,如果根符号f和g被认为是相似的,并且它们的自变量ti和si中的每一个弱统一。因此,当两个语法不同的符号在它们相似时发生冲突时,弱统一算法不会产生故障本文介绍了一种编程语言Bousi Prolog(简称BPL)的主要特征和实现细节,它具有基于[25]的弱SLD归结原理因此,Bousi Prolog计算答案以及近似度。基本上,Bousi Prolog语法只是Prolog语法,但增加了一个内置符号<字母符号>~~字母符号>=相似度>。虽然形式上相似方程表示的是任意的模糊二元关系,但其直观含义是两个常数、n元函数符号或n元谓词符号在一定程度上相似。非正式地,我们使用内置符号“”作为任意模糊二元关系的对称闭包的压缩符号(也就是说,相似性方程a b = α可以从两个方向理解:a与b相似,b与a相似,度为α)。因此,Bousi Prolog程序是Prolog事实和规则的序列,后面是相似性方程的序列。本文的结构如下。第2节给出了一些激励性的例子。这些例子用于介绍BousiProlog语言的语法方面,以及维持建议的有用性。第三部分介绍了Bousi Prolog的系统结构,简要描述了它的主要组成部分。第4节,在回顾了相似关系的定义之后,给出了关于它的内部表示和如何计算的一些见解。本节的其余部分致力于弱统一算法的实现,这是基于相似性的SLD分辨率原理的基础。第5节给出了Sessa在第6节中,给出了关于割和否定的不同类别的信息第7节讨论了我们的工作的关系,其他研究线的模糊逻辑规划。最后,在第8节中,我们给出了我们的结论和未来的研究方向。P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131133在下文中,我们假定对逻辑程序设计的基本概念有一定的了解[1]。2鼓舞人心的例子我们的第一个示例用于在一个非常简单的上下文中说明BPL语法及其操作行为的一些特性。例2.1考虑程序Autumn,它由以下子句和相似性方程组成:%事实温暖:-阳光明媚。%相似性方程秋天多雨的:-春天。弹簧 ~~秋天= 0.7%规则寒冷:-冬天。弹簧 ~~夏天= 0.5温暖:-夏天快乐:-温暖。秋天 ~~ 冬季= 0.5在一个标准的Prolog系统中,查询“?- “快乐”失败了,因为我们指定如果是夏天(第一规则),它是温暖的,实际上,它是秋天。类似地,查询“?“雨” 也 是 失 败 的 。然而,BPL系统能够计算以下成功的导数5:• ←快乐,id,1=WSLD Q,id,0. 5英里。这里,最后一步是可能的,因为夏天与秋天的事实弱统一,因为夏天和秋天之间存在近似度为0.5的传递联系(0.7和0.5中的最小值因此,系统回答“是,近似度为0.5”。• ←rainy,id,1七尺。在这种情况下,系统回答一般来说,Bousi Prolog计算答案以及近似度,近似度是在推导的每个步骤中获得的近似度的最小值第二个例子展示了Bousi Prolog如何非常适合于灵活的查询应答。例2.2这个BPL程序片段指定了存储在数据库中的书籍的特征和偏好。偏好通过相似性方程来指定:事实百分比Treasure_Island(宝藏岛)《野性的呼唤》(The Call of the Wild)5符号134P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131sim(interesting,adventures,0.9).sim(mystery,science_fiction,0.5).sim(interesting,mystery,0.5).sim(恐怖,有趣,0.5)。sim(interesting,horror,0.5).sim(恐怖,冒险,0.5).sim(interesting,science_fiction,0.8).sim(恐怖,神秘,0.9)。sim(adventures,interesting,0.9).sim(horror,science_fiction,0.5).sim(冒险,神秘,0.5).sim(science_fiction,interesting,0.8).sim(冒险,恐怖,0.5).sim(science_fiction,adventures,0.8).sim(adventures,science_fiction,0.8).sim(science_fiction,mystery,0.5).sim(mystery,interesting,0.5).sim(science_fiction,horror,0.5).模拟(神秘,冒险,0.5).sim(_G1282,_G1282,1.0).sim(神秘,恐怖,0.9).Fig. 1.由例2.2中的相似性方程生成的相似性关系。莫格街谋杀案(Murders in the rueMorgue)恐怖(吸血鬼)。科幻小说(城市与星星)科幻小说(火星编年史)%规则good(X):-interesting(X).%相似性方程冒险~~神秘= 0.5。冒险科幻小说= 0.8。冒险~~有趣= 0.9。神秘~~科幻= 0.5。science_fiction~~horror = 0.5.神秘~~恐怖= 0.9。当这个程序被加载时,一个内部过程构造一个相似关系(即, 自反的、对称的、传递的、模糊的二元关系)。关于如何构造相似关系的更多信息,从任意模糊二元关系开始,在第4节中给出。 图1示出了当从该示例的相似性方程获得相似性关系时生成的编译代码。因此,通过查询“BPL> sv good(X)“来检索被认为感兴趣的所有类型的书籍。注意在最后一个查询中,解决目标(见第3节)。第三个例子展示了如何使用相似性方程来获得模式匹配程序中逻辑和控制之间的例2.3下面的程序给出了一个模式[e1,e2]在元素列表中,其中e1必须是a,e2可以是b或c。%相似性方程e1~a=1.e2~b=1.e2~c=1。%事实和规则search([],0).搜索([X| R],N):-search1([X| R],N)。search1([],0).search1([X| R],N):-X~e1 -> search2(R,N);search1(R,N). search2([],0).search2([X| R],N):-X~~e2 -> search([X| R1,N1),N为N1+1;P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131135搜索([X| R],N)。occurrence(N):-search([a,b,c,a,c,b,d,a,c,d,b,b,a,b,c,a,c,a,b],N).这里,由于程序员在程序中编写了相似性方程对于表达式“X~~e2“也是如此很容易调整上述程序,允许搜索更复杂的模式组合。例如,通过引入相似性方程:e1~b=1。为了达到我们的目标,在这种情况下,强制性地不生成由相似方程集定义的模糊关系的传递闭包这可以通过BPL指令“:- transitivity(no)“来完成的想法是避免将“e1“和“e2“归属总而言之,在添加了新句子的情况下,结果程序将计算元素列表中模式[e1,e2]的出现次数,其中e1可以是a或b,e2可以是b或c。最后一个例子展示了相似性方程如何被用作信息检索的模糊模型,其中文本信息是使用本体[8]来选择或分析的,本体是一个结构化的术语集合,它正式定义了它们之间因此,在语义语境中,而不是在纯粹的句法语境中。在语义网[3]主导的世界里,这是一个非常有用的应用程序,在这个世界里,人们暴露在大量的(文本)信息中。例2.4一个实际的文本推理任务是发现结构上相似的概念6.相似性方程可以帮助完成这项任务。下面所示的一组相似性方程是使用ConceptNet [13]获得的,ConceptNet是一个免费提供的常识知识库和自然语言处理工具包7.概念网是由半结构化的自然语言片段组成的网络。它有一个GetAnalogousConcepts()函数,在给定源概念的情况下,该函数返回一个结构上类似的概念在我们的例子中,源概念是术语之间的结构相似程度也由ConceptNet提供。相似性方程组是原始输出的一部分,它是我们手工改编的我们希望从给定文本中提取结构上类似于“wheat”的术语的信息在我们的例子中,输入文本是从路透社借来的,这是一个文本分类研究的测试集合8。此集合中的数据最初由Carnegie Group,Inc.和路透社有限公司在发展6结构相似是指它们具有相似的性质和功能(例如:“scissors”, “razor”, “nail clipper”, and “sword” areperhaps like a “knife” because they are all “sharp”, and can be used to “cut7可查阅http://web.media.mit.edu/hugo/conceptnet/。8可在www.example.com上查阅http://www.daviddlewis.com/resources/testcollections/reuters21578/。136P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131CONSTRUE文本分类系统。我们的例子中的片段文本是用标签(主题)%相似性方程小麦~菜豆=0.315。大豆~玉米=0.48。大豆~马铃薯=0.5。小麦~玉米=0.315。豆~~动物=0.35。豆~~作物=0.315。小麦~~草=0.315。bean~~child=0.33。豆~花=0.315。小麦~马=0.315。豆~草=0.315。bean~~table=0.35。小麦~~人=0.205。豆~~马=0.335。%事实和规则%%searchTerm(T,L1,L2),true(近似度为1)如果%% T是(常数)项, L1是(常数)项列表%%(表示文本)并且 L2是三元组t(X,N,D)的列表%%其中 X是类似于 T的项,具有D度,在文本L1 searchTerm(T,[],[])中执行%% N次。searchTerm(T,[X| R],L):-(T~~X=AD->searchTerm(T,R,L1),insert(t(X,1,AD),L1,L); searchTerm(T,R,L)).insert(t(T,N,D),[],[t(T,N,D)])。insert(t(T1,N1,D),[t(T2,N2,_)|R],[t(T1,N,D)|R]):-T1 ==T2, N是 N1+N2。insert(t(T1,N1,D),[t(T2,N2,D2)|R2],[t(T2,N2,D2)|R]):-T1 \== T2,insert(t(T1,N1,D),R2,R).目标百分比g(T,L):-searchTerm(T,[agriculture,department,report,farm,own,储备,国家,平均,价格,贷款,释放,价格,储备,成熟,豆类,谷物,进入,玉米,高粱,利率,豆类,马铃薯],L)。下面演示了一个与Bousi Prolog系统的简单会话。BPL>sv g(玉米,L)近似度:1.0L =[t(马铃薯,1,0.48),t(豆类,2,0.48),t(玉米,1,1.0)]是由目标返回的信息可以在以后用于分析输入文本或在检索过程中获得偏好程度。P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131137闭合builtin评估器公用事业parserTranslatorbplHelp布西图二. Bousi Prolog系统的函数依赖图3Bousi Prolog系统结构我们介绍的Bousi Prolog系统是一个原型,在SWI-Prolog[30]之上编写的高级实现,并且是公开可用的9。完整的实现由大约900行代码组成图2通过功能依赖图显示了BPL系统的结构bousi模块包含实现命令shell的bpl shell/0主谓词为用户提供界面相关命令包括:• ld->(load)读取包含源程序的文件进行加载;• lt->(list)显示当前加载的程序;• sv->(solve)解决一个(可能是合取的)查询;• lc->(candida-cut)读取或设置弱统一过程中近似度的下限(参见后面对该特性的更详细解释其余的命令作为(unix)系统环境的接口实现。bplHelp模块提供有关命令语法及其工作方式的在线说明。parserTranslator模块包含parseTranslate/2谓词。这个谓词解析一个BPLInputFile,并将其翻译(编译)为一个Out-putFile,Out-putFile包含源BPL代码的中间Prolog表示中间的Prolog代码被称为解析器阶段被委托给标准Prolog谓词。这是一个不完美的解决方案,因为我们失去了对整个解析过程的控制,并且它带来了一些真正的限制。但这是最便宜的解决方案。解析器阶段的改进是为了以后的工作。求值器模块实现了弱统一化算法和弱SLD归结原则,这是语言的操作语义。弱SLD分辨率通过元解释器实现[27]。接下来的两个部分将详细介绍这个实现。评估器9Bousi Prolog系统的原型实现可以在URL地址http://www.inf-cr.ucl:(1)在美国,你可以在这里找到你的名字。例如,我们不能使用用户定义的操作符,即“:-op(,,)“指令。138P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131prog.bplparserTranslatorprog.tpl装载机目标评估器结果Prolog工作空间图三. Bousi Prolog系统的流程图概述模块使用内置模块,内置模块包含直接发送到SWI-Prolog解释器的谓词关系。实用程序模块包含一个由其他模块使用的谓词库图3显示了BPL程序的转换、加载和执行的示意图。在此图中,方框表示系统的不同组件,粗体名称表示(中间)文件。BPL程序的源代码必须存储在后缀为“.bpl“的文件中 prog.bpl)。的parserTranslator解析BPL源文件并将其翻译(编译)为源BPL代码的中间Prolog表示,它存储在一个后缀为“.tpl“的文件中。最后,TPL文件中的子句被加载到Prolog工作区中。然后,系统准备好接纳由评估器元解释器解决的查询。4相似方程与弱统一弱统一算法基于相似关系进行操作。集合U上的相似关系是U × U上的模糊二元关系,即映射R:U×U→[0,1],具有以下性质:自反、对称和传递。在这种情况下,“传递”意味着R(x,z)≥ R(x,y)ΔR(y,z)对于任何x,y,z ∈ U ;其中算子“Δ”是任意的t-范数。 继[25]之后,在续集中,我们将自己限制在一个句法域上的相似关系,其中算子Δ=(即,它是两个元素中的最小值)。用“symbol> ~~ symbol> = degree>“形式的相似方程<<< 相似性方程ab=α表示条目R(a,b)=α。在内部,类似于最后一个的相似性方程被编码为:sim(a,b,α)。用户提供相似性方程的初始子集,然后,系统自动生成一个自适应的、对称的、传递的闭包,以通过缺陷获得相似性关系。 但是,如果BPL指令因此,相似性方程ab=α可以从两个方向来理解:a与b相似,b与a相似度为α。一个用C语言编写的外来谓词闭包/3[17]实现了构造相似关系的算法。该算法分三步.第一步,计算初始P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131139关系;第二个是对称闭包。第三步是著名的Warshall算法的扩展,该for(k= 0;k nTotal;k++){ for(i= 0;i nTotal; i++){<对于(j= 0;j nTotal; j++){ dMatrix[i][j]= MAX(dMatrix[i][j],sv adventures(X)~~ interesting(Y)>0.5近似度: 1X = _G1248Y =_G1248是的BPL> sv adventures ~~ mystery带近似度:1是这两个目标都以近似度1成功,因为:冒险(X)和有趣(Y)弱统一,统一度0.9,大于0.5;P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131141冒险和神秘直接弱统一,统一度为0.5,大于0;比较算子是一个清晰的12。BPL> sv adventures(X)~~ mystery(Y)=D近似度:1X = _G1714Y = _G1714D =0.5;没有答案这个目标在近似度为1时成功,因为冒险(X)和神秘(Y)在统一度为0.5时弱统一是完全正确的。 没有更多的答案,因为只有一个弱统一代表返回。请注意,最后一个目标相当于以下目标:BPL> sv unify ( adventures ( X ) , mystery(Y),D)近似度:1X= _G2522Y= _G2522D= 0.5是的最后,注意Bousi Prolog还提供了标准的语法统一运算符运算符符号当它与弱统一算子“~~“分离使用5操作语义设是Horn子句的集合,R是由导出的一阶字母表上的相似关系 我们将弱SLD(WSLD)分辨率定义为一个过渡系统其中E是一组三元组<$G,θ,α<$(目标,替代,近似度),我们称之为计算状态,其过渡关系=WSLD(E×E)是满足以下条件的最小关系C=(A←Q)n,σ=wmgu(A,AJ)fail,λ=R(σ(A),σ(AJ))<$(<$AJ,QJ),θ,α<$=<$WSLD<$<$σ(Q,QJ),σ<$θ,λ<$α<$其中,σ是A和AJ的最弱一般单位,λ是通过将(扩展的)相似关系R应用于项σ(A)和σ(AJ),Q,和QJ将 a的集合应用于ms<<而获得的单位化度,并且旋转“C”表示C是A中的标准化分离子句。12也就是说,它是一个布尔运算符,其值范围在集合{0, 1}中。142P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131%solve(Goal):解决目标,给出计算机答案%及其逼近度。solve(Goal):-solve(Goal,Degree),write('With approximation degree:'),write(Degree),nl.%solve(Goal,Degree):如果存在反驳,则近似度为“Degree”的“Goal”为%solve(true,1):-!% Crisp Negation As Failure solve(\+(A),D):-!,(solve(A,DA))->(DA = 1 ->失败;D = 1);D = 1)。solve((A,B),D):-!,求解(A,DA),求解(B,DB),min(DA,DB,D)。solve((C -> A),D):-!,(solve(C,DC)-> solve(A,DA),min(DC,DA,D))。solve((C -> A;B),D):-!,(solve(C,DC)->solve(A,DA),min(DC,DA,D); solve(B,DB),D= DB)。solve((A;B),D):-!,(求解(A,DA),D = DA;求解(B,DB),D=DB)。%弱否定作为失败解决(不是(A),D):-!,(solve(A,DA))->(DA = 1 ->失败;D是1-DA); D = 1)。solve(A,1):-built(A),!,调用(A)。求解(A,D):-规则(H,B),unify(A,H,AD),UnidaCut(L),AD >=L,求解(B,DB),min(AD,DB,D)。见图4。 用于执行BPL代码针对WLD{G0}的WSLD推导是步骤序列WLD G0,id,1=WLD WSLD... = <$WSLD<$Gn,θn,λn<$。以及WSLD的反驳 是WSLD派生<$G0,id,1<$=<$WSLD<$<$Q,σ,λ<$,其中σ是一个由两个变量和λ组成的函数是它的近似度。当然,WSLD反驳计算一系列答案,在这个意义上,如果σ={x1/t1,. ,xn/tn}则无论代入θJ={x1/s1,.,xn/sn},保持s i<$R,λti(即, R(si,ti)≥λ),对于任何1≤i≤n,也是一个具有近似度的计算答案代换λ。 然而,在实践中,我们只返回答案族中的一个代表。正如第3节中所述,parserTranslator模块的parseTranslate/2谓词将源BPL代码的规则和事实翻译(编译)为中间Prolog代码表示,称为“TPL代码”(翻译的BPL代码)。更准确地说,规则“Head:- Body“被翻译成“rule( Head , Body ) “ , 事 实 “Head“ 被 翻 译 成 “rule ( Head ,true)”。元解释器根据WSLD解析原则执行TPL代码。图4显示了元解释器的实现。以下条款是WSLD解析原则实现的核心:solve(true,1):-!solve((A,B),D):-!,solve(A,DA),solve(B,DB),min(DA,DB,D).求解(A,D):-规则P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131143(H,B),统一(A,H,AD),最小化(A,B,D),最小化(A,B,D)。这些条款申明:144P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131• 目标真值以近似度1求解• 为了求解一个合取目标(A,B),首先求解原子A,得到一个近似度DA,然后求解剩余的合取目标B,得到一个近似度DB。洞合取目标的逼近度是DA和DB的最小值。• 为了求解原子A,选择一个规则,其头部H和A以近似度AD弱统一。如果AD大于或等于当前LambdaCut值L(见下文),则求解规则的主体B,获得近似度DB。然后,目标的逼近度是AD和DB的最小值。6割和非的我们可以通过所谓的“切”来限制计算中搜索空间的扩展。当LambdaCut函数标记被设置为不同于零的值时,如果计算的近似度低于存储的LambdaCut值,则弱统一过程失败。因此,计算也会失败,并且从该选择点开始的所有可能的分支都将被丢弃。 默认情况下,LambdaCut值为零(即,不对计算施加任何限制)。但是,可以通过BPL程序内部引入的LambdaCut指令或BPL shell的lc命令将LambdaCut标记设置为不同的值。lc命令可用于显示当前Lambdacut值或设置新的Lambdacut值。Bousi Prolog可以使用Prolog语言的标准切割谓词“!“, 但 以 间 接 的 方 式 嵌入 到 更 具 声 明 性 的 谓 词 和 运 算 符 中 , 例 如 : n o t ( 弱 否 定 作 为 失 败 - 参见 下 文 - ) , \ + ( 明 确 否 定 作 为 失败- 参见下面的-)和->(if-then和if-then-else运算符)。另一方面,Bousi Prolog提供了一个操作符“\+“来表示作为失败的明确否定,并提供了一个谓词“not“来表示作为失败的正如我们将看到的,最后一个呈现出柔和的形状,而不是特征函数一个普通的集合,其值在实区间[0, 1]内变化。这些不同类型的Negation的实现如下:• 只有当solve(A,DA)以逼近度DA成功时,目标(A)才失败=1。否则,近似度为1的\+(A)为真。也就是说,“% Crisp negation as failure solve(\+(A),D):-!,(solve(A,DA))->(DA = 1->失败; D = 1); D = 1)。• 一个目标不是(A)失败,只有当解决(A,DA)成功,近似度DA=1。当solve(A,DA)成功,但逼近度DA小于1时,not(A)也成功,逼近度D = 1- DA。如果是solve(A,DA)失败的情况,则在近似度D = 1的情况下,不(A)成功。%弱否定为失败P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131145solve(not(A),D):-!,(solve(A,DA))->(DA = 1 ->失败;D是1-DA); D = 1)。7相关工作在过去的十年中,已经提出了在经典逻辑程序中使用的具有相似关系的归结规则[23]的几个模糊扩展尽管所有这些方法都依赖于用基于相似性的统一算法来取代经典的句法统一算法,但我们可以区分两条主要的研究路线:第一种是以理论著作[6,7]和[5]为代表的,其中首次提出了相似统一的概念。然而,他们在其定义中使用了云、云系统和闭包运算符的概念。从我们的观点来看,这些概念危及使用它们的操作语义的效率,因为它们的计算成本很高。这条工作线的主要实际实现是模糊逻辑语言LIKALOG[4]:它主要是使用上述概念和相当直接的技术在Prolog中实现的第二条研究路线由理论著作[24]和[25]代表,其中发展了弱统一的概念。所提出的算法是Martelli和Montanari用于语法统一的统一算法的干净扩展[ 20 ]。从我们的观点来看,弱统一算法更适合计算。 如前所述,弱统一算法与SLD归结规则的结合产生了弱SLD操作语义,我们部分地将其用于Bousi Prolog实现。 在[19]中,提出了一种名为SiLog的模糊逻辑编程语言的解释器。SiLog是用Java编写的,实现了一个基于弱SLD操作语义的推理引擎。SiLog提供了一个图形界面,以帮助程序员管理相似性关系。这个图形界面是一个逐步过程的表面,首先在[24]中定义,该过程从有限集合U和相似度的有序集合Λ ={λ0,. ,λn},其中0 = λ0<λ1<. <λn= 1。该算法是交互式的,因为对于每次迭代,程序员根据主观选择定义一组更精细的分区(他决定U的哪些元素可以被认为是具有一定近似度λi的相似元素)。结束这一段,让我们说,Bousi从SiLog的Prolog di prologers在以下相关点:(i) Bousi Prolog是一个真正的Prolog扩展(涵盖了Prolog语言的主要特性),而不是一个能够执行弱SLD解析原则的简单解释器。(ii) Bousi Prolog以与SiLog不同的方式管理相似性关系。Bousi Prolog允许通过一组相似性方程对相似性关系进行部分指定。相似性方程是程序的组成部分,实际上,它们定义了一个任意的模糊关系。开始146P. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131使用能够生成原始模糊关系的几个闭包的算法,从相似性方程中,可以可选地获得邻近关系(当生成了自反的对称闭包时)或相似性关系(当除了自反的对称闭包之外,还生成了传递闭包时,这是实际的缺省选项)。这样的机制更灵活和有用。一方面,不需要用户最后,允许使用邻近关系可能会产生表达优势[26],并且为了解决某些问题,它可能是决定性的(见例2.3)。(iii) 由于在实践中,Bousi Prolog操作机制使用邻近关系(以及相似关系),因此它比仅基于相似关系的SiLog操作机制尽管像LIKELOG或SiLog这样的系统很有吸引力,但提供的关于它们的实施细节数量有限,无法进行更广泛的比较。此外,据我们所知,这些系统的实施并不公开可用,因此不可能与我们的系统进行实验比较另一项相关工作是分类分析和信息检索的广泛研究领域[22,11],因为该领域的许多建议都是基于本体的使用[8,10]。本体定义(具体化)概念、关系和其他与建模语义域相关的区别。它可以是简单的术语集合(有或没有明确定义的含义),组织成一个层次结构,也可以是复杂的语义网络[13,12]。例2.4表明,使用像术语的模糊分类法这样简单的本体也是有用的。相似方程可以描述这样一类模糊本体。8结论和进一步研究在本文中,我们提出的主要特点和实现细节的编程语言,我们称之为Bousi的Prolog(“Bousi”是西班牙语的首字母缩写为“模糊统一的相似性”)。它可以被看作是Prolog的扩展,它结合了基于相似性的模糊统一,从而使系统非常适合用于近似推理和可扩展的查询回答。所谓的弱统一算法[25]是基于在句法域上定义的相似关系。在句法层次上,Bousi Prolog用相似方程表示相似关系. Bousi Prolog的语法是标准Prolog语言的扩展:一般来说,Bousi Prolog程序是一组Prolog子句加上一组相似性方程。Bousi Prolog实现了一个弱统一运算符,用“模糊”表示弱统一运算符可以包含在查询或规则的主体中。虽然Bousi Prolog实现了标准Prolog的主要功能,但其他PrologP. Julián-Iranzo等人/理论计算机科学电子笔记248(2009)131147功能,如实现用户定义的运算符和使用模块的能力,没有包括在内。在未来,我们希望将这些缺失的功能添加到我们的语言中。此外,我们希望改进我们的系统的某些模块,如解析器,并纳入新的非标准功能。关于最后一点,我们正在努力为系统添加:模糊本体库和[29]中提出的模糊本体自动生成器。另一方面,Bousi Prolog使用的操作语义是通过元解释器实现的。从实现的角度来看,这是一种廉价的解决方案为了解决效率问题,我们研究了如何将弱统一算法引入Warren抽象机。Prolog的纯子集的一些初步结果可以在[16]中找到。此外,我们希望开发这一系列的工作,以涵盖Bousi Prolog的所有现在和未来的功能,以更有效的实现。最后,在理论方面,正如所说,Bousi Prolog实际上可以使用邻近关系代替相似关系(这是前者的子集)。因此,结合SLD归结原理研究邻近关系的形式性质是非常重要的。确认我们要感谢Francisco
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 基于嵌入式ARMLinux的播放器的设计与实现 word格式.doc
- 经典:大学答辩通过_基于ARM微处理器的嵌入式指纹识别系统设计.pdf
- 嵌入式系统课程设计.doc
- 基于飞思卡尔控制器的智能寻迹车设计ARM基础课程课程设计.doc
- 下载基于ARM7的压电陶瓷换能器导纳圆测量仪的研制PDF格式可编辑.pdf
- 课程设计基于ARM的嵌入式家居监控系统的研究与设计.doc
- 论文基于嵌入式ARM的图像采集处理系统设计.doc
- 嵌入式基于ARM9的中断驱动程序设计—课程设计.doc
- 在Linux系统下基于ARM嵌入式的俄罗斯方块.doc
- STK-MirrorStore Product Release Notes(96130)-44
- STK-MirrorStore Storage Connectivity Guide for StorageTek Disk A
- 龙虾养殖远程监控系统的设计与实现数据采集上位-机软件模块-本科毕业设计.doc
- 龙虾养殖远程监控系统的设计与实现数据采集上位-机软件模块-.doc
- 龙虾养殖远程监控系统的设计与实现数据采集上位-机软件模块-本科生毕业论文.doc
- 麻阳风貌展示网站的设计与实现毕业论文.pdf
- 高速走丝气中电火花线切割精加工编程设计.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功