Experimental semantic language
Semantic state and reasoning from one small grammar
I built Pangine to test whether experience, retained state, and questions can all use the same small grammar.
I originally came up with Pangine by writing down pieces of information in a semantic shape, asking questions about them, and reasoning backward from what the grammar should imply. The current implementation has canonical Concept graphs, recursive observation state, and lazy question matching.
{[cat]->[purrs]}
?[weather_station]:{[rain]->[wet_ground]}
['memory'] ~= {[cat]->[purrs]}
['memory'] @ {['animal']->[purrs]}
$['animal']Pangine does not assign a built-in ontology to names such as [cat] or [purrs]. Applications decide what names mean. The engine preserves their structure, exposes the recursive parts of an experience, and folds compatible literal and wildcard projections when a question is asked.
Current implementation
- Parsing and canonical formatting of the current grammar
- Weakly interned, canonical Concept graphs with engine-owned percept state
- Recursive, observer-scoped experience sets with idempotent replay
- Lazy wildcard projection, shared repeated-output bindings, and ranked question results
- Deterministic positive-weight greedy choice with canonical tie handling
- An interactive console, a progressive Pangine-language walkthrough, regression tests, and research oracles
Pangine's current relevance strengths are deterministic structural coefficients. They are not calibrated probabilities, empirical confidence, or a finished answer model.
Start with literally nothing
The walkthrough begins at the null Concept, [], then adds one piece of grammar at a time. Every block is an actual log of Pangine input and the exact console output. The examples are written directly in Pangine.
command> []
[]
command> [cat]
[cat]
command> [cat][cat][dog]
x2 [cat]
[dog]
command> [cat]->[purrs]
{[cat]->[purrs]}
command> ?[alice]:{[cat]->[purrs]}
?[alice]:{[cat]->[purrs]}From there it builds through grouping, merge, inversion, relevance, Correlations, Observations, mutable percepts, experience, questions, shared output identity, selection, scripts, and snapshots. It finishes with a build-policy scenario that preserves two disagreeing reports without pretending Pangine knows which source is authoritative.
What remains open
I have settled the current deterministic greedy rule for ^, but not the relevance model or the random and filtering strategies that a future sampler could provide. Persistence, sampler integration, distributed execution, and language bindings also remain open. Pangine does not currently include llama.cpp or another external sampler, a vector database, or a Python package.
The current greedy rule stays inside Pangine. The useful connection to current LLM tooling is only a future richer sampler behind the ^ decision operator. Pangine would supply Concept candidates and scores, and the sampler would return one of those Concepts. This does not require loading a model, generating text, or translating information into or out of Pangine.
Try it
git clone https://github.com/caustik/pangine.git
cd pangine
cargo test --all-targets --release
cargo run --bin pangine-consolePangine is source-available under the PolyForm Noncommercial License 1.0.0. Noncommercial use, modification, and distribution are permitted under its terms. Commercial use requires separate permission from APU Software, LLC.