我正在尝试运行LUBM基准测试,但我在分类和推理方面遇到了一些问题。
我使用的文件是:
The main ontology
The output of the LUBM generator 1.7
问题是GraduateStudent和UndergraduateStudent的成员没有被归类为超类Student的成员。
我在Protege 5.0上尝试了Pellet,Hermit和Fact reasoners,都失败了。因此,编号为10的基准SPARQL查询也失败。
#-- Query10
#-- This query differs from Query 6, 7, 8 and 9 in that it only requires the
#-- (implicit) subClassOf relationship between GraduateStudent and Student, i.e.,
#-- subClassOf rela-tionship between UndergraduateStudent and Student does not add
#-- to the results.
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ub: <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#>
SELECT ?X WHERE {
?X rdf:type ub:Student .
?X ub:takesCourse <http://www.Department0.University0.edu/GraduateCourse0>
}你可以在这里找到我的Protegé分类的截图(抱歉,我没有足够的名气直接发布照片)。

在Protege 4.3分类上,可以使用Pellet和Hermit,但SPARQL查询仍然失败。
我已经修改了推理器设置,以显示所有推断的知识,所以这并不是因为它们只是隐藏。
我发现这种行为非常令人困惑,特别是考虑到这应该是一个经过验证的基准。我想有一个非常微不足道的解决方案,但我找不到它,所以任何帮助都会非常感谢!
编辑:我成功运行了基准测试。我在TBox中手动复制了ABox (从生成器获得的代码)的xml代码。通过这种方式,分类在Protege 4上并通过API工作。同样,按照这里的建议,SPARQL查询使用snap SPARQL工作。Protege 5上的分类仍然不起作用。我很想知道是什么导致了这一点。
发布于 2017-01-24 00:35:22
生成器本身只产生足以回答查询子集(查询1-3和14)的数据。为了让SPARQL系统回答所有的查询,它需要应用推理。它如何做到这一点是一个特定于实现的细节。此外,对于许多系统,默认情况下推理处于关闭状态,必须启用。
根据所使用的系统,您可能需要提供链接到系统的主本体,并启用所需的任何适当设置。
Protege中的SPARQL查询可能没有考虑到推断的知识,但我从未使用过protege,因此无法对该特定工具进行评论。
https://stackoverflow.com/questions/41810292
复制相似问题