@Override
  public Collection<String> getCliqueFeatures(PaddedList<IN> cInfo, int loc, Clique clique) {
    Collection<String> features = new HashSet<String>();

    boolean doFE = cInfo.get(0).containsKey(DomainAnnotation.class);
    String domain = (doFE ? cInfo.get(0).get(DomainAnnotation.class) : null);

//    System.err.println(doFE+"\t"+domain);

    if (clique == cliqueC) {
      //200710: tried making this clique null; didn't improve performance (rafferty)
      Collection<String> c = featuresC(cInfo, loc);
      addAllInterningAndSuffixing(features, c, "C");
      if (doFE) {
        addAllInterningAndSuffixing(features, c, domain+"-C");
      }
    } else if (clique == cliqueCpC) {
      Collection<String> c = featuresCpC(cInfo, loc);
      addAllInterningAndSuffixing(features, c, "CpC");
      if (doFE) {
        addAllInterningAndSuffixing(features, c, domain+"-CpC");
      }

      c = featuresCnC(cInfo, loc-1);
      addAllInterningAndSuffixing(features, c, "CnC");
      if (doFE) {
        addAllInterningAndSuffixing(features, c, domain+"-CnC");
      }
    } else if (clique == cliqueCp2C) {
      Collection<String> c = featuresCp2C(cInfo, loc);
      addAllInterningAndSuffixing(features, c, "Cp2C");
      if (doFE) {
        addAllInterningAndSuffixing(features, c, domain+"-Cp2C");
      }
    } else if (clique == cliqueCp3C) {
      Collection<String> c = featuresCp3C(cInfo, loc);
      addAllInterningAndSuffixing(features, c, "Cp3C");
      if (doFE) {
        addAllInterningAndSuffixing(features, c, domain+"-Cp3C");
      }
    } else if (clique == cliqueCp4C) {
      Collection<String> c = featuresCp4C(cInfo, loc);
      addAllInterningAndSuffixing(features, c, "Cp4C");
      if (doFE) {
        addAllInterningAndSuffixing(features, c, domain+"-Cp4C");
      }
    } else if (clique == cliqueCp5C) {
      Collection<String> c = featuresCp5C(cInfo, loc);
      addAllInterningAndSuffixing(features, c, "Cp5C");
      if (doFE) {
        addAllInterningAndSuffixing(features, c, domain+"-Cp5C");
      }
    } else if (clique == cliqueCpCp2C) {
      Collection<String> c = featuresCpCp2C(cInfo, loc);
      addAllInterningAndSuffixing(features, c, "CpCp2C");
      if (doFE) {
        addAllInterningAndSuffixing(features, c, domain+"-CpCp2C");
      }

      c = featuresCpCnC(cInfo, loc-1);
      addAllInterningAndSuffixing(features, c, "CpCnC");
      if (doFE) {
        addAllInterningAndSuffixing(features, c, domain+"-CpCnC");
      }
    } else if (clique == cliqueCpCp2Cp3C) {
      Collection<String> c = featuresCpCp2Cp3C(cInfo, loc);
      addAllInterningAndSuffixing(features, c, "CpCp2Cp3C");
      if (doFE) {
        addAllInterningAndSuffixing(features, c, domain+"-CpCp2Cp3C");
      }
    } else if (clique == cliqueCpCp2Cp3Cp4C) {
      Collection<String> c = featuresCpCp2Cp3Cp4C(cInfo, loc);
      addAllInterningAndSuffixing(features, c, "CpCp2Cp3Cp4C");
      if (doFE) {
        addAllInterningAndSuffixing(features, c, domain+"-CpCp2Cp3Cp4C");
      }
    }

    // System.err.println(StringUtils.join(features,"\n")+"\n");
    return features;
  }
@ Override public Collection < String > getCliqueFeatures ( PaddedList < IN > cInfo , int loc , Clique clique ) { Collection < String > features = new HashSet < String > ( ) ; boolean doFE = cInfo . get ( 0 ) . containsKey ( DomainAnnotation . class ) ; String domain = ( doFE ? cInfo . get ( 0 ) . get ( DomainAnnotation . class ) : null ) ; if ( clique == cliqueC ) { Collection < String > c = featuresC ( cInfo , loc ) ; addAllInterningAndSuffixing ( features , c , "C" ) ; if ( doFE ) { addAllInterningAndSuffixing ( features , c , domain + "-C" ) ; } } else if ( clique == cliqueCpC ) { Collection < String > c = featuresCpC ( cInfo , loc ) ; addAllInterningAndSuffixing ( features , c , "CpC" ) ; if ( doFE ) { addAllInterningAndSuffixing ( features , c , domain + "-CpC" ) ; } c = featuresCnC ( cInfo , loc - 1 ) ; addAllInterningAndSuffixing ( features , c , "CnC" ) ; if ( doFE ) { addAllInterningAndSuffixing ( features , c , domain + "-CnC" ) ; } } else if ( clique == cliqueCp2C ) { Collection < String > c = featuresCp2C ( cInfo , loc ) ; addAllInterningAndSuffixing ( features , c , "Cp2C" ) ; if ( doFE ) { addAllInterningAndSuffixing ( features , c , domain + "-Cp2C" ) ; } } else if ( clique == cliqueCp3C ) { Collection < String > c = featuresCp3C ( cInfo , loc ) ; addAllInterningAndSuffixing ( features , c , "Cp3C" ) ; if ( doFE ) { addAllInterningAndSuffixing ( features , c , domain + "-Cp3C" ) ; } } else if ( clique == cliqueCp4C ) { Collection < String > c = featuresCp4C ( cInfo , loc ) ; addAllInterningAndSuffixing ( features , c , "Cp4C" ) ; if ( doFE ) { addAllInterningAndSuffixing ( features , c , domain + "-Cp4C" ) ; } } else if ( clique == cliqueCp5C ) { Collection < String > c = featuresCp5C ( cInfo , loc ) ; addAllInterningAndSuffixing ( features , c , "Cp5C" ) ; if ( doFE ) { addAllInterningAndSuffixing ( features , c , domain + "-Cp5C" ) ; } } else if ( clique == cliqueCpCp2C ) { Collection < String > c = featuresCpCp2C ( cInfo , loc ) ; addAllInterningAndSuffixing ( features , c , "CpCp2C" ) ; if ( doFE ) { addAllInterningAndSuffixing ( features , c , domain + "-CpCp2C" ) ; } c = featuresCpCnC ( cInfo , loc - 1 ) ; addAllInterningAndSuffixing ( features , c , "CpCnC" ) ; if ( doFE ) { addAllInterningAndSuffixing ( features , c , domain + "-CpCnC" ) ; } } else if ( clique == cliqueCpCp2Cp3C ) { Collection < String > c = featuresCpCp2Cp3C ( cInfo , loc ) ; addAllInterningAndSuffixing ( features , c , "CpCp2Cp3C" ) ; if ( doFE ) { addAllInterningAndSuffixing ( features , c , domain + "-CpCp2Cp3C" ) ; } } else if ( clique == cliqueCpCp2Cp3Cp4C ) { Collection < String > c = featuresCpCp2Cp3Cp4C ( cInfo , loc ) ; addAllInterningAndSuffixing ( features , c , "CpCp2Cp3Cp4C" ) ; if ( doFE ) { addAllInterningAndSuffixing ( features , c , domain + "-CpCp2Cp3Cp4C" ) ; } } return features ; }
Extracts all the features from the input data at a certain index.

@param cInfo The complete data set as a List of WordInfo
@param loc  The index at which to extract features.