def getReasoner(self, reasoner_name): """ Returns an instance of a reasoner matching the value of the string "reasoner_name". Supported values are "ELK", "HermiT", "Pellet", or "JFact" (the strings are not case sensitive). ReasonerManager ensures that reasoner instances are effectively singletons (that is, subsequent requests for the same reasoner type return the same reasoner instance). reasoner_name: A string specifying the type of reasoner to instantiate. """ reasoner_name = reasoner_name.lower().strip() if reasoner_name not in self.reasoners: owlont = self.getOntology().getOWLOntology() rfact = None if reasoner_name == 'elk': logger.info('Creating ELK reasoner...') rfact = ElkReasonerFactory() elif reasoner_name == 'hermit': logger.info('Creating HermiT reasoner...') rfact = HermiTReasonerFactory() elif reasoner_name == 'pellet': logger.info('Creating Pellet reasoner...') rfact = PelletReasonerFactory() elif reasoner_name == 'jfact': logger.info('Creating JFact reasoner...') rfact = JFactFactory() if rfact is not None: self.reasoners[ reasoner_name] = rfact.createNonBufferingReasoner(owlont) else: raise RuntimeError('Unrecognized DL reasoner name: ' + reasoner_name + '.') return self.reasoners[reasoner_name]
istring = "http://phenomebrowser.net/#" + s return factory.getOWLObjectProperty(IRI.create(istring)) def create_class(s): return factory.getOWLClass(IRI.create(s)) def add_anno(resource, prop, cont): anno = factory.getOWLAnnotation(factory.getOWLAnnotationProperty(prop.getIRI()), factory.getOWLLiteral(cont)) axiom = factory.getOWLAnnotationAssertionAxiom(resource.getIRI(), anno) manager.addAxiom(ontology, axiom) # Subclasses of 'cellular location' print "Finding subclasses of cellular location..." progressMonitor = ConsoleProgressMonitor(); config = SimpleConfiguration(progressMonitor); reasoner = ElkReasonerFactory().createReasoner(ontology, config); loc_cls = create_class("http://purl.obolibrary.org/obo/GO_0005575") loc_nodeset = reasoner.getSubClasses(loc_cls, False).getFlattened() print loc_nodeset print "... done." genericProteinNames = dict() proteinCounter = 0 # Initiate a queue of all ttl files to be read. queue = Queue() for tfile in os.listdir(input_directory): queue.put(tfile) print "Queue built. There are %d files to be read from %s." % (queue._qsize(), input_directory) def readFiles(i, q):
stats['logicalAxiomCount'] = ontology.getLogicalAxiomCount() for anno in ontology.getAnnotations(): try: prop = anno.getProperty().toString().replaceAll("<","").replaceAll(">","") prop = prefixUrls(prop) val = anno.getValue().getLiteral().toString() stats['annotations'][prop] = val except: traceback.print_exc() print stats progressMonitor = ConsoleProgressMonitor() config = SimpleConfiguration(progressMonitor) reasoner = ElkReasonerFactory().createReasoner(ontology) thing = factory.getOWLThing() # Measure classification time total_time = 0 repeats = 10 for i in range(repeats): start = time.clock() print "Start timer..." reasoner = ElkReasonerFactory().createReasoner(ontology) reasoner.precomputeInferences(InferenceType.CLASS_HIERARCHY) end = time.clock() total_time += (end - start) print "Classification time: %d seconds." % (end - start) print "Average classification time: %d seconds" % (total_time / repeats)