Хорошо, попробую сказать по другому.
Есть то самое выражение, которое описывает правило.
По этому выражению пробегает парсер и строит дерево, в качестве ноды у этого дерева — структура (запись), которая может быть нескольких типов (например оператор или параметр).
Теперь мне нужно это дерево отобразить на экране, но не ввиде TreeView (это слишком просто для программиста и не понятно для обывателя), а ввиде древоидной структуры.
И не просто отобразить, а дать пользователю возможность мышкой двигать объекты (ноды), определять связи и естественно добалять/править/удалять ноды.
Ну и в конце, после манипуляций пользователя, заново построить выражение-правило. (собственно, это тоже не сложно).