public FeatureVector extract(String idref)
			throws IDrefNotInSentenceException, RootNotInPathException, FeatureValueNotCalculatedException {
		FeatureVector fv = new FeatureVector();
		if (FeatureTypes.isUsedFeatureType("target"))
			fv.addFeature("target", extractTarget());
		if (FeatureTypes.isUsedFeatureType("synCat"))
			fv.addFeature("synCat", extractSyntacticalCategory(idref));
		if (FeatureTypes.isUsedFeatureType("position"))
			fv.addFeature("position", extractPosition(idref));
		//fv.addFeature("path", extractPath(idref));
		if (FeatureTypes.isUsedFeatureType("path") || FeatureTypes.isUsedFeatureType("funcPath"))
			extractPath(idref, fv);
		if (FeatureTypes.isUsedFeatureType("head"))
			fv.addFeature("head", extractHead(idref));
		if (FeatureTypes.isUsedFeatureType("terminal"))
			fv.addFeature("terminal", sentence.getNode(idref).isTerminal() ? "1" : "0");
		if (FeatureTypes.isUsedFeatureType("nextHead"))
			fv.addFeature("nextHead", extractNextHead(idref));

		return fv;
	}