The on-wiki version of this update can be found here:
https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-10-27
--
Thank you, fellows!
In April we shared with great happiness that Google.org supported the
development of Abstract Wikipedia and Wikifunctions with a generous
fellowship program. Six fellows joined us in April
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-04-12> and
May for a period of six months, and as their fellowship has come to an end,
it is time to take a look back and appreciate their achievements. It was a
pleasure to work with the fellows, and some of us had the lucky opportunity
to meet
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-10-05>.
*Olivia Zhang* joined the fellowship as a product manager, and she filled
that role for the performance workstream and beyond, organizing and
prioritizing the numerous requirements, and outlining a product narrative
for performance
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Wikifunctions_performanc…>
at
Wikifunctions. She also created and managed an overall launch document for
Wikifunctions, allowing us to get a better view of our status and the work
ahead. The launch document will now be taken over by our product manager
Rebecca
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-07-20>,
who recently joined the team. Olivia helped us understand and answer
important questions about Wikifunctions's ultimate scope and how to best
achieve it.
Thanks to *Mary Yang* and her work we could safely launch the Wikifunctions
Beta <https://wikifunctions.beta.wmflabs.org/wiki/Wikifunctions:Main_Page> in
time for Wikimania. She set up the availability and performance monitoring
infrastructure not only for the wiki itself, but also for the supporting
services such as the evaluator
<https://gerrit.wikimedia.org/g/mediawiki/services/function-evaluator> and
orchestrator
<https://gerrit.wikimedia.org/g/mediawiki/services/function-orchestrator>.
Her work is crucial in preparation for the general launch of Wikifunctions.
She contributed numerous patches to the performance workstream. This also
allowed Mary to dive and understand our architecture deeply, and she
provided us with insights into the strengths and weaknesses of our
architecture.
*Eunice Moon* supported the fellowship as a program manager. She supported
the fellows in their work, particularly with the implementation of the
natural language workstream, involving external members from the community
and academia. Together with our community relation specialists and other
folks in both organizations, she set up and planned out a series of posts
on Diff
<https://diff.wikimedia.org/2022/09/21/the-state-of-abstract-wikipedia-natur…>
further
outlining the project and its aims. She also was the main organizer behind
the in-person Zürich Fellowship offsite which the fellows attended.
With *Ori Livneh*, we were able to welcome back an old friend. Ori was not
only the tech lead for the fellowship program, but also was an invaluable
translator between the world, the culture, and the language of Google and
Wikimedia, allowing for the other fellows to work smoothly together. Ori
was a catalyst for the launch of the Wikifunctions Beta
<https://wikifunctions.beta.wmflabs.org/wiki/Wikifunctions:Main_Page> in
time for Wikimania. He also led the work on a thorough evaluation of the
strengths and weaknesses of the architecture of Abstract Wikipedia and
Wikifunctions, which is going to be published soon.
*Ariel Gutman* brought his many years of experience in natural language
generation to the project. Together with community members such as Mahir
Morshed, external experts such as Maria Keet, and other Googlers such as
Kutz Arrieta, they started the natural language generation workstream.
Ariel boldly sketched out a proposal for the natural language generation
architecture
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-05-27> for
Abstract Wikipedia, outlined (together with Maria Keet) a template language
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Template_Language_for_Wi…>
to
be used, and discussed the progress in a recent Diff post
<https://diff.wikimedia.org/2022/09/21/the-state-of-abstract-wikipedia-natur…>.
He also created a Lua-based prototype
<https://meta.wikimedia.org/wiki/Module:Sandbox/AbstractWikipedia>, in line
with this architecture, demonstrating that the proposal is feasible; he
will soon present this work in detail.
When we learned that *Ali Assaf* had written his PhD on lambda calculus, we
were very excited. The lambda
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-02-04> in
the name "WikiLambda <https://www.mediawiki.org/wiki/Extension:WikiLambda>"
pays homage to the inspiring role of lambda calculus for Wikifunctions. Ali
dived right into formalizing the underlying function model, putting the
whole project on a stronger conceptual and practical foundation. He
discovered and fixed plenty of bugs in the orchestrator
<https://gerrit.wikimedia.org/g/mediawiki/services/function-orchestrator> where
composition evaluation is implemented. Ali’s main result is the semantics
of Wikifunctions
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Semantics_of_Wikifunctio…>
documentation
and further essays on generic function types
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Generic_function_type>,
local
vs. global keys
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Local_vs_global_keys>,
and the semantics of validation
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Semantics_of_validation_…>
.
To all the fellows: thank you!
Three more fellows
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-07-20> remain
with the team, and will stay with us until the end of the calendar year,
Dani de Waal, Sandy Woodruff, and Edmund Wright.
The Google.org fellowship program is designed to let Google employees work
pro bono with nonprofits and civic entities. Fellows build open-source
solutions to equip their hosting organizations with better capabilities to
reach their goals. As you can see with the contributions of the fellows to
Abstract Wikipedia and Wikifunctions, this is an opportunity to benefit
from people with unique talents, and to allow them to do pro bono work. We
want to thank the fellows for their willingness and interest to work with
us, and we hope that they had a great time. We also want to extend our
gratitude to Google.org for allowing us to participate in this programme.
Development update for the week of October 21, 2022
Experience:
- Made type expansion unnecessary in the evaluator
- Fixed more FE bugs
- Completed proposal for front-end error handling
<https://etherpad.wikimedia.org/p/FE_error_management_proposal>
- Merged ZObjectDiffer
Meta-data:
- Drop back-compat. code in PHP and Vue layers (T291136
<https://phabricator.wikimedia.org/T291136>)
- Developed proposal for readable summaries of all error types (T312611
<https://phabricator.wikimedia.org/T312611>)
Natural Language Generation:
- Categorized discussion points on Abstract Representation
- Refined the template language
- Patch
<https://gerrit.wikimedia.org/r/c/mediawiki/extensions/WikibaseLexeme/%2B/82…>
of
Ndebele language codes got pushed to Wikidata
The on-wiki version of this newsletter can be found here:
https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-10-14
--
Welcome, Stef!
We are welcoming Stef Dunlap to the Abstract Wikipedia team! Stef joins us
as a Quality and Test Engineer. She will be instrumental in ensuring that
Wikifunctions and Abstract Wikipedia, which are complex systems spanning
several MediaWiki projects, will be testable. This is expected to increase
our development velocity overall.
Stef received her Bachelor of Science in Computer & Information Science
from Purdue University in Indianapolis, the capital of Indiana in the USA
in 2012. She has since worked for small- and medium-sized startups with a
focus on improving team engineering processes and testing practices. On
Wikipedia, her username is Motevets
<https://en.wikipedia.org/wiki/User:Motevets>. We’ll let Stef introduce
with her own words:
*“I'm very excited to be joining the Wikimedia Foundation as a Staff
Software Engineer in Test. My approach to software engineering has been
strongly influenced by my time at Pivotal which had three core values: "do
the right thing, do what works, and be kind." I've seen that teams that can
combine ethics, pragmatism, and empathy are the kinds of teams that make
great software and foster a strong community around them.**“I live in
Toronto, ON with my loving partner and two cats. In my free time, I like to
make things; with computers, 3D printers, and paper. I enjoy contributing
to English Wikipedia and Wikimedia Commons by finding images for articles
that have none. On more than one occasion, this has involved me reaching
out to owners of copyrighted images that would be good fits for articles,
explaining Wikimedia's mission, the reason Wikipedia prefers free images,
and (if they're comfortable) arranging them to release it under a free
license so that it can be published to Commons and Wikipedia.”*
Please join me in welcoming Stef to the Abstract Wikipedia team!
Workstream updates for the week of October 7
Experience workstream
- [Tests] POC integration test with Jest: use case 1 “create a new
function” (T316669 <https://phabricator.wikimedia.org/T316669>)
- Fix function editor: aliases field fixes: T317961
<https://phabricator.wikimedia.org/T317961>
- Aliases component improvements: T318148
<https://phabricator.wikimedia.org/T318148>
- [Design] Discussed adding Implementation and Tester tabs back into
function flow
- [Design review + changes] Function definition on mobile
- Document and unify docs about CUJs (T316668
<https://phabricator.wikimedia.org/T316668>)
- Critical User Journeys reflected as phabricator epics
- Fix initialize object with edge case url params (T311416
<https://phabricator.wikimedia.org/T311416>)
Metadata workstream
- Added backend server id(s) to metadata (T314960
<https://phabricator.wikimedia.org/T314960>)
- Drafted and published a wiki page documenting function call metadata (
T313567 <https://phabricator.wikimedia.org/T313567>)
- Investigated providing readable summaries of more error types (T312611
<https://phabricator.wikimedia.org/T312611>)
- Switched Z820/Trigger meta-data to cope with ZMap-based meta-data (
T309642 <https://phabricator.wikimedia.org/T309642>)
- Adjusted ZTypedPair PHP to use K1/K2 not Z882K1/Z882K2 (T315009
<https://phabricator.wikimedia.org/T315009>)
- Adjusted ZTypedList PHP to validate additions when expanded (T315696
<https://phabricator.wikimedia.org/T315696>)
Natural language generation workstream
- Refined the template language specification
- Abstract Representation Discussion Part III (e.g., refine the
definition of constructor, refine the initial proposal, etc.)
- Contributed to the Architectural Review document
- Extended the prototype to generate text about a topic in Wikidata
(e.g. stub-like)
- Published the DIFF article re: current state of NLG system
<https://diff.wikimedia.org/2022/09/21/the-state-of-abstract-wikipedia-natur…>
The on-wiki version of this newsletter can be found here:
https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-10-05
--
As you may have noticed, for a while we stopped posting our updates. This
was mostly because Denny was traveling. Apologies for being so quiet
without prior notice. We will improve that in the future.
The travel was mostly work related: some of us spent one week in Zürich on
an off-site to which Google.org invited us with their fellows. It was great
for the fellows and for us to meet each other in person, and to discuss how
the fellowship is going and the plans for the future. We also had the
pleasure to listen to a tech talk
<https://commons.wikimedia.org/wiki/File:Knowledge-to-text_Natural_Language_…>
by Professor Maria Keet <http://www.meteck.org/> from the University of
Cape Town particularly on the challenges of Niger Congo B languages in
Natural Language Generation. Given that some of the fellows are offboard
during these weeks, we will soon publish a newsletter with an update on the
fellowship, discussing some results and the future work. It was amazing to
meet the fellows, and as much as we are used to remote working, it was
great to catch up in person with each other.
<https://meta.wikimedia.org/wiki/File:Google.org_fellowship_offsite_office.p…>
<https://meta.wikimedia.org/wiki/File:Google.org_fellowship_offsite_office.p…>
From right to left: on the right side, sitting: Eunice Moon, Ali Assaf, Ori
Livneh, Maria Keet. Standing: James Forrester, Rebecca Wambua, Ariel
Gutman. On the left side, sitting: Dani de Waal, Olivia Zhang, Mary Yang,
Sandy Woodruff. Standing: Edmund Wright, Denny Vrandečić
<https://meta.wikimedia.org/wiki/File:Google.org_fellowship_offsite_dinner.j…>
<https://meta.wikimedia.org/wiki/File:Google.org_fellowship_offsite_dinner.j…>
Left hand side on the table, from front to back: Ariel Gutman, Ori Livneh,
Maria Keet, Sandy Woodruff, Mary Yang, Eunice Moon. At head of table:
Rebecca Wambua. Right hand side of the table, fromt front to back: Olivia
Zhang, Denny Vrandečić, Edmund Wright, Dani de Waal, Ali Assaf, James
Forrester
The second trip was to Germany. Denny attended a Dagstuhl
<https://en.wikipedia.org/wiki/Dagstuhl> seminar on “Knowledge Graphs and
their Role in the Knowledge Engineering of the 21st Century
<https://www.dagstuhl.de/en/program/calendar/semhp/?semnr=22372>”, where
Wikidata was an important topic, and where he also discussed the extensions
we plan with Wikifunctions. A report of the seminar is being written and
will be published later this year. Denny wants to thank my co-organizers
Elena Simperl, Marieke van Erp, and Paul Groth.
In Berlin, the Wikimedia movement first met for the Wikimedia Summit
<https://meta.wikimedia.org/wiki/Wikimedia_Summit_2022>, and then a meeting
of the Tech and Product departments of the Wikimedia Foundation. It was
brilliant to meet so many old friends again, and to make new friends. It
was the first time that Adam and Denny met each other, and it allowed us to
get a picture of the original Abstract Wikipedia team of James, Adam, and
Denny:
<https://meta.wikimedia.org/wiki/File:Abstract_Wikipedia_Team_-_Group_photo,…>
<https://meta.wikimedia.org/wiki/File:Abstract_Wikipedia_Team_-_Group_photo,…>
From left to right: Adam Baso, Denny Vrandečić, James Forrester
Weekly updates
We also used to publish the weekly progress on the individual workstreams
in the newsletters. In order to pick up that habit again, you can find
below the weekly updates that we skipped. We will re-start publishing them
weekly.
August 12: Officially invited users to Beta!
This week, our team reached one of the major milestones of the project. We
officially invited users to the Wikifunctions Beta
<https://wikifunctions.beta.wmflabs.org/wiki/Wikifunctions:Main_Page>. In
the weekly newsletter, we described what works and what doesn't work on
Beta and encouraged users to report issues via Phabricator. A lot of team
members recorded short presentations in preparation for a Wikimania slot
about Wikiunctions on Sunday.
Performance:
- Started performance analysis methodology documentation
- Set up health-check API endpoint for Wikilambda
Natural Language Generation:
- Not too much progress due to team members' vacation time. Started
adding noun class information for isiZulu, Mboshi, Kiswahili
Meta-data:
- Finished display of metadata dialog on tester page
- Created some new PHP utilities for ZMaps
Experience:
- Fixed and merged Beta launch blockers
- Made great progress on fixing various bugs
- Began researching diffing options
August 19: First Deep Dives session with Selena and Wikimania presentation
The Abstract Wikipedia team had the first Deep Dives session with new
Foundation CTPO (Chief Technology and Product Officer) Selena Deckelman and
gave an overview of the project. Despite technical problems with the
Pheedloop platform, the team was happy about the Wikifunctions presentation
during Wikimania. We had a relatively large number of attendees and
received good questions. Elena Tonkovidova drafted the QA (Quality
Assurance) Abstract Wikipedia playbook in preparation for the new QTE
(Quality and Test Engineer) hire.
Performance:
- Removed mutex locks and async references in function schemata
- Migrated Beta Cluster monitoring from Uptimerobot to Wikimedia infra
Natural Language Generation:
- Drafted initial proposal of the Abstract Representation
Meta-data:
- Finished the work for showing tester status & adding metadata dialog
to the implementation table
- Implemented DB schema for caching tester results in MediaWiki
Experience:
- Finished pagination in implementations/testers table
- Fixed more front-end bugs
August 26: In person Google.org offsite in Zurich
This week, all Google.org fellows and a few members of the AW team gathered
in Zürich for an in-person offsite. As a result, the progress for the
Performance and NLG workstreams has been paused. Members of the remaining
workstreams participated in some offsite sessions virtually.
Performance:
- Paused due to offsite
Natural Language Generation:
- Paused due to offsite
Meta-data:
- Finished setZMapValue PHP utility
- Added validation errors & actual / expected test values into metadata
Experience:
- Merged “impactful change” dialog and pagination in
implementations/testers table
- Fixed more front-end bugs
September 2
Performance
- Started on benchmarking performance before and after the async removal
(T296841 <https://phabricator.wikimedia.org/T296841>)
- Productive discussions around validation, have some ideas about how to
improve performance (T315027 <https://phabricator.wikimedia.org/T315027>)
but still needs more work
- Started ideating on architecture review
- Sent CL for logging improvements (I7126a1d49)
- Productive discussions around validation, have some ideas about how to
improve performance (T315027) but still needs more work.
- Added sections to function model formalization doc
Natural Language Generation
- Offsite in Zurich (TechTalk by Maria Keet & NLG UI session)
- Drafted DIFF blogpost & sent to team for review
- Started defining NLG-related types in Wikifunctions Beta
- Started prototyping the NLG system
Metadata
- Finished i18n coding for validation errors & actual / expected test
values
- Adapted metadata dialog code to work with updated dialog components
- Analysis / discussion / tickets about modal-dialog implementation
strategy
Experience
- Fixed function “input” field as placeholder instead of literal
- Using Cdx input field in function page
- MOBILE: confirmation dialog, function page, implementation and test
tables
- Fixed ZObjectSelector behavior issues (T314401
<https://phabricator.wikimedia.org/T314401>)
- Update language selector to match designs (T315919
<https://phabricator.wikimedia.org/T315919>)
- [Ongoing research] refactoring/renaming zobject store module
- Fix Z3K1/value type initialization on type creation: T314945
<https://phabricator.wikimedia.org/T314945>
- Fix ZObjectSelector jumpiness
- Detail requirements for zobjectDiffing algorithm
- Wrote initial ZObjectDiff, ZObjectMapDiff and ZObjectListDiff
- Wrote initial ZObjectDiffTest to ease development
September 9
Performance:
- Resolved performance issue in aysnc patch (T296841
<https://phabricator.wikimedia.org/T296841>)
- Fixed Beta Cluster issues
Natural Language Generation:
- Reviewed the initial proposal of the Abstract Representation
- Made good progress on prototyping the NLG system through Scribunto and
exploring prototype on Wikifunctions beta
- Drafted documentation
<https://www.wikidata.org/wiki/Wikidata:Lexicographical_data/Documentation/L…>
for
basic lexicographic information on Wikidata for isiZulu (and similar
languages)
Meta-data:
- Progress is paused due to vacation plans
Experience:
- Fixed more front-end bugs
- Refactored modal dialog
- Finished the initial version of ZObjectDiffer
September 16
A few members of the team had a chance to join the Inclusive Product
Development V2 Kickoff. Rebecca Wambua will be driving this initiative in
our team. Adam, Denny, and James are in Berlin this week for the Product &
Tech Leadership Summit.
Performance:
- Started drafting a document on how to improve validation
- Initial patch sent for creating benchmark suite
- Shared first draft of the semantics proposal
Natural Language Generation:
- Conducted Abstract Representation Discussion
- Drafted post-NLG ideas gathered during the offsite
- Drafted internal document to clarify some aspects of architectures
- NLG Scribunto prototype has all needed basic capabilities
Meta-data:
- Adapted metadata dialog code to work with recent re-factoring patches
Experience:
- Fixed more front-end bugs
- Identified the critical user journeys that should have strong test
coverage
- Reviewed and discussed default component designs
- Fixed CI-flagged issues
- Created ZObjectDiffer tests
September 23: DIFF post about representing abstract content in natural
languages
Members of the Natural Language Generation workstream published this
month's DIFF post
<https://diff.wikimedia.org/2022/09/21/the-state-of-abstract-wikipedia-natur…>
about
representing abstract content in natural languages. The first 6-month cycle
of the Google fellowship program is coming to an end. Next week will be the
last week for two fellows. And the remaining members of the first cohort
will finish the fellowship in October (different dates). Fellows are
putting together a detailed handoff plan.
Performance:
- Propagated the no-async validator changes
<https://gerrit.wikimedia.org/r/c/mediawiki/services/function-orchestrator/%…>
to
orchestrator
- Landed benchmark suite for orchestrator
Natural Language Generation:
- Added sub-template support in the NLG prototype
- Discussed refining the template language specification
Meta-data:
- Finished refinements & testing of validation errors & actual/expected
test values
<https://gerrit.wikimedia.org/r/c/mediawiki/extensions/WikiLambda/%2B/826692>
- Investigated adding backend server id(s) to metadata
- Corrected element key names in ZTypedPair (patch)
Experience:
- Fixed more front-end bugs
- Iterated on default component designs
- Designed proposals for the mode switcher, publish component, and an
"Aliases" input field
September 30: Fix-it Week and welcomed Stef Dunlap to the team
September 26 – 30 was a ‘Fix-it’ week for the Abstract Wikipedia team.
During this week, the team paused the development of new features and
focused on tasks related to technical debt. We welcomed Stef Dunlap, Staff
Software Engineer in Test, to the team. On September 29th, the team had the
Inclusive Product Development Playbook V2 Kickoff. September 30th was the
last day for two Google.org fellows.