xAPIおよびIMS Caliper。またはADL vs IMS?

画像



xAPI(ADL)の登場は予期せぬ出来事ではありませんでした。 TinCanは非常に長い間議論されており、新しい仕様を議論するとき、膨大な数のオープンフォーラムが「本格的に」進んでいました。 ADLが仕様をリリースしたのは、十分な議論の後でのみでした。その後、xApiを使用して多くの企業が実際に作業した後、CMI5が登場しました。



そして、Caliperと呼ばれる同様のIMS Global Learning Consortium仕様が登場しました。

xAPIとCaliperの著しい類似点により、開発者とコンテンツプロバイダーは、一方または両方の仕様の実装の違いを明確にするよう求められました(どちらも現在標準化を目指しています)。



xAPIとCaliperの両方のサポートコミュニティは、両方の仕様の費用対効果の高いサポートについて懸念を表明しました。



ここに短い答え「IMS」(リンク)があります



a)CaliperとxAPIの起源は大きく異なります。コアxAPIは、(SCORMの場合のように)Webベースのコースだけに限定されず、あらゆる種類の経験と証拠の追跡を電子的および物理的なパフォーマンスの両方で可能にすることです。キャリパーは、IMSラーニング分析フレームワークの顕現であり、センサーAPIおよびメトリックプロファイルは、そのフレームワークの最初の2つのコンポーネントです。xAPIとCaliperは同等ではありません。養子縁組は「どちらか一方」ではなく、「馬のための馬」の決定です。



b)xAPI(アクター/動詞/オブジェクト)とキャリパー(アクター/アクション/アクティビティ)の両方がトリプルステートメント構造に基づくデータモデルを使用する一方で、オブジェクトとアクティビティの定義の詳細な構造と使用法にはかなりの違いがあります。ただし、各仕様が他の仕様の動詞/アクションを利用できるようにする必要があります。


ここに短い「ADL」の回答があります(リンク)。



As xAPI has matured, so too has a similar specification from the IMS Global Learning Consortium called Caliper. There are notable similarities between xAPI and Caliper, which has caused adopters and vendors to clarify implementation differences of one or both specifications (both of which are now targeting standardization). Both communities supporting xAPI and Caliper have expressed concerns about being able to cost-effectively support both specs, which led to inquiries to both ADL Initiative and IMS about whether alignment of the two would be possible.


xAPI(Actor / Verb / Object)とCaliper(Actor / Action / Activity)は、3項演算子構造に基づくデータモデルを使用します。オブジェクトとアクティビティ定義の詳細な構造と使用法には大きな違いがあります。どうやら俳優と動詞/アクションは同じですが、オブジェクト/アクティビティのみが異なりますか?



私はかなり長い間xAPIを使用してきましたが、Caliperには慣れていませんでした。ドキュメントを少し勉強する必要がありました(リンクもう1つ)。



個人的には大きな違いはなかったとすぐに言います。 xAPIステートメント(Activites)で呼び出されるものは、キャリパーのイベントと呼ばれます。







画像



キャリパーのいわゆる「メトリック」の存在に注目しましたが、説明はやや抽象的であり、実用的な例は見つかりませんでした。



The Caliper information model defines a number of metric profiles, each of which models a learning activity or a supporting activity that helps facilitate learning. A metric profile’s raison d’etre is to encourage vocabulary standardization and re-use among application providers delivering complementary, albeit competing capabilities that collect learning activity data. Each profile provides a domain-specific set of terms and concepts that application designers and developers can draw upon to describe common user interactions in a consistent manner using a shared vocabulary. Annotating a reading, playing a video, taking a test, or grading an assignment submission represent a few examples of the many activities or events that Caliper’s metric profiles attempt to describe.



各メトリックプロファイルは、スタンドアロンの論理コンテナ、または相互に関連する一連のアクティビティを説明するのに役立つ1つ以上のCaliperイベントのコレクションと考えてください。メトリックプロファイルに含まれる各イベントタイプは、さまざまなエンティティおよびアクションに制約を課し、学習アクティビティを説明するために利用できます。語彙の制限は、以下の見出しの下の各プロファイルの説明で概説されています


IMSのウェブサイトには「美しい写真」がたくさんありますが、それらは違いが最小限であるという感覚をさらに強めます。



承認と保存のメカニズム(LRS)の観点からは、実質的に違いはありません。xApiのJSONとCaliperのJSON-LDの違いは、私には重要ではありません。それら。これらの問題に違いはありません。



JSON xApiとCaliper



xApiの例を見てみましょう



{
  "actor": {
    "name": "Sally Glider",
    "mbox": "mailto:sally@example.com"
  },
  "verb": {
    "id": "http://adlnet.gov/expapi/verbs/completed",
    "display": { "en-US": "completed" }
  },
  "object": {
    "id": "http://example.com/activities/hang-gliding-test",
    "definition": {
      "type": "http://adlnet.gov/expapi/activities/assessment",
      "name": { "en-US": "Hang Gliding Test" },
      "description": {
        "en-US": "The Solo Hang Gliding test, consisting of a timed flight from the peak of Mount Magazine"
      },
      "extensions": {
        "http://example.com/gliderClubId": "test-435"
      }
    }
  },
  "result": {
    "completion": true,
    "success": true,
    "score": {
      "scaled": 0.95
    },
    "extensions": {
      "http://example.com/flight/averagePitch": 0.05
    }
  },
  "context": {
    "instructor": {
      "name": "Irene Instructor",
      "mbox": "mailto:irene@example.com"
    },
    "contextActivities":{
      "parent": { "id": "http://example.com/activities/hang-gliding-class-a" }
      "grouping": { "id": "http://example.com/activities/hang-gliding-school" }
    },
    "extensions": {
      "http://example.com/weatherConditions": "rainy"
    }
  },
  "timestamp": "2012-07-05T18:30:32.360Z",
  "stored": "2012-07-05T18:30:33.540Z",
  "authority": {
    "name": "Irene Instructor",
    "mbox": "mailto:irene@example.com"
  }
}


キャリパー



