Beth sy'n digwydd gyda storfeydd RDF nawr?

Mae'r We Semantig a Data Cysylltiedig fel gofod allanol: nid oes bywyd yno. I fynd yno am fwy neu lai o amser... Dydw i ddim yn gwybod beth ddywedon nhw wrthych chi fel plentyn mewn ymateb i “Rydw i eisiau bod yn ofodwr.” Ond gallwch chi arsylwi beth sy'n digwydd tra ar y Ddaear; Mae'n llawer haws dod yn seryddwr amatur neu hyd yn oed yn weithiwr proffesiynol.

Bydd yr erthygl yn canolbwyntio ar dueddiadau diweddar, heb fod yn hŷn na sawl mis, o fyd storio RDF. Mae'r trosiad yn y paragraff cyntaf wedi'i ysbrydoli gan y ddelwedd hysbysebu epig o dan y toriad.


Llun epig

Beth sy'n digwydd gyda storfeydd RDF nawr?

I. GraphQL ar gyfer mynediad RDF

Mae nhw'n dweudbod GraphQL yn anelu at ddod yn iaith mynediad cronfa ddata cyffredinol. Beth am y gallu i gael mynediad i RDF gan ddefnyddio GraphQL?

Allan o'r bocs darperir y cyfle hwn gan:

Os nad yw'r ystorfa yn rhoi cyfle o'r fath, gellir ei weithredu'n annibynnol trwy ysgrifennu “datryswr” priodol. Dyma beth wnaethon nhw, er enghraifft, yn y prosiect Ffrengig Twristiaeth Data. Neu ni allwch ysgrifennu unrhyw beth mwyach, ond dim ond cymryd HyperGraphQL.

O safbwynt ymlynwr uniongred y We Semantig a Data Cysylltiedig, mae hyn i gyd, wrth gwrs, yn drist, gan ei fod yn ymddangos wedi'i gynllunio ar gyfer integreiddiadau wedi'u hadeiladu o amgylch y seilo data nesaf, ac nid llwyfannau addas (siopau RDF, wrth gwrs) .

Mae'r argraffiadau o gymharu GraphQL â SPARQL yn ddeublyg.

  • Ar y naill law, mae GraphQL yn edrych fel perthynas bell i SPARQL: mae'n datrys problemau ailsamplu a lluosogrwydd ymholiadau sy'n nodweddiadol ar gyfer REST - heb hynny, mae'n debyg, ni fyddai'n bosibl ystyried iaith ymholiad, o leiaf ar gyfer y we;
  • Ar y llaw arall, mae sgema anhyblyg GraphQL yn siomedig. Yn unol â hynny, mae ei “introspectiveness” yn ymddangos yn gyfyngedig iawn o'i gymharu ag adweithedd llawn RDF. Ac nid oes analog o lwybrau eiddo, felly nid yw hyd yn oed yn glir iawn pam ei fod yn “Graff-”.

II. Addasyddion ar gyfer MongoDB

Tuedd sy'n ategu'r un blaenorol.

  • Yn Stardog nawr efallai - yn arbennig, i gyd ar yr un GraphQL - ffurfweddu mapio data MongoDB yn graffiau RDF rhithwir;
  • Mae gan Ontotext GraphDB yn ddiweddar yn caniatáu mewnosod darnau i SPARQL ar MongoDB Query.

Os byddwn yn siarad yn ehangach am addaswyr i ffynonellau JSON, sy'n caniatáu mwy neu lai “ar y hedfan” i gynrychioli'r JSON sydd wedi'i storio yn y ffynonellau hyn fel RDF, gallwn ddwyn i gof y pethau eithaf hirsefydlog SPARQL Cynhyrchu, y gellir ei addasu, er enghraifft,, i Apache Jena.

Gan grynhoi'r ddau dueddiad cyntaf, gallwn ddweud bod storfeydd RDF yn dangos parodrwydd llawn ar gyfer integreiddio a gweithredu o dan amodau “dyfalbarhad polyglot”. Mae'n hysbys, fodd bynnag, bod yr olaf hwn wedi bod allan o ffasiwn ers amser maith, ac yn cael ei ddisodli gan yn dod aml-fodel. Beth am aml-fodelu ym myd storio RDF?

