Potencia (exponenciación) y otras funciones matemáticas compatibles con SPARQL
-
05-07-2019 - |
Pregunta
Estoy tratando de escribir una consulta SPARQL donde quiero filtrar en el cuadrado de algo, pero simplemente no puedo averiguar cómo cuadrar un número ( x 2 ) (excepto multiplicándolo consigo mismo, por supuesto). Adiviné una función de raíz cuadrada llamada math: sqrt ()
que funciona, pero parece que no existe nada como math: pow
.
¿Cómo obtengo el cuadrado de algo en SPARQL y, lo que es más importante, dónde puedo leer sobre esto y otras funciones matemáticas como math: sqrt
en SPARQL?
Nota: esto está relacionado con mi pregunta anterior: Búsqueda inversa de geoetiquetado de wikipedia .
Solución
Han pasado algunos años y el SPARQL 1.1 Query Language ha sido publicado. Incluye muchas más funciones integradas que el lenguaje de consulta SPARQL original. Además de muchas funciones en cadenas, términos RDF, & amp; c., Hay una serie de funciones numéricas (los números de sección indican la sección en el estándar vinculado):
Todavía no hay aquí la función square
, y la forma más rápida de implementarlo es usar *
, por lo que la respuesta de laalto sigue en pie. Los operadores que admite SPARQL se describen en 17.3 Mapeo de operadores , y para XPath la aritmética sigue siendo el conjunto de +
, -
, *
y /
.
Otros consejos
SPARQL admite algunas funciones aritméticas XPath como + - * /
. Se describen en especificación SPARQL .
La función de alimentación no es compatible con la especificación. Y, en cualquier caso, x * x
es una forma más eficiente de calcular cuadrados de lo que sería pow (x, 2)
.