A few weeks ago I wrote about how I'd linked up my EDF Energy Monitor to save the minutely electricity usage in my home.  It's been a useful little project, and saved me a fair bit of cash by making sure that we were on top of the electricity consumption.

I recently came across opensensors.io - a community of like-minded people who are able to share their data through 'topics' on the site - and publish any unstructured data to the site for others to consume.  Whilst my electricity usage isn't necessarily the most informative of datasets, it does enable others to see the data structures of the EDF Energy Monitor, and write their software so.

This has led me to a bit of angst, which I also believe to have already been solved by the advocates of NoSQL.  Is my data, if unstructured, actually useful?

In my view, Tim Berners Lee gave a bit of an underwhelming talk, on taking the web to the next level.  Underwhelming in the sense that it's simple, yet seemed to contain some top-down logic that implementing would require a documented structure for each type of data.  The three rules are:

1) We need to use a URI for a single product/event
2) If i lookup a URI, I will get data back in a standard format
3) When i get that information, it has relationships to other data, based on their own URIs.

Taking my ElectricityUsage topic on OpenSensors.io as an example - I work out how far I am being compatible with TBL's vision.

1) Yes. The device itself has a unique URI and using the opensensors.io API, it's possible to generate a unique URI for each event (albeit using querystrings).

2) Yes, The data should be returned in a standard format.  This is the bit that confused me.  I though a standard format would be a prescriptive format that explained the structure of the response.  However, I now realise that this would be fairly impossible to police and manage.  Therefore as long as the format of the data is of a standard (eg, json, xml) then the structure is a completely different beast.

3) No - this is the bit that I need to work on.  For my original app, the output of the sensor (xml) was saved to a MySQL database table, and I then wrote another API get data out of that table and into json for my Angular JavaScript app.  I think the question is that to be more useful to others with the same hardware, I should upload the raw xml to opensensors.io - so that the datastructures are of a de facto standard, rather than my own parsing of the xml.  That said, the raw xml also does not contain any URIs to other relational data, so making this change would still end up with point 3 not being met.

Please take time to watch the talk, and let me know your views on how this impacts the internet of things.