Chì succede avà cù l'almacenamiento RDF?

U Web Semanticu è Dati Linked sò cum'è u spaziu esterno: ùn ci hè micca vita. Per andà ci per un periudu più o menu longu di tempu... Ùn sò micca ciò ch'elli anu dettu ch'elli t'hà dettu da zitellu in risposta à "Vogliu diventà astronauta". Ma pudete osservà ciò chì succede in a Terra; Hè assai più faciule per diventà un astronomu dilettante o ancu un prufessiunale.

L'articulu hà da fucalizza nantu à e tendenze recenti, micca più vechje di parechji mesi, da u mondu di l'almacenamiento RDF. A metàfora in u primu paràgrafu hè inspiratu da l'imaghjini di publicità epica sottu u cut.


Foto epica

Chì succede avà cù l'almacenamiento RDF?

I. GraphQL per l'accessu RDF

Dicenuchì GraphQL hà u scopu di diventà una lingua universale di accessu à a basa di dati. Chì ci hè a capacità di accede à RDF cù GraphQL?

Fora di a scatula, sta opportunità hè furnita da:

Se u repositoriu ùn furnisce micca una tale opportunità, pò esse implementatu indipindente scrivendu un "resolver" adattatu. Hè ciò chì anu fattu, per esempiu, in u prugettu francese DataTourisme. O ùn pudete più scrive nunda, ma solu piglià HyperGraphQL.

Da u puntu di vista di un aderente ortodossu di u Web Semanticu è Linked Data, tuttu questu, sicuru, hè tristu, postu chì pare cuncepitu per integrazioni custruiti intornu à u prossimu silo di dati, è micca e plataforme adattate (magazzini RDF, sicuru) .

L'impressioni di paragunà GraphQL cù SPARQL sò duie volte.

  • Da una banda, GraphQL s'assumiglia à un parente distante di SPARQL: risolve i prublemi di resampling è multiplicità di dumande chì sò tipici per REST - senza chì, probabilmente, ùn saria micca pussibule di cunsiderà. lingua di dumanda, almenu per u web;
  • Per d 'altra banda, u schema rigidu di GraphQL hè deludente. Per quessa, a so "introspettiva" pare assai limitata paragunata à a piena riflessività di RDF. È ùn ci hè micca un analogu di i percorsi di pruprietà, perchè ùn hè ancu assai chjaru perchè hè "Graph-".

II. Adattatori per MongoDB

Una tendenza cumplementaria à a precedente.

  • In Stardog avà hè possibile - in particulare, tutti nantu à u stessu GraphQL - cunfigurà a mapping of MongoDB data in virtual RDF graphs;
  • Ontotext GraphDB hà recentemente si permette di inserisci frammenti in SPARQL in MongoDB Query.

Se parlemu più largamente di l'adattatori à e fonti JSON, chì permettenu più o menu "à a mosca" per rapprisintà u JSON almacenatu in queste fonti cum'è RDF, pudemu ricurdà l'abbastanti longu. SPARQL Generate, chì pò esse aghjustatu, per esempiu, à Apache Jena.

Riassuntu i primi dui tendenzi, pudemu dì chì l'almacenamiento RDF dimustranu a piena prontezza per l'integrazione è l'operazione in cundizioni di "persistenza poliglotta". Hè cunnisciutu, però, chì questu ultimu hè longu fora di moda, è hè rimpiazzatu da vene multi-mudellu. Chì ci hè di multi-modelamentu in u mondu di l'almacenamiento RDF?

In corta, senza manera. Vogliu dedicà un articulu separatu à u tema di DBMS multi-mudellu, ma per ora si pò nutà chì ùn ci sò attualmente micca DBMS multi-mudellu "basatu" nantu à un mudellu di graficu (RDF pò esse cunsideratu un tipu di questu) . Qualchì picculu multi-modelamentu - supportu di almacenamentu RDF per un mudellu di graficu LPG alternativu - serà discututu in sezione V.

III. OLTP vs. OLAP

Tuttavia, u listessu Gartner iddu scrissi:chì multimodel hè una cundizione sine qua non principalmente per sale operatorie DBMS. Questu hè comprensibile: in una situazione di "almacenamiento multivariate", i prublemi principali si sviluppanu cù a transazzione.

