我正在尝试运行 LUBM 基准测试,但在推理后我遇到了一些分类问题。
我正在使用的文件是:
问题是GraduateStudent
和UndergraduateStudent
的成员没有被归类为超类的成员Student
。
我在 Protege 5.0 上尝试了 Pellet、Hermit 和 Fact 推理器,但都失败了。因此,基准 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é分类的截图(抱歉我没有足够的声望直接发布图片)。
在 Protege 4.3 上,分类适用于 Pellet 和 Hermit,但 SPARQL 查询仍然失败。
我已经修改了推理器设置以显示所有推断的知识,所以这不是因为它们只是被隐藏了。
我发现这种行为非常令人困惑,特别是考虑到这应该是一个经过验证的基准。我想有一个非常简单的解决方案,但我找不到它,所以任何帮助将不胜感激!
编辑:我成功运行了基准测试。我在 TBox 中手动复制了 ABox(我从生成器中获得的那个)的 xml 代码。通过这种方式,分类在 Protege 4 上和通过 API 起作用。SPARQL 查询也按照这里的建议使用 snap SPARQL 工作。分类仍然不适用于 Protege 5。我很想知道是什么原因造成的。