Čo sa teraz deje s úložiskami RDF?

Sémantický web a prepojené údaje sú ako vesmír: neexistuje tam žiadny život. Ísť tam na viac-menej dlhé obdobie... Neviem, čo vám povedali v detstve na otázku „Chcem sa stať astronautom“. Ale môžete pozorovať, čo sa deje na Zemi; Je oveľa jednoduchšie stať sa amatérskym astronómom alebo dokonca profesionálom.

Článok sa zameria na najnovšie, nie staršie ako niekoľko mesiacov, trendy zo sveta ukladania RDF. Metafora v prvom odseku je inšpirovaná reklamným obrázkom epickej veľkosti pod strihom.


Epický obrázok

Čo sa teraz deje s úložiskami RDF?

I. GraphQL pre prístup RDF

Hovoriaže GraphQL má za cieľ stať sa univerzálnym databázovým prístupovým jazykom. A čo možnosť prístupu k RDF pomocou GraphQL?

Po vybalení túto príležitosť poskytuje:

Ak úložisko takúto možnosť neposkytuje, možno ju implementovať nezávisle napísaním vhodného „riešiteľa“. Tak sa im to podarilo napríklad vo francúzskom projekte Dátová turistika. Alebo už nemôžete nič písať, ale len brať HyperGraphQL.

Z pohľadu ortodoxného prívrženca sémantického webu a prepojených dát je to všetko, samozrejme, smutné, pretože sa zdá byť navrhnuté pre integrácie postavené okolo ďalšieho dátového sila a nie vhodných platforiem (samozrejme, RDF obchody) .

Dojmy z porovnania GraphQL so SPARQL sú dvojaké.

  • Na jednej strane vyzerá GraphQL ako vzdialený príbuzný SPARQL: rieši problémy s prevzorkovaním a multiplicitou dopytov, ktoré sú pre REST typické - bez ktorých by zrejme nebolo možné uvažovať dopytovací jazyk, aspoň pre web;
  • Na druhej strane, rigidná schéma GraphQL je sklamaním. Preto sa jeho „introspektívnosť“ zdá byť veľmi obmedzená v porovnaní s úplnou reflexivitou RDF. A neexistuje žiadna analógia majetkových ciest, takže nie je ani celkom jasné, prečo je to „Graf-“.

II. Adaptéry pre MongoDB

Trend, ktorý dopĺňa predchádzajúci.

  • Teraz v Stardog možná - najmä všetko na rovnakom GraphQL - nakonfigurujte mapovanie údajov MongoDB do virtuálnych grafov RDF;
  • Ontotext GraphDB nedávno umožňuje vložte fragmenty do SPARQL na MongoDB Query.

Ak hovoríme širšie o adaptéroch na zdroje JSON, ktoré umožňujú viac-menej „za behu“ reprezentovať JSON uložený v týchto zdrojoch ako RDF, môžeme si pripomenúť pomerne dlhotrvajúci Generovať SPARQL, ktoré je možné upraviť, napríklad, do Apache Jena.

Zhrnutím prvých dvoch trendov môžeme povedať, že RDF úložiská preukazujú plnú pripravenosť na integráciu a prevádzku v podmienkach „polyglotnej perzistencie“. Je však známe, že tento posledný už dávno nie je v móde a nahrádza ho prichádza multi-model. Ako je to s multimodelovaním vo svete ukladania RDF?

Skrátka v žiadnom prípade. Téme viacmodelových DBMS by som rád venoval samostatný článok, ale zatiaľ možno poznamenať, že v súčasnosti neexistujú žiadne viacmodelové DBMS „založené“ na grafovom modeli (za jeho typ možno považovať RDF) . Niektoré malé multi-modelovanie - podpora RDF úložiska pre alternatívny model grafu LPG - bude diskutované v oddiel V.

III. OLTP vs. OLAP

Avšak to isté Gartner píšeže multimodel je podmienkou sine qua non predovšetkým pre operačné sály DBMS. Je to pochopiteľné: v situácii „multivariačného skladovania“ vznikajú hlavné problémy s transakčnosťou.

Kde sa však nachádzajú úložiská RDF na stupnici OLTP-OLAP? Odpovedal by som takto: ani tam, ani tu. Na označenie toho, na čo sú určené, je potrebná nejaká tretia skratka. Ako možnosť by som navrhol OLIP — Intelektuálne spracovanie online.

