Zeitgeist Hackfest, Monday
The Zeitgeist team and yours truly are in an energetic
hackfest
in Bolzano, Italy. We are busy cooking the future awesome.
Next door to our hacking room in the school, the
Sugar
people are having their own hackfest. Sugar
has a Journal similar to Zeitgeist's, so we need to
share ideas and if possible an implementation of the
journal-of-your-stuff.
We have three sub-teams within the hackfest: the
Zeitgeist engine, the Tracker metadata storage, and the
end-user GUI tools.
Zeitgeist engine
The core of Zeitgeist is a daemon that logs events that
get produced as you work on your computer. When you
open a file, that makes an event. When you view a web
page, that's an event. Having an IM conversation,
looking at a video, and playing music are all events.
Zeitgeist logs these events and provides an API to query
those events for useful purposes. The Journal, of
course, shows you a stream of your most recent events.
More sophisticated clients can ask the engine questions
like, "what applications have I launched within the past
week?", "what files have I used for the longest periods
of time within the last month?", "which web pages did I
visit while editing my-research-paper.odt?".
Seif Lotfy, Ivan Frade, Mikkel Kamstrup,
Alex Gabriel, Markus Korn, and
Siegfried Gevatter are working on the engine. They
are upgrading the format for the engine's database so
that it can support more efficient queries, redoing
the external API that clients can use through D-Bus to
make queries on the engine, integrating support for
Tracker as a metadata storage, and improving the contextual
relevancy engine. This last bit is the magic that
can tell you, "these are the documents/web
sites/etc. that you used together while working on a
certain project".
Tracker as a metadata storage
Zeitgeist would like to show you various useful things:
the tags that you have assigned to a file (School, Work,
Pr0n, Travel), the sources for email attachments or for
files that you downloaded from web sites, etc. All of
that is just metadata that needs to be stored
somewhere, and in some well-defined format.
Zeitgeist used to have a home-grown metadata repository,
but it will be using Tracker from now on. Tracker is
a metadata storage for RDF triplets. An
RDF triplet is a subject/verb/object chunk that
looks like "my-thesis.odt/has-tag/School", or
"lolcat.jpg/was-an-attachment-from/$email_id".
Those are just examples; the actual form of those
triplets is formalized in the Nepomuk
ontology.
Gnome Activity Journal
The Gnome
Activity Journal is a prototype implementation of the
journal idea
that I presented during GUADEC last year.
And they are closing the school right now, and
we have to leave, so I'll tell you more about all of
this tomorrow. Ta ta!