হোমবিশ্ব ক্রিকেটখালি ফাইলের ক্রিকেট: যখন পাইপলাইন ম্যাচের শরীর হারায়, ট্যাগটা থেকে যায়

খালি ফাইলের ক্রিকেট: যখন পাইপলাইন ম্যাচের শরীর হারায়, ট্যাগটা থেকে যায়

**মূল উত্তর:** স্টেজ-১ আর্টিফ্যাক্টে কেবল cricket_world ডোমেইন লেবেল ভরা ছিল; শিরোনাম ও উৎস N/A, ইনফরমেশন পয়েন্ট শূন্য, ধরন Unclassified। এটি কনটেন্ট-শূন্য নিবন্ধ নয়, বরং ফেচ/পার্স স্তরে এক্সট্রাকশন ব্যর্থতা, যেখানে মেটাডেটা থেকে লেবেল এসেছে কিন্তু বডি টেক্সট আসেনি। **মূল তথ্য:** - শিরোনাম N/A, উৎস N/A, ধরন Unclassified; শুধু ডোমেইন ফিল্ড cricket_world পূরণ হয়েছে। - এক-বাক্যে সারমর্ম ফাঁকা এবং ইনফরমেশন পয়েন্টের তালিকা শূন্য — শূন্য অ্যাটমিক ফ্যাক্ট। - এনটিটি ও সোর্স-কোয়ালিটি ফিল্ডে আউটপুট নয়, নির্দেশনা বসে আছে; সময়-সংবেদনশীলতা 'মূল্যায়ন করা হয়নি'। - সম্ভাব্য কারণ: পেওয়াল, বট-ব্লক, জাভাস্ক্রিপ্ট রেন্ডারিং, নন-এইচটিএমএল পেলোড, ফিড স্টাব, ইনকোডিং ব্যর্থতা। - তথ্যহীন আর্টিফ্যাক্টে স্ট্যান্স, এনটিটি বা সময়-সংবেদনশীলতার বিচার করলে তা অনুমানে দাঁড়ায়। **সূত্র উৎস:** স্টেজ-১ পাইপলাইন আর্টিফ্যাক্টের বিশ্লেষণ প্রতিবেদন, ক্রিকসুলতান ডেস্ক আর্কাইভ | Cross-checked: cricsultan.com **সম্পর্কিত প্রশ্নোত্তর:** প্রশ্ন: cricket_world লেবেল থাকলে নিবন্ধটিকে ক্রিকেট কনটেন্ট ধরা যায়? উত্তর: না, লেবেলটি ইউআরএল বা ফিড ক্যাটাগরি থেকে এসেছে, বডি টেক্সট থেকে নয়; cricsultan.com কনটেন্ট ভেরিফিকেশন গাইড অনুযায়ী লেবেল ও বডি আলাদা যাচাই করতে হয়। প্রশ্ন: খালি আর্টিফ্যাক্ট কি সত্যিই কনটেন্টহীন পেজ নির্দেশ করে? উত্তর: সম্ভবত নয়, কারণ লাইভ স্কোর বা গ্যালারি পেজেও সাধারণত শিরোনাম ও উৎস পাওয়া যায়, যা এখানে অনুপস্থিত। প্রশ্ন: এই ব্যর্থতা সংশোধনের প্রথম ধাপ কী? উত্তর: রেন্ডারিং চালু করে ইউআরএল ও প্রকাশের তারিখসহ রি-ফেচ, এবং ফেচ ব্যর্থতাকে আলাদা ইভেন্ট হিসেবে লগ করা।

দুবাইয়ে রাত তখন এগারোটা পঞ্চাশ। টেবিলে দুটো স্ক্রিন জ্বলছে — একটায় চলছে ম্যাচের স্ট্রিম, অন্যটায় আমার ফাইল। ফাইলটা খুললাম মঠের দরজার মতো: প্রথমে নিঃশব্দে, তারপর একসঙ্গে। ভেতরে শিরোনাম নেই। উৎস নেই। ধরন লেখা Unclassified। এক-বাক্যে সারমর্ম ফাঁকা। ইনফরমেশন পয়েন্টের তালিকা শূন্য। অথচ একটা ঘর ভরা — ডোমেইন লেবেল: cricket_world।

কোনো ক্রিকেটার এখানে রান করেননি। কোনো বোলার ওভার করেননি। তবু ফাইলটা নিজেকে ক্রিকেট বলে দাবি করছে, আর তার হাতে কোনো প্রমাণ নেই। আজকের লেখাটা ঠিক এই অদ্ভুত মুহূর্তটা নিয়ে — একটা স্পোর্টস ডেটা পাইপলাইন যখন ক্লাসিফাই করতে পারে কিন্তু পড়তে পারে না, তখন ক্রিকেট-সাংবাদিকতার সঙ্গে কী ঘটে।

প্রেক্ষাপট: স্কোরকার্ডে শুধু 'ক্রিকেট' লেখা, বাকি সব ঘর ফাঁকা

যে আর্টিফ্যাক্টটা আমার সামনে এল, সেটাকে ক্রিকেটের ভাষায় বললে দাঁড়ায় — একটা স্কোরকার্ড যেখানে ম্যাচের ধরন লেখা আছে, কিন্তু দল নেই, ব্যাটসম্যান নেই, ওভার নেই, স্কোর নেই। শুধু একটা সিল: এটা ক্রিকেটের জগৎ।

খালি ফাইলের ক্রিকেট: যখন পাইপলাইন ম্যাচের শরীর হারায়, ট্যাগটা থেকে যায়

আমার পেশায় এটা নতুন নয়। সংবাদপত্রের র্যাশ কপি থেকে শুরু করে লাইভ স্কোর ফিড পর্যন্ত — সব জায়গায় একই স্তর থাকে: ফেচ, পার্স, ক্লাসিফাই, এক্সট্রাক্ট। এই চারটে ধাপ সাধারণত একই শ্বাসে চলে, তাই কেউ খেয়াল করে না কোনটা কখন থেমে গেছে। কিন্তু ফাঁকা আর্টিফ্যাক্টটা দেখিয়ে দিল ক্রমটা ভাঙতে পারে। এখানে ক্লাসিফায়ার আগে কাজ করেছে, কনটেন্ট এক্সট্রাকশন তার পরে আসেনি। মানে লেবেলটা এসেছে কনটেন্ট থেকে নয়, এসেছে মেটাডেটা থেকে — ইউআরএল পাথ, ফিড ক্যাটাগরি, সাইটের সেকশন, বা শিরোনামের কোনো টুকরো।

খালি ফাইলের ক্রিকেট: যখন পাইপলাইন ম্যাচের শরীর হারায়, ট্যাগটা থেকে যায়

লেবেলটা ম্যাচের কথা বলছে না, লেবেলটা ফোল্ডারের নাম বলছে। এই পার্থক্যটাই পুরো ঘটনার কেন্দ্র।

এখন প্রশ্ন হলো, এটা কি কনটেন্টহীন নিবন্ধ, নাকি কনটেন্ট তোলার ব্যর্থতা? প্যাটার্নটা দেখলে দ্বিতীয়টাই মনে হয়। সত্যিকারের কনটেন্ট-শূন্য পেজ — লাইভ স্কোর পেজ, ইনডেক্স পেজ, ফটো গ্যালারি — সেখানেও অন্তত শিরোনাম আর উৎস বেরিয়ে আসে। এখানে সেগুলোও নেই। শিরোনাম ও উৎস দুটোই N/A, ইনফরমেশন পয়েন্টের তালিকা শূন্য, আর এনটিটি ও সোর্স-কোয়ালিটি ফিল্ডে আউটপুটের বদলে নির্দেশনা বসে আছে। অর্থাৎ পাইপলাইন একটা অসম্পূর্ণ জায়গা থেকে লেবেল তুলে নিয়েছে, আর বাকি সব জায়গায় টেমপ্লেটের ভাষা ফিরিয়ে দিয়েছে।

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

