Даже SPARQL 1.1 не поддерживает арифметические операции с датами по умолчанию. См. Раздел Отображение оператора SPARQL : арифметические операции определены только для числовых типов данных.
Могут быть некоторые реализации SPARQL 1.1, которые предлагают расширение для этой цели, но я не сразу знаю о тех, которые имеют это встроенное сейчас, конечно, не в Python.
Лучше всего связаться с разработчиками SPARQL-движка по вашему выбору и приставить к ним, чтобы реализовать такое расширение, или в качестве альтернативы.
В качестве обходного пути, большинство движков SPARQL (даже 1.0) поддерживают операции сравнения по датам, поэтому вы можете выполнять такие вещи, как сортировка и сравнение, но вам придется выполнить некоторую пользовательскую постобработку в результате запроса.
Обновление Я только что понял, что упустил что-то довольно важное: SPARQL 1.1, конечно, поддерживает такие функции, как year()
, month()
и т. Д., Которые возвращают компонент года и месяца для значения datetime-значения как целое число, и которое вы могли бы использовать, чтобы сделать круговую арифметику на датах.