Semantiskais tÄ«meklis un saistÄ«tie dati ir kÄ kosmoss: tur nav dzÄ«vÄ«bas. Aizbraukt tur uz vairÄk vai mazÄk ilgu laiku... Es nezinu, ko viÅi tev bÄrnÄ«bÄ teica, atbildot uz āEs gribu kļūt par astronautuā. Bet jÅ«s varat novÄrot, kas notiek, atrodoties uz Zemes; Daudz vieglÄk ir kļūt par astronomu amatieru vai pat profesionÄli.
RakstÄ galvenÄ uzmanÄ«ba tiks pievÄrsta jaunÄkajÄm, ne vecÄkajÄm par vairÄkiem mÄneÅ”iem, tendencÄm no RDF uzglabÄÅ”anas pasaules. Metafora pirmajÄ rindkopÄ ir iedvesmota no episkÄ izmÄra reklÄmas attÄla zem griezuma.
Episka bilde
I. GraphQL RDF piekļuvei
ViÅi sakaka GraphQL mÄrÄ·is ir kļūt par universÄlu datubÄzes piekļuves valodu. KÄ ar iespÄju piekļūt RDF, izmantojot GraphQL?
Ja repozitorijs Å”Ädu iespÄju nenodroÅ”ina, to var Ä«stenot patstÄvÄ«gi, uzrakstot atbilstoÅ”u āatrisinÄtÄjuā. TÄ viÅi darÄ«ja, piemÄram, Francijas projektÄ Datu tÅ«risms. Vai arÄ« vairs nevar neko rakstÄ«t, bet vienkÄrÅ”i paÅemt HyperGraphQL.
No semantiskÄ tÄ«mekļa un saistÄ«to datu ortodoksÄlÄ piekritÄja viedokļa tas viss, protams, ir skumji, jo Ŕķiet, ka tas ir paredzÄts integrÄcijÄm, kas veidotas ap nÄkamo datu tvertni, un nav piemÄrotas platformas (protams, RDF veikali) .
Seansi, salÄ«dzinot GraphQL ar SPARQL, ir divÄjÄdi.
No vienas puses, GraphQL izskatÄs kÄ tÄls SPARQL radinieks: tas atrisina REST raksturÄ«gÄs resampling un vaicÄjumu daudzveidÄ«bas problÄmas - bez kuras, iespÄjams, nebÅ«tu iespÄjams apsvÄrt vaicÄjuma valoda, vismaz tÄ«meklim;
No otras puses, GraphQL stingrÄ shÄma rada vilÅ”anos. AttiecÄ«gi tÄ āintrospekcijaā Ŕķiet ļoti ierobežota salÄ«dzinÄjumÄ ar RDF pilnÄ«go refleksivitÄti. Un Ä«paÅ”uma ceļiem nav analoga, tÄpÄc nav pat Ä«sti skaidrs, kÄpÄc tas ir "Grafs-".
II. Adapteri MongoDB
Tendence, kas papildina iepriekÅ”Äjo.
Tagad Stardog varbÅ«t - jo Ä«paÅ”i visi vienÄ GraphQL - konfigurÄjiet MongoDB datu kartÄÅ”anu virtuÄlos RDF grafikos;
Ontotext GraphDB nesen pieļauj ievietojiet fragmentus SPARQL vietnÄ MongoDB Query.
Ja runÄjam plaÅ”Äk par adapteriem JSON avotiem, kas ļauj vairÄk vai mazÄk ālidojuma laikÄā attÄlot Å”ajos avotos saglabÄto JSON kÄ RDF, mÄs varam atcerÄties diezgan sen SPARQL Ä£enerÄÅ”ana, ko var regulÄt, piemÄram, uz Apache Jena.
Apkopojot pirmÄs divas tendences, varam teikt, ka RDF krÄtuves demonstrÄ pilnÄ«gu gatavÄ«bu integrÄcijai un darbÄ«bai āpoliglota noturÄ«basā apstÄkļos. TomÄr ir zinÄms, ka Å”is pÄdÄjais jau sen ir izgÄjis no modes un tiek aizstÄts ar nÄk daudzmodelis. KÄ ar multimodelÄÅ”anu RDF uzglabÄÅ”anas pasaulÄ?
ÄŖsÄk sakot, nekÄdÄ gadÄ«jumÄ. AtseviŔķu rakstu vÄlos veltÄ«t tÄmai par vairÄku modeļu DBVS, taÄu pagaidÄm var atzÄ«mÄt, ka Å”obrÄ«d nav uz grafu modeli ābalstÄ«tuā daudzmodeļu DBVS (par tÄ veidu var uzskatÄ«t RDF) . Dažas nelielas vairÄku modelÄÅ”anas iespÄjas ā RDF krÄtuves atbalsts alternatÄ«vam LPG grafika modelim ā tiks apspriestas V sadaļa.
III. OLTP vs. OLAP
TomÄr tas pats Gartners rakstaka daudzmodelis ir sine qua non nosacÄ«jums galvenokÄrt tam operÄciju zÄles DBVS. Tas ir saprotams: "daudzfaktoru uzglabÄÅ”anas" situÄcijÄ galvenÄs problÄmas rodas ar transakciju.
Bet kur atrodas RDF krÄtuves OLTP-OLAP mÄrogÄ? Es atbildÄtu tÄ: ne tur, ne Å”eit. Lai norÄdÄ«tu, kam tie paredzÄti, ir nepiecieÅ”ams kÄds treÅ”ais saÄ«sinÄjums. KÄ variantu es ieteiktu OLIP ā TieÅ”saistes intelektuÄlÄ apstrÄde.
TomÄr joprojÄm:
GraphDB ieviestie integrÄcijas mehÄnismi ar MongoDB ir ne mazÄk svarÄ«gi paredzÄts lai apietu rakstÄ«Å”anas veiktspÄjas problÄmas;
Stardog iet vÄl tÄlÄk un pilnÄ«bÄ pÄrraksta dzinÄjs, atkal ar mÄrÄ·i uzlabot ierakstÄ«Å”anas veiktspÄju.
Tagad ļaujiet man ieviest tirgÅ« jaunu spÄlÄtÄju. No IBM Netezza un Amazon Redshift radÄ«tÄjiem - AnzoGraphā¢. Raksta sÄkumÄ tika ievietota bilde no uz tÄs balstÄ«tas preces sludinÄjuma. AnzoGraph pozicionÄ sevi kÄ GOLAP risinÄjumu. KÄ jums patÄ«k SPARQL ar logu funkcijÄm? ā
SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { ā¦ }
IV. RocksDB
Jau augstÄk bija saite uz paziÅojumu par Stardog 7 Beta, kurÄ teikts, ka Stardog gatavojas izmantot RocksDB kÄ pamatÄ esoÅ”o krÄtuves sistÄmu - atslÄgu vÄrtÄ«bu veikalu, Google LevelDB Facebook dakÅ”u. KÄpÄc ir vÄrts runÄt par noteiktu tendenci?
PirmkÄrt, spriežot pÄc Wikipedia raksts, ne tikai RDF krÄtuves tiek āpÄrstÄdÄ«tasā uz RocksDB. Ir projekti RocksDB kÄ krÄtuves dzinÄja izmantoÅ”anai ArangoDB, MongoDB, MySQL un MariaDB, Cassandra.
OtrkÄrt, RocksDB tiek veidoti projekti (tas ir, nevis produkti) par atbilstoÅ”Äm tÄmÄm.
PiemÄram, eBay izmanto RocksDB in platforma jÅ«su "zinÄÅ”anu diagrammai". Starp citu, ir smieklÄ«gi lasÄ«t: vaicÄjumu valoda sÄkÄs kÄ mÄjÄs audzÄts formÄts, taÄu pÄdÄjÄ laikÄ tÄ ir kļuvusi daudz vairÄk lÄ«dzÄ«ga SPARQL. KÄ jokÄ: neatkarÄ«gi no tÄ, cik lielu zinÄÅ”anu grafiku mÄs izveidojam, mÄs joprojÄm nonÄkam pie RDF.
VÄl viens piemÄrs ā tÄds, kas parÄdÄ«jÄs pirms dažiem mÄneÅ”iem Wikidata vÄstures vaicÄjumu pakalpojums. Pirms tÄs ievieÅ”anas Wikidata vÄsturiskajai informÄcijai bija jÄpiekļūst, izmantojot MWAPI uz standarta Mediawiki API. Tagad daudz kas ir iespÄjams ar tÄ«ru SPARQL. āZem pÄrsegaā ir arÄ« RocksDB. Starp citu, WDHQS, Ŕķiet, izveidoja persona, kas importÄja Freebase Google zinÄÅ”anu grafikÄ.
V. LPG atbalsts
Ä»aujiet man atgÄdinÄt galveno atŔķirÄ«bu starp LPG un RDF diagrammÄm.
LPG skalÄrÄs Ä«paŔības var pieŔķirt malu gadÄ«jumiem, savukÄrt RDF tos var pieŔķirt tikai malu ātipiemā (bet ne tikai skalÄrajÄm Ä«paŔībÄm, bet arÄ« parastajiem savienojumiem). Å is RDF ierobežojums salÄ«dzinÄjumÄ ar saŔķidrinÄtu naftas gÄzi pÄrvarÄt viena vai otra modelÄÅ”anas tehnika. LPG ierobežojumus salÄ«dzinÄjumÄ ar RDF ir grÅ«tÄk pÄrvarÄt, taÄu LPG diagrammas vairÄk atgÄdina Harari mÄcÄ«bu grÄmatas attÄlus, nevis RDF grafikus, tÄpÄc cilvÄki tos vÄlas.
AcÄ«mredzot āLPG atbalstaā uzdevums iedalÄs divÄs daļÄs:
izmaiÅu veikÅ”ana RDF modelÄ«, kas dod iespÄju tajÄ modelÄt saŔķidrinÄtas naftas gÄzes struktÅ«ras;
veicot izmaiÅas RDF vaicÄjumu valodÄ, kas ļauj piekļūt datiem Å”ajÄ modificÄtajÄ modelÄ«, vai ievieÅ”ot iespÄju veikt vaicÄjumus Å”im modelim populÄrÄs LPG vaicÄjumu valodÄs.
V.1. Datu modelis
Å eit ir vairÄkas iespÄjamÄs pieejas.
V.1.1. Singleton īpaŔums
VisburtiskÄkÄ pieeja RDF un LPG saskaÅoÅ”anai, iespÄjams, ir singleton Ä«paÅ”ums:
TÄ vietÄ, piemÄram, predikÄts :isMarriedTo tiek izmantoti predikÄti :isMarriedTo1, :isMarriedTo2 uc
PÄc tam Å”ie predikÄti kļūst par jaunu trÄ«skÄrÅ”u subjektiem: :isMarriedTo1 :since "2013-09-13"^^xsd:date uc
Å o predikÄtu gadÄ«jumu savienojumu ar kopÄ«gu predikÄtu nosaka formas tripleti :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
āLPG atbalstaā problÄma Å”eit tiek atrisinÄta RDFS lÄ«menÄ«. Å Äds lÄmums ir jÄiekļauj atbilstoÅ”ajÄ standarta. Dažas izmaiÅas var bÅ«t nepiecieÅ”amas RDF veikaliem, kas atbalsta seku pievienoÅ”anu, taÄu pagaidÄm Singleton Property var uzskatÄ«t tikai par vÄl vienu modelÄÅ”anas paÅÄmienu.
V.1.2. PÄrveidoÅ”ana izdarÄ«ta pareizi
MazÄk naivas pieejas izriet no atziÅas, ka Ä«paŔību gadÄ«jumi ir pilnÄ«bÄ momentÄni ar tripletiem. Varot kaut ko teikt par trÄ«nÄ«Å”iem, mÄs varÄsim runÄt par Ä«paÅ”uma instancÄm.
StingrÄkÄ no Ŕīm pieejÄm ir RDF*, pazÄ«stams arÄ« kÄ RDR, dzimis BlazegrÄfa dzÄ«lÄs. Tas ir no paÅ”a sÄkuma ievÄlÄts sev un AnzoGraph. Pieejas stabilitÄti nosaka tas, ka tÄs ietvaros piedÄvÄja atbilstoÅ”Äs izmaiÅas RDF semantika. TomÄr bÅ«tÄ«ba ir ÄrkÄrtÄ«gi vienkÄrÅ”a. RDF serializÄcijÄ Turtle tagad varat uzrakstÄ«t kaut ko lÄ«dzÄ«gu:
JÅ«s nevarat nodarboties ar formÄlu semantiku, bet vienkÄrÅ”i pieÅemt, ka tripletiem ir noteikti identifikatori, kas, protams, ir URI, un ar Å”iem URI izveido jaunus tripletus. Atliek tikai nodroÅ”inÄt piekļuvi Å”iem URI SPARQL. TÄtad ierodas Stardogs.
In Allegrograph aizgÄja starpposma veidÄ. Ir zinÄms, ka Allegrograph tripleta identifikatori tur ir, bet, ievieÅ”ot trÄ«skÄrÅ”us atribÅ«tus, tie neizceļas. TomÄr tas joprojÄm ir ļoti tÄlu no formÄlÄs semantikas. JÄatzÄ«mÄ, ka tripleta atribÅ«ti nav URI, un arÄ« Å”o atribÅ«tu vÄrtÄ«bas var bÅ«t tikai literÄļi. LPG piekritÄji iegÅ«st tieÅ”i to, ko vÄlÄjÄs. SpeciÄli izgudrotajÄ NQX formÄtÄ piemÄrs, kas lÄ«dzÄ«gs iepriekÅ”minÄtajam RDF*, izskatÄs Å”Ädi:
:bob :marriedTo :alice {"since" : "2013-09-13"}
V.2. VaicÄjumu valodas
TÄ kÄ modeļa lÄ«menÄ« vienÄ vai otrÄ veidÄ ir atbalstÄ«ta LPG, jums ir jÄnodroÅ”ina iespÄja veikt datu vaicÄjumus Å”ÄdÄ modelÄ«.
AnzogrÄfs arÄ« atbalsta SPARQL* un gatavojas atbalstÄ«t Cypher, vaicÄjumu valoda programmÄ Neo4j.
Stardog atbalsta savÄjos paplaÅ”inÄÅ”ana SPARQL un atkal Gremlins. JÅ«s varat iegÅ«t tripleta URI un āmetainformÄcijuā SPARQL, izmantojot kaut ko lÄ«dzÄ«gu:
Starp citu, GraphDB savulaik atbalstÄ«ja Tinkerpop/Gremlin, neatbalstot LPG, taÄu tas apstÄjÄs 8.0 vai 8.1 versijÄ.
VI. LicenÄu nostiprinÄÅ”ana
Nesen nav bijuÅ”i papildinÄjumi komplektu āizvÄles trÄ«skÄrÅ”Ä veikalaā un āatvÄrtÄ koda trÄ«skÄrÅ”Ä veikalaā krustojumÄ. Jaunie atvÄrtÄ koda RDF veikali ir tÄlu no labas izvÄles ikdienas lietoÅ”anai, un jaunie trÄ«skÄrÅ”ie veikali, kurus es vÄlÄtos izmantot (piemÄram, AnzoGraph), ir slÄgtÄ pirmkoda. DrÄ«zÄk varam runÄt par samazinÄjumiem...
Protams, atklÄtÄ pirmkoda darbÄ«ba agrÄk netika slÄgta, taÄu dažas atvÄrtÄ koda krÄtuves lÄnÄm vairs netiek uzskatÄ«tas par izvÄles vÄrtÄm. Virtuoso, kuram ir atvÄrtÄ pirmkoda izdevums, manuprÄt, slÄ«kst kļūdÄs. Blazegraph iegÄdÄjÄs AWS un veidoja Amazon Neptune pamatu; tagad nav skaidrs, vai bÅ«s vÄl vismaz viens izlaidums. Paliek tikai JÄna...
Ja atvÄrtais kods nav Ä«paÅ”i svarÄ«gs, bet jÅ«s vienkÄrÅ”i vÄlaties to izmÄÄ£inÄt, tad arÄ« viss ir mazÄk rožains nekÄ iepriekÅ”. PiemÄram:
Zvaigznes suns izbeidzas izplatÄ«t bezmaksas versiju (tomÄr parastÄs versijas izmÄÄ£inÄjuma periods ir dubultojies);
Š² GraphDB mÄkonis, kur iepriekÅ” varÄja izvÄlÄties bezmaksas pamata plÄnu, jaunu lietotÄju reÄ£istrÄcijas ir apturÄtas.
KopumÄ vidusmÄra IT cilvÄkam telpa kļūst arvien nepieejamÄka, tÄs attÄ«stÄ«ba kļūst par korporÄciju dÄrgumu.