Cypher est un langage de requête déclaratif permettant d'interroger des bases de données graphiques. Le terme déclaratif est important car il s'agit d'une manière de programmer différente de celle des paradigmes de programmation comme l'impératif.
Dans un langage de requête déclaratif comme Cypher et SQL, nous indiquons au moteur sous-jacent quelles données nous voulons récupérer et nous ne spécifions pas comment nous voulons que les données soient extraites.
Dans Cypher, un utilisateur définit un sous-graphe d'intérêt dans la clause MATCH. Ensuite, le moteur sous-jacent exécute un algorithme de correspondance de modèles pour rechercher les occurrences similaires du sous-graphe dans la base de données de graphes.
Gremlin est à la fois des fonctionnalités déclaratives et impératives. Il s'agit d'un langage de traversée de graphe dans lequel un utilisateur doit donner des instructions explicites sur la façon dont le graphe doit être parcouru.
La différence entre ces langages dans ce cas est que dans Cypher, nous pouvons utiliser un opérateur en étoile Kleene pour trouver des chemins entre deux nœuds donnés dans une base de données de graphes. Dans Gremlin cependant, nous devrons définir explicitement tous ces chemins. Mais nous pouvons utiliser un opérateur de répétition dans Gremlin pour trouver plusieurs occurrences de tels chemins explicites dans une base de données de graphes. Cependant, faire des itérations sur des structures explicites n'est pas possible dans Cypher.