Ann: DES 6.9 Released

[Apologies for multiple receptions]

Hello,

This is a mail just for informing that the new release

Datalog Educational System version 6.9
http://des.sourceforge.net

And also its online interface has been made available at:

https://desweb.fdi.ucm.es

has been launched on November, 25th, 2025, and tested for

SICStus Prolog 4.4.1
SWI-Prolog 7.6.4

This version introduces several upgrades, mainly driven by
teaching needs. First, when submitting an SQL query
(top-level, with create view…) the system may display a
better formulation if one is found. This process involves
compiling the query into Datalog rules, applying
optimizations, and then compiling the resulting rules back
into SQL. If the optimized query has fewer nodes in its
syntactic tree than the original or, if it is more efficient
(e.g., by using WHERE instead of HAVING conditions) then it
is suggested as a hint for a better alternative. Second, as
a collateral effect of the improved Datalog to SQL
compilation (which now handles more built-ins) a wider set
of rules in persistent predicates can be externally stored
as SQL views. Third, both SQL and RA languages have extended
coverage, including SQL ALTER TABLE, UPDATE and SELECT
statements, and well as additional RA set operations.
Fourth, improved SQL translations for AR, DRC and TRC are
now available. Finally, DES includes various enhancements,
new commands, and refinements. Section 9.1 includes the
complete list of enhancements, changes and bug fixes.

A complete list of enhancements and fixed bugs is attached
to the end of this message.
Please, see http://des.sourceforge.net for details.

Best regards.

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

=============================================================

Version 6.9 of DES (released on November, 25th, 2025)

  • Enhancements:
    o SQL reformulations for top-level queries and view
    creation are offered when the system identifies
    alternatives that enhance readability and/or performance
    o SQL semantic analysis extended to local processing of
    queries to external connections (when /des_sql_solving is
    on)
    o Added support for external evaluation of order_by/3,
    group_by/3, top/1, distinct/1, distinct/2, is_null/1,
    is_not_null/1, intermediate assignments for expressions,
    disjunctive conditions (OR instead of UNION) and
    subqueries in persistent predicates
    o Added TOP, OFFSET and LIMIT clauses for UPDATE and
    DELETE SQL statements
    o The SQL statement UPDATE followed by TABLE raises an
    error only when there is no table with name “table”
    o Allow for RENAME COLUMN in the ALTER TABLE statement
    o Aggregates in a GROUP BY clause are identified and the
    query is rejected
    o New RA set operators union_all, intersect_all and
    difference_all for keeping duplicates
    o Improved SQL translations for AR, DRC and TRC (can be
    seen with the command /show_sql on)
    o Host safe extended to consulting Datalog files
    o Some tweaks on information messages
    o Improved validation to catch mismatches between local
    view definitions and their schemas
    o Simplification of Datalog goals for metapredicate goal
    arguments. In particular, this allows for discovering more
    semantic issues in SQL queries
    o False goals are anticipated in some cases
    o Most commands with a switch argument become TAPI enabled
    o More stable logs in case of broken streams
    o Fixed some documentation issues, both in the system and
    in the manuals
    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
    output:

    • asc(X) Return the ASCII code from a character X
    • chr(X) Return the character from an ASCII code X
      o New commands:
    • /des_developing Display whether DES developing in
      underway: on means that atoms are not quoted and lists
      of codes are rendered as strings, and off the other way
      round. TAPI enabled
    • /des_developing Switch Enable or disable DES
      developing (on or off, resp.): on means that atoms are
      not quoted and lists of codes are rendered as strings,
      and off the other way round. This uses different portray
      clauses for easing tracing along development. TAPI
      enabled
    • /display_answer_schema Display whether display of the
      answer schema is enabled. The schema is only displayed
      if the answer display is enabled (see the command
      /display_answer). TAPI enabled
    • /display_answer_schema Switch Enable or disable
      display of the answer schema (on or off, resp.) The
      schema is only displayed if the answer display is
      enabled (see the command /display_answer). TAPI enabled
    • /last_sql_hint Display the last SQL hint, if
      available. A hint is a reformulation of an SQL query
      that improves upon the original. “Improving” may refer
      to a smaller query size or a more appropriate structure;
      for example, placing conditions in the WHERE clause is
      preferred over using HAVING. TAPI enabled
    • /sql_hints Display whether SQL hints are enabled
      (enabled by default). If enabled, alternative SQL
      formulations for input SQL queries are displayed. TAPI
      enabled
    • /sql_hints Option Set the required level of SQL hints
      as disabled, enabled or full (off, on or full, resp.) If
      enabled, alternative SQL formulations for input SQL
      queries are displayed. The full option applies hints
      also to from-less queries. TAPI enabled
    • /verbose_listings Display whether verbose listings for
      SQL, AR, DRC and TRC are enabled (on or off, resp.) When
      disabled, default modifiers ALL, DISTINCT and ASC are
      omitted. TAPI enabled
    • /verbose_listings Switch Enable or disable verbose
      listings for SQL, AR, DRC and TRC (on or off, resp.)
      When disabled, default modifiers ALL, DISTINCT and ASC
      are omitted. TAPI enabled
  • Changes:
    o Changed the semantics of replace to avoid the solver not
    to terminate when using an empty string as its second
    argument
    o The commands /indexing, /multiline, /order_answer,
    /output, /timing now emit warnings as other commands
    o The messages from /order_answer have been changed to be
    similar to other switching commands
    o The command /spy automatically enables debugging
    o Changed the renamings “reli” to " r_i " in SQL listings
    for AR, DRC, and TRC equivalent statements
    o Removed parentheses after NOT for NOT EXISTS SQL clauses
    in displays
    o SQL listings are not verbose by default (make them
    verbose with the new command /verbose_listings on).
    Optional keywords (such as ALL) are omitted
    o The command /des Input is moved to the Query Languages
    category

  • Fixed bugs:
    o The command /list_predicates raised an exception
    o The command /writeln_to_file raised an exception. Help
    on this command via /help was erroneous
    o Help on built-ins did not show the Conversion category
    o In DB2 and Oracle, identifiers starting with should preserve its original case o Undefined predicates starting with which are not
    built-ins were not warned as such
    o The file name argument of the command /rm could not
    include enclosing double quotes in the SICStus Prolog
    distributions
    o Some built-ins had no mode declaration, which led to
    incorrect translations
    o Solving some built-ins via top/2 raised an existence
    exception
    o The display of the PDG raised an exception in verbose,
    fuzzy mode
    o Dropping tables for DB2 added the CASCADE clause, which
    is not supported
    o Storing new states for nested processing might rewrite
    older states
    o Extra line in /dangling_relations when there are not
    such relations
    o Missing answer schema for obtaining a relation
    cardinality from DB2
    o Dropping an external relation lead to failure when
    updating the PDG
    o Making persistent an unsafe predicate failed
    o Delimiters for DB2 SQL identifiers were not generated
    o Some rules were omitted as a result of unfolding in the
    presence of embedded implications
    o COUNT(*) was not capitalized in SQL displays
    o Different variables in Datalog rules resulting from
    compilations might appear with the same displayed name
    o The command /des Input was not working. Bug introduced
    in DES version 6.4
    o The command /abolish cleared modes for built-in
    predicates, which led to invalid compilations
    o Escaped LIKE was displayed with its internal
    representation
    o Linearizing a head failed when all its arguments were
    already linear
    o Displaying an SQL query from compilations might show a
    table name t instead of the original one
    o Debugging external DB2 databases might raise exceptions
    o When abolishing, persistent predicates were not
    abolished in the topological order

//----------------------------//
// ACIDE 0.19 Release Notes //
// June, 15th 2025 //
//----------------------------//

  • Enhancements, changes and fixed bugs:
    o Theme Management: Allows users to customize color
    schemes for the application’s interface, including font
    settings, and save configurations as themes.
    o File Encoding Selection: Enables users to choose the
    encoding format for loaded files.
    o Persistent Window Dimensions: ACIDE now retains its
    dimensions when restarted.
    o Configurable “Run” Button: Users can personalize the
    execution button behavior.
    o Resizable Number of Rules in Asserted Database: Improves
    visibility and management of rules within the database.
    o Enhanced Console Functionality: Users can now paste
    content directly at the cursor position within the
    console.
    o Project Closure Fix: Corrected ACIDE’s behavior when
    closing an active project.
    o Installer Creation: Developed an ACIDE installer for
    simplified setup.
    o Table Creation Using Datalog: Added support for defining
    tables through Datalog.
    o Line Wrapping Fix: Improved the text wrapping feature in
    the editor.
    o File Format Enhancements: Refined configuration and
    management of file formats.
    o Various Bug Fixes & Performance Optimizations:
    Implemented stability improvements and usability
    enhancements.

IMPORTANT CAVEATS / KNOWN BUGS:
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
displayed.
o As an alpha version, there are expected many bugs and
incomplete functionalities. Please report them to
fernan@sip.ucm.es

1 Like