hfoffani / pddl-lib

A PDDL library that parse PDDL files and provides a very simple interface to interact with domain-problems.
Apache License 2.0
82 stars 20 forks source link

parsing error #36

Open tom4everitt opened 8 months ago

tom4everitt commented 8 months ago

Hi,

It fails to parse files

https://raw.githubusercontent.com/aig-upf/tarski/master/docs/notebooks/benchmarks/blocksworld.pddl https://raw.githubusercontent.com/aig-upf/tarski/master/docs/notebooks/benchmarks/probBLOCKS-4-2.pddl

Even though they are quite simple. Any idea why?

hfoffani commented 8 months ago

Thanks for trying the library. At a glance it seems it should parse. I'll take a look, but unfortunately it's been a while since I had work on this project. Probably many dependencies are outdated and will need to be upgraded.

hfoffani commented 7 months ago

Hi Tom, The parser is case sensitive (I didn't remember that). Changing the reserved words, actions and states to lowercase works at least in the suspend-duration branch:

(define (problem BLOCKS-4-2)
(:domain BLOCKS)
(:objects B D C A )
(:init (clear A) (clear C) (clear D) (ontable A) (ontable B) (ontable D)
 (on C B) (handempty))
(:goal (and (on A B) (on B C) (on C D)))
)

I'm updating the libraries and Python, merge this branch to main and publish pddlpy to pipy soon.

Python 3.11.7 (main, Feb 10 2024, 17:01:04) [Clang 15.0.0 (clang-1500.1.0.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pddlpy
>>> pddlpy.DomainProblem('blocksworld.pddl', 'probBLOCKS-4-2.pddl')
<pddlpy.pddl.DomainProblem object at 0x102969810>
>>>