SPARQL 查询以获取 skos:dbpedia 类别的更广泛属性



我正在使用端点 http://dbpedia.org/sparql 来查询dbpedia以获取给定类别的"skos:broader"属性。 我已经从 http://dbpedia.org/page/Andreessen_Horowitz 中获取了类别来进行查询。 我不确定我在以下查询中做错了什么:

一个。 我得到了这个语法错误。 我该如何逃脱","?

prefix category: <http://dbpedia.org/resource/Category:>
select ?value where { 
  category:Companies_based_in_Menlo_Park,_California skos:broader ?value 
}

二. 我得到了这个空的结果。 但是,如果我用"category:American_venture_capital_firms"替换 URI,那么我得到了结果(使用正确的前缀声明)。

select ?value where { 
  <http://dbpedia.org/page/Category:American_venture_capital_firms> skos:broader ?value 
}

关于a点,您可以通过在前面添加反斜杠来转义SPARQL 1.1前缀名称中的字符:

category:Companies_based_in_Menlo_Park,_California

然而,不幸的是,这在DBPedia端点上不起作用,因为它的SPARQL引擎没有完全符合SPARQL 1.1标准。解决方法是通过"扩展"前缀来使用完整的 IRI 而不是前缀名称:

select ?value where { 
  <http://dbpedia.org/resource/Category:Companies_based_in_Menlo_Park,_California> skos:broader ?value 
}

关于b点:该查询没有给出结果,因为您使用了错误的URI。你有"...dbpedia.org//分类:..."在您的查询中,它应该是"...dbpedia.org/资源/类别:..."。

带有/page/的 DBPedia URI 是关于资源的 HTML 信息页面,而包含/resource/的 URI 是资源本身的实际标识符。后者是您应该始终使用 SPARQL 查询的内容。

最新更新