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
}
请注意,如果您尝试在此处按语言过滤 ?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"
}
请注意,您不应使用 = 检查语言,而应使用 langMatches。这将处理大写差异以及语言的区域变体。
如果我想从 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
}
请注意,如果您尝试在此处按语言过滤 ?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"
}
请注意,您不应使用 = 检查语言,而应使用 langMatches。这将处理大写差异以及语言的区域变体。