学习记录存储(LRS)和Tin Can API(也称为Experience API或xAPI)允许在陈述(statements)中包含自定义属性,这些属性可以为学习活动提供额外的上下文和信息。以下是在LRS和Tincan API中使用自定义属性的一些方法:
在Tin Can API中,陈述(statements)是由演员(actor)、动词(verb)、对象(object)和可选的结果(result)、上下文(context)等部分组成的JSON对象。自定义属性通常添加到context
或result
部分。
{
"actor": {
"name": "John Doe",
"mbox": "mailto:john.doe@example.com"
},
"verb": {
"id": "http://adlnet.gov/expapi/verbs/completed",
"display": {"en-US": "completed"}
},
"object": {
"id": "http://example.edu/course/module1",
"definition": {
"name": {"en-US": "Module 1"},
"description": {"en-US": "Introduction to Module 1"}
}
},
"context": {
"contextActivities": {
"parent": [{
"id": "http://example.edu/course",
"definition": {
"name": {"en-US": "Course Name"}
}
}]
},
"custom": {
"courseSection": "Section A",
"enrollmentDate": "2023-01-15"
}
}
}
在上面的示例中,custom
对象包含了两个自定义属性:courseSection
和enrollmentDate
。
Tin Can API还支持通过extensions
属性添加自定义数据。这允许你将数据关联到陈述的特定部分,如动词、对象或结果。
{
"actor": {
"name": "John Doe",
"mbox": "mailto:john.doe@example.com"
},
"verb": {
"id": "http://adlnet.gov/expapi/verbs/completed",
"display": {"en-US": "completed"},
"extensions": {
"http://example.edu/extensions/courseLevel": "Advanced"
}
},
"object": {
"id": "http://example.edu/course/module1",
"definition": {
"name": {"en-US": "Module 1"},
"description": {"en-US": "Introduction to Module 1"}
}
}
}
在这个例子中,extensions
属性被添加到了verb
对象中,并使用了一个自定义的URI来标识courseLevel
属性。
当陈述被发送到LRS时,自定义属性将与陈述一起存储。你可以使用LRS的查询功能来检索包含特定自定义属性的陈述。
如果你想检索所有courseSection
为Section A
的陈述,你可以构建一个查询来过滤这些结果。
总之,自定义属性为Tin Can API提供了灵活性,允许开发者添加额外的信息来丰富学习数据的上下文。在使用自定义属性时,重要的是要遵循最佳实践,确保数据的清晰性和一致性。
领取专属 10元无门槛券
手把手带您无忧上云