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:
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.