Introduction

Welcome to the internet demo of the LDL++ system.  This demo requires a Java-compliant browser: our applet has been tested on Netscape Communicator (4+), Internet Explorer 4, and HotJava. Please, email us your feedback and bug reports.

Credits

This Java-based interface was developed by Jack Hou, Haixun Wang, Richard Kwok , and Jiejun Kong of the UCLA CS Department; the LDL++ system was developed at MCC by Natraj Arni and Kayliang Ong; Dr. Carlo Zaniolo provided technical guidance to both projects. In fact, LDL++ is the fruit of the collaboration of many contributors: see history and people. The LDL++ system is part of the InfoSleuth technology suite and property of MCC and their shareholders.

What's New

UCLA's version 5.* of LDL++ provides full support for XY-stratification and user-defined aggregates. The addition of early-returns rules to aggregates support the expression of on-line aggregation, data-mining algorithms, and monotonic aggregation. Other improvements and extensions include a JDBC interface for communicating with external databases.

Overview

The Logical Data Language LDL supports advanced queries and reasoning on databases, including the internal database managed by the LDL++ system, and external SQL-compliant databases. This Java interface allows a user to access LDL++ agents on the internet and to create advanced applications on remote databases.

An example session (A first-time user must read this portion)

  • Once this link to the LDL++ Java applet is clicked, the login window will appear followed by the actual menu-driven interface. Everybody may login as the guest user or an existing user.
  • There are several example programs extracted from LDL++ tutorial under the shared directory. Users may change to that directory via "System: Change directory to ... Shared Directory".
  • A typical evaluation starts with the user selecting "Load: Load Program with compilation".
    This loads into the workspace the program file(s), with the schema, the rules and the query forms. A list of files appears matching the default filter: "*.prg".

    Unlike Prolog, Deductive databases draw a sharp distinction between facts (extensional information) and rules (intensional information). The rules are treated as program, and thus compiled and executed against the database which contains a time-varying set of facts described by a time-invariant schema.

    Users may choose to load programs via the command "Load: Load Program without compilation" and then compile them later.

  • After loading a program, users may load associated facts via the command "Load: Facts".
    Facts file names end with "*.fac".
  • "Compile: Compile All" can be used to compile the query forms if the loaded programs have not been compiled yet.
  • With "Execute: Query" the user selects a compiled query form for execution. Then, a template will appear allowing the user to enter the deferred constants (denoted by $).

    The query result may be redirected to Web browser if "System: Answers/Facts to Browser" has been selected.

  • Users may edit their own LDL++ program and facts files via menu items in "File" menu.
  • "Load: Unload All" purges the workspace from facts and programs.
  • "Load: Quit" terminates the current session.
  • In conclusion, a first-time user may
    1. Login as the guest user.
    2. Change directory to the shared directory holding example programs and associated facts.
    3. Load and compile example1.prg.
    4. Load facts from example1.fac.
    5. Query "lt_city(X,Y)".
    6. Select "System: Answers/Facts to Browser", then re-query "lt_city(X,Y)".
    7. Exit.
  • Additional commands allow the user to load binary databases, display facts, rules, schemas and query forms, add and delete facts, change directories, list the files in the current directory, interactively edit such files, and abort the session if something goes wrong.
  • Interface Commands

    Here is the list of all available commands in LDL++ 5.1 Java Interface.

    Load
    Load Program with Compilation To load and parse files with rules, schema and query forms, then query forms are compiled and available later. (default filter used: *.prg)
    Load Program without Compilation To load and parse files with rules, schema and query forms. To make query forms available, compilation should be done later. (default filter used: *.prg)
    Load Facts To load and parse files containing ascii facts. (filter used: *.fac)
    Load Binary DB Facts can be stored more efficiently as LDL++'s internal binary database. Load a stored binary database from here. (filter used: *.bin)
    Save Binary DB Facts can be stored more efficiently as LDL++'s internal binary database. Save facts to a binary database from here. (filter used: *.bin)
    Unload All LDL++ is an interpreter. Resets the interpreter's workspace from here so that previously loaded programs and facts would not interfere future operations.
    Exit Every session instantiates a connection with LDL++ server. It is recommended that uses should exit each session from here so that connection is released.

    Display
    Schemas To display schema in the Java window
    Facts To display facts in the Java window.
    Rules To display rules in the Java Window.
    Query Forms The query forms (denoted by the keyword export in the program) are listed with their current compiled-or-not status
    All Of The Above To display schema, facts, rules, and query forms together.

    Compile
    Compile all To compile all parsed query forms
    Compile Query Forms The set of uncompiled query forms appears in a window. If all the query forms are compiled, the compile window will disappear.

    Execute
    Query The set of compiled query forms will appear. Once the user selects one, a template will appear allowing the user to enter the deferred constants in editable text fields.
    Insert The set of schemas will appear in a window. Choose a relation and enter new tuples.
    Delete All facts appear in a window, choose those no longer in effect and delete them. If there are too many facts (more than 100), user needs to input a valid fact according to LDL++ syntax.

    System
    List Contents of Directory All the files in the current directory are listed
    Change directory Change to shared directory, or user's own directory.
    History print the command history
    Change Password Change user's password. Guest users are not supposed to change password.
    Output to Broswer Query results can be redirected to web browsers so that users may store them for later use.

    File
    Open File Users may open an existing file from here.
    New File Users may open an non-existing file from here and save it with new name later.
    Delete File Users may delete an existing file from here.


    Pointers