Yn fyr, dim ffordd. Hoffwn gyflwyno erthygl ar wahân i bwnc DBMSs aml-fodel, ond am y tro gellir nodi nad oes DBMSs aml-fodel “yn seiliedig” ar fodel graff ar hyn o bryd (gellir ystyried RDF yn fath ohono) . Bydd rhai aml-fodelu bach - cefnogaeth storio RDF ar gyfer model graff LPG amgen - yn cael ei drafod yn adran V.

III. OLTP vs. OLAP

Fodd bynnag, yr un Gartner ysgrifennubod aml-fodel yn gyflwr sin qua non yn bennaf ar gyfer ystafelloedd llawdriniaeth DBMS. Mae hyn yn ddealladwy: mewn sefyllfa o "storio aml-newidyn", mae'r prif broblemau'n codi gyda thrafodaeth.

Ond ble mae storfeydd RDF wedi'u lleoli ar raddfa OLTP-OLAP? Byddwn yn ateb fel hyn: nid yno nac yma. I ddangos yr hyn y maent wedi'u bwriadu ar ei gyfer, mae angen rhyw drydydd talfyriad. Fel opsiwn byddwn i'n ei awgrymu OLIP — Prosesu Deallusol Ar-lein.

Fodd bynnag, o hyd:

  • nid lleiaf yw'r mecanweithiau integreiddio â MongoDB a weithredwyd yn GraphDB a fwriadwyd gweithio o gwmpas ysgrifennu materion perfformio;
  • Mae Stardog yn mynd hyd yn oed ymhellach ac yn gyfan gwbl yn ailysgrifennu injan, eto gyda'r nod o wella perfformiad cofnodi.

Nawr gadewch i mi gyflwyno chwaraewr newydd i'r farchnad. Gan grewyr IBM Netezza ac Amazon Redshift - AnzoGraph™. Cafodd llun o hysbyseb am gynnyrch yn seiliedig arno ei bostio ar ddechrau'r erthygl. Mae AnzoGraph yn gosod ei hun fel datrysiad GOLAP. Sut ydych chi'n hoffi SPARQL gyda swyddogaethau ffenestr? -

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

IV. CreigiauDB

Eisoes yn uwch roedd cyswllt i gyhoeddiad Stardog 7 Beta, a ddywedodd fod Stardog yn mynd i ddefnyddio RocksDB fel system storio sylfaenol - storfa gwerth allweddol, fforch Facebook o LevelDB Google. Pam mae'n werth siarad am duedd benodol?

Yn gyntaf, a barnu yn ol Erthygl Wicipedia, nid yn unig storfeydd RDF sy'n cael eu “trawsblannu” i RocksDB. Mae yna brosiectau i ddefnyddio RocksDB fel injan storio yn ArangoDB, MongoDB, MySQL a MariaDB, Cassandra.

Yn ail, mae prosiectau (hynny yw, nid cynhyrchion) ar bynciau perthnasol yn cael eu creu ar RocksDB.

Er enghraifft, mae eBay yn defnyddio RocksDB i mewn platfform ar gyfer eich “graff gwybodaeth”. Gyda llaw, mae'n ddoniol darllen: dechreuodd iaith yr ymholiad fel fformat cartref, ond yn fwy diweddar mae wedi bod yn trawsnewid i fod yn llawer tebycach i SPARQL. Fel yn y jôc: ni waeth faint o graff gwybodaeth a wnawn, rydym yn dal i fod â RDF yn y pen draw.

Enghraifft arall - un a ymddangosodd ychydig fisoedd yn ôl Gwasanaeth Ymholiadau Hanes Wikidata. Cyn ei gyflwyno, roedd yn rhaid cyrchu gwybodaeth hanesyddol Wikidata drwyddo MWAPI i'r API Mediawiki safonol. Nawr mae llawer yn bosibl gyda SPARQL pur. “O dan y cwfl” mae yna RocksDB hefyd. Gyda llaw, gwnaed WDHQS, mae'n ymddangos, gan y person a fewnforiodd Freebase i Graff Gwybodaeth Google.

