Abstraktní Wikipedie/Fáze
Tato page je uchována pro historický zájem. Jakákoli zmíněná pravidla mohou být zastaralá. Pokud chcete téma oživit, můžete použít diskusní stránku nebo zahájit diskusi na komunitním fóru. |
Abstraktní Wikipedie |
---|
(Diskuse) |
Obecné informace |
Vývojový plán |
|
Poznámky, koncepty, diskuse |
|
Příklady a makety |
Datové nástroje |
Historický |
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
- 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
- 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
- Hotovo Každý uložený objekt ZObject nejvyšší úrovně musí být Z2/Persistent object (Persistentním objektem). — úkol T258897
- Hotovo Vytvoření Z1/Object, nabízející jeden klíč, Z1K1/type (typ).
- Hotovo Rozšíření hardcodového validátoru o kontrolu Z1K1/type (typu).
- Hotovo Vytvoření Z2/Persistent object (Persistentního objektu). — úkol T258897
- 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
- Hotovo Rozšíření dosud pevně zadaného validátoru pro Z2/Persistent object (Persistentní objekt). — úkol T258897
- Hotovo Zajistit zobrazení natvrdo naprogramované pro Z2/Persistent object (Persistentní objekt) (tedy hlavičku) (to je docela velký úkol). — úkol T258898
- Hotovo Poskytnutí obecného zobrazení pro objekt Z2K2/value (hodnota). — úkol T258898
- Hotovo Změna Z2K3/proto-label na reálný Z2K3/label (štítek) pro vícejazyčný text.
- 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
- 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?).
- Hotovo Vytvoření Z4/Type (Typu) a Z3/Key (Klíč) (Úkol P1.14).
- Hotovo Vyhledávání ZObjektů podle label (štítku). — úkol T260750
- Pro tuto fázi hotovo Použití deklarací dat typu Z4 a klíčů pro validaci objektů. — úkol T260861
- Hotovo Použití deklarací dat typu Z4 a klíčů pro obecné zobrazení objektů. — úkol T258901
- Hotovo Použití deklarací dat typu Z4 a klíčů pro editace a vytváření objektů. — úkol T258903 & úkol T258904
- 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
- Hotovo Zavedení jednoduchého chybového objektu. — úkol T261464
- Hotovo Zavedení jednoduché funkce. — úkol T258957
- Hotovo Zavedení jednoduché implementace, zatím pouze vestavěné moduly. — úkol T258958
- Hotovo Vytvoření několika funkcí a vestavěných modulů. — úkol T261474
- Hotovo Zavedení jednoduchého typu volání funkce. — úkol T261467
- 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
- Hotovo Evaluační systém pro vestavěné moduly. — úkol T260321
- Hotovo Umožnění uživatelům webu volat evaluaci prostřednictvím modulu API (Úkol P1.5). — úkol T261475
- 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
- Hotovo Implementace v jazyce JavaScript (Úkol P1.12). — úkol T275944
- Hotovo Implementace v jazyce Python (Úkol O6). — úkol T273517
- 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
- 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
- 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
- Hotovo Chyby lze zpracovávat stejně jako ZObjekty.
- 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)
ainteger (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
- Hotovo Zmrazování a rozmrazování obsahu (Úkol P1.7). ― úkol T275942
- Hotovo Úkol P1.9: Projděte bezpečnostní kontrolou. — úkol T274682, …
- 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ů
- Jedná se o předběžné zadání, které přesouvá dokumentační úkoly sem.
- 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ů.
- Rozšíření zobrazení pro Z2K3/label (štítek) s vícejazyčným textem.
- Rozšíření záhlaví o Z2K4/documentation (dokumentaci). — úkol T260954 & úkol T260956
- 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
- 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í
- Fáze λ (lambda) je určena ke startu. Pokud existují úkoly před spuštěním, které tomu brání, samozřejmě.
- Založení nového projektu Wikimedia.
- 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:
- Úkol P1.1: Inicializace projektu.
- Úkol P1.3: Nastavení testovací infrastruktury
- Úkol P1.8: Spuštění beta verze Wikifunkcí
Úkoly po spuštění části 1
- P1.13: Funkce přístupu.
- Úkol P1.15: Implementace v jazyce Lua
- Úkol P1.16: Ne-funkční rozhraní
- P1.17: Volání REST.
- Úkol P1.18: Přístup k Wikidatům a dalším projektům WMF
- Úkol P1.19: Jednojazyčné generování