Саранск
А.В.Корочков
Диалоговая процедурная система
обращения
к утилитам ОС ЕС на ограниченном
естественном
(русском) языке (Система "С А Р А Н
С К")
Краткое описание и инструкция по использованию
1.3 Обработка входной информации
В данном разделе приведена лишь та информация о процессе обработки, знание которой влияет на правильное использование системы. Подробные алгоритмы работы соответствующих анализаторов и полные лингвистические описания, лежащие в основе их работы,
7
в данном разделе не приводятся. Соответствующая информация, предположительно, будет представлена в отдельных документах, описывающих анализаторы и их лингвистические основы.
Обработка указания начинается с выделения программой-сканером очередного слова. Дальнейшая обработка слова зависит от того, является ли оно именем или нет, т.е. все слова система разделяет на слова-имена (названия, обозначения) и на полнозначные слова.
Полнозначные слова подлежат морфологическому анализу, в результате которого слову приписывается один или несколько наборов с информацией о представляемом этим словом понятии (понятии уровня синтаксиса) и информацией о возможном месте этого слова среди других слов этого предложения (синтаксическая информация).
В дальнейшем анализе (синтаксический этап) участвуют уже не слова в том виде, в котором они были получены от программы-сканера (поверхностные слова), а именно эти наборы признаков (синтаксические слова или модули).
Слова-имена такому анализу не подлежат, они используются для обозначения конкретных экземпляров объектов, относящихся к одному и тому же понятию. Так, чтобы отличить два объекта, описываемых понятием "том", им приписываются имена, например, A и B или 123 и 124.
Для системы имена делятся, с одной стороны, на совпадающие и несовпадающие по написанию с полнозначными, а с другой, - на простые, сложные и цифровые имена.
Простые имена содержат только алфавитные символы (буквы), сложные имена, кроме букв, содержат специальные знаки, например, запятые, пробелы и т.п. Так, например, сложными будут имена "LNG.PASS" и "Заряд бодрости".
Цифровое имя - это число в цифровом написании, например, "1204" или "305".
Любое слово, употребленное в апострофах (кавычках), система считает именем. Это же относится и к числам в цифровом написании. При этом слово, заключенное в апострофы, добавляется в текущий список (словарь) имен системы.
Текущий список имен формируется из файла имен, который подготавливается при помощи обслуживающих программ до запуска системы (имя этого файла задается при запуске, см. подраздел 2.1.1) и новых имен, употребленных в данном сеансе работы системы (о понятии "сеанс работы системы" см. в подразделе 2.2.3).
Слово, не обрамленное апострофами, передается морфологическому анализатору. Если слово удается проанализировать, т.е. приписать ему соответствующие наборы с синтаксической информацией, то далее уже модулями синтаксического анализатора устанавливаются возможные связи вновь полученных морфологическим анализатором синтаксических слов с прежде обработанными синтаксическими словами и делаются заявки (предположения) на другие возможные связи. После этого управление возвращается программе-сканеру для выделения следующего слова.
Если же слово проанализировать не удалось, например, не оказалось подходящей основы в словаре основ, то система ищет это
8
слово в текущем словаре имен.
Таким образом, не все имена необходимо заключать в апострофы. В апострофы необходимо заключать:
- сложные имена,
- простые имена, совпадающие по написанию с полнозначными словами,
- простые неизвестные системе имена при первом употреблении в сеансе работы системы (т.е. не содержащиеся на момент анализа в текущем словаре основ).
Все остальные имена в апострофы можно не заключать, а именно:
- простые имена при повторном употреблении в сеансе работы системы, т.е. содержащиеся в текущем словаре имен, и при этом не совпадающие по написанию с каким-либо полнозначным словом, известным системе,
- цифровые имена.
Если поиск слова в словаре имен завершается удачно, то это слово считается именем, если нет, то оно считается полнозначным словом, которое морфологический анализатор не смог проанализировать (либо потому, что это неизвестное, т.е. не описанное в словарях системы слово, либо из-за непредусмотренного функционирования морфологического анализатора). Выдается соответствующее сообщение о неудаче на этапе морфологического анализа. В пакетном режиме происходит игнорирование этого слова, а в диалоговом режиме имеется возможность взаимодействия с системой (о режимах работы системы см. раздел 2.1).
Диалоговое взаимодействие позволяет ввести в обработку дополнительную недостающую информацию или изменить неправильные данные на входе системы без повторного ввода всего указания.
На данном этапе в этой ситуации пользователю предоставляется возможность заменить слово или опустить его из анализа. Замена может состоять только из одного слова (т.е. вместо непроанализированного слова нельзя ввести 2 или более слова), но количество замен лимитируется только общесистемными характеристиками запуска, например, размером выделенной для функционирования системы оперативной памяти (ОП).
После того, как будут проанализированы все поверхностные слова предложения, синтаксический анализатор имеет в своем распоряжении одну или несколько сетей (графов), в которых представлены все синтаксические слова анализируемого предложения (узлы сети) и все возможные связи между этими словами (именованные и неименованные дуги).
Из этой сети или сетей синтаксический анализатор пытается построить структуру, в которой каждое поверхностное слово, которому морфологическим анализатором приписано одно или несколько синтаксических слов, должно быть обязательно представлено и при этом представлено только одним синтаксическим словом. Все эти синтаксические слова должны быть связаны между собой определенными отношениями. Эти отношения, с одной стороны, обеспечивают "прочтение" (т.е. доступ к каждому элементу) структуры в строго фиксированном порядке (синтаксический аспект), а с другой
9
стороны, они приписывают дополнительную информацию элементам (узлам) структуры (семантический аспект). Подобную структуру принято называть синтаксической, хотя, поскольку в ней отражен и семантический аспект, ее можно назвать и семантико-синтаксической структурой (ниже применяются оба эти термина).
При невозможности построения такой структуры система выдает сообщение о том, что синтаксическая структура предложения не построена. В этом случае необходимо переформулировать указание, возможно даже с использованием тех же самых слов.
После успешного построения синтаксической структуры из нее извлекается информация, необходимая для синтеза команды на выходном языке. Эту работу выполняет прагматический анализатор, который кроме построенной синтаксической структуры, для синтеза команды использует также описание предметной области, представленное в виде процедурных сетей, в которых описаны понятия этой предметной области.
Прагматический анализатор работает с понятиями объектов, их характеристик и действий, осуществляемых с этими объектами, а также с конкретными объектами, имеющими имена.
Прежде всего определяется, возможно ли осуществление запрошенного действия с заданными объектами. Если такое действие не предусмотрено, то выдается соответствующее сообщение и обработка текущего указания прекращается.
При возможности такого действия определяется, заданы ли в указании все необходимые объекты и их характеристики. Если какие-либо необходимые объекты не заданы, то также выдается соответствующее сообщение и обработка прекращается.
Некоторые характеристики объектов могут быть заданы по умолчанию. Так прагматический анализатор по умолчанию анализирует понятия 'файл' и 'том'.
При употреблении понятия 'том' без уточняющих атрибутов имеется в виду дисковый том (статическое умолчание).
Для понятия 'файл' применено динамическое умолчание, т.е., если до анализа понятия 'файл' в данном предложении встретилось понятие, которое может относиться к семантической подобласти 'библиотечный файл', то имеется в виду библиотечный файл, например, в ситуации " . . . раздел файла . . . ". В противном случае система имеет в виду последовательный файл.
При анализе заданных в указании объектов также определяется, имеют ли они имена. Если имена каких-либо объектов не заданы, то прагматический анализатор позволяет ввести в диалоге необходимые имена, что устраняет необходимость повторного ввода всего указания. Таким образом можно ввести незаданные имена томов, файлов, разделов, значения индексов, номера дорожек.
Для выполнения запрошенного действия могут быть применены различные программы (и, соответственно, процедуры). Выбор соответствующей процедуры, выполняющей заданную функцию, осуществляется прагматическим анализатором автоматически, исходя из заданных объектов и их характеристик, но имеется возможность в указании принудительно задать процедуру или программу, которая, по мнению пользователя, является в данной ситуации наиболее приемлемой, например: " . . . программой 'IEFBR14' . . . " или " . . . процедурой 'FASTCOPY' . . .".
10
После успешного формирования команда передается ОС для выполнения. С этого момента система готова к обработке следующего указания, о чем в диалоговом режиме выдается соответствующее сообщение.