Vad hÀnder just nu med RDF-lagringssystem?

Semantic Web och Linked Data liknar den nĂ€rliggande rymden: det finns inget liv dĂ€r. För att resa dit under en lĂ€ngre tid
 tja, jag vet inte vad de sa till dig som barn nĂ€r du sa "jag vill bli astronaut". Men du kan observera vad som hĂ€nder Ă€ven frĂ„n jorden; det Ă€r mycket lĂ€ttare att bli amatörastronom eller till och med professionell.

I denna artikel kommer vi att diskutera fÀrska trender frÄn vÀrlden av RDF-lager, som inte Àr Àldre Àn nÄgra mÄnader. Metaforen i den första paragrafen inspirerades av en episk reklambild som finns lÀngre ner.


Episk bild

Vad hÀnder just nu med RDF-lagringssystem?

I. GraphQL för Ätkomst till RDF

Det sÀgs, som hÀvdar att GraphQL ska bli ett universellt sprÄk för Ätkomst till databaser. Hur stÄr det dÄ till med möjligheten att fÄ Ätkomst till RDF med hjÀlp av GraphQL?

"FrÄn start" erbjuder följande möjligheter:

Om lagret inte erbjuder en sÄdan möjlighet, implementerar man den sjÀlv genom att skriva en motsvarande "resolver". Det gjorde de exempelvis i det franska projektet DataTourisme. Eller sÄ kan man nu inget skriva, utan helt enkelt anvÀnda HyperGraphQL.

Ur en ortodox Semantic Web och Linked Data-anhÀngares perspektiv Àr allt detta förstÄs sorgligt, eftersom det verkar vara avsett för integrationer som byggs runt nya data silo, snarare Àn plattformar (naturligtvis RDF-lager).

Intrycken frÄn jÀmförelsen mellan GraphQL och SPARQL Àr blandade.

  • Å ena sidan ser GraphQL ut som en avlĂ€gsen slĂ€kting till SPARQL: det löser typiska REST-problem som överbeskĂ€rning och multipla förfrĂ„gningar — utan vilket man nog inte kunde anse sig vara ett frĂ„gesprĂ„k, Ă€ven om det bara Ă€r för webben;
  • Å andra sidan Ă€r den strikta schematiskheten hos GraphQL nedslĂ„ende. DĂ€rmed verkar dess "introspektivitet" vara mycket begrĂ€nsad jĂ€mfört med den fulla reflexiviteten hos RDF. Och det finns ingen motsvarighet till property paths, sĂ„ det Ă€r knappast klart varför det kallas "Graph-".

II. Adaptrar till MongoDB

Trend som kompletterar den föregÄende.

  • i Stardog nu Ă€r möjligt — sĂ€rskilt, allt pĂ„ samma GraphQL — att konfigurera databearbetning av MongoDB till virtuella RDF-grafer;
  • GraphDB har nyligen möjliggör kunna infoga fragment av MongoDB Query i SPARQL.

Om vi pratar bredare om adaptrar till JSON-kÀllor, som gör det mer eller mindre möjligt att "on-the-fly" representera JSON som lagras i dessa kÀllor som RDF, sÄ kan vi ocksÄ nÀmna den ganska lÀnge existerande SPARQL Generate, som kan anpassas, for example, till Apache Jena.

Sammanfattningsvis av de första tvÄ trenderna kan man sÀga att RDF-lagringssystem visar en fullstÀndig beredskap för integrationer och funktionalitet under förhÄllanden med "polyglot persistence". Det Àr dock vÀlkÀnt att detta i stort sett har fallit ur modet, och istÀllet Àr pÄ vÀg multimodellering. Men hur stÄr det till med multimodellering i vÀrlden av RDF-lagringssystem?

Kort sagt, sĂ„ stĂ„r det inte sĂ„ bra till. Ämnet multimodell-db:er förtjĂ€nar en egen artikel, men man kan bemĂ€rka att det för nĂ€rvarande inte finns nĂ„gra multimodell-db:er som «baseras» pĂ„ grafmodellen (en variant av den skulle kunna vara RDF). Om en viss liten multimodellering – stöd för RDF-lagringssystemens alternativa grafmodell LPG – kommer det att berĂ€ttas i avsnitt V.

III. OLTP vs. OLAP

För övrigt anser samma Gartner skriver, att multimodellering Àr en betingelse sine qua non, frÀmst för operativa db:er. Det Àr förstÄeligt: i situationen med "polyglot persistence" uppstÄr de största problemen med transaktionalitet.

Men var pĂ„ skalan OLTP—OLAP befinner sig RDF-lagringssystem? Jag skulle sĂ€ga sĂ„ hĂ€r: varken dĂ€r eller hĂ€r. För att beteckna vad de Ă€r avsedda för behövs en tredje akronym. Som alternativ skulle jag föreslĂ„ OLIP — Online Intellectual Processing.

Men ÀndÄ:

  • de mekanismer för integration med MongoDB som implementerats i GraphDB Ă€r inte minst avsedda för att kringgĂ„ problem med skrivprestanda;
  • Stardog gĂ„r Ă€nnu lĂ€ngre och helt skriver om motorn, Ă„terigen med syftet att öka skrivprestanda.

Och nu fĂ„r jag lov att presentera en ny aktör pĂ„ marknaden, frĂ„n skaparna av IBM Netezza och Amazon Redshift — AnzoGraph. Bilden frĂ„n produktannonseringen baserad pĂ„ den publicerades i början av artikeln. AnzoGraph positionerar sig som en GOLAP-lösning. Vad sĂ€gs om SPARQL med fönsterfunktioner? —

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

IV. RocksDB

Ovan nĂ€mndes redan en lĂ€nk till meddelandet om Stardog 7 Beta, dĂ€r det nĂ€mndes att Stardog planerar att anvĂ€nda RocksDB som lagringssystem — ett "nyckel-vĂ€rde"-lager, en Facebook-fork av Googles LevelDB. Varför prata om en trend?

För det första, enligt artikeln pÄ Wikipedia, sÄ "planterar" inte bara RDF-lagringssystem pÄ RocksDB. Det finns projekt som anvÀnder RocksDB som lagringsmotor i ArangoDB, MongoDB, MySQL och MariaDB, Cassandra.

För det andra görs projekt (dvs. inte produkter) inom denna tematik pÄ RocksDB.

Till exempel anvÀnder eBay RocksDB i sin plattform för sin "kunskapsgraf". För övrigt Àr det roligt att lÀsa: frÄgesprÄket började som ett internt format, men pÄ senare tid har det övergÄtt till att likna SPARQL mycket mer.. Som i ett skÀmt: hur mÄnga kunskapsgrafer vi Àn gör blir det ÀndÄ RDF.

Ett annat exempel Àr det som dök upp för nÄgra mÄnader sedan. Wikidata History Query Service. Innan dess var man tvungen att anvÀnda MWAPI till standard Mediawiki API för att fÄ historiska uppgifter frÄn Wikidata. Nu Àr mycket möjligt med ren SPARQL. "Under huven" dÀr ocksÄ RocksDB. Förresten, det verkar som att det var en person som arbetat med importen av Freebase till Google Knowledge Graph som gjorde WDHQS.

V. Stöd för LPG

Jag vill pÄminna om den grundlÀggande skillnaden mellan LPG-grafer och RDF-grafer.

I LPG kan instanser av kanter tilldelas skalĂ€ra egenskaper, medan i RDF kan de endast tilldelas "typer" av kanter (men inte bara skalĂ€ra egenskaper, utan Ă€ven vanliga relationer). Denna begrĂ€nsning i RDF jĂ€mfört med LPG överbryggas genom olika modelleringsmetoder. Å andra sidan Ă€r LPG:s begrĂ€nsningar i förhĂ„llande till RDF svĂ„rare att överbrygga, men LPG-grafer liknar mer bilderna frĂ„n Hararis lĂ€robok, vilket gör att folk vill ha dem.

Uppenbarligen delas uppgiften "att stödja LPG" upp i tvÄ delar:

  1. att införa Àndringar i RDF-modellen som möjliggör att hÀrma LPG-strukturer;
  2. att införa Àndringar i frÄgesprÄket för RDF som gör det möjligt att frÄga data i denna Àndrade modell, eller att implementera möjligheten att göra frÄgor pÄ denna modell med vanliga LPG-frÄgesprÄk.

V.1. Datamodell

HÀr finns det flera möjliga tillvÀgagÄngssÀtt.

V.1.1. Singleton Property

Den mest bokstavliga metoden för harmonisering av RDF och LPG Àr nog singleton property.:

  • IstĂ€llet för till exempel predikatet :isMarriedTo anvĂ€nds predikaten :isMarriedTo1, :isMarriedTo2. och sĂ„ vidare.
  • DĂ€refter blir dessa predikat subjekt för nya tripletter: :isMarriedTo1 :since "2013-09-13"^^xsd:date och sĂ„ vidare.
  • Relationen av dessa instanser av predikaten till det gemensamma predikatet etableras genom tripletter av typen :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo..
  • Det Ă€r uppenbart att rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type,men tĂ€nk pĂ„ varför man inte bör skriva helt enkelt :isMarriedTo1 rdf:type :isMarriedTo..

