xAPI Ver 2.0 = IEEE 9274.1.1-2023 における「LRP」仕様の概要

xAPI LRP ( Learning Record Store ) は「Actor・Verb・Object」含む JSON 形式の履歴である、相互運用性のある「xAPI ステートメント」を正しく生成し、RESTful APIを介して LRS へ送信することが役割です。
この中には「識別子や時間の扱い」「構造の厳守」「添付ファイルの処理」などの要件が含まれています。一方、「認証」や「権限判定」、「意味論的な妥当性チェック」は LRP の責務ではなく、LRS や上位レイヤーが担うとされています。

IRI(識別子)

既存の識別子(IRI)がある場合は、それを厳密に同じ形式で再利用し、新しい識別子を乱用して複製しないよう注意が必要。


データ構造の正規性

"contextActivities" などの配列構造は、必ず配列で扱い、形式を守ることが求められている。


タイムスタンプ

ステートメント本体の "timestmap" には未来の日時を使用してはならない。


添付ファイル ( "Attachments" ) 処理

LRPはステートメントと共に添付ファイルを送信することができる。"sha2" プロパティを適切に生成する必要がある。


マルチパート処理

リクエストは RFC 2046 "multipart/mixed" の定義に準拠する。複数ステートメントに共通のファイルがある場合、添付データを1回だけ送るべき。 バッチ送信時、添付の重複やリレーション構造の整合性に気をつけ、仕様通りに実装する必要がある。


認証と権限情報

該当の仕様書では認証関連要件が外されており、別途、セキュリティ推奨に委ねられている。 権限情報 "authority" は LRP 側で設定しないほうが良いとされており、LRS 側で対応。


規定のチェック

LRP: 構文上のエラーチェック
LRS: 意味論的エラー(語彙、動詞定義等)のチェック
を、それぞれ担当する。