Hi everyone,
as part of NGI#2 we made the following proposal for Usecase 2:
Ability to provide discussions inside XWiki, and more specifically the ability to reply to activities. XWiki already provides Notifications but it’s currently not possible for users to discuss around them between themselves. The idea is to add a social aspect around XWiki activities. It also means that from other software it would be possible to know about shared documents and start a discussion around them.
This usecase is actually complex and is talking about different things, so in order to properly implement it both in ActivityPub extension, but inline with XWiki Standard wanted evolutions, we’d like to clarify it and ensure we’re all on the same page.
This brainstorming won’t necessarily go into all details for now, but we’re trying to take first the big decisions.
We see 3 important points in this usecase:
- it’s about providing discussions in XWiki (first sentence)
- the usecase is mentioning Notifications as a possible entry point for such discussions (second sentence)
- the usecase is mentioning the capability to start or contribute to a discussion outside (but related to) XWiki, but that would be somehow displayed also in XWiki
Definition of a discussion
Our understanding is then that the main goal is to be able to have discussions but we need to clarify what is exactly a discussion. The first vision is that a discussion is a thread of messages having a common topic.
Two things here:
- this common topic might be various things: it could be a message itself, but it could also be any kind of event in a wiki (a page edit, a new comment, a like, a mention, etc)
- a message is necessarily a user-written message for the specific thread: it means that we wouldn’t include in a discussion other events: you cannot have in a discussion around an edit event of a page, another edit event of the page for example
So the first question of this brainstorming is: do you agree with this definition?
Need of a messaging application
Following this definition, we envision that we do need a dedicated messaging application in XWiki to manage those discussions. This dedicated messaging application would have then several roles: to be able to display all discussions the user have been involved to (or all public discussions if any); to be able to participate to a discussion by answering to it and to be able to start a discussion by sending a first message.
Note that both the contributions to the discussions coming from XWiki and from other software (through ActivityPub), would be then aggregated in the same place.
We can imagine two situations without the messaging applications:
- all discussions taking place in Notifications
- all discussions taking place in comments
Situation 1 is not good for several reasons, one of them is the ability to properly display long threads of discussions in Notifications area. Second reason is the fact that Notifications are volatile (they are not aimed to be kept forever for users), while discussions should be persistent.
Situation 2 is not good either, simply because not all discussions would concern pages: how about starting a discussions from a message to another user? How about starting a discussion from a page deletion? etc
So the second question of this brainstorming is: do you agree that we need a dedicated messaging application to allow displaying discussions and maybe participate to them?
Note that for now, I’m not mentioning the Message Stream application, we might or not reuse it depending on the more specific usecase. We want first to know if we all agree that a Messaging application is needed here for the discussions.
Need of Notifications quick actions
As we mentioned in our definition of discussions, a discussion is starting from any kind of event: either a message sent to another user, or an edit event on a page, a mention made in comment etc.
All those events, by definition, appear first in the Notification Area (under the bell). So it seems a good idea for usability reason to be able to introduce quick actions in the Notifications Area, and the capability to start a discussion from an event.
I’m talking here about quick actions, plural, because we’re thinking about a generic mechanism not only useful for the discussions, but also for other usecases: you could imagine in the future, liking a notification, sharing it, etc, so it looks like the “start discussion” usecase would be only a first usecase of a more generic mechanism to interact with an existing notification.
Do you agree that such mechanism would be useful for XWiki Standard, and that it would be needed for properly using discussions?
Data representation of Discussions
This topic is a bit less advanced than the others, and we would need more a brainstorming than an agreement on it.
Basically the question is: how should we store the discussions data?
Personally I (Simon), was thinking that it would be easy to store them directly as specific kind of Event (in the Event store then), but after a migration to allow linking events to each other. Basically each Event Message would be able to make a link to the previous Event it would answer to, and the whole chain would constitute the discussion (the thread).
The advantage of this solution IMO is that it would benefit from the already existing work on event store and it would be as scalable as it.
The problems I see, besides the need of a migration potentially expensive, is that the capability to export easily users’ data: it would take some work to be able to export all discussions you’ve been involving to. Moreover, it also mixes two different completely different usecases in the same store, which is rarely good.
We think we can already discard the solution of storing discussions as xobjects, for the same reasons we think it’s a bad idea to only consider discussion messages as comments.
WDYT?
Simon and @mleduc