在询问查询中使用联合 (Sparql)

whi*_*993 1 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
  }
}
Run Code Online (Sandbox Code Playgroud)

Ask 语句将如何对待工会?

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

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

sco*_*ger 5

基本上,SPARQL ASK 会一直执行,直到发现一种图形模式为 true,否则返回 false。

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