ক্রিকেট কভারেজে এই চুপচাপ ব্যর্থতার দাম বড়। কারণ ক্রিকেটের তথ্য সংখ্যায় বাঁধা — পাওয়ারপ্লে রান রেট, ডেথ ওভারে ইকোনমি, বলের লাইন-লেংথ, টস, পিচ রিপোর্ট, ডিএলএস প্যার স্কোর। একটা ফিড যদি এই স্তরটা হারায়, পাঠক শুধু একটা শিরোনাম পায় আর আমরা পাই একটা অনুমান।

মূল বিশ্লেষণ: সংখ্যার শরীর না থাকলে সংখ্যা মিথ্যা বলে না, বিভ্রান্ত করে

২০১৭ সালে সিঙ্গাপুরে এশিয়া ফুটবল ডেটা ল্যাব-এ জুনিয়র অ্যানালিস্ট হিসেবে কাজ করতাম। এস-লিগের জন্য লাইভ এক্সজি মডেল বানাচ্ছি, আর প্রতি হোম ম্যাচে jalan besar স্টেডিয়ামে উপস্থিত থাকতাম। স্টিপ প্লাজিবাত ওই মৌসুমে ৩৭ গোল করলেন, তাঁর এক্সজি দাঁড়াল ২৪.৮। অতিরিক্ত ১২.২। মডেল বলল রিগ্রেশন আসবে। চোখ বলল ফিনিশিং সত্যি।

সেই অভিজ্ঞতা আমাকে একটা জিনিস শিখিয়েছে, যেটা আজকের ফাঁকা ফাইলের ক্ষেত্রেও খাটে: সংখ্যা তখনই অর্থবহ হয় যখন তার পেছনে ম্যাচের শরীর থাকে। শূন্য ইনফরমেশন পয়েন্টের ওপর দাঁড়ানো একটা লেবেল আর প্লাজিবাতের ৩৭ গোলের পাশে বসানো একটা খালি এক্সজি কলাম — দুটোই একই রোগের লক্ষণ। একটা দাবি আছে, তার পক্ষে সাক্ষী নেই।

এখানেই ব্যর্থতার সবচেয়ে বিপজ্জনক অংশটা লুকিয়ে আছে। ফাঁকা ফাইল নিরীহ। ফাঁকা ফাইলে কেউ বিশ্বাস করে না। বিপদ হলো সেই ফাইলে যখন আত্মবিশ্বাসী ঘর ভরে যায় — এনটিটি তালিকা, সময়-সংবেদনশীলতার মাপ, উৎসের মানের বিচার। স্টেজ-১ আর্টিফ্যাক্টে দেখা গেল উল্টোটা: এনটিটি ফিল্ডে বসে আছে নির্দেশনা — 'উপরের ইনফরমেশন পয়েন্ট থেকে শনাক্ত করুন'। সময়-সংবেদনশীলতা: 'মূল্যায়ন করা হয়নি'। উৎসের মান: 'উৎস ফিল্ড দেখে বিচার করুন'।

এটা টেমপ্লেট প্রোডাকশনে চুইয়ে পড়েছে — ঠিক সেই দলের মতো যারা ম্যাচ শিটে ব্যাটিং অর্ডারে 'এখানে নাম লিখুন' ছাপিয়ে মাঠে নেমে যায়। ফিল্ডের নাম থাকা আর ফিল্ডের ভেতরে উত্তর থাকা এক জিনিস নয়। মেটাডেটার ক্ষেত্রে এই গুলিয়ে ফেলা খুব সাধারণ, কারণ দুটোই একই স্কিমায় বসে থাকে।

