ArrayList<ApiConcept> apiConceptList = new ArrayList<ApiConcept>();
for (Annotation annotation : conceptAnnotationIndex)
{
Concept conceptAnnotation = (Concept) annotation;
ApiConcept apiConcept = new ApiConcept();
int begin = conceptAnnotation.getBegin();
int end = conceptAnnotation.getEnd();
String conceptText = contents.substring(begin, end);
apiConcept.setBegin(begin);
apiConcept.setEnd(end);
apiConcept.setText(conceptText);
apiConcept.setType(conceptAnnotation.getConceptType());
apiConcept.setExternalId(conceptAnnotation.getAddress());
apiConceptList.add(apiConcept);
}
// String conceptFilePath =
// currentTextFile.getAbsolutePath().replaceFirst("\\.txt$", ".con");
// File conceptFile = new File(conceptFilePath);
// logger.info(String.format(" - using concept file \"%s\"...",
// conceptFile.getName()));
// String conceptFileContents =
// StringHandling.readEntireContents(conceptFile);
// //List<Concept> parseConceptFileContents(conceptFileContents);
//
// LineTokenToCharacterOffsetConverter converter =
// new LineTokenToCharacterOffsetConverter(contents);
//
// List<ApiConcept> apiConceptList = parseConceptFile(conceptFile, contents,
// converter);
// LineTokenToCharacterOffsetConverter converter =
// new LineTokenToCharacterOffsetConverter(contents);
// SingleDocumentProcessor p = new SingleDocumentProcessor();
SingleDocumentProcessorCtakes p = new SingleDocumentProcessorCtakes();
p.setJcas(jcas);
p.setAssertionDecoderConfiguration(assertionDecoderConfiguration);
// p.setContents(tokenizedContents);
p.setContents(contents);
CharacterOffsetToLineTokenConverter converter = new CharacterOffsetToLineTokenConverterCtakesImpl(
jcas);
p.setConverter2(converter);
for (ApiConcept apiConcept : apiConceptList)
{
//logger
// .info(String.format("dir loader concept: %s", apiConcept.toString()));
p.addConcept(apiConcept);
}
logger
.debug("(logging statement) AssertionAnalysisEngine.process() BEFORE CALLING p.processSingleDocument()");
p.processSingleDocument();
logger
.debug("(logging statement) AssertionAnalysisEngine.process() AFTER CALLING p.processSingleDocument()");
Map<Integer, String> assertionTypeMap = p.getAssertionTypeMap();
//logger.info(String.format(" - done processing ..\"."));
// Map<Integer, Annotation> annotationMap = generateAnnotationMap(jcas,
// Concept.type);
CasIndexer<Annotation> indexer = new CasIndexer<Annotation>(jcas, null);
//logger.info("assertionTypeMap loop OUTSIDE BEFORE...");
for (Entry<Integer, String> current : assertionTypeMap.entrySet())
{
//logger.info(" assertionTypeMap loop INSIDE BEGIN");
String currentAssertionType = current.getValue();
//logger.info(String.format(" currentAssertionType: %s",
// currentAssertionType));
Integer currentIndex = current.getKey();
ApiConcept originalConcept = apiConceptList.get(currentIndex);
Concept associatedConcept = (Concept) indexer
.lookupByAddress(originalConcept.getExternalId());
int entityAddress = associatedConcept.getOriginalEntityExternalId();
IdentifiedAnnotation annotation = (IdentifiedAnnotation) indexer
.lookupByAddress(entityAddress);
// possible values for currentAssertionType: