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

使用SPARQL和Protégé进行的查询不成功,sparql,protege,Sparql,Protege,我正在用一个小本体在Protégé上练习,这个本体详细描述了《魔戒》中诺尔多的房子。真的,这只是一个奇特的家谱。你可以找到它 注意:课程名称是意大利语的,因为我必须向我的大学提交 我很确定本体论写得很得体,因为我是第一次尝试,所以不是最好的,推理者隐士1.3.8.3没有给我任何错误 现在我需要生成一些SPARQL查询 我添加了以下行: PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX owl: <h

我正在用一个小本体在Protégé上练习,这个本体详细描述了《魔戒》中诺尔多的房子。真的,这只是一个奇特的家谱。你可以找到它

注意:课程名称是意大利语的,因为我必须向我的大学提交

我很确定本体论写得很得体,因为我是第一次尝试,所以不是最好的,推理者隐士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#>
根据我的消息来源,这本应该让我返回Individuo类中所有拥有“heGenitore Finwe”属性的成员

没有结果

当时我试着用

SELECT ?Individuo
{
?Individuo genealogia:haLegameFraterno genealogia:Caranthir
}
同样地,它应该将拥有“haLegameFraterno Caranthir”属性的Individudo类中的所有成员返回给我

这是一次不完全的成功。。。它让我想起了“Individuo”类的几乎所有成员,该类成员与Feanor拥有“haLegameFraterno”财产,只有一个。被称为阿姆罗德的成员

如果我将它用于另一组兄弟姐妹,这就是属性的含义。它根本不会给我任何回报

非常确定查询写得很好,本体本身是正确的,或者至少看不出我哪里做错了

提前感谢您为我解决这一混乱局面提供的任何帮助

编辑

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


我无法访问该程序的其他版本,旧版本将无法在我的windows 8.1上启动。但我想知道这是一个版本的问题,推理者的问题,还是我的本体论出了问题

您能否提供本体的RDF版本,以便我们可以对其运行SPARQL查询?正在尝试这样做。。。但如果我选择saveas:并选择RDF/XML,它仍然会迫使我将其另存为OWL。这有点新鲜,有什么我不知道的?真的说不出它是否有效。我必须选择所有文件并自己添加.rdf。我并不真正关心文件扩展名。您在问题中提供的链接是本体的OWL/XML序列化。SPARQL是一种RDF查询语言,因此提供RDF序列化(如RDF/XML、N3等)会很有帮助。。。。特定的RDF格式并不重要。然而,一个立即重要的问题是Protege中的SPARQL查询是否使用推断信息。您的本体仅在少数地方使用haGenitore,而从不在直接对象属性断言中使用。你只是在一些有限制的子类公理中得到了它。如果您转到DL查询选项卡并执行等效的查询hagenitor value Finwe,并选中个人复选框,那么在启用推理机时是否会得到结果?
SELECT ?Individuo
{
?Individuo genealogia:haLegameFraterno genealogia:Caranthir
}