Bay*_*tch 3 rdf semantic-web sparql dbpedia
为了知道如何正确地制作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 }
}
Run Code Online (Sandbox Code Playgroud)
如果我取消注释查询中的最后一行,我得不到任何结果.查看:http://dbpedia.org/page/Boston_Red_Sox
我知道了:
is dbpprop:champion of dbpedia:American_League
Run Code Online (Sandbox Code Playgroud)
我不确定如何构建语法来仅过滤已赢得世界系列赛(Champion)的团队,而我真的很困惑如何发现实际的查询前缀应该是什么.
is dbpprop:champion of dbpedia:American_League
Run Code Online (Sandbox Code Playgroud)
这句话意味着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
}
Run Code Online (Sandbox Code Playgroud)