Prise en charge de puissance (exponentiation) et d'autres fonctions mathématiques dans SPARQL
-
05-07-2019 - |
Question
J'essaie d'écrire une requête SPARQL dans laquelle je souhaite filtrer le carré de quelque chose, mais je ne parviens tout simplement pas à trouver comment mettre un carré en carré ( x 2 ) (sauf en le multipliant par lui-même, bien sûr). J'ai deviné une fonction de racine carrée appelée math: sqrt ()
qui fonctionne, mais rien ne ressemble à math: pow
ne semble exister.
Comment obtenir le carré de quelque chose dans SPARQL et, plus important encore, où puis-je lire des informations à ce sujet et d'autres fonctions mathématiques telles que math: sqrt
dans SPARQL?
Remarque: ceci est lié à ma question précédente: effectuer une recherche inversée dans la géolocalisation de wikipedia .
La solution
Quelques années plus tard, le langage de requête SPARQL 1.1 a été utilisé. publié. Il inclut beaucoup plus de fonctions intégrées que le langage de requête SPARQL d'origine. Outre de nombreuses fonctions sur les chaînes, les termes RDF, etc., il existe un certain nombre de fonctions numériques (les numéros de section indiquent la section dans la norme liée):
Il n'y a toujours pas de fonction square
ici, et le moyen le plus rapide d'implémenter qui utilisera *
, donc La réponse de Laalto est toujours valable. Les opérateurs pris en charge par SPARQL sont décrits dans la Mappage d'opérateurs 17.3 et pour XPath. l'arithmétique n'est toujours que l'ensemble +
, -
, *
et /
.
Autres conseils
SPARQL prend en charge certaines fonctions arithmétiques XPath telles que + - * /
. Ils sont décrits dans les spécifications SPARQL .
La fonction d'alimentation n'est pas prise en charge par la spécification. Et dans tous les cas, x * x
est un moyen plus efficace de calculer des carrés que pow (x, 2)
.