Новый подход к Искуственному Интеллекту "Экскалибур-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: Сообщение Цель не обязательно должна точно выбирать некоторую теорему, а может охватывать целую область шаблонов.
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »