uk.ac.manchester.cs.owl.modularity
Class SyntacticLocalityModuleExtractor

java.lang.Object
  extended by uk.ac.manchester.cs.owl.modularity.SyntacticLocalityModuleExtractor
All Implemented Interfaces:
OntologySegmenter

public class SyntacticLocalityModuleExtractor
extends java.lang.Object
implements OntologySegmenter

Implementation of module extraction based on syntactic locality.

Author:
Thomas Schneider, School of Computer Science, University of Manchester

Nested Class Summary
protected  class SyntacticLocalityModuleExtractor.OntologyAxiomSet
          Auxiliary inner class for the representation of the associated ontology and all its sub-ontologies as arrays of axioms.
 
Field Summary
protected  OWLOntology associatedOntology
          Represents the ontology associated with this module extractor.
protected  OWLOntologyManager associatedOntologyManager
          Represents the manager for the associated ontology.
protected  ModuleType moduleType
          Type of module
protected  SyntacticLocalityModuleExtractor.OntologyAxiomSet ontologyAxiomSet
          Represents the associated ontology.
 
Constructor Summary
SyntacticLocalityModuleExtractor(OWLOntologyManager man, OWLOntology ont, ModuleType moduleType)
          Creates a new module extractor for a given ontology, its manager, and a specified type of locality.
SyntacticLocalityModuleExtractor(OWLOntologyManager man, OWLOntology ont, java.util.Set<OWLAxiom> axs, ModuleType moduleType)
          Creates a new module extractor for a subset of a given ontology, its manager, and a specified type of locality.
 
Method Summary
 java.util.Set<OWLAxiom> extract(java.util.Set<OWLEntity> sig)
          Extracts a module from the associated ontology for a given signature and the associated module type, and returns the module as a set of axioms.
 OWLOntology extractAsOntology(java.util.Set<OWLEntity> signature, java.net.URI uri)
          Extracts a module from the associated ontology for a given signature and the associated module type, and returns the module as an ontology.
protected  boolean[] extractLogicalAxioms(boolean[] subOnt, java.util.Set<OWLEntity> signature, LocalityClass localityClass)
          This auxiliary method extracts a module from a given sub-ontology of the associated ontology for a given signature and locality type.
 SyntacticLocalityModule extractModule(java.util.Set<OWLEntity> sig)
          Extracts a module from the associated ontology for a given signature and the associated module type.
protected  boolean[] extractNestedLogicalModule(java.util.Set<OWLEntity> signature, boolean[] subOnt, LocalityClass cls1, LocalityClass cls2)
          Convenience method for extracting a lower-of-upper or upper-of-lower module in one go.
protected  java.util.Set<OWLAxiom> extractNonLogicalAxioms(java.util.Set<OWLAxiom> logicalAxioms, java.util.Set<OWLEntity> sig)
          This method returns all non-logical axioms (declaration and annotation axioms) that are associated with the logical axioms in the specified module.
 OWLOntology getAssociatedOntology()
          Returns the ontology associated with this module extractor.
 OWLOntologyManager getAssociatedOntologyManager()
          Returns the manager for the ontology associated with this module extractor.
 ModuleType getModuleType()
          Returns the module type for this extractor.
 void setModuleType(ModuleType moduleType)
          Changes the module type for this extractor without deleting the stored referenced entities.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

moduleType

protected ModuleType moduleType
Type of module


ontologyAxiomSet

protected SyntacticLocalityModuleExtractor.OntologyAxiomSet ontologyAxiomSet
Represents the associated ontology.


associatedOntology

protected OWLOntology associatedOntology
Represents the ontology associated with this module extractor.


associatedOntologyManager

protected OWLOntologyManager associatedOntologyManager
Represents the manager for the associated ontology.

Constructor Detail

SyntacticLocalityModuleExtractor

public SyntacticLocalityModuleExtractor(OWLOntologyManager man,
                                        OWLOntology ont,
                                        java.util.Set<OWLAxiom> axs,
                                        ModuleType moduleType)
Creates a new module extractor for a subset of a given ontology, its manager, and a specified type of locality.

Parameters:
man - the manager for the associated ontology
ont - the associated ontology
axs - the subset of the ontology as a set of axioms
moduleType - the type of module this extractor will construct

SyntacticLocalityModuleExtractor

public SyntacticLocalityModuleExtractor(OWLOntologyManager man,
                                        OWLOntology ont,
                                        ModuleType moduleType)
Creates a new module extractor for a given ontology, its manager, and a specified type of locality.

Parameters:
man - the manager for the associated ontology
ont - the associated ontology
moduleType - the type of module this extractor will construct
Method Detail

getAssociatedOntology

public OWLOntology getAssociatedOntology()
Returns the ontology associated with this module extractor.

Returns:
the ontology associated with this module extractor

getAssociatedOntologyManager

public OWLOntologyManager getAssociatedOntologyManager()
Returns the manager for the ontology associated with this module extractor.

Returns:
the manager for the ontology associated with this module extractor

setModuleType

public void setModuleType(ModuleType moduleType)
Changes the module type for this extractor without deleting the stored referenced entities.

Parameters:
moduleType - the new type of module

getModuleType

public ModuleType getModuleType()
Returns the module type for this extractor.

Returns:
module type for this extractor

extractLogicalAxioms

protected boolean[] extractLogicalAxioms(boolean[] subOnt,
                                         java.util.Set<OWLEntity> signature,
                                         LocalityClass localityClass)
This auxiliary method extracts a module from a given sub-ontology of the associated ontology for a given signature and locality type. The module will contain only logical axioms, no annotation or declaration axioms. The sub-ontology and module are represented as arrays of Booleans.

This method is (if necessary, iteratively) called by the public method extract.

Parameters:
subOnt - an array of Booleans representing the sub-ontology
signature - the seed signature (set of entities) for the module; on return of the method, this will contain the signature of the module
localityClass - the type of locality
Returns:
an array of Booleans representing the module

extractNonLogicalAxioms

protected java.util.Set<OWLAxiom> extractNonLogicalAxioms(java.util.Set<OWLAxiom> logicalAxioms,
                                                          java.util.Set<OWLEntity> sig)
This method returns all non-logical axioms (declaration and annotation axioms) that are associated with the logical axioms in the specified module.

Parameters:
logicalAxioms - set of logical axioms representing the original module
sig - a set of entities representing the signature of the original module
Returns:
a set of axioms representing the enriched module

extractNestedLogicalModule

protected boolean[] extractNestedLogicalModule(java.util.Set<OWLEntity> signature,
                                               boolean[] subOnt,
                                               LocalityClass cls1,
                                               LocalityClass cls2)
Convenience method for extracting a lower-of-upper or upper-of-lower module in one go. Only logical axioms are extracted.

Parameters:
signature - the seed signature (set of entities) for the module; on return of the method, this will contain the signature of the module
subOnt - an array of Booleans representing the sub-ontology
cls1 - the locality class for the first extraction step
cls2 - the locality class for the second extraction step
Returns:
a set of axioms representing the module

extractModule

public SyntacticLocalityModule extractModule(java.util.Set<OWLEntity> sig)
Extracts a module from the associated ontology for a given signature and the associated module type. The module will include annotation and declaration axioms for all entities and axioms in it.

Parameters:
sig - the seed signature (set of entities) for the module
Returns:
the module

extract

public java.util.Set<OWLAxiom> extract(java.util.Set<OWLEntity> sig)
Extracts a module from the associated ontology for a given signature and the associated module type, and returns the module as a set of axioms. The module will include annotation and declaration axioms for all entities and axioms in it.

Specified by:
extract in interface OntologySegmenter
Parameters:
sig - the seed signature (set of entities) for the module
Returns:
the module

extractAsOntology

public OWLOntology extractAsOntology(java.util.Set<OWLEntity> signature,
                                     java.net.URI uri)
                              throws OWLOntologyCreationException,
                                     OWLOntologyChangeException
Extracts a module from the associated ontology for a given signature and the associated module type, and returns the module as an ontology.

Specified by:
extractAsOntology in interface OntologySegmenter
Parameters:
signature - the seed signature (set of entities) for the module
uri - the URI for the module
Returns:
the module, having the specified URI
Throws:
OWLOntologyChangeException - if adding axioms to the module fails
OWLOntologyCreationException - if the module cannot be created