Rdf和Taxonomie

时间:2016-06-01 19:48:45

标签: java

我想将此程序的结果显示为树。我需要一只手来完成我的工作,并提前感谢你。

该程序适用于JDK 8和版本3 jena。这是我的代码:

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
         jTextArea1.setText("");
         Model model = ModelFactory.createDefaultModel();
          InputStream in = FileManager.get().open("C:/Users/SAMSUNG/Desktop/WICM2/projet/opus_august2007.rdf");
          Model m = model.read(in,null);
          NodeIterator nit = m.listObjects();
          List<String> lclass = new ArrayList<>();
          Map<String,List<String>> map = new HashMap<>();
           StmtIterator si = m.listStatements();
           while(si.hasNext()){
               Statement statement = si.next();
             if(statement.getPredicate().getLocalName().equalsIgnoreCase("subClassOf")){
                 String mere = statement.getObject().toString();
                 String fils = statement.getSubject().getLocalName();
                 if(map.containsKey(mere)){
                     List<String> l = map.get(mere);
                     l.add(fils);
                     map.replace(mere, l);
                 }else{
                     List<String> l = new ArrayList<>();
                     l.add(fils);
                     map.put(mere, l);
                 }
             }
               if(statement.getObject().isResource() && statement.getPredicate().getLocalName().equalsIgnoreCase("type")){
                   if(!lclass.contains(statement.getSubject().getLocalName())){
                     lclass.add(statement.getSubject().getLocalName())  ;
                   }
               }
           }
           jTextArea1.append("Les classes:\n");
           for(String classe:lclass){
               jTextArea1.append(classe+"\n");
           }
           jTextArea1.append("Les classe et les sous classes:\n");
           for(String l : map.keySet()){
               jTextArea1.append("Classe mere : "+l+"\n");
               for(String s:map.get(l)){
                   jTextArea1.append("   Classe fils:"+s+"\n");


               }
           }
    }

这是我程序的输出: enter image description here

我希望jTree中的输出像这样: enter image description here

或者java gui中的一个简单的树程序就可以了。感谢

0 个答案:

没有答案