Окончание. Начало см. PC Week/RE, № 14, с. 52.

PC Week: То, что интеллектуальные систему умеют “выводить” новые факты, это понятно. А чем они могут помочь сегодняшним разработчикам-программистам?

 

Альберт Красилов: Трудность программирования связана со сложностью процесса построения последовательностей команд. Если этот процесс автоматизировать, то программирование значительно упростится. ИнтелС как раз и призвана реализовать идею автоматизации построения программ.

Альберт Красилов

 

Логически выведя результат, ИнтелС рассматривает его. Если результат состоит из альтернатив совместных элементарных знаний, процесс решения завершается. Если в результате остается формула, то по запросу пользователя либо он печатается, либо строится программа вычисления значений для элементарного знания по исходным данным, задаваемым пользователем. Ввод исходных данных инициирует счет и получение искомого результата в форме альтернатив совместных новых фактов.

 

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

 

PC Week: Что, по-вашему, реально стимулирует развитие интеллектуальных систем?

 

А. К.: Его стимулируют недостатки процедурного программирования и формальных языков, а также то, что знания заказчика программ теряются “по дороге”.

 

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

 

- лингвосемиатические  -  описательные, плохо формализуемые;

 

- семантические  -  языковые, реализуемые через трансляторы формальных языков;

 

- концептуальные  -  понятийные, используемые в системах программирования “вручную”;

 

- фактографические  -  данные из базы, используемые через СУБД;

 

- теоретические, или логические, используемые также “вручную”;

 

- кибернетические  -  технологические, конструкторские или системные);

 

- те, которые учитываются (или не учитываются) в процессах организационного проектирования.

 

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

 

Проблемы неопределенности знаний возникают при отсутствии полного знания (например, на ранних стадиях проектирования). В таком случае пользователь в ответ на запрос может получить “приближенный” результат, но обязательно вместе с условиями (или требованиями ИнтелС по уточнению знаний), при которых результат может уточняться. В отличие от рассуждений в нечетной логике (где точный результат получается одновременно с вероятностью его достоверности), целесообразно использовать многозначные логики, с помощью которых приближенный результат выражается в исходных понятиях, имеющих сформулированную пользователем меру неопределенности (“почти возможно”).

 

Гибкость и универсальность  -  сугубо практические проблемы. Они состоят в динамическом учете конкретных запросов пользователя на быстрое внесение изменений в программы. Смена даже незначительного по объему требования может привести к весьма существенным изменениям традиционной программы. ИнтелС обладает значительно большей гибкостью. Математика является доказательной наукой: если факты обоснованы математически, доверие к ним увеличивается. Именно математическая обоснованность всех понятий и процессов решения проблем послужила причиной внедрения ИнтелС.

 

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

 

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

 

СРОЧНО ТРЕБУЮТСЯ... ЗНАНИЕВЕДЫ

 

PC Week:: Альберт Александрович, любое новое направление требует подготовки и новых специалистов. Кто будет заниматься знаниями и базами знаний? Специалисты по СУБД? Бывшие сотрудники отделов научно-технической информации или патентоведы?

 

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

 

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

 

2. Составляет (возможно, при помощи лингвистов и системных программистов) терминологический словарь  -  лексикон данной предметной и проблемной области. Технология составления словарей может быть следующей:

 

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

 

- просмотр словаря для выделения базы и конца слова, выделения собственных имен, анализа частоты появления слов в текстах;

 

- соединение стандартного словаря ИнтелС и полученного словаря в единый профессиональный словарь для продолжения работы с терминами;

 

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

 

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

 

- изменения в словарях могут потребовать нового прогона знаний для контроля правильности изменений  -  обратная связь необходима для обеспечения надежности передачи ИнтелС знаний.

 

3. Участвует в генерации ИнтелС, помогая системному программисту формулировать требования к способу генерации структур и форм баз знаний и СУБЗ. Знаниевед может и сам выполнить генерацию ИнтелС (если он освоил систему трансляции языка Лейбниц).

 

4. Выполняет (совместно со специалистами или экспертами) работы по обучению ИнтелС. Эта процедура связана с вводом знаний в базу и с формулировкой ответов для системы настройки базы знаний, уточняющих формы представления знаний.

 

5. Занимается тестированием базы знаний, проверкой правильности представления знаний в памяти ИнтелС; верификацией и отладкой знаний, приведением в соответствие внешнего понимания и внутреннего представления знаний в базе; сертификацией знаний и установлением их качества.

 

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

 

7. Ведет документацию по базе знаний и другим атрибутам ИнтелС и инструментария, тем самым обеспечивая документируемость интеллектуального программирования.

 

