Kio okazas nun kun RDF-stokado?

La Semantika Reto kaj Ligitaj Datumoj estas kiel kosma spaco: tie ne ekzistas vivo. Por iri tien dum pli-malpli longa tempo... Mi ne scias, kion ili diris al vi kiel infano responde al "Mi volas fariĝi astronaŭto." Sed vi povas observi kio okazas dum sur la Tero; Estas multe pli facile fariĝi amatora astronomo aŭ eĉ profesiulo.

La artikolo fokusiĝos pri lastatempaj, ne pli malnovaj ol pluraj monatoj, tendencoj de la mondo de RDF-stokado. La metaforo en la unua alineo estas inspirita de la epopea reklama bildo sub la tranĉo.


Epopea bildo

Kio okazas nun kun RDF-stokado?

I. GraphQL por RDF-aliro

Ili diraske GraphQL celas fariĝi universala datumbaza alirlingvo. Kio pri la kapablo aliri RDF per GraphQL?

El la skatolo ĉi tiu ŝanco estas provizita de:

Se la deponejo ne disponigas tian ŝancon, ĝi povas esti efektivigita sendepende skribante taŭgan "solvilon". Jen kion ili faris, ekzemple, en la franca projekto DataTourisme. Aŭ vi ne plu povas skribi ion, sed nur preni HyperGraphQL.

El la vidpunkto de ortodoksa adepto de la Semantika Reto kaj Ligitaj Datumoj, ĉio ĉi, kompreneble, estas malĝoja, ĉar ĝi ŝajnas desegnita por integriĝoj konstruitaj ĉirkaŭ la sekva datumsilo, kaj ne taŭgaj platformoj (RDF-butikoj, kompreneble) .

La impresoj de komparo de GraphQL kun SPARQL estas duoblaj.

  • Unuflanke, GraphQL aspektas kiel malproksima parenco de SPARQL: ĝi solvas la problemojn de resampling kaj multeco de demandoj, kiuj estas tipaj por REST - sen kiuj, verŝajne, ne eblus konsideri. demanda lingvo, almenaŭ por la reto;
  • Aliflanke, la rigida skemo de GraphQL estas seniluziiga. Sekve, ĝia "introspektiveco" ŝajnas tre limigita kompare kun la plena refleksiveco de RDF. Kaj ne ekzistas analogo de posedaĵvojoj, do eĉ ne estas tre klare kial ĝi estas "Grafo-".

II. Adaptiloj por MongoDB

Tendenco komplementa al la antaŭa.

  • En Stardog nun eble - precipe, ĉio sur la sama GraphQL - agordu la mapadon de MongoDB-datumoj en virtualajn RDF-grafikojn;
  • Ontotext GraphDB havas lastatempe permesas al enigu fragmentojn en SPARQL ĉe MongoDB Query.

Se ni parolas pli vaste pri adaptiloj al JSON-fontoj, kiuj permesas pli-malpli "sur la flugo" reprezenti la JSON konservitan en ĉi tiuj fontoj kiel RDF, ni povas rememori la sufiĉe longdaŭran SPARQL Generu, kiu povas esti ĝustigita, ekzemple, al Apache Jena.

Resumante la unuajn du tendencojn, ni povas diri, ke RDF-stokado montras plenan pretecon por integriĝo kaj funkciado en kondiĉoj de "poliglota persisto". Oni tamen scias, ke ĉi tiu lasta longe malmodiĝis, kaj estas anstataŭata de Venas multmodelo. Kio pri multmodelado en la mondo de RDF-stokado?

Resume, neniel. Mi ŝatus dediĉi apartan artikolon al la temo de plurmodelaj DBMS-oj, sed nuntempe oni povas rimarki, ke nuntempe ne ekzistas plurmodelaj DBMS-oj "bazitaj" sur grafika modelo (RDF povas esti konsiderata kiel speco de ĝi) . Iu malgranda plurmodelado - RDF-stoka subteno por alternativa LPG-grafa modelo - estos diskutita en sekcio V.

III. OLTP vs. OLAP

Tamen, la sama Gartner li skribastiu multmodelo estas sine qua non kondiĉo ĉefe por operaciejoj DBMS. Ĉi tio estas komprenebla: en situacio de "multvaria stokado", la ĉefaj problemoj ŝprucas kun transakcio.

Sed kie troviĝas RDF-stokoj sur la OLTP-OLAP-skalo? Mi respondus jene: nek tie nek ĉi tie. Por indiki al kio ili celas, necesas ia tria mallongigo. Kiel eblon mi sugestus OLIP — Enreta Intelekta Prilaborado.

