Se eu fosse fazer isso, eu:
-
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