2009-09-09 6 views
5

Я пытаюсь написать запрос SPARQL, где я хочу фильтровать на квадрате что-то, но я просто не могу понять, как квадрат числа (x) (за исключением, конечно, умножения его на себя). Я предположил, что функция квадратного корня называется math:sqrt(), которая работает, но ничего похожего на math:pow, похоже, существует.Power (exponentiation) и другая поддержка математической функции в SPARQL

Как получить квадрат чего-то в SPARQL и, что более важно, где я могу прочитать об этом и другие математические функции, такие как math:sqrt в SPARQL?

Примечание: Это связано с моим предыдущим вопросом: Reverse wikipedia geotagging lookup.

ответ

2

Сейчас несколько лет спустя и опубликован SPARQL 1.1 Query Language. Он включает в себя гораздо больше встроенных функций, чем исходный язык запросов SPARQL. . В дополнение к множеству функций на строках, терминах RDF, & с, существует ряд числовых функций (номера раздела указывают на раздел в связанном стандарте):

Там еще нет square функция здесь, и самый быстрый способ реализации, который будет использовать *, так laalto's answer до сих пор стоит. Операторы, поддерживающие SPARQL, описаны в 17.3 Operator Mapping, а для арифметики XPath все еще только набор +, -, * и /.

+0

Спасибо за обновление :) –

3

SPARQL поддерживает некоторые арифметические функции XPath, такие как + - * /. Они описаны в SPARQL spec.

Функция питания не поддерживается спецификацией. И в любом случае x*x - это более эффективный способ вычисления квадратов, чем pow(x,2).

+0

Привет. Благодарю. Что касается спецификации других математических функций, таких как квадратный корень (математика: sqrt, похоже, работает нормально) и тригонометрические функции sin и cos? Я немного изменил вопрос. –

+0

Это будут расширения, специфичные для реализации, а не часть основного SPARQL. – laalto

+0

Где я могу найти документацию по этим расширениям для конкретной реализации? –

 Смежные вопросы

  • Нет связанных вопросов^_^