Комнатный мир: Отношения и действия


Введение

Данный документ и серия последующих, посвящены описанию ограниченного мира. Этот мир содержит объекты и допускает действия, происходящие внутри условного дома или рядом с ним, поэтому называется "Комнатным миром". Мы ограничиваем число возможных сущностей которые может понимать интеллектуальная система, однако стремимся к тому, чтобы это понимание было максимально полным.

Напомним, что понимание означает построение на основе доступной информации модели мира, при помощи которой система прогнозирует будущее и объясняет прошлое. Модель может иметь разные степени приближения. Вначале мы будем строить очень простые модели, постепенно стараясь их сделать более детальными и адекватными реальному миру или хотя бы тому миру который (также в качестве модели) возникает в сознании человека. Пока система будет вести себя пассивно. Её задача анализировать текстовую информацию и давать осмысленные ответы на задаваемые ей вопросы.


Неполнота информации

Основная сложность в реализации понимания интеллектуальной системой входной информации возникает, когда существует неполнота этой информации. Если пока отвлечься от желаний и целей агентов, можно выделить три источника неполноты:

Когда есть неполнота информации, возможно несколько допустимых моделей (обычно, имеющих разную степень правдоподобности). Пока мы не концентрируемся на этой проблеме, ставя задачу построения "языка" на основе которого строятся модели. Таким языком являются базовые отношения при помощи которых описывается текущее состояние и действия, которые это состояние меняют.


Базовые сущности

Перечислим некоторые базовые сущности, которые будут встречаться в дальнейшем:


Отношения

Отношения положения:

Вспомогательные отношения:


Перемещение в пространстве агента

Все действия считаем совершёнными (подошёл, взял, съел). Они меняют текущее состояние (изменяются отношения между объектами). При перемещении в пространстве различаем перемещение по поверхности (горизонтальной или наклонной), смену поверхности (встал со стула на пол, легла на кровать) и перемещение между двумя пространствами (вышел из комнаты)


Смена владения


Трансформация объектов


Пример: Сэм и конфета

Сэм встал в спальне с кровати, пошел на кухню и подошёл к столу. Со стола взял коробку, вернулся в спальню и сел на кровать. Из коробки Сэм достал конфету и съел её.

// статические отношения для неизменных объектов:
[bedroom, kitchen] in house;
floor1  pof bedroom;
floor2  pof kitchen;
doorway pof [bedroom, kitchen];  
door    pof doorway;

// динамические отношения:
[Sam, bed]          ins bedroom;  Sam   on  bed;  bed on floor1;  
[candy, box, table] ins kitchen;  candy ins box;  box on table;   table on floor2;   
Действия истории:
shift   (Sam, bed,     floor1) 
goto    (Sam, doorway, floor1)                     
come    (Sam, kitchen, bedroom, doorway)
goto    (Sam, table,   floor2)                     
take_out(Sam, candy,   box)
goto    (Sam, doorway, floor2)          
come    (Sam, bedroom, kitchen, doorway)
goto    (Sam, bed,     floor1)                     
shift   (Sam, floor1,  bed) 
eat     (Sam, candy)