мне бы просто хватило списка "первого круга" и поиска за его пределами с выставлением ранга "как далеко от меня пользователь".
но, возможно, я просто не привык к таким сервисам, как социальная сеть.
Идея классная ) Если бы можно было писать комментарии и рисовать дополнительные фичи, как в мозговых картах и все это в HTML (Flash/Ajax/...) цены не было б.
Мне еще понравилось, как реализованы навыки пользователя тут
Дело в том, что на Хабре несколько типов связей между членами сообщества. Следовательно, есть как минимум две реализации для визуализации сети:
срезы по каждому типу связи
связи каждого отдельного типа считать весовыми коефициентами одной общей связи.
Более того, построить всю сеть в разумные сроки вряд ли осилит даже самый многоядерный Xeon или небольшой кластер из оных. Вспомним задачу комивояжера. Хотя здесь не будет полного перебора, но даже 5300 элементов - это очень много.
В принципе в базе данных и так уже хранятся все данные кому и сколько мы плюсовали или минусовали. Если делать обновления регулярными (например раз в сутки) то расчитывать надо будет только изменения за прошедший период и хранить коэффициенты.
IMHO сеть только по плюсованию/минусованию не в полной мере показательна. Нужно учитывать кто кому и на что писал камменты, сообщения в хабрапочте, приемы/взаимности/отказы в друзья и возможно что то еще. Правильно определить вес каждого коефициента будет очень непросто.
Если бы я был разработчиком, я бы взялся за эту задачу, но не ради пользователей, а ради своих корысных целей ;) Во-первых, наработать методику мониторинга динамики сети; во-вторых, попробовать отследить рекурсию: будет ли, и если будет, то как, менятся конфигурация сети, когда все пользователи ее явно видят и знают.
Кроме того, если футурико соберётся продаться или продать хабрахабр им будет что показать кроме цифр которые мало кто воспринимает, а тут можно напечатать громадный плакат. Инвесторам понравится ;)
Думаю, что это будет не так просто. И точно это будет выглядеть не так, как у автора поста на иллюстрации.
Связи весьма сложны и многочислены и такая схема рискует превратиться в кашу. Избежать этого - адская задача для программирования, до сих пор пишут научные статьи по методам подобной реализации. И, конечно, идеального алгоритма нет.
Это совсем не сложно.
Уже много лет назад специалистами по дискретной математике и теории графов были разработаны алгоритмы их [графов] "разворачивания" , а в контексте сегодняшних процессорных мощностей - это даже не ресурсоемко.
Визуализация социальных связей