> I don't want to bore you with a sales pitch, Definitely not boring by any means. I think we all like to hear what folks are using TinkerPop for. We really don't get a ton of feedback from folks - I suppose that is the nature of open source software. I think it's possible that having the "Powered By" section would help encourage folks to share.
On Fri, Mar 17, 2017 at 2:25 PM, Paul A. Jackson <[email protected]> wrote: > Hi Stephen, > > I agree with the short-comings of our web site. What can I say in a public > forum? I will continue to suggest improvements and I am confident the > changes are in the works and there's no need for me to keep bringing it up > every month or so. > > I don't want to bore you with a sales pitch, but in terms of what we do > with Gremlin and what we add..... > > Between Gremlin and Neo4j, we have our own graph API. It's how we both > protect against vendor lockin as well as add value. > > On top of Gremlin we have a graphical query builder that exposes a subset > of the query language - options for starting step that expose all kinds of > fuzzy matching, traversals steps with various conditions, options for > allowing circular and/or partial traversals, and (cool part) a way to map > each step in the query to a path in a tree, which makes integration with > our ETL dataflow nice and easy. Of course you can drop down to the actual > Gremlin that it generates and edit it using any of the Gremlin (OLTP) > features. > > Our integration between Gremlin and Neo4j is cool. The current > Neo-provided driver supports labels and table scans and that's it. In > addition to supporting equals, and, or, within, gt/lt/gte/lte/between, we > added some of our own BiPredicates to support startsWith, endsWith, > contains, wildcard, and fuzzy, and support combining multiple has() steps > with multiple properties and generating a Lucene Query that we pass to > Neo's legacy indexing. Much more powerful than even Cypher for matching > initial starting nodes. > > Like what you described with Grakn.ai, we also have our own NLP-like (or > Facebook Graph Search inspired) search, where a user can type a query > (assisted by auto-complete) like: "Actor name Arnold Schwarzenegger ActedIn > Film ActedIn Actor name Contains Ventura" (real query), which generates > this Gremlin: > if (data['name'] == null) return [] > graph.traversal(). > V().has('name', data['name']).has('_stp_type', > within('Actor')).as('Actor/Actor'). > outE('ActedIn').simplePath().as('Actor/ActorToActedIn/ > ActorToActedIn'). > inV().has('_stp_type', within('Film')).simplePath(). > as('Actor/ActorToActedIn/ActedInToFilm/ActedInToFilm'). > inE('ActedIn').simplePath().as('Actor/ActorToActedIn/ > ActedInToFilm/FilmToActedIn/FilmToActedIn'). > outV().has('_stp_type', within('Actor')).filter{it. > get().property('name').orElse(null) != null && it.get().property('name'). > orElse(null).toString().toUpperCase().contains(String. > valueOf(data['name2']).toUpperCase())}.simplePath(). > as('Actor/ActorToActedIn/ActedInToFilm/FilmToActedIn/ > ActedInToActor/ActedInToActor'). > select('Actor/Actor','Actor/ActorToActedIn/ActorToActedIn' > ,'Actor/ActorToActedIn/ActedInToFilm/ActedInToFilm','Actor/ActorToActedIn/ > ActedInToFilm/FilmToActedIn/FilmToActedIn','Actor/ > ActorToActedIn/ActedInToFilm/FilmToActedIn/ActedInToActor/ActedInToActor') > > ...and brings back Arnold Schwarzenegger->ActedIn->Running > Man<-ActedIn<-Jesse Ventura and Arnold Schwarzenegger->ActedIn-> Predator > <-ActedIn<-Jesse Ventura. This query can be saved and parameterized > allowing the names be passed into a web service as arguments and returning > movies that any two actors acted in. (All with clicks, no code.) (All those > slashes in the as() steps are how we indicate how to map the output to a > hierarchical list of maps.) > > There's other cool stuffs that has less to do with Gremlin like security, > federation (augmenting a graph with "virtual" JDBC data, in a way that > looks like one big graph to the Gremlin user), graph history, ETL steps for > import, update, read, query, split, merge, etc. Blah, blah, blah. > > Anywho, yeah, our web site sucks. > > -Paul > > -----Original Message----- > From: Stephen Mallette [mailto:[email protected]] > Sent: Friday, March 17, 2017 1:18 PM > To: [email protected] > Subject: Re: Requirements for listing as a vendor > > Hi Paul, Grakn seems different from your case, at least based on what I've > understood of your product. Grakn actually has the Graql language which > compiles down to the Gremlin. It is an interesting level of integration and > promotes the idea of the Gremlin Virtual Machine in a very public way. As I > understand your product, it seems like you've built an application that > uses TinkerPop, but doesn't expand it with additional libraries/tooling > that would qualify it as a "Provider". I'm pretty sure that all "Providers" > thus far would fit that definition though the visualization providers > might be a bit on the edge there of that definition (are they really > "Powered By" > now that we're talking about it?). Not sure if that makes any sense as a > distinction or if that's our definition for our distinction as this is > "new" but it's what's on my mind as one right now. > > You mentioned your web site not being developer driven - still might be > nice if it mentioned something about it using "Apache TinkerPop" as a core > component of what it does. I don't think I saw that anywhere. If we were to > use our Provider Policy as a guide for Powered By then I think having such > a mention there would likely be a requirement for listing on the TinkerPop > site. Not sure how others feel about that, but again just throwing ideas > out there as we develop this. > > On Fri, Mar 17, 2017 at 12:41 PM, Paul A. Jackson <[email protected]> > wrote: > > > This sounds great. > > > > At the same time, though, I was looking at other providers and judging > > from architecture diagrams (eg. > > https://grakn.ai/pages/documentation/the- > > fundamentals/grakn-architecture.html) some look similar to ours. > > > > It may be the case that our web site is directed more towards business > > types than developers, is available through direct sales only, etc, > > rather than architectural differences? > > > > -Paul > > > > > > -----Original Message----- > > From: Marko Rodriguez [mailto:[email protected]] > > Sent: Thursday, March 16, 2017 4:13 PM > > To: [email protected] > > Subject: Re: Requirements for listing as a vendor > > > > I say we add a “Powered By” section to the website and list > > “leveraging systems” as I wouldn’t call this a “TinkerPop Provider” > > like I would a more “low level” graph database system…. > > > > If we open up “Powered By” it would allow us to show people the types > > of products, projects, nick nacks and doo dads that are out there > > leveraging TinkerPizzzop. > > > > Marko. > > > > > > > On Mar 16, 2017, at 1:56 PM, Paul A. Jackson <[email protected]> > > wrote: > > > > > > I agree that the last bullet is not met. We bundle the Tinkerpop > > > stack, > > so the idea of version compatibility doesn't make sense. Instead, we > > offer a platform that builds an ecosystem around the graph (ETL, fuzzy > > matching, rich analysis client, etc). One feature is graph query. The > > users can supply their own Gremlin queries, or they can use our > > graphical query builder, which generates Gremlin. > > > > > > Anywho, what do you think? I concur we do not fit in the provider > > bucket. But we have been around for 5 years. The offering is pretty > > mature at this point. > > > > > > -Paul > > > > > > > > > > > > -----Original Message----- > > > From: Robert Dale [mailto:[email protected]] > > > Sent: Thursday, March 16, 2017 1:50 PM > > > To: [email protected] > > > Subject: Re: Requirements for listing as a vendor > > > > > > You should start here: http://tinkerpop.apache.org/policy.html > > > > > > It's not obvious to me that the last 3 bullets are met. > > > > > > Robert Dale > > > > > > On Thu, Mar 16, 2017 at 12:56 PM, Paul A. Jackson > > > <[email protected]> > > > wrote: > > > > > >> Hi, > > >> > > >> What are the requirements for being lists as a Gremlin provider? We > > >> (Pitney Bowes) have an integrated product offering called Spectrum > > >> Data Hub (you'll also see it listed as part of the Spectrum MDM > > >> solution). The product is its own application server and we embed > > >> Gremlin on top of embedded Neo4j using our own "blueprints" adapter. > > >> So, access to the graph is from our own apps, rather that via a > > >> Gremlin > > console or server. > > >> > > >> I don't know if this makes us a special case or not. Can you let us > > >> know if we qualify and/or if there's anything we would need to do so? > > >> > > >> Here's a link to the product literature: > > >> http://www.pitneybowes.com/us/ > > >> customer-information-management/data-integration- > > >> management/spectrum-data-hub-module.html > > >> > > >> Thanks, > > >> -Paul > > >> > > >> ________________________________ > > >> > > >> > > > > > > ________________________________ > > > > > > > > > ________________________________ > > > > > > ________________________________ > >
