Организация диалога с информационной системой оперативного учета судопропуска в шлюзах

УДК 681.3.067 А. Е. Журавлев,

аспирант,

СПГУВК

ОРГАНИЗАЦИЯ ДИАЛОГА С ИНФОРМАЦИОННОЙ СИСТЕМОЙ ОПЕРАТИВНОГО УЧЕТА СУДОПРОПУСКА В ШЛЮЗАХ DILOGUE ORGANIZATION WITH INFORMATION SYSTEM OF OPERATIONAL REGISTRATION OF LOCKING

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

This article is devoted to the questions of organization of dialog of terminal operator with the informative system of operative registration of the process of moving ships in the locked system in some subset of human language, containing interrogative and incentive suggestions. The translator from a human language to the SQL-similar language of queries of the informative system on the basis of semantic analyzer is offered.

Ключевые слова: семантика, семантический анализ, базы данных, шлюз, судопропуск.

Key words: semantics, semantic analysis, database, gateway, locking.

ШЛЮЗОВАННАЯ система на внутренних водных путях является частью единой транспортной системы и представляет собой территориально распределенную совокупность технологических объектов транспортного процесса. Управление системами подобного класса невозможно без создания единой корпоративной компьютерной сети, которая применительно к транспортным объектам, как правило, строится на основе виртуальных частных сетей, используя средства коммуникации предприятий, являющихся операторами связи.

Хосты корпоративной сети предназначены для сопровождения локальных баз данных первичной информации о совершенных операциях транспортного процесса и анализа технологических показателей исполненного процесса судопропуска. По мере необходимости получения интегрированных сведений по системе в целом должен производиться обмен информацией между центральной базой и ее периферийными филиалами (отдельными шлюзами либо районами гидросооружений). Для управления такими распределенными СУБД применяются различные технологии и специализированные средства доступа. Для реализации хранения, обработки и анализа данных в распределенных средах чаще всего используются различные ERP- и OLAP-системы, которые позволяют визуальными графическими средствами запрашивать данные из хранилища, агрегировать их и визуализировать результаты и т. д. Однако средств, которые предоставляли бы возможность исполнять запросы аналитика, сформулированные на естественном языке (ЕЯ), до сих пор реализовано не было. В полной мере такими средствами нельзя считать и специализированные языки 1CQ (язык запросов платформы 1С: Предприятие), SQL (Structured Query Language), MDX (Multidimensional Expressions) и другие, поскольку они для практического использования требуют достаточно высокой квалификации специалиста. В статье предлагается и иллюстрируется механизм, который позволил бы на подмножестве ЕЯ без специализированных знаний получать требуемую информацию из баз данных и OLAP-хранилищ [1].

Постановку задачи в общем виде можно сформулировать следующим образом: разработать формальный механизм преобразования запроса к данным на проблемно-ориентированном подмножестве ЕЯ в язык запросов к базе данных (БД) или хранилищу данных (ХД) и его реализацию.

Выпуск 3

Выпуск 3

Далее этот запрос должен быть выполнен информационной системой и возвращен результат или сообщение об ошибке с осмысленными пояснениями причин ее возникновения.

Рассмотрим особенности реализации механизма семантического анализатора на примере языка 1CQ. В основе выбора этого языка лежат нижеперечисленные причины.

1. Язык запросов 1CQ по синтаксису подобен языку SQL, поэтому не требует глубокой переквалификации программиста. Язык SQL является стандартом для ERP-систем и OLAP-хранилищ, потому что в прочих сферах часто используются ROLAP-системы или Rational OLAP, а многомерные БД пока не так сильно развиты.

2. Запросы на этом языке могут быть записаны как на русском, так и на английском языке. что имеет немаловажное значение для упрощения механизмов семантического анализа.

3. Язык 1CQ поддерживается динамично развивающейся в России платформой 1С: Предприятие 8, что обеспечивает широкую востребованность разрабатываемого механизма.

4. На языке платформы разрабатывается экспериментальная автоматизированная информационная система (АИС), предоставляющая дополнительные возможности по тестированию разрабатываемого механизма семантического анализа.

Представим алгоритм функционирования предлагаемого механизма семантического анализатора в виде блок-схемы, представленной на рис. 1.

