IWebhu yeSemantic kunye neDatha eDityanisiweyo ifana nendawo yangaphandle: akukho bomi apho. Ukuya apho ixesha elingaphezulu okanye elingaphantsi kwexesha elide... kulungile, andazi ukuba bakuxelele ntoni njengomntwana xa bephendula “Ndifuna ukuba ngusomajukujuku.” Kodwa unokujonga okwenzekayo ngelixa useMhlabeni; Kulula kakhulu ukuba sisazi ngeenkwenkwezi esisafundayo okanye ubuchwephesha.
Eli nqaku liza kugxila kutsha nje, akukho mdala kuneenyanga ezininzi, iindlela ezivela kwihlabathi lokugcina iRDF. Isikweko kumhlathi wokuqala siphefumlelwe ngumfanekiso wentengiso we-epic-ubungakanani phantsi kokusikwa.
Umfanekiso we-Epic

I. GraphQL yofikelelo lwe-RDF
ukuba iGraphQL ijolise ekubeni lulwimi lofikelelo lwesiseko sedatha. Kuthekani ngokukwazi ukufikelela kwi-RDF usebenzisa iGraphQL?
Ngaphandle kwebhokisi eli thuba linikezelwa ngu:
- Stardog (, );
- Iimveliso eziphezulu zeQuadrant (, ).
Ukuba indawo yokugcina ayiniki thuba elinjalo, inokuphunyezwa ngokuzimeleyo ngokubhala "isisombululo" esifanelekileyo. Yiloo nto abayenzayo, umzekelo, kwiprojekthi yesiFrentshi . Okanye awukwazi ukubhala nantoni na, kodwa thatha nje .
Ukusuka kwindawo yokujonga i-orthodox adherent of the Semantic Web and Linked Data, konke oku, ngokuqinisekileyo, kubuhlungu, kuba kubonakala kulungiselelwe ukudityaniswa kwakhiwe malunga ne-silo yedatha elandelayo, kwaye ayifanelekanga (iivenkile ze-RDF, ngokuqinisekileyo) .
Iimpawu zokuthelekisa iGraphQL kunye ne-SPARQL zimbini.
- Kwelinye icala, iGraphQL ijongeka njengesalamane esikude se-SPARQL: isombulula iingxaki zokuphinda kuqwalaselwe kunye nophindaphindo lwemibuzo eqhelekileyo kwi-REST - ngaphandle kwayo, mhlawumbi, ngekhe kuqwalaselwe. ulwimi lombuzo, ubuncinci kwiwebhu;
- Kwelinye icala, ischema esomeleleyo seGraphQL siyadanisa. Ngokufanelekileyo, "ukubonakala kwayo" kubonakala kunqongophele kakhulu xa kuthelekiswa ne-reflexivity epheleleyo ye-RDF. Kwaye akukho analogue yeendlela zepropathi, ngoko ke akucaci nokuba kutheni "iGrafu-".
II. Iiadaptha zeMongoDB
Umkhwa ohambelana nale yangaphambili.
- eStardog ngoku - ngokukodwa, zonke kwiGraphQL efanayo - qwalasela imephu yedatha ye-MongoDB kwiigrafu ze-RDF ezibonakalayo;
- IGraphDB iye yakutshanje faka amaqhekeza kwi-SPARQL kuMbuzo we-MongoDB.
Ukuba sithetha ngokubanzi malunga neeadaptha kwimithombo ye-JSON, evumela ngaphezulu okanye ngaphantsi "kwibhabhathane" ukumela i-JSON egcinwe kule mithombo njenge-RDF, sinokukhumbula ixesha elide lokuma. , enokulungiswa, , ukuya kwiApache Jena.
Ukushwankathela iindlela ezimbini zokuqala, sinokuthi ukugcinwa kwe-RDF kubonisa ukulungela ngokupheleleyo ukudibanisa kunye nokusebenza kwiimeko "zokuzingisa kwe-polyglot". Kuyaziwa, nangona kunjalo, ukuba le yokugqibela kudala iphumile kwifashoni, kwaye ithathelwa indawo iimodeli ezininzi. Kuthekani ngeemodeli ezininzi kwihlabathi lokugcinwa kwe-RDF?
Ngamafutshane, akukho ndlela. Ndingathanda ukunikezela inqaku elahlukileyo kwisihloko see-DBMS ezininzi zeemodeli, kodwa ngoku kunokuqatshelwa ukuba ngoku akukho modeli ye-DBMS "esekelwe" kwimodeli yegrafu (i-RDF inokuthathwa njengoluhlobo lwayo). . Enye imodeli encinci encinci-inkxaso yokugcina i-RDF yenye imodeli yegrafu ye-LPG-iya kuxoxwa kuyo .
III. OLTP vs. OLAP
Nangona kunjalo, uGartner ofanayo ukuba multimodel yi sine qua non imeko ngokuyintloko amagumbi otyando DBMS. Oku kuyaqondakala: kwimeko "yokugcinwa kwe-multivariate", iingxaki eziphambili zivela ngokuthengiselana.
Kodwa ziphi iindawo zokugcina ze-RDF ezibekwe kwisikali se-OLTP-OLAP? Bendiya kuphendula ngolu hlobo: akukho apho nalapha. Ukubonisa oko zijoliswe kuko, esinye isifinyezo sesithathu siyafuneka. Njengokhetho ndingacebisa I-OLIP -Ukwenziwa koBukrelekrele kwi-Intanethi.
Nangona kunjalo, kunjalo:
- iindlela zokudibanisa kunye ne-MongoDB eziphunyezwe kwi-GraphDB azincinci ukusebenzela ukubhala imiba yokwenziwa komsebenzi;
- I-Stardog ihamba ngakumbi kwaye ngokupheleleyo injini, kwakhona ngenjongo yokuphucula ukusebenza kokurekhoda.
Ngoku mandikwazise umdlali omtsha emarikeni. ukusuka kubadali be-IBM Netezza kunye neAmazon Redshift - . Umfanekiso osuka kwintengiso yemveliso esekelwe kuyo uthunyelwe ekuqaleni kwenqaku. I-AnzoGraph izibeka njengesisombululo se-GOLAP. Uyithanda njani i-SPARQL ngemisebenzi yefestile? -
SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { … }IV. RocksDB
Sele ephezulu kwisibhengezo se-Stardog 7 Beta, eyathi i-Stardog yayiza kusebenzisa i-RocksDB njengenkqubo yokugcina ephantsi - i-key-value store, ifolokhwe ye-Facebook ye-LevelDB yeGoogle. Kutheni kubalulekile ukuthetha ngomkhwa othile?
Okokuqala, ngokugweba , ayizizo zokugcina ze-RDF kuphela "ezitshintshelwe" kwi-RocksDB. Kukho iiprojekthi zokusebenzisa i-RocksDB njengenjini yokugcina kwi-ArangoDB, i-MongoDB, i-MySQL kunye ne-MariaDB, i-Cassandra.
Okwesibini, iiprojekthi (oko kukuthi, kungekhona iimveliso) kwizihloko ezifanelekileyo zenziwe kwi-RocksDB.
Umzekelo, i-eBay isebenzisa iRocksDB kwi "kwigrafu yolwazi". Ngendlela, kumnandi ukufunda: Ulwimi lombuzo lwaqala njengefomati ekhuliswe ekhaya, kodwa kutsha nje iye yatshintsha ukuze ifane kakhulu ne-SPARQL. Njengakwiqhula: kungakhathaliseki ukuba lungakanani ulwazi lwegrafu esiyenzayo, sisaphetha nge-RDF.
Omnye umzekelo - omnye owavela kwiinyanga ezimbalwa ezidlulileyo . Ngaphambi kokwaziswa kwayo, ulwazi lwembali yeWikidata kwafuneka lufikelelwe ukuya kwiMediawiki API esemgangathweni. Ngoku kuninzi okunokwenzeka nge-SPARQL ecocekileyo. "Ngaphantsi kwe-hood" kukho i-RocksDB. Ngendlela, i-WDHQS yenziwe, kubonakala ngathi, ngumntu ongenise i-Freebase kwi-Google Knowledge Graph.
V. LPG inkxaso
Makhe ndikukhumbuze ngomahluko ophambili phakathi kweegrafu ze-LPG kunye neegrafu ze-RDF.
Kwi-LPG, iipropati ze-scalar zingabelwa kwiimeko ezinqamlekileyo, ngelixa kwi-RDF zinokuthi zinikezelwe kuphela "iintlobo" ze-edge (kodwa kungekhona kuphela iimpawu ze-scalar, kodwa kunye nokudibanisa okuqhelekileyo). Lo mda we-RDF xa kuthelekiswa neLPG enye okanye enye indlela yokwenza imodeli. Imida ye-LPG xa kuthelekiswa ne-RDF inzima kakhulu ukoyisa, kodwa iigrafu ze-LPG zifana nemifanekiso evela kwincwadi ye-Harari kune-RDF, yiyo loo nto abantu befuna.
Ngokucacileyo, umsebenzi "wenkxaso ye-LPG" iwela ngamacandelo amabini:
- ukwenza utshintsho kwimodeli ye-RDF eyenza kube lula ukulinganisa izakhiwo ze-LPG kuyo;
- ukwenza utshintsho kulwimi lombuzo we-RDF olwenza ukuba kube lula ukufikelela kwidatha kule modeli ilungisiweyo, okanye ukuphumeza ukukwazi ukwenza imibuzo kule modeli kwiilwimi ezithandwayo ze-LPG.
V.1. Imodeli yedatha
Kukho iindlela ezininzi ezinokwenzeka apha.
V.1.1. Ipropati yeSingleton
Eyona ndlela yokwenyani yokungqinelanisa i-RDF kunye ne-LPG mhlawumbi :
- Endaweni yokuba, umzekelo, isivisa
:isMarriedTokusetyenziswa izibikezelo:isMarriedTo1,:isMarriedTo2njalo njalo. - Ezi zibikezelo ke ziba zizihloko zeetriplets ezintsha:
:isMarriedTo1 :since "2013-09-13"^^xsd:datenabanye. - Uqhagamshelo lwezi ziganeko ze-predicates kunye ne-predicate efanayo lusekwe ngama-triplets efom
:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo. - Ngokucacileyo,
rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, kodwa cinga ngesizathu sokuba ungabhali nje:isMarriedTo1 rdf:type :isMarriedTo.
Ingxaki ye "LPG inkxaso" isonjululwe apha kwinqanaba le-RDFS. Isigqibo esinjalo sifuna ukubandakanywa kwindawo efanelekileyo . Olunye utshintsho lunokufuneka kwiivenkile ze-RDF ezixhasa iziphumo zokuncamathisela, kodwa okwangoku, iPropati yeSingleton inokucingelwa njengenye indlela yokwenza imodeli.
V.1.2. Uhlengahlengiso Kwenziwe Ngokufanelekileyo
Iindlela ezingephi zisuka ekuqondeni ukuba iimeko zepropathi ziqinisekiswa ngokuphindwe kathathu. Ngokukwazi ukuthetha into malunga nee-triplets, siya kukwazi ukuthetha malunga neemeko zepropathi.
Eyona nto inamandla kwezi ndlela Ibizwa ngokuba yiRDR, enzulwini yeBlazegraph. Kususela ekuqaleni ngawe kunye noAnzoGraph. Ukuqina kwendlela kumiselwa yinto yokuba ngaphakathi kwesakhelo sayo utshintsho oluhambelanayo kwi . Inqaku, nangona kunjalo, lilula kakhulu. Kwi-Turtle serialization ye-RDF ngoku ungabhala into enje:
<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .V.1.3. Ezinye iindlela
Awunakuzihlupha ngesemantics esesikweni, kodwa thatha ngokulula ukuba iintathu zinezifanisi ezithile, ezi, kunjalo, ii-URIs, kwaye zenze ii-triplets ezintsha ngezi URIs. Ekuphela kwento eseleyo kukunika ufikelelo kwezi URIs kwi-SPARQL. Ngoko Inkwenkwezi
Kwi-Allegrograph ngendlela ephakathi. Kuyaziwa ukuba izazisi ezintathu kwi-Allegrograph , kodwa xa kuphunyezwa iimpawu ezintathu azibambeleli ngaphandle. Nangona kunjalo, isekude kakhulu kwisemantics esesikweni. Kuyaphawuleka ukuba iimpawu ezintathu azikho ii-URIs, kwaye amaxabiso ezi mpawu anokuba ngokoqobo kuphela. Abalandeli beLPG bafumana kanye le nto bebeyifuna. Kwifomathi eyilwe ngokukodwa ye-NQX, umzekelo ofana nale ingasentla ye-RDF* ijongeka ngolu hlobo:
:bob :marriedTo :alice {"since" : "2013-09-13"}V.2. Iilwimi zokubuza
Emva kokuba uxhase i-LPG ngendlela enye okanye enye kwinqanaba lemodeli, kufuneka wenze ukuba kwenzeke ukwenza imibuzo kwidatha kwimodeli enjalo.
- I-Blazegraph ye-RDF* imibuzo ixhasa и . Umbuzo we-SPARQL* ujongeka ngolu hlobo:
SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }- I-Anzograph nayo iyaxhasa kwaye uya kukuxhasa , ulwimi lombuzo kwi-Neo4j.
- IStardog ixhasa eyayo SPARQL kunye Gremlin. Unokufumana i-URI ye-triplet kunye "nolwazi lwemeta" kwi-SPARQL usebenzisa into enje:
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}- I-Allegrograph nayo ixhasa eyayo SPARQL:
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }Ngendlela, iGraphDB ngaxeshanye ixhase iTinkerpop/Gremlin ngaphandle kokuxhasa iLPG, kodwa oku kuyeka kwinguqulo 8.0 okanye 8.1.
VI. Ukuqiniswa kweelayisensi
Akukhange kubekho zongezo zakutsha nje ekudibaneni kwe "triplestore yokuzikhethela" kunye "neseti evulekileyo yomthombo we-triplestore". Iivenkile ezintsha ze-RDF ezivulekileyo ziyindlela ende ukusuka ekubeni lukhetho olulungileyo lokusetyenziswa kwansuku zonke, kunye neevenkile ezintsha ze-RDF endingathanda ukuzisebenzisa (ezifana ne-AnzoGraph) zivaliwe ngumthombo. Endaweni yoko, sinokuthetha ngokuncipha...
Ewe kunjalo, umthombo ovulekileyo awuzange uvaliwe ngaphambili, kodwa ezinye iindawo zokugcina imithombo evulekileyo azisabonwa njengento efanelekileyo yokukhetha. I-Virtuoso, ene-opensource edition, ngokombono wam, irhaxwa kwiibugs. I-Blazegraph yathengwa yi-AWS kwaye yenza isiseko se-Amazon Neptune; ngoku akucaci ukuba kuya kubakho ukukhululwa okunye. NguJena kuphela oseleyo...
Ukuba umthombo ovulekileyo awubalulekanga kakhulu, kodwa ufuna nje ukuzama, ngoko yonke into ibuye ibe ngaphantsi kwe-rosy kunangaphambili. Umzekelo:
- Inkwenkwezi ukusabalalisa inguqulo yamahhala (nangona kunjalo, ixesha lovavanyo lwenguqu eqhelekileyo liphindwe kabini);
- в , apho ngaphambili ubunokukhetha isicwangciso esisisiseko sasimahla, lurhoxise ubhaliso lwabasebenzisi abatsha.
Ngokubanzi, kumndilili we-IT umntu, indawo iya isiba ingafikeleleki; uphuhliso lwayo luba luninzi lweenkampani.
umthombo: www.habr.com
