openCypher: Neo4js Abfragesprache wird Open Source

Neo4j, der Hersteller der gleichnamigen Graphdatenbank will mit der Öffnung seiner Abfragesprache Cypher einen Standard für Graph-Techniken schaffen.

In Pocket speichern vorlesen Druckansicht
openCypher: Neo4js Abfragesprache wird Open Source
Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag

Graphdatenbanken sind nicht in Tabellen, sondern aus Knoten und Kanten aufgebaut. Letztere beschreiben die Beziehungen zwischen zwei Nodes und machen, gemeinsam mit deren Eigenschaften, die wesentlichen Merkmale des Graphenkonzepts aus. Aufgrund dieses Aufbaus eignet sich das auf relationale Strukturen ausgerichtete SQL nicht als Abfragesprache. Bisher gibt es für Graphdatenbanken allerdings keinen ähnlichen Standard, sondern alle Hersteller kochen ihr eigenes Süppchen.

Neo4j benutzt für seine Datenbank die deklarative Sprache Cypher. Deklarativ bedeutet, dass die Ausdrücke das widerspiegeln, was gefunden werden soll, nicht wie es gesucht wird. Die Struktur der Ausdrücke lehnt sich durchaus an SQL an. Die wesentlichen Schlüsselwörter sind MATCH, WHERE und RETURN. Ersteres beschreibt die gesuchte Verbindung und kann sowohl Eigenschaften als auch Beziehungen enthalten. Relation kann dabei sowohl die Art der Verbindung sein als auch die Entfernung, um beispielsweise direkte Verbindungen auszuschließen. Folgende Abfrage aus Neo4js Dokumentation findet alle Freundesfreunde von Personen, die John heißen:

MATCH (john {name: 'John'})-[:friend]->()-[:friend]->(fof)
RETURN john.name, fof.name

WHERE entspricht im Wesentlichen der Nutzung in SQL, indem es nach bestimmten Eigenschaften filtert. RETURN bezeichnet schließlich, welche Informationen des Resultats zurückgegeben werden. Die Abfrage erlaubt zudem das Erstellen, Löschen und Ändern von Knoten, Kanten oder einzelnen Eigenschaften.

Wenn es nach Neo4j geht, soll Cypher künftig zur Standard-Graph-Abfragesprache werden. Mit dem Projekt openCypher veröffentlicht das Unternehmen die Spezifikation unter der Creative- Commons- und eine Referenzimplementation unter der Apache-Lizenz. Zusätzlich gibt es eine Referenzdokumentation und ein Technology Certification Kit (TCK), das Softwarehersteller zur Selbstzertifizierung nutzen.

Zu den Unterstützern von openCypher gehören neben zahlreichen Neo4j-Partnerfirmen und -Werkzeugherstellern mit Oracle und Databricks zwei Schwergewichte aus der Welt der Datenverarbeitung, die aber selbst nicht auf Graphen aufbauen. Da Neo4j die am weitesten verbreitete Graphdatenbank ist, stehen die Chancen der breiten Akzeptanz gut, zumal von einer Standardisierung auch der Wettbewerb profitieren würde. (rme)