রাশিয়া ২০১৮-এ আমি সিঙ্গাপুরের এক ব্রডকাস্টারের হয়ে ওয়ার্ল্ড কাপ কভার করছিলাম। বেলজিয়াম-জাপান ম্যাচে জাপান ২-০ এগিয়ে গেল। স্ক্রিনে আমার নোটবুকে তখন জাপানের পিপিডিএ ৬.৯, বেলজিয়ামের ২৪ শট, এক্সজি ৩.১ বনাম ১.৪। ম্যাচ শেষে বেলজিয়াম জিতল ৩-২। প্রতিটা পালাবদল আমি লাইভ থ্রেডে লিখছিলাম। রাশিয়া ২০১৮-এ প্রতিটা রিফ্রেশ ছিল একটা নাড়ি, যেটা আমাকে ধরে রাখতেই হতো।

সেই রাতে আমার সবচেয়ে বড় শিক্ষা ডেটা নিয়ে ছিল না, ছিল পাইপলাইনের গতি নিয়ে। লাইভ থ্রেডে দ্বিতীয়বার ফেচ করার সুযোগ নেই। একটা ফিল্ড ফাঁকা এলে সেটা পূরণ করার সময় নেই। যে সিস্টেম লেবেল দিতে পারে কিন্তু শরীর আনতে পারে না, সে লাইভ সাংবাদিকতায় সরাসরি ক্ষতিকর — কারণ লাইভে পাঠক ফাঁকা জায়গা নিজের অনুমানে ভরে নেয়, আর সেটা পরে সংশোধন করা যায় না।

ক্রিকেটে এই ঝুঁকিটা ফুটবলের চেয়েও বড়, কারণ ক্রিকেটের ম্যাচ-স্টেট প্রতিনিয়ত বদলায়। একটা উইকেট পড়ার পর দশ ওভারে রান রেটের অর্থ পাল্টে যায়। পাওয়ারপ্লের ৪৫/১ আর ৩২/৩ একই সংখ্যা নয়। ডিএলএস টার্গেট একটা সংখ্যা, কিন্তু সেই সংখ্যার পেছনে ওভার, উইকেট হাতে আছে কি নেই — সেটাই আসল কথা।

আর ঠিক এখানেই খালি স্টেডিয়ামের পাঠটা কাজে লাগে। ২০২০ সালের ১৬ মে ডর্টমুন্ড শাল্কেকে ৪-০ হারায় রেভিয়ারডার্বিতে। করোনার প্রথম চল্লিশটা খালি স্টেডিয়ামের ম্যাচে ঘরের দল জিতেছিল মাত্র ২১.৪ শতাংশ, আগের ৪৩.২ শতাংশের বিপরীতে। খালি স্টেডিয়াম আমাকে শিখিয়েছিল নীরবতারও নিজের প্রত্যাশিত রান থাকে। কিন্তু কেউ যদি শুধু ২১.৪ লিখে রাখে আর 'খালি স্টেডিয়াম' লিখতে ভুলে যায়, তাহলে সংখ্যাটা মিথ্যা হয়ে যায়।

ফাঁকা আর্টিফ্যাক্টেও একই ঘটনা ঘটেছে। ডোমেইন লেবেলটা নীরবতা। cricket_world লেখা আছে, কিন্তু কোন ম্যাচ, কোন ফরম্যাট, কোন প্রতিযোগিতা, কোন তারিখ, কোন সূত্র — কিছু নেই। এই লেবেলটা নিয়ে কোন বিশ্লেষণ দাঁড় করানো যায় না। দাঁড় করালে সেটা বিশ্লেষণ নয়, সাজানো গল্প।

