
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.

OWLView.java:
	Generates W3C Semantic Web OWL format. The org.semanticweb jar files
   need to be installed in order for this to be compiled.

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:
	Deprecated. Do not use for new development.
	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 "Compact" 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.
