He aha kei te haere ki nga putunga RDF inaianei?

Ko te Tukutuku Semantic me te Raraunga Hononga he rite ki te waahi o waho: kaore he oranga i reira. Ki te haere ki reira mo te wa roa ake, iti ake ranei... Kaore au i te mohio he aha ta ratou i korero ki a koe i a koe i te wa e tamariki ana hei whakautu mo "Kei te pirangi ahau ki te noho hei kairangirangi." Engari ka taea e koe te kite i nga mea e tupu ana i runga i te whenua; He maamaa ake te noho hei tohunga arorangi runaruna, hei tohunga ngaio ranei.

Ka aro atu te tuhinga ki nga ahuatanga o te ao o te rokiroki RDF tata nei, kaua e neke ake i te maha o nga marama. Ko te kupu whakarite i te kowae tuatahi he mea whakaawe e te ahua panui nui-nui i raro i te tapahi.


Pikitia hautoa

He aha kei te haere ki nga putunga RDF inaianei?

I. GraphQL mo te uru RDF

E ki ana ratoue whai ana a GraphQL ki te noho hei reo urunga raraunga mo te ao. He aha te kaha ki te uru atu ki te RDF ma te whakamahi i te GraphQL?

I waho o te pouaka tenei whai waahi ka tukuna e:

Mena karekau he waahi penei i te putunga, ka taea te whakatinana takitahi ma te tuhi i tetahi "whakaoti" e tika ana. Koinei ta ratou mahi, hei tauira, i roto i te kaupapa French RaraungaTourisme. Kaore ranei e taea e koe te tuhi i tetahi mea, engari tango noa HyperGraphQL.

Mai i te tirohanga a te tangata piripono o te Paetukutuku Semantic me te Raraunga Hononga, he mea pouri tenei katoa, na te mea kua hangaia mo nga whakaurunga i hangaia i te taha o te silo raraunga e whai ake nei, kaore i te pai nga papaa (toa RDF toa, o te akoranga) .

Ko nga whakaaro mai i te whakataurite i te GraphQL me te SPARQL e rua nga waahanga.

  • I tetahi taha, he rite te ahua o GraphQL ki te whanaunga tawhiti o SPARQL: ka whakatauhia e ia nga raru o te whakatauira me te maha o nga patai he ahua mo REST - me te kore e taea, kare pea e taea te whakaaro. reo patai, i te iti rawa mo te paetukutuku;
  • I tetahi atu taha, he tino pouri te kaupapa pakari o GraphQL. No reira, he iti noa te ahua o tana "whakaaroaro" ki te ahua o te RDF. A karekau he taurite mo nga huarahi rawa, no reira kaore i te tino marama he aha te take i kiia ai he "Kauwhata-".

II. Nga urutau mo MongoDB

He ia e hono ana ki tera o mua.

  • Kei Stardog inaianei pea - ina koa, katoa i runga i te GraphQL kotahi - whirihorahia te mapi o nga raraunga MongoDB ki nga kauwhata RDF mariko;
  • Ontotext GraphDB kua tata nei āhei te reira kōkuhu kongakonga ki te SPARQL ki te Uiui MongoDB.

Mena ka nui ake te korero mo nga taapiri ki nga puna JSON, e tuku ana kia nui ake, iti iho ranei "i runga i te rere" hei tohu i te JSON kei ​​roto i enei puna hei RDF, ka mahara tatou ki te mea kua roa. Hanga SPARQL, ka taea te whakatika, hei tauira, ki a Apache Jena.

Ko te whakarapopototanga o nga ahuatanga tuatahi e rua, ka taea e tatou te kii ko nga rokiroki RDF e whakaatu ana i te tino rite mo te whakauru me te mahi i roto i nga ahuatanga o te "polyglot persistence". E mohiotia ana, kua roa te ahua o tenei o muri nei, a kei te whakakapihia e kei te haere mai tauira-maha. Me pehea te whakatauira maha i te ao rokiroki RDF?

I te poto, kaore he huarahi. E hiahia ana ahau ki te whakatapu i tetahi tuhinga motuhake mo te kaupapa o nga DBMS maha-tauira, engari mo tenei wa ka taea te tohu i tenei wa kaore he DBMS maha-tauira "i runga" i runga i te tauira kauwhata (ka taea te whakaaro he momo o te RDF) . Ko etahi tauira-maha iti - tautoko rokiroki RDF mo tetahi tauira kauwhata LPG rereke - ka korerohia i roto wahanga V.

III. OLTP vs. OLAP

Heoi, ko taua Gartner tohi iaKo taua tauira maha he here qua non mo te tuatahi ruma whakahaere DBMS. He maamaa tenei: i roto i te ahuatanga o te "rokiroki maha", ka puta ake nga raru nui me te whakawhitinga.

