Mis toimub praegu RDF-i hoidlates?

Semantiline veeb ja lingitud andmed on nagu kosmoses: seal pole elu. Minna sinna enam-vähem pikaks ajaks... Ma ei tea, mida nad teile 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 mitu kuud, suundumustele RDF-i ladustamise maailmas. Esimese lõigu metafoor on inspireeritud lõike all olevast eepilises suuruses reklaampildist.


Eepiline pilt

Mis toimub praegu RDF-i hoidlates?

I. GraphQL RDF-i juurdepääsu jaoks

Nad ütlesidet 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:

Kui hoidla sellist võimalust ei paku, saab selle iseseisvalt realiseerida, kirjutades vastava “lahendaja”. Seda nad tegid näiteks Prantsusmaa projektis Andmeturism. Või ei saa enam midagi kirjutada, vaid lihtsalt võta HyperGraphQL.

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.

  • Nüüd Stardogis ehk - eelkõige kõik samal GraphQL-il - konfigureerige MongoDB andmete kaardistamine virtuaalseteks RDF-graafikuteks;
  • Ontotext GraphDB on hiljuti võimaldab 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. SPARQL Genereeri, mida saab reguleerida, näiteks, 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 on tulemas 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 V jagu.

III. OLTP vs. OLAP

Samas seesama Gartner kirjutabet 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 mõeldud kirjutamise jõudlusprobleemide lahendamiseks;
  • Stardog läheb veelgi kaugemale ja täielikult kirjutab ümber mootor, taas eesmärgiga parandada salvestamise jõudlust.

Nüüd lubage mul tutvustada turule uut tegijat. IBM Netezza ja Amazon Redshifti loojatelt - AnzoGraph™. 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 seal oli link 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 Wikipedia artikkel, 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 platvorm 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 Wikidata ajaloo päringuteenus. Enne selle tutvustamist tuli Wikidata ajaloolisele teabele juurde pääseda MWAPI 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 ületada ü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:

  1. RDF mudelis muudatuste tegemine, mis võimaldavad simuleerida selles LPG struktuure;
  2. 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 üksiku vara:

  • Näiteks predikaadi asemel :isMarriedTo kasutatakse predikaate :isMarriedTo1, :isMarriedTo2 ja t. d.
  • Need predikaadid saavad seejärel uute kolmikute subjektideks: :isMarriedTo1 :since "2013-09-13"^^xsd:date jne
  • 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 RDF*, ehk RDR, sündinud Blazegraphi sügavuses. See on algusest peale valitud enda ja AnzoGraphi jaoks. Lähenemise tugevuse määrab asjaolu, et selle raames pakutud vastavad muudatused RDF semantika. 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 saabub Tähekoer.

In Allegrograph läks vahepealsel viisil. On teada, et Allegrographis kolmikute identifikaatorid on, 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* и Gremlin. SPARQL* päring näeb välja selline:

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

  • Anzograaf toetab ka SPARQL* ja kavatseb toetada Salakiri, Neo4j päringukeel.
  • Stardog toetab omasid laienemine SPARQL ja uuesti Gremlin. Kolmiku URI ja metateabe saate SPARQL-is, kasutades midagi sellist:

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

 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 ning uued kolmikpoed, mida tahaksin kasutada (nagu AnzoGraph), on suletud lähtekoodiga. Pigem võib rääkida 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 lõpeb levitage tasuta versiooni (tavaversiooni prooviperiood on aga kahekordistunud);
  • в GraphDB pilv, kus varem sai valida tasuta põhipaketi, uute kasutajate registreerimised on peatatud.

Üldjuhul muutub ruum keskmise IT-inimese jaoks üha kättesaamatuks, selle arendamine on korporatsioonide päralt.

Allikas: www.habr.com

Lisa kommentaar