That looks great, especially how it relates to loom. Thanks!

cheers,
Bruce

On Thu, Jun 22, 2017 at 9:56 AM, Mark Engelberg
<mark.engelb...@gmail.com> wrote:
> https://github.com/Engelberg/ubergraph
>
> Ubergraph is a batteries-loaded, immutable graph data structure for Clojure.
>
> Version 0.4.0 includes improved support for serialization/deserialization of
> ubergraphs.
> https://github.com/Engelberg/ubergraph#serialization
>
> Ubergraph has now been in use for over two years, and has no open bug
> reports in github.
>
> Given that Loom is Clojure's other main graph library, many people are
> interested in how Ubergraph and Loom compare.
>
> Broadly speaking, Ubergraph is a superset of Loom that fulfills Loom's
> protocols offering several features and algorithms beyond what Loom
> supports:
>
> * Multigraphs and multidigraphs with parallel edges, i.e., multiple edges
> between the same pair of nodes in the same direction.
> * Multiple weights per edge (as opposed to one "privileged" weight
> attribute).
> * Weights that are modifiable after initialization (in the immutable sense
> of producing a new graph structure with modified weights).
> * Mixtures of directed and undirected edges in the same graph.
> * The ability to distinguish between an undirected edge and an opposing pair
> of directed edges.
> * The ability to traverse all a graph's edges while guaranteeing that
> undirected edges are visited only once.
>
> Because Ubergraph implements Loom protocols, Ubergraph can typically be used
> as a drop-in replacement for Loom graphs.  For the most part, Loom's graph
> algorithms work on ubergraphs, and Ubergraph's graph algorithms work on loom
> graphs.  There are some exceptions to this, because in some cases, the
> implementation of Loom's algorithms were not carefully implemented to rely
> only on Loom's protocol abstractions, but were hard-coded to specific
> aspects of Loom's concrete implementation.  And since Loom wasn't written
> with multigraphs in mind, some of Loom's algorithms don't work properly on
> multigraphs.
>
> Ubergraph's algorithm namespace contains a curated collection of algorithms
> from Loom known to work properly on ubergraph's more general data structure,
> improved versions of several critical algorithms from Loom, and
> reimplementations of several key algorithms from Loom known to be broken on
> multigraphs.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to