LRS 和 Tincan API 中的自定义 属性

custom property in LRS & Tincan API

是否可以通过 Tincan API 将自定义 属性 添加到 "Actor" 以保存它 在 LRS 中。

详情: 我正在使用 Learning Locker 作为 LRS 系统和 Drupal 的 Tincan API,众所周知,保存在 LRS 中的语句记录中有 3 个对象,它们是 [Actor - Verb - Object] 现在 Actor 有 2 个属性,它们是 [name - mbox] 我试图修改 Tincan 模块以添加自定义 属性,即 [country],但 LRS API "Learning Locker" 拒绝了它。 那么是否有一种自定义的方式来获取额外的属性,以便我以后可以像 [age - gender - country] 或其标准 API 严格定义的属性

{
"version": "1.0.0",
"actor": {
    "objectType": "Agent",
    "name": "Creative User",
    "mbox": "mailto:register@example.com"
},
"verb": {
    "id": "http://adlnet.gov/expapi/verbs/action_custom_verb",
    "display": {
        "en-US": "action_custom_verb"
    }
},
"object": {
    "objectType": "Activity",
    "id": "http://localhost",
    "definition": {
        "name": {
            "en-US": "master"
        }
    }
},
"authority": {
    "objectType": "Agent",
    "name": "drupaladmin",
    "mbox": "mailto:hello@learninglocker.net"
},
"stored": "2017-02-06T16:58:23.625600+00:00",
"timestamp": "2017-02-06T16:58:23.625600+00:00",
"id": "9c1d552b-c825-4403-9c89-a9381b8d5320"

}

标准 API 对属性的添加非常严格。 Agent/Group 对象(actor 可以包含的对象)不包括扩展其范围的能力。

可以在称为 extensions 的特殊属性中添加额外的数据点,这些属性在语句对象的几个地方可用。在这种情况下,您可以在 context 属性 的值中使用扩展名来包含有关 actor 的附加信息。您可以将此作为单个离散信息片段来执行,其中每个片段都有自己的扩展键,或者您可以使用一个键,该键使用一个对象作为其值,并在该对象的属性中包含各个信息片段。有关扩展的更多信息,请参阅:http://tincanapi.com/deep-dive-extensions/

请注意,扩展键无法通过 /statements 流资源进行过滤,因此任何基于其键或值的查询都必须通过规范 API 以外的其他方式完成。