Unsa ang nahitabo sa mga repositoryo sa RDF karon?

Ang Semantic Web ug Linked Data sama sa outer space: walay kinabuhi didto. Aron makaadto didto sulod sa mas daghan o dili kaayo taas nga yugto sa panahon... Wala ko kahibalo kung unsa ang ilang gisulti kanimo isip usa ka bata isip tubag sa "Gusto kong mahimong astronaut." Apan mahimo nimong maobserbahan kung unsa ang nahitabo samtang dinhi sa Yuta; Mas dali nga mahimong usa ka amateur astronomer o bisan usa ka propesyonal.

Ang artikulo mag-focus sa bag-o, dili mas tigulang sa pipila ka bulan, mga uso gikan sa kalibutan sa pagtipig sa RDF. Ang metapora sa una nga parapo giinspirar sa epiko nga kadako nga imahe sa advertising sa ilawom sa pagputol.


Epiko nga hulagway

Unsa ang nahitabo sa mga repositoryo sa RDF karon?

I. GraphQL para sa RDF access

Ingon nilanga ang GraphQL nagtinguha nga mahimong unibersal nga database access nga pinulongan. Unsa man ang bahin sa abilidad sa pag-access sa RDF gamit ang GraphQL?

Gawas sa kahon kini nga oportunidad gihatag pinaagi sa:

Kung ang repository wala maghatag sa ingon nga oportunidad, mahimo kini nga ipatuman nga independente pinaagi sa pagsulat sa usa ka angay nga "resolver". Kini ang ilang gibuhat, pananglitan, sa proyekto sa Pransya DataTourisme. O dili ka na makasulat bisan unsa, apan pagkuha na lang HyperGraphQL.

Gikan sa punto sa panglantaw sa usa ka orthodox adherent sa Semantic Web ug Linked Data, kining tanan, siyempre, makapasubo, tungod kay kini daw gidisenyo alang sa mga panagsama nga gitukod sa palibot sa sunod nga data silo, ug dili angay nga mga plataporma (RDF tindahan, siyempre) .

Ang mga impresyon gikan sa pagtandi sa GraphQL sa SPARQL duha ka pilo.

  • Sa usa ka bahin, ang GraphQL morag usa ka layo nga paryente sa SPARQL: kini nagsulbad sa mga problema sa resampling ug multiplicity sa mga pangutana nga kasagaran alang sa REST - kung wala kini, tingali, dili posible nga ikonsiderar. pangutana nga pinulongan, labing menos alang sa web;
  • Sa laing bahin, ang estrikto nga schema sa GraphQL makapahigawad. Tungod niini, ang "introspectiveness" niini daw limitado kaayo kon itandi sa hingpit nga reflexivity sa RDF. Ug wala'y analogue sa mga agianan sa kabtangan, mao nga dili kaayo klaro kung ngano nga kini "Graph-".

II. Mga adaptor alang sa MongoDB

Usa ka uso nga komplementaryo sa nauna.

  • Sa Stardog karon lagmit - sa partikular, tanan sa parehas nga GraphQL - i-configure ang pagmapa sa datos sa MongoDB ngadto sa virtual nga RDF graphs;
  • Ang Ontotext GraphDB bag-o lang kini nagtugot isulod ang mga tipik sa SPARQL sa MongoDB Query.

Kung maghisgot kita og mas lapad mahitungod sa mga adapter sa JSON nga mga tinubdan, nga nagtugot sa mas daghan o dili kaayo "on the fly" nga magrepresentar sa JSON nga gitipigan niini nga mga tinubdan isip RDF, atong mahinumduman ang dugay na. Pagmugna sa SPARQL, nga mahimong i-adjust, alang sa panig-ingnan, ngadto sa Apache Jena.

Ang pag-summarize sa unang duha ka mga uso, makaingon kita nga ang mga storage sa RDF nagpakita sa hingpit nga kaandam alang sa paghiusa ug operasyon sa mga kondisyon sa "pagpadayon sa polyglot". Nahibal-an, bisan pa, nga kini nga ulahi dugay na nga wala sa uso, ug gipulihan sa moabot na multi-modelo. Unsa man ang bahin sa multi-modeling sa kalibutan sa pagtipig sa RDF?

