Вход в систему

Консульство Овалон-2

Навигация

Новый подход к Искуственному Интеллекту "Экскалибур-2013"

Функциональное сообщение
- это сообщение, первым словом которого является Слово-Функция, применяемая ко всем следующим далее элементам сообщения. Элементы являются аргументами этой функции
Примеры:
(Sin X) (+ 1 2 3 4 5 6) (Not Слон) (И хороший добрый веселый)
Введенные Функциональные сообщения находятся в памяти Э в виде сети (окно “Схема Знаний”).
Примечание.
Слово-Функция в функциональном сообщении может быть двух типов :
встроенная и определенная пользователем.
Встроенная Слово-Функция : Sin, +, Not, И, Eval и т.д. .
( перечень Слов-Функций для функциональных сообщений приведен в ПРИЛОЖЕНИИ)

Списковое сообщение (или Список)
Список - это произвольное сообщение, первое Слово которого не является Словом-функцией. В списке все элементы списка (слова) объединены отношением And (логическое «И»). По сути список – это множество (понимаемое как в математике) Слов.
Примеры: (хороший добрый веселый) (1 2 3 (a s d) 4 5 (g f))

Сообщение – Контекст состоит из двух Слов, первое из которых указывает контекст, второе Объект.
Пример:
(КонтекстБиология Слон) --> животное

(КонтекстЦвет Слон) --> серый

Сообщение-факт
задается в квадратных скобках.

Сообщение в двойных скобках
Независимо от сути считается просто списком:
((+ 1 2 3 4)) → (+ 1 2 3 4)
Двойные скобки применяются тогда, когда необходимо защитить сообщение или его элемент от вычисления значения (т.е. когда сообщение или его элемент уже является значением):
(! (( 2 + 3 = )) (+ 2 3) ) → “2 + 3 = 5”
Примечание: практически тот же эффект в этом примере можно было бы достичь использованием кавычек. “ 2 + 3 = “ Но это будет стилистически неправильно - сообщение будет плохо читаться и возникнут затруднения для автоматической обработки таких сообщений.

Работа Экскалибур с Сообщением.

Укрупненный алгоритм интерпретации скобочных сообщения в Э.
1. Э проверяет сообщение Слово или открывающая Скобка Скобочного выражения: ( Слово1 Слово2 Слово3 … Слово N) .
Примечание: Как видите, Скобочное выражение - (последовательность Слов и Разделителей)
Если это Слово, то Экскалибур пытается вычислить его значение. Если это удается в текущем контексте, слово заменяется на его значение. Если нет - передается в неизменном виде (переход на 2.5).

2. Если это открывающая Скобка, то проверяет первое Слово после скобки по правилу:
2.1. Если Слово встроенная функция Экскалибур, то выполнить сообщение, то есть выражение в скобках, и получить результат выполнения (значение) этого функционального сообщения.
2.2. Если Слово - имя определенной пользователем (или самой системой) функции, то выполнить сообщение.
2.3. Если Слово это Объект-отношение, и сообщение из тройки слов, то это предикатный вызов (см. ниже). Э Проверит утверждение предикатного вызова в базе “знаний” и вернет результат True или False.
2.4. Если Слово это Объект-неотношение, то это Объект. Э попытается получить значение указанного Свойства Объекта (или всего Объекта) - т.е. выполнить функциональный вызов значения Свойства (Объекта).
2.5. Иначе это сообщение не раскрывается на данном уровне.
2.6. Э возвращает значение сообщения в виде самого сообщения (передает его как значение в неизменном виде).
Получение значения сообщения
Для получения значения сообщения можно выполнить :
Явный вызов значения
с помощью встроенной функции «Eval», которая возвращает значение переданного ей Сообщения (алгебраическое или логическое значение ). Примеры:
(Eval (+ 1 2 3 4)) --> 10
(Eval (Цвет Слон серый)) --> True
(Eval (включает объект ((вирус растение )) )) --> True
Функциональный вызов значения происходит автоматически каждый раз, когда «Экскалибур» читает функциональное сообщение. Примеры:
(Sin X) (+ 1 2 3 4) ( * 2 (+ A B))
Предикатный вызов значения
- происходит автоматически всегда, когда «Экскалибур» читает логическое сообщение, которое нужно доказать (или проверить в базе БЗ). Результат: True или False. Примеры:
(Имеет слон хобот) --> True
(Включает Человек негр) --> True
(Это Негр Слон)--> False
(> 2 3) --> False

Rambler

Сейчас на сайте

Сейчас на сайте 0 пользователей и 2 гостя.