Metadata-Version: 2.4
Name: dynamicsyntax
Version: 0.1.1
Summary: Python port of DyLan Dynamic Syntax + TTR (parser core)
Author: DyLan Python port
License: BSD-3-Clause (see DyLan upstream LICENSE.txt)
Project-URL: Homepage, https://github.com/incrementaliser/DynamicSyntax
Project-URL: Repository, https://github.com/incrementaliser/DynamicSyntax
Keywords: dialogue,dynamic-syntax,ttr,semantics,parser
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Typing :: Typed
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: networkx>=3.4
Requires-Dist: pydantic>=2.10
Requires-Dist: tqdm>=4.67
Provides-Extra: gui
Requires-Dist: flet>=0.24.0; extra == "gui"
Requires-Dist: matplotlib>=3.8; extra == "gui"
Provides-Extra: nlp
Requires-Dist: nltk>=3.9; extra == "nlp"
Requires-Dist: spacy>=3.8; extra == "nlp"
Provides-Extra: viz
Requires-Dist: plotly>=5; extra == "viz"
Requires-Dist: pandas>=2; extra == "viz"
Dynamic: license-file

# dynamicsyntax

Python 3.13 port of the **DyLan** Dynamic Syntax parser core (Java `qmul.ds`). PyPI distribution name: **`dynamicsyntax`**.

## Install (from PyPI)

```bash
pip install dynamicsyntax
```

Quick API (bundled **2015-english-ttr** grammar when using `backend="ttr"`):

```python
import dynamicsyntax as ds

semantics = ds.parse("a man arrives", "ttr")
print(semantics)
```

The low-level implementation modules live under **`dylan`** (for example `InteractiveContextParser`, `TTRRecordType`); `import dylan` remains supported for advanced use.

Optional extras: `pip install dynamicsyntax[gui]` (Flet desktop), `[nlp]`, `[viz]`.

Console entry points: `dylan-gui` and `dynamicsyntax-gui` (same app).

## Install (development)

```bash
cd dynamicsyntax
uv sync
uv run pytest
```

Optional NLP tokenizers:

```bash
uv sync --extra nlp
```

## Scope

- Working **parser** path: grammar/lexicon resource loading, `InteractiveContextParser`, `parseUtterance`, and the `dynamicsyntax.parse` facade over a bundled grammar snapshot.
- **Not** ported: probabilistic generators, `Feature`, learner GUI stack.

## Publishing (maintainers)

```bash
uv build
uv publish   # requires PyPI API token; try TestPyPI first with --publish-url
```

## License

DyLan upstream license applies to ported logic; see `LICENSE` if copied from the Java project.
