Sparql属性过滤器
问题描述:
为了知道如何正确创建sparql查询,如何找出本体属性关系?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
我不确定我会如何构建语法来筛选只赢得了世界系列赛(冠军)球队和我在如何真糊涂发现实际的查询前缀应该是什么。
答
is dbpprop:champion of dbpedia:American_League
这句话意味着American_leage拥有一个属性冠军,宣布已经赢得联盟的球队。
Is-只是告诉你哪些属性具有资源,您正在查看的范围。如果您点击自己的方式访问该域,则可以看到它具有指向初始资源的属性。只需看看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
}