我正在尝试创建一个 SPARQL
查询,对返回的结果执行对数函数。我已经在我的java程序中实现了Jena SPARQL引擎,但只能找到这些可用的函数:http://jena.sourceforge.net/ARQ/library-function.html
有人知道如何获取 SPARQL
返回变量的对数(最好是自然对数)吗?
有效的示例查询:
SELECT DISTINCT ((?Transactions_Num) AS ?BusinessValue)
WHERE {{?BusinessProcess relation:Transactions_Num ?Transactions_Num ;} }
我想要工作的查询示例(尽管目前没有):
SELECT DISTINCT (LOG(?Transactions_Num) AS ?BusinessValue)
WHERE {{?BusinessProcess relation:Transactions_Num ?Transactions_Num ;} }
非常感谢您提前提供的帮助!
最佳答案
日志不是标准的一部分或 ARQ's additions ,但是它是 very easy to write your own .
package app;
public class log extends FunctionBase1
{
public log() { super() ; }
public NodeValue exec(NodeValue v)
{
return Math.log(v.getDouble());
}
}
最简单的注册方法是这样的:
FunctionRegistry.get().put("http://example.org/function#log", log.class) ;
然后您可以像这样使用它:
PREFIX myfun: <http://example.org/function#>
SELECT DISTINCT (myfun:log(?Transactions_Num) AS ?BusinessValue)
{
...
}
关于math - SPARQL 查询中的对数函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16280758/