Softanza
DémarrerEnglish
Softanza
Pour un programme, et pour un agent

Interroger la bibliothèque

Un programme ne lit pas ce site : il interroge la bibliothèque. Chaque objet Softanza répond à trois questions à partir des explications écrites dans sa propre source, le même texte que la référence montre, sans modèle chargé et avec la même réponse à chaque fois.

Trois questions

Ask(question) rend les trois méthodes dont le sens répond le mieux à la question, avec un score et leur explication. HowTo(intention) rend un appel prêt à écrire : la grammaire des noms compose d'abord un nom de méthode et le vérifie contre la classe, sinon la recherche par le sens le trouve. ExplainMethod(nom) rend l'explication d'une méthode, sa forme et un exemple tiré des tests. Tout objet répond de même : Q([1, 2, 2]).Ask("…") pose la question à sa propre classe.

Ask : les méthodes qui répondent à une question

Softanza
aR = StzSelfDocQ("stzList").Ask("remove duplicates")
for k = 1 to len(aR)
    ? aR[k][1] + "  " + aR[k][2] + "  " + aR[k][3]
next
Sortie
Unique  1.30  remove duplicates / unique (engine-backed)
UniqueCS  1.30  remove duplicates / unique (engine-backed)
RemoveDuplicates  1.30  remove duplicates / unique (engine-backed)

HowTo : un appel pour une intention

Softanza
? StzSelfDocQ("stzString").HowTo("replace one word with another")
Sortie
Q("...").Replace("...", "...")   -- retrieved by meaning (grammar suggested ReplaceAnother, not implemented here) (replace)

ExplainMethod : ce que fait une méthode

Softanza
? StzSelfDocQ("stzList").ExplainMethod("RemoveDuplicates")
Sortie
RemoveDuplicates -- remove duplicates / unique (engine-backed)
  e.g. tested in: Remove duplicates A full cleaning pipeline Removing duplicate items from a list in place with RemoveDuplicates(). Sort and deduplicate

Ask, sur un texte

Softanza
aR = StzSelfDocQ("stzText").Ask("what is the mood of this text")
for k = 1 to len(aR)
    ? aR[k][1] + "  " + aR[k][2] + "  " + aR[k][3]
next
Sortie
Sentiment  1.10  The overall tone/mood of the text as "positive", "negative", or "neutral".
Stem  0.25  Same as Stemmed: The text with every word reduced to its root/stem ("running" -> "run").
Verbs  0.25  The verbs (action words) in the text.

exécuté le 2026-10-02 23:02 dans la bibliothèque au commit 0e72e2e2c, sans modèle neuronal chargé · stzSelfDoc.ring(s'ouvre dans un nouvel onglet) · stzObject.ring(s'ouvre dans un nouvel onglet)

Mesuré : les recettes de la bibliothèque, posées en retour

Les 28 recettes publiées sur ce site disent chacune une intention et nomment les méthodes qui la réalisent. Chaque intention a été posée telle quelle, mot pour mot, à la classe de sa recette. HowTo a proposé la méthode de la recette pour 16 questions et une autre forme du même verbe pour 3 ; Ask en avait une parmi ses trois premières réponses pour 21. Les 9 autres réponses de HowTo sont montrées telles qu'elles sont venues : c'est le travail de la bibliothèque, et il lui est transmis.

Exécuté le 2026-10-02 23:02 dans la bibliothèque au commit 0e72e2e2c, en un seul processus (138.0 s), sans modèle neuronal chargé, comme un agent l'obtient par défaut. Une réponse compte comme « même méthode » si elle nomme une méthode que la recette utilise, « même verbe » si elle en nomme une autre forme (Reverse pour Reversed). Un nom qui se termine par Q dans une réponse est la même méthode, qui rend l'objet pour que l'appel puisse s'enchaîner.

Calculer la moyenne d'une liste de nombres stzListOfNumbers

La recette utilise : Average

HowTo propose : Mean · une autre méthode

Ask répond : Mean, Average, MeanByCoefficient · même méthode

Vérifier qu'une liste contient un élément stzList

La recette utilise : Contains

HowTo propose : Contains · même méthode

Ask répond : IsListOfTexts, ContainsAll, ContainsEach · une autre méthode

Ne garder que les éléments d'une liste qui remplissent une condition stzList

La recette utilise : Filter

HowTo propose : Merge · une autre méthode

Ask répond : Merge, TrimmedToSize, RemoveAllExcept · une autre méthode

Trouver la position d'un élément dans une liste stzList

La recette utilise : Find · FindItem

HowTo propose : FindItem · même méthode

Ask répond : FindItem, FindFirst, FindFirstCS · même méthode

Obtenir le premier ou le dernier élément d'une liste stzList

La recette utilise : FirstItem · LastItem

HowTo propose : LastItem · même méthode

Ask répond : LastItem, FirstItem, Reverse · même méthode

Obtenir la plus grande ou la plus petite valeur d'une liste stzListOfNumbers

La recette utilise : Max · Min

HowTo propose : Bottom3Z · une autre méthode

Ask répond : Bottom3Z, Top3Z, Sort · une autre méthode

Retirer les doublons d'une liste (garder les éléments uniques) stzList

La recette utilise : RemoveDuplicates · NoDuplicates

HowTo propose : RemoveAllExcept · une autre méthode

Ask répond : RemoveAllExcept, RemoveItemsOtherThan, RemoveDuplicates · même méthode

Inverser l'ordre des éléments d'une liste stzList

La recette utilise : Reverse · Reversed

HowTo propose : Reverse · même méthode

Ask répond : Reverse, ReversedCopy, ReverseQ · même méthode

Trier une liste par ordre croissant stzList

La recette utilise : Sort · Sorted

HowTo propose : Sort · même méthode

Ask répond : Sort, SortCS, SortAscending · même méthode

Additionner tous les nombres d'une liste stzListOfNumbers

La recette utilise : Sum

HowTo propose : AddManyOneByOne · une autre méthode

Ask répond : AddManyOneByOne, ManyAddOneByOne, AddManyNumbersOneByOne · une autre méthode

Vérifier si un nombre est pair ou impair stzNumber

La recette utilise : IsEven · IsOdd

HowTo propose : IsNotOdd · une autre méthode

Ask répond : IsNotOdd, IsNotEven, IsOddOrEven · une autre méthode

Obtenir tous les diviseurs d'un nombre stzNumber

La recette utilise : Factors · PrimeFactors

HowTo propose : Factors · même méthode

Ask répond : Factors, Divisors, Dividors · même méthode

Vérifier si un nombre est premier stzNumber

La recette utilise : IsPrime

HowTo propose : ReturnType · une autre méthode

Ask répond : ReturnType, SetReturnType, SetReturnTypeAs · une autre méthode

Vérifier qu'une chaîne contient une sous-chaîne stzString

La recette utilise : Contains · FindFirst · NumberOfOccurrence

HowTo propose : Contains · même méthode

Ask répond : Contains, ContainsDuplicates, ContainsXT · même méthode

Compter combien de fois une sous-chaîne apparaît stzString

La recette utilise : Count

HowTo propose : NumberOfOccurrences · même méthode

Ask répond : NumberOfOccurrences, Count, CountCS · même méthode

Trouver où une sous-chaîne apparaît dans une chaîne stzString

La recette utilise : Find · FindFirst

HowTo propose : Contains · une autre méthode

Ask répond : Contains, Count, CountCS · une autre méthode

Répéter une chaîne plusieurs fois stzString

La recette utilise : Repeated

HowTo propose : Repeat · même verbe, autre forme

Ask répond : Repeat, MultiplyBy, RepeatQ · même verbe, autre forme

Remplacer les occurrences d'une sous-chaîne par une autre stzString

La recette utilise : Replace

HowTo propose : Replace · même méthode

Ask répond : Replace, ReplaceCS, ReplaceQ · même méthode

Inverser les caractères d'une chaîne stzString

La recette utilise : Reversed

HowTo propose : Reverse · même verbe, autre forme

Ask répond : Reverse, ReverseQ, Reversed · même méthode

Découper une chaîne en parties selon un séparateur stzString

La recette utilise : Split

HowTo propose : Split · même méthode

Ask répond : Split, SplitAroundPositions, SplitQ · même méthode

Vérifier si une chaîne commence ou finit par quelque chose stzString

La recette utilise : StartsWith · EndsWith

HowTo propose : StartsWith · même méthode

Ask répond : StartsWith, StartsWithCS, EndsWith · même méthode

Retirer les espaces au début et à la fin d'une chaîne stzString

La recette utilise : Trimmed · TrimmedLeft · TrimmedRight

HowTo propose : Trim · même verbe, autre forme

Ask répond : Trim, Shrink, TrimLeft · même verbe, autre forme

Mettre une chaîne en majuscules (ou en minuscules) stzString

La recette utilise : Uppercased · Lowercased

HowTo propose : IsHybridcase · une autre méthode

Ask répond : IsHybridcase, Uppercase, Lowercase · même verbe, autre forme

Détecter la langue naturelle dans laquelle un texte est écrit stzText

La recette utilise : Language

HowTo propose : Language · même méthode

Ask répond : Language, DetectedLanguage, LemmatizedInLanguage · même méthode

Trouver les personnes, les lieux et les organisations cités dans un texte stzText

La recette utilise : NamedEntities · PersonNames · Organizations · Locations

HowTo propose : NamedEntities · même méthode

Ask répond : NamedEntities, Locations, Organizations · même méthode

Ramener les mots à leur forme de base (lemmatiser, raciniser) stzText

La recette utilise : Lemmatized · Stemmed · AutoLemmatized

HowTo propose : Lemmatized · même méthode

Ask répond : Lemmatized, StemmedInLanguage, Stem · même méthode

Détecter le ton d'un texte, positif ou négatif stzText

La recette utilise : Sentiment · SentimentScore · IsPositive

HowTo propose : Sentiment · même méthode

Ask répond : Sentiment, SentimentScore, SentimentCompound · même méthode

Trouver les sujets ou les expressions clés d'un texte stzText

La recette utilise : KeyPhrases · RankedKeywords · TopKeyPhrase

HowTo propose : KeyPhrases · même méthode

Ask répond : KeyPhrases, KeyPhrasesXT, KeyPhrasesQ · même méthode

Depuis l'extérieur d'un programme

Un agent qui dispose d'un terminal peut déjà exécuter un court programme qui pose ces questions. Les commandes stz ask, stz explain et stz howto, qui répondront sous forme de données avec un code de sortie fiable, sont décidées et pas encore construites ; la page Agents qui codent dit lesquelles et dans quel ordre.

Pour un agent qui lit ce site

Un agent n'a pas besoin des pages : deux fichiers lui donnent le site sous forme de données, générés avec lui à chaque publication.

Les deux fichiers sont en anglais, la langue de la bibliothèque. Ils suivent les règles du site : rien qui n'ait été exécuté n'y est montré comme exécuté.