![Correction: bottom yellow node is P2](https://i.stack.imgur.com/1X3d7.png)
[Исправление: нижний желтый узел - P2]
Привет, давайте предположим, что небольшая сеть компаний (C) и сотрудников (P's) на прикрепленном изображении. Обычные отношения работника, члена правления, партнера, работ, в которых он работает, имеют отношение к этому примеру.
Конечная цель того, чего я пытаюсь достичь, - это либо 1) классифицировать 3 компании C1, C2 и C3 в одной из «категорий важности»: гипер, очень, умеренный, низкий, игнорировать или 2) ранжировать их друг против друга на основе значения важности, которое я придаю соседним узлам. Например, любой, кто был правлением компании C7, получает наивысший балл, скажем 9, любой, кто работает в C4, получает балл, скажем, 6 и так далее. Основываясь только на этой информации, мы можем сказать, что, поскольку P1 был членом совета директоров C7 и в настоящее время работает в C4 и является текущим членом совета директоров C1, C1 классифицируется как «Hyper» / получает «нет». 1 ранжирование и C2 C3 ранжируются / классифицируются соответственно.
Я также хочу иметь возможность делать это по степеням разделения, то есть 1-й градус, 2-й градус (включает 1-й) и 3-й (включает 2-й и 1-й). Это так же просто, как сложить оценку каждого отношения в 1-й или 2-й степени C1 и вычислить общую оценку для каждого узла в пуле ранжирования?
Как я могу наилучшим образом реализовать это, используя neo4j или простой направленный график и / или есть ли лучший способ подойти к этой проблеме? Любая обратная связь действительно приветствуется.
Спасибо
УТОЧНЕНИЕ:
Я буду вручную назначать баллы отношениям в сети, т.е. границе отношений ' Работал в C7 'получит 9 баллов, а' работал в C4 'получит 6 баллов и так далее. Не все узлы должны быть ранжированы, а только те, которые я выбрал вручную, чтобы быть в пуле ранжирования, такие как C1, C2, C3.