
Directory structure overview:
-----------------------------

RelationExtractor.java:
	This is the main class, wrapping together all of the various
	functions.  It should be taken to be an "example" of how 
	to use RelEx in other systems. Yet, it is fully functional, and 
	implements main(), which accepts sentences and generates output
	of various forms, depending on the command-line flags.

algs: 
	code for applying the relation extraction algorithms,
	such as the template substitution algorithm.

anaphora:
	Anaphora resolution algorithm. Implements the Hobbs algorithm.

chunk:
	Code to generate lexical chunks, aka lexicalized stems or units
   or phrases. Mostly focused on phrasal verbs.

concurrent:
	Provide infrastructure for multi-threaded (parallel) execution.
	Not normally used or needed; intended only for improving 
   performance for production servers.

corpus:
	Code to handle multiple-sentence corpuses. Includes a class to 
	split a document into multiple sentences, and another to perform
	entity extraction. The current system uses OpenNLP for sentence
	detection, so this directory contains code to wrap the OpenNLP
	system.

entity:
	Mangle sentences to consolidate entities before passing a sentence
	to the parser.  This eases the burden on the parser. The entity
	detection is supplied by systems outside of relex. The current 
	implementation uses GATE.

feature:
	The core classes for representing the feature graph.

frame:
	An implementation of a simple forward-chainging inference engine,
	which is used to apply a set of frame rules to the relex output.

morphy:
	A simple, easy-to-use class for finding the base forms (lemmas)
	of a word. The current system uses wordnet to determine the lemmas,
	and so most of the code here is a wrapper around wordnet.

output:
	A collection of disparate classes that convert relex output to 
	various formats. Notable are a set of classes that generate
	OpenCog format XML.

parser:
	Interfaces to the link grammar parser. Two choices: an in-process
	JNI binding to the C-language liblink-grammar-java.so, and an 
	out-of-process server, reachable via a socket interface.

stats:
	Some simple classes providing very basic statistical support,
	including some TruthValue (a la OpenCog) classes.

tree:
	Routines to extract and manipulate the treebank style phrase tree
	of a given parse. The phrase tree is central to the Hobbs algorithm,
	and to lexical chunking. The PhraseLeader class provides head-word
   identification.

wsd:
	Simple word-sense disambiguation code; compares word usage in pairs
   of sentences.

