Ciao a tutti,
sapreste darmi una mano nell' effettuare una query sparql?
Io ho provato in questo modo ma niente:
StringBuffer sparqlQueryBuffer=new StringBuffer();
sparqlQueryBuffer.append(URLEncoder.encode("PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> SELECT ?istanze WHERE { ?istanze a dbpedia-owl:Game }", "UTF-8"));
sparqlQueryString = sparqlQueryBuffer.toString();
//A partire dalla stringa precedente creo la query vera e propria
Query query = null;
try{
query = QueryFactory.create(sparqlQueryString);
output.write(query.toString());
output.flush();
} catch(Exception e){
output.write("Eccezione nella creazione della query: " + sparqlQueryString);
output.flush();
e.printStackTrace(output);
}
//Executing SPARQL Query and pointing to the DBpedia SPARQL Endpoint
//Faccio eseguire la query ad ARQ
//Dovrei usare il metodo .createServiceRequest
QueryEngineHTTP qExec1 = QueryExecutionFactory.createServiceRequest("http://it.dbpedia.org/sparql", query); //Create a service request for remote execution over HTTP. The returned class, QueryEngineHTTP, allows various HTTP specific parameters to be set. ---> Creazione di una richiesta di servizio per l'esecuzione remota su HTTP. La classe restituita, QueryEngineHTTP, permette di impostare diversi parametri specifici HTTP.
//o il metodo .sparqlService?
//QueryExecution qExec2 = QueryExecutionFactory.sparqlService("http://it.dbpedia.org/sparql", query); //Create a QueryExecution that will access a SPARQL service over HTTP. ---> Creazione di un QueryExecution che accederà a un servizio SPARQL su HTTP.
//((QueryEngineHTTP)qExec2).addParam("timeout", "10000");
//Retrieving the SPARQL Query results
//Ottengo il risultato della query di tipo SELECT
ResultSet results = qExec1.execSelect();
ResultSetFormatter.out(System.out, results, query);
//Iterating over the SPARQL Query results
while (results.hasNext()) {
QuerySolution solN = results.nextSolution();
//Stampo uno per volta tutti i risultati della query
output.write(solN.toString());
output.flush();
}
//Libero le risorse legate all'oggetto della classe QueryExecution che sono state utilizzate per eseguire la query
qExec1.close();
Allora dando un'occhiata cosa mi suggerireste?
Attendo vostre notizie...a presto!!!
sapreste darmi una mano nell' effettuare una query sparql?
Io ho provato in questo modo ma niente:
StringBuffer sparqlQueryBuffer=new StringBuffer();
sparqlQueryBuffer.append(URLEncoder.encode("PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> SELECT ?istanze WHERE { ?istanze a dbpedia-owl:Game }", "UTF-8"));
sparqlQueryString = sparqlQueryBuffer.toString();
//A partire dalla stringa precedente creo la query vera e propria
Query query = null;
try{
query = QueryFactory.create(sparqlQueryString);
output.write(query.toString());
output.flush();
} catch(Exception e){
output.write("Eccezione nella creazione della query: " + sparqlQueryString);
output.flush();
e.printStackTrace(output);
}
//Executing SPARQL Query and pointing to the DBpedia SPARQL Endpoint
//Faccio eseguire la query ad ARQ
//Dovrei usare il metodo .createServiceRequest
QueryEngineHTTP qExec1 = QueryExecutionFactory.createServiceRequest("http://it.dbpedia.org/sparql", query); //Create a service request for remote execution over HTTP. The returned class, QueryEngineHTTP, allows various HTTP specific parameters to be set. ---> Creazione di una richiesta di servizio per l'esecuzione remota su HTTP. La classe restituita, QueryEngineHTTP, permette di impostare diversi parametri specifici HTTP.
//o il metodo .sparqlService?
//QueryExecution qExec2 = QueryExecutionFactory.sparqlService("http://it.dbpedia.org/sparql", query); //Create a QueryExecution that will access a SPARQL service over HTTP. ---> Creazione di un QueryExecution che accederà a un servizio SPARQL su HTTP.
//((QueryEngineHTTP)qExec2).addParam("timeout", "10000");
//Retrieving the SPARQL Query results
//Ottengo il risultato della query di tipo SELECT
ResultSet results = qExec1.execSelect();
ResultSetFormatter.out(System.out, results, query);
//Iterating over the SPARQL Query results
while (results.hasNext()) {
QuerySolution solN = results.nextSolution();
//Stampo uno per volta tutti i risultati della query
output.write(solN.toString());
output.flush();
}
//Libero le risorse legate all'oggetto della classe QueryExecution che sono state utilizzate per eseguire la query
qExec1.close();
Allora dando un'occhiata cosa mi suggerireste?
Attendo vostre notizie...a presto!!!