Cypher é uma linguagem de consulta declarativa para consultar bancos de dados de gráficos. O termo declarativo é importante porque é uma forma diferente de programação dos paradigmas de programação como imperativo.
Em uma linguagem de consulta declarativa como Cypher e SQL, informamos ao mecanismo subjacente quais dados desejamos buscar e não especificamos como queremos que os dados sejam buscados.
No Cypher, um usuário define um subgráfico de interesse na cláusula MATCH. Em seguida, o mecanismo subjacente executa um algoritmo de correspondência de padrões para pesquisar as ocorrências semelhantes de subgráficos no banco de dados de gráficos.
Gremlin tem características declarativas e imperativas. É uma linguagem de passagem de gráfico em que o usuário deve fornecer instruções explícitas sobre como o gráfico deve ser navegado.
A diferença entre essas linguagens neste caso é que no Cypher podemos usar um operador estrela de Kleene para encontrar caminhos entre quaisquer dois nós em um banco de dados de grafos. Em Gremlin, entretanto, teremos que definir explicitamente todos esses caminhos. Mas podemos usar um operador de repetição em Gremlin para encontrar várias ocorrências de tais caminhos explícitos em um banco de dados de gráficos. No entanto, fazer iterações sobre estruturas explícitas não é possível no Cypher.