Go-Lab Logging Format

The following information is taken from deliverables D4.2 and D4.4. D4.2, section 2.4.6 describes the initial specification of the logging format. D4.4, section 2.1.1 additionally gives a specification of the verbs to be used in the logging format.

Logging format (from D4.2, section 2.4.6)

D5.1 specified that action logs in Go-Lab should follow the ActivityStreams format. In the ActivityStreams format, a user action has subject-verb-object-target semantics like "Max (Actor) adds (verb) a concept (object) to a concept map (target)". Additional context information can be added, by providing additional fields e.g. "generator". Some fields allow nested structures, e.g. an actor can have specific fields for id, name, etc. Consequently the common serialisation for activity streams is the JSON format. The following listing shows an example of the mentioned action that is encoded in the ActivityStreams format.

{
    "published": "2014−02−10T15:04:55Z",
    "actor": {
        "objectType" : "person",
        "id": "4fd5fe62−2c5d−4cfd−bbb9−eeecc4b147bc"
    },
    "verb": "update",
    "object" : {
        "objectType" : "concept",
        "id": "1f53e17c−90a3−4e27−8f48−09c09b694326",
        "content": "fluid density"
    },
    "target" : {
        "objectType" : "concept_map" ,
        "id": "b4ab6f3a−74e9−4e8a−bea0−0d242626d8f2",
        "displayName " : "my Buoyancy concept map"
    },
    "generator" : {
        "objectType": "application",
        "url": "http://go−lab.gw.utwente.nl/...",
        "displayName" : "conceptMapper"
    },
    "provider": {
        "objectType": "ILS" ,
        "id": b4ab6f3a−74e9−4e8a−bea0−0d241236d8f2
    }
}

On the app level the field provider indicates the space in which an app lives. The field generator specifies the app and the field target specifies a concrete object e.g. a particular concept map. With this hierarchical indexing it is possible to allocate each log to a specific user and instance of an app. When a user starts an app within an ILS, the fields actor, generator, provider and in most cases target can be initialised directly by the activity logging API because the values of these fields will not change for the logs generated during the app usage. In contrast to that, object, verb and published (the timestamp) can differ in every log. These fields can be set by app by using the logging API.

back to top

Data format for action logging (from D4.4, section 2.1.1)

As specified in deliverables D4.2 and D5.1 activity logs are encoded in the ActivityStream format. A detailed description on the special properties of an ActivityStream object in Go-Lab can be found in D4.2 Section 2.4.6. In order to keep action logs semantically consistent and to ensure that the logs can be understood by different processing applications, a predefined vocabulary of verbs has been specified. In general, it is possible to send any valid activity stream to the learning analytics back-end services, however, to enable proper learning analytics functionality logs need to adhere to the logging vocabulary. There is a semantic distinction between content-oriented, process-oriented and storage-oriented actions. The following table lists the currently used verbs.

Semantics Verbs
content-oriented "add", "remove", "change"
storage-oriented "open", "create", "update", "delete"
process-oriented "access", "start", "cancel", "send", "receive"

Content-oriented actions refer to the direct manipulation of artifacts. Typical examples are adding a concept to a concept map or editing a wiki page. The storage-oriented verbs are similar words but have different semantics. Storage-oriented actions are always related to persistency of artifacts. In general, whenever an action involves the ILS Artefact Storage Library (see D5.3) storage-oriented action logs will be created. The third group of verbs refer to actions that are part of general processes in an ILS. In contrast to content-oriented logs, which always imply the manipulation of an artefact, process-oriented logs are used in order to indicate that specific functionality of apps, labs, or spaces was used. These logs are typically more coarse grained than the content-oriented logs. Examples for process-oriented action logs are: a student accessed an inquiry learning phase, accessed an app, started an experiment, etc.

back to top