Disjunctive Datalog: Difference between revisions

From testwiki
Jump to navigation Jump to search
imported>Citation bot
Altered journal. Add: doi, authors 1-1. Removed URL that duplicated identifier. Removed parameters. Some additions/deletions were parameter name changes. Upgrade ISBN10 to 13. | Use this bot. Report bugs. | Suggested by Abductive | Category:Logic programming languages | #UCB_Category 16/35
 
(No difference)

Latest revision as of 05:32, 21 April 2024

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.[1] DLV is an implementation of disjunctive Datalog.

Syntax

A disjunctive Datalog program is a collection of rules. A Template:Dfni is a clause of the form:Template:Sfn

a1anb1bm1n,0m

where b1, ..., bm may be negated, and may include (in)equality constraints.

Semantics

Template:Expand section

There are at least three ways to define the semantics of disjunctive Datalog:Template:Sfn

  • Minimal model semantics
  • Perfect model semantics
  • Disjunctive stable model semantics, which generalizes the stable model semantics

Expressivity

Template:Expand section

Disjunctive Datalog can express several NP-complete and NP-hard problems, including the travelling salesman problem, graph coloring, maximum clique problem, and minimal vertex cover.Template:Sfn These problems are only expressible in Datalog if the polynomial hierarchy collapses.

Implementations

The DLV (DataLog with Disjunction, where the logical disjunction symbol V is used) system implements the disjunctive stable model semantics.[2]

See also

Sources

Notes

Template:Reflist

References