शुरुआती जानकारी
ओपन सिविक डेटा आइडेंटिफ़ायर (ओसीडी आईडी) एक सामान्य आइडेंटिफ़ायर फ़ॉर्मैट है. इससे राजनैतिक देशों/इलाकों के बारे में जानकारी मिलती है. सीडीएफ़ फ़ीड बनाने के लिए, आपको GpUnit इकाई के हिस्से के तौर पर ये आइडेंटिफ़ायर देने होंगे. इस दस्तावेज़ में, opencivicdata GitHub डेटा स्टोर करने की जगह में ओसीडी आईडी जोड़ने के लिए दिशा-निर्देश और सबसे सही तरीके बताए गए हैं.
Open Civic Data GitHub रिपॉज़िटरी में ओसीडी आईडी अपडेट करने का तरीका
ज़रूरी शर्तें
शुरू करने से पहले:
अपना वर्कस्टेशन तैयार करें:
ओसीडी आईडी रेपो से पैकेज को फ़ोर्क करें और उसका क्लोन बनाएं.
डेटा स्टोर करने की सुविधा के बारे में जानें:
ओसीडी आईडी के संग्रह में, Google Merchant Center में काम करने वाले हर देश को एक डायरेक्ट्री और CSV फ़ाइल के साथ दिखाया जाता है. CSV फ़ाइल का नाम एक ही होता है: देश-<2 अक्षर वाला देश कोड> (उदाहरण के लिए: जर्मनी के लिए
identifiers/country-de
औरidentifiers/country-de.csv
).आपको जिस देश के नाम में बदलाव करना है उसकी डायरेक्ट्री में, आपको CSV फ़ाइलें (उदाहरण) मिल सकती हैं. इनमें टॉप लेवल की, देश के हिसाब से बनी CSV फ़ाइल के कुछ हिस्से शामिल होते हैं. आपको इन फ़ाइलों में बदलाव करना होगा.
नए ओसीडी आईडी बनाने का तरीका:
स्ट्रक्चर और सोर्स
ओसीडी आईडी के बारे में जानकारी पाने के लिए, नागरिकों से जुड़े विषयों से जुड़ा डेटा दस्तावेज़ देखें. आम तौर पर, मान्य ओसीडी आईडी इस फ़ॉर्मैट में होता है:
ocd-division/country:<country_code>(/<type>:<type_id>)
आइडेंटिफ़ायर का नाम रखने के लिए, आईएसओ के स्टैंडर्ड आइडेंटिफ़ायर या एफ़आईपीएस और एनयूटीएस जैसे दूसरे स्टैंडर्ड को प्राथमिकता दी जाती है. ऐसा तब किया जाता है, जब आईएसओ उपलब्ध न हो.
सामान्य नीतियां
यहां कुछ सामान्य नीतियां दी गई हैं:
क्रम के हिसाब से
ओसीडी आईडी का क्रम, एडमिन लेवल के हिसाब से तय होना चाहिए. यह लेवल ओसीडी आईडी की सीमाओं को कंट्रोल करता है. हालांकि, यह ज़रूरी नहीं है कि ओसीडी आईडी के कंटेनमेंट संबंध हों.
- उदाहरण: अमेरिका में, संसदीय इलाकों का इस्तेमाल राष्ट्रीय प्रतिनिधि सभा के चुनावों में किया जाता है. हालांकि, उनकी सीमाएं अमेरिका तय करती हैं. इसलिए, कांग्रेशनल डिस्ट्रिक्ट, राज्यों से अलग हो जाती हैं:
ocd-division/country:us/state:pa/cd:2
- उदाहरण: म्यूरिसविल पेंसिलवेनिया की एक नगरपालिका है और
यह वेस्टमोरलैंड काउंटी में शामिल है. हालांकि, कस्बों को राज्य मैनेज करता है. इसलिए, ओसीडी आईडी को राज्य के हिसाब से नहीं दिखाया जाता:
ocd-division/country:us/state:pa/place:murrysville
अलग-अलग स्थिति बताने की ज़रूरत होने पर, अतिरिक्त हैरारकी का इस्तेमाल किया जा सकता है. - उदाहरण: पेंसिलवेनिया में "फ़्रैंकलिन टाउनशिप" नाम की 16 जगहें हैं. आम तौर पर, इनमें से हर एक का ओसीडी आईडी
ocd-division/country:us/state:pa/place:franklin
होता है, लेकिन यह साफ़ तौर पर नहीं पता होता. इसलिए, हम काउंटी को ओसीडी आईडी में जोड़ सकते हैं, ताकि हर काउंटी को अपना यूनीक ओसीडी आईडी मिल सके. उदाहरण:ocd-division/country:us/state:pa/county:adams/place:franklin
Type
आम तौर पर, ओसीडी आईडी अलग-अलग देशों के हिसाब से तय होते हैं.
कुछ ओसीडी आईडी, डेटा स्टोर करने की जगह में सामान्य तौर पर इस्तेमाल होते हैं, जैसे कि
country
,region
, औरplace
.हालांकि, हमारा सुझाव है कि आप अलग-अलग टाइप के बारे में ऐसी जानकारी दें जो उस देश के हिसाब से सही हो.
- उदाहरण: अमेरिका में एडमिन एरिया 1 के लिए,
state
,district
, औरterritory
टाइप का इस्तेमाल किया जाता है. - उदाहरण: सीए में एडमिन एरिया 1 के लिए,
province
औरterritory
टाइप का इस्तेमाल किया जाता है. - उदाहरण: PT में एडमिन एरिया 1 के लिए,
region
औरautonomous_region
टाइप का इस्तेमाल किया जाता है.
- उदाहरण: अमेरिका में एडमिन एरिया 1 के लिए,
ID
- आम तौर पर, हम किसी ज़िले में हुए बदलाव की जानकारी देने के लिए, एक ही ओसीडी आईडी का इस्तेमाल करते हैं. ओसीडी आईडी के नए सेट के लिए
type_id
चुनते समय, ऐसा आईडी चुनें जो सबसे ज़्यादा स्थिर हो. किस आइडेंटिफ़ायर का इस्तेमाल करना है, यह तय करने से जुड़े कुछ सवाल ये हैं: - जिले में बदलाव होने की वजह से, किसी डिस्ट्रिक्ट के आइडेंटिफ़ायर में बदलाव होने की कितनी संभावना है?
- अगर एक ही पदाधिकारी, डिस्ट्रिक्ट X की सीमा को पहले और बाद में मैनेज करता है, तो क्या उस पद को लगातार बदलने के लिए उसकी सीमाएं बदली जा सकती हैं?
- क्या हर इलाके की एक जैसी सीमाओं या नाम वाले इलाकों को एक ही आइडेंटिफ़ायर से दिखाया जाता है?
- उदाहरण: अमेरिका में, कांग्रेशनल डिस्ट्रिक्ट के नंबर का इस्तेमाल अमेरिका के हाउस डिस्ट्रिक्ट के लिए किया जाता है, क्योंकि उनकी सीमाएं और ज़िलों में बदलाव होने के बावजूद, उनकी पहचान को नंबर से पूरी तरह से जोड़ा जाता है.
- उदाहरण: कनाडा में, हम फ़ेडरल इलेक्टोरल ज़िलों को दिखाने के लिए, डिस्ट्रिक्ट के नामों का इस्तेमाल करना चाहते हैं. ऐसा इसलिए, क्योंकि फ़ेडरल इलेक्टोरल कोड मौजूद हैं, लेकिन यह आइडेंटिफ़ायर स्थिर नहीं रहता, क्योंकि ज़िलों को फिर से तय करने के लिए, एक जैसे ज़िलों को अलग-अलग आईडी से दिखाया जाता है. (जैसे, 2012 से पहले डिस्ट्रिक्ट 47012, डिस्ट्रिक्ट के क्रम में बदलाव करना, इसके बाद का डिस्ट्रिक्ट नहीं है).
फिर से डिस्ट्रिब्यूशन करना
आम तौर पर, ज़िले के हिसाब से ओसीडी आईडी को अपडेट करते समय, नया सेट बनाने के बजाय ओसीडी आईडी के मौजूदा सेट का इस्तेमाल करें.
- अगर किसी ज़िले में बदलाव करने के बाद भी किसी डिस्ट्रिक्ट की पहचान (अंक, नाम, वगैरह) में कोई बदलाव नहीं होता है, तो उसी ओसीडी आईडी का इस्तेमाल करें.
- ज़िले की जानकारी में बदलाव करने के बाद, नए ज़िले बनाने के लिए, नए ओसीडी आईडी बनाएं.
- जो ज़िलों अब मौजूद नहीं हैं उनके लिए,
ValidThrough
फ़ील्ड को उस तारीख के साथ अपडेट करें जब ज़िलों को फिर से तय किया गया था. - अगर किसी डिस्ट्रिक्ट का आईडी, उसके नाम पर आधारित है और डिस्ट्रिक्ट का नाम बदलने के बाद, उसका नाम बदला जाता है, तो नए डिस्ट्रिक्ट नाम के आधार पर एक नया आईडी बनाएं. साथ ही,
id = oldId
औरsameAs = newId
के लिए उपनाम जोड़ें. यह newId को oldId मैप का इस्तेमाल करते समय, newId को कैननिकल बनाता है. - अगर पुराने ओसीडी आईडी के बीच टकराव होता है, जैसे कि नया आईडी, तो अब खत्म हो चुके आईडी की तरह ही है, तो नए आईडी के साथ
ValidFrom
साल जोड़ें. नाम रखने की इस नीति के बारे में ज़्यादा जानने के लिए, मौजूदा, खत्म हो चुके, और बदले गए ओसीडी आईडी के लिए नई फ़ाइलें बनाना लेख पढ़ें.
- उदाहरण: अमेरिका में, संसदीय इलाकों का इस्तेमाल राष्ट्रीय प्रतिनिधि सभा के चुनावों में किया जाता है. हालांकि, उनकी सीमाएं अमेरिका तय करती हैं. इसलिए, कांग्रेशनल डिस्ट्रिक्ट, राज्यों से अलग हो जाती हैं:
डिवाइस पर मौजूद अपनी कॉपी अपडेट करें
किसी भी अपडेट को देश की खास डायरेक्ट्री के तहत ही किया जाना चाहिए: ocd-repository/identifiers/country-<2letter country code>. अगर कोई देश कोड मौजूद नहीं है, तो उसे बनाएं.
- अगर ओसीडी आईडी वाली CSV फ़ाइल पहले से मौजूद है और वे पुरानी चुनावी सीमाओं को दिखाती हैं, तो आपको नए संसदीय क्षेत्रों को शामिल करने के लिए, इस फ़ाइल को अपडेट करना होगा. ऐसा करने के लिए,
ValidFrom
और एकValidTo
कॉलम जोड़ें, जिसमें तारीख YYYY-MM-DD फ़ॉर्मैट में हो.ValidFrom
को नए संसदीय क्षेत्रों के लिए चुनाव की तारीख होनी चाहिए. इसे उन क्षेत्रों के लिए खाली छोड़ा जा सकता है जो पहले से मौजूद हैं.- पुराने विधानसभाओं के लिए
ValidTo
, चुनाव से एक दिन पहले होना चाहिए.
उपनाम अपडेट करना
एलियासिंग का इस्तेमाल, एक ही राजनैतिक देश या इलाके को दिखाने के लिए, ओसीडी आईडी के तौर पर मार्क करने के लिए किया जा सकता है.
- उदाहरण के लिए, अगर कोई जगह एक शहर और काउंटी, दोनों है, तो इसका कोई मतलब निकल सकता है.
वे सामान्य सिद्धांत जिन्हें हम लागू करने की कोशिश कर रहे हैं:
- अगर राजनैतिक भूगोल के दो विषय आपस में मेल खाते हैं, तो उन्हें एक-दूसरे के साथ उपनामित करने की ज़रूरत नहीं है. उदाहरण: अमेरिका के बहुत बड़े संसदीय क्षेत्र, राज्यों के हिसाब से एक जैसे नहीं हैं, लेकिन ऐसा अमेरिका की मौजूदा जनसंख्या की वजह से हो सकता है.
एलियासिंग से इस बात का भी पता चलता है कि ज़िलों को बांटने के लिए कानून/संवैधानिक संशोधनों में अहम बदलाव कहां किए जाएंगे.
- उदाहरण के लिए, वॉशिंगटन स्टेट सीनेट और स्टेट हाउस डिस्ट्रिक्ट को संवैधानिक कानून के हिसाब से एक जैसा रखा जाता है.
अगर आप चाहें, तो एक CSV फ़ाइल aliases.csv
जोड़ें. इसमें हम पुराने ओसीडी आईडी और उनके उपनाम, दोनों जोड़ सकते हैं. कैननिकल आईडी, ऐसे डिवीज़न टाइप का इस्तेमाल कर सकते हैं जिनका स्थानीय मतलब होता है. साथ ही, इनमें ऐसे उपनाम हो सकते हैं जिनके बारे में ज़्यादा जानकारी होती है (जैसे, कैननिकल: ocd-division/country:de/land
उपनाम: `ocd-division/country:de/state).
ज़्यादा जानकारी के लिए, समस्या #170 देखें.
families.csv फ़ाइल को अपडेट करने के लिए:
- families.csv फ़ाइल में कॉलम के क्रम का ध्यान रखें:
id
,sameAs
,sameAsNote
Type | ब्यौरा |
---|---|
आईडी | इस कॉलम में ओसीडी आईडी के उपनाम होने चाहिए. |
sameAs | इस कॉलम में वे असल ओसीडी आईडी होने चाहिए जिनके लिए हम उपनाम जोड़ते हैं. |
sameAsNote | एक नोट जो यह बताता है कि डिवीज़न के एक से ज़्यादा आइडेंटिफ़ायर कैसे और क्यों हैं. |
उदाहरण: identifiers/country-in/aliases.csv
स्क्रिप्ट चलाएं - compile.py
जगह opencivicdata/ocd-division-ids/scripts पर Python स्क्रिप्ट चलाएं:
- आपको स्क्रिप्ट के तर्क के तौर पर, दो अक्षरों वाला देश कोड बताना होगा, ताकि यह पता चल सके कि किस देश के आइडेंटिफ़ायर को अपडेट करने की ज़रूरत है.
- उदाहरण के लिए: python3 Script/compile.py in (भारत में विधानसभाओं के ओसीडी आईडी अपडेट करने के लिए).
- Python 2.x के साथ काम नहीं किया जा सकता. आपको Python 3 या इसके बाद के वर्शन इस्तेमाल करने होंगे. Python 3 का सबसे नया वर्शन यहां से डाउनलोड किया जा सकता है.
स्क्रिप्ट, पिछले चरण में अपडेट की गई CSV फ़ाइलों का डेटा (ocd-division-ids/identifiers/country-in/*.csv) लेती है, फ़ाइलों में मौजूद वैल्यू की पुष्टि करती है, डेटा की गड़बड़ियों (खास वर्णों का इस्तेमाल वगैरह) की जांच करती है या डेटा के डुप्लीकेट वर्शन की जांच करती है, और नए ओसीडी आईडी को देश के टॉप लेवल की CSV फ़ाइल में लिखती है.
अगर अपडेट की गई CSV फ़ाइलों में कोई समस्या होती है, तो स्क्रिप्ट गड़बड़ी और चेतावनी के मैसेज दिखाती है. समस्याओं को ठीक करें और स्क्रिप्ट को फिर से चलाएं.
रीडमी फ़ाइल जोड़ें
कोई नया देश या कवरेज का नया लेवल जोड़ने पर (उदाहरण के लिए, पहले हमारे पास उस देश के लिए सिर्फ़ ओसीडी आईडी था, लेकिन अब पहले लेवल के एडमिन डिस्ट्रिक्ट जोड़ रहे हैं), तो README.md फ़ाइल जोड़ें या उसे अपडेट करें. इस फ़ाइल में, राजनैतिक भूगोल की खास जानकारी होनी चाहिए. जैसे:
- हम किस तरह के टाइप और उनकी भूमिकाएं इस्तेमाल करेंगे (जैसे, "
districts
इस देश में फ़र्स्ट लेवल एडमिन एरिया है"); - अलग-अलग टाइप के बीच संबंध होते हैं. जैसे, "कानूनी डिस्ट्रिक्ट हर ज़िले के हिसाब से असाइन किए जाते हैं और ज़िलों की सीमाओं को पार नहीं करते");
- कोई भी खास अपवाद (जैसे, "विदेशी नागरिकों के लिए एक कानूनी डिस्ट्रिक्ट है"); और
- किसी समीक्षक या उपयोगकर्ता के लिए संदर्भ उपलब्ध कराने के लिए, किसी भी उपयोगी Wikipedia पेज के लिंक.
पुल का अनुरोध करें
पुल का अनुरोध करने के लिए, इन दिशा-निर्देशों का पालन करें:
- जब यह प्रोसेस बिना किसी गड़बड़ी के पूरी हो जाए, तो नए लिखे गए टॉप लेवल देश-<2 अक्षर वाले country code>.csv फ़ाइल की जांच करें, ताकि यह पक्का किया जा सके कि इसमें अब ओसीडी आईडी के अपडेट किए गए/नए सेट शामिल हैं.
- पुल का अनुरोध करें और रिव्यूअर जोड़ें. इस पुल अनुरोध में, नीचे दी गई सभी CSV फ़ाइलों में किए गए बदलाव शामिल होने चाहिए.
- किसी खास देश में मौजूद CSV फ़ाइलें. उदाहरण
- टॉप लेवल देश-<2 अक्षर वाला देश कोड>.csv फ़ाइल. उदाहरण
- जब पुल के अनुरोध की समीक्षा करने और उसे देश के दो देशों के सदस्य मंज़ूरी देते हैं, तो उसे पैकेज के किसी एक मालिक/साथ मिलकर काम करने वाले ने मर्ज कर दिया होता है.