Edit me

Subsumption permits to delete more specific tuples by more general tuples. A programmer can express this by declaring a partial-order in the form of a subsumptive clause.

Syntax

In the following, we define rule declarations in Soufflé more formally using syntax diagrams and EBNF. The syntax diagrams were produced with Bottlecaps.

Subsumptive Rule

A subsumptive rule has a dominated and a dominating head seperated by <= and is followed by its rule body. The rule body is defined as in a standard rule. A query plan is optional for a subsumptive rule.

Rule

rule ::= atom '<=' atom ':-' disjunction '.' query_plan?