Awesome, yea let me know, would love to take a look. Much appreciated. On Wed, Oct 4, 2017 at 1:51 PM, Joshua Shinavier <[email protected]> wrote:
> Sure. I had hacked together a basic implementation, minus tests and a few > key methods, before I felt compelled to leave for work. Maybe I can put up > the code tonight or tomorrow morning. > > On Wed, Oct 4, 2017 at 10:44 AM, Jeffrey Freeman < > [email protected]> wrote: > > > I'd love to see that if its available somewhere. > > > > On Wed, Oct 4, 2017 at 12:56 PM, Joshua Shinavier <[email protected]> > > wrote: > > > > > That's probably a worthwhile exercise. FYI, I have gotten a start on a > > > minimal Redis-based impl -- not so much as a template as an example of > > what > > > can be done in a few lines of code. > > > > > > > > > On Wed, Oct 4, 2017 at 9:51 AM, Jeffrey Freeman < > > > [email protected]> wrote: > > > > > > > Thanks, ill try to take a stab at this and write a hello world i can > > use > > > as > > > > a template. If i do such a hello world would it be useful for you > guys. > > > > > > > > On Wed, Oct 4, 2017 at 11:37 AM, Marko Rodriguez < > [email protected] > > > > > > > wrote: > > > > > > > > > Hello, > > > > > > > > > > You have the following tasks: > > > > > > > > > > 1. Implement Graph, Vertex, Edge, VertexProperty, Property > > > > > interfaces. > > > > > 2. Implement Transactional interface (optional). > > > > > 3. Write as many strategies as you want to take advantage > of > > > > > provider-specific capabilities. > > > > > - TinkerGraph itself has 2: > > > > > https://github.com/apache/ > > > tinkerpop/tree/master/ > > > > > tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/ > > > > > gremlin/tinkergraph/process/traversal/strategy/optimization < > > > > > https://github.com/apache/tinkerpop/tree/master/ > > > > > tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/ > > > > > gremlin/tinkergraph/process/traversal/strategy/optimization> > > > > > > > > > > If you want a minimal “hello world,” then please look at > TinkerGraph > > > and > > > > > Neo4jGraph in our repository. Those are both “reference > > > implementations.” > > > > > > > > > > https://github.com/apache/tinkerpop/tree/master/ > > > > > tinkergraph-gremlin <https://github.com/apache/ > > tinkerpop/tree/master/ > > > > > tinkergraph-gremlin> > > > > > https://github.com/apache/tinkerpop/tree/master/neo4j- > > gremlin > > > < > > > > > https://github.com/apache/tinkerpop/tree/master/neo4j-gremlin> > > > > > > > > > > Good luck, > > > > > Marko. > > > > > > > > > > http://markorodriguez.com > > > > > > > > > > > > > > > > > > > > > On Oct 4, 2017, at 5:55 AM, Jeffrey Freeman < > > > > > [email protected]> wrote: > > > > > > > > > > > > Do you have any examples of what an absolute minimal hello world > > sort > > > > of > > > > > > graph implementation might look like? > > > > > > > > > > > > On Wed, Oct 4, 2017 at 12:51 AM, Joshua Shinavier < > > [email protected] > > > > > > > > > wrote: > > > > > > > > > > > >> Hi Jeffrey, > > > > > >> > > > > > >> I agree that simplicity and hackability were a big plus for > > > > TinkerPop2, > > > > > and > > > > > >> that these have taken a bit of a back seat, in TP3, to powerful > > but > > > > > >> heavyweight features like backend support for OLAP. The > > > > > stackable/pluggable > > > > > >> nature of graph implementations took a a hit, as the > OOP-friendly > > > > graph > > > > > >> interfaces (TransactionalGraph, KeyIndexableGraph, > IndexableGraph, > > > > etc.) > > > > > >> were replaced with the more nuanced GraphFeatures, traversal > > > > strategies, > > > > > >> etc. > > > > > >> > > > > > >> I wouldn't say that you have to "implement Gremlin" to implement > > an > > > > OLTP > > > > > >> graph, though. You get GraphTraversalSource for free. A summer > > > intern > > > > I > > > > > had > > > > > >> the pleasure of working with recently wrote a Graph > implementation > > > > (as a > > > > > >> wrapper for another, non-TP graph store) in 660 lines of code. > > It's > > > > not > > > > > so > > > > > >> hard that one would need to revert to TP2. With TP4 on the > > horizon, > > > it > > > > > >> might be worth making a list of "nice to have (again)"s. There > are > > > > some > > > > > >> features I would like to help to bring back, as well. > > > > > >> > > > > > >> Josh > > > > > >> > > > > > >> > > > > > >> > > > > > >> On Tue, Oct 3, 2017 at 5:49 PM, Jeffrey Freeman < > > > > > >> [email protected]> wrote: > > > > > >> > > > > > >>> Hi, Some of you may already know me as the author of Ferma. > This > > > > thread > > > > > >> is > > > > > >>> unrelated to that project, it will continue to support TP2 and > > TP3 > > > as > > > > > is. > > > > > >>> > > > > > >>> So here's the thing, I sued to use TP2 a lot as part of some > > > > > frameworks I > > > > > >>> was working on building (evolutionary algorithms, big data > > > > processing, > > > > > >>> extremely massive datasets, etc). One technique i was > leveraging > > is > > > > how > > > > > >>> easy it was for TP2 to support a backend system as a graph. I > > could > > > > > take > > > > > >>> almost any existing system completely unrelated to graph > > databases > > > > and > > > > > by > > > > > >>> simply implementing edges and vertex in blueprints in a few > > > minutes i > > > > > >> could > > > > > >>> have the entire TP2 ecosystem working on it and performing > > > > traversals. > > > > > >> Some > > > > > >>> examples of ways i leveraged this in TP2: > > > > > >>> > > > > > >>> Fusion Graph - A graph driver that allowed me to take two > > > completely > > > > > >>> different graph systems (say neo4j and titan) and fuse them so > > they > > > > > look > > > > > >>> like one graph. I could even connect edges from a vertex in > titan > > > > with > > > > > a > > > > > >>> vertex in neo4j. > > > > > >>> > > > > > >>> Recursive graphs - I could make it so edges could contain > > clusters > > > of > > > > > >> edges > > > > > >>> and vertexes could contain complete graphs embedded inside > them, > > > they > > > > > >> could > > > > > >>> even be defined by completely different underlying systems. > This > > > gave > > > > > me > > > > > >> a > > > > > >>> sort of hierarchical graph. > > > > > >>> > > > > > >>> Apache Storm graphs - I was able to encapsulate the topology > from > > > > > apache > > > > > >>> storm as a graph so one could perform traversals across a storm > > > > > topology > > > > > >> as > > > > > >>> it is running to produce statistics or to effect its behavior > > based > > > > on > > > > > >>> traffic or usage > > > > > >>> > > > > > >>> MapDB graphs - using MapDB as a graph backend or even a > > traditional > > > > > >>> database or any other storage system not usually seen a a > graph. > > > > > >>> > > > > > >>> The list is really endless. But the problem I'm facing with TP3 > > is > > > > that > > > > > >> it > > > > > >>> is no longer trivial to implement a Graph. Now you have to > pretty > > > > much > > > > > >>> implement Gremlin for your graph and countless other methods. I > > get > > > > why > > > > > >>> this is done, from a performance standpoint if your going to > view > > > > > gremlin > > > > > >>> as a query language for graph databases it is needed. But what > i > > > need > > > > > is > > > > > >>> some middle ground where I can still implement a Graph as easy > > as i > > > > > could > > > > > >>> in TP2 even if the end result is rather poor performance on the > > > > gremlin > > > > > >>> queries (which can be optimized later in some cases as the > > > > development > > > > > >>> matures). > > > > > >>> > > > > > >>> As far as i can tell this just isnt possible in TP3, correct me > > if > > > im > > > > > >> wrong > > > > > >>> because I'd love to use it for these use cases. If that turns > out > > > to > > > > be > > > > > >>> true and no one here has any better ideas (which id very much > > > > welcome) > > > > > my > > > > > >>> next resort would be to revive TP2, fork it as a new project > > under > > > a > > > > > new > > > > > >>> name, and continue to maintain it as a solution that addresses > > some > > > > of > > > > > >>> these needs. i welcome any ideas or inputs from the community > on > > > this > > > > > for > > > > > >>> me. > > > > > >>> > > > > > >> > > > > > > > > > > > > > > > > > > > >
