
- •Введение
- •1. Концептуальные графы
- •1.1. Обобщенная структура кг
- •1.3. Описание референтов
- •1.4. Контексты
- •1.5. Представление баз знаний
- •1.6. Синтаксическая модель cgif
- •Синтаксис cgif
- •2. Применение аппарата кг в рамках методологии «общей логики» (common logic)
- •3. Инструментальные средства поддержки аппарата кг
- •Сравнительная характеристика программного инструментария кг
- •Заключение
- •Список рекомендуемой литературы
- •Использование аппарата концептуальных графов в задачах представления и обработки знаний
- •197376, С.-Петербург, ул. Проф. Попова, 5
1.6. Синтаксическая модель cgif
Для формального описания основных элементов синтаксиса CGIF далее будет использоваться расширенная форма нотации Бэкуса–Наура (РБНФ), традиционно используемая в качестве средства представления синтаксических конструкций формальных языковых систем. При этом будет принята описываемая далее система обозначений.
В применяемой РБНФ служебными (нетерминальными) считаются следующие символы: прямые кавычки («"»), пробел (для явного указания на пробел далее будет использоваться при необходимости обозначение «пробел»), вертикальная черта («|»), запятая, круглые и фигурные скобки (открывающие и закрывающие), вопросительный знак («?») и астериск («*»).
В прямые кавычки при записи формул заключаются так называемые терминальные символы (т. е. символы языка, который описывается с использованием РБНФ). Если внутри терминального символа требуется указать прямые кавычки, то они заменяются на строку «" \" "». Идентификатором является строка, состоящая только из букв, цифр и знаков подчеркивания и начинающаяся с буквы. Строка, являющаяся либо идентификатором, либо терминальным символом, в настоящем контексте будет называться обозначением РБНФ. Далее для указания на синтаксические и лексические категории РБНФ и CGIF (т. е. на нетерминальные символы) будет использоваться расширенное представление идентификаторов, в котором допускается заключение идентификатора в парные кавычки («…») и вставка пробелов в строку идентификатора. При этом синтаксические категории будут также выделяться курсивом.
Каждая законченная «формула» РБНФ содержит 3 элемента:
- «категорию» (идентификатор описываемого понятия – синтаксической категории) – левая часть формулы;
- «выражение» (непустая последовательность логически завершенных элементов описания – термов, которые могут разделяться непустыми последовательностями пробелов, интерпретирующимися как операция конкатенации, или символом «|» внутри произвольной последовательности пробелов, обозначающим логическую связку «ИЛИ», т. е. выбор альтернативы) – правая часть формулы;
- «символ определения» (строка «::=») – разделитель левой и правой частей в середине формулы.
Соответственно, справедлива следующая формула РБНФ:
«формула» ::= «категория» «символ определения» «выражение»
При образовании формул в РБНФ могут использоваться скобочные конструкции. Круглые скобки (открывающая – «(» и закрывающая – «)») указывают на то, что внутри них находится выражение, т. е. непустое множество термов, отделяемых друг от друга специальным символом – «|» (обозначающим логическую связку «ИЛИ»). После закрытия круглых скобок в формуле могут употребляться специальные символы повторителей: «*» (повторение 0 или более раз) и «?» (повторение 0 или один раз). Эти символы позволяют указать, сколько повторений приведенного в скобках выражения допускается в данной позиции. В фигурные скобки («{» и «}») заключаются неупорядоченные множества выражений, разделяемых специальным символом «,».
С учетом всех введенных ранее определений и обозначений основные термины РБНФ могут быть формально описаны следующим образом (терминальные символы будут выделяться жирным шрифтом).
Выражение:
«выражение» ::= «терм»
(( «пробел» | «пробел»? "|"«пробел»?) «терм» )*
Терм:
«терм» ::= («обозначение РБНФ» | «множество» |
"(" | «выражение» ")" ) ( "*" | "?" ) ?
Множество:
«множество» ::= "{" «выражение» ("," «выражение»)* "}"
С использованием приведенной спецификации РБНФ может быть описан и формальный синтаксис CGIF. При этом будет использоваться ряд предопределенных лексических категорий, к числу которых относятся:
- «Идентификатор» (определение было дано ранее);
- «Комментарий» (строка, заключенная между символами «;»; в последних модификациях CGIF допускаются многострочные комментарии, заключенные между символами «/*» и «*/»);
- «Имя» (идентификатор или строка в апострофах);
- «Число» (традиционная запись целого или вещественного числа, в том числе в экспоненциальной форме);
- «Беззнаковое целое»;
- «Текст» (строка, заключенная в прямые кавычки).