Wikipédia abstraite/Mises à jour/2020-11-10
◀ | Actualités de la Wikipédia abstraite | ▶ |
- Aujourd’hui nous parlerons un peu de la façon dont le catalogue de fonctions travaillera réellement.
- Une description formelle et plus complète de ceci figure dans le modèle de fonction, mais ici nous voulons créer une explication plus intuitive de ce que sont les Objets.
Chaque page dans le nouveau wiki contiendra un Objet.
Chaque Objet est d’exactement un Type.
- Les Types décident de la signification de chaque Objet. Les Types décident également ce qui rend un Objet valide ou pas. Un Objet d’un certain Type est appelé une instance de ce Type.
- Chaque Objet qui est stocké dans une page wiki est appelé un Objet persistant et un tel Objet a un Z-ID par lequel il peut être référencé. Le Z-ID est le nom de la page.
Que signifie le fait qu’un Type décide de la signification d’un Objet ? Prenons un exemple :
- Un Objet de type Entier positif avec la valeur «
2020
» représente le nombre 2020. C’est le nombre que vous obtenez en multipliant 4, 5 et 101. Et puisqu’il a le Type Entier positif, nous savons qu’il s’agit d’un nombre. - Si le Type de «
2020
» était une Chaîne, alors cela ne représenterait pas le nombre 2020, mais plutôt la séquence des quatre caractères ‹2
›, ‹0
›, ‹2
› et ‹0
›. - Si son Type était Année calendaire grégorienne, alors cela représenterait l’année 2020 dans ce calendrier, une année bissextile commençant un mercredi et finissant un jeudi.
Le Type décide ce ce que vous pouvez faire avec un Objet — ou, pour parler plus formellement, quelles Fonctions vous pouvez appliquer à l’Objet donné :
- Si vous avez une Chaîne, vous pouvez mesurer la « longueur » de la Chaîne, c’-à-d. combien de caractères sont présents dans la séquence. Le résultat pour «
2020
» ci-dessus sera quatre. - Si vous avec une Année calendaire grégorienne, vous pouvez aussi pouvoir demander sa « longueur », mais le résultat sera probablement 366 jours (puisque c’est une année bissextile).
- Si vous avez un Entier positif et demandez sa « longueur », vous pourriez demander en fait le logarithme en base 10, ou pourriez demander sa persistance multiplicative.
- Mais tout ceci serait des Fonctions différentes (qui pourraient avoir le même libellé « longueur » en français ; leurs descriptions expliquerait plus en détail ce que chacune d’elles ferait).
La Fonction déclare quels Types elle peut prendre et le Type décide ce que signifie un Objet.
Les Types peuvent être très divers :
- Certains Types ont un petit nombre d’instances, défini explicitement. Ils sont appelés des Énumérations, car toutes les instances du Type sont connues à l’avance et énumérées et chaque instance doit être une de ces quelques valeurs possibles.
L’exemple classique d’un tel Type est Booléen, nommé d’après George Boole, qui a exactement deux instances : Vrai et Faux. Une autre Énumération serait les Jours de la semaine. - D’autres Types peuvent être simples mais avoir un nombre infini d’instances possibles.
Des exemples de tels Types sont la Chaîne pour les séquences de caractères et Entier positif pour des nombres servant à compter. - D’autres Types peuvent être composés de Types plus simples.
Par exemple, une façon de représenter un Entier serait de le composer depuis un Entier positif et d’un Booléen, où le Booléen décide si l’Entier est positif ou négatif, et l’Entier positif représenterait sa valeur absolue.
Chaque Objet ne doit pas nécessairement être stocké en tant que page wiki. Par exemple, il n’est pas nécessaire de stocker le nombre 2020 en tant qu’Objet dans le wiki, puisqu’il peut être créé facilement à la volée.
Voici comment les Objets sont construits et représentés. Les Objets de la plupart des Types sont appelés des Littéraux. Un Littéral est un Objet qui, lorsqu’il est évalué, résulte en lui-même.
Par exemple, lorsque vous évaluez le nombre 2020, le résultat est le nombre 2020.
Mais il y a deux Types très spéciaux dont les instances ne sont pas des Littéraux et ces deux types sont les Références et les Appels de fonction'.
- Les Références sont un Type spécial d’Objet qui référence un Objet persistant par son Z-ID. À la base, il dit « cette Référence devrait juste être cet Objet qui est référencé par ce Z-ID ».
L’évaluation d’une Référence résulte en l’Objet référencé. Une Référence n’a pas besoin d’être évaluée immédiatement, mais peut être évaluée chaque fois que c’est nécessaire.
En fait, il est parfois impossible d’évaluer entièrement toutes les Références, car ceci peut conduire facilement à une récursion et à des objets infinis. - L’autre Type spécial est l’Appel de fonction. Un Appel de fonction consiste en une Fonction et une Liste d’arguments.
L’évaluation d’un Appel de fonction est la « magie » au cœur du système tout entier : à la base, elle remplace un Appel de fonction par le résultat de cet Appel de fonction.
Par ex. l’évaluation remplacerait l’Appel de Fonction avec le libellé « longueur » et l’argument «2020
» de Type Chaîne avec la valeur «4
» de Type Entier positif.
Les Appels de fonction sont habituellement créés à la volée. Nous ne créerions pas, en général, une nouvelle page wiki avec un Objet persistant dans lequel nous stockerions l’Appel de fonction décrit ci-dessus, mais nous enverrions plutôt cet Appel de fonction à un moteur d’évaluation qui, à son tour, évaluerait l’Appel de fonction et en retournerait le résultat. Il n’y a pas réellement plus que cela dans le système. Un Appel de fonction est de bien des façons analogue à l’utilisation d’un modèle MediaWiki avec ses paramètres.
J’espère que cette explication a fait sens et vous a aidé à comprendre le système prévu. Nous développons actuellement la partie du système qui permettra aux contributeurs de créer des Types dans le wiki lui-même, afin que la communauté puisse créer et contrôler quels Types existent. Soyez libre de poser des questions.
Le vote pour le tour final du concours de noms est terminé.
- Le vote s’est tenu du mardi 2 au lundi 16 novembre pour décider du nom pour le nouveau projet où tous ces Objets qui nous avons décrits ci-dessus seront disponibles.
- Les six propositions pour lesquelles nous votions étaient, dans l’ordre alphabétique inversé : Wikimedia Functions, Wikilambda, Wikifusion, Wikifunctions, Wikicodex et Wikicode.
- Le nom final sera annoncé en mi-décembre, après un passage en revue juridique final.