{"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\/da\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami","title":{"rendered":"Hvad sker der nu med RDF-lagre?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Semantic Web og Linked Data minder om n\u00e6rfeltet: der er ikke liv der. For at rejse derhen i en mere eller mindre l\u00e6ngere periode... ja, jeg ved ikke, hvad de sagde til dig som barn, n\u00e5r du svarede \"jeg vil v\u00e6re astronaut\". Men man kan observere, hvad der sker, selv mens man er p\u00e5 Jorden; det er meget lettere at blive amat\u00f8rastronom eller endda professionel.<\/p>\n<p><\/p>\n<p>Artiklen vil handle om friske, ikke \u00e6ldre end et par m\u00e5neder, tendenser fra verden af RDF-lagre. Metaforen i det f\u00f8rste afsnit blev inspireret af en episk st\u00f8rrelse reklamebillede under br\u00f8dteksten.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Episk billede<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Hvad sker der nu med RDF-lagre?\" 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 til adgang til 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\/\">Man siger<\/a><\/noindex>, at GraphQL h\u00e6vder at v\u00e6re et universelt sprog til adgang til databaser. Hvordan ser det ud med muligheden for adgang ved hj\u00e6lp af GraphQL til RDF?<\/p>\n<p><\/p>\n<p>\"Out of the box\" giver f\u00f8lgende mulighed:<\/p>\n<p><\/p>\n<ul>\n<li>Stardog (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/graphql-and-paths\/\">blog<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_executing_graphql_queries\">dokumentation<\/a><\/noindex>);<\/li>\n<li>TopQuadrant-produkter (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.topquadrant.com\/2018\/07\/05\/graphql-webinar\/\">webinar<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.topquadrant.com\/technology\/graphql\/\">dokumentation<\/a><\/noindex>).<\/li>\n<\/ul>\n<p><\/p>\n<p>Hvis lageret ikke tilbyder denne mulighed, implementeres den selv ved at skrive en passende \"resolver\". Dette skete for eksempel i det franske projekt <noindex><a rel=\"nofollow\" href=\"https:\/\/framagit.org\/datatourisme\/api\/tree\/master\/src\/Resolver\">DataTourisme<\/a><\/noindex>. Eller man kan allerede nu sige, at man ikke beh\u00f8ver at skrive noget, men blot tage <noindex><a rel=\"nofollow\" href=\"https:\/\/www.hypergraphql.org\/\">HyperGraphQL<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Fra synspunktet af den ortodokse tilh\u00e6nger af Semantic Web og Linked Data er alt dette selvf\u00f8lgelig s\u00f8rgeligt, da det virker beregnet til integrationer bygget op omkring endnu en data silo, og ikke til de platforme (naturligvis RDF-lagre).<\/p>\n<p><\/p>\n<p>Indtryk af sammenligning mellem GraphQL og SPARQL forbliver delte.<\/p>\n<p><\/p>\n<ul>\n<li>P\u00e5 den ene side ser GraphQL ud som en fjern sl\u00e6gtning til SPARQL: det l\u00f8ser de typiske problemer ved REST med overudtagning og multiplicitet af foresp\u00f8rgsler - uden dette, ville man nok ikke kunne kalde det <em>foresp\u00f8rgsels sprog<\/em>, selvom det kun er for web.<\/li>\n<li>P\u00e5 den anden side er det skuffende, at GraphQL er s\u00e5 strengt skematisk. Dens \"introspektivitet\" virker derfor meget begr\u00e6nset sammenlignet med den fulde refleksivitet af RDF. Og der er ingen \u00e6kvivalent til property paths, s\u00e5 det er endda lidt uklart, hvorfor det kaldes \"Graph-\".<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"ii-adaptery-k-mongodb\">II. Adapt\u00f8rer til MongoDB<\/h2>\n<p><\/p>\n<p>Trend, der supplerer den forrige.<\/p>\n<p><\/p>\n<ul>\n<li>I Stardog kan man nu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/native-mongodb-support-is-here\/\">er muligt<\/a><\/noindex> \u2014 specifikt, alt p\u00e5 det samme GraphQL \u2014 indstille visningen af MongoDB-data til virtuelle RDF-grafer;<\/li>\n<li>GraphDB har for nylig <noindex><a rel=\"nofollow\" href=\"http:\/\/graphdb.ontotext.com\/documentation\/8.8\/standard\/integrating-graphdb-with-mongodb.html\">det muligt<\/a><\/noindex> begyndt at inds\u00e6tte fragmenter af MongoDB-foresp\u00f8rgsler i SPARQL.<\/li>\n<\/ul>\n<p><\/p>\n<p>Hvis man ser bredere p\u00e5 adaptere til JSON-kilder, der mere eller mindre 'on the fly' kan repr\u00e6sentere det gemte JSON i disse kilder som RDF, kan man ogs\u00e5 huske p\u00e5 en ret gammel <noindex><a rel=\"nofollow\" href=\"https:\/\/ci.mines-stetienne.fr\/sparql-generate\/\">SPARQL Generere<\/a><\/noindex>, som kan tilpasses, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/sparql-generate\/sparql-generate\">for eksempel<\/a><\/noindex>, til Apache Jena.<\/p>\n<p><\/p>\n<p>Sammenfattende kan man sige om de f\u00f8rste to tendenser, at RDF-lagre viser en fuld beredskab for integrationer og funktion i en situation med \"polyglot persistence\". Det er kendt, at dette seneste ikke l\u00e6ngere er p\u00e5 mode, og at <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gartner.com\/en\/documents\/3105622\">multimodularitet er p\u00e5 vej.<\/a><\/noindex> Hvordan ser det ud med multimodularitet i verden af RDF-lagre?<\/p>\n<p><\/p>\n<p>Kort sagt: Det g\u00f8r det ikke. Emnet om multimodale DBMS fortjener en egen artikel, men for nu kan man bem\u00e6rke, at der i \u00f8jeblikket ikke findes multimodale DBMS, \"baseret\" p\u00e5 grafmodellen (en af arterne af den kan betragtes som RDF). Omdrejningspunktet for en smule multimodularitet \u2014 st\u00f8tte til RDF-lagre for alternativ grafmodel LPG \u2014 vil blive beskrevet i <noindex><a rel=\"nofollow\" href=\"#v-podderzhka-lpg\">afsnit V<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"iii-oltp-vs-olap\">III. OLTP vs. OLAP<\/h2>\n<p><\/p>\n<p>Men Gartner selv <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gartner.com\/en\/documents\/3467318\">skriver<\/a><\/noindex>, at multimodularitet er en betingelse sine qua non prim\u00e6rt for <em>driftsm\u00e6ssige<\/em> DBMS. Dette giver mening: i situationen med \"polyglot persistence\" opst\u00e5r de vigtigste problemer med transaktionsbehandling.<\/p>\n<p><\/p>\n<p>Men hvor ligger RDF-lagre p\u00e5 OLTP\u2014OLAP-skalaen? Jeg ville svare p\u00e5 denne m\u00e5de: ingen af delene. For at betegne hvad de er beregnet til, er der behov for en eller anden tredje forkortelse. Som mulighed ville jeg foresl\u00e5 <em>OLIP<\/em> \u2014 Online Intellektuel Behandling.<\/p>\n<p><\/p>\n<p>Men alligevel:<\/p>\n<p><\/p>\n<ul>\n<li>De mekanismer, der er implementeret i GraphDB for integration med MongoDB, er ikke mindst <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ontotext.com\/company\/news\/ontotexts-graphdb-8-8-0-enriches-the-knowledge-graph-experience\/\">tilpasset<\/a><\/noindex> til at omg\u00e5 problemer med skrivepr\u00e6station;<\/li>\n<li>Stardog g\u00e5r endnu l\u00e6ngere og <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/announcing-stardog-7-beta\/\">genopskriver<\/a><\/noindex> motoren, igen med det form\u00e5l at \u00f8ge skrivepr\u00e6stationen.<\/li>\n<\/ul>\n<p><\/p>\n<p>Og nu tillad mig at pr\u00e6sentere en ny spiller p\u00e5 markedet. Fra skaberne af IBM Netezza og Amazon Redshift \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cambridgesemantics.com\/product\/anzograph\/\">AnzoGraph<\/a><\/noindex>. Billedet fra produktannoncen baseret p\u00e5 den blev pr\u00e6senteret i begyndelsen af artiklen. AnzoGraph positionerer sig selv som en GOLAP-l\u00f8sning. Hvad med SPARQL med vinduesfunktioner? \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>Der blev allerede <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/announcing-stardog-7-beta\/\">henvist<\/a><\/noindex> til anmeldelsen af Stardog 7 Beta, hvor det blev sagt, at Stardog planl\u00e6gger at bruge RocksDB som nedre lagringssystem \u2014 et \"n\u00f8gle-v\u00e6rdi\" lager, Facebooks fork af Googles LevelDB. Hvorfor er det allerede v\u00e6rd at tale om en tendens?<\/p>\n<p><\/p>\n<p>For det f\u00f8rste, if\u00f8lge <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/RocksDB#Alternative_backend\">artiklen i Wikipedia<\/a><\/noindex>, \"transplanteres\" ikke kun RDF-lagre til RocksDB. Der er projekter, som bruger RocksDB som lagringsmotor i ArangoDB, MongoDB, MySQL og MariaDB, Cassandra.<\/p>\n<p><\/p>\n<p>For det andet, projekter (dvs. ikke produkter) af den relevante type udf\u00f8res p\u00e5 RocksDB.<\/p>\n<p><\/p>\n<p>For eksempel bruger eBay RocksDB i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/eBay\/beam\">platformen<\/a><\/noindex> til sin 'vidensgraf'. For resten er det sjovt at l\u00e6se: <em>query-sproget begyndte som et hjemmelavet format, men er p\u00e5 det seneste g\u00e5et hen imod at ligne SPARQL meget mere.<\/em>. Som i en anekdote: hvor mange knowledge graphs vi end laver, s\u00e5 ender det altid med RDF.<\/p>\n<p><\/p>\n<p>Et andet eksempel \u2014 den for et par m\u00e5neder siden lancerede <noindex><a rel=\"nofollow\" href=\"https:\/\/www.wikidata.org\/wiki\/Wikidata:History_Query_Service\">Wikidata History Query Service<\/a><\/noindex>. F\u00f8r dens lancering m\u00e5tte man henvende sig til <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mediawiki.org\/wiki\/Wikidata_Query_Service\/User_Manual\/MWAPI\">MWAPI<\/a><\/noindex> gennem det standard Mediawiki API for at f\u00e5 historiske oplysninger om Wikidata. Nu er meget muligt via ren SPARQL. Under motorhjelmen bruger de ogs\u00e5 RocksDB. For \u00f8vrigt ser det ud til, at en person, der har arbejdet med importen af Freebase til Google Knowledge Graph, lavede WDHQS.<\/p>\n<p><\/p>\n<h2 id=\"v-podderzhka-lpg\">V. Underst\u00f8ttelse af LPG<\/h2>\n<p><\/p>\n<p>Jeg vil minde om den grundl\u00e6ggende forskel mellem LPG-grafer og RDF-grafer.<\/p>\n<p><\/p>\n<p>I LPG kan skal\u00e6re egenskaber h\u00e6nges p\u00e5 eksempler af kanter, mens de i RDF kun kan h\u00e6nges p\u00e5 'typer' af kanter (men ikke kun skal\u00e6re egenskaber, men ogs\u00e5 almindelige relationer). Denne begr\u00e6nsning af RDF i forhold til LPG <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/swbp-n-aryRelations\/\">overvindes<\/a><\/noindex> ved forskellige modelleringsmetoder. Begrundelsen bag LPG i forhold til RDF er sv\u00e6rere at overvinde, men LPG-grafer er mere lig billederne i Yuval Harari's l\u00e6rebog, hvilket er grunden til, at folk \u00f8nsker dem.<\/p>\n<p><\/p>\n<p>\u00c5benlyst opdeles opgaven 'at st\u00f8tte LPG' i to dele:<\/p>\n<p><\/p>\n<ol>\n<li>\u00e6ndringer i RDF-modellen, der g\u00f8r det muligt at imitere LPG-strukturer i den;<\/li>\n<li>\u00e6ndringer i foresp\u00f8rgselssproget for RDF, der g\u00f8r det muligt at f\u00e5 adgang til dataene i denne \u00e6ndrede model \u2014 eller implementering af muligheden for at stille foresp\u00f8rgsler til denne model p\u00e5 popul\u00e6re foresp\u00f8rgselssprog for LPG.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"v1--model-dannyh\">V.1. Datamodel<\/h3>\n<p><\/p>\n<p>Her er der flere mulige tilgange.<\/p>\n<p><\/p>\n<p><strong>V.1.1. Singleton Property<\/strong><\/p>\n<p><\/p>\n<p>Den mest bogstavelige tilgang til at harmonisere RDF og LPG er m\u00e5ske <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>I stedet for for eksempel predikatet <code>:isMarriedTo<\/code> benyttes predikaterne <code>:isMarriedTo1<\/code>, <code>:isMarriedTo2.<\/code> osv.<\/li>\n<li>Derefter bliver disse predikater emner for nye tripletter: <code>:isMarriedTo1 :siden &quot;2013-09-13&quot;^^xsd:date<\/code> og andre.<\/li>\n<li>Relationen mellem disse predikat-eksempler og det f\u00e6lles predikat etableres af tripletter af typen <code>:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.<\/code>.<\/li>\n<li>Det er \u00e5benlyst, at <code>rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type,<\/code>men t\u00e6nk over, hvorfor det ikke giver mening bare at skrive <code>:isMarriedTo1 rdf:type :isMarriedTo.<\/code>.<\/li>\n<\/ul>\n<p><\/p>\n<p>Opn\u00e5elsen af 'underst\u00f8ttelse af LPG' l\u00f8ses her p\u00e5 RDFS-niveauet. Denne l\u00f8sning kr\u00e6ver \u00e6ndringer i det relevante <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/rdf-schema\/\">standard<\/a><\/noindex>. Nogle \u00e6ndringer kan v\u00e6re n\u00f8dvendige fra RDF-lagre, der underst\u00f8tter tilslutning af konsekvenser, mens Singleton Property midlertidigt kan betragtes som endnu en modeleringsteknik.<\/p>\n<p><\/p>\n<p><strong>V.1.2. Reifikation gjort rigtigt<\/strong><\/p>\n<p><\/p>\n<p>Mindre naive tilgange stammer fra en forst\u00e5else af, at instanser af egenskaber kan instansieres af tripletter. N\u00e5r vi har mulighed for at sige noget om tripletter, vil vi ogs\u00e5 f\u00e5 mulighed for at tale om instanser af egenskaber.<\/p>\n<p><\/p>\n<p>Den mest solide af disse tilgange er <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1409.3288\">RDF*<\/a><\/noindex>, ogs\u00e5 kendt som RDR, <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.blazegraph.com\/wiki\/index.php\/Reification_Done_Right\">f\u00f8dt<\/a><\/noindex> i kernen af Blazegraph. Den ble valgt fra starten <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.cambridgesemantics.com\/anzograph\/userdoc\/lpgs.htm\">af<\/a><\/noindex> AnzoGraph. Trov\u00e6rdigheden af tilgangen bestemmes af, at de relevante \u00e6ndringer i <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1406.3399\">tilbydes<\/a><\/noindex> RDF Semantics <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/rdf11-mt\/\">. Essensen er imidlertid meget enkel. I Turtle-serialiseringen af RDF kan man nu skrive noget som:<\/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; :siden &quot;2013-09-13&quot;^^xsd:date .<\/code><\/pre>\n<p><\/p>\n<p><strong>Man kan undg\u00e5 at bekymre sig om formel semantik og blot betragte tripletter som om de har nogle identifikatorer, som naturligvis er URI'er, og skabe nye tripletter med disse URI'er. Det vil kun v\u00e6re n\u00f8dvendigt at give adgang til disse URI'er i SPARQL. S\u00e5<\/strong><\/p>\n<p><\/p>\n<p>g\u00f8r <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_motivation_implementation\">Stardog.<\/a><\/noindex> I Allegrograph <\/p>\n<p><\/p>\n<p>en melleml\u00f8sning. Det er kendt, at identifikatorer til tripletter i Allegrograph <noindex><a rel=\"nofollow\" href=\"https:\/\/franz.com\/agraph\/support\/documentation\/current\/triple-attributes.html\">et gensidigt kompromis og blev enige om at overf\u00f8re dele af koden fra Zinc til den prim\u00e6re kerne. I det v\u00e6sentlige vil nogle komponenter fra Zinc blive overf\u00f8rt til kernen, men ikke som et separat API, men som en del af Crypto API-subsystemet. For eksempel er i Crypto API allerede<\/a><\/noindex> , men n\u00e5r man implementerer triple attributes, er de ikke synlige udadtil. Men der er stadig lang vej til formel semantik. Det er bem\u00e6rkelsesv\u00e6rdigt, at attributterne for tripletter ikke er URI'er, og v\u00e6rdierne af disse attributter kan kun v\u00e6re litteraler. Tilh\u00e6ngere af LPG f\u00e5r pr\u00e6cist det, de \u00f8nskede. I et s\u00e6rligt opfundet format NQX ser et eksempel, der svarer til det ovenn\u00e6vnte for RDF*, s\u00e5ledes ud: <noindex><a rel=\"nofollow\" href=\"https:\/\/franz.com\/agraph\/support\/documentation\/current\/triple-index.html\">er<\/a><\/noindex>:bob :marriedTo :alice {\"since\" : \"2013-09-13\"}<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">:bob :giftetTil :alice {&quot;siden&quot; : &quot;2013-09-13&quot;}<\/code><\/pre>\n<p><\/p>\n<h3 id=\"v2-yazyki-zaprosov\">N\u00e5r LPG er blevet underst\u00f8ttet p\u00e5 en eller anden m\u00e5de p\u00e5 modelniveau, er det n\u00f8dvendigt at give mulighed for at lave foresp\u00f8rgsler til data i en s\u00e5dan model.<\/h3>\n<p><\/p>\n<p>Blazegraph underst\u00f8tter foresp\u00f8rgsler til RDF* med<\/p>\n<p><\/p>\n<ul>\n<li>SPARQL* <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.blazegraph.com\/wiki\/index.php\/Reification_Done_Right\">Gremlin<\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/blazegraph\/tinkerpop3\/blob\/master\/README.md\">. En foresp\u00f8rgsel i SPARQL* ser s\u00e5ledes ud:<\/a><\/noindex>SELECT * { &lt;&gt; :since ?since }<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"sql\"> AnzoGraph underst\u00f8tter ogs\u00e5<\/code><\/pre>\n<p><\/p>\n<ul>\n<li>og planl\u00e6gger at st\u00f8tte <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.cambridgesemantics.com\/anzograph\/userdoc\/lpgs.htm\">Gremlin<\/a><\/noindex> Cypher <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cambridgesemantics.com\/cambridge-semantics-adds-opencypher-anzograph-2\/\">, sp\u00f8rgesproget i Neo4j.<\/a><\/noindex>Stardog underst\u00f8tter sit eget <\/li>\n<li>SPARQL og <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_integration_with_sparql_2\">udvidelse<\/a><\/noindex> igen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_example_2\">Gremlin. I SPARQL kan man f\u00e5 URI'en for tripletter og 'metainformation' med hj\u00e6lp af en konstruktion som denne:<\/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 underst\u00f8tter ogs\u00e5 sit eget<\/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\">udvidelse<\/a><\/noindex> SELECT * { (\"since\" ?since)  franz:attributesNameValue  ( :bob :marriedTo ?wife ) }<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"sql\"> SELECT * { (&quot;siden&quot; ?since)  franz:attributesNameValue  ( :bob :giftetTil ?wife ) }<\/code><\/pre>\n<p><\/p>\n<p>For resten, GraphDB underst\u00f8ttede engang Tinkerpop\/Gremlin uden at underst\u00f8tte LPG, men i version 8.0 eller 8.1 stoppede dette.<\/p>\n<p><\/p>\n<h2 id=\"vi-uzhestochenie-licenziy\">VI. Strammere licenser<\/h2>\n<p><\/p>\n<p>Der har ikke v\u00e6ret nogen tilf\u00f8jelser i krydsningen mellem \"triplestore of choice\" og \"open source triplestore\" p\u00e5 det seneste. Nye RDF-lagringssystemer med \u00e5bne kilder er langt fra at v\u00e6re et godt valg til daglig brug, og kildekoden til nye RDF-lagre, som man gerne vil benytte (som AnzoGraph), er lukket. Man kan snarere tale om nedsk\u00e6ringer\u2026<\/p>\n<p><\/p>\n<p>Selvf\u00f8lgelig lukkes ikke tidligere \u00e5bne kilder, men nogle lagre med \u00e5bne kilder bliver gradvist mindre betragtelige som valg. Virtuoso, der har en opensource-udgave, synker efter min mening i fejl. Blazegraph er blevet k\u00f8bt af AWS og ligger til grund for Amazon Neptune; nu er det uklart, om der nogensinde vil komme en anden version. Der er kun Jena\u2026<\/p>\n<p><\/p>\n<p>Hvis \u00e5bne kilder ikke er s\u00e5 vigtige, og man bare vil pr\u00f8ve, s\u00e5 ser det heller ikke s\u00e5 lyst ud som f\u00f8r. For eksempel:<\/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\">stopper<\/a><\/noindex> udbyder en gratis version (men pr\u00f8vetiden er dog blevet fordoblet);<\/li>\n<li>i <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.ontotext.com\/\">GraphDB Cloud<\/a><\/noindex>, hvor det tidligere var muligt at v\u00e6lge en gratis basisplan, er registreringen af nye brugere suspenderet.<\/li>\n<\/ul>\n<p><\/p>\n<p>Generelt bliver rummet for den almindelige IT-bruger stadig mere og mere utilg\u00e6ngeligt, og udforskningen af det bliver virksomheders privilegium.<\/p>\n<p>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Hvad sker der nu med RDF-lagringssystemerne? | ProHoster","description":"Semantic Web og Linked Data ligner den n\u00e6re rummet: der er intet liv der. For at tage derhen for en mere eller mindre lang periode\u2026 tja, jeg ved ikke, hvad de sagde til dig som barn, n\u00e5r du sagde \"jeg vil v\u00e6re astronaut\".","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/33363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=33363"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/33363\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/25082"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=33363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=33363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=33363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}