Package org.semanticweb.owl.model

An API for OWL.

See:
          Description

Interface Summary
OWLAnd A conjunction of expressions.
OWLAnnotationInstance OWLAnnotationInstance.java Created: Thu May 08 17:36:07 2003
OWLAnnotationProperty OWLAnnotationProperty.java Created: Thu May 08 16:47:28 2003
OWLBooleanDescription An abstract interface encompassing And, Or and Not.
OWLCardinalityRestriction An OWLCardinalityRestriction represents an assertion about the number of role fillers a property can or must have.
OWLClass An OWL Class represents a named class within an ontology.
OWLClassAxiom A super interface for various axiom types, such as subclass, equivalence or disjointness.
OWLClassAxiomVisitor A Visitor for OWL entities objects.
OWLDataAllRestriction A universally quantified restriction over a datatype property.
OWLDataCardinalityRestriction A CardinalityRestriction that applies to an OWLDataProperty.
OWLDataEnumeration An OWLDataEnumeration is a collection of OWLDataValues, e.g. a data oneOf.
OWLDataFactory OWLDataFactory provides a single access point for the creation of objects within an ontology.
OWLDataProperty An OWLProperty whose range is some concrete data type.
OWLDataPropertyInstance Represents an association between a particular individuals and a data value.
OWLDataQuantifiedRestriction A Restriction over an OWLDataProperty that is quantified.
OWLDataRange An abstract interface for data ranges.
OWLDataRestriction A Restriction that particularly applies to an OWLDataProperty.
OWLDataSomeRestriction An existentially quantified restriction over a datatype proerty.
OWLDataType A place holder for concrete data types.
OWLDataValue A place holder for concrete data.
OWLDataValueRestriction A restriction over a datatype property with a given value.
OWLDeprecatableObject A super interface representing those things that can be deprecated.
OWLDescription An abstract interface encompassing various description types -- boolean expressions, restrictions, enumerations etc.
OWLDescriptionVisitor A Visitor for OWL data structure objects.
OWLDifferentIndividualsAxiom An axiom asserting that a number of individuals are different.
OWLDisjointClassesAxiom An axiom asserting the disjointness of a number of classes.
OWLDLOntology Sub interface of Ontology which is intended to represent a DL ontology.
OWLEntity A top level interface for entities -- the primitive kinds of things that are found in Ontologies.
OWLEntityVisitor A Visitor for OWL entities objects.
OWLEnumeration An OWLEnumeration is a collection of OWLIndividuals.
OWLEquivalentClassesAxiom An axiom asserting the equivalence of a number of classes.
OWLEquivalentPropertiesAxiom An axiom asserting the equivalence of a number of properties.
OWLFrame A frame packages up a top-level description of a class, and consists of a number of superclasses and a number of restrictions.
OWLIndividual An individual object.
OWLIndividualAxiom An abstract interface encompassing axioms about individuals.
OWLIndividualAxiomVisitor A Visitor for OWL entities objects.
OWLLiteOntology Sub interface of Ontology which is intended to represent an OWLLite ontology.
OWLNamedObject A superinterface for all named things (anything that has a URI associated with it).
OWLNaryBooleanDescription A super interface encompassing And and Or expressions.
OWLNot The complement of a description.
OWLObject A top level interface for the kinds of things that are found in Ontologies.
OWLObjectAllRestriction A universally quantified restriction over a object property.
OWLObjectCardinalityRestriction A CardinalityRestriction that applies to an OWLIndividualProperty.
OWLObjectProperty An OWLProperty whose range is a class (a collection of domain objects).
OWLObjectPropertyInstance Represents an association between two particular individuals using an ObjectProperty.
OWLObjectQuantifiedRestriction A Restriction over an OWLIndividualProperty that is quantified.
OWLObjectRestriction A Restriction that particularly applies to an OWLObjectProperty.
OWLObjectSomeRestriction An existentially quantified restriction over a datatype property.
OWLObjectValueRestriction A restriction over an individual property with a given value.
OWLObjectVisitor A Visitor for OWL data structure objects.
OWLOntology Represents an OWL ontology.
OWLOntologyObject An OWLOntologyObject knows about the ontology from which it came.
OWLOr A disjunction of expressions.
OWLProperty A Property in an OWL ontology.
OWLPropertyAxiom A super interface for various property axiom types, such as subproperty or equivalence.
OWLPropertyAxiomVisitor A Visitor for OWL entities objects.
OWLPropertyInstance Super interface for instances of property filling.
OWLRestriction A super interface of datatype and individual restrictions.
OWLSameIndividualsAxiom An axiom asserting that a number of individuals are the same.
OWLSubClassAxiom An axiom asserting a subclass relationship between a pair of Descriptions.
OWLSubPropertyAxiom An axiom asserting a subclass relationship between a pair of Properties.
 

Exception Summary
OWLException Base class for all OWL Exceptions.
 

Package org.semanticweb.owl.model Description

An API for OWL.
© The University of Manchester, 2002.

Package Specification

This package provides a collection of interface definitions that provide an API to OWL ontologies. An ontology consists of a number of classes, properties and individuals. In addition, an ontology will contain a number of axioms that provide definitions of classes and describe the relationships that hold between classes.

The interfaces defined here essentially describe the OWL objects as simple structs. There is little functionality offered here other than get methods. Access is read-only. If applications wish to make changes to an ontology, they should make use of change events (see org.semanticweb.owl.model.change).

The data structures are targeted mainly at the Lite and DL subspecies of OWL (although OWL Full ontologies can be represeted using the API). This does mean that some assumptions are made about the ontologies. For example, the validation rules for OWL Lite and DL ontologies represented in OWL-RDF say that all individuals must be assigned a type (e.g. for all individuals xthere must be a triple x rdf:type y where y is a class. In the API this is not necessary -- we can have individuals that are introduced with no type. However, when those ontologies are serialised, we might expect a triple of the form x rdf:type owl:thing to be added.

Reasoning

Note that the philosophy behind this particular collection of interfaces is that they simply provide access to the told information within an OWL model. Further interfaces will provide access to additional functionality relating to inference based on the formal semantics of the language, but this is not provided here. This separation of the functionality means that an application can provide a level of implementation relating OWL models (for example providing persistent store) without having to commit to the implementation of a reasoner.

Collections

Many of the classes defined here make use of collections. For example, OWLNaryBooleanDescription has a collection of expressions which are (unsurprisingly) the operands to the operator. The interfaces use the Set type Set. This means that users of the API will have to cast objects as they are extracted from the lists, e.g. the operands of a conjunction may have to be cast to OWLDescription before they can be used. The issue here is in the trade-off between type-safety (providing a number of different typed collection classes) and keeping the interfaces small, easy to understand, maintain and implement.

Locality of Information

For a number of objects in the API, assertions can be made about those objects. For example, we can say that an OWL Class A has a superclass which is the OWL Class B. All such assertions must be made within the context of a particular ontology. This allows ontologies to make alternative (and possibly conflicting) statements about the same classes. In order to support this, a number of accessors are defined on the objects in the API. For example, if we wish to discover whether an OWLObjectProperty has been asserted to be transitive we can ask if this is the case for

  1. A particular ontology.
  2. Any one of a collection of ontologies.
Note that in the case of 1, the expected behaviour is that this will not include the imports closure of the ontology, but will simply report whether the assertion has been explicitly made within the ontology. In order to query about facts relating to the imports closure, the imports closure should first be obtained (via the importClosure method.

Exceptions

All methods in the interface classes have the capability of throwing OWLExceptions. Although this places some burden on client applications, this provides a flexible mechanism that caters for many different scenarios, for example the case where the implementation of the model relies on network communication which may be disrupted at any time.

A comment on Frames

The interface hierarchy includes a class OWLFrame. The intention is that a frame packages up a top-level description of a class, and consists of a number of superclasses and a number of restrictions. Although OWLFrame doesn't have a direct counterpart in OWL (or in DAML+OIL), the notion of a frame was a particularly useful one in the OilEd implementation as it provides a user-friendly view on ontology descriptions. The semantics of a frame is simply the conjunction of the superclass descriptions and restrictions.

The class is pretty much unused at present, however it is likely to prove useful in supporting user interactions with OWL ontologies. In particular, it allows us to isolate those places where an intersection can actually be legally used in OWL Lite, and can thus ease the process of species validation. Thus some refactoring is likely to take place in this area.

Credits

The original concept, design and coding of the interface was by Sean Bechhofer and Phil Lord of the University of Manchester and Angus Roberts, now at the University of Sheffield. Additional design by Raphael Volz of the University of Karlsruhe.



WonderWeb