An open standard for organizing story
GNML describes a narrative as structured data: who is in it, where and when things happen, what each event changes, and where in the text each fact comes from. Once a story is organized this way, anything can be attached to it, and everything attached stays consistent.
Structure before pictures
Most tools that turn stories into images or media go straight from words to output. GNML puts a model of the story in between, so that thousands of maps, panels and pages can be made from it without contradicting the text or each other.
Text → Prompt → ImageText → Structured story → Visual logic → OutputSix layers, one story
| Layer | What it holds | In the Shahnameh |
|---|---|---|
| Canon | The source text, with a permanent address for every line | 51,547 couplets, cited as book.section.couplet |
| Narrative | Episodes, scenes and events, in order | 951 sections and the dastans |
| State | Who and what exists, how they are related, and what is true at each point in the story | 1,128 registry entries, 178 family links, 26 plates |
| Visual | Renderable descriptions of people, places and scenes | 99 story maps, manga panels, Pahlevan banners |
| Product | The outputs derived from the story | Book, website, emoji edition, numbers |
| Constraint | Rules that keep it all consistent | One ID per person; every claim traced to a couplet |
What GNML insists on
Rakhsh and the lion, layer by layer
The first of Rostam’s seven labors, section B5.1: Rostam sleeps, a lion comes, and his horse Rakhsh kills it. Here is the same moment in each layer.
He sprang; but Rakhsh, like fire, rose in flame,And charged the lion as the lion came.He struck its head with both forelegs in rage,Then seized its back, his sharpened jaws a cage.He smashed the lion hard against the ground,And tore it till no trace of life was found.Ferdowsi, Shahnameh B5.1.17–19, tr. Farzad and Rhonda Dibachi
rakhshRostam's horse, rose-colored and dappled, chosen from the herds of Zabul. Wounded with Rostam by Esfandiyar and healed by the Simorgh, it dies with him in Shaghad's pit.Horse · named 7 times in this section
rostam-i-ii-iiiSon of Zal and Rudabeh, the greatest Pahlevan of Iran; also called Tahamtan and Piltan. He slays Esfandiyar and dies through his half-brother Shaghad's treachery.The registry keeps him apart from
rostam-iii, a later Rostam of the same name.# Illustrative GNML (draft v0.3): the first labor, B5.1 scene: id: B5.1/lion location: place:wilderness time_of_day: night participants: [rostam-i-ii-iii, rakhsh, creature:lion] events: - id: lion-approach type: movement agents: [creature:lion] source: B5.1.16 - id: rakhsh-attacks type: attack agents: [rakhsh] targets: [creature:lion] source: B5.1.17 - id: lion-killed type: killing agents: [rakhsh] targets: [creature:lion] source: B5.1.19 effects: [ creature:lion → alive: false ] - id: rostam-wakes type: awakening agents: [rostam-i-ii-iii] source: B5.1.20 effects: [ rostam-i-ii-iii → sleeping: false ] provenance: status: explicit # stated in the verse, not inferred confidence: high

lion-approachThe lion comes upon the camp
rakhsh-attacksRakhsh rises to meet it
rakhsh-attacksThe strike
lion-killedThe lion destroyed😴🦁🐎💀
🏇💪🐎🌃🦓🪢🔥🍖😴🦁👀🐎⚔️🦁💀👨😴🌅🐎🤗🙏
The Shahnameh as a data set
The Shahnameh is the first full world built on GNML, and one of the longest poems ever written by a single author. If the method holds here, it holds for any story.
Where GNML stands
GNML is a working draft, at version 0.3. Version 0.4 will add a richer catalogue of event types, a system for motifs, and links between texts. It will be published as an open standard that anyone may implement.
Licenses. The GNML specification is released under the Creative Commons Attribution 4.0 license (CC BY 4.0), and the GNML code under the Apache License 2.0. Use it, extend it and build on it, commercially or not, with credit.
The names GNML and New Naqqali are trademarks of New Naqqali LLC, so that what carries the name is the standard itself.
Interested in using GNML, or in bringing a story to it? Write to Editor@newnaqqali.com.
New Naqqali