IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Afficher le résultat d'une requête SPARQL dans une interface


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Par défaut Afficher le résultat d'une requête SPARQL dans une interface
    Bonjour,

    J'ai besoin d'interroger mon ontologie alors je pense que je dois utiliser SPARQL.

    J'aimerais faire afficher le résultat dans une interface (JTextPane par exemple) au lieu de la console.

    Comment puis-je également poser plusieurs requêtes en même temps ?

    Voici le code que j'ai réussi à faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    import java.io.InputStream;
     
    import com.hp.hpl.jena.ontology.OntModel;
    import com.hp.hpl.jena.ontology.OntModelSpec;
    import com.hp.hpl.jena.query.Dataset;
    import com.hp.hpl.jena.query.DatasetFactory;
    import com.hp.hpl.jena.query.Query;
    import com.hp.hpl.jena.query.QueryExecution;
    import com.hp.hpl.jena.query.QueryExecutionFactory;
    import com.hp.hpl.jena.query.QueryFactory;
    import com.hp.hpl.jena.query.QuerySolution;
    import com.hp.hpl.jena.query.ResultSet;
    import com.hp.hpl.jena.query.ResultSetFormatter;
    import com.hp.hpl.jena.rdf.model.ModelFactory;
    import com.hp.hpl.jena.rdf.model.RDFNode;
    import com.hp.hpl.jena.util.FileManager;
    import com.hp.hpl.jena.vocabulary.RDF;
     
    public class Recupererinstance {
     
        private static Fenetre1 f;
        public static void main(String[] args){
            //charger le fichier de l'ontologie
        String monontologie=("F:/mastere/regle.owl");
            //creer un modele d'ontologie
             OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RDFS_INF);
             InputStream reader = FileManager.get().open(monontologie);
            if (reader == null) {
                throw new IllegalArgumentException("File: " + monontologie
                        + " not found"); }
     
            model.read(reader , "","RDF/XML");
            String rdfPrefix = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" ;
            String ontologyns="http://www.owl-ontologies.com/Ontology1400577325.owl#";
     
            /// nom de controlleur :
     
            String sparqlQuery = 
                    "PREFIX name:<http://www.owl-ontologies.com/Ontology1400577325.owl#>\n" +
                    "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n" +
                    "PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>\n" +
                    "PREFIX swrl:<http://www.w3.org/2003/11/swrl#>\n"+
                    "PREFIX swrlb:<http://www.w3.org/2003/11/swrlb#>\n"
     
                    +
                    "SELECT  ?y  \n" +
                    "WHERE {\n" +
                    "  ?y rdf:type name:homme" +
     
     
                    "} ";
     
               Query query = QueryFactory.create(sparqlQuery) ;
           Dataset dataset=DatasetFactory.create(model);
           QueryExecution qexec = QueryExecutionFactory.create(query,dataset) ;
               ResultSet resultset = qexec.execSelect() ;
     
     
               ResultSetFormatter.out(System.out,resultset,query) ;
     
             //Affichage du resultat
     
              while(resultset.hasNext()) {
     
            QuerySolution row = (QuerySolution)resultset.next();
     
            RDFNode  c= row.get("x");
            System.out.print(c.toString());
            f.pan.setText(resultset.toString());
     
        }}}
    Fentere1 est une autre classe contenant pan comme JTextPane(). J'essaie d'afficher le résultat en JTextPane mais malheureusement ça fonctionne pas.

    Quelqu'un saurait-il me guider un peu ?

    Merci d'avance pour votre aide.

  2. #2
    Membre actif Avatar de Schaublore
    Homme Profil pro
    Manuel
    Inscrit en
    Octobre 2014
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Manuel
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 61
    Par défaut
    Salut,

    Si la console affiche bien tes enregistrements via : System.out.print(c.toString());
    C'est que ton dernier enregistrement est vide. Et comme tu écrase le text du f.pan a chaque passage dans la boucle, le résultat est que rien ne s'affiche a la fin: "ça fonctionne pas"

    essay de construire ton text puis affecte le a JTextPane:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String text = "";
    while(resultset.hasNext()) {
            //...
            text += resultset.toString();
    }
    f.pan.setText(text);
    A+

  3. #3
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Par défaut
    Bonsoir et merci pour la réponse ,
    j'essaie avec votre solution mais malheureusement je trouve ces erreurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception in thread "main" java.lang.NullPointerException
    	at Recupererinstance.main(Recupererinstance.java:83)
    c'est au niveau de ce code:
    en exécutant la classe Fenetre1 dans JTextPane (pan) rien ne s'affiche)
    voici le code de l'appel du classe posté précédemment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    bouton.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent arg0)
    {
     
     
     new Recupererinstance();
    }
    }     );
    Merci beaucoup pour vos réponse

  4. #4
    Membre actif Avatar de Schaublore
    Homme Profil pro
    Manuel
    Inscrit en
    Octobre 2014
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Manuel
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 61
    Par défaut
    L'erreur vient peut être d'ici
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    private static Fenetre1 f;

    Essaye
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.print(f.pan);
    Au niveau
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    f.pan.setText(texte);

    Si ce n'est pas ca, je ne peu pas plus t'aider mon ami...

  5. #5
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Par défaut
    Merci. Malheureusement ça fonctionne pas.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 49
    Par défaut
    Tu as un NullPointer donc un objet n'est pas instancié : Fenetre1 n'est a aucun moment instancié (ou alors j ai raté la ligne).

    Avant même d'utiliser ta variable f, il faut faire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Jena] Affichage du résultat d'une requête SPARQL dans une page JSP
    Par info_dekh dans le forum Frameworks
    Réponses: 1
    Dernier message: 18/06/2012, 11h54
  2. Réponses: 1
    Dernier message: 12/12/2011, 10h07
  3. Réponses: 6
    Dernier message: 31/05/2010, 14h12
  4. erreur dans une requête sql dans une fonction php
    Par frboyer dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2009, 13h37
  5. [Requête] Utilisation d'une fonction perso dans une requête
    Par Julien Dufour dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/03/2007, 09h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo