Skip to content
This repository was archived by the owner on Oct 16, 2025. It is now read-only.

Latest commit

 

History

History
26 lines (21 loc) · 2.26 KB

File metadata and controls

26 lines (21 loc) · 2.26 KB

PDDLSharp have a set of different node types that is used as intermediate formats for whatever you intend to use PDDLSharp for.

PDDL

Static Badge

The PDDL model structure relies on 7 different interfaces, each with their own special thing about them.

abc drawio

The nodes are:

  • INode
    • This is the overall node interface. It contains the basic methods that the PDDL nodes have to implement. All the other nodes have this node as its base.
  • INamedNode
    • This is an extended INode interface, with the added requirement of it needing a name. An example could be that an ActionDecl is an INamedNode, since it has a name.
  • IDecl
    • This is a structural version of INode, basically its just all the nodes that cannot be used as expressions. An example could be you cannot make a PredicatesDecl inside the effects of an ActionDecl
  • IExp
    • This is then the opposite of the IDecl
  • IParametized
  • IWalkable
    • This is nodes that can be "walked" through. This enables you to be able to walk into almost all structures in PDDL, say you wanted to find an action, you can simply find it in a DomainDecl by using a foreach loop.
  • IListable
    • This is an extended version of IWalkable but with some added methods for accessing list items inside the node. An example is the AndExp is an IListable, since it contains a list of IExp inside of it.

These are the general node interfaces used by the PDDL side of the project. You can get more insight by looking at the different models in the source code.