Abstract Wikipedia/Reserved ZIDs/de

This is an archived version of this page, as edited by Ameisenigel (talk | contribs) at 19:17, 18 March 2023 (Created page with "=== $a Kern-Fehlertypen ==="). It may differ significantly from the current version.

Abstract Wikipedia via mailing list Abstract Wikipedia on IRC Wikifunctions on Telegram Wikifunctions on Mastodon Wikifunctions on Twitter Wikifunctions on Facebook Wikifunctions on YouTube Wikifunctions website Translate

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

<span id="_Ranges">

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

<span id="_Core_types">

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: Paar (generischer Typ, also technisch gesehen eine Funktion): da es zwei Zweien sind.
  • 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.

<span id="_Core_functions">

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.
  • 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.

<span id="_Core_error_types">

Kern-Fehlertypen

  • Z501 (error message, input): syntax error
  • Z502 (subtype, value): not wellformed, points to Z52x or Z53x
  • Z503 (function name): not implemented yet
  • Z504 (zid): Zid not found
  • Z505 (expected, actual, args): number of arguments mismatch
  • Z506 (expected, actual, arg): argument type mismatches
  • Z507 (function call): error in evaluation
  • Z508 (object): competing keys
  • Z510 (none): nil
  • Z511 (key reference, object): key not found
  • Z512 (object): Z9 error
  • Z513 (resolved object): resolved object without Z2K2
  • Z514 (implementation): Builtin does not exist
  • Z515 (implementation): Builtin ID is erroneous
  • Z516 (key, bad value): Argument value error
  • Z521 (offending value): ZObjects must not be number or boolean or null
  • Z522 (offending index in array, propagated error): Array element not well formed
  • Z523 (object): Missing Z1K1
  • Z524 (value of Z1K1): Z1K1 must not be a string or array
  • Z525 (key): Invalid key
  • Z526 (key, propagated error): not wellformed value
  • Z531 (whole object): Z6 must have 2 keys
  • Z532 (whole object): Z6 without a Z6K1
  • Z533 (value of Z6K1): Z6K1 must be a string
  • Z534 (whole object): Z9 must have 2 keys
  • Z535 (whole object): Z9 without a Z9K1
  • Z536 (value of Z9K1): Z9K1 must be a string in JSON
  • Z537 (value of Z9K1): Z9K1 must look like a reference
  • Z538 (page title): wrong namespace
  • Z539 (page title): wrong content type
  • Z540 (language code): invalid language code
  • Z541 (language code): language code not found
  • Z542 (expected type, actual object): expected type, actual object
  • Z543 (type name): type not found
  • Z544 (type zid, type name, existing type name): conflicting type names
  • Z545 (type zid, type name, existing type zid): conflicting type Zids
  • Z546 (type zid, type name): builtin type not found
  • Z547 (input): invalid format
  • Z548 (error message, input): invalid JSON
  • Z549 (reference value): invalid ZReference
  • Z550 (reference value): unknown ZReference
  • Z551 (key, expected type, actual type): schema type mismatch
  • Z552 (index, expected type, actual type): array element type mismatch
  • Z553 (zobject): disallowed root type
  • Z554 (clashing ZID, language): label clashes with another ZObject's label
  • Z555 (ZID, title): mis-matched ZID and page title
  • Z556 (title): invalid page title
  • Z557 (error message): user does not have permission
  • Z558 (programming language): invalid programming language


Siehe auch