Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

FAQ

Is ThoughtML a programming language?

It’s a language for representing reasoning, not for computing. You don’t run a ThoughtML document to produce a result; you write down a structured argument and the tooling reads it back — typed, dated, checkable. The opt-in compute layer evaluates the numbers you authored, but that’s a reading of your reasoning, not a program it executes.

How is it different from a mind map or a bullet list?

A bullet list flattens structure; a mind map captures connection but not meaning. ThoughtML keeps both: every link has a typed relation and a direction, every belief a holder and a confidence, evidence can be defeated by other evidence, and beliefs are dated. Because the structure is explicit and typed, a machine can read it a second way — which a mind map can’t offer.

What does “a mirror, not an oracle” mean?

The engine produces a second, mechanical reading of your structure and tells you where it disagrees with what you wrote — but it never overrules you or decides for you. It surfaces the conflict; you resolve it. See The Mirror.

Why is everything opt-in and off by default?

Two reasons. A document with no derivations serializes identically every time, which keeps output stable and diffable in CI. And it enforces the discipline that computed values never overwrite authored ones — each derived field lives beside what you wrote, never on top of it.

No — that’s the canonical core, and you can write it directly. Most of the time you’ll use the readable surface (analyst noticed metric-shift, team chooses postgres-option), which desugars into the core for you. They produce the same model; merge-conflict-beliefs.thml shows the equivalence.

Why did rejects, mitigates, and strongly/weakly disappear?

v0.1.0 was a deliberate subtraction. rejects and mitigates as relations only duplicated opposes; the strength adverbs each smuggled in a magic number the author never chose. They were removed to keep one honest way to say each thing. (rejects still exists as a posture.) See the project CHANGELOG.

Is the compute layer gone, then?

No — quantities, formulas, expected value, and sensitivity all still ship, behind opt-in flags (--formulas, --decisions, --sensitivity, or --compute for all). v0.1.0 reframed them as an opt-in second reading, not as the language’s headline. See The compute layer.

Can an AI agent write ThoughtML?

That’s a primary design goal. The grammar is small and regular, so an LLM can emit it reliably, and the mirror lets a human or CI audit the result. See ThoughtML for AI agents.

Is the syntax stable?

It’s v0.1.0 — real and usable, but the surface may still move (hence 0.x). Breaking changes will be recorded in the CHANGELOG.

Where’s the formal specification?

The single source of truth is the reference parser in crates/thoughtml. This documentation is derived from it: if the two ever disagree, the parser wins (and that’s a documentation bug worth reporting). There is no separate formal grammar document — this book is the specification, kept honest against the parser.

How do I report a bug or a documentation error?

Open an issue at github.com/Fatin-Ishraq/ThoughtML/issues. If this book and the parser disagree, that’s a documentation bug worth filing.