# Ann: DES 6.8 Released

**URL:** <https://swi-prolog.discourse.group/t/ann-des-6-8-released/9057>\
**Category:** Announce\
**Tags:** software\
**Created:** [June 15, 2025, 9:46pm UTC](https://swi-prolog.discourse.group/t/ann-des-6-8-released/9057 "2025-06-15T21:46:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![fsaenzperez](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/fsaenzperez/32/50_2.png) [@fsaenzperez](https://swi-prolog.discourse.group/u/fsaenzperez)\
**Post date:** [June 15, 2025, 9:46pm UTC](https://swi-prolog.discourse.group/t/ann-des-6-8-released/9057/1 "2025-06-15T21:46:38Z")

</div>

[Apologies for multiple receptions]

Hello.

This is a mail just for informing that the new release

Datalog Educational System version 6.8  
[http://des.sourceforge.net](http://des.sourceforge.net)

Mirrored at: [Datalog Educational System](https://www.fdi.ucm.es/profesor/fernan/des)

And also its online interface has been made available at:

[https://desweb.fdi.ucm.es](https://desweb.fdi.ucm.es)

has been launched on June, 15th, 2025.

This version includes several upgrades mainly following  
needs from teaching. First, the SQL semantic analyzer covers  
a wider set of errors, including those that are more common  
in the classroom. It detects inconsistency by resorting to  
functional dependencies, which can uncover typical errors in  
ORDER BY, GROUP BY and DISTINCT, among others. This is  
useful not only for this system but also for an automatic  
judge such as LearnSQL, which leverages this information for  
student feedback. TAPI commands have been extended for such  
a use case. Second, the Datalog debugger has been upgraded  
by reducing the number of questions posed to the user. Also,  
existing debugger commands have been extended, in particular  
for its TAPI interface with other systems such as DESweb and  
its graphical Datalog debugger. Third, an experimental  
implementation of the semi-naïve differential optimization  
has been performed in the DES engine, allowing for a better  
performance of linear recursive predicates. Fourth, the new  
version 0.19 of the desktop Java application ACIDE has been  
bundled with DES, including: colour themes, file encoding,  
stability and usability improvements. Finally, various  
enhancements and new commands have been added to DES, along  
with several refinements.

A complete list of enhancements and fixed bugs is attached  
to the end of this message.  
Please, see [http://des.sourceforge.net](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](http://www.fdi.ucm.es/profesor/fernan)  
Tel: + 34 913947642. Fax: + 34 913947547  
Despacho / Office: 435 (4ª 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.8 of DES (released on June, 15th, 2025)

- Enhancements:  
o Enhanced SQL semantic analysis with functional  
dependencies to uncover common pitfalls  
o Added the value loose for the command  
/sql\_semantic\_check, which includes more probabilities for  
false positives, though with more error detections  
o Avoided some rechecking in SQL semantic warnings  
o Experimental semi-naïve optimization for linear  
recursive predicates  
o Intermediate files from a Datalog debugging session are  
removed. Via TAPI, an ad-hoc command is used for this  
purpose  
o Enhanced full Datalog debugger by avoiding some subset  
questions derived from former user answers  
o Reduced set of automatic questions in the full Datalog  
debugger  
o Included dealing with an abort answer in the command  
/debug\_dl  
o Updated help for /debug\_dl  
o Wrong and missing data can be specified in the command  
/debug\_dl\_set\_node  
o New semantics for non-deterministic functions and impure  
deterministic functions (and counterpart function  
predicates)  
o Setting fuzzy mode disables non-Datalog languages. As  
well, setting a non-Datalog language in fuzzy mode selects  
(crisp-)Datalog  
o Commands /ls and /dir accepts a filename as argument.  
Also, extended help provided for these commands  
o New predicate and function substr with no length  
o Added support for the ALL and ANY quantifiers in the  
HAVING clause  
o Syntax of PostgreSQL simplified recursive views is  
supported (the same as already provided by DES but adding  
a RECURSIVE keyword)  
o SQL IS NULL operation extended to deal with expressions  
o The function cast can receive an expression as its first  
argument  
o Added exception to show internal errors when processing  
SQL queries  
o Uppercase ODBC connection names in commands do not need  
to be enclosed between single quotes (unless they contain  
a blank space)  
o ODBC connections become case-insensitive  
o Only one pass in the extensional table for fetching  
completed entries during fixpoint computation  
o Top-level goals which have been previously completed are  
not reprocessed (no fixpoint computation for them)  
o Completed top-N goals become cached in the extension  
table  
o Along user inputs, the extension table is only cleared  
for affected predicates  
o Function rand/1 is solved once for each call, avoiding  
resetting the seed along fixpoint computation  
o The command /fp\_info also displays statistics at each  
fixpoint iteration if they are enabled  
o When rules are removed (either manually or by the system  
when removing intermediate predicates), only entries in  
the extension table corresponding to those rules are  
removed, instead of clearing all the table  
o Host safety (sandboxing) extended to files out of the  
start path, which are not allowed to be accessed  
o New commands:

- Changes:  
o The commands /drop\_all\_relations and /drop\_all\_tables  
apply the CASCADE option  
o The command /get\_relation renders null internal  
representation as null for non-TAPI invocations.  
Otherwise, it displays null internal representations  
o Predicates depending on non-deterministic functions  
(such as rand and current\_time) are not cached along user  
inputs  
o Non-deterministic functions (such as rand and  
current\_time) are evaluated only once for each solving  
path. This is relevant in two scenarios: providing  
different values for different depth calls along  
recursion, and different values for different choice  
points  
o Modified semantics of top-N queries: results are not  
affected by literal ordering

- Fixed bugs:  
o The file des\_pchr.pl was not located where expected and  
the debugging session could not proceed  
o Some functions incorrectly propagated semantic bindings,  
leading to false positives for inconsistent conditions in  
SQL semantic checking  
o Some false positives in semantic warnings for EXCEPT,  
UNION, DIVISION and IN SQL operators  
o False positive in semantic warnings with COUNT DISTINCT  
when several relations were joined  
o False positive in semantic warnings for columns without  
aggregates in the HAVING conditions  
o False positive in semantic warnings for conditions over  
grouped columns occurring in the HAVING clause without an  
aggregate  
o Expressions in disjunctive bodies were not translated  
o Applying the full debugger to a Datalog predicate that  
is not the root in the PDG of a program did not find the  
erroneous predicate  
o Some relations enclosed between parentheses were not  
parsed  
o Some built-in predicate calls were not reordered to  
avoid instantiation exceptions. Some corner cases led to  
incomplete answers  
o Some uses of string casting yield to type errors  
o ODBC connections to Oracle failed  
o With ALTER TABLE it was possible to add existing column  
names  
o Type errors in expressions as arguments of built-in  
infix operators  
o The command /current\_flag failed when applied to a user  
flag  
o Dropping delimited tables in Oracle would fail  
o Datalog constant e (Euler number) raised an exception in  
comparison queries (bug introduced in version 6.7)  
o Selecting a string matching a built-in in SQL might fail  
o Open answers led exceptions  
o Non-ground goals in a top-n call might return incomplete  
answers for recursive predicates in the goal solving path  
o Incorrect pending choice point led /fp\_info on to  
display spurious text  
o The extension table was not cleared when disabling  
duplicates  
o Some statistics related to the extension table were not  
updated when inserting, deleting and updating in SQL  
statements  
o Under TAPI listings, an exception was raised for foreign  
keys with more than one attribute.

//----------------------------//  
// 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
