Affichage sous forme d'un arbre

Fermé
chochaki Messages postés 1 Date d'inscription vendredi 27 mai 2016 Statut Membre Dernière intervention 27 mai 2016 - Modifié par KX le 27/05/2016 à 22:24
Bonjour , je veux afficher mon résultat de ce programme sous forme d'un arbre je veux un coup de main pour terminer mon travail et merci d'avance
Voici mon code
import static com.hp.hpl.jena.assembler.JA.Model;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.NodeIterator;
import com.hp.hpl.jena.rdf.model.Statement;
import com.hp.hpl.jena.rdf.model.StmtIterator;
import com.hp.hpl.jena.util.FileManager;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 *


* @author amine

*/
public class NewClasse {
    public static void main(String[] args) {
      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();
       /*  System.out.println("List of Object");
         while(nit.hasNext()){
             RDFNode rDFNode = nit.next();
             System.out.println(rDFNode.toString());
         }
         System.out.println("List ofSubject");
         ResIterator ri = m.listSubjects();
          while(ri.hasNext()){
             Resource resource = ri.next();
             System.out.println(resource.getLocalName());
         }*/
         List<String> lclass = new ArrayList<>();
         Map<String,List<String>> map = new HashMap<>();
          StmtIterator si = m.listStatements();
          while(si.hasNext()){
              Statement statement = si.next();
           /* System.out.println("Subject : "+statement.getSubject().getLocalName()+" Predicat:"+
                      statement.getPredicate().getLocalName()+" Object:"+statement.getObject().toString());*/
            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())  ;
                  }
              }
          }
          System.out.println("Les classes:");
          for(String classe:lclass){
              System.out.println(classe);
          }
          System.out.println("Les classe et les sous classes:");
          for(String l : map.keySet()){
              System.out.println("Classe mere : "+l);
              for(String s:map.get(l)){
                  System.out.println("   Classe fils:"+s);
                 
                  
              }
          }    }
}

p.s ce programme marche avec jdk8 et version jena 3