Prometheus-X Components & Services

Learning traces from VR activities BB – Design Document

The “VR Traces” component is designed to capture, record and analyse user interactions with virtual reality (VR) exercises in educational and training contexts. Using the xAPI standard for data structuring, this system enables in-depth analysis of learners’ behaviour, successes and difficulties within VR simulations. Key components include the generation of xAPI traces, integration with Learning Record Stores (LRS) for data storage, and analysis tools to interpret the data.Traces are decided by simulator’s editor.

Technical usage scenarios & Features

Features/main functionalities

Value-added

Technical usage scenarios

Requirements

Integrations

See “01_BB Connections” spreadsheet

Direct Integrations with Other BBs

Integrations via Connector

Integration with consent

Why?

What?

Integration with contract

Why?

What?

Integration with identity

Why?

What?

Relevant Standards

Data Format Standards

The data is in XAPI format. This standard is particularly suitable for tracing events and results.

Mapping to Data Space Reference Architecture Models

Mapping to DSSC or IDS RAM

mapping to DSSC

Input / Output Data

The sample xAPI traces represent a sequence of events in a fibre welding simulation by John Doe, capturing key moments: the beginning, the most significant interactions (classified by severity), and the end. Here is a detailed explanation of each trace, highlighting the exercise ID, the registration ID, and the object IDs to understand how these elements reconstruct Jean Dupont’s learning scenario.

The first trace is the initialisation trace, which marks the start of the fibre welding exercise. It contains the following information:

{
  "actor": {
    "name": "John Doe",
    "mbox": "mailto:johndoe@example.com"
  },
  "verb": {
    "id": "http://adlnet.gov/expapi/verbs/initialized",
    "display": {
      "en-US": "initialized"
    }
  },
  "object": {
    "id": "https://navy.mil/netc/xapi/activities/simulations/b9e16535-4fc9-4c66-ac87-3ad7ce515f5c",

    "definition": {
      "name": {
        "en-US": "fibre welding"
      },
      "description": {
        "en-US": "Simple exercise about fibre welding"
      },
      "type": "http://adlnet.gov/expapi/activities/simulation"
    }
  },
  "context": {
    "registration": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "contextActivities": {
      "parent": [
        {
          "id": "http://mimbus.com/courses/9685",
          "definition": {
            "name": {
              "en-US": "Course fibre welding"
            },
            "description": {
              "en-US": "A course that includes Exercises and lessons about fibre welding"
            },
            "type": "http://adlnet.gov/expapi/activities/course"
          }
        }
      ],
      "category": [
        {
          "id": "https://w3id.org/xapi/simulation/v1.0",
          "definition": {
            "type": "http://id.tincanapi.com/activitytype/category",
            "name": {
              "en-US": "VR Exercises"
            }
          }
        }
      ],
      "extensions": {
        "https://w3id.org/xapi/cmi5/context/extensions/sessionid": "moodle-activity-12345"
      }
    },
    "platform": "Hachette VR",
    "language": "en-US"
  },
  "timestamp": "2024-03-15T09:00:00Z"
}

registration is a unique identifier assigned to a specific instance of a learning activity or session. This identifier is used to group together all the interactions and events linked to that particular session, enabling consistent and contextualised analysis of the learning data. It can be used to correlate all the actions, decisions and results of a learner within the same learning session.

Summary of this trace is as follows: John Doe(Actor) started (Verb) a fibre welding exercise on 15 March 2024 ( timestamp). This exercise is part of the “Course fibre welding” ( parent) course. The exercise takes place on the “Discover” simulator (platform), in a virtual reality environment (category). A unique identifier (registration) is generated for this exercise, marking the start of this session and also serving as an anchor point for all John’s future interactions and assessments within this simulation (Object id).

At the heart of the fibre welding exercise undertaken by Jean Dupont, a series of xAPI traces captures every key moment, enriching our understanding of how the exercise unfolded. Each trace is classified by its nature on the learning experience.

{
  "actor": {
    "name": "John Doe",
    "mbox": "mailto:johndoe@example.com"
  },
  "verb": {
    "id": "http://adlnet.gov/expapi/verbs/interacted",
    "display": {
      "en-US": "interacted"
    }
  },
  "object": {
    "id": "https://navy.mil/netc/xapi/activities/simulations/b9e16535-4fc9-4c66-ac87-3ad7ce515f5c/events/0221144",
    "definition": {
      "name": {
        "en-US": "Event in Simulator"
      },
      "description": {
        "en-US": "You did not use the cleaver to get a perfectly straight cut"
      },
      "type": "http://adlnet.gov/expapi/activities/interaction"
    }
  },
  "context": {
    "registration": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "extensions": {
      "https://w3id.org/xapi/cmi5/context/extensions/sessionid": "moodle-activity-12345"
    }
  },
  "result": {
    "success": false,
    "extensions": {
      "http://id.tincanapi.com/extension/severity": "error"
    }
  },
  "timestamp": "2024-03-16T22:08:00Z"
}

Result :

{
  "actor": {
    "name": "John Doe",
    "mbox": "mailto:johnDoe@example.com"
  },
  "verb": {
    "id": "http://adlnet.gov/expapi/verbs/completed",
    "display": {
      "en-US": "completed"
    }
  },
  "object": {
    "id": "https://navy.mil/netc/xapi/activities/simulations/b9e16535-4fc9-4c66-ac87-3ad7ce515f5c",
    "definition": {
      "name": {
        "en-US": "fibre welding"
      },
      "description": {
        "en-US": ""
      },
      "type": "http://adlnet.gov/expapi/activities/exercise"
    }
  },
  "result": {
    "score": {
      "scaled": 0.75
    },
    "success": true,
    "completion": true,
    "response": "The learner completed the fibre welding exercise.",
    "extensions": {
      "http://example.com/exercises/b9e16535-4fc9-4c66-ac87-3ad7ce515f5c/sensors/score": {
        "ExecutionQuality": 0,
        "Safety": 1,
        "Duration": 1,
        "Autonomy": 1,
        "Eco responsability": 0.75
      }
    }
  },
  "context": {
    "registration": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "contextActivities": {
      "parent": [
        {
          "id": "http://mimbus.com/courses/9685",
          "definition": {
            "name": {
              "en-US": "Course fibre welding"
            },
            "description": {
              "en-US": "A course that includes Exercises and lessons about fibre welding"
            },
            "type": "http://adlnet.gov/expapi/activities/course"
          }
        }
      ],
      "category": [
        {
          "id": "https://w3id.org/xapi/simulation/v1.0",
          "definition": {
            "type": "http://id.tincanapi.com/activitytype/category",
            "name": {
              "en-US": "VR Exercises"
            }
          }
        }
      ],
      "extensions": {
        "https://w3id.org/xapi/cmi5/context/extensions/sessionid": "moodle-activity-12345"
      }
    },
    "platform": "Hachette VR",
    "language": "en-US"
  },
  "timestamp": "2024-03-16T09:10:00Z"
}

Architecture

TODO

Dynamic Behaviour

dynamic behavior

Configuration and deployment settings

What configuration options does this BB have? What is the configuration format? Provide examples. How is the component logging the operations? What are the error scenarios? What are the limits in terms of usage (e.g. number of requests, size of dataset, etc.)?

Third Party Components & Licenses

_Does this BB rely on any 3rd-party components? See also the “EDGE third party/background components” spreadsheet.

Implementation Details

This is optional: remove this heading if not needed. You can add details about implementation plans and lower-level design here.

OpenAPI Specification

_In the future: link your OpenAPI spec here.

Test specification

Test definitions and testing environment should be availaible, and the tests should be repeatable.

Test plan

Testing strategy, tools and methods chosen, methods for acceptance criteria. To be detailed.

Internal unit tests

Here specify the test cases for the units inside the BB.
Candidates for tools that can be used to implement the test cases: JUnit, Mockito, Pytest.

Component-level testing

Here specify how to test this component/BB as a whole. This is similar to how other BBs will use this component.
Candidates for tools that can be used to implement the test cases: K6, Postman, stepci, Pact
An example tutorial is available here.