Archive of RubyForge sup-devel mailing list
 help / color / mirror / Atom feed
From: "W. Trevor King" <wking@drexel.edu>
To: sup-devel@rubyforge.org
Subject: [sup-devel] email threading - tree vs. graph
Date: Thu, 18 Feb 2010 06:49:44 -0500	[thread overview]
Message-ID: <20100218114943.GB911@mjolnir> (raw)


[-- 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

             reply	other threads:[~2010-02-18 12:03 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-18 11:49 W. Trevor King [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100218114943.GB911@mjolnir \
    --to=wking@drexel.edu \
    --cc=sup-devel@rubyforge.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox