At last year's Akademy the vision of the Social Desktop was born and first presented to a larger audience. The concept behind the Social Desktop is to bring the power of online communities and group collaboration to desktop applications and the desktop shell itself. One of the strongest assets of the Free Software community is its worldwide community of contributors and users who belief in free software and who work hard to bring the software and solutions to the mainstream. You can find more of this conceptual background on Frank Karlitschek's slides from his keynote at Akademy 2008.

A core idea of the Social Desktop is connecting to your peers in the community, making sharing and exchanging knowledge easier to integrate into applications and the desktop itself. One of the ideas Frank addressed was to place a widget on the desktop where users can find other KDE users in the same city or region, making it possible to connect to these people, to contact them and to collaborate.

If a user is starting KDE for the first time he has questions. At the moment a lot of the support for KDE users is provided through forums and mailinglists. Users have to start up a browser and search for answers for their questions or problems. The community is relatively loosely connected, it is spread all over the web, and it is often hard to verify the usefulness and accuracy of the information found somewhere out on the web. Although is works relatively well for experienced users, beginners often get lost.

Access to a lot of user-generated information offers a great way to provide online community support. This user-generated content comes from openDesktop.org right now and there is work going on integrating the KDE Forum as knowledge Base as well, so people can help each other via the web, and application developers transparently integrate this knowledge into applications and the desktop.

Open Collaboration Services

OpenDesktop.org is a reference implementation of the Open Collaboration Services (OCS) API. Open Collaboration Services API allows to exchange data relevant to the Social Network between the site and clients, such as other websites and applications or widgets running locally on the user's machine or mobile device. These services are:

Person allows to retrieve data sets of other people

allows to retrieve data sets of other people Friend is used for handling friendship relations between people. It can be used for retrieval of your own friends and those of others, to invite persons as a friend and manage these invitations

is used for handling friendship relations between people. It can be used for retrieval of your own friends and those of others, to invite persons as a friend and manage these invitations Message is used for exchanging messages with other users

is used for exchanging messages with other users Activity provides a record of activities, such as adding content. It's basically "What is going on in my social network?"

provides a record of activities, such as adding content. It's basically "What is going on in my social network?" Content includes listing and getting for example themes and wallpapers, content that is shared on the site

includes listing and getting for example themes and wallpapers, content that is shared on the site Knowledge Base offers a way to get help about a specific topic. This can be used to integrate community support into applications

openDesktop.org is also the combined portal to KDE-Look.org and KDE-Apps.org. openDesktop is an online social network, including content sharing. You can upload and download new wallpapers, themes, but also other content for application, such as dictionaries, and of course new Plasma widgets. Purchase of offering of content will be enabled in openDesktop in the future, so app store functionality can be integrated as well.

Start of a KDE implementation

During the openSuse hack-week, Cornelius Schumacher has written a small library and a test application to interact with openDesktop.org. This OCS client libary wraps the webservice calls and XML handling into a Qt/KDE style API. The library is built to be used asynchronous, so the interaction on the network which can cause delays. This helps keeping applications that are using the network responsive.

Sebastian Kügler has been working on integrating Open Collaboration Services into Plasma by writing a dataengine and a basic applet. Plasma applets use this dataengine to visualise data, the dataengine makes it easy to query for this data, also from applets written in JavaScript, Python and Ruby and other languages.

A screencast shows how the mechanism is used in Plasma.





Ogg/Theora Version

The openDesktop Plasmoid is a first basic applet using these services on the desktop. As an applet, it sits on your desktop or dashboard and displays information related to your friends. It also allows you to find people in your vicinity. The applet using a geolocation Plasma service to find out the current location and queries people near this location through OCS. The plasmoid displays those people and allows getting in contact with them, currently in a very basic way by pointing the web browser to the right page. The dataengine and the applet aim at being released with KDE 4.3 this summer in a release early, release often fashion for people to play with the technology and give feedback for further improvements.

Ideas

We invite people to work with us on the community integration of the social desktop. There are many ideas, often not hard to implement, as they can also be written in JavaScript, Python and Ruby using Plasma's strong scripting capabilities.

Show what my KDE friends are doing at the moment - People love to see what is going on in their KDE friends network, did they post a new entry on their weblog? Where are they hanging out?

More examples are

A friend of mine posted a new blog entry

A friend of mine uploaded a new application or wallpaper on KDE-Look.org

A friend of mine is going to the Linux User Group meeting tomorrow.

There is an update for an application I am fan of.

A friend of mine committed a new feature in the KDE SVN

Someone was on my profile page and offered me a KDE related job

A friend of mine is now a fan of "Amarok"

Another interesting area of research is using the Semantic Desktop's concepts to build this network. According to Richard Dale, FOAF (Friend-of-a-Friend) is an interesting ontology to investigate, others are SIOC for blogging info,

SCOT for tags that are connected to semantic web ontologies, rather then just being names and DOAP as description of a project.

Using data from Akonadi to support the dataset on the social desktop, and the other way round seems like another candidate, updating the location of a contact in Akonadi based on the data from the OCS service seems like an obvious candidate for a nice improvement. In general, there are very strong connections between the local address book and people you interact with on social web services.

The ground work for an online knowledge database has already been laid by Marco Martin. He added support for Knowledge Base to the ocs dataengine, writing an applet on top of it is now relatively easy. It would be great to have a plasmoid where users can directly query an online knowledge base system. For bonus points, add support for posting questions.

So join the fun and help us putting the community into the applications and the desktop. You can find us on the Social Desktop mailing list.

Pointers