Što se sada događa s RDF spremištima?

Semantički web i povezani podaci su poput svemira: tamo nema života. Otići tamo na duže ili više vremena... Ne znam što su ti kao djetetu govorili na "želim postati astronaut". Ali možete promatrati što se događa dok ste na Zemlji; Mnogo je lakše postati astronom amater ili čak profesionalac.

Članak će se fokusirati na recentne, ne starije od nekoliko mjeseci, trendove iz svijeta RDF pohrane. Metafora u prvom odlomku nadahnuta je reklamnom slikom epske veličine ispod kroja.


epska slika

Što se sada događa s RDF spremištima?

I. GraphQL za RDF pristup

Oni kažuda GraphQL tvrdi da je univerzalni jezik za pristup bazi podataka. A što je s mogućnošću pristupa RDF-u pomoću GraphQL-a?

Izvan okvira, ovu mogućnost pružaju:

Ako repozitorij ne pruža takvu priliku, implementira se samostalno pisanjem odgovarajućeg "razrješavača" (razrješavač). To je učinjeno, primjerice, u francuskom projektu DataTourism. Ili već možete ništa ne napisati, nego samo uzeti HyperGraphQL.

Sa stajališta ortodoksnog sljedbenika semantičkog weba i povezanih podataka, sve je to, naravno, tužno, jer se čini da je namijenjeno integracijama izgrađenim oko sljedećeg silosa podataka, a ne odgovarajućim platformama (naravno, RDF trgovinama) .

Dojmovi usporedbe GraphQL-a sa SPARQL-om su dvojaki.

  • S jedne strane, GraphQL izgleda kao daleki rođak SPARQL-a: rješava probleme ponovnog odabira i višestrukih upita koji su tipični za REST - bez kojih, vjerojatno, ne bi bilo moguće razmatrati jezik upita, barem za web;
  • S druge strane, kruta shema GraphQL-a smeta. Sukladno tome, čini se da je njegova "introspektivnost" vrlo ograničena u usporedbi s punom refleksivnošću RDF-a. I ne postoji analogija staza svojstava, pa nije ni jasno zašto je "Grafikon-".

II. Adapteri za MongoDB

Trend komplementaran prethodnom.

  • Sada u Stardogu možda - posebno, sve na istom GraphQL-u - konfigurirajte mapiranje MongoDB podataka u virtualne RDF grafikone;
  • Ontotext GraphDB je nedavno to omogućuje umetnite fragmente u SPARQL na MongoDB upitu.

Govoreći šire, o adapterima na JSON izvore koji omogućuju više-manje "u hodu" predstavljanje JSON-a pohranjenog u tim izvorima kao RDF, onda se možemo prisjetiti i postojećeg već duže vrijeme SPARQL Generirajkoji se može podešavati na primjer, do Apache Jene.

Rezimirajući prva dva trenda, možemo reći da RDF repozitoriji pokazuju punu spremnost za integraciju i funkcioniranje u uvjetima „višestruke pohrane“ (polyglot persistence). Poznato je, međutim, da je ovaj drugi odavno izašao iz mode, i da ga zamijeni dolazak multi-modeliranje. A što je s višestrukim modeliranjem u svijetu RDF pohrane?

Ukratko, nikako. Želio bih posvetiti poseban članak temi višemodelnih DBMS-ova, ali za sada možete vidjeti da sada ne postoje višemodelni DBMS-ovi "temeljeni" na modelu grafa (RDF se može smatrati njegovom varijacijom). O nekom malom višestrukom modeliranju - podršci RDF pohranama alternativnog modela LPG grafa - bit će riječi u odjeljak V.

III. OLTP vs. OLAP

Međutim, isti Gartner piše:da je multimodeliranje sine qua non uvjet prvenstveno za operacijske dvorane DBMS. To je razumljivo: u situaciji "multivarijantnog skladištenja", glavni problemi nastaju s transakcijskom snagom.

Ali gdje se nalaze RDF skladišta na OLTP-OLAP ljestvici? Odgovorio bih ovako: ni tamo ni ovamo. Da bi se naznačilo za što su namijenjeni, potrebna je neka treća kratica. Kao opciju bih predložio OLIP — Internetska intelektualna obrada.

Međutim, još uvijek:

  • mehanizmi integracije implementirani u GraphDB s MongoDB nisu najmanje važni namjeravao rješavanje problema s izvedbom pisanja;
  • Stardog ide još dalje i potpuno prepisuje motor, opet s ciljem poboljšanja performansi pisanja.

Dopustite mi da predstavim novog igrača na tržištu. Od kreatora IBM Netezza i Amazon Redshift - AnzoGraph™. Na početku članka postavljena je slika iz reklame za proizvod temeljen na njemu. AnzoGraph se pozicionira kao GOLAP rješenje. Kako vam se sviđa SPARQL s funkcijama prozora? —

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

IV. RocksDB

Već gore postojala je poveznica na najavu Stardog 7 Beta, koja je rekla da će Stardog koristiti RocksDB kao temeljni sustav za pohranu - ključ-vrijednost za pohranu, Facebookov fork Googleovog LevelDB-a. Zašto vrijedi govoriti o određenom trendu?

Prvo, sudeći po Članak na Wikipediji, nisu samo RDF repozitoriji "presađeni" u RocksDB. Postoje projekti za korištenje RocksDB-a kao mehanizma za pohranu u ArangoDB, MongoDB, MySQL i MariaDB, Cassandra.

Drugo, na RocksDB-u se izrađuju projekti (dakle, ne proizvodi) odgovarajuće teme.

Na primjer, eBay koristi RocksDB u platforma za vaš "graf znanja". Usput, smiješno je čitati: upitni jezik započeo je kao domaći format, ali u novije vrijeme postaje mnogo sličniji SPARQL-u. Kao u šali: koliko god graf znanja radili, još uvijek dobivamo RDF.

Još jedan primjer - pojavio se prije nekoliko mjeseci Wikidata History Query Service. Prije uvođenja, povijesnim informacijama Wikidata moralo se pristupiti putem MWAPI na standardni Mediawiki API. Sada je puno moguće s čistim SPARQL-om. “Ispod haube” je i RocksDB. Inače, WDHQS je napravio, čini se, onaj tko je uvezao Freebase u Google Knowledge Graph.

V. LPG potpora

Dopustite mi da vas podsjetim na glavnu razliku između LPG grafova i RDF grafova.

U LPG-u, skalarna svojstva mogu se dodijeliti rubnim instancama, dok se u RDF-u mogu dodijeliti samo rubnim “tipovima” (ali ne samo skalarna svojstva, već i obične veze). Ovo ograničenje RDF-a u usporedbi s LPG-om nadvladati neka vrsta tehnike modeliranja. Ograničenja LPG-a u usporedbi s RDF-om teže je prevladati, ali LPG grafikoni više nalikuju slikama iz Hararijevog udžbenika nego RDF grafikonima, pa ih ljudi žele.

Očito, zadatak "podržavanja LPG-a" dijeli se na dva dijela:

  1. izmjene RDF modela koje omogućuju simulaciju LPG konstrukata u njemu;
  2. uvođenje promjena u RDF upitni jezik koje omogućuju pristup podacima u ovom modificiranom modelu ili implementacija mogućnosti postavljanja upita ovom modelu u popularnim LPG upitnim jezicima.

V.1. Model podataka

Ovdje postoji nekoliko mogućih pristupa.

V.1.1. singleton vlasništvo

Vjerojatno je najdoslovniji pristup usklađivanju RDF-a i LPG-a singleton vlasništvo:

  • Umjesto npr. predikata :isMarriedTo koriste se predikati :isMarriedTo1, :isMarriedTo2 i t. d.
  • Ovi predikati tada postaju subjekti novih tripleta: :isMarriedTo1 :since "2013-09-13"^^xsd:date itd.
  • Veza ovih instanci predikata sa zajedničkim predikatom uspostavlja se trostrukim oblicima :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Očito je da rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, ali razmislite zašto ne biste trebali samo pisati :isMarriedTo1 rdf:type :isMarriedTo.

Zadatak "LPG podrške" ovdje je riješen na razini RDFS. Takva odluka zahtijeva uvrštavanje u relevantne стандарт. Neke promjene mogu biti potrebne iz RDF repozitorija koji podržavaju prilaganje posljedica, ali za sada se Singleton Property može smatrati samo još jednom tehnikom modeliranja.

V.1.2. Reifikacija učinjena ispravno

Manje naivni pristupi proizlaze iz spoznaje da su instance svojstava savršeno instancirane trojkama. Budući da možemo govoriti o trojkama, možemo govoriti i o instancama vlasništva.

Najčvršći od ovih pristupa je RDF*aka RDR, rođen u utrobi Blazegrapha. Od početka je izabran za sebe i AnzoGraph. Čvrstoća pristupa određena je činjenicom da u njegovom okviru ponudio odgovarajuće promjene u RDF semantika. Poanta je, međutim, krajnje jednostavna. U Turtle serijalizaciji RDF-a sada možete napisati nešto poput ovoga:

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

V.1.3. Drugi pristupi

Ne možete se zamarati formalnom semantikom, već jednostavno uzmite u obzir da trojke imaju neke identifikatore, koji su, naravno, URI-ji, i sastavite nove trojke s tim URI-jima. Sve što preostaje je omogućiti pristup tim URI-jima u SPARQL-u. Tako stiže zvjezdani pas.

U alegrografu otišao na posredan način. Poznato je da su identifikatori trojki u Alegrografu tu je, ali kada se implementiraju trostruki atributi, oni ne strše. Međutim, čak je i formalna semantika vrlo daleko. Značajno, triplet atributi nisu URI-ji, a vrijednosti ovih atributa također mogu biti samo literali. Pristalice LPG-a dobivaju upravo ono što su željele. U posebno izmišljenom NQX formatu, primjer sličan gornjem za RDF* izgleda ovako:

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

V.2. Upitni jezici

Nakon što ste na ovaj ili onaj način podržavali LPG na razini modela, morate omogućiti postavljanje upita za podatke u takvom modelu.

  • Podržava Blazegraph za RDF* upite SPARQL* и Gremlin. SPARQL* upit izgleda ovako:

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

  • Anzograf također podržava SPARQL* i ide u podršku Cypher, jezik upita u Neo4j.
  • Stardog održava svoje nastavak SPARQL i opet Gremlin. Možete dobiti URI tripleta i "metainformacije" u SPARQL-u koristeći nešto poput ovoga:

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

  • Allegrograph također podržava svoje nastavak SPARQL:

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

Inače, GraphDB je jedno vrijeme podržavao Tinkerpop/Gremlin, dok nije podržavao LPG, no to je prestalo u verziji 8.0 ili 8.1.

VI. Pooštravanje dozvola

Nije bilo nedavnih dodataka sjecištu skupova "triplestore of choice" i "open source triplestore". Nove RDF trgovine otvorenog koda daleko su od toga da budu dobar izbor za svakodnevnu upotrebu, a nove trostruke trgovine koje bih želio koristiti (poput AnzoGrapha) su zatvorenog koda. Prije možemo govoriti o smanjenjima...

Naravno, prethodno otvoreni kod nije zatvoren, ali neka se spremišta otvorenog koda postupno više ne smatraju vrijednima izbora. Virtuoso, koji ima open source izdanje, po mom mišljenju guši se u bugovima. Blazegraph kupio AWS i činio osnovu Amazon Neptuna; sada nije jasno hoće li biti još barem jedno izdanje. Ostala je samo Jenna...

Ako open source nije jako bitan, ali samo želite isprobati, onda je i sve manje ružičasto nego prije. Na primjer:

  • Zvjezdani pas prekida distribuirati besplatnu verziju (međutim, probno razdoblje redovne verzije se udvostručilo);
  • в GraphDB Cloud, gdje ste prije mogli odabrati besplatni osnovni paket, obustavljene su registracije novih korisnika.

Općenito, prostor postaje sve nedostupniji običnom IT laiku, njegov razvoj postaje sudbina korporacija.

Izvor: www.habr.com

Dodajte komentar