2009-09-09 9 views
5

Sto cercando di scrivere una query SPARQL in cui voglio filtrare il quadrato di qualcosa, ma semplicemente non riesco a capire come quadrare un numero (x) (eccetto moltiplicandolo con se stesso, ovviamente). Ho indovinato una funzione radice quadrata denominata math:sqrt() che funziona, ma nulla come math:pow sembra esistere.Supporto di potenza (esponenziale) e altre funzioni matematiche in SPARQL

Come ottengo il quadrato di qualcosa in SPARQL e, cosa più importante, dove posso leggere su di esso e altre funzioni matematiche come math:sqrt in SPARQL?

Nota: questo è correlato alla mia domanda precedente: Reverse wikipedia geotagging lookup.

risposta

2

Sono passati alcuni anni e lo SPARQL 1.1 Query Language è stato pubblicato. Include molte più funzioni integrate rispetto al linguaggio di query SPARQL originale. . Oltre a molte funzioni sulle corde, termini RDF, & c, ci sono un certo numero di funzioni numeriche (i numeri delle sezioni indicano la sezione nello standard linked):

Non c'è ancora nessun square funzione qui, e il modo più rapido per implementare che utilizzeranno *, così laalto's answer si ferma. Gli operatori supportati da SPARQL sono descritti in 17.3 Operator Mapping e per l'aritmetica XPath è ancora solo l'insieme di +, -, * e /.

+0

Grazie per l'aggiornamento :) –

3

SPARQL supporta alcune funzioni aritmetiche XPath come + - * /. Sono descritti nello 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).

+0

Ciao. Grazie. Che dire delle specifiche di altre funzioni matematiche, come la radice quadrata (matematica: sqrt sembra funzionare bene) e le funzioni trigonometriche sin, e cos? Ho aggiornato la domanda un po '. –

+0

Quelle sarebbero estensioni specifiche dell'implementazione, non parte del nucleo SPARQL. – laalto

+0

Dove trovo la documentazione su queste estensioni specifiche dell'implementazione? –

Problemi correlati