Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Jena e DBpedia

  1. #1

    Jena e DBpedia

    Salve a tutti, sto cercando qualcuno che mi chiarisca le idee sull'interrogazione di DBpedia tramite Jena. Sono riuscito ad interrogare DBpedia tramite endpoint sparql...Ma vorrei manipolare il grafo..per esempio vorrei vedere quanto sono distanti due risorse all'interno del grafo di dbpedia...é possibile?

  2. #2

    Moderazione

    Le discussioni relative a Java non sono trattate qui, ma nell'apposita sottosezione.

    Provvedo a spostare il thread.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    7
    Quote Originariamente inviata da blinkettaro Visualizza il messaggio
    Salve a tutti, sto cercando qualcuno che mi chiarisca le idee sull'interrogazione di DBpedia tramite Jena. Sono riuscito ad interrogare DBpedia tramite endpoint sparql...Ma vorrei manipolare il grafo..per esempio vorrei vedere quanto sono distanti due risorse all'interno del grafo di dbpedia...é possibile?
    Ciao, anch'io sono al primo approccio con DBpedia e volevo chiederti: saresti così gentile da passarmi il codice per sottoporre query sparql all'endpoint di dbpedia?
    Ho fatto diverse prove ma non mi funzionano mai...
    Grazie, a presto

  4. #4
    Quote Originariamente inviata da V@ny Visualizza il messaggio
    Ciao, anch'io sono al primo approccio con DBpedia e volevo chiederti: saresti così gentile da passarmi il codice per sottoporre query sparql all'endpoint di dbpedia?
    Ho fatto diverse prove ma non mi funzionano mai...
    Grazie, a presto
    codice:
        public void queryService(String sparqlQueryString,String[]solutionConcept) throws IOException {
            query = QueryFactory.create(sparqlQueryString);
            qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql",query);
    
    
             try{
               ResultSet results = qexec.execSelect();
                for(; results.hasNext();) {
                 QuerySolution soln = results.nextSolution();
                 for(int i=0;i<solutionConcept.length;i++){
                     System.out.print(solutionConcept[i]+":"+soln.get(solutionConcept[i]).toString() +";  "); 
                 }
                 System.out.println("\n");
                 }
                } finally{
                qexec.close();
                
            }
    Ultima modifica di MItaly; 16-10-2013 a 02:05 Motivo: Aggiunti tag CODE

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    7
    Quote Originariamente inviata da blinkettaro Visualizza il messaggio
    codice:
        public void queryService(String sparqlQueryString,String[]solutionConcept) throws IOException {
            query = QueryFactory.create(sparqlQueryString);
            qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql",query);
    
    
             try{
               ResultSet results = qexec.execSelect();
                for(; results.hasNext();) {
                 QuerySolution soln = results.nextSolution();
                 for(int i=0;i<solutionConcept.length;i++){
                     System.out.print(solutionConcept[i]+":"+soln.get(solutionConcept[i]).toString() +";  "); 
                 }
                 System.out.println("\n");
                 }
                } finally{
                qexec.close();
                
            }
    sostanzialmente è molto simile al mio:
    codice:
    StringBuffer sparqlQueryBuffer=new StringBuffer();
            sparqlQueryBuffer.append(URLEncoder.encode("PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> SELECT ?istanze WHERE { ?istanze a dbpedia-owl:" + classi[classeCasuale] + " }", "UTF-8"));
            sparqlQueryString = sparqlQueryBuffer.toString();
            
            //A partire dalla stringa precedente creo la query vera e propria
            Query query = null;
            try{
                query = QueryFactory.create(sparqlQueryString); //GRAVE: quest'istruzione sembra che non faccia nulla perché le 2 istruzioni successive non mi visualizzano nulla
                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();
    ma perché a me non mi funziona?
    Dando un'occhiata al mio codice sai dirmi cosa c'è che non va?
    Ovviamente rivolgo la domanda a chiunque altro legga questo messaggio! Rispondete pure, non preoccupatevi se vi intromettete nella conversazione!
    Comunque gentilmente potresti mostrarmi l'intero tuo codice funzionante?
    Grazie, a presto!

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.