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
- Login as the guest user.
- Change directory to the shared directory holding
example programs and associated facts.
- Load and compile example1.prg.
- Load facts from example1.fac.
- Query
"lt_city(X,Y)".
- Select
"System: Answers/Facts to Browser",
then re-query "lt_city(X,Y)".
- 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