Кроме этого к лексикону примыкают словарь из слов и набор таблиц с лексемами. Словарь из слов также представляется графом «и-или» с содержимым в веточке - номером слова. Представление в таблицах является общепринятым в программировании.
Знания в памяти Интеллсист представляются также исходными и закодированными текстами БЗ и запросов. Сюда относятся анкеты и шаблоны как заготовки запросов. Имеются еще файлы, в которых хранятся промежуточные представления БЗ в кодах, вырабатываемых программами сохранения и восстановления БЗ.
Заключительные замечания. Некоторые представления знаний или их частей подробно рассматриваются в томе 4. Так или иначе, все сведения хранятся в файлах, которые могут помещаться в библиотеку.
4.6. Представления программ и смысла алгоритмов
Источниками программ являются разработки программистов или самой Интеллсист после синтеза программ. Отторгаемые от разработчиков программы или подпрограммы образуют библиотеку. Программы обычно представляются в кодах или на языках программирования различных уровней и назначения. Исходными данными для построения программ являются либо технические задания (для программистов), либо результат работы Интеллсист - решение логического уравнения.
Почти каждая программа включает вызовы подпрограмм. Можно условно считать, что любой элемент программы (элементарная программная конструкция) является вызовом подпрограммы. Эту структуру программы можно легко распространить на любую запись ФЯ программирования. Не обязательно вызов подпрограммы имеет конструкцию из наименования подпрограммы и параметров, перечисленных в скобках. Оператор перехода перейти к M можно считать вызовом подпрограммы поиска метки M и на продолжение выбора команд по месту с этой меткой. Эта интерпретация операторов программы напоминает программируемый микропроцессор [Браун77, Брусницов79, Фридмен86].
Конечный смысл алгоритма выражается тем, что он выполнился или нет. Условимся считать, что подпрограмма (реализация алгоритма) имеет значение истина, если она выполнилась, и ложь в противном случае. До выполнения подпрограммы о значении ее ничего сказать нельзя. Алгоритм - это ветвящийся граф из подпрограмм, следовательно, смысл алгоритма зависит от значений многих условий ветвления и многих выполняемых вызовов подпрограмм.
Возникают вопросы следующего содержания. Откуда берутся цикла в СП? Они генерируются по кванторам «для» и «найти». Откуда берутся условные ветвления в СП? Они происходят и генерируются по всем итоговым фактам и альтернативам совместных фактов. Откуда берутся исходные данные для счета по СП? Они заготавливаются заранее самим пользователем в файле или в БД. СП последовательно выбирает их и вводит для счета. Вот краткие ответы на вопросы. Подробности для основного пользователя не нужны. Программист может почерпнуть дополнительные сведения из руководства по СП, которое автоматически формируется после синтеза программы.
Итак, программы представляются, в конечном счете, последовательностями вызовов подпрограмм, а смысл алгоритма определяется по результатам выполнения подпрограмм с учетом выполнения условий ветвления управления в программе или алгоритме.
4.7. О словарях баз знаний
Каждый термин состоит из последовательности слов и знаков. В связи с таким толкованием термина имеет смысл говорить о словарях знаков и слов, на которые ссылаются веточки БЗ, лексикон и некоторые таблицы.
Среди словарей имеются стандартные словари. Начальные или встроенные знания опираются на стандартные слова или знаки (вообще встроенные термины), для которых имеются стандартные словари и таблицы. Они используются при генерации Интеллсист. По большей части стандартные словари составляются вручную. После ввода их при инициализации программ Интеллсист работают подпрограммы, которые автоматически переводят ручные словари и таблицы в стандартное представление машинных словарей и таблиц.
Все словари при работе Интеллсист пополняются автоматически. Можно говорить о пополнении из БЗ, запроса, шаблона, ответов на вопросы системы и т.п. Важно отметить, что все словари обладают свойством интегральности. По мере ввода знаний появляются новые объекты для помещения их в словари. Интегральное свойство словарей влечет за собой работы по сохранению их промежуточных состояний, по восстановлению в требуемый момент времени, по «замусориванию» словарей «шумовыми словами» с необходимой чисткой и по контролю над расходом памяти ВМ.
Словари могут пополняться подразумеваемыми и скрытыми от пользователя терминами, которые формируются системой в процессе логического вывода или синтеза программы. Эти термины выражаются словом из букв и цифр, они едва ли представляют интерес для пользователя, поскольку имеют какие-то промежуточные или рабочие величины, смысл которых не важен. Конечно, можно, в конце концов, добраться до их значений и использовать для отладки знаний. Но процедура анализа скрытого термина так же сложна, как и анализ содержимого регистров процессора ВМ.
Поскольку вся совокупность словарей не представляет интереса в данный момент или «исторически», здесь не приводится их перечень. Однако можно сделать подборку словарей по всему тексту Информатики, так как они обязательно упоминаются в местах, где рассказывается о работе с ними. Основными словарями являются словари из слов и терминологические словари. Доступ к словарям реализуется в инструментарии через раздел «Сервис».
Глава 5. Теория определений
Введение
Определение понятия, представленного термином, включает набор предложений ЕЯ для передачи его смысла человеку, желающему ознакомиться со знаниями данной области. Интеллсист использует определение понятия только информационно. Оно может отсутствовать. Если определение будет использовано Интеллсист, то оно должно быть написано на ЯПП, а для человека оно пишется на ЕЯ (в нем используются неопределенные слова, знаки и термины).
Процесс описания понятия - это введение его имени (или термина) и характеристик. Стандартные и нестандартные понятия (из предметной и проблемной области) вводятся создателями Интеллсист, знаниеведом и специалистами на этапах создания встроенной или пользовательской БЗ. Новые понятия для переменной части лексикона вводятся пользователем в процессе формулировки запроса или ответа на вопросы Интеллсист.
Основы теории определения. Как и положено, при построении теории необходимо ориентироваться на математику, а точнее на исчисление. Любая теория строится на основе исчисления. Концептуальная информатика не составляет исключения в таком вопросе. Действительно, при анализе понятий и их определений рассматривается цепь:
естественный язык -> язык профессиональной прозы ->
формальный язык логических формул -> язык исчисления
Эта цепь ориентирована на преобразование абзацев из фраз ЕЯ в логические формулы - прикладные аксиомы, как элементы знания. Таков путь к абстракции определений. Человек вынужден «транслировать» записи на ЕЯ в записи на ЯПП. Транслятор преобразует записи на ЯПП в записи на ФЯ Лейбниц автоматически. Оставшиеся части данного процесса реализуются также автоматически. С помощью средств ФЯ формируется язык исчисления, который определяется тройкой:
<язык правильно построенных логических формул,
логические формулы - прикладные аксиомы,
правила вывода определений>
Язык правильно построенных логических формул - это ФЯ логических формул (часть языка Лейбниц). Совокупность суждений, составляющих определение, - это прикладные аксиомы. Правила логического вывода определений уже рассмотрены неформально в соответствующем разделе. Исчисление образует основу теории определений. С помощью теории определений можно строить новые определения или производить сверку определений друг с другом. Корректность определений важна для многих дел. Так как определения - это аксиомы, с помощью которых строятся различные суждения, то и точность определений ответственна за правильность суждений. Без корректных определений невозможно построить доказательные суждения. В этом можно усмотреть прагматический смысл теории определений, а исчисление составляет основу теории.
Определение - это совокупность суждений, которые транслируются в логические выражения. Сущность теории определения раскрывается следующим образом. Каждое определение, если оно не представлено формально, представляет собой абзац - набор фраз ЯПП. Каждая фраза состоит из терминов, которые формально классифицируются на операции отношения и операнды (термации и терманды). Совокупность операций отношения и их операнды составляют логическое выражение. Оно определяет некоторое понятие, с одной стороны, и составляет суждение о свойствах этого понятия, с другой стороны. Таким образом, приходим к построению логического отношения следующего типа: определение понятия есть суждения об этом понятии.
Запись этого отношения является записью аксиомы об объектах рассматриваемых предметной и проблемной областей. Это самое важное обстоятельство, на этом формируется базис теории. Теперь можно переходить к построению формальной теории определения на средствах формального логического исчисления. Под аксиомой понимают утверждение, которое не требует доказательства. Именно так можно оценить любое определение. С другой стороны, аксиома - это определение некоторого понятия, как было указано в главе 2.
Для анализа фраз ЯПП используется транслятор этого языка, его лексикон и язык Лейбниц в качестве выходного языка. В результате работы транслятора получаются наборы логических выражений, которые составляют БЗ и лексикон, описывающие предметную и проблемную области. Процесс составления (заполнения) БЗ определениями связан с процессами установления свойств элементов БЗ. Главными свойствами являются непротиворечивость определений друг другу или самонепротиворечивость, независимость данного определения от остальных и полнота совокупности определений в принятом для данного изложения смысле. В процессе заполнения БЗ и лексикона могут обнаруживаться и другие свойства определений.