@Override public void process(JCas jCas) throws AnalysisEngineProcessException { Map<Species, Integer> speciesCount = intDefaultMap(); for (LinnaeusSpecies sp : select(jCas, LinnaeusSpecies.class)) { // e.g. species:ncbi:9685 int speciesId = parseInt(sp.getMostProbableSpeciesId().substring( "species:ncbi:".length())); Species species = getOrElse(speciesMapping, speciesId, None); speciesCount.put(species, speciesCount.get(species) + 1); } DocumentSpecies docSpecies = new DocumentSpecies(jCas); if (!speciesCount.isEmpty()) { docSpecies .setFamilyName(keyOfHighestValue(speciesCount).toString()); } docSpecies.addToIndexes(); } }