Wikipédia abstraite/Mises à jour/2020-11-25
◀ | Actualités de la Wikipédia abstraite | ▶ |
- Chaque objet dans Wikifonctions sera identifé par son Z-ID, similaire aux Q-ID et aux L-ID de Wikidata pour les éléments et les lexèmes respectivement.
Alors que la plupart des Z-ID seront simplement attribués séquentiellement, nous prévoyons d’avoir quelques Z-ID choisis intentionnellement , de la même façon que pour les Q-ID et les L-ID. Au contraire des Q-ID et L-ID, le but de ces Z-ID est moins pour eux d’être des « œufs de Pâques » mais plutôt d’être mnémoniques pour aider à s’en souvenir.
Non, non, ne vous inquiétez pas — vous ne devriez pas avoir à vous souvenir de tous les the Z-ID que vous aurez besoin d’utiliser. L’interface devrait masquer la plupart des Z-ID. Mais parfois, que ce soit dans les versions initiales du système lorsque l’interface n’est pas encore suffisamment complète, ou plus tard dans des tâches de débogage ou lors de l’inspection ou la création de certains messages sur le fil, il pourrait être utile d’avoir des Z-ID fondamentaux assez faciles pour s’en souvenir plutôt que des affectations entièrement arbitraires.
Je vous invite tous à nous joindre pour trouver de bons Z-ID pour les Objets fondamentaux de Wikifonctions. Nous rassemblerons les solutions sur cette page : Z-ID réservés.
La page discute et liste :
- Devrait-il exister un bloc continu de Z-ID réservés, c’-à-d. tous les Z-ID avec quatre chiffres ou moins (ou peut-être trois ou moins ?)
- Quels Z-ID devraient être réservés ?
- À quoi devrait correspondre ces Z-ID ?
- Quels sont les Objets qui devraient avoir des Z-ID prédéfinis ?
Voici quelques pensées qui sont venus avec l’état actuel des Z-ID affectés dans le Modèle de fonction (mais vous verrez que la page ci-dessus n’est pas toujours en accord avec ces pensées).
Nous avons essayé de minimiser le nombre de Z-ID réservés et de ne réserver que les S-ID de Z1
à Z99
. C’est très serré. En les étendant à Z999
ou Z9999
nous aurions plus d’espace.
Les Z-ID de Z1
à Z25
sont essentiellement pour les types de base du Modèle de fonction. Ceux-ci incluent : Objet, Type, Fonction, Mise en œuvre, Erreur, Chaîne, Liste, etc.
Après cela nous avons pensé à affecter un bloc de Z-ID pour une quinzaine de Fonctions initiales et, décalés de vingt au dessus d’eux, leur mises en œuvre intégrées ; par ex. en utilisant Z31
pour la Fonction « si » et Z51
pour sa Mise en œuvre intégrée.
Au delà, nous avons besoin d’un certain nombre de Z-ID réservés pour certains codes d’erreurs, pour les langages et pour les valeurs booléennes Vrai et Faux.
Voici quelques pensées sur la façon dont quelques Types de base ont eu leur Z-ID affectés ― essentiellement basés sur la longueur de leur libellé en anglais :
Z1
: Object (Type) : car tout commence ici.Z2
: Persistent object (Type) : tout dans le wiki est un Z2, c’est pourquoi ceci a un ZID aussi faible.Z3
: Key (Type) : car le mot “key” (« clé ») a quatre lettres en anglais.Z4
: Type (Type) : car le mot “type” (« type ») a quatre lettres en anglais.Z5
: Error (Type) : car le mot “error” (« erreur ») a cinq lettres en anglais.Z6
: String (Type) : car le mot “string” (« chaîne ») a six lettres en anglais.Z7
: Function call (Type) : car les appels de fonction sont la principale « magie » du système et 7 est un nombre magique. Il est également proche deZ8
.Z8
: Function (type générique, donc techniquement une fonction) : car le mot “function” (« fonction ») a huit lettres en anglais.Z9
: Reference (Type) : car le mot “reference” (« référence ») a neuf lettres en anglais.Z10
: List (type générique, donc techniquement une fonction) : car c’est le premier nombre à deux chiffres.Z11
: Monolingual text (Type) : car c’est juste un langage, et qu’il y a un « un » dans le nom.Z12
: Multilingual text (Type) : car c’est une extension deZ11
.Z14
: Implementation (Type) : car le mot “implementation” (« mise en œuvre ») a quatorze lettres en anglais.Z20
: Tester (Type) : car 20/20 est une vision parfaite et les tests rendent visibles les erreurs.Z99
: Quote (Type)
Un autre Type de base qui a encore besoin d’une affectation est le Booléen (Boolean) et sans doute quelques autres.
Une liste des quinze Fonctions initiales actuellement suggérées :
- if: Boolean, T, T ➝ T
- value by key: Key reference, T ➝ U
- reify: Any ➝ List(Pair(Key reference, Any))
- abstract: List(Pair(Key reference, Any)) ➝ Any
- head: List(T) ➝ T
- tail: List(T) ➝ T
- empty: List(T) ➝ Boolean
- cons: T, List(T) ➝ List(T)
- unquote: Quote ➝ Any
En plus de cela, nous avons besoin d’une fonction de validation pour la plupart des Types de base. Il y a une tâche concernant les Fonctions et Types de base sur Phabricator : T261474.
Tout ceci ne sont que des suggestions et nous serons ravi de les voir discutées sur le wiki. Veuillez y faire de plus amples suggestions pour les Z-ID réservés, que ce soit dans des buts mnémoniques ou pour de véritables « œufs de Pâques ». Je suis sûr que vous viendrez avec des suggestions meilleures et plus intéressants que celles auxquelles nous avons songé. Aussi, faites nous savoir vos idées et revoyons-nous la semaine prochaine avec quelques actualités.