# Softanza > Softanza is the Governed Software Platform of the AI Age: declare what you know, a court keeps it, the AI model comes last. One engine, written in Zig, handles text, exact numbers, tables, graphs, maps, images, sound, neural networks, governed agents and the security around them. Its language, Haro, is in construction. Born in Africa, useful to the world. > The book: Mansour Ayouni, Softanza: The Governed Software Platform of the AI Age (second of the AYOUNI books), AYOUNI, 2026, draft. English reader https://mayouni.github.io/ayouni/books/softanza/en/ , French reader https://mayouni.github.io/ayouni/books/softanza/fr/ , manifest https://mayouni.github.io/ayouni/books/softanza/book.json . Every page is a draft not yet read by the author. This site was generated from the library at commit 0e72e2e2c. Its method examples, recipes and narrations were run inside the library before publication, and each output shown is that run's; what did not run is not shown as run. The site is in English and French; this file links the English pages. ## Run a program first Softanza runs today on the runtime of its former host language, kept so that the code already written keeps working; a bridge is in construction, and Haro is the destination. To run a program today: 1. `git clone https://github.com/mayouni/stzlib.git`, then `cd stzlib/libraries/stzlib` 2. the runtime, version 1.27.0; the install page names it and links its download (the Zig engine ships compiled for Windows and builds for Linux and macOS from source) 3. a file `first.ring` in that folder, whose first line is `load "stzLib.ring"`, run with the runtime's command given on the install page; the first run takes about seven seconds The install page: https://mayouni.github.io/stzsite/en/start.html#install. Methods take the parameters given as `signature` in https://mayouni.github.io/stzsite/agents/index.json, and the global functions are listed there under `functions`. ## How to think and write Softanza Read this before the method list. The page is https://mayouni.github.io/stzsite/en/way.html; the rules are stated at https://mayouni.github.io/stzsite/en/craft.html#rules. Seven steps of thought: 1. Define the problem in natural terms and take its keywords out. (rules 14, 12) e.g. Uppercasing and then spacifying 'softanza', so we get 'S O F T A N Z A' 2. Select the object the problem is about. (rules 1) e.g. o1 = new stzList([ "A", "", "B", "", "", "C" ]) 3. Ask whether it contains. (rules 9, 2) e.g. ? o1.ContainsEmptyStrings() #--> 1 4. Ask how many. (rules 9, 3) e.g. ? o1.CountEmptyStrings() #--> 3 5. Ask where. (rules 7, 10) e.g. ? o1.FindEmptyStrings() #--> [ 2, 4, 5 ] 6. Act on the positions, or call the verb whose name says the act. (rules 6, 4, 8, 5) e.g. o1.ReplaceEmptyStrings(:With = "~") 7. Celebrate and repeat: the answer is read under its arrow, and the chain keeps its history. (rules 3) e.g. Qh(12500).AddQ(500). ... History() Fourteen rules of writing: 1. A value is lifted to its object by Q(), or by its typed lifter when the type is the point. e.g. Q("Niamey ♥") 2. A scene is a brace block on one object, and the questions are asked inside it. e.g. Q("Niamey ♥") { ? NumberOfChars() ? Uppercased() } 3. Every printed line carries its answer under #-->; a multi-line answer is drawn as the console shows it. e.g. ? o1.CountEmptyStrings() #--> 3 4. A parameter is named, and the name reads as English. e.g. Q("tea, rice, tea").Replaced("tea", :With = "coffee") 5. A chain mirrors the order of thought: one step per line, the dot at the end. e.g. Q("LIFE").LowercaseQ().SpacifyQ(). ... 6. The form of the verb says what happens: Remove acts, Removed gives a copy, RemoveQ hands the object back. e.g. Remove() Removed() RemoveQ() 7. Suffixes and prefixes are small and each means one thing: CS, XT, FF, W, Z, ZZ. e.g. FindNthCS(2, "arem", :CS = FALSE) 8. A function has alternatives for the way a person says it. e.g. NumberOfOccurrenceOfCharLeftSide("-") HowManyOccurrenceOfCharRightSide("-") 9. Precision over generality, when it costs nothing: NumberOfChars() over Size(); ContainsBoth, ContainsAll, ContainsSome. e.g. Q("one two three").ContainsBoth("one", "three") 10. Code travels inside an argument as a small string, with @item, @char, @1 as placeholders. e.g. o.FindW("{ @item > 5 }") 11. Small literal languages live in strings. e.g. L(' "♥1" : "♥3" ') 12. A sentence may stay near-natural. e.g. _(8).IsA(:Number).Which('IsDoubleOf(4)')._ 13. A function may be named in any human language. e.g. 字符数() 14. A comment speaks before the code, in the teacher's voice; a test block is framed by /*--- title, pr() and pf(). e.g. # the passive form returns a copy and keeps the original ## Ask the library - [Ask the library](https://mayouni.github.io/stzsite/en/ask.html): how a program asks Softanza (Ask, HowTo, ExplainMethod), every call run, measured against the library's own recipes - [Machine index](https://mayouni.github.io/stzsite/agents/index.json): every class and method with its explanation, every recipe with its code and output, every narration run, as JSON - [Coding agents](https://mayouni.github.io/stzsite/en/coding-agents.html): what an agent reaches today, and the stz command decided for it ## Documentation - [Documentation](https://mayouni.github.io/stzsite/en/docs.html): the whole scope, area by area - [Reference](https://mayouni.github.io/stzsite/en/reference.html): 575 classes, each method with the explanation the library gives of itself; 1,177 methods have an entry with examples run - [How-to](https://mayouni.github.io/stzsite/en/howto.html): 28 recipes, each a task, its code and its output, run - [Narrations](https://mayouni.github.io/stzsite/en/narrations.html): the author's articles, 135 essays each a page, their code run in Haro's name where it can run - [The book](https://mayouni.github.io/stzsite/en/book.html): the Elementary Introduction, fifteen chapters in four languages; 15 proof pages show each chapter's cells run, the guard that proves them, and its exercises proving themselves ## How-to - [Add up all the numbers in a list](https://mayouni.github.io/stzsite/en/howto/list-sum.html): stzListOfNumbers.Sum, stzList.Sum - [Check whether a list contains an item](https://mayouni.github.io/stzsite/en/howto/list-contains.html): stzList.Contains - [Compute the average (mean) of a list of numbers](https://mayouni.github.io/stzsite/en/howto/list-average.html): stzListOfNumbers.Average - [Find the position of an item in a list](https://mayouni.github.io/stzsite/en/howto/list-find.html): stzList.Find, stzList.FindItem - [Get the first or last element of a list](https://mayouni.github.io/stzsite/en/howto/list-first-last.html): stzList.FirstItem, stzList.LastItem - [Get the largest or smallest value in a list](https://mayouni.github.io/stzsite/en/howto/list-max-min.html): stzListOfNumbers.Max, stzListOfNumbers.Min - [Keep only the list items that match a condition](https://mayouni.github.io/stzsite/en/howto/list-filter.html): stzList.Filter - [Remove duplicate items from a list (keep the unique ones)](https://mayouni.github.io/stzsite/en/howto/list-remove-duplicates.html): stzList.RemoveDuplicates, stzList.NoDuplicates, stzListOfNumbers.Unique - [Reverse the order of items in a list](https://mayouni.github.io/stzsite/en/howto/list-reverse.html): stzList.Reverse, stzList.Reversed - [Sort a list into ascending order](https://mayouni.github.io/stzsite/en/howto/list-sort.html): stzList.Sort, stzList.Sorted, stzListOfNumbers.Sorted - [Check whether a number is even or odd](https://mayouni.github.io/stzsite/en/howto/number-even-odd.html): stzNumber.IsEven, stzNumber.IsOdd - [Check whether a number is prime](https://mayouni.github.io/stzsite/en/howto/number-is-prime.html): stzNumber.IsPrime - [Get all the factors (divisors) of a number](https://mayouni.github.io/stzsite/en/howto/number-factors.html): stzNumber.Factors, stzNumber.PrimeFactors - [Check whether a string contains a substring](https://mayouni.github.io/stzsite/en/howto/string-contains.html): stzString.Contains, stzString.FindFirst, stzString.NumberOfOccurrence - [Check whether a string starts or ends with something](https://mayouni.github.io/stzsite/en/howto/string-starts-ends-with.html): stzString.StartsWith, stzString.EndsWith - [Convert a string to upper case (or lower case)](https://mayouni.github.io/stzsite/en/howto/string-uppercase.html): stzString.Uppercased, stzString.Lowercased - [Count how many times a substring appears](https://mayouni.github.io/stzsite/en/howto/string-count-occurrences.html): stzString.Count - [Find where a substring occurs in a string](https://mayouni.github.io/stzsite/en/howto/string-find.html): stzString.Find, stzString.FindFirst - [Remove leading and trailing whitespace from a string](https://mayouni.github.io/stzsite/en/howto/string-trim.html): stzString.Trimmed, stzString.TrimmedLeft, stzString.TrimmedRight - [Repeat a string several times](https://mayouni.github.io/stzsite/en/howto/string-repeat.html): stzString.Repeated - [Replace occurrences of one substring with another](https://mayouni.github.io/stzsite/en/howto/string-replace.html): stzString.Replace - [Reverse the characters of a string](https://mayouni.github.io/stzsite/en/howto/string-reverse.html): stzString.Reversed - [Split a string into parts on a delimiter](https://mayouni.github.io/stzsite/en/howto/string-split.html): stzString.Split - [Detect the emotional tone (positive or negative) of some text](https://mayouni.github.io/stzsite/en/howto/text-sentiment.html): stzText.Sentiment, stzText.SentimentScore, stzText.IsPositive - [Detect which natural language a text is written in](https://mayouni.github.io/stzsite/en/howto/text-detect-language.html): stzText.Language - [Find the main topics or key phrases a text is about](https://mayouni.github.io/stzsite/en/howto/text-topics.html): stzText.KeyPhrases, stzText.RankedKeywords, stzText.TopKeyPhrase - [Find the people, places, and organizations mentioned in text](https://mayouni.github.io/stzsite/en/howto/text-entities.html): stzText.NamedEntities, stzText.PersonNames, stzText.Organizations, stzText.Locations - [Reduce words to their base or root form (lemmatize / stem)](https://mayouni.github.io/stzsite/en/howto/text-normalize-words.html): stzText.Lemmatized, stzText.Stemmed, stzText.AutoLemmatized ## Areas - [String](https://mayouni.github.io/stzsite/en/atlas/string.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/string.html - [Pattern matching](https://mayouni.github.io/stzsite/en/atlas/regex.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/regex.html - [Collections & objects](https://mayouni.github.io/stzsite/en/atlas/collections.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/collections.html - [Numeric & optimization](https://mayouni.github.io/stzsite/en/atlas/numeric.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/numeric.html - [Tables & data](https://mayouni.github.io/stzsite/en/atlas/tables.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/tables.html - [Internationalization](https://mayouni.github.io/stzsite/en/atlas/i18n.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/i18n.html - [NLP & linguistics](https://mayouni.github.io/stzsite/en/atlas/nlp.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/nlp.html - [Neural tier](https://mayouni.github.io/stzsite/en/atlas/neural.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/neural.html - [Agents & conversation](https://mayouni.github.io/stzsite/en/atlas/agents.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/agents.html - [Graphics](https://mayouni.github.io/stzsite/en/atlas/graphics.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/graphics.html - [Geo & cartography](https://mayouni.github.io/stzsite/en/atlas/geo.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/geo.html - [Diagramming & graphs](https://mayouni.github.io/stzsite/en/atlas/diagramming.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/diagramming.html - [GPU](https://mayouni.github.io/stzsite/en/atlas/gpu.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/gpu.html - [GUI & reactive](https://mayouni.github.io/stzsite/en/atlas/gui.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/gui.html - [Statistics & data-viz](https://mayouni.github.io/stzsite/en/atlas/stats.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/stats.html - [System programming](https://mayouni.github.io/stzsite/en/atlas/system.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/system.html - [Concurrency & distribution](https://mayouni.github.io/stzsite/en/atlas/concurrency.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/concurrency.html - [Web & app server](https://mayouni.github.io/stzsite/en/atlas/web.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/web.html - [Performance](https://mayouni.github.io/stzsite/en/atlas/performance.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/performance.html - [Metaprogramming & code rules](https://mayouni.github.io/stzsite/en/atlas/meta.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/meta.html - [Files & formats](https://mayouni.github.io/stzsite/en/atlas/files.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/files.html - [Binary formats](https://mayouni.github.io/stzsite/en/atlas/binary.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/binary.html - [Security & governance](https://mayouni.github.io/stzsite/en/atlas/security.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/security.html - [Extensibility & foreign code](https://mayouni.github.io/stzsite/en/atlas/extensibility.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/extensibility.html - [Sound](https://mayouni.github.io/stzsite/en/atlas/sound.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/sound.html - [Test & quality system](https://mayouni.github.io/stzsite/en/atlas/testing.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/testing.html - [Documentation system](https://mayouni.github.io/stzsite/en/atlas/documentation.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/documentation.html - [Governance doctrine](https://mayouni.github.io/stzsite/en/atlas/governance.html): what Softanza rethought in this area, its code run, and its guide at https://mayouni.github.io/stzsite/en/guide/governance.html ## Optional - [The platform](https://mayouni.github.io/stzsite/en/platform.html): the platform in plain words - [Architecture](https://mayouni.github.io/stzsite/en/architecture.html): layers, engine, conventions - [French version](https://mayouni.github.io/stzsite/fr/ask.html): the same site in French - [The library on GitHub](https://github.com/mayouni/stzlib): the source, under the MIT licence