我想获得sparql查询结果的总数。我在java中使用jena API。 count查询在virtuoso中工作,但它不能在java中使用jena api。
Sparql查询:
select ( count ( ?name ) AS ?total ) from < mygraph >
where { ?name rdf:type foaf:Name}
它不适用于jena 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 .....
答案 0 :(得分:2)
查看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实际上遇到了问题。