SPARQL ASK查询中的多个条件

时间:2016-01-17 11:38:04

标签: regex sparql multiple-conditions

我需要在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")
  }

我怎样才能让它发挥作用?

1 个答案:

答案 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
  }
}