V. cymorth LPG

Gadewch imi eich atgoffa o'r prif wahaniaeth rhwng graffiau LPG a graffiau RDF.

Mewn LPG, gellir neilltuo eiddo sgalar i achosion ymyl, tra yn RDF dim ond i “fathau” ymyl y gellir eu neilltuo (ond nid yn unig eiddo sgalar, ond hefyd cysylltiadau cyffredin). Y cyfyngiad hwn ar RDF o'i gymharu ag LPG goresgyn un neu dechneg modelu arall. Mae cyfyngiadau LPG o gymharu ag RDF yn anoddach i'w goresgyn, ond mae graffiau LPG yn debycach i luniau o werslyfr Harari na graffiau RDF, a dyna pam mae pobl eu heisiau.

Yn amlwg, mae’r dasg o “gymorth LPG” yn perthyn i ddwy ran:

  1. gwneud newidiadau i'r model RDF sy'n ei gwneud hi'n bosibl efelychu strwythurau LPG ynddo;
  2. gwneud newidiadau i iaith ymholiad yr RDF sy'n ei gwneud hi'n bosibl cael mynediad at ddata yn y model diwygiedig hwn, neu weithredu'r gallu i wneud ymholiadau i'r model hwn mewn ieithoedd ymholi LPG poblogaidd.

V.1. Model data

Mae sawl dull posibl yma.

V.1.1. Eiddo Singleton

Mae'n debyg mai'r dull mwyaf llythrennol o gysoni RDF ac LPG eiddo singleton:

  • Yn lle, er enghraifft, y rhagfynegiad :isMarriedTo defnyddir rhagfynegiadau :isMarriedTo1, :isMarriedTo2 fi t. d.
  • Yna daw'r rhagfynegiadau hyn yn destun tripledi newydd: :isMarriedTo1 :since "2013-09-13"^^xsd:date ac ati
  • Mae cysylltiad yr achosion hyn o ragfynegiadau â rhagfynegiad cyffredin yn cael ei sefydlu gan dripledi o'r ffurflen :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Yn amlwg, rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, ond meddyliwch pam na ddylech chi ysgrifennu yn unig :isMarriedTo1 rdf:type :isMarriedTo.

Mae problem “cymorth LPG” yn cael ei datrys yma ar lefel RDFS. Mae angen cynnwys penderfyniad o'r fath yn y priodol safonol. Efallai y bydd angen rhai newidiadau ar gyfer siopau RDF sy'n cefnogi canlyniadau cysylltiedig, ond am y tro, gellir meddwl am Singleton Property fel techneg fodelu arall yn unig.

V.1.2. Reification Wedi'i Wneud Iawn

Mae dulliau llai naïf yn deillio o'r sylweddoliad bod tripledi'n gallu gweld enghreifftiau o eiddo yn llwyr. Drwy allu dweud rhywbeth am dripledi, byddwn yn gallu siarad am achosion eiddo.

Y mwyaf cadarn o'r dulliau hyn yw RDF*, aka RDR, eni yn nyfnder Blazegraph. Mae o'r cychwyn cyntaf etholedig i chi ac AnzoGraph. Mae cadernid y dull yn cael ei bennu gan y ffaith ei fod o fewn ei fframwaith a gynigir newidiadau cyfatebol yn RDF Semanteg. Mae'r pwynt, fodd bynnag, yn hynod o syml. Yn cyfresoli Turtle o RDF gallwch nawr ysgrifennu rhywbeth fel hyn:

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

V.1.3. Dulliau eraill

Ni allwch drafferthu â semanteg ffurfiol, ond yn syml gymryd yn ganiataol bod gan dripledi ddynodwyr penodol, sydd, wrth gwrs, yn URI, ac yn creu tripledi newydd gyda'r URIau hyn. Y cyfan sydd ar ôl yw rhoi mynediad i'r URIau hyn yn SPARQL. Felly yn cyrraedd Stardog.

