Ah, thats better as you don't need all the unbound variables. However, you still don't need "graphs" unless for the English reading of the promotion.
In Gremlin3, the above is:
g.V().match(
as("openCypher").out("makesAvailable").hasLabel("QueryLanguage").as("cypher").out("queries").as("graphs"),
as("user").out("uses").as("cypher"),
where("user", within(["Oracle","Apache Spark", "Tableau", "Structr"])),
select("cypher").by("attributes")