{
  "sensor": "https://example.edu/sensors/1",
  "sendTime": "2018-11-15T11:05:01.000Z",
  "dataVersion": "http://purl.imsglobal.org/ctx/caliper/v1p1",
  "data": [
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "https://example.edu/users/554433",
      "type": "Person",
      "dateCreated": "2018-08-01T06:00:00.000Z",
      "dateModified": "2018-09-02T11:30:00.000Z"
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1?ver=v1p0",
      "type": "Assessment",
      "name": "Quiz One",
      "items": [
        {
          "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/items/1",
          "type": "AssessmentItem"
        },
        {
          "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/items/2",
          "type": "AssessmentItem"
        },
        {
          "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/items/3",
          "type": "AssessmentItem"
        }
      ],
      "dateCreated": "2018-08-01T06:00:00.000Z",
      "dateModified": "2018-09-02T11:30:00.000Z",
      "datePublished": "2018-08-15T09:30:00.000Z",
      "dateToActivate": "2018-08-16T05:00:00.000Z",
      "dateToShow": "2018-08-16T05:00:00.000Z",
      "dateToStartOn": "2018-08-16T05:00:00.000Z",
      "dateToSubmit": "2018-09-28T11:59:59.000Z",
      "maxAttempts": 2,
      "maxScore": 15.0,
      "maxSubmits": 2,
      "version": "1.0"
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "https://example.edu",
      "type": "SoftwareApplication",
      "version": "v2"
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "https://example.edu/terms/201801/courses/7/sections/1",
      "type": "CourseSection",
      "academicSession": "Fall 2018",
      "courseNumber": "CPS 435-01",
      "name": "CPS 435 Learning Analytics, Section 01",
      "category": "seminar",
      "subOrganizationOf": {
        "id": "https://example.edu/terms/201801/courses/7",
        "type": "CourseOffering",
        "courseNumber": "CPS 435"
      },
      "dateCreated": "2018-08-01T06:00:00.000Z"
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594",
      "type": "AssessmentEvent",
      "actor": "https://example.edu/users/554433",
      "action": "Started",
      "object": "https://example.edu/terms/201801/courses/7/sections/1/assess/1?ver=v1p0",
      "generated": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "type": "Attempt",
        "assignee": "https://example.edu/users/554433",
        "assignable": "https://example.edu/terms/201801/courses/7/sections/1/assess/1?ver=v1p0",
        "count": 1,
        "dateCreated": "2018-11-15T10:15:00.000Z",
        "startedAtTime": "2018-11-15T10:15:00.000Z"
      },
      "eventTime": "2018-11-15T10:15:00.000Z",
      "edApp": "https://example.edu",
      "group": "https://example.edu/terms/201801/courses/7/sections/1",
      "membership": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
        "type": "Membership",
        "member": "https://example.edu/users/554433",
        "organization": "https://example.edu/terms/201801/courses/7/sections/1",
        "roles": [ "Learner" ],
        "status": "Active",
        "dateCreated": "2018-08-01T06:00:00.000Z"
      },
      "session": {
        "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
        "type": "Session",
        "startedAtTime": "2018-11-15T10:00:00.000Z"
      }
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "urn:uuid:dad88464-0c20-4a19-a1ba-ddf2f9c3ff33",
      "type": "AssessmentEvent",
      "actor": "https://example.edu/users/554433",
      "action": "Submitted",
      "object": "https://example.edu/terms/201801/courses/7/sections/1/assess/1?ver=v1p0",
      "generated": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "type": "Attempt",
        "assignee": "https://example.edu/users/554433",
        "assignable": "https://example.edu/terms/201801/courses/7/sections/1/assess/1?ver=v1p0",
        "count": 1,
        "dateCreated": "2018-11-15T10:15:00.000Z",
        "startedAtTime": "2018-11-15T10:15:00.000Z",
        "endedAtTime": "2018-11-15T10:55:12.000Z",
        "duration": "PT40M12S"
      },
      "eventTime": "2018-11-15T10:25:30.000Z",
      "edApp": "https://example.edu",
      "group": "https://example.edu/terms/201801/courses/7/sections/1",
      "membership": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
        "type": "Membership",
        "member": "https://example.edu/users/554433",
        "organization": "https://example.edu/terms/201801/courses/7/sections/1",
        "roles": ["Learner"],
        "status": "Active",
        "dateCreated": "2018-08-01T06:00:00.000Z"
      },
      "session": {
        "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
        "type": "Session",
        "startedAtTime": "2018-11-15T10:00:00.000Z"
      }
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "urn:uuid:a50ca17f-5971-47bb-8fca-4e6e6879001d",
      "type": "GradeEvent",
      "actor": {
        "id": "https://example.edu/autograder",
        "type": "SoftwareApplication",
        "version": "v2"
      },
      "action": "Graded",
      "object": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "type": "Attempt",
        "assignee": "https://example.edu/users/554433",
        "assignable": "https://example.edu/terms/201801/courses/7/sections/1/assess/1?ver=v1p0",
        "count": 1,
        "dateCreated": "2018-11-15T10:15:00.000Z",
        "startedAtTime": "2018-11-15T10:15:00.000Z",
        "endedAtTime": "2018-11-15T10:55:12.000Z",
        "duration": "PT40M12S"
      },
      "eventTime": "2018-11-15T10:57:06.000Z",
      "edApp": "https://example.edu",
      "generated": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/users/554433/attempts/1/scores/1",
        "type": "Score",
        "attempt": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "maxScore": 15.0,
        "scoreGiven": 10.0,
        "scoredBy": "https://example.edu/autograder",
        "comment": "auto-graded exam",
        "dateCreated": "2018-11-15T10:56:00.000Z"
      },
      "group": "https://example.edu/terms/201801/courses/7/sections/1"
    }
  ]
}


これらの仕様間の大きな違いを特定できなかったことを認めなければなりません。



フレーズ
IMS Learning Analytics FrameworkとセンサーAPIおよびメトリックプロファイルは、そのフレームワークの最初の2つのコンポーネントです
どうやら私たちはフレームワークの出現を期待すべきだと言っています。しかし、私はそれに関する情報を見つけることができませんでした。



私が個人的に同様の仕様だと私が信じているものを2つの評判の良い組織が提出した理由はわかりません。たとえば、SCORM(ADL)とIMS CPの「共存」のこれまでの歴史は、標準が互いに補完し合うことができることを示しました。今回はそのような追加を見ません。



All Articles