En SPARQL 1.1 que puede hacerlo utilizando expresiones del proyecto, así:
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT (xsd:float(?a)/xsd:float(?b) AS ?result)
WHERE
{
?c property:name "myThing"@en
?c property:firstValue ?b
?c property:secondValue ?a
}
Es posible utilizar alternativamente xsd:double(?var)
para echar a un doble, xsd:integer(?var)
para convertir a un número entero y xsd:decimal(?var)
para convertir a decimal.
Tenga en cuenta que SPARQL especifica las reglas de promoción tipo así por ejemplo:
- número entero/entero = decimal
- flotador/doble = doble
Si realmente necesita el resultado en un tipo de datos garantizada puedes lanzar la expresión de división completa, por ej.
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT (xsd:double(xsd:float(?a)/xsd:float(?b)) AS ?result)
WHERE
{
?c property:name "myThing"@en
?c property:firstValue ?b
?c property:secondValue ?a
}