शोधयंत्राचा शोध - भाग ६ - दर्शनी भाग
या आधीच्या लेखात आपण शोधयंत्राच्या सूचिकार ह्या भागाचा परिचय करून घेतला. हा सूचिकार त्याआधीच्या भागाने, म्हणजे संचारकाने, तयार केल्या संकेतस्थळांवरील पृष्ठे, आणि त्यातील मजकूर ह्या यादीला उलटे करतो, आणि त्यातून विश्वजालावर दिसणारे शब्द कुठल्या पृष्ठांत आहेत, याची यादी तयार करतो.
यानंतरचा महत्वाचा भाग म्हणजे, शोधयंत्राचा आपल्याला प्रत्यक्ष दिसणारा भाग, म्हणजे दर्शनी भाग (फ्रंट-एंड). हे विश्वजाळावरील एक इतर सामान्य पृष्ठांसारखे दिसणारे एक पृष्ठ. त्यात असतो एक रकाना, तो आपण भरायचा. आपल्याला ज्या विषयावरची माहिती हवी आहे, त्या एका किंवा एकापेक्षा जास्त शब्दांनी. आणि कळफलकावर (की-बोर्ड) एंटरची कळ बडवायची किंवा त्या पृष्ठावरच्या 'शोधा' ह्या दुव्यावर टिचकी मारायची. म्हणजे ती विनंती शोधयंत्राच्या ह्या भागाला पोहोचते. ह्या विनंतीतून त्याला कळते की तुम्हाला कोणता शब्द कुठल्या पृष्ठांवर आलाय ती माहिती हवीय. त्या शब्दाचा आपल्याजवळ असलेल्या यादीतून शोध घेऊन, हा दर्शनी भाग आपल्याला लगेच उत्तर देतो एक एच-टी-एम-एल भाषेत संबंधित दुव्यांनी भरलेले पृष्ठ दाखवून. ह्याला म्हणतात शोधफलितपृष्ठ. किंवा इंग्रजीत म्हणायचे झाले, तर सर्च रिझल्ट्स पेज.
ह्या दर्शनी भागाचे काम समजवून घेण्यासाठी आपण पुन्हा आपल्या जुन्याच उदाहरणाकडे जाऊ या. म्हणजे घरातील वस्तूंची खोलीनुसार यादी करण्याच्या उदाहरणाकडे. सुरुवातीला तुम्ही संचारक होऊन घरातल्या सर्व खोल्या धुंडाळल्या आणि प्रत्येक खोलीतील वस्तूंची खोलीनुसार यादी केली. नंतर तुम्ही सूचिकार झालात, आणि ही यादी पूर्णपणे उलटी केली. म्हणजे, प्रत्येक वस्तूसाठी दुसऱ्या वहीत एक पान केलेत, आणि त्यात वस्तूच्या नावाच्या शीर्षकाखाली, ती वस्तू ज्या खोलीत आहे, त्या खोल्यांची नावे लिहिलीत. आता, त्या घरासमोर ती दुसरी वही घेऊन उभे रहा. पदपथावरून येणारे-जाणारे लोक तुमच्यासमोर येऊन थांबतील. त्यांना ह्या घरात काय आहे, याचे कुतूहल असेल. आणि ते तुम्हाला विचारतील, की अहो, या घरात लेखण्या आहेत का? आणि असल्यास कुठल्या खोल्यांत आहेत? काहीही काळजी करू नका. तुमच्या वहीत त्याचे उत्तर आहे. पटकन वही उघडा, लेखणीचे पृष्ठ कुठे आहे त्या वहीत? अरे, तुम्ही तर पहिले पान उघडून लेखणीचे पृष्ठ शोधायला सुरुवात केलीत. असे कसे चालेल? ती बघा, विचारणा करणाऱ्यांची केवढी रांग लागली आहे! पहिल्या व्यक्तीला उत्तर देतानाच तुमचा एवढा वेळ गेला, तर इतर व्यक्ती कंटाळून निघून जातील ना?
प्रश्न आला की लगेच उत्तर मिळावे, ही आपली अपेक्षा असते. एवढा वेळच घालवायचा होता, तर मग संचारक आणि सूचिकार बनून ही वही कशाला बनवली आपण? विचारणा आल्यावर लगेच उत्तर मिळायला हवे, म्हणूनच ना? पण हे कसं बरं जमणार? घरात इतक्या वस्तू आहेत, त्यातल्या कुठल्या वस्तूविषयी विचारणा होणार, हे आधी माहिती असतं, तर त्यांची एक छोटी वही आपण वेगळी केली नसती का? ह्या प्रश्नाचे उत्तर द्यायला मदत करते ती आज्ञावली म्हणजे हा शोधयंत्राचा दर्शनी भाग.
आपण सर्वांनी शब्दकोश (डिक्शनरी) पाहिलाच आहे. लाखो शब्दांचे अर्थ त्यात असतात. कुणाला कधी कोणत्या शब्दाचा अर्थ शोधायचा असेल, हे कसे कळणार? मग एखाद्या शब्दाचा अर्थ लवकर शोधता यावा, म्हणून ह्या शब्दकोशकारांनी काय केले आहे? शब्द एका सर्वज्ञात क्रमाने मांडले आहेत. आणि एवढेच नाही, तर आद्याक्षरानुसार शब्दकोशाचे विभागही केलेले आहेत. ते विभाग शब्द शोधणाऱ्याला बाहेरून दिसावे अशी सोयही केली आहे. त्यामुळे ‘भ’ पासून सुरू होणारे शब्द शोधायला आपल्याला शब्दकोशाचे पहिल्या पानापासून वाचन करावे लागत नाही. बाहेरूनच आपल्याला दिसते, की 'भ' हे आद्याक्षर असलेले शब्द कुठल्या पानापासून सुरू होतात ते. आणि आपण ‘भ’ अक्षराने सुरू होणाऱ्या शब्दांच्या पहिल्या पानावर लगेच जाऊ शकतो. पण मराठी भाषेत 'भ' ह्या अक्षराने सुरू होणारे शब्द देखील हजारो असतील. रस्त्यावरच्या भांडणात आपण ह्यातील बहुतेक शब्द ऐकलेच असतील. असो. त्यातूनही आपल्याला हवा असलेला 'भवितव्य' हा चतुराक्षरी शब्द कसा शोधावा? कारण 'भ'ने सुरू होणारे १००० शब्द समजले, आणि शब्दकोशातल्या प्रत्येक पानावर २० शब्दांचे अर्थ आहेत असे समजले, तरी प्रत्येक शब्दासाठी सरासरी २५ पाने चाळावी लागतील. नाही का? मग आपण असे करू, की हे सगळे शब्द अनुक्रमे लावले आहेत असे समजू. त्या पन्नास पानांपैकी पंचविसावे पान निवडू. त्यातला पहिला शब्द शब्दकोशातील शब्दांच्या क्रमात आपल्याला हव्या असलेल्या शब्दाच्या आधी आहे, की नंतर? आधी असेल, तर आपल्याला त्या पानाच्या पुढच्या पंचवीस पानात तो शब्द शोधायला लागेल, अन्यथा आधीच्या पंचवीस पानात. आता त्या पंचवीस पानातले बारावे पान निवडा, आणि हाच तर्क करा. असे करत करत आपण एका पानावर पोहोचू. त्या पानातल्या वीस शब्दांत हा शब्द कुठे आहे? आपण आता पान शोधण्यात जो कृतिक्रम वापरला, तोच ह्या पानावरच्या शब्दांतही वापरू. म्हणजे आपल्याला तो शब्द मिळेल.
शब्दकोशात त्या शब्दाचा अर्थ दिलेला असतो. आपल्या सूचिकाराने केलेल्या यादीत तो शब्द विश्वजालातील ज्या पृष्ठांत आहे, त्या पृष्ठांची यादी असते. आणि शोधयंत्राला तीच तर उत्तर म्हणून साभार परत करायची असते. मग आपले काम झालेच. ही सगळी दुव्यांची यादी त्या शब्दाविषयीच्या पृच्छेला शोधफलितपृष्ठ म्हणून द्यायची आहे!
आपण हा शब्द शोधायला ज्या कृतिक्रमाची मदत घेतली त्याला ह्या शिष्ट संगणक वैज्ञानिकांच्या भाषेत द्विमान शोध (बायनरी सर्च) म्हणतात. जणू ह्याचा त्यांनीच शोध लावलाय अशा तोऱ्यात वावरत असतात हे लोक. पण आपल्याला हे कसे करायचे ते आधीच माहिती होते, नाही का? आणि हो, शब्दांना आद्याक्षरांनुसार वेगळे करून एकाच आद्याक्षरापासून सुरू होणारे सगळे शब्द लगेच शोधून काढायचे, ह्याला हे शिष्ट लोक म्हणतात 'हॅश टेबल'. काहीतरी नवीन नावे ठेवून आपले सामान्य लोकांचे अज्ञान दाखवून द्यायचे, आणि स्वत:चे महत्व वाढवून घ्यायचे, ह्यात ह्या संगणक तज्ञांना मर्दुमकी वाटते. त्यामुळे आपल्याला ह्या गोष्टी आधीच माहिती होत्या, हे आपण पदोपदी त्यांना सांगायला हवे, नाही का?
पण त्यांनी देखील ह्याचा गणितातून अभ्यास केलाय, आणि निर्बुद्ध संगणकाला आपण नेहमी जे करीत होतो, ते शिकवले आहे, हेदेखील मानायला हवे. खरे ना? आणि ह्या शब्दकोशातून शब्द शोधण्याच्या कामात त्यांनी किती सुधारणा केल्या आहेत? अगणित! आता असे बघा, तुम्हाला शब्दकोशातून ‘भवितव्य’ हा शब्द शोधायचाय. आपण 'भ' ह्या आद्याक्षरापासून सुरू होणाऱ्या शब्दांची पन्नास पाने उघडली. मधले पंचविसावे पान बघितले, त्यात पहिला शब्द होता 'भव्यदिव्य'. आपल्याला कळले, की आता 'भवितव्य' हा शब्द त्यापासून जवळच असणार. त्यामुळे आधीच्या पंचवीस पानांपैकी बारावे पान उघडून बघण्याऐवजी, सध्याच्या पानाच्या आधीचेच पान उघडून बघितले, तर काय हरकत आहे? ह्या संगणक वैज्ञानिकांनी हेही तंत्र संगणकाला शिकवले! आपल्याला हवा असलेला शब्द आणि आत्ताच्या पानात उपलब्ध असलेला शब्द ह्यात अंतर किती, त्यानुसार उरलेल्या पानांतले अगदी मधले पान उघडायचे, की जवळपासचे, तेदेखील ह्या कांपुटरवाल्यांनी ठरवले, आणि स्वत:ला नविन प्रणालीचा जनक (किंवा जननी) म्हणवून घेतले!
असो. आपल्याला आधीच माहिती असलेले कृतिक्रम त्यांनी स्वत:च्या नावावर खपवले, म्हणून आपण त्यांना इतकी दूषणे देत बसलो, तर मूळ शोधयंत्राचे कार्य आपल्याला समजवून घेता येणार नाही. तर मग आपल्या घरातील वस्तूंच्या यादीत एक बदल करा. नव्हे तिसरी वही तयार करा. आणि त्यात ह्या वस्तूंची नावे शब्दकोशातील शब्दांसारखी क्रमाने लिहा. आता, कुणीही तुम्हाला विचारले, की 'लेखणी' कुठे आहे? तर तुम्हाला ती वही पहिल्या पानापासून शोधायची गरज नाही. सरळ 'ल' आद्याक्षराने सुरू होणाऱ्या पानावर जा, आणि वर सांगितलेल्या द्विमान शोधाच्या कृतिक्रमाने शोधा ती लेखणी, आणि त्या पानावरची खोल्यांची नावे धडाकून सांगा विचारणाऱ्याला!
इतके सोपे असते शोधयंत्राच्या तिसऱ्या पण मुख्य (कारण तो दर्शनी, ना?) भागाचे कार्य.
वाचकहो, आपण शोधयंत्राच्या तीन्ही भागांचे कार्य ढोबळ स्वरूपात पाहिले. इथे आपण कुठून आलो होतो, आठवतेय का? खरंच, आपण आल्टाव्हिस्टा ह्या संस्थेने आधुनिक शोधयंत्राचा पाया रचला, म्हणजे नक्की काय केले हे बघत होतो. तर, आल्टाव्हिस्टाने शोधयंत्राचे हे तीन भाग वेगळे केले. आणि त्यांच्या (म्हणजे त्यांच्या आईने, डेकने, तयार केलेल्या) अल्फा ह्या प्रक्रियकाची ह्या कार्यात गुणवत्ता दाखवून देण्यासाठी एक प्रयोग म्हणून हे शोधयंत्र तयार केले.
माहिती-तंत्रज्ञानात एवढी मूलभूत क्रांती करूनही आल्टाव्हिस्टा ही संस्था उदयास का आली नाही? आणि आली तेव्हा तिचे एवढे महत्व का उरले नाही, हे पुढच्या भागात पाहू.
[गृहपाठ: द्विमान शोधासाठी कमी वेळ लागतो हे आपण पाहिले. म्हणजे १००० मधला एक शब्द शोधायचा असेल, तर सरासरी १० प्रयासात तो शब्द शोधता येईल. सुरुवातीच्या पानापासून शोधायचा झाला, तर सरासरी किती प्रयास लागतील ? १० पेक्षाही कमी प्रयासात शोधायचा असेल तो शब्द, तर कसे करावे ? युक्ती सुचवतो: एका पानात जेव्हा खूप शब्द (आणि त्यांच्या पानाचा क्रमांक) असतील, तेव्हा १००० ऐवजी १० पाने लागतील. त्यात हा शब्द शोधणे सोपे जाईल, नाही का? ह्याला ते शिष्ट संगणक वैज्ञानिक 'दुय्यम सूची' (सेकंडरी इंडेक्स) म्हणतात. किंवा समजा शब्दातील प्रत्येक अक्षराला एक अंक समजले. इंग्रजीत एकून २६ अक्षरे आहेत, तेव्हा प्रत्येक शब्द हा सव्वीस-मान अंक झाला. त्या शब्दातून जो अंक तयार होतो, त्या अंकाच्या पृष्ठावर तो शब्द आणि त्या शब्दाचा अर्थ असेल, तर शोधायला किती सोपे जाईल, नाही का? शब्द बघून आपण सांगू शकू, की हा शब्द ह्या क्रमांकाच्या पानावर आहे! पण त्यात काही पानांवर शब्दच नसतील. खूप पाने मोकळीच सोडावी लागतील, नाही का? समजा आपण अशाप्रकारे मांडणी केलेल्या शब्दकोशात जास्तीत जास्त १० अक्षरांचे शब्द असतील असे बंधन टाकले, तर ह्या शब्दकोशात किती पाने असतील? त्यातली किती मोकळी असतील?]