Si fuera a hacer esto, lo haría así:
-
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)
-
Crear una base de datos NoSQL, específicamente Neo4j, a partir de los datos de PostgreSQL. (ref)
-
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