Was passiert gerade mit den RDF-Speichern?

Das semantische Web und Linked Data sind wie der nahe Weltraum: Es gibt dort kein Leben. Um fĂŒr einen mehr oder weniger lĂ€ngeren Zeitraum dorthin zu reisen
 nun, ich weiß nicht, was man Ihnen in Ihrer Kindheit als Antwort auf ‚Ich möchte Astronaut werden‘ gesagt hat. Aber man kann das Geschehen auch von der Erde aus beobachten; Astronom zu werden, sei es als Hobby oder professionell, ist viel einfacher.

In diesem Artikel geht es um frische, nicht Àlter als einige Monate, Trends aus der Welt der RDF-Speicher. Die Metapher im ersten Absatz wurde von einem epischen Werbebild unter dem Schnitt inspiriert.


Das epische Bild

Was passiert gerade mit den RDF-Speichern?

I. GraphQL fĂŒr den Zugriff auf RDF

Es wird gesagt, dass GraphQL den Anspruch erhebt, eine universelle Sprache fĂŒr den Zugriff auf Datenbanken zu werden. Wie steht es jedoch um die Möglichkeit des Zugriffs auf RDF ĂŒber GraphQL?

Diese Möglichkeit bieten:

Wenn das Speicher nicht die Möglichkeit bietet, wird sie selbst implementiert, indem man einen entsprechenden ‚Resolver‘ schreibt. So handhabte es beispielsweise das französische Projekt DataTourisme. Oder man kann bereits alles so lassen, wie es ist, und einfach HyperGraphQL.

Aus der Sicht eines orthodoxen BefĂŒrworters des Semantic Web und von Linked Data ist das alles natĂŒrlich bedauerlich, da es scheinbar fĂŒr Integrationen gedacht ist, die um neue Daten-Silos herum gebaut werden, anstatt fĂŒr Plattformen (selbstverstĂ€ndlich die RDF-Speicher).

Die EindrĂŒcke vom Vergleich zwischen GraphQL und SPARQL sind zwiespĂ€ltig.

  • Einerseits wirkt GraphQL wie ein entfernter Verwandter von SPARQL: Es adressiert typische Probleme von REST wie Überabfragen und die Vielzahl an Anfragen – ohne die man wohl kaum als Abfragesprachegilt, auch wenn es nur fĂŒr das Web ist;
  • Andererseits enttĂ€uscht die strenge Schemata von GraphQL. Entsprechend scheint seine „IntrospektivitĂ€t“ im Vergleich zur vollstĂ€ndigen ReflexivitĂ€t von RDF sehr eingeschrĂ€nkt. Und es gibt kein Äquivalent zu Property Paths, sodass unklar bleibt, warum es „Graph-“ genannt wird.

II. Adapter fĂŒr MongoDB

Ein Trend, der komplementÀr zu vorherigen ist.

  • In Stardog ist es jetzt möglich – insbesondere alles in demselben GraphQL – möglich, die Daten von MongoDB in virtuelle RDF-Grafen abzubilden;
  • GraphDB hat kĂŒrzlich ermöglicht es Fragmenten fĂŒr MongoDB-Queries in SPARQL einzufĂŒgen.

Wenn wir breiter ĂŒber JSON-Adapter sprechen, die es ermöglichen, den in diesen Quellen gespeicherten JSON mehr oder weniger ‚on the fly‘ als RDF darzustellen, können wir auch an die bereits seit einiger Zeit existierende SPARQL Generateerinnern, zum Beispieldie an Apache Jena angepasst werden kann.

Zusammenfassend lĂ€sst sich zu den ersten beiden Trends sagen, dass RDF-Speicher vollstĂ€ndig bereit fĂŒr Integrationen sind und unter Bedingungen der ‚polyglotten Persistenz‘ operieren. Es ist jedoch bekannt, dass Letzteres schon seit einiger Zeit nicht mehr en vogue ist, und es seinem Nachfolger die MultimodalitĂ€t gibt. Wie steht es um die MultimodalitĂ€t in der Welt der RDF-Speicher?

