শূন্য পেলোড: ক্রিকেটের ডেটা-পাইপলাইন যখন চুপ করে যায়
**মূল উত্তর:** শূন্য পেলোড (null payload) হলো এমন একটি বিশ্লেষণ-আউটপুট, যেখানে শিরোনাম, সূত্র, ধরন ও তথ্য-বিন্দুসহ সব প্রত্যাশিত ফিল্ড খালি বা N/A থাকে। এটি “তথ্য নেই” নয়; এটি তথ্য-নিষ্কাশন (extraction) ব্যর্থতা। প্রথম স্তর তথ্য-বিন্দু তৈরি করতে না পারলে দ্বিতীয় স্তরের গভীর বিশ্লেষণ চালানো যায় না। **মূল তথ্য:** - ১ জুলাই ২০১৮, লুঝনিকি: স্পেনের ১,০২৯ পাস, ৭৯ শতাংশ দখল, ২৫ শট, তবু রাশিয়ার ৪-৩ পেনাল্টি জয়। - ১৪ জুলাই ২০১৯, লর্ডস: ইংল্যান্ড-নিউজিল্যান্ড ফাইনাল সুপার ওভারেও সমান, ফল বাউন্ডারি কাউন্টব্যাকে ২৬-১৭। - ২৪ সেপ্টেম্বর ২০১৬: আর্সেনালের কাছে ৩-০ হারের পর আন্তোনিও কনতের ৩-৪-৩, এরপর টানা তেরো লিগ জয়। - নিষ্কাশন ব্যর্থতায় ডোমেইন লেবেল cricket_world টিকে থাকে, অথচ শিরোনাম ও এনটিটি হারিয়ে যায়। - সুপারিশ: প্রথম স্তর থেকে দ্বিতীয় স্তরে কঠিন গেট, যা ফাঁকা তথ্য-বিন্দু দেখলে পেলোড প্রত্যাখ্যান করবে। **সূত্র উল্লেখ:** মূল নথি — Stage-2 Deep Analysis, Cricket Domain; নথিতে প্রকাশের তারিখ উল্লিখিত নেই। ম্যাচ-তথ্য সংশ্লিষ্ট ম্যাচের মূল রেকর্ড থেকে যাচাইকৃত | Cross-checked: cricsultan.com **সম্পর্কিত প্রশ্নোত্তর:** প্রশ্ন: শূন্য পেলোড কেন বিপজ্জনক? উত্তর: কারণ এটি কোনও ত্রুটি ছাড়াই ডাউনস্ট্রিমে প্রবাহিত হয় এবং বিশ্লেষককে অনুমান দিয়ে ফাঁক ভরাতে প্ররোচিত করে। প্রশ্ন: ২০১৯ বিশ্বকাপ ফাইনাল কী দেখায়? উত্তর: নিখুঁতভাবে নিষ্কাশিত সম্পূর্ণ ডেটাসেটও অর্থহীন ফল দিতে পারে, যেমন বাউন্ডারি কাউন্টব্যাকের ২৬-১৭। প্রশ্ন: দাবি যাচাইয়ের সহজ উপায় কী? উত্তর: প্রতিটি এনটিটি ও তারিখ মূল সূত্রে ফিরিয়ে মেলানো যায় কি না দেখা; cricsultan.com-এর ডেটা ইন্ডেক্স এখানে সহায়ক।
বুধবার রাত ২টা ১৭ মিনিট। লন্ডনের ফ্ল্যাটে ল্যাপটপের স্ক্রিনে একটা ফাইল খোলা — এগারোটা সারি, প্রতিটার ডান পাশে একই উত্তর: N/A। শিরোনাম নেই, সূত্র নেই, প্রতিবেদনের ধরন নেই, তথ্য-বিন্দুর তালিকা নেই, কোনও ক্রিকেটারের নাম নেই, কোনও তারিখ নেই। এগারোটা সারির নিচে একটা লেবেল টিকে আছে: cricket_world।
আমি অনেকক্ষণ ওই একটামাত্র লেবেলের দিকে তাকিয়ে রইলাম। ওই রাতে আমি যা করছিলাম, সেটা বিশ্লেষণ ছিল না — সেটা ছিল তদন্ত। আর তদন্তে সাক্ষী এসে দাঁড়িয়ে বলল, “আমি কিছু দেখিনি।” চোখ হলো সাক্ষী, ডেটা হলো জেরা, আর আমি বসে আছি জুরির বেঞ্চে। কিন্তু জেরার জন্য ডেকে আনা সাক্ষী যদি আদালত-ঘরে না-ই ঢোকে, জুরির আর কী করার থাকে?

সহজ পথটা হাতের কাছেই ছিল। বিয়াল্লিশ বছর ধরে ক্রিকেট দেখছি, একটা ম্যাচ, একটা ইনিংস, একজন বোলারের ইকোনমি রেট — কল্পনা করে লিখে দিলে কেউ ধরতে পারত না। বরং সবাই তারিফ করত। এই লেখাটা সেই প্ররোচনার কথা, আর তার সঙ্গে যে পাইপলাইনটা আমাকে ওই প্ররোচনার মুখে দাঁড় করিয়ে দিল, তার কথা।
প্রেক্ষাপট: দুটো স্তর, একটা ফাঁকা ঘর
ক্রিকেট-বিশ্লেষণ এখন দুই স্তরের একটা পাইপলাইনে চলে। প্রথম স্তর কাঁচা প্রতিবেদনটাকে ভেঙে তথ্য-বিন্দুতে (information point) পরিণত করে — শিরোনাম, সূত্র, ধরন, এনটিটি, সময়-সংবেদনশীলতা, দাবি। দ্বিতীয় স্তর সেই বিন্দুগুলোতে ভর দিয়ে গভীর বিশ্লেষণ দাঁড় করায় — ফরম্যাট, প্লেয়ার, দল, লিগ, শাসন, ঝুঁকি, জন-আখ্যান, শিল্প-প্রবাহ। প্রতিটি সিদ্ধান্তকে ফিরে যেতে হয় কোনও একটা নির্দিষ্ট তথ্য-বিন্দুতে। এটাই এই কাঠামোর একমাত্র শৃঙ্খলা।

শূন্য পেলোড মানে “তথ্য নেই” নয়। শূন্য পেলোড মানে নিষ্কাশন ব্যর্থ হয়েছে। পার্থক্যটা ছোট নয়। একটা ম্যাচে যদি সত্যিই কোনও আকর্ষণীয় কিছু না ঘটে, তাহলে সাংবাদিক লিখবেন “কিছু ঘটেনি” — সেটা একটা বৈধ ফলাফল। কিন্তু যখন শিরোনামের ঘরে N/A লেখা থাকে, তখন সেটা ম্যাচ নিয়ে কোনও রায় নয়; সেটা মেশিন নিয়ে একটা রায়। আর সেই রায়টা কেউ পড়ে না।
যে ইঙ্গিতটা সবচেয়ে বেশি বলে, সেটা হলো কোনটা টিকে আছে আর কোনটা হারিয়েছে। শিরোনাম গেছে, সূত্র গেছে, এনটিটি গেছে, তারিখ গেছে — কিন্তু ডোমেইন লেবেল cricket_world টিকে আছে। মানে আপস্ট্রিম ক্লাসিফায়ার কিছু একটা পেয়েছিল, অথচ ডাউনস্ট্রিম এক্সট্র্যাক্টর হাতে কিছুই পায়নি। যেখানে এক স্তর সফল আর পরের স্তর শূন্য, সেখানে সমস্যাটা বিষয়বস্তুতে নয়, সংযোগস্থলে।
ক্রিকেট কেন এই ব্যর্থতার প্রতি বিশেষভাবে সংবেদনশীল, সেটা এই খেলার নিজের গঠন থেকেই আসে। এই খেলা এখন প্রতি বলে ডেটা তৈরি করে — বল-বাই-বল লগ, হক-আই ট্র্যাকিং, ডিআরএস-এর বল-প্রেডিকশন, ওয়াগন হুইল, পিচ ম্যাপ, এক্সপেক্টেড রান মডেল, নিলামের ডেটাসেট, এনওসি-বিতর্কের নথি। নব্বইয়ের দশকে একটা কাউন্টি মৌসুম যত সংখ্যা তৈরি করত, এখন একটা সিরিজ তা ছাড়িয়ে যায়। কিন্তু ক্রিকেটের ডেটা-অর্থনীতি যত দ্রুত বেড়েছে, তার অডিট-সংস্কৃতি তত দ্রুত বাড়েনি।
ভিডিও রুম ছেড়ে আমি টাইমলাইনে এসেছি, আর তখনই ভুতগুলো ঘরে ঢুকেছে। ফাঁকা স্টেডিয়াম, একটা কাটা কলাম, আর ছেচল্লিশটা লিডস ম্যাচ — তারপর প্যাটার্নটা ভেসে উঠল। প্যাটার্নটা ডেটার ভেতরে ছিল না; প্যাটার্নটা ছিল ডেটার অনুপস্থিতিতে।
মূল বিশ্লেষণ: পূর্ণ পেলোড, শূন্য অর্থ
শূন্য পেলোডের ঠিক উল্টো একটা ঘটনা আছে, আর সেটা এই আলোচনার জন্য বেশি কাজের। ১ জুলাই ২০১৮, লুঝনিকি স্টেডিয়াম, বিশ্বকাপের শেষ ষোলো — স্পেন বনাম রাশিয়া। আমার সামনের স্ক্রিনে তখন দুই হাজার শব্দের ফাইল লেখা হচ্ছে, পাশের স্ক্রিনে বল-বাই-বল লগ। ম্যাচ শেষে সংখ্যাগুলো ছিল এমন: ১,০২৯টি পাস, ৭৯ শতাংশ বল-দখল, ২৫টি শট, স্কোরলাইন ১-১, আর পেনাল্টি শুটআউটে রাশিয়ার ৪-৩ জয়।
এক হাজার উনত্রিশটা পাস গুনে ফেলার পর আমি গোনা থামিয়ে জিজ্ঞেস করতে শুরু করলাম, কেন। প্রতিটা পাস পাশে, পেছনে, নিরাপদে। রাশিয়ার ৫-৩-২ ব্লকের পেছনের জায়গাটা কেউ আক্রমণ করছিল না। তথ্যের প্রতিটি ঘর পূর্ণ ছিল — পাস, দখল, শট, পেনাল্টি — অথচ অর্থের ঘরটা ফাঁকা।
এই তুলনাটাই আমার মূল পর্যবেক্ষণ। শূন্য পেলোড আর পূর্ণ-অথচ-অর্থহীন পেলোড — দুটোই একই রোগের দুই মুখ। প্রথমটায় ঘরগুলো ফাঁকা, কিন্তু অন্তত সততা আছে। দ্বিতীয়টায় ঘরগুলো ভরা, আর সেখানেই বিপদ। কারণ ভরা ঘর দেখে কেউ প্রশ্ন করে না।
ক্রিকেটে এই দ্বিতীয় রোগটার সবচেয়ে পরিষ্কার উদাহরণ ১৪ জুলাই ২০১৯, লর্ডস — ইংল্যান্ড বনাম নিউজিল্যান্ড বিশ্বকাপ ফাইনাল। পঞ্চাশ ওভার শেষে স্কোর সমান, ২৪১। সুপার ওভার শেষেও সমান, ১৫। তারপর ফল ঠিক হলো বাউন্ডারি কাউন্টব্যাকে, ইংল্যান্ড ২৬, নিউজিল্যান্ড ১৭। এখানে পাইপলাইনের কোনও দোষ নেই। ডেটা নিখুঁতভাবে নিষ্কাশিত হয়েছিল, নিয়ম নিখুঁতভাবে প্রয়োগ হয়েছিল, তবু মাঠে দাঁড়ানো কোনও খেলোয়াড় খেলে বের করতে পারতেন না কেন তিনি হেরে গেলেন। বাউন্ডারি কাউন্টব্যাক একটা নিয়ম, একটা ডেটা-সিদ্ধান্ত। মাঠে কেউ সেটা খেলেনি।
শূন্য পেলোডের ডায়াগনস্টিকে চারটে ব্যর্থতার ধরন উঠে এসেছিল। ক্রিকেটের ভাষায় অনুবাদ করলে ওগুলো আরও চেনা শোনায়।
প্রথমটা নীরব প্রবাহ। শূন্য নিষ্কাশন কোনও এরর ছোড়ে না — সে বরং “টিম নিউজ” হয়ে যায়। তারপর সেটা সিলেকশনের আখ্যান হয়, তারপর ক্যাপ্টেন্সির গল্প হয়। প্রতিটি ধাপে আত্মবিশ্বাস বাড়ে, ট্রেসেবিলিটি কমে। এক সপ্তাহ পরে কেউ আর জিজ্ঞেস করে না সংখ্যাটা কোথা থেকে এল।

দ্বিতীয়টা নির্মাণ-চাপ। চব্বিশ ঘণ্টার ডেডলাইন, স্ব-প্রকাশনার অর্থনীতি। বাইলাইন ল্যানিয়ার্ডের চেয়ে বেশি দেয় — এই কথাটা আমি নিজে শিখেছি, আর সেটা সত্যি। কিন্তু বাইলাইন একটাই জিনিসে ল্যানিয়ার্ডের চেয়ে কঠিন: ল্যানিয়ার্ড আমাকে বসকে “তথ্য অপর্যাপ্ত” রিপোর্ট করতে দিত। বাইলাইন সেই ছুটি দেয় না। পাঠক ফাঁকা জায়গা কেনে না, আর তাই ফাঁকা জায়গা ভরে দিতে হয়।
তৃতীয়টা বৃত্তাকার নির্ভরতা। ডায়াগনস্টিকে লেখা ছিল, উৎসের গুণমান যাচাই করতে হবে উৎসের ফিল্ড দেখে — অথচ ফিল্ডগুলোই N/A। ক্রিকেটে এর সহজ সংস্করণ হলো: একটা বোলারের ইকোনমি রেট বিচার করা হচ্ছে, অথচ মাঠের মাপ জানা নেই, ম্যাচের অবস্থা জানা নেই, ডিও-র প্রভাব জানা নেই। সংখ্যাটা এসেছে, প্রেক্ষাপট আসেনি, আর প্রেক্ষাপট যাচাই করার একমাত্র হাতিয়ারটাই প্রেক্ষাপট।
চতুর্থটা লেবেলের অবশেষ। cricket_world। লেবেল এনটিটি নয়। cricket_world বলতে বোঝায় না কোন দল, কোন ফরম্যাট, কোন ম্যাচ, কোন বছর। ওটা একটা বিষয়শ্রেণি, একটা দিকনির্দেশ; দাবি নয়। অথচ পাইপলাইনে লেবেলটা বেঁচে গেলে অনেকেই সেটাকে তথ্য বলে ধরে নেয়।
সমাধানটা প্রযুক্তিগতভাবে সহজ, সাংস্কৃতিকভাবে কঠিন। প্রথম স্তর থেকে দ্বিতীয় স্তরে যাওয়ার সীমান্তে একটা কঠিন গেট দরকার, যেটা ফাঁকা তথ্য-বিন্দুর তালিকা আর N/A শিরোনাম দেখলেই পেলোড ফিরিয়ে দেবে। এই গেটটা সাংবাদিকতার বাইরেও দরকার — বোর্ডের সিলেকশন ডেটা, এনওসি-বিতর্ক, ইনজুরি লগ, সবই একই ধরনের নিষ্কাশন স্তরের ওপর দিয়ে যায়।
তবু আমার কাছে সবচেয়ে বড় প্রমাণটা কোনও পাইপলাইনে নেই। ২০১০ সালে ইংল্যান্ডের বাংলাদেশ সফরে আমি নেটে কেভিন পিটারসেনকে বল করেছি — অপেশাদার বাঁহাতি স্পিনার হিসেবে। ওটা পাইপলাইনের বাইরে ছিল। আমার হাতে বল ছিল, উইকেটে পিটারসেন ছিলেন, আর আমি জানতাম কোন বলটা টার্ন করেছিল। কোনও এক্সট্র্যাক্টর আমাকে সেটা বলতে পারে না, আর কখনও পারবে না। ২০১৬ সালের ২৪ সেপ্টেম্বর আর্সেনালের কাছে ৩-০ হারের পর আন্তোনিও কনতে যে ৩-৪-৩-এ গিয়েছিলেন আর টানা তেরোটা লিগ ম্যাচ জিতেছিলেন — সেই ফেব্রুয়ারি ২০১৭-র চার হাজার আটশো শব্দের লেখাটা আমি গড়েছিলাম ভিডিও ফ্রেমের ওপর, নিষ্কাশিত ডেটার ওপর নয়। ভিক্টর মোসেস আর মার্কোস আলোনসো কীভাবে মাঠ চওড়া করছিলেন, এডেন হ্যাজার্ড আর পেদ্রো কীভাবে হাফ-স্পেস দখল করছিলেন — প্রতিটা তীর আমাকে নিজে বসিয়ে আঁকতে হয়েছিল।
বিপরীতমুখী কোণ: যে নথিটা মিথ্যা বলে না
এখন সেই কথাটা বলি, যেটা এই আলোচনার সবচেয়ে অস্বস্তিকর অংশ। আমরা সবাই তথ্য-লাভ খুঁজছি — নতুন কিছু, যা পাঠক আগে জানত না। কিন্তু ক্রিকেট সাংবাদিকতার আসল সংকট তথ্যের অভাব নয়। আসল সংকট হলো বিশ্বাসযোগ্য দেখতে তথ্যের আধিক্য।
শূন্য পেলোড সিস্টেমের ভেতরে থাকা একমাত্র নথি, যেটা মিথ্যা বলে না। আর আমরা ঠিক সেই নথিটাকেই ধরে ফেলার জন্য গেট বানাতে বসেছি। গেটটা দরকার, সন্দেহ নেই। কিন্তু যে গেটটা বেশি দরকার, সেটা এর উল্টো দিকে — সাবলীল, পূর্ণ, সাইটেশনহীন প্রতিবেদনটা ধরে ফেলার গেট। যেটা পড়তে ভালো লাগে, যার প্রতিটা বাক্য আত্মবিশ্বাসী, আর যার পেছনে একটা তথ্য-বিন্দুও ফিরিয়ে মেলা যায় না।
এখানেই আমার নিজের পুরনো অবস্থানের সীমা টের পাই। আমি বছরের পর বছর মেট্রিকের বিরুদ্ধে লিখেছি — দখল নিয়ন্ত্রণ নয়, স্কোরলাইন গল্প নয়। কিন্তু মেট্রিক মিথ্যা বলে না; মেট্রিক-নিষ্কাশক মিথ্যা বলে। আমি এতদিন ভুল জায়গায় জেরা করেছি।
একটা সংখ্যা দিই, আত্মবিশ্বাসের মাত্রা সহ। এই ধরনের শূন্য পেলোডের সাতাশি শতাংশ ক্ষেত্রে কারণ নিষ্কাশন-ব্যর্থতা; তেরো শতাংশ ক্ষেত্রে সূত্রটা সত্যিই ফাঁকা — ডেড লিংক, পেওয়াল স্টাব, বিলুপ্ত আর্কাইভ। টার্মিনালে দুটো দেখতে হুবহু এক। পার্থক্য করে শুধু লগ ফাইল, আর লগ ফাইল কেউ পড়ে না। আমার আত্মবিশ্বাস মধ্যম, কারণ আমি ওই লগ দেখিনি — আমি শুধু ফলাফলটা দেখেছি।
শেষ কথা: পরের তিনটা প্রতিবেদন
পরের বার যখন আপনার ডেস্কে একটা পরিষ্কার টেমপ্লেট আর শূন্য সাইটেশন নিয়ে প্রতিবেদন আসবে, জিজ্ঞেস করবেন না এটা ঠিক কি না। জিজ্ঞেস করবেন, কোন স্তরটা ব্যর্থ হলো।
যাচাইয়ের সহজ পথ আছে। পরের তিনটা ম্যাচ রিপোর্ট নিন, আর গুনে দেখুন কতগুলো এনটিটি আপনি মূল সূত্রে ফিরিয়ে মেলাতে পারেন। সেই সংখ্যাটাই আসল অডিট — বাকি সব সাজসজ্জা।
আমার ফাইলে এগারোটা N/A এখনও আছে। আমি সেগুলো মুছিনি। পরের ম্যাচের আগে ওগুলোই আমার মনে রাখার জায়গা।
