Kaj se zdaj dogaja z repozitoriji RDF?

Semantični splet in povezani podatki so kot vesolje: tam ni življenja. Iti tja za bolj ali manj dolgo ... no, ne vem, kaj so ti kot otroku rekli na "hočem postati astronavt." Lahko pa opazujete, kaj se dogaja na Zemlji; Veliko lažje je postati amaterski astronom ali celo profesionalec.

Članek se bo osredotočil na novejše, ne starejše od nekaj mesecev, trende iz sveta RDF shranjevanja. Metaforo v prvem odstavku je navdihnila epska reklamna slika pod rezom.


Epska slika

Kaj se zdaj dogaja z repozitoriji RDF?

I. GraphQL za dostop do RDF

Pravijoda želi GraphQL postati univerzalni jezik za dostop do baze podatkov. Kaj pa možnost dostopa do RDF s pomočjo GraphQL?

To priložnost takoj po namestitvi ponuja:

Če repozitorij ne ponuja takšne možnosti, ga je mogoče implementirati neodvisno s pisanjem ustreznega "resolverja". Tako so naredili na primer v francoskem projektu DataTourisme. Ali pa ne morete več ničesar napisati, ampak samo vzeti HyperGraphQL.

Z vidika ortodoksnega privrženca semantičnega spleta in povezanih podatkov je vse to seveda žalostno, saj se zdi, da je zasnovano za integracije, zgrajene okoli naslednjega podatkovnega silosa, in ne za ustrezne platforme (seveda RDF trgovine) .

Vtisi primerjave GraphQL s SPARQL so dvojni.

  • Po eni strani je GraphQL videti kot daljni sorodnik SPARQL: rešuje težave ponovnega vzorčenja in množice poizvedb, ki so značilne za REST – brez katerih verjetno ne bi bilo mogoče razmišljati poizvedbeni jezik, vsaj za splet;
  • Po drugi strani pa je toga shema GraphQL razočaranje. V skladu s tem se zdi njegova "introspektivnost" zelo omejena v primerjavi s popolno refleksivnostjo RDF. In analognih poti lastnine ni, tako da sploh ni zelo jasno, zakaj je "Graph-".

II. Adapterji za MongoDB

Trend, ki dopolnjuje prejšnjega.

  • zdaj v Stardogu morda - zlasti vse na istem GraphQL - konfigurirajte preslikavo podatkov MongoDB v virtualne grafe RDF;
  • GraphDB je pred kratkim omogoča vstavite fragmente v SPARQL na MongoDB Query.

Če govorimo širše o adapterjih za vire JSON, ki omogočajo, da bolj ali manj »na letenju« predstavijo JSON, shranjen v teh virih kot RDF, se lahko spomnimo na precej dolgoletno SPARQL Generate, ki se lahko prilagaja, na primer, v Apache Jena.

Če povzamemo prva dva trenda, lahko rečemo, da RDF pomnilniki izkazujejo popolno pripravljenost za integracijo in delovanje v pogojih »poliglotske vztrajnosti«. Znano pa je, da slednje že dolgo ni več v modi in ga nadomešča prihaja multi-model. Kaj pa večmodeliranje v svetu shranjevanja RDF?

Skratka nikakor. Želel bi posvetiti ločen članek temi večmodelnih DBMS-jev, vendar je za zdaj mogoče opozoriti, da trenutno ni večmodelnih DBMS-jev, ki bi temeljili na grafičnem modelu (RDF se lahko šteje za njegovo vrsto) . Nekaj ​​malega multi-modeliranja – podpora za shranjevanje RDF za alternativni model grafa LPG – bo obravnavano v razdelek V.

III. OLTP proti OLAP

Vendar isti Gartner pišeda je multimodel sine qua non pogoj predvsem za operacijных DBMS. To je razumljivo: v razmerah "večvariantnega shranjevanja" se glavne težave pojavijo pri transakcijah.

Toda kje so pomnilniki RDF na lestvici OLTP-OLAP? Jaz bi odgovoril takole: niti tam niti sem. Za navedbo, čemu so namenjene, je potrebna še tretja okrajšava. Kot možnost bi predlagal OLIP — Spletna intelektualna obdelava.

Vendar še vedno:

  • integracijski mehanizmi z MongoDB, implementirani v GraphDB, so nenazadnje pomembni predvideno odpraviti težave z zmogljivostjo pisanja;
  • Stardog gre še dlje in povsem prepisuje motor, spet s ciljem izboljšanja zmogljivosti snemanja.

Zdaj pa naj trgu predstavim novega igralca. od ustvarjalcev IBM Netezza in Amazon Redshift - AnzoGraph. Na začetku članka je bila objavljena slika iz oglasa za izdelek, ki temelji na njem. AnzoGraph se postavlja kot rešitev GOLAP. Kako vam je všeč SPARQL z okenskimi funkcijami? —

SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE {  …  }

IV. RocksDB

Že višje bila je povezava na objavo Stardog 7 Beta, v kateri je pisalo, da bo Stardog uporabil RocksDB kot osnovni sistem za shranjevanje – shrambo ključev in vrednosti, Facebookov fork Googlovega LevelDB. Zakaj je vredno govoriti o določenem trendu?

Prvič, sodeč po Članek iz Wikipedije, niso samo pomnilniki RDF "presajeni" v RocksDB. Obstajajo projekti za uporabo RocksDB kot mehanizma za shranjevanje v ArangoDB, MongoDB, MySQL in MariaDB, Cassandra.

Drugič, projekti (torej ne izdelki) o ustreznih temah so ustvarjeni na RocksDB.

Na primer, eBay uporablja RocksDB v Platforma za vaš "graf znanja". Mimogrede, smešno je brati: poizvedbeni jezik se je začel kot domača oblika zapisa, v zadnjem času pa je vse bolj podoben SPARQL. Kot v šali: ne glede na to, koliko grafov znanja naredimo, še vedno dobimo RDF.

Drug primer - tisti, ki se je pojavil pred nekaj meseci Storitev poizvedb po zgodovini Wikidat. Pred njegovo uvedbo je bilo treba do zgodovinskih informacij Wikidata dostopati prek MWAPI na standardni API Mediawiki. Zdaj je s čistim SPARQL mogoče veliko. "Pod pokrovom" je tudi RocksDB. Mimogrede, WDHQS je, kot kaže, naredila oseba, ki je uvozila Freebase v Google Knowledge Graph.

V. Podpora LPG

Naj vas spomnim na glavno razliko med grafi LPG in grafi RDF.

V LPG se skalarne lastnosti lahko dodelijo robnim instancam, medtem ko se v RDF lahko dodelijo samo robnim "vrstam" (vendar ne le skalarnim lastnostim, ampak tudi navadnim povezavam). Ta omejitev RDF v primerjavi z LPG premagati ena ali druga tehnika modeliranja. Omejitve LPG v primerjavi z RDF je težje premagati, vendar so grafi LPG bolj podobni slikam iz učbenika Harari kot grafi RDF, zato si jih ljudje želijo.

Očitno je naloga "podpore LPG" razdeljena na dva dela:

  1. spreminjanje modela RDF, ki omogoča simulacijo struktur LPG v njem;
  2. spreminjanje poizvedovalnega jezika RDF, ki omogoča dostop do podatkov v tem spremenjenem modelu, ali implementacija zmožnosti izvajanja poizvedb v tem modelu v priljubljenih poizvedovalnih jezikih LPG.

V.1. Podatkovni model

Tu je možnih več pristopov.

V.1.1. Lastnina Singleton

Najbolj dobeseden pristop k usklajevanju RDF in LPG je verjetno singleton lastnina:

  • Namesto npr.predikata :isMarriedTo uporabljajo se predikati :isMarriedTo1, :isMarriedTo2 in t. d.
  • Ti predikati nato postanejo subjekti novih trojčkov: :isMarriedTo1 :since "2013-09-13"^^xsd:date itd
  • Povezavo teh primerkov predikatov s skupnim predikatom vzpostavljajo trojčki oblike :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Očitno je, rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, vendar pomislite, zakaj ne bi samo pisali :isMarriedTo1 rdf:type :isMarriedTo.

Problem "podpore LPG" je tukaj rešen na ravni RDFS. Taka odločitev zahteva uvrstitev v ustrezno стандарт. Morda bodo potrebne nekatere spremembe za shrambe RDF, ki podpirajo posledice pritrjevanja, toda zaenkrat lahko Singleton Property obravnavamo kot samo še eno tehniko modeliranja.

V.1.2. Reifikacija je pravilno izvedena

Manj naivni pristopi izhajajo iz spoznanja, da je primerke lastnosti v celoti mogoče ustvariti s trojčki. Če bomo lahko rekli nekaj o trojčkih, bomo lahko govorili o lastninskih primerih.

Najbolj robusten od teh pristopov je RDF*, alias RDR, Rojen v globinah Blazegrapha. To je od samega začetka izvoljen zase in za AnzoGraph. Trdnost pristopa določa dejstvo, da v njegovem okviru ponujen ustrezne spremembe v Semantika RDF. Bistvo pa je izjemno preprosto. V Turtle serializaciji RDF lahko zdaj napišete nekaj takega:

<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .

V.1.3. Drugi pristopi

Ne morete se obremenjevati s formalno semantiko, ampak preprosto predpostavite, da imajo trojčki določene identifikatorje, ki so seveda URI-ji, in ustvarite nove trojčke s temi URI-ji. Vse kar ostane je omogočiti dostop do teh URI-jev v SPARQL. torej prispe Stardog.

V alegrografu šel na vmesni način. Znano je, da trojni identifikatorji v Allegrographu obstaja, vendar pri izvajanju trojnih atributov ne štrlijo. Vendar je še zelo daleč od formalne semantike. Omeniti velja, da tripletni atributi niso URI-ji, vrednosti teh atributov pa so lahko tudi samo literali. Privrženci LPG dobijo točno to, kar so želeli. V posebej izumljenem formatu NQX je primer, podoben zgornjemu za RDF*, videti takole:

:bob :marriedTo :alice {"since" : "2013-09-13"}

V.2. Poizvedovalni jeziki

Ker ste tako ali drugače podpirali LPG na nivoju modela, morate omogočiti poizvedbe po podatkih v takem modelu.

  • Blazegraph za poizvedbe RDF* podpira SPARQL* и Gremlin. Poizvedba SPARQL* izgleda takole:

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

  • Anzograf tudi podpira SPARQL* in bo podprl Cypher, poizvedovalni jezik v Neo4j.
  • Stardog podpira svoje širitev SPARQL in ponovno Gremlin. Trojni URI in »metainformacije« v SPARQL lahko dobite z nekaj takega:

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

  • Tudi Allegrograph podpira svoje širitev SPARQL:

 SELECT * { ("since" ?since)  franz:attributesNameValue  ( :bob :marriedTo ?wife ) }

Mimogrede, GraphDB je nekoč podpiral Tinkerpop/Gremlin brez podpore LPG, vendar se je to ustavilo v različici 8.0 ali 8.1.

VI. Zaostrovanje licenc

V presečišču naborov »triplestore of choice« in »open source triplestore« v zadnjem času ni bilo dodatkov. Nove odprtokodne shrambe RDF še zdaleč niso dobra izbira za vsakodnevno uporabo, nove shrambe RDF, ki bi jih rad uporabljal (na primer AnzoGraph), pa so zaprtokodne. Prej lahko govorimo celo o znižanjih...

Seveda odprtokodnost v preteklosti ni bila zaprta, vendar se nekatera odprtokodna skladišča počasi ne zdijo več vredna izbire. Virtuoso, ki ima odprtokodno edicijo, se po mojem mnenju utaplja v hroščih. Blazegraph je kupil AWS in je bil osnova za Amazon Neptune; zdaj ni jasno, ali bo izšla vsaj še ena izdaja. Ostala je samo še Jena...

Če odprtokodnost ni zelo pomembna, ampak jo želite le preizkusiti, potem je tudi vse manj rožnato kot prej. Na primer:

  • Zvezdnik preneha distribuirajte brezplačno različico (vendar se je poskusno obdobje običajne različice podvojilo);
  • в GraphDB Cloud, kjer ste prej lahko izbrali brezplačen osnovni načrt, je prekinil registracije novih uporabnikov.

Na splošno je za povprečnega IT-jevca vesolje vedno bolj nedostopno, njegov razvoj postaja stvar korporacij.

Vir: www.habr.com

Dodaj komentar