Skip to main content
QUICK REVIEW

[论文解读] A Compiler for Ordered Logic Programs

James P. Delgrande, Torsten Schaub|ArXiv.org|Mar 8, 2000
Logic, Reasoning, and Knowledge参考文献 15被引用 8
一句话总结

该论文提出PLP,一种将具有规则间显式优先级关系的有序逻辑程序编译为标准扩展逻辑程序的编译器,采用答案集语义。通过使用$s\prec t$等原子在对象层面上编码优先级,PLP确保原始程序中的优先答案集对应于编译后输出中的稳定模型,从而可与现有系统(如dlv和smodels)无缝集成,无需修改其底层推理算法。

ABSTRACT

This paper describes a system, called PLP, for compiling ordered logic programs into standard logic programs under the answer set semantics. In an ordered logic program, rules are named by unique terms, and preferences among rules are given by a set of dedicated atoms. An ordered logic program is transformed into a second, regular, extended logic program wherein the preferences are respected, in that the answer sets obtained in the transformed theory correspond with the preferred answer sets of the original theory. Since the result of the translation is an extended logic program, existing logic programming systems can be used as underlying reasoning engine. In particular, PLP is conceived as a front-end to the logic programming systems dlv and smodels.

研究动机与目标

  • 使现有逻辑编程系统(dlv、smodels)能够用于有序逻辑程序的推理,而无需修改其底层算法。
  • 提供一种声明式、可扩展的方式,表达非单调推理中规则及规则集之间的优先级。
  • 支持动态和上下文相关的优先级,包括优先级之间的优先级以及默认优先级。
  • 开发一个高效可扩展且与标准逻辑编程栈无缝集成的实际前端编译器。

提出的方法

  • 该编译器将有序逻辑程序转换为标准扩展逻辑程序,其中优先级约束通过辅助原子和默认否定进行编码。
  • 引入规则名称,以支持$s\prec t$之类的优先级语句,表达规则$s$优先于规则$t$。
  • 该转换确保编译后程序的答案集与原始有序程序在答案集语义下的优先答案集完全对应。
  • 通过为规则集命名并使用$m\prec m'$表达规则集之间的优先级,支持集合有序程序,从而实现复杂的优先级层次结构。
  • 系统使用Prolog实现编译器,利用标准构造和ECLiPSe的格式化打印功能,生成可读性良好的输出。
  • 编译器采用模块化设计,包含分别用于实例化、格式化打印以及与dlv和smodels系统接口的独立文件。

实验结果

研究问题

  • RQ1是否可以在不改变底层语义或推理引擎的前提下,在对象层面上表达逻辑程序中的优先信息?
  • RQ2如何将有序逻辑程序编译为标准逻辑程序,以确保优先答案集得以保留?
  • RQ3支持动态和上下文相关优先级(包括优先级之间的优先级)对编译过程有何影响?
  • RQ4在多大程度上可以通过前端编译器重用现有逻辑编程系统(如dlv和smodels)来实现对有序逻辑程序的推理?
  • RQ5编译后程序的性能在多大程度上随原始有序逻辑程序的规模和复杂度而变化?

主要发现

  • PLP编译器成功将有序逻辑程序转换为标准扩展逻辑程序,使得编译后程序的答案集与原始程序的优先答案集完全匹配。
  • 该系统支持单个规则之间、规则集之间以及优先级之间的优先级,支持复杂的推理层次结构。
  • 该转换效率高,编译后程序的规模相对于输入为多项式级别,确保可扩展至真实世界规模的问题。
  • 该方法可完全重用dlv和smodels作为推理后端,避免了对自定义推理算法的需求。
  • 该系统已用约300行Prolog代码实现,可在任何安装有dlv或smodels及ECLiPSe Prolog的平台上运行。
  • 使用TheoryBase系统中的基准测试验证表明,该方法保持了语义等价性,并在复杂非单调推理任务中表现出良好的可扩展性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。