aibasel / pyperplan

A lightweight STRIPS planner written in Python.
GNU General Public License v3.0
93 stars 41 forks source link

todo: failing to parse tetris #9

Closed guicho271828 closed 3 years ago

guicho271828 commented 3 years ago

While parsing the domain file, it fails to recognize an implied type "pieces"

https://github.com/AI-Planning/classical-domains/blob/master/classical/tetris-opt14-strips/domain.pddl#L4-L10

maltehelmert commented 3 years ago

This is one of those things where people don't agree what is or is not correct in :types specifications. We had many discussions about these, including things like

non-unique supertypes:

(:types b c - object a - c a - b)

cyclic specs:

(:types a - b b - a)

self-referential specs:

(:types a - a)

Pyperplan follows the semantics that all types other than the universal supertype object (which is mentioned as such in the PDDL 1.2 paper) need to be explicitly introduced. When I researched this a long time ago, I think this was the semantics that Drew McDermott's type library actually used, but I could never get 100% confirmation of this.

Long story short, there is no agreement on what the semantics of types should be, and so whatever semantics pyperplan picks, someone would be unhappy with it. :-(

I am somewhat reluctant to change the semantics, but we could for example add an FAQ item or something similar. What do people think?

jendrikseipp commented 3 years ago

Adding a short FAQ item (to the README?) sounds like a good idea.

maltehelmert commented 3 years ago

Are you willing to take this on, Jendrik?

jendrikseipp commented 3 years ago

I copied your main sentence to the README: https://github.com/aibasel/pyperplan/commit/ec559e8070ce1f598d57e17b8b3237eb035ed73c