Как мне посчитать и отфильтровать?(Запрос Wikidata) - PullRequest
0 голосов
/ 06 марта 2019

Вкл. Викиданные , Я пытаюсь отфильтровать события определенных периодов времени, но я получаю ошибки, или счет 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").
    }
}
...