3.6. Поисковый язык CDS/ISIS

The UNESCO micro CDS/ISIS Software

3.6.1.Введение

Поисковый язык СDS/ISIS базируется на булевой алгебре, которая обеспечивает удобный способ выражения логических операций между классами. Каждый поисковый термин, ассоциируемый с данной записью, фактически может рассматриваться как представитель класса всех записей, ассоциируемых с данным термином. Так, выражая логические операции между поисковыми терминами, вы можете точно определить класс записей, которые должны быть найдены в ответ на ваш запрос.

В следущих параграфах примеры приведены не для того, чтобы показать, как формировать специфические запросы, они просто иллюстрируют возможности поискового языка CDS/ISIS. Однако, поисковый язык сам по себе не даст вам возможности проводить поиск в конкретной базе данных. Ключ к полному и эффективеому поиску - это знание всех поисковых терминов, употребляемых в данной БД. Следовательно, важно, чтобы вы ознакомились со словарем поисковых терминов, доступных для БД, в которой вы хотите проводить поиск и с правилами индексирования записей в этой БД. Заметьте, что опция "Т" в меню ISISRET, позволит вам не только вывести словарь на экран компьютера, но и строить поисковый запрос путем выбора терминов непосредственно на экране. (см. раздел 7.1 "Т- вывод на экран терминов доступа").

Наиболее эффективный путь выполнения поиска в CDS/ISIS -через инвертированный файл (и основная причина поддерживать инвертированный файл - обеспечить быстрый поиск). Однако, вы можете это сделать только в том случае, если ваши поисковые запросы укладываются в рамки словаря поисковых терминов для данной БД, т. е. если они были выбраны, когда определялось содержание инвертированного файла. При этом, как бы хорошо ни была продумана ваша БД, все равно будут случаи, когда вы не сможете сформировать поисковый запрос через инвертированный файл. Для этих случаев СDS/ISIS обеспечивает альтернативный поисковый метод, называемый свободным поиском по тексту, который позволяет вам удовлетворить любой поисковый запрос независимо от содержания инвертированного файла. Поскольку этот второй метод менее эффективен, он обычно используется вместе с поиском по инвертированному файлу для улучшения поисковой стратегии, но может, если необходимо, использоваться независимо. Если вы обнаружите, что вам довольно часто приходится формулировать длинные запросы свободного поиска по тексту,то, возможно, вам стоит рассмотреть вопрос о переопределении инвертированного файла. Следущие несколько параграфов описывают метод поиска по инвертированному файлу. Свободный поиск по тексту описан в разделе 3.6.7. "Свободный поиск по тексту".

3.6.2.Поисковые выражения. Типы поисковых терминов

При формулировании вашего поискового выражения вы можете использовать три типа терминов: точные термины, термины, усеченные справа, ANY-термины. Все они описаны ниже.

3.6.2.1. Точные термины

Точным термином является любой поисковый элемент, определенный для данной БД, такой как предметный дескриптор, ключевое слово, ключевое выражение, слово из заголовков, имя автора и т. д. Вы должны быть знакомы с поисковыми терминами, доступными в БД, в которой вы намереваетесь проводить поиск.

Когда вы используете точный поисковый термин, вы должны его определить точно так, как он известен CDS/ISIS. Рекомендуется иметь список поисковых терминов под рукой во время формулировки запроса (или использовать опцию Т программы ISISRET, описанную в разделе 7.1. "Т- вывод на экран терминов доступа"), для вывода на экран поисковых терминов.

Даже небольшие изменения в написании термина заставят CDS/ISIS отвергнуть его.

Так, например, если CDS/ISIS известен термин COLOR (американское написание), вы не можете использовать этот термин в английском написании COLOUR, т. к. он будет отвергнут.

Важно помнить, что, если поисковый термин содержит скобки или любой из знаков поисковых операций (* + (G) (F) . $ ^) или начинается со знака #, вы должны заключить его в двойные кавычки с целью избежать возможной неоднозначности. Так, если ваш поисковый термин:

GERMANY (FEDERAL REPUBLIC)

вы должны ввести его в следующем виде

"GERMANY (FEDERAL REPUBLIC)"

иначе CDS/ISIS выдаст сообщение о синтаксической ошибке.

3.6.2.2. Поисковые термины, усеченные справа

Вместо использования точных поисковых терминов, вы можете дать только его основу. Эта техника, называемая поиском по основе или усечением справа, позволяет вам искать по ведущей последовательности символов. CDS/ISIS автоматически выполнит логическую операцию OR между всеми поисковыми терминами, имеющими указанную основу.

Усечение справа обозначается знаком доллара $, который ставится сразу после последнего символа основы. Предположим, например, что ваш список терминов содержит следующий набор терминов:

file organization
film industry
film libraries
film-maker
film-making
film-making trainig
filmstrip
filtration
Тогда FILM $ является эквивалентом списку:
film
film industry
film libraries
film-maker
film-making
filmstip,
а FILM - $ является эквивалентом списку:
film-maker
film-making
film-making training

Как и для точных поисковых терминов, если ваша основа содержит скобки, или любой знак поискового оператора или начинается со знака #, вы должны заключить ее в двойные кавычки ("). "Например, "FILM $" является эквивалентом:

FILM
FILM INDUSTRY
FILM LIBRARIES
но FILM $ (без кавычек) выдаст сообщение об ошибке.

3.6.2.3. ANY термины

ANY термины - это коллективный термин ранее определенного набора поисковых терминов. Когда вы используете ANY термин в вашей поисковой формулировке, CDS/ISIS автоматически выполнит логическое OR между всеми терминами, ассоциируемыми с этим ANY термином.

ANY термин состоит из слова ANY, за которым следует уникальный идентификатор, обычно мнемонический, назначенный ассоциируемому набору терминов. Например, термин ANY BENELUX COUNTRY может быть использован для поиска записей, заиндексированных названием любой страны группы Benelux (Бельгия, Hидерланды, Люксембург). Прежде чем ANY- термин может быть использован в поисковой формулировке, его значение должно быть определено путем определения множества ассоциируемых с ним терминов (см. раздел 17.4. "Создание ANY файла"). Заметим, что не все базы данных должны пользоваться этим средством. Поэтому прежде чем пытаться использовать ANY термин, вы должны убедиться, что он доступен БД, в которой вы проводите поиск и, если да, то, что он действительно определен.

3.6.3. Поисковые термины

Вы можете объединять два или более поисковых терминов в поисковые выражения с помощью поисковых операторов, обозначающих отношения, которые вы хотите установить между терминами. Три основных оператора OR, AND, NOT схематически представлены на рис. 31, где каждый прямоугольник представляет записи, заиндексированные указанным термином, а заштрихованное пространство представляет множество записей, которые получатся в результате применения различных операторов.

3.6.3.1. Логическое OR (включающее)

Логическое OR - это оператор объединения классов. Результатом логического OR между двумя классами является класс, полученный путем слияния этих двух классов, без дублирования совпадающих элементов.

Так, если А и В - два термина, представляющие два класса документов, заиндексированных терминами А и В соответственно, логическим OR между этими двумя классами является класс документов, заиндексированных термином А, термином В или обоими терминами.

Логическое OR, следовательно, используется для расширения поиска и будет, в общем случае, увеличивать количество найденных записей. Символ, используемый для обозначения логической операции OR - знак "+".
Так, например, для того чтобы найти документы о странах Бенелюкс, можно использовать логический оператор OR следующим образом:

Бельгия + Нидерланды + Люксембург

Заметьте, что порядок, в котором даны три страны безразличен.

Рис. 31: Основные поисковые операторы

Рис. 31: Основные поисковые операторы

3.6.3.2. Логическое AND

Логическое AND - оператор пересечения классов. Результатом логического AND между двумя классами является класс, содержащий только элементы, совпадающие для этих классов.

Так, если А и В - два термина, представлющие два класса документов, заиндексированных терминами А и В соответственно, логическим AND между этими двумя классами является класс документов, заиндексированных одновременно обоими терминами А и В.

Логическое AND, следовательно, используется для сужения поиска путем требования одновременного присутствия терминов и будет, в общем случае, снижать количество найденных записей. Символ, используемый для обозначения логической операции AND - знак "*".

Так, например, для того, чтобы найти документы о диалоговых и поисковых информационных системах, можно использовать логический оператор AND следующим образом:

on-line systems * information retrieval

Отметьте, что порядок, в котором приведены термины, безразличен.
Результатом логического AND может быть пустой класс, т. е. класс, не содержащий элементов. В этом случае при поиске не находится ни одной записи. В приведенном выше примере будет получен пустой класс, если ни одна запись в БД не содержит одновременно оба термина: on-line systems и information retrieval.

