SourceForge.net Logo
Release Notes

Version 5.0 of DES adds to previous version (4.2):

  • Enhancements:
    • Fuzzy Datalog as a new query language for fuzzy reasoning. A new system mode FuzzyDES is switched with the new command /system_mode fuzzy, which enables fuzzy queries and programs, changing the command prompt to FDES>
    • Several commands can be used as assertions so that they are executed if present in consulted Datalog files (the new commands /solve and /system_mode, /clear_et, and most fuzzy commands for portability with Bousi~Prolog)
    • SQL DEFAULT constraint for CREATE TABLE and DEFAULT keyword for INSERT
    • Exception control in type casting
    • Several relation primitives supported in the tiny Prolog interpreter
    • New commands:
      • /external_pdg Display whether external PDG construction is enabled.
      • /external_pdg Switch Enable or disable external PDG construction (on or off) Some ODBC drivers are so slow that makes external PDG construction impractical. If disabled, tracing and debugging external databases are not possible.
      • /fuzzy_expansion Display current fuzzy expansion: bpl (Bousi~Prolog) or des (DES). For each fuzzy equation P~Q=D, the first one generates as many rules for Q as rules for P, whereas for the second one, generates only one rule for Q.
      • /fuzzy_expansion Value Set the fuzzy expansion as of the given system: bpl (Bousi~Prolog) or des (DES). If changed, the database is cleared. The value bpl is for experimental purposes and may develop unexpected behaviour when retracting either clauses or equations. Can be used as a directive.
      • /fuzzy_relation Display each fuzzy relation and its properties.
      • /fuzzy_relation ListOfProperties Synonym for /fuzzy_relation ~ ListOfProperties.
      • /fuzzy_relation Relation ListOfProperties Set the relation name with its properties given as a list of: reflexive, symmetric and transitive. If a property is not given, its counter-property is assumed (irreflexive for reflexive, asymmetric for symmetric, and intransitive for transitive). Can be used as a directive.
      • /fuzzy_rel ListOfProperties Synonym for /fuzzy_relation ~ ListOfProperties.
      • /lambda_cut Display current lambda cut value, a float between 0.0 and 1.0. It defines a threshold for approximation degrees of answers.
      • /lambdacut Synonym for /lambda_cut.
      • /lambda_cut Value Set the lambda cut value, a float between 0.0 and 1.0. It defines a threshold for approximation degrees of answers. Can be used as a directive.
      • /lambdacut Value Synonym for /lambda_cut Value.
      • /list_fuzzy_equations List fuzzy equations of the form X~Y=D, meaning that symbol X is similar to symbol Y with approximation degree D. Equivalent to /list_fuzzy_equations ~.
      • /list_fuzzy_equations Relation List fuzzy equations of the form X Relation Y = D, meaning that predicate X is related under Relation to predicate Y with approximation degree D.
      • /list_t_closure List the t-closure of the similarity relation ~ as fuzzy equations of the form X~Y=D, meaning that symbol X is similar to predicate Y with approximation degree D. Equivalent to /list_t_closure ~. Can be used as a directive.
      • /list_t_closure Relation List the t-closure of the similarity relation ~ as fuzzy equations of the form X~Y=D, meaning that symbol X is similar to predicate Y with approximation degree D. Can be used as a directive.
      • /solve Input : Solve the input as it was directly submitted from the prompt. The command, used as a directive, can submit goals during consulting a Datalog program. Can be used as a directiv
        /system_mode Display the current system mode.
      • /system_mode Mode Set the system mode to Mode (des or fuzzy) Switching between modes abolishes the current database. Can be used as a directive.
      • /t_closure_comp Display the way for computing the t-closure, which can be either datalog or prolog.
      • /t_closure_comp Value Set the way for computing the t-closure, which can be either datalog or prolog. Can be used as a directive.
      • /t_norm Synonym for /t_norm ~.
      • /t_norm Value Synonym for /t_norm ~ Value. Can be used as a directive.
      • /t_norm Relation Display the current t-norm for Relation, which can be: goedel, lukasiewicz, product, hamacher, nilpotent, where min is synonymous for goedel, and luka for lukasiewicz. Can be used as a directive.
      • /t_norm Relation Value Set the current t-norm for Relation, which can be: goedel, lukasiewicz, product, hamacher, nilpotent, where min is synonymous for goedel, and luka for lukasiewicz. Can be used as a directive.
      • /transitivity Synonym for /transitivity ~.
      • /transitivity Value Synonym for /transitivity ~ Value.
      • /transitivity Relation Display the current t-norm for Relation, which can be: goedel, lukasiewicz, product, hamacher, nilpotent, where min is synonymous for goedel, and luka for lukasiewicz. Can be used as a directive.
      • /transitivity Relation Value Set the current t-norm for Relation, which can be: goedel, lukasiewicz, product, hamacher, nilpotent, where min is synonymous for goedel, and luka for lukasiewicz. Can be used as a directive.
  • Fixed bugs:
    • Tracing might deliver incomplete answers for predicates including built-ins
    • Building groups for aggregations failed to build some groups as a result of subsequent iterations of the memo function for recursive predicates
    • Exception raised when either renaming or creating (with the clause LIKE) a table for some constraints
    • Arithmetic constants raised an exception in SELECT statements
    • 0-degree functions (as CURRENT_DATE) were not recognized in SELECT statements
    • 0-degree functions and arithmetic constants were not recognized but in lower-case
    • The function substr was not recognized by the parser
    • Built-in relations introduced in version 4.2 were not given types. This might deal to incorrect inferred types
    • Trying to insert into a non-existent column generated a second incorrect error message
    • Datetime constants were not normalized in SQL
    • Exception when parsing the command /set_flag
    • Columns with the name of an arithmetic symbol could not be referenced but with *

Previous versions