Я реализую новый алгоритм машинного обучения в Java, который извлекает прототип структуры данных из набора структурированных наборов данных (древовидной структуры). Поскольку я разрабатываю общую библиотеку для этой цели, я сохранил свой дизайн независимо от конкретных представлений данных, таких как XML.Метаязык как BNF или XML-Schema для проверки дерева-экземпляра в дереве-модели
Теперь моя проблема заключается в том, что мне нужен способ определения модели данных, которая в основном представляет собой набор правил, описывающий допустимые деревья, с которыми сопоставляется набор деревьев. Я думал об использовании BNF или аналогичного диалекта.
В принципе, мне нужен способ для итерации пространства всех допустимых TreeNodes, определенных ModelTree (подобно поиску через пространство поиска для таких алгоритмов, как A *), чтобы я мог сравнивать свой набор конкретных деревьев с моделью. Я знаю, что мне придется иметь дело с бесконечными пространствами, но сначала сначала.
Я знаю, это довольно сложно (и мои предложения довольно ухабистые), но я был бы признателен за любые подсказки.
Спасибо заранее, Стефан