## 2 Approach and Implementation
### Homogeneous Datastructure for Inhomogenous Datasets  
One of the largest challenges for the development of the data management system was the ability to store, index and modify multiple data streams, without exhaustive development cycles for adaptive processing of inhomogeneous data sources. Specifically, inhomogeneous data are sourced from different technologies that require processing to provide evidence of a specific outcome, typically, in this case, kinematic measures. This required additional development time in producing a data structure that was abstract enough to accommodate various sensor types and data formats, with enough specificity to ensure appropriate indexing. Previous work has been made on the development of the ADAT Toolbox (Version 1.0., SABEL Laboratories, Brisbane, Australia) [19], a toolbox designed for the storage and processing of time-series based inertial data of elite athletes for post-process cognitive feedback. Development as part of the Toolbox, in a MATLAB data structure was produced to provide sensory information and data source associated metadata for a single sensory input. Limitations of the existing structure in the context of distributed collections of inhomogeneous data sources meant that the structure could only retain context into a singular time-series data source, for example, a single inertial sensor. However, due to the primary objective being the process of providing a unified platform for the distributed collection of varying datasets, modifications were required to accommodate the disconnect in various collection methods. The process of redevelopment and extension of the existing structure presented with additional challenges for extension to distributed implementation. A unique requirement was generated for the distributed implementation of the structure. Allowing a generalised interface to be constructed between multiple differentiating platforms with common data source interfaces. The Athdata structure was used as a central communication tool between the logical layers of data collection, storage, processing and feedback to users for intended purposes, e.g., motor learning applications, be they near real-time or for post processing intervention. This was initially determined by detailed user requirement analysis for the sport of swimming [20]. The functional blocks consisted of data sources, data transport, staging/transformation, storage, analysis and retrieval. Existing development on the Athdata structure saw the use of the MATLAB data science environment as the primary platform of implementation. However, this provided limitations in the development of a distributed collection and management of inhomogeneous data sources, particular with MATLAB specific data structures. Primary focus for the redevelopment and the extension of the structure required the ability for primary data types, generic in implementation to accommodate various implementation methods for collections of disjointed data, which was undertaken in Unified Modelling Language (UML). The UML representation of the improved structure used for the implementation (Figure 1). This was extended to a cloud based system. The major challenge for the development of the structure was to provide the ability to have sessional context of a data source in relation to varying inhomogeneous data sources. From an implementation perspective, a major challenge was generated from the requirements for the existing MATLAB structure to be implemented in standard data types, for example, by allowing implementation in an SQL database backend. Thus, the updated implementation was intended to be provided as a specification of implementation, rather than an implementation method perse. The use of MATLAB was considered advantageous on balance, despite being a proprietary technology, as it was a common tool across the deployment sites.