Hi, > Gremlin, based on my experience, is a barrier for many people who fall into > category 1 (and even 2 at times).
With TinkerPop3, I don't see that argument holding anymore. There has always been this notion in the zeitgeist that Gremlin is "hard to read." However, when Gremlin3 is compared to Cypher/SQL/SPARL, I don't see it anymore. Look at the "side-by-side" representations dispersed throughout https://news.ycombinator.com/item?id=10434372. With the match()/where()/select()-clauses in Gremlin3, the "SQL"-vibe is there and I don't see it as being all that complicated (of course I'm not the person to judge this), moreover, its more "embedded" in the language than either Cypher/SPARQL/SQL. For instance: SELECT ?x, ?y WHERE { ?x knows ?y . ?x name ?z . FILTER(?z == "marko" } } SELECT x,y FROM table WHERE x.knows.y AND x.name="marko" // shorthand MATCH (x)-[:knows]->(y) WHERE x.name = "marko" RETURN x,y g.V.has('name','marko').as('x').out('knows').as('y').select('x','y') With Gremlin you don't need this "external" WHERE/FILTER notion. Its part of the walk. Anywho…rambling… Marko. http://markorodriguez.com > > On Wed, Oct 28, 2015 at 9:51 AM, Alaa Mahmoud <[email protected]> wrote: > >> I was at GraphConnect last week and I attended a Cypher training session >> (just for the heck of it :-)) I was amazed how easy it was to pick up in a >> short amount of time. I believe Cypher's Match/Where/Return syntax is a >> good starting point for those coming from an RDBMS/SQL background and >> there's a lot of those. >> >> Implementing a Cypher driver could make it easier for those with SQL to >> move or at consider graph as a option. >> >> Regards >> Alaa >> >> On Tue, Oct 27, 2015 at 3:05 PM, Ran Magen <[email protected]> wrote: >> >>> Hey Marko, >>> >>> Gremlin is definitely the best over-all "GQL" around. That's why I think >>> that before we develop any language-driver, we need to ask ourselves if >>> there's are any use-cases in which that language would be a better choice >>> than gremlin. >>> >>> - SPARQL - Many people are familiar with SPARQL, so a driver would >> help >>> them easily get to work with a TP graph. >>> - GraphQL - QBE is a great definition. The cool thing about these >>> queries is that they're very "composable", which is perfect for a >>> composite >>> application in which you have deeply nested components, each >> specifying >>> its own sub-query (e.g. the standard practice in React UIs). Granted >>> gremlin is much more powerful, and I'd use it in almost all >>> applications, >>> but when building something like a React application, GraphQL could >>> come on >>> top. >>> - OpenCypher - While it's an over-all more "able" language than >> SPARQL & >>> GraphQL, I haven't seen any use-case in which it trumps gremlin. >> That's >>> why >>> IMO there is no point in implementing it. >>> >>> My 2 cents. >>> Cheers, >>> Ran >>> >>> >>> On Tue, 27 Oct 2015 at 02:37 Marko Rodriguez <[email protected]> >> wrote: >>> >>>> Hi Ran, >>>> >>>> Here are my thoughts on GraphQL now that I have learned more about it. >>>> >>>> 1. Matt Frantz and David Robinson nailed it -- its not really a >>>> "graph language." Its more a QBE (query by example -- first time I >> heard >>>> that was from Matt). >>>> - As such, do we want to support it in TinkerPop when >> we >>>> can do much more complex queries with the Gremlin machine? >>>> 2. I think we should try and get the GraphQL guys to implement >> a >>>> compiler for Gremlin VM. >>>> - You said it -- providers have to implement a server >> to >>>> execute it. Why not just implement graph.structure API and let the >>> Gremlin >>>> VM do the work for you. >>>> - Is this a Facebook thing? Perhaps someone can find >>> their >>>> repository and post a ticket and see where it goes. >>>> >>>> The one thing that GraphQL has going for it (like SPARQL) is the ease >> of >>>> the development/maintenance of the compiler. Cypher and SQL are going >> to >>> be >>>> insanely complex compilers to implement/maintain -- it will take >>> manpower. >>>> >>>> Marko. >>>> >>>> http://markorodriguez.com >>>> >>>> On Oct 26, 2015, at 11:49 AM, Ran Magen <[email protected]> wrote: >>>> >>>>> I'd be much more interested in GraphQL support. >>>>> The cool thing about GraphQL is that you can easily create a unified >>>> "graph >>>>> query" from different components in an application, while keeping the >>>>> separation between the components. It's a great feature for composite >>>> UIs (e.g. >>>>> React). >>>>> As I understand it, GraphQL is mostly a standard for graph queries, >> but >>>> the >>>>> user has to implement a server to actually execute the queries. And >>> what >>>>> better execution engine than the Gremlin VM? >>>>> >>>>> On Mon, 26 Oct 2015 at 15:17 Marko Rodriguez <[email protected]> >>>> wrote: >>>>> >>>>>> Hey, >>>>>> >>>>>> After reading Stephen's reply, I was like -- "huh, sure." I didn't >>>> really >>>>>> don't care one way or another until I just read this: >>>>>> >>>>>> http://neo4j.com/blog/open-cypher-sql-for-graphs/ >>>>>> >>>>>> Look at the tone and lies that Neo4j is portraying. >>>>>> >>>>>> * Marko Rodriguez as "just some buddy of Emil's." >>>>>> * Aurelius is some company. No, its called DataStax. >>>>>> * Not once is Apache TinkerPop discussed or referenced -- >> "just >>>>>> Marko and a band of merry 'graphistas'."?! >>>>>> * DataStax is NOT involved in their efforts for OpenCypher. >>>>>> >>>>>> The problem with Neo4j is they are corrupt. They use lies to control >>> the >>>>>> population. If we support Cypher in TinkerPop (like actively put it >>> into >>>>>> the repository as a distribution) we will see press releases like: >>>>>> >>>>>> * TinkerPop drops Gremlin in favor of Cypher. >>>>>> * TinkerPop realizes that Cypher is the superior language. >>>>>> * TinkerPop follows Neo4j in learning how to do graph >>> processing >>>>>> the right way. >>>>>> * etc. >>>>>> >>>>>> Its going to be a bunch malarky like that that I don't want >>> surrounding >>>>>> our project. It would behoove us to be smart about how we interact >>> with >>>>>> people like this as they will use every opportunity they can to >>> destroy >>>> our >>>>>> project to better their economic efforts. >>>>>> >>>>>> I don't do lies nor interact with people who use misinformation and >>>>>> deception to get "ahead," >>>>>> Marko. >>>>>> >>>>>> http://markorodriguez.com >>>>>> >>>>>> On Oct 26, 2015, at 4:35 AM, Stephen Mallette <[email protected] >>> >>>>>> wrote: >>>>>> >>>>>>> I'd be open to have cypher and sparql as first class citizens of >> The >>>>>>> TinkerPop. As I see it, there are two groups of graph users on the >>>> fringe >>>>>>> of TinkerPop and they live in the cypher world and in the RDF >> world. >>>>>>> Having both of these projects in TinkerPop would allow us to reach >>> both >>>>>> of >>>>>>> those communities. Doing so would help to expand usage and >>> potentially >>>>>>> attract more committers. >>>>>>> >>>>>>> On Fri, Oct 23, 2015 at 1:08 PM, Marko Rodriguez < >>> [email protected] >>>>> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> I (personally) am interested in getting another language into >>>>>> TinkerPop's >>>>>>>> distribution. I see an imbalance in the following table: >>>>>>>> >>>>>>>> TinkerGraph | Gremlin-Java8 >>>>>>>> Neo4j | Gremlin-Groovy >>>>>>>> Hadoop | NOTHING >>>>>>>> >>>>>>>> That is, we have 3 graph distributions, why not have 3 language >>>>>>>> distributions. Moreover, I don't want yet another Gremlin-JVMLang >>>>>> language >>>>>>>> as that doesn't showcase the virtual machine aspects of Gremlin as >>>> well >>>>>> as, >>>>>>>> for example: SPARQL-Gremlin or SQL-Gremlin. >>>>>>>> >>>>>>>> I (personally) am NOT interested in openCypher as the 3rd language >>>>>>>> distribution for the following 2 reasons: >>>>>>>> >>>>>>>> 1. It will be at least a year+ before it culminates into >>>>>> something. >>>>>>>> 2. It doesn't fold a different computing space into >> TinkerPop. >>>>>>>> >>>>>>>> To expand on #2, Hadoop is NOT typically seen as a graph system, >> but >>>>>> with >>>>>>>> TinkerPop, we have Hadoop serving as a graph engine. With SPARQL, >> we >>>>>> pull >>>>>>>> in the RDF guys (thats cool). With SQL, we pull in the world. I >>> sorta >>>>>>>> prefer SPARQL as its an easy language to handle (thanks in part to >>>>>> Apache >>>>>>>> Jena). With SQL we have Apache Calcite offering help, but SQL is >>>> nasty >>>>>>>> looking for graph queries and is just suuuuuch a beast of a >> language >>>>>> that >>>>>>>> it would need someone dedicated to its maintenance/evolution. >>>>>>>> >>>>>>>> Anywho -- thats what I think about another language in TinkerPop. >>> I'm >>>>>> pro >>>>>>>> SPARQL-Gremlin if it matures and people are excited about it. >>>>>>>> https://github.com/dkuppitz/sparql-gremlin >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Marko. >>>>>>>> >>>>>>>> http://markorodriguez.com >>>>>>>> >>>>>>>> On Oct 23, 2015, at 10:45 AM, pieter-gmail < >> [email protected] >>>> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Is a opencypher < >> http://neo4j.com/blog/open-cypher-sql-for-graphs/ >>>> >>>> -> >>>>>>>>> gremlin compiler something the tinkerpop team would consider >>>>>>>> implementing? >>>>>>>>> Perhaps, hopefully with help from neo4j themselves. >>>>>>>>> >>>>>>>>> Thanks >>>>>>>>> Pieter >>>>>>>> >>>>>>>> >>>>>> >>>>>> >>>> >>>> >>> >>
