Appeared in Volume 9/2, May 1996
gator@cs.tu-berlin.de
Peter Daum
12th January 1996
I am about to write a paper about Datalog (a Prolog-like language that can be used as a query language for databases). Does anybody have some references that might help me? In particular, is there an implementation of Datalog?
hoppet@cs.tu-berlin.de
Thomas Hoppe
12th January 1996
You might take a look at the following book, which discusses Datalog in the context of deductive database systems:
S. Ceri, G. Gottlob and L. Tanca, Logic Programming and Databases, Springer-Verlag, 1990, Surveys in Computer Science, Berlin, Heidelberg, New York
Datalog programs are function-free Horn-clause programs. This means that Datalog can be implemented using a standard Prolog-interpreter, as long as you avoid function symbols in your clauses, and use a breadth-first meta-interpreter which returns answer sets. Ceri et al discuss other reasoning strategies.
You can also transform Horn-clauses with function-symbols into an equivalent Datalog program and back again. In machine learning, this operation is known as 'flattening'. Check out the following paper:
C. Rouveirol, Flattening and Saturation: Two Representation Changes for Generalization, Machine Learning, 1994, Vol. 14, No. 2, pp.220--223
sadowski@well.sf.ca.us
Duane F. Sadowski
13th January 1996
Here are a couple of books that briefly discuss Datalog and provide some references:
C.J. Date, An Introduction to Database Systems, 6th ed., 1995, Addison-Wesley
R. Elmasri and S. B. Navathe, Fundamentals of Database Systems, 2nd ed., 1994, Benjamin/Cummings
jamil@cs.concordia.ca
Hasan M Jamil
17th January, 1996
Coral and LDL are two systems based on Datalog. Coral was developed at the Univ. of Wisconsin-Madison by Raghu Ramakrishnan's group, and LDL was developed at the MCC by Carlo Zaniolo's group. Coral can process queries in both top-down and bottom-up mode, while LDL is mainly bottom-up. There are several technical notes at the Madison web site, including a user manual for Coral.
Both LDL and Coral have object-oriented extensions, called respectively the LDL++ and Coral++.
warren@cs.sunysb.edu
David Warren
17th January 1996
Let me add that XSB (freely available from ftp://ftp.cs.sunysb.edu/pub/XSB, or through http://www.cs.sunysb.edu/~sbprolog) supports Datalog evaluation. It is an extension of Prolog, fully integrating top-down and bottom-up computation in an elegant manner. It is also significantly faster than the systems mentioned above.