sparql - 为什么过滤器在这种情况下不起作用?

标签 sparql rdf semantic-web owl ontology

这是查询和结果:

enter image description here

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

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

enter image description here

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

最佳答案

?specicUser 通过您的 VALUES 语句绑定(bind)到 bo:ania?user 是由其他三重模式定义的完全不同的绑定(bind)。您的 FILTER 表示要过滤掉 ?user = bo:ania 的结果,并且它似乎正确执行了该操作,看到 ?user 是未绑定(bind)到任何结果中的 bo:ania

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

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

关于sparql - 为什么过滤器在这种情况下不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36724188/

相关文章:

rdf - 有没有办法将RDF词汇表的数据格式转换为SKOS

sparql - 本体研究 EquivalentTo 来自多个单一类的类

xml - 如何使用 SWI-Prolog 从 OWL RDF/XML 查询个体的对象属性?

java - 与另一个语义 Web 源集成

sparql - 如何在使用推理时提高 sparql 查询的性能?

rdf - 查询 DBpedia 以获取仅英文描述(使用 SPARQL)

sparql - 如何在SPARQL中进行计数

sparql - Amazon Neptune 中默认使用匿名身份验证吗?

rdf - SPARQL查询同一属性下的数据

java - 多个用户访问 RDF 文件进行读写