Future of GNOME: Semantics


I don't have a blog at Planet GNOME, but would like to comment on some
of the discussions going on these days about the future of the GNOME
product anyway, so I'm taking the liberty of making such a post here
instead. I also am no hacker - just a mere power-user who dreams in N3
notation. Feel free to ignore.

DISCLAIMER: The Semantic Web will not end world hunger. The Semantic Web
is one of those celebrity technologies that a lot of people love to
hate: it's the pet project of Tim Berners-Lee himself (correction: _Sir_
Tim Berners-Lee), has been the-next-big-thing for nearly as long as Duke
Nukem Forever has been under development and has received approximately
as many media hours of hyberbole. Irregardless, the Semantic Web does in
my humble opinion have indeniable technical merits. I would like to show
those unfamiliar with the technology how these merits could perhaps form
the basis for a cohesive vision for the next-generation GNOME desktop.

With that out of the way, lets get to the point.

Almost every post discussing the future of GNOME (short of those dealing
strictly with development infrastructure) advocate some form of
integration: integration of applications (seamless interoperability),
integration of user mental models (people as first-class objects,
task-centricism), integration of the Web, integration of devices such as
smartphones and so on.

>From a development perspective, the common denominator for all this
integration is 'abstraction'. If you wish to integrate two otherwise
disparate systems, you must first establish an abstract model which fit
both systems.

In information science there is a formal name for such a model - it's
called an
'ontology' (http://en.wikipedia.org/wiki/Ontology_(computer_science)).
An ontology describes a set of concepts and how they relate to each
other. The nature of ontologies has been thoroughly studied and over the
last decade the W3C, which also created such standards as HTML and XML,
has released a number of standards pertaining specifically to the
application of ontologies on the Web and in personal computing.

Here comes our champion: the Resource Description Framework (RDF) is a
standard that "provide a lightweight ontology system to support the
exchange of knowledge on the Web." (http://www.w3.org/RDF/)

A large number of ontologies has already been specified with RDF and its
companion standards, notably RDF Schema and OWL. Dublin Core, for
instance, is widely used to describe digital materials such as video,
sound, image, text, and composite media like web pages. The RSS (1.x)
feed format is another well-known example of an RDF ontology (or,
strictly speaking, a so-called vocabulary)

Ontologies can be thought of as a model for representation of
information, somewhat like the model used for encoding in a traditional
file format, but unlike formats such as, say, vCard (file format
standard for electronic business cards), which are defined in natural
language specifications, RDF ontologies are partially defined in a
machine-processable language such as RDF Schema.

RDF derives a number of powerful features from this approach, such as
the possibility to map similar ontologies into each other, standardized
checks on data integrity, advanced logical inferencing etc. I won't go
into specifics here, but it's all quite nifty, and data is more portable
due to the use of a universal URI-based namespace.

Now, the idea is that if we model all of the aforementioned abstractions
(applications, mental models, smart devices etc.) in RDF, GNOME can take
advantage of the same features in a single unified framework which,
incidentally, is also compatible with the Semantic Web (a very likely
'next step' for the current Web). Let Steve Ballmer have fun installing
service packs to his Windows Vista PC. Personal computing with the free
desktop (GNOME/KDE) will be one, integrated experience, in any sphere of
life (home, office, on the phone, on the Web etc.).

Such goes the vision, but how do we implement it? As you will see, the
above already indicates the standards which could be relied upon (RDF)
and several tools for development with RDF are already available (the
Raptor RDF/XML parser, for instance, which supports libxml).

Some may scoff at the idea of RDF somehow 'blessing' applications with
next-big-thingness, but merely adopting RDF formats as standard for data
representation within GNOME (i.e. for contact information, document
metadata etc.) would in fact, in my opinion, help a lot because this is
where the rest of the world (including KDE) is moving anyway (albeit
slowly). Integrating RDF at a fundamental level of the system and its
development practices would help even more.

There is still plenty of room for discussion of how and if something
like this could be pulled off. I opened
http://live.gnome.org/SemanticDesktop (a work-in-progress) as a place to
investigate these things a few weeks ago. Anyone interested is
encouraged to contribute.

I'm also working informally with Sebastian Trüg (Mandriva) of
NEPOMUK-KDE on a slightly more elaborate idea at:
http://live.gnome.org/AndersFeder/SemanticSpace (highly volatile)

Thanks for reading - feedback is appreciated.

Best regards,
Anders Feder

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]