You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/02/16 19:29:42 UTC

incubator-tinkerpop git commit: added grateful dead schema to docs.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master 1885300d7 -> 347eb9a82


added grateful dead schema to docs.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/347eb9a8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/347eb9a8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/347eb9a8

Branch: refs/heads/master
Commit: 347eb9a8231c48aa22eced9b07dd6241305898c6
Parents: 1885300
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Mon Feb 16 11:29:41 2015 -0700
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Mon Feb 16 11:29:41 2015 -0700

----------------------------------------------------------------------
 docs/src/the-graphcomputer.asciidoc         |  15 +-
 docs/src/the-traversal.asciidoc             |   4 +
 docs/static/images/grateful-dead-schema.png | Bin 0 -> 65600 bytes
 docs/static/images/tinkerpop3.graffle       | 699 ++++++++++++++++++++---
 4 files changed, 637 insertions(+), 81 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/347eb9a8/docs/src/the-graphcomputer.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/the-graphcomputer.asciidoc b/docs/src/the-graphcomputer.asciidoc
index cbf6338..da15219 100644
--- a/docs/src/the-graphcomputer.asciidoc
+++ b/docs/src/the-graphcomputer.asciidoc
@@ -298,7 +298,7 @@ The `PeerPressureVertexProgram` is a clustering algorithm that assigns a nominal
 TraversalVertexProgram
 ~~~~~~~~~~~~~~~~~~~~~~
 
-image:traversal-vertex-program.png[width=250,float=left] The `TraversalVertexProgram` is a "special" VertexProgram in that it can be executed via `GraphTraversal.submit()` and the submit `:>` command in <<gremlin-console,Gremlin Console>>. In Gremlin, it is possible to have the same traversal executed using either the standard OTLP-engine or the `GraphComputer` OLAP-engine. The difference being where the traversal is submitted.
+image:traversal-vertex-program.png[width=250,float=left] The `TraversalVertexProgram` is a "special" VertexProgram in that it can be executed via `GraphTraversal` and the submit `:>` command in <<gremlin-console,Gremlin Console>>. In Gremlin, it is possible to have the same traversal executed using either the standard OTLP-engine or the `GraphComputer` OLAP-engine. The difference being where the traversal is submitted.
 
 NOTE: This model of graph traversal in a BSP system was first implemented by the link:http://faunus.thinkaurelius.com[Faunus] graph analytics engine and originally described in link:http://markorodriguez.com/2011/04/19/local-and-distributed-traversal-engines/[Local and Distributed Traversal Engines].
 
@@ -306,7 +306,8 @@ NOTE: This model of graph traversal in a BSP system was first implemented by the
 ----
 g = TinkerFactory.createModern()
 g.V().both().hasLabel('person').values('age').groupCount().next() // OLTP
-g.V().both().hasLabel('person').values('age').groupCount().submit(g.compute()).next() // OLAP
+g.engine(ComputerTraversalEngine.instance())
+g.V().both().hasLabel('person').values('age').groupCount().next() // OLAP
 ----
 
 In the OLAP example above, a `TraversalVertexProgram` is (logically) sent to each vertex in the graph. Each instance evaluation requires (logically) 5 BSP iterations and each iteration is interpreted as such:
@@ -321,16 +322,6 @@ While 5 iterations were presented, in fact, `TraversalVertexProgram` will execut
 
 When the computation is complete a <<mapreduce,MapReduce>> job executes which aggregates all the `groupCount()` sideEffect Map (i.e. "`HashMap`") objects on each vertex into a single local representation (thus, turning the distributed Map representation into a local Map representation).
 
-The same OLAP traversal can be executed using the standard `g.compute()` model, though at the expense of verbosity. `TraversalVertexProgram` provides a fluent `Builder` for constructing a `TraversalVertexProgram`. The specified `traversal()` can be either a `Supplier<Traversal>` object, a `Supplier<Traversal>` class, or a link:http://en.wikipedia.org/wiki/Scripting_for_the_Java_Platform[JSR-223] script that will generate (i.e. supply) a `Traversal`. If `traversal()` is supplied a single string, it is assumed that "gremlin-groovy" is the `ScriptEngine` to use. If two strings are supplied, then the first string denotes the `ScriptEngine` to evaluate the second string script with in order to generate (i.e. supply) the `Traversal`.
-
-[gremlin-groovy,modern]
-----
-result = g.compute().program(TraversalVertexProgram.build().traversal("org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph.open().V().both().hasLabel('person').values('age').groupCount('a')").create()).submit().get()
-result.memory().a
-result.memory().iteration
-result.memory().runtime
-----
-
 [[distributed-gremlin-gotchas]]
 Distributed Gremlin Gotchas
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/347eb9a8/docs/src/the-traversal.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/the-traversal.asciidoc b/docs/src/the-traversal.asciidoc
index 24f2c4d..c8a0c8b 100644
--- a/docs/src/the-traversal.asciidoc
+++ b/docs/src/the-traversal.asciidoc
@@ -669,6 +669,10 @@ g.V().match('a',
         __.as('b').in('created').has('age', 29).as('c')).select('a','c').by('name')
 ----
 
+[[grateful-dead]]
+.Grateful Dead
+image::grateful-dead-schema.png[width=475]
+
 MatchStep brings functionality similar to link:http://en.wikipedia.org/wiki/SPARQL[SPARQL] to Gremlin. Like SPARQL, MatchStep conjoins a set of patterns applied to a graph.  For example, the following traversal finds exactly those songs which Jerry Garcia has both sung and written (using the Grateful Dead graph distributed in the `data/` directory):  
 
 [gremlin-groovy]

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/347eb9a8/docs/static/images/grateful-dead-schema.png
----------------------------------------------------------------------
diff --git a/docs/static/images/grateful-dead-schema.png b/docs/static/images/grateful-dead-schema.png
new file mode 100644
index 0000000..890ae42
Binary files /dev/null and b/docs/static/images/grateful-dead-schema.png differ

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/347eb9a8/docs/static/images/tinkerpop3.graffle
----------------------------------------------------------------------
diff --git a/docs/static/images/tinkerpop3.graffle b/docs/static/images/tinkerpop3.graffle
index 55dbdc7..1c42daa 100644
--- a/docs/static/images/tinkerpop3.graffle
+++ b/docs/static/images/tinkerpop3.graffle
@@ -148438,7 +148438,7 @@
 	<key>MasterSheets</key>
 	<array/>
 	<key>ModificationDate</key>
-	<string>2015-02-12 20:19:50 +0000</string>
+	<string>2015-02-16 18:16:35 +0000</string>
 	<key>Modifier</key>
 	<string>Marko Rodriguez</string>
 	<key>NotesVisible</key>
@@ -188862,6 +188862,562 @@ age:29}</string>
 			<key>GraphicsList</key>
 			<array>
 				<dict>
+					<key>Bounds</key>
+					<string>{{340.25003051757812, 431}, {89.749969482421875, 27}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>65</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>CornerRadius</key>
+							<real>5</real>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 weight:&lt;Long&gt;}</string>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{341.25003051757812, 415}, {59, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>64</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 followedBy}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>Class</key>
+					<string>LineGraphic</string>
+					<key>Head</key>
+					<dict>
+						<key>ID</key>
+						<integer>41</integer>
+					</dict>
+					<key>ID</key>
+					<integer>63</integer>
+					<key>Points</key>
+					<array>
+						<string>{302, 408}</string>
+						<string>{337, 408}</string>
+						<string>{337, 456}</string>
+						<string>{273, 456}</string>
+						<string>{272.69270805088888, 426.49997288533075}</string>
+					</array>
+					<key>Style</key>
+					<dict>
+						<key>stroke</key>
+						<dict>
+							<key>HeadArrow</key>
+							<string>FilledArrow</string>
+							<key>Legacy</key>
+							<true/>
+							<key>TailArrow</key>
+							<string>0</string>
+							<key>Width</key>
+							<real>2</real>
+						</dict>
+					</dict>
+					<key>Tail</key>
+					<dict>
+						<key>ID</key>
+						<integer>41</integer>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{152.74996948242188, 414}, {50, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>62</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 writtenBy}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{157.24996376037598, 370.5}, {41, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>61</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 sungBy}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>Class</key>
+					<string>LineGraphic</string>
+					<key>Head</key>
+					<dict>
+						<key>ID</key>
+						<integer>28</integer>
+					</dict>
+					<key>ID</key>
+					<integer>60</integer>
+					<key>Points</key>
+					<array>
+						<string>{243.0290464900317, 418.50902218184916}</string>
+						<string>{208, 431}</string>
+						<string>{155, 431}</string>
+						<string>{110.47746904105969, 417.16191605330232}</string>
+					</array>
+					<key>Style</key>
+					<dict>
+						<key>stroke</key>
+						<dict>
+							<key>HeadArrow</key>
+							<string>FilledArrow</string>
+							<key>Legacy</key>
+							<true/>
+							<key>TailArrow</key>
+							<string>0</string>
+							<key>Width</key>
+							<real>2</real>
+						</dict>
+					</dict>
+					<key>Tail</key>
+					<dict>
+						<key>ID</key>
+						<integer>41</integer>
+					</dict>
+				</dict>
+				<dict>
+					<key>Class</key>
+					<string>LineGraphic</string>
+					<key>Head</key>
+					<dict>
+						<key>ID</key>
+						<integer>28</integer>
+					</dict>
+					<key>ID</key>
+					<integer>59</integer>
+					<key>Points</key>
+					<array>
+						<string>{243.01949978307675, 399.51640281527392}</string>
+						<string>{203, 388}</string>
+						<string>{155, 388}</string>
+						<string>{110.48268169591309, 400.03170764975323}</string>
+					</array>
+					<key>Style</key>
+					<dict>
+						<key>stroke</key>
+						<dict>
+							<key>HeadArrow</key>
+							<string>FilledArrow</string>
+							<key>Legacy</key>
+							<true/>
+							<key>TailArrow</key>
+							<string>0</string>
+							<key>Width</key>
+							<real>2</real>
+						</dict>
+					</dict>
+					<key>Tail</key>
+					<dict>
+						<key>ID</key>
+						<integer>41</integer>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{228, 338}, {139, 50}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>42</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>CornerRadius</key>
+							<real>5</real>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Align</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
+
+\f0\fs24 \cf0 name:&lt;String&gt;\
+songType:&lt;String&gt;\
+performances:&lt;Integer&gt;}</string>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{243.5, 390}, {58, 36}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FontInfo</key>
+					<dict>
+						<key>Font</key>
+						<string>Helvetica</string>
+						<key>Size</key>
+						<real>12</real>
+					</dict>
+					<key>ID</key>
+					<integer>41</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Color</key>
+							<dict>
+								<key>b</key>
+								<string>0.994293</string>
+								<key>g</key>
+								<string>0.853217</string>
+								<key>r</key>
+								<string>0.622309</string>
+							</dict>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>CornerRadius</key>
+							<real>5</real>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Song}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{52, 390}, {58, 36}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FontInfo</key>
+					<dict>
+						<key>Font</key>
+						<string>Helvetica</string>
+						<key>Size</key>
+						<real>12</real>
+					</dict>
+					<key>ID</key>
+					<integer>28</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Color</key>
+							<dict>
+								<key>b</key>
+								<string>0.994293</string>
+								<key>g</key>
+								<string>0.853217</string>
+								<key>r</key>
+								<string>0.622309</string>
+							</dict>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>CornerRadius</key>
+							<real>5</real>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Artist}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{33, 361}, {96, 27}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>34</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>CornerRadius</key>
+							<real>5</real>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 name:&lt;String&gt;}</string>
+					</dict>
+				</dict>
+			</array>
+			<key>GridInfo</key>
+			<dict/>
+			<key>HPages</key>
+			<integer>1</integer>
+			<key>KeepToScale</key>
+			<false/>
+			<key>Layers</key>
+			<array>
+				<dict>
+					<key>Lock</key>
+					<string>NO</string>
+					<key>Name</key>
+					<string>Layer 1</string>
+					<key>Print</key>
+					<string>YES</string>
+					<key>View</key>
+					<string>YES</string>
+				</dict>
+			</array>
+			<key>LayoutInfo</key>
+			<dict>
+				<key>Animate</key>
+				<string>NO</string>
+				<key>circoMinDist</key>
+				<real>18</real>
+				<key>circoSeparation</key>
+				<real>0.0</real>
+				<key>layoutEngine</key>
+				<string>dot</string>
+				<key>neatoSeparation</key>
+				<real>0.0</real>
+				<key>twopiSeparation</key>
+				<real>0.0</real>
+			</dict>
+			<key>Orientation</key>
+			<integer>2</integer>
+			<key>PrintOnePage</key>
+			<false/>
+			<key>RowAlign</key>
+			<integer>1</integer>
+			<key>RowSpacing</key>
+			<real>36</real>
+			<key>SheetTitle</key>
+			<string>grateful-dead-schema</string>
+			<key>UniqueID</key>
+			<integer>70</integer>
+			<key>VPages</key>
+			<integer>1</integer>
+		</dict>
+		<dict>
+			<key>ActiveLayerIndex</key>
+			<integer>0</integer>
+			<key>AutoAdjust</key>
+			<true/>
+			<key>BackgroundGraphic</key>
+			<dict>
+				<key>Bounds</key>
+				<string>{{0, 0}, {576.00000953674316, 733}}</string>
+				<key>Class</key>
+				<string>SolidGraphic</string>
+				<key>ID</key>
+				<integer>2</integer>
+				<key>Style</key>
+				<dict>
+					<key>shadow</key>
+					<dict>
+						<key>Draws</key>
+						<string>NO</string>
+					</dict>
+					<key>stroke</key>
+					<dict>
+						<key>Draws</key>
+						<string>NO</string>
+					</dict>
+				</dict>
+			</dict>
+			<key>BaseZoom</key>
+			<integer>0</integer>
+			<key>CanvasOrigin</key>
+			<string>{0, 0}</string>
+			<key>ColumnAlign</key>
+			<integer>1</integer>
+			<key>ColumnSpacing</key>
+			<real>36</real>
+			<key>DisplayScale</key>
+			<string>1 0/72 in = 1.0000 in</string>
+			<key>GraphicsList</key>
+			<array>
+				<dict>
 					<key>Class</key>
 					<string>LineGraphic</string>
 					<key>ID</key>
