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

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

Навигация

  • strict warning: Non-static method Pagination::getInstance() should not be called statically in /var/www/owalo863/data/www/owalon.com/modules/pagination/pagination.module on line 308.
  • strict warning: Only variables should be assigned by reference in /var/www/owalo863/data/www/owalon.com/modules/pagination/pagination.module on line 308.
  • strict warning: Non-static method Pagination::getInstance() should not be called statically in /var/www/owalo863/data/www/owalon.com/modules/pagination/pagination.module on line 403.
  • strict warning: Only variables should be assigned by reference in /var/www/owalo863/data/www/owalon.com/modules/pagination/pagination.module on line 403.
  • strict warning: Non-static method Pagination::getInstance() should not be called statically in /var/www/owalo863/data/www/owalon.com/modules/pagination/pagination.module on line 345.
  • strict warning: Only variables should be assigned by reference in /var/www/owalo863/data/www/owalon.com/modules/pagination/pagination.module on line 345.

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

Часть 2. Образцы и теоремы
Образцы
Образцы позволяют анализировать структуру сообщения . Конечно, это можно сделать и последовательностью вызовов функций Э и функций определенных пользователем, но это будет медленнее и сложнее, чем с помощью Образцов. Для описания правил анализа (формирования образцов) имеется встроенный подъязык описания образцов текстового и логического типа.
isT
- сопоставление нескольких текстов с одним регулярным образцом (язык регулярных образцов - стандартный и опубликован в широкой литературе Пример). Если все тестируемые тексты удовлетворяют образцу, выдает True
(isT Образец Текст1 …...)

is
- сопоставление любого (или нескольких) аргументов со структурированным образцом
? Пример. Язык структурирования следующий:
* - любое продолжение сообщения
# - любое число
\# - не число
-12 - конкретное число -12
слово - любое слово маленькими буквами
ПЕРЕМЕННАЯ - вводит переменную ? понятие переменная в Э, первоначально задает ей любое первое же значение, но затем оно должно быть тем же
() - пустой список
(_) [_] {_} - любой список указанного типа
#( 2) #[8] #{1} - список указанного типа с заданным числом элементов
( 1 2 3) [abs] {ff gg hh} - список указаннного содержания
$ - любое значение отличное от ()
$t - текстовое значение
$F - функция определенная пользователем
\$F - не функция определенная пользователем
$a - только известный атом Базы Знаний
\$a - не должен быть атомом Базы Знаний

$=T - True
$=F False
$<12 число меньше указанного
$>23 число больше указанного
$Животное это потомок атома “Животное”
\$Животное не потомок атома “Животное”
$$Кот имеет потомка “Кот”
\$$Кот не имеет потомка “Кот”
$#Хвост имеет свойство хвост
\$#Хвост не имеет свойство хвост

$#Вес.10 имеет свойство “Вес” = 10
& - логическое объединение условий
$[ a b c d] - любое из перечисленных значений
$(отношение свойство) - удовлетворяет указанному отношению

Примечание: Элементы описателя образца должны быть разделены пробелом
Примеры:
(is “( Имеет $Животное $#Хвост )” X )

(Set A 12)
(! (is ((23 24 A)) ((23 24 12)) ) )

Теоремы.
** Обычная функция вызывается тогда, когда Экскалибур читает сообщение с ее именем и ей передаются параметры вызова (аргументы функции), например (Функция X Y) .
Система символьной обработки знаний, должна уметь принимать решение самостоятельно. Одним из механизмов такого умения являются теоремы.
Теорема - это функция, вызываемая не по имени, а по признакам применимости, называемыми Целью.

DefT определение теоремы.
Выполняется функцией DefT типа FSUBR
(DefT Каталог Имя Цель Тело)
Каталог - объект БЗ для сохранения теоремы (поиск теорем использует структуру наследования вверх)
Имя - любое имя, отражающее суть теоремы
Цель - образец для вызова теоремы
Тело - скобочное сообщение, вычисление которого произведет требуемые изменения в БЗ или Контексте
Примечание: Поскольку теорема может быть вызвана из любой задачи не рекомендуется в ней использовать локальные символы, имеющие смысл переменных.

@ - вызов теоремы
Вызов теоремы происходит с помощью функции @ типа FSUBR, в качестве аргументов которой передаются параметры:
Каталог (определяет точку в семантической сети где искать теоремы)
Цель (образец который должен совпасть с образцом теоремы),
тестовое сообщение Тест
и параметр Иначе (который может быть любым сообщением).
(@ Каталог Цель Тест Иначе)

Принцип вызова теоремы
Вызов теоремы происходит следующим образом.
а) Из Базы Знаний выбирается список подходящих к Цели теорем.
б) Теоремы одна за другой вызываются как обычные функции до тех пор, пока Тест не выдаст значение True
На этом работа блока теорем заканчивается, и возвращается имя успешной теоремы
В) Если теорем обещающих достигнуть заданную Цель больше нет, то выполняется сообщение Иначе.
Примечание 1: Сообщение Цель не обязательно должна точно выбирать некоторую теорему, а может охватывать целую область шаблонов.

Rambler

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

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