This package provides data structures representing an OIL ontology. An ontology consists of a number of classes, slots and individuals. Each class has a class definitions which provides a specification of the superclasses of the class along with an indication of whether the class is primitive or defined.
The classes make use of the JGL library classes. As these provide generic containers, clients will need to do some casting in order to make use of the results of calls e.g. with {@link BooleanExpression#getOperands() getOperands()}, the elements of the list will need to be cast to ClassExpression by a client class. This requires the client to know what it's doing.
This may possibly result in more casting than is healthy, so be careful of what you're doing with these classes.
Note also that in general, the classes do not supply toString methods. The rendering of the expressions is very much context dependent, so the responsibility of that is left with any client applications.
The public methods for manipulating the data structures (adding, removing, editing) should be used whenever possible as this will ensure that any registered {@link OntologyChangeListener OntologyChangeListener}s will receive information about updates.
As it stands, however, the {@link OntologyChangeEvent OntologyChangeEvent} structure probably isn't fine grained enough to support full control of change management and versioning.
It should, theoretically, be possible to provide a reimplementation of this entire package which will then simply slot into the UI. To do that properly would probably require the provision of interfaces describing each of the classes in the data structure hierarchy.
@see com.objectspace.jgl @author Sean Bechhofer (seanb@cs.man.ac.uk)