Рис. 1. Блок-схема механизма семантического анализатора

Прокомментируем работу алгоритма.

1. При инициализации система анализирует БД или ХД и на основе анализа описания данных, представленного либо при помощи ХМЬ-файла, либо встроенного механизма платформы АИС, строит структуру используемых объектов.

2. На основе построенной структуры объектов и их связей формируется проблемно-ориентированное подмножество ЕЯ.

3. Удаленный пользователь или оператор консоли (далее — оператор терминала (ОТ)) вводит запрос на ЕЯ на основе заполненных словарей.

4. Используя механизм семантического анализатора, выполняется анализ введенного ОТ запроса на ЕЯ и строится соответствующий ему запрос на языке 1CQ.

5. Если информационная система не поддерживает язык запросов 1CQ, то запрос конвертируется в стандарт языка SQL (переводится на английский язык, корректируется синтаксис и т. п.).

6. Имея в распоряжении код на языках запросов 1CQ или SQL — машинный запрос, платформа АИС выполняет его и выдает результат ОТ.

В соответствии с описанным алгоритмом работы механизма семантического анализатора рассмотрим следующий пример запроса на ЕЯ: какой коэффициент слитых призм за июль 2011 г.?

Информационная система для этого примера производит лексический (рис. 2), синтаксический (рис. 3), семантический анализ (рис. 4) и строит 1CQ-запрос вида:

ВЫБРАТЬ

СУММА

ИЗ

РегистрНакопления.Шлюзование КАК Шлюзование

ГДЕ

Шлюзование .Период МЕЖДУ &НачПериода И & КонПериода

Рис. 2. Форма лексического анализатора

Вся совокупность запросов на ЕЯ ограничена двумя классами предложений: простые вопросительные предложения («Какой...?») и побудительные предложения («Показать...»). Таким образом, эти ограничения можно использовать для упрощения механизмов разбора предложения на каждом из этапов.

Синтаксический анализатор осуществляет контроль целостности и корректности введенного запроса на ЕЯ. Дерево, полученное в результате синтаксического анализа (в случае положительного заключения о правильности введенного запроса), используется как источник данных для следующего этапа анализа.

Семантический разбор предложения представляет собой механизм интеллектуального сопоставления результатов предыдущих этапов анализа, представленных в сформированных словарях со справочниками информационной системы. Таким образом, семантический анализатор представляет собой полноценную систему анализа текста, опирающуюся на оригинальную функциональную теорию языка [2].

Выпуск 3

Выпуск 3

Рис. 3. Форма синтаксического анализатора

\ч3б]

Рис. 4. Форма семантического анализатора

Рассмотренный пример иллюстрирует процесс преобразования запроса пользователя на ЕЯ в запрос на языке 1CQ. При этом надо последовательно выполнить этапы лексического, синтаксического, семантического анализа и генерации запроса на языке 1CQ.

Следует отметить, что предлагаемый подход к построению семантического анализатора использует идеи В. А. Тузова и, развивая их, предлагает адаптацию, в основе которой лежит использование семантического словаря, формируемого в автоматическом, полуавтоматическом и ручном режимах и пополняемого по мере необходимости. Запрос на ЕЯ в итоге представляется в виде суперпозиции семантических функций исходя из того, что «адекватная грамматика приписывает каждому предложению структурное описание в виде суперпозиции функций» [2; 3].

В отличие от многих разработчиков семантических анализаторов [2], работы которых в области лингвистики ЕЯ, включая и русский язык, основаны на построении полных семантических словарей, в предлагаемом подходе достаточно построить ограниченный семантический словарь в силу того, что термины и объекты предметной области ограничены проблемно-ориентированным подмножеством ЕЯ. Эти термины и объекты предметной области загружаются из метаданных БД (ХД) или осознанно генерируются ОТ.

За синтаксическую и морфологическую обработку запросов на ЕЯ отвечают соответствующие модули лингвистического процессора, идеи функционирования которых частично позаимствованы у И. А. Волковой [5] и адаптированы для работы с объектами заданной предметной области.

Нетривиальной представляется задача семантического разбора запросов на ЕЯ с выборкой данных из таблиц со сложными связями (один ко многим, многие ко многим).

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

