Kini n ṣẹlẹ pẹlu ibi ipamọ RDF ni bayi?

Oju opo wẹẹbu Semantic ati Data ti o sopọ dabi aaye ita: ko si igbesi aye nibẹ. Lati lọ sibẹ fun igba pipẹ diẹ sii tabi kere si… Emi ko mọ ohun ti wọn sọ fun ọ bi ọmọde ni idahun si “Mo fẹ lati di astronaut.” Ṣugbọn o le ṣe akiyesi ohun ti n ṣẹlẹ lakoko ti o wa lori Earth; O rọrun pupọ lati di astronomer magbowo tabi paapaa alamọja.

Nkan naa yoo dojukọ aipẹ, ko dagba ju awọn oṣu pupọ lọ, awọn aṣa lati agbaye ti ibi ipamọ RDF. Apejuwe ninu paragira akọkọ jẹ atilẹyin nipasẹ aworan ipolowo apọju labẹ gige.


Aworan apọju

Kini n ṣẹlẹ pẹlu ibi ipamọ RDF ni bayi?

I. GraphQL fun wiwọle RDF

Wọn sọti GraphQL ni ero lati di ede wiwọle data gbogbo agbaye. Kini nipa agbara lati wọle si RDF nipa lilo GraphQL?

Lati inu apoti anfani yii ni a pese nipasẹ:

Ti ibi ipamọ ko ba pese iru anfani, o le ṣe imuse ni ominira nipa kikọ "olupinnu" ti o yẹ. Eyi ni ohun ti wọn ṣe, fun apẹẹrẹ, ninu iṣẹ akanṣe Faranse DataTourisme. Tabi o le ko to gun kọ ohunkohun, sugbon o kan ya HyperGraphQL.

Lati oju wiwo ti olutọpa orthodox ti oju opo wẹẹbu Semantic ati data ti o sopọ, gbogbo eyi, nitorinaa, jẹ ibanujẹ, nitori o dabi apẹrẹ fun awọn iṣọpọ ti a ṣe ni ayika silo data atẹle, ati kii ṣe awọn iru ẹrọ ti o yẹ (awọn ile itaja RDF, dajudaju) .

Awọn iwunilori lati fiwera GraphQL pẹlu SPARQL jẹ ilọpo meji.

  • Ni apa kan, GraphQL dabi ibatan ti o jinna ti SPARQL: o yanju awọn iṣoro ti iṣatunṣe ati ọpọlọpọ awọn ibeere ti o jẹ aṣoju fun REST - laisi eyiti, boya, kii yoo ṣee ṣe lati gbero ede ibeere, o kere ju fun oju opo wẹẹbu;
  • Ni ida keji, ero lile ti GraphQL jẹ itaniloju. Nitorinaa, “introspectiveness” rẹ dabi opin pupọ ni akawe si ifasilẹ kikun ti RDF. Ati pe ko si afọwọṣe ti awọn ipa-ọna ohun-ini, nitorinaa ko paapaa ṣe alaye idi ti o jẹ “Ayaworan-”.

II. Awọn oluyipada fun MongoDB

A aṣa tobaramu si ti tẹlẹ ọkan.

  • Ni Stardog bayi ṣeeṣe - ni pataki, gbogbo lori GraphQL kanna - tunto aworan agbaye ti data MongoDB sinu awọn aworan RDF foju;
  • Ontotext GraphDB ti laipe ti o faye gba fi awọn ajẹkù sinu SPARQL lori ibeere MongoDB.

Ti a ba sọrọ ni gbooro sii nipa awọn oluyipada si awọn orisun JSON, eyiti o gba laaye diẹ sii tabi kere si “lori fo” lati ṣe aṣoju JSON ti o fipamọ sinu awọn orisun wọnyi bi RDF, a le ranti igba pipẹ ti o duro de. SPARQL inaeyi ti o le ṣe atunṣe, fun apẹẹrẹ, to Apache Jena.

Ni akopọ awọn aṣa meji akọkọ, a le sọ pe awọn ibi ipamọ RDF ṣe afihan imurasilẹ ni kikun fun isọpọ ati iṣẹ ni awọn ipo ti “itẹramọsi polyglot”. O ti wa ni mo, sibẹsibẹ, wipe yi igbehin ti gun ti jade ti njagun, ati ki o ti wa ni rọpo nipasẹ o bọ olona-awoṣe. Kini nipa ọpọlọpọ awoṣe ni agbaye ti ibi ipamọ RDF?