3.6.3.3. Поисковые операторы уровня близости в поле

Эти операторы наиболее ограничительный тип логического оператора AND и, практически, полезны для поиска по естественному языку.

Операторами уровня поля и близости являются:

(G) - то же поле (все повторения повторяющегося поля рассматриваются как одно поле), например:

water / (G) / soil (на этот запрос) будут найдены все записи, в которых и вода, и соль встречаются в одном поле.

(F) - то же поле или повторение в повторяющемся поле, например:

water / (F) / soil будут найдены все записи, в которых и water, и soil встречаются в одном поле или, если поле повторяющееся, то в одном повторении повторяющегося поля ((G) и (F) эквивалентны для неповторяющихся полей).

    . как (F), но с дополнительным ограничением: между терминами должно быть не более n слов минус 1, где n - количество точек. Например: А . В - между терминами недолжно быть слов; А .. В - не более одного слова между А и В; А ... В - не более двух слов между А и В;
$ как (F), но с дополнительным ограничением: между терминами должно быть точно n слов минус 1, где n - количество знаков $.
Например:
А $ В между А и В не должно быть слов.
А $$ В точно одно слово должно быть между А и В.
А $$$ В точно два слова должно быть между А и В.
Отметим, что непосредственно до и после оператора должен быть пробел.

3.6.3.4. Логическое NOT

Логическое NOT - оператор исключения класса. Результатом логического NOТ между двумя классами является класс, содержащий все элементы первого класса, которые не совпадают с элементами второго класса.

Так, если А и В - два термина, представляющие два класса документов, заиндексированных А и В соответственно, логическим NOT между А и В является класс документов, заиндексированных только термином А, но не А и В или В. Символ, используемый для обозначения логической операции NOT - знак ^ .

Логическое NOT должно использоваться только в крайних случаях, поскольку оно может повлечь неадекватную потерю релевантных документов.

Например, поисковый запрос может относиться к документам о группах, находящихся в невыгодном положении, исключая при этом ссылки на детей, находящихся в невыгодном положении (disadvanbaged children). Можно сформировать запрос следующим образом:

disadvantaged group ^ disadvantaged children

Это возможно, однако, для документов содержащих раздел о детях, находящихся в невыгодном положении. Эти документы будут опущены,если сформировать запрос так, как указано выше.

Отметим далее, что операция NOT, в отличие от логических операций AND и OR, не дает тех же результатов при инверсии операндов. Так, А ^ В не то же самое, что В ^ А (за исключением частного случая, когда А и В представляют один и тот же класс; в этом случае результатом этой логической операции будет пустой класс).

3.6.4. Синтаксис поисковых выражений

Вы можете формировать сложные поисковые выражения путем комбинирования двух или более поисковых терминов с помощью поисковых операторов, описанных выше.

Как в обычной алгебре, вы можете применять скобки для изменения порядка выполнения операций. При вычислении выражений принят следующий приоритет операторов:

Приоритет операторов

Если встречаются два или более операторов одного приоритета в пределах одного уровня скобок, они вычисляются слева направо. Так, например, при вычислении следующего выражения

А + В * С

CDS/ISIS сначала вычислит В * С, а затем логическое OR между А и (В * С). В то время как при вычислении

(А + В) * С

она сначала вычислит А + В и затем логическое AND между (А + В) и С. Вы можете вкладывать скобки, если нужно, как в следующем примере:

((А + В) * С + (D + E) + F) ^ G

При формировании поисковых выражений вы должны придерживаться простых синтаксических правил:
1) никакие два логические оператора не могут располагаться рядом, исключая повторения знаков "." и "$" (которые не могут,однако, смешиваться);
2) используемые скобки должны быть сбалансированы, т. е. количество открыващихся скобок должно быть равно количеству закрывающихся скобок.

3.6.5. Квалификатор поля

Вы можете использовать квалификатор для определения поля или группы полей, в которых вы хотите искать термины. Это особенно удобно для баз данных, которые содержат одинаковые данные в нескольких полях.
Квалификатор имеет следующий формат:

поисковый термин/(t1, t2, t3, ...)

где t1, t2, t3 - идентификаторы полей, в которых вы хотите искать ваши термины.

Идентификатор поля - это, обычно, метка поля. Однако могут быть исключения. См. раздел 3.4.2. "ТВП для инвертированного файла" для уточнения понятия "идентификатор поля".

