Class TabDelimParser
The tab-delimited ontology files have three types of lines. Lines that are
pure white space can be discarded. Comment lines begin with a hash (#) and
can be discarded. The payload lines contain three fields seperated by tabs.
These are subject
, predicate
and
object
.
By convention, the content of each field contains no spaces.
By convention, if there are comment lines beginning with name:
or description:
and these appear before any predicate
declarations then they become the name and description of the ontology.
Otherwise, the name and description will be the empty string.
Term names normally will be just a term name like predicate
or
person
. There are also terms that represent collections of
triples. For example, here is the declaration for the 'triple' type in
the core ontology.
...
triple is-a any
triple has-a source
triple has-a target
triple has-a predicate
(triple,has-a,any) size 3
...
The first four lines just associate triple with some type with a predicate
(e.g. is-a or has-a). The fifth line says that something must have a size of
three. The 'something' is (triple,has-a,any) size 3
and is
short-hand for a collection of triples that state that the source must be
triple
, the target must be any
and the predicate
must be has-a
. This whole expression states that a triple
has exactly three has-a relationships; that is, exactly three properties.
- Author:
- Matthew Pocock
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionparse
(BufferedReader in, OntologyFactory of) Parse an ontology from a reader.
-
Constructor Details
-
TabDelimParser
public TabDelimParser()
-
-
Method Details
-
parse
Parse an ontology from a reader. The reader will be emptied of text. It is the caller's responsibility to close the reader.- Parameters:
in
- the BufferedReader to read fromof
- an OntologyFactory used to create the Ontology instance- Returns:
- a new Ontology
- Throws:
IOException
- if there is some problem with the buffered readerOntologyException
- if it was not possible to instantiate a new ontology
-