谓词中带有冒号的 SPARQL 查询
我正在尝试从 linkedgeodata.org 查询某个国家/地区内各州的 RDF 数据。在 RDF 中,它表示为:
<http://linkedgeodata.org/triplify/node1055351027> <http://linkedgeodata.org/property/is_in%3Acountry> "LT" .
正如您可能注意到的,谓词包含转义冒号,因此“%3A”而不是“:” 我无法为此找到合适的 SPARQL 查询,这些是我的一些尝试,
?node lgdp:is_in "LT".
?node lgdp:is_in:country "LT".
?node lgdp:is_in%3Acountry "LT".
?node lgdp:is_in\u003Acountry "LT".
?node lgdp:is_in"\u003A"country "LT".
我使用 virtuoso 的开源版本作为我的三重存储,这是我收到的错误消息,除了第一种形式之外:
Virtuoso 37000 Error SP030: SPARQL compiler, line 0: Invalid character in SPARQL expression at '\'
SPARQL query:
define sql:big-data-const 0
#output-format:text/html
define input:default-graph-uri PREFIX lgdo:
PREFIX lgdp:
PREFIX lgd:
PREFIX pos:
PREFIX rdf:
SELECT ?node, ?label
Where {
?node a lgdo:State .
?node lgdp:is_in\u003Acountry "LT".
?node rdfs:label ?label .
}
I am trying to query the RDF Data from linkedgeodata.org for States within a Country. In RDF it is represented as such:
<http://linkedgeodata.org/triplify/node1055351027> <http://linkedgeodata.org/property/is_in%3Acountry> "LT" .
As you might notice, the predicate contains an escaped colon, so "%3A" instead of ":"
I was not able to find a suitable SPARQL query for this, these are some of my attempts
?node lgdp:is_in "LT".
?node lgdp:is_in:country "LT".
?node lgdp:is_in%3Acountry "LT".
?node lgdp:is_in\u003Acountry "LT".
?node lgdp:is_in"\u003A"country "LT".
I am using the opensource version of virtuoso as my triple store, this is the errormessage I receive with all except the first form:
Virtuoso 37000 Error SP030: SPARQL compiler, line 0: Invalid character in SPARQL expression at '\'
SPARQL query:
define sql:big-data-const 0
#output-format:text/html
define input:default-graph-uri PREFIX lgdo:
PREFIX lgdp:
PREFIX lgd:
PREFIX pos:
PREFIX rdf:
SELECT ?node, ?label
Where {
?node a lgdo:State .
?node lgdp:is_in\u003Acountry "LT".
?node rdfs:label ?label .
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用命名空间时不允许使用
%
编码的字符,在这种情况下,您必须直接使用完整谓词(不带命名空间)。以下查询有效:查看结果 此处。
Characters encoded with
%
are not allowed when using namespaces, in this case you'll have to use the full predicate directly (without the namespace). The following query works:see the results here.