Cypher is a query language specifically designed for graph databases. It was developed by [[Neo4j]], one of the leading graph database management systems. Cypher provides a simple and expressive syntax to interact with the graph data model. It allows users to retrieve, create, update, and delete nodes and relationships in the graph database. Key features of Cypher include: 1. Pattern matching: Cypher uses a pattern matching syntax inspired by SQL's SELECT statement. It allows users to specify patterns of nodes and relationships they want to retrieve from the graph. 2. Property-based querying: Users can query nodes and relationships based on their properties. This enables filtering and searching for specific data within the graph. 3. Traversal and path finding: Cypher supports traversing the graph by following relationships between nodes. Users can specify patterns of paths they want to traverse or find shortest paths between nodes. 4. Aggregation and grouping: Cypher provides various aggregation functions like COUNT, SUM, AVG, etc., allowing users to perform calculations on retrieved data. 5. Query composition: Cypher queries can be composed using multiple clauses such as MATCH, WHERE, RETURN, CREATE, DELETE, etc., allowing users to build complex queries using a combination of these clauses. 6. Indexing and constraints: Cypher supports indexing on properties for efficient querying and provides constraint validations for maintaining data integrity. 7. Integration with programming languages: Cypher can be embedded within programming languages through Neo4j's official drivers or APIs, allowing developers to interact with the graph database from their preferred language. Cypher's simplicity and expressiveness make it easy for both developers and non-technical users to work with graph databases efficiently. It has become a popular choice for querying and manipulating graph data due to its intuitive syntax and powerful capabilities. # References ```dataview Table title as Title, authors as Authors where contains(subject, "Cypher") or contains(subject, "Neo4j") ```