{"id":33363,"date":"2019-10-31T21:52:11","date_gmt":"2019-10-31T18:52:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/chto-sejchas-proishodit-s-rdf-hranilishhami\/"},"modified":"2019-10-31T21:52:11","modified_gmt":"2019-10-31T18:52:11","slug":"chto-sejchas-proishodit-s-rdf-hranilishhami","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami","title":{"rendered":"Vad h\u00e4nder just nu med RDF-lagringssystem?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Semantic Web och Linked Data liknar den n\u00e4rliggande rymden: det finns inget liv d\u00e4r. F\u00f6r att resa dit under en l\u00e4ngre tid\u2026 tja, jag vet inte vad de sa till dig som barn n\u00e4r du sa \"jag vill bli astronaut\". Men du kan observera vad som h\u00e4nder \u00e4ven fr\u00e5n jorden; det \u00e4r mycket l\u00e4ttare att bli amat\u00f6rastronom eller till och med professionell.<\/p>\n<p><\/p>\n<p>I denna artikel kommer vi att diskutera f\u00e4rska trender fr\u00e5n v\u00e4rlden av RDF-lager, som inte \u00e4r \u00e4ldre \u00e4n n\u00e5gra m\u00e5nader. Metaforen i den f\u00f6rsta paragrafen inspirerades av en episk reklambild som finns l\u00e4ngre ner.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Episk bild<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Vad h\u00e4nder just nu med RDF-lagringssystem?\" src=\"\/wp-content\/uploads\/2019\/05\/3d157fb2f771f3dc622dacc8dab0a9ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"i-graphql-dlya-dostupa-k-rdf\">I. GraphQL f\u00f6r \u00e5tkomst till RDF<\/h2>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.zdnet.com\/article\/graphql-for-databases-a-layer-for-universal-database-access\/\">Det s\u00e4gs<\/a><\/noindex>, som h\u00e4vdar att GraphQL ska bli ett universellt spr\u00e5k f\u00f6r \u00e5tkomst till databaser. Hur st\u00e5r det d\u00e5 till med m\u00f6jligheten att f\u00e5 \u00e5tkomst till RDF med hj\u00e4lp av GraphQL?<\/p>\n<p><\/p>\n<p>\"Fr\u00e5n start\" erbjuder f\u00f6ljande m\u00f6jligheter:<\/p>\n<p><\/p>\n<ul>\n<li>Stardog (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/graphql-and-paths\/\">bloggen<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_executing_graphql_queries\">dokumentation<\/a><\/noindex>);<\/li>\n<li>produkter fr\u00e5n TopQuadrant (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.topquadrant.com\/2018\/07\/05\/graphql-webinar\/\">webbinariet<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.topquadrant.com\/technology\/graphql\/\">dokumentation<\/a><\/noindex>).<\/li>\n<\/ul>\n<p><\/p>\n<p>Om lagret inte erbjuder en s\u00e5dan m\u00f6jlighet, implementerar man den sj\u00e4lv genom att skriva en motsvarande \"resolver\". Det gjorde de exempelvis i det franska projektet <noindex><a rel=\"nofollow\" href=\"https:\/\/framagit.org\/datatourisme\/api\/tree\/master\/src\/Resolver\">DataTourisme<\/a><\/noindex>. Eller s\u00e5 kan man nu inget skriva, utan helt enkelt anv\u00e4nda <noindex><a rel=\"nofollow\" href=\"https:\/\/www.hypergraphql.org\/\">HyperGraphQL<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Ur en ortodox Semantic Web och Linked Data-anh\u00e4ngares perspektiv \u00e4r allt detta f\u00f6rst\u00e5s sorgligt, eftersom det verkar vara avsett f\u00f6r integrationer som byggs runt nya data silo, snarare \u00e4n plattformar (naturligtvis RDF-lager).<\/p>\n<p><\/p>\n<p>Intrycken fr\u00e5n j\u00e4mf\u00f6relsen mellan GraphQL och SPARQL \u00e4r blandade.<\/p>\n<p><\/p>\n<ul>\n<li>\u00c5 ena sidan ser GraphQL ut som en avl\u00e4gsen sl\u00e4kting till SPARQL: det l\u00f6ser typiska REST-problem som \u00f6verbesk\u00e4rning och multipla f\u00f6rfr\u00e5gningar \u2014 utan vilket man nog inte kunde anse sig vara <em>ett fr\u00e5gespr\u00e5k<\/em>, \u00e4ven om det bara \u00e4r f\u00f6r webben;<\/li>\n<li>\u00c5 andra sidan \u00e4r den strikta schematiskheten hos GraphQL nedsl\u00e5ende. D\u00e4rmed verkar dess \"introspektivitet\" vara mycket begr\u00e4nsad j\u00e4mf\u00f6rt med den fulla reflexiviteten hos RDF. Och det finns ingen motsvarighet till property paths, s\u00e5 det \u00e4r knappast klart varf\u00f6r det kallas \"Graph-\".<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"ii-adaptery-k-mongodb\">II. Adaptrar till MongoDB<\/h2>\n<p><\/p>\n<p>Trend som kompletterar den f\u00f6reg\u00e5ende.<\/p>\n<p><\/p>\n<ul>\n<li>i Stardog nu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/native-mongodb-support-is-here\/\">\u00e4r m\u00f6jligt<\/a><\/noindex> \u2014 s\u00e4rskilt, allt p\u00e5 samma GraphQL \u2014 att konfigurera databearbetning av MongoDB till virtuella RDF-grafer;<\/li>\n<li>GraphDB har nyligen <noindex><a rel=\"nofollow\" href=\"http:\/\/graphdb.ontotext.com\/documentation\/8.8\/standard\/integrating-graphdb-with-mongodb.html\">m\u00f6jligg\u00f6r<\/a><\/noindex> kunna infoga fragment av MongoDB Query i SPARQL.<\/li>\n<\/ul>\n<p><\/p>\n<p>Om vi pratar bredare om adaptrar till JSON-k\u00e4llor, som g\u00f6r det mer eller mindre m\u00f6jligt att \"on-the-fly\" representera JSON som lagras i dessa k\u00e4llor som RDF, s\u00e5 kan vi ocks\u00e5 n\u00e4mna den ganska l\u00e4nge existerande <noindex><a rel=\"nofollow\" href=\"https:\/\/ci.mines-stetienne.fr\/sparql-generate\/\">SPARQL Generate<\/a><\/noindex>, som kan anpassas, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/sparql-generate\/sparql-generate\">for example<\/a><\/noindex>, till Apache Jena.<\/p>\n<p><\/p>\n<p>Sammanfattningsvis av de f\u00f6rsta tv\u00e5 trenderna kan man s\u00e4ga att RDF-lagringssystem visar en fullst\u00e4ndig beredskap f\u00f6r integrationer och funktionalitet under f\u00f6rh\u00e5llanden med \"polyglot persistence\". Det \u00e4r dock v\u00e4lk\u00e4nt att detta i stort sett har fallit ur modet, och ist\u00e4llet <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gartner.com\/en\/documents\/3105622\">\u00e4r p\u00e5 v\u00e4g<\/a><\/noindex> multimodellering. Men hur st\u00e5r det till med multimodellering i v\u00e4rlden av RDF-lagringssystem?<\/p>\n<p><\/p>\n<p>Kort sagt, s\u00e5 st\u00e5r det inte s\u00e5 bra till. \u00c4mnet multimodell-db:er f\u00f6rtj\u00e4nar en egen artikel, men man kan bem\u00e4rka att det f\u00f6r n\u00e4rvarande inte finns n\u00e5gra multimodell-db:er som \u00abbaseras\u00bb p\u00e5 grafmodellen (en variant av den skulle kunna vara RDF). Om en viss liten multimodellering \u2013 st\u00f6d f\u00f6r RDF-lagringssystemens alternativa grafmodell LPG \u2013 kommer det att ber\u00e4ttas i <noindex><a rel=\"nofollow\" href=\"#v-podderzhka-lpg\">avsnitt V<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"iii-oltp-vs-olap\">III. OLTP vs. OLAP<\/h2>\n<p><\/p>\n<p>F\u00f6r \u00f6vrigt anser samma Gartner <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gartner.com\/en\/documents\/3467318\">skriver<\/a><\/noindex>, att multimodellering \u00e4r en betingelse sine qua non, fr\u00e4mst f\u00f6r <em>operativa<\/em> db:er. Det \u00e4r f\u00f6rst\u00e5eligt: i situationen med \"polyglot persistence\" uppst\u00e5r de st\u00f6rsta problemen med transaktionalitet.<\/p>\n<p><\/p>\n<p>Men var p\u00e5 skalan OLTP\u2014OLAP befinner sig RDF-lagringssystem? Jag skulle s\u00e4ga s\u00e5 h\u00e4r: varken d\u00e4r eller h\u00e4r. F\u00f6r att beteckna vad de \u00e4r avsedda f\u00f6r beh\u00f6vs en tredje akronym. Som alternativ skulle jag f\u00f6resl\u00e5 <em>OLIP<\/em> \u2014 Online Intellectual Processing.<\/p>\n<p><\/p>\n<p>Men \u00e4nd\u00e5:<\/p>\n<p><\/p>\n<ul>\n<li>de mekanismer f\u00f6r integration med MongoDB som implementerats i GraphDB \u00e4r inte minst <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ontotext.com\/company\/news\/ontotexts-graphdb-8-8-0-enriches-the-knowledge-graph-experience\/\">avsedda<\/a><\/noindex> f\u00f6r att kringg\u00e5 problem med skrivprestanda;<\/li>\n<li>Stardog g\u00e5r \u00e4nnu l\u00e4ngre och helt <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/announcing-stardog-7-beta\/\">skriver om<\/a><\/noindex> motorn, \u00e5terigen med syftet att \u00f6ka skrivprestanda.<\/li>\n<\/ul>\n<p><\/p>\n<p>Och nu f\u00e5r jag lov att presentera en ny akt\u00f6r p\u00e5 marknaden, fr\u00e5n skaparna av IBM Netezza och Amazon Redshift \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cambridgesemantics.com\/product\/anzograph\/\">AnzoGraph<\/a><\/noindex>. Bilden fr\u00e5n produktannonseringen baserad p\u00e5 den publicerades i b\u00f6rjan av artikeln. AnzoGraph positionerar sig som en GOLAP-l\u00f6sning. Vad s\u00e4gs om SPARQL med f\u00f6nsterfunktioner? \u2014<\/p>\n<p><\/p>\n<pre><code class=\"sql\">SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE {  \u2026  }<\/code><\/pre>\n<p><\/p>\n<h2 id=\"iv-rocksdb\">IV. RocksDB<\/h2>\n<p><\/p>\n<p>Ovan n\u00e4mndes redan <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/announcing-stardog-7-beta\/\">en l\u00e4nk<\/a><\/noindex> till meddelandet om Stardog 7 Beta, d\u00e4r det n\u00e4mndes att Stardog planerar att anv\u00e4nda RocksDB som lagringssystem \u2014 ett \"nyckel-v\u00e4rde\"-lager, en Facebook-fork av Googles LevelDB. Varf\u00f6r prata om en trend?<\/p>\n<p><\/p>\n<p>F\u00f6r det f\u00f6rsta, enligt <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/RocksDB#Alternative_backend\">artikeln p\u00e5 Wikipedia<\/a><\/noindex>, s\u00e5 \"planterar\" inte bara RDF-lagringssystem p\u00e5 RocksDB. Det finns projekt som anv\u00e4nder RocksDB som lagringsmotor i ArangoDB, MongoDB, MySQL och MariaDB, Cassandra.<\/p>\n<p><\/p>\n<p>F\u00f6r det andra g\u00f6rs projekt (dvs. inte produkter) inom denna tematik p\u00e5 RocksDB.<\/p>\n<p><\/p>\n<p>Till exempel anv\u00e4nder eBay RocksDB i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/eBay\/beam\">sin plattform<\/a><\/noindex> f\u00f6r sin \"kunskapsgraf\". F\u00f6r \u00f6vrigt \u00e4r det roligt att l\u00e4sa: <em>fr\u00e5gespr\u00e5ket b\u00f6rjade som ett internt format, men p\u00e5 senare tid har det \u00f6verg\u00e5tt till att likna SPARQL mycket mer.<\/em>. Som i ett sk\u00e4mt: hur m\u00e5nga kunskapsgrafer vi \u00e4n g\u00f6r blir det \u00e4nd\u00e5 RDF.<\/p>\n<p><\/p>\n<p>Ett annat exempel \u00e4r det som d\u00f6k upp f\u00f6r n\u00e5gra m\u00e5nader sedan. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.wikidata.org\/wiki\/Wikidata:History_Query_Service\">Wikidata History Query Service<\/a><\/noindex>. Innan dess var man tvungen att anv\u00e4nda <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mediawiki.org\/wiki\/Wikidata_Query_Service\/User_Manual\/MWAPI\">MWAPI<\/a><\/noindex> till standard Mediawiki API f\u00f6r att f\u00e5 historiska uppgifter fr\u00e5n Wikidata. Nu \u00e4r mycket m\u00f6jligt med ren SPARQL. \"Under huven\" d\u00e4r ocks\u00e5 RocksDB. F\u00f6rresten, det verkar som att det var en person som arbetat med importen av Freebase till Google Knowledge Graph som gjorde WDHQS.<\/p>\n<p><\/p>\n<h2 id=\"v-podderzhka-lpg\">V. St\u00f6d f\u00f6r LPG<\/h2>\n<p><\/p>\n<p>Jag vill p\u00e5minna om den grundl\u00e4ggande skillnaden mellan LPG-grafer och RDF-grafer.<\/p>\n<p><\/p>\n<p>I LPG kan instanser av kanter tilldelas skal\u00e4ra egenskaper, medan i RDF kan de endast tilldelas \"typer\" av kanter (men inte bara skal\u00e4ra egenskaper, utan \u00e4ven vanliga relationer). Denna begr\u00e4nsning i RDF j\u00e4mf\u00f6rt med LPG <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/swbp-n-aryRelations\/\">\u00f6verbryggas<\/a><\/noindex> genom olika modelleringsmetoder. \u00c5 andra sidan \u00e4r LPG:s begr\u00e4nsningar i f\u00f6rh\u00e5llande till RDF sv\u00e5rare att \u00f6verbrygga, men LPG-grafer liknar mer bilderna fr\u00e5n Hararis l\u00e4robok, vilket g\u00f6r att folk vill ha dem.<\/p>\n<p><\/p>\n<p>Uppenbarligen delas uppgiften \"att st\u00f6dja LPG\" upp i tv\u00e5 delar:<\/p>\n<p><\/p>\n<ol>\n<li>att inf\u00f6ra \u00e4ndringar i RDF-modellen som m\u00f6jligg\u00f6r att h\u00e4rma LPG-strukturer;<\/li>\n<li>att inf\u00f6ra \u00e4ndringar i fr\u00e5gespr\u00e5ket f\u00f6r RDF som g\u00f6r det m\u00f6jligt att fr\u00e5ga data i denna \u00e4ndrade modell, eller att implementera m\u00f6jligheten att g\u00f6ra fr\u00e5gor p\u00e5 denna modell med vanliga LPG-fr\u00e5gespr\u00e5k.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"v1--model-dannyh\">V.1. Datamodell<\/h3>\n<p><\/p>\n<p>H\u00e4r finns det flera m\u00f6jliga tillv\u00e4gag\u00e5ngss\u00e4tt.<\/p>\n<p><\/p>\n<p><strong>V.1.1. Singleton Property<\/strong><\/p>\n<p><\/p>\n<p>Den mest bokstavliga metoden f\u00f6r harmonisering av RDF och LPG \u00e4r nog <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ncbi.nlm.nih.gov\/pmc\/articles\/PMC4350149\/\">singleton property.<\/a><\/noindex>:<\/p>\n<p><\/p>\n<ul>\n<li>Ist\u00e4llet f\u00f6r till exempel predikatet <code>:isMarriedTo<\/code> anv\u00e4nds predikaten <code>:isMarriedTo1<\/code>, <code>:isMarriedTo2.<\/code> och s\u00e5 vidare.<\/li>\n<li>D\u00e4refter blir dessa predikat subjekt f\u00f6r nya tripletter: <code>:isMarriedTo1 :sedan &quot;2013-09-13&quot;^^xsd:date<\/code> och s\u00e5 vidare.<\/li>\n<li>Relationen av dessa instanser av predikaten till det gemensamma predikatet etableras genom tripletter av typen <code>:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.<\/code>.<\/li>\n<li>Det \u00e4r uppenbart att <code>rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type,<\/code>men t\u00e4nk p\u00e5 varf\u00f6r man inte b\u00f6r skriva helt enkelt <code>:isMarriedTo1 rdf:type :isMarriedTo.<\/code>.<\/li>\n<\/ul>\n<p><\/p>\n<p>Uppgiften \"att st\u00f6dja LPG\" l\u00f6ses h\u00e4r p\u00e5 RDFS-niv\u00e5. Denna l\u00f6sning kr\u00e4ver inf\u00f6rande av motsvarande <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/rdf-schema\/\">standarden<\/a><\/noindex>. Vissa \u00e4ndringar kan kr\u00e4vas av RDF-lager som st\u00f6djer anslutning av slutsatser, och tills vidare kan Singleton Property uppfattas som en ytterligare modelleringsmetod.<\/p>\n<p><\/p>\n<p><strong>V.1.2. Reifiering P\u00e5 R\u00e4tt S\u00e4tt<\/strong><\/p>\n<p><\/p>\n<p>Mindre naiva tillv\u00e4gag\u00e5ngss\u00e4tt kommer fr\u00e5n insikten att instanser av egenskaper helt kan instansieras av tripletter. Genom att kunna s\u00e4ga n\u00e5got om tripletter kan vi ocks\u00e5 tala om instanser av egenskaper.<\/p>\n<p><\/p>\n<p>Det mest solid av dessa tillv\u00e4gag\u00e5ngss\u00e4tt \u00e4r <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1409.3288\">RDF*<\/a><\/noindex>, \u00e4ven kallad RDR, <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.blazegraph.com\/wiki\/index.php\/Reification_Done_Right\">som f\u00f6ddes<\/a><\/noindex> i djupet av Blazegraph. Den valdes fr\u00e5n b\u00f6rjan <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.cambridgesemantics.com\/anzograph\/userdoc\/lpgs.htm\">av<\/a><\/noindex> AnzoGraph. Soliditeten i tillv\u00e4gag\u00e5ngss\u00e4ttet definieras av att de relevanta f\u00f6r\u00e4ndringarna i <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1406.3399\">erbjuds<\/a><\/noindex> RDF Semantics <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/rdf11-mt\/\">. K\u00e4rnan \u00e4r dock extremt enkel. I Turtle-serialisering kan RDF nu skrivas p\u00e5 f\u00f6ljande s\u00e4tt:<\/a><\/noindex>&lt;&gt; :since \"2013-09-13\"^^xsd:date .<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">&lt;&lt;:bob :isMarriedTo :alice&gt;&gt; :sedan &quot;2013-09-13&quot;^^xsd:date .<\/code><\/pre>\n<p><\/p>\n<p><strong>Man kan skippa den formella semantiken och helt enkelt betrakta att tripletter har vissa identifierare som naturligtvis \u00e4r URI:er, och skapa nya tripletter med dessa URI:er. Det \u00e5terst\u00e5r bara att ge tillg\u00e5ng till dessa URI:er i SPARQL. S\u00e5<\/strong><\/p>\n<p><\/p>\n<p>Stardog. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_motivation_implementation\">kommer<\/a><\/noindex> I Allegrograph <\/p>\n<p><\/p>\n<p>genom en mellanv\u00e4g. Det \u00e4r k\u00e4nt att identifierarna f\u00f6r tripletterna i Allegrograph <noindex><a rel=\"nofollow\" href=\"https:\/\/franz.com\/agraph\/support\/documentation\/current\/triple-attributes.html\">med<\/a><\/noindex> , men n\u00e4r det g\u00e4ller implementationen av triple attributes framtr\u00e4der de inte ut\u00e5t. Men det \u00e4r fortfarande l\u00e5ngt ifr\u00e5n formell semantik. Notabelt \u00e4r att attributen f\u00f6r tripletter inte \u00e4r URI:er, och v\u00e4rdena av dessa attribut kan ocks\u00e5 bara vara litteraler. Anh\u00e4ngare av LPG f\u00e5r precis vad de ville. I det speciellt uppfunna formatet NQX ser ett exempel ut, liknande det som n\u00e4mnts tidigare f\u00f6r RDF*, s\u00e5 h\u00e4r: <noindex><a rel=\"nofollow\" href=\"https:\/\/franz.com\/agraph\/support\/documentation\/current\/triple-index.html\">det finns<\/a><\/noindex>:bob :marriedTo :alice {\"since\" : \"2013-09-13\"}<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">:bob :gift :alice {&quot;sedan&quot; : &quot;2013-09-13&quot;}<\/code><\/pre>\n<p><\/p>\n<h3 id=\"v2-yazyki-zaprosov\">Genom att p\u00e5 ett eller annat s\u00e4tt st\u00f6dja LPG p\u00e5 modellniv\u00e5 beh\u00f6ver vi m\u00f6jligg\u00f6ra att g\u00f6ra fr\u00e5gor om data i en s\u00e5dan modell.<\/h3>\n<p><\/p>\n<p>Blazegraph st\u00f6djer<\/p>\n<p><\/p>\n<ul>\n<li>SPARQL* <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.blazegraph.com\/wiki\/index.php\/Reification_Done_Right\">. En f\u00f6rfr\u00e5gan i SPARQL* ser ut s\u00e5 h\u00e4r:<\/a><\/noindex> och <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/blazegraph\/tinkerpop3\/blob\/master\/README.md\">Gremlin<\/a><\/noindex>SELECT * { &lt;&gt; :since ?since }<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"sql\"> Anzograph st\u00f6der ocks\u00e5<\/code><\/pre>\n<p><\/p>\n<ul>\n<li>och planerar att st\u00f6dja <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.cambridgesemantics.com\/anzograph\/userdoc\/lpgs.htm\">. En f\u00f6rfr\u00e5gan i SPARQL* ser ut s\u00e5 h\u00e4r:<\/a><\/noindex> Cypher <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cambridgesemantics.com\/cambridge-semantics-adds-opencypher-anzograph-2\/\">, fr\u00e5gespr\u00e5ket i Neo4j.<\/a><\/noindex>Stardog st\u00f6djer sin egen <\/li>\n<li>SPARQL och <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_integration_with_sparql_2\">till\u00e4gg<\/a><\/noindex> \u00e5terigen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_example_2\">Gremlin. Att f\u00e5 URI f\u00f6r tripletterna och \"metainformation\" kan g\u00f6ras med en konstruktion som ungef\u00e4r ser ut s\u00e5 h\u00e4r:<\/a><\/noindex> SELECT * {\n    BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)\n    ?id :since ?since\n}<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"sql\">Allegrograph st\u00f6der ocks\u00e5 sin egen<\/code><\/pre>\n<p><\/p>\n<ul>\n<li>SPARQL: <noindex><a rel=\"nofollow\" href=\"https:\/\/franz.com\/agraph\/support\/documentation\/current\/triple-attributes.html#Querying-Attributes-using-SPARQL\">till\u00e4gg<\/a><\/noindex> SELECT * { (\"since\" ?since)  franz:attributesNameValue  ( :bob :marriedTo ?wife ) }<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"sql\"> V\u00c4LJ * { (&quot;sedan&quot; ?since) franz:attributesNameValue ( :bob :gift ?wife ) }<\/code><\/pre>\n<p><\/p>\n<p>VI. F\u00f6rst\u00e4rkning av Licenser<\/p>\n<p><\/p>\n<h2 id=\"vi-uzhestochenie-licenziy\">VI. Sk\u00e4rpning av licenser<\/h2>\n<p><\/p>\n<p>Det har nyligen inte skett n\u00e5gra till\u00e4gg i sk\u00e4rningspunkten mellan \"triplestore of choice\" och \"open source triplestore\". Nya RDF-lager med \u00f6ppen k\u00e4llkod \u00e4r l\u00e5ngt ifr\u00e5n att bli ett bra val f\u00f6r dagligt bruk, och k\u00e4llkoden f\u00f6r nya RDF-lager som man skulle vilja anv\u00e4nda (till exempel AnzoGraph) \u00e4r st\u00e4ngd. Man kan snarare till och med tala om neddragningar\u2026<\/p>\n<p><\/p>\n<p>Sj\u00e4lvklart st\u00e4ngs inte \u00f6ppen k\u00e4llkod, men vissa f\u00f6rr \u00f6ppna k\u00e4llkods-lager b\u00f6rjar gradvis upph\u00f6ra att ses som v\u00e4rdiga alternativ. Virtuoso, som har en opensource-version, sjunker enligt min \u00e5sikt i buggar. Blazegraph har k\u00f6pts av AWS och ligger till grund f\u00f6r Amazon Neptune; nu \u00e4r det oklart om det ens kommer att ske fler releaser. Endast Jena \u00e5terst\u00e5r\u2026<\/p>\n<p><\/p>\n<p>Om \u00f6ppen k\u00e4llkod inte \u00e4r s\u00e5 viktigt, och man bara vill prova, s\u00e5 ser allt ocks\u00e5 mindre lovande ut \u00e4n tidigare. Till exempel:<\/p>\n<p><\/p>\n<ul>\n<li>Stardog <noindex><a rel=\"nofollow\" href=\"https:\/\/community.stardog.com\/t\/update-to-enterprise-and-community-trials\/1533\">slutar<\/a><\/noindex> distribuera en gratisversion (f\u00f6r \u00f6vrigt har den vanliga testperioden f\u00f6rdubblats);<\/li>\n<li>p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.ontotext.com\/\">GraphDB Cloud<\/a><\/noindex>, d\u00e4r man tidigare kunde v\u00e4lja en gratis grundplan, har registreringen av nya anv\u00e4ndare pausats.<\/li>\n<\/ul>\n<p><\/p>\n<p>Sammanfattningsvis blir rymden alltmer otillg\u00e4nglig f\u00f6r den genomsnittliga IT-anv\u00e4ndaren, och att beh\u00e4rska den blir f\u00f6retagens dom\u00e4n.<\/p>\n<p>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/451206\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Semantic Web \u0438 Linked Data \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u0431\u043b\u0438\u0436\u043d\u0435\u043c\u0443 \u043a\u043e\u0441\u043c\u043e\u0441\u0443: \u0436\u0438\u0437\u043d\u0438 \u0442\u0430\u043c \u043d\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0443\u0434\u0430 \u043d\u0430\u00a0\u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0440\u043e\u043a\u2026 \u043d\u0443, \u043d\u0435 \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0432\u0430\u043c \u0432 \u0434\u0435\u0442\u0441\u0442\u0432\u0435 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u00ab\u0445\u043e\u0447\u0443 \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u0441\u043c\u043e\u043d\u0430\u0432\u0442\u043e\u043c\u00bb. \u041d\u043e \u043f\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u043d\u0430 \u0417\u0435\u043c\u043b\u0435; \u0441\u0442\u0430\u0442\u044c \u0430\u0441\u0442\u0440\u043e\u043d\u043e\u043c\u043e\u043c-\u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u043c \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u043c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u043e\u0449\u0435. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043e \u0441\u0432\u0435\u0436\u0438\u0445, \u043d\u0435 \u0441\u0442\u0430\u0440\u0435\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25082,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-33363","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"Semantic Web \u0438 Linked Data \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u0431\u043b\u0438\u0436\u043d\u0435\u043c\u0443 \u043a\u043e\u0441\u043c\u043e\u0441\u0443: \u0436\u0438\u0437\u043d\u0438 \u0442\u0430\u043c \u043d\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0443\u0434\u0430 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0440\u043e\u043a\u2026 \u043d\u0443, \u043d\u0435 \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0432\u0430\u043c \u0432 \u0434\u0435\u0442\u0441\u0442\u0432\u0435 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u00ab\u0445\u043e\u0447\u0443 \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u0441\u043c\u043e\u043d\u0430\u0432\u0442\u043e\u043c\u00bb.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0427\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 RDF-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\u043c\u0438? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Semantic Web \u0438 Linked Data \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u0431\u043b\u0438\u0436\u043d\u0435\u043c\u0443 \u043a\u043e\u0441\u043c\u043e\u0441\u0443: \u0436\u0438\u0437\u043d\u0438 \u0442\u0430\u043c \u043d\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0443\u0434\u0430 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0440\u043e\u043a\u2026 \u043d\u0443, \u043d\u0435 \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0432\u0430\u043c \u0432 \u0434\u0435\u0442\u0441\u0442\u0432\u0435 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u00ab\u0445\u043e\u0447\u0443 \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u0441\u043c\u043e\u043d\u0430\u0432\u0442\u043e\u043c\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:52:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:52:11+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Vad h\u00e4nder nu med RDF-lager? | ProHoster","description":"Semantic Web och Linked Data liknar den n\u00e4rliggande rymden: det finns inget liv d\u00e4r. F\u00f6r att \u00e5ka dit f\u00f6r en mer eller mindre l\u00e4ngre period\u2026 ja, jag vet inte vad de sa till dig som barn n\u00e4r du sade: \"Jag vill bli astronaut.\"","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0427\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 RDF-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\u043c\u0438? | ProHoster","og:description":"Semantic Web \u0438 Linked Data \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u0431\u043b\u0438\u0436\u043d\u0435\u043c\u0443 \u043a\u043e\u0441\u043c\u043e\u0441\u0443: \u0436\u0438\u0437\u043d\u0438 \u0442\u0430\u043c \u043d\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0443\u0434\u0430 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0440\u043e\u043a\u2026 \u043d\u0443, \u043d\u0435 \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0432\u0430\u043c \u0432 \u0434\u0435\u0442\u0441\u0442\u0432\u0435 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u00ab\u0445\u043e\u0447\u0443 \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u0441\u043c\u043e\u043d\u0430\u0432\u0442\u043e\u043c\u00bb.","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:52:11+00:00","article:modified_time":"2019-10-31T18:52:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33363","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 14:56:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:42:22","updated":"2026-01-21 14:56:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/33363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=33363"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/33363\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/25082"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=33363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=33363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=33363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}