Development Guide
Skill Service
Skill Service
This how-to describes how components can and should use the Skill Service. The Skill Service implements what is called in ILIAS the Competence Management. The different terms have historical reasons, as the feature has been called Skill Management in the beginning.
The Competence Tree
Competences are organized in a hierarchical structure. Nodes that contain subnodes are called Competence Category, leaf nodes are Competences. These competences define an ordered list of competence levels.
This simple structure becomes complex with the introduction of competence templates. Competence templates are reusable subtrees that can be referenced within the main competence structure by Competence Template References.
The competence templates can either only consist of one basic competence template (without and subnodes) or of a competence template category including subnodes.
Node | Internal Type | Purpose | Part of the Hierarchy |
---|---|---|---|
Root Node of Competence Tree | skrt | Root of the Competence Hierarchy | |
Competence Node | skll | Defines Competence Levels | Main Part |
Competence Category Node | scat | Can contain competence and competence category nodes | Main Part |
Competence Template Reference Node | sktr | References a competence template or a competence template category | Main Part |
Competence Template Node | sktp | Defines Competence Levels | Template Part |
Competence Template Category Node | sctp | Can contain competence templates or competence template categories | Template Part |
Identifying a Competence
We now focus on the leaf nodes in the competence tree that define the competence levels (either type "skll" or type "sktp").
If no competence templates would be used, a competence could simply be identified by its node ID. But since competence templates can be reused multiple times we need a second node ID, the ID of the competence reference to identify a competence.
Structure of an ID for a competence: <skill_id>:<tref_id>
If the skill_id
is the ID of a simple competence node (type "skll"), the tref_id
must be 0. If the skill_id
is the ID of a competence template node (type "sktp") the tref_id
must be the ID of a reference node (type "sktr"). A reference node refers to a template identified by the root node of the template (either type "sktp" or "sctp"). The node with the ID skill_id
must be within the subtree of this template.
The most important to keep in mind is that a competence is identified by the two parts <skill_id>:<tref_id>
.