네트워크 그래프 만들기

안녕하세요,

Discourse 인스턴스에서 상호작용 네트워크 그래프를 만드는 방법에 대해 조언을 주실 분이 있을까요? 예를 들어, 그룹의 상대적 규모, 그룹 간의 관계, 그리고 “가장 연결이 많은” 사람들(좋아요 등 기준)을 네트워크 그래프로 시각화하는 것 같은요.

flourish 같은 제3자 서비스가 필요할 것 같은데, 그래프 생성에 전문 지식이 있는 분이 계시다면 그 부분도 도움이 될 것 같습니다!

미리 감사드립니다!

이 작업을 수행하려면 다음과 같은 단계를 따르겠습니다.

  1. 사이트의 백업을 받아 PostgreSQL 데이터베이스에 로드합니다. PostgreSQL은 Discourse를 뒷받침하는 데이터베이스입니다. (참고)

  2. PostgreSQL 데이터에서 NoSQL 데이터베이스, 특히 Neo4j를 생성합니다. (참고)

  3. Neo4j 쿼리 언어인 Cypher를 사용하여 관계를 찾습니다.

Neo4j에는 샌드박스가 있으며, 파나마 페이퍼스 예시가 흥미로울 수 있습니다.


수정

Neo4j 데이터베이스가 설정되고 작동하게 되면, Neo4j 데이터베이스를 Discourse PostgreSQL 데이터베이스와 동기화하기 위해 다음 중 하나라도 사용할 수 있습니다.

a. PostgreSQL 트리거
b. Discourse 웹훅

지난주에 Flourish로 하나 만들어 봤습니다. 구글이 네트워크 퓨전 차트를 중단하면서 더 이상 작동하지 않는 이 예시를 기반으로 했습니다.

다음과 같은 내용을 보여줍니다.

  • 사용자 간의 양방향 좋아요
  • 그룹을 강조하기 위한 색상
  • 좋아요 수를 나타내는 선의 두께
  • 각 사용자의 좋아요 비율(게시물 수/좋아요 수)을 나타내는 버블 크기

제 예시에는 데이터 포인트가 너무 많아 가독성이 떨어지지만, 어차피 실험 차원이었습니다. 사용자 수나 시간 범위를 줄이는 등으로 정리하면 더 깔끔해질 것입니다.

아래는 선택된 사용자의 스크린샷입니다:

이를 온라인 시각화 도구로 만들었습니다: Community Network Visualisation