多级类型继承,x继承y继承z

时间:2019-03-27 19:44:38

标签: pddl

在PDDL中,我可以这样定义“子”类型:

(:types
  one two - parent other
)

onetwo也是parentother是不同的。

就像谓词(both ?x - parent)接受onetwo一样。

我想做多层继承,我尝试过

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

我希望spritefanta成为fizzy,并且fizzywater都是drink类型。

因此我的谓词(pour ?x - drink)应该接受sprite,但目前不接受。

如何正确设置此类型树?

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

1 个答案:

答案 0 :(得分:1)

我希望回答您的问题还为时不晚。 此代码应执行您想要的操作:

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

希望它有所帮助!您可以找到整个PDDL参考here