Sweble
সুইবল উইকিটেক্সট পার্সার হল উইকিপিডিয়ার পিছনের সফ্টওয়্যার মিডিয়াউইকি দ্বারা ব্যবহৃত উইকিটেক্সট মার্কআপ ভাষা বিশ্লেষণ করার একটি ওপেন সোর্স টুল। 2009 থেকে 2011 সাল পর্যন্ত এরলাঙ্গেন-নুরেমবার্গ বিশ্ববিদ্যালয়ের অধ্যাপক ডির্ক রিহলের ওপেন সোর্স রিসার্চ গ্রুপে পিএইচডি থিসিস প্রকল্প হিসাবে প্রাথমিক উন্নয়ন হ্যানস ডর্ন করেছিলেন। 2011 সালে উইকিসম সম্মেলনে প্রথমবারের মতো ফলাফলগুলি জনসাধারণের কাছে উপস্থাপন করা হয়। এর আগে, গবেষণামূলক প্রবন্ধটি একটি স্বাধীন বৈজ্ঞানিক পিয়ার-রিভিউ দ্বারা পরিদর্শন ও অনুমোদিত হয়েছিল এবং এসিএম প্রেসে প্রকাশিত হয়েছিল। ওহলোহর পরিসংখ্যানের উপর ভিত্তি করে পার্সারটি মূলত জাভা প্রোগ্রামিং ভাষায় লেখা হয়। 2011 সালের মে মাসে এটি ওপেন সোর্স করা হয়। পার্সার নিজেই ইঁদুর ব্যবহার করে একটি পার্সিং এক্সপ্রেশন ব্যাকরণ (পি. ই. জি) থেকে তৈরি করা হয়! পার্সার জেনারেটর। এনকোডিং বৈধতা জেফ্লেক্স ভাষায় লেখা একটি ফ্লেক্স লেক্সিকাল বিশ্লেষক ব্যবহার করে করা হয়। সুইবল উইকিটেক্সট পার্সারের নকশার উপর কাগজের একটি প্রাক-মুদ্রণ সংস্করণ প্রকল্পের হোমপেজে পাওয়া যাবে। এছাড়াও, মিডিয়াউইকির ফিউচার-এ একটি সংক্ষিপ্ত পাতা রয়েছে। পার্সিং-এর বর্তমান অবস্থা মিডিয়াউইকিতে ব্যবহৃত পার্সার উইকিটেক্সট থেকে সরাসরি বিষয়বস্তু এইচটিএমএল-এ রূপান্তরিত করে। এই প্রক্রিয়াটি দুটি পর্যায়ে করা হয়ঃ টেমপ্লেটগুলির অনুসন্ধান এবং সম্প্রসারণ (যেমন ইনফোবক্স), পরিবর্তনশীল এবং মেটা-ইনফরমেশন (যেমন। {{lc: ABC}} ছোট হাতের এবিসিতে রূপান্তরিত হয়)। টেমপ্লেট পৃষ্ঠাগুলিতে আবার এই ধরনের মেটা-তথ্য থাকতে পারে যাতে সেগুলিরও মূল্যায়ন করতে হয় (পুনরাবৃত্তি)। এই পদ্ধতিটি ব্যবহৃত ম্যাক্রো সম্প্রসারণের অনুরূপ। সি + + এর মতো প্রোগ্রামিং ভাষায়। এখন সম্পূর্ণরূপে সম্প্রসারিত পাঠ্যের পার্সিং এবং রেন্ডারিং। এর মাধ্যমে, পাঠ্যটি মিডিয়াউইকির অন্তর্নির্মিত ক্রিয়াকলাপগুলির একটি ক্রম দ্বারা প্রক্রিয়া করা হয় যা প্রতিটি একটি একক গঠনকে স্বীকৃতি দেয়। তারা নিয়মিত অভিব্যক্তি ব্যবহার করে বিষয়বস্তু বিশ্লেষণ করে এবং যেমন প্রতিস্থাপন করে। = হেড = এর এইচটিএমএল সমতুল্য <এইচ1> হেড </এইচ1> সহ। বেশিরভাগ ক্ষেত্রে, এই পদক্ষেপগুলি সারিবদ্ধভাবে করা হয়, ব্যতিক্রম হল টেবিল বা তালিকা। সুইবলের লেখকরা যেমন তাদের গবেষণাপত্রে লিখেছেন, মিডিয়াউইকির পার্সারের সোর্স কোডের একটি বিশ্লেষণে দেখা গেছে যে পৃথক রূপান্তর পদক্ষেপগুলি ব্যবহার করার কৌশলটি নতুন সমস্যার দিকে পরিচালিত করেঃ ব্যবহৃত বেশিরভাগ ফাংশন পার্শ্ববর্তী উপাদানগুলির সুযোগকে বিবেচনায় নেয় না। এর ফলে ফলস্বরূপ এইচ. টি. এম. এল আউটপুটে ভুল নেস্টিং হয়। ফলস্বরূপ, পরেরটির মূল্যায়ন এবং রেন্ডারিং অস্পষ্ট হতে পারে এবং ব্যবহৃত ওয়েব ব্রাউজারের রেন্ডারিং ইঞ্জিনের উপর নির্ভর করে। তারা বলেঃ "পৃথক প্রক্রিয়াকরণ পদক্ষেপগুলি প্রায়শই পার্সারের অপ্রত্যাশিত এবং অসঙ্গতিপূর্ণ আচরণের দিকে পরিচালিত করে। উদাহরণস্বরূপ, তালিকা টেবিল কোষের ভিতরে স্বীকৃত হয়। যাইহোক, যদি টেবিলটি নিজেই একটি ফ্রেমযুক্ত চিত্রের ভিতরে উপস্থিত হয়, তবে তালিকাগুলি স্বীকৃত হয় না। 2008 সালে উইকিসম সম্মেলনে যেমন যুক্তি দেওয়া হয়েছিল, ভাষার নির্ভুলতা এবং উপাদান বিচ্ছিন্নকরণের অভাব উইকি সফ্টওয়্যারের বিবর্তনকে বাধা দেয়। যদি উইকি বিষয়বস্তুর একটি সুনির্দিষ্ট উপস্থাপনা থাকে যা সম্পূর্ণরূপে যান্ত্রিক প্রক্রিয়াকরণযোগ্য হয়, তবে এটি কেবল তার বিষয়বস্তুর আরও ভাল অ্যাক্সেসযোগ্যতার দিকে পরিচালিত করবে না বরং এটি প্রক্রিয়াকরণের উপায়গুলিকে উন্নত ও প্রসারিত করবে। উপরন্তু, উইকি বিষয়বস্তুর জন্য একটি সুনির্দিষ্ট অবজেক্ট মডেল আরও সরঞ্জামগুলিকে এটিতে কাজ করার অনুমতি দেবে। এখন পর্যন্ত মিডিয়াউইকির জন্য একটি নতুন পার্সার বাস্তবায়নের অসংখ্য প্রচেষ্টা হয়েছে (দেখুন)। তাদের কেউই এখনও পর্যন্ত সফল হননি। সুইবলের লেখকরা বলেছেন যে এটি "তাদের ব্যাকরণের পছন্দের কারণে হতে পারে, যেমন সুপরিচিত এলএএলআর (1) এবং এলএল (কে) ব্যাকরণ। যদিও এই ব্যাকরণগুলি শুধুমাত্র প্রসঙ্গ-মুক্ত ব্যাকরণের একটি উপসেট, উইকিটেক্সটের জন্য বিশ্বব্যাপী পার্সার অবস্থা প্রয়োজন এবং তাই এটিকে একটি প্রসঙ্গ-সংবেদনশীল ভাষা হিসাবে বিবেচনা করা যেতে পারে। ফলস্বরূপ, তারা তাদের পার্সারকে পার্সিং এক্সপ্রেশন ব্যাকরণের (পি. ই. জি) উপর ভিত্তি করে তৈরি করে। সোয়েবল কীভাবে কাজ করে সোয়েবল উইকিটেক্সটকে বিশ্লেষণ করে এবং আউটপুট হিসাবে একটি বিমূর্ত সিনট্যাক্স ট্রি তৈরি করে। এটি ভুল মার্কআপ কোড থেকে ত্রুটি এড়াতে সাহায্য করে (যেমন। একটি টেবিলের একাধিক কোষে বিস্তৃত একটি লিঙ্ক থাকা)। বিমূর্ত সিনট্যাক্স ট্রি মডেলের একটি বিস্তারিত বিবরণ উইকিটেক্সট অবজেক্ট মডেল (ডব্লিউওএম) সম্পর্কে একটি প্রযুক্তিগত প্রতিবেদনে পাওয়া যাবে। পার্সার উইকিটেক্সটকে পাঁচটি পর্যায়ে প্রক্রিয়া করেঃ 1. এনকোডিং বৈধতা যেহেতু উইকিটেক্সটে সমস্ত সম্ভাব্য অক্ষর অনুমোদিত নয় (যেমন। ইউনিকোডে নিয়ন্ত্রণ অক্ষর), প্রকৃত পার্সিং শুরু করার আগে একটি পরিষ্কার করার পদক্ষেপ প্রয়োজন। উপরন্তু, কিছু অভ্যন্তরীণ নামকরণ করা হয় পরবর্তী পদক্ষেপগুলিকে সহজতর করার জন্য সত্তাগুলির জন্য ফলাফলের নামগুলিকে অনন্য করে। এই প্রক্রিয়ায় এটি নিশ্চিত করতে হবে যে পার্সারের উপসর্গ হিসাবে ব্যবহৃত অক্ষরটি যেন বাদ না যায় বা পরিবর্তিত না হয়। যাইহোক, এই পর্যায়ে ইনপুট থেকে অক্ষর অপসারণের কারণে তথ্যের ক্ষতি হওয়া উচিত নয়। 2. প্রাক-প্রক্রিয়াকরণ অবৈধ অক্ষর থেকে পাঠ্য পরিষ্কার করার পরে, ফলস্বরূপ উইকিটেক্সট সম্প্রসারণের জন্য প্রস্তুত করা হয়। এই উদ্দেশ্যে এটি এক্স. এম. এল-এর মতো মন্তব্য, মেটা-তথ্য যেমন পুনর্নির্দেশ ইত্যাদি, শর্তাধীন ট্যাগ এবং ট্যাগ এক্সটেনশনের জন্য স্ক্যান করা হয়। পরেরটি হল এক্স. এম. এল উপাদান যা যথাক্রমে পার্সার ফাংশন বা ভেরিয়েবলের অনুরূপ। অজানা নাম সহ এক্সএমএল উপাদানগুলিকে জেনেরিক text.The হিসাবে বিবেচনা করা হয় যার ফলে এই পর্যায়টি একটি এ. এস. টি যা বেশিরভাগ টেক্সট নোড নিয়ে গঠিত তবে লিঙ্ক, ট্রান্সক্লুশন নোড এবং ট্যাগ এক্সটেনশনের নোডগুলিও পুনর্নির্দেশ করে। 3. মিডিয়াউইকির সম্প্রসারণ পৃষ্ঠাগুলি প্রায়শই টেমপ্লেট, ম্যাজিক শব্দ, পার্সার ফাংশন এবং ট্যাগ এক্সটেনশন ব্যবহার করে তৈরি করা হয়। একটি ডাব্লুওয়াইএসআইডাব্লুওয়াইজি সম্পাদকের এ. এস. টি ব্যবহার করার জন্য, মূল পৃষ্ঠায় অব্যবহৃত ট্রান্সক্লুশন স্টেটমেন্ট এবং পার্সার ফাংশন কলগুলি দেখতে সম্প্রসারণ ছেড়ে দেওয়া হবে। যাইহোক, বিষয়বস্তু রেন্ডার করার জন্য যেমন। এইচ. টি. এম. এল পৃষ্ঠা হিসাবে এগুলি সম্পূর্ণ আউটপুট পেতে প্রক্রিয়া করা আবশ্যক। উপরন্তু, টেমপ্লেট হিসাবে ব্যবহৃত পৃষ্ঠাগুলি নিজেরাই অন্যান্য পৃষ্ঠাগুলি ট্রান্সক্লুড করতে পারে যা সম্প্রসারণকে একটি পুনরাবৃত্তিমূলক প্রক্রিয়া করে তোলে। 4. পার্সিং শুরু হওয়ার আগে, এ. এস. টি-কে আবার উইকিতে রূপান্তরিত করতে হবে। একবার এই পদক্ষেপটি সম্পন্ন হয়ে গেলে, একটি পি. ই. জি পার্সার পাঠ্যটি বিশ্লেষণ করে এবং উইকি পৃষ্ঠার বাক্য গঠন এবং শব্দার্থবিজ্ঞান ধারণ করে একটি এ. এস. টি তৈরি করে। 5টি। পোস্ট-প্রসেসিং এই পর্যায়ে ট্যাগগুলি সম্পূর্ণ আউটপুট উপাদান গঠনের জন্য মিলিত হয়। উপরন্তু, অ্যাপোস্ট্রফিগুলি বিশ্লেষণ করে নির্ধারণ করা হয় যে এগুলির মধ্যে কোনটি প্রকৃত গদ্য অ্যাপোস্ট্রফি এবং কোনটিকে উইকিটেক্সটে গাঢ় বা ইটালিক ফন্টের জন্য মার্কআপ হিসাবে ব্যাখ্যা করতে হবে। অনুচ্ছেদের সমাবেশও এই ধাপে পরিচালিত হয়। এর মাধ্যমে, এ. এস. টি গাছের কাঠামোর উপর একটি ডেপথ-ফার্স্ট ট্র্যাভার্সাল ব্যবহার করে প্রক্রিয়া করা হয়। বিভিন্ন ধরনের আউটপুটের রেন্ডারিং এবং সেইসাথে বিশ্লেষণ ফাংশনগুলি ভিজিটর হিসাবে উপলব্ধি করা হয়। এটি ডেটাতে পরিচালিত অ্যালগরিদমগুলি থেকে এ. এস. টি ডেটা কাঠামোকে পৃথক করতে সহায়তা করে। রেফারেন্স পার্সিং মিডিয়াউইকি সংকলন সরঞ্জাম ইউনিক্স প্রোগ্রামিং সরঞ্জাম