Inferensys

Glossary

Planning Domain Definition Language (PDDL)

The Planning Domain Definition Language (PDDL) is a standardized formal language used to model planning problems, separating the domain (actions, predicates, types) from the specific problem instance (objects, initial state, goal).
Governance lead reviewing model governance framework on laptop, policy documents visible, executive office setup.
FORMAL SPECIFICATION

What is Planning Domain Definition Language (PDDL)?

A formal language for defining problems in automated planning and scheduling.

The Planning Domain Definition Language (PDDL) is a standardized, formal language used to model automated planning problems by cleanly separating the domain (a reusable set of actions, predicates, and types) from a specific problem instance (objects, initial state, and goal). This separation allows generic planners to solve any problem expressed in a compatible domain, enabling research and tool interoperability. It is the lingua franca for classical planning competitions, directly descended from the STRIPS representation.

A PDDL model defines a state space where actions transform states. Each action is specified with preconditions (logical conditions that must be true for it to execute) and effects (changes to the world state). The planner's task is to find a sequence of actions—a plan—that transforms the initial state into a state satisfying the goal condition. While foundational for symbolic AI planning, it contrasts with reinforcement learning and Markov Decision Processes (MDPs), which typically learn policies from interaction rather than reasoning with an explicit, declarative model.

PLANNING DOMAIN DEFINITION LANGUAGE

Core Components of a PDDL Model

The Planning Domain Definition Language (PDDL) is a formal, standardized language for modeling automated planning problems. Its core strength lies in the strict separation between the reusable domain (the rules of the world) and the specific problem instance to be solved.

01

Domain: The World's Rulebook

A PDDL domain file defines the static rules, capabilities, and logic of the planning environment. It is a reusable template that specifies:

  • Types: A hierarchy of object categories (e.g., location, robot, package).
  • Predicates: Boolean properties that describe the state of the world (e.g., (at ?robot ?location), (loaded ?package)).
  • Actions: The operations an agent can perform. Each action is defined by:
    • Parameters: Variables that are instantiated with objects.
    • Preconditions: Logical statements that must be true for the action to be executable.
    • Effects: How the action changes the world state, including add effects (new true predicates) and delete effects (predicates that become false).

Example: A logistics domain defines types like truck and city, predicates like (at ?truck ?city), and an action drive with preconditions (at ?truck ?from) and effects (not (at ?truck ?from)) (at ?truck ?to).

02

Problem: The Specific Instance

A PDDL problem file defines a concrete planning instance within a given domain. It provides the specific details that the planner must reason about:

  • Objects: The concrete instances of the domain's types (e.g., truck1 - truck, paris - city).
  • Initial State: A complete snapshot of the world at the start, expressed as a conjunction of ground predicates that are true (e.g., (at truck1 london), (fuel truck1 100)). All unmentioned predicates are assumed false (the closed-world assumption).
  • Goal Specification: A (possibly complex) logical formula describing the desired end state (e.g., (and (at packageA paris) (at packageB berlin))).

The planner's task is to find a sequence of instantiated domain actions that transforms the initial state into a state satisfying the goal.

03

Actions: Preconditions & Effects

Actions are the fundamental operators that drive state transitions. Their formal structure is what makes planning deterministic and verifiable.

  • Preconditions: A conjunction of literals (positive or negated predicates) that must hold in the current state for the action to be legally applied. This enforces the causal laws of the domain.
  • Effects: Describe the state change. PDDL uses the STRIPS assumption: effects explicitly list all predicates that change.
    • Add List: Predicates that become true.
    • Delete List: Predicates that become false (also known as negative effects).

This (precondition → effect) model allows planners to perform forward search (applying actions to the initial state) or backward search (regressing from the goal).

04

Types and Object Hierarchies

PDDL supports a simple type system to categorize objects and constrain action parameters, making domain models more compact and less error-prone.

  • Objects are declared with a type (e.g., parcel23 - parcel).
  • Types can be organized in an inheritance hierarchy using the either keyword or a direct subtype notation (in later PDDL versions), allowing for generality. For example, a type vehicle could have subtypes truck and airplane.
  • Action parameters are typed, so (drive ?v - vehicle ?from ?to - location) can only be instantiated with objects of type vehicle and location. This typing is crucial for efficient grounding—the process of creating all possible concrete action instances from the domain and problem objects.
05

Derived Predicates & Axioms