@@ -206179,8 +206735,8 @@ lang:java}</string>
 					<integer>154</integer>
 					<key>Points</key>
 					<array>
-						<string>{411.12995833633272, 249.17537096233991}</string>
-						<string>{393.34156685592802, 263.82463264639244}</string>
+						<string>{411.12995833633278, 249.17537096233991}</string>
+						<string>{393.34156685592797, 263.8246326463925}</string>
 					</array>
 					<key>Style</key>
 					<dict>
@@ -211165,8 +211721,8 @@ lang:java}</string>
 							<integer>142</integer>
 							<key>Points</key>
 							<array>
-								<string>{432.31558180663802, 157.68958738721889}</string>
-								<string>{428.44294795917938, 154.48274935358782}</string>
+								<string>{432.31558180663797, 157.68958738721886}</string>
+								<string>{428.44294795917932, 154.48274935358782}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -222081,8 +222637,8 @@ endTime:2001}</string>
 					<integer>48</integer>
 					<key>Points</key>
 					<array>
-						<string>{207.56428733349856, 306.90079234700102}</string>
-						<string>{275.56067070483158, 339.75387073893654}</string>
+						<string>{207.56428733349856, 306.90079234700096}</string>
+						<string>{275.56067070483152, 339.75387073893648}</string>
 					</array>
 					<key>Style</key>
 					<dict>
@@ -241003,8 +241559,8 @@ endTime:2001}</string>
 							<integer>833</integer>
 							<key>Points</key>
 							<array>
-								<string>{105.52222418163974, 208.31002354001615}</string>
-								<string>{105.6370515604187, 212.65601873909216}</string>
+								<string>{105.52237945151377, 208.31001946013788}</string>
+								<string>{105.63731914533909, 212.65601170076275}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241036,8 +241592,8 @@ endTime:2001}</string>
 							<integer>834</integer>
 							<key>Points</key>
 							<array>
