ГОСТ Р 59791—2021
Первая строка правила перезаписи извлекает концептуальный граф из последовательности дуг s. Вторая
строка добавляет вводный комментарий, метку типа и последовательность дуг концептуального отношения. Тре тья
строка добавляет маркер последовательности, если таковой имеется, конечный комментарий и закрывающую
скобку концептуального отношения.
Комментарий: например, концептуальное отношение (On [Cat: Yojo] [Mat]) будет переведено с помощью пра
вил для концептуальных отношений, дуг, последовательностей дуг и концептов с целью создания концептуального
графа, выраженного в основном формате CGIF:
[: Yojo] (Cat Yojo) [*g00719] (Mat ?g00719) (On Yojo ?g00719)
Б.3.9 Текст
Определение: контекст с, который непосредственно или опосредованно не содержится ни в каком контексте.
Перевод: контекст сх.
text(?c?) -> ?сх?;
text = “[“, [comment] ?cm?, “Proposition”,[CGname] ?n?,
CG ?g?, [endComment] ?ecm?, “]”;
?cx? = “[“, ?cm?, “Proposition”,?n?, CG(?g?), ?ecm?, “]”;
end;
Комментарий: CGIF не содержит явного синтаксиса для модулей. Вместо этого все модули CL сначала сле
дует переводить в текст в основном формате CLIF в соответствии со спецификацией из А.З. Затем результат этого
перевода должен быть переведен в текст в расширенном CGIF в соответствии с функцией
с12сд,
которая опреде
лена в п. Б.4.
Б.3.10 Выражение типа
Определение: строка
tx
, содержащая имя CG
п
и концептуальный граф
д.
Перевод: пара
(Ь,д),
состоящая из связанной метки Ь и концептуального графа
д.
typeExpression(?tx?) -> ?b?,?g?;
typeExpression =CGname ?n?, CG ?g?;
?b? = «?», ?n?;
end;
Если концепт с содержит выражение типа, правила перезаписи, которые определяют concept(c), используют
функцию substitute(?r?,?b?,?g?) для замены части ссылок г для каждого экземпляра b в
д.
Комментарий: выражение типа соответствует лямбда-выражению, в котором имя CG
п
определяет формаль
ный параметр, а концептуальный граф
д
является основным текстом выражения. Если концепт с содержит выра
жение типа, правила трансформации, по которым обрабатывается с, должны заменять ссылку, полученную из
с, для каждого экземпляра связанной метки ?л, которая встречается в
д.
Б.4 Совместимость с CGIF
д
В этом приложении описан синтаксис трех диалектов CL: абстрактный синтаксис для концептуальных гра
фов, реальный синтаксис для основного формата CGIF и реальный синтаксис для расширенного формата CGIF.
Эти языки полностью совместимы с диалектами CL в том смысле, что из каждого высказывания CL можно полу
чить семантически эквивалентное высказывание на каждом из них и наоборот. Семантическая эквивалентность
устанавливается по определению: семантика каждого высказывания в расширенном формате CGIF определяется
переводом в предложение в основной формат CGIF, семантика каждого предложения в основном формате CGIF —
переводом в предложения на абстрактный синтаксис CG, а семантика каждого абстрактного высказывания CG —
переводом на абстрактный синтаксис CL.
Для подтверждения полной совместимости в Б.4 определена функция
с12сд,
которая должна переводить
любое предложение s в CL в предложение
cl2cg(s)
в расширенном формате CGIF при условии сохранения значе ния
истинности, которое s имеет в любой интерпретации CL. Большинство выражений CL несложно сопоставить с
определенным выражением в расширенном формате CGIF. Однако перевод функциональных терминов из CL в
CGIF состоит из нескольких шагов. Любое применение функции CL можно преобразовать в действующий субъ ект,
представляющий функцию со ссылкой на некоторый концепт, который, в свою очередь, является значением этой
функции. Для перевода последовательности терминов CL в последовательность дуг в расширенном формате CGIF,
узел действующего субъекта должен быть заключен в узел концепта.
Например, пусть (F Х1 Х2) будет термином CLIF с оператором F, примененным к аргументам Х1 и Х2, где
имена Х1 и Х2 связаны кванторами, a F — не связан. Когда этот термин переводится с помощью
с12сд,
для гене
рации имени CG, например д00592, следует использовать функцию gensym(). При наличии префикса «?» это имя
становится связанной меткой кореферентности, которая должна использоваться в качестве выходной дуги дей
ствующего субъекта, представляющего функцию F. Необходимый результат преобразования исходного термина
CLIF с помощью
с12с
: (F ?Х1 ?Х2 | ?д00592). Определяющая метка *д00592 должна быть помещена в концепт,
например [*д00592], а действующий субъект также должен находиться внутри этого концепта в виде вложенного
концептуального графа: [*g00592 (F Х1 Х2 | ?д00592)]. Этот концепт должен представлять собой результат при
менения
с12сд
к функциональному термину. Он может выглядеть как дуга в последовательности дуг какого-либо
действующего субъекта или концептуального отношения.
47