Den semantiska webben och lÀnkad data Àr som nÀra rymden: det finns inget liv dÀr. Att vistas dÀr under en mer eller mindre lÄng tidsperiod⊠ja, jag vet inte vad man sa till en som barn som svar pÄ "Jag vill bli astronaut". Men man kan observera vad som hÀnder medan man Àr pÄ jorden; det Àr mycket lÀttare att bli amatör eller till och med professionell astronom.
Artikeln kommer att diskutera nya, inte Àldre Àn nÄgra mÄnader, trender frÄn RDF-lagringsvÀrlden. Metaforen i första stycket inspirerades av en reklambild av stor storlek under snittet.
Episk bild

I. GraphQL för RDF-Ätkomst
att GraphQL siktar pÄ att bli ett universellt databasÄtkomstsprÄk. Hur Àr det med möjligheten att fÄ Ätkomst till RDF med GraphQL?
Den hÀr möjligheten tillhandahÄlls av:
- Stardog (, );
- TopQuadrant produkter (, ).
Om förvaret inte ger en sÄdan möjlighet kan det implementeras oberoende genom att skriva en lÀmplig "resolver". SÄ gjorde de till exempel i det franska projektet . Eller sÄ kan man inte lÀngre skriva nÄgot, utan bara ta .
Ur synvinkeln för en ortodox anhÀngare av den semantiska webben och lÀnkade data Àr allt detta naturligtvis trÄkigt, eftersom det verkar designat för integrationer byggda kring nÀsta datasilo, och inte lÀmpliga plattformar (RDF-butiker, förstÄs) .
Intrycken frÄn att jÀmföra GraphQL med SPARQL Àr tvÄfaldiga.
- à ena sidan ser GraphQL ut som en avlÀgsen slÀkting till SPARQL: det löser problemen med omsampling och mÄngfalden av frÄgor som Àr typiska för REST - utan vilka det förmodligen inte skulle vara möjligt att övervÀga frÄgesprÄk, Ätminstone för webben;
- à andra sidan Àr det stela schemat för GraphQL en besvikelse. Följaktligen verkar dess "introspektivitet" mycket begrÀnsad jÀmfört med RDF:s fulla reflexivitet. Och det finns ingen analog av fastighetsvÀgar, sÄ det Àr inte ens sÀrskilt tydligt varför det Àr "Graph-".
II. Adaptrar för MongoDB
En trend som kompletterar den tidigare.
- i Stardog nu - i synnerhet alla pÄ samma GraphQL - konfigurera mappningen av MongoDB-data till virtuella RDF-grafer;
- GraphDB har nyligen infoga fragment i SPARQL pÄ MongoDB Query.
Om vi ââtalar mer allmĂ€nt om adaptrar till JSON-kĂ€llor, som tillĂ„ter mer eller mindre "on the fly" att representera JSON som lagras i dessa kĂ€llor som RDF, kan vi minnas den ganska lĂ„ngvariga , som kan justeras, , till Apache Jena.
För att sammanfatta de tvÄ första trenderna kan vi sÀga att RDF-lagringar visar full beredskap för integration och drift under förhÄllanden med "polyglot-bestÀndighet". Det Àr dock kÀnt att detta senare lÀnge har gÄtt ur mode och hÄller pÄ att ersÀttas av multimodell. Hur Àr det med multimodellering i en vÀrld av RDF-lagring?
Kort sagt, inget sÀtt. Jag skulle vilja Àgna en separat artikel till Àmnet multi-modell DBMS, men för nÀrvarande kan det noteras att det för nÀrvarande inte finns nÄgra multi-modell DBMS "baserade" pÄ en grafmodell (RDF kan betraktas som en typ av det) . Vissa smÄ multimodelleringar - RDF-lagringsstöd för en alternativ LPG-grafmodell - kommer att diskuteras i .
III. OLTP vs. OLAP
Dock samma Gartner att multimodell Ă€r en absolut nödvĂ€ndig förutsĂ€ttning frĂ€mst för operationssalar DBMS. Detta Ă€r förstĂ„eligt: ââi en situation med "multivariatlagring" uppstĂ„r de största problemen med transaktionalitet.
Men var finns RDF-lagringar pĂ„ OLTP-OLAP-skalan? Jag skulle svara sĂ„ hĂ€r: varken dĂ€r eller hĂ€r. För att ange vad de Ă€r avsedda för behövs nĂ„gon tredje förkortning. Som ett alternativ skulle jag föreslĂ„ OLIP â Intellektuell bearbetning online.
Men fortfarande:
- integrationsmekanismerna med MongoDB implementerade i GraphDB Àr inte minst att komma runt skrivprestandaproblem;
- Stardog gÄr Ànnu lÀngre och fullstÀndigt motor, Äterigen med mÄlet att förbÀttra inspelningsprestandan.
LĂ„t mig nu presentera en ny aktör pĂ„ marknaden. FrĂ„n skaparna av IBM Netezza och Amazon Redshift â . En bild frĂ„n en annons för en produkt baserad pĂ„ den lades upp i början av artikeln. AnzoGraph positionerar sig som en GOLAP-lösning. Hur gillar du SPARQL med fönsterfunktioner? â
SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { ⊠}IV. RocksDB
Redan högre till tillkÀnnagivandet av Stardog 7 Beta, som sa att Stardog skulle anvÀnda RocksDB som ett underliggande lagringssystem - en nyckel-vÀrde butik, en Facebook-gaffel av Googles LevelDB. Varför Àr det vÀrt att prata om en viss trend?
För det första att döma av , inte bara RDF-lagringar "transplanteras" till RocksDB. Det finns projekt för att anvÀnda RocksDB som lagringsmotor i ArangoDB, MongoDB, MySQL och MariaDB, Cassandra.
För det andra skapas projekt (det vill sÀga inte produkter) om relevanta Àmnen pÄ RocksDB.
Till exempel anvÀnder eBay RocksDB i för din "kunskapsgraf". Förresten, det Àr roligt att lÀsa: frÄgesprÄket började som ett inhemskt format, men pÄ senare tid har det övergÄtt till att bli mycket mer likt SPARQL. Som i skÀmtet: oavsett hur mycket kunskapsgraf vi gör, sÄ hamnar vi fortfarande pÄ RDF.
Ett annat exempel - ett som dök upp för nÄgra mÄnader sedan . Innan den introducerades behövde Wikidatas historiska information nÄs via till Mediawikis standard-API. Nu Àr mycket möjligt med ren SPARQL. "Under huven" finns Àven RocksDB. Förresten, WDHQS gjordes, verkar det som, av personen som importerade Freebase till Google Knowledge Graph.
V. LPG-stöd
LÄt mig pÄminna dig om huvudskillnaden mellan LPG-grafer och RDF-grafer.
I LPG kan skalĂ€ra egenskaper tilldelas kantinstanser, medan de i RDF bara kan tilldelas kant-âtyperâ (men inte bara skalĂ€ra egenskaper, utan Ă€ven vanliga anslutningar). Denna begrĂ€nsning av RDF jĂ€mfört med gasol en eller annan modelleringsteknik. BegrĂ€nsningarna för LPG jĂ€mfört med RDF Ă€r svĂ„rare att övervinna, men LPG-grafer Ă€r mer som bilder frĂ„n en Harari-lĂ€robok Ă€n RDF-grafer, vilket Ă€r anledningen till att folk vill ha dem.
Uppenbarligen delas uppgiften med "LPG-stöd" i tvÄ delar:
- göra Àndringar i RDF-modellen som gör det möjligt att simulera LPG-strukturer i den;
- göra Àndringar i RDF-frÄgesprÄket som gör det möjligt att komma Ät data i denna modifierade modell, eller implementera möjligheten att göra frÄgor till denna modell i populÀra LPG-frÄgesprÄk.
V.1. Datamodell
Det finns flera möjliga tillvÀgagÄngssÀtt hÀr.
V.1.1. Singleton Property
Det mest bokstavliga sÀttet att harmonisera RDF och LPG Àr förmodligen :
- IstÀllet för till exempel predikatet
:isMarriedTopredikat anvÀnds:isMarriedTo1,:isMarriedTo2och t. d. - Dessa predikat blir sedan föremÄl för nya trillingar:
:isMarriedTo1 :since "2013-09-13"^^xsd:dateetc. - Kopplingen av dessa förekomster av predikat med ett gemensamt predikat etableras av formens tripletter
:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo. - Det Àr uppenbart att
rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, men tÀnk pÄ varför du inte bara ska skriva:isMarriedTo1 rdf:type :isMarriedTo.
Problemet med "LPG-stöd" löses hÀr pÄ RDFS-nivÄ. Ett sÄdant beslut krÀver införande i lÀmpligt . Vissa förÀndringar kan krÀvas för RDF-butiker som stöder bifogade konsekvenser, men för nÀrvarande kan Singleton Property ses som bara en annan modelleringsteknik.
V.1.2. Reifikation gjort rÀtt
Mindre naiva tillvÀgagÄngssÀtt hÀrrör frÄn insikten att egendomsinstanser Àr helt instansierbara av trillingar. Genom att kunna sÀga nÄgot om trillingar kommer vi att kunna prata om fastighetsinstanser.
Den mest robusta av dessa metoder Àr , aka RDR, i Blazegraphs djup. Det Àr frÄn första början för dig sjÀlv och AnzoGraph. TillvÀgagÄngssÀttets soliditet bestÀms av det faktum att inom dess ram motsvarande förÀndringar i . PoÀngen Àr dock extremt enkel. I Turtle serialization of RDF kan du nu skriva nÄgot sÄ hÀr:
<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .V.1.3. Andra tillvÀgagÄngssÀtt
Du kan inte bry dig om formell semantik, utan helt enkelt anta att tripletter har vissa identifierare, som naturligtvis Àr URI:er, och skapa nya tripletter med dessa URI:er. Allt som ÄterstÄr Àr att ge tillgÄng till dessa URI:er i SPARQL. SÄ Stardog.
I Allegrograph pÄ ett mellanliggande sÀtt. Det Àr kÀnt att triplettidentifierare i Allegrograph , men nÀr de implementerar trippelattribut sticker de inte ut. Det Àr dock fortfarande vÀldigt lÄngt ifrÄn formell semantik. Det Àr anmÀrkningsvÀrt att triplettattribut inte Àr URI:er, och vÀrdena för dessa attribut kan ocksÄ bara vara bokstavliga. LPG-anhÀngare fÄr precis vad de ville ha. I det speciellt uppfunna NQX-formatet ser ett exempel liknande det ovan för RDF* ut sÄ hÀr:
:bob :marriedTo :alice {"since" : "2013-09-13"}V.2. FrÄga sprÄk
Efter att ha stött LPG pÄ ett eller annat sÀtt pÄ modellnivÄ behöver du göra det möjligt att göra förfrÄgningar pÄ data i en sÄdan modell.
- Blazegraph för RDF*-frÄgor stöder О . En SPARQL*-frÄga ser ut sÄ hÀr:
SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }- Anzograph stöder ocksÄ och kommer att stödja , ett frÄgesprÄk i Neo4j.
- Stardog stödjer sina egna SPARQL och Gremlin. Du kan fÄ triplett-URI och "metainformation" i SPARQL med nÄgot sÄ hÀr:
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}- Allegrograph stöder ocksÄ sin egen SPARQL:
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }Förresten, GraphDB stödde vid en tidpunkt Tinkerpop/Gremlin utan att stödja LPG, men detta slutade i version 8.0 eller 8.1.
VI. SkÀrpning av licenser
Det har inte gjorts nÄgra tillÀgg till skÀrningspunkten mellan "valfri trippelbutik" och "öppen kÀllkods-triplestore" pÄ sistone. Nya RDF-butiker med öppen kÀllkod Àr lÄngt ifrÄn ett bra val för dagligt bruk, och kÀllkoden för nya RDF-butiker som vi skulle vilja anvÀnda (samma AnzoGraph) Àr stÀngd. Snarare kan vi till och med prata om subtraktioner...
Naturligtvis har öppen kÀllkod inte stÀngts av tidigare, men vissa arkiv med öppen kÀllkod ses lÄngsamt inte lÀngre som vÀrda att vÀlja. Virtuoso, som har en öppen kÀllkodsutgÄva, drunknar enligt mig i buggar. Blazegraph köptes av AWS och utgjorde grunden för Amazon Neptune; nu Àr det oklart om det blir minst en release till. Bara Jena Àr kvar...
Om öppen kÀllkod inte Àr sÀrskilt viktigt, men du bara vill prova, sÄ Àr allt ocksÄ mindre rosenrött Àn tidigare. Till exempel:
- Stardog distribuera gratisversionen (dock har provperioden för den vanliga versionen fördubblats);
- ĐČ , dĂ€r man tidigare kunde vĂ€lja ett gratis grundabonnemang, har stoppat registreringar av nya anvĂ€ndare.
I allmÀnhet, för den genomsnittlige IT-personen, blir rymden mer och mer otillgÀnglig, dess utveckling blir företagens lott.
KĂ€lla: will.com