-								<string>{93.331346056857129, 215.70156227267472}</string>
-								<string>{98.654303106951176, 217.66275972303259}</string>
+								<string>{93.331419456731211, 215.70136274987894}</string>
+								<string>{98.654523410053059, 217.66216048998922}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241069,8 +241625,8 @@ endTime:2001}</string>
 							<integer>835</integer>
 							<key>Points</key>
 							<array>
-								<string>{89.34868996560553, 217.22529033600088}</string>
-								<string>{84.798180016423814, 225.81886329117975}</string>
+								<string>{89.348688709820706, 217.22528967048856}</string>
+								<string>{84.798174448812304, 225.81886034058067}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241102,8 +241658,8 @@ endTime:2001}</string>
 							<integer>836</integer>
 							<key>Points</key>
 							<array>
-								<string>{100.21216712860877, 238.89698723483886}</string>
-								<string>{105.91484753338752, 245.27831484645074}</string>
+								<string>{100.21217949109801, 238.89697616727426}</string>
+								<string>{105.91488315206389, 245.27828295846902}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241135,8 +241691,8 @@ endTime:2001}</string>
 							<integer>837</integer>
 							<key>Points</key>
 							<array>
-								<string>{120.0525725688821, 243.60215118865818}</string>
-								<string>{113.0867259169782, 246.78308186408833}</string>
+								<string>{120.05191083455661, 243.60070136552093}</string>
+								<string>{113.08573287867719, 246.78090416563759}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241168,8 +241724,8 @@ endTime:2001}</string>
 							<integer>838</integer>
 							<key>Points</key>
 							<array>
-								<string>{130.57096122222833, 262.18197540013222}</string>
-								<string>{125.06956953236369, 263.81881744613469}</string>
+								<string>{130.57076938427414, 262.18132870953065}</string>
+								<string>{125.0691361271717, 263.81735483429048}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241201,8 +241757,8 @@ endTime:2001}</string>
 							<integer>839</integer>
 							<key>Points</key>
 							<array>
-								<string>{116.15982101171392, 260.40899156381931}</string>
-								<string>{111.32849100973702, 252.5471252343221}</string>
+								<string>{116.15985269992821, 260.40897205417474}</string>
+								<string>{111.32857134183654, 252.54707577965456}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241234,8 +241790,8 @@ endTime:2001}</string>
 							<integer>840</integer>
 							<key>Points</key>
 							<array>
-								<string>{107.28622245081172, 264.9597363143555}</string>
-								<string>{108.48506182856218, 253.19631361868093}</string>
+								<string>{107.28622204465285, 264.95973627320438}</string>
+								<string>{108.48506036673759, 253.19631347057245}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241267,8 +241823,8 @@ endTime:2001}</string>
 							<integer>841</integer>
 							<key>Points</key>
 							<array>
-								<string>{108.63067243363254, 291.1660774465218}</string>
-								<string>{114.28914006049209, 297.78907593026946}</string>
+								<string>{108.63067847230108, 291.16607227595529}</string>
+								<string>{114.28915485107261, 297.78906326590112}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241300,8 +241856,8 @@ endTime:2001}</string>
 							<integer>842</integer>
 							<key>Points</key>
 							<array>
-								<string>{118.22310130272049, 298.03670951745829}</string>
-								<string>{123.67798204308322, 293.07528512571014}</string>
+								<string>{118.22301182449368, 298.03661130080366}</string>
+								<string>{123.67765954212852, 293.07493113723433}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241333,8 +241889,8 @@ endTime:2001}</string>
 							<integer>843</integer>
 							<key>Points</key>
 							<array>
-								<string>{105.45818702105797, 280.63060730900753}</string>
-								<string>{106.27134670152898, 274.00118337102293}</string>
+								<string>{105.45810644915345, 280.63059748035329}</string>
+								<string>{106.27117659729893, 274.00116259288291}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241366,8 +241922,8 @@ endTime:2001}</string>
 							<integer>844</integer>
 							<key>Points</key>
 							<array>
-								<string>{102.04962670208552, 226.96232703404522}</string>
-								<string>{99.434976490163024, 231.55224044462176}</string>
+								<string>{102.04882568769949, 226.96187010866973}</string>
+								<string>{99.433623098843242, 231.55146795024805}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241399,8 +241955,8 @@ endTime:2001}</string>
 							<integer>845</integer>
 							<key>Points</key>
 							<array>
