org.semanticweb.owlapi.reasoner
Interface Node<E extends OWLObject>

All Superinterfaces:
java.lang.Iterable<E>
All Known Implementing Classes:
DefaultNode, OWLClassNode, OWLDataPropertyNode, OWLDatatypeNode, OWLNamedIndividualNode, OWLObjectPropertyNode

public interface Node<E extends OWLObject>
extends java.lang.Iterable<E>

Author: Matthew Horridge
The University of Manchester
Information Management Group
Date: 03-Jul-2009

Represents a node (set) of entities. The entities in a node are equivalent to each other.

Nodes in hierarchies

In the OWL API, a reasoner treats a class hierarchy, an object property hierarchy or a data property hierarchy as a hierarchy (directed acyclic graph - DAG) of Nodes. Each node contains entities that are equivalent to each other. A hierarchy contains a top node, which is the ancestor of all nodes in the hierarchy, and a bottom node which is the descendant of all nodes in the hierarchy.

In a class hierarchy, the nodes contain OWLClass objects. The top node contains owl:Thing (and any other named classes that are equivalent to owl:Thing). The bottom node contains owl:Nothing (and any other named classes that are equivalent to owl:Nothing - these classes are unsatisfiable classes).

In an object property hierarchy, the nodes contain OWLObjectProperty objects. The top node contains owl:topObjectProperty (and any other named object properties that are equivalent to owl:topObjectProperty). The bottom node contains owl:bottomObjectProperty (and any other named object properties that are equivalent to owl:bottomObjectProperty).

In a data property hierarchy, the nodes contain OWLDataProperty objects. The top node contains owl:topDataProperty (and any other data properties that are equivalent to owl:topDataProperty). The bottom node contains owl:bottomDataProperty (and any other data properties that are equivalent to owl:bottomDataProperty).

Class Hierarchy Example

The figure below shows an example class hierarchy. Each box in the hierarchy represents a Node. In this case the top node contains owl:Thing and the bottom node contains owl:Nothing because the nodes in the hierarchy are OWLClass nodes. In this case, class G is equivalent to owl:Thing so it appears as an entity in the top node. Similarly, class K is unsatisfiable, so it is equivalent to owl:Nothing and therefore appears in the bottom node containing owl:Nothing.


Method Summary
 boolean contains(E entity)
          Determines if this node contains the specified entity.
 java.util.Set<E> getEntities()
          Gets the entities contained in this node.
 java.util.Set<E> getEntitiesMinus(E e)
          Gets the entities contained in this node minus the specified entitie e.
 java.util.Set<E> getEntitiesMinusBottom()
          Gets the entities contained in this node minus the bottom entity.
 java.util.Set<E> getEntitiesMinusTop()
          Gets the entities contained in this node minus the top entity.
 E getRepresentativeElement()
          Gets one of the entities contained in this entity set.
 int getSize()
          Gets the number of entities contained in this Node
 boolean isBottomNode()
          Determines if this node represents the bottom node (in a hierarchy).
 boolean isSingleton()
          Determines if this Node contains just one entity.
 boolean isTopNode()
          Determines if this node represents the top node (in a hierarchy).
 
Methods inherited from interface java.lang.Iterable
iterator
 

Method Detail

isTopNode

boolean isTopNode()
Determines if this node represents the top node (in a hierarchy). For a named class node, the top node is the node that contains owl:Thing. For an object property node, the top node is the node that contains owl:topObjectProperty. For a data property node, the top node is the node that contains owl:topDataProperty

Returns:
true if this node is an OWLClass node and it contains owl:Thing.

true if this node is an OWLObjectProperty node and it contains owl:topObjectProperty.

true if this node is an OWLDataProperty node and it contains owl:topDataProperty.

false if none of the above.

isBottomNode

boolean isBottomNode()
Determines if this node represents the bottom node (in a hierarchy). For a named class node, the bottom node is the node that contains owl:Nothing. For an object property node, the bottom node is the node that contains owl:bottomObjectProperty. For a data property node, the bottom node is the node that contains owl:bottomDataProperty

Returns:
true if this node is an OWLClass node and it contains owl:Nothing.

true if this node is an OWLObjectProperty node and it contains owl:bottomObjectProperty.

true if this node is an OWLDataProperty node and it contains owl:bottomDataProperty.

false if none of the above.

getEntities

java.util.Set<E> getEntities()
Gets the entities contained in this node. The entities are equivalent to each other.

Returns:
The set of entities contained in this Node.

getSize

int getSize()
Gets the number of entities contained in this Node

Returns:
The number of entities contained in this node.

contains

boolean contains(E entity)
Determines if this node contains the specified entity.

Parameters:
entity - The entity to check for
Returns:
true if this node contains entity, or false if this node does not contain entity

getEntitiesMinus

java.util.Set<E> getEntitiesMinus(E e)
Gets the entities contained in this node minus the specified entitie e. This essentially returns the entities that are returned by getEntities() minus the specified entity e

Parameters:
e - The entity that, is contained within this node, but should not be included in the return set.
Returns:
The set of entities that are contained in this node minus the specified entity, e. If e is not contained within this node then the full set of entities returned is the same as that returned by getEntities()

getEntitiesMinusTop

java.util.Set<E> getEntitiesMinusTop()
Gets the entities contained in this node minus the top entity. For a node of named classes the top entity is owl:Thing. For a node of object properties the top entity is owl:topObjectProperty. For a node of data properties the top entity is owl:topDataProperty

Returns:
The set of entities contained within this node minus the top entity. If this node does not contain the top entity then the set of entities returned is the same as that returned by getEntities().

getEntitiesMinusBottom

java.util.Set<E> getEntitiesMinusBottom()
Gets the entities contained in this node minus the bottom entity. For a node of named classes the bottom entity is owl:Nothing. For a node of object properties the bottom entity is owl:bottomObjectProperty. For a node of data properties the bottom entity is owl:bottomDataProperty

Returns:
The set of entities contained within this node minus the bottom entity. If this node does not contain the bottom entity then the set of entities returned is the same as that returned by getEntities().

isSingleton

boolean isSingleton()
Determines if this Node contains just one entity.

Returns:
true if this Node contains just one entity, otherwise false

getRepresentativeElement

E getRepresentativeElement()
Gets one of the entities contained in this entity set. If this is a singleton set it will be the one and only entity.

Returns:
An entity from the set of entities contained within this node
Throws:
java.lang.RuntimeException - if this node is empty (it does not contain any entities).