首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python中的隐推理器对本体进行一致性检查

使用Python中的隐推理器对本体进行一致性检查
EN

Stack Overflow用户
提问于 2018-07-03 06:06:18
回答 2查看 1.9K关注 0票数 0

我正在使用用于python的owlready2 api来加载本体,并使用sync_reasoner()函数检查该本体的一致性。但是,它似乎并没有检查本体的一致性。虽然有一个错误,但它没有显示任何!我是否知道如何使用owlready2或任何其他api来检查python中本体的一致性。

这是我的小代码:

代码语言:javascript
复制
from owlready2 import *
onto = get_ontology("test.owl")
sync_reasoner()

下面是我得到的输出:

  • Owlready2 *运行HermiT..。C:\Users\44999038\AppData\Local\Programs\Python\Python36-32\lib\site-packages\owlready2\hermit;C:\Users\44999038\AppData\Local\Programs\Python\Python36-32\lib\site-packages\owlready2\hermit\HermiT.jar -Xmx2000M -cp org.semanticweb.HermiT.cli.CommandLine -c -O -D -I
  • Owlready2 * HermiT花了0.48622655868530273秒

本体:

我修改的代码:

代码语言:javascript
复制
from owlready2 import *

onto = get_ontology("test.owl")
with onto:sync_reasoner()
onto.save()

输出我得到的owl文件:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-05 01:46:04

基本上我错过了两件重要的事情。

  1. 我已将onto.save("test_t1.owl").改为onto.save()虽然只放置onto.save()是可以的,但是onto.save将输出保存在不同的文件中。
  2. 我在提到源本体到= path").load()时缺少了load()函数(“file get_ontology--这个文件路径可以是一个URL,如"https://protege.stanford.edu/ontologies/pizza/pizza.owl”或本地目录路径"C:\User\Desktop\test.owl“)

我的工作代码如下:

代码语言:javascript
复制
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")

票数 1
EN

Stack Overflow用户

发布于 2018-07-03 08:56:03

您显示的输出仅仅是OWLReady从命令行调用HermiT推理器的输出。因此,不论“输出”为何相同,原因都是一样的。

你需要的是分类后的推理结果。根据文档,您可以将推理定向到文件,或者获得类的结果,如这个例子所示。

不明显的是,如何确定本体是否不一致。我能找到的最好的方法是,您需要搜索推理结果,如果您可以找到一个与owl:Nothing等价的类,则您的本体是不一致的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51147628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档