Ni kukuru, ko si ọna. Emi yoo fẹ lati yasọtọ nkan ti o yatọ si koko-ọrọ ti awọn DBMS awoṣe pupọ, ṣugbọn fun bayi o le ṣe akiyesi pe lọwọlọwọ ko si awọn DBMS awoṣe-ọpọlọpọ “ti o da” lori awoṣe ayaworan kan (RDF le jẹ iru rẹ) . Diẹ ninu awọn awoṣe olona-pupọ kekere – atilẹyin ibi ipamọ RDF fun awoṣe ayaworan LPG yiyan – ni yoo jiroro ni apakan V.

III. OLTP la. OLAP

Sibẹsibẹ, kanna Gartner o Levinti multimodel ni a sine qua non majemu nipataki fun awọn yara iṣẹ DBMS. Eyi jẹ oye: ni ipo ti "ibi ipamọ pupọ", awọn iṣoro akọkọ dide pẹlu iṣowo.

Ṣugbọn nibo ni awọn ibi ipamọ RDF wa lori iwọn OLTP-OLAP? Emi yoo dahun ni ọna yi: bẹni nibẹ tabi nibi. Lati ṣe afihan ohun ti wọn pinnu fun, diẹ ninu abbreviation kẹta ni a nilo. Bi aṣayan Emi yoo daba OLIP - Online Intellectual Processing.

Sibẹsibẹ, sibẹsibẹ:

  • awọn ọna isọpọ pẹlu MongoDB ti a ṣe ni GraphDB kii kere ti a ti pinnu lati ṣiṣẹ ni ayika kikọ awọn ọran iṣẹ;
  • Stardog lọ paapaa siwaju ati patapata rewrites engine, lẹẹkansi pẹlu ibi-afẹde ti ilọsiwaju iṣẹ ṣiṣe gbigbasilẹ.

Bayi jẹ ki n ṣafihan ẹrọ orin tuntun si ọja naa. Lati ọdọ awọn olupilẹṣẹ ti IBM Netezza ati Amazon Redshift - AnzoGraph™. Aworan kan lati ipolowo ọja kan ti o da lori rẹ ni a fiweranṣẹ ni ibẹrẹ nkan naa. AnzoGraph gbe ararẹ bi ojutu GOLAP kan. Bawo ni o ṣe fẹran SPARQL pẹlu awọn iṣẹ window? -

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

IV. RocksDB

Tẹlẹ ti o ga ọna asopọ kan wa si ikede ti Stardog 7 Beta, eyiti o sọ pe Stardog yoo lo RocksDB gẹgẹbi eto ibi ipamọ ti o wa labẹ - ile-itaja iye-bọtini, orita Facebook kan ti Google's LevelDB. Kini idi ti o tọ lati sọrọ nipa aṣa kan?

Ni akọkọ, ṣe idajọ nipasẹ Wikipedia article, kii ṣe awọn ibi ipamọ RDF nikan ni a "yipo" si RocksDB. Awọn iṣẹ akanṣe wa lati lo RocksDB bi ẹrọ ipamọ ni ArangoDB, MongoDB, MySQL ati MariaDB, Cassandra.

Ni ẹẹkeji, awọn iṣẹ akanṣe (iyẹn, kii ṣe awọn ọja) lori awọn akọle ti o yẹ ni a ṣẹda lori RocksDB.

Fun apẹẹrẹ, eBay nlo RocksDB ni Syeed fun "aworan imọ" rẹ. Nipa ọna, o jẹ ẹrin lati ka: ede ibeere bẹrẹ bi ọna kika ile, ṣugbọn diẹ laipẹ o ti n yipada lati jẹ pupọ diẹ sii bii SPARQL. Bi ninu awada: laibikita iye iwọn imọ ti a ṣe, a tun pari pẹlu RDF.

Apẹẹrẹ miiran - ọkan ti o han ni awọn oṣu diẹ sẹhin Iṣẹ Ìbéèrè Ìtàn Wikidata. Ṣaaju iṣafihan rẹ, alaye itan Wikidata ni lati wọle nipasẹ MWAPI si Mediawiki boṣewa API. Bayi pupọ ṣee ṣe pẹlu SPARQL mimọ. "Labẹ Hood" tun wa RocksDB. Nipa ọna, WDHQS ni a ṣe, o dabi pe, nipasẹ ẹni ti o gbe Freebase wọle sinu Google Knowledge Graph.

V. LPG atilẹyin

Jẹ ki n ran ọ leti iyatọ akọkọ laarin awọn aworan LPG ati awọn aworan RDF.

Ni LPG, awọn ohun-ini scalar le jẹ sọtọ si awọn apẹẹrẹ eti, lakoko ti o wa ni RDF wọn le ṣe sọtọ si eti “awọn oriṣi” (ṣugbọn kii ṣe awọn ohun-ini iwọn nikan, ṣugbọn awọn asopọ lasan). Yi aropin ti RDF akawe si LPG bori ọkan tabi miiran modeli ilana. Awọn idiwọn LPG ti a fiwe si RDF jẹ iṣoro diẹ sii lati bori, ṣugbọn awọn aworan LPG jẹ diẹ sii bi awọn aworan lati inu iwe-ẹkọ Harari ju awọn aworan RDF, eyiti o jẹ idi ti awọn eniyan fẹ wọn.

O han ni, iṣẹ-ṣiṣe ti “atilẹyin LPG” ṣubu si awọn apakan meji:

  1. ṣiṣe awọn ayipada si awoṣe RDF ti o jẹ ki o ṣee ṣe lati ṣe afiwe awọn ẹya LPG ninu rẹ;
  2. ṣiṣe awọn ayipada si ede ibeere RDF ti o jẹ ki o ṣee ṣe lati wọle si data ni awoṣe ti a ṣe atunṣe, tabi imuse agbara lati ṣe awọn ibeere si awoṣe yii ni awọn ede ibeere LPG olokiki.

V.1. Awoṣe data

Awọn ọna ti o ṣeeṣe pupọ wa nibi.

V.1.1. Ohun-ini Singleton

Ọna ti o ga julọ julọ lati ṣe ibamu RDF ati LPG jẹ boya singleton ohun ini:

  • Dipo, fun apẹẹrẹ, predicate :isMarriedTo awọn asọtẹlẹ ti wa ni lilo :isMarriedTo1, :isMarriedTo2 abbl.
  • Awọn asọtẹlẹ wọnyi lẹhinna di koko-ọrọ ti awọn mẹta mẹta: :isMarriedTo1 :since "2013-09-13"^^xsd:date abbl.
  • Isopọ ti awọn iṣẹlẹ wọnyi ti awọn asọtẹlẹ pẹlu asọtẹlẹ ti o wọpọ jẹ idasilẹ nipasẹ awọn mẹta ti fọọmu naa :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • O han gbangba pe rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, ṣugbọn ronu nipa idi ti o ko yẹ ki o kọ nikan :isMarriedTo1 rdf:type :isMarriedTo.

Iṣoro ti “atilẹyin LPG” ni ipinnu nibi ni ipele RDFS. Iru ipinnu bẹ nilo ifisi ni awọn ti o yẹ boṣewa. Diẹ ninu awọn ayipada le nilo fun awọn ile itaja RDF ti o ṣe atilẹyin awọn abajade ti o somọ, ṣugbọn fun bayi, Ohun-ini Singleton ni a le ronu bi ilana awoṣe awoṣe miiran.

V.1.2. Atunse Ti ṣee ọtun

Awọn isunmọ alaigbọran ti o kere ju lati inu riri pe awọn iṣẹlẹ ohun-ini jẹ isunmọ ni kikun nipasẹ awọn mẹta. Nipa ni anfani lati sọ nkankan nipa meteta, a yoo ni anfani lati soro nipa ohun ini instances.

Awọn julọ logan ti awọn wọnyi yonuso ni RDF*, aka RDR, bíbí ninu ogbun ti Blazegraph. O wa lati ibẹrẹ dibo fun ara rẹ ati AnzoGraph. Iduroṣinṣin ti ọna naa jẹ ipinnu nipasẹ otitọ pe laarin ilana rẹ ti a nṣe ti o baamu ayipada ninu Itumọ RDF. Ojuami, sibẹsibẹ, jẹ lalailopinpin o rọrun. Ninu isọdọtun Turtle ti RDF o le kọ nkan bayi bi eyi:

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

V.1.3. Awọn ọna miiran

