首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OWL中没有DL查询的推理

OWL中没有DL查询的推理
EN

Stack Overflow用户
提问于 2013-01-16 07:30:17
回答 1查看 1.3K关注 0票数 0

我正在尝试写一个查询

医院和hasNameWithWords值“center”^string

此查询返回的实例中,医院在其名称中以FACT++推理者和隐士推理者的名称命名为“中心”。

但是,当我在OWL的DL查询示例中输入相同的查询时,可以在网站http://sourceforge.net/p/owlapi/code/ci/aef6981535f07a2d0d44c394b9f4d5415f36025a/tree/contract/src/test/java/org/coode/owlapi/examples/DLQueryExample.java中找到。

我没有得到任何结果。

但是,当我编写简单的查询时,例如

医院

是因为代码中的推理者无法进行推理吗?

还有其他推理者会更好吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-16 10:24:05

您使用的示例类(DLQueryExample.java)依赖于内置的OWL结构推理器(OWLReasonerFactory reasonerFactory = new StructuralReasonerFactory();)。

这种类型的推理器相当简单,不适合像您这样复杂的查询。但是,它可以提供类层次结构的答案:这就是为什么使用简单的查询Hospitals获得一些结果的原因。

您需要做的是将代码设置为使用隐士或FACT++。我用隐士给出了一个例子

  • 下载 HermiT jar文件并将其添加到项目的类路径中。
  • 在类中,将OWLReasonerFactory reasonerFactory = new StructuralReasonerFactory();行替换为:OWLReasonerFactory reasonerFactory = new Reasoner.ReasonerFactory();。您必须导入org.semanticweb.HermiT.Reasoner才能使其工作。
  • 我们刚刚用HermiT替换了默认的推理器。其余的代码应该保持不变,您的查询现在应该可以工作了。
  • 你可以试试FaCT++球团,比较一下速度等等.
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14353303

复制
相关文章

相似问题

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