-								<string>{93.502870900665911, 287.07491785754848}</string>
-								<string>{98.721694570123461, 286.85299949067763}</string>
+								<string>{93.502859994908277, 287.07466026066282}</string>
+								<string>{98.721663477082302, 286.85226667263396}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241432,8 +241988,8 @@ endTime:2001}</string>
 							<integer>846</integer>
 							<key>Points</key>
 							<array>
-								<string>{159.4353685659772, 205.84888290477019}</string>
-								<string>{162.35189073467137, 208.67707725084034}</string>
+								<string>{159.43712091461484, 205.84707608815805}</string>
+								<string>{162.35482513011996, 208.67404673064399}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241465,8 +242021,8 @@ endTime:2001}</string>
 							<integer>847</integer>
 							<key>Points</key>
 							<array>
-								<string>{161.23901518557489, 213.05856583681222}</string>
-								<string>{155.15950157923461, 214.7498277658764}</string>
+								<string>{161.23890682040462, 213.05817495286723}</string>
+								<string>{155.15924305698198, 214.74889471750689}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241498,8 +242054,8 @@ endTime:2001}</string>
 							<integer>848</integer>
 							<key>Points</key>
 							<array>
-								<string>{162.56197598434977, 222.63930604582796}</string>
-								<string>{166.19525178934009, 223.01562636680669}</string>
+								<string>{162.56238927114782, 222.63526834459415}</string>
+								<string>{166.19618461615192, 223.00637852976277}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241531,8 +242087,8 @@ endTime:2001}</string>
 							<integer>849</integer>
 							<key>Points</key>
 							<array>
-								<string>{168.61164266493739, 215.26862781312036}</string>
-								<string>{169.38505726222374, 216.1559700614705}</string>
+								<string>{168.70275318803442, 215.18690523880827}</string>
+								<string>{169.49316236870624, 216.04595218514208}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241564,8 +242120,8 @@ endTime:2001}</string>
 							<integer>850</integer>
 							<key>Points</key>
 							<array>
-								<string>{183.87613719236967, 233.87428120857348}</string>
-								<string>{184.72728440990153, 235.20202194971071}</string>
+								<string>{183.92146625364489, 233.84501262485873}</string>
+								<string>{184.777966566103, 235.16743307822443}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241597,8 +242153,8 @@ endTime:2001}</string>
 							<integer>851</integer>
 							<key>Points</key>
 							<array>
-								<string>{175.2521659821935, 235.44145319243231}</string>
-								<string>{174.40571300152254, 239.40651021038835}</string>
+								<string>{175.24959919520211, 235.44090734624476}</string>
+								<string>{174.40224352986786, 239.40576969836036}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -241630,8 +242186,8 @@ endTime:2001}</string>
 							<integer>852</integer>
 							<key>Points</key>
 							<array>
-								<string>{173.92621070965822, 248.37919946894834}</string>
-								<string>{174.71162744600585, 255.8502025910843}</string>
+								<string>{173.92627177789848, 248.37919308570534}</string>
+								<string>{174.71178935421494, 255.85018566583159}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -242083,8 +242639,8 @@ endTime:2001}</string>
 							<integer>865</integer>
 							<key>Points</key>
 							<array>
-								<string>{162.31405898769646, 239.75189346781539}</string>
-								<string>{170.4826223596877, 257.03201244256957}</string>
+								<string>{162.31406158832175, 239.7518922385681}</string>
+								<string>{170.4826332287312, 257.03200730505131}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -242116,8 +242672,8 @@ endTime:2001}</string>
 							<integer>866</integer>
 							<key>Points</key>
 							<array>
-								<string>{144.51474591975605, 248.25455106257863}</string>
-								<string>{148.14136208706663, 252.02196070152982}</string>
+								<string>{144.52538331936611, 248.24429401346507}</string>
+								<string>{148.15560988561037, 252.00815094247929}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -242149,8 +242705,8 @@ endTime:2001}</string>
 							<integer>867</integer>
 							<key>Points</key>
 							<array>
