|
INTRODUCING DES The Datalog Educational System (DES) is a free, open-source, multiplatform, Prolog-based implementation of a basic deductive database system. DES 1.8.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, test case generation for SQL views, 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 novelty in the current release is a more mature test case generator than in the last release, which supports positive-negative, positive and negative test cases for views, ranging over integer and string data types. This generator uses the constraint system of the underlying Prolog system. Whereas binary distributions enjoy all the features, consult Section 10 of the user manual to read the limitations w.r.t. the source distributions. The complete set of changes in this version is listed in Section 11.1 of the user manual and in the Release Notes section of this web page. 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. 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. 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 5.3 of the manual for further details. Web site last update: 02/03/10 |
|