Engari kei hea nga rokiroki RDF kei runga i te tauine OLTP-OLAP? Ko taku kupu tenei e whakahoki atu ai: kahore i konei, i konei ranei. Hei tohu he aha te tikanga mo ratou, me hiahia etahi kupu whakapoto tuatoru. Hei whiringa ka whakaaro ahau OLIP — Tukatuka Hinengaro Online.

Heoi ano:

  • ko nga tikanga whakauru me MongoDB i whakatinanahia ki GraphDB ehara i te mea iti rawa kua whakaritea ki te mahi huri noa i te tuhi i nga take mahi;
  • Kei te haere tonu a Stardog tuhi ano miihini, ano me te whainga ki te whakapai ake i nga mahi rekoata.

Inaianei me whakauru e au tetahi kaitakaro hou ki te maakete. Mai i nga kaihanga o IBM Netezza me Amazon Redshift - AnzoGraph™. I whakairihia he pikitia mai i te panui mo tetahi hua i te timatanga o te tuhinga. Ka noho a AnzoGraph hei otinga GOLAP. He pehea to pai ki a SPARQL me nga mahi matapihi? —

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

IV. RocksDB

Kua teitei ake he hononga ki te panuitanga a Stardog 7 Beta, i kii ka whakamahia e Stardog te RocksDB hei punaha rokiroki o raro - he toa uara nui, he marau Facebook o te LevelDB a Google. He aha i pai ai te korero mo tetahi ahuatanga?

Tuatahi, ma te whakawa Tuhinga Wikipedia, ehara i te mea ko nga rokiroki RDF anake ka "whakawhitia" ki RocksDB. He kaupapa hei whakamahi i a RocksDB hei miihini rokiroki i ArangoDB, MongoDB, MySQL me MariaDB, Cassandra.

Tuarua, ko nga kaupapa (ara, ehara i nga hua) i runga i nga kaupapa e tika ana ka hangaia i runga i te RocksDB.

Hei tauira, ka whakamahia e eBay te RocksDB i roto he turanga mo to "kauwhata matauranga". Ma te ara, he rorirori te panui: i timata te reo patai hei whakatakotoranga i tupu ake i te kainga, engari no na tata nei kua huri kia rite ki te SPARQL. Pērā i roto i te katakata: ahakoa pehea te nui o te kauwhata matauranga, ka mutu tonu tatou ki te RDF.

Ko tetahi atu tauira - tetahi i puta i etahi marama ki muri Wikidata History Uiui Ratonga. I mua i tana whakaurunga, me uru atu nga korero o mua a Wikidata MWAPI ki te API Mediawiki paerewa. Inaianei he maha nga mea ka taea ma te SPARQL parakore. "I raro i te hood" kei reira ano a RocksDB. Ma te ara, i hangaia te WDHQS, te ahua nei, na te tangata nana i kawemai te Freebase ki roto i te Kauwhata Matauranga o Google.

tautoko V. LPG

Me whakamahara ahau ki a koe mo te rereketanga nui i waenga i nga kauwhata LPG me nga kauwhata RDF.

I roto i te LPG, ka taea te tautapa i nga taonga scalar ki nga tauira taha, i roto i te RDF ka taea anake te tautapa ki nga "momo" taha (engari ehara i te mea ko nga taonga scalar anake, engari ko nga hononga noa). Ko tenei herenga o te RDF ka whakaritea ki te LPG hinga tetahi, tetahi atu tikanga whakatauira. Ko nga herenga o te LPG i whakaritea ki te RDF he uaua ake ki te hinga, engari he rite tonu nga kauwhata LPG ki nga pikitia mai i te pukapuka pukapuka Harari i nga kauwhata RDF, no reira te hiahia o te tangata.

Ma te mohio, ko te mahi "tautoko LPG" ka taka ki nga waahanga e rua:

  1. te whakarereke i te tauira RDF e taea ai te whakataurite i nga hanganga LPG kei roto;
  2. he whakarereketanga ki te reo uiui RDF e taea ai te uru ki nga raraunga i tenei tauira kua whakarereketia, te whakamahi ranei i te kaha ki te hanga patai ki tenei tauira i roto i nga reo uiui LPG rongonui.

V.1. Tauira Raraunga

He maha nga huarahi ka taea i konei.

V.1.1. Taonga Singleton

Ko te huarahi tino tika ki te whakakotahi i te RDF me te LPG pea taonga singleton:

  • Engari, hei tauira, ko te tohu :isMarriedTo ka whakamahia nga tohu :isMarriedTo1, :isMarriedTo2 me te pera.
  • Ka noho enei tohu hei kaupapa mo nga taarua hou: :isMarriedTo1 :since "2013-09-13"^^xsd:date me etahi atu.
  • Ko te hononga o enei tauira o nga tohu ki tetahi tohu noa ka whakatauhia e nga taarua o te puka :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • E tika ana, rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, engari whakaarohia he aha koe e kore ai e tuhi noa :isMarriedTo1 rdf:type :isMarriedTo.

