Apa sing kedadeyan karo panyimpenan RDF saiki?

Web Semantik lan Data sing Disambung kaya ing njaba angkasa: ora ana urip ing kana. Kanggo pindhah menyang kono kanggo wektu sing luwih dawa utawa kurang ... 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; Luwih gampang dadi astronom amatir utawa malah profesional.

Artikel bakal fokus ing anyar, 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

Apa sing kedadeyan karo panyimpenan RDF saiki?

I. GraphQL kanggo akses RDF

Jarenesing GraphQL ngarahake dadi basa akses database universal. Kepiye babagan kemampuan kanggo ngakses RDF nggunakake GraphQL?

Out of the box kesempatan iki diwenehake dening:

Yen gudang ora nyedhiyakake fitur kasebut, bisa ditindakake kanthi mandiri kanthi nulis "pemecah masalah" sing cocog. Iki sing ditindakake, contone, ing proyek Prancis DataTourisme. Utawa sampeyan ora bisa maneh nulis apa-apa, nanging mung njupuk HyperGraphQL.

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 bisa wae - khususe, kabeh ing GraphQL padha - ngatur pemetaan data MongoDB menyang grafik RDF virtual;
  • Ontotext GraphDB wis bubar Nanging ngidini 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. SPARQL Generate, sing bisa diatur, contone, 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 teka 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 bagean V.

III. OLTP vs. OLAP

Nanging, padha Gartner Panjenenganipun nyeratsing 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 dimaksudakΓ© kanggo nggarap masalah kinerja nulis;
  • Stardog dadi luwih lan rampung nulis maneh engine, maneh karo goal nambah kinerja ngrekam.

Saiki ayo aku ngenalake pemain anyar menyang pasar. Saka pencipta IBM Netezza lan Amazon Redshift - AnzoGraphβ„’. 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 ana link 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 Artikel Wikipedia, 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 platform 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 Layanan Pitakonan Riwayat Wikidata. Sadurunge introduksi, informasi sejarah Wikidata kudu diakses liwat MWAPI 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 ngalahake 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:

  1. nggawe owah-owahan ing model RDF sing ngidini kanggo simulasi struktur LPG ing;
  2. 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 properti singleton:

  • Tinimbang, contone, predikat :isMarriedTo predikat digunakake :isMarriedTo1, :isMarriedTo2 lan liya-liyane.
  • Predikat kasebut banjur dadi subyek saka triplet anyar: :isMarriedTo1 :since "2013-09-13"^^xsd:date lan 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 standar. 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 RDF*, alias RDR, lair ing telenging Blazegraph. Iku saka awal banget kapilih kanggo dhewe lan AnzoGraph. Solidity pendekatan ditemtokake dening kasunyatan sing ing framework sawijining ditawani owah-owahan sing cocog ing RDF Semantik. 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 rawuh Stardog.

Ing Allegrograph tindak kanthi cara penengah. Dikenal yen pengenal triplet ing Allegrograph ana, 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 SPARQL* ΠΈ Gremlin. Pitakon SPARQL* katon kaya iki:

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

  • Anzograph uga ndhukung SPARQL* lan arep ndhukung Cypher, basa pitakon ing Neo4j.
  • Stardog ndhukung dhewe ekspansi SPARQL lan maneh 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 ekspansi 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 anyar ing persimpangan saka set "triplestore pilihan" lan "triplestore open source". Toko RDF open source anyar adoh banget saka dadi pilihan sing apik kanggo panggunaan saben dina, lan toko telung anyar sing pengin digunakake (kaya AnzoGraph) minangka sumber tertutup. Nanging, kita bisa ngomong babagan penurunan ...

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 mandheg nyebarake versi gratis (Nanging, wektu nyoba versi biasa wis tikel kaping pindho);
  • Π² Awan GraphDB, ing ngendi sadurunge sampeyan bisa milih rencana dhasar gratis, registrasi pangguna anyar wis ditundha.

UmumΓ©, kanggo rata-rata wong IT, papan dadi luwih ora bisa diakses; pangembangane dadi akeh perusahaan.

Source: www.habr.com

Add a comment