Wikipédia Abstrata/Fases do desenvolvimento
Essa page é mantida por interesse histórico. Todas as políticas mencionadas podem estar obsoletas. Se você quiser reviver o tópico, pode usar a página de discussão ou iniciar uma discussão no fórum da comunidade. |
Wikipédia abstrata |
---|
(Discussão) |
Geral |
Plano de desenvolvimento |
|
Notas, rascunhos, discussões |
|
Exemplos e maquetes |
Ferramentas de dados |
Histórico |
O desenvolvimento da Wikipédia abstrata ocorrerá em duas partes principais, cada uma consistindo em um grande número de tarefas. A Parte P1 é sobre o desenvolvimento do wiki de funções, e a Parte P2 é sobre conteúdo abstrato e geração de linguagem natural. Nesta página, dividimos ainda mais as tarefas da Parte P1 em fases que cobrem parte do trabalho em uma determinada tarefa. Abaixo estão links para o Phabricator, onde as tarefas e fases são ainda mais detalhadas.
Esta página wiki pode estar desatualizada. O local principal para informações sobre as tarefas é o Phabricator. Encontre nosso estado atual no Phabricator.
Esperamos levar cerca de dez fases antes de lançar o wiki de funções.
odas as fases abaixo cobrem o trabalho sobre Tarefa P1.2: Desenvolvimento inicial, salvo indicação em contrário.
Parte P1: Wiki de funções
Fase α (alfa): armazenar, exibir e editar o cabeçalho — Concluído 2020-08-25
- Configure o ambiente de desenvolvimento replicável. — tarefa T258893
- Concluído Iniciar extensão. — tarefa T258893
- Concluído Trabalho de configuração, upload do conteúdo de bootstrap.
- Concluído Reuse existing JSON ContentHandler. — tarefa T258893
- Concluído Allow for entering JSON objects through the raw editing interface. — tarefa T258893
- Concluído Extend and hardcode checker for JSON objects to check for ZObject well-formedness. Nothing that is not well-formed will be further handled or stored. Well-formedness should probably be checked both in the PHP and the JS code (should be easy to write anyway).
- Concluído in PHP. — tarefa T258894
- Well-formedness: key syntax, allowed keys, values are strings or proto-objects or lists of values. — tarefa T258894
- Concluído Every stored top-level ZObject must be a Z2/Persistent object. — tarefa T258897
- Concluído Create Z1/Object, offering one key, Z1K1/type.
- Concluído Extend hardcoded validator to check Z1K1/type.
- Concluído Create Z2/Persistent object. — tarefa T258897
- Concluído Z2/Persistent object has the keys Z2K1/ID and Z2K2/value, and Z2K3/Proto-Label, the latter being counterfactually just a single string with no language information. — tarefa T258897
- Concluído Extend hardcoded validator for Z2/Persistent object so far. — tarefa T258897
- Concluído Provide hardcoded display for Z2/Persistent object (that is the header) (that is a pretty big task). — tarefa T258898
- Concluído Provide generic view for the Z2K2/value object. — tarefa T258898
- Concluído Turn Z2K3/proto-label into the proper Z2K3/label for multilingual text.
- Concluído Extend viewing for Z2K3/label with multilingual text.
Phase completion condition: As a user [of a site with the MediaWiki extension installed], I can create and store a string as a new ZObject, e.g. "Hello world!".
Phase β (beta): create types and instances — Concluído 2021-02-04
- Concluído Hardcoded validators for Z4/proto-types and Z3/proto-keys. — tarefa T258900
- A Z4 has a Z4K2/keys with a json List of Z3s.
- A proto-key has a Z3K1/ID and Z3K2/type and Z3K3/label (mirror the development of label for Z2K3?).
- Concluído Create Z4/Type and Z3/Key (Task P1.14).
- Concluído Search for ZObjects by label. — tarefa T260750
- Concluído Use Z4 type data and key declarations for validating objects. — tarefa T260861
- Concluído Use Z4 type data and key declarations for generic view of objects. — tarefa T258901
- Concluído Use Z4 type data and key declarations for editing and creation of objects. — tarefa T258903 & tarefa T258904
- Concluído Provide hardcoded display and edit interface for Z12 type. — tarefa T258900
Phase completion condition:
As a user, I can create and store an object implementing any on-wiki defined type, e.g. the positive integer one
Phase γ (gamma): functions, implementations, errors — Concluído 2021-04-02
- Concluído Introduce a simple error object. — tarefa T261464
- Concluído Introduce simple function. — tarefa T258957
- Concluído Introduce simple implementation, for now only built-ins. — tarefa T258958
- Concluído Create a few functions and built-ins. — tarefa T261474
- Concluído Introduce a simple function call type. — tarefa T261467
- Concluído Tester type (Task P1.10). — tarefa T261465
Phase completion condition: As a user, I can store a function call, a function, and a tester (only the objects, no actual evaluation yet), e.g. if(true, false, true)
(read "if true then false else true", i.e. negation)
Phase δ (delta): built ins — Concluído 2021-05-11
- Concluído Evaluation system for built-ins. — tarefa T260321
- Concluído Enable web users to call evaluation through an API module (Task P1.5). — tarefa T261475
- Concluído Special page for calling evaluation (Task P1.11). — tarefa T261471
Phase completion condition: As a user, I can use a special page to evaluate a built-in function with supplied inputs, e.g. to check whether the empty list is empty.
Phase ε (epsilon): native function calls — Concluído 2021-06-30
- Concluído JavaScript implementations (Task P1.12). — tarefa T275944
- Concluído Python implementations (Task O6). — tarefa T273517
- Concluído Allow forms to be included for evaluation. — tarefa T261472
Phase completion condition: As a user, I can use a special page to evaluate a user-written function in one of the supported languages, e.g. call a user-written function in Python to add up two numbers.
Phase ζ (zeta): composition — Concluído 2021-08-27
- Concluído Allow for composition implementations (Task P1.6). — tarefa T261468
Phase completion condition:
- As a user, I can implement a function using composition of other functions, rather than writing it myself, e.g.
negate(Boolean → Boolean)
. — Concluído - (Stretch condition) As a user, I can see the results of testers on the relevant function implementation's page. [This might need to be moved to a later phase as not all requirements may be met this point. Must be done by phase ι.] — Concluído
Phase η (eta): generic types — Concluído 2022-04-08
- Concluído Allow for generic types, particularly for Z10/List and Z8/Function, and replace Z10/List and Z8/Function. ― tarefa T275941
- Concluído Errors can be processed like ZObjects.
- Concluído User-defined types work with validators.
Phase completion condition:
- Being able to implement
curry
as a composition on the wiki, but without requiring strict static analysis — Concluído - Making it possible to create the following three 'user-defined' types on the wiki:
positive integer
,sign
, andinteger
— Concluído - Being able to make a generic wrapper type through composition on the wiki — Concluído
See also the newsletter posted about this phase.
Phase θ (theta): thawing and freezing — Concluído 2023-06-19
- Concluído Freezing and thawing content (Task P1.7). ― tarefa T275942
- Concluído Task P1.9: Pass security review. — tarefa T274682, …
- Concluído Launch public test system (Task P1.4). — tarefa T261469
Phase completion condition:
- As a sysop, I can freeze and unfreeze any user-written object (akin to, or maybe the same as, MediaWiki's protection system); all system-supplied objects are permanently frozen.
- As a user editing a frozen page, I can change the label, but not the implementation, whereas on an unfrozen page both are possible.
- ZObjects are stored using the new canonical form for typed lists, and all parts are still working
- View and edit function is implemented and tested successfully
- When several implementations are available, the "best" is chosen. (Fitness determination to potentially be changed later.)
- We measure the clock time & memory use of each function run, and display it on the execution result & in the implementation/test table.
- Edits to system-defined ZObjects are restricted to users with the correct rights. Understandable diffs are emitted. Results are cached.
- Text with fallback, references, strings, lists is implemented and tested successfully
- A shared understanding with the community of how the team will contribute to Wikifunctions, and why, is documented
- Designs for viewing and editing multi-lingual documentation on mobile and desktop are approved. UX is instrumented and data collected.
Phase ι (iota): documentation of objects
- This is a preliminary assignment, moving the documentation tasks here.
- Provide editing for the header (additionally to full raw editing) (that is a pretty big task) — this refers only to the labels, actually.
- Extend editing for Z2K3/label with multilingual text.
- Extend the header with Z2K4/documentation. — tarefa T260954 & tarefa T260956
- Extend editing to deal with Z2K4/documentation. — tarefa T260955
Phase completion condition: As a user, I can document a ZObject in any and all supported languages, using a wikitext.
Phase κ (kappa): cleanup
- Tightening up and clean up tasks, to close all pre-launch tasks.
Phase completion condition: As the Abstract Wikipedia Team, we feel ready for launch, including sign-off from all relevant colleagues.
Phase λ (lambda): launch
- Phase λ (lambda) is meant for launch. If there are pre-launch tasks that prevent that, so be it, obviously.
- Set up a new Wikimedia project.
- Move some of the wiki pages about the project from Meta to Wikifunctions.
Phase completion condition: As a person on the Web, I can visit and use Wikifunctions.org to write and run functions directly on the site.
Unphased tasks
Pre-launch tasks that need to happen but are not phased in yet:
Post-launch tasks of Part 1
- P1.13: Access functions.
- P1.15: Lua-based implementations.
- P1.16: Non-functional interfaces.
- P1.17: REST calls.
- P1.18: Accessing Wikidata and other WMF projects.
- P1.19: Monolingual generation.