-
Notifications
You must be signed in to change notification settings - Fork 239
Release Notes
okram edited this page Apr 4, 2011
·
80 revisions
All releases can be accessed through the TinkerPop Maven2 repository identified below.
<repository>
<id>tinkerpop-repository</id>
<name>TinkerPop Maven2 Repository</name>
<url>http://tinkerpop.com/maven2</url>
</repository>
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>gremlin</artifactId>
<version>0.9</version>
</dependency>
-
Iterable
andIterator
meta methods are nowPipe
exclusive -
Index
results are auto-wrapped in anIdentityPipe
to ensure consistent behavior across graphs - Added
DexGraph
as imported graph database -
Object.propertyMissing
is no longer defined to ensure Gremlin safety -
emit
step renamed totransform
-
foreach
step renamed tosideeffect
- Removed
futuref
step asback
supplies necessary computation - The
it
of thegather
step is now the gatheredList
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>gremlin</artifactId>
<version>0.8</version>
</dependency>
- Added new steps
-
emit
to emit results of provided closure -
ifelse
to perform a if/then/else branch -
uniquePath
to filter looping paths
-
- Added new methods
-
Object.mean()
to calculate the average of delegate -
Pipe.count()
to calculate the number of objects in pipe
-
- Added support for stack trace printing during an error in the console
-
loop
step now requires “back integer” - Added step caching model to increase speed of property notation
- Added
outE(label)
,inE(label)
andbothE(label)
support - Added support for dynamic counter adjustment in
groupCount
- Bumped to using Groovy 1.7.8
- Created a type-cast friendly
groupCount
step
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>gremlin</artifactId>
<version>0.7</version>
</dependency>
- Added many new steps
-
loop
step for in-line looping -
foreach
step for closure based operations on flowing objects -
back
step for backtracking in pipeline (i.e.../
) -
aggregate
,except
, andretain
for except/retain pattern -
groupCount
for map aggregations (i.e.g:op-value()
) -
step
for anonymous/lambda steps
-
- Massive refactoring of documentation
- Changed to Groovy as the host language
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>gremlin</artifactId>
<version>0.6</version>
</dependency>
- Fixed
foreach
bug that occurred on single object looping - Fixed
if/else
bug that occurred on function call -
null
and empty iterator/iterable result now printed in console - Empty path expression returns an empty iterable, not
null
- Added
g:copy-ve()
function that conveniently copies an element from one graph into another - Fixed numerous bugs in how functions were computing atoms
- GPath optimization through auto-reset of Gremlin-specific range-based pipes
- Comparing numbers is now possible without casting
- Fixed a major bug in error message handling (many exceptions w/o message being provided in console)
- Improved Gremlin evaluator load time with static function and step loading
- Added support for Blueprints 0.3 multi-indexes
-
g:add-aidx-key()
,g:add-idx()
,g:drop-idx()
,g:show-aidx-keys()
,g:show-idx()
,g:remove-aidx-keys()
-
- Added
return ?object
to return from a user defined function or step - Added support for path generation through
g:path()
(main body of work in Pipes)
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>gremlin</artifactId>
<version>0.5.5</version>
</dependency>
- A rework of the user-defined step model
- Renamed the concept of “path” to “step”
- Users can now define computations in steps
- Added
gather
andscatter
steps to allow for aggregation and unrolling of objects within a path - Added
g:append()
function to concatenate objects to an iterable (e.g. list, set)
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>gremlin</artifactId>
<version>0.5</version>
</dependency>
- A complete redesign and implementation of the Gremlin compiler
- Significant performance improvements
- Order of magnitude increase in speed for numerous operations
- Lazy evaluation for better memory usage
-
Functions
implement theServiceLoader
pattern for ease of incorporating 3rd-party extensions - Numerous changes to the Gremlin function library
- All core functions are now in the
g
namespace (e.g.g:count()
,g:string()
) -
g:id()
changed tog:id-v()
andg:id-e()
for getting vertices and edges, respectively -
g:key()
changed tog:key-v()
- Added
g:version()
function to retrieve version information - Added
g:g()
(group) to semi-replace()
model in Gremlin 0.2.2 - Added
g:flatten()
to flatten embedded iterables - Added
g:includes()
to determine if an object is in an iterable - Added
g:power()
to implement raising a number by a power - Added
g:range()
to allow for integer ranges to be created - Changed
g:difference()
tog:diff()
(abbreviation policy enacted for function names) - Added
g:set()
to create a set (unordered, unique collection of objects) - Added
g:integer()
,g:long()
,g:float()
, andg:double()
to support number casting
- All core functions are now in the
- Additions to the Gremlin type system
- Supports iterable as a super type in order to have direct support for lazy evaluation
- Supports set as an unordered, unique collection of objects
- Supports integer (1), long (1l), float (1.0), double (1.0d) as different number types
- Print streams can be dynamically set in
GremlinScriptContext
-
true()
,false()
, andnull()
are now keywords—true
,false
,null
- String concatenation is supported with the
+
operation - Range filter support through
[1..10]
type syntax - Index of lists starts at 0 instead of 1 as in Gremlin 0.2.2
- Test cases now provide performance statistics
- Removed the ‘show all aspects’ * step (i.e.
./outE/inV/*
) - Allow for the use of assignment and other operations within a path (e.g.
./outE/inV[g:p($x := .)
] - Provided support for OrientDB graph database (main body of work in Blueprints)
- Update to dependency inclusions
- Distribution includes all supported graph databases in Blueprints (
gremlin-*-standalone.jar
) - Dependency provide
<scope>provided</scope>
- Distribution includes all supported graph databases in Blueprints (
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>gremlin</artifactId>
<version>0.2.2</version>
</dependency>
- Fixed a bug introduced in 0.2.1 having to do with variables copied from a parent path context
- Added dependency on Neo4j RDF and SAIL SNAPSHOTS
- Added Neo4jSailGraph BETA to the core distribution
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>gremlin</artifactId>
<version>0.2.1</version>
</dependency>
- Instance naming convention for
Functions
changed toFunctionLibrary
-
list g:list(object+)
is nowlist g:list(object*)
- Added support for Java 1.6+ JSR 223
ScriptEngine
andScriptEngineFactory
- Renamed
GremlinEngine
toGremlinScriptEngine
- Renamed
GremlinEngineFactory
toGremlinScriptEngineFactory
- Renamed
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>gremlin</artifactId>
<version>0.2</version>
</dependency>
- Added user defined functions
- Gremlin and Java defined functions supported
- Added user defined paths
- Gremlin and Java defined functions supported
- Added
.gremlinrc
load script - Added support for manual transaction handling of Neo4j graphs
-
boolean neo4j:start-tx()
,boolean neo4j:stop-tx(boolean)
added
-
- Added support for embedded maps and lists
- Added support for JSON encoding and decoding of Gremlin types
-
g:json(object)
was removed -
string g:to-json(object)
andobject g:from-json(string)
added
-
- Added better support for vertex and edge property indexing
- Added working graph
$_g
variable and updated graph functions to support it - Added support for SPARQL queries for SAIL-based graphs
-
list sail:sparql(string)
was added
-
- Added support for Linked Data SAIL for real-time analysis of the Web of Data
- Added support for script loading
script gremlin-script.grm
- Added support for JUNG algorithms over Gremlin graphs
- Renamed
g:append(object, object+)
tog:list(object+)
- Renamed the general graph model to property graph model
- Moved the model and its implementations to Blueprints
- Uses Blueprints 0.1
- Various bug fixes and optimizations
<dependency>
<groupId>com.tinkerpop</groupId>
<artifactId>gremlin</artifactId>
<version>0.1</version>
</dependency>
- Initial release of the language and virtual machine