Connecting the Internet of Things to the Semantic Web

2,141 views
1,896 views

Published on

A blueprint for how JSON APIs can be used with the Semantic Web to provide real introspectable information about APIs

Published in: Technology, Design
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,141
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Connecting the Internet of Things to the Semantic Web

  1. 1. Connecting the Internet of Things to the Semantic Web Friday, 26 July, 13
  2. 2. IMO David Janes @dpjanes davidjanes@davidjanes.com http://imadeit.davidjanes.com/ July 2013 Friday, 26 July, 13
  3. 3. Introduction Friday, 26 July, 13
  4. 4. The Blueprint • Describe Things by many “facets” • Describe Actions / Readings... • by purpose • by how to manipulate • Make it easy to link APIs to this description Friday, 26 July, 13
  5. 5. Sentrollers • Sensors and Controllers • The “Things” of the Internet of Things • May not be very intelligent / powerful • Purpose may vary based on user Friday, 26 July, 13
  6. 6. Make clients do the work • sentrollers have to be simple • let clients “figure it out” • future proofing! Friday, 26 July, 13
  7. 7. A game plan, not the game! • these are ideas • not the specifics! • lots of work to be done (sigh)... Friday, 26 July, 13
  8. 8. The IoT @ Home • My specific interest is the home • Techniques could work in a larger scope • Just FYI! Friday, 26 July, 13
  9. 9. Describing Things Friday, 26 July, 13
  10. 10. The big idea • describe Things by “facet” sets • let software automatically create interface by introspecting facets • novel devices will “just work” • provide a core vocabulary... • ... but make it extensible for new things! Friday, 26 July, 13
  11. 11. Vocabulary (I) highly abstract • worker - does stuff • sensor - senses stuff • input - get data from humans • output - present data to humans • ... closed: 4 things, that’s it ... Friday, 26 July, 13
  12. 12. Note: describe Things by purpose, not use • A toaster is a worker: it toasts bread • It is not an input, even though it has buttons! • Buttons are there to help with toasting Friday, 26 July, 13
  13. 13. Vocabulary (2) abstract general • appliance - a consumer appliance • toy - something to play with • security - part of a security system • wearable - personal area network • ... open ended ... Friday, 26 July, 13
  14. 14. Vocabulary (3) abstract specific • tv • toaster • clothes-dryer • clock-radio • etc. etc. - totally open ended... Friday, 26 July, 13
  15. 15. e.g. this describes a Toaster • worker • appliance • food-cooker • toaster Friday, 26 July, 13
  16. 16. Describing Actions & Sensor Readings Friday, 26 July, 13
  17. 17. Actions • e.g. • Turn Light On • Set Level to 50% • The light is white Friday, 26 July, 13
  18. 18. ...as JSON { "on" : true, "brightness" : 0.5, "color" : "#FFFFFF" } Friday, 26 July, 13
  19. 19. Readings • e.g. • weight is 185 lb • heart rate is 80 bpm • latitude is 43.6481° N • longitude is 79.4042° W Friday, 26 July, 13
  20. 20. ...as JSON { "weight" : 185, "heart-rate" : 80, "latitude" : 43.6481, "longitude" : 79.4042 } Friday, 26 July, 13
  21. 21. Issues Friday, 26 July, 13
  22. 22. Meaning • What does heart-rate mean? • Why heart-rate? Why not heart, heart_rate, beats, ...? Friday, 26 July, 13
  23. 23. Interface • How do we control on? • How do we control brightness? • How do we control both? Friday, 26 July, 13
  24. 24. Units • 185 what? Pounds? Kg? Metric Tonnes? Friday, 26 July, 13
  25. 25. Access • read (e.g. color is read only) • write • notify (e.g. heart-rate) Friday, 26 July, 13
  26. 26. The big idea • provide a definition binding each attribute to its: • interface • meaning • units • etc. - ... open ended ... Friday, 26 July, 13
  27. 27. e.g. on • a boolean • a two-value • a on-off switch • has read, write Friday, 26 July, 13
  28. 28. e.g. weight • a number • a mass measurement • units are pounds • has read Friday, 26 July, 13
  29. 29. The Semantic Web Friday, 26 July, 13
  30. 30. Linked Data • Describe data as triples: • two objects and their relationship • Use URLs to represent all those things Friday, 26 July, 13
  31. 31. The big idea • Create a document for each Thing • describe facets and attributes • use LD URLs for each of those • link our JSON to that description Friday, 26 July, 13
  32. 32. e.g. JSON { "@iot" : "/definitions/light" "on" : true, "brightness" : 0.5, "color" : "#FFFFFF" } Friday, 26 July, 13
  33. 33. The definition document • e.g. /definitions/light • lists all facets • describes all attributes keyed on the exact same names as the JSON! • attribute description includes meaning, interface (hints), units, etc... Friday, 26 July, 13
  34. 34. More details? • We won’t go into yet! • This is a game plan, not the game • A work in progress Friday, 26 July, 13
  35. 35. Complications Friday, 26 July, 13
  36. 36. Composite Things? Friday, 26 July, 13
  37. 37. Always about purpose • Is it one thing? • Or multiple things put together? Friday, 26 July, 13
  38. 38. Oven & Stove • An oven, and a stove • ... model as two separate Things Friday, 26 July, 13
  39. 39. Microwave + Clock • Model as two separate Things also! • Otherwise your microwave is an output (the clock) and a worker (the cooking part) • Not a useful model! Friday, 26 July, 13
  40. 40. Can’t change API? • If we can’t change the API to add @iot? • If Thing has a unique URL... • ... we can associate a description document with it anyway! Friday, 26 July, 13
  41. 41. Meta? • What room is it in? • Who owns it? • Again:Thing URL → Additional Data Friday, 26 July, 13
  42. 42. Trivial Things? • e.g. Belkin WeMo • can turn power on and off • what is it? it depends what’s hooked up! • Again:Thing URL → Additional Data Friday, 26 July, 13
  43. 43. Get in touch! David Janes @dpjanes davidjanes@davidjanes.com http://imadeit.davidjanes.com/ Friday, 26 July, 13

×