Learning patterns/Surfacing activity
What problem does this solve?Edit
Wikis are all about collaboration, but compared to many other content management systems, MediaWiki wikis make it difficult for a group of collaborators to keep track of what's happening across multiple pages. This can make it difficult to use wikis as standalone collaborative workspaces.
MediaWiki wikis don't do a very good job of surfacing recent activity. A category page doesn't allow you to sort pages in the category by recent edits, number of contributors, or creation date. Our sites also don't yet support group notifications outside of specific extensions like the New pages feed. Watchlists and individual notifications let you know when certain changes have been made, but what if you want to display a list of notifications that are relevant to a whole group of people?
Groups are more productive when their members are mutually aware of what other members of the group are doing, without having to ask someone or hunt down that information every time they want an update. Many social software tools provide multiple ways for users to be peripherally aware of relevant activity by other users.
Several MediaWiki extensions have been created that provide collaborative watchlists and sorting lists of pages by dates, but these extensions are not available on all Wikimedia wikis, and their functionality is limited. Getting new extensions created and implemented, or updating existing ones, can be long and labor intensive process that requires serious developer mojo and extensive code review.
This pattern describes several ways to surface activity and create group awareness within portals, wikiprojects, noticeboards, and other group workspaces on Wikimedia wikis, without building extensions or hacking the core.
What's the solution?Edit
Fortunately MediaWiki is highly flexible and MediaWiki users are innovative, so a variety of good solutions have been created to tackle this problem. Some of these solutions, like the FIXME and the FIXME, are based on Extensions that are not available on all MediaWiki websites. Others rely primarily on Templates and Parser Functions and bots, which allows non-developers to create dynamic content.
Profiles and viewsEdit
Profiles are simple templates that display information in a consistent format. That information can be text pulled from a source page, metadata about that page, or text entered by a person. Any information about a source that can be gathered through the MediaWiki API can be included in a profile, and the profiles can be formatted any way you want. In percolate, each view has its own type of profile.
Percolate works with three types of profile:
- basic profiles
- featured content profiles
- activity feed entries
Views are different methods for displaying profiles. The basic function of Percolate is to create profiles and move profiles based on some set of predefined criteria. Once Percolate has been configured and set up to run (by a bot), it can support as many profiles, galleries, guides and feeds as needed and update them as frequently as desired.
The host breakroom provides a browsable guide of user-created profiles for hosts who are not currently active on the Teahouse.
The IdeaLab introductions page displays a guide of participants in the IdeaLab. User-created profiles are dynamically shuffled so that the most active participants are at the top.
The IdeaLab ideas page displays several guides for different kinds of ideas, such as newly-created ideas. Idea profiles are constructed and placed in their appropriate guides automatically based on the content of infoboxes and metadata such as recent revisions and category membership.
The guide view allows for the creation of dynamic lists of profiles from various sources all on the same page. Guides provide an easier and richer browsing experience than categories because they provide relevant information about each source, instead of a bare list of links. Guides allow users to find out basic information about each source page without visiting that page. This is handy for displaying information about all of the pages within a particular category. The order of the profiles within the guide can be updated dynamically as well, so that new or newly-updated content is listed at the top of the guide.
Percolate uses page categories and edit histories to display profiles in the appropriate guide. On the Grants IdeaLab, Percolate creates a basic profile for every page in the category . As new pages are added to that category, each one gets a basic profile. The full list of IdeaLab profiles is available on the all Ideas guide page. Idea pages that have additional categories (such as , which signals that the creator of the idea would like others to help) are listed on the participants wanted guide. Newly created ideas are listed in the new ideas guide.
Percolate can also curate guides of profiles created by people. IdeaLab participants create their own profiles, which are listed in the introductions guide. Percolate sorts these profiles so that the participants who have made the most recent edits to the Grants namespace appear at the top of the guide.
The gallery view is useful for surfacing content that you want to highlight on your project's main page. In a gallery view, profiles are featured in a persistent content window on a target page. Every time the cache of that page is cleared, a new featured profile from the gallery is displayed.
The feed view shows recent events on pages within your project's scope. Feed entries are short profiles listed in reverse chronological order, with the most recent entries at the top.
The Grants IdeaLab has a feed on the Ideas page that currently signals four types of events: when a new idea is created, when a new participant joins the IdeaLab, when an idea has been unusually active, and when an idea creator has recently asked for help with their idea.