[linux-l] Wohin mit den alten Mails? -> +sent

olafBuddenhagen at gmx.net olafBuddenhagen at gmx.net
Do Feb 15 08:56:56 CET 2007


Hallo,

On Tue, Feb 13, 2007 at 02:21:19PM +0100, Oliver Bandel wrote:

> > Interessanter wird es, wenn zum beispiel auf der BeLUG-Listen eine
> > SWPat-Diskussion aufkommt. Dann hat sie schon automatisch das
> > BeLUG-Tag, aber ich kann ihr dann manuell auch noch das SWPat-Tag
> > vergeben, so dass sie auch neben den Mails von den FFII-Listen
> > erscheint. Sehr praktisch.
> 
> Man könnte auch nach Worten einen Index aufbauen und alle Mails
> automatisch auf Keywords checken. Sind Keywords gefunden worden, kann
> man dadraus einen entsprechenden Tag generieren

Bin nicht sicher was Du genau meinst. Willst Du nach festen
Schlüsselwörtern Tags vergeben? Das scheint mir erstens sehr
unzuverlässig, und zweitens sehe ich dabei keinen Vorteil gegenüber der
Eingabe von Schlüsselwörtern erst bei der eigentlichen Suche...

Was man hingegen machen könnte, wäre über Textähnlichkeitsanalyse (Bayes
oder so) automatisch Tags zu vergeben, statt oder ergänzend zu den
festen Regeln.

(Tatsächlich ist einer der Gründe, wieso ich mich bisher zu keiner
Mailsortierung überwinden konnte, dass ich zu faul bin manuell Regeln
festzulegen... Allerdings sind praktisch alle verbreiteten
Bayes-Lösungen nur für eine stupide Spam-oder-nicht Klassifizierung
ausgelegt -- für automatische Sortierung in mehrere Kategorien gibt's
kaum was :-( )

> Das ganze Problem, das man hier hat ist eines, für das man ja wohl
> Datnbanken entworfen hat. Für sehr große Datenbestände mag es evtl.
> sinnvoller sein, einen mbox2sql zu schreiben und man füttert das dann
> alles in ein RDBMS ein

Habe ich auch schon überlegt. Allerdings haben "echte" SQL-Datenbanken
den erheblichen Nachteil, dass die Daten darin sehr viel schwieriger
zugänglich sind als Daten, die direkt in einfachen Text-Dateien (mbox)
und/oder Dateisystem-Strukturen (maildir) abgelegt sind.

Unter Hurd könne man das zwar abmildern, indem man mit einem Translator
die Daten transparent als Verzeichnisstruktur darstellt, obwohl sie
intern in einer SQL-Datenbank ablegt sind. (Mit neueren Linux-Versionen
könnte das dank FUSE vielleicht auch gehen; weiß nicht wie gut das für
sowas geeignet ist...)

Besser wäre es aber, wenn das eigentliche Dateisystem von sich aus mit
komplexen Verzeichnisstrukturen effizienter umgehen könnte. Ich denke
der Weg mit maildir ist prinzipiell schon richtig; ist nur eben sehr
ineffizient bei klassischen Dateisystemen :-(

> und macht dann irgendwas wie ein
> 
>  select body from mails where tag = 'Ubuntu";
> 
> oder sowas.
> 
> (Mag sein, das da oben im Beipiel entspricht nicht korrekter
> SQL-Syntaxa aber ich mache ja SQL auch nicht jeden Tag. Aber sinngemäß
> sowas da.)

Syntax ist korrekt, bis auf das offensichtlich falsche Anführgszeichen
am Ende. Semantisch ist das aber trotzdem falsch: Damit hätte man nur
ein Tag pro Mail, hätte also perfekt an der eigentlichen Zielstellung
vorbeiimplementiert ;-)

Eher sowas wie:

   SELECT body FROM mails WHERE EXISTS (SELECT * FROM mail_has_tag WHERE
   mail_id=mails.id AND tag_id=(SELECT id FROM tags WHERE
   name='Ubuntu'));

Oder ohne Subqueries:

   SELECT body FROM mails INNER JOIN mail_has_tag
   ON(mail_has_tag.mail_id=mails.id) INNER JOIN tags
   ON(tags.id=mail_has_tag.tag_id) WHERE tags.name='Ubuntu';

-Olaf-



Mehr Informationen über die Mailingliste linux-l