RFC822

> How did you get tabulator to do that?

there's not much to it, to steal a quote: not much of an email program. It doesn't receive messages (no POP or IMAP support). It doesn't send messages (no mail composer, no network code at all). And for what it does do (email search) that work is provided by an external library, Xapian (fs + grep). So if Notmuch provides no user interface and Xapian does all the heavy lifting, then what's left here? Not much. (RDF for a webserver to convert to HTML for a web client now , ! text for an Xterm)

what recieves messages? 
 running sendmail/postfix/exim directly
 fetching off another server with http://pyropus.ca/software/getmail/ http://offlineimap.org/ http://www.fetchmail.info/

what sends messages
 mailto: links. Mosaic -> Eudora should work. worked out of the box on Android, after entering a name/pw for a SMTP account

the rest is really boring, and probably a good webizing entry-level experiment, plugging together an email library with whatever means your chosen RDF library has for registering readers of MIME types. you'll probably want to start with ldphp, gold, or rww-play so you can experiment with selective-sharing of your archive via ACLs 

if you're the type that likes writing SPARQL, might want to check Tracker of GNOME, think it scans/imports messages into Virtuoso/Redland somehow

where should messages go? doesn't matter. but you must *view* them otherwise they're unknown - no background scanner

$HOME/.mail/`date +%Y/%m/%d` ought to do ( conf examples at http://src.whats-your.name/ww/conf/mail/ )

suppose you want to read http://m.whats-your.name/m/public-csv-wg@w3.org/ w/o 'viewing an inbox' triggered indexing -> simulate HEAD in sh or use Curl

what URLs contain incoming messages?

http://m.whats-your.name/today?view=threads redirects to the current daydir (an FTP practice) from there n/p key-shortcuts should change days or Link headers in HTTP or LDP page links in RDF or just sit back and Google will hit them
http://localhost/2014?set=page&c=32  groups of 32 crossing day boundaries but not jumping out of 2014 -> ln -s ~/.mail/2014 ~/www

indexing - realistically, SPARQL on SQLite is probably fine. i had no idea someone would come along and write awesome RDF libraries for Ruby 

so i'll rm -rf all files but 1 message (yep, an email system written by someone who doesn't really use email, just some light skims of all these mailing-lists)
 curl -I http://m/.mail/2014/05/09/msg.aLc.n3 -> 
200 http://m/.mail/2014/05/09/msg.aLc.n3 text/n3 */* curl/7.36.0 

nothing magical, just quads - a few documents didnt exist, so they were written (Ruby called a custom index function for this MIME

 ls -al m/jya@pipeline.com/2014/05/
lrwxrwxrwx 1 user user 74 May 15 12:29 m/jya@pipeline.com/2014/05/09.08:23:02.00.e -> /srv/http/msg/e96/E1WijpQ-0000vX-9M@elasmtp-curtail.atl.sa.earthlink.net.e

a message only contains outgoing links. what messages point to it though? that's what the index pass does. could just append to a turtle file of the message's RDF 

so threads can be found by recursively walking References (weak/indirect)+ In-Reply-To (direct) arcs 
http://m.whats-your.name/thread/53733D72.5080802@apache.org

this is a question - each thread now has multiple locations in URI space - maybe not a prob, but if you really only want one URI per thread i guess you could go nuts converting a graph into a tree with http://impressive.net/software/hurl/threading-wd.html or http://www.jwz.org/doc/threading.html and deriving your threadID from the root post or so - let me know if you do

symlinks are used on indexes for a reason - to avoid introduction of more URIs for a message, the server follows them before returning:

p ~ curl http://m.whats-your.name/m/andy@apache.org/2014/05.n3
<m/andy@apache.org/2014/05> a ldp:BasicContainer,
     ldp:Resource;
   sioc:has_container <m/andy@apache.org/2014>;
   ldp:contains <msg/727/etPan.53735645.2f305def.5e3e@jenit.local>,
     <m/andy@apache.org/2014/05/15.08:58:18.d3>, # this one showed up when changing ln_s to ln temporarily, for comparison
     <msg/426/5373A464.2040007@apache.org>,

grep has to be whitelisted, for DDOS paranoia reasons
 GREP_DIRS.push /^\/m\/[^\/]+\//  -> http://m.whats-your.name/m/hard-core-dx@hard-core-dx.com/?set=grep&view=grep&q=jamming

glob perhaps should be, if you expect really pathological users           http://m.whats-your.name/m/*.org*?set=glob

believe it or not NNTP is still in wide use on this server-farm so trn is definitely on the list to webize

Received on Thursday, 15 May 2014 13:09:00 UTC