Co se teď děje se skladovacími RDF?

Semantic Web a Linked Data jsou podobné blízkému vesmíru: život tam není. Abychom se tam vydali na delší dobu... no, nevím, co vám v dětství říkali na otázku "chci být astronautem". Ale pozorovat, co se děje, lze i na Zemi; stát se amatérským nebo dokonce profesionálním astronomem je mnohem snazší.

Tento článek se zaměří na aktuální trendy ze světa RDF úložišť, které jsou maximálně několik měsíců staré. Metafora v prvním odstavci byla inspirována epickou reklamní grafikou pod tímto odstavcem.


Epická grafika

Co se teď děje se skladovacími RDF?

I. GraphQL pro přístup k RDF

Říká se, že GraphQL se pokouší stát univerzálním jazykem pro přístup k databázím. Jak je to ale s možností přístupu k RDF pomocí GraphQL?

"Z krabice" tuto možnost poskytují:

Pokud úložiště tuto možnost nenabízí, implementují ji sami napsáním příslušného „rozpoznávače“ (resolver). Tak to udělali například ve francouzském projektu DataTourisme. Nebo už nemusíme nic psát, stačí vzít HyperGraphQL.

Z pohledu ortodoxního zastánce Semantic Web a Linked Data je to samozřejmě smutné, protože to vypadá, že je určeno pro integrace stavěné kolem dalších data silos, nikoli pro platformy (samozřejmě, RDF úložišť).

Dojmy ze srovnání GraphQL se SPARQL zůstávají rozporuplné.

  • Na jedné straně, GraphQL vypadá jako vzdálený příbuzný SPARQL: řeší typické problémy REST, jako je nadměrné načítání a vícenásobné dotazy — bez kterých by se asi nedalo považovat za jazyk dotazů, i když pro web;
  • Na druhé straně, zklamává rigidnost struktury GraphQL. Odpovídajícím způsobem se jeho „introspektivnost“ zdá být velmi omezená v porovnání s plnou reflexivitou RDF. A neexistuje žádný ekvivalent property paths, takže není jasné, proč se nazývá "Graph-".

II. Adaptory pro MongoDB

Trend, který doplňuje předchozí.

  • ve Stardog nyní možné — zejména na stejném GraphQL — je nastavena konverze dat z MongoDB do virtuálních RDF grafů;
  • GraphDB nedávno umožňuje umožňuje vkládat fragmenty MongoDB Query do SPARQL.

Pokud mluvíme obecněji o adaptorech k JSON zdrojům, které umožňují více či méně „na běžícím pásu“ představovat JSON uložený v těchto zdrojích jako RDF, můžeme vzpomenout na poměrně starý SPARQL Generate, který lze připojit, například, k Apache Jena.

Shrnující první dva trendy lze říci, že RDF úložiště vykazují plnou připravenost k integracím a fungování v podmínkách „polyglot persistence“. Je známo, že to poslední už dávno není v módě a na jeho místo se blíží multimodelnost. A jak to vypadá s multimodelností ve světě RDF úložišť?

Pokud to shrneme, tak nijak. Tématu multimodelních DBMS bychom chtěli věnovat samostatný článek, zatím si můžeme povšimnout, že multimodelní DBMS, „založené“ na grafovém modelu (jednu jeho variantu lze považovat za RDF), v současnosti neexistují. O nějaké malé multimodelnosti — podpoře RDF úložišti alternativního grafového modelu LPG — bude vyprávěno v oddíle V.

III. OLTP vs. OLAP

Nicméně, i Gartner píše, že multimodelnost je podmínka sine qua non především pro operační DBMS. To je samozřejmé: v situaci „polyglot persistence“ vznikají hlavní problémy s transakčností.

Ale kde se nacházejí RDF úložiště na škále OLTP—OLAP? Odpověděl bych takto: ani tam, ani tam. K označení toho, k čemu jsou určena, je potřeba nějaká třetí zkratka. Jako variantu bych navrhl OLIP — Online Intellectual Processing.

A přesto:

. Obrázek z reklamy na produkt založený na něm byl umístěn na začátku článku. AnzoGraph se prezentuje jako GOLAP řešení. Co říkáte na SPARQL s oknovými funkcemi? — SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { … }IV. RocksDB

Dříve už

byl odkaz

na oznámení Stardog 7 Beta, kde se říkalo, že Stardog hodlá použít jako podkladový systém úložiště RocksDB — úložiště „klíč-hodnota“, facebookový fork googleovského LevelDB. Proč už stojí za to mluvit o určitém trendu? Za prvé, podle článku na Wikipedii

, na RocksDB „přecházejí“ nejen RDF úložiště. Existují projekty zaměřené na použití RocksDB jako úložiště v ArangoDB, MongoDB, MySQL a MariaDB, Cassandra. Za druhé, na RocksDB se dělají projekty (tj. neprodukty) příslušné tematiky., do RocksDB „přesazují“ nejen RDF úložiště. Existují projekty, které využívají RocksDB jako úložný engine v ArangoDB, MongoDB, MySQL a MariaDB, Cassandra.

Za druhé, na RocksDB se realizují projekty (tj. nikoli produkty) odpovídající tematice.

Například eBay používá RocksDB v platformě pro svůj „graf znalostí“. Mimochodem, je zajímavé číst: jazyk dotazů začal jako interní formát, ale v poslední době se hodně přibližuje SPARQL.. Jako v anekdotě: kolik knowledge graph nevytváříme, vždy dostaneme RDF.

Dalším příkladem je služba, která se objevila před několika měsíci, Wikidata History Query Service. Před jejím vznikem jsme museli na historické údaje Wikidat přistupovat přes MWAPI přes standardní Mediawiki API. Nyní je mnoho věcí možné na čistém SPARQL. „Pod kapotou“ také běží RocksDB. Mimochodem, WDHQS vytvořil, zdá se, člověk, který se zabýval importem Freebase do Google Knowledge Graph.

V. Podpora LPG

Připomínám hlavní rozdíl mezi LPG grafy a RDF grafy.

V LPG mohou být k instancím hraně přidělovány skalární vlastnosti, zatímco v RDF mohou být přidělovány pouze k „typům“ hran. (Na druhou stranu, nejen skalární vlastnosti, ale i běžné vztahy). Tento limit RDF ve srovnání s LPG se překonává různými technikami modelování. Limit LPG v porovnání s RDF se překonává obtížněji, ale LPG grafy jsou více podobné obrázkům z učebnice Harari, proto je lidé chtějí.

Je zřejmé, že úkol „podporovat LPG“ se dělí na dvě části:

  1. provedení změn do modelu RDF, které umožňují imituje v něm LPG konstrukce;
  2. provedení změn v dotazovacím jazyce RDF, které umožňují přístup k datům v tomto změněném modelu, — nebo implementace možnosti dotazovat se na tento model v populárních dotazovacích jazycích LPG.

V.1. Data Model

Zde existuje několik možných přístupů.

V.1.1. Singleton Property

Nejvíce doslovný přístup k harmonizaci RDF a LPG — to je asi singleton property:

  • Namísto například predikátu :isMarriedTo používají se predikáty :isMarriedTo1, :isMarriedTo2 atd.
  • Pak se tyto predikáty stávají subjekty nových trojic: :isMarriedTo1 :since "2013-09-13"^^xsd:date a další.
  • Vztah těchto instancí predikátů s obecným predikátem se nastavuje trojicemi typu :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Je zřejmé, že rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, ale zamyslete se, proč byste neměli prostě napsat :isMarriedTo1 rdf:type :isMarriedTo.

Úkol „podporující LPG“ se zde řeší na úrovni RDFS. Takové řešení vyžaduje provedení změn v odpovídajícím standard. Některé změny mohou být vyžadovány od RDF úložišť, která podporují připojení odvozenin, zatímco Singleton Property lze zatím chápat jednoduše jako další techniku modelování.

V.1.2. Reifikace správně

Méně naivní přístupy vycházejí z uvědomění si, že instance vlastností mohou být plně instancovány trojicemi. Pokud budeme schopni něco říct o trojicích, budeme mít možnost hovořit i o instancích vlastností.

Nejrozsáhlejší z těchto přístupů je RDF*, také známý jako RDR, který se zrodil v útrobách Blazegraphu. Od samého počátku byl zvolen pro sebe a AnzoGraph. Solidnost přístupu se určuje tím, že v jeho rámci jsou očekávané změny v RDF Semantics. Podstata je však nesmírně jednoduchá. V Turtle serializaci RDF již teď můžeme psát přibližně takto:

<> :since "2013-09-13"^^xsd:date .

V.1.3. Další přístupy

Nemusíme se zabývat formální sémantikou, jednoduše můžeme brát v úvahu, že trojice mají určité identifikátory, které jsou samozřejmě URI, a sestavovat nové trojice s těmito URI. Bude stačit poskytnout přístup k těmto URI ve SPARQL. Tímto způsobem pocházejí Stardog.

V Allegrographu šli prostřední cestou. Je známo, že identifikátory trojic v Allegrographu položka „Přesunout karty“. Kromě toho, ale při implementaci trojkových atributů venku se nezobrazují. Nicméně ke formální sémantice je to stále velmi daleko. Zajímavé je, že atributy trojic nejsou URI a hodnoty těchto atributů také mohou být jen literály. Vyznavači LPG dostávají přesně to, co chtěli. V speciálně vynalezeném formátu NQX příklad, podobný uvedenému výše pro RDF*, vypadá takto:

:bob :marriedTo :alice {"since" : "2013-09-13"}

V.2. Dotazovací jazyky

Podporujíc tím či oním způsobem LPG na úrovni modelu, je třeba umožnit provádění dotazů k datům v takovém modelu.

  • Blazegraph pro dotazy na RDF* podporuje SPARQL*. a GremlinDotaz na SPARQL* vypadá takto:

 SELECT * { <> :since ?since }

  • AnzoGraph také podporuje SPARQL*. a plánuje podporovat Cypher, dotazovací jazyk v Neo4j.
  • Stardog podporuje vlastní rozšíření SPARQL a opět Gremlin. Získat v SPARQL URI trojice a "meta-informace" lze pomocí přibližně takové konstrukce:

SELECT * {
    BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
    ?id :since ?since
}

 SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }

Mimochodem, GraphDB nějakou dobu podporovala Tinkerpop/Gremlin, aniž by v tom čase podporovala LPG, ale ve verzi 8.0 nebo 8.1 to přestalo.

VI. Zpřísnění licencí

V poslední době nedošlo k žádným přírůstkům na pomezí mezi „triplestore of choice“ a „open source triplestore“. Nové RDF úložiště s otevřeným zdrojovým kódem se stále vzdaluje od toho, aby se stalo správnou volbou pro každodenní použití a zdrojový kód nových RDF úložišť, která by stála za vyzkoušení (například AnzoGraph), je uzavřen. Spíše lze mluvit o úbytcích…

Samozřejmě, že otevřený zdrojový kód se dříve nezavře, ale některá úložiště s otevřeným zdrojovým kódem postupně přestávají být považována za seriózní volbu. Virtuoso, které má open-source verzi, podle mého názoru tonou v chybách. Blazegraph byl zakoupen AWS a stal se základem Amazon Neptune; nyní není jasné, zda bude ještě nějaké nové vydání. Zůstává pouze Jena…

Pokud ovšem otevřený zdrojový kód není příliš důležitý a chcete si prostě vyzkoušet, je to také méně optimistické než dříve. Například:

  • Stardog ukončil distribuci bezplatné verze (nicméně doba zkušebního období se zdvojnásobila);
  • v GraphDB Cloud, kde dříve bylo možné zvolit bezplatný základní plán, byla pozastavena registrace nových uživatelů.

Obecně platí, že pro obyčejného IT uživatele se vesmír stává stále méně a méně dostupným, jeho zvládnutí se stává výsadou korporací.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster