GRIN: Gráf alapú RDF index Krámli Erik Márkus
Bevezetés Az RDF (Resource Description Framework) egy adatleíró nyelv amellyel erőforrásokról szóló információkat ábrázolhatunk a weben. A „dolgokat” ún. URI (Uniform Resource Identifier) egységes erőforrás-azonosítók segítségével azonosíthatjuk, és egyszerű tulajdonságokkal leírhatjuk. Lehetővé teszi kijelentések megfogalmazását erőforrásokról gépi feldolgozásra alkalmas formában. A kijelentések erőforrások tulajdonságainak értékeit adják meg.
Bevezetés RDF kijelentéseket úgynevezett RDF hármasok reprezentálnak. Ezek rendezett hármasok, melyek alakja: Alany (subject): RDF URI hivatkozás, vagy üres csomópont Állítmány (predicate): RDF URI hivatkozás Tárgy (object): RDF URI hivatkozás, üres csomópont, vagy literál Egy RDF hármas jelentése, hogy az alany és a tárgy az állítmány által jelölt viszonyban van egymással. Egy RDF gráf RDF hármasok egy halmaza. Jelentését a gráfot alkotó RDF hármasok jelentésének összessége adja. RDF gráf adatmodell: A gráf csúcsainak halmazát a hármasok alanyai és tárgyai alkotják. A gráf élei a hármasok állítmányainak felelnek meg.
RDF gráf lekérdezések Legyenek a következő halmazok: U, elemei URI referenciák L, elemei literálok Up a tulajdonságok halmaza R az erőforrások halmaza, U és L úniója Egy RDF hármas alakja: (s,p,v)3 , ahol: s ϵ U p ϵ Up v ϵ R
RDF gráf lekérdezések Az RDF gráf lekérdezés egy (N,V,E,λn) négyes, ahol: N a csúcsok halmaza V a változók halmaza E az élek halmaza, Es (szimpla élek) és Ed (dupla élek) úniója λn egy csúcscímkéző függvény A D RDF gráfon egy q = (N,V,E,λn) lekérdezés eredménye egy q(D)-vel jelölt halmaz, ami a változók helyettesítését tartalmazza: {ϴ1,…, ϴk} , ahol ϴi : V → R. Vagyis a válaszban minden elem egy RDF hármas, ami a D egy részgráfja és kielégíti a q lekérdezést.
GRIN index A GRIN index egy kiegyensúlyozott bináris fa, ahol: A levélcsúcsok halmazai diszjunktak, melyek az erőforrások halmazának részhalmazait tartalmazzák. Minden nem levélcsúcs tartalmaz egy (c,r) párt, ahol c egy erőforrás, r pedig egy természetes szám. Egy belső csúcs a bináris fában implicit reprezentálja az összes olyan csúcsot az RDF gráfban, amik legfeljebb r egység távolságra vannak a központtól.
GRIN index Példa a GRIN indexre
Az indexelés felépítése Mivel kiegyensúlyozott bináris fát szeretnénk építeni, ezért a levelek száma kettő hatványa lesz. A GRINBuild algoritmus alulról felfelé építi a fát. Kezdetben a gráf csúcsait egy C diszjunkt halmazrendszerbe csoportosítjuk a PAM csoportosító algoritmus segítségével. Minden közbülső szintre a fában a GRINBuild választ egy tetszőleges u csúcsot az elérhetőek közül, és meghatározza a hozzá legközelebbi v csúcsot. Ezután u-t és v-t egy új (c,r) szülőcsúcshoz rendeljük. A GRIN struktúra csak rámutat az RDF beli elemre, nem tárolja el azt.
Az indexelés felépítése
Lekérdezések kiértékelése Egy q = (N,V,E,λn) lekérdezés eredménye a GRIN struktúrán egy halmaz lesz, ami a változók helyettesítéseit fogja tartalmazni. Először kinyerjük az egyenlőtlenséggel adott korlátozó feltételeket a lekérdezésből. Majd ezeket úgy használjuk fel, hogy azonosítsák a GRIN index azon csúcsait, amelyek tartalmazhatják a választ a lekérdezésre.
Lekérdezések kiértékelése Csúcsok elfogadása/elutasítása: Vegyünk egy (c,r) körnek megfelelő GRIN csúcsot R1: Bármely x konstans erőforrásra: elutasítjuk (c,r)-t, ha bármely konstans faktor a körön kívül esik. R2: Ha létezik olyan v változó, amit nem elégít ki (c,r), akkor elutasítjuk (c,r)-t. A GRINAnswer algoritmus az I GRIN index egy nI csúcsára kiértékeli a q lekérdezést az nI gyökerű részfában: Ha egy levélcsúcsra hívtuk meg, akkor összeillesztjük a lekérdező gráfot egy olyan részgráffal, ami tartalmazza az nI által reprezentált erőforrást. Ha nI egy lehetséges megoldás, akkor megpróbáljuk rekurzívan meghívni az algoritmust nI bal-, illetve jobbgyerekeire.
Lekérdezések kiértékelése
Teszteredmények