Language-Model Domain Language: planning domains as typed, pydantic-validated JSON with PDDL compilation and template-driven NL rendering
Project description
LMDL — Language-Model Domain Language
A meta-language for the LLM/symbolic-planner interface. LMDL lets you define a planning domain as typed, pydantic-validated JSON that LLMs can generate reliably, with PDDL as a compilation target and template-driven natural-language rendering.
Repository layout
lmdl/ the installable package. Source code for the package lives here.
docs/ Sphinx docs
experiments/ the LLM study suite — not part of the installed package
autoplanbench/ AutoPlanBench submodule: benchmark PDDL + APB's NL pipeline
domains/ LMDL domain profiles (*.lmdl.json) for the IPC benchmark domains
harness/ importable experiment library
run_all.py reproduces the full study in its standard config
run_experiment.py plan-generation experiment (lmdl / pddl / apb_nl pipelines)
run_generation.py action- and predicate-generation experiment
run_apb_preprocessing.py reproduce APB's NL encodings and measure their cost
compare_sizes.py representation size comparison (PDDL vs LMDL vs NL)
summarize_results.py results table from a .jsonl results file
Dev setup
Nix
Requires Nix with flakes enabled and direnv.
cd ~/lmdl
direnv allow # activates the flake devshell (Python 3.12 + deps)
python3.12 -m venv .venv
pip install -e .
pytest
The devshell registers .githooks/ as the git hooks path; the pre-commit hook formats staged Python files with black. CI (.github/workflows/ci.yml) runs black --check and the test suite on pushes and PRs. Without the devshell, enable the hook manually with git config core.hooksPath .githooks.
Without direnv, use nix develop directly:
nix develop --command bash -c "python3.12 -m venv .venv && source .venv/bin/activate && pip install -e . && pytest"
Other
Make sure python3.12 is installed and install the projects deps using:
cd ~/lmdl
python3.12 -m venv .venv
pip install -e .
pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lmdl-0.1.0.tar.gz.
File metadata
- Download URL: lmdl-0.1.0.tar.gz
- Upload date:
- Size: 30.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b343b5562f1aa5ac2cac8efeb301e6ef105e1f16141cba7e91acafe365340b8
|
|
| MD5 |
8b5920fa97ebda363ea97dca7237d6f2
|
|
| BLAKE2b-256 |
f75a31132bb9c39ec480fff18f07213ff0b0d135337d198f67b9ce28bd278a7c
|
Provenance
The following attestation bundles were made for lmdl-0.1.0.tar.gz:
Publisher:
release.yml on brennanmk/lmdl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lmdl-0.1.0.tar.gz -
Subject digest:
0b343b5562f1aa5ac2cac8efeb301e6ef105e1f16141cba7e91acafe365340b8 - Sigstore transparency entry: 2169621883
- Sigstore integration time:
-
Permalink:
brennanmk/lmdl@79ab307e73e865bee423e5a53a3d3e45b7f921d1 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/brennanmk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@79ab307e73e865bee423e5a53a3d3e45b7f921d1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file lmdl-0.1.0-py3-none-any.whl.
File metadata
- Download URL: lmdl-0.1.0-py3-none-any.whl
- Upload date:
- Size: 24.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39bfa23cf8b2338b6513e50f58c8eb878529be840333ff06d15bfc52904d5ef6
|
|
| MD5 |
9a0022e208c0094573489c81a4259596
|
|
| BLAKE2b-256 |
981fe98ef4ca17566ebc9a69468c9e8cfd0235423c460e0649ccabd89ff9fb5c
|
Provenance
The following attestation bundles were made for lmdl-0.1.0-py3-none-any.whl:
Publisher:
release.yml on brennanmk/lmdl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lmdl-0.1.0-py3-none-any.whl -
Subject digest:
39bfa23cf8b2338b6513e50f58c8eb878529be840333ff06d15bfc52904d5ef6 - Sigstore transparency entry: 2169621944
- Sigstore integration time:
-
Permalink:
brennanmk/lmdl@79ab307e73e865bee423e5a53a3d3e45b7f921d1 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/brennanmk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@79ab307e73e865bee423e5a53a3d3e45b7f921d1 -
Trigger Event:
push
-
Statement type: