Skip to content

Latest commit

 

History

History
325 lines (284 loc) · 10.5 KB

common_structures.md

File metadata and controls

325 lines (284 loc) · 10.5 KB

Jisc Learning Analytics Common Structures

The following sections describe common structures used across several of the Statement templates. Wherever a Statement template refers to a "common entity identifier", the example given in the Statement template follows or extends 1 of the structures on this page.

ActorA

Common entity identifier: ActorA

This entity is required across all Statements in the Jisc Profile.

The Actor entity describes the individual that is the subject of the Statement.

Property [cardinality]DescriptionValue information
actor.objectType [1] Must have the value "Agent". Actors of type "Group" are not supported in the Jisc Profile. Must have the value "Agent"
actor.name [0..1] Full name of user. string
actor.account [1] Account details of Agent. JSON Object
actor.account.name [1] Login id for the subject string
actor.account.homepage [1] URL of the home page of the application for which the login id applies. url

Example

"actor": {
  "objectType": "Agent",
  "name": "John Smith",
  "account": {
    "name": "jsmith12",
    "homePage": "https://courses.alpha.jisc.ac.uk/moodle"
  }
}

VerbA

Common entity identifier: VerbA

This entity is required across all Statements in the Jisc Profile.

The Verb structure indicates the action which the Statement expresses. The Verbs used in the Jisc Profile are listed on the vocabularies page.

Property [cardinality]DescriptionValue information
verb.id [1] An IRI that identifies the Verb. Valid IRIs depend on the Statement and are given on the relevant Statement page. IRI
verb.display [1] A human readable representation of Verb, takes a RFC 5646 Language Tag. string

Example

"verb": {
  "id": "https://brindlewaye.com/xAPITerms/verbs/loggedin",
  "display": {
    "en" : "logged in to"
  }
}

Context

The significance of data in a Statement can be more clearly understood if we describe the circumstances surrounding the Statement. These circumstances are described in a Statement's Context entity.

ContextA

Common entity identifier: ContextA

This pattern is used across many Statements in the Jisc Profile, but there may be additional data elements required for some Statements. Four extensions are provided, with IRIs as defined on the vocabularies page.

Property [cardinality]DescriptionValue information
context.platform [1] The platform used in the experience of this learning activity. The value used should not change between platform upgrades and version changes, and should typically be a concise name by which the application is commonly known, for example "Moodle" or "Blackboard" string
context.extensions.version [0..1] Recommended. Identifies the version of the Jisc xAPI Profile found on the ReadMe page.
decimal
context.extension.sessionId [0..1] The VLE session ID, or a suitably hashed version of it. A value should be provided if this information is available. string
context.extension.ip-address [1] Client's IP address. An IPv4 address is recommended. ip address
context.extension.courseArea [0..1] The academic context in which this Activity is situated (e.g. umbrella course, or parent area). The properties in courseArea must be a UDD Module Instance ID or a VLE Module ID or both. More information can be found on the vocabularies page. JSON object

Example:

"context": {
        "platform": "Moodle",
        "extensions": {
	
			"http://xapi.jisc.ac.uk/courseArea": {
				"http://xapi.jisc.ac.uk/vle_mod_id": "LA101",
				"http://xapi.jisc.ac.uk/uddModInstanceID": "LA101-200-2016S1-0"
			},
					
		"http://xapi.jisc.ac.uk/sessionId": "32456891"  ,
		"http://id.tincanapi.com/extension/ip-address": "10.3.3.48"
		"http://xapi.jisc.ac.uk/version" : "1.0"
			}
        }

ContextB

Common entity identifier: ContextB (Deprecated)

The ContextB pattern is similar to ContextA, but with the addition of a contextActivities property with a ‘grouping’ property. This allows Statements to be associated to the Activity described in the Object entities as part of a larger whole.

