Web Semantik sareng Data Tautan téh siga luar angkasa: teu aya kahirupan di dinya. Pikeun ka ditu salami waktos anu lami... nya, kuring teu terang naon anu diomongkeun ka anjeun nalika anjeun budak nalika anjeun nyarios, "Kuring hoyong janten astronot." Tapi anjeun tiasa niténan naon anu kajantenan ti Bumi; janten astronom amatir atanapi bahkan astronom profésional langkung gampil.
Artikel ieu bakal ngabahas tren panganyarna dina dunya panyimpenan RDF, anu umurna teu leuwih ti sababaraha bulan. Metafora dina paragraf kahiji diideuan ku gambar promosi ukuran épik di handap potongan éta.
Gambar epik

I. GraphQL pikeun aksés RDF
yén GraphQL boga tujuan pikeun jadi basa aksés database universal. Kumaha upami kamampuan ngaksés RDF nganggo GraphQL?
Out of the box kasempetan ieu disayogikeun ku:
- Stardog (, );
- produk TopQuadrant (, ).
Upami gudang henteu masihan kasempetan sapertos kitu, éta tiasa dilaksanakeun sacara mandiri ku nyerat "resolver" anu pas. Ieu naon anu aranjeunna lakukeun, contona, dina proyék Perancis . Atawa anjeun teu bisa deui nulis nanaon, tapi ngan nyokot .
Tina sudut pandang anu nganut ortodoks tina Web Semantik sareng Data Patalina, sadayana ieu, tangtosna, hanjelu, sabab sigana dirancang pikeun integrasi anu diwangun dina silo data salajengna, sareng platform anu henteu cocog (toko RDF, tangtosna) .
Tayangan tina ngabandingkeun GraphQL sareng SPARQL aya dua kali.
- Di hiji sisi, GraphQL Sigana mah relatif jauh ti SPARQL: eta solves masalah resampling na multiplicity queries anu has pikeun REST - tanpa nu, meureun, éta moal mungkin mertimbangkeun. basa query, sahenteuna pikeun web;
- Di sisi séjén, skéma kaku tina GraphQL nguciwakeun. Sasuai, "introspectiveness" na sigana pohara kawates dibandingkeun jeung reflexivity pinuh RDF. Sareng henteu aya analog tina jalur harta, janten henteu écés pisan naha éta "Grafik-".
II. Adaptor pikeun MongoDB
A trend pelengkap hiji saméméhna.
- ayeuna di Stardog - khususna, sadayana dina GraphQL anu sami - ngonpigurasikeun pemetaan data MongoDB kana grafik RDF virtual;
- GraphDB nembe selapkeun fragmen kana SPARQL on MongoDB Query.
Lamun urang ngobrol leuwih lega ngeunaan adapters kana sumber JSON, anu ngamungkinkeun leuwih atawa kurang "dina laleur" ngagambarkeun JSON disimpen dina sumber ieu salaku RDF, urang bisa ngelingan rada lila-ngadeg. , anu tiasa disaluyukeun, , ka Apache Jena.
Nyimpulkeun dua tren munggaran, urang tiasa nyebatkeun yén panyimpen RDF nunjukkeun kesiapan pinuh pikeun integrasi sareng operasi dina kaayaan "kegigihan polyglot". Perlu dipikanyaho, kumaha oge, yén dimungkinkeun ieu geus lila kaluar ti fashion, sarta keur diganti ku multi-model. Kumaha upami multi-modeling di dunya panyimpenan RDF?
Pondokna, euweuh cara. Abdi hoyong ngahaturanan tulisan anu misah pikeun topik DBMS multi-model, tapi pikeun ayeuna tiasa dicatet yén ayeuna teu aya DBMS multi-modél "dumasar" dina modél grafik (RDF tiasa dianggap jinis éta) . Sababaraha multi-modeling leutik - rojongan gudang RDF pikeun model grafik LPG alternatif - bakal dibahas dina .
III. OLTP vs. OLAP
Sanajan kitu, Gartner sarua yén multimodel mangrupakeun kaayaan sine qua non utamana pikeun kamar operasi DBMS. Ieu kaharti: dina kaayaan "panyimpenan multivariate", masalah utama timbul kalawan transactionality.
Tapi dimana gudang RDF lokasina dina skala OLTP-OLAP? Kuring bakal ngajawab ku cara kieu: teu aya atanapi di dieu. Pikeun nunjukkeun naon tujuanana, peryogi sababaraha singketan katilu. Salaku pilihan Abdi nyarankeun OLIP - Pangolahan Intelektual Online.
Sanajan kitu, tetep:
- mékanisme integrasi jeung MongoDB dilaksanakeun dina GraphDB teu saeutik pikeun berpungsi dina nulis masalah kinerja;
- Stardog mana malah salajengna jeung lengkep mesin, deui kalawan tujuan pikeun ngaronjatkeun kinerja rekaman.
Ayeuna, hayu atuh kuring ngenalkeun pamaén anyar di pasar. Ti nu nyiptakeun IBM Netezza sareng Amazon Redshift — . Gambar tina iklan pikeun produk dumasar kana éta dipasang dina awal tulisan. AnzoGraph nempatkeun dirina salaku solusi GOLAP. Kumaha anjeun resep SPARQL kalayan fungsi jandela? —
SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { … }IV. RocksDB
Geus leuwih luhur kana pengumuman Stardog 7 Beta, anu nyarios yén Stardog badé nganggo RocksDB salaku sistem panyimpen dasar - toko nilai konci, garpu Facebook LevelDB Google. Naha éta patut ngobrol ngeunaan hiji trend tangtu?
Anu mimiti, ditilik ku , Henteu ngan gudang RDF anu "transplanted" kana RocksDB. Aya proyék pikeun ngagunakeun RocksDB salaku mesin panyimpen di ArangoDB, MongoDB, MySQL sareng MariaDB, Cassandra.
Bréh, proyék (nyaéta, sanés produk) dina topik anu relevan didamel dina RocksDB.
Contona, eBay migunakeun RocksDB di pikeun "grafik pangaweruh" anjeun. Ku jalan kitu, éta lucu maca: basa query dimimitian salaku format home tumuwuh, tapi nu anyar geus transisi jadi leuwih kawas SPARQL. Saperti dina lulucon: euweuh urusan sabaraha grafik pangaweruh urang nyieun, urang masih mungkas nepi ka RDF.
conto sejen - hiji nu mucunghul sababaraha bulan kapengker . Saméméh diwanohkeun, informasi sajarah Wikidata kudu diaksés ngaliwatan kana standar Mediawiki API. Ayeuna seueur anu mungkin ku SPARQL murni. "Dina tiung" aya ogé RocksDB. Ku jalan kitu, WDHQS dijieun, sigana, ku jalma anu diimpor Freebase kana Google Pangaweruh Graph.
V. rojongan LPG
Hayu atuh ngingetan ngeunaan bédana utama antara grafik LPG jeung grafik RDF.
Dina LPG, sipat skalar tiasa ditugaskeun ka instansi tepi, sedengkeun dina RDF aranjeunna ngan ukur tiasa ditugaskeun ka "tipe" tepi (tapi henteu ngan ukur sipat skalar, tapi ogé sambungan biasa). Watesan ieu RDF dibandingkeun sareng LPG hiji atawa téhnik modeling sejen. Watesan LPG dibandingkeun sareng RDF langkung hese diatasi, tapi grafik elpiji langkung mirip gambar tina buku ajar Harari tibatan grafik RDF, janten jalma hoyong aranjeunna.
Jelas, tugas "dukungan LPG" digolongkeun kana dua bagian:
- nyieun parobahan model RDF nu ngamungkinkeun pikeun simulate struktur LPG di dinya;
- nyieun parobahan kana basa query RDF nu ngamungkinkeun pikeun ngakses data dina modél dirobah ieu, atawa nerapkeun kamampuhan pikeun nyieun queries model ieu dina basa query LPG populér.
V.1. Modél data
Aya sababaraha kamungkinan pendekatan di dieu.
V.1.1. Harta Singleton
Pendekatan anu paling literal pikeun ngahijikeun RDF sareng LPG sigana :
- Gantina, contona, predikat
:isMarriedToprédikat dipaké:isMarriedTo1,:isMarriedTo2na t. d. - Predikat ieu lajeng jadi subyek triplets anyar:
:isMarriedTo1 :since "2013-09-13"^^xsd:datejeung saterusna. - Sambungan instansi ieu predikat jeung predikat umum dijieun ku triplets formulir
:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo. - Éta atra yén
rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, tapi pikir ngeunaan naha anjeun teu kudu ngan nulis:isMarriedTo1 rdf:type :isMarriedTo.
Masalah "dukungan LPG" direngsekeun di dieu di tingkat RDFS. Kaputusan sapertos kitu peryogi kalebet kana anu pas . Sababaraha parobihan tiasa diperyogikeun pikeun toko RDF anu ngadukung konsékuansi ngalampirkeun, tapi pikeun ayeuna, Singleton Property tiasa dianggap salaku téknik modél sanés.
V.1.2. Reifikasi Réngsé Katuhu
Pendekatan anu kirang naif asalna tina realisasi yén instansi harta sapinuhna tiasa langsung ku triplets. Ku bisa nyebutkeun hal ngeunaan triplets, urang bakal bisa ngobrol ngeunaan instansi harta.
Anu paling kuat tina pendekatan ieu nyaéta , alias RDR, di bojong Blazegraph. Éta ti mimiti pisan keur diri jeung AnzoGraph. The solidity pendekatan ditangtukeun ku kanyataan yén dina kerangka na parobahan pakait dina . Intina, kumaha ogé, saderhana pisan. Dina serialisasi Turtle of RDF ayeuna anjeun tiasa nyerat sapertos kieu:
<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .V.1.3. pendekatan séjén
Anjeun teu bisa ganggu ku semantik formal, tapi ngan nganggap yén triplets gaduh identifiers tangtu, nu, tangtosna, URIs, sarta nyieun triplets anyar kalawan URIs ieu. Sadaya anu tetep nyaéta masihan aksés ka URI ieu dina SPARQL. Ku kituna Stardog.
Dina Allegrograph ku cara panengah. Perlu dipikanyaho yén identifier triplet dina Allegrograph , tapi nalika ngalaksanakeun atribut triple aranjeunna henteu lengket. Sanajan kitu, masih jauh pisan tina semantik formal. Catet yén atribut triplet sanés URI, sareng nilai-nilai atribut ieu ogé ngan ukur literal. Penganut LPG kéngingkeun naon anu dipikahoyong. Dina format NQX anu diciptakeun khusus, conto anu sami sareng anu di luhur pikeun RDF* sapertos kieu:
:bob :marriedTo :alice {"since" : "2013-09-13"}V.2. Basa patarosan
Saatos ngadukung LPG dina hiji cara atanapi anu sanés dina tingkat modél, anjeun kedah ngajantenkeun patarosan ngeunaan data dina modél sapertos kitu.
- Blazegraph pikeun RDF * queries ngarojong и . Paménta SPARQL* siga kieu:
SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }- Anzograph ogé ngadukung sareng bade ngadukung , basa query dina Neo4j.
- Stardog ngarojong sorangan SPARQL jeung Gremlin. Anjeun tiasa kéngingkeun triplet URI sareng "meta-inpormasi" dina SPARQL nganggo sapertos kieu:
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}- Allegrograph ogé ngarojong sorangan SPARQL:
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }Ku jalan kitu, GraphDB dina hiji waktos ngadukung Tinkerpop / Gremlin tanpa ngadukung LPG, tapi ieu dieureunkeun dina versi 8.0 atanapi 8.1.
VI. Tightening tina lisénsi
Teu acan aya tambahan anyar kana papasangan sét "triplestore pilihan" sareng "triplestore sumber terbuka". Gudang data RDF sumber terbuka anu énggal masih jauh tina janten pilihan anu layak pikeun panggunaan sadidinten, sareng kode sumber pikeun gudang data RDF énggal anu urang hoyong anggo (sapertos AnzoGraph) parantos ditutup. Kamungkinan ageung aya sababaraha pangurangan...
Tangtosna, open source teu acan dipareuman di jaman baheula, tapi sababaraha repositori open source lalaunan henteu deui dianggap pantes dipilih. Virtuoso, anu ngagaduhan édisi opensource, dina pamanggih kuring, ngalelepkeun kutu. Blazegraph ieu dibeuli ku AWS sarta ngawangun dasar Amazon Néptunus; ayeuna teu écés naha bakal aya sahanteuna hiji release deui. Ngan Jena tetep ...
Upami open source henteu penting pisan, tapi anjeun ngan ukur hoyong nyobian, maka sadayana ogé kirang rosy ti sateuacanna. Salaku conto:
- Stardog ngadistribusikaeun versi bébas (tapi, periode percobaan tina versi biasa geus dua kali);
- в , dimana anjeun sateuacanna tiasa milih rencana dasar gratis, parantos ngagantungkeun pendaptaran pangguna énggal.
Sacara umum, pikeun rata-rata jalma IT, rohangan janten langkung teu tiasa diaksés; pamekaranna janten seueur korporasi.
sumber: www.habr.com
