Kwenzeka ntoni ngogcino lwe-RDF ngoku?

IWebhu yeSemantic kunye neDatha eDityanisiweyo ifana nendawo yangaphandle: akukho bomi apho. Ukuya apho ixesha elingaphezulu okanye elingaphantsi kwexesha elide... Andazi ukuba bakuxelele ntoni usengumntwana 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

Kwenzeka ntoni ngogcino lwe-RDF ngoku?

I. GraphQL yofikelelo lwe-RDF

Bathiukuba iGraphQL ijolise ekubeni lulwimi lofikelelo lwesiseko sedatha. Kuthekani ngokukwazi ukufikelela kwi-RDF usebenzisa iGraphQL?

Ngaphandle kwebhokisi eli thuba linikezelwa ngu:

Ukuba indawo yokugcina ayiniki thuba elinjalo, inokuphunyezwa ngokuzimeleyo ngokubhala "isisombululo" esifanelekileyo. Yiloo nto abayenzayo, umzekelo, kwiprojekthi yesiFrentshi DataTourism. Okanye awukwazi ukubhala nantoni na, kodwa thatha nje HyperGraphQL.

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.

  • KwiStardog ngoku mhlawumbi - ngokukodwa, zonke kwiGraphQL efanayo - qwalasela imephu yedatha ye-MongoDB kwiigrafu ze-RDF ezibonakalayo;
  • I-Ontotext GraphDB iye yakutshanje it ivumela 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. SPARQL Yenza, enokulungiswa, umzekelo, 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 iyeza 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 icandelo V.

III. OLTP vs. OLAP

Nangona kunjalo, uGartner ofanayo ubhalaukuba 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 yenzelwe ukusebenzela ukubhala imiba yokwenziwa komsebenzi;
  • I-Stardog ihamba ngakumbi kwaye ngokupheleleyo ubhala kwakhona injini, kwakhona ngenjongo yokuphucula ukusebenza kokurekhoda.

Ngoku mandikwazise umdlali omtsha emarikeni. Ukusuka kubadali be-IBM Netezza kunye neAmazon Redshift - AnzoGraphβ„’. 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 kwakukho ikhonkco 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 Inqaku leWikipedia, 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 iqonga "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 Inkonzo yoMbuzo weMbali yeWikidata. Ngaphambi kokwaziswa kwayo, ulwazi lwembali yeWikidata kwafuneka lufikelelwe MWAPI 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 ukoyisa 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:

  1. ukwenza utshintsho kwimodeli ye-RDF eyenza kube lula ukulinganisa izakhiwo ze-LPG kuyo;
  2. 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 ipropati singleton:

  • Endaweni yokuba, umzekelo, isivisa :isMarriedTo kusetyenziswa izibikezelo :isMarriedTo1, :isMarriedTo2 njalo njalo.
  • Ezi zibikezelo ke ziba zizihloko zeetriplets ezintsha: :isMarriedTo1 :since "2013-09-13"^^xsd:date nabanye.
  • 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 umgangatho. 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 RDF*Ibizwa ngokuba yiRDR, wazalwa enzulwini yeBlazegraph. Kususela ekuqaleni onyuliweyo ngawe kunye noAnzoGraph. Ukuqina kwendlela kumiselwa yinto yokuba ngaphakathi kwesakhelo sayo ziyanikezelwa utshintsho oluhambelanayo kwi ISemantics ye-RDF. 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 ifika Inkwenkwezi

Kwi-Allegrograph wahamba ngendlela ephakathi. Kuyaziwa ukuba izazisi ezintathu kwi-Allegrograph is, 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 SPARQL* ΠΈ Gremlin. Umbuzo we-SPARQL* ujongeka ngolu hlobo:

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

  • I-Anzograph nayo iyaxhasa SPARQL* kwaye uya kukuxhasa Isipro, ulwimi lombuzo kwi-Neo4j.
  • IStardog ixhasa eyayo ukwandiswa SPARQL kunye kwakhona 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 ukwandiswa 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 ezivulelekileyo ze-RDF ziyindlela ende ukusuka ekubeni lukhetho olulungileyo lokusetyenziswa kwemihla ngemihla, kunye neevenkile ezithathu ezintsha 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 iyamisa ukusabalalisa inguqulo yamahhala (nangona kunjalo, ixesha lovavanyo lwenguqu eqhelekileyo liphindwe kabini);
  • Π² Ilifu leGraphDB, apho ngaphambili ubunokukhetha isicwangciso esisisiseko sasimahla, ubhaliso lwabasebenzisi abatsha lunqunyanyisiwe.

Ngokubanzi, kumndilili we-IT umntu, indawo iya isiba ingafikeleleki; uphuhliso lwayo luba luninzi lweenkampani.

umthombo: www.habr.com

Yongeza izimvo