public void extract_naive2() throws IOException {
		build_dicos();
		
		Tuple<Sentence_tree,String> st = build_next_sentence_tree();
		Hashtable<String, LinkedList<Triple<String,String,String>>> relations = new Hashtable<String,LinkedList<Triple<String,String,String>>>(); 
		while(st != null){
			for(int index = 0; index < st.get_x().get_children().length; index++){
				Sentence_tree current_root = st.get_x().get_children()[index];
				current_root.set_parent(null); // Remove the reference to the super root.
				LinkedList<Tuple<Sentence_tree,Tuple<String,String>>> good_subs = current_root.interesting_subtree(voc, subvoc);
				while(!good_subs.isEmpty()){
					Tuple<Sentence_tree,Tuple<String,String>> current = good_subs.pop();
					String keyword1 = current.get_y().get_x();
					String keyword2 = current.get_y().get_y();
					Hashtable<String, String> result = current.get_x().naive2_find_relation_not_root(keyword1, keyword2);
					if(result != null){
						LinkedList<Triple<String,String,String>> list;
						if(!relations.containsKey(result.get("rel"))){
							list = new LinkedList<Triple<String,String,String>>();
							list.add(new Triple<String,String,String>(result.get("suj"),result.get("obj"),st.get_y()));
						}
						else{
							list = relations.get(result.get("rel"));
							list.add(new Triple<String,String,String>(result.get("suj"),result.get("obj"),st.get_y()));
						}
						relations.put(result.get("rel"),list);
					}
				}
			}
			st = build_next_sentence_tree();
		}
		
		// print_extraction_method(relations); // <- for evaluation
		print_extraction_method_XML(relations); // <- to visualize the graph (XML format)
	}