[
https://issues.apache.org/jira/browse/TINKERPOP-968?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15136464#comment-15136464
]
Daniel Kuppitz commented on TINKERPOP-968:
------------------------------------------
{code}
gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().coalesce(out("knows"), identity()).coalesce(out("created"),
identity()).path()
==>[v[1], v[2], v[2]]
==>[v[1], v[4], v[5]]
==>[v[1], v[4], v[3]]
==>[v[2], v[2], v[2]]
==>[v[3], v[3], v[3]]
==>[v[4], v[4], v[5]]
==>[v[4], v[4], v[3]]
==>[v[5], v[5], v[5]]
==>[v[6], v[6], v[3]]
gremlin> g.V().choose(out("knows"), out("knows"),
identity()).choose(out("created"), out("created"), identity()).path()
==>[v[1], v[2]]
==>[v[1], v[4], v[5]]
==>[v[1], v[4], v[3]]
==>[v[2]]
==>[v[3]]
==>[v[4], v[5]]
==>[v[4], v[3]]
==>[v[5]]
==>[v[6], v[3]]
{code}
> Add first class support for an optional traversal
> -------------------------------------------------
>
> Key: TINKERPOP-968
> URL: https://issues.apache.org/jira/browse/TINKERPOP-968
> Project: TinkerPop
> Issue Type: Improvement
> Components: process
> Affects Versions: 3.1.0-incubating
> Reporter: pieter martin
>
> Both SparQL and Cypher use the "Optional" keyword to indicate an optional
> traversal. SQL uses the "left join".
> Gremlin has no first class support for an optional traversal. It can be
> achieved with the choose step but it is verbose, unintuitive and not what the
> choose step is intended for.
> The benefits of optional traversals are many. In particular it makes it
> trivial to load complete subgraphs/trees with one easy to read intuitive
> gremlin statement.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)