Ko te raruraru o te "tautoko LPG" ka whakatauhia i konei i te taumata RDFS. Ko taua whakatau me whakauru ki roto i nga mea e tika ana paerewa. Ka hiahiatia etahi whakarereketanga mo nga toa RDF e tautoko ana i te taapiri i nga hua, engari mo tenei wa, ka taea te whakaaro ko Singleton Property tetahi atu tikanga whakatauira.

V.1.2. Kua Mahi Tika

He iti ake nga huarahi poauau i ahu mai i te mohiotanga ko nga ahuatanga o nga rawa ka tino kitea e nga taarua. Ma te kaha ki te korero mo nga taarua, ka taea e tatou te korero mo nga waahi taonga.

Ko te tino pakari o enei huarahi RDF*, ara RDR, whanau i te hohonutanga o Blazegraph. No te timatanga pootihia mo koe me AnzoGraph. Ko te pakaritanga o te huarahi ka whakatauhia e te meka kei roto i tana anga tuku huringa ōrite i roto i RDF Semantics. Ko te kaupapa, engari, he tino ngawari. I roto i te raupapa Honu o RDF ka taea e koe te tuhi penei:

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

V.1.3. Ētahi atu huarahi

Kare e taea e koe te whakararuraru i nga kupu okawa, engari me whakaaro noa kei a koe etahi tohu tohu, ara, he URI, me te hanga i nga taarua hou me enei URI. Ko nga mea e toe ana ko te tuku uru ki enei URI i SPARQL. Na ka tae mai Stardog.

Kei te Allegrograph haere i roto i te ara takawaenga. E mohiotia ana ko nga kaitautuhi takitoru kei Allegrograph ko, engari ki te whakatinana i nga huanga takitoru kare e u ki waho. Heoi, kei tawhiti tonu mai i nga kupu okawa. Ko te mea nui ko nga huanga takitoru ehara i te URI, a ko nga uara o enei huanga ka taea anake te tuhi. Ka whiwhi nga kaiwhaiwhai LPG i ta raatau e hiahia ana. I roto i te whakatakotoranga NQX i hangaia motuhake, he penei te ahua o te tauira ki runga ake mo RDF*:

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

V.2. Nga reo patai

I te tautoko i te LPG i tetahi huarahi, i tetahi atu ranei i te taumata tauira, me whai waahi koe ki te tuku patai mo nga raraunga i roto i taua tauira.

  • Ko te Blazegraph mo nga patai RDF* e tautoko ana SPARQL* и Gremlin. He penei te ahua o te patai SPARQL*:

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

  • Ka tautoko hoki a Anzograph SPARQL* a ka tautoko Kaiapapa, he reo patai i Neo4j.
  • Kei te tautoko a Stardog i tana ake whakanui SPARQL me ano Keremulin. Ka taea e koe te tiki i te triplet URI me te "meta-information" i roto i te SPARQL ma te whakamahi i tetahi mea penei:

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

  • Ka tautokohia e Allegrograph tana ake whakanui SPARQL:

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

Ma te ara, i tautoko a GraphDB i a Tinkerpop/Gremlin me te kore tautoko i te LPG, engari ka mutu tenei i te putanga 8.0, 8.1 ranei.

VI. Te whakamau i nga raihana

Karekau he taapiringa o na tata nei ki te kupenga o nga huinga "tokotoru o nga whiringa" me nga huinga "tokotoru puna tuwhera". Ko nga toa RDF puna tuwhera hou he waahi tawhiti mai i te waahi pai mo te whakamahi i ia ra, a ko nga toa toru hou e hiahia ana ahau ki te whakamahi (penei i te AnzoGraph) he puna kati. Engari, ka taea e taatau te korero mo nga hekenga ...

Ae ra, kaore ano kia tutakina te puna tuwhera i nga wa o mua, engari ko etahi o nga putunga puna tuwhera kua kore e kitea he pai ki te whiriwhiri. Ko Virtuoso, kei a ia he putanga tuwhera, ki taku whakaaro, kei te toremi i roto i nga pepeke. I hokona a Blazegraph e AWS me te hanga i te turanga o Amazon Neptune; Inaianei kaore i te maarama mena ka tukuna ano kia kotahi atu. Ko Jena anake kei te toe...

Mena ehara i te mea tino nui te puna tuwhera, engari ka hiahia noa koe ki te whakamatau, katahi ka iti ake te rosy o nga mea katoa i mua. Hei tauira:

  • Stardog ka mutu tohaina te putanga kore utu (heoi, kua ruarua te wa whakamatautau o te putanga auau);
  • в Kapua GraphDB, i mua ka taea e koe te whiriwhiri i tetahi mahere taketake kore utu, kua whakatarewahia nga rehitatanga kaiwhakamahi hou.

I te nuinga o te waa, mo te tangata IT toharite, kei te piki haere te waahi; ko tana whanaketanga kei te piki haere te nuinga o nga umanga.

Source: will.com

Tāpiri i te kōrero