为什么过滤器在此上下文中不起作用?

Ani*_*vid 2 rdf semantic-web owl ontology sparql

这是查询和结果:

在此输入图像描述

如您所见,我正在过滤掉那些用户,bo:ania为什么他们仍然出现?

但是,如果我删除宽卡并仅选择用户?user,bo:ania则不会出现

在此输入图像描述

我没有提供最小数据示例,因为这是关于过滤器和通配符如何工作的问题,而不是从数据集中提取某些数据的问题.但是,如果您需要最低限度的数据,我非常乐意提供.

sco*_*ger 5

?specificUserbo:ania你的VALUES陈述是必然的. ?user是由其他三重模式定义的完全不同的绑定.你FILTER说要过滤结果在哪里?user = bo:ania,并且看起来正确地做到了,看到在任何结果中?user都没有约束bo:ania.

顺便说VALUES一下,除非你想检查多个值,否则不需要在这种情况下使用.如果它只是一个值,那么以下内容将起作用,并且您不知道为什么绑定到bo:ania包含在结果集中:

SELECT *
WHERE {
  ?user a rs:user .
  ?user rs:hasRated ?rating .
  ?rating rs:hasRatingDate ?ratngDate .
  FILTER (?ratingDates >= (now() -"P10000F"^^xsd:duration) )
  FILTER (?user != bo:ania)
}
Run Code Online (Sandbox Code Playgroud)