【问题标题】:multiple conditions in SPARQL ASK querySPARQL ASK 查询中的多个条件
【发布时间】:2016-01-17 11:38:04
【问题描述】:

我需要在 SPARQL ASK 查询中包含一些条件。

我试过了--

  • 嵌套几个 ASK 查询
  • ASK查询中嵌套SELECT语句
  • 只需将所有条件放入 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")
  }

我怎样才能让它工作?

【问题讨论】:

    标签: regex sparql multiple-conditions


    【解决方案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
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      相关资源
      最近更新 更多