मेन्यू

देश नाम मिलान और उपनाम: पहले एक विहित नाम तय करें

देश नाम मिलान और उपनाम वहाँ विफल होते हैं जहाँ कोई विहित नाम तय नहीं हुआ। नाम, कोड और पहचानकर्ता तीन अलग परतें हैं और इनका क्रम मायने रखता है।

प्रकाशित

  • नाम मिलान
  • उपनाम
  • डेटा गुणवत्ता

देश नाम मिलान और उपनाम उस क्षण शुरू होते हैं जब किसी सूची में एक देश को दो तरह से लिखा गया हो और सिस्टम को तय करना हो कि ये एक ही हैं या नहीं। समस्या मामूली लगती है जब तक सूची छोटी है, और फिर अचानक बड़ी हो जाती है।

कारण यह है कि देश के नाम में एक वैध रूप नहीं होता। लंबा आधिकारिक रूप, छोटा प्रचलित रूप, स्थानीय अक्षरों वाला रूप, संक्षिप्त नाम, पुराना नाम, और वे नाम जो किसी विशेष संदर्भ में ही सही होते हैं — ये सब मौजूद हैं और ये सब इस्तेमाल भी होते हैं।

मिलान से पहले एक विहित नाम क्यों ज़रूरी है?

क्योंकि मिलान एक तुलना है और हर तुलना को एक ऐसा आधार चाहिए जिस पर वह हो। जब तक किसी देश के लिए एक मान को विहित नहीं ठहराया जाता, तब तक हर तुलना एक तालिका में से कोई मनमाना रूप उठा लेती है और नियम चुपचाप फ़ाइल में प्रविष्टियों के क्रम पर निर्भर हो जाता है।

यही कारण है कि नाम मिलान की समस्याएँ अस्थिर दिखती हैं। वही जोड़ा कभी मिल जाता है और कभी नहीं, इसलिए नहीं कि नियम बदला, बल्कि इसलिए कि इनपुट का क्रम बदल गया। जो सुइट इसे पकड़ती है वह दो नियम लिखकर रखती है, जिन्हें अक्सर कोई पूर्ण अंतर नहीं मिलता।

विहित नाम तय करना सौंदर्य का निर्णय नहीं है। वह यह घोषणा है कि संचय, तुलना और प्रदर्शन में कौन सा रूप आधार है, और बाकी सब उसके संदर्भ के रूप हैं। एक बार यह घोषणा हो जाने पर मिलान के नियमों को कोई ऐसा आधार मिल जाता है जिस पर खड़े हो सकें।

नाम, कोड और पहचानकर्ता की तीन परतें

तीन परतें हैं और उनका काम अलग है। उन्हें मिलाना ही अधिकतर नाम-मिलान दोषों का स्रोत है।

परत क्या है उसका काम कब बदलती है
विहित नाम सिस्टम का चुना हुआ प्रदर्शित रूप दिखाना और छाँटना जब सिस्टम निर्णय ले
कोड दो अक्षर या तीन अक्षर वाला मानक चिह्न जोड़ना और अंतरापृष्ठ करना जब कोई मानक निकाय बदले
आंतरिक पहचानकर्ता आपका अपना स्थायी मान संचय, कुंजी और संदर्भ लगभग कभी नहीं

मिलान किसी नाम से नहीं, पहचानकर्ता से होना चाहिए। नाम पहले उस पहचानकर्ता तक पहुँचने का रास्ता है, और रास्ता बदल सकता है। यदि मिलान किसी कोड पर हो रहा है, तो यह पहले समझ लेना ज़रूरी है कि वह कोड किस व्यवस्था का है, क्योंकि दो व्यवस्थाएँ एक ही अक्षरों का इस्तेमाल करते हुए अलग चीज़ें दर्शा सकती हैं। व्यवस्थाओं के बीच के संबंध देश और प्रभाग कोड मार्गदर्शिका में समझाए गए हैं।

उपनाम कहाँ से आते हैं?

उपनाम पाँच आम स्रोतों से आते हैं, और हर स्रोत एक अलग तरह की त्रुटि लाता है।

  • परिचित छोटा रूप। लंबे औपचारिक नाम की जगह लोग जो छोटा नाम इस्तेमाल करते हैं। यह सबसे आसान स्रोत है और इसमें यह जाल है कि कुछ छोटे रूप एक से अधिक देशों पर लागू हो सकते हैं।
  • पुराना नाम। ऐतिहासिक रिकॉर्डों में आने वाला वह नाम जो अब वर्तमान नहीं है। इसे हटाया नहीं जा सकता, केवल चिह्नित किया जा सकता है।
  • भाषांतरित रूप। स्थानीय भाषा में वह नाम जो उस देश के निवासी स्वयं इस्तेमाल करते हैं। यह मिलान के लिए अक्सर अनिवार्य है और कभी प्रदर्शन के लिए उपयुक्त नहीं।
  • अंतरराष्ट्रीय रूप। किसी अन्य भाषा में प्रचलित वह नाम जो स्रोत दस्तावेज़ों में आता है।
  • आकस्मिक वर्तनी। वह बदलाव जो किसी ने खुद जोड़ा। यह उपनाम नहीं, इनपुट है, और इसे उपनाम तालिका में जगह नहीं मिलनी चाहिए।

केवल पहले तीन स्रोत उपनाम तालिका में जाने लायक़ हैं। चौथे को मिलान में व्यवहार करना पड़ता है पर वह विहित नाम नहीं बन सकता, और पाँचवें को साफ़ करने या अस्वीकार करने की ज़रूरत होती है।

अक्षर, चिह्न और दिशा का असर

तुलना करने से पहले कुछ सामान्यीकरण अनिवार्य हैं, और वे मिलान से पहले किए जाने चाहिए, बाद में नहीं।

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

