У меня есть следующий запрос SPARQL, который, по-видимому, правильно производит фильмы, произведенные в США (страна происхождения) и выпущенные в США (место публикации) в 2018 году. У меня проблема в том, что создается одна строкадля каждого выпуска, хотя другие выпуски находятся за пределами США.Я добавил ограничение для уменьшения размера ответа.
Вот запрос:
SELECT ?item ?name ?publication_date ?placeLabel WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?item rdfs:label ?name;
wdt:P31 wd:Q11424;
wdt:P495 wd:Q30; # -> country of origin US
wdt:P577 ?publication_date.
?item p:P577 ?publication_statement.
?publication_statement pq:P291 ?place.
FILTER(xsd:date(?publication_date) > "2018-01-01"^^xsd:date)
FILTER(
(LANG(?name)) = "en"
&& ?place=wd:Q30) # -> place of publication
}
ORDER BY ?name
LIMIT 10
Я хотел бы изменить его так, чтобы он выдавал одну строку на фильм, ЕСЛИ этобыл выпущен в США в 2018 году.
Спасибо за вашу помощь.Также приветствуются комментарии по использованию FILTER или другого не идиоматического SPARQL.