Hi,
> Very cool!
>
> I assume there is some way to provide a vendor-specific implementation for
> MatchStep?
Yes. TinkerPop3 is all about allowing "providers" (for Apache non-profit legal
reasons, we can't use the term "vendor") to inspect the Traversal at execution
time by registering "TraversalStrategies."
http://tinkerpop.incubator.apache.org/docs/3.0.2-incubating/#traversalstrategy
- see "vendor optimization" (it will be called "provider
optimization" in 3.1.0 where we did the renaming).
There are two things a provider can do:
1. Rewrite the traversal as they deem fit while maintaining the
semantics of the traversal.
2. Replace steps in the traversal with provider specific optimization.
- this is how providers are able to leverage indices (for
example).
HTH,
Marko.
http://markorodriguez.com
>
> On Fri, Oct 30, 2015 at 7:35 AM, Marko Rodriguez <[email protected]>
> wrote:
>
>> Hello,
>>
>> *** Just want to work to dispel the "Gremlin isn't declarative"-myth that
>> doesn't seem to die :).
>>
>>> My 2 cents - Tinkerpop is a great API that makes graph application
>>> development much easier, but the lack of a declarative query language is
>> a
>>> barrier to making those applications scale. I strongly prefer to develop
>>> application code using Tinkerpop over raw RDF or Sesame, but once the
>> data
>>> is there I prefer to access and update it via SPARQL.
>>
>> Gremlin3 support declarative pattern matching much like SPARQL. In fact,
>> internal benchmarks have shown that Gremlin3's query optimizer is equal or
>> more efficient than some vendors native declarative query language.
>>
>> http://tinkerpop.incubator.apache.org/docs/3.0.2-incubating/#match-step
>> Moreover, realize that these same queries compile to work over any OLAP
>> graph processor such as Apache Giraph or Spark. Thus, you can do
>> declarative pattern matching over an arbitrarily large cluster.
>>
>> http://www.slideshare.net/slidarko/acm-dbpl-keynote-the-graph-traversal-machine-and-language/131
>> Finally, scroll through to slide 136. The Gremlin virtual machines is a
>> distributed virtual machine and any language that compiles to Gremlin's
>> instruction set automatically executes on the cluster. E.g., compile SPARQL
>> to Gremlin's instruction set and TADA! Distributed SPARQL.
>>
>> Thanks,
>> Marko.
>>
>> http://markorodriguez.com