Semantiline veeb ja lingitud andmed on nagu lÀhikosmos: seal elamiseks ei ole. Et sinna minna pikemaks ajaks... noh, ma ei tea, mida teile lapsepÔlves öeldi vastuseks «tahan astronautiks saada». Kuid toimuva jÀlgimine on vÔimalik ka Maalt; astronoomiks saamine on palju lihtsam, olgu siis harrastajatena vÔi isegi professionaalidena.
KÀesolevas artiklis kÀsitletakse vÀrskeid, mitte vanemaid kui paar kuud, trende RDF-andmebaasidest. Esimese lÔigu metafoor tuli ideaalsest suurusest reklaampildist allpool.
Epic pilt

I. GraphQL RDF-i juurde pÀÀsemiseks
, et GraphQL pĂŒrgib olema universaalne andmebaaside juurdepÀÀsu keel. Kuidas on aga lood GraphQL-i juurdepÀÀsuga RDF-ile?
«Kastist vÀljaspool» pakuvad seda vÔimalust:
- Stardog (, );
- TopQuadranti tooted (, ).
Kui andmebaas ei paku sellist vÔimalust, siis rakendatakse seda iseseisvalt, kirjutades vastava «tuvastaja» (resolver). Nii tehti nÀiteks Prantsuse projektis . VÔi vÔib-olla ei ole midagi kirjutada, vaid lihtsalt kasutada .
Ortodoxse semantilise veeb ja lingitud andmete pooldaja seisukohalt on see muidugi kurb, kuna see tundub olevat mĂ”eldud integratsioonide jaoks, mis on ĂŒles ehitatud veel ĂŒhe andme silosse, mitte plaatvormide jaoks (loomulikult RDF-andmebaaside jaoks).
KokkuvÔttes jÀÀb GraphQL-i ja SPARQL-i vÔrdlemise mulje kahetiseks.
- Ăhelt poolt nĂ€eb GraphQL vĂ€lja nagu kauge sugulane SPARQL-ile: see lahendab REST-is esinevad toimetamisprobleemid ja mitmekesised pĂ€ringud â ilma milleta ei saaks ilmselt rÀÀkida pĂ€ringute keelest, olgu see kasvĂ”i veebis;
- Teiselt poolt muretses GraphQL-i range skeemilisus. Seega tundub selle «introspektiivsus» olevat vÔrreldes RDF-i tÀieliku reflektiivsusega vÀga piiratud. Ja puudub mingi analoog property paths, mistÔttu ei ole isegi selge, miks seda nimetatakse «Graph-».
II. Adapterid MongoDB-le
Trend, mis tÀiendab eelmist.
- Stardogis on nĂŒĂŒd â eelkĂ”ige kĂ”ik samal GraphQL-il â seadistada MongoDB andmete kuvamine virtuaalsetes RDF-graafikutes;
- GraphDB on hiljuti kohanenud SPARQL-i fragmentidega MongoDB Query-sse.
RÀÀkides laiemalt, adapteritest JSON-allikatele, mis vĂ”imaldavad enam-vĂ€hem «live» esitada nendes allikates hoitavat JSON-i kui RDF-i, vĂ”ib mainida ka ĂŒsna pikka aega olemas olnud , mida saab liita, , Apache Jena.
KokkuvĂ”ttes vĂ”ib öelda, et RDF-andmehoidlad nĂ€itavad tĂ€ielikku valmisolekut integreerimiseks ja toimimiseks âmitme variandi salvestamiseâ (polyglot persistence) tingimustes. On teada, et see viimane pole enam moes ja selle asemele multimudel. Aga kuidas on lood multimudeliga RDF-andmehoidlate maailmas?
LĂŒhidalt öeldes, mitte kuigi hĂ€sti. Multimudelite andmebaaside teema vÀÀrib eraldi artiklit, kuid praegu vĂ”ib mĂ€rkida, et multimudeelset andmebaasi, mis pĂ”hineks graafimudelil (mida vĂ”ib pidada ka RDF-ks), hetkel ei ole. VĂ€ikesest multimudelsusest â alternatiivsete graafimudelite LPG toetamisest RDF-andmehoidlate poolt â rÀÀgitakse .
III. OLTP vs. OLAP
Siiski, sama Gartner , et multimudelisus on tingimus sine qua non eelkĂ”ige operatiivsete andmebaaside jaoks. See on arusaadav: âmitme variandi salvestamiseâ olukorras on peamised probleemid seotud transaktsioonilisusega.
Aga kus asuvad RDF-andmehoidlad OLTPâOLAP skaalal? Vastaksin nii: ei seal, ega siin. Nende kavandatule viitamiseks on vajalik mingi kolmas akronĂŒĂŒm. Alternatiivina pakuksin OLIP â Online Intellektuaalne Protsessimine.
Kuid siiski:
- GraphDB-s rakendatud MongoDB integreerimismehhanismid on suunatud Stardog lÀheb veelgi kaugemale ja kirjutab
- mootori tĂ€ielikult ĂŒmber, taaskord eesmĂ€rgiga parandada kirjutamisjĂ”udlust. AnzoGraph
. Toote reklaamis olev pilt saadi artikli alguses. AnzoGraph positsioneerib end kui GOLAP lahendusena. Kuidas kĂ”lab SPARQL aknafunktsioonidega? â IV. RocksDB
Ălalpool on jubamainitud viidet
Stardog 7 Beta teadetele, kus rÀÀgiti, et Stardog plaanib kasutada RocksDB-d alumise salvestussĂŒsteemina â vĂ”tme-vÀÀrtuse salvestus, Facebooki hargne LevelDB-st. Miks vĂ”iks rÀÀkida mingist trendist? ĂŒtleb, et RocksDB-le âistuvadâ mitte ainult RDF-andmehoidlad. On projekte, mis kasutavad RocksDB-d salvestusajamiks ArangoDB, MongoDB, MySQL ja MariaDB, Cassandra.
Teiseks, RocksDB-l tehakse teemasid (st mitte tooteid) vastava temaatika projekti. , RocksDB-le «istutatakse» mitte ainult RDF-ladu. On projekte, kus kasutatakse RocksDB-d salvestusmootorina ArangoDB-s, MongoDB-s, MySQL-is ja MariaDB-s, Cassandra-s.
Teiseks, RocksDB-l tehakse vastava temaatikaga projekte (st mitte tooteid).
NÀiteks kasutab eBay RocksDB-d oma "teadmiste graafiku" jaoks. Muide, on naljakas lugeda: the query language started as a home grown format, but more recently it has been transitioning to be much more like SPARQL. Nagu anekdoodis: kui palju tahes teadmiste graafikust teha, tuleb ikka vÀlja RDF.
Teine nĂ€ide on mĂ”ned kuud tagasi ilmunud . Enne selle tulekut tuli ajalooliste Vikidata andmete saamiseks pöörduda kaudu tavalise Mediawiki API poole. NĂŒĂŒd on palju vĂ”imalik puhtal SPARQL-il. "Kapoti all" on seal samuti RocksDB. Ătlesin, et WDHQS-i lĂ”i inimene, kes tegeles Freebase'i importimisega Google Knowledge Graph'i.
V. LPG toe
Tuletan meelde peamist erinevust LPG-graafikute ja RDF-graafikute vahel.
LPG-s vĂ”ivad servade eksemplaridele olla lisatud skalaarsed omadused, samas kui RDF-s saavad neid lisada ainult servade "tĂŒĂŒbid" (aga mitte ainult skalaarsed omadused, vaid ka tavalised seosed). See piiramine RDF-s vĂ”rreldes LPG-ga erinevate modelleerimistehnikate abil. LPG-d piiravad omadused vĂ”rreldes RDF-ga on aga keerulisemad ĂŒletada, kuid LPG-graafikud on rohkem nagu Harari Ă”pikust pildid, seetĂ”ttu soovivad inimesed neid.
On ilmne, et "LPG toe" ĂŒlesanne jaguneb kaheks osaks:
- muudatuste sisseviimine RDF mudelisse, mis vÔimaldab simuleerida LPG-struktuure;
- muudatuste tegemine RDF pĂ€ringute keeles, et vĂ”imaldada andmete pĂ€rimist selles muudetud mudelis, â vĂ”i rakendamine vĂ”imaluse osas teha pĂ€ringuid sellele mudelile tuntud LPG pĂ€ringute keeltes.
V.1. Andmemudel
Siin on mitu vÔimalikku lÀhenemist.
V.1.1. Singleton Property
KÔige sÔnasÔnaline lÀhenemine RDF ja LPG harmoneerimisele on tÔenÀoliselt :
- NĂ€iteks kui kasutatakse predikaati
:isMarriedTokasutatakse predikaate:isMarriedTo1,:isMarriedTo2jne. - SeejÀrel saavad need predikaadid uute tripletide subjektideks:
:isMarriedTo1 :since "2013-09-13"^^xsd:dateja nii edasi. - Nende predikaatide eksemplaride seos ĂŒldise predikaadiga luuakse tripletidega, mis on kujul
:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo. - Ilmselgelt, et
rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, kuid mÔelge, miks ei tasu kirjutada lihtsalt:isMarriedTo1 rdf:type :isMarriedTo.
LPG toe ĂŒlesanne lahendatakse siin RDFS tasemel. Selline lahendus nĂ”uab vastava . MĂ”ned muudatused vĂ”ivad olla vajalikud RDF-ladu jaoks, mis toetavad jĂ€rjepidevuste liitmist, ja seni vĂ”ib Singleton Propertyt vaadata lihtsalt kui veel ĂŒhte modelleerimise tehnikat.
V.1.2. Reifikatsioon Ôiges vormis
VÀhem naiivsemate lÀhenemiste juured on arusaam, et omaduste eksemplarid on tÀiesti instantsitud triplettidega. Olles suuteline rÀÀkima millestki tripletitest, saame rÀÀkida ka omaduste eksemplaridest.
KĂ”ige tĂ”sisem lĂ€henemine on , tuntud ka kui RDR, Blazegraphi sisemuses. Seda on algusest peale ka AnzoGraph. LĂ€henemise tĂ”sidust mÀÀrab see, et selle raames on vastavad muudatused Kuid olemus on ÀÀrmiselt lihtne. RDF-i Turtle-sarjal on nĂŒĂŒd vĂ”imalik kirjutada umbes nii:
<> :since "2013-09-13"^^xsd:date .V.1.3. Muud lÀhenemised
Ei ole mÔtet vaeva nÀha formaalse semantikaga, vaid lihtsalt eeldada, et tripletitel on teatud identifikaatorid, mis on loomulikult URI-d, ja luua uusi triplette nende URI-dega. Peab vaid tagama nende URI-de juurdepÀÀsu SPARQL-is. Nii Stardog.
Allegrograph vahepealse tee. On teada, et Allegrographi tripletite identifikaatorid , kuid triple attributes'i rakendamisel nad vĂ€lja ei paista. Siiski on enne formaalse semantika juurde jĂ”udmine veel pikk tee. Sealjuures on huvitav, et tripletite attribuudid ei ole URI-d ja nende vÀÀrtused vĂ”ivad olla vaid literatuurid. LPG propageerijad saavad tĂ€pselt seda, mida nad soovisid. Eraldi leiutatud formaadis NQX nĂ€eb nĂ€ide, mis sarnaneb ĂŒlaltoodud nĂ€itele RDF* jaoks, vĂ€lja jĂ€rgmiselt:
:bob :marriedTo :alice {"since" : "2013-09-13"}V.2. KĂŒsimuste keeled
Toetades LPG-d mingil viisil mudeli tasandil, tuleb vÔimaldada andmestiku pÀringut sellises mudelis.
- Blazegraph toetab RDF* pÀringutes ja SPARQL* pÀring nÀeb vÀlja nii:
SELECT * { <> :since ?since }- Anzograph toetab samuti ja plaanib toetada pÀringukeelt Neo4j-s.
- Stardog toetab oma SPARQL-i ja Gremlini. SPARQL-is URI tripleti ja "metaandmete" saamiseks saab kasutada jÀrgmist konstruktsiooni:
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}- Allegrograph toetab samuti oma SPARQL-i:
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }Muide, GraphDB toetas mÔnda aega Tinkerpop/Gremlini, toetamata seejuures LPG-d, kuid versioonis 8.0 vÔi 8.1 lÔpetati see.
VI. TÔhustatud litsentsid
Viimastel aegadel ei ole âvalikuvĂ”imaluste triplestoreâ ja âavatud lĂ€htekoodiga triplestoreâ vahel mingeid juurdekasve toimunud. Uutel avatud lĂ€htekoodiga RDF-hoidlatele ei ole tegelikult mingit vĂ”imalust igapĂ€evaseks kasutamiseks, ja nende uute RDF-hoidlate lĂ€htekood (nt AnzoGraph) on suletud. Pigem vĂ”ib rÀÀkida hoopis vĂ€henemisest...
Muidugi, avatud lĂ€htekood ei muutu kunagi suletuks, kuid mĂ”ned avatud lĂ€htekoodiga hoidlad lakkuvad jĂ€rk-jĂ€rgult olema tĂ”sised valikud. Virtuoso, mis pakub avatud lĂ€htekoodiga versiooni, nĂ€ib minu arvates olevat kahedesuguste probleemide all. Blazegraph on ostnud AWS ja see moodustab Amazon Neptune'i aluse; hetkel on raske öelda, kas veel ĂŒks vĂ€ljaanne ilmub. JÀÀnud on vaid Jena...
Kui avatud lÀhtekood ei ole just vÀga oluline ja lihtsalt tahaks proovida, siis on olukord samuti vÀhem roosiline kui varem. NÀiteks:
- Stardog tasuta versiooni levitamise (ĂŒllatuseks on tavapĂ€rase katseperioodi aeg kahekordistunud);
- ja , kus varem oli vÔimalik valida tasuta pÔhiplaan, on uute kasutajate registreerimine peatatud.
Ăldiselt muutub tavalisele IT-kasutajale kosmos ĂŒha kĂ€tte saamatu, selle omandamine jÀÀb vaid korporatsioonide pĂ€rusmaaks.
Allikas: habr.com
