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

Utvecklingen av abstrakta Wikipedia kommer fortskrida i två huvudsakliga delar, vardera innehåller en stor andel uppgifter. Del P1 handlar om utvecklingen av funktionswikin, och del P2 handlar om abstrakt innehåll och naturligt språkgenerering. På den här sidan delar vi upp uppgifterna i del P1 i faser som täcker lite av arbetet under en angiven uppgift. Nedan ligger några länkar till Phabricator, där uppgifter och faser delas upp ytterligare.

Den här sidan kan vara föråldrad. Den kanoniska platsen för information om uppgifterna finns på Phabricator. Se vår nuvarande status på Phabricator.

Vi förväntar oss ha tagit hand om tio faser innan vi lanserar wikifunktioner.

Alla uppgifterna nedan fungerar under Uppgift P1.2: Initial utveckling, så länge inget annat anges.

Del P1: funktionswiki

Fas α (alfa): lagra, visa och redigera rubriker —   Klart 2020-08-25

  1. Ställ in replikerbar utvecklingsmiljö. — uppgift T258893
    •   Klart Påbörja tillägg. — uppgift T258893
    •   Klart Konfig fungerar, ladda upp bootstrap-innehåll.
    •   Klart Återanvänd befintlig JSON ContentHandler. — uppgift T258893
    •   Klart Tillåt att skriva in JSON-objekt in genom det råa redigeringsgränssnittet. — uppgift T258893
  2.   Klart 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).
    •   Klart i PHP. — uppgift T258894
    • Well-formedness: key syntax, allowed keys, values are strings or proto-objects or lists of values.uppgift T258894
  3.   Klart Every stored top-level ZObject must be a Z2/Persistent object.uppgift T258897
  4.   Klart Create Z1/Object, offering one key, Z1K1/type.
  5.   Klart Extend hardcoded validator to check Z1K1/type.
  6.   Klart Create Z2/Persistent object.uppgift T258897
  7.   Klart 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.uppgift T258897
  8.   Klart Extend hardcoded validator for Z2/Persistent object so far.uppgift T258897
  9.   Klart Provide hardcoded display for Z2/Persistent object (that is the header) (that is a pretty big task).uppgift T258898
  10.   Klart Provide generic view for the Z2K2/value object.uppgift T258898
  11.   Klart Turn Z2K3/proto-label into the proper Z2K3/label for multilingual text.
  12.   Klart 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  Klart 2021-02-04

  1.   Klart Hardcoded validators for Z4/proto-types and Z3/proto-keys.uppgift 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?).
  2.   Klart Create Z4/Type and Z3/Key (Task P1.14).
  3.   Klart Search for ZObjects by label.uppgift T260750
  4.   Klart Use Z4 type data and key declarations for validating objects.uppgift T260861
  5.   Klart Use Z4 type data and key declarations for generic view of objects.uppgift T258901
  6.   Klart Use Z4 type data and key declarations for editing and creation of objects.uppgift T258903 & uppgift T258904
  7.   Klart Provide hardcoded display and edit interface for Z12 type.uppgift 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  Klart 2021-04-02

  1.   Klart Introduce a simple error object.uppgift T261464
  2.   Klart Introduce simple function.uppgift T258957
  3.   Klart Introduce simple implementation, for now only built-ins.uppgift T258958
  4.   Klart Create a few functions and built-ins.uppgift T261474
  5.   Klart Introduce a simple function call type.uppgift T261467
  6.   Klart Tester type (Task P1.10).uppgift 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  Klart 2021-05-11

  1.   Klart Evaluation system for built-ins.uppgift T260321
  2.   Klart Enable web users to call evaluation through an API module (Task P1.5).uppgift T261475
  3.   Klart Special page for calling evaluation (Task P1.11).uppgift 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  Klart 2021-06-30

  1.   Klart JavaScript implementations (Task P1.12).uppgift T275944
  2.   Klart Python implementations (Task O6).uppgift T273517
  3.   Klart Allow forms to be included for evaluation.uppgift 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  Klart 2021-08-27

  1.   Klart Allow for composition implementations (Task P1.6).uppgift 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).  Klart
  • (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 ι.]  Klart

Phase η (eta): generic types  Klart 2022-04-08

  1.   Klart Allow for generic types, particularly for Z10/List and Z8/Function, and replace Z10/List and Z8/Function.uppgift T275941
  2.   Klart Errors can be processed like ZObjects.
  3.   Klart 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  Klart
  • Making it possible to create the following three 'user-defined' types on the wiki: positive integer, sign, and integer  Klart
  • Being able to make a generic wrapper type through composition on the wiki  Klart

See also the newsletter posted about this phase.

Phase θ (theta): thawing and freezing  Klart 2023-06-19

  1.   Klart Freezing and thawing content (Task P1.7).uppgift T275942
  2.   Klart Task P1.9: Pass security review.uppgift T274682, …
  3.   Klart Launch public test system (Task P1.4).uppgift 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

  1. This is a preliminary assignment, moving the documentation tasks here.
  2. Provide editing for the header (additionally to full raw editing) (that is a pretty big task) — this refers only to the labels, actually.
  3. Extend editing for Z2K3/label with multilingual text.
  4. Extend the header with Z2K4/documentation.uppgift T260954 & uppgift T260956
  5. Extend editing to deal with Z2K4/documentation.uppgift T260955

Phase completion condition: As a user, I can document a ZObject in any and all supported languages, using a wikitext.

Phase κ (kappa): cleanup

  1. 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

  1. Phase λ (lambda) is meant for launch. If there are pre-launch tasks that prevent that, so be it, obviously.
  2. Set up a new Wikimedia project.
  3. 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 to write and run functions directly on the site.

Uppgifter utanför faserna

Uppgifter som behöver göras innan lansering men som ännu inte ingår i faser:

Uppgifter efter lanseringen av del 1

Se även