This page is a translated version of the page Abstract Wikipedia/Phases and the translation is 100% complete.

Vývoj abstraktní Wikipedie bude probíhat ve dvou hlavních částech, z nichž každá se skládá z velkého počtu úkolů. Část P1 se zabývá vývojem wiki funkcí a část P2 se věnuje abstraktnímu obsahu a generování přirozeného jazyka. Na této stránce dále rozdělujeme úkoly části P1 do fází, z nichž každá pokrývá část práce v rámci daného úkolu. Níže jsou uvedeny odkazy na aplikaci Phabricator, kde jsou úkoly a fáze ještě více rozděleny.

Tato stránka wiki může být zastaralá. Kanonickým místem pro informace o úlohách je Phabricator. Podívejte se na aktuální stav na Phabricatoru.

Předpokládáme, že před spuštěním wiki funkcí proběhne přibližně deset fází.

Všechny níže uvedené fáze zahrnují práci v rámci Úkol P1.2: Počáteční vývoj, pokud není označeno jinak.

Část P1: Wiki funkcí

Fáze α (alfa): ukládání, zobrazování a úprava záhlaví —   Hotovo 2020-08-25

  1. Nastavení replikovatelného vývojového prostředí. — úkol T258893
    •   Hotovo Spuštění rozšíření. — úkol T258893
    •   Hotovo Konfigurace funguje, načtěte obsah bootstrapu.
    •   Hotovo Opětovné použití stávajícího JSON ContentHandler. — úkol T258893
    •   Hotovo Umožnění zadávání objektů JSON prostřednictvím rozhraní pro surové úpravy. — úkol T258893
  2.   Hotovo Rozšíření a hrubá kontrola objektů JSON, zda jsou správného tvaru v podobě ZObjektu. S ničím, co není dobře zformované, se nebude dále pracovat ani se nebude ukládat. Dobře zformátovaný tvar by se měl pravděpodobně kontrolovat jak v kódu PHP, tak v kódu JS (stejně by to mělo být snadné napsat).
    •   Hotovo v PHP. — úkol T258894
    • Správná forma: syntaxe klíče, povolené klíče, hodnoty jsou řetězce nebo proto-objekty nebo seznamy hodnot. — úkol T258894
  3.   Hotovo Každý uložený objekt ZObject nejvyšší úrovně musí být Z2/Persistent object (Persistentním objektem). — úkol T258897
  4.   Hotovo Vytvoření Z1/Object, nabízející jeden klíč, Z1K1/type (typ).
  5.   Hotovo Rozšíření hardcodového validátoru o kontrolu Z1K1/type (typu).
  6.   Hotovo Vytvoření Z2/Persistent object (Persistentního objektu). — úkol T258897
  7.   Hotovo Z2/Persistent object (Persistentní objekt) má klíče Z2K1/ID (ID) a Z2K2/value (hodnota) a Z2K3/Proto-Label, přičemž posledně jmenovaný je ve skutečnosti jen jeden řetězec bez jazykových informací. — úkol T258897
  8.   Hotovo Rozšíření dosud pevně zadaného validátoru pro Z2/Persistent object (Persistentní objekt). — úkol T258897
  9.   Hotovo Zajistit zobrazení natvrdo naprogramované pro Z2/Persistent object (Persistentní objekt) (tedy hlavičku) (to je docela velký úkol). — úkol T258898
  10.   Hotovo Poskytnutí obecného zobrazení pro objekt Z2K2/value (hodnota). — úkol T258898
  11.   Hotovo Změna Z2K3/proto-label na reálný Z2K3/label (štítek) pro vícejazyčný text.
  12.   Hotovo Rozšíření zobrazení pro Z2K3/label (štítek) s vícejazyčným textem.

Podmínka dokončení fáze: Jako uživatel [webu s nainstalovaným rozšířením MediaWiki] mohu vytvořit a uložit řetězec jako nový ZObject, např.. "Hello world!".

Fáze β (beta): vytváření typů a instancí —   Hotovo 2021-02-04

  1.   Hotovo Hardcoded validátory pro Z4/proto-types (proto-typy) a Z3/proto-keys (proto-klíče). — úkol T258900
    • Z4 má Z4K2/keys (klíče) s List (Seznamem) objektů Z3.
    • Proto-key (Proto-klíč) má Z3K1/ID (ID) a Z3K2/type (typ) a Z3K3/label (štítek) (zrcadlí vývoj label (štítku) pro Z2K3?).
  2.   Hotovo Vytvoření Z4/Type (Typu) a Z3/Key (Klíč) (Úkol P1.14).
  3.   Hotovo Vyhledávání ZObjektů podle label (štítku). — úkol T260750
  4.   Pro tuto fázi hotovo Použití deklarací dat typu Z4 a klíčů pro validaci objektů. — úkol T260861
  5.   Hotovo Použití deklarací dat typu Z4 a klíčů pro obecné zobrazení objektů. — úkol T258901
  6.   Hotovo Použití deklarací dat typu Z4 a klíčů pro editace a vytváření objektů. — úkol T258903 & úkol T258904
  7.   Hotovo Poskytnutí pevně zadaného rozhraní pro zobrazení a úpravy typu Z12. — úkol T258900

Podmínka dokončení fáze: Jako uživatel mohu vytvořit a uložit objekt implementující libovolný typ definovaný na wiki, např. kladné celé číslo.

Fáze γ (gama): funkce, implementace, chyby —   Hotovo 2021-04-02

  1.   Hotovo Zavedení jednoduchého chybového objektu. — úkol T261464
  2.   Hotovo Zavedení jednoduché funkce. — úkol T258957
  3.   Hotovo Zavedení jednoduché implementace, zatím pouze vestavěné moduly. — úkol T258958
  4.   Hotovo Vytvoření několika funkcí a vestavěných modulů. — úkol T261474
  5.   Hotovo Zavedení jednoduchého typu volání funkce. — úkol T261467
  6.   Hotovo Tester (Úkol P1.10). — úkol T261465

Podmínka dokončení fáze: Jako uživatel mohu uložit volání funkce, funkci a tester (pouze objekty, zatím žádné skutečné vyhodnocení), např. if(true, false, true) (čti "pokud true, pak false, jinak true", tj. negace).

Fáze δ (delta): vestavěné prvky —   Hotovo 2021-05-11

  1.   Hotovo Evaluační systém pro vestavěné moduly. — úkol T260321
  2.   Hotovo Umožnění uživatelům webu volat evaluaci prostřednictvím modulu API (Úkol P1.5). — úkol T261475
  3.   Hotovo Speciální stránka pro evaluaci volání (Úkol P1.11). — úkol T261471

Podmínka dokončení fáze: Jako uživatel mohu použít speciální stránku pro vyhodnocení vestavěné funkce s dodanými vstupy, např. pro kontrolu, zda je prázdný seznam prázdný.

Fáze ε (epsilon): volání nativních funkcí —   Hotovo 2021-06-30

  1.   Hotovo Implementace v jazyce JavaScript (Úkol P1.12). — úkol T275944
  2.   Hotovo Implementace v jazyce Python (Úkol O6). — úkol T273517
  3.   Hotovo Umožnit zařazení formulářů pro evaluaci. — úkol T261472

Podmínka dokončení fáze: Jako uživatel mohu pomocí speciální stránky provést vyhodnocení funkce napsané uživatelem v některém z podporovaných jazyků, např. např. zavolat funkci napsanou uživatelem v jazyce Python, která sečte dvě čísla.

Fáze ζ (zeta): kompozice —   Hotovo 2021-08-27

  1.   Hotovo Umožnění implementace kompozice (Úkol P1.6). — úkol T261468

Podmínka dokončení fáze:

  • Jako uživatel mohu implementovat funkci pomocí kompozice jiných funkcí, místo abych ji psal sám, např. negate(Boolean → Boolean). —   Hotovo
  • (Rozšířená podmínka) Jako uživatel vidím výsledky testerů na stránce implementace příslušné funkce. [Toto může být nutné přesunout do pozdější fáze, protože v tomto bodě nemusí být splněny všechny požadavky. Musí být provedeno do fáze ι.] —   Hotovo

Fáze η (eta): obecné typy —   Hotovo 2022-04-08

  1.   Hotovo Povolení obecných typů, zejména pro Z10/List (Seznam) a Z8/Function (Funkce), a nahrazení Z10/List (Seznam) a Z8/Function (Funkce). ― úkol T275941
  2.   Hotovo Chyby lze zpracovávat stejně jako ZObjekty.
  3.   Hotovo Uživatelsky definované typy pracují s validátory.

Podmínka dokončení fáze:

  • Umožnění implementace curryingu jako kompozice na wiki, ale bez nutnosti přísné statické analýzy. —   Hotovo
  • Umožnění vytvoření následujících tří "uživatelsky definovaných" typů na wiki: positive integer (kladné celé číslo), sign (znaménko) a integer (celé číslo). —   Hotovo
  • Umožnění vytvoření obecného typu obalu pomocí kompozice na wiki —   Hotovo

Viz též newsletter o této fázi.

Fáze θ (theta): rozmrazování a zmrazování —   Hotovo 2023-06-19

  1.   Hotovo Zmrazování a rozmrazování obsahu (Úkol P1.7). ― úkol T275942
  2.   Hotovo Úkol P1.9: Projděte bezpečnostní kontrolou. — úkol T274682, …
  3.   Hotovo Spuštění veřejného testovacího systému (Úkol P1.4). — úkol T261469

Podmínka dokončení fáze:

  • Jako správce mohu zmrazit a rozmrazit jakýkoli objekt napsaný uživatelem (podobně nebo možná stejně jako systém ochrany MediaWiki); všechny objekty dodané systémem jsou trvale zmrazeny.
  • Jako uživatel upravující zmrazenou stránku mohu změnit popisek, ale ne implementaci, zatímco na nezmrazené stránce je možné obojí.
  • ZObjecty jsou uloženy pomocí nového kanonického tvaru pro typed lists (typované seznamy) a všechny části jsou stále funkční.
  • Funkce zobrazení a úprav je implementována a úspěšně otestována
  • Pokud je k dispozici několik implementací, vybere se ta "nejlepší". (Určení vhodnosti může být později změněno.)
  • Měříme čas běhu a využití paměti každé spuštěné funkce a zobrazujeme je ve výsledku provádění a v implementační/testovací tabulce.
  • Úpravy systémově definovaných ZObjectů jsou omezeny na uživatele se správnými právy. Jsou zobrazeny srozumitelné rozdíly. Výsledky jsou ukládány do mezipaměti.
  • Text se zpětnými odkazy, odkazy, řetězci, seznamy je implementován a úspěšně otestován
  • Je zdokumentována společná dohoda s komunitou o tom, jak a proč bude tým přispívat do Wikifunkcí.
  • Jsou schváleny návrhy pro prohlížení a úpravy vícejazyčné dokumentace na mobilních zařízeních a počítačích. UX je instrumentováno a data jsou shromažďována.

Fáze ι (iota): dokumentace objektů

  1. Jedná se o předběžné zadání, které přesouvá dokumentační úkoly sem.
  2. Zajištění úprav záhlaví (navíc k plným hrubým úpravám) (to je docela velký úkol) - týká se to vlastně jen štítků.
  3. Rozšíření zobrazení pro Z2K3/label (štítek) s vícejazyčným textem.
  4. Rozšíření záhlaví o Z2K4/documentation (dokumentaci). — úkol T260954 & úkol T260956
  5. Rozšíření úprav o Z2K4/documentation (dokumentaci). — úkol T260955

Podmínka dokončení fáze: Jako uživatel mohu dokumentovat objekt ZObject ve všech podporovaných jazycích pomocí wikitextu.

Fáze κ (kappa): úklid

  1. Dotažení a vyčištění úkolů, uzavření všech úkolů před spuštěním.

Podmínka dokončení fáze: Jako tým abstraktní Wikipedie se cítíme připraveni na spuštění, včetně podpisu všech příslušných kolegů.

Fáze λ (lambda): spuštění

  1. Fáze λ (lambda) je určena ke startu. Pokud existují úkoly před spuštěním, které tomu brání, samozřejmě.
  2. Založení nového projektu Wikimedia.
  3. Přesunutí některých wiki stránek o projektu z Meta do Wikifunkcí.

Podmínka dokončení fáze: Jako člověk na webu mohu navštívit a používat Wikifunctions.org a psát a spouštět funkce přímo na webu.

Nefázované úkoly

Úkoly před spuštěním, které je třeba provést, ale ještě nejsou zavedeny do fáze:

Úkoly po spuštění části 1

Viz též