रोबोट का गलत समय पर अभिवादन वास्तविकता के भ्रम को क्यों तोड़ देता है
समय-विशिष्ट अभिवादन एक छोटा सा शिष्टाचार लग सकता है, लेकिन यह एक तथ्यात्मक दावा भी करता है: सिस्टम जानता है कि जहाँ बातचीत हो रही है वहाँ क्या समय हुआ है। यदि यह रात में "सुप्रभात" कहता है, तो यह बेमेलपन पूरी बातचीत को बनावटी या अविश्वसनीय महसूस करा सकता है। इसका व्यावहारिक समाधान यह है कि किसी भी समय के संदर्भ को वर्तमान टाइमस्टैम्प और एक स्पष्ट समय क्षेत्र (टाइम ज़ोन) पर आधारित किया जाए, अभिवादन को स्क्रीन पर अन्यत्र दिखाए गए समय के अनुरूप रखा जाए, और सीमांत मामलों (बाउंड्री केसेज़) का परीक्षण किया जाए। जब वह संदर्भ अनुपलब्ध हो, तो किसी की सुबह का अनुमान लगाने की तुलना में एक साधारण "नमस्ते" अधिक भरोसेमंद होता है।
गलत समय सिर्फ शब्दों की गलती से बढ़कर क्यों लगता है
"सुप्रभात" जैसा अभिवादन एक सामाजिक संकेत है, लेकिन यह जानकारी भी देता है। उपयोगकर्ता इसकी तुलना उसी स्क्रीन पर मौजूद घड़ी से या अपने स्थानीय समय से कर सकता है। जब दोनों में विरोधाभास होता है, तो यह बेमेलपन तुरंत दिखाई देता है और अभिवादन को स्वचालित या मशीनी महसूस करा सकता है। यह प्रत्यक्ष विसंगति से निकाला गया एक डिज़ाइन निष्कर्ष है; यह यह साबित नहीं करता कि प्रत्येक उपयोगकर्ता एक ही तरह से प्रतिक्रिया देगा।
संवादात्मक एजेंटों (कन्वर्सेशनल एजेंट्स) पर किए गए शोध से पता चलता है कि त्रुटियाँ इस बात को प्रभावित कर सकती हैं कि लोग किसी एजेंट को कैसे देखते हैं, हालाँकि प्रभाव त्रुटि के प्रकार के अनुसार भिन्न होते हैं। एक सन्निहित संवादात्मक एजेंट (एम्बॉडीइड कन्वर्सेशनल एजेंट) के अध्ययन में, बारी लेने की त्रुटियों (टर्न-टेकिंग एरर्स) ने पसंद किए जाने की संभावना को कम कर दिया, जबकि कुछ सुसंगतता त्रुटियों (कोहेरेंस एरर्स) का एक अलग प्रभाव था। उपयोगी सीख यह नहीं है कि गलत समय का अभिवादन हमेशा एक विशेष प्रतिक्रिया ही देगा, बल्कि यह है कि बातचीत की त्रुटियाँ तात्कालिक सामग्री से परे धारणाओं को आकार दे सकती हैं। Adobe Research, “Conversational Error Analysis in Human-Agent Interaction”
समय का अभिवादन ऐसी जागरूकता का संकेत भी दे सकता है जो शायद सिस्टम के पास न हो। घड़ी का वर्तमान समय जानना किसी व्यक्ति के जागने, वे क्या कर रहे हैं, या वे अपने दिन के किस हिस्से को "सुबह" मानते हैं, यह जानने जैसा नहीं है। विश्वसनीय टाइमकीपिंग सटीक शब्दों का समर्थन करती है; यह व्यक्तिगत समझ स्थापित नहीं करती।
टाइमस्टैम्प और ज्ञात समय क्षेत्र से शुरुआत करें
वर्तमान समय और उपयोगकर्ता के स्थानीय समय क्षेत्र को अलग-अलग इनपुट के रूप में मानें। एक टाइमस्टैम्प समयरेखा पर एक बिंदु की पहचान करता है; एक समय क्षेत्र उस पल को स्थानीय दीवार घड़ी के समय के रूप में व्यक्त करने के लिए आवश्यक नियम प्रदान करता है। W3C का मार्गदर्शन इन समय निरूपणों (टाइम रिप्रेजेंटेशन्स) में अंतर करता है और बताता है कि समय क्षेत्रों में ऑफ़सेट और डेलाइट-सेविंग परिवर्तनों के नियम शामिल होते हैं। यह अनुशंसा करता है कि स्थानीय समय की गणना के लिए आवश्यकता होने पर समय-क्षेत्र पहचानकर्ता (टाइम-ज़ोन आइडेंटिफ़ायर) का उपयोग किया जाए। W3C, “Working with Time and Timezones”
सॉफ्टवेयर में उत्पन्न अभिवादन के लिए, एक मजबूत क्रम यह है:
सिस्टम क्लॉक या किसी अन्य विश्वसनीय समय स्रोत से वर्तमान पल प्राप्त करें।
एक ऐसा समय-क्षेत्र निर्धारण प्राप्त करें जो लक्षित उपयोगकर्ता या बातचीत के संदर्भ का प्रतिनिधित्व करने के लिए जाना जाता हो।
टाइम-ज़ोन-अवेयर फ़ॉर्मेटर का उपयोग करके उस पल को उस क्षेत्र में बदलें।
परिवर्तित स्थानीय समय के अनुसार अभिवादन चुनें, या यदि संदर्भ अनुपलब्ध या पुराना है तो समय का संदर्भ छोड़ दें।
JavaScript में, Intl.DateTimeFormat दिनांक फ़ॉर्मेट करने के लिए timeZone विकल्प स्वीकार करता है। यदि कोई एप्लिकेशन उस विकल्प को छोड़ देता है, तो होस्ट परिवेश के वर्तमान समय क्षेत्र का उपयोग किया जाता है, जो कि उपयोगकर्ता के बजाय सर्वर या डिवाइस का ज़ोन हो सकता है। फ़ॉर्मेटर उसी पल से इंटरफ़ेस में दिखाए गए समय और तारीख को भी उत्पन्न कर सकता है। MDN, “Intl.DateTimeFormat”
भविष्य के या आवर्ती समय व्यवहार के लिए केवल एक संख्यात्मक ऑफ़सेट पर्याप्त नहीं हो सकता है। Europe/London जैसा एक नामित ज़ोन क्षेत्रीय नियमों के एक सेट का प्रतिनिधित्व करता है; ऑफ़सेट तारीख के साथ बदल सकता है। IANA बताता है कि सीमाओं, UTC ऑफ़सेट और डेलाइट-सेविंग नियमों में बदलाव को दर्शाने के लिए उसके समय-क्षेत्र डेटाबेस को अपडेट किया जाता है। इसलिए सॉफ्टवेयर उपयुक्त ज़ोन और उचित रूप से अद्यतित समय-क्षेत्र डेटा दोनों पर निर्भर करता है। IANA, “Time Zones”
अभिवादन और दृश्यमान घड़ी का एक ही स्रोत रखें
अभिवादन और ऑन-स्क्रीन घड़ी एक ही टाइमस्टैम्प और उसी समय-क्षेत्र संदर्भ से प्राप्त होने चाहिए। यदि एक घटक ब्राउज़र के स्थानीय ज़ोन का उपयोग करता है और दूसरा सर्वर डिफ़ॉल्ट का उपयोग करता है, तो वे आधी रात के आसपास या जब कोई व्यक्ति यात्रा करता है, तब असहमत हो सकते हैं। यदि इंटरफ़ेस एक तारीख प्रदर्शित करता है, तो अभिवादन के साथ-साथ इसकी भी जांच करें: एक स्थानीय तारीख सर्वर के स्थान की तारीख से भिन्न हो सकती है।
एक उपयोगी कार्यान्वयन नियम यह है कि बातचीत की घटना के लिए एक बार स्थानीय समय की गणना की जाए और उस परिणाम को अभिवादन लॉजिक और डिस्प्ले दोनों में पास किया जाए। बातचीत के टेक्स्ट, डिवाइस संदर्भ, या याद रखे गए शेड्यूल से समय का अनुमान लगाने के लिए भाषा मॉडल (लैंग्वेज मॉडल) से अलग से पूछने से बचें। मॉडल एक सत्यापित मान से शब्द चुन सकता है, लेकिन घड़ी की गणना समय डेटा से ही आनी चाहिए।
यदि किसी उपयोगकर्ता ने समय क्षेत्र प्रदान नहीं किया है और उत्पाद के पास कोई विश्वसनीय स्थानीय सेटिंग नहीं है, तो दिन के किसी विशिष्ट हिस्से का दावा करने से बचें। "नमस्ते" विभिन्न ज़ोन और समयों में सटीक बना रहता है। यदि किसी कार्य के लिए स्पष्ट ज़ोन आवश्यक है, तो सर्वर के ज़ोन को चुपचाप उपयोगकर्ता का मानने के बजाय स्पष्ट और सरल तरीके से इसके लिए पूछें।
अभिवादन की सीमाओं को सोच-समझकर चुनें
सुबह, दोपहर और शाम के बीच कोई सार्वभौमिक, तथ्यात्मक सीमा नहीं है। टीमों को उत्पाद के शब्दों की पसंद के रूप में स्थानीय-समय की सीमाओं को परिभाषित करना चाहिए, फिर यह सत्यापित करना चाहिए कि चुने गए वाक्यांश इच्छित टोन के अनुकूल हैं। इन सीमाओं को कॉन्फ़िगरेशन या कोड में स्पष्ट रखें ताकि समीक्षक देख सकें कि प्रत्येक सीमा पर क्या होता है। ऐसी शब्दावली से बचें जो किसी दिनचर्या की जानकारी का संकेत देती हो, जैसे "आप जल्दी उठ गए," जब तक कि उपयोगकर्ता ने वास्तव में वह जानकारी प्रदान न की हो और वह प्रासंगिक न हो।
सुरक्षित फ़ॉलबैक डिज़ाइन का हिस्सा होना चाहिए। यदि टाइमस्टैम्प अमान्य है, समय-क्षेत्र पहचानकर्ता गायब है या अपरिचित है, या रूपांतरण विफल हो जाता है, तो एक तटस्थ अभिवादन का उपयोग करें। उस विकल्प को स्पष्ट किए बिना सर्वर क्लॉक को प्रतिस्थापित न करें। यदि घड़ी के समय की रीडिंग में देरी हो सकती है, तो एक व्यापक "नमस्ते" ऐसे अभिवादन की तुलना में बेहतर रह सकता है जो संदेश के प्रदर्शित होने की प्रतीक्षा के दौरान ही गलत हो जाता है।
संक्रमणों और संदर्भ का परीक्षण करें, सिर्फ एक सामान्य दोपहर का नहीं
एक सामान्य स्थानीय समय पर किया गया हैप्पी-पाथ परीक्षण कई समय-संबंधी दोषों को प्रकट नहीं करेगा। निश्चित टाइमस्टैम्प और स्पष्ट ज़ोन का उपयोग करें ताकि परिणाम दोहराए जा सकें, और ऐसे मामलों की जाँच करें जैसे:
प्रत्येक अभिवादन सीमा से ठीक पहले और बाद का समय।
स्थानीय मध्यरात्रि, जिसमें स्थानीय डिस्प्ले और सर्वर के बीच तारीख का बदलाव शामिल है।
दो ज़ोन जिनमें एक ही पल में अलग-अलग स्थानीय तारीखें हों।
किसी ऐसे ज़ोन में डेलाइट-सेविंग संक्रमण जो इसका पालन करता है।
आधे घंटे या पौन घंटे (15 मिनट) के ऑफ़सेट वाला ज़ोन।
एक गायब या अमान्य ज़ोन, जहाँ अपेक्षित परिणाम एक तटस्थ अभिवादन हो।
एक विलंबित संदेश, यह जाँचना कि क्या इसके शब्द जनरेशन समय या डिस्प्ले समय पर आधारित हैं—और क्या वह विकल्प उत्पाद के व्यवहार के अनुरूप है।
ये मामले इस बात से उत्पन्न होते हैं कि समय क्षेत्र किस प्रकार पलों को स्थानीय दीवार घड़ी के समय से मैप करते हैं और इस तथ्य से कि क्षेत्रीय घड़ी के नियम बदल सकते हैं। एक परीक्षण सुइट को एक अंतर्निहित मशीन डिफ़ॉल्ट पर निर्भर रहने के बजाय चुने गए व्यवहार को दृश्यमान बनाना चाहिए। IANA रिलीज़ इतिहास वास्तविक नियम परिवर्तनों का दस्तावेजीकरण करता है, जो इस बात की याद दिलाता है कि परीक्षण परिवेश और तैनात समय-क्षेत्र डेटा पुराने हो सकते हैं। IANA, “Time Zone Database Releases”
उत्पाद टीमों के लिए एक व्यावहारिक निर्णय नियम
समय-विशिष्ट अभिवादन का उपयोग केवल तभी करें जब तीन चीजें उपलब्ध हों: एक भरोसेमंद वर्तमान पल, बातचीत के संदर्भ से जुड़ा एक समय क्षेत्र, और अभिवादन तथा किसी भी दृश्यमान घड़ी के बीच सुसंगत फ़ॉर्मेटिंग। यदि कोई भी तत्व अनिश्चित है, तो तटस्थ शब्दों का चयन करें। यदि सिस्टम केवल समय जानता है, तो वह दिन के समय का सटीक संदर्भ दे सकता है; उसे यह संकेत नहीं देना चाहिए कि वह व्यक्ति के कार्यक्रम, मनोदशा या गतिविधि को जानता है।
एक अभिवादन अपने आप में किसी सहायक को विचारशील महसूस नहीं करा सकता। इसका मूल्य इस बात पर निर्भर करता है कि यह जो छोटा सा दावा करता है वह शेष इंटरफ़ेस से मेल खाता है या नहीं। सटीक, संयमित शब्द बातचीत को एक सुसंगत प्रारंभिक बिंदु देते हैं, जबकि व्यक्तिगत संदर्भ को उस व्यक्ति के लिए छोड़ देते हैं जो वास्तव में इसे प्रदान कर सकता है।
