Naha bi depoyên RDF re çi diqewime?

Malpera Semantîk û Daneyên Girêdayî mîna cîhê derveyî ne: li wir jiyan tune. Ku biçim wir ji bo demeke dirêj kêm an kêm… Ez nizanim di zarokatiya xwe de ji we re çi digotin "Ez dixwazim bibim astronot." Lê hûn dikarin li ser rûyê erdê çi diqewime temaşe bikin; bûyîna astronomek amator an jî pisporek pir hêsan e.

Gotar dê li ser meylên ji cîhana hilanîna RDF-a nû, ku ji çend mehan kevintir nîne, bisekine. Metafora di paragrafa yekem de ji wêneyek danasînê ya epîk a di binê qutbûnê de îlhama xwe digire.


wêneyê epîk

Naha bi depoyên RDF re çi diqewime?

I. GraphQL ji bo Gihîştina RDF

Ew dibêjinku GraphQL îdîa dike ku ew zimanê gihîştina databasa gerdûnî ye. Û çi li ser şiyana gihîştina bi karanîna GraphQL bo RDF?

Ji derveyî qutiyê, ev derfet ji hêla:

Ger depo fersendek wusa peyda neke, ew bi nivîsandina "çareserker" (çareser) guncan bi serbixwe tête bicîh kirin. Ev ji bo nimûne, di projeya fransî de hate kirin DataTourism. An jî hûn nikarin tiştek binivîsin, lê tenê bigirin HyperGraphQL.

Ji nihêrîna hevalbendek ortodoks a Semantic Web û Daneyên Girêdayî, ev hemî, bê guman, xemgîn e, ji ber ku xuya dike ku ew ji bo entegrasyonên ku li dora siloya daneya paşîn hatine çêkirin, û platformên ne maqûl (bê guman, hilanînê RDF) armanc e. .

Bandorên ji berhevdana GraphQL bi SPARQL re du qat in.

  • Ji aliyekî ve, GraphQL mîna xizmek dûr a SPARQL xuya dike: ew pirsgirêkên ji nû ve bijartinê û pirsên pirjimar ên ku taybetmendiya REST-ê ne çareser dike - bêyî ku, belkî, ne mimkun e ku were hesibandin. zimanê pirsê, bi kêmanî ji bo tevneyê;
  • Ji hêla din ve, nexşeya hişk a GraphQL têk diçe. Li gorî vê yekê, "hundirûbûna" wê li gorî refleksbûna tam a RDF pir kêm xuya dike. Û analoga riyên milkê tune ye, ji ber vê yekê jî pir ne diyar e çima ew "Graph-" e.

II. Adapterên ji bo MongoDB

Trendek ku ji ya berê re temam dike.

  • Niha li Stardog dibe - bi taybetî, hemî li ser heman GraphQL - pêşandana daneya MongoDB di grafikên RDF yên virtual de mîheng bikin;
  • Ontotext GraphDB herî dawî Ev rê dide li ser MongoDB Query têxin nav perçeyên SPARQL.

Axaftina berfirehtir, li ser adapterên çavkaniyên JSON-ê yên ku kêm-zêde dihêlin "li ser firînê" JSON-ya ku di van çavkaniyan de wekî RDF hatî hilanîn temsîl bike, wê hingê em dikarin ya heyî jî ji bo demek dirêj bi bîr bînin. SPARQL Biafirîneku dikare were sererast kirin bo nimûne, ji Apache Jena re.

Bi kurtkirina her du meylên yekem, em dikarin bibêjin ku depoyên RDF di şert û mercên "depokirina pirjimar" de (berdewamiya polîglotê) amadebûna tam ji bo yekbûn û xebitandinê nîşan didin. Lêbelê, tê zanîn ku ev paşîn ji mêj ve ji modayê derketiye, û li şûna wê ye multi-modeling. Û di cîhana hilanîna RDF de pir-modelkirina çi ye?

Bi kurtasî, bi tu awayî. Ez dixwazim gotarek cuda veqetînim mijara DBMS-a pir-model, lê heya niha hûn dikarin bibînin ku li ser modela grafîkê "bingeha" DBMS-ya pir-model tune (RDF dikare wekî guhertoyek wê were hesibandin) naha. Hin pir-modelên piçûk - piştgirî ji hêla depoyên RDF-ê ve modelek grafîkî ya LPG-ya alternatîf - dê di nav de bêne nîqaş kirin. Beşa V.

III. OLTP vs. OLAP

Lêbelê, heman Gartner ew dinivîse:ku pir-modelkirin di serî de ji bo şertek sine qua non e odeyên emeliyatê DBMS. Ev tê fêm kirin: di rewşek "gelek hilanîn" de, pirsgirêkên sereke bi danûstendinê re derdikevin.

Lê li ser pîvana OLTP-OLAP depoyên RDF li ku ne? Ez ê wiha bersiv bidim: ne li wir û ne jî li vir. Ji bo ku nîşan bidin ku ew ji bo çi têne armanc kirin, kurteya sêyemîn hewce ye. Wekî vebijarkek ez ê pêşniyar bikim OLIP - Pêvajoya Rewşenbîrî ya Serhêl.

Lêbelê, dîsa jî:

  • mekanîzmayên entegrasyonê yên ku di GraphDB de bi MongoDB re têne bicîh kirin ne hindik in armanc kirin li dora nivîsandina pirsgirêkên performansê bixebitin;
  • Stardog hê bêtir û bi tevahî diçe ji nû ve dinivîse motor, dîsa bi armanca başkirina performansa nivîsandinê.

Û naha bila ez lîstikvanek nû di sûkê de bidim nasîn. Ji afirînerên IBM Netezza û Amazon Redshift - AnzoGraph™. Wêneyek ji reklamek ji bo hilberek li ser bingeha wê di destpêka gotarê de hate danîn. AnzoGraph xwe wekî çareseriyek GOLAP destnîşan dike. Hûn çawa ji SPARQL bi fonksiyonên pencereyê hez dikin? -

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

IV. RocksDB

Jixwe li jor girêdanek hebû ji ragihandina Stardog 7 Beta re, ku got ku Stardog dê RocksDB-ê wekî pergala hilanînê ya bingehîn bikar bîne - hilanîna key-nirx, forka Facebook-ê ya LevelDB-a Google-ê. Çima hêja ye ku meriv li ser meylek diyar biaxive?

Yekem, dadbar kirin Gotara Wikipedia, ne tenê depoyên RDF-ê li RocksDB-ê têne "veguheztin". Di ArangoDB, MongoDB, MySQL û MariaDB, Cassandra de proje hene ku RocksDB wekî motora hilanînê bikar bînin.

Ya duyemîn, projeyên (ango ne hilberên) mijara têkildar li ser RocksDB têne çêkirin.

Mînakî, eBay di nav de RocksDB bikar tîne platform ji bo "grafika zanîna" we. Bi awayê, xwendina xweş e: zimanê pirsê wekî formatek mezinbûna malê dest pê kir, lê di van demên dawî de ew diguhere ku pirtir mîna SPARQL. Mîna henekekê: em çiqas grafiya zanînê bikin jî, em dîsa jî RDF-ê digirin.

Mînakek din - çend meh berê xuya bû Xizmeta Lêpirsînê ya Dîroka Wikidata. Berî destpêkirina wê, diviyabû ku agahdariya dîrokî ya Wîkîdata bi rê ve bihata bidestxistin MWAPI ji bo standard Mediawiki API. Di SPARQL-a paqij de nuha gelek tişt mimkun e. "Di bin hood" de jî RocksDB heye. Bi awayê, WDHQS wiya kir, wusa dixuye ku kesê ku beşdarî anîna Freebase di Grafika Zanînê ya Google de ye.

V. Piştgiriya LPG

Bila ez cûdahiya sereke di navbera grafikên LPG û grafikên RDF de bi bîr bînim.

Di LPG de, taybetmendiyên skalar dikarin bi mînakên qeraxê ve werin girêdan, dema ku di RDF de ew tenê dikarin bi "cûreyên" qeraxê ve werin girêdan (lê ne tenê taybetmendiyên skalar, lê di heman demê de girêdanên asayî jî). Ev sînorkirina RDF-ê li gorî LPG-ê bi ser ketin cûreyek teknîka modelkirinê. Sînorkirinên LPG-ê li gorî RDF-ê dijwartir e ku werin derbas kirin, lê grafikên LPG-ê ji grafikên RDF-ê bêtir mîna wêneyên ji pirtûka Harari ne, ji ber vê yekê mirov wan dixwazin.

Eşkere ye ku peywira "piştgiriya LPG" dike du beş:

  1. guhertinên di modela RDF-ê de ku îmkana simulasyona avahiyên LPG-ê di wê de çêdike;
  2. guherandinan di zimanê pirsa RDF-ê de ku gihandina daneyan di vê modela guhertî de mimkun dike, an pêkanîna şiyana pirskirina vê modelê di zimanên lêgerîna LPG-ya populer de.

V.1. Modela daneyê

Li vir çend nêzîkatiyên gengaz hene.

V.1.1. milkê singleton

Nêzîkatiya herî wêjeyî ya lihevhatina RDF û LPG dibe ku ev e milkê singleton:

  • Li şûna, wek nimûne, pêşdaraz :isMarriedTo pêşdaraz têne bikaranîn :isMarriedTo1, :isMarriedTo2 û vî awayî.
  • Dûv re ev pêşgotin dibin mijarên sêqatên nû: :isMarriedTo1 :since "2013-09-13"^^xsd:date û din
  • Têkiliya van nimûnên pêşdaçekan bi pêşdaçeka hevpar re bi sêçikên şeklê tê saz kirin :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Ew eşkere ye ku rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, lê bifikirin ka çima hûn tenê nenivîsin :isMarriedTo1 rdf:type :isMarriedTo.

Erka "piştgiriya LPG" li vir di asta RDFS de tê çareser kirin. Ji bo biryareke wiha pêwîstî bi tevlêbûna di eleqedar de heye standard. Dibe ku hin guhertin ji depoyên RDF-ê yên ku encamên pêvekirinê piştgirî dikin hewce ne, lê heya nuha, Taybetmendiya Singleton dikare wekî teknîkek din a modelkirinê were hesibandin.

V.1.2. Reification Rast Kir

Nêzîkatiyên kêm naîf ji têgihîştina ku mînakên milkê bi sêçikan ve bi rengek bêkêmasî têne destnîşan kirin. Ji ber ku em dikarin li ser sêçikan bipeyivin, em dikarin behsa mînakên milk jî bikin.

Ji van nêzîkatiyan ya herî zexm e RDF*wekî RDR, zayî di nav zikê Blazegraph de. Ji destpêkê ve ye hilbijartin ji bo xwe û AnzoGraph. Zehmetiya nêzîkbûnê bi rastiya ku di çarçoveya wê de tête diyar kirin pêşkêş kirin guhertinên têkildar di Semantîkên RDF. Lêbelê, xal pir hêsan e. Di serialîzasyona RDF Turtle de, hûn niha dikarin tiştek weha binivîsin:

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

V.1.3. Nêzîkatiyên din

Hûn nekarin bi semantîkên fermî re mijûl bibin, lê bi tenê bifikirin ku sêçikan hin nasnameyan hene, ku, bê guman, URI ne, û bi van URI-yan sêçikên nû çêdikin. Tiştê ku dimîne ev e ku meriv bigihîje van URI-yên di SPARQL de. Wiha stardog.

Di Allegrograph de çû bi awayekî navîn. Tê zanîn ku di Allegrograph de nasnameyên sêçikan hene e, lê dema ku taybetmendiyên sêalî têne bicîh kirin, ew dernakeve. Lêbelê, tewra semantîka fermî jî pir dûr e. Nemaze, taybetmendiyên sêalî ne URI ne, û nirxên van taybetmendiyan jî tenê dikarin biwêj bin. Alîgirên LPG-ê tam tiştê ku wan dixwest distînin. Di forma taybetî ya NQX de, mînakek mîna ya jorîn ji bo RDF * bi vî rengî xuya dike:

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

V.2. Zimanan bipirsin

Ji ber ku hûn di asta modelê de bi rengek an din LPG-ê piştgirî bikin, hûn hewce ne ku di modelek wusa de lêpirsîna daneyan mimkun bikin.

  • Blazegraph ji bo pirsên RDF* piştgirî dike SPARQL* и Gremlin. Pirsek SPARQL* bi vî rengî xuya dike:

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

  • Anzograph jî piştgirî dike SPARQL* û dê piştgirî bike Cypher, zimanê pirsê di Neo4j de.
  • Stardog xwe diparêze kewçêr SPARQL û dîsa Gremlin. Hûn dikarin URI-ya sêpê û "meta-agahdariya" di SPARQL de bi karanîna tiştek weha bistînin:

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

  • Allegrograph jî ya xwe piştgirî dike kewçêr SPARQL:

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

Werhasil, GraphDB yek carî bêyî piştgirîkirina LPG piştgirî da Tinkerpop / Gremlin, lê ew di guhertoya 8.0 an 8.1 de rawestiya.

VI. Zehfkirina lîsansan

Di navberkirina komên "triplestore bijartî" û "çavkaniya vekirî ya sê-store" de ti zêdekirinên vê dawiyê nehatine. Firotgehên RDF-ya çavkaniya vekirî ya nû ji bo karanîna rojane ji bijarteyek baş dûr in, û koda çavkaniyê ji bo firotgehên sêalî yên nû yên ku ez dixwazim bikar bînim (mînak, AnzoGraph) girtî ye. Belê, em dikarin li ser kêmkirinan biaxivin ...

Bê guman, berê çavkaniya vekirî ne girtî ye, lê hin depoyên çavkaniya vekirî hêdî hêdî êdî hêjayî hilbijartinê nayên hesibandin. Virtuoso, ku xwedan çapek çavkaniyek vekirî ye, bi dîtina min, di xeletiyan de xeniqî. Blazegraph ji hêla AWS ve kirî û bingeha Amazon Neptune ava kir; niha ne diyar e ka dê bi kêmanî yek berdanek din hebe yan na. Tenê Jenna dimîne ...

Ger çavkaniya vekirî ne pir girîng e, lê hûn tenê dixwazin biceribînin, wê hingê her tişt jî ji berê kêmtir rovî ye. Bo nimûne:

  • Stardog disekine guhertoya belaş belav bikin (lêbelê, heyama ceribandina ya birêkûpêk du qat bûye);
  • в GraphDB Cloud, cihê ku we berê dikaribû pilana bingehîn a belaş hilbijêrin, qeydkirina bikarhênerê nû tê sekinandin.

Bi gelemperî, cîh ji bo xebatkarek IT-ya asayî her ku diçe bêdestûrtir dibe, pêşkeftina wê dibe pir pargîdaniyan.

Source: www.habr.com

Add a comment