Wikifunctions:Z-ID réservés
| Présentations générales |
|---|
| Fonctionnalités pour l'utilisateur |
| Spécifique aux serveurs |
- Le wiki des fonctions précharge actuellement quelques Objets-Z statiques à l’installation. Nous aurons au cours du temps besoin de quelques autres de ces objets.
Cette page concerne l’amusante discussion ayant fait son chemin sur combien de Z-ID nous devrions réserver, ou bien s’ils doivent être contigus et quels devraient être les premiers Z-ID définis. Ce peut aussi être le lieu pour planter quelques « œufs de Pâques », une caractéristique qui s’est avérée assez populaire dans Wikidata.
Notez que, afin de simplifier la discussion, nous ne songeons pas encore à la possibilité future d’avoir des instances fédérées du logiciel faisant fonctionner le wiki des fonctions, ni de comment cela fonctionnera. Nous ne songeons qu’à quels Z-ID devraient être réservés pour le wiki des fonctions lui-même.
Les Z-ID réservés devraient-ils être contigus ?
Oui.
Il y a une certaine simplicité à dire « tous les Z-ID à 4 chiffres ou moins sont réservés ».
Il y a aussi le modèle hybride consistant à réserver tous les Z-ID en dessous d’un certain numéro et à réserver en plus certains Z-ID comme œufs de Pâques ou pour des raisons spécifiques (comme ce qu’a fait Wikidata).
Combien de Z-ID devrions-nous réserver ?
Réservons tous les Z-ID avec quatre chiffres ou moins.
Tous les objets essentiels seraient dans les Z-ID avec trois chiffres ou moins et nous gardons les Z-ID à quatre chiffres pour les langues.
Ceci suit sommairement les propositions faites par des membres de la communauté sur la page de discussion et sur Phabricator. En particulier, nous ne compacterons également pas cet espace.
Z-ID actuellement réservés
Voir Wikifunctions:Reserved ZIDs/all pour la liste actuelle des objets prédéfinis.
Plages
Nous réservons certains espaces pour certains types d’objets.
Z1–Z99: types essentiels. (Voir § Types essentiels ci-dessous.)Z100–Z199: validateurs pour les types essentiels (c’est-à-dire que pour chaque type essentiel, +100 donne son validateur), par ex. Z104 est le validateur pour Z4/Type.Z200–Z299: mises en œuvre intégrées pour les validateurs des types essentiels (c’est-à-dire que Z204 est la mise en œuvre intégrée pour le validateur de Z4/Type).Z300–Z399: non affecté pour le momentZ400–Z499: réservés à l’usage localZ500–Z599: types d’erreur essentiels (Z5xxparce queZ5est une erreur) (Voir Types d’erreur essentiels ci-dessous.)Z600–Z699: langages de programmation essentiels (Z6xxparce queZ61est un langage de programmation)Z700–Z799: non affectés pour le momentZ800–Z899: définitions des fonctions essentielles avec leurs mises en œuvres intégrées (Z8xxcarZ8est une fonction) (Voir Fonctions essentielles ci-dessous.)Z900–Z999: mises en œuvre intégrées pour les fonctions essentielles (elles sont à +100 de leur Z8xx respectif).Z1000–Z2999: langues naturelles (instances de Z60)Z3000–Z5999: réservé pour une utilisation futureZ6000–Z6999: types, fonctions, etc. pour l'utilisation du contenu de Wikidata et d'autres sources WikimediaZ6000–Z6099: types pour le contenu de Wikidata et autres sources WikimediaZ6100–Z6199: valideurs pour ces typesZ6200–Z6299: implémentation intégrée des valideursZ6800–Z6899: fonctionnalités d'aide pour ces types qui doivent être intégrées (par exemple, la recherche, l'égalité)Z6900–Z6999: implémentations intégrées des fonctions d'aide
Z7000–Z7999: réservé pour une utilisation futureZ8000–Z8999: Testeurs pour chaque fonction prédéfinie (par exemple Z801 est testé via Z8010, Z8011, Z8012, … Z8019).Z9000–Z9999: réservé pour une utilisation future
Types essentiels
Z1: Objet Z, la racine.Z2: Object persistant (Type) : tout ce qui est sur le wiki est unZ2, c’est pourquoi il a un Z-ID aussi petit.Z3: Clé (Type) : car le mot key a trois lettres en anglais.Z4: Type (Type) : car le mot type a quatre lettres en anglais.Z5: Erreur (Type) : car le mot error a cinq lettres en anglais. (Voir Types d’erreur essentiels ci-dessous.)Z6: Chaîne (Type) : car le mot string a six lettres en anglais.Z7: Appel de fonction (Type) : car les appels de fonctions sont la magie principale du système et 7 est un nombre magique. Il est également proche deZ8.Z8: Fonction (type générique, donc techniquement une fonction) : car le mot function a huit lettres en anglais. (Voir Fonctions essentielles ci-dessous.)Z9: Référence (Type) : car le mot reference a neuf lettres en anglais.Z10: Liste (type générique, donc techniquement une fonction) : car c’est le premier nombre ayant deux chiffres.Z11: Texte monolingue (Type) : car tout est dans une langue, et il y a un un dans le nom.Z12: Texte multilingue (Type) : car c’est une extension deZ11.Z13: liste vide (Liste) : la nature a horreur du vide et les gens n’aiment pas le 13.Z14: Mise en œuvre (Type) : car le mot implementation a quatorze lettres en anglais.Z15: Pas encore attribué.Z16: Code (Type) : aucune bonne raison, c’est proche de Z14 et de Z61/Langage de programmation.Z17: Déclaration d’argument (Type).Z18: Référence d’argument (Type).Z19: Pas encore attribué.Z20: Testeur (Type) : car 20/20 est la vision parfaite et les tests rendent les erreurs visibles.Z21: Unité (Type).Z22: Résultat d’évaluation (Type).Z23: Rien (Type).Z24: void (Unité).Z25: Pas encore attribué.Z26: Pas encore attribué.Z27: Pas encore attribué.Z28: Pas encore attribué.Z29: Pas encore attribué.Z30: Pas encore attribué.Z31: Ensemble de texte monolingue (Type).Z32: Ensemble de texte multilingue (Type) : car c'est une extension deZ31.Z33: Pas encore attribué.Z34: Pas encore attribué.Z35: Pas encore attribué.Z36: Pas encore attribué.Z37: Pas encore attribué.Z38: Pas encore attribué.Z39: Référence de clé (Type) : car Z3/Clé Z9/Référence.Z40: Booléen (Type) : car Boole le premier a publié dans les années (18)40.Z41: vrai (Booléen).Z42: faux (Booléen).Z43: Pas encore attribué.Z44: Pas encore attribué.Z45: Pas encore attribué.Z46: Pas encore attribué.Z47: Pas encore attribué.Z48: Pas encore attribué.Z49: Pas encore attribué.Z50: Type d’erreur (Type) : car Erreur estZ5.Z60: Langue naturelle (Type) : car <ode>Z6 est une chaîne.Z61: Langage de programmation (Type) : carZ16est du code.Z80: Octet (Type) : parce que c’est un octet.Z84: Union (Type).Z85: Pas encore attribué.Z86: Code point (Type) : car ce n’est pas exactement un Z80/Octet, mais plutôt une Z6/Chaîne.Z99: Quote (Type) : car cela ressemble un peu au signe de fin de citation en anglais.
Fonctions essentielles
Z801Echo: T ➝ T- renvoie l'entrée non modifiée
Z802If: Boolean, T, T ➝ T- renvoie le deuxième argument si le premier est vrai, sinon le troisième ; « si » a deux lettres.
Z803Value by key: Key reference, Any ➝ Any- renvoie la valeur par clé de l’objet ; Z3/Clé.
Z805Reify: Any ➝ List(Pair(Key reference, Any))- transforme tout objet en une liste ordonnée de paires clé – valeur ; « reify » a cinq lettres en anglais.
Z808Abstract: List(Pair(Key reference, Any)) ➝ Any- transforme une liste ordonnée de propriétés en un objet ; « abstrait » a huit lettres.
Z810Prepend element to list: T, List(T) ➝ List(T)- insère un objet en tête d’une liste ordonnée d’objets (parce que Z10 est une liste).
Z811First element: List(T) ➝ T- fournit le premier élément d’une liste ordonnée d’objets (car Z10 est une liste dont nous prenons le premier élément).
Z812List without first element: List(T) ➝ List(T)- fournit la liste sans le premier objet (car Z10 est une liste et nous en prenons le second, le reste).
Z813Empty: List(T) ➝ Boolean- renvoie l'indication qu'une liste ne contient aucun élément (car Z13 est la liste vide).
Z820Trigger Metadata: String, Any ➝ Any- Prendre la valeur donnée (erreur ou autre métadonnée) et l'émettre dans l'enveloppe de réponse à l'appel de fonction sous le nom de l'entrée String.
Z821First: Pair(T1, T2) ➝ T1- extrait la première valeur d’un couple (car Z22 est un couple).
Z822Second: Pair(T1, T2) ➝ T2- extrait la seconde valeur d’un couple (car Z22 est un couple).
Z844Boolean equality: Boolean, Boolean ➝ Boolean- renvoie
truesi les deux entrées sont les mêmes etfalsesinon
- renvoie
Z860Language code to language: String ➝ Language- prend un code de langue fourni en tant que chaîne et renvoie un objet en langue naturelle
Z866String equality: String, String ➝ Boolean- renvoie
truesi les deux entrées sont les mêmes etfalsesinon
- renvoie
Z868Convert: String ➝ List(Character)- convertit une chaîne en liste de caractères à cause de Z6/String et Z86/Character.
Z873Map: Function, List ➝ List- Renvoie une liste où chacun des Z1/objects d'une Z881/List d'entrée a été traité par la Z8/Function fournie
Z876Reduce: Function, List, Object ➝ Object- Renvoie une valeur après avoir exécuté la fonction donnée sur chacun des objets de la liste en commençant par l'objet fourni
Z868(deprecated) Convert: String ➝ List(Character)- convertit une chaîne en liste de Caractères, car Z6/Chaîne et Z86/Caractère. Ceci a été remplacé par Z22717.
Z881Typed list: Type ➝ Type- prend un type et renvoie un type de liste d'éléments de ce type
Z882Typed pair: Type, Type ➝ Type- prend deux types et renvoie un type qui représente la paire
Z883Map: … ➝ …- …
Z884Union: T, T ➝ T- prend deux types et renvoie un type qui accepte les deux
Z885Error type to type: Error type ➝ Type- prend un type d'erreur et crée un type à partir de celui-ci
Z886(deprecated) Convert: List*(Character) ➝ String- convertit une liste de Caractères en une chaîne, car Z86/Caractère et Z6/Chaîne. Ceci a été remplacé par Z22693.
Z887Reduce: … ➝ …- …
Z888(deprecated) Same: Character, Character ➝ Boolean- compare deux caractères et renvoie s’ils sont égaux. A été remplacé par Z22683
Z899Unquote: Quote ➝ Any- Enlève les guillemets d'un Objet-Z, car Z99/Citation.
Types d’erreur essentiels
Z501(message d’erreur, entrée) : erreur de syntaxe.Z502(sous-type, valeur) : mal formé, pointe vers Z52x ou Z53x.Z503(nom de fonction) : pas encore implémentéZ504(zid) : Z-ID non trouvéZ505(attendu, effectif, arguments) : le nombre d’arguments ne correspond pasZ506(attendu, effectif, argument) : le type des arguments ne correspond pasZ507(appel de fonction) : erreur lors de l’évaluation.Z508(objet) : clés en conflit.Z509(errors) : liste d'erreursZ510(aucun) : néant.Z511(référence de clé, objet) : clé non trouvée.Z512(objet) : erreur Z9.Z513(objet résolu) : objet résolu sans Z2K2.Z514(mise en œuvre) : la mise en œuvre intégrée n'existe pas.Z515(mise en œuvre) : ID erroné de mise en œuvre intégrée.Z516(clé, valeur erronée) : erreur de valeur de l’argument.Z517(type attendu, type actuel, valeur renvoyée, erreur propagée) : le type de retour ne correspond pasZ518(type attendu, objet, erreur propagée) : le type de l'objet ne correspond pasZ519(objet) : type de liste non définiZ520(objet) : mauvais type de listeZ521(valeur incorrecte) : les Objets-Z ne doivent pas être numériques, booléens ou nuls.Z522(index erroné dans le tableau, erreur propagée) : élément de tableau mal formé.Z523(objet) : clé Z1K1 manquanteZ524(valeur de Z1K1) : la valeur de Z1K1 ne doit pas être une chaîne ni un tableau.Z525(clé) : clé non valide.Z526(clé, erreur propagée) : valeur mal formée.Z531(objet complet) : un objet Z6 doit avoir 2 clés.Z532(objet complet) : objet Z6 sans clé Z6K1.Z533(valeur de Z6K1) : la valeur de Z6K1 doit être une chaine.Z534(objet complet) : un objet Z9 doit avoir 2 clés.Z535(objet complet) : objet Z9 sans clé Z9K1.Z536(valeur de Z9K1) : la valeur de Z9K1 doit être une chaîne JSON.Z537(valeur de Z9K1) : la valeur de Z9K1 doit être similaire à une référence.Z538(titre de la page) : espace de noms incorrectZ539(titre de la page) : type du contenu incorrectZ540(code de langue) : code de langue invalideZ541(code de langue) : code de langue non trouvéZ542(type attendu, type obtenu) : type attendu, objet actuelZ543(nom de type) : type non trouvéZ544(zid du type, nom du type, nom de type existant) : les noms de type sont en conflitZ545(zid du type, nom du type, zid de type existant) : les Zid des types sont en conflitZ546(zid du type, nom du type) : le type embarqué n'a pas été trouvéZ547(entrée) : format non valideZ548(message d'erreur, entrée) : JSON non valideZ549(valeur de référence) : ZReference non valideZ550(valeur de référence) : ZReference inconnueZ551(clé, type attendu, type actuel) : le type de schéma ne correspond pasZ552(indice, type attendu, type actuel) : le type de l'élément de tableau est en conflitZ553(zobject) : le type de la racine n'est pas autoriséZ554(collision de ZID, langue) : collision des libellés de plusieurs ZObjectZ555(ZID, titre) : le ZID ne correspond pas au titre de la pageZ556(titre) : titre non valide de la pageZ557(message d'erreur) : l'utilisateur n'a pas les droitsZ558(langage de programmation) : langage de programmation invalideZ559(aucun) : l'utilisateur n'a pas le droit d'évaluer la fonctionZ560(résultat d'évaluation) : résultat d'évaluations non valideZ561(erreur propagée) : demande d'évaluation non valideZ562(propriété manquante) : demande incomplète d'évaluationZ563(appel) : appel par un exécuteur non réentrantZ564(contenu) : réponse non valide de l'exécuteurZ565(propriété manquante) : demande incomplète d'exécutionZ570(taux limite de l'orchestrateur) : le taux limite a été atteint dans l'orchestrateurZ571(taux limite de l'évaluateur) : le taux limite a été atteint dans l'évaluateurZ572(résursivité maximale, nom de fonction) : limite de récursivité atteinte dans l'orchestrateurZ573(récursivité maximale, nom de fonction) : limite de récursivité atteinte dans l'évaluateurZ574(temps limite) : temporistion expirée dans l'orchestrateurZ575(temps limite) : temporisation expirée dans l'évaluateur