|◀||Abstract Wikipedia Updates||▶|
- Today we want to give an update on the development work, with a particular highlight on the community contributions — and renew our invitation for volunteer developers to join!
We have defined the work to get us to the initial launch of Wikifunctions into 11 phases, of which we have finished one. Phase α (alpha) was about the ability to create objects on wiki, and our current Phase β (beta) is about creating new Types and creating instances of such Types.
In the backend of the wiki, we have been mostly busy with turning the hard-coded validators we had so far into validators that are based on the type definitions inside the wiki. This task is still on-going, and will remain so beyond Phase β. In the end, the validation of instances will be performed by functions written by the community and stored on the wiki itself, so we will need the ability to define and run functions in order to fully allow their validation. Until then, we will have incomplete validators that will become increasingly more comprehensive.
The frontend work for supporting user-defined types has also progressed, and here we saw a number of contributions from two volunteers, Gabriel Lee and Arthur P. Smith. Thanks to them, a lot of the identifiers are now also enriched with the labels in the user’s language, and adding data is becoming much easier than before.
As usual, you can see and experience the results right on the “notwikilambda” demo system set up by another person volunteering, Lucas Werkmeister, who in their “day job” works on Wikidata.
We try to reach out to volunteers when we notice them contributing code. We plan to invite them to chats with individual members of the team, discussing the tasks, and also invite them to some of our daily stand-up meetings, if the timing permits it. We have had a few people join one or more of our stand-ups so far, and we are looking forward to inviting more.
There are several ways a developer can contribute at the given time, and the ones that we am going to list here are by far not complete.
One way is to take a look at our task board on Phabricator, and see if there is a task that you would like to work on. This is probably the best way to contribute to the WikiLambda extension itself, to work on our UI front-end and the MediaWiki back-end. You might instead find a task to work on within the stand-alone services that will support Wikifunctions – the function-orchestrator and the function-evaluator.
Beyond Phabricator, there are also development projects which are less tied in to our daily development work, and we would love to see those happen. For example, Lucas Werkmeister has started an alternative implementation of the function evaluator of an earlier prototype of the project, based on GraalVM. Other, parallel evaluation engines would also be very interesting. For example, one running on cloud computing resources, one running in the browser, or one running on the local machine.
Besides that, we would love to see alternative interfaces to interact with the Wikifunctions system once it is in place. Possible interfaces might be viewing and/or editing via a modern CLI, through a Website that is not based on MediaWiki (perhaps hosted on Cloud Services), through a voice-based or touch-based interface, within a Hadoop workflow, or even within a spreadsheet. Some of these concepts might still be a bit premature, but if you are interested in one of these, let me know and we will find a place on-wiki to collect and discuss ideas.
I would particularly love to see an interactive visualization of a function evaluation, based on a composed implementation, allowing the user to better understand how a specific value is derived. Such projects can be started more or less independently of the main Wikifunctions work (although, admittedly, it might often make sense to wait until the project has stabilized a bit, in order not to develop against a moving target).
As the project progresses, we expect that more and more people with an increasingly diverse skill set will feel able to contribute to the project.
Until then, there are already a few other ways you can contribute if you’re not a developer:
- We are currently looking for submissions of logo concepts (we also moved the submission deadline for logo concepts to 23 February).
- You can join the Wikidata community to increase the coverage of the lexicographic knowledge in Wikidata (we are working on a few ideas in this direction that we will talk about in the coming weeks).
- You can read through our documentation and ask questions, make clarifications, and help us to make the project more accessible.
- There was the suggestion from Dennis Priskorn to collect possible user stories, which would also be very welcome.
As the project progresses, more and more tasks will become available. We hope you will keep an eye on our progress, and join us whenever you feel ready to contribute!