Skip to content

remaro-network/dlToPlanning

Repository files navigation

DL Axioms to PDDL Planning

  • translates OWL TBox axioms to PDDL derived predicates and inputs them into existing PDDL domain
  • translates OWL ABox axioms to PDDL to assertions and inputs them into existing PDDL problem
  • takes care of introducing new constants and objects, where necessary
  • can introduce comparision between numbers from ontology in planning domain

Build

build project by running

./gradlew shadowJar

Usage

  • you can only modifying the PDDL domain by inserting TBox axioms, only modifying the PDDL problem by inserting ABox axioms or both

  • run insertion of OWL axioms into PDDL with

    ./OWLToPDDL.sh --owl=<inputOWL> --tBox --inDomain=<inputPDDLdomain> --outDomain=<outputPDDLdomain> [OPTIONS]
    
    ./OWLToPDDL.sh --owl=<inputOWL> --aBox --inProblem=<inputPDDLproblem> --outProblem=<outputPDDLproblem> [OPTIONS]
    
    ./OWLToPDDL.sh --owl=<inputOWL> --tBox --inDomain=<inputPDDLdomain> --outDomain=<outputPDDLdomain> --aBox --inProblem=<inputPDDLproblem> --outProblem=<outputPDDLproblem> [OPTIONS]
    
  • run ./OWLToPDDL.sh -h to see all options.

Planning

Comments on Program File Update

To speed up updating the problem file, i.e. in settings where only the input PDDL problem file has changed but the domain file and the ontology stay the same, one can export the aBox axioms from the ontology that need to be added to the problem file for later usage. This saves time when the problem file needs to be updated, as the ontology does not need to be loaded anymore. Use the following to export the additions to a file you like:

  java -jar build/libs/dlToPlanning-1.0-SNAPSHOT-all.jar --owl=<inputOWL> --export-problem-additions --problem-additions=<exportedAdditions>

Use the following to update the created problem file:

java -jar build/libs/dlToPlanning-1.0-SNAPSHOT-all.jar --aBox --inProblem=<inputPDDLproblem> --outProblem=<outputPDDLproblem> --replace-output --import-problem-additions --problem-additions=<exportedAdditions>

You can also export, while creating the problem and domain file, e.g. the first time the ontology is consulted and to use updates after that:

./OWLToPDDL.sh --owl=<inputOWL> --tBox --inDomain=<inputPDDLdomain> --outDomain=<outputPDDLdomain> --aBox --inProblem=<inputPDDLproblem> --outProblem=<outputPDDLproblem> --export-problem-additions --problem-additions=<exportedAdditions> [OPTIONS]

Effect on Runtime

Using the update has a significant impact on the runtime. E.g. in one of our tests, reading from ontology required 0.73s, reading from exported file required 0.34s (where only loading the classes took already about 0.20s).

About

small tool to insert OWL axioms into PDDL files

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published