Квалификаторы поля могут использоваться вместе с поисковыми операторами для поиска по ограниченному количеству полей и могут также применяться к поисковым терминам усеченным справа или ANY терминам. Например, рассмотрим БД, в которой все термины выбираются из всех полей пословно.

Простым применением оператора AND можно найти записи, содержащие термины INTERNATIONAL, EXPERT и MEETING:

internanional * expert * meeting

Однако, количество записей, удовлетворяющих этому запросу может быть очень велико, поскольку каждое слово может быть найдено в любом из нескольких полей, например, заголовок, корпорация, предмет и т.д. Путем использования (F) оператора

international (F) expert (F) meeting

количество используемых записей может быть сокращено, но все же вы не можете быть совершенно уверены в результате, т. к. термины могут появиться и в аннотации, и в заголовке, и в издательстве и т.д.
Однако, если вы добавите квалификатор /(62)

international (F) expert (F) meeting / (62),

то будут найдены только те записи, которые имеют все эти термины в одном повторении поля 62 (отметьте, что в данном случае можно применять квалификатор только к одному термину).
Если оператором является поисковый термин, усеченный справа, или ANY- термин, CDS/ISIS будет применять квалификатор ко всем членам соответствующего множества.

Так, например,

ANY Benelux country / (64)

эквивалентно

Belgium / (64) + Netherlands / (64) + Luxembourg / (64)

3.6.6. Развитие поисковой стратегии

Основным блоком при построении поисковой формулировки является поисковое выражение, как определено выше. Каждый раз, когда вы выбираете опцию S меню xXGEN программы ISISRET, вы фактически создаете новое поисковое выражение. В ответ на поисковое выражение CDS/ISIS:

1) назначает уникальный номер, называемый номером запроса к поисковому выражению, которое вы ввели (если оно не содержит синтаксические ошибки);
2) выводит на экран количество регистраций для каждого термина в выражении, для каждого подвыражения.

Так, например, если вы введете поисковое выражение

Поисковое выражение

(отметьте, что номера строк не появляются на экране, они включены для облегчения ссылки на каждую строку при объяснении, приведенном ниже):

Строка 1 содержит номер запроса, приписываемый CDS/ISIS поисковому выражению (1 в данном случае).
Строки 2-3 содержит количество регистраций (р=nnnnnn) для каждого термина, используемого на самом низком уровне выражения.
Строка 4 содержит количество записей (Т=2192), номер подвыражения (#2) и выделено само подвыражение (ITALY+FRANCE). В данном примере БД содержит 2192 записи, содержащие термин ITALY или термин FRANCE, или оба.
Строка 5 содержит количество регистраций (р=nnnnnn) для каждого термина, используемого на более высоком уровне выражения, в данном случае, на самом высоком уровне.
Строка 6 содержит количество записей (Т=8), номер подвыражения (#3:) и выделено второе подвыражение ART + #2 (строка 4).
Строка 7 содержит количество записей (Т=8), номер запроса (#1:) и номер подвыражения (#3) со строки 6.

Если поисковое выражение содержит ANY-термин, то на экран будет выдано количество регистраций всех поисковых терминов, принадлежащих данному ANY- термину, и общее количество регистраций. Аналогично, если поисковое выражение содержит поисковый термин, усеченный справа, то будут выведены на экран количество регистраций для каждого отдельного поискового термина также, как общее количество регистраций для усеченного термина.
Если вы используете недоступный поисковый термин, CDS/ISIS установит количество его регистраций равным нулю и выдаст сообщение:

** не найден **

Как было упомянуто выше, CDS/ISIS присваивает уникальный номер каждому поисковому выражению. Он также сохраняет все поисковые выражения. В последующих поисковых выражениях вы можете ссылаться на ранее введенные с помощью номера запросы, присвоенные CDS/ISIS, со знаком # перед ним.

Эта возможность позволит вам развивать свою поисковую стратегию шаг за шагом. Разделение запроса на элементы также позволяет вам не только контролировать на каждом шаге количество найденных записей, но и выдавать на экран сами записи, так, что вы можете проверить в любой момент логическую правильность поисковой формулировки, в смысле релевантности найденных записей.

Предположим, например, что после вывода на экран записей, найденных в ответ на запрос (ITALY + FRANCE) * ART вы обнаружили, что были найдены некоторые нерелевантные документы, потому что они касаются conservation of monuments. Вы можете изменить формулировку запроса следующим образом:

#1 ^ conservation of monuments

Ссылка на ранее определенное поисковое выражение называется обратной ссылкой. Заметьте, что к обратной ссылке можно применять квалификатор поля. Например,

# 1 / (64)

выберет среди записей, найденных в ответ на запрос #1, только те, в которых поисковые термины найдены в поле 64.

Для формулировки запросов нет набора правил. Вы будете развивать свои навыки, приобретая опыт при работе с CDS/ISIS. В общем, неопытному человеку не следует сразу использовать сложные поисковые выражения, а начать с простых, которые затем можно комбинировать для создания окончательной поисковой формулировки. Если опять сослаться на приведенный выше пример, этот же поисковый запрос может быть сформулирован за 4 шага:

номер запроса #1: ART
номер запроса #2: ITALY+FRANCE
номер запроса #3: CONSERVATION OF MONUMENTS
номер запроса #4: #1 * #2 ^ #3

3.6.7. Свободный поиск по тексту

Этот метод позволяет вам специализировать поисковые требования по полям, которые не инвертируются и/или специфицировать условия, которые вы не могли бы определить, пользуясь методом, описанным выше, такие как сравнение полей или сравнение числовых значений полей.

Свободный поиск по тексту подключается при выборе опции S меню ISISRET. Чтобы отличать его от обычного поиска, перед булевым выражением ставится знак "?":

? булево выражение или
? #n булево выражение,
где
? - идентифицирует свободный поиск по тексту
#n - ограничивает свободный поиск по тексту результатами ранее введенного запроса (n - номер поискового запроса, в котором может проводиться как поиск по инвертированному файлу, так и свободный поиск по тексту или комбинация обоих типов поиска); если n опущено, то свободный поиск по тексту проводится по всей базе данных.
булево выражение - булево выражение CDS/ISIS, как определено в разделе 3.2.6.3. "Булевые выражения".

В ответ на запрос свободного поиска CDS/ISIS вычислит булево выражение для каждой записи файла документов и построит hit список записей, удовлетворяющих специфицированным условиям (т. е. все записи, для которых булево выражение получает значение "Верно").

Например:

? V24: 'Unesco' and val(V26^C) )=1986

найдет все записи, содержащие Unesco в поле 24 с датой публикации (v26^c) больше или равно 1986. Следующее выражение:

? #2 (p(V24) or p(V29)) and V26^b : 'unesco'

найдет среди записей, найденных на запрос #2, только те записи, которые содержат unesco в подполе поля 26 и при этом содержат поле 24, поле 29 или оба поля вместе.
Булево выражение может быть настолько сложным, насколько хочет пользователь, но оно не должно превышать границу в 250 символов (немногим более трех строк на экране). Как при поиске по инвертированному файлу, при свободном поиске по тексту запросу присваивается номер, который вы затем можете использовать в других поисковых выражениях.
Отметьте, что хотя выражения при поиске по инвертированному файлу и свободном поиске по тексту не могут смешиваться в одном выражении, однако можно, используя обратную ссылку, комбинировать любое количество выражений в отдельном поисковом выражении, например:

запрос 1   water * soil
запрос 2   ? # 1 val(v26^c) )1985
запрос 3   ANY LATIN AMERICA
запрос 4   #2 * #3

Поскольку CDS/ISIS должна читать каждую запись файла документов, чтобы проверить удовлетворяются ли условия, время обработки запроса по свободному поиску может быть очень большим, особенно если запрос применяется ко всей базе данных.
CDS/ISIS информирует вас о процессе обработки с помощью четырех окон, показываемых на экране, так что вы можете следить за процессом поиска.
Рис. 32 показывает, как выглядит экран во время свободного поиска по тексту.

Окна помечены следующим образом:
MFN - показывает номер обрабатываемой записи файла документов;
Hits - показывает текущее количество найденных записей (оно возрастает на 1 каждый раз, когда находится запись, удовлетворяющая булеву выражению);
% - показывает текущую hit запись, т. е. процентное соотношение найденных записей, вычисленное в отношении к обработанным записям;
Зап - общее количество записей, которые должны быть обработаны.

Вы можете в любое время прервать выполнение свободного поиска по тексту нажатием любой клавиши, чтобы обдумать частичные результаты. Затем вы можете продолжить либо прекратить поиск.

Рис. 32