Wikifunctions:Reservierte ZIDs

From Wikifunctions
This page is a translated version of the page Wikifunctions:Reserved ZIDs and the translation is 100% complete.
Das Wiki der Funktionen lädt derzeit ein paar statische ZObjekte beim Setup. Davon werden wir mit der Zeit noch ein paar mehr brauchen.

Auf dieser Seite geht es um die lustige triviale Diskussion darüber, wie viele ZIDs wir reservieren sollten, ob sie zusammenhängend sein müssen und was diese ersten ZIDs sein sollten. Dies kann auch ein Platz zur Anlage von Eastereggs sein, eine Funktion, die sich in Wikidata als ziemlich beliebt erwiesen hat.

Beachte, dass wir zur Vereinfachung der Diskussion derzeit nicht über die zukünftige Möglichkeit nachdenken, föderierte Instanzen der Software zu haben, mit der das Wiki der Funktionen läuft, und wie das funktionieren wird. Wir überlegen lediglich, welche ZIDs für das Wiki der Funktionen selbst reserviert werden sollen.

Sollen die reservierten ZIDs zusammenhängend sein?

Ja.

Es ist schlicht einfach, zu sagen „alle ZIDs mit 4 Ziffern oder weniger sind reserviert“.

Es gibt auch das hybride Modell, alle ZIDs unterhalb einer bestimmten Zahl zu reservieren und zusätzlich einige höhere ZIDs für Eastereggs oder aus bestimmten Gründe zu reservieren (das hat Wikidata gemacht).

Wie viele ZIDs sollen wir reservieren?

Lass uns alle ZIDs mit vier Ziffern oder weniger reservieren.

Alle Kernobjekte würden sich unter den ZIDs mit drei Ziffern und weniger befinden und wir behalten die vierstelligen ZIDs für Sprachen.

Dies folgt ungefähr den Vorschlägen, die von Mitgliedern der Gemeinschaft auf der Diskussionsseite und im Phabricator gemacht wurden. Insbesondere werden wir den Platz nicht überfüllen.

Aktuell reservierte ZIDs

Tracked in Phabricator:
Task T258914

Siehe Wikifunctions:Reserved ZIDs/all für eine Liste aller aktuellen vordefinierten Objekte.

Bereiche

Wir reservieren bestimmte Bereiche für bestimmte Arten von vordefinierten Objekten.

  • Z1 – Z99: Kerntypen. (Siehe § Kerntypen unten.)
  • Z100 – Z199: Prüfer für die Kerntypen (d. h. für jeden Kerntyp, +100 ergibt den Prüfer), z. B. ist Z104 der Prüfer für Z4/Typ
  • Z200 – Z299: eingebaute Implementierungen für die Prüfer für die Kerntypen (d. h. Z204 ist die eingebaute Implementierung für den Prüfer für Z4/Typ)
  • Z300 – Z399: vorerst nicht zugewiesen
  • Z400 – Z499: reserviert für die lokale Nutzung
  • Z500 – Z599: Kern-Fehlertypen (Z5XX, da Z5 der Fehler ist) (Siehe § Kern-Fehlertypen unten.)
  • Z600 – Z699: Kern-Programmiersprachen (Z6XX, da Z61 die Programmiersprache ist)
  • Z700 – Z799: vorerst nicht zugewiesen
  • Z800 – Z899: Definitionen von Kernfunktionen mit eingebauten Funktionen (Z8XX, da Z8 die Funktion ist) (Siehe § Kernfunktionen unten.)
  • Z900 – Z999: eingebaute Funktionen für die Kernfunktionen (sie sind die entsprechende Z8XX +100)
  • Z1000 – Z1999: natürliche Sprachen (Instanzen von Z60)
  • Z2000 – Z6999: reserviert für die zukünftige Nutzung
  • Z7000 – Z7999: experimentell, genutzt für NLG, wird geändert
  • Z8000 – Z8999: Tester für jede vordefinierte Funktion (z. B. wird Z801 über Z8010, Z8011, Z8012, … Z8019 getestet).
  • Z9000 – Z9999: reserviert für die zukünftige Nutzung

Kerntypen

  • Z1: ZObjekt, die Wurzel.
  • Z2: Persistentes Objekt (Typ): alles im Wiki ist ein Z2, darum hat es eine so niedrige ZID.
  • Z3: Schlüssel (Typ): da das Wort key auf Englisch drei Buchstaben hat.
  • Z4: Typ (Typ): da das Wort type auf Englisch vier Buchstaben hat.
  • Z5: Fehler (Typ): da das Wort error auf Englisch fünf Buchstaben hat. (Siehe § Kern-Fehlertypen unten.)
  • Z6: Zeichenkette (Typ): da das Wort string auf Englisch sechs Buchstaben hat.
  • Z7: Funktionsaufruf (Typ): da Funktionsaufrufe die Hauptmagie des Systems sind und 7 eine magische Zahl ist. Sie ist außerdem nah an Z8.
  • Z8: Funktion (generischer Typ, also technisch gesehen eine Funktion): da function auf Englisch acht Buchstaben hat. (Siehe § Kernfunktionen unten.)
  • Z9: Referenz (Typ): da das Wort reference auf Englisch neun Buchstaben hat.
  • Z10: Liste (generischer Typ, also technisch gesehen eine Funktion): da es sie erste Zahl ist, die zwei Ziffern hat.
  • Z11: Monolingualer Text (Typ): da es nur eine Sprache ist und der Name one enthält.
  • Z12: Multilingualer Text (Typ): da es eine Erweiterung von Z11 ist.
  • Z13: Leere Liste (Liste): die Natur verabscheut das Vakuum und Menschen mögen die 13 nicht.
  • Z14: Implementierung (Typ): da das Wort implementation auf Englisch vierzehn Buchstaben hat.
  • Z15: Noch nicht zugewiesen.
  • Z16: Code (Typ): kein guter Grund, es liegt nah an Z14 und Z61/Programmiersprache.
  • Z17: Argumentdeklaration (Typ).
  • Z18: Argumentreferenz (Typ).
  • Z19: Noch nicht zugewiesen.
  • Z20: Tester (Typ): da 20/20 die perfekte Vision ist und Tests Fehler sichtbar machen.
  • Z21: Einheit (Typ).
  • Z22: Auswertungsergebnis (Typ).
  • Z23: Nichts (Typ).
  • Z24: Leere (Einheit).
  • Z25: Noch nicht zugewiesen.
  • Z26: Noch nicht zugewiesen.
  • Z27: Noch nicht zugewiesen.
  • Z28: Noch nicht zugewiesen.
  • Z29: Noch nicht zugewiesen.
  • Z30: Noch nicht zugewiesen.
  • Z31: Monolingualer Textsatz (Typ).
  • Z32: Multilingualer Textsatz (Typ): da es eine Erweiterung von Z31 ist.
  • Z33: Noch nicht zugewiesen.
  • Z34: Noch nicht zugewiesen.
  • Z35: Noch nicht zugewiesen.
  • Z36: Noch nicht zugewiesen.
  • Z37: Noch nicht zugewiesen.
  • Z38: Noch nicht zugewiesen.
  • Z39: Schlüsselreferenz (Typ): wegen Z3/Schlüssel und Z9/Referenz.
  • Z40: Boolesch (Typ): da Boole erstmals (18)40 publizierte.
  • Z41: Wahr (Boolesch).
  • Z42: Falsch (Boolesch).
  • Z43: Noch nicht zugewiesen.
  • Z44: Noch nicht zugewiesen.
  • Z45: Noch nicht zugewiesen.
  • Z46: Noch nicht zugewiesen.
  • Z47: Noch nicht zugewiesen.
  • Z48: Noch nicht zugewiesen.
  • Z49: Noch nicht zugewiesen.
  • Z50: Fehlertyp (Typ): da Fehler Z5 ist.
  • Z60: Natürliche Sprache (Typ): da Z6 eine Zeichenkette ist.
  • Z61: Programmiersprache (Typ): da Z16 Code ist.
  • Z80: Byte (Typ): da es ein Oktett ist.
  • Z84: Vereinigung (Typ).
  • Z85: Noch nicht zugewiesen.
  • Z86: Codepunkt (Typ): da es nicht genau ein Z80/Byte ist, sondern eher eine Z6/Zeichenkette.
  • Z99: Zitat (Typ): da es ein bisschen wie ein schließendes Anführungszeichen auf Englisch aussieht.

