<noinclude><languages/>
{{Ptag|abstract wikipedia}}
{{Abstract Wikipedia}}
{{Abstract Wikipedia navbox}}</noinclude>
: ''Das Wiki der Funktionen lädt derzeit ein paar '''statische ZObjekte beim Setup'''. Davon werden wir mit der Zeit noch ein paar mehr brauchen.''
<span lang="en" dir="ltr" class="mw-content-ltr"><!-- Please translate this page on Wikifunctions.org instead --></span>
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.
{{interwiki redirect|f:Wikifunctions:Reserved ZIDs{{#ifeq:{{PAGELANGUAGE}}|en||/{{PAGELANGUAGE}}}}}}
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.
<span id="Should_the_reserved_ZIDs_be_contiguous?"></span>
== 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).
<span id="How_many_ZIDs_should_we_reserve?"></span>
== 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.
<span id="Currently_reserved_ZIDs"></span>
== Aktuell reservierte ZIDs ==
{{Phabricator|T258914}}
{{Notice|1=Das Folgende kann sich noch ändern und kann diskutiert werden. Einige Erklärungen folgen, um vielleicht beim Erinnern zu helfen (obwohl es nicht notwendig sein sollte, sie auswendig zu lernen).}}
<span id="{{Anchor|ranges}}_Ranges"></span>
=== {{Anchor|ranges}} Bereiche ===
Wir reservieren bestimmte Bereiche für bestimmte Arten von vordefinierten Objekten.
<div style="margin:.3em 0; border:1px solid #AAA; padding:.3em .5em; {{Column-width|36em}}{{Column-gap|.5em}}{{Column-rule|1px solid #AAA}}"><div style="margin-top:-.3em">
* <code>Z1</code> – <code>Z99</code>: Kerntypen. ''(Siehe [[#core-types|§ Kerntypen]] unten.)''
* <code>Z100</code> – <code>Z199</code>: 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
* <code>Z200</code> – <code>Z299</code>: 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)
* <code>Z300</code> – <code>Z399</code>: ''vorerst nicht zugewiesen''
* <code>Z400</code> – <code>Z499</code>: ''reserviert für die lokale Nutzung''
* <code>Z500</code> – <code>Z599</code>: Kern-Fehlertypen (<code>Z5XX</code>, da <code>Z5</code> der Fehler ist) ''(Siehe [[#core-error-types|§ Kern-Fehlertypen]] unten.)''
* <code>Z600</code> – <code>Z699</code>: Kern-Programmiersprachen (<code>Z6XX</code>, da <code>Z61</code> die Programmiersprache ist)
* <code>Z700</code> – <code>Z799</code>: ''vorerst nicht zugewiesen''
* <code>Z800</code> – <code>Z899</code>: Definitionen von Kernfunktionen mit eingebauten Funktionen (<code>Z8XX</code>, da <code>Z8</code> die Funktion ist) ''(Siehe [[#core-functions|§ Kernfunktionen]] unten.)''
* <code>Z900</code> – <code>Z999</code>: eingebaute Funktionen für die Kernfunktionen (sie sind die entsprechende Z8XX +100)
* <code>Z1000</code> – <code>Z1999</code>: natürliche Sprachen (Instanzen von Z60)
* <code>Z2000</code> – <code>Z6999</code>: ''reserviert für die zukünftige Nutzung''
* <code>Z7000</code> – <code>Z7999</code>: ''experimentell, genutzt für NLG, wird geändert''
* <code>Z8000</code> – <code>Z8999</code>: Tester für jede vordefinierte Funktion (''z. B.'' wird Z801 über Z8010, Z8011, Z8012, … Z8019 getestet).
* <code>Z9000</code> – <code>Z9999</code>: ''reserviert für die zukünftige Nutzung''
</div></div>
<span id="{{Anchor|core-types}}_Core_types"></span>
=== {{Anchor|core-types}} Kerntypen ===
<div style="margin:.3em 0; border:1px solid #AAA; padding:.3em .5em; {{Column-width|36em}}{{Column-gap|.5em}}{{Column-rule|1px solid #AAA}}"><div style="margin-top:-.3em">
* <code>Z1</code>: '''ZObjekt''', die Wurzel.
* <code>Z2</code>: '''Persistentes Objekt''' (Typ): alles im Wiki ist ein <code>Z2</code>, darum hat es eine so niedrige ZID.
* <code>Z3</code>: '''Schlüssel''' (Typ): da das Wort <bdi lang="en" dir="ltr">''key''</bdi> auf Englisch drei Buchstaben hat.
* <code>Z4</code>: '''Typ''' (Typ): da das Wort <bdi lang="en" dir="ltr">''type''</bdi> auf Englisch vier Buchstaben hat.
* <code>Z5</code>: '''Fehler''' (Typ): da das Wort <bdi lang="en" dir="ltr">''error''</bdi> auf Englisch fünf Buchstaben hat. ''(Siehe [[#core-error-types|§ Kern-Fehlertypen]] unten.)''
* <code>Z6</code>: '''Zeichenkette''' (Typ): da das Wort <bdi lang="en" dir="ltr">''string''</bdi> auf Englisch sechs Buchstaben hat.
* <code>Z7</code>: '''Funktionsaufruf''' (Typ): da Funktionsaufrufe die Hauptmagie des Systems sind und 7 eine magische Zahl ist. Sie ist außerdem nah an <code>Z8</code>.
* <code>Z8</code>: '''Funktion''' (generischer Typ, also technisch gesehen eine Funktion): da <bdi lang="en" dir="ltr">''function''</bdi> auf Englisch acht Buchstaben hat. ''(Siehe [[#core-functions|§ Kernfunktionen]] unten.)''
* <code>Z9</code>: '''Referenz''' (Typ): da das Wort <bdi lang="en" dir="ltr">''reference''</bdi> auf Englisch neun Buchstaben hat.
* <code>Z10</code>: '''Liste''' (generischer Typ, also technisch gesehen eine Funktion): da es sie erste Zahl ist, die zwei Ziffern hat.
* <code>Z11</code>: '''Monolingualer Text''' (Typ): da es nur eine Sprache ist und der Name ''one'' enthält.
* <code>Z12</code>: '''Multilingualer Text''' (Typ): da es eine Erweiterung von <code>Z11</code> ist.
* <code>Z13</code>: '''Leere Liste''' (Liste): die Natur verabscheut das Vakuum und Menschen mögen die 13 nicht.
* <code>Z14</code>: '''Implementierung''' (Typ): da das Wort <bdi lang="en" dir="ltr">''implementation''</bdi> auf Englisch vierzehn Buchstaben hat.
* <code>Z15</code>: ''Noch nicht zugewiesen.''
* <code>Z16</code>: '''Code''' (Typ): kein guter Grund, es liegt nah an Z14 und Z61/Programmiersprache.
* <code>Z17</code>: '''Argumentdeklaration''' (Typ).
* <code>Z18</code>: '''Argumentreferenz''' (Typ).
* <code>Z19</code>: ''Noch nicht zugewiesen.''
* <code>Z20</code>: '''Tester''' (Typ): da 20/20 die perfekte Vision ist und Tests Fehler sichtbar machen.
* <code>Z21</code>: '''Einheit''' (Typ).
* <code>Z22</code>: '''Paar''' (generischer Typ, also technisch gesehen eine Funktion): da es zwei Zweien sind.
* <code>Z23</code>: '''Nichts''' (Typ).
* <code>Z24</code>: '''Leere''' (Einheit).
* <code>Z25</code>: ''Noch nicht zugewiesen.''
* <code>Z26</code>: ''Noch nicht zugewiesen.''
* <code>Z27</code>: ''Noch nicht zugewiesen.''
* <code>Z28</code>: ''Noch nicht zugewiesen.''
* <code>Z29</code>: ''Noch nicht zugewiesen.''
* <code>Z30</code>: ''Noch nicht zugewiesen.''
* <code>Z31</code>: '''Monolingualer Textsatz''' (Typ).
* <code>Z32</code>: '''Multilingualer Textsatz''' (Typ): da es eine Erweiterung von <code>Z31</code> ist.
* <code>Z33</code>: ''Noch nicht zugewiesen.''
* <code>Z34</code>: ''Noch nicht zugewiesen.''
* <code>Z35</code>: ''Noch nicht zugewiesen.''
* <code>Z36</code>: ''Noch nicht zugewiesen.''
* <code>Z37</code>: ''Noch nicht zugewiesen.''
* <code>Z38</code>: ''Noch nicht zugewiesen.''
* <code>Z39</code>: '''Schlüsselreferenz''' (Typ): wegen Z3/Schlüssel und Z9/Referenz.
* <code>Z40</code>: '''Boolesch''' (Typ): da Boole erstmals (18)40 publizierte.
* <code>Z41</code>: '''Wahr''' (Boolesch).
* <code>Z42</code>: '''Falsch''' (Boolesch).
* <code>Z43</code>: ''Noch nicht zugewiesen.''
* <code>Z44</code>: ''Noch nicht zugewiesen.''
* <code>Z45</code>: ''Noch nicht zugewiesen.''
* <code>Z46</code>: ''Noch nicht zugewiesen.''
* <code>Z47</code>: ''Noch nicht zugewiesen.''
* <code>Z48</code>: ''Noch nicht zugewiesen.''
* <code>Z49</code>: ''Noch nicht zugewiesen.''
* <code>Z50</code>: '''Fehlertyp''' (Typ): da Fehler <code>Z5</code> ist.
<!--<nowiki>
* <code>Z51</code>: <translate>'''…''' (Type).</translate>
…
* <code>Z59</code>: <translate>'''…''' (Type).</translate>
</nowiki>-->
* <code>Z60</code>: '''Natürliche Sprache''' (Typ): da <code>Z6</code> eine Zeichenkette ist.
* <code>Z61</code>: '''Programmiersprache''' (Typ): da <code>Z16</code> Code ist.
<!--<nowiki>
* <code>Z62</code>: <translate>'''…''' (Type).</translate>
…
* <code>Z79</code>: <translate>'''…''' (Type).</translate>
</nowiki>-->
* <code>Z80</code>: '''Byte''' (Typ): da es ein Oktett ist.
<!--<nowiki>
* <code>Z81</code>: <translate>'''…''' (Type).</translate>
…
* <code>Z69</code>: <translate>'''…''' (Type).</translate>
</nowiki>-->
* <code>Z84</code>: '''Vereinigung''' (Typ).
* <code>Z85</code>: ''Noch nicht zugewiesen.''
* <code>Z86</code>: '''Codepunkt''' (Typ): da es nicht genau ein Z80/Byte ist, sondern eher eine Z6/Zeichenkette.
<!--<nowiki>
* <code>Z87</code>: <translate>'''…''' (Type).</translate>
* <code>Z88</code>: <translate>'''…''' (Type).</translate>
* <code>Z89</code>: <translate>'''…''' (Type).</translate>
</nowiki>-->
* <code>Z99</code>: '''Zitat''' (Typ): da es ein bisschen wie ein schließendes Anführungszeichen auf Englisch aussieht.
</div></div>
<span id="{{Anchor|core-functions}}_Core_functions"></span>
=== {{Anchor|core-functions}} Kernfunktionen ===
<div style="margin:.3em 0; border:1px solid #AAA; padding:.3em .5em; {{Column-width|36em}}{{Column-gap|.5em}}{{Column-rule|1px solid #AAA}}"><div style="margin-top:-.3em">
* <code>Z801</code> '''Echo''': T ➝ T
*: gibt die Eingabe unverändert aus
* <code>Z802</code> '''If''': Boolean, T, T ➝ T
*: gibt das zweite Argument zurück, falls das erste wahr ist, sonst das dritte; if hat zwei Buchstaben
* <code>Z803</code> '''Value by key''': Key reference, Any ➝ Any
*: gibt den Wert je Schlüssel aus dem Objekt zurück; Z3/Schlüssel
* <code>Z805</code> '''Reify''': Any ➝ List(Pair(Key reference, Any))
*: transformiert ein Objekt in eine Liste von Schlüssel-Wert-Paaren; reify hat fünf Buchstaben
* <code>Z808</code> '''Abstract''': List(Pair(Key reference, Any)) ➝ Any
*: transformiert eine Liste von Schlüssel-Wert-Paaren in ein Objekt; abstract hat acht Buchstaben.
* <code>Z810</code> '''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).
* <code>Z811</code> '''First element''': List(T) ➝ T
*: erhält das erste Objekt einer sortierten Liste von Objekten (da Z10 Liste ist und wir das erste erhalten)
* <code>Z812</code> '''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)
* <code>Z813</code> '''Empty''': List(T) ➝ Boolean
*: Ausgabe, wenn eine Liste kein Objekt enthält (da Z13 Leere Liste ist).
* <code>Z820</code> '''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.
* <code>Z821</code> '''First''': Pair(T1, T2) ➝ T1
*: extrahiert den ersten Wert eines Paars (da Z22 Paar ist).
* <code>Z822</code> '''Second''': Pair(T1, T2) ➝ T2
*: extrahiert den zweiten Wert eines Paars (da Z22 Paar ist).
* <code>Z844</code> '''Boolean equality''': Boolean, Boolean ➝ Boolean
*: gibt true aus, wenn die zwei Eingaben gleich sind, andernfalls false
* <code>Z860</code> '''Language code to language''': String ➝ Language
*: nimmt einen Sprachcode als Zeichenkette und gibt ein Objekt für eine natürliche Sprache zurück
* <code>Z866</code> '''String equality''': String, String ➝ Boolean
*: gibt true aus, wenn die zwei Eingaben gleich sind, andernfalls false
* <code>Z868</code> '''Convert''': String ➝ List(Character)
*: konvertiert eine Zeichenkette in eine Liste von Zeichen, wegen Z6/Zeichenkette und Z86/Zeichen.
* <code>Z881</code>'''Typed list''': Type ➝ Type
*: nimmt einen Typ und gibt einen Typ einer Liste von Elementen dieses Typs zurück
* <code>Z882</code>'''Typed pair''': Type, Type ➝ Type
*: nimmt zwei Typen und gibt einen Typ zurück, der ein Paar von diesen darstellt
* <code>Z883</code>'''Map''': ... ➝ ...
*: ...
* <code>Z884</code>'''Union''': T, T ➝ T
*: nimmt zwei Typen und gibt einen Typ zurück, der einen davon akzeptiert
* <code>Z885</code>'''Error type to type''': Error type ➝ Type
*: nimmt einen Fehlertyp und erstellt daraus einen Typ
* <code>Z886</code>'''Convert''': List*(Character) ➝ String
*: konvertiert eine Liste von Zeichen in eine Zeichenkette, wegen Z86/Zeichen und Z6/Zeichenkette.
* <code>Z887</code>'''Reduce''': ... ➝ ...
*: …
* <code>Z888</code> '''Same''': Character, Character ➝ Boolean
*: vergleicht zwei Zeichen und gibt zurück, wenn sie gleich sind.
* <code>Z899</code> '''Unquote''': Quote ➝ Any
*: Beendet das Zitat eines ZObjekts, wegen Z99/Zitat.
</div></div>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== {{Anchor|core-error-types}} Core error types ===
</div>
<div style="margin:.3em 0; border:1px solid #AAA; padding:.3em .5em; {{Column-width|36em}}{{Column-gap|.5em}}{{Column-rule|1px solid #AAA}}"><div style="margin-top:-.3em">
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z501</code> (error message, input): syntax error</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z502</code> (subtype, value): not wellformed, points to Z52x or Z53x</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z503</code> (function name): not implemented yet</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z504</code> (zid): Zid not found</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z505</code> (expected, actual, args): number of arguments mismatch</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z506</code> (expected, actual, arg): argument type mismatches</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z507</code> (function call): error in evaluation</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z508</code> (object): competing keys</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z510</code> (none): nil</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z511</code> (key reference, object): key not found</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z512</code> (object): Z9 error</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z513</code> (resolved object): resolved object without Z2K2</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z514</code> (implementation): Builtin does not exist</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z515</code> (implementation): Builtin ID is erroneous</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z516</code> (key, bad value): Argument value error</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z521</code> (offending value): ZObjects must not be number or boolean or null</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z522</code> (offending index in array, propagated error): Array element not well formed</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z523</code> (object): Missing Z1K1</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z524</code> (value of Z1K1): Z1K1 must not be a string or array</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z525</code> (key): Invalid key</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z526</code> (key, propagated error): not wellformed value</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z531</code> (whole object): Z6 must have 2 keys</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z532</code> (whole object): Z6 without a Z6K1</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z533</code> (value of Z6K1): Z6K1 must be a string</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z534</code> (whole object): Z9 must have 2 keys</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z535</code> (whole object): Z9 without a Z9K1</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z536</code> (value of Z9K1): Z9K1 must be a string in JSON</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z537</code> (value of Z9K1): Z9K1 must look like a reference</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z538</code> (page title): wrong namespace</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z539</code> (page title): wrong content type</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z540</code> (language code): invalid language code</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z541</code> (language code): language code not found</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z542</code> (expected type, actual object): expected type, actual object</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z543</code> (type name): type not found</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z544</code> (type zid, type name, existing type name): conflicting type names</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z545</code> (type zid, type name, existing type zid): conflicting type Zids</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z546</code> (type zid, type name): builtin type not found</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z547</code> (input): invalid format</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z548</code> (error message, input): invalid JSON</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z549</code> (reference value): invalid ZReference</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z550</code> (reference value): unknown ZReference</span>
* <span lang="en" dir="ltr" class="mw-content-ltr"><code>Z551</code> (key, expected type, actual type): schema type mismatch</span>
* <code>Z552</code> <span lang="en" dir="ltr" class="mw-content-ltr">(index, expected type, actual type): array element type mismatch</span>
* <code>Z553</code> <span lang="en" dir="ltr" class="mw-content-ltr">(zobject): disallowed root type</span>
* <code>Z554</code> <span lang="en" dir="ltr" class="mw-content-ltr">(clashing ZID, language): label clashes with another ZObject's label</span>
* <code>Z555</code> <span lang="en" dir="ltr" class="mw-content-ltr">(ZID, title): mis-matched ZID and page title</span>
* <code>Z556</code> <span lang="en" dir="ltr" class="mw-content-ltr">(title): invalid page title</span>
* <code>Z557</code> <span lang="en" dir="ltr" class="mw-content-ltr">(error message): user does not have permission</span>
* <code>Z558</code> <span lang="en" dir="ltr" class="mw-content-ltr">(programming language): invalid programming language</span>
</div></div>
<span id="See_also"></span>
== Siehe auch ==
* [[Special:MyLanguage/Abstract Wikipedia/Notes|Übersicht der Anmerkungen]]
<noinclude>
|