Interface Node<E extends OWLObject>

Type Parameters:
E - the type of elements represented in the Node
All Superinterfaces:
Iterable<E>
All Known Implementing Classes:
DefaultNode, OWLClassNode, OWLDataPropertyNode, OWLDatatypeNode, OWLNamedIndividualNode, OWLObjectPropertyNode

public interface Node<E extends OWLObject> extends Iterable<E>
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 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 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.
hierarchy
Since:
3.0.0
Author:
Matthew Horridge, The University of Manchester, Information Management Group
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    contains(E entity)
    Determines if this node contains the specified entity.
    Gets the entities contained in this node.
    default Set<E>
    Gets the entities contained in this node.
    Gets the entities contained in this node minus the specified entity e.
    Gets the entities contained in this node minus the bottom entity.
    Gets the entities contained in this node minus the top entity.
    Gets one of the entities contained in this entity set.
    int
    Gets the number of entities contained in this Node.
    boolean
    Determines if this node represents the bottom node (in a hierarchy).
    boolean
    Determines if this Node contains just one entity.
    boolean
    Determines if this node represents the top node (in a hierarchy).

    Methods inherited from interface java.lang.Iterable

    forEach, iterator, spliterator
  • Method Details

    • 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

      default 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. The set that is returned is a copy; modifications to the returned set will not be reflected in this object.
    • entities

      Stream<E> entities()
      Gets the entities contained in this node. The entities are equivalent to each other.
      Returns:
      stream 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

      Set<E> getEntitiesMinus(E e)
      Gets the entities contained in this node minus the specified entity 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

      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

      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:
      RuntimeException - if this node is empty (it does not contain any entities).