Смекни!
smekni.com

Изобретание, проектирование, разработка и сопровождение) Том Интеллектуальные системы (Системы решения проблем)  Альберт Александрович Красилов (стр. 29 из 85)

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

Наконец, для пользователя может оказаться необходимым содержательное определение понятий для справки о понятии. Язык Лейбниц предусматривает использование комментариев для передачи в память Интеллсист содержательного определения. Здесь в качестве языка определений используется ЕЯ так, чтобы текст был понятен пользователю. При этом текст определения на ЕЯ не перерабатывается системой в знания, но использоваться только для справки.

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

6.5.2. Некоторая языковая атрибутика определений. Каждое определение содержит операцию сопоставления термина понятия и его определения. В различных языках операция сопоставления обозначается различным образом. Некоторые изображения операций сопоставления рассматриваются здесь. При этом будут продемонстрированы большинство языков определений понятий.

Некоторые сорта определений обозначают операцию сопоставления терминами «- это» или «- это есть» (они являются синонимами равенства). По тексту применена операция «- это» неоднократно. К месту будет привести пример перечислительного определения. Операция сопоставления понятия и его определения - это слово «это», последовательности символов и знаки «::=», «:», «=», «:=» и др. Знаки «::=» используются в нотации Бэкуса-Наура, «:» - в определении термина, «=» - в определении нового типа данных, «:=» - в определении конкретного значения величины, отмеченного термином слава от знака присваивания. Для формулировки определения используется также слово «есть». Трудно указать области применения слов «есть» или «это». Первое применяется для указания «одно и то же», а второе - для указания чаще всего перечисления. Вообще-то они применяются примерно в одинаковых условиях.

В свое время в нотации Бэкуса-Наура использовалось обозначение операции сопоставления знаками «::=», которые интерпретируются как «равно по определению». Эта операция используется при построении формальных порождающих грамматик, при определении метапеременной [Хомский68]. Пожалуй, впервые нотация была использована для формального описания языка программирования Алгол-60. Например, определение понятия «идентификатор» в порождающей грамматике задается формально в нотации Бэкуса-Наура следующим образом:

<идентификатор> ::= <буква> | <идентификатор> <буква> |

<идентификатор> <цифра>

Только что рассмотрен фрагмент ФЯ определения контекстно-свободной грамматики, который использует символы двух двоеточий и равенства в качестве операции сопоставления. Символ «:» являет еще примером представления операции сопоставления термина понятия и его определения. Этот же фрагмент на ФЯ Марков имеет вид:

идентификатор: буква ; идентификатор , буква ; идентификатор , цифра.

Символ «=» (равенство) используется при формульных определениях фактов. В качестве примера можно указать на записи типа Х = 0, аксиоматические определения, на определения по аналогии в синонимии Х = А (равенство говорит о том, что его левая и правая части обозначают одно и то же, несмотря на различия в их представлениях).

И последний пример обозначения операции сопоставления. Знаками «:=» обозначается алгоритмическая операция присваивания, которая по своему существу определяет способ получения значения для переменной, помещаемой в левой части присваивания. В языках программирования иногда вводится аналогичная операция с символьным обозначением «=:» (обратное присваивание). В языках программирования отсутствует операция обоюдного сопоставления, которую можно обозначить знаками «=:=» или «:=:». Рассмотрим пример. Пусть по содержанию алгоритма требуется поменять местами значения двух переменных Х и У. В известных обозначениях обмен значениями записывается последовательностью операций присваивания: Р := Х; Х := У; У := Р; Сокращенной будет запись: Х :=: У, которая отражает такие же, как только что приведенные, действия.

Так представляются некоторые простые операции сопоставления термина понятия и его определения. Среди операций соединения суждений, из которых состоит определение понятия, обычно используются логические операции, их эквиваленты, обозначенные словами ЕЯ и специальными знаками, также являющиеся эквивалентами логических операций. Например, выше был приведен образец, в котором использовался знак «|» для обозначения операции «или», знак «;» для обозначения операции «и». Аксиоматические определения чаще не используют операции сопоставления в явном виде, хотя сама операция сопоставления является уже логической операцией. Следовательно, определение с операцией сопоставления является аксиоматическим определением, если его рассматривать как формальное определение.

Ясно, что здесь приведены только примеры обозначений операций для формирования определений. Исследователю предстоит тщательная сборка всех имеющихся обозначений, их классификация и интерпретация для формализации определений при машинном анализе и применении самих определений. Можно сказать, что необходимо сформировать ЯПП с именем «язык определений», с помощью которого может изучаться теория определений на ВМ. Автоматизация процессов анализа определений и формирования новых определений составляет одну из сущностей концептуальной информатики.

6.5.3. Предикатные определения. Интенсиональные определения формализуются следующим образом. Прежде заметим, что определение описывает свойства объекта, которые могут квалифицироваться количественно или качественно. Если определяемая вещь квалифицируется количественно, то в таком случае можно построить некоторое отношение для представления вопроса: «обладает или нет данная вещь требуемым количеством?». Вопрос необходим для распознавания или квалификации вещи. Если определяемая вещь квалифицируется качественно, то в таком случае можно построить вопрос: «имеется ли в данной вещи требуемое качество?». Так или иначе, сформулирован аппарат для разделения вещей на два сорта: вещи, относящиеся и не относящиеся к определяемому понятию. Та или иная формулировка может быть представлена формально предикатом. Так можно построить классификатор вещей на базе предиката. Пусть классификатор вещей представлен предикатом Р, тогда вещь с именем Х классифицируется ответами на вопрос Р(Х) = истина? Вместо такой формы вопроса можно писать эквивалентную форму Р(Х). Теперь можно построить формальное определение понятия следующим образом:

имя = {Х: Тип; Р(Х)},

где имя - термин определяемого понятия (множества), Х - имя конкретной вещи (элемента множества), Тип - полный набор значений объекта, Р - предикат-классификатор. Тип - это также некоторое понятие общего вида (в соответствии с классическим подходом к понятию определения). Эта конструкция задает только общую форму определения. Вообще же большинство определений имеет более сложную форму. Усложнение формы наступает при использовании логических операций. Допустим, что объект обладает многими свойствами Р1, Р2,..., Рк одновременно. Тогда определение таких объектов формально будет представлено так:

имя множества = {Х: Тип; Р1(Х) & Р2(Х) & ... & Рк(Х)}.

Допустим, что объекты обладают этими же свойствами, но альтернативно. Тогда определение формально представляется в виде:

имя множества = {Х: Тип; Р1(Х) &bsol;/ Р2(Х) &bsol;/...&bsol;/ Рк(Х)}.

Более сложные определения имеют логические комбинации заданных свойств, тогда логическое выражение из предикатов будет иметь и более сложную структуру. Система операций & и &bsol;/ не полна. Ее необходимо дополнить операцией отрицания not. Действительно, некоторые определения могут быть сформулированы «от противного». Именно, некоторая вещь относится к понятию, если она не обладает свойством Р. Это можно выразить в виде:

имя = {Х: Тип; not Р(Х)}.

Теперь система операций &, &bsol;/ и not будет полной, можно строить любые определения. Заметим, что сам предикат может выражаться некоторой логической формулой с кванторами. Это обстоятельство надо учитывать при формальном определении некоторого понятия.

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