[Apologies for multiple receptions] Hello. This is a mail just for informing that the new release
Datalog Educational System version 1.6.2 http://des.sourceforge.net 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 included. Release notes are attached to the end of this message. Please, see http://des.sourceforge.net/ for details. Best regards. ============================================================== Fernando Sáenz Pérez Profesor Titular de Universidad / Associate Professor Home Page: http://www.fdi.ucm.es/profesor/fernan 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 inferred) 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 valid 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 des1.pl, dessql.pl, and desdebug.pl have been renamed to des_glue.pl, des_sql.pl, and des_debug.pl, respectively * Fixed bugs: o Development listings via /dbschema were not displaying compiled Datalog rules o String constants including only digits were incorrectly parsed as numbers o Failed to parse SQL set statements involving constants in the projection list 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 _______________________________________________ Users-prolog mailing list [email protected] http://lists.gnu.org/mailman/listinfo/users-prolog
