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.