SPARQL исправление синтаксиса - PullRequest
0 голосов
/ 06 октября 2019

Я впервые использую SPARQL. Используя DBpedia, я хочу перечислить названия групп всех рок-групп 1992 года

Код, который я уже разработал, работает правильно, но дает 0 результатов. Я неправильно фильтрую дату?

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/resource/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT DISTINCT ?bandname where {
?band dbo:genre dbp:Rock_music .
?band foaf:name ?bandname .
FILTER (dbo:activeYearsStartYear >= xsd:date("1992-01-01") && dbo:activeYearsStartYear <= xsd:date("1992-12-31"))
}

Я ожидаю только названия групп в столбце.

1 Ответ

1 голос
/ 06 октября 2019
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/resource/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT DISTINCT ?bandname ?date where {
?band dbo:genre dbp:Rock_music .
?band foaf:name ?bandname .
?band dbo:activeYearsStartYear ?date .
FILTER (?date >= "1992-01-01"^^xsd:dateTime && ?date <= "1992-12-31"^^xsd:dateTime)
}

Это помогает, но обратите внимание, что dbo: activeYearsStartYear создает только год, поэтому FILTER не использует день / месяц.

...