Чтобы решить проблемы символического планирования, мы пишем теории действия. Популярными языками для написания теорий действия являются STRIPS и ADL.
Для описания действия нам необходимо предоставить:
- предварительные условия
- последствия
Например, в домене робота у нас есть классы Robot
и Object
, а также свойства closeTo
и holding
.
Действие pickUp(?robot, ?object)
возможно, если выполняется closeTo(?robot, ?object)
, а также forall ?o in Object . not holding(?robot, ?o)
.
Как можно представить предварительные условия с помощью OWL и/или SWRL?
Как насчет эффектов действия?