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

Reply via email to