Pangine

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

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.

Learn Pangine from null

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-console

Pangine 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.