Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES

## 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 `OWLDataValue`s, 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 `OWLIndividual`s.
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 `x`there 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 `OWLException`s. 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.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES

WonderWeb