Плохо знаком с теорией графов, поэтому формулировка задачи будет на примере зависимостей пакетов.
- Пусть имеется дерево зависимостей, записанное в таком или подобном виде:
Например:
пакет {перечисление пакетов от которых зависит данный}
A {B,C} B {C} C {}
- Нужно получить другое дерево, включающее для каждого пакета только такие зависимости, которые не являются зависимостями его зависимостей:
A {B} B {C} C {}
- И далее преобразовать получившееся в синтаксис DOT:
A <- B B <- C
Вопрос: имеет ли это преобразование какое-нибудь название в теории графов, и есть ли какая-нибудь готовая программа CLI, которая умеет решать подобную задачу. Речь не идёт о программах для визуализации зависимостей настоящих пакетов ПО, а о программах преобразования, принимающих на вход текстовый поток в данном формате или в формате DOT. Писать алгоритм тоже не прошу, сам с удовольствием подумаю, если ничего готового нет.