В соответствии с алгоритмом функционирования анализатора, при котором игнорируется лексема «всех», получаем синтаксическое дерево. Для выбранной предметной области часто корневой вершиной дерева будет являться семантическая единица, указывающая на то, что требуется что-либо выбрать (отобрать, отобразить, вывести, показать и т. п.).

Семантическая единица «выбрать» описана в семантическом словаре (рис. 5).

иправочник Словарь основной

_ П X

Действия т ^ ^ Щ Шй Ух о ?

Код Наименование т -

— 1 Выбрать

- 2 Справочник Должности. Наименование КАК Должность

- 3 Справочник КлассыСудов. Наименование КАК КлассСудна гп

- 5 Справочник Маршруты. Наименование КАК Маршрут LJ

- 6 СправочникСуда.Наименование КАК Судно

- 7 СправочникТерминалы.Наименование КАК Терминал

- 4 Справочник Шлюзы. Наименование КАК Шлюз

Рис. 5. Основной семантический словарь

В результате определяются действия для вершин потомков. В примере рассматриваемого запроса присутствует лексема «судов» (рис. 6), которой соответствует одна вершина построенного синтаксического дерева. Выделяем грамматическую основу этой лексемы — «судно».

Первый проход синтаксического анализатора осуществляет поиск указанной грамматической основы «судно» в названиях таблиц и их полей в БД. В результате поиска будет найдена таблица судов. Реляция «Судно» состоит из следующих полей: код, наименование и класс. У вершины «судов» есть дочерние вершины, которые характеризуют уточнение запроса, а именно фильтрацию запрашиваемых данных по типу судна и времени.

Выпуск 3

Выпуск 3

Рис. б. Лексема «судно»

Для анализа запроса на ЕЯ и генерации текста запроса на языке 1CQ система составляет временный список объектов основного глагола действия запроса (лексема «показать»). В данном случае это лексемы: «судов» и «время». Далее перебираются все таблицы в поисках одновременного вхождения объектов «время» и «судно» и их синонимов. Каждый из внешних ключей в таблицах подвергается особой обработке анализатора. Последний раскрывает поиск сущности, пробегая по описанию таблицы, на которую эти внешние ключи ссылаются. Например, в таблице регистра шлюзования нет судов как таковых, но так как это внешний ключ к таблице судов, то это обнаружит анализатор. Результатом этого явится выбор полей и записей, удовлетворяющих запросу. Более того, перебрав все таблицы, система установит, что этот вариант является единственно возможным, и не будет применять дополнительную семантическую обработку результата.

Лексема «задержки» в соответствии со своей семантикой и построенным синтаксическим деревом (рис. 7) определяется как разность между ожидаемым и достигнутым результатом. Эта разность вычисляется конструкцией запроса, сформированной следующим образом:

МИНУТА(ШлюзованиеСудовСрезПоследних.Период)-

МИНУТА(РасписаниеПассажирскихСудов.Время) КАК Задержка

Так как особых условий размерности величины задержки в запросе явным образом указано не было, анализатор определит ее в минутах при помощи встроенной функции «МИНУТА()», что является значением по умолчанию.

Затем анализатор объединяет лексемы «средние» и «время» на «среднее время», а также «время» и «задержки» на «время задержки» в связи с совпадением семантики подчинения данного набора лексем со словарной семантикой сущности. Завершающим этапом работы анализатора является добавление условия выборки «за июль 2011 г.». Здесь проблемы не возникает, поскольку система просто заменяет фразу следующей группой условий:

ГДЕ

Шлюзование .Период МЕЖДУ &НачПериода И & КонПериода

Символ «&» означает необходимость обработки параметрических, а не словарных данных. Универсальные параметры «НачПериода» и «КонПериода» устанавливаются анализатором в значения «01.07.2011 00:00:00» и «01.08.2011 00:00:00» соответственно.

Сложность для анализа представляет определение того, к чему, собственно, указанная дата относится. Так как в синтаксическом дереве дата относится к судам, а в реляции «Суда» поля даты нет, то система начинает просматривать связанные таблицы, имеющие ключевое поле типа «Дата». В результате, поднимаясь по иерархическому дереву подчиненности таблиц, связь с реляцией «Шлюзование», в которой есть дата. Именно с этой датой начинает работать система, так как дальнейший анализ больше никаких дат не выявил. Однако до конца проблема связи таблиц при построении запросов еще не решена.

