Releases: krlawrence/graph
Revision 282 (TP 3.4.4)
Release 282 changes and updates
Here is a link to the Git diffs between this release and the prior one.
The examples in this release have been tested against Apache TinkerPop at the 3.4.1, 3.4.2, 3.4.3 and 3.4.4 levels. As always I am very grateful for the feedback by e-mail, issue and PR. This release resolves a few minor issues and adds a significant amount new content. Please check the commit log for finer grained details of all changes. Here is a list of the major improvements in this release.
- Added a new section comparing
sack
tounion
andproject
when adding values. - Added a new section "Does any route exist between two airports?"
- Added an example showing how
sack
can be used to count flight segments (hops). - Made the discussion of
path
modulated usingfrom
andto
it's own section. - Added a new section "Returning selected parts of a path"
- Added a new section "Finding routes that go via a specific airport"
- Expanded the section that introduces the
choose
step. - Added a new section "Pattern matching using a
where
step". - Added a new section "Calculating the
sum
of a collection" - Added a new section "Using the
math
step with collections" - Added a new section "Limiting the results at each depth" when using
repeat
steps. - Added a new section "Finding the longest route from each airport".
- Began adding coverage of TinkerPop 3.4.x features. Issue #115 and #108
- Added a mention of TinkerPop 3.4 in the Introduction.
- Added a section covering the new text predicates such as
contains
andstartingWith
. - Added a section describing the new
index
step. - Added a new section "An alternative to
valueMap
- introducingelementMap
". - Added coverage of nested and named
repeat
steps. - Added
nested-repeat.groovy
to thesample-code
folder. - Added coverage of the new features for
min
andmax
steps. - Added
load-air-routes-graph-34.groovy
using the newg.io()
syntax to thesample-data
folder. - Expanded existing
valueMap
coverage and added new sections covering the newunfold
-by
,with
andWithOptions
features.
- Added a small section showing how to use a
by
modulator with themath
step. - Made the coverage of Gremlin Server its own chapter. Issue #131.
- Added more examples to the coverage of colleactions and 'local' scope.
- Added a note at the start of Chapter 3 that mutation steps like
addV
are covered in Chapter 4. - Added several additional tip boxes containing links pointing to the official TinkerPop docs and/or source code.
- Added a section on using a TinkerGraph containing the air-route data with Gremlin Server . Issue #118
- Added the required config files to the
sample-data
folder. Issue #118
- Added the required config files to the
- Updated and expanded the Further Reading chapter
- Added a small section with a pointer to the latest sample data.
- Added
bootstrap-console.py
to thesample-code
folder. - Added
glv-client.js
showing a simple Node.js Gremlin GLV client to thesample-code
folder. Issues #107 #122 - Added
glv-client2.py
showing additional Python examples using a Gremlin GLV client to thesample-code
folder. - Added samples showing use of TinkerPop strategies from Java and Python to the
sample-code
folder. Issue #11:RemoteSubgraphStrategy.java
RemoteReadOnlyStrategy.java
RemotePartitionStrategy.java
strategies.py
- Added a sample showing use of text predicates and bulk sets
RemoteBulkSetTest.java
- Added a sample showing how to limit the results at each depth of a
repeat
traversal.restricted-repeat.groovy
- Cleaned up some wording.
- Uploaded latest data sets and demo apps to the
sample-data
anddemo
folders.- The latest data set adds 90 additional airports and 6,830 additional routes to the original
air-routes.graphml
data set.
- The latest data set adds 90 additional airports and 6,830 additional routes to the original
Revision 281 (TP 3.3.4)
Here is a link to the Git diffs between this release and the prior one.
The examples in this release have been tested against Apache TinkerPop at the 3.3.3 and 3.3.4 levels. As always I am very grateful for the feedback by e-mail, issue and PR. This release resolves a number of issues and adds quite a bit of new content. Please check the commit log for finer grained details of all changes. Here is a list of the major improvements in this release.
- Added a new section called "Seven degrees of separation".
- Added a new section on finding the longest routes.
- Added a section presenting a case study of copying one vertex from another.
- Added a section on finding isolated networks within the graph.
- Expanded the section that discusses using
coalesce
as a way to doupsert
type operations - Added to the section that introduces the
emit
step. - Added a section covering the new
Order.asc
andOrder.desc
enumerations. Issue #127. - Added a section on finding airports with no routes.
- Added a small section showing
math
being used to convert feet to meters. - Added examples of the
math
step'ssignum
operator. - Added examples of using
project
to feedmath
. - Added more examples to the section introducing the
inject
step. - Added a warning that not all Graph DBs accept lambdas (in-line code).
- Added additional notes and tips and made wording improvements.
- Added to the section on the Gremlin Server and using a remotely connected Gremlin Console.
- Added another example to the section that introduces the
identity
step. - Added coverage of the
start
,stop
andstatus
keywords that can be used to control a Gremlin Server. - Added two new samples -
basic-client.py
andglv-client.py
- that show how to connect to Gremlin Server using thegremlinpython
library. - Added a sample called
quick-social2.groovy
that creates a social graph useful for testing. Intended to be run from the Gremlin console. - Uploaded updated versions of the air-routes data and corresponding demo apps.
- Added CSV versions of the air-routes data set. Issue #75
- Resolved several issues.
Revision 280 (TP 3.3.3)
Here is a link to the Git diffs between this release and the prior one.
The examples in this release have been tested against Apache TinkerPop at the 3.3.2 and 3.3.3 levels. They have also been tested against JanusGraph 0.2 (where appropriate) which supports TinkerPop at the 3.2.6 level. As always I am very grateful for the feedback by e-mail, issue and PR. This release resolves a number of open issues. Please check the commit log for finer grained details of all changes. Here is a list of the major improvements in this release.
- Broke out the discussion of simulating
startsWith
into its own section. - Added to the discussion of
cyclicPath
. - Added text to explain the "__." notation the first time it appears #112.
- Expanded the section that introduces the
path
step #97, #98, #99. - Added text to better introduce the concept of a
modulator
#99 . - Added text to introduce the phrase
anonymous traversal
#98 - Expanded the section covering the
cyclicPath
step. - Expanded the discussion of randomly walking a graph. #105
- Added coverage of the
Direction
Enum. #114 - Expanded and improved the
Calculating vertex degree
section. - Added the
Cardinality
enum to the tables in section 6.1.5 #110. - Miscellaneous minor wording updates and corrections.
- Resolved lots of issues.
- Sample code and data improvements.
- Updated air-routes sample data (475 new routes, 2 new airports).
- Updated demo apps to reflect the latest data updates.
Revision 279 (TP 3.3.3)
Here is a link to the Git diffs between this release and the prior one.
Once again this is a substantial update with enhancements to both the book and to the sample programs and sample data.
The examples in this release have been tested against Apache TinkerPop at the 3.3.1, 3.3.2 and at the newly released 3.3.3 level. They have also been tested against JanusGraph 0.2 (where appropriate) which supports TinkerPop at the 3.2.6 level.
Major new features in this release
- Significantly expanded and improved the
subgraph
section. - Added examples to the
where
by
section. - Added more examples of
select
keywordslast
,first
andmixed
. - Added to the section that discusses the
union
step. - Improved the section dedicated to the
match
step. - Improved coverage of text comparison predicates.
- Improved the
Working with IDs
section. - Added examples to the
introducing Path
section. - Added a new section covering use of
withRemote
with a Gremlin Server. - Expanded coverage of custom ID values.
- Added a new section showing an example of a
path
step used inside agroupCount
step. - Added a new section showing how to deduce a graph's schema.
- Added more examples to Chapter 5.
- Corrected output in Section 3.3.1 to reflect correct version of air-routes. Issue #87.
- Expanded coverage of the results from a
Gremlin Server
. - Sample code and data improvements
- Added new script
regression.groovy
to check that the book examples work with the most recent Tinkerpop versions. - Added new sample
add-aircraft.Groovy
. - Added new sample data
aircraft.csv
. - Added new sample
RemoteClient.java
- Added new sample
ListAirports.java
. - Expanded
CreateGraph.java
sample. - Moved
edges.csv
tosample-data
folder. - Provided updated versions of the air-routes data and demo apps.
- Added new script
- Miscellaneous issues resolved and other more minor corrections.
Revision 278 (TP 3.3.1)
Here is a link to the Git diffs between this release and the prior one.
This release represents another fairly substantial update. The release has been tested against Apache TinkerPop at the 3.3.1 level and JanusGraph 0.2 which supports TinkerPop at the 3.2.6 level. The release version now includes the TinkerPop version level that was used during testing.
Major new features in this release
- Added additional background and context to the introduction chapter.
- Added a new section on measuring query performance.
- Added coverage of the new
math
step. Issue #21. - Added a new Java sample that demonstrates the
math
step (StdDev.java). - Added coverage of the
optional
step. Issue #40. - Improved introduction to the
select
step. - Expanded the "Using 'where' to filter things out of a result" section and the following section that introduces the 'where' and 'by' pattern.
- Expanded the section that introduces the
union
step. - Added dedicated introduction sections for the
identity
andconstant
steps. Issue #43. - Added coverage of TinkerGraph indexing.
- Added to the
collections
section. - Added a new
OLTP vs OLAP
section. - Added to the
Gremlin Server
section. - Improved coverage of
cyclicPath
- Improved coverage of
flatMap
- Improved coverage of
repeat
andemit
. - Added coverage of
toSet
in section 3. - Expanded the
vertex degree
section. - Updated the
valueMap
section. - Added examples of using
from
andto
withpath
. - Added example of empty
by
modulator topath
section. - Added a section showing how
inject
can supply ID values toaddV
. - Added a section to introduce the
dedup
step in Section 3. - Expanded the "Basic statistical and numerical operations" section.
- Added coverage of dynamically adding labels using
addV
andaddE
- issue #22. - Added an example of nested
group
steps in section 5. - Improved existing text and examples in section 5.
- Added more examples to section 5
- Improved coverage of
indexed
andwithIndex
. - Moved
indexed
andwithIndex
material up to Section 3 (from 5). - Examples in section 5 now all based on the same air routes graph v0.77 (some used to reflect an older version).
- Added a new Java sample GroupCounts.java
- Added a new Java sample that explores the
sample
step (Iterate.java). - Expanded the section in chapter 4 that introduces GraphML and Graphson.
- Added coverage of GraphSONMapper to the expanded GraphML/GraphSON section. Issue #51
- Added to the
JanusGraph GeoSpatial
section and moved the
section up a hierarchy level. - Added a new sample that demonstrates geospatial queries (janus-geoshape.groovy).
- Improved source highlighting for MOBI and EPUB versions.
- Added more examples in various places.
- General housekeeping and tightening up of some wording.
- Added a gitignore file. PR #39
Revision 277
This has turned into a fairly big release. I think I have made some significant improvements and I hope the new material is useful. As ever this remains a 'living book' and it is still very much evolving. Thanks as always for all the great feedback. Below is a list of that major new items that I have added since the last release.
Here is a link to the Git diffs between v277 and the prior v276 release
Major new features in this release.
- Wrote the first draft of the
Gremlin Server
section. - Added examples of the JSON that is returned from different Gremlin Server queries.
- Added a new section dedicated to discussing steps that generate
collections
and how to operate on them. - Added a new section dedicated to the
sack
step. - Added additional coverage of the
local
step and scope in general. - Added some focused coverage of
reducing barrier
steps. - Added coverage of the new
skip
step. - Added to the JanusGraph
cardinality
section. - Added to the JanusGraph
transactions
section. - Added to the JanusGraph
geospatial API
section. - Significantly added to the using Gremlin from Java sections.
- Added detailed coverage of Classses and Enums that you need to include when writing a Java or Groovy app that are hidden from you when using the Gremlin Console.
- Added to the using Gremlin from Groovy sections.
- Added coverage of JanusGraph storage options.
- Added a new section showing how to use Cassandra from a Docker Container with JanusGraph.
- Added a sample that shows how to load the air routes graph into JanusGraph backed by Cassandra.
- Added several new Java and Groovy samples to the sample-code folder.
- Added a new Ruby sample that can connect to a Gremlin Server
- Improved some existing sample apps.
- Enabled icons for tips and notes boxes.
- Did quite a bit of cleaning up of the text overall and corrected some mistakes and typos.
Revision 276
Introducing "Practical Gremlin"
I am putting out a release a bit sooner than expected as I have decided to change the working title of the book to "Practical Gremlin" with a subtitle of "An Apache TinkerPop Tutorial" and wanted to get the new title out there. Several people have pointed out that the old title was a bit of a mouthful to use when discussing or referring to this work. I think the new title is also a definite improvement!
That said, I have also been quite productive and this release again contains a lot of updates to both the book itself and also to the sample programs. As always thanks to everyone who sent in feedback by issue or other means. The commit history will show you what has been added.
Some more Java samples were added as some of the feedback I have received is people need more help making the transition from Gremlin Console to Java program. Over time I will add material based on these examples to the text.
Now that I am using asciidoctor-pdf to generate the PDF output I think the PDF version has become my favorite. If you have not already you may wish to check it out.
For the remainder of 2018 I am still going to try and publish at least one formal release each month if there is enough new material to justify making a release. To date releases have been quite regular as the project was ramping up. The Asciidoc file (Gremlin-Graph-Guide.adoc) will always represent the very latest updates.
Thanks to everyone who provided feedback either via issue, pull request or contacting me directly.
Revision 275
This release contains a lot of updates to both the book itself and also to the sample programs. I focused on tidying up the text, fixing mistakes and also adding to several sections. I continued to add material to the Janus graph section in this iteration and also added additional text and examples to the main Gremlin discussion in sections 3,4 and 5. Please see the commit logs if you want more detailed information about what was improved. Starting with this release, I am now using asciidoctor-pdf to produce the PDF version. Previously I was just printing the HTML to PDF. I think the PDF looks nicer now and has page numbering.
Some new samples were added and some of the existing ones were improved in this iteration.
For 2018 I am going to try and publish at least one formal release each month if there is enough new material to justify making a release. To date releases have been quite regular as the project was ramping up. The Asciidoc file (Gremlin-Graph-Guide.adoc) will always represent the very latest updates.
Thanks to everyone who provided feedback either via issue, pull request or contacting me directly.
Revision 274
From now on, each time a full update of the book is published in all formats the output files (XML,PDF,HTML,EPUB and MOBI) will be placed under Git releases and tagged with a release number. This will vastly reduce the amount of Git history (and disk space) that the output files have been taking up while in the /book folder.
You will continue to be able to see the very latest updates by browsing the Gremlin-Graph-Guide.adoc file that can still be found in the /book folder.
This release (274, Dec 24th 2017) contains several updates. A significant amount has been added to Section 3 and in particular the "Starting to walk the graph section" has received a substantial update.
I am extremely grateful for the feedback via issue and pull request that I have been receiving and the encouragement to keep going!