I don’t get the question.
First, are you using GraphQL or DQL in your project/app? Stick to one only, if you gonna use GraphQL, use DQL only in especial cases.
Why you are using reverse and hasInverse at the same time? both are completely different things.
Why your GraphQL Video Type has so many predicates and your DQL doesn’t?
You say “elegant”, which sounds like a Schema Design question. Designing a Graph DB is completely free to inspiration. I would recommend keeping it simple, as things can get complex fast(with our bias).