You are mixing @hasInverse directive (GraphQL) and reverse notation from GraphQL, plus a type “reverse”.
You can set @reverse on the DQL schema and get relations like ~Grade.belonged__learning_stage working but I would suggest to set links at GraphQL level if you have decided to use GraphQL.
You would need to name the reverse edge and use GrapphQL mutations to set the data (our GraphQL layer will ensure that hasReverse is honored and correct predicates are created.
Let us know your approach so we can help better…