This proposal seeks to improve plugin data management, including both core and third party data fields and tables, in order to:
- Support de-identification at multiple levels of criticality
- Support re-use of data, eg by analytics or by other plugins
- Document relationships between tables for easier sql access, also for "deep" de-identification, eg replacing exposed index values such as userid and courseid (possibly as part of a separate extraction tool).
Currently data is retrieved by APIs and/or is stored in the database without indication of what semantic purpose the data serves. This is a request to add two elements of metadata information to the data stored within Moodle, whether by attaching that metadata directly to the database columns, or by attaching metadata to the APIs used to retrieve the data elements. The types of metadata requested are:
- Sensitivity level - what identity is exposed by the data? (PII | course II | institutional II | none)
- Relationships between this data element and other data elements (by table and field name and type or by API- could be in a separate table from others in this plugin/owner, eg userid)
- Row range or API arguments that this description applies to (null=all rows) - in some tables and fields, the same field can contain sensitive data in some rows, but not in others (e.g. mdl_config, mdl_config_plugins and mdl_user_preferences for example)
- Schema name applicable to this data element (first version to support IMS LRM/IEEE LOM)
- Schema field applicable to this data element (eg due dates, license rights, mime type, authorship, objective/competency taxonomy, etc)
By providing this standard information about each data element in Moodle, including third-party data, it becomes possible to incorporate all data elements into learning analytics based on their semantic identity, rather than by uniquely identifying each data element. It also becomes much more practical to anonymise a Moodle database for the purpose of sharing open data. and improving learning analytics in a continuous process.
Although the "Affects Version/s" field indicates Moodle 3.3, this can be deferred until a later version of Moodle. It may, however, be helpful to start considering how this might affect new features developed in the meantime.