
There are several distinct, code-wise unrelated,
but conceptually similar systems in this directory.
All of these are focused on providing printed output 
of the RelEx graph, or the concept frames.

There are other (older) output routines in other 
directories, including printZHeads and LinakbleView.
These older output routines should be migrated here, 
or possibly deprecated.

This directory contains:

SimpleView.java:
	Provides a very simple, simplistic printing of
	the RelEx relationship graph.

RawView.java:
	Provides an indented, structurally correct graph-style
	visualization of the RelEx graph.

CompactView.java:
	Provides a "compact-format" file, using an amalgamation
	of common public linguistic file formats. The goal of 
	this file format is to be human-readable, fairly compact
	and extremely easy to parse (at least, when using perl
	regex's). This is currently the default output format
	for generating large databases of pre-parsed text. 
	Strongly recommended for large projects. See goals
	below.

OpenCogScheme.java:
OpenCogSchemeRel.java:
OpenCogSchemeLink.java:
OpenCogSchemeFrame.java:
	Generates OpenCog Scheme. Only the OpenCog class is 
	public; the other two are helpers. SchemeRel generates
	output that corresponds to the basic RelEx feature 
	graph, while SchemeFrame generates output for the 
	frame relations. SchemeLink generates the link-grammar
	relations.

OpenCogXML.java:
OpenCogXMLRel.java:
OpenCogXMLFrame.java:
	Obsolete; use OpenCogScheme (above) instead.
   OpenCog no longer understands this format.
	Generates OpenCog XML. Only the OpenCog class is 
	public; the other two are helpers. XMLRel generates
	output that corresponds to the basic RelEx feature 
	graph, while XMLFrame generates output for the 
	frame relations.

ParseView.java:
PhraseView.java:
RelationView.java:
	These three files, together as a group, implement
	the so-called "Cerego-style" output. There are two
	variants "plain-text" and XML. The XML format is 
	quite complex and daunting. Only ParseView is public;
	the other two are helper classes.


========================================================
       Design Notes for the "Comapact" file format

The goal of the generic parse output format is to allow the results of
parsing a text to be stored in a relatively compact, simple format that
is easily read by humans as well as machines.  Because NLP parsing is 
a relatively CPU-intensive computational task, having a collection 
of pre-parsed texts offers a reasonable jumping-off point for more 
sophisticated experiments in NLP search, reasoning and general AI systems.

See the web page:
http://opencog.org/wiki/RelEx_compact_output
for further details.

The output format should meet these design requirements:
 * Easily machine readable using regex (e.g. perl)
 * Logs dates and versions
 * Sentence order is important!

-- indicate data format version
-- indicate parse date
-- indicate parser version
-- indicate URI's of source text
-- store all unary and binary relations
-- store contituent tree.
-- store parse ranking meta-info

-- ideally, use triples (a la RDF)
-- Use s-expressions, or possibly JSON

-- Don't forget: unique word-instance ID's.
