【问题标题】:Sparql COUNT query using Jena api使用 Jena api 的 Sparql COUNT 查询
【发布时间】:2012-06-03 22:37:39
【问题描述】:

我想获得 sparql 查询结果的总数。我在java中为此使用jena API。 计数查询在 virtuoso 中有效,但在 java 中使用 jena api 无效。

Sparql 查询:

select ( count ( ?name ) AS ?total ) from < mygraph > 
where { ?name rdf:type foaf:Name}

它在耶拿 API 中不起作用。我已阅读http://www.w3.org/2001/sw/DataAccess/issues#countAggregate 所以我认为它不在 rdf 中工作,而是在 Virtuoso sparql 编辑器中工作。 因此,如果您有解决方案,请告诉我。并告诉我是否有替代解决方案。

谢谢

这是我的java代码,

String countQueryString="select ( count ( ?name ) AS ?total ) from < mygraph > 
where { ?name rdf:type foaf:Name}";
Query selectQuery = QueryFactory.create(countQueryString);
        QueryExecution qe = QueryExecutionFactory.sparqlService(Constant.SPARQL_ENDPOINT, selectQuery);
Resultset results=qe.execSelect();
if(results.hasNext())
{
    totalCount=countResult.next().get("total").toString();
}

以下是例外: HttpException: HttpException: 400 Bad Request: HttpException: 400 Bad Request.....

【问题讨论】:

  • “它不工作”是什么意思?发生了什么?任何错误信息等?您如何尝试在 Jena API 中运行查询?
  • 显示一些使用 Jena API 的代码会很有用。
  • 这是我用于此查询的 java 代码。

标签: sparql semantic-web jena virtuoso


【解决方案1】:

查看 ARQ 文档以获得聚合支持(我遇到过类似问题)

http://jena.apache.org/documentation/query/group-by.html

好像不支持

(count(?variable) as ?binding)

过去我也尝试过删除聚合投影周围的括号,即:

select count ( ?name ) AS ?total from < mygraph > where { ?name rdf:type foaf:Name}

但这是因为 Virtuoso 实际上对他们有意见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多