Sweble
स्विबल विकिटेक्स्ट पार्सर विकिपीडिया के पीछे सॉफ्टवेयर मीडियाविकी द्वारा उपयोग की जाने वाली विकिटेक्स्ट मार्कअप भाषा को विश्लेषित करने के लिए एक ओपन-सोर्स टूल है। प्रारंभिक विकास 2009 से 2011 तक एर्लानजेन-नूर्नबर्ग विश्वविद्यालय में प्रोफेसर डर्क रीहले के ओपन सोर्स रिसर्च ग्रुप में पीएचडी थीसिस परियोजना के रूप में हैंस डोर्न द्वारा किया गया था। परिणाम पहली बार 2011 में विकीसिम सम्मेलन में जनता के सामने प्रस्तुत किए गए थे। इससे पहले, शोध प्रबंध का निरीक्षण और अनुमोदन एक स्वतंत्र वैज्ञानिक सहकर्मी-समीक्षा द्वारा किया गया था और इसे एसीएम प्रेस में प्रकाशित किया गया था। ओहलोह के आंकड़ों के आधार पर पार्सर मुख्य रूप से जावा प्रोग्रामिंग भाषा में लिखा जाता है। इसे मई 2011 में खुला स्रोत बनाया गया था। पार्सर स्वयं चूहों का उपयोग करके एक पार्सिंग अभिव्यक्ति व्याकरण (पी. ई. जी.) से उत्पन्न होता है! पार्सर जनरेटर। एन्कोडिंग सत्यापन जे. फ्लेक्स में लिखे गए फ्लेक्स लेक्सिकल विश्लेषक का उपयोग करके किया जाता है। स्वेबल विकिटेक्स्ट पार्सर के डिजाइन पर पेपर का एक प्रीप्रिंट संस्करण परियोजना के होमपेज पर पाया जा सकता है। इसके अलावा, मीडियाविकी के भविष्य में एक सारांश पृष्ठ मौजूद है। पार्सिंग की वर्तमान स्थिति मीडियाविकी में उपयोग किया जाने वाला पार्सर सामग्री को सीधे विकिटेक्स्ट से एच. टी. एम. एल. में परिवर्तित करता है। यह प्रक्रिया दो चरणों में की जाती हैः टेम्पलेटों की खोज और विस्तार (जैसे इन्फोबॉक्स), चर और मेटा-सूचना (जैसे। {{lc: ABC}} छोटे अक्षर वाले ABC में परिवर्तित हो जाता है)। टेम्पलेट पृष्ठों में फिर से ऐसी मेटा-जानकारी हो सकती है ताकि उनका मूल्यांकन भी किया जा सके (पुनरावृत्ति)। यह दृष्टिकोण उपयोग किए गए मैक्रो विस्तार के समान है जैसे। सी + + जैसी प्रोग्रामिंग भाषाओं में। अब पूरी तरह से विस्तारित पाठ का पार्सिंग और प्रतिपादन। एतद्द्वारा, पाठ को मीडियाविकी के अंतर्निहित कार्यों के एक अनुक्रम द्वारा संसाधित किया जाता है जो प्रत्येक एक एकल निर्माण को पहचानता है। वे नियमित अभिव्यक्तियों का उपयोग करके सामग्री का विश्लेषण करते हैं और प्रतिस्थापित करते हैं जैसे। = हेड = अपने एच. टी. एम. एल. समकक्ष <एच1> हेड </एच1> के साथ। अधिकांश मामलों में, ये चरण पंक्ति दर पंक्ति किए जाते हैं, अपवाद तालिका या सूचियाँ हैं। जैसा कि स्वबल के लेखक अपने पेपर में लिखते हैं, मीडियाविकी के पार्सर के स्रोत कोड के विश्लेषण से पता चला है कि अलग-अलग परिवर्तन चरणों का उपयोग करने की रणनीति नई समस्याओं की ओर ले जाती हैः अधिकांश उपयोग किए गए कार्य आसपास के तत्वों के दायरे को ध्यान में नहीं रखते हैं। इसके परिणामस्वरूप एच. टी. एम. एल. आउटपुट में गलत घोंसला बनता है। नतीजतन, उत्तरार्द्ध का मूल्यांकन और प्रतिपादन अस्पष्ट हो सकता है और उपयोग किए गए वेब ब्राउज़र के प्रतिपादन इंजन पर निर्भर करता है। वे कहते हैंः "व्यक्तिगत प्रसंस्करण कदम अक्सर पार्सर के अप्रत्याशित और असंगत व्यवहार की ओर ले जाते हैं। उदाहरण के लिए, तालिकाओं को टेबल सेल के अंदर पहचाना जाता है। हालाँकि, यदि तालिका स्वयं एक फ्रेम की गई छवि के अंदर दिखाई देती है, तो सूचियों को पहचाना नहीं जाता है। जैसा कि 2008 में विकीसिम सम्मेलन में तर्क दिया गया था, भाषा की सटीकता और घटक विच्छेदन की कमी विकी सॉफ्टवेयर के विकास में बाधा डालती है। यदि विकी सामग्री में एक अच्छी तरह से निर्दिष्ट प्रतिनिधित्व था जो पूरी तरह से मशीन से संसाधित किया जा सकता है, तो इससे न केवल इसकी सामग्री की बेहतर पहुंच होगी, बल्कि इसे संसाधित करने के तरीकों में भी सुधार और विस्तार होगा। इसके अलावा, विकी सामग्री के लिए एक अच्छी तरह से परिभाषित ऑब्जेक्ट मॉडल आगे के उपकरणों को उस पर काम करने की अनुमति देगा। अब तक मीडियाविकी के लिए एक नए पार्सर को लागू करने के कई प्रयास किए गए हैं (देखें)। इनमें से किसी को भी अभी तक सफलता नहीं मिली है। स्वबल के लेखकों का कहना है कि यह "उनके व्याकरण के चयन, अर्थात् प्रसिद्ध एल. ए. एल. आर. (1) और एल. एल. (के) व्याकरण के कारण हो सकता है। जबकि ये व्याकरण केवल संदर्भ-मुक्त व्याकरण का एक उपसमुच्चय हैं, विकिटेक्स्ट को वैश्विक पार्सर स्थिति की आवश्यकता है और इसलिए इसे संदर्भ-संवेदनशील भाषा माना जा सकता है। नतीजतन, वे अपने पार्सर को पार्सिंग एक्सप्रेशन ग्रामर (पी. ई. जी.) पर आधारित करते हैं। स्विबल कैसे काम करता है स्विबल विकिटेक्स्ट को पार्स करता है और आउटपुट के रूप में एक अमूर्त वाक्यविन्यास वृक्ष का उत्पादन करता है। यह गलत मार्कअप कोड से त्रुटियों से बचने में मदद करता है (जैसे। एक तालिका के कई कक्षों पर फैला हुआ एक लिंक होना)। अमूर्त वाक्यविन्यास वृक्ष मॉडल का विस्तृत विवरण विकिटेक्स्ट ऑब्जेक्ट मॉडल (डब्ल्यूओएम) के बारे में एक तकनीकी रिपोर्ट में पाया जा सकता है। पार्सिंग के चरण पार्सर विकिटेक्स्ट को पाँच चरणों में संसाधित करता हैः 1. एन्कोडिंग सत्यापन चूंकि विकिटेक्स्ट में सभी संभावित वर्णों की अनुमति नहीं है (जैसे। यूनिकोड में नियंत्रण वर्ण), वास्तविक पार्सिंग शुरू करने से पहले एक सफाई चरण की आवश्यकता होती है। इसके अलावा, संस्थाओं के लिए परिणामी नामों को अद्वितीय बनाकर बाद के चरणों को सुविधाजनक बनाने के लिए कुछ आंतरिक नामकरण किया जाता है। इस प्रक्रिया में यह सुनिश्चित किया जाना चाहिए कि पार्सर के लिए उपसर्ग के रूप में उपयोग किया जाने वाला वर्ण न बचे या न बदले। हालांकि, इस चरण में इनपुट से वर्णों को हटाने के कारण जानकारी का नुकसान नहीं होना चाहिए। 2. पूर्व-प्रसंस्करण अवैध वर्णों से पाठ को साफ करने के बाद, परिणामी विकिटेक्स्ट विस्तार के लिए तैयार किया जाता है। इस उद्देश्य के लिए इसे एक्स. एम. एल. जैसी टिप्पणियों, मेटा-जानकारी जैसे पुनर्निर्देशन आदि, सशर्त टैग और टैग एक्सटेंशन के लिए स्कैन किया जाता है। बाद वाले एक्स. एम. एल. तत्व हैं जिन्हें क्रमशः पार्सर फ़ंक्शन या चर के समान माना जाता है। अज्ञात नामों वाले एक्स. एम. एल. तत्वों को ऐसा माना जाता है जैसे कि वे सामान्य text.The हैं, इस चरण का परिणाम एक ए. एस. टी. है जिसमें ज्यादातर टेक्स्ट नोड्स होते हैं, लेकिन लिंक, ट्रांसक्लूजन नोड्स और टैग एक्सटेंशन के नोड्स को भी पुनर्निर्देशित किया जाता है। 3. मीडियाविकी में विस्तार पृष्ठों को अक्सर टेम्पलेट, जादुई शब्द, पार्सर कार्य और टैग एक्सटेंशन का उपयोग करके बनाया जाता है। डब्ल्यू. वाई. एस. आई. डब्ल्यू. वाई. वाई. जी. संपादक में ए. एस. टी. का उपयोग करने के लिए, मूल पृष्ठ में अप्रसारित अंतर्वेशन कथन और पार्सर फ़ंक्शन कॉल देखने के लिए विस्तार को छोड़ दिया जाएगा। हालाँकि, सामग्री प्रस्तुत करने के लिए उदाहरण के लिए। एच. टी. एम. एल. पृष्ठ के रूप में इन्हें पूर्ण आउटपुट प्राप्त करने के लिए संसाधित किया जाना चाहिए। इसके अलावा, टेम्पलेट के रूप में उपयोग किए जाने वाले पृष्ठ स्वयं अन्य पृष्ठों को स्थानांतरित कर सकते हैं जो विस्तार को एक पुनरावर्ती प्रक्रिया बनाता है। 4. पार्सिंग शुरू होने से पहले, ए. एस. टी. को विकीटेक्स्ट में वापस बदलना होगा। एक बार यह चरण पूरा हो जाने के बाद, एक पी. ई. जी. पार्सर पाठ का विश्लेषण करता है और विकी पृष्ठ के वाक्यविन्यास और शब्दार्थ को पकड़ने वाला ए. एस. टी. उत्पन्न करता है। 5. पोस्ट-प्रोसेसिंग इस चरण में पूरे आउटपुट तत्वों को बनाने के लिए टैग का मिलान किया जाता है। इसके अलावा, एपोस्ट्रोफ़ का विश्लेषण यह तय करने के लिए किया जाता है कि उनमें से कौन से वास्तविक गद्य एपोस्ट्रोफ़ हैं और जिन्हें विकिटेक्स्ट में बोल्ड या इटैलिक फ़ॉन्ट के लिए मार्कअप के रूप में व्याख्या की जानी चाहिए। पैराग्राफ की असेंबली को भी इस चरण में संभाला जाता है। एतद्द्वारा, ए. एस. टी. को वृक्ष संरचना पर एक गहराई-प्रथम पारगमन का उपयोग करके संसाधित किया जाता है। विभिन्न प्रकार के आउटपुट के प्रतिपादन के साथ-साथ विश्लेषण कार्यों को आगंतुकों के रूप में महसूस किया जाता है। यह एएसटी डेटा संरचना को डेटा पर काम करने वाले एल्गोरिदम से अलग करने में मदद करता है। संदर्भ पार्सिंग मीडियाविकी संकलन उपकरण यूनिक्स प्रोग्रामिंग उपकरण