我正在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上启动。)但我想知道这是一个版本的问题,推理器的问题,还是我的本体论错误。