8. Консультирует специалистов и пользователей ИнтелС или инструментария. Заметим, что консультирование специалистов и экспертов позволяет извлечь дополнительные знания.

 

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

 

PC Week: Вы несколько раз упомянули терминологический словарь. Но ведь такие словари уже есть.

 

А. К.: Есть, но мы говорим немного о другом. В семантической грамматике каждый текст состоит из последовательности терминов. Можно, например, автоматически построить терминологический словарь для текста, состоящего из 1000 и более файлов. Такой метод составления словаря подчиняется законам теории вероятностей  -  каждая область знания имеет свой словарь, который не подчиняется случайным факторам. Терминологические словари существуют уже во многих областях знаний, но они рассчитаны на человека. ИнтелС же требует, кроме “определения для человека”, построить для каждого термина его характеристики. Впрочем, есть и другой вариант  -  ИнтелС автоматически составляет словарь и снабжает каждый термин характеристикой “абстрактный”. В процессе логического вывода термины будут доопределяться более точными свойствами и характеристиками. Правда, этот процесс приведет к появлению большого числа вопросов пользователю или значительного числа вариантов ответов.

 

Терминологический словарь ИнтелС существенно отличается от известных словарей тем, что в них термин определяется одним словом в расчете на свое широкое использование. Конкретная область знаний использует эти термины только в составе других терминов (как часть). Поэтому словарь для ИнтелС должен создаваться знаниеведом автономно. Конечно, при создании терминологического словаря для ИнтелС определения терминов пригодятся (в полном объеме или частично) в качестве справки. Всякий раз, когда возникает вопрос или противоречия в знаниях, пользователь может нажать над термином кнопку F1 и прочитать на экране определение.

 

ИнтелС позволяет отпечатать терминологический словарь при создании твердой копии либо вместе с характеристиками, либо без них. Автоматическое создание словарей в процессе их модификации полезно для подготовки издания словарей, хотя словарь в ИнтелС может оказаться полезнее  -  доступ к термину более оперативен и есть возможность сопоставления терминов или их характеристик.

 

PC Week: Какую конкретную пользу могут получить пользователи информационных систем от интеллектуального программирования?

 

А. К.: Если позволите, я переформулирую Ваш вопрос следующим образом: “какую пользу можно извлечь из семантической грамматики русского языка?”. Сегодня актуально создание информационных систем, содержательно отвечающих на вопросы пользователя и использующих информацию из десятков тысяч файлов. Системы “Гарант”, “Кодекс”, “Консультант-Плюс” и ЮСИС осуществляют поиск информации для ответов по ключевым словам. Среди них наиболее интеллектуальна ЮСИС  -  она использует контексты слов вопроса и ответа. К сожалению, в этих системах не используется семантическая грамматика и понятие смысла исходных текстов и вопросов. Что же получится при использовании понятий “семантическая грамматика”, “смысл”, “термин”? Термин уже имеет смысл (в отличие от слова как части термина). Можно утверждать, что любой текст состоит из последовательности терминов, поэтому он имеет смысл. Полное использование синтаксической грамматики не позволяет определить смысл текста, который написан грамотно. По значениям терминов и терминов-операций можно получать смысл-значение частей текста и всего текста. Воспользуемся этими понятиями.

 

Исходные тексты можно автоматически проанализировать и составить словари фрагментов текста и используемых терминов или их комбинаций. Текст вопроса из терминов и случайных слов также анализируется для поиска фрагментов для ответа. Список фрагментов может быть большим, поэтому каждый ответ снабжается рейтингом. Он вычисляется по набору признаков: использование данных, дат, собственных имен, случайных слов и операций над ними. К примеру, “С какого числа в диапазоне от 20 февраля 1990 г. по 30 марта 1995 г. введен налог на товар ХХХ?” или “Размер налога на прибыль от производства водки”.

 

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

 

 ВОЗМОЖНОСТИ РАЗВИТИЯ

 

PC Week: Когда же интеллектуальные системы выйдут из концептуально-лабораторной стадии и станут доступны пользователям?

 

А. К.: Первая версия инструментария ИнтелС, устраняющего недостатки процедурного программирования, уже умеет решать логические задачи, производить вычисления, выполнять аналитические выкладки с заданными правилами и т. д. Вторая версия инструментария работает со сложными структурами данных  -  таблицами, записями, датами и т. п. Третья версия позволит применять графические методы для работы с рисунками и чертежами, а четвертая поможет автоматически формировать меню и сервисные программы.

 

Важно учитывать развитие ЯПП и применение его в ИнтелС. Здесь пути определены:

 

- допущение принципа умолчания (позволяющего по неполному тексту восстанавливать пропущенные понятия);

 

- допущение доопределения характеристик понятия по контексту (ибо некоторые понятия являются абстрактными);

 

- развитие в ИнтелС понимания здравого смысла (которым человек руководствуется при принятии решений в условиях неполной информации).

 

Также важно формирование выходного текста, т. е. разрешение запроса пользователя. ИнтелС первых версий печатает результат в исходных терминах, но не на ЯПП. Синтез ответа на ЯПП представляет собой проблему соединения синтаксической и семантической грамматики естественного языка. Например ответ “(скорость = 25) = возможна” следует печатать фразой “возможная скорость равна 25”. Эта проблема находится в стадии разрешения.

 

PC Week: Верите ли вы в идеальные базы знаний?

 

А. К.: Экология знаний никогда не может быть идеальной, ибо в базу знаний попадают неопределенные или слабо определенные знания. В той или иной степени неопределенным может быть и запрос. Обычные программы не начнут работать, если в них не заложена вся информация о решении задачи. Здесь приходит на помощь понятие многозначной логики. Некоторые высказывания могут приобретать значения из перечисления “ложь”, “почти ложь”, “возможно”, “почти истина”, “истина”. Развитие инструментария движется, в частности, в направлении учета такой многозначной логики. ИнтелС будет находить решения логических уравнений и достигать истины для логических понятий, которые сами имеют определенную меру истинности (заданную пользователем).

 

Еще одна важная проблема  -  речевое общение с ИнтелС. Конечно, микрофон может использоваться для ввода знаний уже сейчас. Но синтез речи ИнтелС для понимания ее человеком требует еще немалых усилий и изобретательности. Динамик должен произносить любую фразу из любой области знания, пока же имеются технические и программные средства для воспроизведения слов из ограниченного словаря. Предстоит огромная техническая и программистская работа по совершенствованию ИнтелС, но время для этого, как мне кажется, пришло, и можно надеяться на достаточно быстрое появление полноценного инструментария ИнтелС.

 

Пока же можно сконцентрировать усилия на актуальной и достаточно легко разрешимой проблеме сбора знаний и решении проблем экологии знаний (их отладки на непротиворечивость, независимость и полноту). Знания собираются по областям применения и вводятся в ИнтелС. Исходя из числа наук (их более 250), необходимо создать примерно то же число баз знаний, а это кропотливая и длительная работы. Нас лично интересуют, прежде всего, экономические знания, которыми сегодня оперирует комплекс “Галактика”. Использование ИнтелС совместно с комплексом “Галактика”, а затем и вместо него даст возможность оперативно реагировать на субъективизм реального пользователя без дополнительного запроса на программистские работы. Будем надеяться, что инструментарий ИнтелС станет достойной заменой формальных языков программирования типа Паскаль или Си.

 

PC Week: Давайте попробуем подвести итог. Что же будут включать в себя машинные базы знаний и на кого они будут рассчитаны?

 

А. К.: Рынок знаний существует для человека. Книги, газеты и журналы, дискеты и лазерные диски  -  это способы передачи знания. Но публикации, рассчитанные на человека, не могут напрямую восприниматься ИнтелС. Правда, система может перерабатывать такие тексты, но при этом пользователь должен отвечать на ее вопросы. Такой путь хорош для новых областей знаний. Наиболее же подходящий путь для традиционных знаний заключается в использовании готовых баз знаний, которые хранятся в библиотеке.

 

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

 

Что же такое база знаний для компьютера? Прежде всего сюда входит (компьютерный!) терминологический словарь с полными или частичными характеристиками каждого термина. Пометка “компьютерный” означает, что в словаре будут помещены только те термины, которые поддерживают базу знаний для конкретной области (экономика, физика, химия, программирование и т. п.). Пользователь может пополнять базу: либо помещая в нее новые знания, либо через запрос (если дополнительные знания влияют только на данную задачу)  -  оба способа приведут к одинаковым результатам.

 

В базу входят знания (в кодированном виде) из определенной области знания. Ее сохранность должна гарантироваться и контролироваться пользователем (знаниеведом), чтобы обеспечить надежность решения задач. Код базы получается в результате перевода исходных текстов знаний, представленных на языке профессиональной прозы, на внутренний язык Лейбниц и в результате логического вывода вводимых абзацев для отладки и упаковки последовательностей элементарного знания вида <имя термина, значение термина>.

 

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

 

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

 

С Альбертом Красиловым можно связаться по адресу: root@novy-atlant.msk.ru.

 

Версия для печати