Kurz gesagt: gar nicht. Das Thema multimodale DBMS verdient einen eigenen Artikel, doch derzeit kann festgestellt werden, dass es derzeit keine multimodalen DBMS gibt, die ‚auf‘ dem Graphmodell basieren (eine Variante davon könnte man als RDF betrachten). Über eine gewisse kleine MultimodalitĂ€t – die UnterstĂŒtzung alternativer Graphmodelle durch RDF-Speicher – wird im Abschnitt V.

III. OLTP vs. OLAP

Übrigens, auch Gartner Quartz berichtet, ist Madagaskar das einzige Land in Afrika, in dem die Downloadgeschwindigkeit fĂŒr Inhalte ĂŒber 10 Mbit/s liegt.sagt, dass MultimodalitĂ€t eine conditio sine qua non vor allem fĂŒr operative Datenbankmanagementsysteme. Das liegt auf der Hand: Bei der Situation der 'multivariaten Speicherung' treten die grĂ¶ĂŸten Probleme mit der TransaktionsfĂ€higkeit auf.

Nur wo stehen RDF-Speicher auf der Skala von OLTP zu OLAP? Ich wĂŒrde sagen: weder hier noch da. Um zu kennzeichnen, wofĂŒr sie gedacht sind, benötigt man eine dritte AbkĂŒrzung. Eine Möglichkeit wĂ€re. OLIP — Online Intellektuelle Verarbeitung.

Aber dennoch:

  • Die in GraphDB realisierten Integrationsmechanismen mit MongoDB sind nicht zuletzt entwickelt worden um Probleme bei der Schreibperformance zu umgehen;
  • Stardog geht sogar noch weiter und ĂŒberarbeitet die Engine komplett, wiederum mit dem Ziel, die Schreibperformance zu steigern.

Und nun erlauben Sie mir, einen neuen Akteur auf dem Markt vorzustellen. Vom Schöpfer von IBM Netezza und Amazon Redshift — AnzoGraph. Das Bild aus der Produktwerbung wurde zu Beginn des Artikels angefĂŒgt. AnzoGraph positioniert sich als GOLAP-Lösung. Wie wĂ€re es mit SPARQL und Fensterfunktionen? —

SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE {  
  }

IV. RocksDB

Oben war bereits ein Verweis fĂŒr die AnkĂŒndigung von Stardog 7 Beta, in der erwĂ€hnt wurde, dass Stardog RocksDB als zugrunde liegendes Speichersystem verwenden wird – ein Key-Value-Speicher, der aus Facebooks Fork von Googles LevelDB hervorgegangen ist. Warum ist es jetzt sinnvoll, von einem Trend zu sprechen?

Erstens, laut einem Artikel auf Wikipedia, wird nicht nur auf RDF-Speicherlösungen auf RocksDB umgestiegen. Es gibt Projekte, die RocksDB als Speicher-Engine in ArangoDB, MongoDB, MySQL und MariaDB sowie Cassandra nutzen.

Zweitens werden auf RocksDB thematisch entsprechende Projekte (d. h. keine Produkte) entwickelt.

Zum Beispiel nutzt eBay RocksDB in der Plattform fĂŒr sein „Wissensgraph“. Übrigens ist es interessant zu lesen: die Abfragesprache begann als selbstentwickeltes Format, hat aber in letzter Zeit den Übergang zu etwas vollzogen, das viel mehr wie SPARQL aussieht. Wie in einem Witz: so viele Wissensgraphen wir auch erstellen, es bleibt immer RDF.

Ein weiteres Beispiel ist der kĂŒrzlich erschienene Wikidata History Query Service. Vor seiner EinfĂŒhrung musste man fĂŒr historische Informationen zu Wikidata ĂŒber MWAPI auf die Standard-API von Mediawiki zugreifen. Jetzt ist vieles mit reinem SPARQL möglich. „Unter der Haube“ steckt auch RocksDB. Übrigens wurde WDHQS anscheinend von jemandem entwickelt, der sich mit dem Import von Freebase in den Google Knowledge Graph beschĂ€ftigt hat.

V. UnterstĂŒtzung fĂŒr LPG

Ich erinnere an den Hauptunterschied zwischen LPG-Grafen und RDF-Grafen.

Bei LPG können Skalareigenschaften an die Kanteninstanzen angehĂ€ngt werden, wĂ€hrend sie bei RDF nur an die "Typen" der Kanten angehĂ€ngt werden können (wobei nicht nur Skalareigenschaften, sondern auch gewöhnliche Beziehungen möglich sind). Diese EinschrĂ€nkung von RDF im Vergleich zu LPG wird ĂŒberwunden durch unterschiedliche Modellierungstechniken. Die EinschrĂ€nkungen von LPG im Vergleich zu RDF sind schwieriger zu ĂŒberwinden, aber LPG-Grafen sind mehr als RDF-Grafen wie Abbildungen aus Hararis Lehrbuch, weshalb sie von Menschen bevorzugt werden.

Offensichtlich lĂ€sst sich die Aufgabe der "UnterstĂŒtzung von LPG" in zwei Teile gliedern:

  1. Änderungen am RDF-Modell vorzunehmen, die es ermöglichen, LPG-Konstruktionen zu simulieren;
  2. Änderungen an der RDF-Abfragesprache vorzunehmen, die es ermöglichen, auf Daten in diesem verĂ€nderten Modell zuzugreifen, oder die Möglichkeit zu schaffen, Anfragen an dieses Modell in gĂ€ngigen Abfragesprachen zu stellen.

V.1. Datenmodell

Hier gibt es mehrere mögliche AnsÀtze.

V.1.1. Singleton-Eigenschaft

Der direkteste Ansatz zur Harmonisierung von RDF und LPG ist wohl singleton property:

  • Anstelle von beispielsweise dem PrĂ€dikat :isMarriedTo werden die PrĂ€dikate :isMarriedTo1, :isMarriedTo2 usw. verwendet.
  • Dann werden diese PrĂ€dikate zu Subjekten neuer Tripel: :isMarriedTo1 :seit "2013-09-13"^^xsd:date und so weiter.
  • Die Verbindung dieser Instanzen von PrĂ€dikaten mit dem gemeinsamen PrĂ€dikat wird durch Tripel der Art hergestellt :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Offensichtlich rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, aber denken Sie daran, warum es nicht sinnvoll ist, einfach zu schreiben :isMarriedTo1 rdf:type :isMarriedTo.

Die Aufgabe der „UnterstĂŒtzung von LPG“ wird hier auf RDFS-Ebene gelöst. Diese Lösung erfordert Änderungen an dem entsprechenden Standard.Einige Änderungen können von RDF-Speichern erforderlich sein, die die Anbindung von Folgerungen unterstĂŒtzen, wĂ€hrend Singleton Property vorerst einfach als weitere Modellierungstechnik betrachtet werden kann.

V.1.2. Richtig ausgefĂŒhrte Reifikation

Weniger naive AnsĂ€tze ergeben sich aus dem Bewusstsein, dass Instanzen von Eigenschaften durchaus durch Tripel instanziiert werden. Wenn wir in der Lage sind, etwas ĂŒber Tripel zu sagen, erlangen wir auch die Möglichkeit, ĂŒber Instanzen von Eigenschaften zu sprechen.

Der solideste dieser AnsĂ€tze ist RDF*, auch RDR genannt, geboren in den Tiefen von Blazegraph. Es wurde von Anfang an fĂŒr sich und AnzoGraph ausgewĂ€hlt. Die SoliditĂ€t des Ansatzes wird durch die entsprechenden Änderungen in RDF Semantics bestimmt. vorgeschlagene entsprechende Änderungen in RDF SemantikDie Grundidee ist jedoch Ă€ußerst einfach. Bei der Turtle-Serialisierung von RDF kann man jetzt etwa so schreiben:

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

V.1.3. Andere AnsÀtze

Man kann sich die formale Semantik ersparen und einfach annehmen, dass Tripel bestimmte Identifikatoren haben, die natĂŒrlich URIs sind, und mit diesen URIs neue Tripel bilden. Es bleibt nur, den Zugriff auf diese URIs in SPARQL zu ermöglichen. So verfahren Stardog.

In Allegrograph ging man einen Zwischenweg. Es ist bekannt, dass die Identifikatoren von Tripeln in Allegrograph gibt es, aber bei der Implementierung von Triple-Attributen nicht nach außen sichtbar sind. Dennoch ist die formale Semantik noch weit entfernt. Bemerkenswert ist, dass die Attribute von Tripeln keine URIs sind und die Werte dieser Attribute ebenfalls nur Literale sein können. Die AnhĂ€nger der LPG erhalten genau das, was sie wollten. In einem eigens entwickelten NQX-Format sieht ein Beispiel, Ă€hnlich dem oben fĂŒr RDF*, so aus:

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

V.2. Abfragesprachen

Nachdem LPG in irgendeiner Form auf Modellebene unterstĂŒtzt wurde, muss es möglich sein, Abfragen an Daten in einem solchen Modell zu stellen.

  • Blazegraph unterstĂŒtzt fĂŒr Abfragen an RDF* SPARQL* und Gremlin. Eine Anfrage in SPARQL* sieht so aus:

 SELECT * { <> :since ?since }

  • AnzoGraph unterstĂŒtzt auch SPARQL* und plant, weiterhin zu unterstĂŒtzen Cypher, die Abfragesprache in Neo4j.
  • Stardog bietet ein eigenes Erweiterung von SPARQL an und auch Gremlin. Um in SPARQL die URI eines Tripels und "Meta-Informationen" zu erhalten, kann folgende Konstruktion verwendet werden:

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

  • AllegroGraph unterstĂŒtzt ebenfalls sein eigenes Erweiterung SPARQL:

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

Übrigens unterstĂŒtzte GraphDB eine Zeit lang Tinkerpop/Gremlin, wĂ€hrend sie LPG nicht unterstĂŒtzte, jedoch wurde dies in Version 8.0 oder 8.1 eingestellt.

VI. VerschÀrfung der Lizenzen

In letzter Zeit gab es keine ErgĂ€nzungen im Schnittpunkt zwischen "triplestore of choice" und "open source triplestore". Neuen RDF-Speichern mit offenem Quellcode fehlen noch die Eigenschaften, um eine gute Wahl fĂŒr den tĂ€glichen Gebrauch zu sein, und der Quellcode neuer RDF-Speicher, die genutzt werden möchten (wie AnzoGraph), ist geschlossen. Man könnte sogar von RĂŒckgĂ€ngen sprechen


NatĂŒrlich wird Open Source nicht geschlossen, aber einige Open-Source-Repositories werden zunehmend nicht mehr als wĂ€hlenswert angesehen. Virtuoso, das eine Open-Source-Edition hat, ist meiner Meinung nach von Bugs geplagt. Blazegraph wurde von AWS ĂŒbernommen und bildet die Grundlage fĂŒr Amazon Neptune; nun ist unklar, ob es ĂŒberhaupt noch eine weitere Veröffentlichung geben wird. Bleibt nur noch Jena


Wenn Open Source jedoch nicht besonders wichtig ist und man es einfach ausprobieren möchte, sieht es auch nicht besser aus als frĂŒher. Zum Beispiel:

  • Stardog stellt ein kostenloses Modell ein (die Testphase wurde allerdings verdoppelt);
  • in GraphDB Cloud, wo man frĂŒher einen kostenlosen Basisplan wĂ€hlen konnte, wurde die Registrierung neuer Nutzer ausgesetzt.

Im Allgemeinen wird der Weltraum fĂŒr den durchschnittlichen IT-Nutzer immer unzugĂ€nglicher, seine Erschließung bleibt den Unternehmen vorbehalten.

Quelle: habr.com

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster