Web Semantik lan Data sing Disambung kaya cedhak papan: ora ana urip ing kana. Kanggo pindhah menyang kono kanggo wektu sing luwih suwe utawa kurang ... uga, aku ora ngerti apa sing diomongake nalika isih cilik kanggo nanggepi "Aku pengin dadi astronot." Nanging sampeyan bisa mirsani apa sing kedadeyan nalika ing Bumi; iku luwih gampang kanggo dadi amatir utawa malah astronom profesional.
Artikel bakal ngrembug seger, ora lawas saka sawetara sasi, tren saka donya panyimpenan RDF. Metafora ing paragraf pisanan diilhami dening gambar iklan ukuran epik ing sangisore potong.
Gambar epik

I. GraphQL kanggo akses RDF
sing GraphQL ngarahake dadi basa akses database universal. Kepiye babagan kemampuan kanggo ngakses RDF nggunakake GraphQL?
Out of the box kesempatan iki diwenehake dening:
- Stardog (, );
- Produk TopQuadrant (, ).
Yen gudang ora nyedhiyakake fitur kasebut, bisa ditindakake kanthi mandiri kanthi nulis "pemecah masalah" sing cocog. Iki sing ditindakake, contone, ing proyek Prancis . Utawa sampeyan ora bisa maneh nulis apa-apa, nanging mung njupuk .
Saka sudut pandang penganut ortodoks saka Web Semantik lan Data sing Disambung, kabeh iki, mesthi, sedih, amarga misale jek dirancang kanggo integrasi sing dibangun ing silo data sabanjure, lan platform sing ora cocok (toko RDF, mesthi) .
Tayangan saka mbandhingake GraphQL karo SPARQL ana loro.
- Ing tangan siji, GraphQL katon kaya relatif saka SPARQL: ngrampungake masalah resampling lan pirang-pirang pitakon sing khas kanggo REST - tanpa ana, mesthine, ora bisa dipikirake. basa pitakon, paling ora kanggo web;
- Ing sisih liya, skema kaku GraphQL nguciwani. Mulane, "introspektif" kasebut katon winates banget dibandhingake karo reflektivitas lengkap RDF. Lan ora ana analog saka jalur properti, mula ora jelas kenapa "Grafik-".
II. Adaptor kanggo MongoDB
Tren pelengkap kanggo sing sadurunge.
- ing Stardog saiki - khususe, kabeh ing GraphQL padha - ngatur pemetaan data MongoDB menyang grafik RDF virtual;
- GraphDB wis bubar lebokake fragmen menyang SPARQL ing MongoDB Query.
Yen kita ngomong luwih akeh babagan adaptor menyang sumber JSON, sing ngidini luwih utawa kurang "on the fly" kanggo makili JSON sing disimpen ing sumber kasebut minangka RDF, kita bisa ngelingi sing cukup suwe. , sing bisa diatur, , menyang Apache Jena.
Ngringkes loro tren pisanan, kita bisa ngomong sing panyimpenan RDF nduduhake kesiapan lengkap kanggo integrasi lan operasi ing kondisi "kegigihan polyglot". Punika dikenal, Nanging, sing terakhir iki wis dawa metu saka fashion, lan diganti dening multi-model. Apa babagan multi-modeling ing jagad panyimpenan RDF?
Ing cendhak, ora cara. Aku pengin ngaturake artikel sing kapisah kanggo topik DBMS multi-model, nanging saiki bisa dicathet yen saiki ora ana DBMS multi-model "adhedhasar" ing model grafik (RDF bisa dianggep minangka jinis) . Sawetara multi-modeling cilik - dhukungan panyimpenan RDF kanggo model grafik LPG alternatif - bakal dibahas ing .
III. OLTP vs. OLAP
Nanging, padha Gartner sing multimodel punika sine qua non kondisi utamané kanggo kamar operasi DBMS. Iki bisa dingerteni: ing kahanan "panyimpenan multivariat", masalah utama muncul kanthi transaksional.
Nanging ing ngendi papan panyimpenan RDF ing skala OLTP-OLAP? Aku bakal mangsuli mangkene: ora ana ing kene. Kanggo nuduhake apa sing dimaksudake, sawetara singkatan katelu dibutuhake. Minangka pilihan aku bakal menehi saran OLIP - Pangolahan Intelektual Online.
Nanging, isih:
- mekanisme integrasi karo MongoDB dipun ginakaken ing GraphDB ora paling kanggo nggarap masalah kinerja nulis;
- Stardog dadi luwih lan rampung engine, maneh karo goal nambah kinerja ngrekam.
Saiki ayo aku ngenalake pemain anyar ing pasar. saka pencipta IBM Netezza lan Amazon Redshift — . Gambar saka iklan kanggo produk adhedhasar iki dikirim ing wiwitan artikel. AnzoGraph posisi dhewe minangka solusi GOLAP. Kepiye sampeyan seneng karo SPARQL kanthi fungsi jendhela? —
SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { … }IV. RocksDB
Wis luwih dhuwur kanggo woro-woro Stardog 7 Beta, sing ujar manawa Stardog bakal nggunakake RocksDB minangka sistem panyimpenan dhasar - toko kunci-nilai, garpu Facebook LevelDB Google. Napa sampeyan kudu ngomong babagan tren tartamtu?
Kaping pisanan, menehi kritik dening , ora mung panyimpenan RDF sing "transplant" menyang RocksDB. Ana proyek kanggo nggunakake RocksDB minangka mesin panyimpenan ing ArangoDB, MongoDB, MySQL lan MariaDB, Cassandra.
Kapindho, proyek (yaiku, dudu produk) babagan topik sing relevan digawe ing RocksDB.
Contone, eBay nggunakake RocksDB ing kanggo "grafik kawruh". Ngomong-ngomong, lucu banget maca: basa pitakon diwiwiti minangka format sing ditanam ing omah, nanging luwih anyar wis owah dadi luwih kaya SPARQL. Kaya ing guyon: ora ketompo carane akeh graph kawruh kita nggawe, kita isih mungkasi RDF.
Conto liyane - sing muncul sawetara wulan kepungkur . Sadurunge introduksi, informasi sejarah Wikidata kudu diakses liwat menyang API Mediawiki standar. Saiki akeh sing bisa ditindakake kanthi SPARQL murni. "Ing hood" ana uga RocksDB. Miturut cara, WDHQS digawe, misale jek, dening wong sing ngimpor Freebase menyang Google Knowledge Graph.
V. Dhukungan LPG
Ayo kula ngelingake sampeyan prabédan utama antarane grafik LPG lan grafik RDF.
Ing LPG, sifat skalar bisa ditugasake menyang conto pinggiran, nalika ing RDF mung bisa ditugasake menyang "jinis" pinggiran (nanging ora mung sifat skalar, nanging uga sambungan biasa). Watesan RDF iki dibandhingake karo LPG siji utawa liyane teknik modeling. Watesan LPG dibandhingake karo RDF luwih angel diatasi, nanging grafik LPG luwih kaya gambar saka buku teks Harari tinimbang grafik RDF, mula wong pengin.
Temenan, tugas "dukungan LPG" dadi rong bagean:
- nggawe owah-owahan ing model RDF sing ngidini kanggo simulasi struktur LPG ing;
- nggawe owah-owahan ing basa pitakon RDF sing bisa ngakses data ing model sing diowahi iki, utawa ngetrapake kemampuan kanggo nggawe pitakon model iki ing basa pitakon LPG sing populer.
V.1. Model data
Ana sawetara pendekatan sing bisa ditindakake ing kene.
V.1.1. Properti Singleton
Pendekatan paling harfiah kanggo harmonizing RDF lan LPG mbokmenawa :
- Tinimbang, contone, predikat
:isMarriedTopredikat digunakake:isMarriedTo1,:isMarriedTo2lan liya-liyane. - Predikat kasebut banjur dadi subyek saka triplet anyar:
:isMarriedTo1 :since "2013-09-13"^^xsd:datelan liyane. - Sambungan conto predikat iki karo predikat umum ditetepake dening triplets wangun
:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo. - Iku ketok
rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, nanging mikir bab apa sampeyan kudu ora mung nulis:isMarriedTo1 rdf:type :isMarriedTo.
Masalah "dhukungan LPG" ditanggulangi ing tingkat RDFS. Kaputusan kasebut mbutuhake kalebu ing sing cocog . Sawetara owah-owahan bisa uga dibutuhake kanggo toko RDF sing ndhukung akibat, nanging saiki, Singleton Property bisa dianggep minangka teknik modeling liyane.
V.1.2. Reifikasi Rampung Kanan
Pendekatan sing kurang naif asale saka pangerten yen kedadeyan properti bisa langsung ditindakake dening triplet. Kanthi bisa ngomong babagan triplet, kita bakal bisa ngomong babagan kedadeyan properti.
Sing paling kuat saka pendekatan kasebut yaiku , alias RDR, ing telenging Blazegraph. Iku saka awal banget kanggo dhewe lan AnzoGraph. Solidity pendekatan ditemtokake dening kasunyatan sing ing framework sawijining owah-owahan sing cocog ing . Titik, Nanging, iku arang banget prasaja. Ing serialisasi Turtle saka RDF saiki sampeyan bisa nulis kaya iki:
<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .V.1.3. pendekatan liyane
Sampeyan ora bisa keganggu karo semantik formal, nanging mung nganggep yen triplet duwe pengenal tartamtu, yaiku, mesthi, URI, lan nggawe triplet anyar karo URI kasebut. Sing isih ana yaiku menehi akses menyang URI kasebut ing SPARQL. Dadi Stardog.
Ing Allegrograph kanthi cara penengah. Dikenal yen pengenal triplet ing Allegrograph , nanging nalika ngleksanakake atribut triple padha ora tetep metu. Nanging, isih adoh banget saka semantik formal. Wigati dimangerteni manawa atribut triplet dudu URI, lan nilai atribut kasebut bisa uga mung literal. Para penganut LPG entuk apa sing dikarepake. Ing format NQX sing diciptakake khusus, conto sing padha karo ing ndhuwur kanggo RDF* katon kaya iki:
:bob :marriedTo :alice {"since" : "2013-09-13"}V.2. Basa pitakon
Duwe ndhukung LPG kanthi cara siji utawa liyane ing tingkat model, sampeyan kudu nggawe pitakon babagan data ing model kasebut.
- Blazegraph kanggo pitakon RDF * ndhukung и . Pitakon SPARQL* katon kaya iki:
SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }- Anzograph uga ndhukung lan arep ndhukung , basa pitakon ing Neo4j.
- Stardog ndhukung dhewe SPARQL lan Gremlin. Sampeyan bisa entuk triplet URI lan "meta-informasi" ing SPARQL nggunakake kaya iki:
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}- Allegrograph uga ndhukung dhewe SPARQL:
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }Miturut cara, GraphDB ing siji wektu ndhukung Tinkerpop / Gremlin tanpa ndhukung LPG, nanging iki mandheg ing versi 8.0 utawa 8.1.
VI. Pengetatan lisensi
Ora ana tambahan ing persimpangan saka set "triplestore of choice" lan "open source triplestore". Toko RDF open source anyar ora dadi pilihan sing apik kanggo panggunaan saben dina, lan kode sumber toko RDF anyar sing pengin digunakake (AnzoGraph sing padha) ditutup. Nanging, kita malah bisa ngomong babagan pengurangan ...
Mesthine, sumber terbuka durung ditutup sadurunge, nanging sawetara repositori sumber terbuka alon-alon ora bisa dipilih maneh. Virtuoso, sing duwe edisi opensource, miturut pendapatku, tenggelam ing kewan omo. Blazegraph dituku dening AWS lan dadi basis saka Amazon Neptune; saiki iku ora cetha apa bakal ana ing paling siji release liyane. Mung Jena sing tetep ...
Yen sumber terbuka ora penting banget, nanging sampeyan mung pengin nyoba, mula kabeh uga kurang rosy tinimbang sadurunge. Tuladhane:
- Stardog nyebarake versi gratis (Nanging, wektu nyoba versi biasa wis tikel kaping pindho);
- в , ing ngendi sampeyan bisa milih rencana dhasar gratis, wis nundha registrasi pangguna anyar.
Umumé, kanggo rata-rata wong IT, papan dadi luwih ora bisa diakses; pangembangane dadi akeh perusahaan.
Source: www.habr.com
