U Web Semanticu è Dati Linked sò cum'è u spaziu esterno: ùn ci hè micca vita. Per andà quì per un periudu più o menu longu di tempu... bè, ùn sò micca ciò chì vi anu 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è stata inspirata da l'imaghjini di publicità epica sottu u cut.
Foto epica

I. GraphQL per l'accessu RDF
chì 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:
- Stardog (, );
- Prodotti TopQuadrant (, ).
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 . O ùn pudete più scrive nunda, ma solu piglià .
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à - in particulare, tutti nantu à u stessu GraphQL - cunfigurà a mapping of MongoDB data in virtual RDF graphs;
- GraphDB hà recentemente 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. , chì pò esse aghjustatu, , à 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 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 .
III. OLTP vs. OLAP
Tuttavia, u listessu Gartner 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 per travaglià nantu à i prublemi di rendiment di scrittura;
- Stardog va ancu più luntanu è cumpletamente 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 - . 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 à 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 , 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 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à . Prima di a so introduzione, l'infurmazioni storichi di Wikidata anu da esse accessu à 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 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:
- fà cambiamenti à u mudellu RDF chì permettenu di simule strutture LPG in questu;
- 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 :
- Invece di, per esempiu, u predicatu
:isMarriedToi predicati sò usati:isMarriedTo1,:isMarriedTo2i 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 . 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è , alias RDR, in a prufundità di Blazegraph. Hè da u principiu per sè stessu è AnzoGraph. A solidità di l'approcciu hè determinata da u fattu chì in u so quadru cambiamenti currispundenti in . 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 Stardog.
In Allegrograph 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 и . Una dumanda SPARQL * s'assumiglia cusì:
SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }- Anzograph sustene ancu è hà da sustene , una lingua di dumanda in Neo4j.
- Stardog sustene u so propiu SPARQL è 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 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 RDF chì vogliu aduprà (cum'è AnzoGraph) sò chjusi. Piuttostu, si pò ancu 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 distribuisce a versione libera (in ogni modu, u periodu di prova di a versione regulare hè duppiatu);
- в , induve prima si pudia sceglie un pianu di basa gratuitu, hà sospesu novi registrazioni d'utilizatori.
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
