我尝试在http://dbpedia.org/sparql上执行一些sparql请求。
我的sparql请求是这样的:
PREFIX : <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT ?Name ?Todestag ?person
WHERE {
?person dbo:deathPlace :Hamburg .
?person foaf:name ?Name .
?person dbo:deathDate ?Todestag .
FILTER ( ?Todestag > "2016-01-01"^^xsd:date ) .
} ORDER BY ?Todestag
问题:
此FILTER
不知怎么不起作用。 SPARQL请求为我提供了自从DBpedia开始以来每天死亡的所有人员。但是,我只想要2016年之后去世的人。有人能在查询或语法中发现错误吗?
答案 0 :(得分:1)
这是查询的正确解决方案,请注意应用于FILTER子句的强制转换(即xsd:date(?Todestag):
var keys []interface{}
keys = append(keys, "foo")
keys = append(keys, "bar")
r, err := conn.Do("MGET", keys...)
答案 1 :(得分:0)
好的,我自己弄清楚了。问题肯定是过滤器。我现在更改了过滤器,并出现了所需的结果。过滤器必须为:FILTER (str(?Todestag) >= "2016") .
完全是这样的:
PREFIX : <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT ?Name ?Todestag ?person
WHERE {
?person dbo:deathPlace :Hamburg .
?person foaf:name ?Name .
?person dbo:deathDate ?Todestag .
FILTER (str(?Todestag) >= "2016") .
} ORDER BY ?Todestag