Queries এর মাধ্যমে তথ্য অনুসন্ধান

Queries এবং Unification (কুয়েরি এবং ইউনিফিকেশন) - প্রোলগ প্রোগ্রামিং (Prolog Programming) - Computer Programming

297

প্রোলগে কোয়ারি (Query) হল একটি প্রশ্ন বা অনুসন্ধান যা প্রোলগ প্রোগ্রামে সংরক্ষিত ফ্যাক্ট এবং নিয়ম এর ভিত্তিতে তথ্য খুঁজে বের করতে ব্যবহৃত হয়। কোয়ারি করার মাধ্যমে আপনি আপনার প্রোলগ প্রোগ্রামের ভিতরে থাকা তথ্য বা সম্পর্কের উপর ভিত্তি করে ফলাফল পেতে পারেন।

প্রোলগের কোয়ারি ব্যবহারের মূল উদ্দেশ্য হল ফ্যাক্ট বা নিয়ম এর সাথে সম্পর্কিত তথ্য বের করা, বা প্রশ্ন করা।

কোয়ারি (Query) এর মৌলিক গঠন

প্রোলগে কোয়ারি করার জন্য সাধারণত ?- চিহ্ন ব্যবহার করা হয়, এবং এর পরে আপনি যেই প্রশ্ন বা অনুসন্ধান করতে চান তা লিখতে হয়।

কোয়ারির সাধারণ গঠন:

?- কোডের_নাম(অর্গুমেন্ট1, অর্গুমেন্ট2, ...).

যেখানে:

  • ?-: এটি কোয়ারি শুরুর চিহ্ন।
  • কোডের_নাম: এটি প্রোলগের মধ্যে সংরক্ষিত প্রেডিকেট বা ফ্যাক্ট হতে পারে।
  • অর্গুমেন্ট: এটি প্রেডিকেটের সাথে সম্পর্কিত এক বা একাধিক আর্গুমেন্ট হতে পারে, যা আপনি অনুসন্ধান করছেন।

কোয়ারি এর উদাহরণ

১. ফ্যাক্ট অনুসন্ধান

ধরা যাক, আপনার প্রোগ্রামে কিছু ফ্যাক্ট সংরক্ষিত আছে, যেমন:

পিতা(অজিজ, রহমান).
পিতা(রহমান, সোহেল).
পিতা(সোহেল, তারেক).

এখন, আপনি যদি জানতে চান অজিজ এর পিতা কে, তাহলে আপনি একটি কোয়ারি করতে পারেন:

?- পিতা(অজিজ, X).

ফলাফল:

X = রহমান.

এটি বলে যে, অজিজ এর পিতা রহমান। এখানে, X হল সেই আর্গুমেন্ট যা প্রোলগ খুঁজে বের করেছে।

২. অন্য সম্পর্ক অনুসন্ধান

যদি আপনি জানতে চান রহমান এর পিতা কে, তাহলে কোয়ারি হতে পারে:

?- পিতা(রহমান, Y).

ফলাফল:

Y = সোহেল.

এটি বলে যে, রহমান এর পিতা সোহেল

৩. কয়েকটি সম্পর্ক অনুসন্ধান

আপনি একাধিক আর্গুমেন্ট সহ সম্পর্কের জন্য কোয়ারি করতে পারেন। যেমন:

?- পিতা(X, রহমান).

ফলাফল:

X = অজিজ.

এটি বলে যে, রহমান এর পিতা অজিজ

৪. নিয়ম অনুসন্ধান

ধরা যাক, আপনার প্রোগ্রামে কিছু নিয়ম রয়েছে:

পিতা(X, Y) :- পিতা(Y, Z).

এটি একটি নিয়ম যা বলে, X যদি Y এর পিতা হয়, তবে Y এর পিতা Z হবে।

এখন, যদি আপনি কোয়ারি করেন:

?- পিতা(অজিজ, X).

ফলাফল:

X = রহমান.

এটি বলছে যে, অজিজ এর পিতা হল রহমান। প্রোলগ স্বয়ংক্রিয়ভাবে নিয়ম অনুযায়ী সম্পর্কটি বের করেছে।


ব্যাকট্র্যাকিং (Backtracking) এবং কোয়ারি

প্রোলগে ব্যাকট্র্যাকিং ব্যবহার হয় যখন প্রোলগ একটি কোয়ারির জন্য প্রথম সমাধান খুঁজে না পায়। এটি পূর্ববর্তী অবস্থায় ফিরে গিয়ে অন্য সম্ভাবনা চেষ্টা করে এবং নতুন সমাধান খুঁজে বের করার চেষ্টা করে।

ব্যাকট্র্যাকিং উদাহরণ:

ধরা যাক, আপনার প্রোগ্রামে দুটি ফ্যাক্ট রয়েছে:

পিতা(অজিজ, রহমান).
পিতা(অজিজ, সোহেল).

এখন, আপনি যদি কোয়ারি করেন:

?- পিতা(অজিজ, X).

প্রোলগ প্রথমে রহমান কে দেবে এবং তারপর ব্যাকট্র্যাকিংয়ের মাধ্যমে সোহেল কে প্রদান করবে।

ফলাফল:

X = রহমান ;
X = সোহেল.

প্রোলগ প্রথম ফলস্বরূপ প্রদান করার পর ; চিহ্নের মাধ্যমে পরবর্তী সম্ভাবনা খুঁজতে শুরু করবে।


কোয়ারির সাথে শর্তযুক্ত তথ্য অনুসন্ধান

প্রোলগে শর্তযুক্ত কোয়ারি ব্যবহার করে আপনি ফ্যাক্টস এবং নিয়ম এর উপর ভিত্তি করে জটিল প্রশ্ন করতে পারেন। যেমন:

পিতা(অজিজ, রহমান).
পিতা(রহমান, সোহেল).
পিতা(সোহেল, তারেক).

এখন, যদি আপনি জানতে চান, কোন ব্যক্তি "অজিজ" এর পিতা? এবং "অজিজ" এর পিতা কি "রহমান"?, তাহলে কোয়ারি করতে পারেন:

?- পিতা(X, রহমান), পিতা(অজিজ, X).

এটি দুইটি শর্তে অনুসন্ধান করবে এবং ফলস্বরূপ:

ফলাফল:

X = রহমান.

এটি প্রমাণ করছে যে, অজিজ এর পিতা রহমান


সারসংক্ষেপ

কোয়ারি প্রোলগ প্রোগ্রামিংয়ের একটি অত্যন্ত গুরুত্বপূর্ণ উপাদান যা ফ্যাক্ট এবং নিয়ম এর উপর ভিত্তি করে তথ্য অনুসন্ধান করতে ব্যবহৃত হয়। কোয়ারি ব্যবহার করে আপনি তথ্য খুঁজে বের করতে পারেন, নিয়মের মাধ্যমে সমাধান পেতে পারেন এবং ব্যাকট্র্যাকিং ব্যবহার করে বিভিন্ন সম্ভাবনা পরীক্ষা করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...