Язык DECL

1. Основные компоненты языка DECL

1.1. Обычные константы:

Это последовательность букв и цифр. Они не могут начинаться с цифры, буквы X (с X начинаются переменные) и иметь внутри пробелы. Примеры констант: ИВАН1, А21, АА_ _, _125. (Не правильные буквосочетания - XX_1, 23_BB, 2G4A). При этом константы, записанные большими и маленькими буквами, считаются различными, например, ИВАН и Иван - это различные константы.

1.2. Строковые константы:

Любые символы в кавычках. Например: "Введите текст +>", "Нажмите ENTER". Внутри не может быть других кавычек.

1.3. Числа:

Целые числа: положительные и отрицательные, например, 125, -33. Дробные числа: 0.25, 12.44.

1.4. Знаки арифметических операций:

+ (сложить), * (умножить), - (вычитание), DIV (деление), < (больше), <= (больше или равно), = (равно), # (неравенство).

1.5 Внутрисистемные коды N+ N-:

1+ - создается новая вершина без имени;

1- - вершина без имени используется.

Внутрисистемные коды соответствуют определенным вершинам без мнемонических обозначений. Причем, кодов 1- может быть множество. Они соответствуют одной и той же вершине РСС. Но если опять встретится код 1+, то заводится новая вершина и последующие 1- подсоединяются к ней.

В качестве внутрисистемного кода может быть использовано любое целое число (не более 300) с знаками + и -, например, 125+, 125-,..., 125-. Такие коды сопоставляются безымянным объектам, которые постоянно порождаются и используются в БЗ.

1.6. Переменные:

X<целое число="">, например, X1, X25,... Они соответствуют х-вершинам РСС.

1.7. Символ пустого места "_" (нижняя черточка):

Он соответствует объекту, который не играет роли, и ставится на аргументных местах, которые не участвуют в обработке.

Пример: БРАТ(ИВАН1,_) - неважно, кто брат для ИВАН1. Если на месте "_" поставить X1, то это значит, что нужно искать брата.

1.8. Элементарные фрагменты (ЭФ) или просто фрагменты:

Это именованные предикаты, которые имеют вид:

<имя отношения="">(<арг>,<арг2>,...,<аргn>/<код фрагмента="">),

где <арг1>,<арг2>,...,<аргn> - аргументные места, на которых могут стоять константы или переменные. Они соответствуют объектам предметной области. Код фрагмента соответствует комплексному объекту, т.е. упомянутым объектам вместе с их отношением, которые рассматриваются как единое целое. Код фрагмента может отсутствовать. Тогда ЭФ примет более простой вид:

<имя отношения="">(<арг1>,<арг2>,...,<аргn>).

Внутри ЭФ не должно быть пробелов.

1.9. Расширенная семантическая сеть:

(РСС) или просто семантическая сеть - это множество ЭФ, разделенных пробелами (внутри ЭФ их не должно быть).

Пример 1.1. "Иван умный и способный" представляется с помощью РСС:

ИМЯ(ИВАН,1+) УМНЫЙ(1-) СПОСОБНЫЙ(1-),

где 1+ и 1- соответствуют одному и тому же человеку.

Пример 1.2. ИВАН1 связан с ИВАН2 (но это не играет роли) представляется с помощью РСС: _(ИВАН1,ИВАН2), где на месте отношения стоит символ пустого места.

Пример 1.3. Для представления арифметических выражений используется бэкусовская нормальная форма. Равенство 25+X1+3=X2 представляется в виде +(25,X1,X4) +(X4,3,X2).

Другое равенство 2*X1+34=88 представляется в виде: *(2,X1,X2) +(X2,34,88), где X2 сопоставляется результату 2*X1.

Предыдущий раздел|Следующий раздел

- Главная страница -