Bonjour, j'ai créé une ontologie et maintenant je suis en phase d'interrogation.
pour cela j'utilise SPARQL.
J'ai besoin d'afficher le résultat de ma requête SPARQL dans un (Jtable) après quelques recherches je constate que c'est comme en SQL c'est en utilisant Resultset().
j'ai réussi enfin à créer mon programme mais lorsque je l'exécute le tableau ne s'affiche pas et le résultat est affiché seulement en console.
je vous donne mon code peut-être vous trouvez ou êtes ma faute.
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
 
import java.awt.BorderLayout;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.InputStream;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import org.apache.jena.ontology.OntModel;
import org.apache.jena.ontology.OntModelSpec;
import org.apache.jena.query.Dataset;
import org.apache.jena.query.DatasetFactory;
import org.apache.jena.query.Query;
import org.apache.jena.query.QueryExecution;
import org.apache.jena.query.QueryExecutionFactory;
import org.apache.jena.query.QueryFactory;
import org.apache.jena.query.QuerySolution;
import org.apache.jena.query.ResultSet;
import org.apache.jena.query.ResultSetFormatter;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.rdf.model.RDFNode;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.util.FileManager;
 
public class Tableinitial extends JFrame  {
 
	private static final long serialVersionUID = 1L;
 
		private final static Font POLICE_TEXTE1 = new Font("Times New Roman", Font.BOLD, 18);
	private static final int HGAP = 10; // 5 pour espacement horizontal	
	private static final int VGAP = 10; // 5 pour espacement vertical
 
	static final JTextPane pane=new JTextPane();
	 DefaultTableModel model;
	 public static final  JScrollPane scroll=new JScrollPane();
	 static JTable tableau =null;
 
	protected static final Query sparqlQuery = null;
		private JPanel container = new JPanel();
 
	private static JTextField textbox1;
 
    public static JTextField getTextbox1() {
        return textbox1;
    }
     public void setTextbox1(JTextField textbox1) {
        this.textbox1 = textbox1;
    }
		private JTextArea grandeZone;
		public Tableinitial() {
		this.setTitle("");
		this.setSize(700, 445);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);
		this.setContentPane(container);
 this.setVisible(true);
 		createContent(container);
			}
 	private  void createContent(JPanel panel) {
 		panel.setLayout(new BorderLayout(HGAP, VGAP)); 
		add(creerBoutons(),BorderLayout.EAST);
 
		add(creerTexte(),BorderLayout.CENTER);
		}
	private   JComponent  creerTexte() {
		JPanel pan = new JPanel(); 
	pan.setLayout(new BorderLayout(HGAP, VGAP)); 
	pan.add(scroll,BorderLayout.CENTER);
 
	textbox1 = new JTextField();
 
	 textbox1 .setHorizontalAlignment(JTextField.CENTER);
	 textbox1.setFont(POLICE_TEXTE1);
    pan.add(textbox1,BorderLayout.NORTH);
 
	return pan ;
	}
private  JComponent creerBoutons() {
	JPanel Panel = new JPanel(); 
    Panel.setLayout(new BorderLayout(10,10));
    final JButton btnbrouse = new JButton("Request");
     btnbrouse.setHorizontalAlignment(JButton.CENTER);
         btnbrouse.addActionListener(new ActionListener()
	    {
            public void actionPerformed(ActionEvent arg0)
               {
 
            	try{
    	request("D:/university.owl");
              		            			            	}
        		catch(Throwable e){	System.out.println("An error occured"); e.printStackTrace();}
 
       	    }  }   );
 
     Panel.setLayout(new BorderLayout(10,10));
     Panel.add(btnbrouse, BorderLayout.NORTH);
    return(Panel);
}
public static void request (String name) {
 
	String keyword = getTextbox1().getText();
 
		     InputStream in = FileManager.get().open("D:/university.owl");
    if (in == null) {
        throw new IllegalArgumentException( "File: " +  "D:/university.owl" + " not found");
    }
	    	         OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RDFS_INF);
 
   model.read(in , "","RDF/XML");
 
	 try{
 
		 if (keyword.contains("Students and their school"))    	
		{
			 String sparqlQuery = 
    	         	  "PREFIX :<http://www.semanticweb.org/hp/ontologies/2016/6/untitled-ontology-45#>\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 ?Students  ?School " +
		              "WHERE {\n" +
		                "?Students rdf:type :Personne.\n" +
		                "?Students :go-to ?School.\n" +
		                "?School rdf:type :school.\n" +
 
		                 "} ";
 
    	         Query query = QueryFactory.create(sparqlQuery) ;
    	        Dataset dataset=DatasetFactory.create(model);
    	         QueryExecution qexec = QueryExecutionFactory.create(query,dataset) ;
    	             ResultSet resultset = qexec.execSelect() ;
    	            System.out.println(ResultSetFormatter.asText(resultset));
 
    	           while(resultset.hasNext())
    	          {
    	              QuerySolution sol =resultset.nextSolution();
    	              Resource Students = sol.getResource("Students"); 
    	              Resource School = sol.getResource("School");
 
    	              DefaultTableModel model1 = (DefaultTableModel) tableau.getModel();
    	              model1.addRow(new Object[]{Students, School});
    	              tableau = new JTable(model1);
    	          }
    	     	scroll.setBounds(20,20,700,400);
    				scroll.setViewportView(tableau);
		}	
		 }
 
	 catch(Throwable e){	System.out.println("an error occured"); e.printStackTrace();}			
	}
		public static void main(String[] args) throws IOException {
		Tableinitial ac = new Tableinitial();
		ac.setVisible(true);
	}
	}
je me sens que c'est une question bête, je suis désolé mais je suis débutante en java et aussi en SPARQL .
lors de l'affichage j'aime avoir une interface comme dans la figure suivante
Merci beaucoup pour votre aide
Nom : fig2.PNG
Affichages : 215
Taille : 15,4 Ko