这是查询和结果:为什么过滤器在这种情况下不起作用?
正如你看到的,我剔除这些bo:ania
的用户,那么为什么他们仍然出现?
但是,如果我删除widecard并选择刚才的用户?user
,bo:ania
不会出现
我没有提供一个最小数据的例子,因为这是一个有关如何过滤和问题通配符工作,而不是从数据集中提取某些数据的问题。但是,如果您需要最低限度的数据,我非常乐意提供。
这是查询和结果:为什么过滤器在这种情况下不起作用?
正如你看到的,我剔除这些bo:ania
的用户,那么为什么他们仍然出现?
但是,如果我删除widecard并选择刚才的用户?user
,bo:ania
不会出现
我没有提供一个最小数据的例子,因为这是一个有关如何过滤和问题通配符工作,而不是从数据集中提取某些数据的问题。但是,如果您需要最低限度的数据,我非常乐意提供。
?specificUser
通过您的VALUES
声明绑定到bo:ania
。 ?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)
}
即使只有一个值可以使用,**值**可以通过让IRI仅出现一次来减少一个拼写错误来源,并且可以使投影更容易,因为该值绑定到变量。 –
我没有在上面的查询(?)中看到任何内容在一般情况下,我没有看到'VALUES'与一个绑定和'BIND'之间的区别,而不是用户首选项。 – scotthenninger
@JoshuaTaylor是值得为我省去拼写错误的语气,我总是使用它,你对我说过,非常感谢 –
题外话:我想你指的通配符? – AKSW