Ho etsahala'ng ka polokelo ea RDF hona joale?

Websaete ea Semantic le Lintlha tse Hokahaneng li tšoana le sebaka se ka ntle: ha ho na bophelo moo. Ho ea moo nako e telele kapa e seng kae… Empa u ka shebella se etsahalang ha u le Lefatšeng; ho ba setsebi sa linaleli kapa setsebi sa linaleli ho bonolo haholo.

Sengoloa se tla shebana le mekhoa e mecha, e seng ea khale ho feta likhoeli tse 'maloa, e tsoang lefats'eng la polokelo ea RDF. Papiso e serapeng sa pele e khothaletsoa ke setšoantšo sa papatso sa maemo a holimo tlas'a sehiloeng.


setšoantšo se seholohali

Ho etsahala'ng ka polokelo ea RDF hona joale?

I. GraphQL bakeng sa phihlello ea RDF

Ba rehore GraphQL e ipolelang hore ke puo ea phihlello ea database. Mme ho thoe'ng ka bokhoni ba ho fihlella u sebelisa GraphQL ho RDF?

Ka ntle ho lebokose, monyetla ona o fanoa ke:

Haeba sebaka sa polokelo se sa fane ka monyetla o joalo, se kenngoa ts'ebetsong ka boithaopo ka ho ngola "resolver" e loketseng (resolver). Sena se entsoe, ka mohlala, morerong oa Sefora DataTourism. Kapa u se u ntse u ka ngola letho, empa nka feela HyperGraphQL.

Ho ea ka pono ea motho ea khomaretseng li-orthodox tsa Websaete ea Semantic le Data Linked, sena sohle se soabile, kaha ho bonahala eka se reretsoe ho kopanngoa ho pota-potiloe ke silo e latelang ea data, 'me ha e tšoanelehe liforomo (ehlile, RDF storages) .

Maikutlo a ho bapisa GraphQL le SPARQL a habeli.

  • Ka lehlakoreng le leng, GraphQL e shebahala joalo ka setho se hole sa SPARQL: e rarolla mathata a ho khetha hape le lipotso tse ngata tse tloaelehileng bakeng sa REST - ntle le tseo, mohlomong, ho ke keng ha khoneha ho nahana ka tsona. puo ea ho botsa, bonyane bakeng sa tepo;
  • Ka lehlakoreng le leng, leano le thata la GraphQL lea khopisa. Ka hona, "boipone" ba eona bo bonahala bo fokola haholo ha bo bapisoa le boits'oaro bo felletseng ba RDF. Hape ha ho na analogue ea litsela tsa thepa, kahoo ha e hlake haholo hore na ke hobane'ng ha e le "Graph-".

II. Li-adapter tsa MongoDB

Tloaelo e tlatsanang le e fetileng.

  • Ho Stardog hona joale hoa khoneha - haholo-holo, kaofela ho GraphQL e tšoanang - lokisa ponts'o ea data ea MongoDB ho li-graph tsa RDF tse hlakileng;
  • Ontotext GraphDB haufinyane e lumella kenya likhechana tsa SPARQL ho Potso ea MongoDB.

Ha re bua ka ho pharaletseng, ka li-adapter tsa mehloli ea JSON tse lumellang "ho fofa" ho emela JSON e bolokiloeng mehloling ena e le RDF, joale re ka hopola e teng ka nako e telele. SPARQL Hlahisae ka lokisoang mohlala, ho Apache Jena.

Ha re akaretsa mekhoa e 'meli ea pele, re ka re polokelo ea RDF e bonts'a ho itokisetsa ka botlalo ho kopanngoa le ho sebetsa maemong a "polokelo e ngata" (polyglot persistence). Leha ho le joalo, hoa tsebahala hore nako ena ea morao-rao e tsoile fesheneng, le ho e nkela sebaka tlang mefuta e mengata ea mehlala. Mme ho thoe'ng ka mefuta e mengata lefatšeng la polokelo ea RDF?

Ka bokhutšoanyane, ha ho joalo. Ke kopa ho fana ka sehlooho se arohaneng sehloohong sa DBMS ea mefuta e mengata, empa hona joale u ka bona hore ha ho na mefuta e mengata ea DBMS "e thehiloeng" holim'a setšoantšo sa graph (RDF e ka nkoa e le phapang ea eona) hona joale. Mabapi le mefuta e meng e menyenyane ea mefuta e mengata - tšehetso ea RDF storages ea mofuta o mong oa graph ea LPG - e tla tšohloa ho Karolo ea V.

III. OLTP vs. OLAP

Leha ho le joalo, Gartner e tšoanang o ngolahore mefuta e mengata ea mohlala ke sine qua non condition primarily for likamore tsa ho buoa DBMS. Sena sea utloahala: boemong ba "polokelo e ngata", mathata a ka sehloohong a hlaha ka transactionality.

Empa ho kae moo sekala sa OLTP-OLAP ho nang le polokelo ea RDF? Ke ne ke tla araba tjena: ha ho moo kapa mona. Ho bontša hore na li reretsoe eng, ho hlokahala khutsufatso ea boraro. E le khetho nka fana ka maikutlo OLIP - Ts'ebetso ea kelello ea inthaneteng.

Leha ho le joalo, leha ho le joalo:

  • mekhoa ea ho kopanya e sebelisitsoeng ho GraphDB le MongoDB ha se bonyane reriloeng ho sebetsana le ho ngola litaba tsa ts'ebetso;
  • Stardog e tsoela pele le ho feta le ka ho feletseng ngola bocha enjene, hape ka sepheo sa ho ntlafatsa ts'ebetso ea ho ngola.

'Me joale e re ke tsebise sebapali se secha' marakeng. Ho tsoa ho baetsi ba IBM Netezza le Amazon Redshift - AnzoGraph™. Setšoantšo se tsoang papatsong ea sehlahisoa se thehiloeng ho sona se behiloe qalong ea sengoloa. AnzoGraph e ipeha e le tharollo ea GOLAP. U rata SPARQL joang ka mesebetsi ea lifensetere? -

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

IV. RocksDB

Ka holimo e se e ntse e ho ne ho e-na le sehokelo ho phatlalatso ea Stardog 7 Beta, e boletseng hore Stardog e tla sebelisa RocksDB joalo ka sistimi ea polokelo ea mantlha - polokelo ea boleng ba bohlokoa, fereko ea Facebook ea LevelDB ea Google. Ke hobane'ng ha e le habohlokoa ho bua ka mokhoa o itseng?

Pele, ho ahlola ka Sengoloa sa Wikipedia, ha se lipolokelo tsa RDF feela tse "fetiselitsoeng" ho RocksDB. Ho na le merero ea ho sebelisa RocksDB e le enjene ea polokelo ho ArangoDB, MongoDB, MySQL le MariaDB, Cassandra.

Taba ea bobeli, merero (ke hore, eseng lihlahisoa) ea taba e lumellanang e etsoa ho RocksDB.

Mohlala, eBay e sebelisa RocksDB ho sethala bakeng sa "graph ea tsebo" ea hau. Ka tsela, ho monate ho bala: Puo ea lipotso e qalile e le mokhoa oa batho ba hōlileng lapeng, empa haufinyane tjena e fetohile ho tšoana le SPARQL.. Joalo ka motlae: ho sa tsotelehe hore na re etsa kerafo e kae ea tsebo, re ntse re fumana RDF.

Mohlala o mong - o hlahile likhoeli tse 'maloa tse fetileng Tšebeletso ea Potso ea Nalane ea Wikidata. Pele ho kenyelletso ea eona, tlhahisoleseling ea nalane ea Wikidata e ne e tlameha ho fumaneha ka MWAPI ho Mediawiki API e tloaelehileng. Ho na le ho hongata ho ka khonehang ho SPARQL e hloekileng. "Ka tlas'a hood" ho boetse ho na le RocksDB. Ka tsela, WDHQS e entse joalo, ho bonahala eka ke motho ea amehang ho kenya Freebase ho Graph ea Tsebo ea Google.

