Cool ideas. My $0.02:
+1 to API-level support for ranking. Btw. the "weighted iterator"
interface I have been pushing for in Blueprints could be used both for
full text query results and for ranking results. That's a little
different than a Map<Vertex,Double> in that you can't easily look up
the ranking of any particular vertex (element). On the other hand,
it's better suited to lazy evaluation via query pipelines.
+1 to DerivedGraph / virtual graphs. I'm not sure this even needs to
be a single class or interface; it's more of a concept which can be
realized in different ways. For example, we could create a
PageRankGraph as an implementation of Graph, which is constructed with
a pipeline argument and a property name (e.g. "pagerank") and is
layered on top of any other Graph. It would behave identically to
that Graph except that when you look up a PageRank value by calling
v.getProperty("pagerank") on one of its vertices, you would trigger
the ranking operation (if the Graph has changed since the last lookup.
Otherwise you would just retrieve the latest computed value for that
vertex). The "pagerank" properties could either be materialized in
the underlying Graph or stored separately, e.g. in a persistent hash
map or just in memory.
Maybe PageRankGraph would extend an abstract class which applies
ranking algorithms to a graph and provides the results as properties.
However, there could be other kinds of derived graphs which actually
add or subtract vertices and edges (such as virtual subgraphs).
At the same time, I think a case can be made for a new TinkerPop
project (or maybe just a new Blueprints module....
blueprints-algorithms?) with efficient implementations of ranking
algorithms that can be applied to large graphs.
Dunno which of the above becomes Furnace... ?
Best,
Josh
Russell Jurney
twitter.com/rjurney
russell...@gmail.com
datasyndrome.com
--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.