Использование Jena для создания SPARQL-запроса на DBpedia - PullRequest
9 голосов
/ 15 февраля 2010

Я пытаюсь создать SPARQL-запрос, используя Jena для запроса DBpedia.

Запрос работает, когда я использую его с автономными инструментами (Twinkle), но когда я подключаю его к этому Java-коду, возвращается пустой набор.

String sparqlQueryString1 = "PREFIX dbont: <http://dbpedia.org/ontology/> " +
        "PREFIX dbp: <http://dbpedia.org/property/>" +
        "PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>" +
        "   SELECT ?musician  ?place" +
        "   FROM<http://dbpedia.org/resource/Daphne_Oram>" +
        "   WHERE { " +
        "       ?musician dbont:birthPlace ?place ." +
        "   }";

Query query = QueryFactory.create(sparqlQueryString1);
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query);

ResultSet results = qexec.execSelect();
ResultSetFormatter.out(System.out, results, query);       

qexec.close() ;

Есть идеи, что я делаю не так?

1 Ответ

10 голосов
/ 15 февраля 2010

Проблема в вашем предложении FROM <...>. Убери это и все хорошо. С этим условием я подозреваю, что конечная точка ограничивает запрос графом с таким именем, но такого графа не существует и, следовательно, нет результата.

Смущает то, что запрос работает в форме на http://dbpedia.org/sparql. Однако там установлен URI графа по умолчанию, поэтому запрос проходит и по этому графику. Очистите его, и запрос не работает. В качестве альтернативы вы можете установить его для получения удаленных данных. Это тянет в названном рдф, который упоминает три места рождения.

Если вы пытаетесь найти место рождения этого музыканта, используйте:

{ <http://dbpedia.org/resource/Daphne_Oram> dbont:birthPlace ?place . }
...