Tamen, ankoraŭ:

  • la integriĝmekanismoj kun MongoDB efektivigitaj en GraphDB estas ne malplej celita labori ĉirkaŭ verki agado-temojn;
  • Starhundo iras eĉ pli for kaj tute reverkas motoro, denove kun la celo plibonigi registran efikecon.

Nun mi prezentu novan ludanton al la merkato. De la kreintoj de IBM Netezza kaj Amazon Redshift - AnzoGraph™. Bildo de reklamo por produkto bazita sur ĝi estis afiŝita komence de la artikolo. AnzoGraph poziciigas sin kiel GOLAP-solvo. Kiel vi ŝatas SPARQL kun fenestrofunkcioj? —

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

IV. RocksDB

Jam pli alta estis ligilo al la anonco de Stardog 7 Beta, kiu diris ke Stardog uzos RocksDB kiel subesta stokadsistemo - ŝlosil-valora vendejo, Facebook-forko de LevelDB de Guglo. Kial valoras paroli pri certa tendenco?

Unue, juĝante laŭ Vikipedia artikolo, ne nur RDF-stokoj estas "transplantitaj" al RocksDB. Estas projektoj por uzi RocksDB kiel stokan motoron en ArangoDB, MongoDB, MySQL kaj MariaDB, Cassandra.

Due, projektoj (tio estas, ne produktoj) pri koncernaj temoj estas kreitaj sur RocksDB.

Ekzemple, eBay uzas RocksDB en kajo por via "scio-grafiko". Cetere, estas amuze legi: la demandlingvo komenciĝis kiel hejma formato, sed pli lastatempe ĝi transiris por esti multe pli kiel SPARQL. Kiel en la ŝerco: kiom ajn da scigrafio ni faras, ni ankoraŭ finiĝas kun RDF.

Alia ekzemplo - kiu aperis antaŭ kelkaj monatoj Vikidatuma Historio Demandservo. Antaŭ ĝia enkonduko, Vikidatumaj historiaj informoj devis esti aliritaj trae MWAPI al la norma Mediawiki API. Nun multe eblas per pura SPARQL. "Sub la kapuĉo" estas ankaŭ RocksDB. Cetere, WDHQS estis farita, ŝajnas, de la persono kiu importis Freebase en la Google Knowledge Graph.

V. LPG-subteno

Mi memorigu vin pri la ĉefa diferenco inter LPG-grafikoj kaj RDF-grafikoj.

En LPG, skalaraj trajtoj povas esti asignitaj al randkazoj, dum en RDF ili povas esti asignitaj nur al randaj "specoj" (sed ne nur skalaraj trajtoj, sed ankaŭ ordinaraj ligoj). Ĉi tiu limigo de RDF kompare kun LPG venki unu aŭ alia modela tekniko. La limigoj de LPG kompare kun RDF estas pli malfacile supereblaj, sed LPG-grafoj pli similas bildojn el Harari-lernolibro ol RDF-grafikaĵoj, tial homoj volas ilin.

Evidente, la tasko de "LPG-subteno" falas en du partojn:

  1. farante ŝanĝojn al la RDF-modelo, kiuj ebligas simuli LPG-strukturojn en ĝi;
  2. farante ŝanĝojn al la RDF demandlingvo kiuj ebligas aliri datumojn en ĉi tiu modifita modelo, aŭ efektivigante la kapablon fari demandojn al ĉi tiu modelo en popularaj LPG demandlingvoj.

V.1. Datuma modelo

Estas pluraj eblaj aliroj ĉi tie.

V.1.1. Singleton-posedaĵo

La plej laŭvorta aliro al harmoniigado de RDF kaj LPG verŝajne estas singleton propraĵo:

  • Anstataŭ, ekzemple, la predikativo :isMarriedTo predikatoj estas uzataj :isMarriedTo1, :isMarriedTo2 mi t. d.
  • Tiuj predikatoj tiam iĝas la subjektoj de novaj trinasktioj: :isMarriedTo1 :since "2013-09-13"^^xsd:date kaj aliaj.
  • La ligo de ĉi tiuj okazoj de predikatoj kun komuna predikato estas establita per triopoj de la formo :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Estas evidente ke rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, sed pensu pri kial vi ne simple skribu :isMarriedTo1 rdf:type :isMarriedTo.

