Using Solid to store RDBMS-type data?

I find myself having many RDBMS-type information that needs to follow me around and be available to multiple distributed apps. I need the strict referential integrity and type-checking that typically are found in RDBMS.

I can set up my own servers or use hosted RDBMS for the data but it seems that Solid might also offer an interesting avenue. These are smallish datastores (<10MB).

I’ve tried some web-based versions such as Airtable and Caspio, but I want to own my own data vs. just store it on their servers.

You can embed SQLite DBMS in your app, and access data stored in Solid. Just a thought.

What is your exact question here? Your title has a question, but your description doesn’t really clarify that.

Thanks for that suggestion. I’ll give it a test run. I suppose I could also just read/write selected tables as needed in order to keep down the data transfers.

I’d like to store relational records in a pod. My use cases include a home-grown contact management system as well as a product/customer/order system. I’d like to have the normal RDBMS capabilities present. Currently I have the data stored in an Airtable base but I’d be more comfortable having personal control over its visibility, updating, etc.

The two main tasks I see here are

  1. Determine the RDF data model of your data, i.e., what classes and what predicates will you use.
  2. Investigate how to store the data, considering that the PODs does now everything with files while with RDBs that is not the case.
1 Like

I was thinking of some kind of web services that would convert a RDF model to RDBMS model and vice versa. Also with a functionality of converting queries both way.

There has been a ton of research done on that, so I would suggest to look there then.

Thanks for your instant answer. Can you please share a couple of links ?

Conversions would add overhead to the access. All it needs is a secure file interface for SQLite to perform efficiently. Not sure Solid has that support yet…

One major problem I see with using Solid to store multi-access data would be the need to lock access (read/write) at various levels (schema/table/row/etc.) and to ensure transaction completeness.

I must admit I haven’t looked at how Solid does that now for non-RDBMS applications. Is it possible to lock a portion of a pod against access?

@hashir.rizwan

  1. RML allows to define how you go from RDBs to RDF. It’s based on R2RML, a W3C standard, but allows integration with other data formats too.
  2. Morph is a tool that allows to rewrite SPARQL queries to SQL queries. There is a lot more related work, e.g., https://www.researchgate.net/profile/Oscar_Corcho/publication/220254334_Survey_of_directly_mapping_SQL_databases_to_the_Semantic_Web/links/0912f50b3329a07f54000000.pdf and https://www.w3.org/wiki/images/a/ac/Rdb2RdfXG$$StateOfTheArt$RDB2RDF_SurveyReport.pdf. Some of them are from a few years back, but a good starting point.