Τι συμβαίνει τώρα με τα αποθετήρια RDF;

Ο Σημασιολογικός Ιστός και τα Συνδεδεμένα Δεδομένα είναι σαν το διάστημα: δεν υπάρχει ζωή εκεί. Για να πάω εκεί για λίγο πολύ μεγάλο χρονικό διάστημα... Δεν ξέρω τι σου είπαν ως παιδί ως απάντηση στο «Θέλω να γίνω αστροναύτης». Αλλά μπορείτε να παρατηρήσετε τι συμβαίνει ενώ βρίσκεστε στη Γη. Είναι πολύ πιο εύκολο να γίνεις ερασιτέχνης αστρονόμος ή ακόμα και επαγγελματίας.

Το άρθρο θα επικεντρωθεί στις πρόσφατες, όχι παλαιότερες από αρκετούς μήνες, τάσεις από τον κόσμο της αποθήκευσης RDF. Η μεταφορά στην πρώτη παράγραφο είναι εμπνευσμένη από την επικού μεγέθους διαφημιστική εικόνα κάτω από την περικοπή.


Επική εικόνα

Τι συμβαίνει τώρα με τα αποθετήρια RDF;

I. GraphQL για πρόσβαση σε RDF

Λένεότι η GraphQL στοχεύει να γίνει μια καθολική γλώσσα πρόσβασης στη βάση δεδομένων. Τι γίνεται με τη δυνατότητα πρόσβασης σε RDF χρησιμοποιώντας GraphQL;

Out of the box αυτή η ευκαιρία παρέχεται από:

Εάν το αποθετήριο δεν παρέχει μια τέτοια ευκαιρία, μπορεί να εφαρμοστεί ανεξάρτητα γράφοντας έναν κατάλληλο «επίλυση». Αυτό έκαναν, για παράδειγμα, στο γαλλικό έργο DataTourisme. Ή δεν μπορείτε πλέον να γράψετε τίποτα, αλλά απλώς να πάρετε HyperGraphQL.

Από τη σκοπιά ενός ορθόδοξου οπαδού του Σημασιολογικού Ιστού και των Συνδεδεμένων Δεδομένων, όλα αυτά, φυσικά, είναι λυπηρά, καθώς φαίνεται ότι έχουν σχεδιαστεί για ενσωματώσεις που χτίζονται γύρω από το επόμενο σιλό δεδομένων και για μη κατάλληλες πλατφόρμες (αποθήκες RDF, φυσικά) .

Οι εντυπώσεις από τη σύγκριση του GraphQL με το SPARQL είναι διπλές.

  • Από τη μία πλευρά, το GraphQL μοιάζει με μακρινό συγγενή του SPARQL: λύνει τα προβλήματα της επαναδειγματοληψίας και της πολλαπλότητας των ερωτημάτων που είναι τυπικά για το REST - χωρίς τα οποία, πιθανώς, δεν θα ήταν δυνατό να εξεταστούν γλώσσα ερωτήματος, τουλάχιστον για τον Ιστό.
  • Από την άλλη πλευρά, το άκαμπτο σχήμα του GraphQL είναι απογοητευτικό. Κατά συνέπεια, η «εσωτερικότητά» του φαίνεται πολύ περιορισμένη σε σύγκριση με την πλήρη ανακλαστικότητα του RDF. Και δεν υπάρχει ανάλογο των μονοπατιών ιδιοκτησίας, επομένως δεν είναι καν πολύ σαφές γιατί είναι "Γράφημα-".

II. Προσαρμογείς για MongoDB

Μια τάση συμπληρωματική της προηγούμενης.

  • Στο Stardog τώρα ίσως - συγκεκριμένα, όλα στο ίδιο GraphQL - διαμορφώστε την αντιστοίχιση των δεδομένων MongoDB σε εικονικά γραφήματα RDF.
  • Το Ontotext GraphDB έχει πρόσφατα позволяет Εισαγάγετε τμήματα στο SPARQL στο ερώτημα MongoDB.

Εάν μιλάμε ευρύτερα για προσαρμογείς σε πηγές JSON, οι οποίοι επιτρέπουν περισσότερο ή λιγότερο "εν κινήσει" να αντιπροσωπεύουν το JSON που είναι αποθηκευμένο σε αυτές τις πηγές ως RDF, μπορούμε να θυμηθούμε το αρκετά μακροχρόνιο Δημιουργία SPARQL, το οποίο μπορεί να ρυθμιστεί, για παράδειγμα, στον Απάτσι Τζένα.

Συνοψίζοντας τις δύο πρώτες τάσεις, μπορούμε να πούμε ότι οι αποθηκευτικοί χώροι RDF επιδεικνύουν πλήρη ετοιμότητα για ενοποίηση και λειτουργία σε συνθήκες «επιμονής πολυγλωσσίας». Είναι γνωστό, ωστόσο, ότι αυτό το τελευταίο είναι εδώ και καιρό εκτός μόδας, και αντικαθίσταται από ερχομός πολυμοντέλο. Τι γίνεται με το multi-modeling στον κόσμο της αποθήκευσης RDF;

Με λίγα λόγια, σε καμία περίπτωση. Θα ήθελα να αφιερώσω ένα ξεχωριστό άρθρο στο θέμα των DBMS πολλαπλών μοντέλων, αλλά προς το παρόν μπορεί να σημειωθεί ότι επί του παρόντος δεν υπάρχουν DBMS πολλαπλών μοντέλων "βασισμένα" σε ένα μοντέλο γραφήματος (το RDF μπορεί να θεωρηθεί ένας τύπος αυτού) . Κάποια μικρά πολλαπλά μοντέλα - υποστήριξη αποθήκευσης RDF για ένα εναλλακτικό μοντέλο γραφήματος LPG - θα συζητηθούν στο ενότητα V.

III. OLTP vs. OLAP

Ωστόσο, η ίδια Gartner γράφειότι το πολυμοντέλο είναι μια sine qua non συνθήκη πρωτίστως για χειρουργεία DBMS. Αυτό είναι κατανοητό: σε μια κατάσταση "πολυμεταβλητής αποθήκευσης", τα κύρια προβλήματα προκύπτουν με τη συναλλακτικότητα.

Αλλά πού βρίσκονται οι αποθηκευτικοί χώροι RDF στην κλίμακα OLTP-OLAP; Θα απαντούσα έτσι: ούτε εκεί ούτε εδώ. Για να υποδείξετε σε τι προορίζονται, χρειάζεται κάποια τρίτη συντομογραφία. Ως επιλογή θα πρότεινα OLIP — Διαδικτυακή Διανοητική Επεξεργασία.

Ωστόσο, ακόμα:

  • Οι μηχανισμοί ολοκλήρωσης με το MongoDB που υλοποιούνται στο GraphDB είναι εξίσου σημαντικός προορίζονται να επιλύσει ζητήματα απόδοσης εγγραφής.
  • Το Stardog προχωράει ακόμα πιο μακριά και ολοκληρωτικά ξαναγράφει κινητήρα, και πάλι με στόχο τη βελτίωση της απόδοσης εγγραφής.

Τώρα επιτρέψτε μου να παρουσιάσω έναν νέο παίκτη στην αγορά. Από τους δημιουργούς του IBM Netezza και του Amazon Redshift - AnzoGraph™. Μια εικόνα από μια διαφήμιση για ένα προϊόν που βασίζεται σε αυτό δημοσιεύτηκε στην αρχή του άρθρου. Το AnzoGraph τοποθετείται ως λύση GOLAP. Πώς σας αρέσει το SPARQL με τις λειτουργίες παραθύρου; —

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

IV. RocksDB

Ήδη πιο ψηλά υπήρχε σύνδεσμος στην ανακοίνωση του Stardog 7 Beta, η οποία έλεγε ότι η Stardog επρόκειτο να χρησιμοποιήσει το RocksDB ως υποκείμενο σύστημα αποθήκευσης - ένα κατάστημα βασικών τιμών, ένα πιρούνι Facebook του LevelDB της Google. Γιατί αξίζει να μιλήσουμε για μια συγκεκριμένη τάση;

Πρώτον, αν κρίνουμε από άρθρο της Wikipedia, όχι μόνο οι αποθηκευτικοί χώροι RDF «μεταμοσχεύονται» στο RocksDB. Υπάρχουν έργα για τη χρήση του RocksDB ως μηχανή αποθήκευσης στο ArangoDB, MongoDB, MySQL και MariaDB, Cassandra.

Δεύτερον, στο RocksDB δημιουργούνται έργα (δηλαδή όχι προϊόντα) για σχετικά θέματα.

Για παράδειγμα, το eBay χρησιμοποιεί το RocksDB πλατφόρμα για το «γράφημα γνώσης» σας. Παρεμπιπτόντως, είναι αστείο να διαβάζεις: η γλώσσα ερωτημάτων ξεκίνησε ως μια οικιακή μορφή, αλλά πιο πρόσφατα έχει αλλάξει πολύ περισσότερο σαν SPARQL. Όπως και στο αστείο: όσο γραφήματα γνώσης κι αν κάνουμε, πάλι καταλήγουμε σε RDF.

Ένα άλλο παράδειγμα - αυτό που εμφανίστηκε πριν από λίγους μήνες Υπηρεσία ερωτημάτων ιστορικού Wikidata. Πριν από την εισαγωγή του, οι ιστορικές πληροφορίες των Wikidata έπρεπε να έχουν πρόσβαση μέσω MWAPI στο τυπικό API Mediawiki. Τώρα πολλά είναι δυνατά με το καθαρό SPARQL. “Under the hood” υπάρχει και το RocksDB. Παρεμπιπτόντως, το WDHQS δημιουργήθηκε, φαίνεται, από το άτομο που εισήγαγε το Freebase στο Γράφημα Γνώσης Google.

V. Υποστήριξη υγραερίου

Επιτρέψτε μου να σας υπενθυμίσω την κύρια διαφορά μεταξύ των γραφημάτων LPG και των γραφημάτων RDF.

Στο LPG, οι βαθμωτές ιδιότητες μπορούν να εκχωρηθούν σε στιγμιότυπα ακμών, ενώ στο RDF μπορούν να αντιστοιχιστούν μόνο σε «τύπους» ακμών (αλλά όχι μόνο βαθμωτές ιδιότητες, αλλά και συνηθισμένες συνδέσεις). Αυτός ο περιορισμός του RDF σε σύγκριση με το υγραέριο καταβάλλω μία ή την άλλη τεχνική μοντελοποίησης. Οι περιορισμοί του υγραερίου σε σύγκριση με το RDF είναι πιο δύσκολο να ξεπεραστούν, αλλά τα γραφήματα LPG μοιάζουν περισσότερο με εικόνες από ένα σχολικό βιβλίο Harari παρά με γραφήματα RDF, γι' αυτό και οι άνθρωποι τα θέλουν.

Προφανώς, το έργο της «υποστήριξης LPG» χωρίζεται σε δύο μέρη:

  1. πραγματοποίηση αλλαγών στο μοντέλο RDF που καθιστούν δυνατή την προσομοίωση δομών υγραερίου σε αυτό.
  2. κάνοντας αλλαγές στη γλώσσα ερωτημάτων RDF που καθιστούν δυνατή την πρόσβαση σε δεδομένα σε αυτό το τροποποιημένο μοντέλο ή εφαρμόζοντας τη δυνατότητα να κάνετε ερωτήματα σε αυτό το μοντέλο σε δημοφιλείς γλώσσες ερωτημάτων LPG.

V.1. Μοντέλο δεδομένων

Υπάρχουν διάφορες πιθανές προσεγγίσεις εδώ.

V.1.1. Ιδιοκτησία Singleton

Η πιο κυριολεκτική προσέγγιση για την εναρμόνιση RDF και LPG είναι πιθανώς ιδιοκτησία singleton:

  • Αντί, για παράδειγμα, το κατηγόρημα :isMarriedTo χρησιμοποιούνται κατηγορήματα :isMarriedTo1, :isMarriedTo2 κ.λπ.
  • Αυτά τα κατηγορήματα γίνονται στη συνέχεια τα υποκείμενα των νέων τριδύμων: :isMarriedTo1 :since "2013-09-13"^^xsd:date κλπ.
  • Η σύνδεση αυτών των περιπτώσεων κατηγορημάτων με μια κοινή κατηγόρηση καθιερώνεται από τρίδυμα της μορφής :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Προφανώς, rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, αλλά σκεφτείτε γιατί δεν πρέπει απλώς να γράφετε :isMarriedTo1 rdf:type :isMarriedTo.

Το πρόβλημα της «υποστήριξης LPG» λύνεται εδώ σε επίπεδο RDFS. Μια τέτοια απόφαση απαιτεί συμπερίληψη στο κατάλληλο πρότυπο. Ενδέχεται να απαιτούνται ορισμένες αλλαγές για καταστήματα RDF που υποστηρίζουν συνέπειες προσάρτησης, αλλά προς το παρόν, το Singleton Property μπορεί να θεωρηθεί απλώς μια άλλη τεχνική μοντελοποίησης.

V.1.2. Η επανόρθωση έγινε σωστά

Λιγότερο αφελείς προσεγγίσεις προκύπτουν από τη συνειδητοποίηση ότι οι περιπτώσεις ιδιοκτησίας είναι πλήρως ανιχνεύσιμες από τρίδυμα. Με το να μπορούμε να πούμε κάτι για τα τρίδυμα, θα μπορούμε να μιλήσουμε για περιπτώσεις ιδιοκτησίας.

Η πιο ισχυρή από αυτές τις προσεγγίσεις είναι RDF*, γνωστό και ως RDR, γεννημένος στα βάθη του Blazegraph. Είναι από την αρχή εκλεγμένος για τον εαυτό σας και την AnzoGraph. Η σταθερότητα της προσέγγισης καθορίζεται από το γεγονός ότι στο πλαίσιο της προσφέρεται αντίστοιχες αλλαγές σε RDF Semantics. Το θέμα, ωστόσο, είναι εξαιρετικά απλό. Στο Turtle serialization του RDF μπορείτε τώρα να γράψετε κάτι σαν αυτό:

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

V.1.3. Άλλες προσεγγίσεις

Δεν μπορείτε να ασχοληθείτε με την επίσημη σημασιολογία, αλλά απλώς να υποθέσετε ότι τα τρίδυμα έχουν ορισμένα αναγνωριστικά, τα οποία είναι, φυσικά, URI, και να δημιουργήσετε νέα τρίδυμα με αυτά τα URI. Το μόνο που μένει είναι να δοθεί πρόσβαση σε αυτά τα URI στο SPARQL. Έτσι φτάνει Stardog.

Στο Αλληλογραφία πήγε με ενδιάμεσο τρόπο. Είναι γνωστό ότι τα αναγνωριστικά τριπλής στο Allegrograph υπάρχει, αλλά κατά την εφαρμογή τριπλών χαρακτηριστικών δεν ξεχωρίζουν. Ωστόσο, απέχει ακόμη πολύ από την τυπική σημασιολογία. Αξίζει να σημειωθεί ότι τα χαρακτηριστικά τριπλέτας δεν είναι URI και οι τιμές αυτών των χαρακτηριστικών μπορούν επίσης να είναι μόνο κυριολεκτικές. Οι οπαδοί του υγραερίου παίρνουν ακριβώς αυτό που ήθελαν. Στην ειδικά εφευρεθείσα μορφή NQX, ένα παράδειγμα παρόμοιο με το παραπάνω για το RDF* μοιάζει με αυτό:

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

V.2. Γλώσσες ερωτήσεων

Έχοντας υποστηρίξει το υγραέριο με τον ένα ή τον άλλο τρόπο σε επίπεδο μοντέλου, πρέπει να καταστήσετε δυνατή την υποβολή ερωτημάτων για δεδομένα σε ένα τέτοιο μοντέλο.

 SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }

  • Το Anzograph υποστηρίζει επίσης SPARQL* και πρόκειται να υποστηρίξει Κρυπτογραφία, μια γλώσσα ερωτήματος στο Neo4j.
  • Το Stardog υποστηρίζει το δικό του επέκταση SPARQL και πάλι Κακός δαίμον των αεροπόρων. Μπορείτε να λάβετε το τρίδυμο URI και τις «μεταπληροφορίες» στο SPARQL χρησιμοποιώντας κάτι σαν αυτό:

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

  • Το Allegrograph υποστηρίζει και το δικό του επέκταση SPARQL:

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

Παρεμπιπτόντως, το GraphDB κάποτε υποστήριζε το Tinkerpop/Gremlin χωρίς να υποστηρίζει LPG, αλλά αυτό σταμάτησε στην έκδοση 8.0 ή 8.1.

VI. Αυστηροποίηση των αδειών

Δεν έχουν γίνει πρόσφατες προσθήκες στη διασταύρωση των σετ "triplestore της επιλογής" και "open source triplestore". Τα νέα καταστήματα ανοιχτού κώδικα RDF απέχουν πολύ από το να είναι μια καλή επιλογή για καθημερινή χρήση και τα νέα τριπλά καταστήματα που θα ήθελα να χρησιμοποιήσω (όπως το AnzoGraph) είναι κλειστού κώδικα. Μάλλον μπορούμε να μιλάμε για μειώσεις...

Φυσικά, ο ανοιχτός κώδικας δεν έχει κλείσει στο παρελθόν, αλλά ορισμένα αποθετήρια ανοιχτού κώδικα δεν θεωρούνται πλέον άξια επιλογής. Το Virtuoso, το οποίο έχει μια έκδοση ανοιχτού κώδικα, κατά τη γνώμη μου πνίγεται στα σφάλματα. Το Blazegraph αγοράστηκε από την AWS και αποτέλεσε τη βάση του Amazon Neptune. τώρα δεν είναι ξεκάθαρο αν θα υπάρξει τουλάχιστον μία ακόμη κυκλοφορία. Μόνο η Τζένα μένει...

Εάν ο ανοιχτός κώδικας δεν είναι πολύ σημαντικός, αλλά θέλετε απλώς να το δοκιμάσετε, τότε όλα είναι επίσης λιγότερο ρόδινα από πριν. Για παράδειγμα:

  • Στάρντογκ τερματίζει διανομή της δωρεάν έκδοσης (ωστόσο, η δοκιμαστική περίοδος της κανονικής έκδοσης έχει διπλασιαστεί).
  • в GraphDB Cloud, όπου προηγουμένως μπορούσατε να επιλέξετε ένα δωρεάν βασικό πρόγραμμα, οι εγγραφές νέων χρηστών έχουν ανασταλεί.

Σε γενικές γραμμές, για τον μέσο άνθρωπο πληροφορικής, ο χώρος γίνεται όλο και πιο απρόσιτος· η ανάπτυξή του γίνεται όλο και πιο απροσπέλαστη.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο