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