Kaj se trenutno dogaja s RDF skladišči?

Semantični splet in povezani podatki sta podobna bližnjemu vesolju: tam ni življenja. Da bi se odpravili tja za daljše obdobje… no, ne vem, kaj so vam rekli v otroštvu v odgovoru na vprašanje "želimo postati astronavt". A opazovati dogajanje je mogoče tudi od tod; postati ljubiteljski astronom ali celo profesionalec je veliko lažje.

V članku bo govora o svežih, ne starejših od nekaj mesecev, trendih iz sveta RDF-shranjevanja. Metafora v prvem odstavku je bila navdihnjena z epsko velikansko oglasno sliko pod točko.


Epska slika

Kaj se trenutno dogaja s RDF skladišči?

I. GraphQL za dostop do RDF

Pravijo, da želi GraphQL postati univerzalni jezik dostopa do podatkovnih baz. Kako pa je s sposobnostjo dostopa z uporabo GraphQL do RDF?

"Iz škatle" to možnost zagotavljajo:

Če pa shramba ne ponuja te možnosti, jo lahko implementirajo sami s pisanjem ustreznega "odločitelja" (resolverja). Tako so ravnali, na primer, v francoskem projektu DataTourisme. Ali pa je mogoče nič ne pisati, temveč preprosto vzeti HyperGraphQL.

Z vidika ortodoksnega privrženca semantičnega spleta in povezanih podatkov je to seveda žalostno, saj se zdi, da je namenjeno integracijam, ki temeljijo na teh podatkovnih silo, namesto da bi bilo primerno za platforme (seveda, RDF-shranjevanja).

Impresije iz primerjave GraphQL s SPARQL ostajajo mešane.

  • Po eni strani se GraphQL zdi daljni sorodnik SPARQL: reši težave, značilne za REST, kot so ponovna izbira in množičnost poizvedb — brez česar verjetno ne bi mogli biti jezik poizvedb, čeprav bi bil le za splet;
  • Po drugi strani pa žalosti strogost sheme GraphQL. Posledično se zdi njegova "introspekcija" zelo omejena v primerjavi s popolno refleksivnostjo RDF. In ni nobenega analoga lastnostnih poti, tako da niti ni povsem jasno, zakaj se imenuje "Graph-".

II. Adapterji za MongoDB

Trend, ki dopolnjuje prejšnjega.

  • v Stardog zdaj mogoče — zlasti vse na istem GraphQL — nastaviti prikazovanje podatkov MongoDB v virtualne RDF-grafi;
  • GraphDB je nedavno omogućava dovolil vstavljanje fragmentov MongoDB poizvedb v SPARQL.

Če govorimo širše, o adapterjih za JSON-vir, ki omogočajo bolj ali manj "v živo" prikazovanje shranjenega JSON v teh virih kot RDF, se lahko spomnimo tudi na že dolgo obstoječ SPARQL Generate, which can be adapted, na primer, to Apache Jena.

To summarize the first two trends, it can be said that RDF repositories demonstrate complete readiness for integrations and functioning in conditions of "polyglot persistence." However, it is known that this last concept has long been out of fashion, and it is being replaced by multimodelity. But how is multimodelity faring in the world of RDF repositories? In short, not at all. The topic of multimodel DBMS deserves a separate article, but for now, it can be noted that there are currently no multimodel DBMS "based" on the graph model (one variety of which can be considered RDF). Some minor multimodelity — support for alternative graph models by RDF repositories — will be discussed in

section V III. OLTP vs. OLAP.

However, Gartner itself

states , that multimodelity is a sine qua non condition primarily foroperational DBMS. This is understandable: in a "polyglot persistence" situation, the main problems arise with transactionality. But where do RDF repositories fall on the OLTP—OLAP scale? I would answer: neither here nor there. To denote what they are intended for, some kind of third abbreviation is needed. As an option, I would suggest