O ko le ṣe aibalẹ pẹlu awọn atunmọ iṣe deede, ṣugbọn ro pe awọn mẹta ni awọn idamọ kan, eyiti o jẹ, dajudaju, URI, ati ṣẹda awọn mẹta mẹta pẹlu awọn URI wọnyi. Gbogbo ohun ti o ku ni lati fun ni iraye si awọn URI wọnyi ni SPARQL. Nitorina de Stardog.

Ninu Allegrograph lọ ni ọna agbedemeji. O ti wa ni mo wipe triplet idamo ni Allegrograph ni, ṣugbọn nigba imuse awọn abuda mẹta wọn ko duro jade. Bibẹẹkọ, o tun jinna pupọ si awọn atumọ ti iṣe. O jẹ akiyesi pe awọn abuda mẹta kii ṣe URI, ati awọn iye ti awọn abuda wọnyi tun le jẹ awọn ọrọ gangan nikan. Awọn alamọja LPG gba deede ohun ti wọn fẹ. Ni ọna kika NQX ti a ṣe ni pataki, apẹẹrẹ ti o jọra si eyi ti o wa loke fun RDF * dabi eyi:

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

V.2. Awọn ede ibeere

Ni atilẹyin LPG ni ọna kan tabi omiiran ni ipele awoṣe, o nilo lati jẹ ki o ṣee ṣe lati ṣe awọn ibeere lori data ni iru awoṣe kan.

  • Blazegraph fun awọn atilẹyin ibeere RDF SPARQL* и Gremlin. Ibeere SPARQL* dabi eyi:

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

  • Anzograph tun ṣe atilẹyin SPARQL* ati pe yoo ṣe atilẹyin Cypher, ede ibeere ni Neo4j.
  • Stardog ṣe atilẹyin tirẹ imugboroosi SPARQL ati lẹẹkansi Gremlin. O le gba URI meteta ati “alaye-meta” ni SPARQL ni lilo nkan bii eyi:

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

  • Allegrograph tun ṣe atilẹyin tirẹ imugboroosi SPARQL:

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

Nipa ọna, GraphDB ni akoko kan ṣe atilẹyin Tinkerpop/Gremlin laisi atilẹyin LPG, ṣugbọn eyi duro ni ẹya 8.0 tabi 8.1.

VI. Tightening ti awọn iwe-aṣẹ

Ko si awọn afikun aipẹ si ikorita ti “itaja mẹta ti yiyan” ati awọn eto “ipilẹṣẹ mẹta ti orisun ṣiṣi”. Awọn ile itaja RDF orisun ṣiṣi tuntun jẹ ọna pipẹ lati jẹ yiyan ti o dara fun lilo ojoojumọ, ati awọn ile itaja meteta tuntun ti Emi yoo fẹ lati lo (bii AnzoGraph) jẹ orisun pipade. Dipo, a le sọrọ nipa awọn idinku ...

Nitoribẹẹ, orisun ṣiṣi ko ti wa ni pipade ni iṣaaju, ṣugbọn diẹ ninu awọn ibi ipamọ orisun ṣiṣi ni a ko rii laiyara mọ bi iwulo yiyan. Virtuoso, eyiti o ni ẹda orisun ṣiṣi, jẹ, ni ero mi, rì ninu awọn idun. Blazegraph ti ra nipasẹ AWS o si ṣe ipilẹ ti Amazon Neptune; bayi o jẹ koyewa boya nibẹ ni yio je ni o kere kan diẹ itusilẹ. Jena nikan lo ku...

Ti orisun ṣiṣi ko ba ṣe pataki pupọ, ṣugbọn o kan fẹ gbiyanju rẹ, lẹhinna ohun gbogbo tun kere ju rosy ju ti iṣaaju lọ. Fun apere:

  • Stardog duro kaakiri ẹya ọfẹ (sibẹsibẹ, akoko idanwo ti ẹya deede ti ilọpo meji);
  • в Awọsanma GraphDB, nibiti o ti le yan ero ipilẹ ọfẹ, awọn iforukọsilẹ olumulo titun ti daduro.

Ni gbogbogbo, fun apapọ eniyan IT, aaye n di diẹ sii ati siwaju sii inira; idagbasoke rẹ ti di pupọ ti awọn ile-iṣẹ.

orisun: www.habr.com

Fi ọrọìwòye kun