सॉफ्टवेयर बॉट

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

सॉफ़्टवेयर बॉट्स का उपयोग सामान्यतः कार्यों को निष्पादित करने, कार्यों का सुझाव देने, होने वाले संवाद में संलग्न होने और सॉफ़्टवेयर प्रोजेक्ट के सामाजिक और सांस्कृतिक पहलुओं को बढ़ावा देने के लिए किया जाता है।

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

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

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

लेजी (सॉफ्टवेयर) टूल में सॉफ्टवेयर बॉट विकसित करने के लिए एपीआई को सम्मिलित किया जाता है। टूडू सूचियों पर नज़र रखने, स्टैंडअप बैठकों के समन्वय और समर्थन टिकटों के प्रबंधन के लिए लेजी बॉट हैं।चैटबॉट कंपनी के उत्पादों की बात करे तो कस्टम स्लैक बॉट बनाने की प्रक्रिया को और अधिक सरल हैं।

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

वर्गीकरण और वर्गीकरण फ्रेमवर्क
लेबेफ एट अल साहित्य समीक्षा के आधार पर बॉट्स को चिह्नित करने के लिए वर्गीकरण प्रदान करता हैं। यह 3 मुख्य पहलुओं से बना है: (i) पर्यावरण के गुण जिसमें बॉट बनाया गया था (ii) स्वयं बॉट के आंतरिक गुण और (iii) अपने पर्यावरण के भीतर बॉट की अंतःक्रिया इसके तीन मुख्य भाग हैं। वे प्रत्येक मुख्य पहलू के अनुसार पहलुओं को उप-पहलुओं के सेट में विस्तृत करते हैं।

पैकारी और वैन डेर होक ने सॉफ्टवेयर बॉट्स की तुलना करने में सक्षम करने के लिए आयामों के सेट को परिभाषित किया, विशेष रूप से चैटबॉट्स पर लागू किया गया हैं। इसके परिणामस्वरूप छह आयाम हुए:
 * प्रकार: बॉट का मुख्य उद्देश्य (सूचना, सहयोग या स्वचालन)
 * बातचीत की दिशा (इनपुट, आउटपुट, या द्वि-दिशात्मक)
 * मार्गदर्शन (मानव-मध्यस्थ, या स्वायत्त)
 * पूर्वानुमेयता (नियतात्मक, या विकसित)
 * इंटरेक्शन शैली (लेजी, वैकल्पिक शब्दावली, संबंध-निर्माता, मानव-समान)
 * संचार चैनल (पाठ, आवाज, या दोनों)

एर्लेनहोव एट अल ने बॉट और साधारण ऑटोमेशन के बीच अंतर का सवाल उठाया, क्योंकि सॉफ्टवेयर बॉट्स के नाम पर किए गए बहुत से शोध विभिन्न विभिन्न उपकरणों का वर्णन करने के लिए बॉट शब्द का उपयोग करते हैं और कभी-कभी चीजें केवल पुराने विकास उपकरण हैं। 100 से अधिक डेवलपर्स के साक्षात्कार और सर्वेक्षण के पश्चात लेखकों ने पाया कि नहीं, बल्कि तीन परिभाषाएँ समुदाय पर प्रभावी हैं। उन्होंने इन परिभाषाओं के आधार पर तीन व्यक्तित्वों का निर्माण किया और तीन व्यक्तियों को बॉट के रूप में देखने के बीच का अंतर मुख्य रूप से अलग के साथ संबंध है, जिसमें मानव लक्षणों का समूह मुख्य हैं। लेखक अनुशंसा करते हैं कि बॉट्स के बारे में शोध या लेखन करने वाले लोग अपने कार्य को किसी व्यक्ति के संदर्भ में रखने की कोशिश करें क्योंकि व्यक्तियों की उपकरणों के साथ अलग-अलग अपेक्षाएँ और समस्याएं होती हैं।
 * चैट बॉट व्यक्तित्व (चार्ली) मुख्य रूप से बॉट्स को उपकरण के रूप में सोचता है जो डेवलपर के साथ प्राकृतिक भाषा इंटरफ़ेस (सामान्यतः आवाज या चैट) के माध्यम से संचार करता है, और इस बारे में बहुत कम देखभाल करता है कि बॉट का उपयोग किस कार्य के लिए किया जाता है या यह वास्तव में इन कार्यों को कैसे लागू करता है।
 * स्वायत्त बॉट व्यक्तित्व (एलेक्स) बॉट्स को उपकरण के रूप में सोचता है जो अपने आप कार्य करता है (डेवलपर से अधिक इनपुट की आवश्यकता के बिना) ऐसे कार्य पर जो सामान्य रूप से मानव द्वारा किया जाता है।
 * स्मार्ट बॉट व्यक्तित्व (सैम) उपकरण कितना स्मार्ट (तकनीकी रूप से परिष्कृत) है, इसके माध्यम से बॉट्स और सादे पुराने विकास उपकरणों को अलग करता है। सैम इस बात की कम परवाह करता है कि उपकरण कैसे संचार करता है, अपितु इस बारे में अधिक कि क्या यह किसी कार्य को निष्पादित करने में असामान्य रूप से अच्छा या अनुकूली है।

उल्लेखनीय बॉट्स का उदाहरण

 * डिपेंडाबॉट और रेनोवेटबॉट सॉफ्टवेयर निर्भरता को अपडेट करते हैं और कमजोरियों का पता लगाते हैं। (https://dependabot.com/)
 * प्रोबोट ऐसा संगठन है जो गिटहब के लिए बॉट बनाता है और उसका रखरखाव करता है। प्रोबोट का उपयोग करने वाले उदाहरण बॉट निम्नलिखित हैं।
 * ऑटो असाइन (https://probot.github.io/apps/auto-assign/)
 * लाइसेंस बॉट (https://probot.github.io/)
 * सेंटीमेंट बॉट (https://probot.github.io/apps/sentiment-bot/)
 * अनट्रिविअलाइज़र बॉट (https://probot.github.io/apps/untrivializer/)
 * रिफैक्टरिंग-बॉट (Refactoring-Bot): स्थिर कोड विश्लेषण के आधार पर रीफैक्टरिंग प्रदान करता है
 * बॉट (LGTM) ऐसा उत्पाद है जो कोड शैली और असुरक्षित कोड प्रथाओं के लिए गिटहब पर पुल अनुरोधों का निरीक्षण करता है।

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

बॉट विशेष नियमों के अधीन हो सकते हैं। उदाहरण के लिए, गिटहब सेवा की शर्तें 'बॉट' की अनुमति नहीं देता है अपितु 'मशीन अकाउंट' को स्वीकार करता है, जहां 'मशीन अकाउंट' में दो गुण होते हैं:

1) मानव बॉट के कार्यों के लिए पूर्णतयः उत्तरदायी है।

2) यह अन्य अकाउंट नहीं बना सकता है।

यह भी देखें

 * चैटबॉट
 * डेमन (कंप्यूटिंग)
 * इंटरनेट बॉट
 * सॉफ्टवेयर एजेंट