Re: [Evolution-hackers] PATCH: Storing and fetching bodystructure, the patch
- From: Philip Van Hoof <spam pvanhoof be>
- To: evolution-hackers gnome org
- Subject: Re: [Evolution-hackers] PATCH: Storing and fetching bodystructure, the patch
- Date: Tue, 14 Jul 2009 18:31:49 +0200
I created a tracking bug for this:
http://bugzilla.gnome.org/show_bug.cgi?id=588557
On Tue, 2009-07-14 at 12:57 +0200, Philip Van Hoof wrote:
> I would like Evolution to store IMAP's bodystructure as often as
> possible. The reason for this is storing RDF graphs. Let me explain.
>
> I wrote a EPlugin for Evolution that is compiled and distributed by
> the
> Tracker project. This plugin fetches as much metadata about E-mails as
> possible and pushes it into Tracker's RDF store.
>
> Tracker's RDF store is a Nepomuk-ontology based RDF store that offers
> SPARQL as query language, and SPARQL Update as storage language.
>
> We have enhanced the Nepomuk message ontology so that it can store the
> entire structure of an E-mail. This means the structure that you can
> request using the BODY or BODYSTRUCTURE FETCH requests. These return
> you
> the MIME structure of the message in a pre-parsed skiplist format.
>
> Using this info our plugin can reconstruct the message's skeleton, but
> then in RDF as a graph.
>
> I don't just talk. I wrote the patch to do this too. It's attached.
>
> I tried to keep the changes small, and I implemented the migration
> code
> so that the tables' schemas will automatically be converted. The patch
> needs a good review, though. And testing.
>
> This is the point of the patch (a stored bodystructure string):
>
> sqlite> select bodystructure from 'INBOX/100' LIMIT 2;
> ("TEXT" "PLAIN" ("CHARSET" "ISO-8859-1") NIL NIL "8BIT" 2304 53 NIL
> NIL NIL NIL)
> ("TEXT" "PLAIN" NIL NIL NIL "7BIT" 3829 80 NIL NIL NIL NIL)
> sqlite>
>
> Note about adding BODYSTRUCTURE to the IMAP FETCH query that IMAP
> servers usually cache the body-structures. It wont slowdown an IMAP
> server, one that is worth being called "an IMAP server", much.
>
> It will add some bandwidth. But apparently isn't Evolution trying to
> save bandwidth, otherwise camel-imap-folder.c would use ENVELOPE
> instead
> of BODY.PEEK[HEADER.FIELDS(-a long list-)] (right?).
>
>
> Here are some pointers about things I just wrote:
>
> The Nemomuk message ontology
> http://git.gnome.org/cgit/tracker/tree/data/ontologies/34-nmo.ontology
>
> How we want this stuff in Tracker, how it could be used
> http://live.gnome.org/Tracker/Documentation/EmailSparql
>
> The Evolution plugin:
> http://git.gnome.org/cgit/tracker/tree/src/plugins/evolution/tracker-evolution-plugin.c
>
>
> Let me know!
>
--
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
http://pvanhoof.be/blog
http://codeminded.be
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]