Limits
When you use iGraph SDK for Java, take note of the following differences from TinkerPop:
You can construct queries only by calling an API operation. Plaintext queries are not supported.
A traversal statement must start with g. You must specify the name of the graph for a traversal in the format of
g("graph_name"). This syntax is equivalent toGraph.traversal()in TinkerPop.You cannot add or delete data during queries.
For more information about the extended data types of result sets, see the section of the "Server SDK" topic.
Compatibility with TinkerPop Gremlin steps
A ✓ mark indicates that this step is supported. A ✕ mark indicates that this step is not supported.
The following table describes the Gremlin syntax and operators that are supported by iGraph.
Step | Open source project | iGraph | |
GraphTraversalSource | g("graph_name") | ✕ | ✓ |
getStrategies() | ✓ | ✓ | |
getGraph() | ✓ | ✕ | |
getBytecode() | ✓ | ✕ | |
with(String key, Object value) and the other step | ✓ | ✕ | |
withComputer() | ✓ | ✕ | |
withSideEffect(String key, A initialValue) and the other three steps | ✓ | ✕ | |
clone() | ✓ | ✓ | |
withStrategies(TraversalStrategy... traversalStrategies) and other steps | ✓ | ✕ | |
withStrategies(final StrategyBase... strategies) | ✕ | ✓ | |
withoutStrategies(Class<? extends TraversalStrategy>... traversalStrategyClasses) | ✓ | ✕ | |
withComputer(final Computer computer) and the other two steps | ✓ | ✕ | |
withSideEffect(final String key, final A initialValue) and the other three steps | ✓ | ✕ | |
withSack(final A initialValue) and the other seven steps | ✓ | ✕ | |
withSack(final Supplier supplier, final Splitter sackSpliter, final Operator sackMerger) | ✕ | ✓ | |
withBulk( boolean useBulk) | ✓ | ✕ | |
withPath() | ✓ | ✕ | |
addV(String label) | ✓ | ✓ | |
addV(final Traversal<?, String> vertexLabelTraversal) | ✓ | ✕ | |
addV() | ✓ | ✕ | |
addE(final String label) | ✓ | ✓ | |
addE(final Traversal<?, String> edgeLabelTraversal) | ✓ | ✕ | |
inject(T... starts) | ✓ | ✕ | |
V(Object... vertexIds) | ✓ | ✓ | |
V(final String... keys) | ✕ | ✓ | |
V(@NonNull List<KeyList> keyLists) | ✕ | ✓ | |
V(@NonNull KeyList keyList) | ✕ | ✓ | |
E(Object... edgesIds) | ✓ | ✓ | |
E(final String... keys) | ✕ | ✓ | |
E(@NonNull List<KeyList> keyLists) | ✕ | ✓ | |
E(@NonNull KeyList keyList) | ✕ | ✓ | |
noSupportedStep(final String stepName, final Object... parameters) | ✕ | ✓ | |
Traversal | asAdmin() | ✓ | ✕ |
tryNext() | ✓ | ✕ | |
next(final int amount) | ✓ | ✕ | |
List<E> toList() | ✓ | ✕ | |
toSet() | ✓ | ✕ | |
toBulkSet() | ✓ | ✕ | |
toStream() | ✓ | ✕ | |
promise(final Function<Traversal<S, E>, T> traversalFunction) | ✓ | ✕ | |
fill(final C collection) | ✓ | ✕ | |
none() | ✓ | ✕ | |
Traversal<S, TraversalMetrics> profile() | ✓ | ✕ | |
TraversalExplanation explain() | ✓ | ✕ | |
forEachRemaining(final Class<E2> endType, final Consumer<E2> consumer) | ✓ | ✕ | |
close() | ✓ | ✕ | |
Map step | map(final Function<Traverser<E>, E2> function) | ✓ | ✕ |
map(final Traversal<?, E2> mapTraversal) | ✓ | ✓ | |
flatMap(final Function<Traverser<E>, Iterator<E2>> function) | ✓ | ✕ | |
flatMap(final Traversal<?, E2> flatMapTraversal) | ✓ | ✓ | |
id() | ✓ | ✕ | |
label() | ✓ | ✓ | |
identity() | ✓ | ✓ | |
constant(final E2 e) | ✓ | ✓ | |
V(final Object... vertexIdsOrElements) | ✓ | ✕ | |
to(final Direction direction, final String... edgeLabels) | ✓ | ✕ | |
out(final String... edgeLabels) | ✓ | ✓ | |
in(final String... edgeLabels) | ✓ | ✕ | |
both(final String... edgeLabels) | ✓ | ✕ | |
toE(final Direction direction, final String... edgeLabels) | ✓ | ✕ | |
outE(final String... edgeLabels) | ✓ | ✓ | |
inE(final String... edgeLabels) | ✓ | ✕ | |
bothE(final String... edgeLabels) | ✓ | ✕ | |
toV(final Direction direction) | ✓ | ✓ | |
inV() | ✓ | ✓ | |
outV() | ✓ | ✓ | |
bothV() | ✓ | ✓ | |
otherV() | ✓ | ✕ | |
order() | ✓ | ✓ | |
order(final Scope scope) | ✓ | ✕ | |
properties(final . String... propertyKeys) | ✓ | ✓ | |
values(final String... propertyKeys) | ✓ | ✓ | |
propertyMap(final String... propertyKeys) | ✓ | ✓ | |
elementMap(final String... propertyKeys) | ✓ | ✕ | |
valueMap(final String... propertyKeys) | ✓ | ✓ | |
valueMap(final boolean includeTokens, final String... propertyKeys) | ✓ | ✕ | |
key() | ✓ | ✓ | |
value() | ✓ | ✓ | |
path() | ✓ | ✓ | |
match(final Traversal<?, ?>... matchTraversals) | ✓ | ✕ | |
sack() | ✓ | ✓ | |
loops() | ✓ | ✓ | |
loops(final String loopName) | ✓ | ✕ | |
project(final String projectKey, final String... otherProjectKeys) | ✓ | ✓ | |
select(final Pop pop, final String selectKey1, final String selectKey2, String... otherSelectKeys) | ✓ | ✓ | |
select(final String selectKey1, final String selectKey2, String... otherSelectKeys) | ✓ | ✓ | |
select(final Pop pop, final String selectKey) | ✓ | ✓ | |
select(final String selectKey) | ✓ | ✓ | |
select(final Pop pop, final Traversal<S, E2> keyTraversal) | ✓ | ✕ | |
select(final Traversal<S, E2> keyTraversal) | ✓ | ✕ | |
select(final Column column) | ✓ | ✕ | |
unfold() | ✓ | ✓ | |
fold() | ✓ | ✓ | |
fold(final E2 seed, final BiFunction<E2, E, E2> foldFunction) | ✓ | ✕ | |
count() | ✓ | ✓ | |
count(final Scope scope) | ✓ | ✓ | |
sum() | ✓ | ✓ | |
sum(final Scope scope) | ✓ | ✓ | |
max() | ✓ | ✓ | |
max(final Scope scope) | ✓ | ✓ | |
min(); | ✓ | ✓ | |
min(final Scope scope) | ✓ | ||
mean(); | ✓ | ✓ | |
mean(final Scope scope) | ✓ | ✕ | |
group() | ✓ | ✓ | |
groupCount() | ✓ | ✓ | |
tree() | ✓ | ✕ | |
addV(final String vertexLabel) and the other two steps | ✓ | ✕ | |
addE(final String edgeLabel) and the other step | ✓ | ✕ | |
to(final String toStepLabel) | ✓ | ✕ | |
from(final String fromStepLabel) | ✓ | ✕ | |
to(final Traversal<?, Vertex> toVertex) | ✓ | ✕ | |
from(final Traversal<?, Vertex> fromVertex); | ✓ | ✕ | |
to(final Vertex toVertex) | ✓ | ✕ | |
from(final Vertex fromVertex); | ✓ | ✕ | |
math(final String expression) | ✓ | ✕ | |
Filter step | filter(final Predicate<Traverser<E>> predicate) | ✓ | ✕ |
filter(final Traversal<?, ?> filterTraversal) | ✓ | ✓ | |
or(final Traversal<?, ?>... orTraversals) | ✓ | ✓ | |
and(final Traversal<?, ?>... andTraversals) | ✓ | ✓ | |
inject(final E... injections) | ✓ | ✕ | |
dedup(final Scope scope, final String... dedupLabels) | ✓ | ✕ | |
dedup(final String... dedupLabels) | ✓ | ✓ | |
where(final String startKey, final P<String> predicate | ✓ | ✓ | |
where(final P<String> predicate) | ✓ | ✓ | |
where(final Traversal<?, ?> whereTraversal) | ✓ | ✓ | |
has(final String propertyKey, final P<?> predicate) | ✓ | ✓ | |
has(final T accessor, final P<?> predicate) | ✓ | ✓ | |
has(final String propertyKey, final Object value) | ✓ | ✓ | |
has(final T accessor, final Object value) | ✓ | ✕ | |
has(final String label, final String propertyKey, final P<?> predicate) | ✓ | ✕ | |
has(final String label, final String propertyKey, final Object value) | ✓ | ✕ | |
has(final T accessor, final Traversal<?, ?> propertyTraversal) | ✓ | ✕ | |
has(final String propertyKey, final Traversal<?, ?> propertyTraversal) | ✓ | ✓ | |
has(final String propertyKey) | ✓ | ✓ | |
hasNot(final String propertyKey) | ✓ | ✕ | |
hasLabel(final String label, final String... otherLabels) | ✓ | ✓ | |
hasLabel(final P<String> predicate) | ✓ | ✕ | |
hasId(final Object id, final Object... otherIds) | ✓ | ✕ | |
hasId(final P predicate) | ✓ | ✕ | |
hasKey(final String label, final String... otherLabels) | ✓ | ✓ | |
hasKey(final P<String> predicate) | ✓ | ✓ | |
hasValue(final Object value, final Object... otherValues) | ✓ | ✓ | |
hasValue(final P<Object> predicate) | ✓ | ✓ | |
is(final P<E> predicate) | ✓ | ✓ | |
is(final Object value) | ✓ | ✓ | |
not(final Traversal<?, ?> notTraversal) | ✓ | ✓ | |
coin(final double probability) | ✓ | ✕ | |
range(final long low, final long high) | ✓ | ✓ | |
range(final Scope scope, final long low, final long high) | ✓ | ✓ | |
limit(final long limit) | ✓ | ✓ | |
limit(final Scope scope, final long limit) | ✓ | ✕ | |
tail() | ✓ | ✓ | |
tail(final long limit) | ✓ | ✓ | |
tail(final Scope scope) | ✓ | ✓ | |
tail(final Scope scope, final long limit) | ✓ | ✓ | |
skip(final long skip) | ✓ | ✕ | |
skip(final Scope scope, final long skip) | ✓ | ✕ | |
timeLimit(final long timeLimit) | ✓ | ✕ | |
simplePath() | ✓ | ✓ | |
cyclicPath() | ✓ | ✓ | |
sample(final int amountToSample) | ✓ | ✓ | |
sample(final Scope scope, final int amountToSample) | ✓ | ✓ | |
sample(final Sample sampleOption, final int amountToSample) | ✕ | ✓ | |
sample(final Sample sampleOption, final Sample sampleOption2, final int amountToSample) | ✕ | ✓ | |
drop() | ✓ | ✓ | |
distinct() | ✕ | ✓ | |
Side-Effect step | alias(String sideEffectKey) | ✕ | ✓ |
sideEffect(final Consumer<Traverser<E>> consumer) | ✓ | ✕ | |
sideEffect(final Traversal<?, ?> sideEffectTraversal) | ✓ | ✓ | |
cap(final String sideEffectKey, final String... sideEffectKeys) | ✓ | ✓ | |
subgraph(final String sideEffectKey) | ✓ | ✕ | |
aggregate(final String sideEffectKey) | ✓ | ✓ | |
aggregate(final Scope scope, final String sideEffectKey) | ✓ | ✕ | |
group(final String sideEffectKey) | ✓ | ✓ | |
groupCount(final String sideEffectKey) | ✓ | ✓ | |
tree(final String sideEffectKey) | ✓ | ✕ | |
sack(final BiFunction<V, U, V> sackOperator) | ✓ | ✓ | |
store(final String sideEffectKey) | ✓ | ✓ | |
profile(final String sideEffectKey) | ✓ | ✕ | |
profile() | ✓ | ✕ | |
property(final VertexProperty.Cardinality cardinality, final Object key, final Object value, final Object... keyValues) | ✓ | ✕ | |
property(final Object key, final Object value, final Object... keyValues) | ✓ | ✓ | |
branch(final Traversal<?, M> branchTraversal); | ✓ | ✓ | |
branch(final Function<Traverser<E>, M> function) | ✓ | ✕ | |
choose(final Traversal<?, M> choiceTraversal) | ✓ | ✓ | |
choose(final Traversal<?, ?> traversalPredicate, final Traversal<?, E2> trueChoice, final Traversal<?, E2> falseChoice); | ✓ | ✓ | |
choose(final Traversal<?, ?> traversalPredicate, final Traversal<?, E2> trueChoice) | ✓ | ✓ | |
choose(final Function<E, M> choiceFunction) | ✓ | ✕ | |
choose(final Predicate<E> choosePredicate, final Traversal<?, E2> trueChoice, final Traversal<?, E2> falseChoice) | ✓ | ✕ | |
choose(final Predicate<E> choosePredicate, final Traversal<?, E2> trueChoice) | ✓ | ✕ | |
optional(final Traversal<?, E2> optionalTraversal) | ✓ | ✓ | |
union(final Traversal<?, E2>... unionTraversals) | ✓ | ✓ | |
coalesce(final Traversal<?, E2>... coalesceTraversals) | ✓ | ✓ | |
repeat(final Traversal<?, E> repeatTraversal) | ✓ | ✓ | |
repeat(final String loopName, final Traversal<?, E> repeatTraversal) | ✓ | ✕ | |
emit(final Traversal<?, ?> emitTraversal) | ✓ | ✓ | |
emit(final Predicate<Traverser<E>> emitPredicate) | ✓ | ✕ | |
emit() | ✓ | ✓ | |
until(final Traversal<?, ?> untilTraversal) | ✓ | ✓ | |
until(final Predicate<Traverser<E>> untilPredicate) | ✓ | ✕ | |
times(final int maxLoops) | ✓ | ✓ | |
local(final Traversal<?, E2> localTraversal) | ✓ | ✕ | |
Vertex program step | pageRank() | ✓ | ✕ |
pageRank(final double alpha) | ✓ | ✕ | |
peerPressure() | ✓ | ✕ | |
connectedComponent() | ✓ | ✕ | |
shortestPath() | ✓ | ✕ | |
program(final VertexProgram<?> vertexProgram) | ✓ | ✕ | |
Utility step | as(final String stepLabel, final String... stepLabels) | ✓ | ✓ |
barrier() | ✓ | ✓ | |
barrier(final int maxBarrierSize) | ✓ | ✓ | |
index() | ✓ | ✕ | |
barrier(final Consumer<TraverserSet<Object>> barrierConsumer) | ✓ | ✕ | |
barrier(final Barrier barrierOption) | ✕ | ✓ | |
with(final String key) | ✓ | ✕ | |
with(final String key, final Object value) | ✓ | ✕ | |
by() | ✓ | ✓ | |
by(final Traversal<?, ?> traversal) | ✓ | ✓ | |
by(final T token) | ✓ | ✓ | |
by(final String key) | ✓ | ✓ | |
by(final Function<V, Object> function) | ✓ | ✕ | |
by(final Traversal<?, ?> traversal, final Comparator<V> comparator) | ✓ | ✕ | |
by(final Comparator<E> comparator) | ✓ | ✕ | |
by(final Order order) | ✓ | ✓ | |
by(final String key, final Comparator<V> comparator) | ✓ | ✕ | |
by(final Function<U, Object> function, final Comparator comparator) | ✓ | ✕ | |
by(final String table, final String field) | ✕ | ✓ | |
by(final Traversal traversal, final Order order) | ✕ | ✓ | |
by(final T accessor, final Order order) | ✕ | ✓ | |
by(final String key, final Order order) | ✕ | ✓ | |
by(final Column column, final Order order) | ✕ | ✓ | |
option(final M pickToken, final Traversal<?, E2> traversalOption) | ✓ | ✕ | |
option(final Traversal<?, E2> traversalOption) | ✓ | ✕ | |
option(final int pick, final Traversal optionTraversal) | ✕ | ✓ | |
option(final String pick, final Traversal optionTraversal) | ✕ | ✓ | |
option(final Pick pick, final Traversal optionTraversal) | ✕ | ✓ | |
bulk() | ✕ | ✓ | |
withBulk() | ✕ | ✓ | |
withSack() | ✕ | ✓ | |
needFold() | ✕ | ✓ | |
fields(final String... fieldNames) | ✕ | ✓ | |
IO step | read() | ✓ | ✕ |
write() | ✓ | ✕ | |
iterate() | ✓ | ✕ |