Рис. 7. Схема синтаксического дерева

На заключительном этапе работы механизма синтаксический анализатор транслирует введенный запрос на ЕЯ в язык 1CQ:

ВЫБРАТЬ

ШлюзованиеСудовСрезПоследних.Судно КАК Судно, МИНУТА(ШлюзованиеСудовСрезПоследних.Период)-МИНУТА(РасписаниеПассажирскихСудов.Время) КАК Задержка ИЗ

РегистрСведений.ШлюзованиеСудов.СрезПоследних КАК ШлюзованиеСудовСрезПоследних,

РегистрСведений.РасписаниеПассажирскихСудов КАК РасписаниеПассажирскихСудов ГДЕ

РасписаниеПассажирскихСудов.Судно = ШлюзованиеСудовСрезПоследних.Судно И Шлюзование.Период МЕЖДУ &НачПериода И & КонПериода

Ввиду отсутствия дополнительных условий и альтернативных вариантов запроса сформированный текст запроса на языке 1Q является окончательным и отправляется на исполнение серверу управления базами данных.

Если целевая платформа механизма отлична от 1С: Предприятие 8, то существует возможность преобразования запроса на языке 1CQ в запрос SQL. В этом случае аналогом последнему запросу, то есть результатом его конвертирования, явится следующий запрос на языке SQL: SELECT

TableLockage.Ship AS Ship,

MINUTE(TableLockage.Time) - MINUTE(TableScheulle.Time)AS Delay

TableLockage,

TableScheulle

WHERE

TableScheulle.Ship = TableLockage.Ship

AND TableLockage.Time BETWEEN &BTime AND &ETime

Выпуск 3

Выпуск 3

В заключение следует отметить, что в рамках поставленной задачи, предложены механизмы сематического анализа предложений на ЕЯ, результаты которого позволяют реализовать интеллектуальный доступ к реляционным данным, а реализованный интерфейс позволяет существенно сократить и упростить процесс формирования отчетов.

Список литературы

1. Дейт К. Дж. Введение в системы баз данных = An Introduction to Database Systems / К. Дж. Дейт. — 7-е изд. — М.: Вильямс, 2001.

2. Тузов В. А. Компьютерная семантика русского языка / В. А. Тузов. — СПб.: СПбГУ, 2003. — 392 с.

3. Хомский Н. А. Аспекты теории синтаксиса / Н. А. Хомский. — М., 1972. — 259 с.

4. Мельчук И. А. Опыт теории лингвистических моделей «смысл-текст» / И. А. Мельчук. — М.: Школа «Языки русской культуры», 1999. — 346 с.

5. Волкова И. А. Введение в компьютерную лингвистику. Практические аспекты создания лингвистических процессоров / И. А. Волкова. — М.: МГУ, 2006. — 43 с.

УДК 62.50 Г. Е. Барщевский,

аспирант, СПГУВК

ИСПОЛЬЗОВАНИЕ МЕТОДА СЛУЧАЙНОГО БАЛАНСА В ЗАДАЧАХ ОТСЕИВАЮЩЕГО ЭКСПЕРИМЕНТА ДЛЯ СУДОВЫХ АВТОМАТИЗИРОВАННЫХ СИСТЕМ USE OF ACCIDENTAL BALANCE PROBLEMS IN SHIP SCREENING EXPERIMENTS FOR AUTOMATED SYSTEMS

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

The article discusses the use of the method of random balance to determine the parameters, the deviation which has the most significant impact on the value of automatic quality control system traffic dynamically supported.

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

Key words: balance sheet, an automated system, the dynamic principles of maintenance.

140 -------------------------------------------------------------------------------------

ПРИ рассмотрении продольного или бокового движения судов с динамическими принципами поддержания (СДПП) число параметров, значения которых по тем или иным причинам могут отличаться от расчетных, как правило, бывает достаточно велико — порядка двадцати. Естественно, что отклонение от расчетных значений различных параметров не в