2018 में मैंने आयोवा प्रौद्योगिकी समुदाय में अपना समय कहाँ निवेश करना है यह जानने के लिए एक नेटवर्क मॉडल बनाया। यह मॉडल लगभग 10,000 तत्वों तक बढ़ गया – कंपनियाँ, संगठन, लोग, शहर, कनेक्टिविटी। मैंने Eigenvector Centrality का उपयोग उन नोड्स को उजागर करने के लिए किया जिनसे मैं जुड़ा नहीं था लेकिन जिनकी अन्य जगहों पर उच्च कनेक्टिविटी थी। इसने वास्तविक निर्णयों को प्रभावित किया: मैंने TAI बोर्ड में शामिल होने का निर्णय लिया, ऐसी समुदायों को खोजा जिनके अस्तित्व के बारे में मुझे पता नहीं था, और डेस मोइन्स तथा तटीय पारिस्थितिक तंत्रों के बीच घनत्व के अंतर को मैप किया।

वह मॉडल मेरे साथ जुड़ा रहा। Brale में वर्षों के दौरान, फोर्स-डायरेक्टेड रिलेशनशिप ग्राफ़ बार-बार सामने आते रहे – जारीकर्ताओं को संपत्तियों से लेकर रेल तक मैप करना, प्रोग्राम ऑपरेटरों को उन ब्लॉकचेन से जोड़ना जिन पर वे चलते हैं। हर बार, कोई इस दृश्य भाषा को फिर से आविष्कार करता है। एक रंग का क्या मतलब है? एक मोटी रेखा का प्रतिनिधित्व क्या करती है? कौन सी आकृति एक कंपनी को एक व्यक्ति से या एक घटना से अलग करती है? ये निर्णय हर प्रोजेक्ट पर फिर से लिए जाते हैं। ग्राफ़ खोलने वाले अगले व्यक्ति को सामग्री पढ़ने से पहले इसका पूरा रिवर्स-इंजीनियरिंग करना पड़ता है।

पिछले साल, CSF (कॉमन्स स्टेबलकॉइन फॉर्मेट) ने फंड प्रवाह को हम कैसे चित्रित करते हैं, उसे मानकीकृत किया। स्पेक को किसी LLM में पेस्ट करें, stablecoin फंड प्रवाह के लिए कहें, और यह हर बार उस फॉर्मेट का पालन करता है। मैं रिलेशनशिप ग्राफ़ के लिए भी यही चाहता था। इसलिए मैंने ग्राफिंग स्टैंडर्ड फॉर्मेट – GSF – एक छोटा सा व्याकरण लिखा जो यह परिभाषित करता है कि प्रकार आकार को कैसे प्रभावित करता है, वज़न आकार को कैसे प्रभावित करता है, और घनत्व का स्तर क्या प्रकट होता है, इसे कैसे नियंत्रित करता है।

यह मेरा नेटवर्क है, जिसे GSF में दर्शाया गया है:

घनत्व
GSF v0.5.2

वृत्त लोग हैं। गोलाकार आयत संगठन हैं। त्रिभुज कार्यक्रम हैं – जो उन्हें बनाने वाली कंपनियों से अलग हैं। हीरे स्थान हैं। षट्भुज अवधारणाएँ हैं। गोली आकार की आकृतियाँ प्रणालियाँ हैं। किसी भी नोड पर क्लिक करके उसका प्रोफ़ाइल कार्ड देखें। रंग देखने के लिए मीडियम पर टॉगल करें। आपको इनमें से किसी का भी निर्णय नहीं लेना पड़ा। GSF ने यह सब किया।

यहाँ GSF का पहली बार उपयोग दिखाने वाला एक वीडियो है। इसने काफी अच्छा काम किया!

GSF और CSF

सीएसएफ GSF
आउटपुट मर्मेड अनुक्रम आरेख D3 संबंध ग्राफ़
उत्तर A से B तक मान के चरण, क्रम में क्या मौजूद है और यह कैसे जुड़ा हुआ है
प्रकृति कालिक, क्रमागत संरचनात्मक, गैर-कालिक
स्तर हल्का / मध्यम / भारी हल्का / मध्यम / भारी

दोनों समान वैल्यू-लेयर प्रिमिटिव्स लागू करते हैं: ValueType, TransferType, Exchange। CSF से GSF में जाने पर एकमात्र हानि अनुक्रम क्रम की होती है, क्योंकि ग्राफ़ गैर-समयबद्ध होते हैं।

मानक

GSF विज़ुअलाइज़ेशन के लिए नियमों को संक्षेपित करता है – स्वयं विज़ुअलाइज़ेशन को नहीं। जब इसका उपयोग किया जाता है, तो इसका मतलब है कि आप परिभाषित करते हैं कि क्या दिखाना है और फ़ॉर्मेट यह संभालता है कि उसे कैसे दिखाना है। बेसलाइन सभी प्रोजेक्ट्स में सुसंगत रहती है।

