Design and implementation of aggregate functions in the DLV system
Disjunctive logic programming (DLP) is a very expressive formalism. It allows for expressing every property of finite structures that is decidable in the complexity class ΣP2(=NPNP). Despite this high expressiveness, there are some simple properties, often arising in real-world applications, which c...
Gespeichert in:
Veröffentlicht in: | Theory and practice of logic programming 2008-11, Vol.8 (5-6), p.545-580 |
---|---|
Hauptverfasser: | , , , , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | Disjunctive logic programming (DLP) is a very expressive formalism. It allows for
expressing every property of finite structures that is decidable in the
complexity class ΣP2(=NPNP). Despite this high expressiveness, there
are some simple properties, often arising in real-world applications, which
cannot be encoded in a simple and natural manner. Especially properties that
require the use of arithmetic operators (like sum, times, or count) on a set or
multiset of elements, which satisfy some conditions, cannot be naturally
expressed in classic DLP. To overcome this deficiency, we extend DLP by
aggregate functions in a conservative way. In particular, we avoid the
introduction of constructs with disputed semantics, by requiring aggregates to
be stratified. We formally define the semantics of the extended language (called ), and illustrate how it can be profitably used for representing
knowledge. Furthermore, we analyze the computational complexity of , showing that the addition of aggregates does not bring a higher
cost in that respect. Finally, we provide an implementation of in DLV—a state-of-the-art DLP system—and
report on experiments which confirm the usefulness of the proposed extension
also for the efficiency of computation. |
---|---|
ISSN: | 1471-0684 1475-3081 |
DOI: | 10.1017/S1471068408003323 |