The on-wiki version of the newsletter is available here (and might be
easier to read with the images):
https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2023-05-25
--
Our new viewing and editing experience is now available
Last week, we made another huge step forward to launch. After months of
development, we switched the standard viewing and editing experience from
the old, never-designed ZObject viewer and editor to the new Default view
component.
The default view component begins to highlight the advantages of having
individual functions being implemented through the Web. It is difficult to
avoid Wikifunctions being compared to decades' worth of work in modern
development environments. But with the default component now enabled, it
really feels to me that some of the interesting possibilities of
collaboratively working on individual functions through a Web interface
start to shine through.
The widgets keep relevant information available for you at a glance while
you are working on a tester or implementation. You can quickly re-run the
tests while updating an implementation, making sure they still pass. And
this is just our first version: we expect that as Wikifunctions evolves, as
you use it and find what does and doesn't work for you, that we will grow
and refine the repertoire of widgets at our disposal. I am very excited
about the future of Wikifunctions!
This change is coupled with tons of other changes that were now enabled by
using the new components. In this newsletter we will focus on two types of
objects where the new user experience is particularly beneficial: testers
and implementations.
<https://meta.wikimedia.org/wiki/File:Function_view_of_add_s_to_end_Wikifunc…>
<https://meta.wikimedia.org/wiki/File:Function_view_of_add_s_to_end_Wikifunc…>
View of the function "add s to end" in the Wikifunctions Beta
Our examples start with a function called “add s to end
<https://wikifunctions.beta.wmflabs.org/wiki/Z10210>”. As you can see on
the left hand side, the function takes a string as an input and returns a
string. On the right hand side you can see that the function currently has
one implementation (called “Add s composition”) and one tester (called “Add
s to book”). To give an example, if you enter a string such as “wall” as
the input, the function will add an s to the end and return “walls”.
Let’s take a look at the tester:
<https://meta.wikimedia.org/wiki/File:Add_s_to_book_Tester_Default_component…>
<https://meta.wikimedia.org/wiki/File:Add_s_to_book_Tester_Default_component…>
Default component for the tester "Add s to book" in the Wikifunctions Beta
The tester, as with most objects, now has three columns, with the main
content in the middle and additional helpful information and sometimes
actions on the left and right column. On smaller screens (like mobile
devices), we show the left column's contents first, then the main content,
and finally the right column.
In the center we see that this is a tester for the “Add s to end” function.
The test is invoked by the call “Add s to end (book)”, i.e. by the function
all “add s to end” with the argument “book”. We are using functional syntax
here as a shortcut for describing the call. By expanding the call, you can
see the function call in more detail. The result validation then says to
check with string equality against “books”. So this tester basically says
that, by adding “s” to the end of “book”, the system should return “books”.
Expanding and collapsing objects is particularly useful for the editing
mode, where the contributor can expand and focus on the parts of the object
they are interested in, and get a reasonably compact view of the rest of
the object.
The left hand column has two widgets, one “About”, to view and edit the
multilingual information of the object, and the other a function explorer,
offering a quick overview of the function we are testing. On the right hand
side we have a widget offering the list of implementations and whether they
pass this tester or not. There's also the JSON syntax representing the
object for debugging; don't be alarmed by this, we use it for our
convenience while we develop but we plan to remove it from view.
[image: ZObject-Viewer for the tester "Add s to book" in the Wikifunctions
Beta]
<https://meta.wikimedia.org/wiki/File:Add_s_to_book_Tester_ZObject-Viewer_Wi…>
<https://meta.wikimedia.org/wiki/File:Add_s_to_book_Tester_ZObject-Viewer_Wi…>
This is the view in the (now deprecated) ZObject-Viewer component of the
tester "Add s to book" which tests the function "Add s to end of word", in
the Wikifunctions Beta
Here, for comparison, is the previous ZObject viewer. The label box is at
the top, not the side, and below we see the tester, first pointing to the
function that is being tested, followed by the call and result validation.
We see the test results at the bottom in the form of a table, below
everything and out of sight.
[image: Default component for the implementation of "Add s composition" in
the Wikifunctions Beta]
<https://meta.wikimedia.org/wiki/File:Add_s_composition_collapsed_wikifuncti…>
<https://meta.wikimedia.org/wiki/File:Add_s_composition_collapsed_wikifuncti…>
This is the view in Default component of "Add s composition", which is a
composition implementing "Add s to end of word", in the Wikifunctions Beta.
The composition is collapsed.
The collapsed composition is opened one level in the following screenshot.
<https://meta.wikimedia.org/wiki/File:Add_s_composition_expanded_Wikifunctio…>
<https://meta.wikimedia.org/wiki/File:Add_s_composition_expanded_Wikifunctio…>
Default component for the implementation of "Add s composition" in the
Wikifunctions Beta with an expanded composition
This is the new default view for implementations. Again, we have the three
column view, with helpful widgets in the side columns. The right hand
column now contains a widget with the relevant testers, which also shows
that this implementation passes against the tester we saw before, “add s to
book”. Whereas every object would have an About widget, each type of object
can have different widgets on them as appropriate. For example, we will
soon have a Function Evaluator widget in the implementation page, similar
to the “Evaluate Function” box we had in the old view.
The center column contains the implementation itself, in this case a
composition. Some compositions can become rather long! The function “days
in a standard year calendar month
<https://wikifunctions.beta.wmflabs.org/wiki/Z10470>” has for example an
implementation via composition
<https://wikifunctions.beta.wmflabs.org/wiki/Z10483> with functions nested
four levels deep. This is where the new default component really shines, as
we can compact and expand each of the levels and branches of the
composition.
[image: ZObject-Viewer for the implementation of "Add s composition" in the
Wikifunctions Beta]
<https://meta.wikimedia.org/wiki/File:Add_s_composition_zobject_viewer_wikif…>
<https://meta.wikimedia.org/wiki/File:Add_s_composition_zobject_viewer_wikif…>
This is the view in the (now deprecated) ZObject-Viewer component of "Add s
composition", which is a composition implementing "Add s to end of word",
in the Wikifunctions Beta
Again, for comparison, here’s the previous viewer for an implementation. We
saw the test results at the bottom. Here we also had the evaluate function
widget on the right, which will be soon ported over to the new view as well.
Such a big change to the front end, touching almost every content page in
the Wikifunctions wiki, has also led to a flurry of bug reports, as a
number of things are temporarily not working as intended. Please bear with
us as we catch up and fix those. But also, take a moment with us to
celebrate this large step forward!
Particular shout outs to Geno as the lead engineer on this task, Allan and
Julia for their work, and to Amin for his designs!
The on-wiki version of this newsletter can be found here:
https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2023-06-22
--
Team offsite in Delft
Last week, our team had our annual in-person meeting, this year in Delft
<https://en.wikipedia.org/wiki/Delft>, in the Netherlands. It is the second
ever offsite for the team, following last year’s in New York City. The
offsite was also the reason we didn’t find the time to give an update last
week.
<https://meta.wikimedia.org/wiki/File:Abstract_Wikipedia_Team_Delft_2023.jpg>
<https://meta.wikimedia.org/wiki/File:Abstract_Wikipedia_Team_Delft_2023.jpg>
Abstract Wikipedia team at Delft offsite 2023. From left to right, back:
Amin Al Hazwani, Cory Massaro, Genoveva Galarza Heredero, Elena
Tonkovidova, David Martin, Stef Dunlap, Amy Tsay, Denny Vrandečić, James
Forrester; in front, kneeling: Nick Wilson and Luca Martinelli. Taken in
front of the Kunstmuseum Den Haag
This time, we were focused heavily on launching Wikifunctions. We discussed
the necessary work still ahead of us, and carefully reviewed and removed
many of the open tasks from blocking launch. Instead, the tasks were either
marked as “it would be great to have this before launch” (nice-to-have) or
simply as after-launch tasks. You can see our new, simplified board with
the current status in Phabricator
<https://phabricator.wikimedia.org/project/view/4964/>.
We also discussed and had retrospectives on the way the team works. All of
these discussions benefited heavily from being in person, especially when
we were figuring out which steps still need to happen before launch, and
which ones can be moved back. After three years, we certainly are both
excited and worried about launching – everything feels like it could use
just some more polish, and every feature feels like it would be great to
have it available at launch, so it was good to come together and push back
on this together.
For team-building, we visited two local museums: the Royal Delft manufactury
<https://en.wikipedia.org/wiki/De_Koninklijke_Porceleyne_Fles> in Delft,
and the Kunstmuseum <https://en.wikipedia.org/wiki/Kunstmuseum_Den_Haag> in
The Hague, where we particularly enjoyed the temporary exhibition on M. C.
Escher <https://en.wikipedia.org/wiki/M._C._Escher>, who beautifully
combined functions with art. We also visited the local Makerspace, where we
gave a presentation on Abstract Wikipedia and Wikifunctions and met with
some local members of the Wikimedia community.
Wikifunctions at Wikimania
We just learned this week that our submission to present Wikifunctions
at Wikimania
2023 <https://wikimania.wikimedia.org/wiki/2023:Wikimania> in Singapore has
been accepted by the program committee. Wikimania will offer the
opportunity to attend remotely. We are looking forward to presenting our
work to the community. We will share more details as they become known to
us.
The team is currently meeting for our offsite, and because of that we can't
find the time to write an update.
We will return to our scheduled programming next week.
The on-wiki version of this newsletter can be found here:
https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2023-06-02
--
Hackathon in Athens
May 19-21 was the Wikimedia Hackathon in Athens, Greece. A few of our team
members could attend and were spreading the word about Wikifunctions and
Abstract Wikipedia, answering questions, and inviting people to join.
<https://meta.wikimedia.org/wiki/File:Wikifunctions_%26_Abstract_Wikipedia_t…>
<https://meta.wikimedia.org/wiki/File:Wikifunctions_%26_Abstract_Wikipedia_t…>
The Abstract Wikipedia team at the Hackathon 2023 in Athens
We were represented (from left to right) by Nick Wilson, James Forrester,
Luca Martinelli, and Elena Tonkovidova. It was great to see the community
again and meet with other developers.
Monday is volunteer’s corner
This upcoming Monday will see our monthly Volunteer’s corner. The meeting
will be on Monday, June 5, 2023, 17:30-18:00 UTC
<https://zonestamp.toolforge.org/1685986233> and you can join on Jitsi on
the following link: meet.jit.si/AWVolunteersCorner
Bring your questions, your ideas, or even just your curiosity, and we will
find and help with places you can contribute.
Last time we had issues with Jitsi. If we have issues again, we will
provide a Google Meet link on short notice in the IRC / Telegram chat.