Stále však:

  • integračné mechanizmy s MongoDB implementované v GraphDB sú v neposlednom rade zamýšľané obísť problémy s výkonom zápisu;
  • Stardog ide ešte ďalej a úplne prepisuje engine, opäť s cieľom zlepšiť výkon nahrávania.

Teraz mi dovoľte predstaviť nového hráča na trhu. Od tvorcov IBM Netezza a Amazon Redshift - AnzoGraph™. Na začiatku článku bol uverejnený obrázok z reklamy na produkt, ktorý je na nej založený. AnzoGraph sa stavia ako riešenie GOLAP. Ako sa vám páči SPARQL s funkciami okien? —

SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE {  …  }

IV. RocksDB

Už vyššie bol tam odkaz k oznámeniu Stardog 7 Beta, v ktorom sa uvádzalo, že Stardog bude používať RocksDB ako základný úložný systém – obchod kľúč-hodnota, Facebook fork Google LevelDB. Prečo sa oplatí hovoriť o určitom trende?

Po prvé, súdiac podľa článok z Wikipédie, nielen RDF úložiská sú „transplantované“ do RocksDB. Existujú projekty na použitie RocksDB ako ukladacieho modulu v ArangoDB, MongoDB, MySQL a MariaDB, Cassandra.

Po druhé, na RocksDB vznikajú projekty (teda nie produkty) na relevantné témy.

Napríklad eBay používa RocksDB in platforma pre váš „vedomostný graf“. Mimochodom, je zábavné čítať: dotazovací jazyk začal ako domáci formát, ale v poslednej dobe sa zmenil na oveľa viac podobný SPARQL. Ako vo vtipe: bez ohľadu na to, aký vedomostný graf vytvoríme, stále skončíme s RDF.

Ďalší príklad – ten, ktorý sa objavil pred pár mesiacmi Služba dopytov histórie wikiúdajov. Pred jeho zavedením bolo potrebné získať prístup k historickým informáciám Wikidata MWAPI na štandardné rozhranie Mediawiki API. S čistým SPARQL je teraz možné veľa. „Pod kapotou“ je aj RocksDB. Mimochodom, zdá sa, že WDHQS vytvorila osoba, ktorá importovala Freebase do Google Knowledge Graph.

V. Podpora LPG

Pripomeniem vám hlavný rozdiel medzi grafmi LPG a grafmi RDF.

V LPG je možné skalárne vlastnosti priradiť inštanciám hrán, zatiaľ čo v RDF ich možno priradiť iba „typom“ hrán (ale nielen skalárnym vlastnostiam, ale aj obyčajným spojeniam). Toto obmedzenie RDF v porovnaní s LPG prekonať jedna alebo druhá technika modelovania. Obmedzenia LPG v porovnaní s RDF sa prekonávajú ťažšie, ale LPG grafy sú skôr obrázky z Harari učebnice ako RDF grafy, a preto ich ľudia chcú.

Úloha „podpory LPG“ samozrejme spadá do dvoch častí:

  1. vykonávanie zmien v modeli RDF, ktoré v ňom umožňujú simulovať štruktúry LPG;
  2. vykonanie zmien v dopytovacom jazyku RDF, ktoré umožňujú prístup k údajom v tomto upravenom modeli, alebo implementácia možnosti zadávať dopyty do tohto modelu v obľúbených jazykoch dopytov LPG.

V.1. Dátový model

Je tu viacero možných prístupov.

V.1.1. Nehnuteľnosť Singleton

Najdoslovnejší prístup k harmonizácii RDF a LPG je pravdepodobne singleton majetok:

  • Namiesto napr. predikátu :isMarriedTo používajú sa predikáty :isMarriedTo1, :isMarriedTo2 a t d ..
  • Tieto predikáty sa potom stanú predmetom nových trojíc: :isMarriedTo1 :since "2013-09-13"^^xsd:date atď
  • Spojenie týchto inštancií predikátov so spoločným predikátom je založené na trojiciach tvaru :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Samozrejme, že rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, ale zamyslite sa nad tým, prečo by ste nemali len písať :isMarriedTo1 rdf:type :isMarriedTo.

Problém „podpory LPG“ je tu vyriešený na úrovni RDFS. Takéto rozhodnutie si vyžaduje zaradenie do príslušného стандарт. Niektoré zmeny môžu byť potrebné pre obchody RDF, ktoré podporujú pripojenie dôsledkov, ale zatiaľ možno Singleton Property považovať len za ďalšiu modelovaciu techniku.

