GitHub user spmallette opened a pull request: https://github.com/apache/tinkerpop/pull/902
TINKERPOP-1878 sparql-gremlin https://issues.apache.org/jira/browse/TINKERPOP-1878 I think this is ready for review. As an engine it stands on its own pretty well as our first compiler. Still needs GLV support but personally I don't think that's a massive problem for getting this onto 3.4.0 - if we had to release without GLV support I think we could do so. We do need a pattern for sorting out additional traversal sources in GLVs anyway and I think that's too different a body of work to place in front of this. VOTE +1 You can merge this pull request into a Git repository by running: $ git pull https://github.com/apache/tinkerpop TINKERPOP-1878 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/tinkerpop/pull/902.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #902 ---- commit c4244ce47387fbe45e7ce26915a5ba418fc30725 Author: harsh9t <harsh9t@...> Date: 2018-01-18T00:33:29Z Initial commit for sparql-gremlin changes commit b0f8a612c5026421e3f67311e039afcce0f64964 Author: Stephen Mallette <spmva@...> Date: 2018-01-24T20:23:57Z TINKERPOP-1878 sparql-gremlin is now building Fixed some basic pom.xml issues and resolved dependency conflicts. commit eadb8b947823878748b09b27e2e5f06a7379ecc2 Author: Stephen Mallette <spmva@...> Date: 2018-01-24T22:04:27Z TINKERPOP-1878 Added some Traversal infrastructure This is the start of getting Sparql working as a DSL in TinkerPop commit c9401171ccf923661295f4c7feddb7df94925d66 Author: Stephen Mallette <spmva@...> Date: 2018-01-25T19:46:31Z TINKERPOP-1878 Added a basics for sparql execution in a traversal commit ad8bba6097782f35d9ad7e626ed23e364532a7b1 Author: Stephen Mallette <spmva@...> Date: 2018-01-25T19:49:18Z TINKERPOP-1878 Dropped the console app This allows TinkerGraph to remain a test dependency only and the console app was more of a test rig than something that a user of this library would use, so it seemed like something that could be dropped. commit 48ae8aa2bd5db3f8a060f11bab8bf5d848d12c27 Author: Stephen Mallette <spmva@...> Date: 2018-01-25T20:36:53Z TINKERPOP-1878 Minor javadoc and code cleanup commit 7171f37de7f2ffe501e907b7fc922aaf31263a51 Author: Stephen Mallette <spmva@...> Date: 2018-01-25T22:00:54Z TINKERPOP-1878 sparql() step works over remoting At this point it is only tested to work with Gryo 3.0. Fixed a bug with how dynamic gryo registrations work - they failed if you didn't have a specific serializer specified. Introduced a bit of a hack to make SparqlTraversalSource behave like a GraphTraversalSource and thus more cleanly follow the DSL pattern. Not sure if that's a great approach yet or not, but it seems harmless at this point. commit 492db1839f1743128fea4e027bb0c2b6e7898004 Author: Stephen Mallette <spmva@...> Date: 2018-01-25T22:09:17Z TINKERPOP-1878 Updates to changelog and code comments commit 3bf92605e42c62c566e8062ebc0207a6d9adafe5 Author: Stephen Mallette <spmva@...> Date: 2018-01-26T13:10:48Z TINKERPOP-1878 Test cleanup for sparql-gremlin commit 3f1b7bf1bb03b34901650e62b7f95021cc88da31 Author: Stephen Mallette <spmva@...> Date: 2018-01-26T13:16:24Z TINKERPOP-1878 Changed gryo version of SparqlStrategy Was using some temporary nonsense before... commit fe14b3cbe0b6663b34a4379da90507a1acf41ff7 Author: Stephen Mallette <spmva@...> Date: 2018-01-26T14:39:28Z TINKERPOP-1878 General refactoring and javadoc on Prefixes class commit 456cdcfce5a0397d08a079c7e145e7233e7f6de9 Author: Stephen Mallette <spmva@...> Date: 2018-01-26T18:36:29Z TINKERPOP-1878 Major refactoring of sparql-gremlin classes Renamed the "compiler" to a "transpiler" since it's really transforming sparql to a language of a similar level of abstraction in Gremlin. Lots of code reformatting and dead code pruning. commit 87ccf5833e84cc490d2aa94d3eac472f4a4288ab Author: Stephen Mallette <spmva@...> Date: 2018-01-26T20:41:10Z TINKERPOP-1878 Added a test for ordering and corrected some problems in logic Ordering didn't work - at least not completely. The test, as it is written in this commit, that failed to sort properly. Changed the logic for ordering to track all of the keys specified to ORDER with their appropriate ASC/DESC operators and added all of them to the traversal. commit 81526247d63564e7054068989426d9e38d2cfd02 Author: Stephen Mallette <spmva@...> Date: 2018-01-26T20:56:55Z TINKERPOP-1878 More tests for ordering Factored the order index creation into its own method to tidy up a bit. commit fceea4319a4eb834995562c31e4c2f83c6c2dbe4 Author: Stephen Mallette <spmva@...> Date: 2018-01-26T21:03:49Z TINKERPOP-1878 Code reformatting - bad spacing/tabs or something commit 35f5fc52d5d1cd96f3137caf1bf21323ac384c95 Author: Stephen Mallette <spmva@...> Date: 2018-01-26T21:29:55Z TINKERPOP-1878 Test for FILTER Also fixed how the SparqlStrategy was being added to the TraversalStrategies in SparqlTraversalSource...it was adding it globally and all spawned TraversalSource instances were getting that strategy. commit 960b0455e4d320a600dae9642ca371abacc12ddd Author: Stephen Mallette <spmva@...> Date: 2018-01-26T21:56:14Z TINKERPOP-1878 Testing for DISTINCT Refactoring around the distinct and ordering - much less code there now. commit 37f4df31f7f20af15d80e5efe952e5442d3e2d7d Author: Stephen Mallette <spmva@...> Date: 2018-01-29T14:09:07Z TINKERPOP-1878 Added a test for GROUP commit a816dec72b4d0c1b2cc7c8882e9df8e3bdc44650 Author: Stephen Mallette <spmva@...> Date: 2018-01-29T14:37:15Z TINKERPOP-1878 Added the plugin for sparql-gremlin commit 8e6acf43d0bb5cf6ae7e546d40cb5422f8d17f53 Author: Stephen Mallette <spmva@...> Date: 2018-01-29T16:04:23Z TINKERPOP-1878 Added basic docs for sparql-gremlin commit 8e60e914402a1190726ea281550a46e31f28541a Author: Harsh Thakkar <harsh9t@...> Date: 2018-03-28T08:29:43Z testing logo commit 781bfdca4659510792cd2991b3595cbe99a682c8 Author: Harsh Thakkar <harsh9t@...> Date: 2018-03-28T15:27:32Z updating the reference documentation added the following: - fix the logo - added prefixes - added limitations - added examples todo: - cover all limitations and special cases with examples commit 9d153af999298d546bb6feacfc08be1038c4d50e Author: Stephen Mallette <spmva@...> Date: 2018-04-03T14:52:17Z TINKERPOP-1878 Fixed up formatting of traspiler section There were some examples that didn't return results or generated errors. These will need some review. commit 5c82aa1d7629bfd3d64fd76257fe19c848c67ebb Author: Stephen Mallette <spmva@...> Date: 2018-05-13T14:53:56Z TINKERPOP-1878 Clean up docs a bit more. commit 8732c6b5505646ab8d22902176c2afe20f4e7d17 Author: Stephen Mallette <spmva@...> Date: 2018-05-13T15:02:26Z TINKERPOP-1878 Fixed up formatting of sparql-gremlin image commit 4fc2b0de9bce26cde30efc93e5b26e8fc396789a Author: Stephen Mallette <spmva@...> Date: 2018-05-13T15:07:10Z TINKERPOP-1878 Bump sparql-gremlin to 3.4.0-SNAPSHOT commit c322416e27712df797c566622f6272fef2d63565 Author: Harsh Thakkar <harsh9t@...> Date: 2018-06-15T09:24:57Z Update transpilers.asciidoc Changes: - fixed non-working queries (queries which returned no results) - updated documentation with more examples in the limitations section - updated execution tags for queries which are for reference only - commented out the pattern filter examples for now To Do: - fix OPTIONAL queries - fix Pattern filter queries - inspect and patch special cases in code commit c5b3c4c534c4223f23d980cd13a81a7ebcc3e415 Author: Stephen Mallette <spmva@...> Date: 2018-06-15T12:16:03Z TINKERPOP-1878 Minor transpiler doc fixes commit 55c991b2d87d5a1676cec1cae190eefbd17ea9a3 Author: Stephen Mallette <spmva@...> Date: 2018-06-20T11:25:17Z TINKERPOP-1878 Renamed "transpiler" to "compiler" Since we're converting to Gremlin bytecode it's really compiling and not transpiling (as in converting to other source code) commit 4a08ffc98d29c43ef7f2ec58e10f7ed08a5ff57d Author: Harsh Thakkar <harsh9t@...> Date: 2018-08-01T09:14:54Z Update SparqlToGremlinCompiler.java adding an updated file with SPARQL OPTIONAL clause: - added optional - added left-join with optional ---- ---