SourceForge.net Logo Support This Project
Key Features

PROS:

    Free, Multiplatform, Portable, Open-source:

    • It can be used in any OS platform (Windows, Mac, Linux, ...), running on one of the supported Prolog interpreters.
    • Moreover, portable executable applications are provided for Windows, Mac, and Linux.

    Interactive:

      Based on a command line interpreter, you can play with DES submitting queries, modifying the database, and applying commands.

    GUI:

    • You can use the Java-based ACIDE 0.8 graphical environment (screenshot) as released in Download.
    • It has been configured for Datalog syntax highlighting, command buttons and interactive console, therefore easing its use by decreasing the number of keystrokes (It applies to executable distributions).

    Emacs-enabled:

    Query languages:

    • Enjoy the power of deductive databases using Datalog, Extended Relational Algebra and SQL, all of them recursive.
    • Share a common database of relations which can be defined with any of these languages, and query it with any of them too!

    Live project:

      Expect a new release every 2 or 3 months.

    Stable system:

      Few bugs have been reported.

    Popular system:

    Database updates:

      Modify the database with both SQL DML and commands.

    Null values:

      Take the responsibility of unknowness á la SQL at your own risk!

    Outer joins:

      If nulls are allowed, why not use outer joins: left, right and full outer joins for both SQL and Datalog?

    Aggregates:

    • Summarize with count, sum, min, max, avg, and times for SQL, RA and Datalog.
    • Find both predicate and functions versions of Datalog aggregates.
    • Group data sets and filter with aggregates.
    • Quickly build groups on-the-fly with Datalog auto-grouping.

    Multisets:

      Enable or disable duplicates in both Datalog and SQL processing. Discard duplicates with distinct/1 and distinct/2

    Relational database access via ODBC:

      ODBC sources of data can be seamlessly accessed. Connect DES to any DBMS supporting such connections (MySQL, MS Access, Oracle, ...).

    Negation:

      Don’t expect much more than stratified negation and null flaws.

    Novel hypothetical SQL queries:

      Let's assume data which is not in the database and play with decision-support systems.

    Integrity constraints:

    • Domain
    • Types
    • Primary keys
    • Referential integrity
    • Functional dependency
    • User-defined strong constraints
    • Enable or disable constraint checking

    Declarative debugging of Datalog programs:

      Did you ever looked for a working declarative debugger? Debug towards intended semantics rather than procedural semantics!

    Test case generation for SQL views:

      Try this prototype for working with views over large tables and test them with the test cases, not with the actual tables!

    Full-fledged arithmetic:

      Write arithmetical expressions with a wide set of arithmetical functions, operators and constants.

    Type system for Datalog rules and SQL tables and views:

      Feel the benefits of typed relations and type inference.

    Source-to-source program transformations:

    • Safety. Enable safe transformations to execute safe rules. Experiment with unsafe rules.
    • Performance. Enable simplifications to speed-up computations.
    • Built-ins. Programs with outer join calls are transformed in order to be computed by the underlying tabled, fixpoint method.

    Tabling-based implementation:

      Memo tables are used for implementing fixpoint and speeding-up computations.

    Development mode:

      Enable it to understand how the system works. See the transformed program and examine nulls.

    Pretty-printers:

      For SQL, RA and Datalog programs. Feel free to enable or disable pretty-print.

    Batch execution:

      Provide a file with DES inputs and log the results into another file.

    Connect DES to the outside world:

    • Plug DES to a host system via standard streams.
    • Try the new TAPI as released since version 2.5

CONS:

    Not all is good. Consider that this is an educational system primarily supported by one developer. So:

    • Do not expect DES to beat any performance marks.
    • Do not expect DES to handle large amounts of data (but for external ODBC databases).
    • Datalog:
      • No compound terms as arguments in user relations
      • No database updates via Datalog rules are allowed
    • SQL:
      • Table and column identifiers are case sensitive.
      • Some incorrect SQL statements are not rejected (as those containing a GROUP BY clause and columns in the projection list which do not occur in the grouping list).
      • Computable SQL statements follow the grammar in user manual. The current grammar parses extra clauses which cannot be computed yet (e.g., ORDER BY, ALL, ANY, ...)

Bottomline:

    Most CONS became PROS along time, so: What we would expect from DES in the future?

    Keep an eye on the next version: DES 2.8 is approaching!

[Home] [Download] [Key Features] [Screenshots] [Release Notes] [Known Bugs] [License] [FAQ] [News] [Contact] [Contributions] [Publications] [DES Facts] [Statistics]