SMWCon Fall 2014/Introducing Together.js

"Edit conflict! Someone else has changed this page since you started editing it."

It's hard to take turns. Collaboratively writing or editing an article can be an awkward process on a mediawiki. For new editors, the wiki is an empty place: all the other readers, editors, and authors are invisible. Even the article text is surprisingly fluid: while you were writing a supporting argument, someone else stole the thesis statement.

Real-time collaborative editing can help! Of course, there are difficult questions to solve: how do I find other editors? How do we record the "author" of a revision we wrote together? Within a session, how can I keep track of who wrote what, and who decides when we're done?

I can't solve all those problems at once! But I've written mw:Extension:TogetherJS to begin the investigation. This extension builds on Mozilla's TogetherJS library to allow real-time collaborative editing of wikitext. By the time Wikimania arrives, we might even have it working with Visual Editor. This talk will describe our work on the extension, how to enable it on your wikis, and touch on the social and interface issues involved in making real-time collaboration part of our community.

For hard-core nerds, the talk will include a dive into the details of transformation Operational Transformation, conflict resolution, and Visual Editor's transaction API, and describe the architecture of Mozilla's TogetherJS library. I will discuss basic mechanisms for finding collaboration partners and handling out-of-band discussion. Blue sky proposals will include integrating "circles of friends" and highlighting content contributed by your "friends", richer revision annotations to preserve multi-party authorship information, persistent site-wide chat, and real-time updates to articles without page reloads. We will consider how new-user on-ramps like the Teahouse might be reinvigorated with real-time features. Finally, we will speculate on the future of Wikipedia as a real-time community hub: where the people behind the pages are visible and available, and reading an article is interactive with the topic-focused community maintaining it.