Інформаційні ресурси та їх подання до ІПС
Як видно з рис. 1, документальним масивом ІПС Internet є все безліч документів шести основних типів: WWW-сторінки, Gopher-файли, документи Wais, записи архівів FTP, новини Usenet і статті поштових списків розсилки. Все це досить різнорідна інформація, яка представлена у вигляді різних, ніяк неузгоджених документів один з одним форматів даних: тексти, графічна та аудіоінформація і взагалі все, що є у зазначених сховищах. Природно виникає питання - як інформаційно-пошукова система повинна з усім цим працювати?
У традиційних системах використовується поняття пошукового образу документа - ПІД. Зазвичай, цим терміном позначають щось, що заміняє собою документ і використовується при пошуку замість реального документа. Пошуковий образ є результатом застосування деякої моделі інформаційного масиву документів до реального масиву. Найбільш популярною моделлю є векторна модель , в якій кожному документу приписується список термінів, найбільш адекватно відображають його зміст. Якщо бути більш точним, то документом приписується вектор розмірності, що дорівнює числу термінів, якими можна скористатися при пошуку. При булевої векторної моделі елемент вектора дорівнює 1 або 0, в залежності від наявності або відсутності терміну ПІД. У більш складних моделях терміни зважуються - елемент вектора дорівнює не 1 або 0, а деякого числа (вазі), що відбиває відповідність даного терміна документу. Саме остання модель стала найбільш популярною в ІПС Internet .
Взагалі кажучи, існують і інші моделі опису документів: імовірнісна модель інформаційних потоків та пошуку і модель пошуку в нечітких множинах . Не вдаючись у подробиці, має сенс звернути увагу на те, що поки тільки лінійна модель застосовується в системах Lycos, WebCrawler, AltaVista, OpenText і AliWeb. Однак ведуться дослідження по застосуванню та інших моделей, результати яких відображені в роботах . Таким чином, перше завдання, яке повинна вирішити ІПС, - це приписування списку ключових слів документа або інформаційного ресурсу. Саме ця процедура і називається індексуванням. Часто, однак, індексуванням називають складання файлу інвертованого списку, в якому кожного терміна індексування ставиться у відповідність список документів у яких він зустрічається. Така процедура є лише приватним випадком, а точніше, технічним аспектом створення пошукового апарату ІПС. Проблема, пов'язана з індексацією, полягає в тому, що приписування пошукового образу документа або інформаційного ресурсу спирається на уявлення про словник, з якого ці терміни вибираються, як про фіксовану сукупності термінів. У традиційних системах існувало розбиття на системи з контрольованим словником і системи з вільним словником. Контрольований словник припускав ведення деякої лексичної бази даних, додавання термінів у яку вироблялося адміністратором системи, і всі нові документи могли бути заіндексувати тільки тими термінами, які були в цій базі даних. Вільний словник поповнювався автоматично в міру появи нових документів. Однак на момент актуалізації словник також фіксувався. Актуалізація передбачала повне перезавантаження бази даних. У час цього оновлення перевантажували самі документи, і оновлювався словник, а після його поновлення проводилася переіндексація документів. Процедура актуалізації займала досить багато часу і доступ до системи в момент її актуалізації закривався.
Тепер уявімо собі можливість такої процедури в анархічною Internet, де ресурси з'являються і зникають щодня. При створенні програми Veronica для GopherSpace передбачалося, що всі сервери повинні бути зареєстровані, і таким чином вівся облік наявності або відсутності ресурсу. Veronica раз на місяць перевіряла наявність документів Gopher і оновлювала свою базу даних ПІД для документів Gopher. В World Wide Web нічого подібного немає. Для вирішення цього завдання використовуються програми сканування мережі або роботи-індексіровщікі . Розробка роботів - це досить нетривіальне завдання; існує небезпека зациклення робота або її потрапляння на віртуальні сторінки. Робот переглядає мережу, знаходить нові ресурси, приписує їм терміни і поміщає в базу даних індексу. Головне питання полягає в тому, що за терміни приписувати документами, звідки їх брати, адже низка ресурсів взагалі не є текстом. Сьогодні роботи зазвичай використовують для індексування наступні джерела для поповнення своїх віртуальних словників: гіпертекстові посилання, заголовки, назви (H1, H2), анотації, списки ключових слів, повні тексти документів, а також повідомлення адміністраторів про своїх Web-сторінках . Для індексування telnet, gopher, ftp, нетекстової інформації використовуються головним чином URL, для новин Usenet і поштових списків поля Subject і Keywords. Найбільший простір для побудови ПІД дають HTML документи. Однак не слід думати, що всі терміни з перерахованих елементів документів потрапляють в їх пошукові образи. Дуже активно застосовуються списки заборонених слів (stop-words), які не можуть бути вжиті для індексування, загальних слів (прийменники, спілки тощо). Таким чином навіть те, що в OpenText, наприклад, називається повнотекстових індексуванням реально є вибором слів з тексту документа і порівнянням з набором різних словників, після якого термін потрапляє в ПОД, а потім і в індекс системи. Для того щоб не роздувати словників та індексів (індекс системи Lycos вже сьогодні дорівнює 4 Тбайт), застосовується таке поняття, як вага терміна . Документ зазвичай індексується через 40 - 100 найбільш "важких" термінів.
Індекс пошуку
Після того як ресурси заіндексувати і система склала масив ПІД, починається побудова пошукового апарату. Цілком очевидно, що лобовій перегляд файлу або файлів ПІД займе багато часу, що абсолютно не прийнятно для інтерактивної системи WWW. Для прискорення пошуку будується індекс, яким в більшості систем є набір пов'язаних між собою файлів, орієнтованих на швидкий пошук даних за запитом.Структура і склад індексів різних систем можуть відрізнятися один від одного і залежать від багатьох чинників: розмір масиву пошукових образів, інформаційно-пошуковий мова, розміщення різних компонентів системи і т.п. Розглянемо структуру індексу на прикладі системи [6], для якої можна реалізовувати не тільки примітивний булевої, але і контекстний і зважений пошук, а також ряд інших можливостей, які відсутні у багатьох пошукових системах Internet, наприклад Yahoo. Індекс розглянутої системи складається з таблиці ідентифікаторів сторінок (page-ID), таблиці ключових слів (Keyword-ID), таблиці модифікації сторінок, таблиці заголовків, таблиці гіпертекстових зв'язків, інвертованого (IL) і прямого списку (FL).
Page-ID відображає ідентифікатори сторінок в їх URL, Keyword-ID - кожне ключове слів в унікальний ідентифікатор цього слова, таблиця заголовків - ідентифікатор сторінки в заголовок сторінки, таблиця гіпертекстових посилань - ідентифікатор сторінок в гіпертекстове посилання на цю сторінку. Інвертований список ставить у відповідність кожному ключовому слову документа список пар - ідентифікатор сторінки, позиція слова в сторінці. Прямий список - це масив пошукових образів сторінок. Всі ці файли так чи інакше використовуються при пошуку, але головним серед них є файл інвертованого списку. Результат пошуку в даному файлі - це об'єднання і / або перетин списків ідентифікаторів сторінок. Результуючий список, який перетворюється в список заголовків, забезпечених гіпертекстовими посиланнями повертається користувачеві в його програму перегляду Web. Для того щоб швидко шукати записи інвертованого списку, над ним надбудовується ще декілька файлів, наприклад, файл буквених пар із зазначенням записів інвертованого списку, що починаються з цих пар.Крім цього, застосовується механізм прямого доступу до даних - хешування. Для оновлення індексу використовується комбінація двох підходів. Перший можна назвати корекцією індексу "на ходу" за допомогою таблиці модифікації сторінок. Суть такого рішення досить проста: стара запис індексу посилається на нову, яка і використовується при пошуку. Коли число таких посилань стає достатнім для того, щоб відчути це при пошуку, то відбувається повне оновлення індексу - його перезавантаження. Ефективність пошуку в кожній конкретній ІПС визначається виключно архітектурою індексу. Як правило, спосіб організації цих масивів є "секретом фірми" і її гордістю. Для того щоб переконатися в цьому, досить почитати матеріали OpenText .