The iSENSE database is a persistent store of all data captured by iSENSE users. We may also import other databases into the iSENSE system.
The iSENSE database is designed for holding time-series snapshots of experimental data.
Here is a strawman list of the fields associated with each data item. Comments are highlighted in red.
- value
- the numeric value of the sensor reading; e.g., "50"
- description
- text tag that describes the sensor data; e.g., "deg F". these would need to be from a pull-down list with maybe an opportunity to create your own. It is clearly wasteful to put a text tag with every datum, but it is also simpler?
- location
- GPS coordinates or street address of where the datum was collected.
- date
- date when sample was collected.
- time
- time of sample; resolution to seconds. What about data collected at sub-second precision?
- username
- user name of person who collected the data
- experiment
- text tag that identifies the experiment that this datum is part of. This needs to be expanded -- e.g., add version numbers? This is also inefficient (but simple); instead, have a unique 32-bit number for each experiment, and then have another table that maps experiment-ID to text description? Also, have access list for experiments -- you need to be on the list to contribute data to the experiment?
what else?
The above is good for time-series data, but what about other kinds of experiments? E.g.:
- events per time interval. If we are doing the exercise experiment, the system might collect data like number-of-steps taken in a given hour. Or there could be environmental observations that are also counting events (e.g., number of people passing by a sensor over a given time period).