anchor.diff:  ----
   
   In query languages like link:https://en.wikipedia.org/wiki/SQL[SQL], the user must construct a string representation of
  -their query and submit it to the database for evaluation. This is because SQL cannot be expressed in Java as they use fundamentally
  -different constructs in their expression. The same example above is presented below using SQL and the
  +their query and submit it to the database for evaluation. This is because SQL cannot be expressed in Java as they use
  +fundamentally different constructs in their expression. The same example above is presented below using SQL and the
   link:https://en.wikipedia.org/wiki/Java_Database_Connectivity[JDBC] interface. The take home point is that Gremlin does
   not exist outside the programming language in which it will be used. Gremlin was designed to be able to be
   embedded in any modern programming language and thus, always free from the complexities of string manipulation as seen
  
positive.code: 
  ==== Traversal Wrappers
  
  While it is possible to simply interact with Java classes in a `ScriptEngine` implementation, such Gremlin language variants
  will not leverage the unique features of the host language. It is for this reason that JVM-based language variants such as
  link:https://github.com/mpollmeier/gremlin-scala[Gremlin-Scala] were developed. Scala provides many syntax niceties not
  available in Java. To leverage these niceties, Gremlin-Scala "wraps" `GraphTraversal` in order to provide Scala-idiomatic extensions.
  Another example is Apache TinkerPop's Gremlin-Groovy which does the same via the
  link:http://tinkerpop.apache.org/docs/x.y.z/reference/#sugar-plugin[Sugar plugin], but uses
  link:http://groovy-lang.org/metaprogramming.html[meta-programming] instead of object wrapping, where "behind the scenes,"
  Groovy meta-programming is doing object wrapping.
  
  The Jython example below uses Python meta-programming to add functionality to `GraphTraversal`.
  In particular, the `__getitem__` and `__getattr__` "magic methods" are leveraged.
  
  [source,python]
  ----
  
negative.code: ----
  
  When the above Groovy script is evaluated (e.g. in GremlinConsole), **Gremlin-Python** is born. The generated Python
  file is similar to the one available at
  link:https://github.com/apache/tinkerpop/blob/x.y.z/gremlin-python/src/main/jython/gremlin_python/process/graph_traversal.py[graph_traversal.py].
  It is important to note that there is a bit more to Gremlin-Python in that there also exists Python implementations
  of `TraversalStrategies`, `Traversal`, `Bytecode`, etc. Please review the full implementation of Gremlin-Python
  link:https://github.com/apache/tinkerpop/tree/x.y.z/gremlin-python/src/main/jython/gremlin_python[here].
  
  NOTE: In practice, TinkerPop uses the Groovy's `GStringTemplateEngine` to help with the code generation task described
  above and automates that generation as part of the standard build with Maven using the `gmavenplus-plugin`. See the
  