Sa laktod, dili. Gusto nakong ipahinungod ang usa ka bulag nga artikulo sa hilisgutan sa mga multi-modelo nga DBMS, apan sa pagkakaron matikdan nga sa pagkakaron walay mga multi-modelo nga DBMS nga "base" sa usa ka modelo sa graph (RDF mahimong isipon nga usa ka matang niini) . Pipila ka gagmay nga multi-modeling - RDF storage support alang sa alternatibong LPG graph model - hisgotan sa seksyon V.

III. OLTP vs. OLAP

Bisan pa, ang parehas nga Gartner Siya misulatkana nga multimodel kay usa ka sine qua non nga kondisyon para sa operating room DBMS. Kini masabtan: sa usa ka sitwasyon sa "multivariate storage", ang mga nag-unang problema mitungha sa transactionality.

Apan asa nahimutang ang mga storage sa RDF sa OLTP-OLAP scale? Ako motubag niining paagiha: bisan didto ni dinhi. Aron ipakita kung unsa ang katuyoan niini, gikinahanglan ang usa ka ikatulo nga minubo. Isip usa ka kapilian akong isugyot OLIP β€” Online nga Intelektwal nga Pagproseso.

Bisan pa, sa gihapon:

  • ang mga mekanismo sa panagsama sa MongoDB nga gipatuman sa GraphDB dili labing gamay gituyo sa pagtrabaho sa palibot sa pagsulat sa mga isyu sa performance;
  • Ang Stardog nagpadayon pa ug hingpit misulat pag-usab engine, pag-usab uban sa tumong sa pagpalambo sa recording performance.

Karon tuguti ako nga ipaila ang usa ka bag-ong magdudula sa merkado. Gikan sa mga tiglalang sa IBM Netezza ug Amazon Redshift - AnzoGraphβ„’. Usa ka hulagway gikan sa usa ka advertisement alang sa usa ka produkto nga gibase niini gi-post sa sinugdanan sa artikulo. Gipahimutang sa AnzoGraph ang kaugalingon isip solusyon sa GOLAP. Giunsa nimo gusto ang SPARQL nga adunay mga function sa bintana? β€”

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

IV. RocksDB

Mas taas na naay link sa pag-anunsyo sa Stardog 7 Beta, nga nag-ingon nga ang Stardog mogamit sa RocksDB ingon usa ka sukaranan nga sistema sa pagtipig - usa ka tindahan nga hinungdanon nga kantidad, usa ka tinidor sa Facebook sa LevelDB sa Google. Ngano nga takus ang paghisgot bahin sa usa ka us aka uso?

Una, sa paghukom pinaagi sa Artikulo sa Wikipedia, dili lamang mga storage sa RDF ang "gibalhin" ngadto sa RocksDB. Adunay mga proyekto nga gamiton ang RocksDB isip storage engine sa ArangoDB, MongoDB, MySQL ug MariaDB, Cassandra.

Ikaduha, ang mga proyekto (nga mao, dili mga produkto) sa may kalabutan nga mga hilisgutan gihimo sa RocksDB.

Pananglitan, ang eBay naggamit sa RocksDB sa usa ka plataporma para sa imong "knowledge graph". By the way, kataw-anan basahon: ang pangutana nga lengguwahe nagsugod isip usa ka home grown nga format, apan bag-o lang kini nag-transition nga mas sama sa SPARQL. Sama sa komedya: bisag unsa pa ka daghan sa kahibalo nga graph ang atong gihimo, kita gihapon ang mahuman sa RDF.

Laing pananglitan - usa nga nagpakita pipila ka bulan ang milabay Serbisyo sa Pangutana sa Kasaysayan sa Wikidata. Sa wala pa ang pagpaila niini, ang kasayuran sa kasaysayan sa Wikidata kinahanglan nga ma-access pinaagi sa MWAPI ngadto sa standard Mediawiki API. Karon daghan ang posible sa puro nga SPARQL. "Ubos sa hood" adunay usab RocksDB. Pinaagi sa dalan, ang WDHQS gihimo, ingon og, sa tawo nga nag-import sa Freebase sa Google Knowledge Graph.

V. LPG nga suporta

Tugoti ako nga pahinumdoman ka sa nag-unang kalainan tali sa LPG graphs ug RDF graphs.

Sa LPG, ang mga propyedad sa scalar mahimong ma-assign sa mga edge instances, samtang sa RDF mahimo ra silang i-assign sa mga "types" sa ngilit (apan dili lamang mga scalar properties, kondili mga ordinaryo usab nga koneksyon). Kini nga limitasyon sa RDF kumpara sa LPG nabuntog usa o lain nga teknik sa pagmodelo. Ang mga limitasyon sa LPG kumpara sa RDF mas lisud buntogon, apan ang LPG graphs mas sama sa mga hulagway gikan sa Harari textbook kay sa RDF graphs, mao nga gusto kini sa mga tawo.

Dayag nga, ang tahas sa "suporta sa LPG" nahulog sa duha ka bahin:

  1. paghimo og mga pagbag-o sa modelo sa RDF nga nagpaposible sa pagsundog sa mga istruktura sa LPG niini;
  2. paghimo og mga pagbag-o sa RDF query language nga nagpaposible sa pag-access sa datos niining giusab nga modelo, o pagpatuman sa abilidad sa paghimo og mga pangutana niini nga modelo sa popular nga LPG nga pangutana nga mga pinulongan.

V.1. Modelo sa datos

Adunay daghang posible nga mga pamaagi dinhi.

V.1.1. Singleton Property

Ang labing literal nga pamaagi sa pagharmonya sa RDF ug LPG mao tingali singleton nga kabtangan:

  • Imbes, pananglitan, ang predicate :isMarriedTo gigamit ang mga predicate :isMarriedTo1, :isMarriedTo2 i t. d.
  • Kini nga mga predicate mahimong mga hilisgutan sa bag-ong triplets: :isMarriedTo1 :since "2013-09-13"^^xsd:date ug uban pa.
  • Ang koneksyon niini nga mga higayon sa mga predicate sa usa ka komon nga predicate gitukod pinaagi sa triplets sa porma :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Dayag nga, rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, apan hunahunaa kon nganong dili ka na lang magsulat :isMarriedTo1 rdf:type :isMarriedTo.

Ang problema sa "LPG support" nasulbad dinhi sa lebel sa RDFS. Ang ingon nga desisyon nanginahanglan paglakip sa angay sumbanan. Ang pipila ka mga pagbag-o mahimong gikinahanglan alang sa mga tindahan sa RDF nga nagsuporta sa paglakip sa mga sangputanan, apan sa pagkakaron, ang Singleton Property mahimong isipon nga usa lamang ka pamaagi sa pagmodelo.

V.1.2. Ang Pagbag-o Gibuhat sa Husto

Ang dili kaayo walay kapuslanan nga mga pamaagi naggikan sa pagkaamgo nga ang mga instances sa propyedad hingpit nga dali nga madala sa triplets. Pinaagi sa pagsulti og usa ka butang mahitungod sa triplets, kita makahimo sa paghisgot mahitungod sa mga panghitabo sa kabtangan.

Ang labing lig-on niini nga mga pamaagi mao ang RDF*, aka RDR, natawo sa kahiladman sa Blazegraph. Gikan pa sa sinugdanan napili para sa imong kaugalingon ug sa AnzoGraph. Ang kalig-on sa pamaagi gitino sa kamatuoran nga sulod sa gambalay niini gitanyag katugbang nga mga pagbag-o sa RDF Semantics. Ang punto, bisan pa, yano ra kaayo. Sa Turtle serialization sa RDF mahimo nimong isulat ang usa ka butang nga sama niini:

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

V.1.3. Ubang mga pamaagi

Dili ka makahasol sa pormal nga mga semantiko, apan ibutang lang nga ang mga triplet adunay piho nga mga identifier, nga, siyempre, mga URI, ug paghimo og bag-ong mga triplet uban niini nga mga URI. Ang nahabilin mao ang paghatag ug akses sa kini nga mga URI sa SPARQL. Busa niabot Stardog.

Sa Allegrograph miadto sa intermediate nga paagi. Nahibal-an nga ang triplet identifier sa Allegrograph mao, apan kung nag-implementar sa triple attributes dili sila magpabilin. Bisan pa, layo pa kaayo kini sa pormal nga semantika. Mamatikdan nga ang triplet nga mga hiyas dili mga URI, ug ang mga kantidad niini nga mga hiyas mahimo usab nga literal. Ang LPG adherents makakuha gayud sa ilang gusto. Sa espesyal nga naimbento nga NQX format, ang usa ka pananglitan nga susama sa usa sa ibabaw para sa RDF* ingon niini:

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

V.2. Pangutana nga mga pinulongan

Ang pagsuporta sa LPG sa usa ka paagi o lain sa lebel sa modelo, kinahanglan nimo nga himuon nga posible ang paghimo og mga pangutana sa datos sa ingon nga modelo.

  • Blazegraph para sa RDF* nga mga pangutana nagsuporta SPARQL* ΠΈ Gremlin. Ang usa ka pangutana sa SPARQL* ingon niini:

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

  • Ang Anzograph nagsuporta usab SPARQL* ug musuporta Cypher, usa ka pangutana nga pinulongan sa Neo4j.
  • Gisuportahan sa Stardog ang iyang kaugalingon pagpalapad SPARQL ug pag-usab Gremlin. Makuha nimo ang triplet URI ug "meta-information" sa SPARQL gamit ang usa ka butang nga sama niini:

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

  • Gisuportahan usab sa Allegrograph ang kaugalingon niini pagpalapad SPARQL:

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

Pinaagi sa dalan, ang GraphDB sa usa ka higayon misuporta sa Tinkerpop/Gremlin nga walay pagsuporta sa LPG, apan kini mihunong sa bersyon 8.0 o 8.1.

VI. Paghugot sa mga lisensya

Wala'y bag-o nga mga pagdugang sa intersection sa "triplestore of choice" ug "open source triplestore" sets. Ang bag-ong open source nga mga tindahan sa RDF layo pa sa maayong pagpili alang sa adlaw-adlaw nga paggamit, ug ang bag-ong triple nga mga tindahan nga gusto nakong gamiton (sama sa AnzoGraph) kay sirado nga tinubdan. Hinuon, mahimo natong hisgutan ang mahitungod sa pagkunhod ...

Siyempre, ang open source wala pa gisirhan kaniadto, apan ang pipila ka open source nga mga repository hinay-hinay nga wala na makita nga angayan nga pilion. Ang Virtuoso, nga adunay usa ka opensource nga edisyon, sa akong opinyon, nalumos sa mga bug. Ang Blazegraph gipalit sa AWS ug nahimong basehan sa Amazon Neptune; karon dili klaro kung adunay bisan usa pa nga pagpagawas. Si Jena na lang ang nahabilin...

Kung ang bukas nga gigikanan dili kaayo hinungdanon, apan gusto nimo nga sulayan kini, nan ang tanan dili kaayo rosy kaysa kaniadto. Pananglitan:

  • Stardog mihunong iapud-apod ang libre nga bersyon (bisan pa, ang panahon sa pagsulay sa regular nga bersyon nadoble);
  • Π² GraphDB Cloud, diin kaniadto makapili ka ug libre nga batakang plano, gisuspinde ang mga bag-ong user registration.

Sa kinatibuk-an, alang sa kasagaran nga tawo sa IT, ang wanang nahimong labi nga dili ma-access; ang pag-uswag niini nahimong daghang mga korporasyon.

Source: www.habr.com

Idugang sa usa ka comment