It allows negation, the expression of arithmetic functions, and higher-order constructs such as grouping, sorting, and aggregate functions. Goal conjunctions translate to joins. Variables with single occurrences in the body are not translated. Free variables translate to grouping attributes. Shared variables in goals translate to equi-join conditions.
Constants translate to equality comparisons of an attribute and the constant value.
Nulls are translated to IS NULL conditions. In the following, we show the definition of a simple join view between the two database predicates Room and Floor . First Floor Backtracking can then be used to retrieve the next row of the view. Note that at each call to a database relation or rule, the communication takes place through bind variables. The corresponding restrictive SQL query is generated, and if this is the first call with that adornment, it is cached.