ГОСТ Р И С 018629-11 — 2010
Приложение В
(справочное)
Синтаксис формата обмена знаниями и семантика
Подобно машинно-ориентированным языкам, формат обмена знаниями (KIF) имеет два многообразия.
В линейном формате обмена знаниями все выражения являются последовательностями символов в коде ASCII,
поэтому их можно хранить на устройствах с последовательной передачей данных (например, на магнитных дис
ках). а также в последовательных средах (например, по телефонным линиям). В структурированном формате
обмена знаниями выражения языка являются структурированными объектами. Структурированный формат об
мена знаниями имеет специальное применение в коммуникации между программами, работающими в том же
самом адресном пространстве (8).
Между двумя многообразиями KIF существует простая корреспонденция. Для каждой строки символов име
ется только одна соответствующая списковая структура, а для каждой списковой структуры — только одна соот
ветствующая строка символов.
Сначала определяется соответствие между линейными и структурированными формами языка, после чего
данные обрабатываются только в структурированной форме.
В.1Линейный формат обмена знаниями
Алфавит линейного формата обмена знаниями состоит из 128 символов набора кода ASCII. Некоторые из
этих символов имеют стандартные печатные представления. Символами, имеющими стандартные печатные
представления (98 из 128), являются следующие:
A B C D E FG H IJ K L M N O P Q R S TU V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
О 1 2 3 4 5 6 7 8 9 ( ) [ ] - - 0 ! ?
=+- * Г * & о - " “ и @?
Формат обмена знаниями основан на языке приложения Lisp (LISP) и наследует от него свой синтаксис.
Отношение между линейным и структурированным KIF упрощается с помощью считывающего устройства Common
Lisp. В частности, строка символов ASCII образует формальное выражение в линейном KIF только в том случае,
если:
1) она является приемлемой для считывающего устройства Common Lisp;
2) структура, созданная считывающим устройством Common Lisp, является формальным выражением струк
турированного KIF (согласно положениям следующего раздела).
В.2Структурированный KIF
В структурированном KIF нотация word является примитивным элементом. Выражение является либо сло
вом. либо конечной последовательностью выражений. В данном случае используют закрывающие скобки, чтобы
ограничить элемент в составном выражении:
<word> ::= a primitive syntactic object (элементарный синтаксический объект)
<expression> ::= <word> | (<expression>*)
Все слова подразделены на категории, приведенные ниже. Эта категоризация является непересекающей-
ся и исчерпывающей. Каждое слово входит в состав только одной категории. Категории, определенные в настоя
щем разделе, используются также в грамматических правилах следующих таблиц.
<indvar> ::= a word beginning with the character ?
<seqvar> ::= a word beginning with the character @
<temxjp> ::= listof | setot | quote | if | cond | the | setofall | kappa | lambda
<sentop> ::= = | /= | not | and | or | implies | <= | iff |forall | exists
<ruteop> ::= = » ) « = | consis
<defop> ::= defobject | defunction | defrelation | := | :implies | :&
<objconst> ::= a word denoting an object
<funconst> ::= a word denoting a function
<reteonst> ::= a word denoting a relation
<logconst> ::= a word denoting a truth value
Из этих основных категорий строят более сложные категории — переменные (variables), операторы
(operators) и константы (constants).
<variabie> ::= <indvar> | <seqvar>
<operator> ::= <termop> | <sentop> | <ru!eop> | <defop>
<constant> ::= <objconst> | <funconst> | <relconst> | <logconst>
variable — это слово, в котором первым символом является ? или @. Переменную, начинающуюся с ?.
называют отдельной переменной. Переменную, начинающуюся с @, называют переменной последовательнос-
14