# Applications ## Analyse Analyse a domain and problem file to give you information about type structure, relationship between arguments, overloading of predictates and functions. ## DomainView - WIP Turn a domain into a visualisation (LaTeX document) ## HowWhatWhen Analyse domain, problem (and plan) identifying decision making strategy of a planner. ## Instantiate Ground the domain and problem. ## InstantiationIP Refined veriant of instatiate. ## Parser The PDDL Parser will find and report errors in PDDL more explicitly than validate. Parse domain file: `Parser ` Parse domain and problem file: `Parser ` ## PinguPlan Application to create a plan for the [Pingus](https://pingus.seul.org/index.html) application ## PlanRec Identify which action are achieving precondition of a later action in the plan. ## PlanSeqStep Scripting of multiple plan execution and extraction of final state. Use output of PlanToValStep output ## PlanToValStep This utility takes a plan file as input and writes out a script in the form used by ValStep, all as one output. This allows you to then run all or part of the plan through ValStep easily. `PlanToValStep myplan.pddl > myvalstepscript` ## Relax Auto generation of a relaxed domain. Used to compare relax plan and real plan. ## TIM Type Inference Mechanism (1998) tells which predicate are single value. ## ToFn To function uses the TIM analysis to translate the domain from a predicate model to a multi-value model. ## TypeAnalysis `TypeAnalysis ` The type-checking tool is reasonably robust at finding type errors in your PDDL domain/problem files. Note that the PDDL parser will find and report errors in PDDL more explicitly. ## Validate This utility is mainly used by planning engine developers and researchers, but it may be useful to a PDDL modeler as well. You may get to a situation, when you are not sure why the planning engine is *not* generating the plan you are expecting. In that case, you could handcraft the plan you expect to get and ask the Validator whether it is valid. It usually tells you where you are missing a pre-condition, or where you are violating an over all constraint. Validate has many command line options, but the most important first few are: `Validate -t -v ` Multiple plan files can be handled together. The `-t` flag allows the value of epsilon to be set. The default value is *0.01*, but *0.001* is a good value to use for most planners. Actions separated by epsilon or less are treated as simultaneous by Validate. The `-v` switch is the verbose mode. Syntax for validating your domain model: `Validate domain.pddl` Syntax for validating your domain model and problem file: `Validate domain.pddl problem.pddl` Syntax for getting more insights into what is happening during your plan (theoretical) execution or validating a hand-coded plan: `Validate -v -t 0.001 domain.pddl problem.pddl plan.txt` Syntax for generating LaTeX file that visualizes the plan and changes of function values throughout the plan. `Validate -l -f report -t 0.001 domain.pddl problem.pddl plan.txt` The above will generate report.tex (the .tex extension is automatically added, so need not be placed on the command line). To render the .tex file as a .pdf, download [MiKTeX](https://miktex.org/download). After you install it, its bin folder is added to your %path% and you may simply use it from a command line this way: `pdflatex -synctex=1 -interaction=nonstopmode report.tex` The first run will pop up a dialog asking for your consent to download additional packages needed by this .tex file. After that you should be able to just run `pdflatex report.tex` If you want to do the .pdf generation painlessly, you can just install the [LaTeX Preview extension for VSCode](https://marketplace.visualstudio.com/items?itemName=ajshort.latex-preview). ## ValStep This tool is run with command line: `ValStep [-i ] ` It gives a prompt "`?`" and expects one of the valid commands: * `start @