-								<string>{153.47501853588645, 265.16923519721695}</string>
-								<string>{153.47510726120939, 274.70012851650972}</string>
+								<string>{153.47501853752851, 265.16923519721695}</string>
+								<string>{153.4751072648958, 274.70012851650972}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -242182,8 +242738,8 @@ endTime:2001}</string>
 							<integer>868</integer>
 							<key>Points</key>
 							<array>
-								<string>{151.67986268691865, 286.44728870326981}</string>
-								<string>{149.252203238731, 294.20498829287726}</string>
+								<string>{151.67980536602613, 286.4472708147365}</string>
+								<string>{149.25206842164624, 294.2049461674938}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -242320,8 +242876,8 @@ endTime:2001}</string>
 							<integer>872</integer>
 							<key>Points</key>
 							<array>
-								<string>{158.30260727370325, 284.29179319765058}</string>
-								<string>{162.57611250594312, 287.46229855448263}</string>
+								<string>{158.30365522338792, 284.29038361547123}</string>
+								<string>{162.57808705578339, 287.45964032138727}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -242353,8 +242909,8 @@ endTime:2001}</string>
 							<integer>873</integer>
 							<key>Points</key>
 							<array>
-								<string>{172.1377209086624, 281.36757084147257}</string>
-								<string>{171.07592964602753, 284.73089846850081}</string>
+								<string>{172.12163448781467, 281.36249514128082}</string>
+								<string>{171.05553633207043, 284.724379697725}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -242419,8 +242975,8 @@ endTime:2001}</string>
 							<integer>875</integer>
 							<key>Points</key>
 							<array>
-								<string>{143.63837239419624, 202.98751021304554}</string>
-								<string>{149.15118402971606, 202.36499816982334}</string>
+								<string>{143.63703744290132, 202.97567080265253}</string>
+								<string>{149.14924218087543, 202.34814850206837}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -242452,8 +243008,8 @@ endTime:2001}</string>
 							<integer>876</integer>
 							<key>Points</key>
 							<array>
-								<string>{112.29173036330609, 216.18547109287169}</string>
-								<string>{119.59139401496762, 211.52032203814011}</string>
+								<string>{112.29036360771379, 216.18333743864036}</string>
+								<string>{119.58847876993072, 211.51577576641182}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -242485,8 +243041,8 @@ endTime:2001}</string>
 							<integer>877</integer>
 							<key>Points</key>
 							<array>
-								<string>{120.86772205868311, 229.38076938205299}</string>
-								<string>{112.39356500289067, 224.26867232304349}</string>
+								<string>{120.86891188436712, 229.37880071606776}</string>
+								<string>{112.39552765833507, 224.2654275976009}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -242518,8 +243074,8 @@ endTime:2001}</string>
 							<integer>878</integer>
 							<key>Points</key>
 							<array>
-								<string>{82.68369267743978, 237.10129495712275}</string>
-								<string>{83.627829229356706, 245.16715923550927}</string>
+								<string>{82.683850107693956, 237.10127663201331}</string>
+								<string>{83.628199369528375, 245.16711614258455}</string>
 							</array>
 							<key>Style</key>
 							<dict>
@@ -243272,7 +243828,7 @@ endTime:2001}</string>
 	<key>WindowInfo</key>
 	<dict>
 		<key>CurrentSheet</key>
-		<integer>46</integer>
+		<integer>11</integer>
 		<key>ExpandedCanvases</key>
 		<array/>
 		<key>Frame</key>
@@ -243290,7 +243846,7 @@ endTime:2001}</string>
 		<key>SidebarWidth</key>
 		<integer>152</integer>
 		<key>VisibleRegion</key>
-		<string>{{0, -6}, {882, 746}}</string>
+		<string>{{-153, -14}, {882, 761}}</string>
 		<key>Zoom</key>
 		<real>1</real>
 		<key>ZoomValues</key>
@@ -243615,6 +244171,11 @@ endTime:2001}</string>
 				<real>1</real>
 				<real>1</real>
 			</array>
+			<array>
+				<string>grateful-dead-schema</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
 		</array>
 	</dict>
 </dict>