use of org.semanticweb.owlapi.reasoner.OWLReasoner 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;
}
}
use of org.semanticweb.owlapi.reasoner.OWLReasoner in project stanbol by apache.
the class HermitReasoningService method getReasoner.
@Override
protected OWLReasoner getReasoner(OWLOntology ontology) {
log.debug("Creating HermiT reasoner: {}", ontology);
Configuration config = new Configuration();
// This must be true!
config.ignoreUnsupportedDatatypes = true;
// This must be true!
config.throwInconsistentOntologyException = true;
//config.monitor = new Debugger(null, false);
log.debug("Configuration: {}, debugger {}", config, config.monitor);
ReasonerFactory risfactory = new ReasonerFactory();
log.debug("factory: {}", risfactory);
OWLReasoner reasoner = null;
reasoner = risfactory.createReasoner(ontology, config);
log.debug("Reasoner : {}", reasoner);
if (reasoner == null) {
log.error("Cannot create the reasner!!");
throw new IllegalArgumentException("Cannot create the reasoner");
}
return reasoner;
}
use of org.semanticweb.owlapi.reasoner.OWLReasoner in project stanbol by apache.
the class HermitReasoningServiceTest method testInstantiation.
@Test
public void testInstantiation() {
log.info("Testing the innstantiation of an HermitReasoningService");
OWLOntology foaf = TestData.manager.getOntology(IRI.create(TestData.FOAF_NS));
// Here we want to be sure that the getReasoner() method creates an
// instance correctly
HermitReasoningService akindofhermit = new HermitReasoningService() {
protected OWLReasoner getReasoner(OWLOntology ontology) {
try {
OWLReasoner reasoner = super.getReasoner(ontology);
assertTrue(reasoner != null);
return reasoner;
} catch (Throwable t) {
log.error("Some prolem occurred while instantiating the HermitReasoningService. Message was: {}", t.getLocalizedMessage());
// We force tests to stop here
assertTrue(false);
return null;
}
}
};
long startHere = System.currentTimeMillis();
// This is possible only because the subclass is in this scope...
akindofhermit.getReasoner(foaf);
long endHere = System.currentTimeMillis();
log.info("Instantiating an Hermit reasoner lasts {} milliseconds", (endHere - startHere));
}
use of org.semanticweb.owlapi.reasoner.OWLReasoner 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;
}
use of org.semanticweb.owlapi.reasoner.OWLReasoner in project goci by EBISPOT.
the class SparqlPussycatSession method getRelatedTraits.
@Override
public Set<URI> getRelatedTraits(String traitName) {
// get OWLClasses by name
Collection<OWLClass> traitClasses = getOntologyService().getOWLClassesByLabel(traitName);
Set<URI> results = new HashSet<URI>();
// check reasoner
OWLReasoner reasoner = getOntologyService().getOntologyLoader().getOWLReasoner();
for (OWLClass traitClass : traitClasses) {
results.add(traitClass.getIRI().toURI());
Set<OWLClass> subclasses = reasoner.getSubClasses(traitClass, false).getFlattened();
for (OWLClass subclass : subclasses) {
results.add(subclass.getIRI().toURI());
}
}
return results;
}
Aggregations