Equivalences
The Equivalence function meets the need to establish relationships between equivalent courses. Therefore the learner does not need to process several courses with similar content but passes one course and is automatically considered as passed on the related course.
Use Cases
There are two use cases:
One course is replaced by another course with updated content and the learners must not be required to re-take the similar content. However, they should still be able to re-take it if they wish (A = B).
Some courses are a combination of other courses. In this case, the learner can be required to take either the overall course or the courses from that it is combined but not both (C = A + B).
Currently, all equivalences are bidirectional, which means, there are no use cases where A is equivalent to B, but B is not equivalent to A.
The multiple equivalence relation is possible, meaning that taking course A gives the learners credit for course B and C, taking course B gives the learner credit for both A and C, etc.
Equivalences are valid for all processes and trigger them accordingly, e. g. if a course is used as a prerequisite for another or assigned to a learning path.
However, the course passed by the equivalence is not considered as a course passed directly: it does not appear in the learning history, it can still be started and completed by the learner (but it is optionally and never required). Therefore, the new flag "Covered" is introduced.
Equivalences functionality is part of the base license, no additional add-on components are required to be purchased in order to use it.
Set up a Navigation Entry for the Equivalences Function
To allow access to the equivalences manager, a type of navigation entry must be set up.
After creating a navigation entry of type Menu, the default menu Manage equivalences must be selected from the list.
After it is saved, the navigation entry can be released to the users that should have access to it.

When a user with access rights to see this navigation entry will select it, the equivalences manager will be loaded in the same page similar to other managers in the system.
Functions in the Equivalences Administration
A new manager is available that allows defining equivalence relations between courses and course templates.

On the start page of the manager, all available equivalence relations are displayed. This list is paginated with a default number of 50 elements on page. Search is also available and can be done by Name, Identification code, Description, Object ID. The following columns are also available and they can be activated or deactivated from expanding the Columns section: Name, Identification code, Learning mode, Relations type, Last update, Planning status, Language
An element is present in this list as long there is at least one type of relation defined for it.
New
NewFurther equivalence relations can be defined.
The user has the possibility to add a new component and define relations for it:

By selecting the "+" button, a selection of course templates and courses is available.
The list is paginated with a default number of 50 elements per page. The list can be searched by Name, Identification code, Description, Object ID. The available columns are: Name, Identification code, ID, Learning mode, Last update, Planning status, Language. Then can be activated or deactivated from clicking on the arrow and selecting Column section.
At this stage, only one component can be selected.
After making the selection and clicking on Add, the edit mode will open, which allows the possibility to define the equivalence relations for the selected component.

Categories of Equivalence Relations
There are 3 categories of equivalence relations that can be created:
This component triggers the completion of: This category allows to define which objects will be considered Covered for the user if he has completed the component for which the relations are being defined. In this category it is not possible to define sets of components. All the components added in this category will be marked as covered when the main component is completed by the learner.
The completion of this component is triggered by: This category allows to define which objects the user can complete in order to have the current object considered as covered. In this category it is also possible to add relations as part of a set. This means that the components of a set need to be completed together in order to trigger the coverage of the main component. Objects which are defined outside of the set have an OR relationship between them. This means that by completing any of those components or alternatively the set if a set is available, the main component will be considered Covered.
The completion is triggered in both ways: Objects in this category define a mutual equivalence rule, meaning that if a learner completes the current element, he will gain coverage status in the components defined in this category, but also the other way around. Completing a component from that category will determine that the current object is set to Covered for the corresponding user.

"Covered" is not an enrollment status, but an additional information which, when applicable for a user, will determine that the user has already completed objects which determine in turn that the component marked as "Covered" does not need to be processed anymore.
However, if the learner chooses to, he can still enroll and process that component.
Adding items to a preferred relation is done in the following way. User has to select a folder (each relation has the corresponding folder dedicated) and then click on “+” button where he/she can select either courses/course templates or by clicking on “New” button where set of components can be defined (excluding the 1st rule for which is not possible).
After defining all the needed equivalence relations, the changes can be saved.
By selecting Save, the defined equivalence relations are created and the user is redirected to the start page of the manager, showing the outcome.
For each object that did not previously have any relation defined, an entry in the manager will be now available.
Sets of components: Adding multiple components via add component creates an OR relation between them. The components added within a set have an AND relation.
When a course template is set to covered by an equivalence rule, all courses from this template will be set to covered.
The coverage rules defined for a template apply for all versions of the template. It will not be possible to define different coverage rules for different versions of the course template.
Learning path: All components that are marked for the learner as Covered, are displayed accordingly.
Import
Edit
EditWhen editing such an entry from the manager, the defined relations for that object will be visible:

Example |
The following equivalence relations have been defined for an object: Object A
When saving this configuration, instead of one entry in the manager (for Object A), we will have 5 entries, one for each of the components that, as a consequence of the defined rules, have now equivalence relations themselves. When editing Object E for example, there will be one relation available in the third category for this element, namely the equivalence relation with Object A. Editing Object C, we will see for this object in the Second category that it covers Object A. |
Delete
DeleteAt the start page level, where all objects that have equivalence rules defined are displayed, the admin has the possibility to select one or more entries and remove them.
This will have as effect deleting also associated entries that will therefore be left without any equivalence relation.
In the example above, when I delete object A, all 5 entries will be deleted.
Equivalence Export
The equivalences manager provides also the possibility to export the rules via a dedicated export button available in the action bar.
The export is a csv export that can be opened and converted to a table in MS Excel by using the function Text to Columns.
The exported file will contain the rules in the following order: Last updated > descending.
Equivalence Import
For a correct import of the equivalences rules into the system this file containing the instructions should be used → Equivalency Import.pdf
Handling ACLs within the Equivalences Manager
Only the courses for which the user has at least Execute ACL will be visible in the manager.
The rule can be edited and deleted though the user does not have access to all components.
User will not see the courses for which he had NO ACL in the manager, nor in the export file.
Impact of the Equivalences Functionalities
Impact of the Equivalence Relation Definition
Based on the available equivalence relation rules, the outcome is that courses and course templates will be marked for learners as "Covered".
Impact in the Learning Path
All components that are marked for the learner as "Covered", are displayed accordingly.

The outcome is also that the "Covered" component will count towards the progress, even if it is not completed by the learner.
Prerequisite Handling
When courses/clusters or course templates are available as prerequisites for other courses or learning paths, the prerequisite object will be considered fulfilled if the user has this object covered.
There is no visual distinction on the prerequisite overlay screen indicating that the object is only covered and not fully completed. The prerequisite which is covered will be displayed as fulfilled.
Communication between ILS and the Equivalences Function
To ensure that the equivalences relations are updated and working properly, it needs to be activated via the Configuration manager → Edit Equivalences → Enable Equivalences is set to TRUE.

To ensure that the configured rules generate in the system the desired behavior, namely that courses are set to covered or are no longer covered because of the rules being deleted or changed, the two services will communicate over API the following events:
Whenever a user completes an object, the Equivalences service will be notified via API about the completion or cancellation event for the given user
The service will in return inform ILS, based on the rules, which objects should be set to Covered for the learner, or which objects should no longer be considered covered.
A cron job will be available at ILS level to ensure that the history of completions for already concluded components is delivered to the Equivalences function (de.imc.clix.eqs.EqsResetCoverageDataJob).
Equivalences Behavior for Courses and Course Templates
A covered Course template has as effect that all courses created from any version of the template are set to covered as well. It will not be possible to define different coverage rules for different versions of the course template.
When a specific course is covered based on a rule, that course will be set to "Covered" if the other conditions apply, but it will not have as effect the propagation of coverage to the template or the other courses created from the same template.
Learner View
Learners are able to see if a course is covered for them. This information is present on course and course template tiles in the catalogue, as well as course and course template tiles inside the learning path.
In the header area of the details page it is also possible to view if there are equivalence relations defined for the corresponding course or course template, even if the object is not yet equivalated. This allows learners to tell whether they are recieving credit on any other objects by finishing the current course.
When hovering over the equivalence icon, an overlay will be opened which will display all the equivalence relations defined for the current course or course template. The courses and course templates will be visible in this overlay to learners either if the learners already have an enrollment state on the corresponding object or if the courses/course templates are available to them via the catalogue. Otherwise, even if the course or course template is available as an equivalence relation, it will not be displayed.

When courses are available in the list of equivalence relations, the learner can navigate to the corresponding course by selecting the title of the course.

When inside the course room or when accessing the description page of the course or course template, if the corresponding object has equivalence relations defined, an indicator will be visible in the header even if the learner is not already covered on that object.


In the catalogue it is also possible to view directly which courses or course templates are covered and therefore where the learner does not need to enroll anymore.

Supervisor View
The supervisor also has the possibility to check that a certain course is covered for his employee. This information is visible either in the header, once the details page is opened, or on the course tile in the catalogue.


Limitations
The columns in the manager are fixed and no advanced search or filtering is possible.
It is not possible to define clearances for the rules created in the manager.
Media assigned to a course cannot be passed by equivalence.
If skills are assigned to an entity passed by equivalence but not to the entity passed by the learner directly, these skills are not set to achieved.
At this point we don’t offer the possibility of searching by courses which are included in an equivalence relation. Only the icon which is displayed on the Catalogue and Description pages for the corresponding courses/course templates is the indicator for the Equivalences function.
Test Cases
WHEN | AND | THEN |
Case 1 | ||
Object A covers Object B | Object A is completed for participant X | Object B is covered for participant X |
| Object A is cancelled/ not completed for participant X | Object B is uncovered for participant X |
Case 2 - Coverage by alternative components | ||
I add the following set of rules: Object A is covered by Object B or Object C (add Object B and Object C in the second category, but not as part of a set)
The outcome in the manager will be that 3 entries are visible: Object A with the above configuration Object B → Covers Object A Object C → Covers Object A | Object C is completed and Object B is not completed for participant X | Object A is covered for participant X |
Object C + Object B are completed for participant X | Object A is covered for participant X | |
Object B is completed and Object C is cancelled for participant X | Object A is covered for participant X | |
Object B is cancelled and Object C is cancelled for participant X | Object A is uncovered for participant X | |
Case 3 - Coverage via a set of components |
|
|
Object A is covered by
In this case, there is only one entry shown in the manager, for Object A, since the other two objects do not define rules by themselves, and only in combination with another object. | Object B is completed and Object C is not completed for participant X | Object A is not covered for participant X |
Object B is cancelled/uncompleted and Object C is not completed for participant X | Object A is not covered for participant X | |
Object C is completed and Object B is not completed for participant X | Object A is not covered for participant X | |
Object B is completed and Object C is completed for participant X | Object A is covered for participant X | |
Object C is cancelled and Object B is completed for participant X | Object A is un-covered for participant X | |
Case 4 - Course equivalence impact on course template | ||
Course A covers Course template B | Course A is completed for participant X | Course template B is covered. this results in the fact that all courses from Course template B (in all its versions) are also covered for participant X |
Case 5 - Template equivalence | ||
Course template A covers Course template B | Course 1 from Course template A is completed for participant X | Course template A is completed and Course template B is covered for participant X All courses from the Course template B and all other versions of Course template B are also covered for participant X |
Case 6 - Changing rules | ||
Initial setup #1: Course A covers Course B and Course C and Course D | Course A is completed for participant X | Course B, C and D are covered for participant X |
| Course B is removed from the rule, resulting that Course A covers just Course C and Course D | Therefore Course B is set to uncovered for participant X |
Initial setup #2: Course A covers Course B and Course C Course E is equivalent in both directions with Course C | Course A is completed for participant X Course E is completed for participant X | Course B and Course C are covered as a result from the existing rules for participant X |
| Course C is removed from the first rule => Course A covers just Course B The second rule remains unchanged | Course B and Course C are still covered as a result from the existing rules for participant X |
Case 7 - Deleting rules in the manager | ||
I create 2 rules:
|
| In the manager we have 4 entries in this case: Course A → has two entries in the first category (Covers → Course B and Course C) Course B → one entry in the second category (Is covered by → Course A) Course C → has one entry in the second category and one entry in the third category (Is covered by→ Course A and Is equivalent in both ways with → Course E) Course E - > has one entry in the third category → equivalent in both directions with Course C |
| Course A is completed for participant X Course E is completed for participant X | Course B and Course C are covered for learner X as a result from the existing rules |
| I delete Course A from the manager directly | The remaining rules are: Course C has one entry in the third category → equivalent in both ways with Course E Course E has one entry in the third category → Equivalent in both ways with Course C The outcome is: Course C is covered, Course B is uncovered for participant X |
Case 8 - Rules with Sets of components and templates | ||
I create the following setup Course A: Covers (first category)
Is covered by (second category):
is mutually equivalent with (third category):
→ Save changes
| Course A is completed for participant X | The outcome will be: Course X and Course Z are set to covered for participant X
|
| From the first category, I remove course Z and save | Course Z is still covered for participant X, as it is present in the third category and there the equivalence also has effect. |
| I remove course Z from the first and the third category (this means Course Z has no relation to course A anymore) | Course Z is uncovered for participant X |
Case 9 - Users have already completed components before rules are created | ||
Initial situation: User completed Course A |
| No rules are defined for Course A yet, therefore no Component is Covered based on the completon of course A |
Then a rule is created in the Equivalence manager: Course A covers Course B |
| As a result of this new rule, Participant X will get Course B as covered, after the rule has been saved. (in the next minutes) |
I edit Course B and in the second category, where I can now see Course A as the only component, I remove course A and add a set of component where I add again Course A together with Course C. | Course C is not completed by the participant | Therefore, EQS sends to ILS the uncovered message for course B for participant X. Also, Course A is in this case no longer visible in the equivalence manager as it does not define by itself alone any equivalence relation, but only as part of a set together with Course C. |
| Course C is completed for participant X | As a result, Course B is now covered again for participant X |