Uppgiften "att stödja LPG" löses hÀr pÄ RDFS-nivÄ. Denna lösning krÀver införande av motsvarande standarden. Vissa Àndringar kan krÀvas av RDF-lager som stödjer anslutning av slutsatser, och tills vidare kan Singleton Property uppfattas som en ytterligare modelleringsmetod.

V.1.2. Reifiering PĂ„ RĂ€tt SĂ€tt

Mindre naiva tillvÀgagÄngssÀtt kommer frÄn insikten att instanser av egenskaper helt kan instansieras av tripletter. Genom att kunna sÀga nÄgot om tripletter kan vi ocksÄ tala om instanser av egenskaper.

Det mest solid av dessa tillvÀgagÄngssÀtt Àr RDF*, Àven kallad RDR, som föddes i djupet av Blazegraph. Den valdes frÄn början av AnzoGraph. Soliditeten i tillvÀgagÄngssÀttet definieras av att de relevanta förÀndringarna i erbjuds RDF Semantics . KÀrnan Àr dock extremt enkel. I Turtle-serialisering kan RDF nu skrivas pÄ följande sÀtt:<> :since "2013-09-13"^^xsd:date .

V.1.3. Övriga TillvĂ€gagĂ„ngssĂ€tt

Man kan skippa den formella semantiken och helt enkelt betrakta att tripletter har vissa identifierare som naturligtvis Àr URI:er, och skapa nya tripletter med dessa URI:er. Det ÄterstÄr bara att ge tillgÄng till dessa URI:er i SPARQL. SÄ

Stardog. kommer I Allegrograph

genom en mellanvÀg. Det Àr kÀnt att identifierarna för tripletterna i Allegrograph med , men nÀr det gÀller implementationen av triple attributes framtrÀder de inte utÄt. Men det Àr fortfarande lÄngt ifrÄn formell semantik. Notabelt Àr att attributen för tripletter inte Àr URI:er, och vÀrdena av dessa attribut kan ocksÄ bara vara litteraler. AnhÀngare av LPG fÄr precis vad de ville. I det speciellt uppfunna formatet NQX ser ett exempel ut, liknande det som nÀmnts tidigare för RDF*, sÄ hÀr: det finns:bob :marriedTo :alice {"since" : "2013-09-13"}

V.2. FrÄgesprÄk

Genom att pÄ ett eller annat sÀtt stödja LPG pÄ modellnivÄ behöver vi möjliggöra att göra frÄgor om data i en sÄdan modell.

Blazegraph stödjer

 Anzograph stöder ocksÄ

Allegrograph stöder ocksÄ sin egen

  • SPARQL: tillĂ€gg SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }

 Förresten, GraphDB stödde en gÄng Tinkerpop/Gremlin utan att stödja LPG, men i version 8.0 eller 8.1 slutade det.

VI. FörstÀrkning av Licenser

VI. SkÀrpning av licenser

Det har nyligen inte skett nĂ„gra tillĂ€gg i skĂ€rningspunkten mellan "triplestore of choice" och "open source triplestore". Nya RDF-lager med öppen kĂ€llkod Ă€r lĂ„ngt ifrĂ„n att bli ett bra val för dagligt bruk, och kĂ€llkoden för nya RDF-lager som man skulle vilja anvĂ€nda (till exempel AnzoGraph) Ă€r stĂ€ngd. Man kan snarare till och med tala om neddragningar


SjĂ€lvklart stĂ€ngs inte öppen kĂ€llkod, men vissa förr öppna kĂ€llkods-lager börjar gradvis upphöra att ses som vĂ€rdiga alternativ. Virtuoso, som har en opensource-version, sjunker enligt min Ă„sikt i buggar. Blazegraph har köpts av AWS och ligger till grund för Amazon Neptune; nu Ă€r det oklart om det ens kommer att ske fler releaser. Endast Jena Ă„terstĂ„r


Om öppen kÀllkod inte Àr sÄ viktigt, och man bara vill prova, sÄ ser allt ocksÄ mindre lovande ut Àn tidigare. Till exempel:

  • Stardog slutar distribuera en gratisversion (för övrigt har den vanliga testperioden fördubblats);
  • pĂ„ GraphDB Cloud, dĂ€r man tidigare kunde vĂ€lja en gratis grundplan, har registreringen av nya anvĂ€ndare pausats.

Sammanfattningsvis blir rymden alltmer otillgÀnglig för den genomsnittliga IT-anvÀndaren, och att behÀrska den blir företagens domÀn.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster