An ontology can state a rule two ways. Prose: write the rule as English sentences and let a language model apply it while it reads the facts. Compiled: write the rule as an OWL axiom or a Datalog rule, let a reasoner apply it, and use the model only to turn the question into a query. This page asks the same twelve questions both ways, several times each, and counts how often the answer is right, how many different answers come back, and how long it takes. Everything runs in this tab: the reasoner is a few hundred lines of TypeScript, the model runs on your GPU with WebLLM.
| Question | Right answer | Prosemodel applies the rules | Compiledmodel writes a query | Reasonerhand-written query |
|---|
Each dot is one run: right, wrong. Dots with the same letter gave the same answer, so a row of different letters means the same question got different answers.
Solid arrows are stated dependencies. Dashed arrows are triples the reasoner inferred; selecting a question draws the ones its answer rests on. Hexagons are advisories; red ones are critical and open. A red-outlined package is release-blocked.