Semantiline veeb ja seotud andmed on nagu lĂ€hedane kosmos: seal pole elu. Et sinna minna pikaajaliselt... noh, ma ei tea, mida teile lapsepĂ”lves ĂŒtlesid, kui soovisite saada kosmonaudiks. Kuid seda, mis toimub, saab jĂ€lgida ka Maa pealt; amatööraastronoomiks vĂ”i isegi professionaaliks saamine on palju lihtsam.
Artiklis kÀsitletakse viimaseid, mitte vanemaid kui paar kuud, trende RDF-ladustamiste maailmas. Esimese lÔigu metafoor sai inspiratsiooni epohhialisest reklaamipildist, mis on allpool.
Epohhine pilt

I. GraphQL RDF-le ligipÀÀsemiseks
, et GraphQL pĂŒĂŒab saada universaalseks andmebaaside ligipÀÀsu keel. Aga kuidas on lood GraphQL-iga RDF-i juurdepÀÀsuga?
âKarbist vĂ€ljaâ pakuvad selle vĂ”imalust:
- Stardog (, );
- TopQuadrandi tooted (, ).
Kui ladustamine 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 pea enam midagi kirjutama, vaid saab lihtsalt vĂ”tta .
ĂkskĂ”ik, kuidas vaadata ortodokssest Semantic Web ja Linked Data poolest, on see kĂ”ik kahetsusvÀÀrne, kuna see tundub olevat mĂ”eldud integratsioonideks, mis on ĂŒles ehitatud uute andmesilo ĂŒmber, mitte platvormide jaoks (loomulikult RDF-hoidlate jaoks).
GraphQL ja SPARQL'i vÔrdlemise muljed on kahetised.
- Ăhelt poolt nĂ€eb GraphQL vĂ€lja nagu kauge sugulane SPARQL'ist: selles on lahendatud REST-i iseloomulikud probleemid, nagu andmete liigne valimine ja paljusus pĂ€ringute osas â ilma milleta ei saaks ilmselt rahuldavalt arvestada pĂ€ringute keele, isegi veebis;
- Teiselt poolt on GraphQL'i range skeemilisus pettumus. Seega nÀib selle «introspektiivsus» vÀga piiratud vÔrreldes RDF-i tÀieliku refleksiivsusega. Ja puudub mis tahes analoog property paths'ile, nii et isegi ei ole eriti selge, miks see on «Graph-».
II. Adapterid MongoDB-le
Trend, mis tÀiendab eelnevat.
- Stardogis nĂŒĂŒd â eelkĂ”ige, kĂ”ik samal GraphQL'il â on seadistatud MongoDB andmete kuvamine virtuaalsetesse RDF-graafikutesse;
- GraphDB on hiljuti lisanud SPARQL'i MongoDB Query fragmente.
Lai runÄtu plaĆĄÄk par JSON avotu adapteriem, kas ÄŒauj vairÄk vai mazÄk "uz vietas" attÄlot ĆĄajos avotos saglabÄto JSON kÄ RDF, var pieminÄt arÄ« salÄ«dzinoĆĄi sen pieejamo , ko var pievienot , Apache Jena.
KopsavilkumÄ par pirmajiem diviem virzieniem var teikt, ka RDF krÄtuves demonstrÄ pilnÄ«gu gatavÄ«bu integrÄcijÄm un darbÄ«bai âdaĆŸÄdu glabÄĆĄanas variantuâ (polyglot persistence) apstÄkÄŒos. TomÄr ir zinÄms, ka pÄdÄjais jau ilgu laiku nav modÄ, un tam multimodelitÄte. Un kÄ ir ar multimodelitÄti RDF krÄtuÄŒu pasaulÄ?
Ja Ä«si, tad nekÄdi. TÄmai par multimodelitÄtes DBMS vÄlÄtos veltÄ«t atseviĆĄÄ·u rakstu, taÄu ĆĄobrÄ«d var atzÄ«mÄt, ka nav multimodelitÄtes DBMS, kas "balstÄs" uz grafu modeli (kas ir tÄ pavediena veids, ko var uzskatÄ«t par RDF). Par zinÄmu nelielo multimodelitÄte â alternatÄ«vÄs grafu modeÄŒa LPG atbalsts RDF krÄtuvÄs â tiks stÄstÄ«ts .
III. OLTP vs. OLAP
TomÄr tas pats Gartner , ka multimodelitÄte ir sine qua non nosacÄ«jums pirmkÄrt operatÄ«vajÄm AND. Selge on see, et "mitmekesises andmesalves" on peamised probleemid seotud tehingute tĂ€itmisega.
Aga kus asuvad RDF-andmehoidlad OLTPâOLAP skaalal? Minu vastus oleks: ei seal, ega siin. Nende mĂ”eldud kasutusalade kirjeldamiseks on vajalik mingi kolmas akronĂŒĂŒm. NĂ€iteks vĂ”iks pakkuda OLIP â VeebipĂ”hine Intellektuaalne Protsessimine.
Kuid siiski:
- GraphDB-s rakendatud MongoDB integratsioonimehhanismid on suures osas kirjutamisjÔudluse probleemide vÀltimiseks;
- Stardog lĂ€heb veelgi kaugemale ja kirjutab NĂŒĂŒd lubage mul tutvustada uut mĂ€ngijat turul. IBM Netezza ja Amazon Redshift'i loojate kĂ€est â
AnzoGraph SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { ⊠}
IV. RocksDBĂlal oli juba
link Stardog 7 Beta vĂ€ljakuulutamisel öeldi, et Stardog kavatseb kasutada aluseks olevat salvestussĂŒsteemi RocksDB â vĂ”tme-vÀÀrtuse salvestust, Facebooki haru Google'i LevelDB-st. Miks tasub juba rÀÀkida mingist trendist?
Esiteks, tÔenÀoliselt , RocksDB-le «istuvad» mitte ainult RDF-salvestused. On projekte, mis kasutavad RocksDB-d salvestusmehhanismina ArangoDB-s, MongoDB-s, MySQL-is ja MariaDB-s, Cassandra.
Teiseks, RocksDB-l pÔhinevad projektid (st mitte tooted) vastava temaatikaga.
NÀiteks kasutab eBay RocksDB-d oma «teadmusgraafi» jaoks. Muide, on huvitav lugeda: the query language started as a home grown format, but more recently it has been transitioning to be much more like SPARQL. Nagu anekdootides: kui palju teadmusgraafe ka ei loo, alati tuleb vÀlja RDF.
Teine nĂ€ide on paar kuud tagasi ilmunud . Enne selle ilmumist tuli ajaloolistele Wikidata andmetele pöörduda lĂ€bi standardsest Mediawiki API-st. NĂŒĂŒd on palju vĂ”imalik puhtal SPARQL-il. «Kapoti all» on sealgi RocksDB. Muide, WDHQS-i tegi ilmselt inimene, kes tegeles Freebase'i importimisega Google Knowledge Graphi.
V. LPG toe tugi
Tulet meelde LPG graafide peamine erinevus RDF graafidest.
LPG-s vĂ”ivad servade eksemplaridel olla skalaaromadused, samas kui RDF-is saavad need kinnitada ainult "tĂŒĂŒpide" omadusi (kuid mitte ainult skalaaromadusi, vaid ka tavalisi suhteid). See piirang, mida RDF vĂ”rreldes LPG-lt kannatab, kasutades erinevaid modelleerimistehnikaid. LPG piirangud vĂ”rreldes RDF-iga on keerulisemad, kuid LPG graafid on rohkem sarnased Harari Ă”pikute piltidele, mistĂ”ttu inimesed neid eelistavad.
Ilmselgelt jaguneb ĂŒlesanne âLPG toetamineâ kaheks osaks:
- RDF mudelisse tehtavad muudatused, mis vÔimaldavad imiteerida LPG struktuure;
- muudatused RDF pĂ€ringute keeles, mis vĂ”imaldavad andmeid sel muudetud mudelil ligipÀÀseda â vĂ”i samuti vĂ”imaluse teostada pĂ€ringuid selle mudeli jĂ€rgi populaarses LPG pĂ€ringute keeltes.
V.1. Andmemudel
Siin on mitmeid vÔimalikke lÀhenemisviise.
V.1.1. Ăksiku omadus
KÔige otsesem lÀhenemine RDF ja LPG harmoneerimisele on tÔenÀoliselt :
- NĂ€iteks eelduse asemel
:isMarriedTokasutatakse eelduseid:isMarriedTo1,:isMarriedTo2jne. - SeejÀrel muutuvad need predikaadid uute triplettide subjektideks:
:isMarriedTo1 :since "2013-09-13"^^xsd:dateja sarnased. - Nende predikaatide eksemplaride seos ĂŒhise predikaadiga kehtestatakse triplettide vormis
:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo. - Ilmselt on nii, et
rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, aga mÔtle, miks ei tasu lihtsalt kirjutada:isMarriedTo1 rdf:type :isMarriedTo.
Ălesanne âLPG toetamineâ lahendatakse siin RDFS tasemel. Selline lahendus nĂ”uab vastavat . Mingid muudatused vĂ”ivad olla vajalikud RDF-ladude jaoks, mis toetavad tagajĂ€rgede lisamist, samas kui Singleton Propertyt saab pidada lihtsalt veel ĂŒheks modelleerimise tehnikaks.
V.1.2. Reifikatsioon Ôigesti tehtud
Mugavamad lÀhenemised tulenevad teadlikkusest, et omaduste eksemplare saab tÀiesti instantsida triplettidega. Kui meil on vÔimalus rÀÀkida triplettidest, saame rÀÀkida ka omaduste eksemplaridest.
Nendest lĂ€henemistest kĂ”ige soliidsem on , tuntud ka kui RDR, Blazegraph'i sĂŒgavustes. Seda on algusest peale enda jaoks ja AnzoGraph'i jaoks. LĂ€henemise soliidne ilu seisneb selles, et selle raames on vastavad muudatused . Siiski on alus ÀÀrmiselt lihtne. Turtle RDF serialiseerimises saab nĂŒĂŒd kirjutada umbes nii:
<> :since "2013-09-13"^^xsd:date .V.1.3. Muud lÀhenemised
Ei pea formaalse semantika ĂŒle keerutama, vaid vĂ”ib lihtsalt eeldada, et tripletitel on mingid identifikaatorid, mis on loomulikult URI-d, ja luua uusi tripleteid nende URI-dega. Tuleb vaid anda juurdepÀÀs nendes URI-des SPARQL-is. Nii tegutseb Allegrograph
jÔudis , kuid kolmekordsete atribuutide rakendamisel ei ole need vÀljas. Siiski on formalisest semantikast kaugel. MÀrkimisvÀÀrne on, et tripletite atribuudid ei ole URI-d ja nende atribuutide vÀÀrtused vÔivad olla ainult literaalid. LPG pooldajad saavad tÀpselt seda, mida nad soovisid. Spetsiaalselt vÀlja töötatud NQX formaadis nÀeb nÀide, mis on eespooltoodud RDF* analoog, vÀlja nii: :bob :marriedTo :alice {"since" : "2013-09-13"}
:bob :marriedTo :alice {"since" : "2013-09-13"}V.2. KĂŒsimuste keeled
Toetades mingil moel LPG mudeli tasemel, tuleb vÔimaldada andmete pÀringute tegemine sellises mudelis.
- Blazegraph toetab pÀringute tegemist RDF* jaoks ja . PÀring SPARQL* nÀeb vÀlja nii:
SELECT * { <> :since ?since }- AnzoGraph toetab samuti ja kavatseb toetada , pÀringukeelt Neo4j-s.
- Stardog toetab oma SPARQL ja Gremlin. SPARQL-i URI kolmnurkade ja 'metaandmete' saamiseks vÔib kasutada umbes sellist konstruktsiooni:
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}- AllegroGraph toetab samuti oma SPARQL:
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }Muide, GraphDB toetas mÔne aja jooksul Tinkerpop/Gremlini, samas ei toetanud ta LPG-d, kuid versioonis 8.0 vÔi 8.1 lÔpetati see.
VI. Licenceerimise karmistamine
Viimase ajal ei ole toimunud ĂŒhtegi tĂ€iendust âtriplestore of choiceâ ja âopen source triplestoreâ ĂŒhisosas. Uued avatud lĂ€htekoodiga RDF-andmehoidlad on kaugel heaks valikuks igapĂ€evasest kasutusest, ja uute RDF-andmehoidlate lĂ€htekood, mida sooviks kasutada (nĂ€iteks AnzoGraph), on suletud. Pigem vĂ”ib rÀÀkida isegi vĂ€henemistestâŠ
Muidugi, avatud lĂ€htekood ei sulgu, kuid mĂ”ned avatud lĂ€htekoodiga hoidlad kaotavad jĂ€rk-jĂ€rgult oma atraktiivsuse. Arvan, et Virtuoso, millel on avatud lĂ€htekoodi versioon, hakkab bugide tĂ”ttu vajuma. Blazegraph ostis AWS ja see sai Amazon Neptune'i aluseks; nĂŒĂŒd on ebaselge, kas tuleb veel mĂ”ni vĂ€ljalase. JÀÀnud on vaid JenaâŠ
Kui avatud lÀhtekood pole eriti oluline ja soovid lihtsalt proovida, siis on olukord samuti vÀhem lootustandev kui varem. NÀiteks:
- Stardog tasuta versiooni levitamise (kuid tegelikult on tavaline prooviperiood kahekordistunud);
- ĂŒhes , kus varasemalt sai valida tasuta pĂ”hiplaani, on uute kasutajate registreerimine peatatud.
KokkuvĂ”ttes muutub kosmos tavalisele IT-inimesele ĂŒha kĂ€ttesaamatumaks, selle saavutamine jÀÀb suurkorporatsioonide mĂ€nguks.
Allikas: habr.com
