Поддержка степени (возведения в степень) и других математических функций в SPARQL.
-
05-07-2019 - |
Вопрос
Я пытаюсь написать запрос SPARQL, в котором хочу фильтровать что-либо по квадрату, но я просто не могу понять, как возвести число в квадрат (Икс2) (кроме умножения на самого себя, конечно).Я предположил, что функция квадратного корня называется math:sqrt()
который работает, но ничего подобного math:pow
кажется, существует.
Как мне получить квадрат чего-либо в SPARQL и, что более важно, где я могу прочитать об этом и других математических функциях, таких как math:sqrt
в СПАРКЛ?
Примечание:Это связано с моим предыдущим вопросом: Обратный поиск по геотегам в Википедии .
Решение
Прошло несколько лет, и SPARQL 1.1 Язык запросов был опубликован.Он включает в себя гораздо больше встроенных функций, чем исходный язык запросов SPARQL.В дополнение к множеству функций для строк, терминов RDF и т. д., существует ряд числовых функций (номера разделов указывают на раздел в связанном стандарте):
Там все еще нет square
здесь, и самый быстрый способ реализовать это будет использовать *
, так ответ Лаалто все еще стоит.Операторы, поддерживаемые SPARQL, описаны в разделе 17.3 Сопоставление операторов, а арифметика для XPath по-прежнему представляет собой просто набор +
, -
, *
, и /
.
Другие советы
SPARQL поддерживает некоторые арифметические функции XPath, такие как + - * /
. Они описаны в спецификации SPARQL .
Функция мощности не поддерживается спецификацией. И в любом случае x * x
является более эффективным способом вычисления квадратов, чем pow (x, 2)
.