java - 使用 Jena API 在 SPARQL 中自定义函数

标签 java sparql jena

第一次在这里发帖。我希望有人可以帮助我制作自定义 SPARQL 函数以在 Jena (ARQ) API 中使用。我需要 SPARQL 做一些聚合,我知道它已经实现了 avg、count、min、max 和 sum,但我还需要能够做标准差和中位数(我也需要范围,但这可以是仅使用最小值和最大值即可完成)。

我希望查询可以类似于您用于已实现功能的查询:

PREFIX example: <http://www.examples.com/functions#>  
PREFIX core: <http://www.core.com/values#>  
SELECT (stddev(?price) as ?stddev)  
WHERE {  
    ?s core:hasPrice ?price  
}  

我不知道这是否可行,但如果我需要像其他自定义函数一样使用它,那也很好,只要它仍然得到结果的标准偏差。

我所知道的是这些函数将用 Java 编写,我已经非常了解了。所以,我想知道是否有人知道解决此问题的好方法或从哪里开始寻找一些指导。我曾尝试寻找有关它的文档,但似乎没有任何内容。任何帮助将不胜感激。

提前致谢。

最佳答案

我不确定您是否可以在不实际更改语法的情况下做您想做的事。

例如 SUM(...) 是 SPARQL 语法定义的关键字:

过滤器函数或属性函数可能不是您要找的。

顺便说一句,您也不会在 SQL 中获得 STDDEV。是因为需要两次遍历数据吗?

关于java - 使用 Jena API 在 SPARQL 中自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11040274/

相关文章:

rdf - 在内存服务器中创建 Fuseki

java - 删除字段具有指定值的记录

java - 为什么 Java 文件和 Jar 文件会有不同的返回值?

sparql - 以编程方式将数据集上传到 fuseki

postgresql - 通过RDFLib-SQLAlchemy加载RDF数据到PostgreSQL Table

iphone - 如何使用 sparql 端点 - 例如 iPhone 应用程序中的 DBPedia

sparql - 使用 Jena ARQ 进行选择、描述和构建的一个 SPARQL 端点

java - 给定一个字符串作为输入,返回在字符串中出现次数最多的字符

java - 在java中将unix时间戳转换为日期

jena - 使用 Jena 在 owl 文件中添加个人