Wikifunctions:Rezervované ZIDy

From Wikifunctions
This page is a translated version of the page Wikifunctions:Reserved ZIDs and the translation is 87% complete.
Outdated translations are marked like this.
Wiki funkcí v současné době načítá několik statických ZObjektů při startu. Časem jich budeme potřebovat několik dalších.

Tato stránka je o zábavné diskusi o tom, kolik ZID bychom měli vyhradit, zda musí být sousedící a jaké by měly být tyto první ZID. Může to být také místo pro sázení velikonočních vajíček (easter eggů), což je funkce, která se na Wikidatech ukázala jako poměrně oblíbená.

Všimněte si, že v zájmu zjednodušení diskuse v současné době neuvažujeme o budoucí možnosti federativních instancí softwaru provozujícího wiki funkce a o tom, jak to bude fungovat. Uvažujeme výhradně o tom, které ZID pro samotnou wiki funkcí by měly být vyhrazeny.

Měly by rezervované ZIDy na sebe navazovat?

Ano.

Určitá jednoduchost spočívá v tom, že se řekne "všechny kódy ZID se čtyřmi nebo méně číslicemi jsou vyhrazeny".

Existuje také hybridní model vyhrazení všech ZID pod určitým číslem a dodatečné vyhrazení některých větších ZID pro easter eggy nebo specifické důvody (to udělala Wikidata).

Kolik ZID bychom si měli rezervovat?

Vyhraďme si všechny identifikátory ZID se čtyřmi nebo méně číslicemi.

Všechny základní objekty by byly v ZID s třemi a méně číslicemi a čtyřmístné ZID bychom ponechali pro jazyky.

To zhruba odpovídá návrhům členů komunity na diskusní stránce a na Phabricatoru. Zejména také nebudeme obsazovat prostor.

Aktuálně rezervované ZID

Tracked in Phabricator:
Task T258914

See Wikifunctions:Reserved ZIDs/all for a list of currently pre-defined objects.

Rozsahy

Určité prostory vyhrazujeme pro určité druhy předem definovaných objektů.

  • Z1 – Z99: základní typy. (Viz § Základní typy níže.)
  • Z100 – Z199: validátory pro základní typy (např. pro každý jádrový typ, +100 dává validátor), např. Z104 je validátor pro Z4/Type (Typ)
  • Z200 – Z299: vestavěné implementace validátorů pro základní typy (tj. Z204 je vestavěná implementace validátoru pro Z4/Type (Typ)).
  • Z300 – Z399: prozatím nepřiřazeno
  • Z400 – Z499: vyhrazeno pro místní použití
  • Z500 – Z599: základní typy chyb (Z5xx protože Z5 je chyba) (Viz § Základní typy chyb níže.)
  • Z600 – Z699: základní programovací jazyky (Z6xx protože Z61 je programovací jazyk)
  • Z700 – Z799: prozatím nepřiřazeno
  • Z800 – Z899: definice základních funkcí s vestavěnými moduly (Z8xx protože Z8 je funkce) (Viz § Základní funkce níže.)
  • Z900 – Z999: vestavěné moduly pro základní funkce (jsou +100 od příslušného Z8xx).
  • Z1000 – Z1999: přirozené jazyky (instance Z60)
  • Z2000 – Z6999: vyhrazeno pro budoucí použití
  • Z7000 – Z7999: experimentální, používaný pro NLG, bude změněn
  • Z8000 – Z8999: Testery pro každou předem definovanou funkci (např. Z801 se testuje prostřednictvím Z8010, Z8011, Z8012, ... Z8019).
  • Z9000 – Z9999: vyhrazeno pro budoucí použití

