1

我有一个带有FILTER如下语句的 sparql 查询:

FILTER ((?dayOfWeek = ?day) && (?start >= ?startTime) && (?finish <= ?finishTime))

如果我用文字值替换并在 snorql 上执行,我知道这个查询可以正确运行:

FILTER ((?dayOfWeek = "Wed") && (?start >= 720) && (?finish <= 820))

我想改为通过 GET 请求提供值,例如:

...sparql?query=<query>&day=Wed&startTime=720&finishTime=820

但是,上述请求不起作用(它返回一个空数据集)。我试过指定 and 的类型startTimefinishTime

...sparql?query=<query>&day=Wed&startTime=720&startTime_type=integer&finishTime=820&finishTime_type=integer

但这并不能解决问题。

在查询字符串中提供适用于 snorql 的文字值也会导致一个空数据集,这真的让我感到困惑。

我假设我必须以错误的方式提供值,或者对它们进行错误编码。查询字符串本身已被百分比转义(字符集:)!*'();:@&=+$,/?%#[]

有什么建议么?

4

1 回答 1

2

如果您使用的是 SPARQL 协议,则用法为

...sparql?query=PREFIX .. SELECT...

即完整的 SPARQL 查询(编码为在 URL 中)。

于 2013-02-27T09:46:28.780 回答