This package contains a lightweight deductive database system in OCaml
OCaml Shell Makefile
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
AUTHORS initial Jan 31, 2013
COPYING initial Jan 31, 2013
Makefile add ref to CPPL and test and build instructions Feb 1, 2013
OCamlMakefile initial Jan 31, 2013
README rename Feb 1, 2013
ancestor.dl initial Jan 31, 2013
ancestor.txt initial Jan 31, 2013
bidipath.dl initial Jan 31, 2013
bidipath.txt initial Jan 31, 2013
cruanes Add make instructions for OCaml Datalog Feb 5, 2013
datalog.ml create theory uses non-random hashing Sep 18, 2015
datalog.mli initial Jan 31, 2013
l.ml initial Jan 31, 2013
laps.dl initial Jan 31, 2013
laps.txt initial Jan 31, 2013
long.dl initial Jan 31, 2013
long.txt initial Jan 31, 2013
main.ml initial Jan 31, 2013
parser.mly initial Jan 31, 2013
path.dl initial Jan 31, 2013
path.txt initial Jan 31, 2013
pq.dl initial Jan 31, 2013
pq.txt initial Jan 31, 2013
prover.ml initial Jan 31, 2013
reader.ml initial Jan 31, 2013
reader.mli initial Jan 31, 2013
revpath.dl initial Jan 31, 2013
revpath.txt initial Jan 31, 2013
scanner.mll initial Jan 31, 2013
tc.dl initial Jan 31, 2013
tc.txt initial Jan 31, 2013
true.dl initial Jan 31, 2013
true.txt initial Jan 31, 2013
try initial Jan 31, 2013

README

ocaml-datalog
=============

This package contains a lightweight deductive database system written
in OCaml.  Queries and database updates are expressed using Datalog--a
declarative logic language in which each formula is a function-free
Horn clause, and every variable in the goal of a clause must appear in
the body of the clause.  The use of Datalog syntax and an
implementation based on tabling intermediate results, ensures that all
queries terminate.  This is an OCaml version of the Lua implementation
at <http://datalog.sf.net>, and documentation on that site is
relevant.

This Datalog engine was extracted from the runtime system of the
Cryptographic Protocol Programming Language (CPPL) at
<http://www.ccs.neu.edu/home/ramsdell/tools/cppl-1.6.tar.gz>.  The
Cryptographic Protocol Programming Language (CPPL) facilitates the
design and implementation of hand-crafted protocols for electronic
commerce and cross-organization distributed applications.  The Datalog
engine is used to establish trust relations between communicating
participants.

To build the software, type "make".

$ ./datalog --help
Usage: datalog  [-o output] [input]
  -o name - send output to this file (default stdout)
  --      - treat remaining args as file names, where - means stdin
  -help  Display this list of options
  --help  Display this list of options
$

To run the test suite, type "./try".  No output means all tests passed.