OLIP — Online Intellectual Processing. However, nonetheless:

the integration mechanisms implemented in GraphDB are not least

AnzoGraph . The product advertisement image was placed at the beginning of the article. AnzoGraph positions itself as a GOLAP solution. How do you like SPARQL with window functions? —SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { … }

IV. RocksDB

Above, there was already

a reference to the announcement of Stardog 7 Beta, where it was mentioned that Stardog intends to use RocksDB as the underlying storage system — a "key-value" store, Facebook's fork of Google's LevelDB. Why is it already worth talking about some trend? Firstly, judging from

the article on Wikipedia , RocksDB is being adopted not only by RDF repositories. There are projects using RocksDB as a storage engine in ArangoDB, MongoDB, MySQL and MariaDB, Cassandra., na RocksDB "presadijo" ne samo RDF-shranilniki. Obstajajo projekti za uporabo RocksDB kot shrambe v ArangoDB, MongoDB, MySQL in MariaDB, Cassandra.

Po drugi strani se na RocksDB izvajajo projekti (tj. ne proizvodi) ustrezne tematike.

Na primer, eBay uporablja RocksDB v platformi za svoj 'graf znanja'. Mimogrede, zabavno je brati: jezik poizvedovanja se je začel kot domači format, vendar se je v zadnjem času preusmeril, da bi bil bolj podoben SPARQL. Kot v anekdotah: kolikorkoli knowledge graph delali, vedno znova nastane RDF.

Drug primer je nedavno nastali Wikidata History Query Service. Pred njegovim nastankom je bilo treba za zgodovinske podatke iz Wikidata posegati preko MWAPI do standardnega Mediawiki API. Zdaj je veliko mogoče na čistem SPARQL. Mimogrede, WDHQS je naredil nekdo, ki se je ukvarjal s prenosom Freebase v Google Knowledge Graph.

V. Podpora LPG

Ponovim osnovno razliko med LPG-grafi in RDF-grafi.

Pri LPG lahko na primere robov pripnemo skalarne lastnosti, medtem ko jih v RDF lahko pripnemo le na 'tipa' robov (pa tudi ne le skalarne lastnosti, temveč tudi običajne povezave). Ta omejitev RDF v primerjavi z LPG prenaša s temi ali drugimi tehnikami modeliranja. Omejitev LPG v primerjavi z RDF pa je težje premagati, vendar so LPG-grafi bolj podobni slikam iz učbenika Hararija, zato jih ljudje želijo.

Očitno se naloga 'podpore LPG' razdeli na dva dela:

  1. vnos sprememb v model RDF, ki omogočajo simuliacijo LPG-konstrukcij;
  2. vnos sprememb v jezik poizvedovanja za RDF, ki omogoča dostop do podatkov v tem spremenjenem modelu — ali pa realizacija možnostih poizvedovanja v tem modelu v priljubljenih jezikih poizvedovanja za LPG.

V.1. Model podatkov

Tu je več možnih pristopov.

V.1.1. Singleton Property

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

  • Namesto, na primer, predikata :isMarriedTo se uporabljajo predikati :isMarriedTo1, :isMarriedTo2 itd.
  • Nato ti predikati postanejo subjekti novih tripletov: :isMarriedTo1 :since "2013-09-13"^^xsd:date itd.
  • Povezava teh primerov predikatov s skupnim predikatom se vzpostavi s tripleti tipa :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Očitno je, da rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, toda pomislite, zakaj ni smiselno preprosto zapisati :isMarriedTo1 rdf:type :isMarriedTo.

Naloga 'podpore LPG' se tukaj rešuje na ravni RDFS. Takšno rešitev je treba uvesti v ustrezni standard. Nekatere spremembe so lahko potrebne od RDF-repozitorijev, ki podpirajo dodajanje posledic, zaenkrat pa lahko Singleton Property obravnavamo preprosto kot še eno tehniko modeliranja.

