Cypher es un lenguaje de consulta declarativo para consultar bases de datos de gráficos. El término declarativo es importante porque es una forma diferente de programar que los paradigmas de programación como imperativo.
En un lenguaje de consulta declarativo como Cypher y SQL, le decimos al motor subyacente qué datos queremos obtener y no especificamos cómo queremos que se obtengan los datos.
En Cypher, un usuario define un subgráfico de interés en la cláusula MATCH. Luego, el motor subyacente ejecuta un algoritmo de coincidencia de patrones para buscar ocurrencias similares de subgráfico en la base de datos de gráficos.
Gremlin tiene características tanto declarativas como imperativas. Es un lenguaje de recorrido de gráficos en el que un usuario debe dar instrucciones explícitas sobre cómo navegar por el gráfico.
La diferencia entre estos lenguajes en este caso es que en Cypher podemos usar un operador de estrella de Kleene para encontrar rutas entre dos nodos dados en una base de datos de gráficos. En Gremlin, sin embargo, tendremos que definir explícitamente todos esos caminos. Pero podemos usar un operador de repetición en Gremlin para encontrar múltiples ocurrencias de tales rutas explícitas en una base de datos de gráficos. Sin embargo, hacer iteraciones sobre estructuras explícitas no es posible en Cypher.