From mliu@cs.uregina.ca Tue Sep 8 16:12:41 1998 Received: from jeeves.cs.wisc.edu (jeeves.cs.wisc.edu [128.105.37.11]) by cs.sfu.ca (8.9.1/8.9.1) with ESMTP id QAA03189; Tue, 8 Sep 1998 16:12:21 -0700 (PDT) Received: from localhost (daemon@localhost) by jeeves.cs.wisc.edu (8.8.6/8.8.6) with SMTP id SAA19473; Tue, 8 Sep 1998 18:12:16 -0500 (CDT) Received: by jeeves.cs.wisc.edu (bulk_mailer v1.8); Tue, 8 Sep 1998 18:11:43 -0500 Received: (from majordom@localhost) by jeeves.cs.wisc.edu (8.8.6/8.8.6) id SAA19211 for dbworld-outgoing; Tue, 8 Sep 1998 18:11:41 -0500 (CDT) Received: from lucy.cs.wisc.edu (lucy.cs.wisc.edu [128.105.2.11]) by jeeves.cs.wisc.edu (8.8.6/8.8.6) with ESMTP id XAA08092 for ; Thu, 3 Sep 1998 23:40:45 -0500 (CDT) Received: from MERCURY.CS.UREGINA.CA (root@MERCURY.CS.UREGINA.CA [142.3.200.53]) by lucy.cs.wisc.edu (8.8.6/8.8.6) with ESMTP id XAA17074 for ; Thu, 3 Sep 1998 23:40:43 -0500 (CDT) Received: from titan. (TITAN.CS.UREGINA.CA [142.3.223.110]) by MERCURY.CS.UREGINA.CA (8.8.5/8.7.5) with SMTP id WAA20478 for ; Thu, 3 Sep 1998 22:40:27 -0600 (CST) Received: by titan. (SMI-8.6/SMI-SVR4) id WAA16021; Thu, 3 Sep 1998 22:33:41 -0600 Date: Thu, 3 Sep 1998 22:33:41 -0600 From: mliu@cs.uregina.ca (Mengchi Liu) Message-Id: <199809040433.WAA16021@titan.> To: dbworld@cs.wisc.edu Subject: (DBWORLD) Relationlog release 1.0 available Sender: owner-dbworld@cs.wisc.edu Precedence: bulk Content-Length: 6526 X-Lines: 164 Status: RO *********************************************************************** * ANNOUNCEMENT * * Release of the Relationlog * * Deductive Database System * * Version 1.0 * * August, 1998 * *********************************************************************** We are pleased to announce the release of the first version of the Relationlog persistent deductive database system, RLOG V1.0. It is FREE for research, educational, and evaluation purposes. Relationlog is developed at the University of Regina in Canada with support from Natural Sciences and Engineering Research Council of Canada (NSERC). The objective of the Relationlog system is to directly support the storage and inference of data with complex structures, especially data supported in nested relational and complex-object models. The Relationlog system can be used in complex, non-business applications such as Engineering Databases, CAD databases, text retrieval, image processing, etc. where nested relations or complex-object relations are needed. It can also be used as a teaching tool for advanced database courses on nested relational databases, complex-object databases, deductive databases, and deductive complex-object databases. The main novel feature of Relationlog is its powerful inference mechanisms on nested and complex-object relations with a well-defined declarative semantics. The Relationlog system supports the Relationlog query language which is an extension of Datalog with sets and tuples and stands in the same relationship to the nested relational and complex-object models as Datalog stands to the relational model. It also supports SQL-like Data Definition Language and Data Manipulation Language. It has been tested extensively and should be robust for most applications. Release 1.0 of Relationlog is available from its Web home page at http://www.cs.uregina.ca/~mliu/RLOG/ and runs on the following platforms: Hardware Operating Systems -------- ----------------- SUN SparcStations Solaris 2.5 SGI Workstations IRIX 5.4 Important Features of Version 1.0 1. persistent domain types, relation schemas, facts, and rules 2. direct inference and access to embedded values in a nested or complex-object relation as if the relation is normalized 3. SQL-like Data Definition Language, Data Manipulation Language and Datalog like Query Language. 4. Meta information management in the system catalog files, which keep track of all databases existing in the system. 5. Effective combination of various evaluation strategies based on the nature of the query and data in the database without user's intervention An Example The following is a Relationlog program which can show the power of RLOG system: Types: NameType = string(10) Location = [City: string, Country: string] Schema: Person( Name: NameType, Age: integer, Parents: {NameType}, LivesIn: Location) key = (Name) Parentsof(Name: NameType, Parents: {NameType}) key = (Name) Ancestorsof(Name: NameType, Ancestors: {NameType}) key = (Name) TrueAncsof(Name: NameType, TrueAncs: {NameType}) key = (Name) Facts: Person("Tom", 65, { }, ["Toronto", "Canada"] ) Person("Lili", 69,{ }, ["Regina", "Canada"]) Person("Pam", 60, { }, ["Saskatoon", "Canada"]) Person("John",68, { }, ["Regina", "Canada"]) Person("Mary",45, {"John","Lili"},["Saskatoon", "Canada"]) Person("Liz", 43, {"Tom"}, ["Calgary", "Canada"]) Person("Bob", 40, {"Pam","Tom"}, ["Los Angeles", "USA"]) Person("Ann", 20, {"Bob"}, ["Chicago", "USA"]) Person("Pat", 36, {"Bob","Mary"}, ["New York","USA"]) Person("Jim", 2 , {"Pat"},["New York","USA"]) Rules: Parentsof(_Name, _Parents) :- Person(_Name, _, _Parents) Ancestorsof(_Name, <_Anc>) :- Parentsof(_Name, <_Anc>) Ancestorsof(_Name, <_Anc>) :- Parentsof(_Name, <_Par>), Ancestorsof(_Par, <_Anc>) TrueAncsof(_Name, <_Anc>) :- Ancestorsof(_Name, <_Anc>), not Parentsof(_Name, <_Anc>) The Relationlog system can be used as follows: % rlog +---------------------------------------------------------------------+ | RLOG System, Version 1.0 | | | | Department of Computer Science, University of Regina | | Regina, Saskatchewan, Canada S4S 0A2 | | | | For Help, type 'help' | | For comments/suggestions/problems, please email to | | | | rlog@cs.uregina.ca | +---------------------------------------------------------------------+ Rlog[1]> createdb Family Rlog[2]> query Person(_X,_,_,[_,"Canada"]) Rlog[3]> query Ancestorsof(_X,<"Tom">) Rlog[4]> query TrueAncsof(_X,_Y) Rlog[5]> query Person(_Name, _Age, _Parents, [_City]), _City = "Regina" Rlog[6]> query Person(_Name1, _, _Parents, _Location), Person(_Name2, _, _Parents, _Location), _Name1 <> _Name2 Rlog[7]> query Parentsof("Bob",<_X1>), not Parents("Jim",<_X1>) Rlog[8]> insert Person("Mary",45, {"John","Lili"},["Saskatoon", "Canada"]) Rlog[9]> delete Person("Tom") Rlog[10]> delete Person(_, _Age),_Age < 34 Rlog[11]> delete Person(_X,_Y,_Z, ["Toronto",_W]), insert Person(_X,_Y, _Z, ["Vancouver",_W]) Rlog[12]> delete Person("Jim", _, <"Pat">) insert Person("Liz", 60, <"Bob">,["Saskatoon", "Canada"]) ... -------------------------------------------------------------------------- The dbworld list reaches many people, and should only be used for messages of general interest to the database community. To subscribe or unsubscribe yourself (or optionally (address)) from dbworld, send a msg to majordomo@cs.wisc.edu with one of these lines: subscribe dbworld (address) unsubscribe dbworld (address) To find out more options send a msg with the line: help --------------------------------------------------------------------------