我正在使用端点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
}
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而不是前缀名称:
select ?value where {
<http://dbpedia.org/resource/Category:Companies_based_in_Menlo_Park,_California> skos:broader ?value
}
关于b点:该查询未给出结果,因为您使用的是错误的URI。您的查询中有'... dbpedia.org/页面/ Category:...',它应该是'... dbpedia.org/资源/ Category:...'。
其中带有/ page /的DBPedia URI是关于资源的HTML信息页,而其中带有/ resource /的URI是资源本身的实际标识符。后者是您应该始终使用SPARQL查询的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句