Alguém tem dicas sobre como criar um gráfico de rede de interações em uma instância do Discourse? Por exemplo, para conseguir avaliar o tamanho relativo dos grupos, como eles se relacionam entre si, quem são as pessoas “mais conectadas” (por meio de curtidas, etc.), tudo visualizado em um gráfico de rede?
Acho que isso requer um serviço de terceiros como o flourish, então, se alguém tiver experiência na criação de gráficos, também seria muito útil!
Baixaria um backup do site e o carregaria em um banco de dados PostgreSQL; o PostgreSQL é o banco de dados que suporta o Discourse. (ref)
Criaria um banco de dados NoSQL, especificamente o Neo4j, a partir dos dados do PostgreSQL. (ref)
Usaria a linguagem de consulta do Neo4j, Cypher, para encontrar os relacionamentos.
O Neo4j possui um sandbox; talvez você se interesse pelo exemplo dos Panama Papers.
EDIT
Uma vez que o banco de dados Neo4j estiver configurado e funcionando, para mantê-lo sincronizado com o banco de dados PostgreSQL do Discourse, eu usaria ou
Fiz um exemplo com o Flourish na semana passada. Ele é baseado neste exemplo que não funciona mais, pois o Google descontinuou seu gráfico de fusão de rede.
Ele mostra:
curtidas entre usuários em ambas as direções
cores para destacar grupos
espessura das linhas para indicar o número de curtidas
tamanho das bolhas para mostrar a proporção de curtidas de cada usuário (publicações/curtidas)
Meu exemplo tem tantos pontos de dados que fica difícil de ler, mas eu estava apenas experimentando. Reduzir o número de usuários ou o período de tempo, por exemplo, deixaria o gráfico mais limpo.
Abaixo, uma captura de tela de um usuário selecionado: