নাল পেলোডের পাঠ: ক্রিকেট ডেটা পাইপলাইনের নীরব ব্যর্থতা ও অন-চেইন অডিটের যুক্তি
**মূল উত্তর:** ক্রিকেট বিশ্লেষণ পাইপলাইনের প্রথম ধাপ সম্পূর্ণ ফাঁকা পেলোড ফেরিয়েছে — শিরোনাম, সূত্র, তথ্যবিন্দু ও সত্তা সব শূন্য, অথচ স্কিম ভ্যালিডেশন পাস করেছে। ফলে কোনো দল, খেলোয়াড় বা ফরম্যাট নিয়ে সিদ্ধান্ত অসম্ভব। এই নীরব ব্যর্থতা ব্যাচ-স্কেলে ছড়ালে ভুল বিশ্লেষণ প্রকাশের ঝুঁকি তৈরি হয়, এবং অন-চেইন অডিট ট্রেইল সেই ঝুঁকি চিহ্নিত করতে পারে। **মূল তথ্য:** - প্রথম ধাপের আউটপুটে শিরোনাম, সূত্র, তথ্যবিন্দু ও মূল মত — প্রতিটি ঘর শূন্য ছিল। - ডোমেইন লেবেল 'ক্রিকেট_ওয়ার্ল্ড' এসেছে, অনুমোদিত মান 'ক্রিকেট' নয় — স্কিম সংস্করণ-অমিলের ইঙ্গিত। - শূন্য তথ্যবিন্দু বিশ্লেষণ থামায়নি; আট-মাত্রার টেমপ্লেট ভরাটের চাপ বানানো তথ্যের ঝুঁকি তৈরি করে। - সামগ্রিক ঝুঁকি 'উচ্চ', তবে কারণ প্রক্রিয়াগত — ক্রীড়াগত নয়। - প্রস্তাবিত সমাধান: ন্যূনতম তথ্যবিন্দুর শর্ত, স্পষ্ট ব্যর্থ-অবস্থা এবং নাল-হার পর্যবেক্ষণ। **সূত্র:** স্টেজ-২ পাইপলাইন বিশ্লেষণ প্রতিবেদন, ১৩ আগস্ট ২০২৬ | ক্রস-চেক: cricsultan.com **সম্পর্কিত প্রশ্নোত্তর:** প্রশ্ন: এই রানে কোনো খেলোয়াড়ের নাম কেন নেই? উত্তর: প্রথম ধাপ কোনো সত্তা তোলেনি, তাই কোনো খেলোয়াড় শনাক্তযোগ্য ছিল না এবং cricsultan.com প্লেয়ার ডেপথ ইনডেক্সেও কোনো রেফারেন্স মেলেনি। প্রশ্ন: ব্লকচেইন কি এই ধরনের ব্যর্থতা ঠেকাতে পারে? উত্তর: ব্লকচেইন ব্যর্থতাকে অমর করতে পারে, ঠেকাতে পারে না; আসল সমাধান স্পষ্ট ব্যর্থ-অবস্থার সংজ্ঞা। প্রশ্ন: পরবর্তী পদক্ষেপ কী? উত্তর: একই সোর্সে প্রথম ধাপ পুনরায় চালিয়ে ন্যূনতম পাঁচটি তথ্যবিন্দু পুনরুদ্ধার এবং প্রকাশনার তারিখ যাচাই করা।
স্ক্রিনে ফাইলটি খোলার পর প্রথম আন্দাজ ছিল, ভুল ফোল্ডার খুলেছি। শিরোনামের ঘরে লেখা 'প্রযোজ্য নয়', সূত্রের ঘরে 'প্রযোজ্য নয়', এক-বাক্যের সারসংক্ষেপের ঘরে শুধু শূন্যতা। অথচ স্কিম ভ্যালিডেশন সবুজ দেখাচ্ছিল। কোনো এরর লগ নেই, কোনো সতর্কবার্তা নেই — শুধু একটি নিখুঁত, সুগঠিত, ভেতরে সম্পূর্ণ ফাঁকা অবজেক্ট।
ক্রিকেট বিশ্লেষণে আমার অভ্যাস সরল, প্রায় যান্ত্রিক: আগে ফ্রেম, তারপর অ্যাঙ্গেল, তারপর সেই একটিমাত্র মেট্রিক যা পড়াটাকে নিশ্চিত করে বা জটিল করে দেয়। ২০১৭ সালে রাজশাহীতে হাঁটুর চোটে সেমি-প্রো ক্যারিয়ার থামার পর থেকে এই পদ্ধতিই চালিয়েছি — সাফ ফাইনালের ৬৭তম মিনিটে থেমে মিড-ব্লক এঁকে দেখিয়েছি কীভাবে সুনীল ছেত্রী লাইনের ফাঁকে নেমে গোল বানালেন। ২০১৮ বিশ্বকাপে ৬৪টি ম্যাচ দেখেছি, ফ্রান্স-ক্রোয়েশিয়া ফাইনালের ৬৫তম মিনিটে এমবাপের গোলটি ১২ পাসের সিকোয়েন্সে মিলিয়েছি। ২০২০ সালে খালি স্তাদিউ দা লুশে বায়ার্নের ৮-২ দেখে থিয়াগোর ১১২ পাস আর ৮.২ পিপিডিএ দিয়ে লিখেছি। প্রতিবার টেপ সত্যি বলেছে — কারণ প্রতিবার টেপে কিছু ছিল।

