Jena Sparql和构造

blu*_*ega 4 sparql jena dbpedia

CONSTRUCT是一个替代的SPARQL结果子句SELECT.而不是返回结果值表,CONSTRUCT返回RDF图.例如,在以下Java代码中运行此查询会产生一个HttpException: 406 Unacceptable.但是,如果不是CONSTRUCT块,我选择SELECT ?x,它就好了.耶拿支持CONSTRUCT,如果支持,怎么样?这两个查询都可以被DBpedia端点接受.

PREFIX : <http://dbpedia.org/resource/>
PREFIX onto: <http://dbpedia.org/ontology/>

CONSTRUCT { 
    :France onto:anthem ?x
}

WHERE
{
  :France onto:anthem ?x .
}
Run Code Online (Sandbox Code Playgroud)
Query query = QueryFactory.create("the query goes here");
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql",     query);
ResultSet results = qexec.execSelect();  
ResultSetFormatter.out(System.out, results, query);
Run Code Online (Sandbox Code Playgroud)

cyg*_*gri 11

Jena支持CONSTRUCT,但要获得结果,您需要调用不同的方法,因为execSelect并且ResultSet仅用于SELECT查询.请改用:

Model results = qexec.execConstruct();
results.write(System.out, "TURTLE");
Run Code Online (Sandbox Code Playgroud)

Model是Jena用于访问RDF图的界面,有关详细信息,请参阅javadocs.