V. LPG tšehetso

E re ke u hopotse phapang e kholo lipakeng tsa li-graph tsa LPG le li-graph tsa RDF.

Ho LPG, thepa ea scalar e ka hokelloa maemong a bohale, athe ho RDF e ka hokelloa feela ho "mefuta" e haufi (empa eseng feela thepa ea scalar, empa le lihokelo tse tloaelehileng). Moeli ona oa RDF ha o bapisoa le LPG hlola mofuta o itseng oa mokhoa oa ho etsa mohlala. Mefokolo ea LPG ha e bapisoa le RDF e thata ho e hlola, empa li-graph tsa LPG li tšoana le litšoantšo tse tsoang bukeng ea Harari ho feta li-graph tsa RDF, kahoo batho ba li batla.

Ho hlakile hore mosebetsi oa "support LPG" o oela likarolong tse peli:

  1. ho etsa liphetoho ho mofuta oa RDF o etsang hore ho khonehe ho etsisa LPG e hahang ho eona;
  2. ho etsa liphetoho puong ea potso ea RDF e etsang hore ho khonehe ho fumana data ka mokhoa ona o fetotsoeng, kapa ts'ebetsong ea bokhoni ba ho botsa mohlala ona ka lipuo tse ratoang tsa LPG.

V.1. Mohlala oa data

Ho na le mekhoa e 'maloa e ka khonehang mona.

V.1.1. thepa ea singleton

Mokhoa oa sebele oa ho hokahanya RDF le LPG mohlomong ke thepa ea singleton:

  • Sebakeng sa, mohlala, leetsi :isMarriedTo li-predicate li sebelisoa :isMarriedTo1, :isMarriedTo2 joalo-joalo.
  • Li-predicate tsena li fetoha lihlooho tsa li-triplets tse ncha: :isMarriedTo1 :since "2013-09-13"^^xsd:date le ba bang.
  • Khokahano ea liketsahalo tsena tsa li-predicate tse nang le predicate e tloaelehileng e thehiloe ke triplets ea foromo :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Ho hlakile hore rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, empa nahana hore na ke hobane’ng ha u sa lokela ho ngola feela :isMarriedTo1 rdf:type :isMarriedTo.

Mosebetsi oa "support LPG" o rarolloa mona boemong ba RDFS. Qeto e joalo e hloka ho kenyelletsoa ho tse amehang standard. Liphetoho tse ling li ka hlokoa ho tsoa ho polokelo ea RDF e tšehetsang litlamorao, empa hajoale, Singleton Property e ka nkuoa e le mokhoa o mong oa ho etsa mohlala.

V.1.2. Phetoho e Etsoa ka nepo

Mekhoa e sa utloahaleng haholo e bakoa ke ho elelloa hore maemo a thepa a netefatsoa ka makhetlo a mararo. Ka ho khona ho bua ka triplets, re ka boela ra bua ka mehlala ea thepa.

E tiileng ka ho fetisisa ea mekhoa ena ke RDF*ka RDR, tsoaloa ka mpeng ea Blazegraph. Ke ho tloha qalong kgethile bakeng sa ka le AnzoGraph. Ho tiea ha mokhoa ona ho khethoa ke taba ea hore ka har'a moralo oa eona nyeheloa liphetoho tse tsamaellanang ka Semantics ea RDF. Taba, leha ho le joalo, e bonolo haholo. Ho RDF Turtle serialization, joale o ka ngola ntho e kang ena:

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

V.1.3. Mekhoa e meng

