Я пытаюсь сделать несколько запросов на sparql с помощью программирования на Python, и я застрял ниже. То, что я пытаюсь сделать, - это утверждение запроса временного диапазона каким-то общим образом. Приведите мне пример ниже. Вопрос "Who was the mayor of the new york city in %(YEAR)?"
и соответствующий sparql, который я пишу, такой же, как показано ниже. Для дальнего предыдущего диапазона все работает нормально. Но недавний диапазон не работает, потому что у нынешнего мэра нет времени окончания. Другими словами, могу ли я сделать код что-то вроде FIlTER (?v3 has no value or ?v3 > "2011-01-01"^^xsd:dateTime)
? Я бы хотел улучшить свой sparql одним запросом в более общем виде, соответствующем вопросам временного диапазона.
Случай 1: Кто был мэром Нью-Йорка в 2011 году? -ok
SELECT DISTINCT ?v ?vLabel ?v2 ?v3
WHERE
{
wd:Q60 p:P6 ?stmt.
?stmt ps:P6 ?v;
pq:P580 ?v2;
pq:P582 ?v3.
FILTER (?v2 < "2011-01-01"^^xsd:dateTime) # start time
FILTER (?v3 > "2011-01-01"^^xsd:dateTime) # end time
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,en". }
}
ORDER BY DESC (?v2)
Случай 2: Кто был мэром Нью-Йорка в 2016 году? - Нет ответа
SELECT DISTINCT ?v ?vLabel ?v2 ?v3
WHERE
{
wd:Q60 p:P6 ?stmt.
?stmt ps:P6 ?v;
pq:P580 ?v2;
pq:P582 ?v3
FILTER (?v2 < "2016-01-01"^^xsd:dateTime) # start time
FILTER (?v3 > "2016-01-01"^^xsd:dateTime) # end time
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,en". }
}
ORDER BY DESC (?v2)