[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DES 1.7.0 Released

From: fernan
Subject: DES 1.7.0 Released
Date: Fri, 30 Oct 2009 16:32:48 +0100

[Apologies for multiple receptions]

This is a mail just for informing that the new release

  Datalog Educational System version 1.6.2

has been launched on October, 30th, 2009 and ported to 

  GNU Prolog 1.3.1

The main novelties in this release are: New tabled 
aggregate predicates and functions, including count, 
sum, avg, min, max, times, and group_by. This allows 
to support SQL aggregates with the usual aggregate 
functions and grouping clause. SQL statements 
including such aggregates are translated into Datalog 
rules including a group_by predicate, which, in turn,
may contain aggregate functions in arithmetic 
expressions occurring both in the projection list and
in the having condition. In addition, these 
aggregates allow solving some optimization problems. 
Also, is_null and not_is_null predicates are included 
for testing null values in Datalog rules. Domain, 
primary key, and referential integrity constraints 
for tables created with SQL statements can be 
specified, and are checked whenever a fact is 
asserted (or a tuple inserted). In addition, a basic 
type inferring system for views is provided. For 
easing the writing of rules, operands of comparison 
operators, the equality in particular, can be 
(arithmetic) expressions which are evaluated before 
the comparison itself. Finally, a very preliminary 
version of a test case generator for SQL views is 

Release notes are attached to the end of this message.
Please, see for details.

  Best regards.

Fernando Sáenz Pérez
Profesor Titular de Universidad / Associate Professor
Home Page:
Tel: + 34 913947642. Fax: + 34 913947547
Despacho / Office: 435 (4ª planta / 4th floor)
Dept. Ingeniería del Software e Inteligencia Artificial / 
Department of Software Engineering and Artificial Intelligence
Universidad Complutense de Madrid
Facultad de Informática
C/Profesor José García Santesmases, s/n
E - 28040 Madrid. Spain

Version 1.7.0 of DES adds to previous version (1.6.2):

* Enhancements:
  o Extended SQL grammar and processor to cope with types as well as table and 
column constraints (primary key and foreign key)
  o Type system for SQL. Primitive types include: char, char(n), varchar(n), 
varchar, string, int, integer, and real
  o Basic type checking/inferring system for SQL views. Inferred types for 
views are displayed via /dbschema and, for autoviews, in the answer relation. 
Inferring precision is low (the types of expressions and numbers are not 
  o Domain, primary key, and referential integrity constraints for tables 
created with SQL statements
  o Datalog aggregate predicates: group_by/3, count/3, count/2,  sum/3, 
times/3, avg/3, min/3, and max/3
  o Datalog aggregate functions: count/0, count/1,  sum/1, times/1, avg/1, 
min/1, and max/1
  o Datalog predicate builtins: is_null/1 and is_not_null/1 for determining 
whether their single argument is a null value or not, respectively
  o Test case generation for views
  o New commands:
    * /test_case View. Generates all test case classes of for the given view
    * /p Filename. Shorthand for /process Filename
  o Upgraded commands:
    * /listing Head. Lists all rules whose heads are subsumed by Head
    * /listing Head:-Body. Lists all rules that are subsumed by Head:-Body
  o The command process looks for its input filename, allowing to omit the 
extensions .sql and .ini
  o Comparison operators can include arithmetic expressions, as in A<2*B. This 
also means that equality behaves more generally than is/2, as shown in the 
query sqrt(2)=X, which returns { sqrt(2) = 1.4142135623730951 }
  o Some arithmetic expressions are precomputed when translating SQL statements 
to Datalog rules
  o Displaying the number of tuples in rule listings, retracts, and abolishes
  o Adding development flag status to the listing of /status
* Changes:
  o A table definition with a CREATE TABLE statement must include a type for 
each attribute. Former table definitions (up to version 1.6.2) are no longer 
  o Evaluation of an arithmetic expression including a null value returns a 
null, instead of raising an exception
  o Operands of comparison operators are evaluated. Only arithmetic expressions 
are allowed, up to now. So, X=Y+2 is allowed whenever Y is bound
  o The distribution files,, and have been 
renamed to,, and, respectively
* Fixed bugs:
  o Development listings via /dbschema were not displaying compiled Datalog 
  o String constants including only digits were incorrectly parsed as numbers
  o Failed to parse SQL set statements involving constants in the projection 
  o Nulls were not correctly read from files
  o IS NULL and IS NOT NULL in SQL statements were not behaving correctly
  o Safety checks involving disjunctions were not always properly performed, as 
in p(X) :- q(X);r(X)
  o The command /operators was never implemented but listed via /help. It has 
been removed
  o Listings of exploded rules were not displaying the correct source variable 
names in bodies
  o Some rules could not been asserted under simplification, as p(X):-X=1;X=2
  o Error when a multiply renamed table occurs in a SQL statement, as in select 
* from t t1,t t2 where t1.a=t2.a
* Caveat:
  o Batch processing cannot be nested
* Known bugs:
  o The projection list of a natural outer join is not correct in all cases
  o Disjunctions in having conditions in the group_by clause may yield to 
errors which are not

reply via email to

[Prev in Thread] Current Thread [Next in Thread]