Expressive Power of Property Graph Constraint Languages

Dit artikel presenteert het eerste systematische onderzoek naar de expressiviteit van PG-Keys, een nieuwe constrainttaal voor eigenschapsgrafieken die de GQL-standaard zal informeren, door deze via een unificerend kader te vergelijken met bestaande formalismen zoals GFD en GGD en zo een strikte hiërarchie van expressieve kracht vast te stellen.

Stefania Dumbrava, Nadime Francis, Victor Marsault, Steven Sailly

Gepubliceerd Wed, 11 Ma
📖 4 min leestijd☕ Koffiepauze-leesvoer

Each language version is independently generated for its own context, not a direct translation.

Stel je voor dat je een enorme, complexe stad bouwt. In deze stad zijn er gebouwen (de knopen of nodes) en wegen die ze verbinden (de lijnen of edges). Maar deze stad is niet zomaar een stad; elk gebouw en elke weg heeft ook een adresboekje met extra informatie, zoals "naam", "eigenaar" of "geopend op datum". Dit noemen we een Property Graph.

Nu, als je zo'n stad wilt bouwen, wil je regels hebben. Je wilt bijvoorbeeld zeggen: "Elk gebouw moet een eigenaar hebben" of "Twee gebouwen mogen niet dezelfde naam hebben". Deze regels noemen we constraints (beperkingen of waarheidswaarden).

Deze paper is een wetenschappelijk onderzoek dat zich afvraagt: Welke taal is het beste om deze regels te schrijven? En belangrijker nog: Welke taal kan de meeste en slimste regels beschrijven?

De auteurs vergelijken drie verschillende "taalstelsels" die ontwikkelaars gebruiken om deze regels op te stellen:

  1. GFD (Graph Functional Dependencies): De oude, betrouwbare standaard.
  2. GGD (Graph Generating Dependencies): Een krachtigere, maar complexere taal.
  3. PG-Keys: Een nieuwe, moderne taal die speciaal is ontworpen voor deze eigenschappen-rijke grafen (en die binnenkort de officiële standaard wordt).

Het Grote Experiment: De "Gedeelde Variabelen"

Om deze talen eerlijk te vergelijken, kijken de auteurs naar één specifiek trucje: Hoeveel "draadjes" mogen de twee kanten van een regel met elkaar delen?

Stel je een regel voor als een brug tussen twee eilanden:

  • Eiland A (De Bron): Waar de regel begint (bijvoorbeeld: "Kijk naar alle mensen in een forum").
  • Eiland B (Het Doel): Wat er moet gebeuren (bijvoorbeeld: "Zorg dat ze allemaal dezelfde taal spreken").

In de oude talen (GFD) mag je maar één persoon uit Eiland A koppelen aan één persoon op Eiland B.
In de krachtigere taal (GGD) mag je veel personen koppelen.

De auteurs ontdekten iets verrassends:

  • Als je alleen maar gelijkheid mag gebruiken (bijv. "A is hetzelfde als B"), dan is de nieuwe taal (PG-Keys) net zo slim als de krachtige taal (GGD), mits je slimme trucjes gebruikt met woorden als "SINGLETON" (maximaal één) of "EXCLUSIVE" (alleen maar unieke waarden).
  • Maar als je ook ongelijkheid mag gebruiken (bijv. "A is NIET hetzelfde als B"), dan wordt het nog interessanter. Dan blijkt dat de nieuwe taal (PG-Keys) precies even krachtig is als een heel specifieke, beperkte versie van de krachtige taal.

De Grootste Ontdekking: "Smaakmakers" vs. "Echte Kracht"

Het meest opvallende resultaat van dit onderzoek is dit:
De nieuwe taal (PG-Keys) heeft speciale woorden als MANDATORY (verplicht), EXCLUSIVE (uitsluitend) en SINGLETON (slechts één).

De auteurs bewijzen dat deze woorden eigenlijk alleen maar smaakmakers zijn. Ze maken het voor mensen makkelijker om regels te schrijven, maar ze voegen geen nieuwe wiskundige kracht toe.

  • Vergelijking: Het is alsof je een recept hebt. Je kunt zeggen "voeg een snufje zout toe" (het woord SINGLETON) of je kunt het recept herschrijven door precies te zeggen "voeg 0,5 gram zout toe" (de complexe wiskundige taal). Het resultaat is hetzelfde, maar het ene is makkelijker te lezen.

Als je de taal (PG-Keys) gebruikt met de mogelijkheid om "niet gelijk aan" te zeggen, dan kun je elke regel die je met die speciale woorden schrijft, vertalen naar de basiswiskundige taal. De speciale woorden zijn dus syntaxis-suiker: lekker om te gebruiken, maar niet essentieel voor de kracht van de machine.

Waarom is dit belangrijk?

Deze paper is niet zomaar een theoretisch gedoe. Het gaat over de toekomst van de GQL-standaard. GQL is het nieuwe "SQL" voor graf-databases (zoals Neo4j).

De auteurs zeggen tegen de mensen die deze standaard schrijven:
"Jullie willen PG-Keys in de standaard opnemen. Dat is prima, want het is handig voor gebruikers. Maar wees je ervan bewust dat je geen 'magische' nieuwe kracht toevoegt aan de database. Je voegt alleen maar een betere interface toe. Als je echt complexe regels wilt controleren, moet je weten dat je soms de 'zware' taal (GGD) nodig hebt, of dat je slim moet zijn met je variabelen."

Samenvatting in één zin:

De auteurs hebben bewezen dat de nieuwe, populaire taal voor het controleren van graf-databases (PG-Keys) net zo krachtig is als de zware wiskundige taal (GGD), zolang je maar slimme regels gebruikt, en dat de speciale woorden in die nieuwe taal vooral bedoeld zijn om het menselijk leven makkelijker te maken, niet om de computer superkrachten te geven.