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

SPARQL: retrieve all the info from DBpedia from a URI

如果我想从 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 中检索所有内容,而不仅仅是一个 属性?

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

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。这将处理大写差异以及语言的区域变体。