15 research outputs found
Epistemic Logic Programs with World View Constraints
An epistemic logic program is a set of rules written in the language of Epistemic Specifications, an extension of the language of answer set programming that provides for more powerful introspective reasoning through the use of modal operators K and M. We propose adding a new construct to Epistemic Specifications called a world view constraint that provides a universal device for expressing global constraints in the various versions of the language. We further propose the use of subjective literals (literals preceded by K or M) in rule heads as syntactic sugar for world view constraints. Additionally, we provide an algorithm for finding the world views of such programs
External Behavior of a Logic Program and Verification of Refactoring
Refactoring is modifying a program without changing its external behavior. In this paper, we make the concept of external behavior precise for a simple answer set programming language. Then we describe a proof assistant for the task of verifying that refactoring a program in that language is performed correctly
An application of Answer Set Programming in Distributed Architectures: ASP Microservices
We propose an approach to the definition of microservices with an Answer Set
Programming (ASP) `core', where microservices are a successful abstraction for
designing distributed applications as suites of independently deployable
interacting components. Such ASP-based components might be employed in
distributed architectures related to Cloud Computing or to the Internet of
Things (IoT).Comment: In Proceedings ICLP 2020, arXiv:2009.0915
Logic Programming Applications: What Are the Abstractions and Implementations?
This article presents an overview of applications of logic programming,
classifying them based on the abstractions and implementations of logic
languages that support the applications. The three key abstractions are join,
recursion, and constraint. Their essential implementations are for-loops, fixed
points, and backtracking, respectively. The corresponding kinds of applications
are database queries, inductive analysis, and combinatorial search,
respectively. We also discuss language extensions and programming paradigms,
summarize example application problems by application areas, and touch on
example systems that support variants of the abstractions with different
implementations