anchor.diff:  link:http://thinkaurelius.com/2013/02/04/polyglot-persistence-and-query-with-gremlin/[quite enjoyable].
   
   WARNING: Take care if using a `Graph` implementation that supports
  -link:http://tinkerpop.apache.org/docs/x.y.z/#transactions[transactions]. As TinkerGraph does not, there is
  +link:http://tinkerpop.apache.org/docs/x.y.z/reference/#transactions[transactions]. As TinkerGraph does not, there is
   no need to `commit()`.  If your `Graph` does support transactions, intermediate commits during load will need to be
   applied.
   
   To load larger data sets you should read about the
  -link:http://tinkerpop.apache.org/docs/x.y.z/#bulkloadervertexprogram[BulkLoaderVertexProgram] (BLVP), which
  +link:http://tinkerpop.apache.org/docs/x.y.z/reference/#bulkloadervertexprogram[BulkLoaderVertexProgram] (BLVP), which
   provides a generalized method for loading graphs of virtually any size.
   
   Gremlin Server
   ~~~~~~~~~~~~~~
   
  -image:gremlin-server-protocol.png[width=325,float=right] link:http://tinkerpop.apache.org/docs/x.y.z/#gremlin-server[Gremlin Server]
  +image:gremlin-server-protocol.png[width=325,float=right] link:http://tinkerpop.apache.org/docs/x.y.z/reference/#gremlin-server[Gremlin Server]
   provides a way to remotely execute Gremlin scripts against one or more `Graph` instances hosted within it. It does
  -this by exposing different endpoints, such as link:http://tinkerpop.apache.org/docs/x.y.z/#_connecting_via_rest[REST]
  -and link:http://tinkerpop.apache.org/docs/x.y.z/#_connecting_via_java[websockets], which allow a request
  +this by exposing different endpoints, such as link:http://tinkerpop.apache.org/docs/x.y.z/reference/#_connecting_via_rest[REST]
  +and link:http://tinkerpop.apache.org/docs/x.y.z/reference/#_connecting_via_java[websockets], which allow a request
   containing a Gremlin script to be processed with results returned.
   
   [source,text]
  
positive.code: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
  Now that Gremlin knows where the graph data is, you can ask him to get you some data from it by doing a traversal,
  which you can think of as executing some link:http://tinkerpop.apache.org/docs/x.y.z/#_the_graph_process[process]
  over the structure of the graph. We can form our question in English and then translate it to Gremlin. For this
  initial example, let's ask Gremlin: "What software has Marko created?"
  
  
negative.code: 
  The English-based steps above largely translate to Gremlin's position in the graph and to the steps we need to take
  to ask him to answer our question. By stringing these steps together, we form a `Traversal` or the sequence of programmatic
  link:http://tinkerpop.apache.org/docs/x.y.z/reference/#graph-traversal-steps[steps] Gremlin needs to perform
  in order to get you an answer.
  
  Let's start with finding "marko". This operation is a filtering step as it searches the full set of vertices to match
  those that have the "name" property value of "marko". This can be done with the
  link:http://tinkerpop.apache.org/docs/x.y.z/reference/#has-step[has()] step as follows:
  
  [gremlin-groovy,modern]
  ----
  