Skip to content

vtramo/concurrent-el-reasoner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Concurrent Classification of EL++ Ontologies

This project implements a Reasoner for a simplified version of the EL++ logic, with a focus on computing the classification of a TBox (subsumption hierarchy). The Reasoner is developed in Java, using the owlapi.

This project is based on the following articles:

Usage example

void main() {
    
    OWLOntology ontology;
    
    // TBox normalisation
    OntologyNormaliser ontologyNormaliser = new OntologyNormaliser(ontology);
    OWLOntology normalisedOntology = ontologyNormaliser.createNormalisedOntology();
    
    // Ontology indexing
    OntologyIndexer ontologyIndexer = new OntologyIndexer(normalisedOntology);
    OntologyIndex ontologyIndex = ontologyIndexer.buildIndex();
    
    // Ontology saturation process
    OntologySaturationProcess ontologySaturationProcess = new OntologySaturationProcess(normalisedOntology, ontologyIndex);
    SaturationResult saturationResult = ontologySaturationProcess.saturate();
    
    // Build subsumption hierarchy
    SubsumptionHierarchyProcess subsumptionHierarchyProcess = new SubsumptionHierarchyProcess();
    SubsumptionHierarchy subsumptionHierarchy = subsumptionHierarchyProcess.buildHierarchy(saturationResult);
    
}

Usage Example (OWL API)

void main() {

    OWLOntology ontology;
    OWLReasonerFactory owlReasonerFactory = new ELPPReasonerFactory();
    OWLReasoner myReasoner = owlReasonerFactory.createReasoner(ontology);
    myReasoner.precomputeInferences(InferenceType.CLASS_HIERARCHY);
    
}