многоуровневое наследование типов, x наследует от y наследует от z - PullRequest
1 голос
/ 27 марта 2019

в PDDL я могу определить «под» типы как это:

(:types
  one two - parent other
)

one и two также parent, other отличается.

Итак, предикат (both ?x - parent) принимает one с и two с.

Я хочу сделать многоуровневое наследование, я пытался

(:types
  sprite fanta - fizzy water - drink
  food
)

Я хочу, чтобы sprite и fanta были fizzy, а fizzy и water оба типа drink.

Так что мой предикат (pour ?x - drink) должен принять sprite, но на данный момент это не так.

Как правильно настроить это дерево типов?

object
├── drink
│   ├── fizzy
│   │   ├── fanta
│   │   └── sprite
│   └── water
└── food

1 Ответ

1 голос
/ 14 мая 2019

Надеюсь, еще не поздно ответить на ваш вопрос.Этот код должен делать то, что вы хотите:

(:types
   food drink - object
   water fizzy - drink
   fanta sprite - fizzy)

Надеюсь, это помогло!Вы можете найти всю ссылку на PDDL здесь .

...