============================== DES INSTALLATION (quick guide) ============================== ============================== Windows Binary Distribution ============================== - Double-click on deswin.exe for starting the Windows application - Execute des.exe for starting the console application ============================== Linux Binary Distribution ============================== - Start ./des from its installation path ============================== Windows Source Distributions ============================== 1. Create a shortcut in the desktop for running the Prolog interpreter of your choice. 2. Modify the start directory in the "Properties" dialog box of the shortcut to the installation directory for DES. This allows the system to consult the needed files at startup. 3. Append the following options to the Prolog executable complete filename, depending on the Prolog interpreter you use: (a) SICStus Prolog: -l des.pl (b) SWI Prolog: -g "ensure_loaded(des)" (remove --win_app if present) Another alternative is to write a batch file similar to the script file described just in the above section. ============================== Linux Source Distributions ============================== You can write a script for starting DES according to the selected Prolog interpreter, as follows: (a) SICStus Prolog: $SICSTUS -l des.pl Provided that $SICSTUS is the variable which holds the absolute filename of the SICStus Prolog executable. (b) SWI Prolog: $SWI -g "ensure_loaded(des)" Provided that $SWI is the variable which holds the absolute filename of the SWI Prolog executable. ============================== More Information: ============================== - See User Manual 'Documentation' entry in http://www.fdi.ucm.es/profesor/fernan/des/html/download.htm - http://des.sourceforge.net Version 3.1 of DES (released on December, 20th, 2012) * Enhancements: o Deductive engine inference is now possible for an open ODBC connection, enabling to directly submit queries which are not supported by the external DBMS (cf. /des_sql_solving command) o Division operation is now supported for the relational algebra query language o SQL has been extended beyond standard with the relational division operation as an operator in the FROM clause of a SELECT statement o New commands: - /db_schema Synonym for all variants of /dbschema - /des Input Force DES to solve Input. If Input is a SQL query, DES solves it instead of relying on external DBMS solving. This allows to try the more expressive queries which are available in DES (as, e.g., hypothetical and non-linear recursive queries) - /des_sql_solving Display whether DES is forced to solve SQL queries for external DBs - /des_sql_solving Switch Enable or disable DES SQL solving for external DBs - /edit Filename Edit Filename by calling the predefined external text editor. This editor is set with the command /set_editor - /format_timing Display whether formatted timing is enabled - /format_timing Switch Enable or disable formatted timing (on or off, resp.) - /prompt Display the prompt format - /prompt Switch Set the format of the prompt. The value 'des' sets the prompt to 'DES>'. The value 'des_db' adds the current database name DB as 'DES:DB>'. Finally, 'plain' sets the prompt to '>'. Note that, in any case, if a language other than Datalog is selected, the language name is also displayed before ''>'' - /set_editor Display the current external text editor - /set_editor Editor Set the current external text editor to Editor o Stopwatch precision of 1 millisecond for SICStus distros o Better performance for persistent predicates updates by identifying base cases (facts) o Better SQL and RA compilations to Datalog o SQL to Datalog compilations are also displayed for DML statements o Added verbose info on solving SQL and RA queries o Better identification with relation names of non-existing columns o Added the SQL type NUMBER(POS,DEC), although not checked as domain restrictor o Support for persistency tested in and adapted for more external RDBMS's (IBM DB2 10.1, Sybase ASE 15.7, Oracle 11g in addition to the already tested MS Access 2003, MySQL 5.1, PostgreSQL 9.1, and MS SQL Server 2008) o New port to SICStus Prolog 4.2.3 o New port to SWI-Prolog 6.2.4 o More examples (e.g., puzzle bridge.pl and even_odd.sql) * Changes: o As the ODBC connection to Oracle RDBMS is really slow in some systems, for opening a connection, only user tables and views are read to build the PDG o When an opened ODBC connection is the current one, queries are no longer parsed by DES o Output display disabling also affects to logging o Tracing a view also shows its definition o Variables as shown in type errors become named o Visibility rules of RA are as original proposal o Last stage of source-to-source transformations is now displayed with /show_compilations on * Fixed bugs: o The command /abolish with arguments and referring to a non-persisted predicate raised an input processing error o Mutually recursive definitions in a single SQL statement led to compilation rejection o Query schema was missing in the query outcome (bug introduced in version 3.0) o Some running information were displayed when output was off o Some non-ground arithmetical expressions generated an exception during parsing o Datalog rules as compiled from a SQL query were not removed upon an exception o In SICStus distros, SQL answers with repeated column names were not computed correctly for an ODBC connection o count(*) was simply displayed as count in SQL statements for command /dbschema o The full join operation returned more tuples than expected o Some SQL keywords (e.g., IN) required a leading or a preceding blank (an opening and closing parenthesis, resp., is also allowed now) o IS NULL and IS NOT NULL SQL conditions were not parsed (bug introduced in version 2.7) o Rules and SQL statements including null checking were not tested for safety o 'Group by' statements and rules including predicates/relations as data sources in the having condition were not correctly computed because the predicate dependency graph didn't include such data sources o Some safe rules including the predicate group_by were detected as unsafe o Some code simplifications involving the metapredicate distinct were incomplete o After an exception during solving a SQL query, compilations were not removed o Some translations of SQL statements involving NOT EXIST clauses were not correct o The condition in the predicate group_by was not tested for safety so that no program transformations were applied to possibly develop safe rules o Inserting a foreign key assertion was not checked correctly in all cases o Inserting a tuple into a table with a compound primary key was not checked correctly in all cases o Some Datalog simplifications forced by SQL compilations were wrong o A nested UNION (removing duplicates: DISTINCT) SQL statement lost the connecting references o Some expression and column references in SQL statements have been fixed o In some cases, a type error relating matching numeric expressions was raised
Datalog Educational System Files
Deductive Database with Datalog, SQL, RA, TRC, DRC
Brought to you by:
fsaenzperez