Мне нужны все годы в заданном диапазоне как значения в sparql (особенно для реализации кунжута).Функция диапазона в sparql
Есть ли способ, чтобы «создать» новые номера в SPARQL, как:
SELECT (RANGE(2,10) AS ?numbers)
WHERE{}
Мне нужны все годы в заданном диапазоне как значения в sparql (особенно для реализации кунжута).Функция диапазона в sparql
Есть ли способ, чтобы «создать» новые номера в SPARQL, как:
SELECT (RANGE(2,10) AS ?numbers)
WHERE{}
, не принимая более глубокий взгляд, один наивный ответ в духе RDF является материализовать число, а затем использовать FILTER для ассортимент. Другими словами, просто вставить их в графу
ex:year ex:anumber "1900"^^xsd:integer .
ex:year ex:anumber "1901"^^xsd:integer .
...
ex:year ex:anumber "2100"^^xsd:integer .
И есть шаблон в разделе WHERE:
SELECT ?number
WHERE {
ex:year ex:number ?number .
FILTER (?number < 2020)
FILTER (?number > 1999)
}
Как отметил выше, трудно представить себе случай использования для «знать» числа: то, что вы получаете, будет кросс-продуктом со всем остальным в запросе, если только получение чисел не является единственной целью запроса или какой-либо применяемой фильтрации (в последнем случае нет необходимости генерировать числа вообще).
В этом языке нет ничего подобного, хотя вы можете проверить, поддерживает ли ваша реализация дополнительные функции. Что бы вы хотели, чтобы числа были привязаны, во всяком случае? Что-то вроде 'select? Year, где {? Year ex: inRange [ex: мин. 2; ex: max 10]} 'может быть поддержана функцией свойств в Йене, я думаю. –
Я посмотрел, как создавать пользовательские функции в кунжуте (http://www.rivuli-development.com/further-reading/sesame-cookbook/creating-custom-sparql-functions/), но я думаю, что вы можете только вернуть одно значение –
@RaphaelSchumann хорошо, да, но это почти _definition_ функции, которая возвращает одно значение :) Можете ли вы немного рассказать о своем случае использования? Может быть альтернативный способ добиться того, что вам нужно. –