Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    7

    Problema con query sparql e jena

    Ciao a tutti,
    sapreste darmi una mano nell' effettuare una query sparql con jena?
    Io ho provato in questo modo ma niente:

    codice:
    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!!!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non conosco né sparql, né jena... ma di una cosa sono sicuro: se dici solamente "Io ho provato in questo modo ma niente", senza dare ulteriori informazioni su quel "niente", difficilmente qualcuno ti potrà aiutare.

    "Niente" significa che la query non dà i risultati sperati?
    "Niente" significa che la query non viene proprio eseguita?
    "Niente" significa che il programma va in errore?
    "Niente" significa che hai qualche eccezione?

    Stai usando correttamente la gestione delle eccezioni: bene, verifica se vengono sollevate delle eccezioni, se ce ne sono prova a valutare quello che ti dicono e/o, quantomeno, postane qui lo stackTrace. E' fondamentale controllare le eccezioni.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    7
    Praticamente la query non viene proprio eseguita ed in particolare presumo che l'esecuzione si blocchi all'istruzione:
    query = QueryFactory.create(sparqlQueryString);

    perché l'istruzione successiva (output.write(query.toString()) non mi visualizza niente.
    Inoltre penso che non si generi nessuna eccezione in quanto neanche l'istuzione
    output.write("Eccezione nella creazione della query: " + sparqlQueryString); mi visualizza nulla.

    Allora avete qualche suggerimento?

    Grazie, a presto

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.