तीन बातें:

  • GSF नियम-समूह है। इसे कभी भी दृश्य रूप में नहीं दिखाया जाता।
  • एक डेटासेट एक {view, nodes, links} GSF के अनुरूप एक उदाहरण। यही रेंडर होता है।
  • एक रेंडरर नियमों के साथ एक डेटासेट लेता है और चित्र बनाता है।

चार प्राइमिटिव। एक रेंडरर को जो कुछ भी चाहिए:

  1. रिश्ता – ठीक दो इकाइयों के बीच एक लिंक। लिंक ग्राफ़ बनाते हैं।
  2. प्रकार – गुणात्मक वर्गीकरणकर्ता। आकार और रंग को निर्धारित करता है।
  3. चलिए – विवरण बैग। इसमें वह सब कुछ होता है जो प्रकार नहीं करता।
  4. वज़न – मात्रात्मक परिमाण। आकार और चौड़ाई को नियंत्रित करता है।

एनकोडिंग नियम: मान बनाम मान। एक मात्रात्मक मान (एक संख्या, जो में वहन किया जाता है weight) आकार और चौड़ाई को नियंत्रित करता है। गुणात्मक मान (श्रेणी, स्थिति, लेबल) आकार, रंग, समूहीकरण और होवर पर क्या दिखाई देता है, इसे नियंत्रित करते हैं।

एक डिज़ाइन विकल्प जिसे उल्लेखनीय है: संबंध प्रकार खुली स्ट्रिंग्स हैं। कोई बंद सूची नहीं है। एक डेटासेट उन सभी प्रकारों को परिभाषित करता है जिनकी उसे आवश्यकता होती है – मेरा उपरोक्त ग्राफ़ का उपयोग करता है founder, cofounder, spinout, और operates, जिनमें से कोई भी स्पेक में नहीं है। यह ठीक से रेंडर हुआ। GSF एन्कोडिंग (प्रकार आकार और रंगों में कैसे बदलते हैं) को ठीक करता है, शब्दावली (आप किन प्रकारों का उपयोग कर सकते हैं) को नहीं।

घनत्व

CSF जैसा ही डायल। एक रेंडरर कितना विवरण और रंग दिखाता है:

  • लाइट – काला और सफेद। आकार प्रकार को एन्कोड करता है, लाइन शैली संबंध वर्ग को एन्कोड करती है (ठोस = मान, डैश = डेटा, डॉटेड = व्युत्पन्न), मोटाई परिमाण को एन्कोड करती है, तीर का सिर दिशा को एन्कोड करता है। कोई रंग नहीं। प्रिंट-तैयार।
  • मध्यम – ओवरले, एक कुंजी, और होवर पर चर के रूप में रंग जोड़ता है।
  • भारी – पूरा रिकॉर्ड। सभी चर, स्थानांतरण एंडपॉइंट, विस्तार सुविधाएँ।

एक नियम: हल्के प्रारूप को काले और सफेद में ही पढ़ा जाना चाहिए। रंग कभी भी एकमात्र संकेत नहीं होता।

फ़ॉर्मेट

एक लिंक की आवश्यकता है source, destination, और type. बाकी सब वैकल्पिक है:

{
  "format": "gsf",
  "version": "0.5.2",
  "renderer": "d3-force",
  "view": { "level": "light", "hops": 1, "focus": ["Person A"] },
  "links": [
    { "source": "Person A", "destination": "Person B", "type": "message" }
  ]
}

मूल्य-परत ग्राफ़ों के लिए, अंतबिंदु वस्तुएँ वहन करती हैं value_type और transfer_type प्रत्येक पक्ष पर। जब वे भिन्न होते हैं, तो यह एक विनिमय का संकेत देता है – और via विनिमयकर्ता का नाम निर्दिष्ट करता है:

{
  "format": "gsf",
  "version": "0.5.2",
  "renderer": "d3-force",
  "view": { "level": "heavy", "hops": 1, "focus": ["Brale"] },
  "nodes": [
    { "id": "Sender", "type": "org" },
    { "id": "Brale", "type": "org", "variables": { "sub_type": "exchange" } },
    { "id": "Recipient Wallet", "type": "system", "variables": { "sub_type": "wallet" } }
  ],
  "links": [
    {
      "source": { "id": "Sender", "value_type": "USD", "transfer_type": "wire" },
      "destination": { "id": "Recipient Wallet", "value_type": "USDC", "transfer_type": "solana" },
      "type": "transfers_via",
      "via": "Brale",
      "weight": 1000,
      "variables": { "exchange": "USD -> USDC", "rate": 1.0 }
    }
  ]
}

इसका उपयोग

gsf-0.5.2.json को किसी LLM में पेस्ट करें और उससे स्रोत सामग्री को GSF डेटासेट में बदलने के लिए कहें। यह हर बार उसी प्रारूप का पालन करता है – CSF की तरह। The llm_instructions स्पेक में ब्लॉक को सीधे मशीन द्वारा उपभोग के लिए डिज़ाइन किया गया है। नवीनतम संस्करण के लिए GSF रिपॉजिटरी देखें।

यह मानक ओपन-सोर्स है: github.com/benmilne-com/standards/gsf। इसे फ़ॉर्क करें, इसका उपयोग करें, योगदान दें।

संरचना मुफ़्त है।