यूनिकोड की दृष्टि से एक और बात जोड़नी पड़ती है। एक ही दिखने वाला अक्षर यूनिकोड में एक से अधिक तरीक़ों से लिखा हो सकता है, और दो अलग बाइट अनुक्रम एक ही अक्षर दर्शा सकते हैं। जो तुलना इन्हें अलग मानेगी, वह ऐसा अंतर दिखाएगी जिसे मनुष्य देख ही नहीं सकता, और ऐसी विफलता ढूँढ़ना कष्टकर है। इसलिए तुलना से पहले पाठ को एक तय सामान्य रूप में लाना मिलान का हिस्सा है, कोई सफ़ाई का काम नहीं।

जिन भाषाओं में अक्षर जुड़कर एक नया रूप बनाते हैं, वहाँ यह और भी ज़रूरी है, क्योंकि स्थानीय वर्तनी और संचित रूप अक्सर भिन्न होते हैं और किसी भी एक को श्रेष्ठ ठहराना उपयोगकर्ता को गलत ठहराना बन जाता है।

जब एक छोटा रूप कई देशों पर लागू हो तो क्या करें?

यह उपनाम-आधारित मिलान का केंद्रीय जोखिम है, और इसका कोई साफ़-सुथरा तकनीकी उपाय नहीं है।

एक छोटा रूप जिसका कोई विशेष अर्थ नहीं, वह शब्दकोश में विरोधाभास पैदा करता है। जिस मिलान नियम को एक ही लक्ष्य मिलना है और दो मिलते हैं, उसे तय करना है कि अस्वीकार करे, पहला ले, या पूछे। तीनों बचाव योग्य हैं और तीनों का परिणाम अलग होता है, इसलिए चुनाव परीक्षण में बताया जाना चाहिए।

काम का नियम यह है कि अस्पष्ट उपनाम को किसी मान में बदलने के बजाय अलग रखा जाए। जब कोई मिलान दो लक्ष्यों पर पहुँचे, तो उसे ऐसे संकेत के रूप में लौटाया जाए जिसे बुलाने वाला सँभाल सके, न कि चुपचाप किसी को चुन लेने के रूप में। पहला मान ले लेने वाला सिस्टम अक्सर वर्षों तक गलत व्यवहार करता रहता है और कोई इसकी शिकायत भी नहीं करता, क्योंकि त्रुटि एक-दूसरे से मिलते-जुलते देशों के बीच होती है।

एक और परत यह है कि जिन भाषाओं में नाम की परंपरा और नाम का रूप एक-दूसरे से बँधे हैं, वहाँ अकेला देश नाम भी मिलान का पर्याप्त संकेत नहीं रहता। लोकेल के अनुसार नाम डेटा पर लिखी मार्गदर्शिका दिखाती है कि नाम क्षेत्र के अनुसार कैसे बदलते हैं, जिससे यह भी पता चलता है कि मिलान के लिए देश का नाम भर पर्याप्त क्यों नहीं होता।

डेवलपरों के लिए: उपनाम तालिका विहित नाम की जगह न ले

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

इस प्रक्रिया का हर कदम परीक्षण-योग्य होना चाहिए, इसलिए उन्हें अलग-अलग कार्यों की तरह संरचित करें: पाठ को सामान्य रूप में लाना, उपनाम को पहचानकर्ता पर प्रक्षेपित करना, और अनिश्चितता को परिणाम के रूप में लौटाना। इस बँटवारे के बिना मिलान की हर ख़राबी एक विशाल अंतर बन जाती है, और उसके भीतर कोई अकेली पंक्ति तय नहीं की जा सकती।

उपनाम की प्रविष्टियाँ बनाए गए मानों से बनाएँ, और किसी जीवित ग्राहक के लिखे रूप को कभी तालिका में न डालें। जिस तालिका में किसी असली व्यक्ति ने लिखा हुआ पाठ हो, उसे परीक्षण से बाहर निकालना कष्टकर होता है। देश और क्षेत्र निर्देशिका दिखाती है कि एक विहित नाम रखने का क्या अर्थ है और जापान प्रविष्टि जैसा पृष्ठ दिखाता है कि स्थानीय और अंतरराष्ट्रीय रूप साथ कैसे रखे जा सकते हैं।

यहाँ दिखाए गए नाम, उपनाम, कोड और सामान्यीकरण के उदाहरण केवल मिलान का तर्क समझाने के लिए गढ़े गए हैं। वे किसी देश के वास्तविक नामों की पूरी सूची नहीं हैं, वे किसी ऐसी संस्था के डेटा से नहीं लिए गए हैं जो इस तरह की तालिका रखती हो, और इन्हें किसी नामकरण संबंधी विवाद में प्रमाण नहीं माना जाना चाहिए।

आगे के कदम

अपने सिस्टम से हर वह जगह निकालें जहाँ दो देश नाम एक-दूसरे से तुलना किए जाते हैं, और हर एक के सामने लिखें कि वह किस मान की तुलना करता है। जहाँ वह किसी नाम की तुलना कर रहा है, वहाँ वह नियम चल रहा है जिसे किसी पहचानकर्ता पर चलना चाहिए था। परीक्षण डेटा के लिए देश चुनने की मार्गदर्शिका बताती है कि मिलान व्यवहार को परखने वाले मामले डिफ़ॉल्ट सेट में कैसे रखें। वह यहाँ है: परीक्षण डेटा के लिए देश चुनना।

आगे पढ़ें

86 देशों के लिए पता और पहचान डेटा प्रारूप संबंधित गाइड

86 देशों के लिए पता और पहचान डेटा प्रारूप संबंधित गाइड

यहाँ केवल इस पृष्ठ के विषय से जुड़े लेख दिखाए गए हैं।