{"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\/hr\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami","title":{"rendered":"\u0160to se trenutno doga\u0111a s RDF skladi\u0161tima?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Semanti\u010dki web i Linked Data sli\u010de bliskom svemiru: \u017eivot tamo ne postoji. Da biste otputovali tamo na malo du\u017ei vremenski period\u2026 pa, ne znam \u0161to su vam govorili u djetinjstvu u odgovoru na \"\u017eelim postati astronaut\". No, mo\u017eete promatrati doga\u0111anja i dok ste na Zemlji; postati amater astronom ili \u010dak profesionalac daleko je jednostavnije.<\/p>\n<p><\/p>\n<p>U \u010dlanku \u0107e se raspraviti o svje\u017eim trendovima iz svijeta RDF skladi\u0161ta, koji nisu stariji od nekoliko mjeseci. Metafora u prvom odlomku inspirirana je epskih razmjera reklamnom slikom ispod.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Epska slika<\/b><\/p>\n<p><img decoding=\"async\" alt=\"\u0160to se trenutno doga\u0111a s RDF skladi\u0161tima?\" 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 za pristup RDF-u<\/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\/\">Ka\u017eu<\/a><\/noindex>, da GraphQL pretendira postati univerzalni jezik za pristup bazama podataka. A kakva je situacija s mogu\u0107no\u0161\u0107u pristupa RDF-u koriste\u0107i GraphQL?<\/p>\n<p><\/p>\n<p>\"Iz kutije\" takvu mogu\u0107nost pru\u017eaju:<\/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\">dokumentacija<\/a><\/noindex>);<\/li>\n<li>proizvodi TopQuadrant (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.topquadrant.com\/2018\/07\/05\/graphql-webinar\/\">v\u0435\u0431\u0438\u043d\u0430\u0440<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.topquadrant.com\/technology\/graphql\/\">dokumentacija<\/a><\/noindex>).<\/li>\n<\/ul>\n<p><\/p>\n<p>Ako skladi\u0161te ne pru\u017ea takvu mogu\u0107nost, realiziraju je sami, pi\u0161u\u0107i odgovaraju\u0107i \"resolver\". Tako su postupili, primjerice, u francuskom projektu <noindex><a rel=\"nofollow\" href=\"https:\/\/framagit.org\/datatourisme\/api\/tree\/master\/src\/Resolver\">DataTourisme<\/a><\/noindex>. Ili mo\u017eete samo uzeti <noindex><a rel=\"nofollow\" href=\"https:\/\/www.hypergraphql.org\/\">HyperGraphQL<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>S gledi\u0161ta ortodoksnog prista\u0161e Semanti\u010dkog weba i Linked Data, sve to izgleda, naravno, tu\u017eno, jer se \u010dini predvi\u0111eno za integracije koje se oslanjaju na nove data silo, a ne prikladne za platforme (naravno, RDF skladi\u0161ta).<\/p>\n<p><\/p>\n<p>Utisci o usporedbi GraphQL-a i SPARQL-a ostaju dvozna\u010dni.<\/p>\n<p><\/p>\n<ul>\n<li>S jedne strane, GraphQL izgleda kao daleki ro\u0111ak SPARQL-a: rje\u0161ava karakteristi\u010dne probleme iz REST-a kao \u0161to su vi\u0161ekratni zahtjevi i vi\u0161estruko povla\u010denje - bez \u010dega, vjerojatno, ne bi mogao biti smatran <em>jezikom upita<\/em>, \u010dak i za web;<\/li>\n<li>S druge strane, \u017eestoka shemati\u010dnost GraphQL-a razo\u010darava. Posljedi\u010dno, njegova \"introspektivnost\" \u010dini se vrlo ograni\u010denom u usporedbi s punom refleksivno\u0161\u0107u RDF-a. I nema nikakvog ekvivalenta property paths, tako da nije ni jasno za\u0161to se zove \"Graph-\".<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"ii-adaptery-k-mongodb\">II. Adapteri za MongoDB<\/h2>\n<p><\/p>\n<p>Trend koji dopunjuje prethodni.<\/p>\n<p><\/p>\n<ul>\n<li>u Stardogu sada <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/native-mongodb-support-is-here\/\">mo\u017eda<\/a><\/noindex> \u2014 posebice, sve na istom GraphQL-u \u2014 omogu\u0107iti mapping podataka iz MongoDB-a u virtualne RDF grafove;<\/li>\n<li>GraphDB je nedavno <noindex><a rel=\"nofollow\" href=\"http:\/\/graphdb.ontotext.com\/documentation\/8.8\/standard\/integrating-graphdb-with-mongodb.html\">omogu\u0107ava<\/a><\/noindex> omogu\u0107io umetanje fragmenata iz MongoDB Query-a u SPARQL.<\/li>\n<\/ul>\n<p><\/p>\n<p>Govore\u0107i op\u0107enitije, o adapterima za JSON izvore koji omogu\u0107uju vi\u0161e-manje \"u hodu\" predstavljanje JSON-a pohranjenog u tim izvorima kao RDF, treba spomenuti i prili\u010dno dugo postoje\u0107i <noindex><a rel=\"nofollow\" href=\"https:\/\/ci.mines-stetienne.fr\/sparql-generate\/\">SPARQL Generate<\/a><\/noindex>, koji se mo\u017ee prilagoditi, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/sparql-generate\/sparql-generate\">na primjer<\/a><\/noindex>, za Apache Jena.<\/p>\n<p><\/p>\n<p>Sa\u017eimaju\u0107i prva dva trenda, mo\u017ee se re\u0107i da RDF skladi\u0161ta pokazuju potpunu spremnost za integracije i funkcioniranje u uvjetima \"vi\u0161estranog skladi\u0161tenja\" (polyglot persistence). Poznato je, me\u0111utim, da ovo posljednje ve\u0107 davno nije u modi, i na njegovo mjesto <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gartner.com\/en\/documents\/3105622\">dolazi<\/a><\/noindex> multimodelnost. A kakva je situacija s multimodelno\u0161\u0107u u svijetu RDF skladi\u0161ta?<\/p>\n<p><\/p>\n<p>U kratkim crtama, nikakva. Temi multimodelnih DBMS-a \u017eelim posvetiti poseban \u010dlanak, dok se zasad mo\u017ee primijetiti da multimodelni DBMS-i, \"temeljeni\" na grafi\u010dkom modelu (jedan od njegovih varijanti mo\u017ee biti RDF), trenutno ne postoje. O nekoj maloj multimodelnosti \u2014 podr\u0161ci RDF skladi\u0161tima za alternativni grafi\u010dki model LPG \u2014 bit \u0107e rije\u010di u <noindex><a rel=\"nofollow\" href=\"#v-podderzhka-lpg\">odjeljku V<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"iii-oltp-vs-olap\">III. OLTP vs. OLAP<\/h2>\n<p><\/p>\n<p>Ipak, i Gartner ka\u017ee <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gartner.com\/en\/documents\/3467318\">pi\u0161e<\/a><\/noindex>, da je multimodelnost osnovni uvjet, prije svega za <em>operativne<\/em> DBMS-e. \u0160to je i razumljivo: u situaciji \"vi\u0161estranog skladi\u0161tenja\" glavni problemi javljaju se s transakcionalno\u0161\u0107u.<\/p>\n<p><\/p>\n<p>Samo, gdje se na ljestvici OLTP\u2014OLAP nalaze RDF skladi\u0161ta? Odgovorio bih ovako: ni ovdje ni tamo. Da bismo ozna\u010dili ono za \u0161to su namijenjena, potrebna nam je neka tre\u0107a kratica. Kao opciju bih predlo\u017eio <em>OLIP<\/em> \u2014 Online Intellectual Processing.<\/p>\n<p><\/p>\n<p>Ipak, ipak:<\/p>\n<p><\/p>\n<ul>\n<li>mehanizmi integracije \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0438 \u0443 GraphDB, nisu nimalo manje <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ontotext.com\/company\/news\/ontotexts-graphdb-8-8-0-enriches-the-knowledge-graph-experience\/\">namijenjeni<\/a><\/noindex> za zaobila\u017eenje problema s performansama zapisivanja;<\/li>\n<li>Stardog ide jo\u0161 dalje i potpuno <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/announcing-stardog-7-beta\/\">prepisuje<\/a><\/noindex> motor, ponovo s ciljem pove\u0107anja performansi zapisivanja.<\/li>\n<\/ul>\n<p><\/p>\n<p>A sada dozvolite da predstavim novog igra\u010da na tr\u017ei\u0161tu. od stvaratelja IBM Netezza i Amazon Redshift \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cambridgesemantics.com\/product\/anzograph\/\">AnzoGraph<\/a><\/noindex>. Slika iz reklame proizvoda na njegovoj bazi objavljena je na po\u010detku \u010dlanka. AnzoGraph se pozicionira kao GOLAP rje\u0161enje. \u0160to ka\u017eete na SPARQL s funkcijama prozora? \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>Ve\u0107 je <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/announcing-stardog-7-beta\/\">bila poveznica<\/a><\/noindex> na najavu Stardog 7 Beta, gdje je re\u010deno da Stardog planira koristiti RocksDB kao temeljni sustav skladi\u0161tenja \u2014 skladi\u0161te \"klju\u010d-vrijednost\", Facebook-ov fork Googlove LevelDB. Za\u0161to se ve\u0107 razgovara o nekom trendu?<\/p>\n<p><\/p>\n<p>Prvo, prema <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/RocksDB#Alternative_backend\">\u010dlanku na Wikipediji<\/a><\/noindex>, na RocksDB \"prilaze\" ne samo RDF skladi\u0161ta. Postoje projekti za kori\u0161tenje RocksDB kao skladi\u0161nog motora u ArangoDB, MongoDB, MySQL i MariaDB, Cassandra.<\/p>\n<p><\/p>\n<p>Drugo, na RocksDB se razvijaju projekti (tj. ne proizvodi) relevantne tematike.<\/p>\n<p><\/p>\n<p>Na primjer, eBay koristi RocksDB u <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/eBay\/beam\">platformi<\/a><\/noindex> za svoj \u00abgraf znanja\u00bb. Usput, zanimljivo je pro\u010ditati: <em>jezi\u010dni okvir zapo\u010deo je kao doma\u0107i format, ali u posljednje vrijeme se sve vi\u0161e prelazi na sli\u010dniji SPARQL<\/em>. Kao u vicevu: bez obzira koliko puta radimo graf znanja, uvijek nam ispadne RDF.<\/p>\n<p><\/p>\n<p>Drugi primjer \u2014 usluga <noindex><a rel=\"nofollow\" href=\"https:\/\/www.wikidata.org\/wiki\/Wikidata:History_Query_Service\">Wikidata History Query Service<\/a><\/noindex>. Prije njegova pojavljivanja, za povijesne podatke o Wikidatama trebalo je koristiti <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mediawiki.org\/wiki\/Wikidata_Query_Service\/User_Manual\/MWAPI\">MWAPI<\/a><\/noindex> standardni Mediawiki API. Sada je mnogo toga mogu\u0107e uz \u010disti SPARQL. \u00abIspod haube\u00bb tako\u0111er se nalazi RocksDB. Usput, WDHQS je, izgleda, napravila osoba koja se bavila unosom Freebasea u Google Knowledge Graph.<\/p>\n<p><\/p>\n<h2 id=\"v-podderzhka-lpg\">V. Podr\u0161ka LPG<\/h2>\n<p><\/p>\n<p>Podsje\u0107am na glavnu razliku izme\u0111u LPG-grafova i RDF-grafova.<\/p>\n<p><\/p>\n<p>U LPG-u, na primjerima rubova mogu se dodavati skalarni atributi, dok se u RDF-u oni mogu dodati samo na \u00abtipove\u00bb rubova (ali ne samo skalarni atributi, ve\u0107 i obi\u010dne veze). Ova ograni\u010denost RDF-a u odnosu na LPG <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/swbp-n-aryRelations\/\">prevladava<\/a><\/noindex> raznim tehnikama modeliranja. Me\u0111utim, ograni\u010denja LPG-a u odnosu na RDF je te\u017ee prevladati, ali LPG-grafovi vi\u0161e sli\u010du na slike iz ud\u017ebenika Hararija, \u0161to ih \u010dini privla\u010dnijima ljudima.<\/p>\n<p><\/p>\n<p>O\u010digledno, zadatak \u00abpodr\u0161ke LPG\u00bb dijeli se u dva dijela:<\/p>\n<p><\/p>\n<ol>\n<li>uvo\u0111enje promjena u RDF modelu koje omogu\u0107uju simulaciju LPG konstrukcija;<\/li>\n<li>uvo\u0111enje promjena u jeziku upita za RDF koje omogu\u0107uju pristup podacima u ovom izmijenjenom modelu \u2014 ili implementacija mogu\u0107nosti upita o ovom modelu na popularnim jezicima upita za LPG.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"v1--model-dannyh\">V.1. Model podataka<\/h3>\n<p><\/p>\n<p>Postoji nekoliko mogu\u0107ih pristupa.<\/p>\n<p><\/p>\n<p><strong>V.1.1. Singleton Atribut<\/strong><\/p>\n<p><\/p>\n<p>Najizravniji pristup harmonizaciji RDF-a i LPG-a je, vjerojatno, <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>Umjesto, na primjer, predikata <code>:isMarriedTo<\/code> koriste se predikati <code>:isMarriedTo1<\/code>, <code>:isMarriedTo2<\/code> itd.<\/li>\n<li>Zatim ti predikati postaju subjekti novih trojki: <code>:isMarriedTo1 :od &quot;2013-09-13&quot;^^xsd:date<\/code> itd.<\/li>\n<li>Veza tih instanci predikata s op\u0107im predikatom uspostavlja se trojkama poput <code>:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo<\/code>.<\/li>\n<li>O\u010digledno je da <code>rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type<\/code>, ali razmislite za\u0161to nije dobro pisati jednostavno <code>:isMarriedTo1 rdf:type :isMarriedTo<\/code>.<\/li>\n<\/ul>\n<p><\/p>\n<p>Zadatak \u00abpodr\u0161ke LPG\u00bb ovdje se rje\u0161ava na razini RDFS-a. Takvo rje\u0161enje zahtijeva uvo\u0111enje u odgovaraju\u0107i <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/rdf-schema\/\">standard<\/a><\/noindex>. Mo\u017eda \u0107e biti potrebne izmjene od RDF skladi\u0161ta koja podr\u017eavaju pridru\u017eivanje posljedica, a dok se to ne dogodi, Singleton Property se mo\u017ee smatrati jo\u0161 jednom tehnikom modeliranja.<\/p>\n<p><\/p>\n<p><strong>V.1.2. Pravilna Reifikacija<\/strong><\/p>\n<p><\/p>\n<p>Manje naivni pristupi proiza\u0161li su iz spoznaje da se instanciraju svojstva zajedno s trojicama. Imaju\u0107i mogu\u0107nost govoriti o trojicama, ste\u0107i \u0107emo mogu\u0107nost razgovora o instancama svojstava.<\/p>\n<p><\/p>\n<p>Najozbiljniji od ovih pristupa je <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1409.3288\">RDF*<\/a><\/noindex>, tako\u0111er poznat kao RDR, <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.blazegraph.com\/wiki\/index.php\/Reification_Done_Right\">ro\u0111en<\/a><\/noindex> u sr\u017ei Blazegraph-a. Od samog po\u010detka <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.cambridgesemantics.com\/anzograph\/userdoc\/lpgs.htm\">odabran<\/a><\/noindex> za sebe i AnzoGraph. Ozbiljnost pristupa odre\u0111ena je tim da u okviru njega <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1406.3399\">predlo\u017eeni<\/a><\/noindex> odgovaraju\u0107e promjene u <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/rdf11-mt\/\">RDF Semantics<\/a><\/noindex>. Su\u0161tina, me\u0111utim, veoma je jednostavna. U Turtle serijalizaciji RDF-a sada mo\u017eemo pisati otprilike ovako:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">&lt;&lt;:bob :isMarriedTo :alice&gt;&gt; :od &quot;2013-09-13&quot;^^xsd:date .<\/code><\/pre>\n<p><\/p>\n<p><strong>V.1.3. Ostali pristupi<\/strong><\/p>\n<p><\/p>\n<p>Nije potrebno brinuti se o formalnoj semantici, ve\u0107 jednostavno smatrati da trojice imaju odre\u0111ene identifikatore, koji su naravno URI, i sastavljati nove trojice s tim URI-ima. Ostaje samo omogu\u0107iti pristup tim URI-ima u SPARQL-u. Tako <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_motivation_implementation\">dolaze<\/a><\/noindex> Stardog. <\/p>\n<p><\/p>\n<p>U Allegrographu <noindex><a rel=\"nofollow\" href=\"https:\/\/franz.com\/agraph\/support\/documentation\/current\/triple-attributes.html\">pristali su<\/a><\/noindex> posrednim putem. Poznato je da identifikatori trojica u Allegrographu <noindex><a rel=\"nofollow\" href=\"https:\/\/franz.com\/agraph\/support\/documentation\/current\/triple-index.html\">ima<\/a><\/noindex>, ali kada se implementiraju triple attributes, ne izlaze van. Ipak, do formalne semantike je veoma daleko. Zanimljivo je da atributi trojica nisu URI, a vrijednosti tih atributa tako\u0111er mogu biti samo litere. Prista\u0161e LPG-a dobivaju to\u010dno ono \u0161to su \u017eeljeli. U posebno izmi\u0161ljenom formatu NQX primjer, sli\u010dan onome navedenom za RDF*, izgleda ovako:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">:bob :marriedTo :alice {&quot;od&quot; : &quot;2013-09-13&quot;}<\/code><\/pre>\n<p><\/p>\n<h3 id=\"v2-yazyki-zaprosov\">V.2. Jezici upita<\/h3>\n<p><\/p>\n<p>Podr\u017eav\u0161i na neki na\u010din LPG na razini modela, potrebno je omogu\u0107iti upite za podatke u takvom modelu.<\/p>\n<p><\/p>\n<ul>\n<li>Blazegraph podr\u017eava upite za RDF* putem <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.blazegraph.com\/wiki\/index.php\/Reification_Done_Right\">SPARQL*<\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/blazegraph\/tinkerpop3\/blob\/master\/README.md\">Gremlin<\/a><\/noindex>. Upit za SPARQL* izgleda ovako:<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"sql\"> SELECT * { &lt;&gt; :since ?since }<\/code><\/pre>\n<p><\/p>\n<ul>\n<li>AnzoGraph tako\u0111er podr\u017eava <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.cambridgesemantics.com\/anzograph\/userdoc\/lpgs.htm\">SPARQL*<\/a><\/noindex> i planira podr\u017eati <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cambridgesemantics.com\/cambridge-semantics-adds-opencypher-anzograph-2\/\">Cypher<\/a><\/noindex>, jezik upita u Neo4j. <\/li>\n<li>Stardog podr\u017eava vlastiti <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_integration_with_sparql_2\">pro\u0161irenje<\/a><\/noindex> SPARQL i <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_example_2\">opet<\/a><\/noindex> Gremlin. URI trepeta i \u201emetainformacije\u201c mogu se dobiti u SPARQL-u koriste\u0107i otprilike takvu konstrukciju:<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"sql\">SELECT * {\n    BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)\n    ?id :since ?since\n}<\/code><\/pre>\n<p><\/p>\n<ul>\n<li>Allegrograph tako\u0111er podr\u017eava vlastiti <noindex><a rel=\"nofollow\" href=\"https:\/\/franz.com\/agraph\/support\/documentation\/current\/triple-attributes.html#Querying-Attributes-using-SPARQL\">pro\u0161irenje<\/a><\/noindex> SPARQL:<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"sql\"> ODABERI * { (&quot;od&quot; ?since)  franz:attributesNameValue  ( :bob :marriedTo ?wife ) }<\/code><\/pre>\n<p><\/p>\n<p>Usput, GraphDB je neko vrijeme podr\u017eavala Tinkerpop\/Gremlin, ne podr\u017eavaju\u0107i pritom LPG, ali u verziji 8.0 ili 8.1 to je prestalo.<\/p>\n<p><\/p>\n<h2 id=\"vi-uzhestochenie-licenziy\">VI. O\u0161triji Uvjeti Licenciranja<\/h2>\n<p><\/p>\n<p>Nema novih dodataka u presjeku izme\u0111u \u2018triplestore of choice\u2019 i \u2018open source triplestore\u2019 u posljednje vrijeme. Nova RDF skladi\u0161ta s otvorenim izvorom jo\u0161 uvijek nisu ostvarila dobre pozicije za svakodnevnu upotrebu, a izvorni kod novih RDF skladi\u0161ta koja bi se mogla koristiti (poput AnzoGraph) je zatvoren. \u010cini se da se \u010dak mo\u017ee govoriti i o smanjenju\u2026<\/p>\n<p><\/p>\n<p>Naravno, prethodno otvoreni izvor ne postaje zatvoren, ali neka skladi\u0161ta s otvorenim izvorom postepeno prestaju biti smatrana dostojnim izborom. Smatram da Virtuoso, koji ima opensource izdanje, tonuti u bugovima. Blazegraph je kupio AWS i postao temelj za Amazon Neptune; sada nije jasno ho\u0107e li biti jo\u0161 jednog izdanja. Ostaje samo Jena\u2026<\/p>\n<p><\/p>\n<p>Ako otvoreni izvor nije toliko va\u017ean, a \u017eelite samo isprobati, situacija je i dalje manje povoljna nego ranije. Na primjer:<\/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\">prestaje<\/a><\/noindex> distribuirati besplatnu verziju (me\u0111utim, dvostruko je produ\u017een probni period za obi\u010dnu verziju);<\/li>\n<li>u <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.ontotext.com\/\">GraphDB Cloud<\/a><\/noindex>, gdje je ranije bilo mogu\u0107e odabrati besplatni osnovni plan, obustavljena je registracija novih korisnika.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ukratko, za obi\u010dnog IT korisnika svemir postaje sve nedostupniji, a njegovo istra\u017eivanje postaje privilegija korporacija.<\/p>\n<p>Izvor: <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\/hr\/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=\"hr_HR\" \/>\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\/hr\/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\udd47 \u0160to se trenutno doga\u0111a s RDF skladi\u0161tima? | ProHoster","description":"Semantic Web i Linked Data su sli\u010dni bliskom svemiru: nema \u017eivota. Da biste se tamo uputili na ne\u0161to du\u017ee vrijeme\u2026 pa, ne znam \u0161to su vam govorili u djetinjstvu na \u2018\u017eelim postati astronaut\u2019.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","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\/hr\/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\/hr\/wp-json\/wp\/v2\/posts\/33363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=33363"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/33363\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/25082"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=33363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=33363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=33363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}