Итак, im делает простой запрос. Я хочу все uri/свойство/объект определенного dbpedia uri, например: http://dbpedia.org/resource/Roger_Federer. Проблема в том, что она возвращает только свойство этого, как мы видим на наборе результатов.Запрос Sparql не возвращает uri/объект
Класс:
public class SemanticCrawlerImpl implements SemanticCrawler {
public void search(Model graph, String resourceURI) {
graph.read(resourceURI);
// Create a new query
String queryString =
"SELECT ?url ?property ?object" +
"WHERE {" +
" <"+resourceURI+"> ?property ?object ." +
"}";
Query query = QueryFactory.create(queryString);
System.out.println("----------------------");
System.out.println("Query Result Sheet");
System.out.println("----------------------");
// Execute the query and obtain results
QueryExecution qe = QueryExecutionFactory.create(query, graph);
com.hp.hpl.jena.query.ResultSet results = qe.execSelect();
// Output query results
ResultSetFormatter.out(System.out, results, query);
qe.close();
}
}
Resultset
| url | property | objectWHERE |
=================================================================================
| | <http://dbpedia.org/property/medaltemplatesTitle> | |
| | <http://dbpedia.org/ontology/thumbnail> | |
| | <http://www.w3.org/2002/07/owl#sameAs> | |
| | <http://www.w3.org/2002/07/owl#sameAs> | |
| | <http://www.w3.org/2002/07/owl#sameAs> | |
| | <http://www.w3.org/2002/07/owl#sameAs> | |
| | <http://dbpedia.org/property/name> | |
| | <http://dbpedia.org/property/daviscupresult> | |
| | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | |
| | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | |
| | <http://dbpedia.org/property/hopmancupresult> | |
| | <http://dbpedia.org/ontology/wikiPageExternalLink> | |
| | <http://purl.org/dc/terms/subject> | |
| | <http://www.w3.org/2002/07/owl#sameAs> | |
| | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | |
| | <http://purl.org/dc/terms/subject> | |
| | <http://www.w3.org/2002/07/owl#sameAs> | |
| | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | |
| | <http://dbpedia.org/ontology/height> | |
| | <http://purl.org/dc/terms/subject> | |
| | <http://www.w3.org/2002/07/owl#sameAs> | |
| | <http://dbpedia.org/ontology/birthYear> | |
Конкатенация строк '? Object '+" WHERE' дает вам 'select? ObjectWHERE', и вы не используете переменную'? ObjectWHERE'. Запрос 'where' в запросах не является обязательным (т. Е. Вы можете написать' select? A? B {...} ', что позволит избежать проблемы. Но вы действительно должны использовать строки новой строки в строке запроса так или иначе, более строгие сообщения об ошибках синтаксиса для номеров строк. Кроме того, конкатенация строк, такая как '<" + resourceURI + ">', подвержена ошибкам, вместо этого вы должны использовать параметр ParameterizedSparqlString. –