private final void addSiblingFeatures(DependencyInstance instance,
					  int ch1, int ch2,
					  boolean isST,
					  FeatureVector fv) {

	String[] forms = instance.forms;
	String[] pos = instance.postags;
		
	// ch1 is always the closes to par
	String dir = ch1 > ch2 ? "RA" : "LA";
		
	String ch1_pos = isST ? "STPOS" : pos[ch1];
	String ch2_pos = pos[ch2];
	String ch1_word = isST ? "STWRD" : forms[ch1];
	String ch2_word = forms[ch2];

	add("CH_PAIR="+ch1_pos+"_"+ch2_pos+"_"+dir,1.0,fv);
	add("CH_WPAIR="+ch1_word+"_"+ch2_word+"_"+dir,1.0,fv);
	add("CH_WPAIRA="+ch1_word+"_"+ch2_pos+"_"+dir,1.0,fv);
	add("CH_WPAIRB="+ch1_pos+"_"+ch2_word+"_"+dir,1.0,fv);
	add("ACH_PAIR="+ch1_pos+"_"+ch2_pos,1.0,fv);
	add("ACH_WPAIR="+ch1_word+"_"+ch2_word,1.0,fv);
	add("ACH_WPAIRA="+ch1_word+"_"+ch2_pos,1.0,fv);
	add("ACH_WPAIRB="+ch1_pos+"_"+ch2_word,1.0,fv);

	int dist = Math.max(ch1,ch2)-Math.min(ch1,ch2);
	String distBool = "0";
	if(dist > 1)
	    distBool = "1";
	if(dist > 2)
	    distBool = "2";
	if(dist > 3)
	    distBool = "3";
	if(dist > 4)
	    distBool = "4";
	if(dist > 5)
	    distBool = "5";
	if(dist > 10)
	    distBool = "10";		
	add("SIB_PAIR_DIST="+distBool+"_"+dir,1.0,fv);
	add("ASIB_PAIR_DIST="+distBool,1.0,fv);
	add("CH_PAIR_DIST="+ch1_pos+"_"+ch2_pos+"_"+distBool+"_"+dir,1.0,fv);
	add("ACH_PAIR_DIST="+ch1_pos+"_"+ch2_pos+"_"+distBool,1.0,fv);
				
    }