The RAPP platform is composed of six major components with different levels of inter-connectivity; (a) the RAPP Store, (b) the RAPP Improvement Center, (c) the Centralized DB, (d) the Knowledge Base, (e) the Offline Learning Processes and (f) the RApp execution workspace where the cloud agents are deployed. Although (e) is very closely related to the RIC (b), it can be viewed as an independent component as far as the design process is considered.
The RAPP Store indexes a collection of RApps which may be downloaded by RAPP users on their robots. This would see a complex of processes and databases, where submitted source code is transformed into a RApp, and then distributed. The RAPP Store works mainly as the human user front-end of the entire RAPP cloud-platform, but contains back-end services for the robots’ Core Agents to require RApps.
In effect, the RAPP Store is responsible for:
- Processing new RApps (Building and Packaging)
- Indexing & Distributing RApps
- Updating RApps
The RAPP Improvement Centre includes a number of generic services that can be called from the Dynamic agents in the robot side, and the Cloud Agents and specific machine learning services on the cloud side. The RAPP Improvement Centre is alternatively denoted as Platform Agent.
The Centralized DB acts as the central repository of data required for the RAPP Platform. These correspond to processrelated data, RApp specific data, and user-related data. The latter will be treated according to the requirements and guidelines set out by the privacy and security management protocol.
The Knowledge Base is implemented via an ontology scheme, where anonymous data are stored. The ontology is based on the KnowRob robotic ontology ecosystem, enhanced with social classes acquired from the OpenAAL ontology. Each instance is anonymous (does not contain information regarding the user from which was created), but includes a unique ID that via the MySQL database services RAPP Platform can retrieve personal information. This scheme was selected in order a) to implement machine learning operations on anonymous data to extract generalized models and b) to implement machine learning algorithms oriented for personalization on eponymous data.
The Offline Learning Process involves machine learning components that periodically analyse data stored in the Knowledge Base and the Centralized DB along with metadata and usage logs in order to extract meaningful knowledge.
The RApp execution workspace is a common workspace that a RApp developer can utilize in order to execute any custom computationally expensive process involved in a RApp that is not readily supported by the RIC. Each of these processes is called a Cloud Agent and operates in a synchronous fashion with a Dynamic agent. Service calls to the RIC are also allowed directly from within the RApp executing code in the cloud workspace.
Overall, the RAPP platform is responsible for:
- Housing & Executing cloud-based RApps
- Housing the RIC & Delegating RIC API calls
- Host the Centralized DB and file repository
- Perform offline periodic machine learning in order to extract meaningful knowledge