Constraints¶
These are the ground rules for designing this library:
This library should be generally interoperable with well-known ML tools, at least:
Numpy
PyTorch/TensorFlow/Jax
This library should in concept be simple to understand to a beginner to the field (or at least to someone with intermediate software engineering knowledge, even if the implementation is complex.
This library should expose an opinionated implementation for creating neurosymbolic programs but be open to extension or modification.
Every public interface must be documented in a way that makes its purpose and function clear to someone who has never used the library before.
The high-level interface for using the library matters more than the low-level implementation detail.
We should have ease of use similar to Hugging Face’s libraries.
Practically speaking, a bored high-schooler should be able to use this library with minimal assistance.