V.1.2. Reifikácia vykonaná správne

Menej naivné prístupy vyplývajú z poznania, že inštancie vlastností sú plne inštanciovateľné pomocou trojíc. Tým, že budeme môcť povedať niečo o trojiciach, budeme sa môcť baviť o majetkových inštanciách.

Najodolnejší z týchto prístupov je RDF*, tiež známy ako RDR, narodený v hlbinách Blazegraphu. Je to od úplného začiatku zvolený pre seba a AnzoGraph. Solídnosť prístupu určuje skutočnosť, že v jeho rámci sú ponúkané zodpovedajúce zmeny v sémantika RDF. Pointa je však mimoriadne jednoduchá. V serializácii RDF Turtle teraz môžete napísať niečo takéto:

<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .

V.1.3. Iné prístupy

Nemôžete sa obťažovať formálnou sémantikou, ale jednoducho predpokladať, že triplety majú určité identifikátory, ktorými sú, samozrejme, URI a vytvárať nové triplety s týmito URI. Zostáva len poskytnúť prístup k týmto URI v SPARQL. Takže prichádza Stardog.

In Allegrograph išiel medziľahlým spôsobom. Je známe, že tripletové identifikátory v Allegrograph je, ale pri implementácii trojitých atribútov nevyčnievajú. Od formálnej sémantiky má však ešte veľmi ďaleko. Je pozoruhodné, že atribúty tripletov nie sú URI a hodnoty týchto atribútov môžu byť tiež iba doslovné. Prívrženci LPG dostanú presne to, čo chceli. V špeciálne vynájdenom formáte NQX vyzerá príklad podobný vyššie uvedenému pre RDF* takto:

:bob :marriedTo :alice {"since" : "2013-09-13"}

V.2. Jazyky dopytov

Po tom, čo ste na úrovni modelu tak či onak podporovali LPG, musíte v takomto modeli umožniť zadávanie dotazov na údaje.

  • Blazegraph for RDF* dotazy podporuje SPARQL* и škriatok. Dotaz SPARQL* vyzerá takto:

 SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }

  • Anzograf tiež podporuje SPARQL* a ide podporovať Nicka, dopytovací jazyk v Neo4j.
  • Stardog podporuje svoje vlastné predĺženie SPARQL a znovu Gremlin. Triplet URI a „metainformácie“ v SPARQL môžete získať pomocou niečoho takého:

SELECT * {
    BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
    ?id :since ?since
}

  • Allegrograph tiež podporuje svoje vlastné predĺženie SPARQL:

 SELECT * { ("since" ?since)  franz:attributesNameValue  ( :bob :marriedTo ?wife ) }

Mimochodom, GraphDB svojho času podporoval Tinkerpop/Gremlin bez podpory LPG, ale to sa zastavilo vo verzii 8.0 alebo 8.1.

VI. Sprísnenie licencií

K priesečníku súborov „triplestore of choice“ a „open source triplestore“ neboli v poslednom čase pridané žiadne doplnky. Nové obchody s otvoreným zdrojovým kódom RDF majú ďaleko od dobrej voľby na každodenné použitie a nové trojité obchody, ktoré by som chcel používať (ako AnzoGraph), sú uzavreté. Skôr môžeme hovoriť o poklesoch...

Samozrejme, open source sa v minulosti nevypínal, no niektoré open source úložiská už pomaly nevnímajú ako také, ktoré by stálo za to vyberať. Virtuoso, ktorý má opensource edíciu, sa podľa mňa topí v bugoch. Blazegraph kúpila spoločnosť AWS a vytvorila základ Amazon Neptún; teraz nie je jasné, či bude ešte aspoň jedno vydanie. Zostáva len Jena...

Ak open source nie je veľmi dôležitý, ale chcete si to len vyskúšať, potom je všetko menej ružové ako predtým. Napríklad:

  • Stardog končí distribuovať bezplatnú verziu (skúšobná doba bežnej verzie sa však zdvojnásobila);
  • в GraphDB Cloud, kde ste si predtým mohli vybrať bezplatný základný plán, registrácie nových používateľov boli pozastavené.

Vo všeobecnosti je pre bežného IT-čkára priestor čoraz nedostupnejší, jeho rozvoj sa stáva údelom korporácií.

Zdroj: hab.com

Pridať komentár