Dbpedia不会返回完整的结果

时间:2012-04-27 17:50:01

标签: sparql dbpedia

DBPedia / SPARQL /语义数据中的初学者。我跑了下面的询问,“找出每个运动员的运动”

select ?athlete ?sport where 
{
   ?athlete rdf:type <http://dbpedia.org/ontology/Athlete>.   #query1
   ?athlete dbpedia2:sport ?sport                             #query2
}

它确实给出了结果,但没有给出我正在寻找的全套。 “query1”本身会返回更多的运动员,但与“query2”相结合,我的结果集会少得多。

请解释这个差异。我错过了什么吗?什么是替代方案?

此致

1 个答案:

答案 0 :(得分:3)

您的查询选择所有 rdf:type和dbpedia2:sport属性的运动员节点。即使某些属性未绑定,您也可以使用optional子句检索节点。例如:

select ?athlete ?sport where {
    ?athlete rdf:type <http://dbpedia.org/ontology/Athlete>. #query1
    optional {?athlete dbpedia2:sport ?sport} #query2
}

获得运动的更好方式:

select ?athlete ?type where {
    ?athlete rdf:type <http://dbpedia.org/ontology/Athlete>.
    optional {
        ?athlete rdf:type ?type.
        ?type rdfs:subClassOf <http://dbpedia.org/ontology/Athlete>
    }
}