SPARQL:从URI中检索DBpedia中的所有信息

时间:2015-04-01 13:41:55

标签: sparql wikipedia dbpedia

如果我想从URI中检索摘要,请执行以下操作:

PREFIX dbp_owl: <http://dbpedia.org/ontology/> 

SELECT DISTINCT ?abstract WHERE { <http://dbpedia.org/resource/Horizon_High_School_(Thornton,_Colorado)> dbp_owl:abstract ?abstract FILTER (lang(?abstract) = "en" )}

如果我想检索缩略图:

SELECT DISTINCT ?thumb WHERE { <http://dbpedia.org/resource/Horizon_High_School_(Thornton,_Colorado)>  dbp_owl:thumbnail ?thumb }

如何从URI中检索所有内容,而不仅仅是一个属性?

1 个答案:

答案 0 :(得分:2)

对于检索多个属性,可以通过在属性位置使用变量来实现。例如,

select ?property ?value where {
  dbpedia:Mount_Monadnock ?property ?value
}

SPARQL results

请注意,如果您尝试按语言过滤?value ,则会错过很多结果,因为结果不是文字,或者不是语言标记的文字不会使用 lang 函数为您提供值。所以你真的需要稍微限制一下过滤器:

select ?property ?value where {
  dbpedia:Mount_Monadnock ?property ?value
  filter ( !isLiteral(?value)               #-- ?value is not a literal
        || lang(?value) = ""                #-- ?value is a non-language tagged literal
        || langMatches(lang(?value),"en"))  #-- ?value has a language tag matching "en"
}

SPARQL results

请注意,您不应使用 = 检查语言,而应使用 langMatches 检查语言。这将处理资本化的差异,以及语言的区域变体。