我需要在SPARQL ASK查询中包含一些条件。
我试过了 -
ASK
个查询SELECT
查询ASK
语句
ASK
查询- 但答案总是错误的。
我已经逐一检查了所有条件并且它正在运行,所以问题只在于查询构造。
大概这就是我想要的:
PREFIX m: <http://data.linkedmdb.org/resource/movie/>
ASK
{
?kraj m:country "United Kingdom".
?rez m:director_name ?rezyser .
FILTER regex(?rezyser, "James", "i")
}
我怎样才能让它发挥作用?
答案 0 :(得分:1)
如果您只是在任何SPARQL查询的WHERE
子句中放入多个子句,那么您要求 ALL 必须满足这些子句才能返回答案。
听起来你真正想知道的是,如果满足这些条款的 ANY ,在这种情况下你需要使用UNION
运算符,例如。
PREFIX m: <http://data.linkedmdb.org/resource/movie/>
ASK
{
{
?kraj m:country "United Kingdom".
}
UNION
{
?rez m:director_name ?rezyser.
FILTER regex(?rezyser, "James", "i")
}
}
您可以根据需要在UNION
中拥有尽可能多的分支,例如,如果您想检查是否满足以下4个条款中的任何一个:
ASK
{
{
# Clause 1
}
UNION
{
# Clause 2
}
UNION
{
# Clause 3
}
UNION
{
# Clause 4
}
}