我正在尝试执行相对简单的正则表达式查询,但它在正则表达式中使用了一个变量。 sparql是不是能够使用这种串联,还是我使用了错误的方法?我想要查询的内容如下:
SELECT *
WHERE {
?part local:part_start ?start .
?chunk local:long_region ?long_region
BIND(REPLACE(?long_region, ".{"+?start+"}(.{10}).*", "$1") AS ?regionX)
}
根据起始位置和最后10个字符,我将从长字符区域中得到一小部分。
答案 0 :(得分:2)
在大多数SPARQL实现中,没有+
不能用于字符串连接,原则上,实现可以支持extended operator mapping,但我不知道这样做。
相反,如果您使用符合CONCAT()
标准的引擎,则可以使用标准SPARQL 1.1功能来实现目标:
SELECT *
WHERE {
?part local:part_start ?start .
?chunk local:long_region ?long_region
BIND(REPLACE(?long_region, CONCAT(".{", ?start, "}(.{10}).*"), "$1") AS ?regionX)
}