উইকিফাংশন্স লোগো

উইকিফাংশন্স উইকিমিডিয়া ফাউন্ডেশনের সবচেয়ে নতুন প্রকল্প যা এবছরের (২০২৩) পহেলা আগস্টে চালু করা হয়। এই সাইটে যেকোনো ব্যবহারকারী, যেকোনো ভাষায়, বিভিন্ন রকম ফাংশন (অপেক্ষক) তৈরি ও সম্প্রসারণ করতে পারেন। ফাউন্ডেশন আশা করছে যে, অন্য উইকিমিডিয়া প্রকল্প থেকেও এই ফাংশন ব্যবহার করা যাবে, আর উইকিফাংশন্স দিয়ে ভবিষ্যতের বিমূর্ত উইকিপিডিয়া প্রকল্প নির্মাণ করা যাবে।

যদিও বর্তমান অবস্থায় প্রকল্পের কিছু সীমাবদ্ধতা রয়েছে—বিশেষ করে বর্তমানে শুধু বুলিয়ান (“সত্য” বা “মিথ্যা”) আর স্ট্রিং (লেখা; বর্ণশৈলী) নিয়ে ফাংশন তৈরি ও ব্যবহার করা যায়। সাইটের পরিকল্পিত সরঞ্জামগুলো এখনও উন্নয়নের পর্যায়ে রয়েছে—তবুও সীমাবদ্ধতা থাকা সত্ত্বেও অনেক ধরনের ফাংশন তৈরি করা হয়েছে।

যারা অন্য উইকিমিডিয়া প্রকল্পে অবদান রাখেন কিংবা যারা উইকিমিডিয়া আন্দোলনে একেবারে নতুন, তাদের মনে হয়ত প্রশ্ন জাগতে পারে: ফাংশন কী?

ফাংশন হলো যা …

  • … এক বা একাধিক জিনিস নেয় (তথা ইনপুট নেয়) …
  • … একটি ফলাফল দেয় (তথা আউটপুট দেয়)।
  • এই ফলাফল বিভিন্নভাবে আনা যায় (তথা বাস্তবায়ন করা যায়) …
  • … আর নিশ্চিত করা যে ঐ ফাংশনটি ঠিক মত কাজ করছে কিনা (তথা পরীক্ষাকরণ)।

ফাংশনসমূহ সাধারণত প্রশ্নের উত্তর দিতে পারে, উদাহরণস্বরূপ “একটি ত্রিভুজের দৈর্ঘ্য আর উচ্চতা এত হলে তার আয়তন কত হবে?” এখানে

  • “ত্রিভুজের দৈর্ঘ্য” আর “ত্রিভুজের উচ্চতা” হলো ফাংশনের ইনপুট,
  • “ত্রিভুজের আয়তন” হলো ফাংশনের আউটপুট,
  • আয়তন বের করতে “আয়তন = (দৈর্ঘ্য * উচ্চতা) / ২” হলো ফাংশনের একটি বাস্তবায়ন (ইমপ্লিমেন্টেশন),
  • আর “ফাংশনে দৈর্ঘ্য ৫ ও উচ্চতা ৪ দিলে আয়তন ১০ হবে” হলো ঐ ফাংশনের একটি পরীক্ষা।

সাংখ্যিক মাত্রা ছাড়া অন্যান্য জিনিস দিয়ে ফাংশন তৈরি করা যায়: “দুটি রঙ জানা থাকলে তার মিশ্রণ কী হবে?” “বাংলা বিশেষ্য জানা থাকলে তার সম্প্রদান শব্দরূপ কী?” “এই স্ট্রিং কি বৈধ ই-মেইল ঠিকানা?” “একজনের উইকিউপাত্ত আইটেমের আইডি জানা থাকলে সে ব্যক্তি কোথায় জন্মগ্রহণ করলেন?”

যেকোনো ব্যবহারকারী নতুন ফাংশন তৈরি করতে পারেন। ধরা যাক নতুন একটি ফাংশন এরকম হবে: “বাংলা শব্দ জানলে তার গ্রাফিম পৃথকীকরণ কী?“। গ্রাফিম (grapheme) হলো কোনো ভাষার লেখ্যরূপের সবচেয়ে ছোট্ট গঠনমূলক একক। এই গ্রাফিম পৃথকীকরণের জন্য তিন ধরনের বস্তু (অবজেক্ট) তৈরি করতে হবে:

  • ”ফাংশন” বস্তু (অবজেক্ট) তৈরি করার সময় ইনপুট আর আউটপুটের ধরণ নির্দিষ্ট করা যায়। এক্ষেত্রে ফাংশনে মাত্র একটি স্ট্রিং ইনপুট লাগবে (যেটি শব্দটি ভাগ করবে) আর একটি স্ট্রিং আউটপুট উৎপাদন করবে (সেই শব্দের ভাগগুলো)।
  • এখন যাতে এই ফাংশনের ফলাফল সঠিক হয় তা নিশ্চিত করতে কিছু ”পরীক্ষা ক্ষেত্র” বস্তু তৈরি করা হবে: আমরা চাই যে ফাংশনের ইনপুট “বাংলাদেশ” হলে “বাং|লা|দে|শ” আউটপুট আসুক; এইকভাবে “পশ্চিমবঙ্গ” হলে “প|শ্চি|ম|ব|ঙ্গ”, “ত্রিপুরা” হলে “ত্রি|পু|রা”, ইত্যাদি।
  • এবার ফাংশনের একটি ”বাস্তবায়ন” বস্তু (অবজেক্ট) তৈরি করতে হবে। একাধিক বাস্তবায়নের আলাদা উৎস কোড থাকতে পারে; হয়ত একটি জাভাস্ক্রিপ্ট প্রোগ্রামিং ভাষায় লিখিত, হয়ত একটি পাইথন প্রোগ্রামিং ভাষায় লিখিত, হয়ত আরেকটিও পাইথনে লিখিত কিন্তু অন্য ভাগকরণের পদ্ধতি ব্যবহার করে। উৎস কোড ছাড়া নতুন একটি ”ফাংশন প্রণয়ন” ভাষা আছে যাতে অন্য উইকিফাংশন্সের ফাংশনগুলো দিয়ে পুরো বাস্তবায়ন লেখা যায়।

সবগুলোর নাম যেকোনো স্বাভাবিক ভাষায় দেওয়া যায়: এই ফাংশনের নাম বাংলায় “বাংলা গ্রাফিম পৃথকীকরণ” হতে পারে আর ইংরেজিতে “Bangla grapheme split” হতে পারে। এছাড়া বিবরণ দেওয়া যায়: যেমন হতে পারে, এই ফাংশনের ইংরেজি বিবরণে ছোট করে দেয়া ব্যাখ্যা “splits a Bangla word into separate parts based on consonant-vowel clusters”।

ভবিষ্যতে উইকিফাংশন্স আরও উন্নত হবে: স্ট্রিং/বুলিয়ান ছাড়াও যাতে আরও বিভিন্ন ধরনের জিনিস নিয়ে ফাংশন তৈরি করা যায়, আর যাতে উইকিউপাত্তের উপাত্ত দিয়ে ফাংশন লেখা যায়, তার জন্য কিছু উন্নয়ন হচ্ছে।

কোনও সরল প্রশ্নের উত্তর বের করার আকাঙ্খা  যদি আপনার থাকে, তাহলে আপনিও আজ থেকে নতুন কিছু ফাংশন বানাতে পারেন, অথবা বর্তমান ব্যবহার্য ফাংশনগুলি অনুবাদ করতে পারেন!

উইকিবার্তা
Translate »
Share This