我正在尝试运行LUBM基准测试,但在推理后我遇到了一些分类问题。
我使用的文件是:
The output of the LUBM generator 1.7
问题是GraduateStudent
和UndergraduateStudent
的成员未被归类为超类Student
的成员。
我在Protege 5.0上尝试过Pellet,Hermit和Fact reasoners,但都失败了。因此,基准SPARQL查询号10也失败了。
#-- 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é分类的屏幕截图(抱歉,我没有足够的声誉直接发布图片)。
On Protege 4.3分类适用于Pellet和Hermit,但SPARQL查询仍然失败。
我已经修改了推理器设置以显示所有推断知识,因此不是因为它们只是隐藏。
我发现这种行为非常混乱,特别是考虑到这应该是一个经过验证的基准。我想有一个非常简单的解决方案,但我找不到它,所以任何帮助都会非常感激!
编辑:我成功运行了基准测试。我在TBox中手动复制了ABox的xml代码(我从生成器获得的代码)。通过这种方式,分类可以在Protege 4和API上运行。此处SPARQL查询也使用snap SPARQL工作。分类仍然不适用于Protege 5.我很想知道造成这种情况的原因。答案 0 :(得分:1)
仅生成器只生成足以回答查询子集的数据(查询1-3和14)。为了使SPARQL系统能够回答应用推理所需的所有查询。它是如何做到这是一个特定于实现的细节。此外,对于许多系统,默认情况下都会关闭推理,必须启用它。
根据所使用的系统,您可能需要提供链接到系统的主要本体,并启用所需的任何适当设置。
可能是Protege中的SPARQL查询没有考虑推断知识,但我从未使用过protege,因此无法对该特定工具发表评论。