You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2016/10/27 11:37:53 UTC
[10/10] tinkerpop git commit: Moved /site under /docs
Moved /site under /docs
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/98869bca
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/98869bca
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/98869bca
Branch: refs/heads/TINKERPOP-1485
Commit: 98869bca8172041e362501b45e3c98a12369795c
Parents: f083f83
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Oct 27 07:36:59 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Oct 27 07:36:59 2016 -0400
----------------------------------------------------------------------
bin/generate-home.sh | 43 +
bin/publish-home.sh | 70 +
docs/site/home/css/bootstrap-mods.css | 140 +
docs/site/home/css/carousel.css | 417 +
docs/site/home/css/prism.css | 145 +
docs/site/home/downloads.html | 307 +
docs/site/home/gremlin.html | 396 +
docs/site/home/images/apache-tinkerpop-logo.png | Bin 0 -> 118637 bytes
docs/site/home/images/blueprints-handdrawn.png | Bin 0 -> 39838 bytes
docs/site/home/images/cityscape-button.png | Bin 0 -> 54260 bytes
docs/site/home/images/egg-logo.png | Bin 0 -> 7241 bytes
docs/site/home/images/favicon.ico | Bin 0 -> 1406 bytes
docs/site/home/images/furnace-handdrawn.png | Bin 0 -> 27598 bytes
docs/site/home/images/goutte-blue.png | Bin 0 -> 13400 bytes
docs/site/home/images/graph-globe.png | Bin 0 -> 97146 bytes
docs/site/home/images/graph-vs-table.png | Bin 0 -> 35982 bytes
docs/site/home/images/gremlin-apache.png | Bin 0 -> 184276 bytes
docs/site/home/images/gremlin-download.png | Bin 0 -> 35666 bytes
docs/site/home/images/gremlin-github.png | Bin 0 -> 25806 bytes
docs/site/home/images/gremlin-gym-mini.png | Bin 0 -> 128185 bytes
docs/site/home/images/gremlin-handdrawn.png | Bin 0 -> 24985 bytes
docs/site/home/images/gremlin-head.png | Bin 0 -> 47157 bytes
.../home/images/gremlin-language-variants.png | Bin 0 -> 157258 bytes
docs/site/home/images/gremlin-quill.png | Bin 0 -> 200459 bytes
docs/site/home/images/homepage.graffle | 63974 +++++++++++++++++
docs/site/home/images/logos/blazegraph-logo.png | Bin 0 -> 58946 bytes
docs/site/home/images/logos/datastax-logo.png | Bin 0 -> 38630 bytes
.../home/images/logos/gremlin-groovy-logo.png | Bin 0 -> 126622 bytes
.../home/images/logos/gremlin-java-logo.png | Bin 0 -> 106573 bytes
.../home/images/logos/gremlin-python-logo.png | Bin 0 -> 100190 bytes
.../home/images/logos/gremlin-scala-logo.png | Bin 0 -> 83255 bytes
docs/site/home/images/logos/ibmgraph-logo.png | Bin 0 -> 70338 bytes
docs/site/home/images/logos/keylines-logo.png | Bin 0 -> 38740 bytes
docs/site/home/images/logos/linkurious-logo.png | Bin 0 -> 58124 bytes
docs/site/home/images/logos/neo4j-logo.png | Bin 0 -> 48361 bytes
docs/site/home/images/logos/ogre-logo.png | Bin 0 -> 119692 bytes
docs/site/home/images/logos/orientdb-logo.png | Bin 0 -> 38721 bytes
.../home/images/logos/sparql-gremlin-logo.png | Bin 0 -> 102985 bytes
.../site/home/images/logos/sql-gremlin-logo.png | Bin 0 -> 94816 bytes
docs/site/home/images/logos/stardog-logo.png | Bin 0 -> 78711 bytes
docs/site/home/images/logos/titan-logo.png | Bin 0 -> 76305 bytes
docs/site/home/images/logos/tomsawyer-logo.png | Bin 0 -> 68634 bytes
docs/site/home/images/meeting-room-button.png | Bin 0 -> 46717 bytes
docs/site/home/images/oltp-and-olap.png | Bin 0 -> 400257 bytes
docs/site/home/images/peon-head.png | Bin 0 -> 11761 bytes
docs/site/home/images/policy/adjacency-list.png | Bin 0 -> 36192 bytes
.../home/images/policy/blueprints-character.png | Bin 0 -> 18474 bytes
.../home/images/policy/business-gremlin.png | Bin 0 -> 412520 bytes
.../site/home/images/policy/cyclicpath-step.png | Bin 0 -> 133628 bytes
.../site/home/images/policy/flat-map-lambda.png | Bin 0 -> 26423 bytes
.../home/images/policy/frames-character.png | Bin 0 -> 17482 bytes
.../home/images/policy/furnace-character.png | Bin 0 -> 14118 bytes
.../home/images/policy/gremlin-character.png | Bin 0 -> 16473 bytes
.../home/images/policy/gremlin-chickenwing.png | Bin 0 -> 34307 bytes
.../home/images/policy/gremlin-gremopoly.png | Bin 0 -> 28803 bytes
.../home/images/policy/gremlin-gremreaper.png | Bin 0 -> 33275 bytes
.../home/images/policy/gremlin-gremstefani.png | Bin 0 -> 32122 bytes
.../policy/gremlin-new-sheriff-in-town.png | Bin 0 -> 30381 bytes
.../policy/gremlin-no-more-mr-nice-guy.png | Bin 0 -> 27941 bytes
docs/site/home/images/policy/gremlintron.png | Bin 0 -> 219686 bytes
docs/site/home/images/policy/olap-traversal.png | Bin 0 -> 315037 bytes
.../site/home/images/policy/pipes-character.png | Bin 0 -> 19807 bytes
.../home/images/policy/rexster-character.png | Bin 0 -> 18100 bytes
.../home/images/policy/tinkerpop-reading.png | Bin 0 -> 195749 bytes
.../home/images/policy/tinkerpop3-splash.png | Bin 0 -> 643257 bytes
.../images/resources/arxiv-article-resource.png | Bin 0 -> 306821 bytes
.../benefits-gremlin-machine-resource.png | Bin 0 -> 159622 bytes
.../resources/graph-databases-101-resource.png | Bin 0 -> 139229 bytes
.../resources/on-graph-computing-resource.png | Bin 0 -> 159091 bytes
.../resources/property-graph-resource.png | Bin 0 -> 162245 bytes
.../images/resources/sql-2-gremlin-resource.png | Bin 0 -> 210892 bytes
.../resources/tables-and-graphs-resource.png | Bin 0 -> 344091 bytes
.../resources/why-graph-databases-resource.png | Bin 0 -> 243807 bytes
docs/site/home/images/rexster-handdrawn.png | Bin 0 -> 30247 bytes
docs/site/home/images/tinkerblocks.png | Bin 0 -> 802732 bytes
docs/site/home/images/tinkerpop-book.png | Bin 0 -> 195749 bytes
docs/site/home/images/tinkerpop-cityscape.png | Bin 0 -> 801856 bytes
docs/site/home/images/tinkerpop-conference.png | Bin 0 -> 719950 bytes
docs/site/home/images/tinkerpop-logo-small.png | Bin 0 -> 30662 bytes
.../site/home/images/tinkerpop-meeting-room.png | Bin 0 -> 703938 bytes
docs/site/home/images/tinkerpop-reading-2.png | Bin 0 -> 211187 bytes
docs/site/home/images/tinkerpop-reading.png | Bin 0 -> 195749 bytes
docs/site/home/images/tinkerpop-splash.png | Bin 0 -> 653463 bytes
docs/site/home/images/tinkerpop3-splash.png | Bin 0 -> 643257 bytes
docs/site/home/index.html | 316 +
docs/site/home/js/bootstrap-3.3.5.min.js | 7 +
docs/site/home/js/jquery-1.11.0.min.js | 4 +
docs/site/home/js/prism.js | 423 +
docs/site/home/policy.html | 72 +
docs/site/home/providers.html | 359 +
docs/site/home/template/header-footer.html | 148 +
site/bin/generate-home.sh | 39 -
site/bin/publish-home.sh | 71 -
site/home/css/bootstrap-mods.css | 140 -
site/home/css/carousel.css | 417 -
site/home/css/prism.css | 145 -
site/home/downloads.html | 307 -
site/home/gremlin.html | 396 -
site/home/images/apache-tinkerpop-logo.png | Bin 118637 -> 0 bytes
site/home/images/blueprints-handdrawn.png | Bin 39838 -> 0 bytes
site/home/images/cityscape-button.png | Bin 54260 -> 0 bytes
site/home/images/egg-logo.png | Bin 7241 -> 0 bytes
site/home/images/favicon.ico | Bin 1406 -> 0 bytes
site/home/images/furnace-handdrawn.png | Bin 27598 -> 0 bytes
site/home/images/goutte-blue.png | Bin 13400 -> 0 bytes
site/home/images/graph-globe.png | Bin 97146 -> 0 bytes
site/home/images/graph-vs-table.png | Bin 35982 -> 0 bytes
site/home/images/gremlin-apache.png | Bin 184276 -> 0 bytes
site/home/images/gremlin-download.png | Bin 35666 -> 0 bytes
site/home/images/gremlin-github.png | Bin 25806 -> 0 bytes
site/home/images/gremlin-gym-mini.png | Bin 128185 -> 0 bytes
site/home/images/gremlin-handdrawn.png | Bin 24985 -> 0 bytes
site/home/images/gremlin-head.png | Bin 47157 -> 0 bytes
site/home/images/gremlin-language-variants.png | Bin 157258 -> 0 bytes
site/home/images/gremlin-quill.png | Bin 200459 -> 0 bytes
site/home/images/homepage.graffle | 63974 -----------------
site/home/images/logos/blazegraph-logo.png | Bin 58946 -> 0 bytes
site/home/images/logos/datastax-logo.png | Bin 38630 -> 0 bytes
site/home/images/logos/gremlin-groovy-logo.png | Bin 126622 -> 0 bytes
site/home/images/logos/gremlin-java-logo.png | Bin 106573 -> 0 bytes
site/home/images/logos/gremlin-python-logo.png | Bin 100190 -> 0 bytes
site/home/images/logos/gremlin-scala-logo.png | Bin 83255 -> 0 bytes
site/home/images/logos/ibmgraph-logo.png | Bin 70338 -> 0 bytes
site/home/images/logos/keylines-logo.png | Bin 38740 -> 0 bytes
site/home/images/logos/linkurious-logo.png | Bin 58124 -> 0 bytes
site/home/images/logos/neo4j-logo.png | Bin 48361 -> 0 bytes
site/home/images/logos/ogre-logo.png | Bin 119692 -> 0 bytes
site/home/images/logos/orientdb-logo.png | Bin 38721 -> 0 bytes
site/home/images/logos/sparql-gremlin-logo.png | Bin 102985 -> 0 bytes
site/home/images/logos/sql-gremlin-logo.png | Bin 94816 -> 0 bytes
site/home/images/logos/stardog-logo.png | Bin 78711 -> 0 bytes
site/home/images/logos/titan-logo.png | Bin 76305 -> 0 bytes
site/home/images/logos/tomsawyer-logo.png | Bin 68634 -> 0 bytes
site/home/images/meeting-room-button.png | Bin 46717 -> 0 bytes
site/home/images/oltp-and-olap.png | Bin 400257 -> 0 bytes
site/home/images/peon-head.png | Bin 11761 -> 0 bytes
site/home/images/policy/adjacency-list.png | Bin 36192 -> 0 bytes
.../home/images/policy/blueprints-character.png | Bin 18474 -> 0 bytes
site/home/images/policy/business-gremlin.png | Bin 412520 -> 0 bytes
site/home/images/policy/cyclicpath-step.png | Bin 133628 -> 0 bytes
site/home/images/policy/flat-map-lambda.png | Bin 26423 -> 0 bytes
site/home/images/policy/frames-character.png | Bin 17482 -> 0 bytes
site/home/images/policy/furnace-character.png | Bin 14118 -> 0 bytes
site/home/images/policy/gremlin-character.png | Bin 16473 -> 0 bytes
site/home/images/policy/gremlin-chickenwing.png | Bin 34307 -> 0 bytes
site/home/images/policy/gremlin-gremopoly.png | Bin 28803 -> 0 bytes
site/home/images/policy/gremlin-gremreaper.png | Bin 33275 -> 0 bytes
site/home/images/policy/gremlin-gremstefani.png | Bin 32122 -> 0 bytes
.../policy/gremlin-new-sheriff-in-town.png | Bin 30381 -> 0 bytes
.../policy/gremlin-no-more-mr-nice-guy.png | Bin 27941 -> 0 bytes
site/home/images/policy/gremlintron.png | Bin 219686 -> 0 bytes
site/home/images/policy/olap-traversal.png | Bin 315037 -> 0 bytes
site/home/images/policy/pipes-character.png | Bin 19807 -> 0 bytes
site/home/images/policy/rexster-character.png | Bin 18100 -> 0 bytes
site/home/images/policy/tinkerpop-reading.png | Bin 195749 -> 0 bytes
site/home/images/policy/tinkerpop3-splash.png | Bin 643257 -> 0 bytes
.../images/resources/arxiv-article-resource.png | Bin 306821 -> 0 bytes
.../benefits-gremlin-machine-resource.png | Bin 159622 -> 0 bytes
.../resources/graph-databases-101-resource.png | Bin 139229 -> 0 bytes
.../resources/on-graph-computing-resource.png | Bin 159091 -> 0 bytes
.../resources/property-graph-resource.png | Bin 162245 -> 0 bytes
.../images/resources/sql-2-gremlin-resource.png | Bin 210892 -> 0 bytes
.../resources/tables-and-graphs-resource.png | Bin 344091 -> 0 bytes
.../resources/why-graph-databases-resource.png | Bin 243807 -> 0 bytes
site/home/images/rexster-handdrawn.png | Bin 30247 -> 0 bytes
site/home/images/tinkerblocks.png | Bin 802732 -> 0 bytes
site/home/images/tinkerpop-book.png | Bin 195749 -> 0 bytes
site/home/images/tinkerpop-cityscape.png | Bin 801856 -> 0 bytes
site/home/images/tinkerpop-conference.png | Bin 719950 -> 0 bytes
site/home/images/tinkerpop-logo-small.png | Bin 30662 -> 0 bytes
site/home/images/tinkerpop-meeting-room.png | Bin 703938 -> 0 bytes
site/home/images/tinkerpop-reading-2.png | Bin 211187 -> 0 bytes
site/home/images/tinkerpop-reading.png | Bin 195749 -> 0 bytes
site/home/images/tinkerpop-splash.png | Bin 653463 -> 0 bytes
site/home/images/tinkerpop3-splash.png | Bin 643257 -> 0 bytes
site/home/index.html | 316 -
site/home/js/bootstrap-3.3.5.min.js | 7 -
site/home/js/jquery-1.11.0.min.js | 4 -
site/home/js/prism.js | 423 -
site/home/policy.html | 72 -
site/home/providers.html | 359 -
site/home/template/header-footer.html | 148 -
182 files changed, 66821 insertions(+), 66818 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/bin/generate-home.sh
----------------------------------------------------------------------
diff --git a/bin/generate-home.sh b/bin/generate-home.sh
new file mode 100755
index 0000000..d2077dd
--- /dev/null
+++ b/bin/generate-home.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+cd `dirname $0`/..
+
+rm -rf target/site/home
+mkdir -p target/site/
+
+hash rsync 2> /dev/null
+
+if [ $? -eq 0 ]; then
+ rsync -avq docs/site/home target/site --exclude template
+else
+ cp -R docs/site/home target/site
+ rm -rf target/site/home/template
+fi
+
+pushd docs/site/
+
+for filename in home/*.html; do
+ sed -e "/!!!!!BODY!!!!!/ r $filename" home/template/header-footer.html -e /!!!!!BODY!!!!!/d > "../../target/site/${filename}"
+done
+
+popd
+
+echo "Home page site generated to $(cd target/site/home ; pwd)"
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/bin/publish-home.sh
----------------------------------------------------------------------
diff --git a/bin/publish-home.sh b/bin/publish-home.sh
new file mode 100755
index 0000000..1543c42
--- /dev/null
+++ b/bin/publish-home.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+cd `dirname $0`/..
+
+USERNAME=$1
+
+if [ "${USERNAME}" == "" ]; then
+ echo "Please provide a SVN username."
+ echo -e "\nUsage:\n\t$0 <username>\n"
+ exit 1
+fi
+
+if [ ! -d target/site/home ]; then
+ bin/generate-home.sh || exit 1
+ echo
+fi
+
+read -s -p "Password for SVN user ${USERNAME}: " PASSWORD
+echo
+
+SVN_CMD="svn --no-auth-cache --username=${USERNAME} --password=${PASSWORD}"
+
+rm -rf target/svn
+mkdir -p target/svn
+
+${SVN_CMD} co --depth files https://svn.apache.org/repos/asf/tinkerpop/site target/svn
+
+cd target/svn
+
+find ../site/home -mindepth 1 -maxdepth 1 -type d | xargs -n1 basename | xargs -r ${SVN_CMD} update
+
+diff -rq ./ ../site/home/ | awk -f ../../bin/publish-docs.awk | sed 's/^\(.\) \//\1 /g' > ../publish-home.files
+
+for file in $(cat ../publish-home.files | awk '/^[AU]/ {print $2}')
+do
+ if [ -d "../site/home/${file}" ]; then
+ mkdir -p "${file}" && cp -r "../site/home/${file}"/* "$_"
+ else
+ mkdir -p "`dirname ${file}`" && cp "../site/home/${file}" "$_"
+ fi
+done
+
+cat ../publish-home.files | awk '/^A/ {print $2}' | xargs -r svn add --parents
+cat ../publish-home.files | awk '/^D/ {print $2}' | xargs -r svn delete
+
+CHANGES=$(cat ../publish-home.files | wc -l)
+
+if [ ${CHANGES} -gt 0 ]; then
+ ${SVN_CMD} commit -m "Deploy TinkerPop homepage"
+fi
+
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/css/bootstrap-mods.css
----------------------------------------------------------------------
diff --git a/docs/site/home/css/bootstrap-mods.css b/docs/site/home/css/bootstrap-mods.css
new file mode 100644
index 0000000..68a6c31
--- /dev/null
+++ b/docs/site/home/css/bootstrap-mods.css
@@ -0,0 +1,140 @@
+.nav-icon {
+ width: 24px;
+ height: 24px;
+ margin-right: 5px;
+}
+.hero-unit {
+ background-color: #f5f5f5;
+ margin-bottom: 2px;
+ padding: 20px;
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+ margin-top: 20px;
+}
+.hero-unit h1 {
+ margin-bottom: 0;
+ font-size: 50px;
+ line-height: 1;
+ letter-spacing: -1px;
+}
+.hero-unit p {
+ font-size: 18px;
+ font-weight: 200;
+ line-height: 27px;
+}
+.carousel-indicators-numbers li {
+ font-size: 12px;
+ text-indent: 0px;
+ margin: -2px 2px;
+ width: 25px;
+ height: 25px;
+ border: none;
+ border-radius: 100%;
+ line-height: 26px;
+ color: #fff;
+ background-color: #999;
+}
+.carousel-indicators-numbers li.active {
+ margin: -2px 2px;
+ width: 25px;
+ height: 25px;
+ background-color: #337ab7;
+}
+.carousel-indicators {
+ bottom: -39px;
+}
+.carousel-inner {
+ margin-bottom: 50px;
+}
+#footer {
+ background-color: #f5f5f5;
+}
+.container .credit {
+ margin: 20px 0;
+}
+.navbar {
+ margin-bottom: 0;
+}
+
+.hovereffect {
+width:100%;
+height:100%;
+float:left;
+overflow:hidden;
+position:relative;
+text-align:center;
+cursor:default;
+border-radius:5px;
+}
+
+.hovereffect .overlay {
+width:100%;
+height:100%;
+position:absolute;
+overflow:hidden;
+top:0;
+left:0;
+opacity:0;
+background-color:rgba(0,0,0,0.5);
+-webkit-transition:all .4s ease-in-out;
+transition:all .4s ease-in-out;
+border-radius:5px;
+}
+
+.hovereffect img {
+display:block;
+position:relative;
+-webkit-transition:all .4s linear;
+transition:all .4s linear;
+border-radius:5px;
+}
+
+
+.hovereffect a.info {
+text-decoration:none;
+display:inline-block;
+border-radius:5px;
+color:#fff;
+border:1px solid #fff;
+background-color:transparent;
+opacity:0;
+filter:alpha(opacity=0);
+-webkit-transition:all .2s ease-in-out;
+transition:all .2s ease-in-out;
+margin:25px 0 0;
+padding:5px 5px;
+}
+
+.hovereffect a.info:hover {
+box-shadow:0 0 5px #fff;
+border-radius:5px;
+}
+
+.hovereffect:hover img {
+-ms-transform:scale(1.2);
+-webkit-transform:scale(1.2);
+transform:scale(1.2);
+border-radius:5px;
+}
+
+.hovereffect:hover .overlay {
+opacity:1;
+filter:alpha(opacity=100);
+border-radius:5px;
+}
+
+.hovereffect:hover h2,.hovereffect:hover a.info {
+opacity:1;
+filter:alpha(opacity=100);
+-ms-transform:translatey(0);
+-webkit-transform:translatey(0);
+transform:translatey(0);
+border-radius:5px;
+}
+
+.hovereffect:hover a.info {
+-webkit-transition-delay:.2s;
+transition-delay:.2s;
+border-radius:5px;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/css/carousel.css
----------------------------------------------------------------------
diff --git a/docs/site/home/css/carousel.css b/docs/site/home/css/carousel.css
new file mode 100644
index 0000000..a4eef64
--- /dev/null
+++ b/docs/site/home/css/carousel.css
@@ -0,0 +1,417 @@
+/* Bootstrap items to overWrite */
+
+.carouselGrid-inner > .item > img,
+.carouselGrid-inner > .item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+.carouselGrid-inner {
+ position: relative;
+ width: 100%;
+ overflow: hidden;
+}
+
+.carouselGrid-inner > .item {
+ position: relative;
+ display: none;
+ -webkit-transition: 1s ease-in-out left;
+ -o-transition: 1s ease-in-out left;
+ transition: 1s ease-in-out left;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+.carouselGrid-inner > .item > img,
+.carouselGrid-inner > .item > a > img {
+ line-height: 1;
+}
+
+
+
+@media all and (transform-3d), (-webkit-transform-3d) {
+ .carouselGrid-inner > .item {
+ -webkit-transition: -webkit-transform 1s ease-in-out;
+ -o-transition: -o-transform 1s ease-in-out;
+ transition: transform 1s ease-in-out;
+
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-perspective: 1000px;
+ perspective: 1000px;
+ }
+
+
+ @media (max-width: 767px) { /* xs */
+ .carouselGrid-inner > .item.next,
+ .carouselGrid-inner > .item.active.right {
+ left: 0;
+ -webkit-transform: translate3d(50%, 0, 0);
+ transform: translate3d(50%, 0, 0);
+ }
+ .carouselGrid-inner > .item.prev,
+ .carouselGrid-inner > .item.active.left {
+ left: 0;
+ -webkit-transform: translate3d(-50%, 0, 0);
+ transform: translate3d(-50%, 0, 0);
+ }
+ .carouselGrid-inner > .item.next.left,
+ .carouselGrid-inner > .item.prev.right,
+ .carouselGrid-inner > .item.active {
+ left: 0;
+ -webkit-transform: translate3d(0%, 0, 0);
+ transform: translate3d(0%, 0, 0);
+ }
+ }
+ @media (min-width: 767px) and (max-width: 992px ) { /* sm */
+ .carouselGrid-inner > .item.next,
+ .carouselGrid-inner > .item.active.right {
+ left: 0;
+ -webkit-transform: translate3d(33%, 0, 0);
+ transform: translate3d(33%, 0, 0);
+ }
+ .carouselGrid-inner > .item.prev,
+ .carouselGrid-inner > .item.active.left {
+ left: 0;
+ -webkit-transform: translate3d(-33%, 0, 0);
+ transform: translate3d(-33%, 0, 0);
+ }
+ .carouselGrid-inner > .item.next.left,
+ .carouselGrid-inner > .item.prev.right,
+ .carouselGrid-inner > .item.active {
+ left: 0;
+ -webkit-transform: translate3d(0%, 0, 0);
+ transform: translate3d(0%, 0, 0);
+ }
+ }
+ @media (min-width: 992px ) and (max-width: 1200px) { /* md */
+ .carouselGrid-inner > .item.next,
+ .carouselGrid-inner > .item.active.right {
+ left: 0;
+ -webkit-transform: translate3d(25%, 0, 0);
+ transform: translate3d(25%, 0, 0);
+ }
+ .carouselGrid-inner > .item.prev,
+ .carouselGrid-inner > .item.active.left {
+ left: 0;
+ -webkit-transform: translate3d(-25%, 0, 0);
+ transform: translate3d(-25%, 0, 0);
+ }
+ .carouselGrid-inner > .item.next.left,
+ .carouselGrid-inner > .item.prev.right,
+ .carouselGrid-inner > .item.active {
+ left: 0;
+ -webkit-transform: translate3d(0%, 0, 0);
+ transform: translate3d(0%, 0, 0);
+ }
+ }
+ @media (min-width: 1200px ) { /* lg */
+
+ .carouselGrid-inner > .item.next,
+ .carouselGrid-inner > .item.active.right {
+ left: 0;
+ -webkit-transform: translate3d(20%, 0, 0);
+ transform: translate3d(20%, 0, 0);
+ }
+ .carouselGrid-inner > .item.prev,
+ .carouselGrid-inner > .item.active.left {
+ left: 0;
+ -webkit-transform: translate3d(-20%, 0, 0);
+ transform: translate3d(-20%, 0, 0);
+ }
+ .carouselGrid-inner > .item.next.left,
+ .carouselGrid-inner > .item.prev.right,
+ .carouselGrid-inner > .item.active {
+ left: 0;
+ -webkit-transform: translate3d(0%, 0, 0);
+ transform: translate3d(0%, 0, 0);
+ }
+ }
+
+}
+
+ .carouselGrid-inner > .active,
+ .carouselGrid-inner > .next,
+ .carouselGrid-inner > .prev {
+ display: block;
+ }
+ .carouselGrid-inner > .active {
+ left: 0;
+ }
+ .carouselGrid-inner > .next,
+ .carouselGrid-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+ }
+ .carouselGrid-inner > .next {
+ left: 100%;
+ }
+ .carouselGrid-inner > .prev {
+ left: -100%;
+ }
+ .carouselGrid-inner > .next.left,
+ .carouselGrid-inner > .prev.right {
+ left: 0;
+ }
+
+
+ @media (max-width: 767px) { /* xs */
+ .carouselGrid-inner > .active.left {
+ left: -50%;
+ }
+ .carouselGrid-inner > .active.right {
+ left: 50%;
+ }
+ }
+ @media (min-width: 767px) and (max-width: 992px ) { /* sm */
+ .carouselGrid-inner > .active.left {
+ left: -33%;
+ }
+ .carouselGrid-inner > .active.right {
+ left: 33%;
+ }
+ }
+ @media (min-width: 992px ) and (max-width: 1200px) { /* md */
+ .carouselGrid-inner > .active.left {
+ left: -25%;
+ }
+ .carouselGrid-inner > .active.right {
+ left: 25%;
+ }
+ }
+ @media (min-width: 1200px ) { /* lg */
+ .carouselGrid-inner > .active.left {
+ left: -20%;
+ }
+ .carouselGrid-inner > .active.right {
+ left: 20%;
+ }
+ }
+
+
+.carouselGrid-control {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 15%;
+ font-size: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
+ filter: alpha(opacity=50);
+ opacity: .5;
+}
+.carouselGrid-control.left {
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+ background-repeat: repeat-x;
+}
+.carouselGrid-control.right {
+ right: 0;
+ left: auto;
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+ background-repeat: repeat-x;
+}
+.carouselGrid-control:hover,
+.carouselGrid-control:focus {
+ color: #fff;
+ text-decoration: none;
+ filter: alpha(opacity=90);
+ outline: 0;
+ opacity: .9;
+}
+.carouselGrid-control .icon-prev,
+.carouselGrid-control .icon-next,
+.carouselGrid-control .glyphicon-chevron-left,
+.carouselGrid-control .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ z-index: 5;
+ display: inline-block;
+ margin-top: -10px;
+}
+.carouselGrid-control .icon-prev,
+.carouselGrid-control .glyphicon-chevron-left {
+ left: 50%;
+ margin-left: -10px;
+}
+.carouselGrid-control .icon-next,
+.carouselGrid-control .glyphicon-chevron-right {
+ right: 50%;
+ margin-right: -10px;
+}
+.carouselGrid-control .icon-prev,
+.carouselGrid-control .icon-next {
+ width: 20px;
+ height: 20px;
+ font-family: serif;
+ line-height: 1;
+}
+.carouselGrid-control .icon-prev:before {
+ content: '\2039';
+}
+.carouselGrid-control .icon-next:before {
+ content: '\203a';
+}
+.carouselGrid-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ padding-left: 0;
+ margin-left: -30%;
+ text-align: center;
+ list-style: none;
+}
+.carouselGrid-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ cursor: pointer;
+ background-color: #000 \9;
+ background-color: rgba(0, 0, 0, 0);
+ border: 1px solid #fff;
+ border-radius: 10px;
+}
+.carouselGrid-indicators .active {
+ width: 12px;
+ height: 12px;
+ margin: 0;
+ background-color: #fff;
+}
+.carouselGrid-caption {
+ position: absolute;
+ right: 15%;
+ bottom: 20px;
+ left: 15%;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
+}
+.carouselGrid-caption .btn {
+ text-shadow: none;
+}
+@media screen and (min-width: 768px) {
+ .carouselGrid-control .glyphicon-chevron-left,
+ .carouselGrid-control .glyphicon-chevron-right,
+ .carouselGrid-control .icon-prev,
+ .carouselGrid-control .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ font-size: 30px;
+ }
+ .carouselGrid-control .glyphicon-chevron-left,
+ .carouselGrid-control .icon-prev {
+ margin-left: -15px;
+ }
+ .carouselGrid-control .glyphicon-chevron-right,
+ .carouselGrid-control .icon-next {
+ margin-right: -15px;
+ }
+ .carouselGrid-caption {
+ right: 20%;
+ left: 20%;
+ padding-bottom: 30px;
+ }
+ .carouselGrid-indicators {
+ bottom: 20px;
+ }
+}
+
+.carouselGrid-control { width: 4%; }
+.carouselGrid-control.left,.carouselGrid-control.right {margin-left:15px;background-image:none;}
+@media (max-width: 767px) { /* xs */
+ .carouselGrid-inner .active.left { left: -50%; }
+ .carouselGrid-inner .next { left: 50%;}
+ .carouselGrid-inner .prev { left: -50%; }
+ .active > div { display:none; }
+ .active > div:first-child { display:block; }
+ .active > div:first-child + div { display:block; }
+ .active > div:first-child + div + div { display:none; }
+ .active > div:first-child + div + div + div { display:none; }
+
+
+}
+@media (min-width: 767px) and (max-width: 992px ) { /* sm */
+ .carouselGrid-inner .active.left { left: -33%; }
+ .carouselGrid-inner .next { left: 33%; }
+ .carouselGrid-inner .prev { left: -33%; }
+ .active > div { display:none; }
+ .active > div:first-child { display:block; }
+ .active > div:first-child + div { display:block; }
+ .active > div:first-child + div + div { display:block; }
+ .active > div:first-child + div + div + div { display:none; }
+}
+
+
+
+@media (min-width: 992px ) and (max-width: 1200px) { /* md */
+ .carouselGrid-inner .active.left { left: -25%; }
+ .carouselGrid-inner .next { left: 25%; }
+ .carouselGrid-inner .prev { left: -25%; }
+ .active > div { display:none; }
+ .active > div:first-child { display:block; }
+ .active > div:first-child + div { display:block; }
+ .active > div:first-child + div + div { display:block; }
+ .active > div:first-child + div + div + div { display:block; }
+
+}
+
+@media (min-width: 1200px ) { /* lg */
+ .carouselGrid-inner .active.left { left: -20%; }
+ .carouselGrid-inner .next { left: 20%;}
+ .carouselGrid-inner .prev {left: -20%; }
+
+}
+
+
+/* NECESSARY FOR FIVE ITEMS (Extends Bootstrap to 5 columns) */
+/*http://www.wearesicc.com/quick-tips-5-column-layout-with-twitter-bootstrap/ */
+.col-xs-15,
+.col-sm-15,
+.col-md-15,
+.col-lg-15 {
+ position: relative;
+ min-height: 1px;
+ padding-right: 15px;
+ padding-left: 15px;
+}
+.col-xs-15 {
+ width: 33%;
+ float: left;
+}
+@media (min-width: 768px) {
+.col-sm-15 {
+ width: 33%;
+ float: left;
+ }
+}
+@media (min-width: 992px) {
+ .col-md-15 {
+ width: 33%;
+ float: left;
+ }
+}
+@media (min-width: 1200px) {
+ .col-lg-15 {
+ width: 33%;
+ float: left;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/css/prism.css
----------------------------------------------------------------------
diff --git a/docs/site/home/css/prism.css b/docs/site/home/css/prism.css
new file mode 100644
index 0000000..e25f79d
--- /dev/null
+++ b/docs/site/home/css/prism.css
@@ -0,0 +1,145 @@
+/* http://prismjs.com/download.html?themes=prism&languages=clike+javascript+groovy+jade */
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+
+code[class*="language-"],
+pre[class*="language-"] {
+ color: #337ab7;
+ background: none;
+ text-shadow: 0 0px white;
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ word-wrap: normal;
+ line-height: 1.5;
+
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
+code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
+ text-shadow: none;
+ background: #f5f5f5;
+}
+
+pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
+code[class*="language-"]::selection, code[class*="language-"] ::selection {
+ text-shadow: none;
+ background: #f5f5f5;
+}
+
+@media print {
+ code[class*="language-"],
+ pre[class*="language-"] {
+ text-shadow: none;
+ }
+}
+
+.carousel-control.left, .carousel-control.right {
+ background-image: none
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+ padding: 0em;
+ margin: 0em 0;
+ overflow: auto;
+}
+
+:not(pre) > code[class*="language-"],
+pre[class*="language-"] {
+ background: #f5f5f5;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+ padding: 0em;
+ border-radius: 0em;
+ white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+ color: gray;
+}
+
+.token.punctuation {
+ color: black;
+}
+
+.namespace {
+ opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+ color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+ color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+ color: #a67f59;
+ background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword,
+.token.traversalSource {
+ color: #800080;
+}
+
+.token.function {
+ color: #337ab7;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+ color: #337ab7;
+}
+
+.token.important,
+.token.bold {
+ font-weight: bold;
+}
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+ color: #337ab7;
+}
+
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/downloads.html
----------------------------------------------------------------------
diff --git a/docs/site/home/downloads.html b/docs/site/home/downloads.html
new file mode 100644
index 0000000..c7b27fa
--- /dev/null
+++ b/docs/site/home/downloads.html
@@ -0,0 +1,307 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<div class="container">
+ <div class="row">
+ <h3>Download Apache TinkerPop™</h3>
+ <p><img src="images/gremlin-download.png" style="float:right;width:150px;padding:10px;"/>Apache TinkerPop provides three packaged downloads per release version. The
+ <a href="http://tinkerpop.apache.org/docs/current/reference/#gremlin-console">Gremlin Console</a> and <a href="http://tinkerpop.apache.org/docs/current/reference/#gremlin-server">Gremlin Server</a>
+ downloads are binary distributions, which contain pre-packaged versions of these important TinkerPop applications that are designed to work out-of-the-box
+ when unpackaged. The source distribution is a snapshot of the source code and files used in the building of those binary distributions.</p>
+ <p>TinkerPop also deploys artifacts to <a href="http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.tinkerpop%22">Maven Central</a>, which is helpful to
+ developers who wish to depend on the various libraries that TinkerPop provides.
+ <br/>
+ <h4>Current Releases</h4>
+ <table class="table">
+ <tr>
+ <td>
+ <strong>3.2.3</strong> (latest, stable)
+ </td>
+ <td>
+ 17-Oct-2016
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.2.3/CHANGELOG.asciidoc#release-3-2-3">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.2.3/upgrade/#_tinkerpop_3_2_3">upgrade</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.2.3/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.2.3/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://www.apache.org/dyn/closer.lua/tinkerpop/3.2.3/apache-tinkerpop-gremlin-console-3.2.3-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://www.apache.org/dyn/closer.lua/tinkerpop/3.2.3/apache-tinkerpop-gremlin-server-3.2.3-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://www.apache.org/dyn/closer.lua/tinkerpop/3.2.3/apache-tinkerpop-3.2.3-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>3.1.5</strong> (maintenance)
+ </td>
+ <td>
+ 17-Oct-2016
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.1.5/CHANGELOG.asciidoc#release-3-1-5">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.1.5/upgrade/#_tinkerpop_3_1_5">upgrade</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.1.5/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.1.5/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://www.apache.org/dyn/closer.lua/tinkerpop/3.1.5/apache-tinkerpop-gremlin-console-3.1.5-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://www.apache.org/dyn/closer.lua/tinkerpop/3.1.5/apache-tinkerpop-gremlin-server-3.1.5-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://www.apache.org/dyn/closer.lua/tinkerpop/3.1.5/apache-tinkerpop-3.1.5-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ </table>
+ <h4>Archived Releases</small></h4>
+ <table class="table">
+ <tr>
+ <td>
+ <strong>3.2.2</strong>
+ </td>
+ <td>
+ 6-Sep-2016
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.2.2/CHANGELOG.asciidoc#release-3-2-2">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.2.2/upgrade/#_tinkerpop_3_2_2">upgrade</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.2.2/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.2.2/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://archive.apache.org/dist/tinkerpop/3.2.2/apache-tinkerpop-gremlin-console-3.2.2-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/tinkerpop/3.2.2/apache-tinkerpop-gremlin-server-3.2.2-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/tinkerpop/3.2.2/apache-tinkerpop-3.2.2-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>3.1.4</strong>
+ </td>
+ <td>
+ 6-Sep-2016
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.1.4/CHANGELOG.asciidoc#release-3-1-4">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.1.4/upgrade/#_tinkerpop_3_1_4">upgrade</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.1.4/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.1.4/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://archive.apache.org/dist/tinkerpop/3.1.4/apache-tinkerpop-gremlin-console-3.1.4-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/tinkerpop/3.1.4/apache-tinkerpop-gremlin-server-3.1.4-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/tinkerpop/3.1.4/apache-tinkerpop-3.1.4-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>3.2.1</strong>
+ </td>
+ <td>
+ 18-Jul-2016
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.2.1/CHANGELOG.asciidoc#tinkerpop-321-release-date-july-18-2016">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.2.1/upgrade/#_tinkerpop_3_2_1">upgrade</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.2.1/reference/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.2.1/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://archive.apache.org/dist/tinkerpop/3.2.1/apache-gremlin-console-3.2.1-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/tinkerpop/3.2.1/apache-gremlin-server-3.2.1-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/tinkerpop/3.2.1/apache-tinkerpop-3.2.1-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>3.1.3</strong>
+ </td>
+ <td>
+ 18-Jul-2016
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.1.3/CHANGELOG.asciidoc#tinkerpop-313-release-date-july-18-2016">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.1.3/upgrade/#_tinkerpop_3_1_3">upgrade</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.1.3/reference/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.1.3/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://archive.apache.org/dist/tinkerpop/3.1.3/apache-gremlin-console-3.1.3-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/tinkerpop/3.1.3/apache-gremlin-server-3.1.3-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/tinkerpop/3.1.3/apache-tinkerpop-3.1.3-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>3.2.0-incubating</strong>
+ </td>
+ <td>
+ 8-Apr-2016
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.2.0-incubating/CHANGELOG.asciidoc#tinkerpop-320-release-date-april-8-2016">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.2.0-incubating/upgrade/#_tinkerpop_3_2_0_2">upgrade</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.2.0-incubating/reference/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.2.0-incubating/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.2.0-incubating/apache-gremlin-console-3.2.0-incubating-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.2.0-incubating/apache-gremlin-server-3.2.0-incubating-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.2.0-incubating/apache-tinkerpop-3.2.0-incubating-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>3.1.2-incubating</strong>
+ </td>
+ <td>
+ 8-Apr-2016
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.1.2-incubating/CHANGELOG.asciidoc#tinkerpop-312-release-date-april-8-2016">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.1.2-incubating/upgrade/#_tinkerpop_3_1_2">upgrade</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.1.2-incubating/reference/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.1.2-incubating/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.1.2-incubating/apache-gremlin-console-3.1.2-incubating-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.1.2-incubating/apache-gremlin-server-3.1.2-incubating-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.1.2-incubating/apache-tinkerpop-3.1.2-incubating-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>3.1.1-incubating</strong>
+ </td>
+ <td>
+ 8-Feb-2016
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.1.1-incubating/CHANGELOG.asciidoc#tinkerpop-311-release-date-february-8-2016">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.1.1-incubating/upgrade/#_tinkerpop_3_1_1">upgrade</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.1.1-incubating/reference/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.1.1-incubating/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.1.1-incubating/apache-gremlin-console-3.1.1-incubating-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.1.1-incubating/apache-gremlin-server-3.1.1-incubating-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.1.1-incubating/apache-tinkerpop-3.1.1-incubating-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>3.1.0-incubating</strong>
+ </td>
+ <td>
+ 16-Nov-2015
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.1.0-incubating/CHANGELOG.asciidoc#tinkerpop-310-release-date-november-16-2015">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.1.0-incubating/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.1.0-incubating/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.1.0-incubating/apache-gremlin-console-3.1.0-incubating-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.1.0-incubating/apache-gremlin-server-3.1.0-incubating-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.1.0-incubating/apache-tinkerpop-3.1.0-incubating-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>3.0.2-incubating</strong>
+ </td>
+ <td>
+ 19-Oct-2015
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.0.2-incubating/CHANGELOG.asciidoc#tinkerpop-302-release-date-october-19-2015">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.0.2-incubating/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.0.2-incubating/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.0.2-incubating/apache-gremlin-console-3.0.2-incubating-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.0.2-incubating/apache-gremlin-server-3.0.2-incubating-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.0.2-incubating/apache-tinkerpop-3.0.2-incubating-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>3.0.1-incubating</strong>
+ </td>
+ <td>
+ 2-Sep-2015
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.0.1-incubating/CHANGELOG.asciidoc#tinkerpop-301-release-date-september-2-2015">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.0.1-incubating/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.0.1-incubating/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.0.1-incubating/apache-gremlin-console-3.0.1-incubating-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.0.1-incubating/apache-gremlin-server-3.0.1-incubating-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.0.1-incubating/apache-tinkerpop-3.0.1-incubating-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>3.0.0-incubating</strong>
+ </td>
+ <td>
+ 9-Jul-2015
+ </td>
+ <td>
+ <a href="https://github.com/apache/tinkerpop/blob/3.0.0-incubating/CHANGELOG.asciidoc#tinkerpop-300-release-date-july-9-2015">release notes</a> |
+ <a href="http://tinkerpop.apache.org/docs/3.0.0-incubating/">documentation</a> |
+ <a href="http://tinkerpop.apache.org/javadocs/3.0.0-incubating/full/">javadoc</a>
+ </td>
+ <td align="right">
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.0.0-incubating/apache-gremlin-console-3.0.0-incubating-bin.zip" class="btn btn-primary">Gremlin Console <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.0.0-incubating/apache-gremlin-server-3.0.0-incubating-bin.zip" class="btn btn-primary">Gremlin Server <span class="glyphicon glyphicon-download-alt"></span></a>
+ <a href="https://archive.apache.org/dist/incubator/tinkerpop/3.0.0-incubating/apache-tinkerpop-3.0.0-incubating-src.zip" class="btn btn-primary">Source <span class="glyphicon glyphicon-download-alt"></span></a>
+ </td>
+ </tr>
+ </table>
+ <p><strong>Note</strong> that upgrade documentation was only introduced at 3.1.1-incubating which is why there are no links "upgrade" links in versions prior to that one.
+ <h4>Verifying Downloads</h4>
+ <p>All downloads have associated PGP and MD5 signatures to help verify a distribution provided by a mirror. To verify a distribution via PGP or GPG first download the
+ <a href="https://www.apache.org/dist/tinkerpop/KEYS">KEYS</a> file (it is important to use the linked file which is from the main distribution directory and not a
+ mirror. Next download the appropriate "asc" signature file for the relevant distribution (again, this file should come from the <a href="https://www.apache.org/dist/tinkerpop/">main
+ distribution directory</a> - note that older releases will have such files in the <a href="https://archive.apache.org/dist/tinkerpop/">archives</a> or if released under Apache
+ Incubator then they will be found in the <a href="https://archive.apache.org/dist/incubator/tinkerpop/">Incubator archives</a>).</p>
+ <p>Then verify the signatures as follows:</p>
+ <p>
+ <pre><code>
+ pgpk -a KEYS
+ pgpv apache-gremlin-console-x.y.z-bin.zip.asc
+ </code></pre>
+ </p>
+ <p>or</p>
+ <p>
+ <pre><code>
+ pgpk -ka KEYS
+ pgp apache-gremlin-console-x.y.z-bin.zip.asc
+ </code></pre>
+ </p>
+ <p>or</p>
+ <p>
+ <pre><code>
+ gpg --import KEYS
+ gpg --verify apache-gremlin-console-x.y.z-bin.zip.asc apache-gremlin-console-x.y.z-bin.zip
+ </code></pre>
+ </p>
+ <p>Alternatively, consider verifying the MD5 signature on the files. An MD5 signature consists of 32 hex characters, and a SHA1 signature consists of 40 hex characters.
+ Ensure that the generated signature string matches the signature string published in the files above.</p>
+ </div>
+</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/gremlin.html
----------------------------------------------------------------------
diff --git a/docs/site/home/gremlin.html b/docs/site/home/gremlin.html
new file mode 100644
index 0000000..4a626ca
--- /dev/null
+++ b/docs/site/home/gremlin.html
@@ -0,0 +1,396 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<img src="images/tinkerpop-cityscape.png" class="img-responsive" />
+<div class="container">
+ <div class="hero-unit" style="padding:10px">
+ <b><font size="5" face="american typewriter">Apache TinkerPop™</font></b>
+ <p><font size="5">The Gremlin Graph Traversal Machine and Language</font></p>
+ </div>
+</div>
+<br/>
+<div class="container-fluid">
+ <div class="container">
+ <div class="row">
+ <div class="col-sm-10 col-md-10">
+ <a href="http://arxiv.org/abs/1508.03843">Gremlin</a> is the graph traversal language of <a href="http://tinkerpop.apache.org/">Apache TinkerPop</a>.
+ Gremlin is a <a href="https://en.wikipedia.org/wiki/Functional_programming">functional</a>, <a href="https://en.wikipedia.org/wiki/Dataflow_programming">data-flow</a>
+ language that enables users to succinctly express complex traversals on (or queries of) their application's property graph. Every Gremlin traversal is composed of a sequence of (potentially nested) steps. A step
+ performs an atomic operation on the data stream. Every step is either a <em>map</em>-step (transforming the objects in the stream), a <em>filter</em>-step (removing objects
+ from the stream), or a <em>sideEffect</em>-step (computing statistics about the stream). The Gremlin step library extends on these 3-fundamental operations to provide
+ users a rich collection of steps that they can compose in order to ask any conceivable question they may have of their data for Gremlin is <a href="http://arxiv.org/abs/1508.03843">Turing Complete</a>.
+ </div>
+ <div class="col-sm-2 col-md-2">
+ <img src="images/gremlin-head.png" width="100%">
+ </div>
+ </div>
+ <br/>
+ <div style="border-radius:3px;border:1px solid black;padding:10px;padding-left:10px;height:170px" id="gremlinCarousel" class="carousel slide" data-ride="carousel" data-interval="30000">
+ <!-- Indicators -->
+ <ol class="carousel-indicators carousel-indicators-numbers">
+ <li data-target="#gremlinCarousel" data-slide-to="0" class="active">1</li>
+ <li data-target="#gremlinCarousel" data-slide-to="1">2</li>
+ <li data-target="#gremlinCarousel" data-slide-to="2">3</li>
+ <li data-target="#gremlinCarousel" data-slide-to="3">4</li>
+ <li data-target="#gremlinCarousel" data-slide-to="4">5</li>
+ <li data-target="#gremlinCarousel" data-slide-to="5">6</li>
+ </ol>
+ <div class="carousel-inner" role="listbox">
+ <div class="item active">
+ <div class="row">
+ <div class="col-xs-5">
+ <pre style="padding-left:10px;height:148px;overflow:hidden;"><code class="language-gremlin">
+g.V().has("name","gremlin").
+ out("knows").
+ out("knows").
+ values("name")
+
+ </code></pre>
+ </div>
+ <div class="col-xs-7" style="border-left: thin solid #000000;height:148px">
+ <b>What are the names of Gremlin's friends' friends?</b>
+ <p/>
+ <ol style="padding-left:20px">
+ <li>Get the vertex with name "gremlin."</li>
+ <li>Traverse to the people that Gremlin knows.</li>
+ <li>Traverse to the people those people know.</li>
+ <li>Get those people's names.</li>
+ </ol>
+ <br/>
+ </div>
+ </div>
+ </div>
+ <div class="item">
+ <div class="row">
+ <div class="col-xs-5">
+ <pre style="padding-left:10px;height:148px;overflow:hidden;"><code class="language-gremlin">
+g.V().match(
+ as("a").out("knows").as("b"),
+ as("a").out("created").as("c"),
+ as("b").out("created").as("c"),
+ as("c").in("created").count().is(2)).
+ select("c").by("name")</code></pre>
+ </div>
+ <div class="col-xs-7" style="border-left: thin solid #000000;height:148px">
+ <b>What are the names of the projects created by two friends?</b>
+ <p/>
+ <ol style="padding-left:20px">
+ <li>...there exists some "a" who knows "b".</li>
+ <li>...there exists some "a" who created "c".</li>
+ <li>...there exists some "b" who created "c".</li>
+ <li>...there exists some "c" created by 2 people.</li>
+ <li>Get the name of all matching "c" projects.</li>
+ </ol>
+ </div>
+ </div>
+ </div>
+ <div class="item">
+ <div class="row">
+ <div class="col-xs-5">
+ <pre style="padding-left:10px;height:148px;overflow:hidden;"><code class="language-gremlin">
+g.V().has("name","gremlin").
+ repeat(in("manages")).
+ until(has("title","ceo")).
+ path().by("name")
+
+</code></pre>
+ </div>
+ <div class="col-xs-7" style="border-left: thin solid #000000;height:148px">
+ <b>Get the managers from Gremlin to the CEO in the hiearchy.</b>
+ <p/>
+ <ol style="padding-left:20px">
+ <li>Get the vertex with the name "gremlin."</li>
+ <li>Traverse up the management chain...</li>
+ <li>...until a person with the title of CEO is reached.</li>
+ <li>Get name of the managers in the path traversed.</li>
+ </ol>
+ <br/>
+ </div>
+ </div>
+ </div>
+ <div class="item">
+ <div class="row">
+ <div class="col-xs-5">
+ <pre style="padding-left:10px;height:148px;overflow:hidden;"><code class="language-gremlin">
+g.V().has("name","gremlin").as("a").
+ out("created").in("created").
+ where(neq("a")).
+ groupCount().by("title")
+
+</code></pre>
+ </div>
+ <div class="col-xs-7" style="border-left: thin solid #000000;height:148px">
+ <b>Get the distribution of titles amongst Gremlin's collaborators.</b>
+ <p/>
+ <ol style="padding-left:20px">
+ <li>Get the vertex with the name "gremlin" and label it "a."</li>
+ <li>Get Gremlin's created projects and then who created them...</li>
+ <li>...that are not Gremlin.</li>
+ <li>Group count those collaborators by their titles.</li>
+ </ol>
+ <br/>
+ </div>
+ </div>
+ </div>
+ <div class="item">
+ <div class="row">
+ <div class="col-xs-5">
+ <pre style="padding-left:10px;height:148px;overflow:hidden;"><code class="language-gremlin">
+g.V().has("name","gremlin").
+ out("bought").aggregate("stash").
+ in("bought").out("bought").
+ where(not(within("stash"))).
+ groupCount().order(local).by(values,decr)
+</code></pre>
+ </div>
+ <div class="col-xs-7" style="border-left: thin solid #000000;height:148px">
+ <b>Get a ranked list of relevant products for Gremlin to purchase.</b>
+ <p/>
+ <ol style="padding-left:20px">
+ <li>Get the vertex with the name "gremlin."</li>
+ <li>Get the products Gremlin has purchased and save as "stash."</li>
+ <li>Who else bought those products and what else did they buy...</li>
+ <li>...that Gremlin has not already purchased.</li>
+ <li>Group count the products and order by their relevance.</li>
+ </ol>
+ </div>
+ </div>
+ </div>
+ <div class="item">
+ <div class="row">
+ <div class="col-xs-5">
+ <pre style="padding-left:10px;height:148px;overflow:hidden;"><code class="language-gremlin">
+g.V().hasLabel("person").
+ pageRank().
+ by("friendRank").
+ by(outE("knows")).
+ order().by("friendRank",decr).
+ limit(10)</code></pre>
+ </div>
+ <div class="col-xs-7" style="border-left: thin solid #000000;height:148px">
+ <b>Get the 10 most central people in the knows-graph.</b>
+ <p/>
+ <ol style="padding-left:20px">
+ <li>Get all people vertices.</li>
+ <li>Calculate their PageRank using knows-edges.</li>
+ <li>Order the people by their friendRank score.</li>
+ <li>Get the top 10 ranked people.</li>
+ </ol>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <br/>
+ <div class="container">
+ <a name="oltp-and-olap-traversals"></a>
+ <h3>OLTP and OLAP Traversals</h3>
+ <br/>
+ Gremlin was designed according to the "write once, run anywhere"-philosophy. This means that not only can all TinkerPop-enabled
+ graph systems execute Gremlin traversals, but also, every Gremlin traversal can be evaluated as either a real-time database query
+ or as a batch analytics query. The former is known as an <em>online transactional process</em> (<a href="https://en.wikipedia.org/wiki/Online_transaction_processing">OLTP</a>) and the latter as an <em>online analytics
+ process</em> (<a href="https://en.wikipedia.org/wiki/Online_analytical_processing">OLAP</a>). This universality is made possible by the Gremlin traversal machine. This distributed, graph-based <a href="https://en.wikipedia.org/wiki/Virtual_machine#Abstract_virtual_machine_techniques">virtual machine</a>
+ understands how to coordinate the execution of a multi-machine graph traversal. Moreover, not only can the execution either be OLTP or
+ OLAP, it is also possible for certain subsets of a traversal to execute OLTP while others via OLAP. The benefit is that the user does
+ not need to learn both a database query language and a domain-specific BigData analytics language (e.g. Spark DSL, MapReduce, etc.).
+ Gremlin is all that is required to build a graph-based application because the Gremlin traversal machine will handle the rest.
+ <br/><br/>
+ <center><img src="images/oltp-and-olap.png" style="width:80%;" class="img-responsive"></center>
+ </div>
+ <br/>
+ <div class="container">
+ <a name="imperative-and-declarative-traversals"></a>
+ <h3>Imperative and Declarative Traversals</h3>
+ <br/>
+ <div class="row">
+ <div class="col-sm-7 col-md-8">
+ A Gremlin traversal can be written in either an <em>imperative</em> (<a href="https://en.wikipedia.org/wiki/Imperative_programming">procedural</a>) manner, a <em>declarative</em> (<a href="https://en.wikipedia.org/wiki/Declarative_programming">descriptive</a>) manner,
+ or in a hybrid manner containing both imperative and declarative aspects. An imperative Gremlin traversal tells the traversers how to proceed at each step in the traversal. For instance,
+ the imperative traversal on the right first places a traverser at the vertex denoting Gremlin. That traverser then splits itself across all of Gremlin's collaborators that are not Gremlin
+ himself. Next, the traversers walk to the managers of those collaborators to ultimately be grouped into a manager name count distribution. This traversal is imperative in that it tells the
+ traversers to "go here and then go there" in an explicit, procedural manner.
+ </div>
+ <div class="col-sm-5 col-md-4">
+ <pre style="padding:10px;">
+<code class="language-gremlin">g.V().has("name","gremlin").as("a").
+out("created").in("created").
+where(neq("a")).
+in("manages").
+groupCount().by("name")</code>
+</pre>
+ </div>
+ </div>
+ <p/>
+ <div class="row">
+ <div class="col-sm-5 col-md-4">
+ <pre style="padding:10px;">
+<code class="language-gremlin">g.V().match(
+as("a").has("name","gremlin"),
+as("a").out("created").as("b"),
+as("b").in("created").as("c"),
+as("c").in("manages").as("d"),
+where("a",neq("c"))).
+select("d").
+groupCount().by("name")</code>
+</pre>
+ </div>
+ <div class="col-sm-7 col-md-8">
+ A declarative Gremlin traversal does not tell the traversers the order in which to execute their walk, but instead, allows each traverser to select a pattern to execute from a collection
+ of (potentially nested) patterns. The <a href="http://tinkerpop.apache.org/docs/current/reference/#match-step">declarative traversal</a> on the left yields the same result as the imperative traversal above. However, the declarative traversal has the added benefit
+ that it leverages not only a compile-time query planner (like imperative traversals), but also a runtime query planner that chooses which traversal pattern to execute next based on the
+ historic statistics of each pattern -- favoring those patterns which tend to reduce/filter the most data.
+ </div>
+ </div>
+ <br/>
+ The user can write their traversals in any way they choose. However, ultimately when their traversal is compiled, and depending on the underlying execution engine
+ (i.e. an OLTP graph database or an OLAP graph processor), the user's traversal is rewritten by a set of <em><a href="http://tinkerpop.apache.org/docs/current/reference/#traversalstrategy">traversal strategies</a></em> which do their best to determine the most optimal execution
+ plan based on an understanding of graph data access costs as well as the underlying data systems's unique capabilities (e.g. fetch the Gremlin vertex from the graph database's "name"-index).
+ Gremlin has been designed to give users flexibility in how they express their queries and graph system providers flexibility in how to efficiently evaluate traversals against their TinkerPop-enabled data system.
+ </div>
+ <br/>
+ <div class="container">
+ <a name="host-language-embedding"></a>
+ <h3>Host Language Embedding</h3>
+ <br/>
+ <div class="row">
+ <div class="col-sm-5 col-md-4">
+ <img src="images/gremlin-language-variants.png" class="img-responsive">
+ </div>
+ <div class="col-sm-7 col-md-8">
+ Classic database query languages, like <a href="https://en.wikipedia.org/wiki/SQL">SQL</a>, were conceived as being fundamentally different from the programming languages that would
+ ultimately use them in a production setting. For this reason, classical databases require the developer to code both in their native programming
+ language as well as in the database's respective query language. An argument can be made that the difference between "query languages" and
+ "programming languages" are not as great as we are taught to believe. Gremlin unifies this divide because traversals can be written in any
+ programming language that supports function <a href="https://en.wikipedia.org/wiki/Function_composition">composition</a> and <a href="https://en.wikipedia.org/wiki/Nested_function">nesting</a> (which every major programming language supports). In this way, the user's
+ Gremlin traversals are written along side their application code and benefit from the advantages afforded by the host language and its tooling
+ (e.g. type checking, syntax highlighting, dot completion, etc.). Various <a href="http://tinkerpop.apache.org/docs/current/tutorials/gremlin-language-variants/">Gremlin language variants</a> exist including: Gremlin-Java, Gremlin-Groovy, <a href="http://tinkerpop.apache.org/docs/current/reference/#gremlin-python">Gremlin-Python</a>,
+ <a href="https://github.com/mpollmeier/gremlin-scala">Gremlin-Scala</a>, etc.
+ </div>
+ <div class="col-md-12">
+ <p><br/>The first example below shows a simple Java class. Note that the Gremlin traversal is expressed in Gremlin-Java and thus, is part of the user's application code. There is no need for the
+ developer to create a <code>String</code> representation of their query in (yet) another language to ultimately pass that <code>String</code> to the graph computing system and be returned a result set. Instead,
+ traversals are embedded in the user's host programming language and are on equal footing with all other application code. With Gremlin, users <strong>do not</strong> have to deal with the awkwardness exemplified
+ in the second example below which is a common anti-pattern found throughout the industry.
+ </p>
+ </div>
+ <br/><br/>
+ <div class="col-md-5">
+ <pre style="padding:10px;"><code class="language-gremlin">public class GremlinTinkerPopExample {
+public void run(String name, String property) {
+
+Graph graph = GraphFactory.open(...);
+GraphTraversalSource g = graph.traversal();
+
+double avg = g.V().has("name",name).
+ out("knows").out("created").
+ values(property).mean().next();
+
+System.out.println("Average rating: " + avg);
+}
+}
+
+
+</code>
+</pre>
+ </div>
+ <div class="col-md-7">
+ <pre style="padding:10px;"><code class="language-gremlin">public class SqlJdbcExample {
+public void run(String name, String property) {
+
+Connection connection = DriverManager.getConnection(...)
+Statement statement = connection.createStatement();
+ResultSet result = statement.executeQuery(
+"SELECT AVG(pr." + property + ") as AVERAGE FROM PERSONS p1" +
+"INNER JOIN KNOWS k ON k.person1 = p1.id " +
+"INNER JOIN PERSONS p2 ON p2.id = k.person2 " +
+"INNER JOIN CREATED c ON c.person = p2.id " +
+"INNER JOIN PROJECTS pr ON pr.id = c.project " +
+ "WHERE p.name = '" + name + "');
+
+System.out.println("Average rating: " + result.next().getDouble("AVERAGE")
+}
+}</code>
+</pre>
+ </div>
+ <div class="col-md-12">
+ <p><br/>Behind the scenes, a Gremlin traversal will evaluate locally against an embedded graph database, serialize itself across the network to a remote
+ graph database, or send itself to an OLAP processor for cluster-wide distributed execution. The traversal source definition determines where the traversal executes. Once a traversal source is
+ defined it can be used over and over again in a manner analogous to a database connection. The ultimate effect is that the user "feels" that their data and their traversals are all
+ co-located in their application and accessible via their application's native programming language. The "query language/programming language"-divide is bridged by Gremlin.
+ </p>
+ <br/>
+ </div>
+ <div class="col-md-12">
+ <pre style="padding:10px;"><code class="language-gremlin">Graph graph = GraphFactory.open(...);
+GraphTraversalSource g;
+g = graph.traversal(); // local OLTP
+g = graph.traversal().withRemote(DriverRemoteConnection.using("server.yaml")) // remote OLTP
+g = graph.traversal().withComputer(SparkGraphComputer.class); // distributed OLAP
+g = graph.traversal().withComputer(GiraphGraphComputer.class); // distributed OLAP</code>
+</pre>
+ </div>
+ <br/>
+ </div>
+ <div class="container">
+ <hr/>
+ <h4>Related Resources</h4>
+ <br/>
+ <div class="carousel slide" data-ride="carousel" data-type="multi" data-interval="7000" id="relatedResources">
+ <div class="carouselGrid-inner">
+ <div class="item active">
+ <div class="col-lg-3 col-md-3 col-sm-4 col-xs-6"><a href="https://academy.datastax.com/resources/getting-started-graph-databases"><img src="images/resources/graph-databases-101-resource.png" width="100%" /></a></div>
+ </div>
+ <div class="item">
+ <div class="col-lg-3 col-md-3 col-sm-4 col-xs-6"><a href="http://datastax.com/dev/blog/the-benefits-of-the-gremlin-graph-traversal-machine"><img src="images/resources/benefits-gremlin-machine-resource.png" width="100%" /></a></div>
+ </div>
+ <div class="item">
+ <div class="col-lg-3 col-md-3 col-sm-4 col-xs-6"><a href="http://arxiv.org/abs/1508.03843"><img src="images/resources/arxiv-article-resource.png" width="100%" /></a></div>
+ </div>
+ <div class="item">
+ <div class="col-lg-3 col-md-3 col-sm-4 col-xs-6"><a href="http://sql2gremlin.com/"><img src="images/resources/sql-2-gremlin-resource.png" width="100%" /></a></div>
+ </div>
+ </div>
+ <a class="left carouselGrid-control" href="#relatedResources" data-slide="prev">
+ <span class="icon-prev" aria-hidden="true"></span>
+ <span class="sr-only">Previous</span>
+ </a>
+ <a class="right carouselGrid-control" href="#relatedResources" data-slide="next">
+ <span class="icon-next" aria-hidden="true"></span>
+ <span class="sr-only">Next</span>
+ </a>
+ </div>
+ <script>
+ $('.carousel[data-type="multi"] .item').each(function(){
+ var next = $(this).next();
+ if (!next.length) { // if ther isn't a next
+ next = $(this).siblings(':first'); // this is the first
+ }
+ next.children(':first-child').clone().appendTo($(this)); // put the next ones on the array
+
+ for (var i=0;i<2;i++) { // THIS LOOP SPITS OUT EXTRA ITEMS TO THE CAROUSEL
+ next=next.next();
+ if (!next.length) {
+ next = $(this).siblings(':first');
+ }
+ next.children(':first-child').clone().appendTo($(this));
+ }
+
+ });
+ </script>
+ </div>
+ </div>
+</div>
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/apache-tinkerpop-logo.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/apache-tinkerpop-logo.png b/docs/site/home/images/apache-tinkerpop-logo.png
new file mode 100644
index 0000000..8d222ed
Binary files /dev/null and b/docs/site/home/images/apache-tinkerpop-logo.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/blueprints-handdrawn.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/blueprints-handdrawn.png b/docs/site/home/images/blueprints-handdrawn.png
new file mode 100644
index 0000000..8a7aba6
Binary files /dev/null and b/docs/site/home/images/blueprints-handdrawn.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/cityscape-button.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/cityscape-button.png b/docs/site/home/images/cityscape-button.png
new file mode 100644
index 0000000..85f986d
Binary files /dev/null and b/docs/site/home/images/cityscape-button.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/egg-logo.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/egg-logo.png b/docs/site/home/images/egg-logo.png
new file mode 100644
index 0000000..9d25899
Binary files /dev/null and b/docs/site/home/images/egg-logo.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/favicon.ico
----------------------------------------------------------------------
diff --git a/docs/site/home/images/favicon.ico b/docs/site/home/images/favicon.ico
new file mode 100644
index 0000000..79782c4
Binary files /dev/null and b/docs/site/home/images/favicon.ico differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/furnace-handdrawn.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/furnace-handdrawn.png b/docs/site/home/images/furnace-handdrawn.png
new file mode 100644
index 0000000..53fa34b
Binary files /dev/null and b/docs/site/home/images/furnace-handdrawn.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/goutte-blue.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/goutte-blue.png b/docs/site/home/images/goutte-blue.png
new file mode 100644
index 0000000..224dd38
Binary files /dev/null and b/docs/site/home/images/goutte-blue.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/graph-globe.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/graph-globe.png b/docs/site/home/images/graph-globe.png
new file mode 100644
index 0000000..9f37885
Binary files /dev/null and b/docs/site/home/images/graph-globe.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/graph-vs-table.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/graph-vs-table.png b/docs/site/home/images/graph-vs-table.png
new file mode 100644
index 0000000..04945ca
Binary files /dev/null and b/docs/site/home/images/graph-vs-table.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/gremlin-apache.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/gremlin-apache.png b/docs/site/home/images/gremlin-apache.png
new file mode 100644
index 0000000..e2d3bce
Binary files /dev/null and b/docs/site/home/images/gremlin-apache.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/gremlin-download.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/gremlin-download.png b/docs/site/home/images/gremlin-download.png
new file mode 100644
index 0000000..d9e1efd
Binary files /dev/null and b/docs/site/home/images/gremlin-download.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/gremlin-github.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/gremlin-github.png b/docs/site/home/images/gremlin-github.png
new file mode 100644
index 0000000..923bf43
Binary files /dev/null and b/docs/site/home/images/gremlin-github.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/gremlin-gym-mini.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/gremlin-gym-mini.png b/docs/site/home/images/gremlin-gym-mini.png
new file mode 100644
index 0000000..5c3d023
Binary files /dev/null and b/docs/site/home/images/gremlin-gym-mini.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/gremlin-handdrawn.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/gremlin-handdrawn.png b/docs/site/home/images/gremlin-handdrawn.png
new file mode 100644
index 0000000..ff3e9d3
Binary files /dev/null and b/docs/site/home/images/gremlin-handdrawn.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/gremlin-head.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/gremlin-head.png b/docs/site/home/images/gremlin-head.png
new file mode 100644
index 0000000..ec54d65
Binary files /dev/null and b/docs/site/home/images/gremlin-head.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/gremlin-language-variants.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/gremlin-language-variants.png b/docs/site/home/images/gremlin-language-variants.png
new file mode 100644
index 0000000..2c6ee8b
Binary files /dev/null and b/docs/site/home/images/gremlin-language-variants.png differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/98869bca/docs/site/home/images/gremlin-quill.png
----------------------------------------------------------------------
diff --git a/docs/site/home/images/gremlin-quill.png b/docs/site/home/images/gremlin-quill.png
new file mode 100644
index 0000000..bafcd63
Binary files /dev/null and b/docs/site/home/images/gremlin-quill.png differ