Naon anu lumangsung dina panyimpenan RDF ayeuna?

The Semantic Web na numbu Data téh kawas luar angkasa: euweuh hirup aya. Pikeun angkat ka dinya pikeun waktos anu langkung atanapi kirang panjang ... Kuring henteu terang naon anu aranjeunna nyarioskeun ka anjeun salaku murangkalih pikeun ngaréspon "Abdi hoyong janten astronot." Tapi anjeun bisa niténan naon anu lumangsung bari di Bumi; Éta langkung gampang janten astronom amatir atanapi bahkan profésional.

Artikel bakal difokuskeun panganyarna, teu heubeul ti sababaraha bulan, tren ti dunya gudang RDF. Métafora dina paragraf kahiji diideuan ku gambar iklan ukuran epik handapeun cut.


Gambar epik

Naon anu lumangsung dina panyimpenan RDF ayeuna?

I. GraphQL pikeun aksés RDF

Aranjeunna nyariosyé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:

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 DataTourisme. Atawa anjeun teu bisa deui nulis nanaon, tapi ngan nyokot HyperGraphQL.

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.

  • Dina Stardog ayeuna nyaéta mungkin - khususna, sadayana dina GraphQL anu sami - ngonpigurasikeun pemetaan data MongoDB kana grafik RDF virtual;
  • Ontotext GraphDB geus anyar Hal ieu ngamungkinkeun 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. SPARQL ngahasilkeun, anu tiasa disaluyukeun, contona, 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 datang 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 bagian V.

III. OLTP vs. OLAP

Sanajan kitu, Gartner sarua manéhna nu nyeratyé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 dimaksudkeun pikeun berpungsi dina nulis masalah kinerja;
  • Stardog mana malah salajengna jeung lengkep rewrites mesin, deui kalawan tujuan pikeun ngaronjatkeun kinerja rekaman.

Ayeuna hayu atuh ngenalkeun pamaén anyar ka pasar. Ti panyipta IBM Netezza sareng Amazon Redshift - AnzoGraph™. 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 aya link 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 Artikel Wikipedia, 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 platform 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 Layanan Pananya Riwayat Wikidata. Saméméh diwanohkeun, informasi sajarah Wikidata kudu diaksés ngaliwatan MWAPI 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 ngungkulan 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:

  1. nyieun parobahan model RDF nu ngamungkinkeun pikeun simulate struktur LPG di dinya;
  2. 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 sipat singleton:

  • Gantina, contona, predikat :isMarriedTo prédikat dipaké :isMarriedTo1, :isMarriedTo2 na t. d.
  • Predikat ieu lajeng jadi subyek triplets anyar: :isMarriedTo1 :since "2013-09-13"^^xsd:date jeung 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 standar. 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 RDF*, alias RDR, dilahirkeun di bojong Blazegraph. Éta ti mimiti pisan kapilih keur diri jeung AnzoGraph. The solidity pendekatan ditangtukeun ku kanyataan yén dina kerangka na ditawarkeun parobahan pakait dina RDF Semantik. 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 sumping Stardog.

Dina Allegrograph indit ku cara panengah. Perlu dipikanyaho yén identifier triplet dina Allegrograph nyaeta, 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 SPARQL* и Gremlin. Paménta SPARQL* siga kieu:

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

  • Anzograph ogé ngadukung SPARQL* sareng bade ngadukung cypher, basa query dina Neo4j.
  • Stardog ngarojong sorangan ékspansi SPARQL jeung deui 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 ékspansi 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

Aya geus euweuh tambahan panganyarna pikeun simpang tina "triplestore of choice" jeung "open source triplestore" susunan. Toko RDF open source anyar jauh tina pilihan anu saé pikeun dianggo sapopoé, sareng toko tripel énggal anu kuring hoyong dianggo (sapertos AnzoGraph) mangrupikeun sumber katutup. Sabalikna, urang tiasa ngobrol ngeunaan panurunan ...

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 eureun ngadistribusikaeun versi bébas (tapi, periode percobaan tina versi biasa geus dua kali);
  • в Awan GraphDB, dimana saméméhna anjeun bisa milih rencana dasar bébas, registrations pamaké anyar geus ditunda.

Sacara umum, pikeun rata-rata jalma IT, rohangan janten langkung teu tiasa diaksés; pamekaranna janten seueur korporasi.

sumber: www.habr.com

Tambahkeun komentar