اشاره:
امروزه بانکهای اطلاعاتی به طور فزایندهای در حال گسترش و تکامل است. اگر به اطراف خود به دقت نگاه کنیم، میتوانیم بسیاری از آنها را پیدا کنیم. همان طور که میدانید، بانک اطلاعاتی برای بایگانی و ذخیره اطلاعات مخزنی است. اگر یک سیستم نرمافزاری قدرتمند نتواند اطلاعات بانک را تجزیه و تحلیل نماید، عملا بانک اطلاعات به یک انبار جهت ذخیره و بایگانی اطلاعات نزول خواهد کرد، و این چیزی نیست که مطلوب نظر ما باشد. امروزه مهمترین پارامتر تعیینکننده در نرمافزارهای بانک اطلاعاتی، امکانات جستجوی آن است. هر قدر مکانیزم جستجو جامع باشد، محصولات تولیدی از بانک نیز سودمند و کامل خواهد بود. در این مجال قصد داریم روشهای موثری که میتواند عملیات جستجو را مکانیزه نماید، بررسی کنیم.
جایگاه جستجو محتویات یک سند را میتوان به مواد خام یک کارخانه تولیدی تشبیه کرد. یک سند بدون اینکه بتوان مانورهای جستجو و کنکاش را روی آن پیاده کرد، کاربرد چندانی نخواهد داشت. همان طور که در صورت اینکه مواد خام توسط ماشینآلات کارخانه مورد استفاده قرار نگیرد، نمیتوان به خروجی به عنوان یک محصول نگاه کرد.
با استفاده از امکانات جستجو میتوان محصولات بسیار متنوعی از یک بانک اطلاعات به دست آورد. هر قدر قدرت جستجوی نرم افزار بالاتر باشد، محصولات تولیدی نیز کاملتر و متنوعتر خواهد بود، و به محققان این امکان را میدهد که بتوانند تجزیه و تحلیل نرم افزاری کاملی را روی اسناد انجام دهند، و از نتایج تحلیل خود در برنامهها و تصمیمات و تحقیقات آینده بهره ببرند.محیط پیاده سازی بانک اطلاعات برای اینکه بتوان مانور کاملی را روی یک بانکاطلاعات پیادهسازی کرد، باید از یک مکانیزم مناسب برای آن استفاده کرد. بسته به محیطی که بانکاطلاعات در آن محیط نصب و استفاده میگردد، نرمافزاری که این مکانیزم را پیادهسازی میکند، تعیین میگردد. به عنوان مثال اگر بانکاطلاعات در قالب برنامه Access نصب گردد، نرم افزار بانک آن Access و SQL و برنامهنویسی آن توسط VBA انجام میگیرد. اما در صورت پیادهسازی بانکاطلاعات در محیط شبکه، نرمافزار بانک آن Oracle و SQL، و نرمافزار برنامهنویسی آن نیز بسته به نیازASP.NET، VB.NET، C#، PHP و ... خواهد بود. البته ما در این مجال به بحث نوع نرم افزار یا محیط کار نخواهیم پرداخت. در این مقاله سعی شده است فارغ از نوع محیط به کارگیری بانک و نوع نرم افزار به کار گرفته، به الگوریتمهای جستجو در بانک اطلاعات پرداخته گردد.مکانیزم جستجو در بانک اطلاعات
مکانیزم جستجو به روندی اطلاق میگردد که از آغاز عملیات جستجو تا پایان کار، پیادهسازی میشود. سادهبودن یا پیچیده بودن نوع جستجو، تاثیر چندانی در مکانیزم جستجو ندارد. الگوریتم زیر، مکانیزم جستجو را به صورت تصویری نشان میدهد:
با نگاهی دقیق به چهار بخش موضوع جستجو، فعل جستجو، مرتبسازی و ارائه محصول، در مییابیم که این چهار بخش، به صورت ضربدری با یکدیگر در ارتباط میباشند. به این ترتیب، حالات مختلفی که در مکانیزم جستجو تحقق مییابد، به 144=3*4*3*4 افزایش مییابد. این مطلب به خوبی نشان میدهد که هر قدر مکانیزم جستجو پیشرفته و جامع باشد، محصولات تولیدی بانک اطلاعات مفید، سازنده و دقیق خواهد بود، و خواهد توانست محققان را در به کارگیری از حجم وسیع اطلاعات یاری دهد.موضوع جستجو
مفهوم پردازی رایانهای همانطور که میدانیم، نرمافزار هیچ درک و تصوری از متن یک کتاب یا مقاله و ... ندارد؛ زیرا از نظر رایانه همه عبارات دارای ارزش یکسانی هستند. به همین دلیل نمیتواند ما را در جستجوی مفهومی در بانک اطلاعات یاری کند. برای حل مسئله باید با استفاده از شیوههای ارزشگذاری و طبقهبندی روی متن، نرمافزار را در جستجوی مفهومی یاری دهیم. در صورتی که مرحله مفهومسازی انجام نشود، حوزه مانور نرمافزار فقط در جستجوهای ساده محدود خواهد شد.
1. کلید واژه وقتی که یک محقق، متن کتاب یا مقالهای را تجزیه و تحلیل مینماید، به آسانی میتواند مفاهیم اصلی که سند مذکور پیرامون آن، در حال بررسی و کنکاش است را استخراج کند. به عنوان مثال محقق پس از بررسی سند در مییابد که محورهای اصلی سند روی "اسلام" ، "حقوق" و "منزلت کار" متمرکز شده است. این عناوین در اصل، کلید واژههای اصلی مربوط به یک سند است. این کار میتواند روی تمامی متون تکرار شود. پس از اتمام کار، کلید واژههای تولید شده مربوط به هر سند ذخیره و نگهداری میگردد. حال از نظر رایانه، متن ما دارای مفهوم و معنی میباشد. اکنون رایانه میداند که محورهای اصلی سند ما "اسلام" ، "حقوق" و "منزلت کار" است. حال میتواند ما را در رسیدن به کلید واژههای موردنظر ما راهنمایی کند.
2. کلید واژه اصلی و فرعی روش فوق اگرچه یک روش مفید و سودمند است؛ اما دربعضی از موارد جوابگوی نیازهای محققان نمیباشد. اگر به ساختار فوق نگاه کنید، در می یابید که ارزش کلید واژهها با یکدیگر یکسان است. مثلا در سند فوق نمیتوان فهمید که کدام محور از محورهای "اسلام" ، "حقوق" و "منزلت کار" دارای ارزش بالاتری است که نرم افزار روی آن توجه ویژهای نماید. در مرحله کاملتر، کلید واژههای تولیدی محقق در یک طبقهبندی دارای ارزشهای متفاوت قرار میگیرد. حال جستجوی کلید واژهها ساختار کاملتری خواهند یافت. اجازه دهید برای روشتر شدن مسئله به مثال زیر بپردازیم.
در مثال فوق، دو مجموعه اصلی به همراه 4 مجموعه فرعی برای هر یک از مجموعهها تشکیل شده است. به این ترتیب، کلیدواژهها با یکدیگر سلسله مراتب معنیداری را تشکیل میدهند. حال محقق برای جستجوکردن روی یک کلیدواژه فرعی، میتواند متون مشابه که در یک طبقهبندی مشابه قرار دارد را نیز بررسی کند. این در حالی است که ممکن است در حالت عادی نیز از وجود آنها بیاطلاع باشد. به عنوان مثال پس از جستجو در کلید واژه عرفان نظری، رایانه میتواند ‹مباحث عملی›، ‹گرایشات› و‹ صفات روحانی› را نیز به عنوان یک زیرمجموعه مرتبط در اختیار محقق قرار دهد. پیادهسازی این روش، حوزه جستجوی مفهومی رایانه را به نحو مطلوبی افزایش میدهد. به عبارت دیگر، طبقهبندی مطالب در کلید واژههای فرعی و اصلی، استدلال منطقی در حوزه علوم مختلف را فراهم میکند.
از طرف دیگر در صورتی که محقق، متون را با استفاده از کلید واژه اصلی عرفان جستجو کند، 4 زیرمجموعه نظری، عملی، گرایشات و صفات روحانی برای او لیست خواهد شد؛ اگرچه هیچ اطلاعی از این زیرمجموعه ها نداشته باشد. حال میتواند راه را برای رسیدن به هدف موردنظر خود دنبال کند.
کلیدواژه های اصلی و فرعی را به نوع دیگری نیز می توان پیاده سازی کرد. فرض کنید محقق یک کلیدواژه خاص را تعریف میکند. این کلیدواژه اصلی به نوبه خود، از چند کلیدواژه فرعی، اما مرتبط با یکدیگر تشکیل شده است که روی همرفته تعریف و معانی خاصی را دنبال میکند. به این ترتیب با جستجوکردن کلیدواژه اصلی، اسنادی به عنوان محصول ارائه خواهد شد که مشتمل بر مفاهیم کلیدواژههای فرعی باشد. این مکانیزم در مواردی میتواند به عنوان نوعی از جستجوی ترکیبی ایفای نقش کند. به عنوان مثال،‹ لوازم تحریر› به عنوان یک کلیدواژه اصلی تعریف شده و در داخل آن عناوین قلم، خودکار، مداد و صفحه کلید بعنوان کلیدواژههای فرعی قرار میگیرد، حال با جستجوی کلیدواژه اصلی لوازم التحریر، محصول تولیدی شامل عناوین‹ قلم›،‹ خودکار›، ‹مداد› و‹ صفحه کلید› خواهد بود. این در حالی است که این عناوین به تنهایی برای عملیات جستجو به کار گرفته نشده بود.
3. تجزیه و تحلیل متن روش دیگری که میتواند متون را برای رایانه مفهومسازی نماید، تجزیه و تحلیل متن توسط محقق است. بدین صورت که پس از اینکه سند در بانک ثبت شد، کارشناس مربوط، سند را به دقت مطالعه مینماید. سپس بخشهای مختلف سند را علامتگذاری میکند. سپس این علامتها را به شکلی تنظیم مینماید که از نظر رایانه قابل فهم باشد. به عنوان مثال، توسط روشهای زیر یک متن خام را به متنی قابل درک برای رایانه تبدیل میکنیم: 1. ثبت شروع و پایان سخنرانی یک شخص خاص؛
2. متمایز کردن لیست های فرعی و اصلی؛
3. فهرست بردای از مطالب؛
4. ثبت شروع و پایان فیش برداری از سند، با احتساب شماره بندی؛
5. ثبت شروع و پایان پاورقی ها؛
6. ثبت اصلاحات به همراه تعاریف آن؛
7. ثبت شروع و پایان آیات قرآنی یا موارد مشابه با ثبت نام سوره و آیه؛
8. و ...
منظور از ثبت و شروع یک عنوان، کارکتر یا حرف آغاز و پایان آن در سند است. یک سند در رایانه دارای یک طول مشخص است و هر کارکتری یک شماره به خود اختصاص میدهد. به عنوان مثال، محقق با استفاده از نرمافزار، موقعیت شروع و پایان سخنان یک شخص خاص را انتخاب میکند. حال، برنامه میداند که مطالب داخل این محدوده مربوط به یک شخص خاص است. توسط این شیوه، مطالب سند توسط محقق برای رایانه مفهومسازی میگردد. اکنون سند، دیگر یک سند ساده نمیباشد. امکانات جستجوی نرم افزاری میتواند مانور گستردهای را روی سند اعمال کند، و محصولات متنوعی از سند را در اختیار محققان قرار دهد.
به طور کلی به دو شیوه مختلف میتوان محتویات یک سند را نکتهبرداری و علامتگذاری کرد:
الف) ثبت تجزیه و تحلیل در سند با استفاده از کارکترهای ویژه در روش اول، با استفاده از کارکترهای ویژه، شروع و پایان یک عبارت را با استفاده از شمارهگذاری مشخص میکنیم و کارکترها را در آغاز و پایان عبارت درج میکنیم. با کمی دقت میتوان فهمید که این سیستم فرمتگذاری، مشابه زبان فرمتگذاری HTML و XML است. در این دو زبان نیز با استفاده از کارکترهای ویژه(TagTag) محصور شده در علامتهای > و <، متون را فرمتزنی میکنند. مثال زیر را ببینید: حضرت آیت ا... خامنهای فرمودند: « امام خمینی(ره)، یک حقیقت همیشه زنده است ».
<1/ حضرت آیت ا... خامنهای /1> فرمودند: <1\ امام خمینی(ره)، یک حقیقت همیشه زنده است ». \1>
همان طور که مشاهده میکنید، شروع و پایان سخنران و سخن ارزشمند ایشان با کد 1 علامتگذاری شده است. حال رایانه به سادگی میتواند آمار سخنان رهبری را به همراه سخنان ایشان، در کل بانک اطلاعات ارائه دهد. این روش دو عیب عمده دارد، اول اینکه کارکترهای ویژه الزاماً باید در سند اصلی درج گردد. بدین ترتیب سند ما از حالت اولیه خارج خواهد شد. این عملیات به دلیل اینکه سندیت سند را خدشهدار میکند، مطلوب نیست. دوم اینکه برای بازگردان سند به حالت اولیه، باید عملیات جداگانهای انجام گیرد.
ب) ثبت تجزیه و تحلیل سند خارج از سند در این روش، مشابه روش گذشته، سند توسط کارشناس مربوط مورد تجزیه و تحلیل قرار میگیرد. اما به جای درجکردن کارکترهای ویژه در سند، موقعیت شروع و پایان یک عبارت به همراه اطلاعات مربوط به آن در جدول جداگانهای ذخیرهسازی میگردد. به این ترتیب، هر ارجاعی که در آینده به سند داده شود، مستند خواهد بود، و سند اصلی نیز بدون تغییر خواهد بود. مزیت دیگر این است که حذفکردن محصول تولیدی از یک سند، هیچ تغییری در اصل سند ایجاد نمیکند. مثال زیر را ببینید: حضرت آیت ا... خامنهای فرمودند: « امام خمینی(ره)، یک حقیقت همیشه زنده است ».
5. استخراج مشخصه(Field)های مشخص از سند با نگاهی دقیق به محتویات یک سند، میتوان فیلدهای ویژهای را از متن هر سند استخراج کرد. این فیلدها مشخصات کلی از هر سند را بیان میکنند. با انجام این کار، کار جستجو در مورد این مفاهیم بسیار ساده میگردد؛ زیرا در صورت نیاز، فقط فیلد موردنظر توسط نرمافزار جستجو میگردد. بالاتر رفتن دقت و سرعت جستجو و خوانایی بانک، از جمله مزایای پیاده سازی چنین روشی است. این روش به خصوص در مواقعی که حجم سند زیاد باشد، نمود بیشتری پیدا میکند. مثال زیر فیلدهای ممتاز را برای یک سند خاص پیشنهاد میکند: 1. کد سند؛
2. عنوان یا نام سند؛
3. فهرست مطالب؛
4. موضوع در قالب کلید واژههای اصلی و فرعی؛
5. متن؛
6. تاریخ درج؛
7. تاریخ تهیه؛
8. سخنران، تهیه کننده یا گردآورنده؛
9. نوع سند؛
10. و ...
به عنوان مثال، ممکن است بخواهیم سخنران، تهیهکننده یا گردآورنده یک سند را بیابیم. این کار با محدودکردن حوزه جستجو در فیلد شماره 8 برآورده میگردد و دیگر نیازی به جستجو در فیلدهای دیگر نخواهد بود.فعل جستجو(جستجوی ترکیبی) در این نوع از جستجو، از عبارات ترکیبی استفاده میگردد. به عنوان مثال، میخواهیم کلمات "عرفان" و "اسلام" در عنوان یا نام سند(فیلد2) جستجو گردد، و فقط اسنادی به عنوان محصول ارائه گردد که در عنوان آن از کلمات "عرفان" و "اسلام" استفاده شده باشد. در حالت دیگر، میخواهیم اسنادی به عنوان محصول، لیست شود که در عنوان آن، کلمات "عرفان" یا "اسلام" وجود داشته باشد. به این نوع از جستجو، جستجوی ترکیبی میگویند؛ زیرا پارامترهای جستجو، از تلفیق دو یا چند شرط تشکیل میگردد. تحقق چنین امکانی محقق را در یافتن مفاهیم مرتبط در سند یاری میدهد.
برای نظاممند کردن جستجوی ترکیبی، میتوان از عملگرهای ریاضیاتی به این منظور استفاده کرد. جدول زیر تعدادی از این عملگرها را نمایش می دهد:
ردیفعنوان جستجوعملگرعملگر نهایی1کلمه عرفان و اسلام در عنوان سند جستجو گرددAND"عرفان" AND "اسلام"2کلمه عرفان یا اسلام در عنوان سند جستجو گرددOR"عرفان" OR "اسلام"3کلمه عرفان یا اسلام در عنوان سند نباشد.NOT("عرفان" OR "اسلام")NOT4کلمه عرفان یا اسلام باشد نتیجه مثبت و اگر هر دو باشد یا هر دو نباشد نتیجه جستجو منفی باشد.Xor("عرفان" Xor "اسلام")
جستجوی ترکیبی در حوزههای دیگر نیز به کار گرفته میشود. به عنوان مثال، ممکن است محقق مایل باشد اسنادی که دارای دو یا چند کلید واژه باشد را به عنوان محصول دریافت کند. به عبارت کلیتر، امکان جستجوی ترکیبی باید برای تمامی مشخصات یک سند به کار گرفته شود.
مرتبسازی مرتبسازی اطلاعات نیز یکی دیگر از امکاناتی است که در یک بانک اطلاعات باید به خوبی فراهم گردد. هر یک از ما به نوبه خود، از این امکان در امور روزانه خود استفاده میکنیم. تاکنون شاید بارها تصمیم به مرتبسازی الفبایی اسامی شماره تلفنها و یا لیست عددی قیمتها و ... گرفته باشید. حتی در بسیاری از مواقع، عملیات مرتبسازی از علمیات جستجو، بیشتر مورد استفاده قرار میگیرد. عملیات مرتبسازی فقط ترتیب نمایش محتویات را بر طبق یک قالب خاص صورت میدهد این کار میتواند در روی کل اسناد، محدوده معینی از اسناد، یا روی نتیجه جستجو پیاده گردد.
مرتبسازی به طور کلی به سه شیوه زیر انجام میگیرد:
1- الفبایی؛
2- تاریخی؛
3- موضوعی.
در مرتبسازی هر یک از روشهای فوق، روش معکوس مرتبسازی نیز باید امکانپذیر گردد. اولویت مرتبسازی یا جستجو در یک سند، بسته به نیاز محقق است. به عنوان مثال، محقق در ابتدا اسنادی را که حاوی کلیدواژههای "اسلام" با عنوان "حقوق زن" میباشد، را جستجو نماید. حال پس از پایان عملیات جستجو، مایل باشد که نتایج با ترتیب الفبایی در عنوان سند لیست داده شود.ارائه محصول ارائه محصول نهایی یک جستجو، پایان کار جستجو را نشان میدهد. پس از گذشت مدت زمان کوتاهی ممکن است جستجوهای متنوع زیادی در بانک صورت گیرد. در صورتی که امکان ذخیره سازی محصول نهایی جستجو امکان پذیر گردد؛ در مدت زمانی کوتاه، یک بانک جدید از محصولات تولیدی از جستجوهای متنوع را در اختیار خواهیم داشت. این محصولات به نوبه خود می تواند به عنوان یک بازخورد (feed back) مجدد، به مکانیزم جستجو ارسال گردد، یا در صورت تمایل به کاربران و محققان، نمایش داده شود، یا به عنوان یک خروجی قابل نمایش در خارج از بانک، در قالب فایلهای قابل استفاده ذخیره گردد. به طور خلاصه، محصولات تولیدی می تواند به چهار صورت قابل استفاده گردد:
1. ارسال به خارج از بانک، در قالب فایلهای استاندارد؛
2. ارسال مجدد محصول جستجو، به مکانیزم جستجو؛
3. ذخیرهسازی در بانک اطلاعات، برای استفادههای بعدی؛
4. امکانهای مختلف برای نمایش و چاپ محصول تولیدی.