Chii chiri kuitika neRDF kuchengetedza izvozvi?

Iyo Semantic Webhu uye Yakabatanidzwa Dhata yakafanana nechadenga: hapana hupenyu ipapo. Kuti uendeko kwenguva yakati rebei kana shoma... Handizivi zvavakakuudza uchiri mudiki vachipindura kuti β€œNdinoda kuva astronaut.” Asi unogona kuona zviri kuitika uri paNyika; Zviri nyore kuve nyanzvi yekuongorora nyeredzi kana nyanzvi.

Chinyorwa chinotarisa pane ichangoburwa, isati yadarika mwedzi yakati wandei, mafambiro kubva munyika yekuchengetedza RDF. Dimikira riri mundima yekutanga rinofemerwa neiyo epic-saizi advertising mufananidzo pasi pekuchekwa.


Epic mufananidzo

Chii chiri kuitika neRDF kuchengetedza izvozvi?

I. GraphQL yekuwana RDF

Vanotiiyo GraphQL inovavarira kuve mutauro wepasirose wekuwana dhatabhesi. Zvakadini nekugona kuwana RDF uchishandisa GraphQL?

Kunze kwebhokisi mukana uyu unopihwa ne:

Kana iyo repository isingapi mukana wakadaro, inogona kuitwa yakazvimirira nekunyora yakakodzera "mugadziri". Izvi ndizvo zvavakaita, semuenzaniso, muchirongwa cheFrench DataTourisme. Kana kuti hauchakwanisi kunyora chero chinhu, asi ingotora HyperGraphQL.

Kubva pakuona kweiyo orthodox muteveri weSemantic Webhu uye Yakabatanidzwa Data, zvese izvi, hongu, zvinosuruvarisa, sezvo zvichiita senge zvakagadzirirwa kubatanidzwa kwakavakirwa kutenderedza inotevera data silo, uye kwete akakodzera mapuratifomu (RDF zvitoro, hongu) .

Maonero kubva pakuenzanisa GraphQL neSPARQL ane zvakapetwa kaviri.

  • Kune rimwe divi, GraphQL inotaridzika sehama iri kure yeSPARQL: inogadzirisa matambudziko ekudzokorora uye kuwanda kwemibvunzo inowanzoitika kune REST - pasina izvo, pamwe, hazvingaite kufunga. mutauro wekubvunza, zvirinani zvewebhu;
  • Kune rimwe divi, iyo yakaoma schema yeGraphQL inoodza mwoyo. Saizvozvo, "kutarisisa" kwayo kunoratidzika kunge kushoma kana zvichienzaniswa nekuzara kweRFF. Uye hapana analogue yezvivakwa nzira, saka hazvina kunyatsojeka kuti nei iri "Grafu-".

II. Adapter eMongoDB

Tsika inopindirana neyakapfuura.

  • MuStardog zvino zvichida - kunyanya, ese ari paGraphQL imwechete - gadzira mepu yeMongoDB data mune chaiyo RDF magirafu;
  • Ontotext GraphDB ichangoburwa Kunoitawo isa zvimedu muSPARQL paMongoDB Query.

Kana tikataura zvakanyanya nezve adapta kuJSON masosi, ayo anobvumira zvakanyanya kana zvishoma "pabhururuka" kumiririra iyo JSON yakachengetwa mune aya masosi seRDF, tinogona kurangarira iyo yakareba-yakamira. SPARQL Gadzira, iyo inogona kugadziriswa, somuenzaniso, to Apache Jena.

Tichipfupikisa maitiro maviri ekutanga, tinogona kutaura kuti RDF storages inoratidza kugadzirira kwakazara kwekubatanidzwa uye kushanda mumamiriro e "polyglot kushingirira". Izvo zvinozivikanwa, zvisinei, kuti iyi yekupedzisira yave kwenguva refu isiri mufashoni, uye iri kutsiviwa ne ari kuuya multi-modhi. Zvakadini neakawanda-modhi munyika yeRDF yekuchengetedza?

Muchidimbu, hapana nzira. Ndinoda kutsaurira chinyorwa chakasiyana kune chinyorwa chemhando dzakawanda dzeDBMS, asi ikozvino zvinogona kucherechedzwa kuti pari zvino hapana maDBMS akawanda emhando "yakavakirwa" pane girafu modhi (RDF inogona kutorwa serudzi rwayo) . Mamwe madiki akawanda-emuenzaniso - RDF yekuchengetedza tsigiro yeimwe LPG graph modhi - ichakurukurwa mukati chikamu V.

III. OLTP vs. OLAP

Zvisinei, Gartner mumwe chete anonyoraiyo multimodel is sine qua non condition inonyanya kuitirwa makamuri ekuvhiya DBMS. Izvi zvinonzwisisika: mumamiriro ezvinhu e "multivariate storage", matambudziko makuru anomuka nekutengeserana.

Asi ndekupi RDF storages iri pachiyero cheOLTP-OLAP? Ini ndaizopindura neiyi nzira: hapana uko kana kuno. Kuratidza zvavanenge vaitirwa, imwe chidimbu chetatu inodiwa. Sechisarudzo chandingakurudzira OLIP - Online Intellectual Processing.

Zvisinei, zvakadaro:

  • nzira dzekubatanidza neMongoDB dzakaitwa muGraphDB hadzisi diki chinangwa kushanda pakunyora nyaya dzekuita;
  • Stardog inoenderera mberi uye zvachose anonyorazve injini, zvakare nechinangwa chekuvandudza kuita kwekurekodha.

Zvino regai ndizivise mutambi mutsva pamusika. Kubva kuvagadziri veBMM Netezza uye Amazon Redshift - AnzoGraphβ„’. Mufananidzo kubva pakushambadza kwechigadzirwa kubva pachiri wakaiswa kwekutanga kwechinyorwa. AnzoGraph inozviisa pachayo seGOLAP mhinduro. Unoda sei SPARQL ine hwindo mabasa? -

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

IV. RocksDB

Atova kumusoro paiva ne link kune chiziviso cheStardog 7 Beta, iyo yakataura kuti Stardog yaizoshandisa RocksDB seyakadzika yekuchengetedza system - kiyi-yakakosha chitoro, Facebook forogo yeGoogle's LevelDB. Nei zvakakodzera kutaura nezveimwe tsika?

Kutanga, kutonga ne Wikipedia chinyorwa, kwete chete RDF storages "inosimwa" kuRocksDB. Kune mapurojekiti ekushandisa RocksDB sejini yekuchengetedza muArangoDB, MongoDB, MySQL uye MariaDB, Cassandra.

Chechipiri, mapurojekiti (kureva kuti, kwete zvigadzirwa) pamisoro yakakodzera anogadzirwa paRocksDB.

Semuenzaniso, eBay inoshandisa RocksDB mukati platform ye "ruzivo rwegirafu". Nenzira, zvinonakidza kuverenga: mutauro wemubvunzo wakatanga sechimiro chakakura pamusha, asi nguva pfupi yadarika yave shanduko kuita seSPARQL. Sezvazviri mujee: zvisinei nekuti yakawanda sei ruzivo rwegirafu yatinogadzira, isu tichiri kuguma neRDF.

Mumwe muenzaniso - imwe yakaonekwa mwedzi mishoma yapfuura Wikidata Nhoroondo Query Service. Isati yasumwa, ruzivo rwenhoroondo yeWikidata rwaifanira kuwanikwa kuburikidza MWAPI kusvika kuMediawiki API. Ikozvino zvakawanda zvinogoneka neiyo SPARQL yakachena. "Pasi pehodhi" kune zvakare RocksDB. Nenzira, WDHQS yakagadzirwa, zvinoratidzika, nemunhu akaunza Freebase muGoogle Knowledge Graph.

V. LPG rutsigiro

Rega ndikuyeuchidze nezve musiyano mukuru pakati peLPG magirafu uye RDF magirafu.

MuLPG, scalar zvivakwa zvinogona kupihwa kune edge kesi, nepo muRDF vanogona chete kupihwa kumucheto "mhando" (asi kwete chete scalar zvivakwa, asiwo zvakajairwa zvinongedzo). Uku kudzikisira kweRDF zvichienzaniswa neLPG kukunda imwe kana imwe nzira yekuenzanisira. Izvo zvinogumira zveLPG zvichienzaniswa neRDF zvakanyanya kuoma kukunda, asi magirafu eLPG akafanana nemifananidzo kubva mubhuku reHarari kupfuura magirafu eRDF, ndosaka vanhu vachiada.

Zviripachena, basa re "LPG rutsigiro" rinowira muzvikamu zviviri:

  1. kuita shanduko kune iyo RDF modhi inoita kuti ikwanise kutevedzera LPG zvimiro mairi;
  2. kuita shanduko kumutauro wemubvunzo weRDF izvo zvinoita kuti zvikwanise kuwana data mune iyi modhi yakagadziridzwa, kana kuita kugona kubvunza kune iyi modhi mumitauro ine mukurumbira yeLPG.

V.1. Data model

Pane nzira dzakawanda dzinobvira pano.

V.1.1. Singleton Property

Iyo chaiyo nzira yekuwiriranisa RDF neLPG ingangove singleton property:

  • Panzvimbo pe, semuenzaniso, chivakashure :isMarriedTo predicates inoshandiswa :isMarriedTo1, :isMarriedTo2 uye zvakadaro.
  • Izvi zvirevo zvinozove zvidzidzo zvematatu matatu: :isMarriedTo1 :since "2013-09-13"^^xsd:date uye vamwe.
  • Kubatana kwezviitiko izvi zve predicates neakajairika predicate inosimbiswa nematatu efomu :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Zviri pachena kuti rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, asi funga kuti nei usingafaniri kungonyora :isMarriedTo1 rdf:type :isMarriedTo.

Dambudziko re "LPG rutsigiro" rinogadziriswa pano padanho reRDFS. Chisarudzo chakadaro chinoda kuiswa mune zvakakodzera muyero. Dzimwe shanduko dzinogona kudikanwa kuzvitoro zveRDF zvinotsigira mhedzisiro, asi parizvino, Singleton Property inogona kufungidzirwa seimwe nzira yekuenzanisira.

V.1.2. Kudzokorora Kwakaitwa Zvakanaka

Maitiro asina kupusa anobva pakuziva kuti zviitiko zvezvivakwa zvinogoneka zvizere nematatu. Nekukwanisa kutaura chimwe chinhu pamusoro pematatu, tichakwanisa kutaura nezvezviitiko zvezvivakwa.

Iyo yakasimba kwazvo yeiyi nzira ndeye RDF*, aka RDR, born pakadzika peBlazegraph. Zvakabva pakutanga vakasarudzwa zvako uye AnzoGraph. Kusimba kwemaitiro kunotsanangurwa nenyaya yekuti mukati mehurongwa hwayo akapa dzinoenderana shanduko in RDF Semantics. Pfungwa yacho, zvisinei, iri nyore kwazvo. MuTurtle serialization yeRDF iwe unogona ikozvino kunyora chimwe chinhu chakadai:

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

V.1.3. Dzimwe nzira

Iwe haugone kunetseka nemasemantics epamutemo, asi ingofungidzira kuti mapatatu ane zvimwe zviziviso, izvo, zvechokwadi, maURI, uye kugadzira mapatani matatu nemaURI aya. Chasara kupa mukana kune aya maURI muSPARQL. Saka inosvika Stardog.

MuAllegrograph akaenda nenzira yepakati. Zvinozivikanwa kuti katatu identifiers muAllegrograph pane, asi kana uchiita hunhu hutatu hahunamire kunze. Nekudaro, ichiri kure zvakanyanya kubva kune yepamutemo semantics. Zvinokosha kuziva kuti katatu hunhu hausi URIs, uye kukosha kweaya hunhu kunogona zvakare kuve chaiko. Vateveri veLPG vanowana chaizvo zvavaida. Mune yakanyatso gadzirwa NQX fomati, muenzaniso wakafanana neuri pamusoro weRDF* unotaridzika seizvi:

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

V.2. mitauro yemibvunzo

Kuve wakatsigira LPG mune imwe nzira kana imwe padanho remuenzaniso, unofanirwa kuita kuti zvikwanise kuita mibvunzo pane data mune yakadaro modhi.

  • Blazegraph yeRDF * mibvunzo inotsigira SPARQL* ΠΈ Gremlin. A SPARQL* mubvunzo unotaridzika seizvi:

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

  • Anzograph inotsigirawo SPARQL* uye ari kuzotsigira Cypher, mutauro wekubvunza muNeo4j.
  • Stardog inotsigira yayo kuwedzera SPARQL uye zvakare Gremlin. Iwe unogona kuwana iyo katatu URI uye "meta-ruzivo" muSPARQL uchishandisa chimwe chinhu chakadai:

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

  • Allegrograph inotsigirawo zvayo kuwedzera SPARQL:

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

Nenzira, GraphDB pane imwe nguva yakatsigira Tinkerpop/Gremlin isina kutsigira LPG, asi izvi zvakamira mushanduro 8.0 kana 8.1.

VI. Kusimbiswa kwemarezinesi

Pakave pasina zvichangobva kuwedzerwa kumharadzano ye "triplestore yesarudzo" uye "open source triplestore" seti. Iyo nyowani yakavhurika sosi zvitoro zveRDF inzira refu kubva pakuva sarudzo yakanaka yekushandisa kwemazuva ese, uye zvitsva zvitatu zvitoro zvandinoda kushandisa (seAnzoGraph) zvakavharwa sosi. Asi, tinogona kutaura nezve kuderera ...

Ehe, yakavhurika sosi haisati yavharwa munguva yakapfuura, asi mamwe akavhurwa sosi repositori zvishoma nezvishoma haachaonekwe seakakodzera kusarudza. Virtuoso, iyo ine opensource edition, iri, mumaonero angu, inonyura mumabhugi. Blazegraph yakatengwa neAWS uye yakagadzira hwaro hweAmazon Neptune; zvino hazvina kujeka kana pachazove neimwe imwezve kusunungurwa. Jena chete ndiye asara...

Kana iyo yakavhurika sosi isinganyanyi kukosha, asi iwe unongoda kuiedza, saka zvese zvakare zvishoma rosy kupfuura kare. Semuyenzaniso:

  • Stardog kumira govera iyo yemahara vhezheni (zvisinei, nguva yekuyedzwa yeiyo yakajairwa vhezheni yakapetwa kaviri);
  • Π² GraphDB Cloud, kwawakambokwanisa kusarudza chirongwa chemahara chemahara, kunyoreswa kwevashandisi kutsva kwakamiswa.

Kazhinji, kune avhareji IT munhu, nzvimbo iri kuramba ichiwedzera kusasvikika; kusimukira kwayo kuri kuita kuwanda kwemakambani.

Source: www.habr.com

Voeg