Kernfunktionen

  • Z801Echo: T ➝ T
    gibt die Eingabe unverändert aus
  • Z802If: Boolean, T, T ➝ T
    gibt das zweite Argument zurück, falls das erste wahr ist, sonst das dritte; if hat zwei Buchstaben
  • Z803Value by key: Key reference, Any ➝ Any
    gibt den Wert je Schlüssel aus dem Objekt zurück; Z3/Schlüssel
  • Z805Reify: Any ➝ List(Pair(Key reference, Any))
    transformiert ein Objekt in eine Liste von Schlüssel-Wert-Paaren; reify hat fünf Buchstaben
  • Z808 Abstract: List(Pair(Key reference, Any)) ➝ Any
    transformiert eine Liste von Schlüssel-Wert-Paaren in ein Objekt; abstract hat acht Buchstaben.
  • Z810 Prepend element to list: T, List(T) ➝ List(T)
    fügt ein Objekt am Anfang einer sortierten Liste von Objekten ein (da Z10 Liste ist).
  • Z811 First element: List(T) ➝ T
    erhält das erste Objekt einer sortierten Liste von Objekten (da Z10 Liste ist und wir das erste erhalten)
  • Z812 List without first element: List(T) ➝ List(T)
    erhält die Liste ohne das erste Objekt (da Z10 Liste ist und wir das zweite, den Rest, erhalten)
  • Z813 Empty: List(T) ➝ Boolean
    Ausgabe, wenn eine Liste kein Objekt enthält (da Z13 Leere Liste ist).
  • Z820 Trigger Metadata: String, Any ➝ Any
    nimmt den gegebenen Wert (einen Fehler oder andere Metadaten) und gibt ihn in der Antwort des Funktionsaufrufs unter dem Namen der Zeichenketteneingabe aus.
  • Z821 First: Pair(T1, T2) ➝ T1
    extrahiert den ersten Wert eines Paars (da Z22 Paar ist).
  • Z822 Second: Pair(T1, T2) ➝ T2
    extrahiert den zweiten Wert eines Paars (da Z22 Paar ist).
  • Z844 Boolean equality: Boolean, Boolean ➝ Boolean
    gibt true aus, wenn die zwei Eingaben gleich sind, andernfalls false
  • Z860 Language code to language: String ➝ Language
    nimmt einen Sprachcode als Zeichenkette und gibt ein Objekt für eine natürliche Sprache zurück
  • Z866 String equality: String, String ➝ Boolean
    gibt true aus, wenn die zwei Eingaben gleich sind, andernfalls false
  • Z868 Convert: String ➝ List(Character)
    konvertiert eine Zeichenkette in eine Liste von Zeichen, wegen Z6/Zeichenkette und Z86/Zeichen.
  • Z873 Map: Function, List ➝ List
    Gibt eine Liste aus, bei der jedes Z1/Objekt einer eingegebenen Z881/Liste von der gegebenen Z8/Funktion verarbeitet wurde.
  • Z876 Reduce: Function, List, Object ➝ Object
    Gibt einen Wert aus, nachdem die gegebene Funktion für jedes Objekt der Liste ausgeführt wurde, beginnend mit dem gegebenen Objekt.
  • Z868 Convert: String ➝ List(Character)
    konvertiert eine Zeichenkette in eine Liste von Zeichen, wegen Z6/Zeichenkette und Z86/Zeichen.
  • Z881Typed list: Type ➝ Type
    nimmt einen Typ und gibt einen Typ einer Liste von Elementen dieses Typs zurück
  • Z882Typed pair: Type, Type ➝ Type
    nimmt zwei Typen und gibt einen Typ zurück, der ein Paar von diesen darstellt
  • Z883Map: … ➝ …
  • Z884Union: T, T ➝ T
    nimmt zwei Typen und gibt einen Typ zurück, der einen davon akzeptiert
  • Z885Error type to type: Error type ➝ Type
    nimmt einen Fehlertyp und erstellt daraus einen Typ
  • Z886Convert: List*(Character) ➝ String
    konvertiert eine Liste von Zeichen in eine Zeichenkette, wegen Z86/Zeichen und Z6/Zeichenkette.
  • Z887Reduce: … ➝ …
  • Z888 Same: Character, Character ➝ Boolean
    vergleicht zwei Zeichen und gibt zurück, wenn sie gleich sind.
  • Z899 Unquote: Quote ➝ Any
    Beendet das Zitat eines ZObjekts, wegen Z99/Zitat.

