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/04/22 17:29:02 UTC

svn commit: r1740542 - in /incubator/tinkerpop/site: images/peon-head.png providers.html

Author: okram
Date: Fri Apr 22 15:29:02 2016
New Revision: 1740542

URL: http://svn.apache.org/viewvc?rev=1740542&view=rev
Log:
added peon-head.png and put it into providers.html.

Added:
    incubator/tinkerpop/site/images/peon-head.png   (with props)
Modified:
    incubator/tinkerpop/site/providers.html

Added: incubator/tinkerpop/site/images/peon-head.png
URL: http://svn.apache.org/viewvc/incubator/tinkerpop/site/images/peon-head.png?rev=1740542&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/tinkerpop/site/images/peon-head.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: incubator/tinkerpop/site/providers.html
URL: http://svn.apache.org/viewvc/incubator/tinkerpop/site/providers.html?rev=1740542&r1=1740541&r2=1740542&view=diff
==============================================================================
--- incubator/tinkerpop/site/providers.html (original)
+++ incubator/tinkerpop/site/providers.html Fri Apr 22 15:29:02 2016
@@ -214,6 +214,7 @@
       <div class="container">
          <div class="row">
             <div class="col-xs-10">
+           <br/>
                Apache TinkerPop grows when graph system/service providers and graph language designers support it. While Apache's distribution of TinkerPop 
                does provide production ready implementations and tools, it is ultimately the larger ecosystem of providers that ensure TinkerPop's widespread adoption. 
                There are three types of providers. The first are those that develop a (graph) database or (graph) analytics processor and want to offer their users TinkerPop-specific 
@@ -221,7 +222,7 @@
                and thus, against any TinkerPop-enabled graph system.
             </div>
             <div class="col-xs-2">
-               <img src="images/gremlin-head.png" width="120px">
+               <img src="images/peon-head.png" width="100px">
             </div>
          </div>
          <br/>
@@ -232,8 +233,8 @@
             <div class="row">
                <div class="col-xs-8">
                   At an abstract level, every data system is ultimately a "graph system" because every data system supports the representation of "things" (vertices) and their respective relationships 
-                  to one another (edges).  For instance, a relational database may have a people-table, where the rows denote person vertices and the columns denote properties of those individuals 
-                  (e.g. their name and age). Moreover, that relational database may also have a knows-table, where two columns reference primary keys in the people-table and the remaining columns 
+                  to one another (edges).  For instance, a <a href="https://en.wikipedia.org/wiki/Relational_database">relational database</a> may have a <em>people</em>-table, where the rows denote person vertices and the columns denote properties of those individuals 
+                  (e.g. their name and age). Moreover, that relational database may also have a <em>knows</em>-table, where two columns reference primary keys in the <em>people</em>-table and the remaining columns 
                   denote properties of those relationships (e.g. creation timestamp, strength of friendship, etc.). TinkerPop enables any data system to expose its implicit graph structure within the 
                   lexicon of vertices and edges. From there, what differentiates each TinkerPop-enabled system are the various time/space-tradeoffs that were made for representing their "graph" in-memory, 
                   on-disk, and across a multi-machine compute cluster. TinkerPop users have the luxury of choosing a graph system based on those design choices that are important for their application. 
@@ -266,7 +267,14 @@
                   <img src="images/gremlin-quill.png" width="200px">
                </div>
                <div class="col-xs-9">
-                  With the growth of NoSQL, for which graph databases are a subclass, many new database query languages have been developed. SQL has always been the industry standard, but now there exists others such as CQL, Datalog, and XQuery. Even in the graph database space there is SPARQL, Cypher, GraphQL, and of course, Gremlin. Much like the Java virtual machine is a host to multiple programming languages including Java, Scala, Groovy, Clojure, JavaScript, etc., the Gremlin traversal machine is a host to multiple query languages. The Gremlin traversal machine's instruction set ensures Turing Completeness and as such, any query language can compile to execute on the Gremlin traversal machine. There are three types of language designers. Below, each type will demonstrate the "same traversal" expressed in different languages. Ultimately, they all compile to the Gremlin traversal below which computes the average rating for the projects created by Gremlin's friends.
+                  With the growth of <a href="https://en.wikipedia.org/wiki/NoSQL">NoSQL</a>, for which graph databases are a subclass, many new database query languages have been developed. SQL has 
+                  always been the industry standard, but now there exists others such as <a href="http://docs.datastax.com/en/cql/3.1/cql/cql_intro_c.html">CQL</a>, <a href="https://en.wikipedia.org/wiki/Datalog">Datalog</a>, 
+                  and <a href="https://en.wikipedia.org/wiki/XQuery">XQuery</a>. Even in the graph database space there is <a href="https://en.wikipedia.org/wiki/SPARQL">SPARQL</a>, <a href="http://neo4j.com/developer/cypher-query-language/">Cypher</a>, 
+                  <a href="http://graphql.org/">GraphQL</a>, and of course, Gremlin. Much like the <a href="https://en.wikipedia.org/wiki/Java_virtual_machine">Java virtual machine</a> is a host to multiple 
+                  programming languages including Java, Scala, Groovy, Clojure, JavaScript, etc., the Gremlin traversal machine is a host to multiple query languages. The Gremlin traversal machine's 
+                  instruction set ensures <a href="https://en.wikipedia.org/wiki/Turing_completeness">Turing Completeness</a> and as such, any query language can compile to execute on the Gremlin traversal machine. 
+                  There are three types of language designers. Below, each type will demonstrate the "same traversal" expressed in different languages. Ultimately, they all compile to the Gremlin traversal 
+                  below which computes the average rating for the projects created by Gremlin's friends.
                </div>
             </div>
          </div>
@@ -287,7 +295,12 @@
             <div class="row">
                <div class="col-xs-9">
                   <br/>
-                  <strong>Distinct query language</strong>: Query languages such as SQL and SPARQL are significantly different from Gremlin in that they require a special purpose compiler in order to generate a traversal. For this reason, SQL and SPARQL Gremlin compilers currently exist. Note that, within reason, Gremlin compilers do not need to concern themselves with an optimal compilation (only a semantically correct compilation) as the Gremlin traversal machine will leverage traversal strategies for both compile-time and runtime optimizations. Moreover, the language designer can rest assured that queries in their language will be able to evaluate as either an OLTP or OLAP query. The example on the right is a SPARQL query that determines the average rating for Gremlin's friends' projects. It is because of the Gremlin traversal machine, that that SPARQL query can immediately execute over Spark (for instance).     
+                  <strong>Distinct query language</strong>: Query languages such as SQL and SPARQL are significantly different from Gremlin in that they require a special purpose compiler in order to 
+                  generate a traversal. For this reason, <a href="https://github.com/twilmes/sql-gremlin">SQL</a> and <a href="https://github.com/dkuppitz/sparql-gremlin">SPARQL</a> Gremlin compilers 
+                  currently exist. Note that, within reason, Gremlin compilers do not need to concern themselves with an optimal compilation (only a semantically correct compilation) as the Gremlin 
+                  traversal machine will leverage traversal strategies for both compile-time and runtime optimizations. Moreover, the language designer can rest assured that queries in their language 
+                  will be able to evaluate as either an OLTP or OLAP query. The example on the right is a SPARQL query that determines the average rating for Gremlin's friends' projects. It is because 
+                  of the Gremlin traversal machine, that that SPARQL query can immediately execute over Spark (for instance).     
                </div>
                <div class="col-xs-3">
                   <pre style="padding:10px;"><code class="language-javascript">SELECT AVG(?stars) WHERE {
@@ -306,7 +319,10 @@
          <div class="container">
             <div class="row">
                <div class="col-xs-8">
-                  <strong>Gremlin language variants</strong>: There are various Gremlin language variants such as Gremlin-Scala. These languages interact directly with TinkerPop's GraphTraversal interface and are able to generate Gremlin traversals utilizing the same naming/style-conventions as Gremlin-Java. Moreover, where appropriate, they can deviate from convention in order to take advantage of the unique expressive qualities of the host language. For instance, Gremlin-Scala boasts advanced type safety and an "ASCII-art" mutation syntax.
+                  <strong>Gremlin language variants</strong>: There are various Gremlin language variants such as <a href="https://github.com/mpollmeier/gremlin-scala">Gremlin-Scala</a>. These languages 
+                  interact directly with TinkerPop's GraphTraversal interface and are able to generate Gremlin traversals utilizing the same naming/style-conventions as Gremlin-Java. Moreover, where 
+                  appropriate, they can deviate from convention in order to take advantage of the unique expressive qualities of the host language. For instance, Gremlin-Scala boasts advanced type 
+                  safety and an "ASCII-art" mutation syntax.
                </div>
                <div class="col-xs-4">
                   <pre style="padding:10px;"><code class="language-javascript">g.V.has('person','name','gremlin').