Iwebhu ye-Semantic kanye nedatha exhunyiwe kufana nomkhathi ongaphandle: akukho ukuphila lapho. Ukuya lapho isikhathi eside noma esingaphansi... Angazi ukuthi bakutshelani ngiseyingane bephendula kokuthi “Ngifuna ukuba usomkhathi.” Kodwa ungakwazi ukubona okwenzekayo ngenkathi usemhlabeni; Kulula kakhulu ukuba isazi sezinkanyezi esiyimfundamakhwela noma uchwepheshe.
I-athikili izogxila kokwakamuva, okungaphezu kwezinyanga ezimbalwa, amathrendi avela emhlabeni wesitoreji se-RDF. Isingathekiso esisesigabeni sokuqala sigqugquzelwe isithombe sokukhangisa esilingana nobukhulu obungaphansi kokusikwa.
I. GraphQL yokufinyelela kwe-RDF
Ngaphandle kwebhokisi leli thuba linikezwa ngu:
Uma inqolobane inganikezi ithuba elinjalo, ingasetshenziswa ngokuzimela ngokubhala “isixazululi” esifanele. Yilokhu abakwenzile, isibonelo, kuphrojekthi yesiFulentshi
Ngokombono we-orthodox adherent of the Semantic Web and Linked Data, konke lokhu, yebo, kuyadabukisa, ngoba kubonakala kuklanyelwe ukuhlanganiswa okwakhiwa eduze kwe-silo yedatha elandelayo, futhi amapulatifomu angafanelekile (izitolo ze-RDF, kunjalo) .
Imibono evela ekuqhathaniseni i-GraphQL ne-SPARQL ikabili.
- Ngakolunye uhlangothi, i-GraphQL ibukeka njengesihlobo esikude se-SPARQL: ixazulula izinkinga zokulinganisa kabusha kanye nokuphindaphinda kwemibuzo ejwayelekile ku-REST - ngaphandle kwalokho, mhlawumbe, bekungeke kwenzeke ukucatshangelwa. ulimi lokubuza, okungenani okwewebhu;
- Ngakolunye uhlangothi, i-schema eqinile ye-GraphQL iyadumaza. Ngakho-ke, "i-introspectiveness" yayo ibonakala ilinganiselwe kakhulu uma iqhathaniswa nokuguquguquka okuphelele kwe-RDF. Futhi ayikho i-analogue yezindlela zempahla, ngakho-ke akucaci ngisho nokuthi kungani "Igrafu-".
II. Ama-adaptha e-MongoDB
Ithrendi ehambisana neyangaphambili.
- Ku-Stardog manje
kungenzeka - ikakhulukazi, konke ku-GraphQL efanayo - lungiselela ukuhlelwa kwedatha ye-MongoDB ibe amagrafu abonakalayo e-RDF; - I-Ontotext GraphDB isanda kwenzeka
kuvumela faka izingcezu ku-SPARQL kumbuzo we-MongoDB.
Uma sikhuluma kabanzi mayelana nama-adaptha emithonjeni ye-JSON, evumela okuningi noma okuncane "endizeni" ukumela i-JSON egcinwe kule mithombo njenge-RDF, singakhumbula isikhathi eside impela.
Sifingqa amathrendi amabili okuqala, singasho ukuthi isitoreji se-RDF sibonisa ukulungela okuphelele kokuhlanganiswa nokusebenza ngaphansi kwezimo "zokuphikelela kwe-polyglot". Nokho, kuyaziwa ukuthi le yakamuva kade yaphuma emfashinini, futhi ithathelwa indawo
Ngamafuphi, akukho ndlela. Ngingathanda ukunikezela isihloko esihlukile esihlokweni sama-DBMS amamodeli amaningi, kodwa okwamanje kungaphawulwa ukuthi okwamanje awekho ama-DBMS amamodeli amaningi "asekelwe" kumodeli wegrafu (i-RDF ingabhekwa njengohlobo lwayo) . Okunye okuncane kokumodela okuningi - ukwesekwa kwesitoreji se-RDF senye imodeli yegrafu ye-LPG - kuzoxoxwa ngakho kuyo
III. I-OLTP vs. I-OLAP
Nokho, uGartner ofanayo
Kodwa zikuphi isitoreji se-RDF esikalini se-OLTP-OLAP? Ngingaphendula ngale ndlela: akukho lapho noma lapha. Ukukhombisa ukuthi zihloselwe ini, kudingeka isifinyezo sesithathu. Njengenketho engingayiphakamisa I-OLIP - Ukucutshungulwa kobuhlakani ku-inthanethi.
Nokho, namanje:
- izindlela zokuhlanganisa ne-MongoDB ezisetshenziswa ku-GraphDB azincane
okuhlosiwe ukusebenza ngokubhala izindaba zokusebenza; - I-Stardog iqhubekela phambili futhi ngokuphelele
ubhala kabusha injini, futhi ngenhloso yokuthuthukisa ukusebenza kokurekhoda.
Manje ake ngethule umdlali omusha emakethe. Kusuka kubadali be-IBM Netezza ne-Amazon Redshift -
SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { … }
IV. I-RocksDB
Isiphezulu kakade
Okokuqala, ukwahlulela
Okwesibili, amaphrojekthi (okungukuthi, hhayi imikhiqizo) ngezihloko ezifanele adalwa ku-RocksDB.
Isibonelo, i-eBay isebenzisa i-RocksDB ku
Esinye isibonelo - esavela ezinyangeni ezimbalwa ezedlule
V. LPG ukwesekwa
Ake ngikukhumbuze umehluko omkhulu phakathi kwamagrafu e-LPG namagrafu e-RDF.
Ku-LPG, izakhiwo ze-scalar zingabelwa ezimweni ezinqenqemeni, kuyilapho ku-RDF zingabelwa kuphela "izinhlobo" ezinqenqemeni (kodwa hhayi izakhiwo ze-scalar kuphela, kodwa futhi nokuxhumana okuvamile). Lo mkhawulo we-RDF uma uqhathaniswa ne-LPG
Ngokusobala, umsebenzi "we-LPG support" uwela izingxenye ezimbili:
- ukwenza izinguquko kumodeli ye-RDF eyenza kube nokwenzeka ukulingisa izakhiwo ze-LPG kuyo;
- ukwenza izinguquko kulimi lombuzo lwe-RDF okwenza kube nokwenzeka ukufinyelela idatha kule modeli eshintshiwe, noma ukusebenzisa ikhono lokubuza le modeli ngezilimi zombuzo ze-LPG ezidumile.
V.1. Imodeli Yedatha
Kunezindlela ezimbalwa ezingenzeka lapha.
V.1.1. I-Singleton Property
Indlela engokoqobo kakhulu yokuhlanganisa i-RDF ne-LPG kungenzeka
- Esikhundleni sokuthi, isibonelo, isilandiso
:isMarriedTo
kusetshenziswa izilandiso:isMarriedTo1
,:isMarriedTo2
i t. d. - Lezi zilandiso zibe yizihloko zamawele amathathu amasha:
:isMarriedTo1 :since "2013-09-13"^^xsd:date
nabanye. - Ukuxhumana kwalezi zimo zezilandiso ngesilandiso esivamile kusungulwa ngama-triplets efomu
:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo
. - Ngokusobala,
rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type
, kodwa cabanga ngokuthi kungani kungafanele uvele ubhale:isMarriedTo1 rdf:type :isMarriedTo
.
Inkinga "yokwesekwa kwe-LPG" ixazululwa lapha ezingeni le-RDFS. Isinqumo esinjalo sidinga ukufakwa kokufanelekile
V.1.2. Ukulungiswa Kwenziwa Kahle
Izindlela ezingenangqondo zisuka ekuqapheliseni ukuthi izimo zezakhiwo aziqiniseki ngokuphelele ngama-triplets. Ngokukwazi ukusho okuthile ngama-triplets, sizokwazi ukukhuluma ngezimo zezakhiwo.
Okuqine kakhulu kulezi zindlela
<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .
V.1.3. Ezinye izindlela
Awukwazi ukuzihlupha nge-semantics esemthethweni, kodwa vele ucabange ukuthi ama-triplets anezihlonzi ezithile, okuyiqiniso, ama-URI, futhi udala ama-triplets amasha ngalawa ma-URI. Okusele ukunikeza ukufinyelela kulawa ma-URI ku-SPARQL. Ngakho
Ku-Allegrograph
:bob :marriedTo :alice {"since" : "2013-09-13"}
V.2. Izilimi zokubuza
Njengoba ususekele i-LPG ngandlela thile ezingeni lemodeli, udinga ukwenza kube nokwenzeka ukubuza ngedatha kumodeli enjalo.
SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }
- I-Anzograph nayo isekela
I-SPARQL* futhi uzokwesekaCypher , ulimi lombuzo ngesi-Neo4j. - I-Stardog isekela eyakhe
ukwandiswa SPARQL futhifuthi Gremlin. Ungathola i-URI kathathu kanye “nemininingwane ye-meta” ku-SPARQL usebenzisa into efana nale:
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}
- I-Allegrograph nayo isekela okwayo
ukwandiswa I-SPARQL:
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }
Nokho, i-GraphDB yake yasekela i-Tinkerpop/Gremlin ngaphandle kokusekela i-LPG, kodwa lokhu kuma kunguqulo 8.0 noma 8.1.
VI. Ukuqiniswa kwamalayisensi
Akuzange kube khona izengezo zakamuva ezimpambanweni zomgwaqo zesethi "yesitolo ezintathu esithandwayo" kanye "nomthombo ovulekile we-triplestore". Izitolo ezintsha ze-RDF zomthombo ovulekile zisekude ekubeni yisinqumo esihle sokusebenzisa nsuku zonke, futhi izitolo ezintsha ezintathu engingathanda ukuzisebenzisa (njenge-AnzoGraph) zingumthombo ovaliwe. Kunalokho, singakhuluma ngokuncipha...
Vele, umthombo ovulekile awuzange uvaliwe esikhathini esidlule, kodwa amanye amaqoqo omthombo ovulekile awasabonwa njengokufanelekile ukukhetha. I-Virtuoso, enohlelo oluvulekile lomthombo, ngokombono wami, icwila ezimbungwini. I-Blazegraph yathengwa yi-AWS futhi yakha isisekelo se-Amazon Neptune; manje akucaci ukuthi kuzoba khona ukukhululwa okungenani okukodwa. Kusele uJena kuphela...
Uma umthombo ovulekile ungabalulekile kakhulu, kodwa ufuna nje ukuwuzama, khona-ke yonke into ibuye ibe yinhle kakhulu kunangaphambili. Ngokwesibonelo:
- I-Stardog
iyama sabalalisa inguqulo yamahhala (noma kunjalo, isikhathi sesilingo senguqulo evamile siphindeke kabili); - в
I-GraphDB Cloud , lapho ngaphambilini ubungakhetha khona uhlelo oluyisisekelo lwamahhala, ukubhaliswa kwabasebenzisi abasha kumisiwe.
Ngokuvamile, kumuntu ojwayelekile we-IT, isikhala siya ngokuya singafinyeleleki; ukuthuthukiswa kwaso kuba yinqwaba yezinkampani.
Source: www.habr.com