DES 6.4 Released

[Apologies for multiple receptions]

This is a mail just for informing that the new release

Datalog Educational System version 6.4

has been launched on January, 20th, 2020, and tested for

SICStus Prolog 4.4.1
SWI-Prolog 7.4.2

The current version mainly improves SQL features. First,
several functions (for strings, datetime and numbers) are
provided, also with counterpart Datalog predicates. Second,
several commands are included: for datetime display format,
SQL debugging (intended to work with the Java ACIDE
front-end for interactive graphical debugging, which is
currently under development), and others related to the
communication with the online system. As a result of this
latter set of commands, DESweb has been improved, and the
messages panel has been replaced by a truly reactive
database panel. Different tabs in this panel allows the user
to inspect the database schema, display query results, and
display relation contents. Any interactive change (either
schema or data content) to any relation is automatically
updated in the display, even for external ODBC connections
when possible (by contrast to most database front-ends,
which require the user to manually refresh the view).
Finally, other commands have been added, changes have been
made and some bugs have been fixed.

A complete list of enhancements and fixed bugs is attached
to the end of this message.
Please, see for details.

Best regards.

Fernando Saenz Perez
Profesor Titular de Universidad / Associate Professor
Home Page:
Tel: + 34 913947576. Fax: + 34 913947547
Despacho / Office: 435 (4a. planta / 4th floor)
Dept. Ingenieria del Software e Inteligencia Artificial /
Department of Software Engineering and Artificial
Universidad Complutense de Madrid
Facultad de Informatica
C/Profesor Jose Garcia Santesmases, s/n
E - 28040 Madrid. Spain


Version 6.4 of DES (released on January, 20th, 2020)

  • Enhancements:
    o Dates as strings can be written and displayed in several
    formats, which are specified with the new command
    /date_format Format
    o Checking for SQL built-in redefinitions
    o New functions and predicates. For each function below,
    there is a counterpart Datalog predicate with the same
    name prepended with $, and with an extra final argument as

    • left(X,Y) Return the first Y characters of X.
    • ltrim(X) Remove leading spaces from X.
    • rtrim(X) Remove trailing spaces from X.
    • repeat(X,Y) Repeat the string X as many times as Y.
    • right(X,Y) Return the last Y characters of X.
    • space(X) Return a string with X spaces.
    • sysdate Synomym for current_date (Oracle syntax).
    • trunc(X,D) (Truncate) Return X truncated to D
    • truncate(X,D) (ISO) Return X truncated to D decimals.
      o The optional IF EXISTS clause in dropping tables and
      views can be placed at the end of the statement
      o Cascading drop for tables and views
      o New commands:
    • /date_format Display the current date format
    • /date_format Format Set the date format for display
      and specifying dates as strings. Format is a string
      including YYYY (numeric year), MM (numeric month), DD
      (numeric day of the month), and a (single-char)
      separator between them. Default is ISO 8601: YYYY-MM-DD
    • /dbs_schemas Display the schema of each open database:
      Tables, views and constraints. TAPI enabled
    • /debug_sql_answer Answer a question when debugging an
      SQL view. TAPI enabled
    • /debug_sql_current_question Display the current
      question when debugging an SQL view. TAPI enabled
    • /debug_sql_set_node Node State Set the state for a
      node with unknown state. State can be either valid or
      nonvalid. TAPI enabled
    • /des Synonym for /datalog (switch to Datalog
    • /format_datetime Display whether formatted date and
      time for datetime values is enabled. It is disabled by
    • /format_datetime Switch Enable or disable formatted
      date and time for datetime values (on or off, resp.) If
      disabled (as default), dates are displayed as date(year,
      month, day), and time is displayed as time(hour, minute,
      second), both with positive numbers for each term
      argument. If enabled, dates are displayed in the date
      format as specified by the command /date_format, and
      time is displayed as HH:Mi:SS.
    • /get_relation Connection Relation Display the relation
      schema and data for the given connection as the Prolog
      term schema_data(Schema,Data), where Schema is of the
      form relname(col_1:type_1,…,col_n:type_n), Data is a
      list of tuples relname(val_1,…,val_n), col_i are
      column names, type_i are type names, and val_i are
      values of the corresponding type type_i. If
      Connection=$des and Relation=answer, the outcome
      corresponds to the answer to the last submitted query
    • /keep_answer_table Display whether keeping the answer
      table is enabled
    • /keep_answer_table Switch Enable or disable keeping
      the answer table (on or off, resp.)
    • /relation_modified Display the relation modified by
      the last input (Datalog relation, SQL table or view),
      whether it is typed or not, as the Prolog term
      connection_table(Connection, Relation), where Connection
      is the connection for which the relation with name
      Relation has been modified. If that last input did not
      modify any relation, false is displayed. TAPI enabled
  • Changes:
    o Delimiters in messages changed from single to double
    o Dates and times are displayed as formatted strings
    according to the current date and time formats
    o Display in verbose mode: order of some display messages
    and some added
    o The predefined dual table occurs explicitly in the state
    of debugging
    o Added new optional arguments and relation specification
    to the following command:

    • /dependent_relations [direct] [declared] Relation
      Display a list of relations that depend on Relation.
      Relation can be either a pattern R/A or a relation R. A
      relation R can be either a relation name N or C:N, where
      C refers to a specific connection and N is a relation
      name. If direct is included, the dependency is only
      direct; otherwise, the dependency is both direct and
      indirect. If declared is included, only declared (typed)
      relations are included in the outcome. In development
      mode, system-generated predicates are also considered.
      TAPI enabled
  • Fixed bugs:
    o Debugging SQL views with either explicit or implicit
    references to the dual table was incorrect
    o Filenames in consult commands could not contain blanks
    even when surrounded with double quotes
    o Correlated updates failed
    o Coalesce didn’t apply to aggregates
    o Cast raised an exception for some types
    o Some batch SQL updates failed integrity constraints
    o A BC date in an atom was not translated to a
    non-positive year value
    o A verbose sorting answer message was displayed when no
    sorting was done. Now, such a message is only issued when
    the answer is sorted by default
    o Dropping a table with incoming referential integrity
    constraints did not remove the corresponding Datalog

// ACIDE 0.17 Release Notes //
// September, 10th 2015 //

  • Enhancements, changes and fixed bugs:
    o Localization to French
    o Multiple editors for new files
    o New Reset and Refresh buttons for the Database panel
    o The Datalog query for Trace Datalog becomes single-lined
    o Keyboard shortcut (F9) for Play
    o Rule (SQL statement, resp.) location becomes disabled
    by-default in Trace Datalog (Trace SQL, resp.)
    o New Debug SQL panel but with incomplete functionality
    o Bug fixes in several panels (Console, Database, …) but
    presumably others added.

o Ctrl+Mouse Wheel for resizing font display may take long
time depending on the number of open file editors.
o Opening medium-sized text files may take long time due
to lexical analysis. No progress indicators are provided.
Only when all editor windows are processed they are
o As an alpha version, there are expected many bugs and
incomplete functionalities. Please report them to

1 Like