0

我正在尝试运行 LUBM 基准测试,但在推理后我遇到了一些分类问题。

我正在使用的文件是:

主要本体

LUBM 生成器的输出 1.7

问题是GraduateStudentUndergraduateStudent的成员没有被归类为超类的成员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。我很想知道是什么原因造成的。

4

1 回答 1

1

单独的生成器仅生成足以回答查询子集(查询 1-3 和 14)的数据。为了让 SPARQL 系统回答它需要应用推理的所有查询。它是如何做到的,这是一个实现特定的细节。此外,对于许多系统,推理默认情况下是关闭的,必须启用。

根据所使用的系统,您可能需要提供链接到系统的主要本体并启用所需的任何适当设置。

可能是 Protege 中的 SPARQL 查询没有考虑推断知识,但我从未使用过 protege,因此无法评论该特定工具。

于 2017-01-23T16:35:21.767 回答