Jump to content

Wikifunctions:Z-ID réservés

From Wikifunctions
This page is a translated version of the page Wikifunctions:Reserved ZIDs and the translation is 100% complete.
Documentation technique de Wikifunctions
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

Tracked in Phabricator:
Task T258914

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 moment
  • Z400 – Z499: réservés à l’usage local
  • Z500 – Z599: types d’erreur essentiels (Z5xx parce que Z5 est une erreur) (Voir Types d’erreur essentiels ci-dessous.)
  • Z600 – Z699: langages de programmation essentiels (Z6xx parce que Z61 est un langage de programmation)
  • Z700 – Z799: non affectés pour le moment
  • Z800 – Z899: définitions des fonctions essentielles avec leurs mises en œuvres intégrées (Z8xx car Z8 est 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 future
  • Z6000 – Z6999: types, fonctions, etc. pour l'utilisation du contenu de Wikidata et d'autres sources Wikimedia
    • Z6000 – Z6099: types pour le contenu de Wikidata et autres sources Wikimedia
    • Z6100 – Z6199: valideurs pour ces types
    • Z6200 – Z6299: implémentation intégrée des valideurs
    • Z6800 – 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 future
  • Z8000 – 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 un Z2, 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 de Z8.
  • 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 de Z11.
  • 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 de Z31.
  • 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 est Z5.
  • Z60: Langue naturelle (Type) : car <ode>Z6 est une chaîne.
  • Z61: Langage de programmation (Type) : car Z16 est 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.
  • Z808 Abstract: List(Pair(Key reference, Any)) ➝ Any
    transforme une liste ordonnée de propriétés en un objet ; « abstrait » a huit lettres.
  • Z810 Prepend 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).
  • Z811 First 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).
  • Z812 List 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).
  • Z813 Empty: List(T) ➝ Boolean
    renvoie l'indication qu'une liste ne contient aucun élément (car Z13 est la liste vide).
  • Z820 Trigger 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.
  • Z821 First: Pair(T1, T2) ➝ T1
    extrait la première valeur d’un couple (car Z22 est un couple).
  • Z822 Second: Pair(T1, T2) ➝ T2
    extrait la seconde valeur d’un couple (car Z22 est un couple).
  • Z844 Boolean equality: Boolean, Boolean ➝ Boolean
    renvoie true si les deux entrées sont les mêmes et false sinon
  • Z860 Language code to language: String ➝ Language
    prend un code de langue fourni en tant que chaîne et renvoie un objet en langue naturelle
  • Z866 String equality: String, String ➝ Boolean
    renvoie true si les deux entrées sont les mêmes et false sinon
  • Z868 Convert: String ➝ List(Character)
    convertit une chaîne en liste de caractères à cause de Z6/String et Z86/Character.
  • Z873 Map: 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
  • Z876 Reduce: 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
  • Z899 Unquote: 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 pas
  • Z506 (attendu, effectif, argument) : le type des arguments ne correspond pas
  • Z507 (appel de fonction) : erreur lors de l’évaluation.
  • Z508 (objet) : clés en conflit.
  • Z509 (errors) : liste d'erreurs
  • Z510 (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 pas
  • Z518 (type attendu, objet, erreur propagée) : le type de l'objet ne correspond pas
  • Z519 (objet) : type de liste non défini
  • Z520 (objet) : mauvais type de liste
  • Z521 (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 manquante
  • Z524 (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 incorrect
  • Z539 (titre de la page) : type du contenu incorrect
  • Z540 (code de langue) : code de langue invalide
  • Z541 (code de langue) : code de langue non trouvé
  • Z542 (type attendu, type obtenu) : type attendu, objet actuel
  • Z543 (nom de type) : type non trouvé
  • Z544 (zid du type, nom du type, nom de type existant) : les noms de type sont en conflit
  • Z545 (zid du type, nom du type, zid de type existant) : les Zid des types sont en conflit
  • Z546 (zid du type, nom du type) : le type embarqué n'a pas été trouvé
  • Z547 (entrée) : format non valide
  • Z548 (message d'erreur, entrée) : JSON non valide
  • Z549 (valeur de référence) : ZReference non valide
  • Z550 (valeur de référence) : ZReference inconnue
  • Z551 (clé, type attendu, type actuel) : le type de schéma ne correspond pas
  • Z552 (indice, type attendu, type actuel) : le type de l'élément de tableau est en conflit
  • Z553 (zobject) : le type de la racine n'est pas autorisé
  • Z554 (collision de ZID, langue) : collision des libellés de plusieurs ZObject
  • Z555 (ZID, titre) : le ZID ne correspond pas au titre de la page
  • Z556 (titre) : titre non valide de la page
  • Z557 (message d'erreur) : l'utilisateur n'a pas les droits
  • Z558 (langage de programmation) : langage de programmation invalide
  • Z559 (aucun) : l'utilisateur n'a pas le droit d'évaluer la fonction
  • Z560 (résultat d'évaluation) : résultat d'évaluations non valide
  • Z561 (erreur propagée) : demande d'évaluation non valide
  • Z562 (propriété manquante) : demande incomplète d'évaluation
  • Z563 (appel) : appel par un exécuteur non réentrant
  • Z564 (contenu) : réponse non valide de l'exécuteur
  • Z565 (propriété manquante) : demande incomplète d'exécution
  • Z570 (taux limite de l'orchestrateur) : le taux limite a été atteint dans l'orchestrateur
  • Z571 (taux limite de l'évaluateur) : le taux limite a été atteint dans l'évaluateur
  • Z572 (résursivité maximale, nom de fonction) : limite de récursivité atteinte dans l'orchestrateur
  • Z573 (récursivité maximale, nom de fonction) : limite de récursivité atteinte dans l'évaluateur
  • Z574 (temps limite) : temporistion expirée dans l'orchestrateur
  • Z575 (temps limite) : temporisation expirée dans l'évaluateur

Voir aussi