Я разработал это решение.
- Перед выводом создайте списки в памяти.Это просто, потому что элементы могут быть легко идентифицированы.
- Создание узлов RETE для первых m правил, которым не требуется конструкция "loop"
Поместить действие в последний узел:
- Добавить новые узлы Rete (альфа + бета) для соответствующего списка (вы всегда будете знать, какие именно, поскольку это одно из «статических» правил)
- Поместить соответствующие WME во вновь созданные альфа-памяти
- Активировать бета-узлы
Вероятно, можно удалить всю "динамическую" ветвь после выполнения последнего действия.