LUBM基准测试中的子类的成员不属于超类的成员

问题描述:

我试图运行LUBM基准测试,但推理后我遇到了一些分类问题。LUBM基准测试中的子类的成员不属于超类的成员

我使用的文件是:

The main ontology

The output of the LUBM generator 1.7

的问题是,GraduateStudentUndergraduateStudent成员不被列为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é分类的屏幕截图(对不起,我没有足够的声望来直接发布图片)。

screenshot

在门徒4.3分类工作佩莱和山人,但SPARQL查询仍然失败。

我已经修改了推理器设置以显示所有推断的知识,所以它不是因为它们只是隐藏而已。

我觉得这种行为很混乱,特别是考虑到这应该是一个成熟的基准。我想有一个非常小的解决方案,但我无法找到它,所以任何帮助将不胜感激!

编辑:我成功运行了基准。我手动复制了TBox内部的ABox(我从发生器获得的那个)的xml代码。通过这种方式,分类适用于Protege 4和API。此外SPARQL查询使用snap SPARQL工作,如此处所示。分类仍然不适用于Protege 5.我很想知道是什么导致了这一点。

+0

您必须使用Snap SPARQL插件,而不是Protege附带的插件。 – AKSW

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

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

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

+0

我同意。正如你所指出的,查询10只能在推理后才能执行,因为它需要'GraduateStudent'及其成员被归类为'学生'。我得到的是,'GraduateStudent'类正确分类,但其成员不是,因此SPARQL查询失败。 我认为问题出在推理时间,可能是由于一些IRI问题。 此外,我试图从猫头鹰api使用颗粒做同样的事情,我得到了类似的结果。所以这可能不是Protegé的问题。 如果你曾经尝试过基准测试,你是如何加载一个你使用过哪些文件的? –

+0

您必须使用Snap SPARQL插件,而不是Protege附带的插件。 – AKSW