Innerhalb der Gremlin-Sprache (ein Groovy Kind) bin ich ein wenig verwirrt durch das Verhalten und die Verwendung von ;
, &&
.Wie lautet die Syntax für Sequenzanweisungen in Gremlin?
Zum Beispiel in GremlinClient REPL (1,0 hier Titan läuft) Ich könnte ein paar Knoten auf einmal hinzuzufügen wünschen:
gremlin> graph = TitanFactory.open("../conf/gremlin-server/titan-cassandra-server.properties")
==>standardtitangraph[cassandra:[localhost]]
gremlin> g = graph.traversal(standard())
==>graphtraversalsource[standardtitangraph[cassandra:[localhost]], standard]
gremlin> g.V().count()
==>0
gremlin> g.addV(label, 'Subject', 'ident', '1') ; g.addV(label, 'Subject', 'ident', '2')
==>v[4304]
gremlin> g.V().count()
==>1
OK, arbeiten, so hat ;
nicht. Wie wäre es mit &&
? Es ist nicht ganz haben die Semantik ich will, aber ich konnte durch sie arbeiten:
gremlin> g.V().count()
==>0
gremlin> g.addV(label, 'Subject', 'ident', '1') && g.addV(label, 'Subject', 'ident', '2')
==>true
gremlin> g.V().count()
==>2
Nun ... das ist irgendwie ok. Jetzt muss ich auch in der Lage sein, Variablen als Teil der Befehlsfolge zu binden. Seltsamerweise funktioniert das Semikolon hier:
gremlin> g.V().count()
==>0
gremlin> g.E().count()
==>0
gremlin> g.addV(label, 'Subject', 'ident', '1') && g.addV(label, 'Subject', 'ident', '2')
==>true
gremlin> node3 = graph.addVertex(label, 'Subject', 'ident', '3') ; g.V().has('ident', '1').next().addEdge('dc:isPartOf', node3) ; node3.addEdge('dc:isPartOf', g.V().has('ident','2').next())
==>e[35z-6d4-2l91-9n4][8248-dc:isPartOf->12496]
gremlin> g.V().count()
==>3
gremlin> g.E().count()
==>2
Jetzt ist hier der Trick. Wie kann ich beide Vorgänge in einer Zeile ausführen (in der Praxis eine Websocket-Anfrage)? Ich kann nicht scheinen, sogar die oben genannte node3 = ...
Linie über ;
zu duplizieren und korrekte Funktionalität zu erhalten.
"Iterieren Sie Ihre Traversal" fängt Menschen jedes Mal. Siehe auch: http://tinkerpop.apache.org/docs/current/tutorials/the-gremlin-console/#result-iteration - beachte, dass Gremlin in TinkerPop 2.x ein "grooviges" war. Ich würde diese Einschränkung für TinkerPop 3.x nicht mehr wirklich festlegen. –
Vielen Dank! –