Základní typy

  • Z1: ZObject, kořenový prvek.
  • Z2: Persistentní objekt (Type): vše na wiki je Z2, proto má tak nízký ZID.
  • Z3: Klíč (Type): protože slovo key má v angličtině tři písmena.
  • Z4: Typ (Type): protože slovo type má v angličtině čtyři písmena.
  • Z5: Chyba (Type): protože slovo error má v angličtině pět písmen. (Viz § Základní typy chyb níže.)
  • Z6: Řetězec (Type): protože slovo string má v angličtině šest písmen.
  • Z7: Volání funkce (Type): protože volání funkcí je hlavním kouzlem systému a 7 je magické číslo. Je také blízké hodnotě Z8.
  • Z8: Funkce (obecný typ, technicky tedy funkce): protože function má v angličtině osm písmen. (Viz § Základní funkce níže.)
  • Z9: Reference (Type): protože slovo reference má v angličtině devět písmen.
  • Z10: Seznam (obecný typ, technicky tedy funkce): protože je to první číslo, které má dvě číslice.
  • Z11: Jednojazyčný text (Type): protože je to jen jeden jazyk a v názvu je jeden.
  • Z12: Vícejazyčný text (Type): protože se jedná o rozšíření Z11.
  • Z13: prázdný seznam (List): příroda se štítí vakua a lidé nemají rádi 13.
  • Z14: Implementace (Type): protože slovo implementation má v angličtině čtrnáct písmen.
  • Z15: Ještě není přiděleno.
  • Z16: Kód (Type): žádný dobrý důvod, je blízký Z14 a Z61/Programovací jazyk.
  • Z17: Deklarace argumentu (Type).
  • Z18: Odkaz na argument (Type).
  • Z19: Ještě není přiděleno.
  • Z20: Tester (Type): protože 20/20 je dokonalý zrak a testy zviditelňují chyby.
  • Z21: Jednotka (Type).
  • Z22: Pár (obecný typ, technicky tedy funkce): protože jde o dvě dvojice.
  • Z23: Nic (Type).
  • Z24: void (Unit).
  • Z25: Ještě není přiděleno.
  • Z26: Ještě není přiděleno.
  • Z27: Ještě není přiděleno.
  • Z28: Ještě není přiděleno.
  • Z29: Ještě není přiděleno.
  • Z30: Ještě není přiděleno.
  • Z31: Jednojazyčná sada textů (Type).
  • Z32: Vícejazyčná sada textů (Type): protože se jedná o rozšíření Z31.
  • Z33: Ještě není přiděleno.
  • Z34: Ještě není přiděleno.
  • Z35: Ještě není přiděleno.
  • Z36: Ještě není přiděleno.
  • Z37: Ještě není přiděleno.
  • Z38: Ještě není přiděleno.
  • Z39: Odkaz na klíč (Type): protože Z3/Key Z9/Reference.
  • Z40: Boolean (Type): protože Boole poprvé publikoval v (18)40.
  • Z41: true (Boolean).
  • Z42: false (Boolean).
  • Z43: Ještě není přiděleno.
  • Z44: Ještě není přiděleno.
  • Z45: Ještě není přiděleno.
  • Z46: Ještě není přiděleno.
  • Z47: Ještě není přiděleno.
  • Z48: Ještě není přiděleno.
  • Z49: Ještě není přiděleno.
  • Z50: Typ chyby (Type): protože Error (Chyba) je Z5.
  • Z60: Přirozený jazyk (Type): protože Z6 je string (řetězec).
  • Z61: Programovací jazyk (Type): protože Z16 je code (kód).
  • Z80: Byte (Type): protože se jedná o oktet.
  • Z84: Union (Type).
  • Z85: Ještě není přiděleno.
  • Z86: Code point (Type): protože to není přesně Z80/Byte, ale spíše Z6/String.
  • Z99: Uvozovky (Type): protože v angličtině vypadá trochu jako uzavírací uvozovky.

