我正在为python使用owlready2 api来加载一个本体,并使用 sync_reasoner()函数检查该本体的一致性。但是似乎没有在检查本体的一致性。尽管有错误,但什么也没有显示!知道如何使用owlready2或任何其他API在python中检查本体的一致性。
这是我的小代码:
from owlready2 import *
onto = get_ontology("test.owl")
sync_reasoner()
这是我得到的输出:
我修改的代码:
from owlready2 import *
onto = get_ontology("test.owl")
with onto:sync_reasoner()
onto.save()
我得到的输出猫头鹰文件:
答案 0 :(得分:1)
您显示的输出仅是从命令行调用HermiT推理程序的OWLReady的输出。因此,“输出”为何相同的原因无关紧要。
您需要的是分类后的推断结果。根据{{3}},您可以将推断直接指向文件,或从类中获取结果,如documentation所示。
不明显的是如何确定本体是否不一致。我能找到的最好的情况是,您需要搜索推理结果,如果可以找到与owl:Nothing
等效的类,则您的本体是不一致的。
答案 1 :(得分:1)
基本上我错过了两个重要的事情。
我已经放上了.save()而不是放在了.save(“ test_t1.owl” )上。虽然可以只放到.save()上,但放到.save(“ test_t1.owl” )上可以将输出保存到其他文件中。
在提及源本体时,我缺少了 load()函数 到= get_ontology(“文件路径”)。 load() 该文件路径可以是URL,例如“ https://protege.stanford.edu/ontologies/pizza/pizza.owl”或本地目录路径“ C:\ User \ Desktop \ test.owl”
我的工作代码如下:
from owlready2 import *
import owlready2
#owlready2.JAVE_EXE="C:\\Program Files\\Java\\jdk1.8.0_144\\bin\\java.exe"
onto_path.append("C:\\User\\Desktop")
onto = get_ontology("test.owl").load()
#inferred_onto = get_ontology("http://test.org/my_inferrences.owl";)
with onto: sync_reasoner()
onto.save("test_t1.owl")