Абстрактна Вікіпедія/Фази
This page is kept for historical interest. Any policies mentioned may be obsolete. Якщо ви бажаєте відновити дискусію, ви можете скористатися сторінкою обговорення або почати обговорення у запитах на коментар. |
Абстрактна Вікіпедія |
---|
(Обговорення) |
Загальне |
План розробки |
Нотатки, чернетки, дискусії |
|
Приклади та макети |
Інструменти даних |
Історичний |
Розробка Абстрактної Вікіпедії буде складатися з двох основних частин, включаючи велику кількість завдань. Перша частина стосується розробки вікіфункцій, друга — генерування абстрактного вмісту та природних мов. На цій сторінці ми ще більше розділяємо початок першої частини на фази. Нижче містяться посилання на Phabricator, де завдання та етапи розбиваються ще далі.
Ця сторінка може застаріти. Стале місце для інформації про фази та завдання є на Phabricator. Шукайте поточний стан на Phabricator.
Ми очікуємо пройти близько десять фаз, перш ніж запустити вікі функцій.
Всі фази нижче належать до завдання P1.2: початковий розвиток, якщо не зазначено інше.
Частини P1: вікі функцій
Фаза α (альфа): зберігати, відображати та редагувати заголовок — Виконано 2020-08-25
- Налаштуйте відповідне середовище розробки. — завдання T258893
- Виконано Запустіть розширення. — завдання T258893
- Виконано Працює з конфігурацією, завантажуємо вміст завантажувальної стрічки.
- Виконано Повторно використовуйте існуючий JSON ContentHandler. — завдання T258893
- Виконано Дозволити вводити об’єкти JSON через інтерфейс необробленого редагування. — завдання T258893
- Виконано Розширення та перевірка жорсткого коду для об'єктів JSON для перевірки правильності сформованості Z-Об'єкт. Ніщо, що не є добре сформованим, надалі не буде оброблятися або зберігатися. Хорошу сформованість, мабуть, слід перевіряти як у PHP, так і в коді JS (і так має бути легко писати).
- Виконано в PHP. — завдання T258894
- добре сформована держава: синтаксис ключа, дозволені ключі та значення - струни, прото-об'єкти або списки цінностей. — завдання T258894
- Виконано Кожен збережений Z-Oб'єкт верхнього рівня повинен бути Z2/Постійний об'єкт. — завдання T258897
- Виконано Створіть Z1/Oб’єкт, пропонуючи один ключ, Z1K1/тип.
- Виконано Розширте жорстко закодований валідатор, щоб перевірити Z1K1/тип.
- Виконано Створіть Z1/Стійкий об’єкт. — завдання T258897
- Виконано Z1/Стійкий об’єкт має клавіші Z2K1/ID та Z2K2/значення, та Z2K3/прото-мітка, останній є протилежним лише одним рядком без мовної інформації. — завдання T258897
- Виконано Extend hardcoded validator for Z2/Persistent object so far. — завдання T258897
- Виконано Provide hardcoded display for Z2/Persistent object (that is the header) (that is a pretty big task). — завдання T258898
- Виконано Provide generic view for the Z2K2/value object. — завдання T258898
- Виконано Turn Z2K3/proto-label into the proper Z2K3/label for multilingual text.
- Виконано 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!".
Фаза β (бета): створювати типи та екземпляри — Виконано 2021-02-04
- Виконано Hardcoded validators for Z4/proto-types and Z3/proto-keys. — завдання 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?).
- Виконано Create Z4/Type and Z3/Key (Task P1.14).
- Виконано Search for ZObjects by label. — завдання T260750
- Готово для цього етапу. Use Z4 type data and key declarations for validating objects. — завдання T260861
- Виконано Use Z4 type data and key declarations for generic view of objects. — завдання T258901
- Виконано Use Z4 type data and key declarations for editing and creation of objects. — завдання T258903 & завдання T258904
- Виконано Provide hardcoded display and edit interface for Z12 type. — завдання 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
Фаза γ (гамма): функції, реалізації, помилки — Виконано 2021-04-02
- Виконано Introduce a simple error object. — завдання T261464
- Виконано Introduce simple function. — завдання T258957
- Виконано Introduce simple implementation, for now only built-ins. — завдання T258958
- Виконано Create a few functions and built-ins. — завдання T261474
- Виконано Introduce a simple function call type. — завдання T261467
- Виконано Tester type (Task P1.10). — завдання 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)
Фаза δ (дельта): вбудовані модулі — Виконано 2021-05-11
- Виконано Evaluation system for built-ins. — завдання T260321
- Виконано Enable web users to call evaluation through an API module (Task P1.5). — завдання T261475
- Виконано Special page for calling evaluation (Task P1.11). — завдання 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.
Фаза ε (епсилон): виклики власної функції — Виконано 2021-06-30
- Виконано Реалізації JavaScript (завдання P1.12). — завдання T275944
- Виконано Python implementations (Task O6). — завдання T273517
- Виконано Allow forms to be included for evaluation. — завдання 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.
Фаза ζ (дзета): склад функцій — Виконано 2021-08-27
- Виконано Allow for composition implementations (Task P1.6). — завдання 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)
. — Виконано - (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 ι.] — Виконано
Фаза η (ета): загальні типи — Виконано 2022-04-08
- Виконано Allow for generic types, particularly for Z10/List and Z8/Function, and replace Z10/List and Z8/Function. ― завдання T275941
- Виконано Errors can be processed like ZObjects.
- Виконано 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 — Виконано - Making it possible to create the following three 'user-defined' types on the wiki:
positive integer
,sign
, andinteger
— Виконано - Being able to make a generic wrapper type through composition on the wiki — Виконано
See also the newsletter posted about this phase.
Фаза θ (тета): розморожування та заморожування — Виконано 2023-06-19
- Виконано Freezing and thawing content (Task P1.7). ― завдання T275942
- Виконано Task P1.9: Pass security review. — завдання T274682, …
- Виконано Launch public test system (Task P1.4). — завдання 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.
Фаза ι (йота): документування об'єктів
- 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. — завдання T260954 & завдання T260956
- Extend editing to deal with Z2K4/documentation. — завдання T260955
Phase completion condition: As a user, I can document a ZObject in any and all supported languages, using a wikitext.
Фаза κ (каппа): очищення
- 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 completion condition: As a person on the Web, I can visit and use Wikifunctions.org to write and run functions directly on the site.
Поетапні завдання
Завдання перед запуском, які мають бути виконані, але ще не виконуються:
- P1.1: ініціалізація проекту.
- P1.3: налаштувати інфраструктуру тестування.
- P1.8: запустити Вікіфункції в бета-версії.
Завдання після запуску частини 1
- P1.13: функції доступу.
- P1.15: Реалізації на основі Lua.
- P1.16: нефункціональні інтерфейси.
- P1.17: виклики REST.
- P1.18: доступ до Wikidata та інших проектів WMF.
- P1.19: одномовна генерація.