Hi,
1 & 2 ) I understand 1 and 2. And thanks for the answer.
3 ) The code is quite not right. First, no it is not a single organisation, it any organization that has Tweeted a msg and that has been liked by any person. Unfortunately you got the relation backward there.
The relation are, person-(Like)->msg and msg -(TwittedBy)->Org.
I think the Gremlin code summarises it Well
g.V().hasLabel("Person").where(
out('likes').hasLabel('Message').
out('twitted_by').hasLabel('Organization')
)
The Key in Gremlin is the Where step which has they define it, is a filter.
In the same way, your new syntax v2 express it quite easily
SELECT s
FROM Person:s-(LIKES>) -:msg - (TWEETED_BY>)-Organization:t
The thing is, i’m a trying to understand the nuts and bolts of GSQL, hence i want to know the classic GSQL syntax for it, and understand, how under the hood, Syntax v2, implement/operate the query. There might be a time, where i won’t be happy with the default traversal generated by Syntax V2.
To me that is not quite equivalent to
myOrgs = Organization.*;
myMsg = SELECT msg FROM myOrgs -(reverse_TWEETED_BY)-> Message:msg;
myPeople = select s from myMsg -(reverse_LIKES)-> Person:s;
As a matter if fact syntax v2 does not require the existence of a reverse edge here. Hence there must be a way this is decomposted and executed at run time that could be expressed in the classic GSQL… no ?