- •5. Системы программирования
- •5.1. Введение в системы программирования
- •5.1.1. Основные понятия и определения
- •5.1.2. История и эволюция
- •5.1.2.1. Некоторые важные даты
- •5.1.2.2. Основные этапы в формировании состава систем программирования
- •5.1.2.3. История развития системы программирования компании Borland Inc. На базе языка Pascal
- •5.1.3. Классификация
- •5.1.3.1. Классификация по ориентации на поддержку процессов
- •5.1.3.2. Функциональная классификация
- •5.1.3.3. Классификация по категориям
- •5.1.3.4. Классификация по предоставляемому интерфейсу
- •5.1.4. Проблемы и перспективы развития
- •5.1.5. Рекомендации по литературе
- •5.2. Процесс-ориентированный инструментарий
- •5.2.1. Возникновение и исследование идеи
- •5.2.2. Управление
- •5.2.2.1. Системы управления проектами
- •5.2.2.2. Организационные средства
- •5.2.2.3. Средства оценки качества
- •5.2.3. Анализ требований и проектирование
- •5.2.3.1. Системы на основе структурной методологии
- •5.2.3.2. Системы на основе объектно-ориентированной методологии
- •5.2.4. Программирование (реализация)
- •5.2.4.1. Трансляторы
- •5.2.4.2. Компиляторы
- •5.2.4.3. Системы генерации трансляторов
- •5.2.4.4. Системы анализа корректности программного кода
- •5.2.4.5. Интерпретаторы
- •5.2.4.6. Декомпиляторы
- •5.2.4.7. Усложнители декомпиляции (шифраторы, обфускаторы)
- •5.2.4.8. Системы управления компиляцией и построением программ
- •5.2.5. Тестирование и отладка
- •5.2.5.1. Тестовые мониторы
- •5.2.5.2. Средства отслеживания тестового покрытия
- •5.2.5.3. Средства динамического построения профиля программы
- •5.2.5.4. Системы построения срезов программы
- •5.2.5.5. Отладчики
- •5.2.5.6. Системы отслеживания проблем (ошибок)
- •5.2.6. Ввод в действие
- •5.2.7. Сопровождение
- •5.2.8. Завершение эксплуатации
- •5.3. Универсальный инструментарий
- •5.3.1. Инструменты работы с текстом
- •5.3.1.1. Средства, базирующиеся на регулярных выражениях
- •5.3.1.2. Средства поиска различий
- •5.3.1.3. Средства поиска на основе шаблонов
- •5.3.1.4. Обозреватели и базы данных программ
- •5.3.1.5. Средства обнаружения плагиата
- •5.3.1.6. Текстовые редакторы
- •5.3.1.7. Синтаксически-ориентированные редакторы
- •5.3.1.8. Гипертекстовые средства
- •5.3.2. Системы документирования
- •5.3.3. Системы разработки интерфейсов
- •5.3.4. Системы управления базами данных
- •5.3.5. Системы управления базами знаний и экспертные системы
- •5.3.5.1. Системы искусственного интеллекта
- •5.3.5.2. Механизмы выводов на знаниях
- •5.3.5.3. Неточный вывод на знаниях
- •5.3.6. Электронные библиотеки и инструментарий Интернета
- •5.3.6.1. Парадигма усиления информации
- •5.3.6.2. Профессиональный поиск информации
- •5.3.6.3. Проблемы работы с информационными ресурсами Интернета
- •5.3.6.4. Коллекции информационных ресурсов в Интернете
- •5.3.6.5. Базы данных в Интернете
- •5.3.6.6. Краткая история поисковых средств Интернета
- •5.3.6.7. Искусственный интеллект и задача поиска в Интернете
- •5.4. Инструментарий поддержки процессов некоторых технологических подходов
- •5.4.1. Системы формального преобразования и верификации программ
- •5.4.2. Средства сборочного программирования
- •5.5. Инструментальные системы
- •5.5.1. Инструментальные среды программирования
- •5.5.2. Средства автоматизации разработки программ (case-средства)
- •5.5.3. Интегрированные среды
- •5.5.4. Репозитории проекта
- •5.6. Средства поддержки коллективной разработки
- •5.6.1. Системы разделения файлов
- •5.6.1.1. Система управления версиями файлов
- •5.6.1.2. Система управления пространствами
- •5.6.1.3. Система синхронизации удаленных пространств
- •5.6.2. Системы поддержки работы виртуальных групп
- •5.7. Естественно-языковый интерфейс
- •5.7.1. Диалоговые системы
- •5.7.2. Вопросно-ответные системы
- •5.7.3. Автоматизированные обучающие системы и системы контроля знаний
- •5.7.4. Системы искусственного интеллекта
5.7.2. Вопросно-ответные системы
Суди о человеке больше по его вопросам, чем по его ответам. Ф. Вольтер
Интеллектуальные вопросно-ответные системы предназначены для нахождения ответа на пользовательский вопрос. Системы такого класса, как правило, также основаны на рубриках. Отличие от диалоговых систем в том, что рубрикация представлена в виде дерева. Система ищет в пользовательском вопросе ключевые слова, которые соответствуют высшим рубрикам. Если в вопросе пользователя найдено ключевое слово, которое соответствует высшей рубрике, то эта рубрика становится текущей, и в вопросе ищется ключевое слово, которое соответствует рубрике следующего уровня. И так далее до тех пор, пока система не дойдет до последнего уровня. Если в вопросе пользователя не найдено ни одного ключевого слова высшего уровня, то система может задать уточняющий вопрос или же ответить, что ничего подобного не найдено. Это пример более сложного, дескриптивно-рубрикационного подхода.
Достоинства дескриптивно-рубрикационного подхода в том, что рубрики более четко организованы иерархически, и анализ ответа получается более верным, чем в контекстно-зависимом диалоге, рассмотренном в предыдущем разделе. Однако такой подход имеет те же недостатки, что и в случае диалоговых систем.
5.7.3. Автоматизированные обучающие системы и системы контроля знаний
Плохому учатся и без учителя. Античный афоризм
Автоматизированные обучающие системы предназначены для обучения пользователей какой-либо предметной области с последующей проверкой знаний. Наиболее эффективная форма проверки знаний - общение пользователя с компьютером на естественном языке, поэтому такие системы должны включать блоки анализа естественно-языковых высказываний. Рассмотрим наиболее интересные подходы к реализации семантических анализаторов высказываний в автоматизированных обучающих системах (АОС) [Искусственный 1990].
АОС "Катехизис". Семантический анализатор в системе "Катехизис" был основан на разборе семантической маски ожидаемого высказывания. Здесь маска высказывания задавалась обратной польской записью. Причем, в этой записи сначала были записаны негативные дескрипторы, т. е. те, которые не должны быть найдены в ответе пользователя, а потом позитивные. На введенной пользователем строке высказывания разбиралась одна семантическая маска. Если высказывание в целом не соответствовало маске, то оно считалось неверным в контексте заданного вопроса.
Разработанная в начале 80-х годов XX века "ОН Микро" была одной из первых автоматизированных обучающих систем, имеющих семантический анализатор ответа обучаемого. Она предназначалась для создания автоматизированных обучающих и контролирующих программ по различным дисциплинам и диагностическим тестам. Семантический анализатор основывался на семантической маске (интегральном образе возможных ответов обучаемого). В этой системе форма записи маски была в виде суперпозиции логических функций, аргументами которых являлись одноместные предикаты наличия или отсутствия в строке ответа обучаемого маскируемых дескрипторов. В маске в качестве аргументов записывались не значения предикатов, а сами дескрипторы, а значения предикатов наличия или отсутствия дескрипторов в строке ответа высчитывались непосредственно при разборе логического выражения. Для повышения скорости разбора логического выражения и минимизации оперативной и дисковой памяти форма записи логического выражения была нетрадиционной. Данная форма представляла некоторый синтез приемов записи полной скобочной и польской обратной записи.
Системы учебного назначения "Адонис", "Сценарий", "Hypermethod". Эти системы предназначены для создания мультимедийных обучающих программ. В анализаторе свободно конструируемых ответов применялся эталонный метод и анализ по ключевым словам. Эталонный метод основан на сравнении ответа с заранее подготовленными эталонами. В зависимости от совпадения ответа с одним из эталонов выбирается управляющее воздействие. При анализе по ключевым словам определялось наличие или отсутствие перечисленных в списке дескрипторов в строке ответа. Анализ синонимов в каждой из этих систем реализован посредством оператора "ИЛИ". При анализе ответа пользователя на вопрос, система накладывает на ответ заданную маску и определяет, удовлетворяет ли ответ такой маске или нет. Если ответ удовлетворяет маске, то такой ответ считается верным, и наоборот.
Система автоматической верстки обучающих программных средств "Виртуальный клон". Одна из последних разработок в этой области создана в Тульском политехническом университете. Система предназначена для создания мультимедийных обучающих и контролирующих программ. Кроме визуальных компонентов (меню, списка, выборки и т. д.) в системе существует блок семантического анализа. Автор (учитель) задает семантическую маску путем перечисления дескрипторов (слов), назначения перечисленных дескрипторов в определенные рубрики, присваивание дескрипторам определенных семантических весов и определение связок между дескрипторами. Существует понятие жесткой и мягкой связи между дескрипторами. Жесткая связь определяет, что между дескрипторами, следующими в высказывании в определенном порядке, не должно существовать других слов. Мягкая связь определяет то, что дескрипторы должны находиться один после другого, независимо от того, есть ли между ними какие-либо другие слова или нет. Порядок анализа следующий: система берет первый дескриптор с наибольшим семантическим весом из наиболее важной рубрики, которую определяет преподаватель. Отыскивает этот дескриптор в строке ответа, смотрит, существует ли жесткая или мягкая связь с другими дескрипторами, и ищет дескриптор, который находится в связи с этим. И так до тех пор, пока не будет найден дескриптор, который не имеет семантической связи. В этом случае берется дескриптор наиболее значимый по семантическому весу, в наиболее значимой рубрике. Результат определяется по суммарному семантическому весу найденных дескрипторов.
