Developer Area/Specifications in Development/Site and Institutional defined tags
Mahara currently has freetagging, which allows users to categorise and organise their own content, based on their own tag definitions. However, it can also be useful for administrators to define a list of tags that can be used for consistency across the site. When we later implement tag clouds or searching other users' content based on tags, this becomes very useful.
It is proposed that we add both Site and Institutional tags - administrators can add and delete tags (but not edit them) at both levels that can be used throughout Mahara. These will be visually distinguished in the "show my tags" field in the artefact and view editing screens, by using different colours or icons.
Site and Institutional administrators can also configure Mahara to disallow freetagging. This will be left on by default.
When Site or Institutional tags are deleted, what happens depending on the "freetagging" option. If freetagging is enabled, the administrator has the option to convert all instances of this tag into free tags. If not, they are just deleted from all artefacts and views.
If a user manually types in a tag which is a Site or Institutional tag, it is converted from a freetag into the appropriate tag.
No changes happen to users' tags when the administrator adds tags, Mahara will not search for all instances of the new tag and convert them into the other tag type. This will however happen the next time the user edits a view or artefact that contains one of these tags.
If freetagging is disabled retroactively, nothing will be deleted, the tags that aren't either Site or Institutional tags will simply not be displayed.
From a technical perspective, almost all of what is previously written regarding "converting tags" has no technical implications. Tags will stay in the view_tag and artefact_tag tables in text, there will not be foreign keys to the site_tag and institution_tag, which are the two new tables and just contain lists, and in the case of Institutions, a foreign key to the institution.
Since all the tagging in Mahara happens via one pieform element, the technical implementation is remarkably easy.
Nothing special needs to happen to keep LEAP2A compliance. We won't differentiate between different types of tags on export. On import, we will import all of the tags, even if freetagging is disabled, they just won't be shown.
Nigel raised the idea of tagging schemes:
Will there be more than one tag scheme (/vocabulary/taxonomy)? e.g. Sports has football, rugby, cricket Education Software has moodle, mahara, blackboard Sports and Education are tag schemes.
But I am not sure we really need this or how it would work.