If the “adaptive learning” feature is activated on your instance, the system will compute Recommendations according to the Student’s Knowledge and the Objectives. For each Event sent, the system will update the Student’s Knowledge and therefore compute new Recommendations. It is possible to display all the Recommendations and let the end-user make his/her own choice, or to skip directly from the content of the Event to the Content of the best new Recommendation.\\ A Recommendation can be of two types: it can be a Knowledge Node Recommendation, or a Content Recommendation.\\ ===Object resources=== ^ Property ^ Type ^ Description ^ | destination_node_id | Integer | The knowledge node this recommendation is recommending | | content_id | Integer | The content this recommendation is recommending | | student_id | Integer | Student identifier | | priority | Integer | Importance value of the recommendation; -1 means it should not be showed to the student | | objective_id | Integer | The Objective that Recommendation tries to reach | ===Fetch (GET)=== ^ Method | GET| ^ URL | /recommendations/{recommendation_id} | If no recommendation_id is provided, it will fetch all the Recommendations of your instance.\\ If you want to specify which recommendation you want to get, you can add the following parameters in a JSON request:\\ ^ Property ^ Type ^ Description ^ | student_id | Integer | The ID of the student you want to fetch the recommendations for | | objective_id | Integer | The ID of the particular Objective you want to fetch recommendations for | | limit | Integer | The number of recommendations you want to fetch. By default, limit is set to 3 | | type* | String | "KnowledgeNodeRecommendationStack" to have the Knowledge Nodes recommendations, "ContentRecommendationStack" to have the content recommendations | { student_id: 1, objective_id: 1, limit: 5 } ==Get the response (JSON output example)== [{ id: 1, destination_node_id: 2, content_id: 3, student_id: 1, priority: 2, objective_id: 1 }, { id: 2, destination_node_id: 3, content_id: 15, student_id: 1, priority: -1, objective_id: 1 }] ===Fetch the next best concept (GET)=== ^ Method | GET | ^ URL | /recommendation_utils/fetch_best_knowledge_recommendations | ==Parameters (*Required parameters)== ^ Property ^ Type ^ Description ^ | student_id or student_uid * | Integer or String | Identifier of the student | | objective_id or uid | Integer | Identifier of the objective | | objectives | String | If "all" it will select all your objectives | | limit | Integer | The maximum number of recommendations you want (1 by default) | If no objective_id nor objectives parameters are given, the API will select all your active objectives. ===Fetch the next best content (GET)=== ^ Method | GET | ^ URL | /recommendation_utils/fetch_best_content_recommendations | ==Parameters (*Required parameters)== ^ Property ^ Type ^ Description ^ | student_id or student_uid * | Integer or String | Identifier of the student | | objective_id | Integer | Identifier of the objective | | objectives | String | If "all" it will select all your objectives | | limit | Integer | The maximum number of recommendations you want (1 by default) | | knowledge_node_id | Integer | If you want recommendations on a specific Knowledge Node | If no objective_id nor objectives parameters are given, the API will select all your active objectives.