我正在尝试写一个查询
医院和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中找到。
我没有得到任何结果。
但是,当我编写简单的查询时,例如
医院
是因为代码中的推理者无法进行推理吗?
还有其他推理者会更好吗?
发布于 2013-01-16 10:24:05
您使用的示例类(DLQueryExample.java)依赖于内置的OWL结构推理器(OWLReasonerFactory reasonerFactory = new StructuralReasonerFactory();)。
这种类型的推理器相当简单,不适合像您这样复杂的查询。但是,它可以提供类层次结构的答案:这就是为什么使用简单的查询Hospitals获得一些结果的原因。
您需要做的是将代码设置为使用隐士或FACT++。我用隐士给出了一个例子
OWLReasonerFactory reasonerFactory = new StructuralReasonerFactory();行替换为:OWLReasonerFactory reasonerFactory = new Reasoner.ReasonerFactory();。您必须导入org.semanticweb.HermiT.Reasoner才能使其工作。https://stackoverflow.com/questions/14353303
复制相似问题