मैं जेएसओएन पाठ के रूप में एक डीएजी का प्रतिनिधित्व करना चाहता हूं और सोच रहा हूं कि किसी ने भी यह कोशिश की है और यदि JSON वास्तव में एक डीएजी है तो यह सत्यापित करने के संबंध में किसी भी समस्या का सामना करना पड़ता है।आप डायरेक्टेड एसाइक्लिक ग्राफ (डीएजी) को JSON के रूप में कैसे स्टोर करते हैं?
उत्तर
प्रत्येक नोड को लेबल करें और किनारे की सूची बनाएं। यही कारण है, प्रत्येक नोड की दुकान के लिए नोड्स इसे करने के लिए किनारों है, उदाहरण के लिए:
{
"a": [ "b", "c", "d" ],
"b": [ "d" ],
"c": [ "d" ],
"d": [ ]
}
आप रेखांकन के कई प्रकार इस तरह से स्टोर कर सकते हैं, बस नहीं DAGs, ताकि आप इसे बनाने के लिए पोस्ट-प्रक्रिया की आवश्यकता होगी सुनिश्चित करें कि इसमें कोई लूप नहीं है। बस एक नोड, डीएफएस चुनें, यदि आप किसी भी नोड को एक से अधिक बार देखते हैं तो यह एक डीएजी नहीं है। फिर उन सभी नोड्स को हटा दें जिन्हें आपने अभी देखा और किसी भी शेष नोड्स के साथ दोहराएं। ऐसा तब तक करें जब तक आपको लूप न मिले या आपने सभी नोड्स को हटा दिया हो, बाद के मामले में ग्राफ एक डीएजी है।
ध्यान दें कि यह पैरेंट नोड्स को स्टोर नहीं करता है, क्योंकि यह अनावश्यक जानकारी है। यदि आपको उस डेटा की आवश्यकता है तो आप ग्राफ को लोड करने के बाद उत्पन्न कर सकते हैं।
क्या इसे उलटा करने के लिए कोई नकारात्मक पक्ष है (सरणी मान "से" के बजाय "नोड्स" से होने वाले हैं)? मुझे लगता है कि यदि आप एक टोपोलॉजिकल सॉर्ट करने की कोशिश कर रहे हैं तो यह बेहतर होगा। –
कड़ाई से बोलते हुए आप सीधे जेएसओएन के साथ ऐसा नहीं कर सकते हैं। आपको ऑब्जेक्ट्स का प्रतिनिधित्व करने के अपने तरीके से आना होगा जिसे डेटा संरचना में कहीं और संदर्भ द्वारा पहचाना जा सकता है, और फिर आपको JSON स्ट्रिंग को deserializing के परिणाम को पोस्ट-प्रोसेस करना होगा।
आपको लगता है कि JSON अभिव्यक्ति वस्तु ग्राफ है, और वहाँ बस धारणा व्यक्त करने के लिए कोई प्रावधान नहीं है कि एक संपत्ति के मूल्य कहीं और एक और संपत्ति के मूल्य होना चाहिए सरल कारण के लिए JSON के साथ यह नहीं कर सकते डेटा संरचना में। इसे एक और तरीके से रखने के लिए, ग्राफ में किसी ऑब्जेक्ट में एक से अधिक माता-पिता नहीं हो सकते हैं, जिसका अर्थ है कि प्रत्येक ऑब्जेक्ट एक अन्य ऑब्जेक्ट की बिल्कुल एक संपत्ति का मूल्य है।
एक डीएजी में, एक नोड में दो माता-पिता हो सकते हैं। प्रोग्रामिंग भाषा में एक अभिव्यक्ति के प्रतिनिधित्व के बारे में सोचें (कहें, जावास्क्रिप्ट :-) एक एकल चर के दो संदर्भों के साथ। परंपरागत रूप से, अभिव्यक्ति में उन दो बिंदुओं को एक ही नोड का संदर्भ दिया जाएगा। एक डीएजी (परिभाषा के अनुसार) में कोई चक्र नहीं है क्योंकि (आमतौर पर, जरूरी नहीं कि मुझे लगता है) सभी लिंक ग्राफ को "इंगित करें", ताकि आप कभी भी "बैक अप न करें"। यह एक पेड़ की तरह है, सिवाय इसके कि जहां नोड्स विलय हो जाते हैं। – Pointy
हा हा अच्छा है कि टिप्पणी चक्र के साथ होने के बारे में एक सवाल के जवाब में थी, इसलिए मैं इसे वहां छोड़ दूंगा। – Pointy
हां, मेरे भाग पर बुनियादी सीएस समझ विफलता ;-) व्याख्या करने के लिए धन्यवाद। –
जेएसओएन के पास डीएजी का प्रतिनिधित्व करने की कोई मूल सुविधा नहीं है जब तक आप लिंक किए गए डेटा का प्रतिनिधित्व करने के लिए अपना स्वयं का सम्मेलन नहीं करते। जेएसओएन-एलडी (एक डब्ल्यू 3 सी प्रस्ताव) एक जेएसओएन एक्सटेंशन है जो वास्तव में ऐसा करने की कोशिश कर रहा है। प्रस्ताव यहां पाया जा सकता है: http://json-ld.org/spec/latest/json-ld/।
- 1. एक निर्देशित एसाइक्लिक ग्राफ को ग्रिड/मैट्रिक्स
- 2. आप हास्केल में ग्राफ का प्रतिनिधित्व कैसे करते हैं?
- 3. रैक: आप यूआरएल को चर के रूप में कैसे स्टोर करते हैं?
- 4. क्या जावा में एक निर्देशित एसाइक्लिक ग्राफ (डीएजी) डेटा प्रकार है, और क्या मुझे इसका उपयोग करना चाहिए?
- 5. आप डेटाबेस में सेल फोन नंबर कैसे स्टोर करते हैं?
- 6. आप डेटाबेस पासवर्ड कहां स्टोर करते हैं?
- 7. आप स्ट्रिंग्स के JSON सरणी का प्रतिनिधित्व कैसे करते हैं?
- 8. आप एनएसएमयूटेबलएरे * या एनएसएमयूटेबल डिक्शनरी * में "int" मानों को कैसे स्टोर करते हैं? JSON डेटा के साथ पुरानी समस्याएं जो पूर्णांक के रूप में आती हैं।
- 9. डीएजी में कितने किनारे हो सकते हैं?
- 10. जावा आप वरीयता API का उपयोग कैसे करते हैं? इन चरों को कहां स्टोर करते हैं?
- 11. JSON को RavenDB में कैसे स्टोर करें?
- 12. आप अपने नमक तारों को कहां स्टोर करते हैं?
- 13. विधि json ग्राफ को networkx ग्राफ को बचाने के लिए?
- 14. डीएजी
- 15. आप संख्यात्मक रूप से फ़ाइलों को कैसे क्रमबद्ध करते हैं?
- 16. आप jqGrid के साथ JSON स्ट्रिंग या JSON ऑब्जेक्ट का उपयोग कैसे करते हैं?
- 17. सी में, आप संरचना के सदस्यों को अस्थिर के रूप में कैसे घोषित करते हैं?
- 18. क्या ग्राफ hbase स्टोर करना संभव है? यदि ऐसा है तो आप ग्राफ संरचना का समर्थन करने के लिए डेटाबेस को कैसे मॉडल करते हैं?
- 19. आप अपने कोड और फ़ाइलों को मशीनों के उपयोग के लिए कैसे स्टोर करते हैं
- 20. SQLite में JSON को स्टोर करने के लिए कैसे करें
- 21. आप डिस्पैच के साथ JSON अनुरोध को कैसे पार्स करते हैं?
- 22. आप पावरशेल स्क्रिप्ट्स की अपनी लाइब्रेरी कहां स्टोर करते हैं?
- 23. , आप आइटम को कैसे क्रमबद्ध करते हैं?
- 24. आप कैसे FB.Canvas.scrollTo को एनिमेट करते हैं?
- 25. आप wx.Panel को रीफ्रेश कैसे करते हैं?
- 26. आप XamlParseException को कैसे डिबग करते हैं?
- 27. आप JVM को कैसे क्रैश करते हैं?
- 28. ADO.NET में SQL पैरामीटर मान के रूप में आप 'DEFAULT' को कैसे निर्दिष्ट करते हैं?
- 29. आप एम्बर ऑब्जेक्ट्स को क्रमबद्ध कैसे करते हैं?
- 30. आप एक शब्दकोश प्रविष्टि के मूल्यों को mutable के रूप में कैसे घोषित करते हैं?
यदि डीएजी सही है तो डीएजी के पास एक भी रूट नहीं हो सकती है। तो अगर आप सुनिश्चित नहीं हैं कि आप इसे देखते हैं तो मॉडल को कैसे सूखाते हैं। –
कोई भी JSON ऑब्जेक्ट निश्चित रूप से एक डीएजी होगा। – Pointy