A Compositional Language for Property Graphs
Dit artikel adresseert het gebrek aan compositionaliteit in de gestandaardiseerde graafquerytalen GQL en SQL/PGQ door een nieuwe compositionele taal voor te stellen die regular path queries combineert met een volledig compositionele graph-to-graph #Datalog-extensie om expressiviteitsverschillen te overbruggen en de constructie van nieuwe graafelementen mogelijk te maken.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je voor dat je een vriend de weg wilt wijzen met behulp van een kaart. In de wereld van data wordt deze kaart een Property Graph genoemd. Het is een netwerk van stippen (mensen, accounts, producten) en lijnen (relaties, overboekingen, verbindingen) waarbij aan elke stip en lijn kleine aantekeningen kunnen worden toegevoegd, zoals "saldo" of "tijdstip".
Onlangs zijn er twee nieuwe officiële regelboeken gemaakt voor het stellen van vragen over deze kaarten: GQL en SQL/PGQ. Zie dit als de "verkeersregels" voor het navigeren door data. De auteurs van dit artikel beweren dat deze nieuwe regelboeken een groot gebrek hebben: ze zijn niet compositioneel.
Het Probleem: De "Gebroken Keten"
Om "compositionaliteit" te begrijpen, stel je voor dat je een ketting van paperclips bouwt.
- Compositioneel: Je kunt een voltooide ketting nemen, naar de laatste schakel kijken, en er direct een volgende schakel aan bevestigen. Het geheel blijft verbonden.
- Niet-compositioneel (het huidige probleem): In de nieuwe regelboeken, als je een ketting van verbindingen bouwt en vervolgens een andere schakel aan het uiteinde probeert toe te voegen, vergeet het systeem de details van de vorige schakels. Het is alsof je probeert een ketting te bouwen, maar elke keer dat je een nieuwe schakel toevoegt, laat het systeem de vorige vallen en begint het opnieuw met een leeg blad.
Het voorbeeld uit de echte wereld:
Het artikel geeft een voorbeeld uit de bankwereld.
- Eenvoudige query: "Vind twee bankrekeningen waarbij het geld bij elke overboeking tussen hen in toeneemt." De huidige regelboeken kunnen dit gemakkelijk.
- De moeilijke query: "Vind twee bankrekeningen waarbij de tijd van de overboekingen bij elke stap toeneemt."
- Stel je een keten van overboekingen voor die plaatsvinden om 11:00, 12:00, 13:00 en 14:00 uur.
- De huidige regelboeken falen hier. Waarom? Omdat wanneer ze proberen de tijd van de volgende overboeking te controleren, ze het geheugen van de tijd van de vorige overboeking verliezen. Ze kunnen de stappen niet aan elkaar "lijmen" om de hele oplopende tijdlijn te zien.
Dit is vreemd omdat deze regelboeken bedoeld zijn om bijna elk logisch puzzelstukje op te lossen (wiskundig gezien zouden ze "NLOGSPACE"-problemen moeten kunnen afhandelen), maar deze eenvoudige puzzel over "oplopende tijd" brengt ze aan de grond.
De Oplossing: Twee Nieuwe Hulpmiddelen
De auteurs stellen twee nieuwe hulpmiddelen voor om deze gebroken keten te repareren. Denk aan een betere schaar en een nieuwe soort lijm.
Hulpmiddel 1: De "Symmetrische Pad" (RPQVs)
Momenteel behandelen de regelboeken Nodes (stippen) en Edges (lijnen) verschillend. Het is als een spel waarbij je alleen op de stippen kunt stappen, maar de lijnen tussen hen zijn onzichtbaar of gedragen zich vreemd.
- De Fix: De auteurs stellen een nieuwe manier voor om paden te schrijven waarbij stippen en lijnen gelijkwaardig worden behandeld. Je kunt op een lijn beginnen, op een lijn eindigen, en het systeem onthoudt elke stap en de details ervan (zoals tijd of bedrag) zonder het geheugen te verliezen.
- De Analogie: In plaats van een spel waarbij je van eiland naar eiland moet springen en de brug die je net bent overgestoken vergeet, laat dit nieuwe hulpmiddel je over de bruggen lopen terwijl je een voortlopend dagboek bijhoudt van elke stap die je zet.
Hulpmiddel 2: De "Graph Builder" (#Datalog)
Soms is het antwoord op een vraag niet alleen het vinden van een pad; het is het bouwen van een nieuwe kaart op basis van de oude.
- De Fix: De auteurs introduceren een taal genaamd #Datalog. Hiermee kun je de resultaten van een query nemen en deze omzetten in gloednieuwe stippen en lijnen op de kaart.
- De Analogie: Stel je een kaart van een stad voor. Je vindt alle straten met toenemend verkeer. In plaats van alleen die straten te vermelden, stelt #Datalog je in staat om die straten te nemen en fysiek een nieuwe snelweg te bouwen die hen verbindt. Je kunt vervolgens vragen stellen over deze nieuwe snelweg.
- Dit creëert een feedbackloop: Je bevraagt de kaart Je bouwt een nieuw deel van de kaart Je bevraagt het nieuwe deel. De huidige regelboeken staan niet toe dat je het nieuwe deel bouwt; ze laten je alleen naar het oude deel kijken.
Het Resultaat: Een Volledige Gereedschapskist
Door deze twee hulpmiddelen te combineren, laten de auteurs zien dat je eindelijk elke logische vraag over de graaf kunt stellen die een computer redelijkerwijs kan oplossen, zonder dat je complexe, trage omwegen nodig hebt die de computer laten vastlopen of urenlang laten draaien.
Ze stellen voor om deze functies toe te voegen aan de officiële GQL- en SQL/PGQ-standaarden.
- Compatibiliteit achterwaarts: Ze beloven dat het toevoegen van deze nieuwe hulpmiddelen bestaande queries niet zal breken. Het is als het toevoegen van een nieuwe rijstrook aan een snelweg; de oude auto's kunnen nog steeds in de oude rijstroken rijden, maar nu is er ook een snelle rijstrook voor complexe ritten.
- Het Doel: Om ervoor te zorgen dat de "verkeersregels" voor datagraven logisch, consistent en krachtig genoeg zijn om de complexe redeneringen aan te kunnen die nodig zijn voor zaken als fraude detectie, toeleveringsketens en financiële analyse.
Kortom, het artikel zegt: "De nieuwe regelboeken voor datagraven missen een essentieel stuk logica waardoor ze het verleden vergeten. Wij hebben een eenvoudige, elegante oplossing ontworpen waarmee het systeem de hele reis kan onthouden en zelfs nieuwe wegen kan bouwen terwijl het rijdt, waardoor de taal compleet en klaar voor de toekomst is."
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.