Search in sources :

Example 1 with ConsoleProgressMonitor

use of org.semanticweb.owlapi.reasoner.ConsoleProgressMonitor in project goci by EBISPOT.

the class DefaultGWASOWLPublisher method publishGWASDataInferredView.

public OWLReasoner publishGWASDataInferredView(OWLOntology ontology) throws OWLConversionException {
    getLog().debug("Loading any missing imports...");
    StringBuilder loadedOntologies = new StringBuilder();
    int n = 1;
    for (OWLOntology o : ontology.getOWLOntologyManager().getOntologies()) {
        loadedOntologies.append("\t").append(n++).append(") ").append(o.getOntologyID().getOntologyIRI()).append("\n");
    }
    getLog().debug("Imports collected: the following ontologies have been loaded in this session:\n" + loadedOntologies.toString());
    getLog().info("Classifying ontology from " + ontology.getOntologyID().getOntologyIRI());
    getLog().debug("Creating reasoner... ");
    OWLReasonerFactory factory = new Reasoner.ReasonerFactory();
    ConsoleProgressMonitor progressMonitor = new ConsoleProgressMonitor();
    OWLReasonerConfiguration config = new SimpleConfiguration(progressMonitor);
    OWLReasoner reasoner = factory.createReasoner(ontology, config);
    getLog().debug("Precomputing inferences...");
    reasoner.precomputeInferences();
    getLog().debug("Checking ontology consistency...");
    reasoner.isConsistent();
    getLog().debug("Checking for unsatisfiable classes...");
    if (reasoner.getUnsatisfiableClasses().getEntitiesMinusBottom().size() > 0) {
        throw new OWLConversionException("Once classified, unsatisfiable classes were detected");
    } else {
        getLog().info("Reasoning complete! ");
        return reasoner;
    }
}
Also used : OWLConversionException(uk.ac.ebi.spot.goci.exception.OWLConversionException) OWLReasonerFactory(org.semanticweb.owlapi.reasoner.OWLReasonerFactory) OWLReasonerConfiguration(org.semanticweb.owlapi.reasoner.OWLReasonerConfiguration) OWLOntology(org.semanticweb.owlapi.model.OWLOntology) SimpleConfiguration(org.semanticweb.owlapi.reasoner.SimpleConfiguration) OWLReasoner(org.semanticweb.owlapi.reasoner.OWLReasoner) ConsoleProgressMonitor(org.semanticweb.owlapi.reasoner.ConsoleProgressMonitor) OWLReasonerFactory(org.semanticweb.owlapi.reasoner.OWLReasonerFactory)

Example 2 with ConsoleProgressMonitor

use of org.semanticweb.owlapi.reasoner.ConsoleProgressMonitor in project goci by EBISPOT.

the class IRITreeBuilder method buildIRITree.

//    OntologyLoader ontologyLoader;
//
//    @Autowired
//    public IRITreeBuilder(OntologyLoader ontologyLoader){
//        this.ontologyLoader = ontologyLoader;
//    }
public IRITree buildIRITree(URL efoLocation) throws URISyntaxException, OWLOntologyCreationException {
    // load efo
    getLog().info("Loading efo...");
    OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
    OWLOntology efo = manager.loadOntology(IRI.create(efoLocation));
    owlNothingIRI = manager.getOWLDataFactory().getOWLNothing().getIRI().toString();
    // create a reasoner over efo
    getLog().info("Reasoning over efo...");
    OWLReasonerFactory factory = new Reasoner.ReasonerFactory();
    ConsoleProgressMonitor progressMonitor = new ConsoleProgressMonitor();
    OWLReasonerConfiguration config = new SimpleConfiguration(progressMonitor);
    OWLReasoner reasoner = factory.createReasoner(efo, config);
    getLog().info("Precomputing inferences...");
    reasoner.precomputeInferences();
    getLog().info("Checking ontology consistency...");
    reasoner.isConsistent();
    // get 'top' class
    OWLClass topClass = reasoner.getTopClassNode().getRepresentativeElement();
    getLog().info("Reasoner 'top class' element is " + topClass.getIRI());
    IRITree tree = new IRITree();
    // do one level deep manually - should only be experimental factor
    IRINode rootNode = null;
    OWLClass efClass = null;
    NodeSet<OWLClass> subclasses = reasoner.getSubClasses(topClass, true);
    for (Node<OWLClass> node : subclasses) {
        OWLClass cls = node.getRepresentativeElement();
        getLog().debug("Next child of " + topClass + " is " + cls);
        if (cls.getIRI().toString().equals(OntologyConstants.EXPERIMENTAL_FACTOR_CLASS_IRI)) {
            efClass = cls;
            rootNode = new IRINode(cls.getIRI(), getClassLabel(efo, cls));
        }
    }
    if (rootNode != null) {
        getLog().info("Building tree... walking ontology from " + rootNode.getLabel() + " down...");
        tree.setRootNode(rootNode);
        recurse(reasoner, efo, efClass, rootNode);
        getLog().info("...Tree build complete!");
    } else {
        throw new RuntimeException("Could not find Experimental Factor as a child of OWL:Thing");
    }
    return tree;
}
Also used : OWLReasonerFactory(org.semanticweb.owlapi.reasoner.OWLReasonerFactory) OWLReasoner(org.semanticweb.owlapi.reasoner.OWLReasoner) ConsoleProgressMonitor(org.semanticweb.owlapi.reasoner.ConsoleProgressMonitor) OWLReasonerConfiguration(org.semanticweb.owlapi.reasoner.OWLReasonerConfiguration) OWLOntology(org.semanticweb.owlapi.model.OWLOntology) SimpleConfiguration(org.semanticweb.owlapi.reasoner.SimpleConfiguration) OWLClass(org.semanticweb.owlapi.model.OWLClass) OWLOntologyManager(org.semanticweb.owlapi.model.OWLOntologyManager) OWLReasonerFactory(org.semanticweb.owlapi.reasoner.OWLReasonerFactory)

Aggregations

OWLOntology (org.semanticweb.owlapi.model.OWLOntology)2 ConsoleProgressMonitor (org.semanticweb.owlapi.reasoner.ConsoleProgressMonitor)2 OWLReasoner (org.semanticweb.owlapi.reasoner.OWLReasoner)2 OWLReasonerConfiguration (org.semanticweb.owlapi.reasoner.OWLReasonerConfiguration)2 OWLReasonerFactory (org.semanticweb.owlapi.reasoner.OWLReasonerFactory)2 SimpleConfiguration (org.semanticweb.owlapi.reasoner.SimpleConfiguration)2 OWLClass (org.semanticweb.owlapi.model.OWLClass)1 OWLOntologyManager (org.semanticweb.owlapi.model.OWLOntologyManager)1 OWLConversionException (uk.ac.ebi.spot.goci.exception.OWLConversionException)1