Semantička mreža i povezani podaci su poput svemira: tamo nema života. Ići tamo na manje-više dug vremenski period... pa, ne znam šta su vam rekli kao detetu na „Želim da postanem astronaut“. Ali možete posmatrati šta se dešava dok ste na Zemlji; Mnogo je lakše postati astronom amater ili čak profesionalac.
Članak će se fokusirati na nedavne, ne starije od nekoliko mjeseci, trendove iz svijeta RDF skladištenja. Metafora u prvom pasusu inspirisana je reklamnom slikom epske veličine ispod reza.
epska slika

I. GraphQL za RDF pristup
za koji GraphQL tvrdi da je univerzalni jezik za pristup bazi podataka. A šta je sa mogućnošću pristupa koristeći GraphQL u RDF?
Izvan okvira, ovu priliku pružaju:
- zvjezdani pas (, );
- TopQuadrant proizvodi (, ).
Ako spremište ne pruža takvu mogućnost, implementira se nezavisno pisanjem odgovarajućeg “resolvera” (resolvera). To je učinjeno, na primjer, u francuskom projektu . Ili već možete ništa napisati, ali samo uzmite .
Sa stanovišta ortodoksnog pristalica 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ćih platformi (naravno, RDF skladišta) .
Utisci iz poređenja GraphQL-a sa SPARQL-om su dvostruki.
- 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, vjerovatno, ne bi bilo moguće razmatrati jezik upita, barem za web;
- S druge strane, rigidna shema GraphQL-a uznemiruje. Shodno tome, čini se da je njegova "introspektivnost" veoma ograničena u poređenju sa punom refleksivnošću RDF-a. I nema analoga putanja svojstava, tako da nije ni jasno zašto je "Grafikon-".
II. Adapteri za MongoDB
Trend komplementaran prethodnom.
- u Stardogu sada - posebno, sve na istom GraphQL - konfigurirati prikaz MongoDB podataka u virtuelne RDF grafove;
- GraphDB je nedavno umetnuti u SPARQL fragmente na MongoDB upitu.
Govoreći šire, o adapterima za JSON izvore koji omogućavaju manje-više "u hodu" da predstavljaju JSON pohranjen u ovim izvorima kao RDF, onda se možemo prisjetiti i postojećeg već neko vrijeme koji se može podesiti , Apache Jena.
Sumirajući prva dva trenda, možemo reći da RDF repozitorijumi pokazuju punu spremnost za integraciju i funkcionisanje u uslovima „višestrukog skladištenja“ (poliglot persistence). Poznato je, međutim, da je ovo potonje odavno izašlo iz mode, i da ga zamijeni multi-modeliranje. A šta je sa multimodeliranjem u svijetu RDF skladišta?
Ukratko, nema šanse. Želeo bih da posvetim poseban članak temi višemodelnog DBMS-a, ali za sada možete videti da ne postoje višemodelni DBMS „bazirani” na modelu grafa (RDF se može smatrati njegovom varijacijom). O nekom malom multi-modeliranju - podršci od strane RDF skladišta za alternativni LPG model grafa - će se raspravljati u .
III. OLTP vs. OLAP
Međutim, isti Gartner da je multimodeliranje sine qua non uslov prvenstveno za operacione sale DBMS. To je razumljivo: u situaciji „višestrukog skladištenja“ glavni problemi nastaju sa transakcionim.
Ali gdje se na OLTP-OLAP skali nalaze RDF spremišta? Odgovorio bih ovako: ni tamo ni ovamo. Da bismo naznačili čemu su namijenjeni, potrebna je neka treća skraćenica. Kao opciju predlažem OLIP — Internetska intelektualna obrada.
Međutim, ipak:
- mehanizmi integracije implementirani u GraphDB sa MongoDB nisu najmanje važni da zaobiđe probleme performansi pisanja;
- Stardog ide još dalje i potpuno motor, opet s ciljem poboljšanja performansi pisanja.
Sada mi dozvolite da predstavim novog igrača tržištu. od kreatora IBM Netezza i Amazon Redshift - . Na početku članka postavljena je slika iz reklame za proizvod baziran na njoj. AnzoGraph se pozicionira kao GOLAP rješenje. Kako vam se sviđa SPARQL sa funkcijama prozora? —
SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { … }IV. RocksDB
Već gore na najavu Stardog 7 Beta, u kojoj se kaže da će Stardog koristiti RocksDB kao osnovni sistem za skladištenje - skladište ključ/vrijednost, Facebook-ov klanac Google-ovog LevelDB-a. Zašto vrijedi govoriti o određenom trendu?
Prvo, sudeći po , nisu samo RDF riznice "transplantirane" u RocksDB. Postoje projekti koji koriste RocksDB kao mehanizam za skladištenje u ArangoDB, MongoDB, MySQL i MariaDB, Cassandra.
Drugo, projekti (odnosno, ne proizvodi) odgovarajuće teme izrađuju se na RocksDB-u.
Na primjer, eBay koristi RocksDB u za vaš "graf znanja". Usput, smiješno je čitati: jezik upita počeo je kao domaći format, ali u skorije vrijeme prelazi u mnogo više nalik SPARQL-u. Kao u šali: bez obzira koliko graf znanja radimo, i dalje dobijamo RDF.
Još jedan primjer - pojavio se prije nekoliko mjeseci . Prije njegovog uvođenja, historijskim informacijama Wikidata se moralo pristupiti putem na standardni Mediawiki API. Mnogo je sada moguće u čistom SPARQL-u. "Ispod haube" se nalazi i RocksDB. Inače, WDHQS je to uradio, izgleda da je osoba uključena u uvoz Freebase-a u Google Knowledge Graph.
V. LPG podrška
Dozvolite mi da vas podsjetim na glavnu razliku između LPG grafova i RDF grafova.
U LPG-u, skalarna svojstva mogu biti pridružena instancama ruba, dok se u RDF-u mogu priložiti samo rubnim "tipovima" (ali ne samo skalarnim svojstvima, već i običnim vezama). Ovo ograničenje RDF-a u odnosu na LPG neka vrsta tehnike modeliranja. Ograničenja LPG-a u poređenju sa RDF-om je teže prevazići, ali LPG grafovi su više kao slike iz Hararijevog udžbenika nego RDF grafovi, pa ih ljudi žele.
Očigledno, zadatak "podržavanja TNG-a" pada na dva dijela:
- unošenje izmena u RDF model koji omogućavaju simulaciju LPG konstrukcija u njemu;
- unošenje promena u RDF jezik upita koje omogućavaju pristup podacima u ovom modifikovanom modelu, ili implementacija mogućnosti upita ovog modela u popularnim LPG jezicima upita.
V.1. Model podataka
Ovdje postoji nekoliko mogućih pristupa.
V.1.1. singleton property
Vjerovatno je najbukvalniji pristup harmonizaciji RDF-a i TNG-a :
- Umjesto, na primjer, predikata
:isMarriedTokoriste se predikati:isMarriedTo1,:isMarriedTo2i tako dalje. - Ovi predikati tada postaju subjekti novih trojki:
:isMarriedTo1 :since "2013-09-13"^^xsd:datei drugi. - Veza ovih instanci predikata sa zajedničkim predikatom uspostavlja se trojkama oblika
:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo. - Očigledno je
rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, ali razmislite zašto ne biste trebali samo pisati:isMarriedTo1 rdf:type :isMarriedTo.
Zadatak "LPG podrške" je ovdje riješen na nivou RDFS. Takva odluka zahtijeva uključivanje u relevantne . Neke promjene mogu biti potrebne od RDF spremišta koja podržavaju pričvršćivanje posljedica, ali za sada, Singleton Property se može smatrati samo još jednom tehnikom modeliranja.
V.1.2. Reification Done Right
Manje naivni pristupi proizlaze iz spoznaje da su instance svojstva savršeno instancirane trojkama. Budući da možemo govoriti o trojkama, možemo govoriti i o imovinskim instancama.
Najčvršći od ovih pristupa je aka RDR, u utrobi Blazegrapha. To je od početka za mene i AnzoGraph. Solidnost pristupa određena je činjenicom da se u njegovim okvirima odgovarajuće promjene u . Poenta je, međutim, krajnje jednostavna. U RDF serijalizaciji Turtle 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 sa tim URI-jima. Sve što ostaje je dati pristup ovim URI-ovima u SPARQL-u. Dakle stardog.
U Allegrographu na srednji način. Poznato je da su identifikatori trojki u Allegrographu , ali kada se implementiraju trostruki atributi, oni ne strše. Međutim, čak je i formalna semantika veoma daleko. Posebno, triplet atributi nisu URI-ji, a vrijednosti ovih atributa također mogu biti samo literali. LPG pristalice dobijaju upravo ono što žele. U posebno izmišljenom NQX formatu, primjer sličan onom iznad za RDF* izgleda ovako:
:bob :marriedTo :alice {"since" : "2013-09-13"}V.2. Jezici upita
Pošto ste na ovaj ili onaj način podržali LPG na nivou modela, morate omogućiti upit podataka u takvom modelu.
- Blazegraph za RDF* upite podržava и . SPARQL* upit izgleda ovako:
SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }- Anzograph takođe podržava i podržaće , jezik upita u Neo4j.
- Stardog održava svoje SPARQL i Gremlin. Možete dobiti URI tripleta i "meta-informacije" u SPARQL koristeći nešto poput ovoga:
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}- Allegrograph također podržava svoje SPARQL:
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }Inače, GraphDB je u jednom trenutku podržavao Tinkerpop/Gremlin bez podrške za LPG, ali je to prestalo u verziji 8.0 ili 8.1.
VI. Pooštravanje dozvola
Nije bilo nedavnih dodataka na raskrsnici skupova “triplestore of choice” i “open source triplestore”. Nove RDF prodavnice otvorenog koda su daleko od toga da budu dobar izbor za svakodnevnu upotrebu, a nove RDF prodavnice koje bih voleo da koristim (kao AnzoGraph) su zatvorenog koda. Umjesto toga, možemo čak govoriti o smanjenju...
Naravno, prethodno otvoreni kod nije zatvoren, ali se neka spremišta otvorenog koda postepeno više ne smatraju vrijednima izbora. Virtuoso, koji ima open source izdanje, po mom mišljenju, davi se u bagovima. Blazegraph je kupio AWS i činio osnovu Amazon Neptuna; sada nije jasno da li će biti još barem jedno izdanje. Ostaje samo Jenna...
Ako open source nije previše važan, ali samo želite pokušati, onda je sve manje ružičasto nego prije. Na primjer:
- Zvezdani pas distribuirati besplatnu verziju (međutim, probni period obične se udvostručio);
- в , gdje ste ranije mogli odabrati besplatni osnovni plan, obustavio je registraciju novih korisnika.
Generalno, prostor postaje sve nedostupniji za običnog IT laika, njegov razvoj postaje dio korporacije.
izvor: www.habr.com