Yn Allegrograph aeth mewn ffordd ganolradd. Mae'n hysbys bod dynodwyr tripledi yn Allegrograph mae, ond wrth weithredu priodoleddau triphlyg nid ydynt yn aros allan. Fodd bynnag, mae'n dal yn bell iawn o semanteg ffurfiol. Mae'n werth nodi nad yw priodoleddau tripledi yn URIs, a dim ond llythrennol y gall gwerthoedd y priodoleddau hyn fod hefyd. Mae ymlynwyr LPG yn cael yn union yr hyn yr oeddent ei eisiau. Yn y fformat NQX a ddyfeisiwyd yn arbennig, mae enghraifft debyg i'r un uchod ar gyfer RDF* yn edrych fel hyn:

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

V.2. Ymholiad ieithoedd

Ar ôl cefnogi LPG mewn rhyw ffordd neu'i gilydd ar lefel y model, mae angen i chi ei gwneud hi'n bosibl gwneud ymholiadau am ddata mewn model o'r fath.

  • Blazegraph ar gyfer ymholiadau RDF* yn cefnogi SPARQL* и Gremlin. Mae ymholiad SPARQL* yn edrych fel hyn:

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

  • Mae anzograff hefyd yn cefnogi SPARQL* ac yn mynd i gefnogi cypher, iaith ymholiad yn Neo4j.
  • Mae Stardog yn cefnogi ei rai ei hun ehangu SPARQL a eto Gremlin. Gallwch gael yr URI tripled a “meta-wybodaeth” yn SPARQL gan ddefnyddio rhywbeth fel hyn:

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

  • Mae Allegrograph hefyd yn cefnogi ei rai ei hun ehangu SPARQL:

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

Gyda llaw, roedd GraphDB ar un adeg yn cefnogi Tinkerpop/Gremlin heb gefnogi LPG, ond daeth hyn i ben yn fersiwn 8.0 neu 8.1.

VI. Tynhau trwyddedau

Ni fu unrhyw ychwanegiadau diweddar i groestoriad y setiau “siop driphlyg o ddewis” a “siop driphlyg ffynhonnell agored”. Mae'r siopau RDF ffynhonnell agored newydd ymhell o fod yn ddewis da i'w defnyddio bob dydd, ac mae'r siopau triphlyg newydd yr hoffwn eu defnyddio (fel AnzoGraph) yn ffynhonnell gaeedig. Yn hytrach, gallwn siarad am ostyngiadau ...

Wrth gwrs, nid yw ffynhonnell agored wedi'i chau yn y gorffennol, ond yn araf bach nid yw rhai ystorfeydd ffynhonnell agored yn cael eu hystyried yn werth eu dewis mwyach. Mae Virtuoso, sydd ag argraffiad ffynhonnell agored,, yn fy marn i, yn boddi mewn chwilod. Prynwyd Blazegraph gan AWS ac roedd yn sail i Amazon Neptune; nawr nid yw'n glir a fydd o leiaf un datganiad arall. Dim ond Jena sydd ar ôl...

Os nad yw ffynhonnell agored yn bwysig iawn, ond rydych chi am roi cynnig arni, yna mae popeth hefyd yn llai rosy nag o'r blaen. Er enghraifft:

  • Stardog yn stopio dosbarthu'r fersiwn am ddim (fodd bynnag, mae cyfnod prawf y fersiwn arferol wedi dyblu);
  • в Cwmwl GraphDB, lle o'r blaen y gallech ddewis cynllun sylfaenol am ddim, mae cofrestriadau defnyddwyr newydd wedi'u hatal.

Yn gyffredinol, ar gyfer y person TG cyffredin, mae gofod yn dod yn fwyfwy anhygyrch; mae ei ddatblygiad yn dod yn llawer o gorfforaethau.

Ffynhonnell: hab.com

Ychwanegu sylw