96,135 research outputs found
Modules and Logic Programming
We study conditions for a concurrent construction of proof-nets in the
framework developed by Andreoli in recent papers. We define specific
correctness criteria for that purpose. We first study closed modules (i.e.
validity of the execution of a logic program), then extend the criterion to
open modules (i.e. validity during the execution) distinguishing criteria for
acyclicity and connectability in order to allow incremental verification
Maude: specification and programming in rewriting logic
Maude is a high-level language and a high-performance system supporting executable specification and declarative programming in rewriting logic. Since rewriting logic contains equational logic, Maude also supports equational specification and programming in its sublanguage of functional modules and theories. The underlying equational logic chosen for Maude is membership equational logic, that has sorts, subsorts, operator overloading, and partiality definable by membership and equality conditions. Rewriting logic is reflective, in the sense of being able to express its own metalevel at the object level. Reflection is systematically exploited in Maude endowing the language with powerful metaprogramming capabilities, including both user-definable module operations and declarative strategies to guide the deduction process. This paper explains and illustrates with examples the main concepts of Maude's language design, including its underlying logic, functional, system and object-oriented modules, as well as parameterized modules, theories, and views. We also explain how Maude supports reflection, metaprogramming and internal strategies. The paper outlines the principles underlying the Maude system implementation, including its semicompilation techniques. We conclude with some remarks about applications, work on a formal environment for Maude, and a mobile language extension of Maude
Modular Logic Programming: Full Compositionality and Conflict Handling for Practical Reasoning
With the recent development of a new ubiquitous nature of data and the profusity
of available knowledge, there is nowadays the need to reason from multiple sources
of often incomplete and uncertain knowledge. Our goal was to provide a way to
combine declarative knowledge bases – represented as logic programming modules
under the answer set semantics – as well as the individual results one already inferred
from them, without having to recalculate the results for their composition and without
having to explicitly know the original logic programming encodings that produced
such results. This posed us many challenges such as how to deal with fundamental
problems of modular frameworks for logic programming, namely how to define a
general compositional semantics that allows us to compose unrestricted modules.
Building upon existing logic programming approaches, we devised a framework
capable of composing generic logic programming modules while preserving the
crucial property of compositionality, which informally means that the combination of
models of individual modules are the models of the union of modules. We are also
still able to reason in the presence of knowledge containing incoherencies, which is
informally characterised by a logic program that does not have an answer set due
to cyclic dependencies of an atom from its default negation. In this thesis we also
discuss how the same approach can be extended to deal with probabilistic knowledge
in a modular and compositional way.
We depart from the Modular Logic Programming approach in Oikarinen &
Janhunen (2008); Janhunen et al. (2009) which achieved a restricted form of compositionality
of answer set programming modules. We aim at generalising this
framework of modular logic programming and start by lifting restrictive conditions
that were originally imposed, and use alternative ways of combining these (so called
by us) Generalised Modular Logic Programs. We then deal with conflicts arising
in generalised modular logic programming and provide modular justifications and
debugging for the generalised modular logic programming setting, where justification
models answer the question: Why is a given interpretation indeed an Answer Set?
and Debugging models answer the question: Why is a given interpretation not an
Answer Set?
In summary, our research deals with the problematic of formally devising a
generic modular logic programming framework, providing: operators for combining
arbitrary modular logic programs together with a compositional semantics; We
characterise conflicts that occur when composing access control policies, which are
generalisable to our context of generalised modular logic programming, and ways of
dealing with them syntactically: provided a unification for justification and debugging
of logic programs; and semantically: provide a new semantics capable of dealing
with incoherences. We also provide an extension of modular logic programming
to a probabilistic setting. These goals are already covered with published work. A prototypical tool implementing the unification of justifications and debugging is
available for download from http://cptkirk.sourceforge.net
Maude: specification and programming in rewriting logic
AbstractMaude is a high-level language and a high-performance system supporting executable specification and declarative programming in rewriting logic. Since rewriting logic contains equational logic, Maude also supports equational specification and programming in its sublanguage of functional modules and theories. The underlying equational logic chosen for Maude is membership equational logic, that has sorts, subsorts, operator overloading, and partiality definable by membership and equality conditions. Rewriting logic is reflective, in the sense of being able to express its own metalevel at the object level. Reflection is systematically exploited in Maude endowing the language with powerful metaprogramming capabilities, including both user-definable module operations and declarative strategies to guide the deduction process. This paper explains and illustrates with examples the main concepts of Maude's language design, including its underlying logic, functional, system and object-oriented modules, as well as parameterized modules, theories, and views. We also explain how Maude supports reflection, metaprogramming and internal strategies. The paper outlines the principles underlying the Maude system implementation, including its semicompilation techniques. We conclude with some remarks about applications, work on a formal environment for Maude, and a mobile language extension of Maude
Promoting Modular Nonmonotonic Logic Programs
Modularity in Logic Programming has gained much attention over the past years. To date, many formalisms have been proposed that feature various aspects of modularity. In this paper, we present our current work on Modular Nonmonotonic Logic Programs (MLPs), which are logic programs under answer set semantics with modules that have contextualized input provided by other modules. Moreover, they allow for (mutually) recursive module calls. We pinpoint issues that are present in such cyclic module systems and highlight how MLPs addresses them
- …