Property [cardinality]DescriptionValue information
context.contextActivities [0..1] An optional property that holds a mandatory ‘grouping’ property. It allows Statements to be associated with the Object entity's Activity as part of a larger whole. The example shows a course within the VLE. The 'grouping' property has an ObjectA as its value.
context.platform [1] The platform used in the experience of this learning activity. The value used should not change between platform upgrades and version changes and should typically be a concise name by which the application is commonly known, for example "Moodle" or "Blackboard" string
context.extensions.version [0..1] Recommended, identifies the version of the Jisc xAPI Profile found on the ReadMe page.
decimal
context.extension.sessionId [0..1] The VLE session ID, or a suitably hashed version of it. A value should be provided if this information is available. string
context.extension.ip-address [1] Client's IP address. An IPv4 address is recommended. ip address
context.extension.courseArea [0..1] Umbrella course/parent area by its an UDD Module Instance ID or VLE Module ID. More information can be found on the vocabularies page.. JSON object

Example:

"context": {
	"contextActivities":{
            "grouping":[
                {
                    "objectType":"Activity",
                    "id":"http://moodle.data.alpha.jisc.ac.uk/course/view.php?id=4",
                    "definition":{
                        "type":"http://xapi.jisc.ac.uk/courseArea",
                        "name":{
                            "en":"xAPI Basics"
                        },
                        "description":{
                            "en":"xAPI Basics course for Learning Analytics enthusiasts"
                        }
                    }
                }
            ]
        },
        
        "platform": "Moodle",
        "extensions": {
		
			"http://xapi.jisc.ac.uk/courseArea": {
				"http://xapi.jisc.ac.uk/vle_mod_id": "LA101",
				"http://xapi.jisc.ac.uk/uddModInstanceID": "LA101-200-2016S1-0",
			},
			
 		"http://xapi.jisc.ac.uk/sessionId":"32456891",
        "http://id.tincanapi.com/extension/ip-address": "10.3.3.48"
		"http://xapi.jisc.ac.uk/version" : "1.0"
			}
		}

Object

Depending on the Statement, different patterns apply to express the Object of a Statement.

ObjectA

Common entity identifier: ObjectA

This Object pattern describes the core attributes of Object as used in the Jisc Profile.

Property [cardinality]DescriptionValue information
object.objectType [1] The value must be "Activity". String, value must be "Activity".
object.id [1] An identifier for the object of the xAPI Statement. This must be unique (within a given platform) across all Object types. iri
object.definition.type [1] Indicates the type of the Object of the Statement. It is required and valid values are listed on the vocabulary page iri
object.definition.name [0..1] Optional Object name string
object.definition.extensions.http://xapi.jisc.ac.uk/subType [0..1] May be used to indicate the sub-type of this Activity, if applicable for the recipe being used to create the Statement. This qualifies the object.objectType, and is described on the [vocabularies](vocabulary.md#object-definition-extensions) page. iri

Example:

"object": {
  "objectType": "Activity",
  "id": "https://courses.alpha.jisc.ac.uk/moodle",
  "definition": {
    "type": "http://activitystrea.ms/schema/1.0/application",
    "name": {
      "en": "University of Jisc VLE"
    },
    "extensions": {
      "http://xapi.jisc.ac.uk/subType": "http://id.tincanapi.com/activitytype/lms"
    }
  }
}

ObjectB

Common entity identifier: ObjectB

This Object pattern describes an Activity with a due date.

Property [cardinality]DescriptionValue information
object.objectType [1] The value must be "Activity". String, value must be "Activity".
object.id [1] An identifier for the Object of the xAPI Statement. This must be unique (within a given platform) across all Object types. iri
object.definition.type [1] Indicates the type of the Object of the Statement. It is required and valid values are listed on the vocabulary page iri
object.definition.name [0..1] Optional Object name string
object.definition.extensions.http://xapi.jisc.ac.uk/dueDate [0..1] Indicates when an assignment is due ISO 8601 date time

Example:

"object":{

		"objectType":"Activity",
		"id":"http://moodle.data.alpha.jisc.ac.uk/course/view.php?id=4",
		"definition":{
			"type":"http://adlnet.gov/expapi/activities/assessment",
			"name":{
				"en":"Course Assignment"
			},
			"description":{
				"en":"Course Assignment description"
				}
			},
			
		    "extensions":{
				"http://xapi.jisc.ac.uk/dueDate": "2016-02-05T17:59:45.000Z"
			}
			
		}