- •Введение
- •1. Концептуальные графы
- •1.1. Обобщенная структура кг
- •1.3. Описание референтов
- •1.4. Контексты
- •1.5. Представление баз знаний
- •1.6. Синтаксическая модель cgif
- •Синтаксис cgif
- •2. Применение аппарата кг в рамках методологии «общей логики» (common logic)
- •3. Инструментальные средства поддержки аппарата кг
- •Сравнительная характеристика программного инструментария кг
- •Заключение
- •Список рекомендуемой литературы
- •Использование аппарата концептуальных графов в задачах представления и обработки знаний
- •197376, С.-Петербург, ул. Проф. Попова, 5
Синтаксис cgif
Далее в виде формул РБНФ описываются с соответствующими комментариями синтаксические категории CGIF.
1. Концептуальный граф («КГ»)
«КГ» ::= («Концепт» | «Отношение» | «Актор» |
«Специальный контекст» | «Комментарий»)*
2. Концепт («Концепт»)
«Концепт» ::= "[" «Тип»(1)? {«Кореферентные связи»?, «Референт»?} «Комментарий»? "]"
Примечание: Здесь и далее предложения вида «Категория»(Х), где Х задается либо идентификатором, либо числовой константой, будут указывать на параметризованные синтаксические категории. Во всех подобных случаях параметром считается валентность отношения (см. 1.1) или λ-выражения (см. 1.2), определяющего тип (т. е. размерность сигнатуры типа). Так, в приведенной выше формуле лексема «Тип»(1) обозначает определение типа с размерностью сигнатуры, равной единице.
3. Тип («Тип»)
«Тип»(N) ::= «Метка типа»(N) | «Выражение типа»(N)
«Метка типа»(N) ::= «Идентификатор»
«Выражение типа»(N) ::= «λ-выражение»(N) |
"(" «Дизъюнкция типов»(N) ")"
«Дизъюнкция типов»(N) ::= «Конъюнкция типов»(N)
( "|" «Конъюнкция типов»)*
«Конъюнкция типов»(N) ::= «Терм типа»(N) ("&"
«Терм типа»(N))*
«Терм типа»(N) ::= "~"? «Тип»(N)
«λ-выражение»(N) ::= "(" "lambda" «Сигнатура»(N) «КГ» ")"
«Сигнатура»(N) ::= "(" («Формальный параметр»
(","«Формальный параметр»)*)? ")"
«Формальный параметр» ::= «Тип»(1) («Определяющая метка»)?
«Определяющая метка» ::= "*"«Идентификатор»
4. Кореферентные связи («Кореферентные связи»)
«Кореферентная связь» ::= «Определяющая метка» |
«Связанная метка»*
«Связанная метка» :: = "?"«Идентификатор»
5. Референт («Референт»)
«Референт» ::= ":" {«Обозначение»?, «Дескриптор»?}
«Обозначение» ::= «Литерал» | «Локатор» | «Квантификатор»
«Литерал» ::= «Число» | «Текст»
«Локатор» ::= «Имя» | «Индивидуальный маркер» | «Индекс»
«Индивидуальный маркер» ::= "#" «Беззнаковое целое»
«Индекс» ::= "#" «Идентификатор»?
«Квантификатор» ::= "@" («Беззнаковое целое» |
«Идентификатор» ("{" «Дуга»* "}")?)
«Дуга» ::= «Концепт» | «Связанная метка»
Примечание: Как отмечалось в 1.3, в различных версиях допускаются некоторые отклонения от синтаксических формул, приведенных выше для категорий «Обозначение» и «Квантификатор».
«Дескриптор» ::= «Структура» | «КГ»
«Структура» ::= ("%"«Идентификатор»)? ( ( "{" «Дуга»* "}" ) |
( "<" «Дуга»* ">" ) )
6. Концептуальное отношение («Отношение»)
«Отношение» ::= "(" «Тип»(N) «Дуга»* «Комментарий»? ")"
7. Актор («Актор»)
«Актор» ::= "<" «Тип»(N) «Дуга»* "|" «Дуга»* «Комментарий»? ">"
Примечание: При описании акторов терминальный символ «|» является разделителем списков входных (слева от разделителя) и выходных (справа от разделителя) дуг. Следует отметить, что в новых редакциях CGIF в определениях акторов предполагается заменить треугольные скобки на обычные круглые (такие же, как и в обычных отношениях).
8. Специальный контекст («Специальный контекст»)
«Специальный контекст» ::= «Отрицание» |
"[" «Метка специального контекста» ":"? «КГ» "]"
«Отрицание» ::= "~[" «КГ» "]"
«Метка специального контекста» ::=
"if" | "then" | "either" | "or" | "sc"
Примечание: Приведенные в п. 8 формулы не описывают в явной форме ограничений на требуемый порядок вложения специальных контекстов. Допустимый порядок вложений для разрешенных пар контекстов {if, then} и {either, or} может быть задан следующими формулами:
«Контекст ЕСЛИ-ТО» ::= "[" "If" «КГ» "[" "Then" «КГ» "]" "]"
«Контекст ЛИБО-ЛИБО» ::= "[" "Either" «КГ»
("[" "Or" «КГ» "]")* "]"
9. Иерархия типов концептов («Иерархия типов концептов»)
«Иерархия типов концептов» :: = "[" "TypeHierarchy:"
(«Определение типа концептов» |
«Порядок типов концептов»)*"]"
«Определение типа концептов» ::= "(" "Def"
"[" "TypeLabel:" "\"" «Метка типа» "\"" "]"
"[" "LambdaExpression:" "\"" «λ-выражение» "\"" "]" ")"
Примечание: Категории «Метка типа» и «λ-выражение» были определены в п. 3 данного списка формул.
«Порядок типов концептов» ::= "(" ("EQ" | "GT" | "LT")
"[" "TypeLabel:" "\"" «Метка типа» "\"" "]"
"[" "TypeLabel:" "\"" «Метка типа» "\"" "]" ")"
10. Иерархия типов отношений («Иерархия типов отношений»)
«Иерархия типов отношений» ::= "[" "RelationHierarchy:"
(«Определение типа отношений» | «Описание валентности» |
«Порядок типов отношений»)* "]"
«Определение типа отношений» ::= "(" "Def"
"[" "RelationLabel:" "\"" «Метка типа» "\"" "]"
"[" "LambdaExpression:" "\"" «λ-выражение» "\"" "]" ")"
«Описание валентности» ::= "(" "Has"
"[" "RelationLabel:" "\"" «Метка типа» "\"" "]"
"[" "Valence:" «Беззнаковое целое» "]" ")"
«Порядок типов отношений» ::= "(" ("EQ" | "GT" | "LT")
"[" "RelationLabel:" "\"" «Метка типа» "\"" "]"
"[" "RelationLabel:" "\"" «Метка типа» "\"" "]" ")"
Примечание: При описании валентностей допускается использование базовых структур CGIF (см. 1.3). Например, строка:
(Has [RelationLabel @Col{"EQ", "GT", "LT", "Has"}] [Valence 2])
будет интерпретироваться следующим образом: «каждый из четырех перечисленных в коллекции типов отношений имеет валентность, равную двум».
В заключение следует отметить, что описанная в 1.6 синтаксическая модель CGIF в настоящий момент не имеет статуса стандарта ISO/IEC и находится в процессе доработки. Однако общая структура и базовые синтаксические категории CGIF будут сохранены и в последующих редакциях соответствующих нормативных документов.
