Английская Википедия: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.[1] DLV is an implementation of disjunctive Datalog.

Syntax

A disjunctive Datalog program is a collection of rules. A Шаблон:Dfni is a clause of the form:Шаблон:Sfn

<math>a_1 \vee \dots \vee a_n \leftarrow b_1 \wedge \dots \wedge b_m \quad 1 \leq n, 0 \leq m</math>

where <math>b_1</math>, ..., <math>b_m</math> may be negated, and may include (in)equality constraints.

Semantics

Шаблон:Expand section

There are at least three ways to define the semantics of disjunctive Datalog:Шаблон:Sfn

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

Expressivity

Шаблон: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.Шаблон: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

Шаблон:Reflist

References