[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sup-devel] email threading - tree vs. graph



W. Trevor King, 2010-02-18 13:49:
> Since email can have multiple parents [1], why does everyone make
> threads trees rather than directed, acyclic graphs (DAGs)?

Trees are easier to render and multi-parent messages are a rare
exception, not the rule.  Heck, many widely used mailclients are
totally missing the option to reply to many messages at once.

> DAGs seem really common for version control systems, and completely
> missing for email clients, even though the inheritence structure is
> identical.

Failing to visually present merges would be far more fundamental
failure than failing to present multi-parent mails.

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

Honestly.  That took fair bit of staring and prolly wouldn't have
opened to me without your explanation.  :) But that might only be due
to the external noise in the graph.  Without those extra through-lines
it looks a bit more readable.

 .........
 | *-\     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
 .........

> On a sup-specific level, problems with the graph (vs. tree) is that
> it may make threads too 'sticky'.

I can't really see how this would lump significantly more mail into
one thread.  Do you have examples of otherwise disconnected trees
connected only by multi-parent mail?

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

Topic-mutation happens within a tree as well.  And pruning (boy I've
wanted to do that quite a few times, I notice) afaik essentially
requires scanning (and potentially modifying) all the messages in the
thread.  Technically I don't see how this is very different.
"Politically" it however could be.  If your mail graph is one big lump
of spaghetti, it might be difficult to decide where to cut it off.  ;)

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

Have a pointer to code?

I would love to see sup being able to do something usefull with
multiple parent messages.

-- 
Tero Tilus ## 050 3635 235 ## http://tero.tilus.net/
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel