Ich habe ein Diagramm, das wie folgt aussieht: Wie sammle ich optionale Zweige in TinkerPop3?
gremlin-scala verwenden, ich versuche, von A zu überqueren und sammeln diese Tupel:
(A, Some(A1)), (B, None), (C, Some(A2))
So im Wesentlichen möchte ich immer wieder α
nehmen zu out Kanten und optional Zweig β
, sammeln diese outs. Ich vermute, dass ich einen leeren "Schritt" injizieren muss, wenn es keine β
Kante gibt, aber ich bin nicht in der Lage gewesen, herauszufinden, wie man das macht.
Ich bin auch ein wenig verwirrt darüber, wie nach β
jetzt zurückzuspulen durchqueren, dass jump
wurde auf mysteriöse Weise entfernt worden ist (TP 3.1+)
Bisher habe ich so etwas wie:
graph.V("A").untilWithTraverser(t => t.get.outE(α).notExists()
).repeat(_.out(α).as(foo).out(β).as(bar)).select((foo,bar)).toList
Aber diese wird nicht zum Haupttravers zurückgespult und schlägt fehl, wenn Knoten im "Stamm" fehlen β
out