Archive of RubyForge sup-devel mailing list
 help / color / mirror / Atom feed
* [sup-devel] email threading - tree vs. graph
@ 2010-02-18 11:49 W. Trevor King
  2010-02-21  6:38 ` Tero Tilus
  0 siblings, 1 reply; 13+ messages in thread
From: W. Trevor King @ 2010-02-18 11:49 UTC (permalink / raw)
  To: sup-devel


[-- Attachment #1.1: Type: text/plain, Size: 2523 bytes --]

Hey all,

I thought I'd ask this on sup-devel, since you guys have been thinking
about email organization and "a better mutt" sounds pretty awesome ;).
Sorry if it's too far off topic.

Since email can have multiple parents [1], why does everyone make
threads trees rather than directed, acyclic graphs (DAGs)?  DAGs seem
really common for version control systems, and completely missing for
email clients, even though the inheritence structure is identical.
For example, here's a slice from the recent be-devel list as a graph:
  ...............
  | *-|-\     | | Mon Jan 25  W. Trevor King  Re: Project releases
  | * | |     | | Sat Jan 23  Gianluca Montecchi  Re: Project releases
  | | | | t   | | Sat Jan 23  Gianluca Montecchi  Re: Project releases
  | *-|-|-|-\ | | Fri Jan 22  Ben Finney  Re: Project releases
  | | | * | | | | Fri Jan 22  W. Trevor King  Re: Project releases
  | | | *-/ | | | Thu Jan 21  Ben Finney  Re: Project releases
  | * | |   | | | Thu Jan 21  Gianluca Montecchi  Re: Project releases
  *-|-|-/   | | | Thu Jan 21  W. Trevor King  Re: Project releases
  ...............
         ^--- inheritence graph.
You can see that Ben's Fri message and my Mon message both have two
parents.

On a sup-specific level, problems with the graph (vs. tree) is that it
may make threads too 'sticky'.  With your thread-centric approach,
you'll want to break threads when the topic mutates too far from the
original, and that could be difficult for meshy-graphs.  Perhaps you
will want to leave the sup guts unchanged, tack on an optional graph
view, and add an 'other-parents' option when browsing from messages
with multiple parents.

On an implementation level, I've got the above graph browser going
in python/curses, so it should be easy to port to ruby/curses.

Thoughs?

Thanks,
Trevor


[1] RFC 2822, section 3.6.4, http://www.faqs.org/rfcs/rfc2822.html

  The "In-Reply-To:" field will contain the contents of the
  "Message-ID:" field of the message to which this one is a reply (the
  "parent message").  If there is more than one parent message, then
  the "In-Reply-To:" field will contain the contents of all of the
  parents' "Message-ID:" fields.

-- 
This email may be signed or encrypted with GPG (http://www.gnupg.org).
The GPG signature (if present) will be attached as 'signature.asc'.
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy

My public key is at http://www.physics.drexel.edu/~wking/pubkey.txt

[-- Attachment #1.2: Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 143 bytes --]

_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2010-06-03 10:31 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-18 11:49 [sup-devel] email threading - tree vs. graph W. Trevor King
2010-02-21  6:38 ` Tero Tilus
2010-02-21 13:42   ` W. Trevor King
2010-02-21 17:52     ` Nicolas Pouillard
2010-02-21 19:29       ` W. Trevor King
2010-02-22 14:00         ` Nicolas Pouillard
2010-02-22 15:54           ` W. Trevor King
2010-02-22 16:04             ` Nicolas Pouillard
2010-02-22 16:48   ` W. Trevor King
2010-02-23 10:29     ` Nicolas Pouillard
2010-05-25 18:50   ` W. Trevor King
2010-06-03  4:27     ` Rich Lane
2010-06-03 10:21       ` W. Trevor King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox