Fusemate is a logic programming system that implements the possible model semantics for disjunctive logic programs. Its input language is centered around a weak notion of stratification with comprehension and aggregation operators on top of it. Fusemate is implemented as a shallow embedding in the Scala programming language. This enables using Scala data types natively as terms, a tight interface with external systems, and it makes model computation available as an ordinary container data structure constructor. The paper describes the above features and demonstrates them with a non-trivial use-case, the embedding of the description logic $\cal ALCIF$ into Fusemate's input language This version of the paper corrects an error in the published version, which used an unsuitable version of "blocking" in the $\cal ALCIF$ embedding.
翻译:Fusemate 是一个逻辑编程系统, 用于执行可能的脱钩逻辑程序的模式语义。 其输入语言围绕一个薄弱的分层概念, 以理解和汇总操作员为中心。 Fusemate 是作为Scala编程语言中的浅层嵌入而实施的。 这样可以使用 Scala 数据类型作为术语, 与外部系统保持紧密的界面, 并将模型计算作为普通的集装箱数据结构构建器。 本文描述上述特征, 并用非三边使用案例来展示这些特征, 将描述逻辑 $\ cal ALCIF$ 嵌入Fusemate 输入语言中。 此版本的纸张纠正了出版版本中的错误, 其中使用了 $/ cal ALFIF$ 嵌入的不合适的“ 阻塞” 版本 。