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 2016/10/24 17:32:50 UTC
[07/50] tinkerpop git commit: Formatting fixes to recipes CTR
Formatting fixes to recipes CTR
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/523fb6dc
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/523fb6dc
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/523fb6dc
Branch: refs/heads/TINKERPOP-1389
Commit: 523fb6dcf28a4bb2f59e2536ebf490893ef2ffe6
Parents: c595261
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Oct 14 14:33:05 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Oct 14 14:33:05 2016 -0400
----------------------------------------------------------------------
docs/src/recipes/between-vertices.asciidoc | 2 +-
docs/src/recipes/centrality.asciidoc | 24 +++++-----
docs/src/recipes/cycle-detection.asciidoc | 30 ++++++-------
docs/src/recipes/pagination.asciidoc | 20 +++++----
docs/src/recipes/recommendation.asciidoc | 59 +++++++++++++++++--------
docs/src/recipes/shortest-path.asciidoc | 42 +++++++++---------
docs/src/recipes/tree.asciidoc | 12 +++--
7 files changed, 108 insertions(+), 81 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/523fb6dc/docs/src/recipes/between-vertices.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/between-vertices.asciidoc b/docs/src/recipes/between-vertices.asciidoc
index 021e85b..f8814eb 100644
--- a/docs/src/recipes/between-vertices.asciidoc
+++ b/docs/src/recipes/between-vertices.asciidoc
@@ -19,7 +19,7 @@ Between Vertices
----------------
It is quite common to have a situation where there are two particular vertices of a graph and a need to execute some
-traversal on the paths found between them. Consider the following examples:
+traversal on the paths found between them. Consider the following examples using the modern toy graph:
[gremlin-groovy,modern]
----
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/523fb6dc/docs/src/recipes/centrality.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/centrality.asciidoc b/docs/src/recipes/centrality.asciidoc
index eeee79d..cbce418 100644
--- a/docs/src/recipes/centrality.asciidoc
+++ b/docs/src/recipes/centrality.asciidoc
@@ -27,7 +27,7 @@ Degree Centrality
~~~~~~~~~~~~~~~~~
link:https://en.wikipedia.org/wiki/Centrality#Degree_centrality[Degree centrality] is a measure of the number of
-edges associated to each vertex.
+edges associated to each vertex. The following examples use the modern toy graph:
[gremlin-groovy,modern]
----
@@ -67,15 +67,15 @@ image:betweeness-example.png[width=600]
[gremlin-groovy ]
----
-a = graph.addVertex('name','a')
-b = graph.addVertex('name','b')
-c = graph.addVertex('name','c')
-d = graph.addVertex('name','d')
-e = graph.addVertex('name','e')
-a.addEdge('next',b)
-b.addEdge('next',c)
-c.addEdge('next',d)
-d.addEdge('next',e)
+g.addV('name','a').as('a').
+ addV('name','b').as('b').
+ addV('name','c').as('c').
+ addV('name','d').as('d').
+ addV('name','e').as('e').
+ addE('next').from('a').to('b').
+ addE('next').from('b').to('c').
+ addE('next').from('c').to('d').
+ addE('next').from('d').to('e').iterate()
g.withSack(0).V().store("x").repeat(both().simplePath()).emit().path(). <1>
group().by(project("a","b").by(limit(local, 1)). <2>
by(tail(local, 1))).
@@ -84,7 +84,7 @@ g.withSack(0).V().store("x").repeat(both().simplePath()).emit().path(). <1>
select("x").unfold().as("v"). <5>
select("shortestPaths"). <6>
map(unfold().filter(unfold().where(eq("v"))).count()). <7>
- sack(sum).sack().as("betweeness"). <8>
+ sack(sum).sack().as("betweeness"). <8>
select("v","betweeness")
----
@@ -110,7 +110,7 @@ Closeness Centrality
~~~~~~~~~~~~~~~~~~~~
link:https://en.wikipedia.org/wiki/Centrality[Closeness centrality] is a measure of the distance of one vertex to all
-other reachable vertices in the graph.
+other reachable vertices in the graph. The following examples use the modern toy graph:
[gremlin-groovy,modern]
----
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/523fb6dc/docs/src/recipes/cycle-detection.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/cycle-detection.asciidoc b/docs/src/recipes/cycle-detection.asciidoc
index 864b760..1a8650b 100644
--- a/docs/src/recipes/cycle-detection.asciidoc
+++ b/docs/src/recipes/cycle-detection.asciidoc
@@ -25,19 +25,19 @@ image:graph-cycle.png[width=250]
[gremlin-groovy]
----
-vA = graph.addVertex(id, 'a')
-vB = graph.addVertex(id, 'b')
-vC = graph.addVertex(id, 'c')
-vD = graph.addVertex(id, 'd')
-vA.addEdge("knows", vB)
-vB.addEdge("knows", vC)
-vC.addEdge("knows", vA)
-vA.addEdge("knows", vD)
-vC.addEdge("knows", vD)
-g.V().as("a").repeat(out().simplePath()).times(2).
- where(out().as("a")).path() <1>
-g.V().as("a").repeat(out().simplePath()).times(2).
- where(out().as("a")).path().
+g.addV(id,'a').as('a').
+ addV(id,'b').as('b').
+ addV(id,'c').as('c').
+ addV(id,'d').as('d').
+ addE('knows').from('a').to('b').
+ addE('knows').from('b').to('c').
+ addE('knows').from('c').to('a').
+ addE('knows').from('a').to('d').
+ addE('knows').from('c').to('d').iterate()
+g.V().as('a').repeat(out().simplePath()).times(2).
+ where(out().as('a')).path() <1>
+g.V().as('a').repeat(out().simplePath()).times(2).
+ where(out().as('a')).path().
dedup().by(unfold().order().by(id).dedup().fold()) <2>
----
@@ -55,7 +55,7 @@ arbitrary length over both incoming and outgoing edges in the modern graph?
[gremlin-groovy,modern]
----
-g.V().as("a").repeat(both().simplePath()).emit(loops().is(gt(1))).
- both().where(eq("a")).path().
+g.V().as('a').repeat(both().simplePath()).emit(loops().is(gt(1))).
+ both().where(eq('a')).path().
dedup().by(unfold().order().by(id).dedup().fold())
----
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/523fb6dc/docs/src/recipes/pagination.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/pagination.asciidoc b/docs/src/recipes/pagination.asciidoc
index 85f55c8..510a586 100644
--- a/docs/src/recipes/pagination.asciidoc
+++ b/docs/src/recipes/pagination.asciidoc
@@ -29,15 +29,17 @@ In Gremlin, a basic approach to paging would look something like the following:
[gremlin-groovy,modern]
----
-g.V().hasLabel('person').fold() <1>
-g.V().hasLabel('person').fold().as('persons','count').
- select('persons','count').
- by(range(local, 0, 2)).
- by(count(local)) <2>
-g.V().hasLabel('person').fold().as('persons','count').
- select('persons','count').
- by(range(local, 2, 4)).
- by(count(local)) <3>
+g.V().hasLabel('person').fold() <1>
+g.V().hasLabel('person').
+ fold().as('persons','count').
+ select('persons','count').
+ by(range(local, 0, 2)).
+ by(count(local)) <2>
+g.V().hasLabel('person').
+ fold().as('persons','count').
+ select('persons','count').
+ by(range(local, 2, 4)).
+ by(count(local)) <3>
----
<1> Gets all the "person" vertices.
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/523fb6dc/docs/src/recipes/recommendation.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/recommendation.asciidoc b/docs/src/recipes/recommendation.asciidoc
index 81b2c96..8d5f1ec 100644
--- a/docs/src/recipes/recommendation.asciidoc
+++ b/docs/src/recipes/recommendation.asciidoc
@@ -133,7 +133,9 @@ g.V().has('person','name','alice').as('her'). <1>
out('bought').aggregate('self'). <2>
in('bought').where(neq('her')). <3>
out('bought').where(without('self')). <4>
- groupCount().order(local).by(values, decr) <5>
+ groupCount().
+ order(local).
+ by(values, decr) <5>
----
<1> Find "alice" who is the person for whom the product recommendation is being made.
@@ -164,7 +166,9 @@ Next, do some grouping to find count how many products they have in common:
g.V().has("person","name","alice").as("alice").
out("bought").aggregate("self").
in("bought").where(neq("alice")).dedup().
- group().by().by(out("bought").where(within("self")).count())
+ group().
+ by().by(out("bought").
+ where(within("self")).count())
----
The above output shows that the best that can be expected is three common products. The traversal needs to be aware of
@@ -175,9 +179,12 @@ that maximum:
g.V().has("person","name","alice").as("alice").
out("bought").aggregate("self").
in("bought").where(neq("alice")).dedup().
- group().by().by(out("bought").
- where(within("self")).count()).
- select(values).order(local).by(decr).limit(local, 1)
+ group().
+ by().by(out("bought").
+ where(within("self")).count()).
+ select(values).
+ order(local).
+ by(decr).limit(local, 1)
----
With the maximum value available, it can be used to chose those "person" vertices that have the three products in
@@ -188,10 +195,14 @@ common:
g.V().has("person","name","alice").as("alice").
out("bought").aggregate("self").
in("bought").where(neq("alice")).dedup().
- group().by().by(out("bought").
- where(within("self")).count()).as("g").
- select(values).order(local).by(decr).limit(local, 1).as("m").
- select("g").unfold().where(select(values).as("m")).select(keys)
+ group().
+ by().by(out("bought").
+ where(within("self")).count()).as("g").
+ select(values).
+ order(local).
+ by(decr).limit(local, 1).as("m").
+ select("g").unfold().
+ where(select(values).as("m")).select(keys)
----
Now that there is a list of "person" vertices to base the recommendation on, traverse to the products that they
@@ -202,10 +213,14 @@ purchased:
g.V().has("person","name","alice").as("alice").
out("bought").aggregate("self").
in("bought").where(neq("alice")).dedup().
- group().by().by(out("bought").
- where(within("self")).count()).as("g").
- select(values).order(local).by(decr).limit(local, 1).as("m").
- select("g").unfold().where(select(values).as("m")).select(keys).
+ group().
+ by().by(out("bought").
+ where(within("self")).count()).as("g").
+ select(values).
+ order(local).
+ by(decr).limit(local, 1).as("m").
+ select("g").unfold().
+ where(select(values).as("m")).select(keys).
out("bought").where(without("self"))
----
@@ -216,10 +231,18 @@ The above output shows that one product is held in common making it the top reco
g.V().has("person","name","alice").as("alice").
out("bought").aggregate("self").
in("bought").where(neq("alice")).dedup().
- group().by().by(out("bought").
- where(within("self")).count()).as("g").
- select(values).order(local).by(decr).limit(local, 1).as("m").
- select("g").unfold().where(select(values).as("m")).select(keys).
+ group().
+ by().by(out("bought").
+ where(within("self")).count()).as("g").
+ select(values).
+ order(local).
+ by(decr).limit(local, 1).as("m").
+ select("g").unfold().
+ where(select(values).as("m")).select(keys).
out("bought").where(without("self")).
- groupCount().order(local).by(values, decr).by(select(keys).values("name")).unfold().select(keys).values("name")
+ groupCount().
+ order(local).
+ by(values, decr).
+ by(select(keys).values("name")).
+ unfold().select(keys).values("name")
----
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/523fb6dc/docs/src/recipes/shortest-path.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/shortest-path.asciidoc b/docs/src/recipes/shortest-path.asciidoc
index 933eebf..004bf1e 100644
--- a/docs/src/recipes/shortest-path.asciidoc
+++ b/docs/src/recipes/shortest-path.asciidoc
@@ -26,17 +26,16 @@ is a simple example that identifies the shortest path between vertex "1" and ver
[gremlin-groovy]
----
-v1 = graph.addVertex(T.id, 1)
-v2 = graph.addVertex(T.id, 2)
-v3 = graph.addVertex(T.id, 3)
-v4 = graph.addVertex(T.id, 4)
-v5 = graph.addVertex(T.id, 5)
-v1.addEdge("knows", v2)
-v2.addEdge("knows", v4)
-v4.addEdge("knows", v5)
-v2.addEdge("knows", v3)
-v3.addEdge("knows", v4)
-g = graph.traversal()
+g.addV(id, 1).as('1').
+ addV(id, 2).as('2').
+ addV(id, 3).as('3').
+ addV(id, 4).as('4').
+ addV(id, 5).as('5').
+ addE('knows').from('1').to('2').
+ addE('knows').from('2').to('4').
+ addE('knows').from('4').to('5').
+ addE('knows').from('2').to('3').
+ addE('knows').from('3').to('4').iterate()
g.V(1).repeat(out().simplePath()).until(hasId(5)).path().limit(1) <1>
g.V(1).repeat(out().simplePath()).until(hasId(5)).path().count(local) <2>
g.V(1).repeat(out().simplePath()).until(hasId(5)).path().
@@ -57,17 +56,16 @@ but includes a "weight" on the edges, that will be used to help determine the "c
[gremlin-groovy]
----
-v1 = graph.addVertex(T.id, 1)
-v2 = graph.addVertex(T.id, 2)
-v3 = graph.addVertex(T.id, 3)
-v4 = graph.addVertex(T.id, 4)
-v5 = graph.addVertex(T.id, 5)
-v1.addEdge("knows", v2, "weight", 1.25)
-v2.addEdge("knows", v4, "weight", 1.5)
-v4.addEdge("knows", v5, "weight", 0.25)
-v2.addEdge("knows", v3, "weight", 0.25)
-v3.addEdge("knows", v4, "weight", 0.25)
-g = graph.traversal()
+g.addV(id, 1).as('1').
+ addV(id, 2).as('2').
+ addV(id, 3).as('3').
+ addV(id, 4).as('4').
+ addV(id, 5).as('5').
+ addE('knows').from('1').to('2').property('weight', 1.25).
+ addE('knows').from('2').to('4').property('weight', 1.5).
+ addE('knows').from('4').to('5').property('weight', 0.25).
+ addE('knows').from('2').to('3').property('weight', 0.25).
+ addE('knows').from('3').to('4').property('weight', 0.25).iterate()
g.V(1).repeat(out().simplePath()).until(hasId(5)).path().
group().by(count(local)).next() <1>
g.V(1).repeat(outE().inV().simplePath()).until(hasId(5)).
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/523fb6dc/docs/src/recipes/tree.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/tree.asciidoc b/docs/src/recipes/tree.asciidoc
index 2297ccd..7069277 100644
--- a/docs/src/recipes/tree.asciidoc
+++ b/docs/src/recipes/tree.asciidoc
@@ -172,11 +172,15 @@ The Gremlin script below creates the graph depicted in the graph above:
[gremlin-groovy]
----
g.addV(label, 'year', 'name', '2016').as('y2016').
- addV(label, 'month', 'name', 'may').as('m05').addV(label, 'month', 'name', 'june').as('m06').
- addV(label, 'day', 'name', '30').as('d30').addV(label, 'day', 'name', '31').as('d31').
+ addV(label, 'month', 'name', 'may').as('m05').
+ addV(label, 'month', 'name', 'june').as('m06').
+ addV(label, 'day', 'name', '30').as('d30').
+ addV(label, 'day', 'name', '31').as('d31').
addV(label, 'day', 'name', '01').as('d01').
- addV(label, 'event', 'name', 'A').as('eA').addV(label, 'event', 'name', 'B').as('eB').
- addV(label, 'event', 'name', 'C').as('eC').addV(label, 'event', 'name', 'D').as('eD').
+ addV(label, 'event', 'name', 'A').as('eA').
+ addV(label, 'event', 'name', 'B').as('eB').
+ addV(label, 'event', 'name', 'C').as('eC').
+ addV(label, 'event', 'name', 'D').as('eD').
addV(label, 'event', 'name', 'E').as('eE').
addE('may').from('y2016').to('m05').
addE('june').from('y2016').to('m06').