// Path: src/main/java/edu/berkeley/nlp/entity/coref/ConjFeatures.java
// public enum ConjFeatures {
//   NONE, TYPE, TYPE_OR_RAW_PRON, TYPE_OR_CANONICAL_PRON, SEMCLASS_OR_CANONICAL_PRON, SEMCLASS_OR_CANONICAL_PRON_COORD,
//       NER_OR_CANONICAL_PRON, NERFINE_OR_CANONICAL_PRON, SEMCLASS_NER_OR_CANONICAL_PRON,
//       CUSTOM_OR_CANONICAL_PRON, CUSTOM_NER_OR_CANONICAL_PRON, CUSTOM_NERMED_OR_CANONICAL_PRON, CUSTOM_NERFINE_OR_CANONICAL_PRON;
// }


import edu.berkeley.nlp.entity.coref.ConjFeatures;
import edu.berkeley.nlp.entity.coref.ConjScheme;
import edu.berkeley.nlp.entity.coref.CorefPrunerJavaHack;
import edu.berkeley.nlp.entity.coref.CorefSystem;
import edu.berkeley.nlp.entity.lang.Language;
import edu.berkeley.nlp.futile.fig.basic.Option;
import edu.berkeley.nlp.futile.fig.exec.Execution;
import edu.berkeley.nlp.futile.util.Logger;
  @Option(gloss = "Analyses to print; see CorefEvaluator for details")
  public static String analysesToPrint = "";
  @Option(gloss = "Print an error analysis")
  public static boolean printErrorAnalysis = false;
  
  
  // MASK MAKING OPTIONS
  @Option(gloss = "")
  public static int maskNumFolds = 5;
  @Option(gloss = "")
  public static double maskLogRatio = 5;
  @Option(gloss = "Cutoff for coarse pass")
  public static String maskOutPath = "";
  
  // JOINT OPTIONS
  @Option(gloss = "Use fancy message passing")
  public static boolean useFancyMessagePassing = false;
  @Option(gloss = "Use fancy message passing")
  public static boolean includeExtraNodePasses = false;
  @Option(gloss = "Number of iterations to run BP for")
  public static int numBPItrs = 5;
  
  
  // JOINT NER OPTIONS
  @Option(gloss = "Use loss-augmentation for NER as well")
  public static boolean useNerLossFcn = true;
  @Option(gloss = "How much to loss-augment NER")
  public static double nerLossScale = 3.0;
  @Option(gloss = "Leave NER latent, don't incorporate it into objective function")
  public static boolean leaveNERLatent = false;
// Path: src/main/java/edu/berkeley/nlp/entity/coref/ConjFeatures.java
// public enum ConjFeatures {
//   NONE, TYPE, TYPE_OR_RAW_PRON, TYPE_OR_CANONICAL_PRON, SEMCLASS_OR_CANONICAL_PRON, SEMCLASS_OR_CANONICAL_PRON_COORD,
//       NER_OR_CANONICAL_PRON, NERFINE_OR_CANONICAL_PRON, SEMCLASS_NER_OR_CANONICAL_PRON,
//       CUSTOM_OR_CANONICAL_PRON, CUSTOM_NER_OR_CANONICAL_PRON, CUSTOM_NERMED_OR_CANONICAL_PRON, CUSTOM_NERFINE_OR_CANONICAL_PRON;
// }


// Path: src/main/java/edu/berkeley/nlp/entity/Driver.java
import edu.berkeley.nlp.entity.coref.ConjFeatures;
import edu.berkeley.nlp.entity.coref.ConjScheme;
import edu.berkeley.nlp.entity.coref.CorefPrunerJavaHack;
import edu.berkeley.nlp.entity.coref.CorefSystem;
import edu.berkeley.nlp.entity.lang.Language;
import edu.berkeley.nlp.futile.fig.basic.Option;
import edu.berkeley.nlp.futile.fig.exec.Execution;
import edu.berkeley.nlp.futile.util.Logger;

  @Option(gloss = "Analyses to print; see CorefEvaluator for details")
  public static String analysesToPrint = "";
  @Option(gloss = "Print an error analysis")
  public static boolean printErrorAnalysis = false;
  
  
  // MASK MAKING OPTIONS
  @Option(gloss = "")
  public static int maskNumFolds = 5;
  @Option(gloss = "")
  public static double maskLogRatio = 5;
  @Option(gloss = "Cutoff for coarse pass")
  public static String maskOutPath = "";
  
  // JOINT OPTIONS
  @Option(gloss = "Use fancy message passing")
  public static boolean useFancyMessagePassing = false;
  @Option(gloss = "Use fancy message passing")
  public static boolean includeExtraNodePasses = false;
  @Option(gloss = "Number of iterations to run BP for")
  public static int numBPItrs = 5;
  
  
  // JOINT NER OPTIONS
  @Option(gloss = "Use loss-augmentation for NER as well")
  public static boolean useNerLossFcn = true;
  @Option(gloss = "How much to loss-augment NER")
  public static double nerLossScale = 3.0;
  @Option(gloss = "Leave NER latent, don't incorporate it into objective function")
  public static boolean leaveNERLatent = false;
  @Option(gloss = "Feature set for the NER backbone")