إنشاء الرسوم البيانية للشبكات

مرحبًا بالجميع،

هل لدى أحدكم نصائح حول إنشاء رسم بياني شبكي للتفاعلات عبر مثيل Discourse؟ على سبيل المثال، القدرة على قياس الحجم النسبي للمجموعات، وكيفية ارتباطها ببعضها البعض، ومن هم الأشخاص “الأكثر ارتباطًا” (من خلال الإعجابات وما إلى ذلك)، وكل ذلك مُصوَّر في رسم بياني شبكي؟

أظن أن هذا يتطلب خدمة طرف ثالث مثل flourish، لذا إذا كان لدى أي شخص خبرة في إنشاء الرسوم البيانية، فسيكون ذلك مفيدًا أيضًا!

شكرًا مقدّمًا!

إذا كنت سأقوم بذلك، فسأقوم بالتالي:

  1. سحب نسخة احتياطية من الموقع وتحميلها في قاعدة بيانات PostgreSQL؛ حيث تُعد PostgreSQL قاعدة البيانات التي تدعم Discourse. (مرجع)

  2. إنشاء قاعدة بيانات NoSQL، وتحديدًا Neo4j، من بيانات PostgreSQL. (مرجع)

  3. استخدام لغة الاستعلام في Neo4j المعروفة بـ Cypher للعثور على العلاقات.

توفر Neo4j بيئة تجريبية تسمى sandbox، وقد تجد مثال أوراق بنما مثيرًا للاهتمام.


تعديل

بمجرد تشغيل قاعدة بيانات Neo4j والعمل عليها، وللمحافظة على مزامنة قاعدة بيانات Neo4j مع قاعدة بيانات PostgreSQL الخاصة بـ Discourse، سأستخدم إما:

أ. محفزات في PostgreSQL
ب. webhooks في Discourse

نفذت واحدة منها على Flourish الأسبوع الماضي. وهي مبنية على هذا المثال الذي لم يعد يعمل لأن جوجل أوقفت خدمة مخطط الشبكة المدمج لديها.

وهو يعرض:

  • الإعجابات بين المستخدمين في كلا الاتجاهين
  • ألوانًا لتسليط الضوء على المجموعات
  • سمك الخطوط لإظهار عدد الإعجابات
  • حجم الفقاعات لإظهار نسبة الإعجاب لكل مستخدم (المشاركات/الإعجابات)

يحتوي مثالِي على نقاط بيانات كثيرة جدًا مما يجعله صعب القراءة، لكنني كنت أختبره على أي حال. تقليل عدد المستخدمين أو الفترة الزمنية وما إلى ذلك سيجعله أكثر وضوحًا.

صورة شاشة لمستخدم مختار أدناه:

لقد قمت بإنشاء هذا كتصور عبر الإنترنت: Community Network Visualisation