Derived predicates (or axioms) are a PDDL feature that allows certain facts to be inferred logically from the current state, rather than being directly changed by actions. They are defined by a logical rule.

  • Syntax: (:derived (predicate ?args) (logical-formula))
  • Use Case: They model state constraints or abstract properties. For example, (connected ?x ?y) might be derived from a complex graph structure of (road ?a ?b) facts. Or (above ?a ?b) could be derived from a stack of blocks.
  • Semantics: The truth value of a derived predicate is re-evaluated in every state based on its rule. This separates definitional knowledge from causal knowledge (actions), leading to more expressive and maintainable domain models.
06

PDDL Versions & Expressivity

PDDL has evolved through standardized competition versions, each adding expressivity for more complex planning problems.

  • PDDL 1.2 (STRIPS): The base level with types, actions (preconditions, add/delete effects).
  • PDDL 2.1: Introduced numeric fluents (e.g., (fuel-level ?truck)) and durative actions for temporal planning.
  • PDDL 3.0: Added state trajectory constraints and preferences, allowing for soft goals and constraints on the entire plan execution path.
  • Later Extensions: Include probabilistic effects (for non-deterministic planning), hierarchical task networks (HTN) for task decomposition, and constraints for integrated planning and scheduling. This layered design allows planners to support only the features they need, from simple classical planners to complex temporal/numeric solvers.
STANDARDIZATION TIMELINE

Evolution of PDDL: Key Versions and Extensions

This table compares the core features and expressive capabilities introduced in major versions of the Planning Domain Definition Language, from its inception to modern extensions supporting temporal, numeric, and probabilistic planning.

Version / ExtensionYearCore InnovationPlanning Class SupportedKey Syntax Additions

PDDL 1.0 (STRIPS-style)

1998

Foundational separation of domain and problem files; basic STRIPS semantics.

Classical (Fully Observable, Deterministic)

:requirements, :predicates, :action with :parameters, :precondition, :effect.

PDDL 2.0

2000

Introduction of numeric fluents and durative actions for temporal planning.

Temporal, Numeric

:functions (numeric fluents), :durative-action, :metric (for optimization).

PDDL 2.1

2002

Refined semantics for timed initial literals and object fluents.

Temporal, Numeric

:timed-initial-literals, object fluents (largely unimplemented).

PDDL 2.2

2004

Added derived predicates (axioms) and timed initial literals as standard.

Classical, Temporal

:derived predicates for state constraints.

PDDL 3.0

2005

Introduced state trajectory constraints and preferences (soft goals).

Classical with Constraints

:constraints (LTL over state trajectories), :preferences.

PDDL 3.1

2008

Minor clarifications and extensions to constraints and preferences.

Classical with Constraints

Refined constraint semantics.

Probabilistic PDDL (PPDDL)

2004

Enabled modeling of probabilistic effects and reward-based goals.

Probabilistic (MDPs)

probabilistic effects, :reward function in goal.

PPDDL 1.0

2011

Standardized probabilistic extension with discrete distributions.

Probabilistic (MDPs)

(probabilistic p1 e1 ... pn en) within action effects.

Conformant PDDL

N/A

Extends PDDL for planning under initial state uncertainty (no observations).

Conformant (Fully Observable, Non-Deterministic Init)

oneof, or clauses in initial state.

MA-PDDL (Multi-Agent)

N/A

Extensions for decentralized multi-agent planning with joint actions.

Multi-Agent

:joint-action, :shared-predicates, :private-predicates.

HDDL (Hierarchical Task Network PDDL)

2020

Standard for Hierarchical Task Network (HTN) planning, separating task and method networks.

HTN Planning

:task, :method, :subtasks, :ordering.

PLANNING DOMAIN DEFINITION LANGUAGE (PDDL)

Frequently Asked Questions

A standardized formal language for modeling automated planning problems, separating the general domain logic from specific problem instances. It is foundational for classical planning research and AI-driven corrective action systems.

The Planning Domain Definition Language (PDDL) is a formal, standardized language used to model automated planning problems. It works by separating the planning domain (a reusable model of actions, predicates, and types) from the planning problem (a specific instance with objects, an initial state, and a goal). A planner—an automated reasoning engine—reads these PDDL files to search for a sequence of actions (a plan) that transforms the initial state into the goal state.

For example, a logistics domain defines actions like (drive ?truck ?from ?to) with preconditions (the truck must be at ?from) and effects (the truck is now at ?to). A specific problem defines objects (truck1, cityA, cityB), an initial state ((at truck1 cityA)), and a goal ((at truck1 cityB)). The planner uses this model to find a valid plan: [(drive truck1 cityA cityB)].

Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.