← नवीनतम पेपर
💻 computer science

Deforking the World of Code: A Project-Provenance Map that Recovers Cross-Forge Fork Families that Platform Graphs Cannot See

यह शोध पत्र 'वर्ल्ड ऑफ कोड' के लिए एक क्यूरेटेड "डीफ़ोर्किंग" (deforking) मानचित्र प्रस्तुत करता है जो साझा गिट इतिहासों को एकीकृत क्लस्टरों में समाहित करके क्रॉस-फोर्ज प्रोजेक्ट परिवारों का पुनर्निर्माण करता है, जिससे लोकप्रियता के मुद्रास्फीति को सुधारा जाता है और हजारों फोर्क संबंधों—जिनमें मल्टी-फोर्ज परिवार और गैर-गिटहब मूल शामिल हैं—को प्रकट किया जाता है जो प्लेटफॉर्म-विशिष्ट ग्राफों के लिए अदृश्य हैं।

मूल लेखक: Audris Mockus

प्रकाशित 2026-06-30
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Audris Mockus

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि सॉफ्टवेयर विकास के पूरे इतिहास को एक विशाल, अराजक पुस्तकालय के रूप में देखा जा सकता है। इस पुस्तकालय में लाखों किताबें (रिपॉजिटरी) हैं। लेकिन यहाँ एक पेंच है: कई किताबें उसी मूल कहानी की केवल फोटोकॉपी हैं।

कोडिंग की दुनिया में, इसे फोर्किंग (forking) कहा जाता है। एक डेवलपर एक मौजूदा प्रोजेक्ट को लेता है, उसकी प्रतिलिपि बनाता है, और अपना खुद का संस्करण शुरू करता है। वे यहाँ-वहाँ कुछ पंक्तियाँ बदल सकते हैं, लेकिन मूल इतिहास समान रहता है।

वह समस्या जिसका यह शोध पत्र समाधान करता है, वह यह है कि यदि आप केवल पुस्तकालय में मौजूद हर किताब को गिनकर यह मापने की कोशिश करते हैं कि कोई कोड कितना "लोकप्रिय" है, तो आपको एक अत्यधिक बढ़ा-चढ़ाकर दिखाया गया नंबर मिलेगा। यदि एक लोकप्रिय कहानी की 10,000 बार नकल की गई है, तो यह ऐसा दिखता है जैसे 10,000 अलग-अलग कहानियाँ पढ़ी जा रही हैं, जबकि वास्तव में, यह केवल एक ही कहानी है जिसे 10,000 अलग-अलग जगहों पर पढ़ा जा रहा है।

यह शोध पत्र एक नया मानचित्र (map) (एक उपकरण) पेश करता है जो इस पुस्तकालय को साफ करता है। यह सभी फोटोकॉपी को उनके मूल स्रोत के साथ वापस जोड़ देता है, ताकि शोधकर्ता वास्तविक कहानी देख सकें, न कि प्रतियों का शोर।

उन्होंने इसे कैसे किया, इसके सरल उदाहरण यहाँ दिए गए हैं:

1. "साझा पृष्ठ" का जासूस (The "Shared Page" Detective)

लेखकों ने महसूस किया कि डिजिटल दुनिया में, आप आसानी से इतिहास को नकली नहीं बना सकते। यदि दो किताबें एक ही पृष्ठ (एक विशिष्ट "कमिट" या कोड में परिवर्तन) साझा करती हैं, तो वे निश्चित रूप से संबंधित हैं।

  • पुराना तरीका: उन्होंने हर उस किताब को जोड़ने की कोशिश की जो एक पृष्ठ साझा करती थी। लेकिन यह ऐसा था जैसे यह कहना कि "यदि दो किताबों में एक ही पृष्ठ है जिस पर 'Copyright 2024' लिखा है, तो वे एक ही कहानी हैं।" यह गलत है! कई असंबंधित किताबों में एक ही कॉपीराइट पेज होता है। इस कारण से मानचित्र ने पूरी तरह से अलग कहानियों को एक विशाल, उलझे हुए ढेर में मिला दिया था।
  • नया तरीका: उन्होंने एक स्मार्ट मानचित्र बनाया। उन्होंने केवल एक पृष्ठ नहीं, बल्कि कई साझा पृष्ठों की तलाश की। यदि दो किताबें एक पूरा अध्याय साझा करती हैं, तो वे निश्चित रूप से संबंधित हैं।

2. "आकार सीमा" फ़िल्टर (The "Size Limit" Filter - The Cap)

