Supporto di potenza (esponenziazione) e altre funzioni matematiche in SPARQL
-
05-07-2019 - |
Domanda
Sto cercando di scrivere una query SPARQL in cui voglio filtrare il quadrato di qualcosa, ma non riesco semplicemente a capire come quadrare un numero ( x 2 ) (tranne moltiplicandolo con se stesso, ovviamente). Ho indovinato una funzione di radice quadrata chiamata math: sqrt ()
che funziona, ma nulla di simile a math: pow
sembra esistere.
Come posso ottenere il quadrato di qualcosa in SPARQL e, cosa più importante, dove posso leggere a riguardo e altre funzioni matematiche come math: sqrt
in SPARQL?
Nota: questo è legato alla mia domanda precedente: Ricerca inversa geotagging di Wikipedia .
Soluzione
Sono passati alcuni anni e il SPARQL 1.1 Query Language è stato pubblicato. Include molte più funzioni integrate rispetto al linguaggio di query SPARQL originale. Oltre a molte funzioni su stringhe, termini RDF e altri, ci sono un numero di funzioni numeriche (i numeri di sezione indicano la sezione nello standard collegato):
Non esiste ancora alcuna funzione square
e il modo più rapido per implementare che utilizzerà *
, quindi la risposta di Laalto è ancora valida. Gli operatori supportati da SPARQL sono descritti in 17.3 Mappatura operatore e per XPath l'aritmetica è ancora solo l'insieme di +
, -
, *
e /
.
Altri suggerimenti
SPARQL supporta alcune funzioni aritmetiche di XPath come + - * /
. Sono descritti nelle SPARQL spec .
La funzione di alimentazione non è supportata dalle specifiche. E in ogni caso x * x
è un modo più efficiente per calcolare i quadrati rispetto a pow (x, 2)
.