Create a comparison of all known stores #1542
Replies: 11 comments
-
Good timing with this. I've been doing some experimental background work, and we will have a new Store to add to the list soon 😉 |
Beta Was this translation helpful? Give feedback.
-
Great! I think there are about 5 other stores int he RDFlib GitHub org that should be listed and I know of at least another 3m including Neptune. I've actually made the docco but something in Sphinx is really broken, so I haven't PRed it yet. |
Beta Was this translation helpful? Give feedback.
-
I've made a start on better Store documentation in the 6.0.1 latest release documentation: https://rdflib.readthedocs.io/en/latest/plugin_stores.html A few uglinesses there and incompletness for sure. If you'd like to improve that documentation, please add to this Issue or put in PRs to update the plugin store file directly. |
Beta Was this translation helpful? Give feedback.
-
The pertinent document “A Universal RDF Store Interface” seems to have dropped off the map. I retrieved a copy from the googlecode archive snapshot tarball and in the interests of completeness and coherence, I'm uploading it here. |
Beta Was this translation helpful? Give feedback.
-
Thanks. How could it replace or complement https://github.com/RDFLib/rdflib-sqlalchemy ? |
Beta Was this translation helpful? Give feedback.
-
It wouldn't replace it as such because the Universal RDF Store Interface only addresses key-value persistences and not relational persistences (although there is a small degree of crossover with the PostGres In practice, the main difference is that the Other significant differences are:
Well, that's the principle at least. I'm currently investigating what's involved in upgrading the rdflib-leveldb module which is based on this standard and, if successful, I should be able to apply the same changes to upgrade the rdflib_kyotocabinet similarly. Back in the day, these key-value (aka “NoSQL”) stores were just starting to make their appearance (I recall investigating Riak as well as Tokyo/Kyoto Cabinet(https://dbdb.io/db/tokyo-cabinet). The Universal RDF Store Interface provides a development path towards recruiting a number of key-value stores (I note a useful review) as persistences for RDFLib graphs. In summary: there are three different approaches to achieving persistence of RDFLib graphs:
(Yes, technically, it may be possible to implement a higher level generalisation of the Universal RDF Store Interface that provides a wrapper which enables simple k-v backend-store switching but that's quite ambitious and I shan't be holding my breath) |
Beta Was this translation helpful? Give feedback.
-
fwiw, the origins of the SLQAlchemy implementation lie not the Universal RDF Store Interface but in the Over a decade ago, there was a whole buncha stores implementing different persistences, many if not most of them unmaintained/unmaintainable and so they have been culled from the repos over the years:
For a while, I was able to preserve the PostgreSQL and SQLite stores as separate modules. Both implementations were subclassed from |
Beta Was this translation helpful? Give feedback.
-
Weellll, TIL ZODB's been updated to run under Python3, so on a whim I revisited rdflib-zodb and after updating the code to Py3, happily the standard store tests are now all passing. There remains some work to be done in terms of bringing the module up to modern Python packaging and testing standards but that's no biggie. |
Beta Was this translation helpful? Give feedback.
-
I successfully managed to migrate the rdflib-leveldb Store to Python 3 - |
Beta Was this translation helpful? Give feedback.
-
Happy to report that it's pretty much done. I stole and modified the rdflib |
Beta Was this translation helpful? Give feedback.
-
Just for the record, there's something of a forgotten trove of store-related docs in the discontinued rdfextras package. |
Beta Was this translation helpful? Give feedback.
-
Let's enhance the list of stores at https://rdflib.readthedocs.io/en/stable/plugin_stores.html with both contained stores and any community made stores, for example AWS Neptune (https://lawlesst.github.io/notebook/rdflib-neptune.html) and others.
Let's also add pros & cons of the various stores.
Beta Was this translation helpful? Give feedback.
All reactions