Creación de gráficos de red

Hola a todos,

¿Alguien tiene consejos sobre cómo crear un gráfico de red de interacciones en una instancia de Discourse? Por ejemplo, para poder evaluar el tamaño relativo de los grupos, cómo se relacionan entre sí, quiénes son las personas “más conectadas” (por me gusta, etc.), todo visualizado en un gráfico de red.

Supongo que se requiere un servicio de terceros como flourish, así que si alguien tiene experiencia en la creación de gráficos, ¡también sería muy útil!

¡Gracias de antemano!

Si fuera a hacer esto, lo haría así:

  1. Descargar una copia de seguridad del sitio y cargarla en una base de datos PostgreSQL; PostgreSQL es la base de datos que respalda Discourse. (ref)

  2. Crear una base de datos NoSQL, específicamente Neo4j, a partir de los datos de PostgreSQL. (ref)

  3. Utilizar el lenguaje de consultas de Neo4j, Cypher, para encontrar las relaciones.

Neo4j tiene un sandbox; quizás te interese el ejemplo de los Papeles de Panamá.


EDIT

Una vez que la base de datos de Neo4j esté operativa y para mantenerla sincronizada con la base de datos PostgreSQL de Discourse, usaría bien:

a. Disparadores de PostgreSQL
b. Webhooks de Discourse

Hice uno con Flourish la semana pasada. Se basa en este ejemplo que ya no funciona porque Google discontinuó su gráfico de fusión de redes.

Muestra:

  • “likes” entre usuarios en ambas direcciones
  • colores para resaltar grupos
  • grosor de las líneas para mostrar la cantidad de “likes”
  • tamaño de las burbujas para mostrar la relación de “likes” de cada usuario (publicaciones/likes)

Mi ejemplo tiene tantos puntos de datos que es difícil de leer, pero de todos modos solo estaba experimentando. Reducir el número de usuarios o el período de tiempo, etc., lo haría más claro.

Captura de pantalla de un usuario seleccionado a continuación:

Lo construí como una visualización en línea: Community Network Visualisation