Power (Potenzierung) und andere mathematische Funktion Unterstützung in SPARQL
-
05-07-2019 - |
Frage
Ich versuche, eine SPARQL-Abfrage zu schreiben, wo ich auf dem Platz von etwas filtern will, aber ich bin einfach nicht in der Lage, herauszufinden, wie eine Zahl zu quadrieren ( x 2 ) (außer indem sie sie mit sich selbst, natürlich multipliziert). Ich vermutete eine Quadratwurzelfunktion namens math:sqrt()
die funktioniert, aber nichts wie math:pow
zu existieren scheint.
Wie kann ich den Platz von etwas in SPARQL bekommen und, was noch wichtiger ist, wo kann ich darüber gelesen und andere mathematische Funktionen wie math:sqrt
in SPARQL?
Hinweis: Dies ist meine vorherige Frage bezogen werden: wikipedia Geotagging-Lookup Rückwärts
Lösung
Es ist jetzt ein paar Jahre später und die SPARQL 1.1 Query Language wurde veröffentlicht. Es enthält viele weitere integrierte Funktionen als die ursprüngliche Abfragesprache SPARQL. . Neben vielen Funktionen auf Strings, RDF Begriffen, usw, gibt es eine Reihe von numerischen Funktionen ist (die Abschnittsnummern geben den Abschnitt in dem verknüpften Standard):
Es gibt noch keine square
Funktion hier, und der schnellste Weg, das wird mit *
zu implementieren, so laalto Antwort noch steht. Die Betreiber, die SPARQL unterstützt beschrieben sind in 17.3 Operator Mapping und für XPath Arithmetik ist nach wie vor nur der Satz von +
, -
, *
und /
.
Andere Tipps
SPARQL unterstützt einige XPath arithmetischen Funktionen wie + - * /
. Sie sind in der SPARQL spec .
Die Power-Funktion wird nicht von der Spezifikation unterstützt. Und in jedem Fall x*x
ist effiziente Weise Quadrate zu berechnen als pow(x,2)
wäre.