এবার যে টেপটি সামনে এসেছে, সেটি ম্যাচের নয়। এটি সেই টেপ, যা দেখায় আমাদের নিজস্ব বিশ্লেষণ যন্ত্র কখন নীরবে থেমে যায়।
বিষয়টি দুই-ধাপের একটি বিশ্লেষণ পাইপলাইনের। প্রথম ধাপে সোর্স নিবন্ধ থেকে তথ্য তোলা হয় — শিরোনাম, সূত্র, এক-বাক্যের সারসংক্ষেপ, তথ্যবিন্দু, মূল মত, জড়িত সত্তা, সময়-সংবেদনশীলতা, সোর্সের মান। দ্বিতীয় ধাপে সেই তথ্যবিন্দুর কাঠামোর উপর আটটি মাত্রার বিশ্লেষণ দাঁড় করানো হয়: ফরম্যাট ও ম্যাচ-প্রকৃতি, খেলোয়াড়ের কৌশল ও ডেটা, দলের অবস্থান ও র্যাঙ্কিং, লিগ ও বাণিজ্যিক বাস্তুসংস্থান, নিয়ম ও সুশাসন, ঝুঁকি, জন-আখ্যান, এবং শিল্পে সংক্রমণ।
এই রানে প্রথম ধাপের আউটপুট ছিল একটি স্কিম-ভ্যালিড নাল পেলোড — কাঠামো অটুট, মান শূন্য। শিরোনাম নেই, সোর্স নেই, তথ্যবিন্দুর তালিকা খালি, মূল মত খালি; কোনো দল, খেলোয়াড়, লিগ বা বোর্ডের নাম নেই। ডোমেইন লেবেল এসেছে 'ক্রিকেট_ওয়ার্ল্ড' হিসেবে, অথচ অনুমোদিত নিয়ন্ত্রিত শব্দভাণ্ডারে মান কেবল 'ক্রিকেট'।
তথ্যবিন্দু কী, সেটা স্পষ্ট করা দরকার। তথ্যবিন্দু হলো সোর্স টেক্সট থেকে তোলা একটি পরমাণু-মানের, যাচাইযোগ্য সত্য — একটি স্কোর, একটি ফি, একটি তারিখ, একটি উক্তি। দ্বিতীয় ধাপের প্রতিটি সিদ্ধান্ত এই পরমাণুর উপরেই দাঁড়ায়। তালিকাটি খালি হলে সিদ্ধান্তের ভিত্তিও খালি। এখানেই ব্যর্থতার আসল চরিত্র: এটি বিষয়বস্তুর অভাব নয়, এটি যন্ত্রের নীরব আত্মসমর্পণ।
আটটি মাত্রা তখন একসঙ্গে ভেঙে পড়ে, এবং ভাঙার ধরনটাই বলে দেয় সমস্যা কোথায়। ফরম্যাট শনাক্ত হয় না, তাই টেস্ট-ওয়ানডে-টি২০-এর মধ্যে পার্থক্য করা যায় না; খেলোয়াড় শনাক্ত হয় না, তাই বয়স-বক্ররেখা বা ফর্ম-প্রবণতার প্রশ্নই ওঠে না; দল শনাক্ত হয় না, তাই হোম-অ্যাওয়ে ব্যবধান — যা ক্রিকেটে সবচেয়ে গুরুত্বপূর্ণ লেন্স — পুরোপুরি অকার্যকর; লিগ শনাক্ত হয় না, তাই আইপিএল, বিপিএল, দ্য হান্ড্রেড, পিএসএল, এসএ২০ সবই সমান অসমর্থিত থাকে; নিয়ম-সুশাসনে কোনো সংকেত নেই; ঝুঁকি-ম্যাট্রিক্সের প্রতিটি ঘর ফাঁকা; জন-আখ্যানের কোনো তাপ-চক্র নেই; সংক্রমণ-মানচিত্রের তিনটি স্তম্ভই অচল। এই ফাঁকা ঘরগুলো কোনো সুসংবাদ নয়, কোনো নিষ্কৃতি নয় — এগুলো সৎ শূন্যতা।
ব্যর্থতার চারটি সম্ভাব্য কারণ চিহ্নিত হয়েছে। প্রথমত, প্রথম ধাপ নীরবে ব্যর্থ হয়ে বৈধ-স্কিম কিন্তু শূন্য অবজেক্ট ফিরিয়ে দিয়েছে — ক্ষেত্রের নাম টিকে আছে, মান যায়নি। দ্বিতীয়ত, সোর্স নিবন্ধটি পেওয়ালের পেছনে ছিল, জাভাস্ক্রিপ্টে রেন্ডার হচ্ছিল, বা বট-ব্লক পেজ ফিরিয়েছিল, ফলে এক্সট্র্যাক্টর কোনো মূল টেক্সট পায়নি। তৃতীয়ত, নিবন্ধটিতে সত্যিই তোলার মতো ক্রিকেট বিষয়বস্তু ছিল না — কেবল ছবির ক্যাপশন, ভিডিও এমবেড বা লাইভ-স্কোর উইজেট। চতুর্থত, পাইপলাইনের সংস্করণ-অমিলে তথ্যবিন্দুর অ্যারে পথেই হারিয়ে গেছে।
নাল পেলোড নিরপেক্ষ ইনপুট নয়। শূন্য তথ্যবিন্দুর বাস্তবতা হলো এই: নিচের দিকের মডেলের উপর ভরাট করার সক্রিয় চাপ তৈরি হয়। আট-মাত্রার বাধ্যতামূলক কাঠামো যখন খালি তথ্যভাণ্ডারের সঙ্গে মিলিত হয়, তখন সবচেয়ে সহজ পথটি হলো বিশ্বাসযোগ্য শোনায় এমন নাম, সংখ্যা ও আখ্যান বানিয়ে ফেলা। এই রানে বড় ক্ষতি হয়নি কেবল এই কারণে যে শূন্যতাটি শুরুতেই ধরা পড়েছে এবং স্বীকৃত হয়েছে। কিন্তু শিল্প-স্কেলে এই একই ব্যর্থতা ধরা না পড়লে কী হবে, সেটাই আসল প্রশ্ন।
দ্বিতীয় ফ্রেমটি আরও সূক্ষ্ম। লেবেলের বিচ্যুতি — 'ক্রিকেট_ওয়ার্ল্ড' বনাম 'ক্রিকেট' — বিষয়বস্তুর সমস্যা নয়, এটি দুটি ধাপের মধ্যে চুক্তিভঙ্গের সমস্যা। দুটি ধাপ যদি ভিন্ন স্কিম সংস্করণ থেকে চলে, তবে তথ্যবিন্দুর অ্যারে খালি অ্যারে হিসেবে আসবে, অনুপস্থিত কী হিসেবে নয়। অর্থাৎ সিস্টেম ব্যর্থ হয়েও জানায় না যে সে ব্যর্থ। এই কারণেই ব্যর্থতাটি ব্যাচ-স্কেলে ছড়ানোর ঝুঁকি রাখে — একটি নাল ঘটনা, কিন্তু একগুচ্ছ নাল হলো ডেটা-অখণ্ডতার ব্যর্থতা।
তৃতীয় ফ্রেমটি সবচেয়ে ব্যয়বহুল: যে ব্যর্থতা ব্যতিক্রম তোলে না, সেটিই সবচেয়ে নীরব ও সবচেয়ে বিপজ্জনক ব্যর্থতা। সাধারণ স্কিম ভ্যালিডেশন কাঠামো দেখে, মান দেখে না। ফলে একটি শূন্য পেলোড সহজেই যাচাই পাস করে প্রকাশনা পর্যন্ত পৌঁছে যেতে পারে। একজন পাঠক তখন পড়বেন একটি আত্মবিশ্বাসী, স্পষ্ট, আট-মাত্রার বিশ্লেষণ — যার ভেতরে একটিও যাচাইযোগ্য সত্য নেই। ক্ষতিটি বিষয়বস্তুর নয়, বিশ্বাসযোগ্যতার।
এখানেই ব্লকচেইনের প্রাসঙ্গিকতা ঢোকে, এবং ঢোকে খুব নির্দিষ্টভাবে। স্পোর্টস ডেটা ইনফ্রাস্ট্রাকচার নিয়ে চলতি আলোচনায় অন-চেইন অডিট ট্রেইলের ধারণাটি বারবার ফিরে আসছে — কারণ সমস্যাটি আস্থার, আর আস্থার সমস্যার প্রচলিত সমাধান হলো অপরিবর্তনযোগ্য রেকর্ড। কল্পনা করুন, প্রতিটি ফেচ অনুরোধের কাঁচা বডি হ্যাশ করা হলো, টাইমস্ট্যাম্পসহ একটি চেইনে অ্যাংকর করা হলো, আর স্মার্ট কন্ট্রাক্টে একটি ন্যূনতম তথ্যবিন্দুর শর্ত বসানো হলো। শর্ত পূরণ না হলে চুক্তি বিশ্লেষণ এগোতে দেবে না, বরং চেইনে একটি স্পষ্ট ব্যর্থ-অবস্থা লিখে রাখবে।
এই নকশার সুবিধা নৈতিক ও প্রশাসনিক, প্রযুক্তিগত নয়। একজন ক্লায়েন্ট, একজন সম্পাদক বা একজন নিয়ন্ত্রক পরে এসে দেখতে পারবেন ঠিক কোন সময়ে, কোন সোর্স থেকে, কী শর্তে বিশ্লেষণটি তৈরি হয়েছে। ব্যর্থতাগুলো মুছে ফেলা যাবে না, কারণ সেগুলোও রেকর্ডের অংশ। সাংবাদিকতার ভাষায় এটি সম্পাদনার অডিট ট্রেইল; স্পোর্টস ডেটার ভাষায় এটি প্রোভেন্যান্স।
প্রায়োগিক দিকটাও সহজ। ন্যূনতম তথ্যবিন্দুর শর্ত মানে পাঁচটি যাচাইযোগ্য সত্য; তার নিচে নামলে বিশ্লেষণ থামবে। এতে বিশ্লেষণী খরচ বাঁচে — এই রানে আট-মাত্রার পুরো প্রক্রিয়া চলেছে শূন্য তথ্যের উপর, যা নিছক অপচয়। আর ভিডিও-বা-উইজেট-প্রধান সোর্সের ক্ষেত্রে টেক্সট-এক্সট্র্যাক্টর বারবার ব্যর্থ হবে; সেখানে দরকার এমবেড-সচেতন ভিন্ন ইনজেশন পথ, আরও কঠিন প্রম্পট নয়।
তবে প্রোভেন্যান্সের একটি সীমা আছে, এবং সীমাটি ওরাকল সমস্যা নামে পরিচিত। চেইন কেবল সেই ডেটাকে অমর করে যা বাইরে থেকে তার কাছে আসে। যদি এক্সট্র্যাক্টর শূন্য ফেরায়, তবে চেইন সেই শূন্যতাকে নিখুঁতভাবে সংরক্ষণ করবে — সত্য হিসেবে নয়, প্রমাণ হিসেবে যে শূন্যতা এসেছিল। পার্থক্যটা ছোট নয়। অপরিবর্তনীয়তা সত্যের গ্যারান্টি দেয় না; এটি কেবল ইতিহাসের গ্যারান্টি দেয়।
একইভাবে, অন-চেইন নিয়ম-সুশাসন সংকেতের অভাবকে নিষ্কৃতি হিসেবে পড়া চলবে না। কোনো স্পট-ফিক্সিং অভিযোগ নেই, কোনো দুর্নীতি-বিরোধী সূত্র নেই, কোনো অডস-অস্বাভাবিকতা নেই — এর সঠিক পাঠ হলো 'সুশাসন সমস্যার প্রমাণ নেই', 'সুশাসন সমস্যা নেই' নয়। ক্রিকেটের ইতিহাসে এই পার্থক্যটাই বারবার ভুল পড়া হয়েছে।
আর এখানেই স্পোর্টসে টোকেনাইজেশনের প্রতি আমার পুরনো সংশয়টি ফিরে আসে। ক্লাব আইপিও বা ফ্যান টোকেন মূলত অনুভূতিকে আর্থিক করে — রিপোর্টিং-চাপ প্রায়ই ফুটবল-সিদ্ধান্তকে ছাপিয়ে যায়। কিন্তু ডেটা প্রোভেন্যান্স ভিন্ন জিনিস। এটি অনুভূতি বিক্রি করে না, এটি জবাবদিহি বিক্রি করে। ক্রিকেটে যেখানে এক ওভারের মধ্যে ম্যাচের গতি বদলায়, সেখানে একটি তারিখহীন, সূত্রহীন দাবি কার্যত অচল। প্রোভেন্যান্স সেই দাবিকে সময়ে বেঁধে দেয়।
এখন বিপরীত দিকটি। ব্লকচেইন খারাপ এক্সট্র্যাকশন সারায় না। এটি একটি নাল পেলোডকে অমর করতে পারে, ঠিক যেমন একটি ভুল স্কোরকে করতে পারে। যে টিম পাইপলাইনে ব্যর্থ-অবস্থার সংজ্ঞা নেই, সেখানে চেইন যোগ করলে কেবল ব্যর্থতার হিসাবরক্ষণ উন্নত হয়, ব্যর্থতা কমে না। আসল ঘাটতিটি সুশাসনের, প্রযুক্তির নয়: প্রথম ও দ্বিতীয় ধাপের মধ্যে একটি স্পষ্ট চুক্তি দরকার — তথ্যবিন্দু শূন্য হলে বিশ্লেষণ থামবে, ব্যর্থ-অবস্থা ফিরবে, এবং সেই ঘটনা লগ হবে।
দ্বিতীয় সংশয়টি বাণিজ্যিক। অন-চেইন ডেটা মার্কেটপ্লেস তৈরি হলে সেখানে বাজি-সংলগ্ন পণ্যের চাপ বাড়বে। ক্রিকেটে সেই চাপ ঐতিহাসিকভাবে বিপজ্জনক — ২০০০-এর ক্রোঞ্জ কাণ্ড থেকে ২০১০-এর পাকিস্তান স্পট-ফিক্সিং, প্রতিবারই দেখেছি বাণিজ্যিক প্রণোদনা কীভাবে অখণ্ডতার সীমানা ঘেঁষে দাঁড়ায়। ডেটার স্বচ্ছতা অখণ্ডতার সমান নয়; স্বচ্ছতা শুধু ধরার ক্ষমতা বাড়ায়।
তবু একটি জিনিস এই ঘটনাটি পরিষ্কার করেছে। বিশ্লেষণের মান আসলে নির্ভর করে তার ইনপুটের শূন্যতা-নিয়ন্ত্রণের উপর, বুদ্ধিমত্তার প্রদর্শনের উপর নয়। যে পাইপলাইন নিজের ব্যর্থতা চিনতে পারে না, সে যতই উন্নত মডেল চালাক, তার প্রতিটি আত্মবিশ্বাসী বাক্য সন্দেহের যোগ্য।
আমি ন্যারেটিভের পেছনে ছুটি না; আমি সেই অ্যাঙ্গেলের পেছনে ছুটি যা ন্যারেটিভকে ব্যাখ্যা করে। আর এই রানে অ্যাঙ্গেলটি হলো একটি অনুপস্থিতি। আগামী রানে আমার চোখ থাকবে চারটি সংকেতের উপর: ব্যাচজুড়ে নাল-হার, লেবেলের শব্দভাণ্ডার-সম্মতি, সোর্সের পুনরুদ্ধারযোগ্যতা, এবং প্রকাশনার তারিখ পুনরুদ্ধার। প্রথমটি সিস্টেমিক, বাকিগুলো সংশোধনযোগ্য।
ডেটা স্কাউট, কোচ নয়; সে ইশারা করে, সিদ্ধান্ত দেয় না। আর আজকের ইশারাটি স্পষ্ট: আমাদের একটি ব্যর্থ-অবস্থার নাম দরকার। প্রশ্নটি এখন সেটাই — পরের রানে আমরা কি আরেকটি নিখুঁত শূন্য পেলোড দেখব, নাকি একটি সৎ এরর মেসেজ?
