Introduction
"Open source software is creating a global software space, with dependencies between projects, is meshing software from many different sources. But we are not meshing the data about the software''
Henry Story
In the framework of the European project NEPOMUK, Mandriva has designed Mephisto, a mesh of people, hardware and software data.
Mephisto harnesses the Semantic Web principles for improving community based software engineering, by enabling developers and users to:
- draw links between various bug entries (typically between an issue filed in Mandriva Bugzilla with the upstream entry), discussions (emails, forum threads, blogs etc.), various Web resources or even local files.
- describe precisely important discussion, bug or Web resource (tutorials, FAQ, applications) with a dedicated vocabulary ("ontology" in the Semantic Web terminology) so that searching into the whole set of Linux distributions related resources becomes much more efficient.
- link their private information sphere with the public one, with the goal of an improved learning and issue solving process.
A typical scenario illustrating the interest of Mephisto is depicted on the scenario page of this wiki.
Architecture
Mephisto comprises of the following items:
- a domain vocabulary: LIDO, Linux Data Ontology,
- an RDF database server,
- a client for KDE, dubbed Swimpomuk
- a social query service for sharing local annotations with others.
LIDO
The Linux Data Ontology inspirational sources include the Bug Ontology Model – designed by the distributed information systems research group at the University of Zurich –, Baetle – designed by Henry Story –, and the data models of common bug management systems such as Bugzilla, JIRA and others. LIDO covers more specifically the Linux software and hardware domains. LIDO enables users to describe the relations between an issue and the related problematic hardware or software, other similar issues, the context of the issue, the software packages involved in the problem etc. LINO ontology is Trig format from the Mephisto SVN: .
Mephisto RDF server
The Mephisto server is a shared metadata repository used for storing statements relating to bugs, help desk resources, software packages and other public material. The Mephisto server is implemented on top of the NEPOMUK RDF API and uses the open-source Virtuoso RDF database as its backend. It is initially feeded by the results of SWIM extractors which extract metadata associated with bugs, hardware databases, software databases and forum entries,
The Mephisto server provides a Web user interface implemented as a set of Groovy scripts. The Web UI gives access to the following services: search service, annotation service, annotation display, query service, and semantic graph browsing.
Swimpomuk
Swimpomuk is a KDE4 client for the Mephisto server as well as the local system. It allows to annotate Web pages -- especially forum posts and bug reports -- with different types of data. As outlined in the scenario page, one can draw links between pages, link a page to a specific software or hardware, pages can be tagged, or linked to local files. The created information is stored in the local NEPOMUK system and can optionally be uploaded to the SWIM server. Swimpomuk consists of two main components: a Konqueror sidebar and a small system tray application called Bugger which proposes information on newly plugged in devices such as scanners, digital cameras etc.
NEPOMUK social query service
In addition to its annotation and search capabilities, SWIM makes it possible to issue distributed search queries across a newtork of trusted peers. This feature relies on the NEPOMUK Social Query Daemon server that is embeded into Soprano.
Running the NEPOMUK social query component allows other users in the local network to query the NEPOMUK store. The system relies on a local service providing read-only access to the annotations' repository over an HTTP interface which is published via the zeroconf protocol. Other NEPOMUK users in the local network can then use the social query client to run queries on the remote repositories. The query engine is the same also used for local desktop search. Due to the possible security risk that the daemon poses, it is not started automatically. It has to be started manually which can be done with the following command:
qdbus org.kde.NepomukServer /servicemanager org.kde.nepomuk.ServiceManager.startService nsqd
Links
- An introduction to RDF/semantic technology from S. Trüg : http://www.kdedevelopers.org/node/3276 .
- NEPOMUK Web site
- NEPOMUK-KDE Web site
- Mephisto @ Mandriva


