Disjunctive Datalog
Disjunctive Datalog is an extension of the logic programming language Datalog that allows disjunctions in the heads of rules. This extension enables disjunctive Datalog to express several NP-hard problems that are not known to be expressable in plain Datalog. Disjunctive Datalog has been applied in the context of reasoning about ontologies in the semantic web. DLV is an implementation of disjunctive Datalog.
Syntax
A disjunctive Datalog program is a collection of rules. A is a clause of the form:where,..., may be negated, and may include equality constraints.
Semantics
There are at least three ways to define the semantics of disjunctive Datalog:- Minimal model semantics
- Perfect model semantics
- Disjunctive stable model semantics, which generalizes the stable model semantics