2010-06-04 2 views
4

CONSTRUCT - альтернативное предложение результата SPARQL до SELECT. Вместо того, чтобы возвращать таблицу значений результата, CONSTRUCT возвращает граф RDF. Например, запуск этого запроса в следующем коде Java дает HttpException: 406 Unacceptable. Но если вместо блока CONSTRUCT я выбираю SELECT ?x, все в порядке. Поддерживает ли Йена CONSTRUCT, и если да, то как? Оба запроса приемлемы для DBpedia endpoint.Jena Sparql и конструкция

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

CONSTRUCT { 
    :France onto:anthem ?x 
} 

WHERE 
{ 
    :France onto:anthem ?x . 
} 
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); 

ответ

11

Jena поддерживает CONSTRUCT, но для получения результата нужно вызвать другой метод, потому что execSelect и ResultSet только для SELECT запросов. Используйте вместо этого:

Model results = qexec.execConstruct(); 
results.write(System.out, "TURTLE"); 

Model является интерфейс Jena для доступа к RDF-графов, см javadocs для деталей.

+0

работал отлично, метод записи делает всю работу за меня, ТНХ – blueomega

2

ResultSetFormatter.out (System.out, результаты запроса) не может найти символ и ошибки идентификатор ожидается в этой точке происходит

Смежные вопросы