Ma induve nantu à a scala OLTP-OLAP si trovanu i magazzini RDF? Rispondiraghju cusì : nè quì nè quì. Per indicà ciò chì sò destinati, hè necessariu una terza abbreviazione. Cum'è una opzione vi suggerissi OLIP - Trattamentu intellettuale in linea.

Tuttavia, sempre:

  • i miccanismi di integrazione cù MongoDB implementati in GraphDB ùn sò micca menu destinatu per travaglià nantu à i prublemi di rendiment di scrittura;
  • Stardog va ancu più luntanu è cumpletamente riscrive mutore, di novu cù u scopu di migliurà a prestazione di registrazione.

Avà lasciami presentà un novu attore à u mercatu. Da i creatori di IBM Netezza è Amazon Redshift - AnzoGraph™. Una stampa da una publicità per un pruduttu basatu annantu à questu hè stata publicata à u principiu di l'articulu. AnzoGraph si pone cum'è una soluzione GOLAP. Cumu ti piace SPARQL cù funzioni di finestra? —

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

IV. RocksDB

Dighjà più altu ci era un ligame à l'annunziu di Stardog 7 Beta, chì hà dettu chì Stardog hà da aduprà RocksDB cum'è un sistema di almacenamentu sottostanti - un magazinu di valore chjave, un fork Facebook di LevelDB di Google. Perchè vale a pena parlà di una certa tendenza?

Prima, à ghjudicà da Articulu di Wikipedia, micca solu l'almacenamiento RDF sò "trasplantati" à RocksDB. Ci sò prughjetti per utilizà RocksDB cum'è un mutore di almacenamiento in ArangoDB, MongoDB, MySQL è MariaDB, Cassandra.

Siconda, prughjetti (vale à dì, micca prudutti) nantu à temi pertinenti sò creati in RocksDB.

Per esempiu, eBay usa RocksDB in una piattaforma per u vostru "graficu di cunniscenza". Per via, hè divertente di leghje: a lingua di dumanda hà iniziatu cum'è un formatu cultivatu in casa, ma più recentemente hè stata a transizione per esse assai più cum'è SPARQL. Cum'è in u scherzu: ùn importa quantu gràficu di cunniscenza facemu, avemu sempre finitu cù RDF.

Un altru esempiu - unu chì apparsu qualchi mesi fà U serviziu di ricerca di a storia di Wikidata. Prima di a so introduzione, l'infurmazioni storichi di Wikidata anu da esse accessu MWAPI à l'API standard Mediawiki. Avà assai hè pussibule cù SPARQL pura. "Sottu u cappucciu" ci hè ancu RocksDB. In modu, WDHQS hè statu fattu, pare, da a persona chì hà impurtatu Freebase in u Google Knowledge Graph.

V. LPG sustegnu

Lasciami ricurdà di a principal diferenza trà i grafici LPG è i grafici RDF.

In LPG, i pruprietà scalari ponu esse attribuiti à l'istanze di bordu, mentre chì in RDF ponu esse attribuiti solu à i "tipi" di bordu (ma micca solu proprietà scalari, ma ancu e cunnessione ordinali). Questa limitazione di RDF paragunatu à LPG vince una o una altra tecnica di mudellu. E limitazioni di LPG paragunate à RDF sò più difficiuli di superà, ma i grafici LPG sò più simili à l'imaghjini di un libru di testu Harari cà i grafici RDF, per quessa chì a ghjente li vole.

Ovviamente, u compitu di "supportu LPG" hè in dui parti:

  1. fà cambiamenti à u mudellu RDF chì permettenu di simule strutture LPG in questu;
  2. fendu cambiamenti à a lingua di query RDF chì permettenu l'accessu à e dati in stu mudellu mudificatu, o implementendu a capacità di fà dumande à stu mudellu in lingue populari di query LPG.

V.1. U mudellu di dati

Ci sò parechje avvicinamenti pussibuli quì.

V.1.1. Pruprietà Singleton

L'approcciu più literale per armunizà RDF è LPG hè probabilmente pruprietà singleton:

  • Invece di, per esempiu, u predicatu :isMarriedTo i predicati sò usati :isMarriedTo1, :isMarriedTo2 i t. d.
  • Questi predicati diventanu dunque i sugetti di novi triplette: :isMarriedTo1 :since "2013-09-13"^^xsd:date è altri.
  • A cunnessione di sti casi di predicati cù un predicatu cumuni hè stabilitu da triplets di a forma :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Ovviamente, rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, ma pensate perchè ùn avete micca solu scrive :isMarriedTo1 rdf:type :isMarriedTo.

U prublema di "supportu LPG" hè risolta quì à u livellu RDFS. Una tale decisione richiede l'inclusione in l'appropriata standard. Certi cambiamenti ponu esse richiesti per i magazzini RDF chì supportanu cunsequenze di attache, ma per avà, Singleton Property pò esse pensatu cum'è una altra tecnica di mudellu.

V.1.2. Reificazione fatta bè

Approcci menu ingenu derivanu da a realizazione chì l'istanze di pruprietà sò cumplettamente instantiable da triplets. Pudendu dì qualcosa di i triplets, pudemu parlà di casi di pruprietà.

U più robustu di sti approcci hè RDF*, alias RDR, natu in a prufundità di Blazegraph. Hè da u principiu elettu per sè stessu è AnzoGraph. A solidità di l'approcciu hè determinata da u fattu chì in u so quadru offertu cambiamenti currispundenti in Semantica RDF. U puntu, però, hè assai simplice. In Turtle serialization di RDF pudete avà scrive qualcosa cum'è questu:

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

V.1.3. Altri approcci

Ùn pudete micca sbattà cù a semantica formale, ma simpricimenti assume chì i triplets anu certi identificatori, chì sò, sicuru, URI, è creanu novi triplets cù questi URI. Il ne reste plus qu'à donner l'accès à ces URI dans SPARQL. Allora arriva Stardog.

In Allegrograph andò in modu intermediu. Hè cunnisciutu chì identificatori triplet in Allegrograph , ma quandu implementanu attributi triple ùn si stende micca. Tuttavia, hè sempre assai luntanu da a semantica formale. Hè nutate chì l'attributi triplet ùn sò micca URI, è i valori di sti attributi ponu ancu esse litterali. L'aderenti LPG ottennu esattamente ciò chì vulianu. In u formatu NQX inventatu apposta, un esempiu simili à quellu sopra per RDF * pare cusì:

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

V.2. Lingue di dumanda

Dopu avè supportatu LPG in un modu o un altru à u livellu di u mudellu, avete bisognu di fà pussibule di fà dumande nantu à e dati in un tali mudellu.

  • Blazegraph per e dumande RDF * supporta SPARQL* и Gremlin. Una dumanda SPARQL * s'assumiglia cusì:

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

  • Anzograph sustene ancu SPARQL* è hà da sustene Cypher, una lingua di dumanda in Neo4j.
  • Stardog sustene u so propiu allargamentu SPARQL è di novu Gremlin. Pudete ottene u triplet URI è "meta-informazione" in SPARQL usendu qualcosa cum'è questu:

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

  • Allegrograph sustene ancu u so propiu allargamentu SPARQL:

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

A propositu, GraphDB in un tempu hà supportatu Tinkerpop / Gremlin senza supportu LPG, ma questu hè firmatu in a versione 8.0 o 8.1.

VI. Restrizzione di licenze

Ùn ci sò micca stati aghjunti recenti à l'intersezzione di i setti "triplestore di scelta" è "triplestore open source". I novi magazzini RDF open source sò assai luntanu da esse una bona scelta per l'usu di ogni ghjornu, è i novi magazzini triple chì vogliu aduprà (cum'è AnzoGraph) sò chjusi. Piuttostu, pudemu parlà di diminuzioni...

Di sicuru, a fonte aperta ùn hè micca stata chjusa in u passatu, ma alcuni repositori open source ùn sò più veduti lentamente cum'è a pena di sceglie. Virtuoso, chì hà una edizione opensource, hè, in my opinion, affucatu in bug. Blazegraph hè statu acquistatu da AWS è hà furmatu a basa di Amazon Neptune; avà ùn hè micca chjaru se ci sarà almenu una liberazione più. Solo Jena resta...

Se a fonte aperta ùn hè micca assai impurtante, ma solu vulete pruvà, allora tuttu hè ancu menu rosy chì prima. Per esempiu:

  • Stardog ferma distribuisce a versione libera (in ogni modu, u periodu di prova di a versione regulare hè duppiatu);
  • в GraphDB Cloud, induve prima pudete sceglie un pianu di basa gratuitu, i novi registrazioni d'utilizatori sò stati sospesi.

In generale, per a persona media in l'informatica, u spaziu diventa sempre più inaccessibile; u so sviluppu hè diventatu u lottu di e corporazioni.

Source: www.habr.com

Add a comment