OpenRDF / Sesame不提供模型

时间:2015-01-27 15:56:13

标签: java rdf sesame

我使用的是FUSEKI,现在改为OpenRDF / Sesame。

一切正常,我只有一个问题。 在一种方法中,我需要在模型中返回我的repositori的完整数据库。方法如下所示:

  private static Model getRepositoryModel() throws ResourceRepositoryException{
  String queryString = "DESCRIBE * WHERE {?r ?s ?p}";
  Model currentModel = QueryExecuter.executeSparqlDescribeQuery(queryString);
  return currentModel; }

public static Model executeSparqlDescribeQuery(String queryString) throws ResourceRepositoryException {
Model resultModel = null;
try{
  QueryExecution qe = QueryExecutionFactory.sparqlService(SESAME_SERVICE_QUERY, queryString);
  resultModel = qe.execDescribe();
} catch(QueryExceptionHTTP | QueryParseException e){
  throw new ResourceRepositoryException(e.getMessage());
}
correctNsPrefixes(resultModel);
return resultModel;}

但我实际上并没有得到一个模特。但是在SPARQL中,如果调用此方法,则必须返回一个。它也与FUSEKI合作。

1 个答案:

答案 0 :(得分:1)

根据您的评论我收集到您正在使用Jena查询远程芝麻服务器(之前不清楚这是您正在做的事情,我最初认为您已经将自己的客户端代码切换为使用芝麻同样,但发布了错误/旧代码)。虽然这是一个稍微不同寻常的设置(大多数人使用Sesame Server也使用Sesame API实际查询/访问它),但它当然应该是可能的。

然而,显然,您使用的是Sesame SPARQL端点URL:

http://localhost:8080/openrdf-workbench/repositories/test 

(假设您的存储库名为' test')。

这不是正确使用的网址。 应该

http://localhost:8080/openrdf-sesame/repositories/test 

注意区别:不是" openrdf- 工作台",但" openrdf- 芝麻"。

工作台是Sesame Server的客户端UI,旨在用作SPARQL端点本身。如果你将它用于SELECT查询它显然有效的事实只是一个不幸的副作用。它不打算这样使用。