This the first version of an API to access SURGE functionality from Java.

See:
          Description

Packages
edu.columbia.surge This package contains all the interfaces of the API.
edu.columbia.surge.hashImpl This package contains an implementation using hash tables.
edu.columbia.surge.unifier Different implementations of unifier engines.

 

This the first version of an API to access SURGE functionality from Java. It allows the creation of functional descriptions (FDs) and its posterior unification. A functional description is a directed acyclic graph (DAG) normally presented graphically with a hierarchical matrix, with indexes to indicate reusing of nodes. We wanted to allow different implementation of FDs to live together. The underlining FD implementation is a major issue in the efficiency of an unifier engine. At this level of design we didn't commit to any particular implementation, devising all the FDs and its subtypes as interfaces.

The package edu.columbia.surge contains these interfaces together with interfaces to factories of the relevant types. The package edu.columbia.surge.hashImpl contains implementations of these interfaces using hash tables.

An example unifier that connects to a LISP-based unifier through TCP/IP is provided in the package edu.columbia.surge.unifier. Also of interest there is a cache-unifier, using java.util.WeakHashMap.

Comments regarding this alpha release to Pablo Duboue (pablo@cs.columbia.edu)

FUF/SURGE is distributed under the GPL. These files are distributed under LGPL.