Группировать данные по месяцам в SPARQL? - PullRequest
4 голосов
/ 08 марта 2012

Можно ли извлечь элемент месяца из даты, используя SPARQL, и сгруппировать по нему результаты.Я использую онтологию времени W3 для определения дат в формате "2009-12-31"^^xsd:date.

Так что в случае "2009-12-31"^^xsd:date я бы хотел извлечь 12.

Возможно ли это вообще.Если да, то как это сделать?

1 Ответ

5 голосов
/ 08 марта 2012

В SPARQL 1.1 есть функция month () (http://www.w3.org/TR/sparql11-query/#func-month), которая извлекает месяц из дат ISO.

. Вы можете группировать по месяцам, используя ключевое слово GROUP BY, например:

SELECT ?mon SUM(?val)
WHERE {
  ?x :date ?date ;
     :value ?val .
}
GROUP BY (month(?date) AS ?mon)

Единственная небольшая проблема заключается в том, что системы SPARQL не обязаны обрабатывать типы данных xsd: date, а только xsd: dateTime, но многие справятся с этим правильно.

...