在Wikidata上, 我正在尝试过滤某些时间段的事件,但是无论如何更改时间段,都会出现错误或计数为0,或者计数相同。 我在做什么错了?
SELECT (count(distinct ?event) as ?cnt)
WHERE
{
?event wdt:P31/wdt:P279* wd:Q171558.
OPTIONAL {
?event rdfs:label ?eventLabel.
FILTER ( ?date >= "2000-01-01"^^xsd:date && ?date <= "2018-12-31"^^xsd:date )
}.
}
我还在查询页面上看到了一个示例,但是我该如何计算?我应该如何对查询的第一行进行转换以将其转换为Count而不引起错误? :
SELECT ?event ?eventLabel ?date
WHERE
{
?event wdt:P31/wdt:P279* wd:Q1190554.
OPTIONAL { ?event wdt:P585 ?date. }
OPTIONAL { ?event wdt:P580 ?date. }
FILTER(BOUND(?date) && DATATYPE(?date) = xsd:dateTime).
BIND(NOW() - ?date AS ?distance).
FILTER(0 <= ?distance && ?distance < 31).
OPTIONAL {
?event rdfs:label ?eventLabel.
FILTER(LANG(?eventLabel) = "en").
}
}