La problemo de "LPG-subteno" estas solvita ĉi tie ĉe la RDFS-nivelo. Tia decido postulas inkludon en la taŭga normo. Kelkaj ŝanĝoj povas esti postulataj por RDF-butikoj kiuj subtenas alligi konsekvencojn, sed nuntempe, Singleton Property povas esti opiniita kiel nur alia modeliga tekniko.

V.1.2. Reigo Farita Ĝuste

Malpli naivaj aliroj devenas de la ekkompreno ke posedaĵkazoj estas plene instantiigeblaj per trinasktioj. Povante ion diri pri trinasktioj, ni povos paroli pri posedaĵoj.

La plej fortika el ĉi tiuj aliroj estas RDF*, alinome RDR, naskita en la profundo de Blazegraph. Ĝi estas de la komenco mem elektita por vi mem kaj AnzoGraph. La solideco de la aliro estas determinita de la fakto, ke en sia kadro estas proponitaj respondaj ŝanĝoj en RDF Semantiko. La punkto, tamen, estas ege simpla. En Testuda seriigo de RDF vi nun povas skribi ion tian:

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

V.1.3. Aliaj aliroj

Vi ne povas ĝeni kun formala semantiko, sed simple supozi, ke trinasktioj havas certajn identigilojn, kiuj estas, kompreneble, URI-oj, kaj kreas novajn trinasktiojn kun ĉi tiuj URI-oj. Restas nur doni aliron al ĉi tiuj URI-oj en SPARQL. Do alvenas Starhundo.

En Alegrografo iris en meza maniero. Estas konata ke triopaj identigiloj en Allegrograph estas, sed dum efektivigado de trioblaj atributoj ili ne elstaras. Tamen, ĝi estas ankoraŭ tre malproksime de formala semantiko. Estas rimarkinde, ke triopaj atributoj ne estas URIoj, kaj la valoroj de ĉi tiuj atributoj ankaŭ povas esti nur laŭvortaj. LPG-anoj ricevas ĝuste tion, kion ili volis. En la speciale elpensita NQX-formato, ekzemplo simila al tiu ĉi supre por RDF* aspektas jene:

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

V.2. Demandlingvoj

Subteninte LPG iel aŭ alian sur la modelnivelo, vi devas ebligi fari demandojn pri datumoj en tia modelo.

  • Blazegraph por RDF*-demandoj subtenas SPARQL* и Gremlino. Demando SPARQL* aspektas jene:

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

  • Anzografo ankaŭ subtenas SPARQL* kaj tuj subtenos Cipro, demandolingvo en Neo4j.
  • Stardog subtenas sian propran ekspansio SPARQL kaj denove Gremlino. Vi povas akiri la triopan URI kaj "meta-informojn" en SPARQL uzante ion tian:

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

  • Allegrograph ankaŭ subtenas sian propran ekspansio SPARQL:

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

Cetere, GraphDB siatempe subtenis Tinkerpop/Gremlin sen subteni LPG, sed ĉi tio ĉesis en versio 8.0 aŭ 8.1.

VI. Streĉigo de licencoj

Ne estis lastatempaj aldonoj al la intersekciĝo de la aroj "triobla elekto" kaj "malfermfonta triopa vendejo". La novaj malfermfontaj RDF-butikoj estas tre malproksima de esti bona elekto por ĉiutaga uzo, kaj la novaj trioblaj vendejoj, kiujn mi ŝatus uzi (kiel AnzoGraph) estas fermitfontaj. Prefere, ni povas paroli pri malkreskoj...

Kompreneble, malfermfonteco ne estis fermita en la pasinteco, sed iuj malfermfontaj deponejoj iom post iom ne plu estas konsiderataj elekteblaj. Virtuoso, kiu havas malfermfontan eldonon, miaopinie dronas en cimoj. Blazegraph estis aĉetita fare de AWS kaj formis la bazon de Amazon Neptune; nun estas neklare ĉu estos almenaŭ unu plia eldono. Nur Jena restas...

Se malferma fonto ne estas tre grava, sed vi volas nur provi ĝin, tiam ĉio ankaŭ estas malpli rozkolora ol antaŭe. Ekzemple:

  • Starhundo haltas distribui la senpagan version (tamen la provperiodo de la regula versio duobliĝis);
  • в GraphDB Nubo, kie antaŭe vi povis elekti senpagan bazan planon, novaj uzantregistriĝoj estis suspenditaj.

Ĝenerale, por la averaĝa IT-ulo, spaco fariĝas pli kaj pli nealirebla; ĝia evoluo fariĝas la amaso de korporacioj.

fonto: www.habr.com

Aldoni komenton