Šta se sada dešava sa RDF repozitorijumima?

Semantička mreža i povezani podaci su poput svemira: tamo nema života. Da idem tamo na manje-više dugo... Ne znam šta su ti rekli kao detetu na „Želim da postanem astronaut“. Ali možete gledati šta se dešava dok ste na Zemlji; mnogo je lakše postati astronom amater ili čak profesionalac.

Članak će se fokusirati na svježe, ne starije od nekoliko mjeseci, trendove iz svijeta RDF skladištenja. Metafora u prvom pasusu inspirisana je epskom reklamnom slikom ispod reza.


epska slika

Šta se sada dešava sa RDF repozitorijumima?

I. GraphQL za RDF pristup

Oni kazuza 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:

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 DataTourism. Ili već možete ništa napisati, ali samo uzmite HyperGraphQL.

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.

  • Sada kod Stardog-a moguće - posebno, sve na istom GraphQL - konfigurirati prikaz MongoDB podataka u virtuelne RDF grafove;
  • Ontotext GraphDB nedavno dozvoljava 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 SPARQL Generatekoji se može podesiti na primjer, 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 dolazi 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 Odjeljak V.

III. OLTP vs. OLAP

Međutim, isti Gartner on pišeda 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 predviđeno da zaobiđe probleme performansi pisanja;
  • Stardog ide još dalje i potpuno prepisuje motor, opet s ciljem poboljšanja performansi pisanja.

A sada da vam 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 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 postojala je veza 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 Wikipedia članak, 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 platforma 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 Usluga upita historije Wikidata. Prije njegovog uvođenja, historijskim informacijama Wikidata se moralo pristupiti putem MWAPI 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 prebroditi 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:

  1. unošenje izmena u RDF model koji omogućavaju simulaciju LPG konstrukcija u njemu;
  2. 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 singleton property:

  • Umjesto, na primjer, predikata :isMarriedTo koriste se predikati :isMarriedTo1, :isMarriedTo2 i tako dalje.
  • Ovi predikati tada postaju subjekti novih trojki: :isMarriedTo1 :since "2013-09-13"^^xsd:date i 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 standardna. 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 RDF*aka RDR, rođen u utrobi Blazegrapha. To je od početka izabrani za mene i AnzoGraph. Solidnost pristupa određena je činjenicom da se u njegovim okvirima ponuđeno odgovarajuće promjene u RDF Semantics. 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 stiže stardog.

U Allegrographu otišao na srednji način. Poznato je da su identifikatori trojki u Allegrographu je, 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* и Gremlin. SPARQL* upit izgleda ovako:

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

  • Anzograph takođe podržava SPARQL* i podržaće Cypher, jezik upita u Neo4j.
  • Stardog održava svoje proširenje SPARQL i opet 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 proširenje 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 open source RDF prodavnice su daleko od toga da budu dobar izbor za svakodnevnu upotrebu, a izvorni kod za nove trostruke prodavnice koje bih želeo da koristim (na primer, AnzoGraph) je zatvoren. Radije, možemo govoriti o sniženjima...

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 zaustavlja distribuirati besplatnu verziju (međutim, probni period obične se udvostručio);
  • в GraphDB Cloud, gdje ste ranije mogli odabrati besplatni osnovni plan, registracija novog korisnika je obustavljena.

Generalno, prostor postaje sve nedostupniji za običnog IT laika, njegov razvoj postaje dio korporacije.

izvor: www.habr.com

Dodajte komentar