我的部分查询看起来像这样:
GRAPH g1: {VALUES (?ut) {$U1}
?IC_uri skos:related ?ut .
}
通常,根据用户输入,$U1
会获取URI列表。我想为$U1
发送测试目的值,以便忽略值的声明并考虑所有可能的值。实际上,它应该产生与以下相同的结果:
GRAPH g1: {
# VALUES (?ut) {$U1}
?IC_uri skos:related ?ut .
}
我记得有办法做到这一点,但我无法在SPARQL规范中找到它。
答案 0 :(得分:2)
我建议三个选择:
FILTER (?ut IN ($ut))
,传递$ut
而不是URI列表; BIND ($ut as ?ut)
,传递$ut
而不是单个URI; VALUES (?ut) {(UNDEF)}
,传递(UNDEF)
而不是以空格分隔的(括号括起的)URI列表。此类SPARQL注入不能被认为是安全的。
10.2.2 VALUES Examples中首次提到的UNDEF
关键字:
如果变量在
VALUES
子句中没有特定解决方案的值,则使用关键字UNDEF
而不是RDF术语。