Metadata-Version: 2.4
Name: wampy-prolog
Version: 0.1.0
Summary: A Numba-accelerated Warren Abstract Machine implementation for Prolog.
Project-URL: Homepage, https://github.com/cognitive-modeling/WAMpy
Project-URL: Issues, https://github.com/cognitive-modeling/WAMpy/issues
Project-URL: Repository, https://github.com/cognitive-modeling/WAMpy
Author: Dominik Magiera, Lukas Roehrig, Frank Jaekel
License-Expression: MIT
License-File: LICENSE
Keywords: cognitive science,computational cognitive modeling,simulation,working memory
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.11
Requires-Dist: numba
Requires-Dist: numba-toolbox
Requires-Dist: numpy
Provides-Extra: dev
Requires-Dist: pytest; extra == 'dev'
Provides-Extra: prolog
Requires-Dist: janus-swi; extra == 'prolog'
Description-Content-Type: text/markdown

# WAMpy

## Installation

```console
pip install wampy-prolog
```
### Usage.

WAMpy is used as a Python library rather than as a standalone Prolog interpreter.

```
import wampy as wam
ast_program, symbol_table = wam.parse("parent(anakin, luke).")
compiled = wam.compile(ast_program)
wam.query_from_str(compiled, "parent(X, luke).", symbol_table)
```

## Limitations

The current implementation provides an X-register subset of the WAM supporting atoms, variables, compound structures, predicate calls, tail calls, unification, and linear clause backtracking.
    It omits standard environment and Y-register instructions, native list operations, clause-indexing instructions, and canonical user-level cut support.
    WAMpy also does not provide the general SWI-Prolog built-in predicate library such as arithmetic, and meta-calls.
