SPARQL 请求不包括某些类型的个人

问题描述 投票:0回答:1

我正在制作一个图表,其中个人可以拥有集合 {Class1、Class2、Class3 等} 中类型的任意组合。因此,个体可以是{Class1,Class 4}或{Class6}或{Class1,Class7}等类型。

我正在尝试编写一个 SPARQL 请求,该请求可以获取以下内容:

  • 类型为Class1
  • 不具有以下任何类型:Class4、Class5、Class6

这是我目前的要求:

  ?s a :Class1.
  FILTER NOT EXISTS { ?s a :Class4}
  FILTER NOT EXISTS { ?s a :Class5}
  FILTER NOT EXISTS { ?s a :Class6}

还有更优雅的写法吗? 例如,对于 Class4、Class5 和 Class6 使用“OR”条件? 或者用“MINUS”,我不太明白?

sparql rdf owl
1个回答
0
投票

您可以使用

VALUES

?s a :Class1 .
FILTER NOT EXISTS { 
   VALUES ?forbiddenClass { :Class4 :Class6 :Class6 }
   ?s a ?forbiddenClass .
}
© www.soinside.com 2019 - 2024. All rights reserved.