По поводу UIMA, посмотрел, в общем-то логика работы ясна
Создать интерфейс который возвращает набор объектов, (слова, предложения, сущности, языки и т д), то есть по сути просто набор объектов с тегами, чем объект является "предложением", "ner” или т д
И все это приходит в итоге из разных источников одной пачкой
Но, вот напрмер, я хочу сделать по всему итоговому набору объектов следующий запрос
"Взять все ner типа "Организация", взять все соседние ner типа "Дата", которые находятся не дальше 3 слов от Организации, и добавить эту дату в свойства Организации, как дату основания этой самой организации.
В таком случае, опять же, могут быть найдены более одной даты рядом с Организацией, либо несколько организаций будут подходить под это условия для данной даты
А требуется взять, например самую ближайшую из стоящих рядом, либо как-то по другому разрешать данную ситуацию, например предоставив пользователю самому переопределить метод, который бы возвращал одну из выделенных сущностей
Также могут быть кейсы, в которых может быть запрошено не только два типа сущностей ("Дату" и "Организацию"), а еще и например типы поставляемых продуктов данной организации.
В таком случае уже появится три группы, каждая из которых может иметь по несколько вариантов сущностей которые стоят рядом.
В UIMA таких функций, не предусмотрено...