Kern-Fehlertypen

  • Z501 (Fehlermeldung, Eingabe): Syntaxfehler
  • Z502 (Untertyp, Wert): nicht wohlgeformt, verweist auf Z52X oder Z53X
  • Z503 (Funktionsname): noch nicht implementiert
  • Z504 (ZID): ZID nicht gefunden
  • Z505 (erwartet, tatsächlich, Argumente): Anzahl der Argumente stimmt nicht überein
  • Z506 (erwartet, tatsächlich, Argumente): Argumenttyp stimmt nicht überein
  • Z507 (Funktionsaufruf): Fehler in der Auswertung
  • Z508 (Objekt): konkurrierende Schlüssel
  • Z509 (Fehler): Liste von Fehlern
  • Z510 (keine): null
  • Z511 (Schlüsselreferenz, Objekt): Schlüssel nicht gefunden
  • Z512 (Objekt): Fehler Z9
  • Z513 (aufgelöstes Objekt): aufgelöstes Objekt ohne Z2K2
  • Z514 (Implementierung): eingebaute Funktion existiert nicht
  • Z515 (Implementierung): eingebaute ID ist fehlerhaft
  • Z516 (Schlüssel, schlechter Wert): Fehler beim Argumentwert
  • Z517 (erwarteter Typ, tatsächlicher Typ, zurückgegebener Wert, weitergegebener Fehler): zurückgegebener Wert stimmt nicht überein
  • Z518 (erwarteter Typ, Objekt, weitergegebener Fehler): Objekttyp stimmt nicht überein
  • Z519 (Objekt): undefinierter Listentyp
  • Z520 (Objekt): falscher Listentyp
  • Z521 (verletzender Wert): ZObjekte dürfen keine Zahl, boolesch oder null sein
  • Z522 (verletzender Index im Array, verbreiteter Fehler): Array-Element nicht wohlgeformt
  • Z523 (Objekt): Fehlende Z1K1
  • Z524 (Wert von Z1K1): Z1K1 darf keine Zeichenkette und kein Array sein
  • Z525 (Schlüssel): Ungültiger Schlüssel
  • Z526 (Schlüssel, verbreiteter Fehler): nicht wohlgeformter Wert
  • Z531 (ganzes Objekt): Z6 muss zwei Schlüssel haben
  • Z532 (ganzes Objekt): Z6 ohne Z6K1
  • Z533 (Wert von Z6K1): Z6K1 muss eine Zeichenkette sein
  • Z534 (ganzes Objekt): Z9 muss zwei Schlüssel haben
  • Z535 (ganzes Objekt): Z9 ohne Z9K1
  • Z536 (Wert von Z9K1): Z9K1 muss eine Zeichenkette in JSON sein
  • Z537 (Wert von Z9K1): Z9K1 muss wie eine Referenz aussehen
  • Z538 (Seitentitel): falscher Namensraum
  • Z539 (Seitentitel): falscher Inhaltstyp
  • Z540 (Sprachcode): ungültiger Sprachcode
  • Z541 (Sprachcode): Sprachcode nicht gefunden
  • Z542 (erwarteter Typ, tatsächliches Objekt): erwarteter Typ, tatsächliches Objekt
  • Z543 (Typenname): Typ nicht gefunden
  • Z544 (Typen-ZID, Typenname, vorhandener Typenname): widersprüchliche Typennamen
  • Z545 (Typen-ZID, Typenname, vorhandene Typen-ZID): widersprüchliche Typen-ZIDs
  • Z546 (Typen-ZID, Typenname): eingebauter Typ nicht gefunden
  • Z547 (Eingabe): ungültiges Format
  • Z548 (Fehlermeldung, Eingabe): ungültiges JSON
  • Z549 (Referenzwert): ungültige ZReferenz
  • Z550 (Referenzwert): unbekannte ZReferenz
  • Z551 (Schlüssel, erwarteter Typ, tatsächlicher Typ): Schematyp stimmt nicht überein
  • Z552 (Index, erwarteter Typ, tatsächlicher Typ): Typ des Array-Elements stimmt nicht überein
  • Z553 (ZObjekt): nicht erlaubter Wurzeltyp
  • Z554 (kollidierende ZID): Bezeichnung kollidiert mit der Bezeichnung eines anderen ZObjektes
  • Z555 (ZID, Titel): ZID und Seitentitel stimmen nicht überein
  • Z556 (Titel): ungültiger Seitentitel
  • Z557 (Fehlermeldung): Benutzer hat nicht die Berechtigung
  • Z558 (Programmiersprache): ungültige Programmiersprache
  • Z559 (keine): Benutzer darf Funktionen nicht auswerten
  • Z560 (Auswertungsergebnis): ungültiges Auswertungsergebnis
  • Z561 (weitergegebener Fehler): ungültige Auswertungsanfrage
  • Z562 (fehlende Eigenschaft): unvollständige Auswertungsanfrage
  • Z563 (Aufruf): Aufruf durch nicht wiedereintretenden Ausführer
  • Z564 (Inhalte): ungültige Ausführerantwort
  • Z565 (fehlende Eigenschaft): unvollständige Ausführeranfrage
  • Z570 (Beschränkungslimit des Orchestrierers): Beschränkungslimit des Orchestrierers erreicht
  • Z571 (Beschränkungslimit des Auswerters): Beschränkungslimit des Auswerters erreicht
  • Z572 (Rekursionslimit, Funktionsname): Rekursionslimit im Orchestrierer erreicht
  • Z573 (Rekursionslimit, Funktionsname): Rekursionslimit im Auswerter erreicht
  • Z574 (Zeitlimit): Zeitlimit im Orchestrierer erreicht
  • Z575 (Zeitlimit): Zeitlimit im Auswerter erreicht


Siehe auch