Základní funkce

  • Z801Echo: T ➝ T
    vrací vstup beze změny
  • Z802If: Boolean, T, T ➝ T
    vrací druhý argument, pokud je první pravdivý, jinak třetí; pokud má dvě písmena
  • Z803Value by key: Key reference, Any ➝ Any
    vrací hodnotu podle klíče z objektu; Z3/Key
  • Z805Reify: Any ➝ List(Pair(Key reference, Any))
    transformuje libovolný objekt na seznam dvojic klíč-hodnota; reify má pět písmen.
  • Z808 Abstract: List(Pair(Key reference, Any)) ➝ Any
    transformuje seznam dvojic klíč-hodnota na objekt; abstract má osm písmen.
  • Z810 Prepend element to list: T, List(T) ➝ List(T)
    vloží objekt na začátek uspořádaného seznamu objektů (protože Z10 je list (seznam)).
  • Z811 First element: List(T) ➝ T
    zjistí první položku v uspořádaném seznamu objektů (protože Z10 je seznam a my získáme první položku)
  • Z812 List without first element: List(T) ➝ List(T)
    vrací seznam bez prvního objektu (protože Z10 je list (seznam) a my získáme druhý, zbytek)
  • Z813 Empty: List(T) ➝ Boolean
    vrací, zda list (seznam) neobsahuje žádnou položku (protože Z13 je empty list (prázdný seznam)).
  • Z820 Trigger Metadata: String, Any ➝ Any
    přebírá zadanou hodnotu (chybu nebo jiná metadata) a vypíše ji do odpovědi volání funkce pod názvem vstupu Stringu.
  • Z821 First: Pair(T1, T2) ➝ T1
    získá první hodnotu pairu (dvojice) (protože Z22 je pair (dvojice)).
  • Z822 Second: Pair(T1, T2) ➝ T2
    získá druhou hodnotu pairu (dvojice) (protože Z22 je pair (dvojice)).
  • Z844 Boolean equality: Boolean, Boolean ➝ Boolean
    vrací true (pravda), pokud jsou oba vstupy stejné, jinak false (nepravda)
  • Z860 Language code to language: String ➝ Language
    vstupem je kód jazyka zadaný jako string (řetězec) a vrací objekt Language (Přirozený jazyk)
  • Z866 String equality: String, String ➝ Boolean
    vrací true (pravda), pokud jsou oba vstupy stejné, jinak false (nepravda)
  • Z868 Convert: String ➝ List(Character)
    convert a string into a list of Characters, because Z6/String and Z86/Character.
  • Z873 Map: Function, List ➝ List
    Returns a list where each of the Z1/objects of an input Z881/List has been processed by the given Z8/Function
  • Z876 Reduce: Function, List, Object ➝ Object
    Returns a value after running the given Function on each object of the List, starting with the given Object
  • Z868 Convert: String ➝ List(Character)
    převádí string (řetězec) na seznam Characterů (znaků), protože Z6/String (Řetězec) a Z86/Character (Znak).
  • Z881Typed list: Type ➝ Type
    vstupme je type (typ) a vrací type (typ) seznamu prvků tohoto typu
  • Z882Typed pair: Type, Type ➝ Type
    vstupem jsou dva typy a vrací type (typ) reprezentující dvojici těchto typů
  • Z883Map: … ➝ …
  • Z884Union: T, T ➝ T
    vstupem jsou dva typy a vrací type (typ), který je akceptován
  • Z885Error type to type: Error type ➝ Type
    vstupem je error type (typ chyby) a vytváří z něj type (typ)
  • Z886Convert: List*(Character) ➝ String
    převádí seznam znaků na řetězec, protože Z86/Character (Znak) a Z6/String (Řetězec).
  • Z887Reduce: … ➝ …
  • Z888 Same: Character, Character ➝ Boolean
    porovnává dva znaky a vrácí, zda se rovnají.
  • Z899 Unquote: Quote ➝ Any
    Oduvozovkuje objekt ZObject, protože Z99/Quote.

Základní typy chyb

  • Z501 (chybová zpráva, vstup): syntaktická chyba
  • Z502 (podtyp, hodnota): není dobře zapsáno, ukazuje na Z52x nebo Z53x
  • Z503 (název funkce): zatím neimplementováno
  • Z504 (zid): Zid nebyl nenalezen
  • Z505 (očekáváný počet, vložený počet, argumenty): nesprávný počet argumentů
  • Z506 (očekávaný typ, vložený typ, argument): nesprávný typ argumentu
  • Z507 (volání funkce): chyba při evaluaci
  • Z508 (objekt): konkurenční klíče
  • Z509 (errors): List of errors
  • Z510 (none): nil
  • Z511 (klíč, objekt): klíč nebyl nalezen
  • Z512 (object): Z9 chyba
  • Z513 (cílový objekt): cílový objekt bez Z2K2
  • Z514 (implementace): Builtin (zabudovaná funkce) neexistuje
  • Z515 (implementace): Builtin ID (zabudované ID) je chybné
  • Z516 (klíč, špatná hodnota): Chyba hodnoty argumentu
  • Z517 (expected type, actual type, returned value, propagated error): Return type mismatch
  • Z518 (expected type, object, propagated error): Object type mismatch
  • Z519 (object): Undefined list type
  • Z520 (object): Wrong list type
  • Z521 (chybná hodnota): ZObject nesmí být číslo nebo boolean nebo null
  • Z522 (chybný index v poli, propagovaná chyba): Prvek pole není správný
  • Z523 (objekt): Chybí Z1K1
  • Z524 (hodnota Z1K1): Z1K1 nesmí být string (řetězec) nebo array (pole)
  • Z525 (klíč): Neplatný klíč
  • Z526 (klíč, propagovaná chyba): není správně formulovaná hodnota
  • Z531 (celý objekt): Z6 musí mít 2 klíče
  • Z532 (celý objekt): Z6 bez Z6K1
  • Z533 (hodnota Z6K1): Z6K1 musí být string (řetězec)
  • Z534 (celý objekt): Z9 musí mít 2 klíče
  • Z535 (celý objekt): Z9 bez Z9K1
  • Z536 (hodnota Z9K1): Z9K1 musí být string (řetězec) ve formátu JSON
  • Z537 (hodnota Z9K1): Z9K1 musí být reference (odkaz)
  • Z538 (název stránky): chybný jmenný prostor
  • Z539 (název stránky): chybný typ obsahu
  • Z540 (kód jazyka): neplatný kód jazyka
  • Z541 (kód jazyka): kód jazyka nebyl nalezen
  • Z542 (očekávaný typ, zadaný objekt): očekávaný typ, zadaný objekt
  • Z543 (název typu): typ nenalezen
  • Z544 (typ zid, název typu, existující název typu): konfliktní názvy typů
  • Z545 (typ zid, název typu, existující typ zid): konfliktní typ Zidů
  • Z546 (typ zid, název typu): builtin type (vestavěný typ) nenalezen
  • Z547 (vstup): neplatný formát
  • Z548 (chybová zpráva, vstup): neplatný JSON
  • Z549 (referenční hodnota): neplatná ZReference
  • Z550 (referenční hodnota): neznámá ZReference
  • Z551 (klíč, očekávaný typ, zadaný typ): neshoda typu schématu
  • Z552 (index, očekávaný typ, skutečný typ): neshoda typu prvku pole
  • Z553 (zobject): nepovolený typ kořene
  • Z554 (kolidující ZID, jazyk): štítek koliduje se štítkem jiného ZObjektu
  • Z555 (ZID, titulek): chybně zadaný ZID a titulek stránky
  • Z556 (titulek): neplatný titulek stránky
  • Z557 (chybová zpráva): uživatel nemá oprávnění
  • Z558 (programovací jazyk): neplatný programovací jazyk
  • Z559 (none): user not permitted to evaluate function
  • Z560 (evaluation result): invalid evaluation result
  • Z561 (propagated error): invalid evaluation request
  • Z562 (missing property): incomplete evaluation request
  • Z563 (call): call by non-reentrant executor
  • Z564 (contents): invalid executor response
  • Z565 (missing property): Incomplete executor request
  • Z570 (orchestrator rate limit): reached rate limit in orchestrator
  • Z571 (evaluator rate limit): reached rate limit in evaluator
  • Z572 (recursion limit, function name): reached recursion limit in orchestrator
  • Z573 (recursion limit, function name): reached recursion limit in evaluator
  • Z574 (time limit): reached time limit in orchestrator
  • Z575 (time limit): reached time limit in evaluator


Viz též