আমার কাজের একটা নিয়ম আছে, যেটা আমি স্প্রেডশিটের প্রথম সারিতেই লিখে রাখি: যদি információ পয়েন্টের তালিকা শূন্য হয়, তাহলে তার নিচের প্রতিটি অনুমান বাতিল। কারণ স্ট্যান্স, উদ্দেশ্য, এনটিটি, সময়-সংবেদনশীলতা — এগুলোর প্রতিটা নির্ভর করে বডি টেক্সটের ওপর। বডি নেই মানে ভিত্তি নেই। আর ভিত্তিহীন বিশ্লেষণ ক্ষতিকর, কারণ সেটা কর্তৃত্বের সুরে লেখা।

বাংলাদেশ-ইউএইআই ফ্যান হিসেবে এই ব্যর্থতা আমি আরও তীক্ষ্ণভাবে টের পাই। এই উপসাগরীয় সময় অঞ্চলে আমরা ক্রিকেট দেখি শিফটের ফাঁকে, রাতের রিফ্রেশ-অনুষ্ঠানে। দুবাই বা আবুধাবির ফ্ল্যাটে বসে ঢাকার ম্যাচ দেখার সময় আপনার হাতে থাকে শুধু স্ক্রিন আর একটা অ্যাপ। ফিড যখন নীরব, আপনি বুঝতেই পারেন না ম্যাচ চলছে কি থেমে গেছে। তখন নীরবতাটা তথ্যহীন হয়ে যায় — আর তথ্যহীন নীরবতা সবচেয়ে ভয়ংকর, কারণ সেখানে গুজব দ্রুত বাড়ে।

নিরপেক্ষ ভেন্যুর পাঠও এখানে যোগ হয়। আমিরাতের স্টেডিয়ামগুলো খালি-স্টেডিয়াম ক্রিকেটের ল্যাবরেটরি — গরম, স্পার্স দর্শক, শব্দহীন ক্যাচ-ড্রপ। এই অবস্থায় ম্যাচের গতি মাপা যায় না শুধু স্কোরবোর্ড দেখে। দরকার বোলারের স্পেলের নীরবতা, ফিল্ড প্লেসমেন্টের বদল, ডিআরএস রেফারেলের দেরি। এগুলো কোনোটাই মেটাডেটায় থাকে না। এগুলো থাকে বডিতে। বডিটা হারালে ম্যাচটাই হারায়।

আমার একটা অভ্যাস আছে, যেটা সহকর্মীরা হাসি দিয়ে দেখে: আমি স্প্রেডশিট পার্টিতে নিয়ে যাই, ফেরার সময় গল্প নিয়ে ফিরি। মানে, কোন ম্যাচে কে কী করল সেটা আমি কলামে লিখি, আর কোন মুহূর্তে গ্যালারি চুপ হয়ে গেল সেটা আমি আলাদা করে মনে রাখি। দুটো আলাদা খাতা — একটা সংখ্যার, একটা শরীরের। পাইপলাইনে এই দুটো খাতা একসঙ্গে আসে না। এজন্যই ফাঁকা আর্টিফ্যাক্ট দেখে আমি অবাক হইনি; আমি শুধু দেখেছি কোন খাতাটা এইবার হারাল।

বিপরীত ভাবনা: দোষ কি পার্সারের, নাকি আমাদের প্রশ্ন করার?

সহজ উত্তরটা হলো — পার্সার ভেঙেছে, ঠিক করে দিলেই হবে। কিন্তু সহজ উত্তরটা প্রায়ই ভুল জায়গায় আঙুল তোলে।

ক্লাসিফায়ার আগে চালানো আর এক্সট্রাকশন পরে চালানো — এটা কোনো দুর্ঘটনা নয়, এটা একটা স্থাপত্য-সিদ্ধান্ত। বেশিরভাগ ফিড সিস্টেমে লেবেলটা আগে দরকার হয়, কারণ লেবেল দিয়ে রাউটিং হয়: কোন সেকশনে যাবে, কোন এডিটর দেখবে, কোন কিউতে বসবে। ফলে লেবেলটা দ্রুত আসে, আর শরীরটা পরে আসে — যদি আসে। এই ক্রমটাই আমাদের শিখিয়ে দেয় মেটাডেটাকে সত্য ভাবতে।