V.1.2. Pravilna reifikacija

Manj naivni pristopi izhajajo iz zavedanja, da se primeri lastnosti povsem instancirajo s trojkami. Če bomo imeli možnost govoriti o trojkah, bomo lahko govorili tudi o primerih lastnosti.

Najbolj trden od teh pristopov je RDF*, znan tudi kot RDR, ki se je rodil v okviru Blazegraph. Od samega začetka je bil izbran za AnzoGraph. Trdnost pristopa se določa s tem, da se v njegovem okviru predlagajo ustrezne spremembe v RDF Semantics. Vendar je bistvo izjemno preprosto. V Turtle-serializaciji RDF lahko zdaj pišemo približno takole:

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

V.1.3. Drugi pristopi

Lahko se ne obremenjujemo s formalno semantiko, ampak preprosto smatrajmo, da imajo trojke nekakšne identifikatorje, ki so seveda URI, in sestavimo nove trojke s temi URI. Ostati mora le še omogočiti dostop do teh URI v SPARQL. Tako dela Stardog.

V Allegrograph so se odločili za vmesno pot. Znano je, da identifikatorji trojk v Allegrograph je, vendar pri implementaciji triple attributes navzven niso vidni. Vendar je do formalne semantike še daleč. Zanimivo je, da atributi trojk niso URI, in vrednosti teh atributov so lahko tudi samo literali. Pristopi LPG dobijo točno tisto, kar so želeli. V posebej izumljenem formatu NQX, primer, podoben zgoraj za RDF*, pa izgleda tako:

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

V.2. Jeziki poizvedb

Po tem, ko je na ravni modela podpreti LPG, je potrebno omogočiti poizvedovanja nad podatki v takem modelu.

  • Blazegraph za poizvedbe o RDF* podpira SPARQL* in Gremlin.Poizvedba SPARQL* izgleda tako:

 SELECT * { <> :since ?since }

  • AnzoGraph prav tako podpira SPARQL* in se namerava podpirati Cypher, jezik poizvedb v Neo4j.
  • Stardog podpira svoje razširitev SPARQL in spet Gremlin. V SPARQL je mogoče pridobiti URI trojke in 'meta informacije' s pomočjo približno takšne konstrukcije:

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

  • Allegrograph prav tako podpira svoje razširitev SPARQL:

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

Mimogrede, GraphDB je neko vreme podržavao Tinkerpop/Gremlin, dok nije podržavao LPG, ali je to prekinuto u verziji 8.0 ili 8.1.

VI. Oštrenje licenci

Poslednjih godina nije bilo novih preklapanja između 'triplestore of choice' i 'open source triplestore'. Nova RDF skladišta s otvorenim izvorom su daleko od toga da budu dobar izbor za svakodnevnu upotrebu, a izvorni kod novih RDF skladišta koje bismo želeli da koristimo (kao AnzoGraph) je zatvoren. Možda se može govoriti čak i o smanjenju...

Naravno, otvoreni izvor se ne zatvara, ali neka skladišta s otvorenim izvorom postepeno prestaju da budu smatrana dostojnim izborom. Virtuoso, koji ima opensource verziju, po mom mišljenju, tonulira u greškama. Blazegraph je kupljen od strane AWS i postao je osnova za Amazon Neptune; sada nije jasno da li će biti još jedne verzije. Ostaje samo Jena...

Ako otvoreni izvor nije od velikog značaja, a samo želite da probate, situacija je takođe manje bezbrižna nego ranije. Na primer:

  • Stardog prestaje distribuciju besplatne verzije (inače, probni period se udvostručio);
  • u GraphDB Cloud, gde je ranije bilo moguće izabrati besplatni osnovni plan, obustavljena je registracija novih korisnika.

U suštini, za običnog IT korisnika svemir postaje sve manje dostupan, a njegovo ovladavanje postaje privilegija korporacija.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster