Information tags are used as main knowledge and information exchanging media among the project’s systems and services. Information tags are added structured information to specified targets (e.g., a number of lines of a method). Formally, information tags are a class of descriptive metadata with semantic relations to tagged content, defined by triples of:
- Type – defines a type and a meaning of the information tag;
- Anchoring – identifies a tagged information artifact;
- Body – represents a structured information, a structure of which corresponds to the type of the information tag.
We based current version of information tags model on the Open Annotation Model which has been developed and accepted by wider communities. Due to an information tag is not so complex data structure as an annotation and we have to respect specific requirements of information tags – efficient access, efficient maintenance, ease of a use and scalability, we have lightened the Open Annotation Model (we have retained only inevitable elements) and we have redesigned it to an object model which can be stored to fast and scalable MongoDB repository.
The main class of the model is InformationTag which has a body (a single instance of the class Body) and one or multiple targets (objects that implement interface ITarget). Each target can be simple URI of tagged content (encapsulated in an instance of the class Target) or it can be constrained (by an instance of the class Selector) to a concrete part of tagged content (specified by an instance of the class SpecificTarget). Structures of a body and a selector and also a number of targets for a concrete type of information tag can be speci-fied by the definition of an information tags’ type.
Independent repositories for an information space (documents), information tags and definitions of information tags allow us to make better and more efficient data management, but it is necessary to define maintenance process, which will reflects changes in information space to information tags. For this reason we proposed following scheme, in which:
- Maintenance reads and processes information tags definitions and content from an information space and updates information tags.
- Access provider implements interface to access information tags by another systems and clients.
- Access provider and maintenance exchange notifications about changes in information tags between them. These notifications will allow access provider to inform third-party systems about new or updated information tags and it will allow maintenance to utilize modifications in information tags for learning of more accurate maintenance rules.