|
INTRODUCING DES The Datalog Educational System (DES) is a free, open-source, multiplatform, Prolog-based implementation of a basic deductive database system. DES 1.7.0 is the current implementation, which enjoys Datalog and SQL query languages, full recursive evaluation with memoization techniques, arithmetic, stratified negation and novel approaches to declarative debugging, null values support, (tabled) outer join and aggregate predicates. The system is implemented on top of Prolog and it can be used from a Prolog interpreter running on any OS supported by the Prolog interpreter. Moreover, Windows and Linux executables are also provided. The main novelties in this release are: New tabled aggregate predicates and functions, including count, sum, avg, min, max, times, and group_by. This allows to support SQL aggregates with the usual aggregate functions and grouping clause. SQL statements including such aggregates are translated into Datalog rules including a group_by predicate, which, in turn, may contain aggregate functions in arithmetic expressions occurring both in the projection list and in the having condition. In addition, these aggregates allow solving some optimization problems (see example in Section 6.3). Also, is_null and not_is_null predicates are included for testing null values in Datalog rules. Domain, primary key, and referential integrity constraints for tables created with SQL statements can be specified, and are checked whenever a fact is asserted (or a tuple inserted). In addition, a basic type inferring system for views is provided. For easing the writing of rules, operands of comparison operators, the equality in particular, can be (arithmetic) expressions which are evaluated before the comparison itself. Finally, a very preliminary version of a test case generator for SQL views is included. The complete set of changes in this version is listed in Section 11.1 of the manual. Our approach to debug a Datalog query relies on program semantics rather than on the computation mechanism. The debugging process starts when the user detects an unexpected answer. By asking questions about the intended semantics, the debugger looks for incorrect program relations. See Section 6.13 of the manual for further details. We have developed DES aiming to have a simple, interactive, multiplatform, and affordable system (not necessarily efficient) for students, so that they can get the fundamental concepts behind a deductive database with Datalog and SQL as query languages. SQL is supported with a wide coverage of the standard. Other deductive systems are not fully suited to our needs due to the absence of some characteristics DES does offer for our educational purposes (see Section 7 of the manual). This system is not targeted as a complete deductive database, so that it does not provide persistency, transactions, security, and other features present in current database systems.
Web site last update: 10/30/09 |
|