Semantiline veeb ja lingitud andmed on nagu kosmoses: seal pole elu. Minna sinna enam-vĂ€hem pikaks ajaks... no ma ei tea, mida nad sulle lapsepĂ”lves ĂŒtlesid vastuseks "Ma tahan saada astronaudiks". Kuid te saate jĂ€lgida, mis toimub Maal olles; Palju lihtsam on saada amatöörastronoomiks vĂ”i isegi professionaaliks.
Artikkel keskendub hiljutistele, mitte vanematele kui mitme kuu vanustele suundumustele RDF-i ladustamise maailmas. Esimese lÔigu metafoor oli inspireeritud lÔike all olevast eepilises suuruses reklaampildist.
Eepiline pilt

I. GraphQL RDF-i juurdepÀÀsu jaoks
et GraphQL-i eesmÀrk on saada universaalseks andmebaasi juurdepÀÀsukeeleks. Kuidas on lood RDF-i juurdepÀÀsu vÔimalusega GraphQL-i abil?
Selle vÔimaluse pakuvad karbist vÀljas:
- TĂ€hekoer (, );
- TopQuadrant tooted (, ).
Kui hoidla sellist vĂ”imalust ei paku, saab selle iseseisvalt realiseerida, kirjutades vastava âlahendajaâ. Seda nad tegid nĂ€iteks Prantsusmaa projektis . VĂ”i ei saa enam midagi kirjutada, vaid lihtsalt vĂ”ta .
Semantilise veebi ja lingitud andmete ortodoksse jĂ€rgija seisukohalt on see kĂ”ik muidugi kurb, kuna tundub, et see on mĂ”eldud integratsioonide jaoks, mis on ĂŒles ehitatud jĂ€rgmise andmesilo ĂŒmber, mitte sobivate platvormide jaoks (muidugi RDF-i poed) .
GraphQL-i ja SPARQL-i vÔrdlemise muljed on kahesugused.
- Ăhest kĂŒljest nĂ€eb GraphQL vĂ€lja nagu SPARQL-i kauge sugulane: see lahendab REST-ile omased resamplimise ja pĂ€ringute paljususe probleemid - ilma milleta poleks ilmselt vĂ”imalik kaaluda. pĂ€ringu keel, vĂ€hemalt veebi jaoks;
- Teisest kĂŒljest valmistab GraphQL-i jĂ€ik skeem pettumuse. SeetĂ”ttu tundub selle "introspektiivsus" RDF-i tĂ€ieliku refleksiivsusega vĂ”rreldes vĂ€ga piiratud. Ja omaduste radadel pole analoogi, seega pole isegi vĂ€ga selge, miks see on "Graafik".
II. Adapterid MongoDB jaoks
Eelmist tÀiendav trend.
- Stardogis praegu - eelkÔige kÔik samal GraphQL-il - konfigureerige MongoDB andmete kaardistamine virtuaalseteks RDF-graafikuteks;
- GraphDB on hiljuti sisestage fragmendid MongoDB Query SPARQL-i.
Kui rÀÀkida laiemalt JSON-i allikate adapteritest, mis vĂ”imaldavad enam-vĂ€hem "lennult" esindada neisse allikatesse salvestatud JSON-i RDF-ina, vĂ”ib meenutada ĂŒsna kauaaegset. , mida saab reguleerida, , Apache Jenale.
Kahe esimese suundumuse kokkuvĂ”tteks vĂ”ime öelda, et RDF-mĂ€luseadmed nĂ€itavad tĂ€ielikku valmisolekut integreerimiseks ja töötamiseks "polĂŒgloti pĂŒsivuse" tingimustes. Teadaolevalt on see viimane aga ammu moest vĂ€ljas ja seda asendab mitme mudeliga. Kuidas on lood multimodelleerimisega RDF-salvestuse maailmas?
ĂhesĂ”naga, mitte mingil juhul. Tahaksin pĂŒhendada eraldi artikli mitme mudeliga DBMS-ide teemale, kuid praegu vĂ”ib mĂ€rkida, et praegu ei ole graafikumudelil âpĂ”hinevaidâ mitme mudeliga DBMS-e (selle tĂŒĂŒbiks vĂ”ib pidada ka RDF-i) . MĂ”nda vĂ€ikest multimodelleerimist â alternatiivse LPG graafikumudeli RDF-i salvestustuge â arutatakse artiklis .
III. OLTP vs. OLAP
Samas seesama Gartner et multimudel on sine qua non tingimus eelkÔige selleks operatsiooniruumid DBMS. See on arusaadav: "mitme muutujaga ladustamise" olukorras tekivad peamised probleemid tehingulisusega.
Aga kus asuvad RDF-mĂ€luruumid OLTP-OLAP-i skaalal? Vastaksin nii: ei seal ega siin. Et nĂ€idata, milleks need on mĂ”eldud, on vaja mĂ”nda kolmandat lĂŒhendit. Ăhe variandina pakun vĂ€lja OLIP â intellektuaalne töötlemine vĂ”rgus.
Siiski ikkagi:
- GraphDB-s rakendatud MongoDB-ga integreerimismehhanismid pole vÀhem tÀhtsad kirjutamise jÔudlusprobleemide lahendamiseks;
- Stardog lÀheb veelgi kaugemale ja tÀielikult mootor, taas eesmÀrgiga parandada salvestamise jÔudlust.
NĂŒĂŒd lubage mul tutvustada turule uut tegijat. IBM Netezza ja Amazon Redshifti loojatelt - . Pilt selle pĂ”hjal tehtud toote reklaamist postitati artikli algusesse. AnzoGraph positsioneerib end GOLAP-i lahendusena. Kuidas teile SPARQL aknafunktsioonidega meeldib? â
SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { ⊠}IV. RocksDB
Juba kĂ”rgemal Stardog 7 Beta teadaandele, milles öeldi, et Stardog kavatseb kasutada RocksDB-d aluseks oleva salvestussĂŒsteemina - vĂ”tmevÀÀrtuste pood, Google'i LevelDB Facebooki hark. Miks tasub rÀÀkida teatud trendist?
Esiteks, otsustades , mitte ainult RDF-mĂ€lusid ei âsiirdataâ RocksDB-sse. On projekte RocksDB kasutamiseks salvestusmootorina ArangoDB-s, MongoDB-s, MySQL-is ja MariaDB-s, Cassandras.
Teiseks luuakse RocksDB-s projekte (st mitte tooteid) asjakohastel teemadel.
NĂ€iteks eBay kasutab RocksDB-d oma "teadmiste graafiku" jaoks. Muide, naljakas on lugeda: pĂ€ringukeel sai alguse kodus kasvatatud vormingust, kuid viimasel ajal on see muutunud palju rohkem SPARQL-i sarnaseks. Nagu naljas: ĂŒkskĂ”ik kui suure teadmiste graafiku me teeme, jĂ”uame ikkagi RDF-i.
Teine nĂ€ide â see, mis ilmus paar kuud tagasi . Enne selle tutvustamist tuli Wikidata ajaloolisele teabele juurde pÀÀseda standardsele Mediawiki API-le. NĂŒĂŒd on puhta SPARQL-iga palju vĂ”imalik. âKaoti allâ on ka RocksDB. Muide, nĂ€ib, et WDHQS-i tegi isik, kes importis Freebase'i Google'i teadmiste graafikusse.
V. LPG tugi
Lubage mul teile meelde tuletada peamist erinevust LPG ja RDF graafikute vahel.
LPG-s saab skalaarseid omadusi mÀÀrata servaeksemplaridele, samas kui RDF-is saab neid mÀÀrata ainult serva "tĂŒĂŒpidele" (aga mitte ainult skalaarsetele omadustele, vaid ka tavalistele ĂŒhendustele). See RDF-i piirang vĂ”rreldes LPG-ga ĂŒht vĂ”i teist modelleerimistehnikat. LPG piiranguid vĂ”rreldes RDF-iga on raskem ĂŒletada, kuid LPG graafikud sarnanevad pigem Harari Ă”piku kui RDF-i graafikutega, mistĂ”ttu inimesed neid tahavad.
Ilmselt jaguneb "LPG-toe" ĂŒlesanne kaheks osaks:
- RDF mudelis muudatuste tegemine, mis vÔimaldavad simuleerida selles LPG struktuure;
- RDF-i pÀringukeeles muudatuste tegemine, mis vÔimaldavad juurdepÀÀsu selle modifitseeritud mudeli andmetele, vÔi selle mudeli kohta pÀringute tegemise vÔimaluse rakendamine populaarsetes LPG-pÀringukeeltes.
V.1. Andmemudel
Siin on mitu vÔimalikku lÀhenemist.
V.1.1. Singletoni kinnisvara
TĂ”enĂ€oliselt on kĂ”ige otsesem lĂ€henemine RDF-i ja LPG ĂŒhtlustamisele :
- NĂ€iteks predikaadi asemel
:isMarriedTokasutatakse predikaate:isMarriedTo1,:isMarriedTo2ja t. d. - Need predikaadid saavad seejÀrel uute kolmikute subjektideks:
:isMarriedTo1 :since "2013-09-13"^^xsd:datejne - Nende predikaatide esinemisjuhtude seos ĂŒhise predikaadiga tehakse kindlaks vormi kolmikute abil
:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo. - Ilmselt
rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, aga mÔelge, miks te ei peaks lihtsalt kirjutama:isMarriedTo1 rdf:type :isMarriedTo.
LPG toe probleem on siin lahendatud RDFS-i tasemel. Selline otsus nÔuab lisamist vastavasse . MÔnda muudatust vÔib vaja minna RDF-poodide puhul, mis toetavad tagajÀrgede lisamist, kuid praegu vÔib Singleton Propertyt pidada lihtsalt jÀrjekordseks modelleerimistehnikaks.
V.1.2. Reifikatsioon on Ôigesti tehtud
VÀhem naiivsed lÀhenemisviisid tulenevad mÔistmisest, et atribuutide eksemplarid on kolmikute abil tÀielikult muututavad. Kui saame öelda midagi kolmikute kohta, saame rÀÀkida ka varajuhtumitest.
KĂ”ige jĂ”ulisem neist lĂ€henemisviisidest on , ehk RDR, Blazegraphi sĂŒgavuses. See on algusest peale enda ja AnzoGraphi jaoks. LĂ€henemise tugevuse mÀÀrab asjaolu, et selle raames vastavad muudatused . Asi on aga ÀÀrmiselt lihtne. RDF-i Turtle'i serialiseerimisel saate nĂŒĂŒd kirjutada midagi sellist:
<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .V.1.3. Muud lÀhenemised
Te ei saa jĂ€nnata formaalse semantikaga, vaid lihtsalt eeldada, et kolmikutel on teatud identifikaatorid, mis on loomulikult URI-d, ja luua nende URI-dega uusi kolmikuid. JÀÀb ĂŒle vaid anda juurdepÀÀs neile URI-dele SPARQL-is. Niisiis TĂ€hekoer.
In Allegrograph vahepealsel viisil. On teada, et Allegrographis kolmikute identifikaatorid , kuid kolmekordsete atribuutide rakendamisel ei paista need silma. Siiski on see formaalsest semantikast veel vĂ€ga kaugel. TĂ€helepanuvÀÀrne on, et kolmiku atribuudid ei ole URI-d ja nende atribuutide vÀÀrtused vĂ”ivad olla ka ainult literaalid. LPG jĂ€rgijad saavad tĂ€pselt seda, mida nad tahtsid. Spetsiaalselt leiutatud NQX-vormingus nĂ€eb ĂŒlaltoodud RDF*-i jaoks sarnane nĂ€ide vĂ€lja selline:
:bob :marriedTo :alice {"since" : "2013-09-13"}V.2. PĂ€ringu keeled
Olles LPG-d ĂŒhel vĂ”i teisel viisil mudeli tasemel toetanud, peate vĂ”imaldama sellises mudelis andmete kohta pĂ€ringuid teha.
- Blazegraph RDF* pÀringute jaoks toetab О . SPARQL* pÀring nÀeb vÀlja selline:
SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }- Anzograaf toetab ka ja kavatseb toetada , Neo4j pÀringukeel.
- Stardog toetab omasid SPARQL ja Gremlin. Kolmiku URI ja metateabe saate SPARQL-is, kasutades midagi sellist:
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}- Allegrograph toetab ka oma SPARQL:
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }Muide, GraphDB toetas omal ajal Tinkerpopi/Gremlinit ilma LPG-d toetamata, kuid see peatus versioonis 8.0 vÔi 8.1.
VI. Litsentside karmistamine
Komplektide âvalik kolmikpoodâ ja âavatud lĂ€htekoodiga kolmepoodâ ristumiskohta pole hiljuti lisatud. Uued avatud lĂ€htekoodiga RDF-i poed pole kaugeltki hea valik igapĂ€evaseks kasutamiseks ja uued RDF-poed, mida tahaksin kasutada (nagu AnzoGraph), on suletud lĂ€htekoodiga. Pigem vĂ”ib rÀÀkida isegi langustest...
Muidugi ei ole avatud lĂ€htekoodiga ressurssi varem suletud, kuid mĂ”nda avatud lĂ€htekoodiga hoidlat ei peeta enam aeglaselt valimist vÀÀrt. Virtuoso, millel on avatud lĂ€htekoodiga vĂ€ljaanne, on minu arvates vigadesse uppumas. Blazegraphi ostis AWS ja see moodustas Amazon Neptune'i aluse; nĂŒĂŒd on ebaselge, kas tuleb veel vĂ€hemalt ĂŒks vĂ€ljalase. JÀÀb vaid Jena...
Kui avatud lÀhtekoodiga pole suurt tÀhtsust, aga tahad lihtsalt proovida, siis on ka kÔik varasemast vÀhem roosiline. NÀiteks:
- TĂ€hekoer levitage tasuta versiooni (tavaversiooni prooviperiood on aga kahekordistunud);
- ĐČ , kus varem sai valida tasuta pĂ”hipaketi, on peatanud uute kasutajate registreerimised.
Ăldjuhul muutub ruum keskmise IT-inimese jaoks ĂŒha kĂ€ttesaamatuks, selle arendamine on korporatsioonide pĂ€ralt.
Allikas: www.habr.com
