在ask查询中使用union(Sparql)

时间:2016-02-11 10:20:05

标签: sparql

我对其中的一些工会进行了询问:

PREFIX foo: <http://example.com/ontologies/MyOntology.owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

ask
{
  {
    <http://someiri.com> ?b ?c.
    filter(!bound(?b)).
  }
  union
  {
   ?x <http://someiri.com> ?y.
   filter(!bound(?x)).
  }
   union
  {
    ?g ?h <http://someiri.com>.
    filter(!bound(?h)).
  }
   union
  {
    <http://someiri.com> rdf:type foo:RESTEndPoint
  }
}

问题陈述将如何对待工会?

如果工会中的所有三元组都被评估为真,它会返回true吗?

如果找到至少一个被评估为真的三元组,它会返回true吗?

1 个答案:

答案 0 :(得分:4)

基本上SPARQL ASK会执行,直到找到一个图形模式为真,否则返回false。

因此,如果任何UNION图形模式找到匹配,则ASK结果为真。如果所有UNION图形模式都找不到匹配项,则ASK结果为false。