math - SPARQL 查询中的对数函数

标签 math sparql jena logarithm

我正在尝试创建一个 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/

相关文章:

algorithm - 如何按字典顺序对数字 1, ... n 进行排序而不将数字转换为字符串?

rdf - 使用 Jena API 构建删除资源的方法

java - Apache Jena 中模型数据(或图形)的具体实现是什么?

math - 线性缩放功能 2D

algorithm - 使用什么样的算法来分解数据?

flash - Adobe Flash cs4 旋转数学

sparql - 为什么过滤器在这种情况下不起作用?

sparql - 查找包含集合中所有值的列表?

python 脚本卡在 results = sparql.query().convert() 处

rdf - RDF读取/解析错误