स्मार्ट मानचित्र के साथ भी, कुछ विशाल, उबाऊ पृष्ठ (जैसे मानक लाइसेंस समझौते या खाली स्टार्टर टेम्पलेट) अभी भी पुलों के रूप में कार्य कर रहे थे, जो असंबंधित कहानियों को जोड़ रहे थे।

  • समाधान: लेखकों ने इन पुलों पर एक आकार सीमा (size limit) लगा दी। यदि एक साझा पृष्ठ 250 से अधिक किताबों में दिखाई देता है, तो वे मान लेते हैं कि यह एक सामान्य टेम्पलेट (जैसे कि एक मानक "सेवा की शर्तें" वाला पृष्ठ) है और इसे अनदेखा कर देते हैं।
  • परिणाम: इसने विशाल, उलझे हुए ढेरों को अलग कर दिया। अचानक, मानचित्र ने एक विशाल, भ्रमित करने वाले सुपर-क्लस्टर के बजाय कहानियों के स्पष्ट परिवार दिखाए। इसने वास्तविक परिवारों को नहीं तोड़ा; इसने केवल उस गोंद को हटा दिया जो असंबंधित चीजों को आपस में चिपका रहा था।

3. "वास्तविक इतिहास" की जाँच (The "Real History" Check)

लेखकों को चिंता थी कि इन विशाल समूहों को काटकर, वे अनजाने में एक वास्तविक, जटिल कहानी को काट सकते हैं जिसमें स्वाभाविक रूप से कई भाग होते हैं (जैसे कि एक कहानी जिसे कई भाषाओं में अनुवादित किया गया और फिर पुनर्संयोजित किया गया)।

  • परीक्षण: उन्होंने अपने मानचित्र पर सबसे बड़े शेष समूह को देखा। उन्होंने पाया कि यह कोई गलती नहीं थी; यह एक वास्तविक, जटिल कहानी थी जहाँ एक बड़े प्रोजेक्ट ने अन्य प्रसिद्ध प्रोजेक्ट्स के हिस्सों को वास्तव में आत्मसात किया था (जैसे कि एक प्रमुख ऑपरेटिंग सिस्टम द्वारा वेब ब्राउज़र के कोड को शामिल करना)।
  • निर्णय: क्योंकि यह "अवशिष्ट" (residual) समूह वास्तविक, गहरे इतिहास से बना था और न कि केवल सस्ते गोंद से, उन्होंने नहीं तय किया कि इसे और अधिक काटा जाए। उन्होंने इसे बरकरार रखा क्योंकि यह सॉफ्टवेयर की दुनिया में एक वास्तविक, जटिल संबंध का प्रतिनिधित्व करता है।

4. "आधिकारिक सूची" के विरुद्ध जाँच (Checking Against the "Official List")

यह सुनिश्चित करने के लिए कि उनका मानचित्र सटीक है, उन्होंने GitHub की आधिकारिक "फ़ॉर्क सूची" (एक सूची जहाँ उपयोगकर्ता मैन्युअल रूप से "Fork" बटन पर क्लिक करते हैं) के साथ तुलना की।

  • मिलान: जब उन्होंने उन प्रोजेक्ट्स को देखा जो उनके मानचित्र और GitHub की सूची दोनों पर मौजूद थे, तो वे 99% बार मेल खाते थे।
  • आश्चर्य: उनके मानचित्र ने वे चीजें भी खोज लीं जो GitHub की सूची से छूट गई थीं!
    • क्रॉस-फ़ोर्ज परिवार (Cross-Forge Families): उन्होंने उन प्रोजेक्ट परिवारों को खोजा जो GitHub पर शुरू हुए लेकिन फिर GitLab, Bitbucket और अन्य साइटों पर कॉपी किए गए। GitHub की सूची केवल GitHub पक्ष को देखती है; यह मानचित्र पूरी इंटरनेट पर फैले परिवार के वृक्ष को देखता है।
    • अलग हुए फ़ोर्क्स (Detached Forks): उन्होंने उन प्रोजेक्ट्स को खोजा जो कॉपियों के रूप में शुरू हुए लेकिन फिर उन्होंने अपना इतिहास पूरी तरह से बदल दिया, जिससे वे अब मूल से जुड़े नहीं रहे। मानचित्र ने उन्हें सही ढंग से अलग संस्थाओं के रूप में पहचाना, जबकि आधिकारिक सूची अभी भी उन्हें जुड़ा हुआ मान सकती है।

5. यह क्यों महत्वपूर्ण है?

इस मानचित्र से पहले, यदि आप जानना चाहते थे कि एक अकेले प्रोग्रामर ने कितने अलग-अलग प्रोजेक्ट्स पर काम किया है, तो आपको "5,000 प्रोजेक्ट्स" जैसा एक नकली नंबर मिल सकता था, सिर्फ इसलिए क्योंकि उन्होंने एक लोकप्रिय प्रोजेक्ट पर काम किया था जिसकी 5,000 कॉपियां थीं।

  • सुधार: यह मानचित्र इस समस्या को ठीक करता है। यह बताता है कि प्रोग्रामर ने वास्तव में 5 अलग-अलग प्रोजेक्ट्स पर काम किया, न कि 5,000।
  • परिणाम: यह सॉफ्टवेयर जगत का एक स्वच्छ, सटीक दृश्य प्रदान करता है, जो मूल कहानियों को उनकी प्रतियों से अलग करता है, और यहाँ तक कि उन कहानियों को भी पहचानता है जो विभिन्न वेबसाइटों में फैली हुई हैं।

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

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →