Abstraktní Wikipedie/Plán
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ý |
- Jedná se o jednostránkovou verzi jednotlivých částí, které jsou přeloženy. Kliknutím na nadpisy přejdete na jednotlivé stránky.
Tento návrh je pracovní verzí a očekává se, že na základě rozhodnutí a diskusí s komunitami a dalšími zúčastněnými stranami dojde k jeho významným změnám. Což také znamená, že připomínky a diskuse jsou více než vítány, aby bylo možné návrh zlepšit a formovat. |
V Abstraktní Wikipedii je "abstraktní obsah" reprezentován ve formátu nezávislém na jazyce, který může komunita přímo upravovat. Jednotlivé lokální Wikipedie mohou přistupovat k vlastnímu lokálně spravovanému obsahu a obohacovat jej o "abstraktní obsah" (z abstraktní Wikipedie). Tímto způsobem mohou lokalizovaná vydání Wikipedie s mnohem menším úsilím poskytovat svým čtenářům mnohem více obsahu, který je obsáhlejší, aktuálnější a prověřenější než to, co může poskytnout většina místních Wikipedií.
Vzhledem k výsledkům výzkumu a prototypům v oblasti generování přirozeného jazyka je bohužel pravda, že generování přirozeného jazyka z jazykově nezávislého "abstraktního obsahu" vyžaduje "Turingův úplný" systém. Aby však bylo možné pokrýt množství jazyků, které Wikipedie potřebuje, musí být tento systém crowdsourcován. Proto představujeme Wikifunctions, projekt na vytvoření, katalogizaci a údržbu otevřené knihovny (nebo repozitáře) "funkcí", který má mnoho možných případů použití.
Hlavním motivací pro Wikifunctions je vývoj "rendererů" (tj. některé z funkcí umístěných nebo odkazovaných ve Wikifunctions), které převádějí jazykově nezávislý "abstraktní obsah" do přirozeného jazyka s využitím lingvistických a ontologických znalostí dostupných ve Wikidatech (nebo znalostí z jiných vhodných otevřených zdrojů dat použitelných ve Wikipedii, případně včetně dat z jiných projektů Wikimedia jako Wikislovník nebo Wikidruhy).
Projekt začne vytvořením projektu Wikifunctions, který bude následně využit k vytvoření abstraktní Wikipedie. Projekt Wikifunctions bude spuštěn během prvního roku a ve druhém roce přidáme vývoj abstraktní Wikipedie. Po dvou letech vytvoříme ekosystém, který umožní tvorbu a údržbu jazykově nezávislého "abstraktního obsahu" a integraci tohoto obsahu do Wikipedie, čímž se výrazně zvýší pokrytí, aktuálnost a přesnost mnoha jednotlivých Wikipedií. Tím se výrazně přiblížíme světu, kde se každý může podílet na souhrnu všech znalostí.
"Wikifunkce" byly vybrány jako název nové wiki v soutěži soutěž o pojmenování wiki funkcí. |
Všechny názvy - Abstraktní Wikipedie a Wikilambda - jsou předběžné a jsou určeny především pro psaní tohoto návrhu a diskusi o něm.
Současné názvy jsou založeny na následující myšlence:
- Abstraktní Wikipedie: obsah abstrahovaný z konkrétního jazyka.
- Wikilambda: vychází z představy, že všechny funkce mohou být založeny na lambda kalkulu. Také Wλ vypadá poněkud technofilsky ("geekovsky"), s rizikem, že bude vnímána jako něco, co neodpovídá jejímu určení veřejností, a že ji budou spravovat s předsudky pouze specialisté, již jsou zvýhodněni přístupem k největším znalostem dostupným v jejich vlastní kultuře.
Uvědomte si, že název "Abstraktní Wikipedie" se ve skutečnosti neudrží. Po dokončení projektu bude Abstraktní Wikipedie pouze součástí Wikidat. Jedná se pouze o název pro vývojové práce, a proto pojmenování není tak zásadní. Naproti tomu Wikilambda by měla být novým projektem Wikimedia, a proto bude mít název poměrně velkou viditelnost. Bylo by dobré vymyslet pro něj dobrý název.
Výhrady
Proti názvu Wikilambda zatím zazněly tři dobré důvody:
- Pro mnoho lidí je to opravdu těžké napsat (říká Effeietsanders).
- Někteří lidé si to pletou s Wikilambadou (říká Jean-Frédéric).
- Snadno se také čte jako WikiIambda / Wikiiambda (tedy s dalším i / I místo l / L), takže by to mělo být alespoň WikiLambda s velkým L (navrhl Fuzheado).
Navržené alternativy
Zvažované nebo navrhované alternativní názvy:
Jedná se o archiv. Nové názvy by měly být navrženy v Soutěž o pojmenování wiki funkcí. |
---|
Další návrhy jsou vítány. |
Ve skutečnosti bude prvním úkolem P1.1 projektu rozhodnout společně s komunitou o názvu a logu. To mělo přednost i u předchozích projektů (logo Wikidat, název Wikivoyage).
Projekt má ambiciózní primární a celou řadu sekundárních cílů.
Primární cíle
- Umožnit více lidem číst více obsahu v jazyce, který si zvolí.
- Umožnit více lidem přispívat obsahem pro více čtenářů, a tím zvýšit dosah nedostatečně zastoupených přispěvatelů.
Sekundární cíle
Mezi sekundární cíle patří mimo jiné:
- Opakovaně použitelné a dobře otestované generování přirozeného jazyka.
- Umožnění ostatním komunitám Wikimedia a externím stranám vytvářet obsah ve více jazycích.
- Zlepšení komunikace a dostupnosti znalostí daleko nad rámec projektů Wikipedie.
- Vytvoření nového, mnohem komplexnějšího přístupu k reprezentaci znalostí.
- Vyvinutí nového přístupu k reprezentaci výsledků porozumění přirozenému jazyku.
- Knihovna funkcí.
- Umožnění vývoje a sdílení funkcí v rodných jazycích uživatelů, místo aby se museli nejprve naučit anglicky.
- Umožnění všem podílet se na funkcích a provozovat je.
- Zavedení nové formy znalostních prostředků pro správu projektu Wikimedia.
- Zavádění nových prvků do Wikipedie a dalších projektů Wikimedia, které umožňují interaktivní funkce.
- Vytvoření funkcí pracujících nad znalostní bází Wikidata, čímž se výrazně zvýší pokrytí dat z Wikidat.
- Podněcování výzkumu a vývoje v oblasti demokratizace kódovacích rozhraní.
- Umožnění vědcům a analytikům sdílet modely a pracovat na nich společně.
- Sdílení specifikací a testů funkcí.
- Umožnění odkazovat na sémantiku funkcí prostřednictvím přesně definovaných identifikátorů.
- Rychlejší vývoj nových programovacích jazyků díky přístupu k širší standardní knihovně (nebo úložišti) funkcí v nové specializované wiki.
- Definování algoritmu a přístupů pro popisy norem a technik.
- Poskytnutí přístupu k výkonným funkcím, které lze integrovat do nových systémů strojového učení.
Seznam není úplný.
Předpokládáme, že základní tým, zaměstnaný jednou hostující organizací, bude pracovat výhradně na Wikifunkcích a abstraktní Wikipedii. Podporovat ho budou další oddělení hostitelské organizace, jako jsou lidské zdroje, právní oddělení atd.
Tým bude výslovně nastaven tak, aby byl otevřený a vstřícný k externím příspěvkům do code base. Ti mohou být dobrovolničtí nebo placení (např. prostřednictvím grantů hnutí nebo jiných organizací či společností). Naším cílem je nabídnout dobrovolníkům přednostní zacházení, abychom zvýšili šance na vytvoření zdravých dobrovolnických komunit, které pro projekt takových ambicí potřebujeme.
Projekt se bude vyvíjet na svobodném základě. Komunikační kanály týmu budou pokud možno veřejné. Komunikační pokyny budou veřejné. To pomůže s vytvořením vývojového týmu, který bude komunikovat veřejně a který umožní integrovat externí příspěvky do kódové základny.
Následující přísné požadavky vycházejí ze zásad a postupů hnutí Wikimedia:
- Abstraktní Wikipedie a Wikifunkce budou projekty Wikimedia, které spravuje a provozuje Nadace Wikimedia. Z toho vyplývá, že Abstraktní Wikipedie a Wikifunkce se budou řídit zakladatelskými principy a pravidly hnutí Wikimedia.
- Software pro provoz abstraktní Wikipedie a Wikifunkcí bude vyvinut pod licencí Open Source a bude záviset pouze na softwaru, který je Open Source.
- Nastavení abstraktní Wikipedie a Wikifunkcí by se mělo co nejsnáze začlenit do stávající infrastruktury Wikimedia. To znamená, že bychom měli co nejvíce zapadnout do stejné infrastruktury pro nasazení, údržbu a provoz.
- Veškerý obsah abstraktní Wikipedie a Wikifunkcí bude zpřístupněn pod svobodnými licencemi.
- Úspěch abstraktní Wikipedie a Wikifunkcí se hodnotí podle toho, jak se vytvářejí zdravé komunity a kolik znalostí se zpřístupňuje v jazycích, které k nim dříve neměly přístup.
- Abstraktní Wikipedie se bude řídit zásadami definovanými mnoha jednotlivými wikipediemi: zejména neutrální hledisko pohledu, ověřitelnost, významnost a žádný původní výzkum (dále rozvíjené rozvojem komunitních kapacit a komunitami pro každou místní wiki).
- Abstrakt Wikipedie a Wikifunkce budou plně internacionalizované a dostupné a editovatelné ve všech jazycích projektů Wikimedia. Zda bude plně lokalizovaná, závisí na komunitách.
- Hlavním cílem je podpora místních Wikipedií, Wikidat a dalších projektů Wikimedia, a to v tomto pořadí. Sekundárním cílem je růst našich vlastních komunit. Terciárním cílem je podpora zbytku světa.
- Místní komunity Wikipedie musí mít kontrolu nad tím, jak moc je abstraktní Wikipedie ovlivňuje. Pokud nechtějí, aby se jich Wikipedie dotýkala, mohou ji zcela ignorovat a nic se pro ně nezmění.
Vývojáři abstraktní Wikipedie nerozhodují o obsahu abstraktní Wikipedie, stejně jako vývojáři MediaWiki nerozhodují o obsahu Wikipedie. Na rozdíl od ostatních projektů Wikimedia se vývojáři aktivně podílejí na vytváření a rozjíždění počáteční sady typů a funkcí a na vytváření potřebných funkcí ve Wikifunkcích pro Abstraktní Wikipedii a pomáhají s rozjezdem komunit jazykových rendererů. Na rozdíl od jiných projektů bude vývojový tým Abstraktní Wikipedie a Wikifunkcí z počátku více zapojen do projektu, ale klade si za cíl předat vše komunitám spíše dříve než později.
Následující požadavky slouží jako pevné vodítko, které uplatňujeme při návrhu a vývoji Abstraktní Wikipedie:
- Abstrakt Wikipedie a Wikifunkce jsou sociotechnickým systémem. Místo toho, abychom se snažili být příliš inteligentní, spoléháme na komunity Wikimedia.
- Prvním cílem Abstraktní Wikipedie a Wikifunkcí je sloužit skutečným případům použití ve Wikipedii, nikoli umožnit nějakou formu hypotetické dokonalosti v reprezentaci znalostí nebo reprezentovat celý lidský jazyk.
- Abstraktní Wikipedie a Wikifunkce musí vyvažovat snadnost použití a expresivitu. Uživatelské rozhraní by se nemělo komplikovat, aby pokrylo jen několik výjimečných okrajových případů.
- Co je výjimečný případ a co ne, se určí podle toho, jak často se objevuje ve Wikipedii. Místo anekdotických důkazů nebo hypotetických příkladů budeme analyzovat Wikipedii a zjišťovat, jak časté jsou konkrétní případy.
- Buďme pragmatičtí. Nasazení je lepší než dokonalost.
- Abstraktní Wikipedie a Wikifunkce poskytnou mnoho nových dat, která mohou podpořit externí výzkum, vývoj a případy použití. Chceme zajistit, aby byla snadno použitelná.
- Wikifunkce budou poskytovat rozhraní API pro volání libovolné funkce, která je v nich definována. Bude však omezeno výpočetními náklady, které bude nabízet.
- Abstraktní Wikipedie a Wikifunkce budou moci upravovat lidé i roboti. Lidé, kteří provozují boty, si však musí být vědomi své zvýšené odpovědnosti, aby komunitu nezahltili.
Hlavními složkami projektu jsou následující tři:
- Konstruktory - definice konstruktorů a jejich slotů, včetně jejich významu a omezení typů slotů a návratového typu konstruktoru (např. definice konstruktoru
rank
, který přijímá položku, typ položky, pořadí jako číslo, podle čeho je hodnocena a lokální omezení). - Obsah - abstraktní volání konstruktorů včetně výplní slotů (např.
rank(SanFrancisco, city, 4, population, California)
) - Renderery - funkce, které přijímají Obsah a jazyk a vracejí text, jehož výsledkem je přirozený jazyk reprezentující význam Obsahu (např. v uvedeném příkladu je výsledkem "San Francisco je čtvrté největší město podle počtu obyvatel v Kalifornii.").
Existují čtyři hlavní možnosti, jak implementovat tři různé hlavní komponenty:
- Ve Wikidatech jsou implementovány konstruktory, obsah a renderery.
- Konstruktory a Renderery jsou implementovány ve Wikifunkcích a Obsah ve Wikidatech vedle příslušné položky.
- Konstruktory, obsah a renderery jsou implementovány ve Wikifunkcích.
- Konstruktory a obsah jsou implementovány ve Wikidatech a renderery v jazykových verzích Wikipedie.
Řešení 4 má tu nevýhodu, že mnoho funkcí lze sdílet mezi různými jazyky a přesunutím rendererů a funkcí do místních wikipedií se o tuto možnost připravíme. Přesunutím rendererů do lokálních Wikipedií také přicházíme o potenciál, kterého by mohl dosáhnout nezávislý katalog funkcí.
Domníváme se, že pro komunikaci a budování komunity je výhodné zavést nový projekt Wikifunkce pro novou formu znalostních aktiv, funkcí, mezi které patří i renderery. To by hovořilo pro řešení 2 a 3.
Řešení 3 vyžaduje, abychom pro každý možný článek Wikipedie vytvořili nové místo ve wiki funkcí. Vzhledem k tomu, že přirozené místo pro to již existuje u položek ve Wikizdrojích, bylo by vhodnější použít je a ukládat Obsah společně s položkami ve Wikizdrojích.
Z těchto důvodů dáváme přednost řešení 2 a předpokládáme ho i pro zbytek návrhu. Pokud přejdeme k jinému, lze plán projektu snadno přizpůsobit (kromě řešení 4, které by vyžadovalo poměrně velké přepisování). Všimněte si, že řešení 2 vyžaduje k pokračování souhlas komunity Wikidata. Pokud nesouhlasí, je řešení 3 pravděpodobně další nejbližší možností.
Navrhovaná architektura vícejazyčné Wikipedie vypadá následovně. Wikipedie získává Obsah, který je uložen ve Wikidatech vedle položek. Toto rozšíření Wikidat nazýváme Abstraktní Wikipedie. Všimněte si, že se jedná pouze o název vývojového projektu a že se neočekává, že by se tento název udržel - nový wikiprojekt s tímto názvem nevznikne. Pomocí volání rendererů ve Wikifunkcích se obsah přeloží do textu v přirozeném jazyce. Renderery se spoléhají na ostatní funkce, typy a konstruktory ve Wikifunkcích. Wikifunkce mohou také volat lexikografické znalosti v lexémech ve Wikidatech, které se použijí při překladu Obsahu do textu. Wikifunkce budou novým projektem Wikimedia na stejné úrovni jako Commons, Wikidata nebo Wikisource.
(Komponenty označené kurzívou mají být tímto návrhem doplněny, složky označené tučně již existují. Rámečky nejvyšší úrovně jsou projekty Wikimedia, vnitřní rámečky jsou části daných projektů Wikimedia.) ("Wikilambda" byl pracovní název pro to, co je nyní známé jako "Wikifunkce".)
Potřebujeme rozšířit projekty Wikimedia na třech místech:
- v jazykových verzích Wikipedie a dalších klientských projektech využívajících nové možnosti,
- vr Wikidatech, pro vytváření obsahu (abstraktní Wikipedie), a
- v novém projektu Wikifunkce, jehož cílem je vytvořit knihovnu funkcí.
Rozšíření jazykových verzích Wikipedie
Každá lokální Wikipedie si může vybrat jednu z následujících tří možností:
- implicitní integrace s abstraktní Wikipedií;
- explicitní integrace s abstraktní Wikipedií;
- žádná integrace s abstraktní Wikipedií.
Rozšíření pro místní Wikipedie má tyto funkce: jednu novou speciální stránku, dvě nové funkce a tři nová magická slova.
F1: Nová speciální stránka: Abstract
Na každé místní Wikipedii bude k dispozici nová speciální stránka, která se používá s Q-ID nebo názvem místního článku a volitelným jazykem (který je ve výchozím nastavení jazykem místní Wikipedie). Příklady adres URL speciálních stránek vypadají následovně:
https://en.wikipedia.org/wiki/Special:Abstract/Q62
https://en.wikipedia.org/wiki/Special:Abstract/Q62/de
https://en.wikipedia.org/wiki/Special:Abstract/San_Francisco
https://en.wikipedia.org/wiki/Special:Abstract/San_Francisco/de
Pokud je speciální stránka vyvolána bez parametrů, zobrazí se formulář, který umožňuje vybrat Q-ID a jazyk (předvyplněný na místní jazyk).
Na speciální stránce se zobrazí obsah vybraného Q-ID nebo Q-ID s odkazem na příslušný článek ve vybraném jazyce.
F2: Explicitní vytvoření článku
Pokud se místní Wikipedie rozhodne pro možnost integrace s abstraktní Wikipedií prostřednictvím explicitního vytváření článků, udělá to takto.
Přispěvatel přejde na položku na Wikidatech, která ještě nemá odkaz na stránky v cílové místní Wikipedii. Přidá odkaz na stránku, která ještě neexistuje. Tímto způsobem určí název článku. Pokud by například Q62 v angličtině ještě neměl článek, a tedy ani sitelink, může přidat sitelink San_Francisco
pro en.wikipedia.
V místní Wikipedii se vytvoří virtuální článek v hlavním jmenném prostoru. Tento článek má stejný obsah jako výše popsaná speciální stránka, ale najdete ho pod obvyklou adresou URL, tj.
Odkazy na tento článek s nově zadaným názvem vypadají stejně jako ostatní odkazy, tj. odkaz na [[San Francisco]]
bude směřovat na virtuální článek, bude modrý atd. Takové články jsou indexovány pro vyhledávání v dané Wikipedii a také pro externí vyhledávání.
Pokud uživatel klikne na úpravu článku, může si vybrat, zda chce přejít na Wikidata a upravit abstrakt Obsah (preferováno), nebo založit nový článek v místním jazyce od začátku, nebo zhmotnit aktuální překlad jako text a začít jej upravovat lokálně.
Pokud je odstraněn existující místní článek s odkazem na stránky, automaticky se vytvoří virtuální článek (protože známe jeho název a můžeme zachovat odkazy).
Chcete-li smazat virtuální článek, je třeba smazat odkaz na stránky ve Wikidatech.
Všechny změny v místní Wikipedii je třeba provést explicitně, proto tuto možnost nazýváme explicitní tvorba článků. Očekáváme, že tato možnost bude pro místní Wikipedie výchozí, pokud si nezvolí buď implicitní vytváření článků, nebo žádnou integraci.
Viz též diskuze o integraci zde.
F2: Implicitní vytvoření článku
Pokud se místní Wikipedie rozhodne pro implicitní vytváření článků z Wikidat, pak je výsledek volání speciální stránky Abstrakt na všech položkách Wikidat, které nemají odkaz na daná Wikidata, ale vykreslovaly by obsah v daném jazyce, indexován, jako by byl v hlavním jmenném prostoru, a zpřístupněn ve vyhledávání, jako by byl v hlavním jmenném prostoru.
Je zavedeno nové kouzelné slovo pro odkazování na virtuální články z normálních článků, viz F6 LINK_TO_Q
. To lze neviditelně integrovat do vizuálního editoru.
To je zdaleka nejméně práce pro komunitu, aby získala mnoho článků, a může to být dobrá volba pro malé komunity.
F4: Odkazy nebo taby
Každý článek v místní Wikipedii, který je připojen k položce Wikidat, získá nový odkaz, a to buď jako záložku nahoře, nebo jako odkaz v postranním panelu. Tento odkaz zobrazí obsah připojené položky Wikidata vykreslený v místním jazyce. Virtuální články tuto záložku nemají, ale jejich tlačítko Upravit odkazuje přímo na úpravu Obsahu v abstraktní Wikipedii.
F5: Nové magické slovo: ABSTRACT_WIKIPEDIA
Magické slovo je nahrazeno wikitextem, který je výsledkem vykreslení obsahu na položce Wikidat, která je s touto stránkou propojena pomocí odkazů na stránky.
Magické slovo lze použít se dvěma volitelnými parametry, z nichž jeden je Q-ID a druhý jazyk. Pokud není zadáno žádné Q-ID, je výchozí Q-ID položka, se kterou je tato stránka propojena Sitelinkem. Pokud není zadán žádný jazyk, je výchozí jazyk jazyk dané wiki.
Příklady volání:
{{ABSTRACT_WIKIPEDIA}}
{{ABSTRACT_WIKIPEDIA:Q62}}
{{ABSTRACT_WIKIPEDIA:Q62/de}}
Pokud není zadáno žádné Q-ID nebo je zvoleno výchozí, zobrazí se chybové hlášení.
Později bude možné vybrat pojmenované sekce z Obsahu.
Wikipedie, které se rozhodnou nemít žádnou integraci s abstraktní Wikipedií, mohou toto nové kouzelné slovo používat i nadále.
Všimněte si, že zavedení nového kouzelného slova je předběžným plánem. Úkol 2.3 prozkoumá, zda můžeme dosáhnout této funkčnosti i bez toho.
F6: Nové magické slovo: LINK_TO_Q
Toto kouzelné slovo se změní na odkaz buď na místní článek, který je propojen s daným Q-ID, nebo, pokud žádný neexistuje, na stránku Abstract Special s daným Q-ID. To umožňuje psát články s odkazy na virtuální články, které se po vytvoření lokálního obsahu automaticky nahradí.
Příklady volání:
{{LINK_TO_Q:Q62}}
povede k tomu, že
[[San Francisco]]
pokud článek existuje, jinak
[[Special:Abstract/Q62|San Francisco]]
Všimněte si, že zavedení nového kouzelného slova je předběžným plánem. Úkol 2.3 prozkoumá, zda můžeme dosáhnout této funkčnosti i bez toho.
F7: Nové magické slovo: LAMBDA
Zavolá funkci zadanou ve Wikidatech spolu s jejími parametry a vykreslí výstup na stránce.
Například následující volání:
{{LAMBDA:capitalize("san francisco")}}
bude na stránce vypsáno "San Francisco" (za předpokladu, že existuje funkce s lokálním klíčem a s očekávanou definicí a implementací). K analýze volání se používá jazyk místní wiki.
Zvažte také možnost volat určitou verzi funkce, abyste omezili výskyt chyb v dalším průběhu.
Všimněte si, že zavedení nového kouzelného slova je předběžným plánem. Úkol 2.3 prozkoumá, zda můžeme dosáhnout této funkčnosti i bez toho.
Rozšíření Wikidat
K hlavnímu jmennému prostoru Wikidat přidáváme nový pomocný jmenný prostor. Tj. každá stránka položky ve tvaru www.wikidata.org/wiki/Q62
dostane také doprovodnou stránku obsahu www.wikidata.org/wiki/Content:Q62
. Tato stránka obsahuje abstraktní, na jazyce nezávislý Obsah a umožňuje jeho editaci a údržbu.
Mohou být zapotřebí další speciální stránky. Ty budou rozšířeny v druhé části projektu. Vyžaduje to souhlas komunity Wikidat s tím, že bude projekt využíván pro ukládání abstraktního obsahu, a pokud s tím nebudou souhlasit, bude vybrán jiný.
F8: Nový jmenný prostor: Content
Nový jmenný prostor s mnoha složitými interaktivními editačními funkcemi. Poskytuje UX pro tvorbu a údržbu Obsahu a také funkce pro vyhodnocování Obsahu (např. zobrazení, kolik z něj se zobrazuje v jednotlivých jazycích atd.) Jedná se většinou o podmnožinu funkcí jmenného prostoru F11 Function
.
F9: Nový datový typ: Content
Nový datový typ, který obsahuje (krátký) Content. Hlavní případ použití je pro Popisy v položkách a pro Glosy ve smyslech lexémů.
F10: Indexování a užití popisů v položkách a glos ve významech
Indexování a úprava linearizací polí Popis pro Položky a Glosy ve významech a také se ujistíme, že pro pole Popis v Předmětech neexistují žádné duplicitní dvojice Štítek / Popis. Obojí umožníme přepsat ručními úpravami.
Rozšíření jiných projektů Wikimedia
Ostatní projekty Wikimedia obdrží také magická slova F7 LAMBDA
a F5 ABSTRACT_WIKIPEDIA
, ale žádné další funkce, protože se zdá, že pro ně nejsou příliš užitečné. To se může změnit na základě požadavků daných komunit.
Rozšíření pro novou wiki funkcí
Wikifunkce budou novým projektem Wikimedia na nové doméně. Hlavním jmenným prostorem Wikifunkcí bude nový jmenný prostor Function
. Zbytek Wikifunkcí bude tradiční wiki Wikimedia.
F11: Nový jmenný prostor: Function
Umožňuje ukládat funkce, typy, rozhraní, hodnoty, testy atd. Je to jediný jmenný prostor, který obsahuje konstanty (například typy nebo jednotlivé hodnoty), rozhraní funkcí, implementace funkcí, a tedy i konstruktory a renderery. Entity v tomto jmenném prostoru jsou pojmenovány pomocí Z-ID, podobně jako Q-ID položek Wikidat, ale začínají písmenem Z a za ním následuje číslo.
V oboru názvů Z existuje mnoho různých typů entit. Patří mezi ně typy a jiné konstanty (což jsou v podstatě funkce s nulovou aritou), stejně jako klasické funkce s kladnou aritou.
Přispěvatelé mohou vytvářet nové typy funkcí v rámci jmenného prostoru Function
a ty pak používat.
Funkce mohou mít argumenty. Funkce se zadanými argumenty mohou být provedeny a jejich výsledkem je hodnota, jejíž typ je dán definicí funkce.
Jmenný prostor Function
je komplexní a bude mít velmi odlišné zobrazení v závislosti na typu funkce, tj. pro rozhraní, implementace, testy, typy, hodnoty atd. bude nad nimi různé UX, ačkoli jsou interně všechny uloženy jako Z-objekty. Nakonec jsou všechna různá zobrazení generována funkcemi ve Wikifunkcích.
V jmenném prostoru Function
bude možné zmrazovat a rozmrazovat entity. Je to podobné jako chráněná stránka, ale omezuje to pouze úpravu hodnotové části entity, nikoli popisku, popisu atd.
F12: Nové speciální stránky a moduly API
Pro podporu nového jmenného prostoru Function
budou vytvořeny nové speciální stránky a moduly API. Půjde zejména o speciální stránku a modul API, které umožní vyhodnocovat funkce se zadanými parametry funkce. Kromě toho bude obsahovat řadu speciálních stránek a modulů API, které budou podporovat údržbu obsahu (například vyhledávání podle počtu a typů parametrů, stránky se statistikami četnosti volání určitých implementací, testovací stránky atd.) Cílem je implementovat co nejvíce z nich uvnitř Wikifunkcí.
Vývoj probíhá ve dvou hlavních částech. Část P1 se týká zprovoznění a dostatečného rozvoje funkcí Wikifunctions, aby bylo možné podporovat tvorbu obsahu potřebnou pro část P2. Část P2 se pak týká nastavení tvorby Obsahu v rámci Wikidat a umožnění přístupu Wikipedie k tomuto Obsahu. Poté bude následovat průběžný vývoj s cílem zlepšit jak Wikifunkce, tak abstraktní Wikipedii. Tento průběžný vývoj není zahrnut v tomto plánu. Všimněte si, že veškeré načasování závisí na tom, s kolika zaměstnanci budeme skutečně pracovat.
V prvním roce budeme pracovat výhradně na části P1. Část P2 začíná druhým rokem a přidává do projektu další počet pracovníků. Části P1 a P2 se pak budou vyvíjet souběžně po dobu následujících 18 měsíců. V závislosti na výsledku a úspěchu projektu je třeba kolem 24. měsíce rozhodnout o personálním obsazení dalšího vývoje a od té doby jej pravidelně přehodnocovat.
Tento plán pokrývá prvních 30 měsíců vývoje. Po uplynutí této doby budou hlavními výstupy:
- Wikifunkce, nový projekt WMF a wiki s vlastní komunitou a vlastním posláním, jehož cílem je poskytnout katalog funkcí a umožnit všem, aby se na tomto katalogu podíleli, a tím posílit postavení lidí demokratizací přístupu k počítačovým znalostem.
- Mezi-wiki úložiště pro sdílení šablon a modulů mezi projekty WMF, což je dlouhodobé přání komunit. Bude součástí Wikifunkcí.
- Abstraktní Wikipedie, cross-wiki projekt, který umožňuje definovat obsah ve Wikidatech nezávisle na přirozeném jazyce a který je integrován do několika lokálních Wikipedií, což výrazně zvyšuje množství znalostí, které mohou sdílet uživatelé v současnosti málo rozšířených jazyků.
<span id="_Part_P1:_Wikifunctions">
Část P1: Wikifunkce
<span id="_Task_P1.1:_Project_initialization">
Úkol P1.1: Inicializace projektu
Zřídíme Wikistránky na Metě, komponenty pro chyby, mailing listy, chatovací místnosti, poradní sbor a další relevantní prostředky pro diskusi s širší komunitou. Zahájíme diskusi o názvech Wikifunkcí a Abstraktní Wikipedie a rozhodneme o nich, uspořádáme soutěže o loga, zorganizujeme vytvoření kodexu chování a nezbytné kroky pro zdravou komunitu.
Musíme také zahájit komunitní proces definování výběru licence pro různé části projektu: abstraktní obsah ve Wikidatech, funkce a další entity ve Wikifunkcích, jakož i právní status generovaného textu, který se má zobrazovat ve Wikipedii. To je třeba dokončit před úkolem P1.9. K tomuto rozhodnutí bude třeba získat podklady od právního poradce.
<span id="_Task_P1.2:_Initial_development">
Úkol P1.2: Počáteční vývoj
Prvním krokem vývoje je vytvoření wiki Wikifunctions se jmenným prostorem Function, který umožní ukládání a editaci Z-objektů (omezenějších objektů JSON - ve skutečnosti můžeme začít s existujícími rozšířeními JSON a na nich stavět). Cílem počátečního milníku je mít:
- Počáteční typy: unicode string, celé kladné číslo do N, boolean, list, pár, jazyk, jednojazyčný text, vícejazyčný text, typ, funkce, vestavěná implementace a chyba.
- Počáteční sada konstant pro typy.
- Počáteční sada funkcí: if, head, tail, is_zero, successor, predecessor, abstract, reify, equal_string, nand, konstruktory, pravděpodobně několik dalších funkcí, každá s vestavěnou implementací.
To umožňuje začít vyvíjet frontend UX pro volání funkcí a vytvořit první sadu nástrojů a rozhraní pro zobrazení různých typů objektů Z, ale také obecných objektů Z. Součástí je také první vyhodnocovací nástroj, který běží na serverech Wikimedia.
Všimněte si, že počáteční implementace pohledů, editačních rozhraní a validátorů budou po vydání verze P1.12 pravděpodobně postupně vyřazeny, jakmile budou všechny tyto prvky internalizovány. Internalizovat nějaký kód znamená přesunout jej z jádra do uživatelského prostoru, tj. reimplementovat je ve Wikifunkcích a volat je odtud.
<span id="_Task_P1.3:_Set_up_testing_infrastructure">
Úkol P1.3: Nastavení testovací infrastruktury
Wikifunkce budou vyžadovat několik testovacích systémů. Jeden pro testování jádra, druhý pro testování webového uživatelského rozhraní a třetí pro testování samotného obsahu Wikifunkcí. Jedná se o trvalý úkol, který musí být integrován se správou verzí.
<span id="_Task_P1.4:_Launch_public_test_system">
Úkol P1.4: Spustit veřejný testovací systém
Vytvoříme veřejně viditelný a upravitelný testovací systém, který bude pracovat s nejnovějšími verzemi kódu (alespoň jedno nasazení za pracovní den). Vyzveme komunitu, aby se zapojila a rozbíjela věci. Tento systém můžeme také používat pro kontinuální integrační testy.
<span id="_Task_P1.5:_Server-based_evaluator">
Úkol P1.5: Serverový evaluátor
Zatímco v počátečním vývoji byl vytvořen jednoduchý evaluátor pracující pouze s vestavěnými moduly, a tedy s velmi předvídatelným chováním, nadcházející úloha skládání funkcí P1.6 bude vyžadovat, abychom evaluátor přehodnotili. První evaluátor bude běžet na infrastruktuře Wikimedia a potřebuje monitorovací a brzdicí schopnosti a potenciálně také možnost přidělovat uživatelům různé množství výpočetních prostředků podle toho, zda jsou přihlášeni, nebo ne.
<span id="_Task_P1.6:_Function_composition">
Úkol P1.6: Složení funkcí
Umožňujeme vytvářet nová rozhraní funkcí a nový typ implementace, což jsou složená volání funkcí. Umožňuje např. implementovat
add(x, y)
jako
if(is_zero(y), x, add(successor(x), predecessor(y))
a systém je může provést. Umožňuje také více implementací.
<span id="_Task_P1.7:_Freeze_and_thaw_entities">
Úkol P1.7: Zmrazování a rozmrazování entit
Úroveň ochrany, která umožňuje upravovat metadata entity (název, popis atd.), ale ne skutečnou hodnotu. Tato funkce může být užitečná i pro Wikidata. Zde je navržen propracovanější návrh verzování.
<span id="_Task_P1.8:_Launch_beta_Wikifunctions">
Úkol P1.8: Spuštění beta verze Wikifunkcí
V systému beta se pro účely testování spustí další iterace kódu, který bude na Wikifunkcích nasazen s dalším cyklem nasazení.
<span id="_Task_P1.9:_Launch_Wikifunctions">
Úkol P1.9: Spuštění Wikifunkcí
Projděte kontrolou zabezpečení. Založení nového projektu Wikimedia. Přesun některých wikistránek z Meta do Wikifunkcí.
<span id="_Task_P1.10:_Test_type">
Úloha P1.10: Zkouška typu
Zavedení nového typu pro psaní testů funkcí. To se provádí zadáním vstupních hodnot a funkce, která kontroluje výstup. Kromě zavedení typu Testy musí funkce a implementace také používat testy a integrovat je do vývoje implementace a zobrazení rozhraní.
<span id="_Task_P1.11:_Special_page_to_write_function_calls">
Úkol P1.11: Speciální stránka pro tvorbu volání funkcí
Potřebujeme novou speciální stránku, která umožňuje a podporuje psaní volání funkcí, se základní kontrolou syntaxe, automatickým doplňováním, dokumentací atd. Podskupina této funkce bude integrována také na stránky jednotlivých Funkcí a Implementací, aby bylo možné je spouštět se složitějšími hodnotami. Tato Speciální stránka se spoléhá na původní jednoduché API pro vyhodnocování volání Funkcí.
<span id="_Task_P1.12:_JavaScript-based_implementations">
Úkol P1.12: Implementace v jazyce JavaScript
Umožňujeme nový typ implementací, což jsou implementace napsané v jazyce JavaScript. To vyžaduje překlad hodnot do jazyka JavaScript a zpět do Z-objektů. To také vyžaduje myslet na bezpečnost, a to prostřednictvím analýzy kódu a sandboxingu, zpočátku obohaceného o ruční revize a zmrazení P1.7. Pokud se lambda-kalkul O1 zatím nepodařil nebo byl přeskočen, můžeme se prostřednictvím tohoto úkolu dostat také k selfhostingu pro Wikifunkce, což by umožnilo internalizovat většinu kódu.
<span id="_Task_P1.13:_Access_functions">
Úkol P1.13: Přístup k funkcím
Přidejte do projektů Wikimedia magické slovo F7 Lambda, které dokáže kódovat volání funkcí Wikifunkcí a integrovat výsledek do výstupu daného projektu Wikimedia. Tím vlastně vznikne centralizovaný systém šablonování, protože lidé si uvědomí, že nyní mohou šablony reimplementovat do Wikifunkcí a pak je volat z lokálních Wiki. Tomu bude předcházet analýza stávajících řešení, jako jsou TemplateData a volání v jazyce Lua.
To by mohlo vést k žádostem komunit o povolení šablonovacího jazyka MediaWiki a jazyka Lua (viz P1.15) jako programovacího jazyka v rámci Wikifunkcí. To pravděpodobně povede k žádostem o vylepšené řešení Sledovaných stránek, podobně jako to udělala Wikidata, a k implementaci šablon MediaWiki a dalším žádostem komunity. Pro splnění těchto úkolů by mohla být užitečná další osoba, která by odpovídala na požadavky komunity. Jinak by P2 mohl začít až o čtvrt roku později. Tato osoba je již uvedena ve vývojovém týmu výše.
<span id="_Task_P1.14:_Create_new_types">
Úkol P1.14: Vytvoření nových typů
Umožňujeme vytváření nových typů. To znamená, že bychom měli být schopni upravovat a vytvářet nové definice typů a internalizovat veškerý kód pro práci s hodnotami typu v rámci Wikifunkcí. Tj. budeme potřebovat kód pro ověřování hodnot, jejich konstrukci, vizualizaci v několika prostředích atd. Ty bychom také měli internalizovat pro všechny existující typy.
<span id="_Task_P1.15:_Lua-based_implementations">
Úkol P1.15: Implementace v jazyce Lua
Přidáváme jazyk Lua jako programovací jazyk podporovaný pro implementace. Význam jazyka Lua je dán jeho širokým využitím v projektech MediaWiki. Také, pokud se tak ještě nestalo, by v tomto bodě měla být internalizována transformace hodnot z Wikifunkcí do programovacího jazyka (a také provedena pro implementace v JavaScriptu, které v tomto bodě pravděpodobně budou používat vestavěné jazyky).
<span id="_Task_P1.16:_Non-functional_interfaces">
Úkol P1.16: Ne-funkční rozhraní
Zatímco Wikifunkce jsou postaveny na čistě funkčních implementacích, existují některá rozhraní, která naivně funkční nejsou, například náhodná čísla, aktuální čas, automatické inkrementy nebo mnohá volání REST. Vymyslíme, jak je integrovat do Wikifunkcí.
<span id="_Task_P1.17:_REST_calls">
Úkol P1.17: Volání REST
Poskytneme vestavěné moduly pro volání rozhraní REST na webu a přijímání výsledků. To by se přednostně opíralo o P1.16. Všimněte si, že volání libovolných rozhraní REST je spojeno s bezpečnostními problémy. Ty je třeba zohlednit ve správném návrhu.
<span id="_Task_P1.18:_Accessing_Wikidata_and_other_WMF_projects">
Úkol P1.18: Přístup k Wikidatům a dalším projektům WMF
Poskytneme funkce pro přístup k položkám a lexémům Wikidat a také k dalšímu obsahu z projektů Wikimedia. Přednostně se to bude opírat o P1.17, ale v případě, že se to v tuto chvíli ještě nepodařilo, vestavěný modul tuto možnost odblokuje.
<span id="_Task_P1.19:_Monolingual_generation">
Úkol P1.19: Jednojazyčné generování
Vývoj těchto funkcí probíhá výhradně na wiki. Patří sem tabulky a záznamy pro reprezentaci gramatických jednotek, jako jsou podstatná jména, slovesa, větné členy atd., a také funkce pro práci s nimi. To zahrnuje implementaci kontextu, abychom mohli podle potřeby generovat anafory. To umožňuje konkrétní generování přirozeného jazyka, tedy zatím ne abstraktní.
<span id="_Part_P2:_Abstract_Wikipedia">
Část P2: Abstraktní Wikipedie
Úkoly v této části budou zahájeny po roce vývoje. Neočekává se, že všechny úkoly z části P1 budou dokončeny před zahájením části P2, protože ve skutečnosti budou části P1 a P2 nadále vyvíjeny souběžně. Pouze některé úkoly z části P1 jsou nutné pro zahájení části P2.
<span id="_Task_P2.1:_Constructors_and_Renderers">
Úkol P2.1: Konstruktory a Renderery
Zde představíme abstraktní rozhraní ke konkrétním generátorům vyvinutým v P1.19. To vede k počátečnímu vývoji konstruktorů a funkce Render. Po splnění tohoto úkolu by komunita měla být schopna vytvářet nové Konstruktory a rozšiřovat Renderery o jejich podporu.
- Pro zápis abstraktního obsahu se používají konstruktory. Konstruktory jsou nezávislé na jazyku a neměly by obsahovat podmíněnou logiku.
- Renderery by měly obsahovat skutečnou podmíněnou logiku (která se aplikuje na informace v konstruktorech). Renderery mohou být pro každý jazyk zvlášť (ale mohou být také sdílené napříč jazyky).
- Oddělení mezi nimi je analogické oddělení v jiných systémech NLG, jako je Grammatical Framework.
<span id="_Task_P2.2:_Conditional_rendering">
Úkol P2.2: Podmíněné vykreslování
Zřídkakdy se stane, že by vykreslovač dokázal obsah plně vykreslit. Budeme muset podporovat postupnou degradaci: pokud se některý Obsah nepodaří vykreslit, ale jiný se stále vykresluje, měli bychom zobrazit tu část, která se vykreslila. Někdy je však nutné renderovat určitý Obsah pouze v případě, že jiný Obsah bude určitě vykreslen. V tomto úkolu implementujeme podporu takového podmíněného vykreslování, které umožní menším komunitám bezpečně rozšiřovat své Wikipedie.
<span id="_Task_P2.3:_Abstract_Wikipedia">
Úkol P2.3: Abstraktní Wikipedie
Vytvoříme nový jmenný prostor ve Wikidatech a umožníme v něm vytvářet a spravovat obsah. Znovu použijeme prvky uživatelského rozhraní a přizpůsobíme je pro tvorbu Obsahu. Práci na uživatelském rozhraní budou předcházet výzkumné práce na designu, které mohou začít před spuštěním části P2. Několik důležitých myšlenek k tomuto návrhu najdete zde. Tento úkol také rozhodne, zda potřebujeme nová magická slova (F5, F6 a F7), nebo se jejich zavedení můžeme vyhnout.
<span id="_Task_P2.4:_Mobile_UI">
Úkol P2.4: Mobilní uživatelské rozhraní
Tvorba a editace obsahu bude nejčastějším úkolem při vytváření vícejazyčné Wikipedie. Proto chceme zajistit, aby tento úkol byl pro uživatele příjemný a přístupný. Chceme věnovat explicitní úlohu na podporu tvorby a údržby Obsahu v mobilním rozhraní. Předpokládáme, že se nám podaří vytvořit rozhraní, které umožní lepší zážitek než editace wikitextu.
<span id="_Task_P2.5:_Integrate_content_into_the_Wikipedias">
Úkol P2.5: Integrovat obsah do Wikipedie
Povolení kouzelného slova Abstraktní Wikipedie. Poté povolíme explicitní vytváření článků a nakonec implicitní vytváření článků (F1, F2, F3, F4, F5, F6).
<span id="_Task_P2.6:_Regular_inflection">
Úkol P2.6: Pravidelné skloňování
Lexémy Wikidat obsahují skloňované formy lexému. Tyto formy jsou často pravidelné. Vytvoříme řešení, které bude generovat pravidelné skloňování prostřednictvím Wikifunkcí, a budeme s komunitou diskutovat o tom, jak jej integrovat do stávajících lexémů.
<span id="_Task_P2.7:_Basic_Renderer_for_English">
Úkol P2.7: Základní renderer pro angličtinu
Předpokládáme, že počáteční vytváření rendererů bude obtížné. Vzhledem k postavení angličtiny jako široce používaného jazyka v komunitě budeme používat angličtinu jako první jazyk pro demonstraci tvorby rendereru a dobře ji zdokumentujeme. Zapojíme pomoc komunity. To zahrnuje také funkčnost pro zobrazení referencí.
<span id="_Task_P2.8:_Basic_Renderer_for_a_second_language">
Úkol P2.8: Základní renderer pro druhý jazyk
Na základě zpětné vazby od komunity, zájmů a odborných znalostí lingvistů pracujících v týmu vybereme druhý velký jazyk, pro který společně s komunitou vytvoříme základní Renderer. Bylo by zajímavé vybrat jazyk, u kterého komunita na místní Wikipedii již potvrdila zájem o integraci Abstraktní Wikipedie.
<span id="_Task_P2.9:_Renderer_for_a_language_from_another_family">
Úkol P2.9: Renderer pro jazyk z jiné rodiny
Jelikož je pravděpodobné, že jazyk v P2.8 bude indoevropský jazyk, vytvoříme společně s komunitou základní renderer pro jazyk z jiné jazykové rodiny. Výběr tohoto jazyka bude proveden na základě odborných znalostí, které má tým k dispozici a zájmů komunity. Bylo by zajímavé vybrat jazyk, u kterého komunita na místní Wikipedii již potvrdila zájem o integraci Abstraktní Wikipedie.
<span id="_Task_P2.10:_Renderer_for_an_underserved_language">
Úkol P2.10: Renderer pro nedostatečně používaný jazyk
Jelikož je pravděpodobné, že jazyky v P2.8 a P2.9 budou jazyky, které jsou již dobře obslouženy aktivními a velkými komunitami Wikipedie, vybereme také jazyk, který není dostatečně obsloužen, tedy jazyk, který má v současnosti velký počet potenciálních čtenářů, ale jen malou komunitu a málo obsahu. Výběr tohoto jazyka bude proveden na základě odborných znalostí, které má tým k dispozici, a zájmů komunity. Zde je klíčové vybrat jazyk, kde se komunita na místní Wikipedii již zavázala k podpoře integrace Abstraktní Wikipedie.
<span id="_Task_P2.11:_Abstract_Wikidata_Descriptions">
Úkol P2.11: Abstraktní popisky Wikidat
Popisy Wikidat se zdají být obzvláště vhodné pro vytváření prostřednictvím funkcí Wikifunkcí. Často jsou to jen krátká podstatná jména. V tomto úkolu podporujeme ukládání a údržbu abstraktních popisů ve Wikidatech a jejich generování pro Wikidata. Měli bychom také zajistit, aby výsledkem byly jedinečné kombinace štítků a popisů.
See Abstract Wikipedia/Updates/2021-07-29 for further details and discussion.
<span id="_Task_P2.12:_Abstract_Glosses">
Úkol P2.12: Abstraktní glosy
Lexémy Wikidata mají významy. Významy jsou zachyceny glosami. Glosy jsou dostupné pro jednotlivé jazyky, což znamená, že jsou obvykle dostupné pouze v několika jazycích. Pro podporu skutečně vícejazyčného slovníku navrhujeme vytvořit abstraktní glosy. Ačkoli to zní, že by to mělo být mnohem jednodušší než vytváření plnohodnotných článků Wikipedie, domníváme se, že vzhledem k povaze Glos to může být mnohem těžší úkol.
<span id="_Task_P2.13:_Support_more_natural_languages">
Úkol P2.13: Podpora více přirozených jazyků
Podporovat další jazykové komunity při vytváření Rendererů se zaměřením na jazyky, které nejsou dostatečně využívány.
<span id="_Task_P2.14:_Template-generated_content">
Úkol P2.14: Obsah generovaný šablonou
Některé Wikipedie v současné době obsahují velké množství šablonovitého obsahu. Identifikujeme tento obsah a budeme diskutovat s lokální komunitou, zda jej chtějí nahradit řešením založeným na Wikifunkcích, kde je šablona ve Wikifunkcích a obsah uvedený v místní Wikipedii nebo v Abstraktní Wikipedii. To povede k udržitelnějším a udržovatelnějším řešením, která se nemusí spoléhat na jediného přispěvatele. Všimněte si, že to nemusí být vícejazyčné a může to být mnohem jednodušší než projít úplnou abstrakcí.
<span id="_Task_P2.15:_Casual_comments">
Úkol P2.15: Neformální komentáře
Umožnit příležitostným přispěvatelům komentovat vykreslovaný text a vytvořit mechanismy pro zachycení těchto komentářů a jejich přesměrování zpět do třídicího mechanismu, který umožní nasměrovat je buď na obsah, nebo na renderery. Je důležité, aby se neztratily připomínky příležitostných přispěvatelů. V ideálním případě bychom jim umožnili explicitně přepsat část vykresleného výstupu a považovat to za požadavek na změnu, a pak budeme mít angažovanější přispěvatele, kteří budou pracovat na převedení záměru příležitostného přispěvatele do odpovídajících změn v systému.
<span id="_Task_P2.16:_Quick_article_name_generation">
Úkol P2.16: Rychlé generování názvu článku
Široká veřejnost přichází na Wikipedii většinou tak, že do běžných vyhledávačů zadává názvy věcí, které hledá ve svém jazyce. To znamená, že položky Wikidat budou potřebovat popisky přeložené do daného jazyka, aby bylo možné použít implicitní tvorbu článků. Toho lze pravděpodobně dosáhnout překladem milionů štítků Wikidat. Někdy to mohou udělat roboti nebo umělá inteligence, ale to není zcela spolehlivé a škálovatelné, takže se na tom musí podílet lidé.
Současné nástroje pro masivní hromadný překlad štítků Wikidat tomuto úkolu nevyhovují. Existují dva hlavní způsoby, jak to udělat: editace štítků v samotných Wikidatech, což je dobré pro přidání třeba desítky štítků, ale rychle to omrzí, a použití programu Tabernacle, který se zdá být více zaměřen na masivní hromadné překlady, ale je příliš složitý na to, aby ho většina lidí skutečně používala.
Cílem tohoto úkolu je vyvinout masivní a integrovaný nástroj pro překlad štítků s jednoduchým a moderním frontendem, který bude moci používat mnoho lidí.
<span id="_Non-core_tasks">
Vedlejší úkoly
Existuje celá řada dalších volitelných úkolů. V ideálním případě by se jich chopily externí komunity a vyvíjely je jako otevřený zdrojový kód mimo původní vývojový tým, ale některé z nich by možná musely být zahájeny a dokonce plně vyvinuty základním týmem.
<span id="_Task_O1:_Lambda_calculus">
Úkol O1: Lambda kalkul
Je možné zcela samostatně hostovat Wikifunkce, aniž by bylo nutné spoléhat na vestavěné programy nebo implementace v jiných programovacích jazycích, a to implementací lambda kalkulu ve Wikifunkcích (odtud pochází návrh názvu). To může být užitečné pro umožnění vyhodnocování bez podpory jakéhokoli jazyka, a tak snadněji nastartovat vývoj evaluatorů.
<span id="_Task_O2:_CLI_in_a_terminal">
Úkol O2: CLI v terminálu
Mnoho vývojářů rádo používá rozhraní příkazového řádku pro přístup k systému, jako jsou Wikifunkce. Měli bychom ho poskytnout s obvyklými funkcemi, jako je automatické dokončování, historie, integrace se shellem atd.
<span id="_Task_O3:_UIs_for_creating,_debugging_and_tracing_functions">
Úkol O3: Uživatelské rozhraní pro vytváření, ladění a sledování funkcí
Cílem Wikifunkcí je umožnit rychlé pochopení a rozvoj funkcí ve Wikifunkcích. Vzhledem k funkčnímu přístupu by mělo být možné vytvořit uživatelské prostředí, které umožní částečné vyhodnocení, rozbalení, ladění a sledování volání funkce.
<span id="_Task_O4:_Improve_evaluator_efficiency">
Úkol O4: Zlepšit efektivitu vyhodnocování
Existuje mnoho způsobů, jak zlepšit efektivitu evaluatorů, a tím snížit spotřebu zdrojů, zejména ukládání do cache nebo správná volba strategie evaluace. Měli bychom tomu věnovat nějaký čas a zaznamenávat výsledky, aby různé evaluatorské skupiny mohly tyto poznatky využít, ale také zajistit, aby evaluatory udržovaní základním týmem používali většinu osvědčených postupů.
<span id="_Task_O5:_Web_of_Trust_for_implementations">
Úkol O5: Implementace Web of Trust
Abychom zmírnili podmínky pro implementace v programovacích jazycích, mohli bychom zavést řešení založené na Web of Trust, které by přispěvatelům umožnilo přezkoumat existující implementace a explicitně označit jejich schválení a také označit ostatní přispěvatele za důvěryhodné. Tato schválení by pak mohla být zohledněna při výběru nebo přípravě strategie hodnocení.
<span id="_Task_O6:_Python-based_implementations">
Úkol O6: Implementace v jazyce Python
Python je široce používaný programovací jazyk, zejména pro studenty a v některých oblastech, jako je strojové učení. Podpora jazyka Python může Wikifunkcím otevřít bohatý ekosystém.
<span id="_Task_O7:_Implementations_in_other_languages">
Úkol O7: Implementace v jiných jazycích
Budeme se snažit vyzvat ostatní komunity programovacích jazyků, aby se přidali do Wikifunkcí, a podporovat je. Kandidáty na implementaci jsou Web Assembler, PHP, Rust, C/C++, R, Swift, Go a další, ale záleží na zájmu základního týmu a externích komunit o vytvoření a podporu těchto rozhraní.
<span id="_Task_O8:_Web-based_REPL">
Úkol O8: Webový REPL
Webový REPL může přenést výhody rozhraní příkazového řádku O2 na web, aniž by bylo nutné instalovat CLI v místním prostředí, což někdy není možné.
<span id="_Task_O9:_Extend_API_with_Parser_and_Linearizer">
Úkol O9: Rozšíření API o parser a linearizátor
Mohou existovat různé parsery a linearizátory používající Wikifunkce. API Wikifunkcí může být snadněji použitelné, pokud by je volající mohl explicitně vybrat, místo aby je ručně zabalil, což by umožnilo použití Wikifunkcí s různými povrchovými dialekty.
<span id="_Task_O10:_Support_talk_pages">
Úkol O10: Podpora diskusních stránek
Pro podporu diskusí na diskusních stránkách Wikifunkcí vyvinout a integrovat mechanismus, který by umožňoval (zpočátku) jednoduché diskuse a postupně zvyšoval jejich složitost podle potřeb komunit.
<span id="_Task_O11:_Legal_text_creation">
Úkol O11: Vytvoření právního textu
Zajímavá je aplikace Wikifunkcí pro vytváření právních textů modulárním způsobem a s různými úrovněmi (právní a lidsky čitelný text), podobně jako jsou různé úrovně popisu pro různé licence Creative Commons.
<span id="_Task_O12:_Health_related_text_creation">
Úkol O12: Vytvoření textu týkajícího se zdraví
Zajímavé je využití Wikifunkcí při tvorbě textů týkajících se zdraví pro různé úrovně čtení. K tomu by měl přispět WikiProjekt Medicína a jeho úspěšná práce, která by se díky spolupráci s Wikifunkcemi mohla dostat k mnohem většímu počtu lidí.
<span id="_Task_O13:_NPM_library">
Úloha O13: Knihovna NPM
Vytvoříme knihovnu Wikidata pro NPM, která umožní jednoduché použití funkcí z Wikifunkcí v programu v jazyce JavaScript. Stejná syntaxe by měla umožnit implementacím v jazyce JavaScript ve Wikifunkcích přistupovat k jiným funkcím Wikifunkcí. Všimněte si, že to lze provést na základě volání vyhodnocovače Wikifunkcí nebo kompilací požadovaných funkcí do dané báze kódu.
<span id="_Task_O14:_Python_library">
Úkol O14: Knihovna v Pythonu
Vytvoříme knihovnu Pythonu, která umožní jednoduché použití funkcí z Wikifunkcí ve skriptu Pythonu. Stejná syntaxe by měla umožnit implementacím Pythonu ve Wikifunkcích přístup k jiným funkcím Wikifunkcí. Všimněte si, že to lze provést na základě volání vyhodnocovače Wikifunkcí nebo kompilací požadovaných funkcí do dané báze kódu.
<span id="_Task_O15:_Libraries_for_other_programming_languages">
Úkol O15: Knihovny pro jiné programovací jazyky
Vyzveme komunity několika programovacích jazyků, aby nám pomohly s vytvořením knihoven, které umožní jednoduché volání funkcí Wikifunkcí z programů v jejich jazyce. Všimněte si, že to lze provést na základě volání evaluátoru Wikifunkcí nebo kompilací požadovaných funkcí do dané báze kódu.
<span id="_Task_O16:_Browser-based_evaluator">
Úkol O16: Evaluátor v prohlížeči
Jednou z výhod Wikidat je, že vlastní vyhodnocení volání funkce může probíhat v různých vyhodnocovacích programech. Hlavní evaluátor pro abstraktní Wikipedii bude serverový a bude ho provozovat nadace Wikimedia Foundation, ale abychom snížili výpočetní zátěž, měli bychom poskytnout také evaluátor běžící v browseru uživatele (pravděpodobně ve vlákně Worker).
<span id="_Task_O17:_Jupyter-_and/or_PAWS-based_evaluator">
Úkol O17: Evaluátor založený na Jupyteru a/nebo PAWS
Jeden ze zajímavých evaluátorů vychází ze zápisníku Jupyter nebo PAWS, a umožňuje tak obvyklé výhody těchto zápisníků, ale integruje také výhody z Wikifunkcí.
<span id="_Task_O18:_App-based_evaluator">
Úkol O18: Vyhodnocovací nástroj založený na aplikaci
Jeden evaluátor by měl běžet nativně na zařízeních se systémem Android nebo iOS, a umožnit tak uživateli využít značný výpočetní výkon, který má v ruce.
<span id="_Task_O19:_P2P-based_evaluator">
Úkol O19: Hodnotitel založený na P2P
Mnoho evaluátorů by se mohlo vzájemně propojit a umožnit si navzájem využívat neaktivní výpočetní zdroje ve své síti. To může, ale nemusí vyžadovat štíty mezi zúčastněnými uzly, které zajistí soukromí jednotlivých výpočtů.
<span id="_Task_O20:_Cloud-based_evaluator">
Úkol O20: Cloudový evaluátor
Jedním ze zřejmých způsobů, jak získat výpočetní prostředky, je využít poskytovatele cloudu. Zatímco by bylo možné jednoduše spustit serverový vyhodnocovací nástroj na cloudové infrastruktuře, pro poskytovatele cloudu bude pravděpodobně výhodné poskytnout tenčí rozhraní pro vyhodnocovací nástroj více přizpůsobený na míru.
<span id="_Task_O21:_Stream_type">
Úkol O21: Typ stream
Přidání podpory typu pro streamování dat, a to jak na vstupu, tak na výstupu. Typem streamu se rozumí například feed posledních změn na wiki Wikimedia.
<span id="_Task_O22:_Binary_type">
Úkol O22: Binární typ
Přidání podpory binárních souborů na vstupu i výstupu.
<span id="_Task_O23:_Integration_with_Commons_media_files">
Úkol O23: Integrace s mediálními soubory Commons
Povolení přímého přístupu k souborům na serveru Commons. Umožnit pracovní postupy se službou Commons, které vyžadují méně strojů pro nasazení, než je v současnosti potřeba. Vyžaduje O22.
<span id="_Task_O24:_Integrate_with_Machine_Learning">
Úkol O24: Integrace se strojovým učením
Vypracování několika příkladů integrace s řešeními strojového učení, např. pro úlohy NLP nebo pro práci s obrázky či videem, např. pomocí klasifikátorů. To vyžaduje, jak a kam ukládat modely, případně také jak je trénovat a jak k nim přistupovat.
<span id="_Task_O25:_Integrate_into_IDEs">
Úkol O25: Integrace do IDE
Oslovte komunity, které vyvíjejí IDE, a podpořte je v integraci s funkcemi Wikifunctions pomocí typových nápověd, dokumentace, doplňování a mnoha dalších praktických a zásadních funkcí moderních IDE.
<span id="_Task_O26:_Create_simple_apps_or_Websites">
Úkol O26: Vytváření jednoduchých aplikací nebo webových stránek
Vyvinout systém umožňující snadné vytváření a nasazování aplikací nebo webových stránek založených na funkcích Wikifunctions.
<span id="_Task_O27:_Display_open_tasks_for_contributors">
Úkol O27: Zobrazení otevřených úkolů pro přispěvatele
Abstraktní Wikipedie bude vyžadovat jeden renderer pro každý konstruktor pro každý jazyk. Bylo by užitečné, kdyby přispěvatelé mohli dostat nějaké vodítko, který Renderer implementovat dále, protože to často není triviálně viditelné. Pouhé počítání toho, jak často se daný Konstruktor objevuje, by mohlo být první aproximací, ale pokud jsou některé Konstruktory používány častěji v čele nebo v částech textu, které blokují výskyt jiného textu, nebo v článcích, které jsou více čtené než jiné, může být tato aproximace mimo. V tomto úkolu vytvoříme formu ovládacího panelu, který umožní uživatelům zvolit jazyk (a možná i oblast, například sport, zeměpis, historie atd. a možná i filtr pro očekávanou složitost vykreslování) a poté jim poskytne seznam nevyrenderovaných Konstruktorů seřazených podle dopadu, který by implementace měla.
Mohli bychom také umožnit přispěvatelům, aby se přihlásili k odběru pravidelných zpráv, které by je informovaly o tom, jaký mají dopad (z hlediska zobrazení a vytvořeného obsahu), a to na základě stejného rámce, který je potřebný pro ovládací panel.
To je srovnatelné se zobrazením stavu překladů různých projektů na TranslateWiki.Net (pro vybraný jazyk) nebo zobrazení témat, organizací nebo autorů v Scholia. U každého projektu se zobrazuje, kolik % řetězců v něm bylo přeloženo a kolik % je třeba aktualizovat, a dobrovolný překladatel si může vybrat: získat něco z 98 % až 100 %, získat něco ze 40 % až 60 %, získat něco z 0 % až 10 % atd.
<span id="_Task_O28:_Active_view">
Úkol O28: Aktivní zobrazení
Zatímco výchozí zobrazení vyrenderovaného obsahu by vypadalo podobně jako statický text, mělo by existovat také aktivnější zobrazení, které vyzývá k přispění na základě existujícího obsahu, který se nepodařilo vykreslit kvůli chybějícím rendererům. V nejjednodušším případě může jít o vytvoření lexému ve Wikidatech a připojení ke správnému lexému. Ve složitějších případech to může být napsání Rendereru nebo nabídnutí příkladových vět jako textu, třeba pomocí cesty příležitostného přispívání popsané v P2.15. To by poskytlo zajímavý prostor, který by proměnil více čtenářů v přispěvatele.
Existují produktová a designová rozhodnutí o tom, jak a kde by se mělo aktivní zobrazení používat a zda by mělo být výchozím zobrazením, nebo zda by se mělo zapínat pouze po pozvání atd. Mohl by také existovat režim, ve kterém by přispěvatelé mohli přecházet z článku na článek a doplňovat chybějící části, podobně jako je tomu abstraktnějším způsobem v O27.
Pravděpodobně by bylo opravdu užitečné zajistit, aby aktivní cesta a cesta editace, ke které vede, fungovala i na mobilních zařízeních.
<span id="_Task_O29:_Implementation_compilation">
Úkol O29: Sestavení implementace
Kompozice funkcí použitá pro implementace by měla umožnit vytvářet vysoce výkonné kompilace poměrně vysokoúrovňových funkcí v mnoha různých cílových programovacích jazycích, zejména ve Web Assembleru a JavaScriptu. To by mělo urychlit vyhodnocování o několik řádů.
<span id="_Task_O30:_Integrate_with_Code_examples_on_Wikipedia,_Wikibooks,_etc.">
Úkol O30: Integrace s příklady kódu na Wikipedii, Wikiknihách atd.
Umožnit Wikipedii, Wikibooks a dalším projektům integrovat jejich příklady kódu přímo do wiki funkcí, aby mohly být spuštěny živě.
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í