ConceptBase: Difference between revisions
Content added Content deleted
No edit summary |
No edit summary |
||
Line 12: | Line 12: | ||
# Recursive function definitions: this allows to define functions like the Ackermann function |
# Recursive function definitions: this allows to define functions like the Ackermann function |
||
# Active rules: other than Datalog rules, active rules change the state of the database (or memory) |
# Active rules: other than Datalog rules, active rules change the state of the database (or memory) |
||
The result is a Turing-complete language, which is rooted in Datalog but which no longer belongs to the Datalog family. |
Latest revision as of 12:16, 18 September 2013
ConceptBase is an implementation of Datalog.
Other implementations of Datalog.
ConceptBase implements Datalog-neg, i.e. Datalog with negation. The computational model mimics Prolog's SLDNF but employs so-called tabling for all derived predicates. Tabling is a technique to maintain the extension of finite predicates.
As such Datalog-neg is not a full-fledged programming language. It always terminates, so it cannot compute certain functions. ConceptBase extends Datalog in the following ways:
- Arithmetic on integer and floating point numbers: integer arithmetic is already sufficient to make the resulting language undecidable
- Recursive function definitions: this allows to define functions like the Ackermann function
- Active rules: other than Datalog rules, active rules change the state of the database (or memory)
The result is a Turing-complete language, which is rooted in Datalog but which no longer belongs to the Datalog family.