Создание сетевых графов

Всем привет,

Есть ли у кого-нибудь советы по созданию графа взаимодействий на экземпляре Discourse? Например, чтобы оценить относительный размер групп, их взаимосвязи, выявить «самых связанных» людей (по лайкам и т. д.) и визуализировать это в виде сетевого графа?

Полагаю, для этого потребуется сторонний сервис, например flourish, поэтому, если у кого-то есть опыт создания таких графиков, это тоже будет очень полезно!

Заранее спасибо!

Если бы я собирался это сделать, я бы:

  1. Сделал резервную копию сайта и загрузил её в базу данных PostgreSQL; PostgreSQL является базой данных, на которой работает Discourse. (ссылка)

  2. Создал бы базу данных NoSQL, а именно Neo4j, на основе данных из PostgreSQL. (ссылка)

  3. Использовал язык запросов Neo4j Cypher для поиска связей.

У Neo4j есть песочница, возможно, вам будет интересен пример Панамских документов.


РЕДАКТИРОВАНИЕ

После того как база данных Neo4j будет запущена и работать, для синхронизации базы данных Neo4j с базой данных PostgreSQL Discourse я бы использовал либо:

a. Триггеры PostgreSQL
b. Вебхуки Discourse

На прошлой неделе я делал один такой на Flourish. Он основан на этом примере, который больше не работает, так как Google прекратил поддержку своих диаграмм слияния сетей.

Он отображает:

  • лайки между пользователями в обоих направлениях
  • цвета для выделения групп
  • толщину линий для отображения количества лайков
  • размер пузырьков для отображения соотношения лайков для каждого пользователя (посты/лайки)

В моём примере так много точек данных, что его трудно читать, но я всё равно просто экспериментировал. Уменьшение количества пользователей или периода времени и т. д. сделало бы его более чистым.

Скриншот выбранного пользователя ниже:

Я создал это как онлайн-визуализацию: Community Network Visualisation