org.semanticweb.owl.util
Class OWLObjectPropertyManager

java.lang.Object
  extended by org.semanticweb.owl.util.OWLObjectPropertyManager

public class OWLObjectPropertyManager
extends java.lang.Object

Author: Matthew Horridge
The University Of Manchester
Bio-Health Informatics Group
Date: 25-Feb-2008


Constructor Summary
OWLObjectPropertyManager(OWLOntologyManager manager, OWLOntology ont)
           
 
Method Summary
 void dispose()
           
 java.util.Set<OWLObjectPropertyExpression> getCompositeProperties()
           
 java.util.Collection<java.util.Set<OWLObjectPropertyExpression>> getEquivalentObjectProperties()
           
static java.util.Collection<java.util.Set<OWLObjectPropertyExpression>> getEquivalentObjectProperties(java.util.Set<OWLOntology> ontologies)
           
 java.util.Map<OWLObjectPropertyExpression,java.util.Set<OWLObjectPropertyExpression>> getHierarchyReflexiveTransitiveClosure()
           
 java.util.Set<OWLObjectPropertyExpression> getNonSimpleProperties()
           
protected  java.util.Set<OWLOntology> getOntologies()
           
 java.util.Map<OWLObjectPropertyExpression,java.util.Set<OWLObjectPropertyExpression>> getPropertyHierarchy()
          The object property hierarchy relation → is the smallest relation on object property expressions for which the following conditions hold (A → B means that → holds for A and B): if Ax contains an axiom SubObjectPropertyOf(PE1 PE2), then PE1 → PE2 holds; and if Ax contains an axiom EquivalentObjectProperties(PE1 PE2), then PE1 → PE2 and PE2 → PE1 hold; and if Ax contains an axiom InverseObjectProperties(PE1 PE2), then PE1 → INV(PE2) and INV(PE2) → PE1 hold; and if Ax contains an axiom SymmetricObjectProperty(PE), then PE → INV(PE) holds; and if PE1 → PE2 holds, then INV(PE1) → INV(PE2) holds as well.
 boolean isComposite(OWLObjectPropertyExpression expression)
          An object property expression PE is composite in Ax if Ax contains an axiom of the form SubObjectPropertyOf(SubObjectPropertyChain(PE1 ...
 boolean isNonSimple(OWLObjectPropertyExpression expression)
          The relation →* is the reflexive-transitive closure of →.
 void setOntology(OWLOntology ontology)
           
static void tarjan(java.util.Set<OWLOntology> ontologies, OWLObjectPropertyExpression prop, int index, java.util.Stack<OWLObjectPropertyExpression> stack, java.util.Map<OWLObjectPropertyExpression,java.lang.Integer> indexMap, java.util.Map<OWLObjectPropertyExpression,java.lang.Integer> lowlinkMap, java.util.Set<java.util.Set<OWLObjectPropertyExpression>> result, java.util.Set<OWLObjectPropertyExpression> processed, java.util.Set<OWLObjectPropertyExpression> stackProps)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OWLObjectPropertyManager

public OWLObjectPropertyManager(OWLOntologyManager manager,
                                OWLOntology ont)
Method Detail

dispose

public void dispose()

setOntology

public void setOntology(OWLOntology ontology)

getOntologies

protected java.util.Set<OWLOntology> getOntologies()

isComposite

public boolean isComposite(OWLObjectPropertyExpression expression)
An object property expression PE is composite in Ax if Ax contains an axiom of the form SubObjectPropertyOf(SubObjectPropertyChain(PE1 ... PEn) PE) with n > 1, or SubObjectPropertyOf(SubObjectPropertyChain(PE1 ... PEn) INV(PE)) with n > 1, or TransitiveObjectProperty(PE), or TransitiveObjectProperty(INV(PE)).

Parameters:
expression - The object property expression to be tested
Returns:
true if the object property is composite (according to the above definition) or false if the object property is not composite.

getCompositeProperties

public java.util.Set<OWLObjectPropertyExpression> getCompositeProperties()

getPropertyHierarchy

public java.util.Map<OWLObjectPropertyExpression,java.util.Set<OWLObjectPropertyExpression>> getPropertyHierarchy()
The object property hierarchy relation → is the smallest relation on object property expressions for which the following conditions hold (A → B means that → holds for A and B): if Ax contains an axiom SubObjectPropertyOf(PE1 PE2), then PE1 → PE2 holds; and if Ax contains an axiom EquivalentObjectProperties(PE1 PE2), then PE1 → PE2 and PE2 → PE1 hold; and if Ax contains an axiom InverseObjectProperties(PE1 PE2), then PE1 → INV(PE2) and INV(PE2) → PE1 hold; and if Ax contains an axiom SymmetricObjectProperty(PE), then PE → INV(PE) holds; and if PE1 → PE2 holds, then INV(PE1) → INV(PE2) holds as well.

Returns:
A Map that maps sub properties to sets of super properties.

getHierarchyReflexiveTransitiveClosure

public java.util.Map<OWLObjectPropertyExpression,java.util.Set<OWLObjectPropertyExpression>> getHierarchyReflexiveTransitiveClosure()

isNonSimple

public boolean isNonSimple(OWLObjectPropertyExpression expression)
The relation →* is the reflexive-transitive closure of →. An object property expression PE is simple in Ax if, for each object property expression PE' such that PE' →* PE holds, PE' is not composite.

Parameters:
expression - The expression to be tested.
Returns:
true if the object property expression is simple, otherwise false.

getNonSimpleProperties

public java.util.Set<OWLObjectPropertyExpression> getNonSimpleProperties()

getEquivalentObjectProperties

public static java.util.Collection<java.util.Set<OWLObjectPropertyExpression>> getEquivalentObjectProperties(java.util.Set<OWLOntology> ontologies)

getEquivalentObjectProperties

public java.util.Collection<java.util.Set<OWLObjectPropertyExpression>> getEquivalentObjectProperties()

tarjan

public static void tarjan(java.util.Set<OWLOntology> ontologies,
                          OWLObjectPropertyExpression prop,
                          int index,
                          java.util.Stack<OWLObjectPropertyExpression> stack,
                          java.util.Map<OWLObjectPropertyExpression,java.lang.Integer> indexMap,
                          java.util.Map<OWLObjectPropertyExpression,java.lang.Integer> lowlinkMap,
                          java.util.Set<java.util.Set<OWLObjectPropertyExpression>> result,
                          java.util.Set<OWLObjectPropertyExpression> processed,
                          java.util.Set<OWLObjectPropertyExpression> stackProps)