我正在尝试加载一个本体,该本体导入了其他一些本体。这些其他的本体位于我的机器上,而不是web上。如果我尝试使用my_ontology.load(),它会尝试从它们的URI加载这些其他的本体。但这失败了。我如何告诉owlready2这些本体的位置?
The traceback looks like this:
Traceback (most recent call last):
File "~Software/PyOntologyChecker/app.py", line 12, in <module>
covid_onto = get_ontology_from_file(COVID_ONTOLOGY)
File "~Software/PyOntologyChecker/app.py", line 8, in get_ontology_from_file
return get_ontology("file://" + file_path).load()
File "~.local/lib/python3.8/site-packages/owlready2/namespace.py", line 813, in load
imported_ontologies = [self.world.get_ontology(self._unabbreviate(abbrev_iri)).load() for abbrev_iri in self.world._get_obj_triples_sp_o(self.storid, owl_imports)]
File "~.local/lib/python3.8/site-packages/owlready2/namespace.py", line 813, in <listcomp>
imported_ontologies = [self.world.get_ontology(self._unabbreviate(abbrev_iri)).load() for abbrev_iri in self.world._get_obj_triples_sp_o(self.storid, owl_imports)]
File "~.local/lib/python3.8/site-packages/owlready2/namespace.py", line 773, in load
except: raise OwlReadyOntologyParsingError("Cannot download '%s'!" % f)
owlready2.base.OwlReadyOntologyParsingError: Cannot download 'http://ontofox.hegroup.org/CHEBI_module11.owl'!发布于 2021-02-19 21:15:24
假设您有CHEBI_module11.owl依赖项的本地副本(例如,SOME_DIR/HEBI_module11.owl),将其位置添加到onto_path中(如docs中所述):
onto_path.append("SOME_DIR")在做my_ontology.load()之前。这将告诉Owlready2在SOME_DIR中查找文件。路径可以是相对路径,也可以是绝对路径(如c:/data/ontologies)。
当前Python的工作目录是,默认情况下不扫描,但可以使用onto_path.append(".")进行设置。
如果所需的本体由URI描述,而不是以通常的文件名结尾,如"http://rdf.webofcode.org/woc/",则本地文件名(在本例中为woc)不应具有扩展名。
https://stackoverflow.com/questions/65232945
复制相似问题