1

I keep getting an "undeclared requirement :typing" error when I run my problem file with a planner, even though I've already declared it in my domain file

The requirements in my domain file:

    (:requirements :typing :types :durative-actions :fluents :numeric-fluents)
    (:types patient surgeon rooms speciality injury)

In my problem file:

    (define (problem surgery)
    (:domain emergency_room)
    (:objects 
         patient1 patient2 patient3 - patient
         surgeon1 surgeon2 surgeon3 - surgeon
         trauma dental cardio - speciality
         heart tooth accident - injury)
geet
  • 11
  • 3

2 Answers2

0

Which planner do you use?

:typing

means that the domain uses types that you define below. But to the best of my knowledge, the

:types

requirement does not exist and should only be used as a keyword for the actual types. Therefore, you probably need to remove :types from the requirement section.

Also note that most planners are quite robust against missing requirements tags. So sometimes it's a good idea to omit some of them.

0

Here is the list of requirements supported by PDDL 1.2

https://planning.wiki/ref/pddl/requirements#typing

Indeed, :typing is the planner requirement, :types is the keyword for declaring object types inside the PDDL domain.

For requirements specified by later PDDL versions, search this page for List of PDDL x.y Requirements.

https://planning.wiki/ref/pddl/requirements

Jan Dolejsi
  • 1,389
  • 13
  • 25