In a lot of engineering tasks one ends up with massive amounts of .txt or .csv files from various measurement systems (oscilloscopes, temperature probes etc.) that usually end up on a local or central disk storage with some cryptic filename and no further explanation. This makes both working with the data and sharing it with colleagues a tedious task. My question is thus:
Is it a good idea to use EntityStore and friends (ResourceObject, ContentObject, ...) in a NoSQL-fashion to store and access data (in-between sessions, with multiple users, ...) and what are the implications of doing so (Where are the files stored?, Are they human-readable? Are they compatible across different versions of Mathematica? Can they be used by other software e.g. Matlab, ...)
EntityStoredoesn't seem to persist. (After I restart the kernel,$EntityStoresresets into{}.) So you might need to save the store manually into a local file or to the wolfram cloud. – Gyebro Dec 02 '16 at 10:46ResourceObjectfunctionality for persistence, we talked about that here but as was noted there are problems. I discovered it as a tried to useResourceObjectwithEntityStorefor this answer. – C. E. Dec 02 '16 at 11:12EntityFrameworkis conceptually not what you want for this sort of resource management.ResourceObjectwould make much more sense but as far as I can tell there no good way to create a custom repository of data from, say, a set of experiments, though that'll probably come reasonably soon. On the other hand, the thing to do may just be to write a resource manager. I knocked up a quick example one here which lets one sync to the cloud or to a directory, like say one's Google Drive directory. – b3m2a1 Dec 05 '16 at 18:45MetaInformationbut for the desktop/Google Drive version I had to use a different file type. If you're using Mathematica, .m files like this are the way to go for metadata. – b3m2a1 Dec 07 '16 at 21:15data["myDir","dataFolder1","data11"]etc. Is that what you use hashing for? – alancalvitti Dec 07 '16 at 21:51$manager["Submit",file,metadata]and it would push and$manager[key]and it would pull. This solves @Sascha's problem without requiringResourceObject. – b3m2a1 Dec 07 '16 at 22:04data["Documents","example.txt"]anddata["Desktop","example.txt"]. As an independent step, I wrote another 1-liner function to serialize paths to a flat list - discussed elsewhere on M.SE. Starting with v10 functions, these are easy and time-efficient methods. – alancalvitti Dec 08 '16 at 01:15