U ke ke ua khathatseha ka semantics ea molao, empa nahana feela hore li-tripos li na le li-identifiers, tseo ehlileng e leng li-URIs, 'me li qapa li-tripo tse ncha ka li-URI tsena. Ho setseng ke ho fana ka phihlello ea li-URI tsena ho SPARQL. Kahoo fihla stardog.

Ka Allegrograph ile ka tsela e mahareng. Hoa tsebahala hore li-identifiers tsa triplets ho Allegrograph ke, empa ha litšobotsi tse tharo li kengoa tšebetsong, ha li khomarele. Leha ho le joalo, esita le semantics ea molao e hole haholo. Haholo-holo, litšoaneleho tse tharo ha se li-URI, 'me boleng ba litšobotsi tsena le tsona e ka ba tsa sebele feela. Batšehetsi ba LPG ba fumana hantle seo ba se batlang. Ka sebopeho se ikhethileng sa NQX, mohlala o ts'oanang le o kaholimo oa RDF* o shebahala tjena:

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

V.2. Lipuo tsa ho botsa

Kaha u tšehetse LPG ka tsela e 'ngoe kapa e' ngoe boemong ba mohlala, u lokela ho etsa hore ho khonehe ho botsa data ka mokhoa o joalo.

  • Blazegraph bakeng sa lipotso tsa RDF * e tšehetsa SPARQL* и gremlin. Potso ea SPARQL* e shebahala tjena:

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

  • Anzograph e boetse e tšehetsa SPARQL* mme o ya tshehetsa Cypher, puo ea lipotso ho Neo4j.
  • Stardog e boloka ea eona katoloso SPARQL le hape Gremlin. U ka fumana URI ea triplet le "meta-information" ho SPARQL u sebelisa ntho e kang ena:

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

  • Allegrograph e boetse e tšehetsa ea eona katoloso SPARQL:

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

Ka tshohanyetso, GraphDB e ile ea tšehetsa Tinkerpop/Gremlin ka nako e le 'ngoe ntle le ho tšehetsa LPG, empa seo se ile sa emisa ho mofuta oa 8.0 kapa 8.1.

VI. Ho tiisa laesense

Ha ho so be le tlatsetso haufinyane mateanong a "triplestore of choice" le "open source triplestore" ea lihlopha. Mabenkele a macha a bulehileng a RDF a hole le ho ba khetho e ntle bakeng sa ts'ebeliso ea letsatsi le letsatsi, mme khoutu ea mohloli bakeng sa mabenkele a macha a mararo ao ke ratang ho a sebelisa (mohlala, AnzoGraph) e koetsoe. Ho fapana le hoo, re ka bua ka phokotso ...

Ehlile, mohloli o neng o buletsoe pele ha o koaloe, empa libaka tse ling tsa polokelo ea mehloli e bulehileng butle-butle ha li sa nkoa li tšoaneloa ke khetho. Virtuoso, e nang le khatiso ea mohloli o bulehileng, ka maikutlo a ka, e khangoa ke likokoana-hloko. Blazegraph e rekiloeng ke AWS mme e thehile motheo oa Amazon Neptune; hona joale ha ho hlake hore na bonyane ho tla ba le tokollo e le 'ngoe hape. Ho setse Jenna feela ...

Haeba mohloli o bulehileng o se oa bohlokoa haholo, empa u batla feela ho leka, joale ntho e 'ngoe le e' ngoe e boetse e fokola ho feta pele. Ka mohlala:

  • Stardog ema aba mofuta oa mahala (leha ho le joalo, nako ea teko ea e tloaelehileng e imenne habeli);
  • в Leru la GraphDB, moo o neng o ka khetha pele moralo oa motheo oa mahala, ngoliso e ncha ea basebelisi e emisitsoe.

Ka kakaretso, sebaka se ntse se sa khonehe ho motho ea tloaelehileng oa IT, nts'etsopele ea eona e fetoha lik'hamphani tse ngata.

Source: www.habr.com

Eketsa ka tlhaloso