Kodi chikuchitika ndi chiyani ndi yosungirako RDF tsopano?

The Semantic Web ndi Data Linked ali ngati mlengalenga: kulibe moyo kumeneko. Kuti ndipite kumeneko kwa nthawi yayitali kapena yocheperapo... Sindikudziwa zomwe anakuuzani ndili mwana poyankha "Ndikufuna kukhala woyenda mumlengalenga." Koma mutha kuwona zomwe zikuchitika mukakhala padziko lapansi; Ndikosavuta kukhala katswiri wa zakuthambo kapena ngakhale katswiri.

Nkhaniyi ifotokoza zaposachedwa, zosaposa miyezi ingapo, zomwe zikuchitika mdziko la RDF yosungirako. Fanizoli m'ndime yoyamba lidalimbikitsidwa ndi chithunzi chotsatsa cha epic-size pansi pa kudula.


Epic chithunzi

Kodi chikuchitika ndi chiyani ndi yosungirako RDF tsopano?

I. GraphQL ya kupeza RDF

Amaterokuti GraphQL ikufuna kukhala chilankhulo chofikira pa database. Nanga bwanji kuthekera kofikira RDF pogwiritsa ntchito GraphQL?

Kuchokera m'bokosi mwayi uwu waperekedwa ndi:

Ngati chosungira sichipereka mwayi wotero, chikhoza kukhazikitsidwa mwaokha polemba "wotsutsa" woyenera. Izi ndi zomwe adachita, mwachitsanzo, mu polojekiti yaku France DataTourisme. Kapena simungalembenso chilichonse, koma ingotengani HyperGraphQL.

Kuchokera pamalingaliro a Orthodox adherent of the Semantic Web and Linked Data, zonsezi, ndithudi, ndi zachisoni, chifukwa zikuwoneka kuti zapangidwira kuphatikizika komwe kumamangidwa mozungulira silo yotsatira ya data, osati nsanja zoyenera (masitolo a RDF, ndithudi) .

Zowoneka pakuyerekeza GraphQL ndi SPARQL ndizowirikiza.

  • Kumbali imodzi, GraphQL ikuwoneka ngati wachibale wakutali wa SPARQL: imathetsa mavuto oyesanso ndi kuchuluka kwa mafunso omwe amafanana ndi REST - popanda zomwe, mwina, sizingakhale zotheka kuziganizira. chinenero chofunsa, osachepera pa intaneti;
  • Kumbali ina, schema yolimba ya GraphQL ndiyokhumudwitsa. Chifukwa chake, "kuyang'ana" kwake kumawoneka kocheperako poyerekeza ndi kusinthika kwathunthu kwa RDF. Ndipo palibe analogue ya njira za katundu, kotero sizidziwika bwino chifukwa chake ndi "Graph-".

II. Adapter a MongoDB

Mchitidwe wogwirizana ndi wam'mbuyo.

  • Mu Stardog tsopano mwina - makamaka, onse pa GraphQL yomweyo - sinthani mapu a data ya MongoDB kukhala ma graph a RDF;
  • Ontotext GraphDB yaposachedwa timatha ikani zidutswa mu SPARQL pa MongoDB Query.

Ngati tilankhula mozama za ma adapter ku magwero a JSON, omwe amalola kuti "pa ntchentche" mochulukirapo kapena pang'ono ayimirire JSON yosungidwa m'malo awa ngati RDF, titha kukumbukira nthawi yayitali. SPARQL Pangani, zomwe zingasinthidwe, Mwachitsanzo, ku Apache Jena.

Pofotokoza mwachidule zochitika ziwiri zoyambirira, titha kunena kuti zosungira za RDF zikuwonetsa kukonzeka kwathunthu kuphatikiza ndikugwira ntchito mu "polyglot persistence". Zimadziwika, komabe, kuti izi zakhala zikutuluka mu mafashoni, ndipo zikusinthidwa akubwera mitundu yambiri. Nanga bwanji zamitundu yambiri padziko lapansi yosungirako RDF?

Mwachidule, palibe. Ndikufuna kupereka nkhani yosiyana pamutu wa ma DBMS amitundu yambiri, koma pakalipano tingazindikire kuti pakali pano palibe ma DBMS amitundu yambiri "ochokera" pazithunzi za graph (RDF ikhoza kuonedwa ngati mtundu wa izo) . Zina zing'onozing'ono zamitundu yambiri - zothandizira zosungirako za RDF za mtundu wina wazithunzi za LPG - zidzakambidwa gawo V.

III. OLTP vs. OLAP

Komabe, Gartner yemweyo Iye analembakuti multimodel ndi sine qua non condition makamaka zipinda zochitira opaleshoni DBMS. Izi ndizomveka: muzochitika za "multivariate storage", mavuto akuluakulu amadza ndi kugulitsa.

Koma zosungira za RDF zili pati pamlingo wa OLTP-OLAP? Ndikanayankha motere: palibe apo kapena apa. Kuti muwonetse zomwe akupangira, chidule chachitatu chimafunika. Monga njira ndinganene OLIP - Kusintha kwanzeru pa intaneti.

Komabe, komabe:

  • njira zophatikizira ndi MongoDB zomwe zakhazikitsidwa ku GraphDB ndizochepa anafuna kuthandizira kuthetsa mavuto a ntchito;
  • Stardog amapita motalikirapo komanso kwathunthu amalembanso injini, kachiwiri ndi cholinga chokweza kujambula.

Tsopano ndiroleni ndikuwonetseni wosewera watsopano pamsika. Kuchokera kwa omwe amapanga IBM Netezza ndi Amazon Redshift - AnzoGraphβ„’. Chithunzi chochokera ku malonda a chinthu chochokera pa icho chinaikidwa kumayambiriro kwa nkhaniyo. AnzoGraph imadziyika yokha ngati yankho la GOLAP. Kodi mumakonda bwanji SPARQL yokhala ndi zenera? -

SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE {  …  }

IV. Zithunzi za RocksDB

Zokwera kale panali ulalo ku chilengezo cha Stardog 7 Beta, yomwe idati Stardog idzagwiritsa ntchito RocksDB ngati njira yosungiramo - malo osungiramo zinthu zofunika kwambiri, foloko ya Facebook ya Google LevelDB. Kodi nchifukwa ninji kuli koyenera kulankhula za mkhalidwe wakutiwakuti?

Choyamba, kuweruza Nkhani ya Wikipedia, osati zosungira za RDF zokha zomwe "zimasinthidwa" ku RocksDB. Pali mapulojekiti ogwiritsira ntchito RocksDB ngati injini yosungirako ku ArangoDB, MongoDB, MySQL ndi MariaDB, Cassandra.

Kachiwiri, mapulojekiti (omwe sizinthu) pamitu yoyenera amapangidwa pa RocksDB.

Mwachitsanzo, eBay imagwiritsa ntchito RocksDB mu nsanja pa "graph ya chidziwitso". Mwa njira, ndizoseketsa kuwerenga: chilankhulo chofunsacho chinayamba ngati chokulirapo kunyumba, koma posachedwa chasintha kukhala ngati SPARQL. Monga nthabwala: ngakhale tipanga graph yochuluka bwanji, timakhalabe ndi RDF.

Chitsanzo china - chomwe chinawonekera miyezi ingapo yapitayo Wikidata History Query Service. Asanayambike, zambiri za mbiri yakale za Wikidata zidayenera kupezeka kudzera MWAPI kupita ku Mediawiki API. Tsopano zambiri ndizotheka ndi SPARQL yoyera. "Pansi pa hood" palinso RocksDB. Mwa njira, WDHQS idapangidwa, zikuwoneka, ndi munthu yemwe adatumiza Freebase mu Google Knowledge Graph.

Thandizo la V. LPG

Ndiroleni ndikukumbutseni kusiyana kwakukulu pakati pa ma graph a LPG ndi ma graph a RDF.

Mu LPG, katundu wa scalar amatha kugawidwa m'mbali, pomwe mu RDF atha kupatsidwa "mitundu" yam'mphepete (koma osati ma scalar okha, komanso maulumikizidwe wamba). Kuchepetsa uku kwa RDF poyerekeza ndi LPG gonjetsani njira imodzi kapena ina. Zofooka za LPG poyerekeza ndi RDF zimakhala zovuta kuthana nazo, koma ma graph a LPG ali ngati zithunzi zochokera m'buku la Harari kuposa ma graph a RDF, chifukwa chake anthu amawafuna.

Mwachiwonekere, ntchito ya "LPG thandizo" imagwera m'magawo awiri:

  1. kusintha kwa mtundu wa RDF zomwe zimapangitsa kuti zitheke kutsanzira mapangidwe a LPG momwemo;
  2. kusintha chinenero cha mafunso cha RDF chomwe chimapangitsa kuti munthu athe kupeza deta mumtundu wosinthidwawu, kapena kugwiritsa ntchito luso lotha kufunsa chitsanzo ichi m'zinenero zotchuka za LPG.

V.1. Mtundu wa data

Pali njira zingapo zomwe zingatheke apa.

V.1.1. Singleton Property

Njira yeniyeni yolumikizira RDF ndi LPG mwina ndi katundu wa singleton:

  • M'malo, mwachitsanzo, predicate :isMarriedTo ma predicates amagwiritsidwa ntchito :isMarriedTo1, :isMarriedTo2 i. d.
  • Ma predicates awa amakhala mitu ya mapatatu atsopano: :isMarriedTo1 :since "2013-09-13"^^xsd:date ndi ena.
  • Kulumikizana kwa zochitika izi za predicates ndi predicate wamba kumakhazikitsidwa ndi katatu a mawonekedwe :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • N'zoonekeratu kuti rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, koma ganizirani chifukwa chake simuyenera kungolemba :isMarriedTo1 rdf:type :isMarriedTo.

Vuto la "LPG thandizo" lathetsedwa pano pamlingo wa RDFS. Chisankho choterocho chimafuna kuphatikizidwa muzoyenera muyezo. Zosintha zina zitha kufunidwa m'masitolo a RDF omwe amathandizira zomangira, koma pakadali pano, Singleton Property ikhoza kuganiziridwa ngati njira ina yofananira.

V.1.2. Kukonzanso Kwachitika Bwino

Njira zopanda nzeru zimachokera ku kuzindikira kuti zochitika za katundu ndizokhazikika ndi katatu. Pakutha kunena china chokhudza mapatatu, tidzatha kulankhula za zochitika za katundu.

Njira yamphamvu kwambiri mwa njira izi ndi RDF*, RDR, kubadwa mkati mwa Blazegraph. Ndi kuyambira pachiyambi osankhidwa zanu ndi AnzoGraph. Kulimba kwa njirayo kumatsimikiziridwa ndi mfundo yakuti mkati mwa dongosolo lake zoperekedwa zosintha zosiyanasiyana mu Semantics ya RDF. Mfundo yake, komabe, ndiyosavuta kwambiri. Mu Turtle serialization ya RDF mutha kulemba motere:

<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .

V.1.3. Njira zina

Simungavutike ndi semantics yovomerezeka, koma kungoganiza kuti mapatatu ali ndi zozindikiritsa zina, zomwe ndi ma URIs, ndikupanga mapatatu atsopano ndi ma URI awa. Zomwe zatsala ndikungopatsa mwayi wopeza ma URI mu SPARQL. Choncho afika Stardog.

Mu Allegrograph anapita mwa njira yapakatikati. Zimadziwika kuti zozindikiritsa katatu mu Allegrograph pali, koma pokwaniritsa zikhumbo zitatu sizimatuluka. Komabe, akadali kutali kwambiri ndi semantics yovomerezeka. Ndizofunikira kudziwa kuti mawonekedwe atatu si URIs, ndipo mayendedwe amtunduwu amathanso kukhala enieni. Otsatira a LPG amapeza zomwe akufuna. Mu mtundu wopangidwa mwapadera wa NQX, chitsanzo chofanana ndi chomwe chili pamwambapa cha RDF* chikuwoneka motere:

:bob :marriedTo :alice {"since" : "2013-09-13"}

V.2. Zofunsa zilankhulo

Popeza mwathandizira LPG mwanjira ina pamlingo wachitsanzo, muyenera kupanga zotheka kuti mufunse mafunso pazachitsanzo zotere.

  • Blazegraph yamafunso a RDF * imathandizira SPARQL* ΠΈ Gremlin. Funso la SPARQL* likuwoneka motere:

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

  • Anzograph imathandizanso SPARQL* ndipo amathandizira Cypher, chilankhulo chofunsa mu Neo4j.
  • Stardog imathandizira zake kukulitsa SPARQL ndi kachiwiri Gremlin. Mutha kupeza URI katatu ndi "meta-information" mu SPARQL pogwiritsa ntchito izi:

SELECT * {
    BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
    ?id :since ?since
}

  • Allegrograph imathandiziranso zake kukulitsa SPARQL:

 SELECT * { ("since" ?since)  franz:attributesNameValue  ( :bob :marriedTo ?wife ) }

Mwa njira, GraphDB nthawi ina idathandizira Tinkerpop/Gremlin popanda kuthandizira LPG, koma izi zidayima mu mtundu 8.0 kapena 8.1.

VI. Kuyimitsidwa kwa ziphaso

Sipanakhalepo zowonjezera zaposachedwa pamzere wa "triplestore of choice" ndi "open source triplestore" seti. Malo ogulitsira atsopano a RDF ali kutali kwambiri ndi kukhala chisankho chabwino pakugwiritsa ntchito tsiku ndi tsiku, ndipo masitolo atsopano atatu omwe ndikufuna kugwiritsa ntchito (monga AnzoGraph) ali otsekedwa. M'malo mwake, titha kulankhula za kuchepa ...

Zachidziwikire, gwero lotseguka silinatsekedwe m'mbuyomu, koma malo ena otsegulira gwero pang'onopang'ono sakuwonekanso ngati oyenera kusankha. Virtuoso, yomwe ili ndi opensource edition, mwa lingaliro langa, ikumira mu nsikidzi. Blazegraph idagulidwa ndi AWS ndikupanga maziko a Amazon Neptune; tsopano sizikudziwikiratu ngati padzakhala kumasulidwa kwinanso. Kwatsala Jena yekha...

Ngati gwero lotseguka silili lofunika kwambiri, koma mukungofuna kuyesera, ndiye kuti zonse zimakhalanso zochepa kuposa kale. Mwachitsanzo:

  • Stardog amaima gawani mtundu waulere (komabe, nthawi yoyeserera yamtundu wamba yawirikiza kawiri);
  • Π² GraphDB Cloud, komwe m'mbuyomu mumatha kusankha pulani yaulere yaulere, kulembetsa kwatsopano kwa ogwiritsa ntchito kuyimitsidwa.

Nthawi zambiri, kwa munthu wamba wa IT, malo akukhala osafikirika; chitukuko chake chikukhala makampani ambiri.

Source: www.habr.com

Kuwonjezera ndemanga