আরও একটা কথা স্পষ্ট করে বলি: এখানে ট্যাগ আর কনটেন্টের মধ্যে সম্পর্কটা নিছক কাকতালীয় হতে পারে। ইউআরএল-এ 'ক্রিকেট' শব্দ থাকলেই নিবন্ধটা ক্রিকেট নয় — হতে পারে সেটা একটা স্পন্সরশিপ ঘোষণা, একটা টিকিট বিক্রির পেজ, বা একটা ভিডিও প্লেয়ার। লেবেল আর বস্তুর মধ্যে সম্পর্কটা ধরতে হবে যাচাই করে, অনুমান করে নয়।

আর একটা কথা, যেটা ডেটা-সাংবাদিক হিসেবে কম বলি: কখনো কখনো ফাঁকা এক্সট্রাকশন সৎ উত্তর। যে পাইপলাইন অনুমান করে ফিল্ড ভরে দেয়, সে পাঠককে ঠকায়। যে পাইপলাইন ফাঁকা রেখে দেয়, সে অন্তত সত্য বলে — আমরা এই নিবন্ধটা পড়তে পারিনি। সাংবাদিকতায় নীরবতা ব্যর্থতা হতে পারে, কিন্তু বানানো কণ্ঠস্বর তার চেয়ে বড় ব্যর্থতা।

খালি ফাইলের ক্রিকেট: যখন পাইপলাইন ম্যাচের শরীর হারায়, ট্যাগটা থেকে যায়

আমার দ্বিতীয় ভাবনা সংবাদমাধ্যমের অর্থনীতি নিয়ে। ট্রান্সফার মার্কেট স্বীকারোক্তির বুথ, আর ফি কখনোই পুরো পাপ নয় — ক্রিকেটের ফ্র্যাঞ্চাইজি নিলামেও একই নাটক। ক্লাব বা ফ্র্যাঞ্চাইজি যখন বড় অঙ্কে খেলোয়াড় কেনে, তখন সংখ্যাটা হেডলাইন হয়, আর সেই সংখ্যার পেছনের স্কাউটিং ডেটা কোথায় থাকে কেউ জিজ্ঞেস করে না। আমাদের কনটেন্ট ফিডগুলোও একই দলে: লেবেলটা হেডলাইন, শরীরটা স্কাউটিং রিপোর্ট। হেডলাইন ছাপা হয়, রিপোর্ট ফাইলে পড়ে থাকে।

পরের রাউন্ডের সংকেত

তিনটে কাজ আগামী সপ্তাহেই হওয়া উচিত। এক, ফেচ ব্যর্থতাকে আলাদা ইভেন্ট হিসেবে লগ করা — যাতে খালি আর্টিফ্যাক্ট আর সত্যিই খালি নিবন্ধ একই ঝুড়িতে না পড়ে। দুই, রেন্ডারিং চালু করে রি-ফেচ, আর সোর্সের ইউআরএল ও প্রকাশের তারিখ সাথে রাখা। তিন, এবং সবচেয়ে জরুরি — ইনফরমেশন পয়েন্টের তালিকা শূন্য থাকলে এনটিটি, সময়-সংবেদনশীলতা আর উৎসের মানের বিচার নিজে থেকে দাবি করা বন্ধ করা।

শেষ প্রশ্নটা পাইপলাইনের জন্য নয়, আমাদের জন্য: আমরা কি ক্রিকেটকে তার শরীর দিয়ে পড়তে চাই, নাকি ফোল্ডারের নাম পড়ে সন্তুষ্ট থাকব? কারণ লেবেল কখনো রান করে না, বোলিং করে না, আর খালি স্টেডিয়ামে দর্শক হয়ে বসে থাকে না।

সংশ্লিষ্ট খেলোয়াড়গণ