没有合适的资源?快使用搜索试试~ 我知道了~
基于逻辑的符号AI生态系统:2 P-Kt软件X 16(2021)100817
≥≥≥ ≥≥软件X 16(2021)100817原始软件出版物2 P-Kt:基于逻辑的符号AI生态系统Giovanni Ciattoa,Roberta Calegarib,Andrea Omiciniaa意大利博洛尼亚大学计算机科学与工程系bAlma Mater Research Institute for Human-Centered Artificial Intelligence(AlmaAI),Alma Mater Universatorum-Università di Bologna,Italyar t i cl e i nf o文章历史记录:2021年1月11日收到收到修订版,2021年8月8日接受,2021年保留字:逻辑编程人工智能PrologKotlinuProloga b st ra ct到目前为止,基于逻辑的技术要么建立在Prolog语言之上,要么作为Prolog语言的扩展,大多数都是根据特定的推理过程,统一机制或知识表示技术定制的整体相反,为了最大限度地发挥其影响力,基于逻辑的技术应该支持并实现对逻辑编程的所有多方面贡献的通用开发。因此,我们提出了2 P-Kt,这是tuProlog项目的重新启动,为逻辑编程和符号AI提供了一个通用的,可扩展的,可互操作的生态系统版权所有©2021作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本0.15.2用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-21-00007代码海洋计算胶囊法律代码许可证ApacheLicense,Version2. 0使用Git的代码版本控制系统使用的软件代码语言、工具和服务Kotlin多平台、JVM、Node JS编译要求、操作环境依赖性Kotlin1.4.0、JDK11、Gradle 6.7如果可用,链接到开发人员文档/手册http://pika-lab.gitlab.io/tuprolog/2p-in-kotlin技术支持电子邮件咨询giovanni. unibo.it软件元数据当前软件版本0.15.2此版本可执行文件的永久链接https://github.com/tuProlog/2p-kt/releases/tag/0.15.2合法软件许可证ApacheLicense,Version2. 0计算平台/操作系统Android,Linux,Mac OS X,Microsoft Windows,类Unix安装要求依赖性Java Runtime Environment(JRE)11或Node JS12,Kotlin v.1.4.20, ANTLR SDK v.4 . 8 .* Java FX v.15,Kt-Math v.0.2.6,Clikt v.2.8.0如果可用,请链接到用户手册-如果正式出版,请在参考列表中引用该出版物http://pika-lab.gitlab.io/tuprolog/2p-in-kotlin技术支持电子邮件咨询giovanni. unibo.it2 P-Kt 的 GitHub 存 储 库 的 永 久 链 接 包 括 README.md 和LICENSE文件。源代码被划分为许多模块:每个模块都有自己的src/目录,其中源文件根据Gradle的与软件版本对应的标记*通讯作者。电子邮件地址:giovanni. unibo.it(Giovanni Ciatto),roberta.unibo.it(Roberta Calegari),andrea. unibo.it(Andrea Omicini)。https://doi.org/10.1016/j.softx.2021.100817将被审查从文档/模块生成的文档通常在Web上可用。1. 动机和意义计算逻辑(CL)是人工智能(AI)的一个基础研究领域,将形式逻辑作为计算的一种手段[1]。它对符号人工智能的渗透现在几乎是普遍的,并且越来越深入到子符号人工2352-7110/©2021作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxGiovanni Ciatto、Roberta Calegari和Andrea Omicini软件X 16(2021)1008172=≥人工智能[2,3]:CL在过去已经使前者的发展成为可能,现在正在推动后者走向可解释性和可解释性。无论是利用它来操纵符号或使子符号的解决方案,人类可理解的,共同的期望是,CL可以赋予软件系统与自动推理。一般来说,自动推理涉及三个主要方面:(i)逻辑,(ii)推理规则,(iii)归结策略。 埃吉逻辑形式上定义了知识是如何表示的,以及新知识是如何从先前知识中推导出来的。每个逻辑都有几个推理规则,规定了如何在特定情况下产生新知识。当与一些合适的解析策略相结合时,推理规则可以成为计算机可以执行的确定性算法。CL中存在许多逻辑- 例如,时态逻辑支持对事件的推理,道义逻辑支持对许可/禁止及其环境的推理,而FOL是通用的。此外,不同的逻辑存在不同的推理规则。有些是演绎的是归纳的--最后,当某个推理规则存在一个归结策略时,它可以被翻译到某个软件结构中,并用于为智能系统提供自动推理。那种软件通常被称为逻辑编程(LP)范例的一部分。尽管逻辑、推理规则和解析策略在LP文献中,只有相对少量的已经具体化为实际的基于逻辑的技术(以下简称LBT)。Prolog语言[4]代表了迄今为止最成功的故事[5]。它由一个定义良好的语言[6,7]和几个实现[8虽然Prolog的标准实现通过SLDNF推理规则[15,16]和深度优先解析策略来实现FOL,但大多数实现者已经扩展了Prolog以支持其他解析策略。这是Prolog实现支持的情况,例如,约束逻辑编程[17]、约束处理规则[18]、表格解析[19]等。由于FOL的多功能性,LP中的一种常见做法是在Prolog之上或从头开始开发LBT。在Prolog之上构建LBT通常是优选的,因为它们自动继承Prolog基本机制,包括例如执行(i)经由逻辑项的数据结构表示,(ii)经由Horn子句的知识表示,(iii)逻辑统一,(iv)逻辑信息的有效存储器内索引,(v)通过灵活的推理规则进行推理,以及(vi)元级编程。当LBT必须快速自举时,这是一个聪明的策略,但它可能导致互操作性差,Prolog定制的相反,当Prolog功能不适合某些特定问题时,LBT可以从头开始设计。这涉及重新设计和重新实现大部分LP功能。在[20]中,Sterling指出逻辑统一是LP对软件工程的一个主要约束,因此从Prolog中挑选出一个特定的功能,以获得其价值和好处。类似地,LP的许多方面本身在AI中也是有用的,因此每个组件都应该方便地具体化为单独可用的软件。因此,我们的目标是为可互操作的通用LP库创建一个开放的生态系统,虚拟地支持多个逻辑,推理规则和解决策略,并可能分解任何共享方面。LP作为智能应用的关键技术推动者的想法早在几十年前就已经存在TuProlog项目[21]是为此目的提出的。它由一个轻量级的、面向对象的、基于Java的Prolog实现[22]组成,可以用作JVM项目的库。尽管已经提出了几个版本然而,Prolog并不是LBT的灵丹妙药,LP不应该被简化为单独的Prolog。因此,在这里我们提出2 P-Kt:重新启动tuProlog项目,为LP提供一个共同的技术基础。认识到LP中的大多数机制都有可能具有普遍价值-tuProlog项目已经完全重新设计和重新编写,将LP功能拆分为最小的,松散耦合的,Prolog不可知的,可单独使用的,多平台的模块。这一选择背后的理由是,新的LP功能的2 P-Kt生态系统-可能针对其他推理规则和搜索策略-,最大限度地减少重复的功能和重用预先存在的功能,同时支持尽可能多的编程平台。从长远来看,2 P-Kt的目标是成为一个支持多种逻辑和推理机制的综合技术平台。最后,我们承认保持2 P-Kt在技术层面与尽可能多的平台广泛互操作的重要性,以最大限度地增加潜在采用者的数量。遵循这一目标,2 P-Kt利用了Kotlin多平台技术:每个模块目前支持JVM,JS和Android平台,而其他模块预计将很快得到支持。2. 软件描述2 P-Kt深深植根于LP,一种基于CL的编程范式[29,30]。在LP中,程序通常是理论(也称为理论)。知识库,KB),即逻辑形式的句子集合,表达关于某些领域的事实和规则,通常以子句的形式,即:头部:-主体1,..., 身体,躯体其中,Head和Bodyi都是原子公式,整个句子以陈述的方式阅读为逻辑蕴涵(从右到左)。如果n为0,则该子句被称为事实,否则被称为规则。原子公式是以P(t1,. . . 其中P是m元谓词(m0),t j是项。术语是LP语言中最常见的数据结构它们可以是常量(数字或原子/字符串),变量或递归元素命名的结构。结构用于表示子句、列表、集合或其他类型的表达式。逻辑求解器利用知识库通过一定的推理过程和求解策略来回答用户例如,Prolog解释器利用了一个植根于SLDNF解析原则的演绎过程[16,31]和一个深度优先策略。然而,存在其他选项,例如,溯因推理[32]、归纳推理[33]、概率推理[34]。它们中的每一个都代表了逻辑求解器的特定具体化。LP中的一个常见机制是用于在任何两个项之间构造最一般的统一符(MGU)的统一算法[35]。如果存在MGU,则其随后应用于术语,使它们在语法上相等。这是一个基本的砖,Giovanni Ciatto、Roberta Calegari和Andrea Omicini软件X 16(2021)1008173几乎所有的LP算法,不管特定的推理规则。总之,LP利用几种机制- 这些机制的子集本身可能是有用的。2P-Kt使LP机制单独可用,同时简化了在现有机制之上构建新机制2.1. 软件构架在架构上,2 P-Kt是一个通过几个松耦合模块支持LBT开发的框架。为了支持可重用性,每个模块通过OOP类型和方法的紧凑API分解相关功能。由于模块是2 P-Kt中的基本可部署单元,因此主要的LP功能在每次使用的基础上被划分为模块,使得它们可以选择性地作为其他项目的依赖项使用。2 P-Kt生态系统本身逐步组合这些模块,如图所示。1.一、为了最大限度地提高互操作性,2 P-Kt模块在Maven CentralRepository [36](用于基于JVM,Android或Kotlin的上下文)和NPM Registry [ 37 ](用于基于JavaScript的上下文)上都可以单独作为预编译库如果将所有2 P-Kt模块合并在一起,则其API的最相关方面可以总结为图2。该图显示了相关的LP方面是如何具体化为类型的:例如,逻辑术语(加上任何特定类型的术语,例如变量、结构等),逻辑替换、统一和MGU(由统一器计算),• 条款(包括规则、事实和指令),• 知识基础和逻辑理论,• 自动推理,通过求解器,和• 逻辑解s-i.e.回答用户接口公开相关的方面,并保持系统的可扩展性。例如,开发人员可以为Unificator和Solver接口定义自定义实现,以提供涉及统一的一些变体的新颖推理机制。当然,详细的图将包括更多的功能,因为2 P-Kt支持:(i)逻辑术语和理论的(反)序列化成/从标准数据表示格式(例如,JSON,或YAML),(ii)解析/格式化的条款和理论从/到具体的逻辑语法,如Prolog2.2. 软件功能在这里,我们在每个模块的基础上列举2 P-Kt功能。遵循Gradle约定,我们用:mo- duleName表示模块。最基本的模块是:core,它通过术语和子句公开用于知识表示的数据结构,而不是支持它们操作的方法开发人员可以通过扩展:core中的任何公共接口来添加新的术语/条款。此外,:core中的所有类型都利用了不可变的设计,使它们非常适合并发和多线程场景。逻辑术语和分句经常通过统一来比较或操纵。因此,我们将此机制封装在:unify模块。 它提供了统一器– i.e. any algorithm aimed at computing MGU out of terms orclauses 开发人员可以通过配置何时应将项视为相等来扩展此实现类似地,他们可以提供定制的统一器实现,以防他们需要特定的统一策略,或者需要不同的统一算法。LP中的另一个常见需求是将子句存储到有序(例如队列)或无序(例如多集)数据结构中的内存中,以及通过模式匹配(例如统一)进行有效检索。:theory模块遵循这一目的,通过提供诸如ClauseQueue、ClauseMultiset等概念--两者都涉及不可变(访问高效)和可变(更新高效)的实现。这些类型与常规集合不同,因为它们支持基于统一的检索和子句索引。Prolog有限合伙的实践还涉及对条款和条款的辅助操作,例如:(一)格式-转换--,以及(iii)解析出特定的具体语法。虽然格式化是通过TermFormat-ter实现的核心功能,但(反)序列化和解析需要自己的模块。因此,模块:serialize-core(resp. - 理论)支持术语的(去)序列化(分别理论)转换成JSON或YAML,通过人类可读的模式。因此,它支持分布式应用程序在互联网上交换逻辑知识类似地,解析术语(分别为理论)在Prolog语法中是通过:parser-core(resp.- 理论)模块,利用ANTLR技术[38]进行语言工程。也可以通过:solve使用逻辑求解器的通用APImodule.本质上,这个模块公开了Solver类型,表示任何能够执行某种逻辑解决方案的实体,为逻辑查询提供解决方案然而,决议涉及许多实际方面,这是正交w.r.t.任何特定的解决策略--例如,错误管理、通过库的可扩展性、I/O等。因此,:solve是一个相当清晰的(但不能直接使用)模块。开发人员可以通过提供Solver接口的实现来构建他们选择的推理过程,可能会以选择性的方式重用:solve中的功能。作为2P-Kt的一部分,目前有两种实现,即:solve-classic和-streams,都实现了Prolog的SLDNF解析策略。 后者基于基于状态机的设计[22]并且目前是稳定的,而:solve-streams是通过FP实现Prolog的实验性尝试,如[39]中所提出的。值得注意的是,它们都没有利用沃伦的抽象机[ 40 ]-Prolog通常建立在计算模型上。在Kotlin中开发Prolog类谓词的通用API也可用。他们利用FP和OOP来让开发人员使用复杂功能的库来扩展求解器,这些库在Kotlin中比LP更容易实现。在那里,数据流被视为由求解器消耗的解决方案流。这使得2 P-Kt非常适合处理长/无限数据流[41]。用户体验(UX)由另外两个模块实现,即:repl和:ide,分别提供CLI和GUI。虽然它们都针对特定于JVM的UX,但[42]中提供了一个实验性的基于Web的GUI,针对特定于JS的UX。图中描绘的其他模块。1不需要在这里进行具体描述:感兴趣的读者可以阅读[43]以了解更多细节。··Giovanni Ciatto、Roberta Calegari和Andrea Omicini软件X 16(2021)1008174Fig. 1.2 P-Kt项目地图。LP功能被划分为一些松散耦合和增量依赖的模块。3. 说明性实例图二、 2P-Kt public API. 为LP中的每个相关概念提供一个类型4. 影响2 P-Kt GUI(图3(a))是一个基于JavaFX的最小IDE。它允许用户交互式地利用LP,反复编辑理论,执行查询,并检查逻辑求解器的可变内部。用户可以一次打开多个文件,一个接一个或一次全部执行查询,或者检查当前加载的库、运算符、标志等CLI(图)3(b))允许用户经由文本控制器使用逻辑解算器。它支持交互式和非交互式操作模式。因此,它可以进入Read-Eval-Print-Loop,接受来自stdin的逻辑查询并逐步提示stdout的解决方案,或者简单地接受查询和理论作为参数并提示所有可能的解决方案。游乐场(Fig. 3(c))是一个模仿IDE的概念验证Web应用程序。它演示了如何在浏览器中以无服务器的方式执行2 P-Kt。它只需要在页面加载时连接互联网。之后,它不再与服务器交互,因为2 P-Kt JS脚本提供了一个自给自足的环境。因此,逻辑计算不需要任何沙箱,逻辑求解器也不需要出于安全原因的API限制最后,我们的基于Kotlin的DSL for Prolog [43]可以在Kotlin项目中使用(图10)。3(d)),通过使用任何:-*模块作为依赖项。它为逻辑程序员提供了一种将LP注入Kotlin脚本的语法方法,使其可以继承许多可用于Kotlin开发的工具,例如。类型检查、linting、代码完成、调试等。2 P-Kt技术可能会影响许多研究领域。就LP而言,2 P-Kt为实施/试验/扩展文献中提出的许多解决方案提供了坚实的技术基础-例如,溯因推理[32],规则归纳[33],概率推理[34],标签:LP [44]如[3]所示,多智能体系统社区对可互操作和通用的LBT有在那里,2 P-Kt通过多种机制提供了支持试剂反应的技术基质2 P-Kt在协调领域也是一个有价值的选择[45]:许多基于元组的协调模型和技术利用LP和LBT [46]。在那里,2 P-Kt可以实现可互操作的Linda元组空间-关于编程范式,虽然大多数成功的编程范式越来越多地融入现代编程语言,但LP仍然有点孤立[43]。Kotlin DSL为LP与其他范式的整合铺平了道路。最后,2 P-Kt在XAI领域发挥作用[48]。整合符号和子符号AI-Giovanni Ciatto、Roberta Calegari和Andrea Omicini软件X 16(2021)1008175图三. 2 P-Kt的用法示例未来的研究方向。由于其模块化和互操作性,2 P-Kt已经能够解释涉及符号操纵或自动推理的相关研究问题。此外,2 P-Kt使探索如何:(i)集成不同的LP方面,(ii)将LP与其他AI技术混合,以及(iii)利用LP构建灵活的智能系统。沿着这些路线,我们的目标包括:(i)创建全面的解决方案,利用多个推理过程,知识表示手段等,在回答用户就目标(i)而言,我们正在设计一个统一的API用于概率性、外展性或并发性解决。这将Giovanni Ciatto、Roberta Calegari和Andrea Omicini软件X 16(2021)1008176使进一步研究混合自动推理过程成为可能,其中多个推理过程在解析中动态地交织。就目标(ii)而言,我们正在为机器学习和神经网络设计基于逻辑的API。这样的API允许开发者通过LP定义、训练、评估和使用子符号预测器。这将使进一步的研究w.r.t.符号和子符号AI的集成,机器学习工作流程的自动化,以及LP中诱导知识的利用。最后,关于目标(iii),我们正在BDI架构中集成多个逻辑。然后,智能代理可以针对手头的情况采用最适当的推理或知识表示方法。因此,2 P-Kt通过提供底层推理设施,使进一步的研究能够利用不同的逻辑来支持软件代理的智能,特定于上下文的行为2 p-kt采用。虽然tuProlog已经在工业界和学术界得到了利用[51],但2 P-Kt仅在学术界使用。2 P-Kt已经(或即将)成为许多科学贡献的基础技术。等一些国家如TuCSoN[24],ReSpecT[25],LPaaS[26]或Tenderfone[27]在tuProlog上利用它们的实现,并且正在迁移到2 P-Kt上。其他人,如TuSoW [47],Arg 2 P [28]或我们基于Kotlin的DSL [43]已经利用了2 P-Kt。5. 结论本文介绍了2 P-Kt,一个开放的,通用的,面向LP的Kotlin多平台生态系统,通过几个松散耦合的模块支持多种自动推理机制。每个模块使一些特定的LP方面单独使用。选择性地重用/扩展模块使得能够引导新的LBT,而无需从头开始重新实现所有内容或生产以Prolog为中心的单片。特别是,2 P-Kt支持混合推理程序,涉及符号和子符号技术。2 P-Kt生态系统的结构是通过保持可重用性,可扩展性和互操作性来构建的。它的功能包括知识表示,(反)序列化,解析(和格式化设施),统一,子句内存索引和存储设施,通过SLDNF,UX和丰富的Kotlin API为开发人员进行逻辑推理。它们都支持JVM、JavaScript和Android平台。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作确认R. Calegari得到了H2020 ERC项目“CompuLaw”(G.A. 833647)。A. Omicini 得 到 了 CHIST-ERA IV 项 目 “EXPECTATION " ( G.A.CHIST-ERA-19-XAI-005)。作者要感谢Enrico Siboni在2 P-Kt开发早期阶段的引用[1]保尔森LC。计算逻辑:起源与应用。Proc R Soc Lond Ser A Math Phys EngSci2018;474(2210):20170872。http://dx.doi的网站。org/10.1098/rspa.2017.0872。[2]作者:A.关于XAI的符号和子符号技术的集成:一项调查。In:Baldoni M,Bergenti F,Monica S,Vizzari G,editors. Intell Artif 2020;14(1):7-32,第二十版研讨会“从对象到代理”的特刊。网址://dx.doi.org/10.3233/IA-190036网站。[3]Calegari R,Ciatto G,Mascardi V,Omicini A. 多智能体系统的基于逻辑的技术:一个系统的文献综述。In:Bergenti F,Baldoni M,Winikoff M,Seghrouchni AEF,editors. Auton Agents Multi-Agent Syst 2021;35(1):1 : 1-67 , 集 合 “ 软 件 代 理 和 基 于 代 理 的 软 件 开 发 研 究 的 当 前 趋 势 ” 。http://dx.doi的网站。org/10.1007/s10458-020-09478-3。[4]Colmerauer A,P. P. Prolog的诞生。In:Lee JAN,Sammet JE,editors.编程 语 言 历 史 会 议 ( HOPL-II ) 。 ACM; 1993 年 , 第 37-52 页 。http://dx.doi.org/10.1145/154766.155362网站。[5] Calegari R,Ciatto G,Denti E,Omicini A.智能系统的基于逻辑的技术:最新技术和前景。在:Susilo W,编辑.信息2020;11(3):1 -29,特刊“信息新兴研究成果10周年”。http://dx.doi.org/10.3390/info11030167.[6]ISO/IEC JTC 1/SC 22技术委员会。ISO/IEC 13211-1:1995:信息技术.程序设计语言. Prolog.第1部分:通用核心.ISO/IEC 13211-1,ISO/IEC; 1995,第199页,URLhttps://www.iso.org/standard/21413.html。[7]ISO/IEC JTC 1/SC 22技术委员会。ISO/IEC 13211-2:2000:信息技术.程序设计语言. Prolog.第2部分:模块。ISO/IEC 13211-2,ISO/IEC; 2000,第23页,URLhttps://www.iso.org/standard/20775.html。[8]BProlog主页。2021,URLhttp://www.picat-lang.org/bprolog。[Last访问时间:2021年8月8日]。[9]再见!Prolog主页。2021,URLhttps://ciao-lang.org。[Last访问时间:2021年8月8日]。[10] 首页>关于我们2021,URLhttps://eclipseclp.org。[最后访问日期:2021年8月8日][11]SICSTus Prolog 主 页 。 2021 , URLhttps://sicstus.sics.se 。 [Last 访 问 时 间 :2021年8月8日]。[12]SWI Prolog主页。2021,URLhttps://www.swi-prolog.org。最后访问时间:2021年8月8日。[13] 首页>关于我们2021,URLhttp://tau-prolog.org。[Last访问:八月8,2021年]。[14] XSB Prolog主页。2021,URLhttp://xsb.sourceforge.net。[Last访问时间:2021年8月8日[15]Robinson J.基于归结原理的面向机器的逻辑。J ACM 1965;12(1):23-41.http://dx.doi.org/10.1145/321250.321253网站。[16]克拉克KL。否定就是失败。In:Gallaire H,Minker J,editors.逻辑和数据库。Boston,MA:Springer; 1978,p. 293-322. http://dx.doi.org/10的网站。1007/978-1-4684-3384-5_11。[17]Jaffar J,Lassez J-L.约束逻辑编程。在:第14届ACM SIGACT- SIGPLAN研讨会上编程语言的原则(POPL'87)。New York,NY,USA:Association forComputing Machinery; 1987,p. 111-9. http://dx.doi.org/10.1145/41625.41635网站。[18]Frühlynth TW.约束处理规则的理论与实践。J Log Program 1998;37(1-3):95-138. http://dx.doi.org/10.1016/S0743-1066(98)10005-5.[19]Swift T,Warren DS. XSB:用表格逻辑编程扩展Prolog。理论实践逻辑程序2012;1-2 ( 1-2 ) : 157-87 。 http://dx.doi.org/10 的 网 站 。1017/S1471068411000500。[20]SterlingL ,Ya lJasminalpU. 逻 辑 程序 设计和软 件 工程 -软 件设 计 的 含义 。Knowl Eng Rev 1996;11(4):333-45. 网址://dx.doi.org/10.1017/S026988890000802X网站。[21]放大图片作者:Denti E,Omicini A,Ricci A. tuProlog:一个用于Internet应用程序和基础设施的轻量级Prolog。In:Ramakrishnan I,editor.声明性语言的实践方面。计算机科学讲义,第1990卷,Springer Berlin Heidelberg; 2001年,第184-98页诉讼网址://dx.doi.org/10.1007/3-540-45241-9_13网站。[22]Piancastelli G,Benini A,Omicini A,Ricci A.的体系结构和设计一个可延展的面向对象的Prolog引擎。In:Wainwright RL,Haddad HM,MenezesR,Viroli M,editors.第23届ACM应用计算研讨会(SAC 2008),第1卷。Fortaleza , Ceará , Brazil : ACM; 2008 , p. 191-7 , Special Track onProgrammingLanguages.http://dx.doi.org/10.1145/1363686 的 网 站 。1363739。[23]Denti E,Omicini A,Calegari R.你的Prolog:使Prolog无处不在2013年《 中 国 日 报 》 . 网 址 http://www.cs.nmsu.edu/ALP/2013/10/tuprolog-making-prolog-ubiquitous/.Giovanni Ciatto、Roberta Calegari和Andrea Omicini软件X 16(2021)1008177[24]Omicini A , Zambonelli F. 协 调 互 联 网 应 用 开 发 。 In : Tolksdorf R ,Ciancarini P , editors. Auton Agents Multi-Agent Syst 1999;2 ( 3 ) : 251http://dx.doi.org/10.1023/A:1010060322135网站。[25]Omicini A,Denti E.从元组空间到元组中心。科学计算计划2001;41(3):277-94. http://dx.doi.org/10.1016/S0167-6423(01)00011-9.[26]Calegari R, Ciatto G, Mariani S, Denti E, Omicini A. LPaaS as mIcro-intelligence:Enhancing IoT with symbolic reasoning.大数据认知计算2018;2(3). http://dx.doi.org/10.3390/bdcc2030023网站。[27] [10]杨文,李文,李文.从代理到区块链:集成的阶梯。In:Tonelli R,Ortu M,Pinna A,editors.In:Advances in Blockchain Technology andApplications 2020 , Appl Sci In : Advances in Blockchain TechnologyandApplications2020,2020;10(21):7460:1http://dx.doi.org/10.3390/app10217460网站,[28]Pisano G , Calegari R , Omicini A , Sartor G. Arg-tuProlog : 一 个 基 于tuProlog的论证框架。In:Calimeri F,Perri S,Zumpano E,editors. CILC2020 -意大利计算逻辑会议。第35届意大利计算逻辑会议论文集。CEUR研讨会论文集,第2719卷,亚琛,德国:Sun SITE Central Europe,亚琛工业大学;2020年,第51-66页http://ceur-ws.org/Vol-2710/paper4.pdf[29] 劳埃德JW,编辑。计算逻辑。计算逻辑:它的起源和应用。ESPRIT基础研究系列,柏林,海德堡:Springer; 1990年,http://dx.doi.org/10.1007/978-3-642-76274-1。[30] Metakides G,Nerode A.逻辑原理与逻辑程序设计。Studies in computerscience and artificial intelligence,Amsterdam,The Netherlands:North-Holland; 1996,URLhttps://www.elsevier.com/books/principles-of-logic-and-logic-programming/metakides/978-0-444-81644-3.[31]科瓦尔斯基岭谓词逻辑作为编程语言。在:罗森菲尔德JL,编辑.信息处理.第六届IFIP大会论文集。North-Holland; 1974,p. 569-74.[32]科瓦尔斯基 ·冯泰溯因逻辑程序设计的敌我识别证明过程. J Log Program1997;33(2):151-65. http://dx.doi.org/10.1016/S0743-1066(97)00026-5.[33]Muggleton S,de Raedt L.归纳逻辑程序设计:理论与方法. J Log Program1994;19-20 ( Suppl. 1 ) :629-79 , Special Issue : Ten Years逻 辑编 程 。http://dx.doi.org/10.1016/0743-1066(94)90035-3.[34]作者:John A.概率(逻辑)编程概念。Mach Learn 2015;100(1):5-47.http://dx.doi.org/10.1007/s10994-015-5494-z网站。[35]Martelli A , Montanari U.一 个 有 效 的 统 一 算 法 。 ACM 跨 计 划 Lang Syst1982;4(2):258-82. http://dx.doi.org/10.1145/357162的网站。357169。[36]2P-Kt. Maven Central Repository 上 的 Artefacts 。 2021 年 , URL https ://search. maven.org/search? q=g:it.unibo.tuprolog. [Last访问时间:2021年8月8日]。[37] 2P-Kt.NPM登记系统中的伪影2021,URLhttps://www.npmjs.com/org/tuprolog.[最后访问日期:2021年8月[38]帕 尔 ·T ANTLR 4 的 权 威 参 考 。第 2 版 , Pragmatic Book-shelf; 2013 ,URLhttps://www.oreilly.com/library/view/the-definitive-antlr/9781941222621/。[39]卡尔松函数式程序设计中Prolog的实现。New Gener Comput 1984;2(4):347-59. http://dx.doi.org/10.1007/BF03037326网站。[40]沃伦DH。一个抽象的Prolog指令集。Technical note 309,AI Center,SRIInternational;1983,URLhttps://www.sri.com/publication/an-abstract-prolog-determination-set/.[41]Ciatto G,Calegari R,Omicini A.在Prolog中通过回溯进行惰性流操作:2 p-kt的例子。In:Faber W,Friedrich G,Gebser M,Morak M,editors.人工智能中的逻辑。计算机科学讲义,第12678卷,Springer; 2021年,第407-20页,第17届欧洲会议,JELIA 2021,虚拟活动,2021年5月17-20日,会议记录。http://dx.doi.org/10.1007/978-3-030-75775-5_27网站。[42]2P-Kt.操场2021,URLhttps://pika-lab.gitlab.io/tuprolog/2p-kt-web。[最后访问日
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功