public Sentence PPDtoUnits(String sentence) throws JNETException {
    String[] tokens = sentence.trim().split("[\t ]+");
    String features[];
    String label, word;
    String featureName; // name of feature for units given by featureConfig
    Unit unit;
    HashMap<String, String> metas; // will contain all known meta datas of
    // a token
    ArrayList<Unit> units = new ArrayList<Unit>();
    String[] trueMetas = Utils.getTrueMetas(featureConfig);

    for (int i = 0; i < tokens.length; i++) {
      metas = new HashMap<String, String>();

      features = tokens[i].split("\\|+");

      word = features[0];
      label = features[features.length - 1];

      if (trueMetas.length + 2 != features.length) {
        System.err
            .println("Error in input format (PipedFormat)! Mal-formatted sentence: "
                + sentence + "\n token: " + tokens[i]);
        System.err
            .println("Perhaps your configuration file uses more or less meta datas as are available in your input files? "
                + "If you don't use a config file, you should check whether your input files fit to the default configuration.");
        System.exit(-1);
      }

      for (int j = 0; j < trueMetas.length; j++) {
        int position = Integer.parseInt(featureConfig
            .getProperty(trueMetas[j] + "_feat_position"));
        featureName = featureConfig.getProperty(trueMetas[j]
            + "_feat_unit");
        if (!features[position].equals(featureConfig
            .getProperty("gap_character"))) {
          metas.put(featureName, features[position]);
        }
      }

      unit = new Unit(0, 0, word, label, metas);
      units.add(unit);
    }
    return new Sentence(units);
  }