Распределенная информационная система WAIS была задумана как сетевой аналог традиционных информационно-поисковых систем (ИПС), повволяющий пользователям сети осуществлять поиск в полнотекстовых базах данных с использованием традиционного для ИПС информационно-поискового языка, поисковые предписания которого строятся на основе ключевых слов и/или их усечений, связанных между собой логическими операторами 0R или AND.
Первоначально система WAIS разрабатывалась четырьмя фирмами: Dow Jones й Со. (деловые базы данных); Think Machines Corporation (информационно-поисковые системы); Apple Computer (интерфейс пользователя) и KPMG Peat Maverick (работа с большим числом пользователей). Первый прототип WAIS был полукоммерческой полуисследовательской системой с большими ограничениями по использованию как со стороны пользователей, так и со стороны администраторов баз данных. Прототип WAIS неплохо понимал естественный английский язык и переводил его в поисковые предписания системы. Реально WAIS стала широко применяться только с появлением версии FreeWAIS для операционных систем UNIX. Сегодня существует большое количество реализаций WAIS, главным образом коммерческих, а система стала своеобразным стандартом информационно-поисковой машины на сети Internet.
Концептуальная модель WAIS
WAIS замыкает триаду технологических средств, которую возглавляют Gopher и WWW. Она обеспечивает функционально полный набор информационных инструментов для Internet. Если Gopher - это виртуальная файловая система, где в качестве элементов системы могут использоваться не только файлы различных форматов и каталоги, но и виртуальные объекты в виде поисковых критериев, а WWW - распределенная система гипермедиа, то WAIS реализует концепцию распределенной информационно-поисковой системы. Система состоит из двух основных компонентов: поисковой машины и интерфейса пользователя, которые связаны между собой универсальным протоколом WAIS, базирующимся на стандарте Z39.50. Этот американский стандарт послужил основой не только для WAIS отдельные его положения входят и в другие технологии при определении документа, хранящегося в системе или поискового языка, поэтому знакомство с ним будет достаточно полезно.
Протокол Z39.50
В документации по различным сервисам Internet, как то: Gopher, Wais или World Wide Web - часто приходится видеть ссылку на протокол Z39.50. Как правило, такая ссылка приводится в контексте организации механизма поиска распределенных информационных ресурсов с использованием ключевых слов. В отечественной литературе по данному вопросу за термином "Information Retrieval System" давно закреплено понятие "Информационно-поисковая система". Стандарт Z39.50, собственно, и посвящен организации распределенной информационно-поисковой системы в компьютерных сетях. Основным отличием такой системы от других информационных технологий является язык запросов, основанный на логических высказываниях типа:
"Найти все документы, содержащие термин А и термин В, но не термин В"
В ответ на такой запрос для каждого документа, удовлетворяющего критерию, будет получено значение "истина", а в противном случае - "ложь". Связка "и" употребляется в качестве логического "AND", а "но не" - логического "NOT". Следует заметить, что в ни в одной сети не существует программных комплексов, реализующих полностью стандарт Z39.50. Реально действующие системы в той или иной степени реализуют лишь его отдельные подмножества, опуская подчас важные элементы, связанные как с обработкой запросов, так и с генерацией отчетов на эти запросы.
Стандарт Z39.50 - это один из протоколов семейства OSI (Open System Interconnection), который описывает прикладной уровень взаимодействия распределенных ИПС. Протокол определяет собственно механизм информационного обмена в процессе обработки поисковых запросов и протокол обмена данными в системах, осуществляющих поиск. Область применения протокола - это библиотечные системы и системы научно-технической информации. Стандарт не определяет протоколы взаимодействия с физическими устройствами или их виртуальными аналогами, например терминалами. Сегодня область применения протокола значительно шире перечисленных приложений, он используется в информационнопоисковых системах общего назначения. При разработке протокола подразумевалось, что он будет описывать порядок обмена информацией между пользователями информационной системы и ее ядром через сеть передачи данных. При этом сами системы могут управлять данными, используя разные модели и различные языки манипулирования этими данными. Таким образом, информационно-поисковую систему можно построить на основе любой системы управления данными, будь это обычная ИПС или объектно-ориентированная СУБД.
Термин база данных в спецификации Z39.50 имеет значение набора файлов, каждый из которых имеет свое уникальное имя. Группа файлов внутри базы данных может также иметь собственное имя и образовывать отдельную базу данных. Такой подход аналогичен понятию схемы и подсхемы для систем управления базами данных. Единицей хранения информации, которая может быть найдена при обращении к базе данных, является запись файла. Все записи одного файла должны иметь одинаковую структуру, т. е. состоять из одного и того же набора элементов и точек доступа. Точка доступа - это уникальный или неуникальный ключ, который может быть указан самостоятельно или в совокупности с другими ключами в поисковом критерии. Ключ может быть элементом данных, может состоять из нескольких элементов, а может быть и частью элемента.
Поиск по запросу выполняется на всей базе данных. При этом проверяется совпадение точек доступа записей и элементов запроса. Набор записей, удовлетворяющих запросу, является ответом системы на запрос. Ответ может быть использован для следующих поисков в базе данных, а именно для расширения или сужения запроса пользователя. Если говорить более точно, то при формулировании запроса можно ссылаться на результаты поисков по предыдущим запросам. В общем случае предполагается, что выполнение запроса на поиск информации не требует физического доступа к базе данных. В отчет о проведенном поиске включаются только идентификаторы записей, удовлетворяющих запросу, но не сами записи.
Порядок функционирования ИПС
В рамках функционирования распределенной информационно-поисковой системы рассматриваются два типа прикладных задач:
Первая задача называется источник (origin), а вторая - приемник (target). Взаимодействие источника и приемника осуществляется путем установки соединения, которое может быть инициализировано только источником и разорвано либо другим источником, либо приемником, либо по внешним причинам, например вследствие физического разрыва линии связи. В процессе взаимодействия источник и приемник не могут меняться ролями. В отечественной литературе для такого рода взаимодействия используется обычно термин сессия, следовательно, протокол Z39.50 описывает интерактивную сессию между источником запросов и приемником, обслуживающим эти запросы. Таким образом, Z39.50 описывает типичное взаимодействие в архитектуре клиент/сервер. Полный информационный сервис, как он понимается в стандарте, состоит из инициализации сессии, передачи данных и завершения сессии. В процессе инициализации источник и приемник определяют параметры сессии и ее окружение. Согласно Z39.50 существует семь основных видов информационного обмена в рамках распределенной ИПС:
При инициализации сессии источник и приемник должны договориться о возможности использования пользователем отдельных баз данных, которые поддерживает приемник. Первое, что необходимо сделать - это проидентифицировать пользователя и его права доступа к различным режимам обмена информацией. Сам механизм идентификации в протоколе не описан. После идентификации пользователя источник и приемник начинают диалог, состоящий из фраз типа "will use..." и "will support" или "will not support". Разрешение на использование того или иного режима запрашивает источник, а приемник подтверждает или отвергает эти запросы. Обычно источник запрашивает режимы search, present и delete. В свою очередь существует два типа запросов приемника: на управление ресурсом и управление доступом. Источник должен уметь на них отвечать для обеспечения надежного доступа к информации. В дополнении к идентификации пользователя протокол допускает использование дополнительных средств защиты типа системы "KERBEROS". Кроме установления возможностей использования различных режимов доступа протокол регламентирует и физические параметры сеанса:
При реализации запроса на поиск информации подразумевается следующая логика его выполнения:
"из обозначенного набора единиц хранения идентифицировать те, которые удовлетворяют запросу"
Набор идентифицированных записей называется результатом поиска и может быть использован для последующих поисков информации. В зависимости от параметров запросов ответ сервера может варьироваться.
Выполнение запросов
Сегодня в стандарте Z39.50 определен только один тип запроса - RPN-запрос. Форма Бэкуса-Наура для этого типа запроса имеет следующий вид:
RPN-guery ::= argument | argument + argument + operator argument ::= operand | RPN-query operand ::= attribute-set + term | Result-set-id operator ::= AND | OR | AND-НОТ
В этой записи интересно отметить ее постфиксный характер и отсутствие одноместных операций. Для того, чтобы лучше представлять принцип построения запроса и его интерпретации, рассмотрим несколько примеров. Простой запрос состоит из одного термина:
"териинал"
Такой запрос позволяет найти все документы, которые имеют в своем поисковом образе слово "терминал".
Запрос из двух терминов и оператора "AND" позволяет сузить границы поиска до множества документов, содержащих оба термина одновременно:
"терминал графический AND"
Как видно и этого примера логический оператор указан после слов-операндов. Еще более наглядно постфиксный характер записи проявляется в следующем примере:
"Х-термиал терминал графический AND AND-NOT"
Здесь требуется найти все документы, содержащие слово "Х-терминал", но не содержащие комбинацию слов "терминал" и "графический". Таким образом, для операции "AND-NOT" операндами являются слово "Х-терминал" и результат операции, определенной над словами "терминал" и "графический".
Получение найденной информации осуществляется при помощи указания идентификатора документа в виде:
text-address@domain.host.zone
Где "text-address" - местоположение документа на сервере, "domain.host.zone" - адрес машины. В реальных системах документ имеет идентификатор, который и указывают при запросе результатов поиска. Из других режимов работы реально используется только режим завершения. Режимы удаления, контроля доступа и наличия доступа к ресурсу либо совмещены с режимом инициирования, либо просто не реализованы. Следует заметить, что точного выполнения стандарта не наблюдается ни в одной из поисковых программ, реально используемых в сети Internet. Система WAIS не является исключением.
Архитектура и реализация WAIS
Существуют различные программные продукты, реализующие взаимодействие в рамках WAIS. Однако, лучше всего рассмотреть архитектуру системы и ее особенности на примере программной реализации, выполненной компанией WAIS Inc., которая была основана одним из основателей системы, Брюстером Кахлем (Brewster Kahle). Сегодня это программное обеспечение является базовым для такого крупного сетевого продавца IP-услуг, как America On-Line.
Разработчики системы подчеркивают, что такая архитектура обеспечивает масштабируемость системы, эффективность доступа к распределенным ресурсам и возможность простой адаптации в условиях глобальных коммуникаций. Функционально программное обеспечение WAIS можно разбить на программы клиента и сервера.
Клиент WAIS
Интерфейс WAIS реализуется в виде программы-клиента. В основу этого интерфейса заложен принцип навигации по контексту - запрос составляется из ключевых слов. В ответ выдается список, удовлетворяющий критерию смыслового соответствия запроса. Такой поиск называют поиском по контексту, если в нем подразумевается обращение типа:
"Найти все документы, похожие на данный"
Вообще говоря, описание поискового предписания отличается от традиционного, принятого в локальных ИПС. Это выражено в том, что явно введено понятие близости документов запросу, который рассматривается как виртуальный документ. Такой подход допускает использование различных мер близости. Однако не стоит слишком обольщаться на предмет реального осуществления этого принципа в действующих системах. В поисковом предписании, как правило, нельзя задавать эту близость. Понятие меры используется только в протоколе, но часто не попадает в практические реализации.
Другим фундаментальным понятием WAIS-интерфейса являются динамические списки или папки. Динамический список - это результат выполнения запроса, а само понятие "Dynamic folders" введено компанией Apple для работы в системе HyperCard. Вообще говоря, набор релевантных поисковому критерию документов выдается в любой ИПС, но здесь он имеет специальное значение. Собственно, список - это не набор документов, а действительно список указателей на эти документы. Можно выделить несколько основных функций динамического списка:
Фильтрация - это отсеивание документов из ответа сервера по дополнительным критериям, не входящим в поисковый критерий. Различают удаленную и локальную фильтрацию.
Удаленная фильтрация осуществляется сервером WAIS. Когда документы отобраны на основе анализа индексов в соответствии с поисковым критерием, они перед отправкой "просеиваются" через фильтр и только после этого высылаются клиенту.
Локальная фильтрация выполняется клиентом при получении ответа на запрос; отображаются только те документы, которые прошли входной фильтр. При установке фильтров следует учитывать несколько факторов:
Для быстрого отображения документов в системе предусмотрен "захват" документов. Под захватом понимают пересылку документа по сети и временное хранение его на машине пользователя. Данная возможность реально ограничивается параметрами машины пользователя. При этом в качестве позиции в динамической папке указывается не удаленный документ, а локальный. Это существенно повышает скорость доступа к захваченному документу, но может привести к тому, что пользователь будет применять устаревшую версию документа. Поэтому при захвате динамических папок захват документов лучше отменить.
Взаимодействие с сервером
Во время работы все клиенты ведут учет обращений к WAIS-серверам и времени отклика от них. При этом реальную настройку клиента пользователь осуществляет вручную. Это важно в том случае, когда запрос отправляется на выполнение одновременно нескольким серверам. Выдачу результата в этом случае будет тормозить самый медленный сервер.
Сервер WAIS установлен на сети и отвечает на запросы WAIS-клиентов. Реально существует три программы, которые совместно образуют WAIS-сервер программа построения индексов, поисковая программа и программа отправки документов.
Программа построения индексов создает инвертированные списки слов, которые используются системой для быстрого выполнения запроса. Фактически они позволяют реализовать индексно-последовательный поиск. Программа поиска осуществляет поиск документов, удовлетворяющих запросу. При этом она использует индексы для сокращения времени поиска. Реально поиск по полному списку ("лобовой просмотр" документов) в WAIS не применяется, а используются только индексы. В качестве результата поиска клиенту возвращается динамический список. Программа отправки документов передает найденные документы пользователю для просмотра. Дополнительной услугой является возможность конфигурирования сервера как Proxy-сервера (от англ. proxy - уполномоченный, посредник). Собственно, любой WAIS-сервер - это посредник, который способен переадресовывать запрос на другие сервера, однако часто эта возможность не используется.
Сервер WAIS
К серверной части WAIS относят саму базу данных WAIS и программы для ее ведения, поисковую машину WAIS, которая обеспечивает поиск документов в базе данных WAIS и систему генерации отчетов WAIS, обеспечивающую по требованию пользователя как получение списков найденных на запрос документов, так и самих документов. Рассмотрим каждую из этих подсистем более подробно.
База данных WAIS. Все данные, с которыми работает сервер WAIS можно разделить на две большие части: собственно данные, которые являются предметом поиска и вспомогательные массивы, генерируемые системой для обеспечения быстрого доступа. В качестве данных могут рассматриваться текстовые, графические, звуковые файлы, а также видеоизображения и т.п.. Все они хранятся в виде обычных файлов в файловой системе компьютера. Для организации быстрого поиска на запросы WAIS создает индекс, состоящий из списка доступа, словаря, инвертированного файла, таблицы документов, таблицы заголовков и таблицы имен файлов. За создание индекса отвечают два компонента программного обеспечения сервера: программа разбора входного потока данных и программа-индексатор. Программа анализа входного потока (WAIS Parser) читает свой файл конфигурации и в соответствии с описанием файлов данных производит разбор и подготовку выходной информации для программы-индексатора. Программа анализа входного потока позволяет в качестве своего входа использовать текстовые файлы, файлы форматов GIF, DVI, HTML, PICT, TIFF, почтовые ящики RFC-822, архивы новостей и ряд других. Кроме этого можно заиндексировать и сессии режима on-line, например работу по telnet.
Текстовый файл можно разбить на несколько документов, каждый из которых будет иметь в индексе WAIS свой собственный вход. Такие документы являются самостоятельными единицами хранения и могут быть получены по специальному запросу. Точно таким же образом индексируются и почтовые сообщения и архивы новостей. Кроме типа файла программе анализа входного потока необходимо передать информацию о поисковом образе документа (ПОД), представляющем собой небольшой текст, описывающий основную мысль документа. В качестве поискового образа можно выбрать заголовок документа, список ключевых слов, первую строку и т.п.. В отличие от традиционных ИПС, кроме возможности поиска по поисковому образу, сам ПОД используется и для идентификации документа в списке найденных по запросу. Поисковый образ используется также для построения словаря и инвертированного списка. Кроме типа и поискового образа для каждого документа требуется указать форму его представления на экране.
Индекс используется другим компонентом серверной части WAIS - поисковой машиной.. В начале сервер обращается к файлу контроля доступа и проверяет права пользователя на работу с данными. После проверки сервер обращается к словарю, в котором находит слова, указанные в запросе, и для каждого из них выбирает список документов из инвертированного списка. Списки документов пересекаются или объединяются в соответствии с логикой запроса. Используя полученный после преобразований список документов, сервер обращается к таблице документов, где находятся адреса заголовков, которые возвращаются пользователю в качестве результата выполнения запроса. Если после этого пользователь затребует документ, то используя таблицу документов и таблицу файлов, сервер находит нужные данные и пересылает текст документа.
Вся описанная схема совпадает с используемой при работе обычных локальных информационно поисковых систем. Важным моментом в них при индексировании документов и обеспечении качественного поиска является процедура нормализации словаря. Такой же механизм существует и на сервере WAIS. Смысл этого механизма заключен в отсеивании из словаря общих слов типа "этот", "тот", "на", "в", "p" и т.п., и в нормализации формы самих слов, например, слова "степь", "степной", "степная", "степное" могут быть преобразованы в слово "степь" и в словарь попадет только оно, однако в списке инвертированного словаря на слово "степь" будут указаны и документы, в которых есть слова "степной", "степная", "степное". При анализе запроса слова также приводятся к общей форме. Такой процесс называется нормализацией лексики. Надо отметить, что здесь разработчики WAIS остановились и не пошли дальше по пути развития лексического аппарата системы в сторону построения более сложных механизмов управления лексикой запросов и поисковых образов документов. Например, в WAIS нет средств поддержки тезаурусов или классификаторов.
Информационно-поисковый язык
Разработчики системы WAIS выделяют три основные особенности информационно поискового языка: поиск по запросам на естественном языке, литеральный поиск и уточнение запросов по результатам проведенных ранее поисков (Relevance Feedback - положительная обратная связь по релевантности). Поиск по запросам на естественном языке в данном контексте подразумевает способность системы распознавать во фразах естественного языка слова из словаря системы и, объединяя их логической связкой AND, строить на их основе запросы. Литеральный поиск - это возможность учета порядка слов в документе при поиске. Литерал представляет из себя последовательность слов, заключенную в кавычки, например, "программное обеспечение". При поиске машина будет отбирать только те, где слово "программное" стоит перед словом "обеспечение". Уточнение запроса по результатам поиска заключается в том, что после выполнения запроса пользователю дается возможность добавить в него слова документов, которые наилучшим образом удовлетворяют его информационным потребностям. Считается, что такая процедура позволяет пользователю быстро сфокусировать внимание на той части базы данных, которая прежде всего отвечает его интересам. Учитывая тот факт, что многие документы являются гипертекстовыми и хранятся в формате HTML, дальнейший просмотр найденных документов может осуществляться по последовательности гипертекстовых ссылок.
Важным компонентом поискового механизма являются логические операторы, используемые пользователем при составления запроса: AND, OR, NOT, AD . Для иллюстрации их действия приведем небольшую диаграмму.
Как видно из этой схемы, операция NOT не является прямым булевым аналогом, а так же, как и AND и OR, оперирует с двумя операндами. С точки зрения теории, такой подход к информационно-поисковому языку лишает его функциональной полноты. Система не может реализовать запрос, результатом которого было бы все множество документов, однако большинство современных информационно-поисковых языков устроено таким же образом. Операция ADJ не может быть показана на представленной выше схеме, так как она реализует поиск, при котором важен порядок слов в документе, а не просто их частотность в тексте. В запросе "персональный ADJ компьютер" пользователь запрашивает документы, в которых слово "персональный" стоит перед словом "компьютер".
Кроме того, что WAIS реализует возможность коррекции запроса по результатам поиска, система еще производит упорядочивание списка найденных документов в соответствии с некоторыми весами, которые приписываются документам при поиске. Учитывая размеры Internet и число баз данных, установленных на сети, в результате поиска может быть найдено чрезвычайно большое количество документов. Система предусматривает ограничение на число выдаваемых пользователю документов, следовательно должны быть средства просеивания документов. Данная процедура основана на аппарате весов, присваиваемых каждому слову в момент построения индекса. Различают вес слова и вес термина. Вес слова присваивается каждому слову на основе частоты его употребления внутри документа. Больший вес имеют слова, которые чаще встречаются или которые встречаются, например в заголовке. Общие слова из этого множества исключены - их вообще нет в словаре. Вес термина вычисляется на основе частоты употребления слова во всем массиве документов. При выполнении запроса также назначаются веса, например, если слова запроса в документе стоят рядом, то им назначается больший вес. Кроме того, во внимание принимается "плотность" слова - отношение веса слова к весу термина, что характеризует слова с точки зрения их отражения информационной потребности пользователя. Следует отметить, что алгоритмы взвешивания могут быть добавлены или удалены администратором системы.
При поиске в базах данных WAIS можно использовать поля документов, например в запросе, обращенном к почтовому архиву, можно указать поля заголовка почтового сообщения:
WAIS software AND from "WIAS Inc"
При работе с полями возможно использование операторов ">", "<", "=", причем для дат можно указывать интервалы.
Последним функциональным компонентом системы является генератор отчетов. Эта программа реализует концепцию динамического списка, используемого клиентом для доступа к файлам данных. Кроме списка документов генератор отчетов сообщает общее число найденных документов, запрос, по которому проводился поиск, частоту употребления каждого слова запроса и время выполнения.
Сервер WAIS предоставляет и ряд дополнительных услуг. Во-первых, это возможность работы через "посредника", необходимость в котором появляется при защите локальной сети от несанкционированного доступа из-вне. В этом случае на машине-бастионе может быть установлен сервер, который будет перенаправлять запросы клиентов во внешний мир и обслуживать запросы из внешнего мира. Кроме подобного прямого использования, этот механизм позволяет организовать распределенные базы данных, построенные по принципу взаимодействия различных WAIS-серверов, и, таким образом, дать возможность пользователю одного из них сканировать все множество серверов. Во-вторых, система поддерживает свою собственную базу данных идентификации пользователей для контроля их прав доступа к документам базы данных. В-третьих, существует шлюз связи между системой WAIS и WWW, что позволяет обмениваться данными серверам обоих систем, удовлетворяя информационные запросы своих пользователей.
Самым известным применением системы WAIS является реализация с ее помощью проекта "Британика-online". Этот проект связан с организацией в Internet одной из самых старых энциклопедий мира - энциклопедии "Британика". Электронная версия "Британики" представляет из себя довольно сложный конгломерат информационных технологий. Главным в этой информационной базе данных является представление статей энциклопедии в виде гипертекстовых страниц в формате языка гипертекстовой разметки документов HTML, который применяется для опубликования материалов в World Wide Web. Каждая статья имеет связи со следующей и предшествующей статьями в текстовом варианте энциклопедии. Кроме этого, имеется база данных персоналий, стран и графических иллюстраций. Для навигации по энциклопедии существуют оглавление, индекс и механизм поиска статей по ключевым словам. Оглавление и индекс являются списками гипертекстовых ссылок. Если в оглавлении ссылки указывают на статьи энциклопедии, то в индексе ссылки указывают на списки статей, которые, в свою очередь, также являются списками гипертекстовых ссылок.
Поисковый аппарат энциклопедии основан на использовании технологии WAIS, а результатом работы является список гипертекстовых ссылок на статьи энциклопедии, генерируемых системой "на лету". Этот список внешне не отличается от списка индекса, однако, с точки зрения системы - это совершенно разные объекты. Список индекса реально существует в виде файла базы данных WWW, а списки, порождаемые WAIS - суть абстракция, временное образование, порождаемое запросами пользователя. Зарегистрированные пользователи могут сохранять полученные таким образом списки для последующего использования при работе с системой.
Заключение
Программное обеспечение системы WAIS постоянно развивается. В середине 1995 года появилась вторая версия системы, разработанная компанией WAIS Inc., и документация к ней. До этого момента познакомиться с принципами работы системы можно было только после установки ее на своем компьютере. При этом довольно много исправлений приходилось вносить в программные модули, если операционная система машины не соответствовала той, на которой система разрабатывалась. Объем подготовительной черновой работы в новой версии стал намного меньше.