The on-wiki version of the newsletter is available here (and might be
easier to read with the images):
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
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
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:
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 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
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]
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.
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
[image: ZObject-Viewer for the implementation of "Add s composition" in the
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:
Thank you, Julia!
Julia Kieserman had joined the Wikimedia Foundation and the Abstract
Wikipedia team in the latter half of 2021. She had made significant
contributions to the user interface and the interaction design of
Wikifunctions. She has been particularly instrumental in working together
with the Design System team, thus ensuring that Wikifunctions has a solid,
common foundation in Wikimedia-wide technologies such as Codex.
I want to let Julia speak in her words:
So long, Abstract!
It’s been an honor to be part of a project with a mission as important and
ambitious as the Abstract team’s mission. Trying to do anything in a way
that works for all languages and best serves a diversity of people and
perspectives is certainly not an easy thing to do, and I am grateful for
the doggedness of this team in the face of that challenge. I’ve learned a
lot of valuable lessons that I’m excited to carry with me to the next
Cheers to a successful Wikifunctions launch - I’m excited to see how the
community helps transform it into something beyond our imaginations.
We are sad to see Julia leave the team, but we are happy to know that Julia
is staying with the Wikimedia Foundation, and will support the Trust and
Safety team in their numerous and important tasks as a senior engineer.
Thank you, Julia, for everything you did!
The on-wiki version of this newsletter can be found here:
We are welcoming Carrie Coxwell to the team! Carrie is joining us as a full
stack software engineer, and her first task will be to support the
development of the frontend to get us ready for launch. Here is Carrie’s
introduction in her own words:
I'm writing to you from Memphis, Tennessee, where I have been living for
the last nine years. I'm a senior software engineer with a focus on
front-end technologies. My professional background is an eclectic one: in
addition to being a software engineer, I've worked as a parking garage
attendant (a bucket list item of mine; go figure), copy editor, classroom
teacher, professional musician, and as a (truly terrible) waitress.
My interests are many and varied. I am passionate about animals, language,
teaching, open source hardware, canceling plans, music, Japanese and
Taiwanese stationery, Bob's Burgers, and rainbows — just to name a few. I
dream of high-quality, free, and equitable public K-12 education for all
When I'm not working, these days you can catch me engaged in my current
hyperfixations: knitting and trying to reverse engineer NYT's Wordlebot
(though not at the same time). I'm thrilled to be joining the Abstract
Join me in welcoming Carrie to the team and the Wikimedia movement! We are
looking forward to working with her.
History of Wikidata
Last week, Denny presented the "History of Wikidata" at The Web Conference
<https://en.wikipedia.org/wiki/The_Web_Conference> WWW2023 in Austin,
Texas. The Web Conference is the leading academic conference on all topics
Web. The presentation was part of the History of the Web special track,
which was inaugurated last year, and I can recommend the track for its
talks and papers.
The paper “Wikidata: The Making Of” has been written with Markus Krötzsch
and Lydia Pintscher. It is available as Open Access. It was written on the
occasion of celebrating ten years of Wikidata last fall. Abstract Wikipedia
is mentioned in the outlook.
A fifteen minute video presentation of the paper (but not a recording of
the presentation) is available here:
The paper is available as PDF here:
As HTML here: https://dl.acm.org/doi/fullHtml/10.1145/3543873.3585579
The Volunteer’s corner this Monday was well attended, but unfortunately
pretty botched by technical difficulties with Jitsi. Next time, we hope
that the situation will have improved, and we will try Jitsi again. But we
will have a Google Meet link handy in case we run into issues. See you in