使用SPARQL和Protégé进行不成功的查询

时间:2015-02-10 18:35:07

标签: sparql protege

我正在Protégé上练习一个小小的Ontology,详细介绍了Lord of the Ring的Noldor之家。 (真的,它只是一个奇特的家谱。)你可以找到它Here

注意:课程名称是意大利语,因为我必须向大学展示。

我很确定本体论写的很好,而不是因为我第一次尝试而做的最好的事情,并且推理者(HermiT 1.3.8.3)没有给我任何错误。

现在我被要求生成一些SPARQL查询。

我添加了以下几行:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX genealogia <http://www.semanticweb.org/kayurin/ontologies/2015/1/casata_di_finwe#>

位于SPARQL编译器选项卡的顶部,并继续执行第一个查询:

SELECT ?Individuo
{
?Individuo genealogia:haGenitore genealogia:Finwe
}

根据我的消息来源,这应该归还给拥有'heGenitore Finwe'财产的“个人”班的所有成员。

没有结果......

我用

尝试了
SELECT ?Individuo
{
?Individuo genealogia:haLegameFraterno genealogia:Caranthir
}

同样,它应该让我所有拥有“haLegameFraterno Caranthir”属性的Class Individuo中的所有成员。

这是一个不完整的成功......它让我几乎所有“个人主义”级别的成员都归还了我,他们的财产“haLegameFraterno”与Feanor只有一个。 (该成员称为Amrod。)

如果我将它用于另一组兄弟姐妹(这就是财产的意思。)它根本不会给我任何回报。

很确定查询编写得很好,本体本身也是正确的,或者至少看不出我做错了什么。

提前感谢您的任何帮助,您可以帮我解决这个问题...

修改

我设法使事情有效,实际上必须将所有属性转换为断言的属性(通过手动输入。)因为ProtégéSPARQL查询执行器只考虑了推断的属性。

我无法访问该程序的其他版本(旧版本不能在我的Windows 8.1上启动。)但我想知道这是一个版本的问题,推理器的问题,还是我的本体论错误。

0 个答案:

没有答案