如何弄清楚本体属性关系是什么,以便知道如何正确地制作sparql查询?
例如,如果我想要赢得世界大赛的美国职业棒球大联盟球队。
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX owl: <http://dbpedia.org/ontology/>
PREFIX db: <http://dbpedia.org/>
PREFIX dbpprop: <http://dbpedia.org/property/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#broader/>
PREFIX category: <http://dbpedia.org/resource/Category:>
PREFIX purl: <http://purl.org/dc/terms/>
PREFIX ps: <http://purl.org/dc/terms/subject/>
select distinct *
where {
?team rdf:type owl:BaseballTeam .
{ ?team rdf:type yago:MajorLeagueBaseballTeams . }
#{ ?team dbprop:champion dbpedia:Major_League_Baseball }
}
如果我取消注释查询中的最后一行,我就没有结果。 看看:http://dbpedia.org/page/Boston_Red_Sox
我明白了:
is dbpprop:champion of dbpedia:American_League
我不确定如何构建语法来过滤只赢得世界系列赛(Champion)的团队,我真的很困惑如何发现实际的查询前缀应该是什么。
答案 0 :(得分:6)
is dbpprop:champion of dbpedia:American_League
这句话意味着American_leage有一个财产冠军,宣布赢得联赛的球队。
Is-Of只是告诉你哪些具有该资源的属性,您正在查看,作为范围。如果单击进入域的方式,则可以看到它具有指向初始资源的属性。只需查看American_league的dbpedia资源即可。
因此,您必须像这样构建查询以获得所需的结果。 (你几乎拥有它,它只是相反的方式)
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX owl: <http://dbpedia.org/ontology/>
PREFIX db: <http://dbpedia.org/>
PREFIX dbpprop: <http://dbpedia.org/property/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#broader/>
PREFIX category: <http://dbpedia.org/resource/Category:>
PREFIX purl: <http://purl.org/dc/terms/>
PREFIX ps: <http://purl.org/dc/terms/subject/>
select distinct *
where {
?team rdf:type owl:BaseballTeam .
?team rdf:type yago:MajorLeagueBaseballTeams .
// Like the one below
dbpedia:Major_League_Baseball dbprop:champion ?team
}