获取 dbpedia 类别的 skos:broader 属性 的 SPARQL 查询

SPARQL query to get skos:broader property of a dbpedia category

我正在使用端点 http://dbpedia.org/sparql to query dbpedia for "skos:broader" property given a category. I've taken the categories from 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 
}

b。我用这个得到了空结果。但是,如果我用 "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 而不是前缀名称,通过 'expanding' 前缀:

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

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

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