public Communication convertToConcrete() { if (comm != null) return comm; AnalyticUUIDGeneratorFactory f = new AnalyticUUIDGeneratorFactory(); AnalyticUUIDGenerator g = f.create(); comm = new Communication(); comm.setId(id); comm.setUuid(g.next()); comm.setType(communicationType); comm.setMetadata(Conll2011.META_GENERAL); // Tokenization for the words // TokenTagging for the POS tags // Parse for the constituency parse // TokenTagging for NER labels String sectionNum = null; Section section = null; for (Conll2011Sentence sent : sentences) { if (sectionNum == null || !sent.getPart().equals(sectionNum)) { if (section != null) comm.addToSectionList(section); section = new Section(); section.setUuid(g.next()); section.setKind(Conll2011.SECTION_TYPE); sectionNum = sent.getPart(); } section.addToSentenceList(sent.convertToConcrete(g)); } assert section != null; comm.addToSectionList(section); // SituationMentionSet for the SRL labels propBankSrlSituationMentions = new SituationMentionSet(); propBankSrlSituationMentions.setUuid(g.next()); propBankSrlSituationMentions.setMetadata(Conll2011.META_SRL); propBankSrlSituationMentions.setMentionList(new ArrayList<>()); for (Conll2011Sentence s : sentences) { for (int pai = 0; pai < s.getNumPredicates(); pai++) { SituationMention sm = s.getPredArg(pai, g); assert sm.getTokens() != null || sm.getConstituent() != null; propBankSrlSituationMentions.addToMentionList(sm); } } comm.addToSituationMentionSetList(propBankSrlSituationMentions); // EntitySet and EntityMentionSet for the coref labels addCoref(comm); // EntityMentionSet for the NER labels if (this.conll2011.addNerAsEntityMentionSet) { nerEms = new EntityMentionSet(); nerEms.setUuid(g.next()); nerEms.setMetadata(Conll2011.META_NER); nerEms.setMentionList(new ArrayList<>()); for (Conll2011Sentence s : sentences) for (EntityMention em : s.getNerEntityMentions()) nerEms.addToMentionList(em); comm.addToEntityMentionSetList(nerEms); } return comm; }