uk.gdeo.learn.event

학습 이벤트. xAPI statement를 임베드한다(제약 3번: 의미론은 표준 차용, 봉투만 자체 정의). ADR-0001: 비공개 기본이며 AppView 인덱싱 대상이 아니다.

Details · record, key tid
Kindrecord
Record keytid
Authoritylearn.gdeo.uk
Indexed

Record

record · key tid

Properties

course

string
  • maxLength: 300

node

string
  • maxLength: 300

recordedAt

requiredstring · datetime

봉투 필드. xAPI의 stored와 구분한다.

statement

requiredref
Reference

#activity

object

xAPI object. **Activity만 지원한다**(위 objectType 설명 참조).

Properties

id

requiredstring
  • maxLength: 500

이 def는 Activity만 표현한다. xAPI가 허용하는 Agent/Group/StatementRef/SubStatement는 필드 구조가 달라(Agent는 id 대신 IFI, SubStatement는 actor/verb/object를 갖고 id를 가질 수 없다) 이 def로 담을 수 없다. **지원하지 않는다**고 명시한다 — 이전 스키마는 enum이 4종을 광고하면서 id를 required로 두어 그 statement를 전부 거부했다(2026-09-09 검토 지적). 필요해지면 union + 별도 def로 분해하고 ADR-0007에 기록한다.

  • enum: Activity

#activityDefinition

object

Properties

  • maxLength: 64
itemsstring
  • maxLength: 1000

language map — unknown

extensions

unknown

IRI-keyed 열린 맵 — unknown

소수를 포함한 extensions 보존용(ADR: atproto 데이터 모델은 float 금지). extensions와 배타적.

  • maxLength: 20000
  • enum: true-false | choice | fill-in | long-fill-in | matching | performance | sequencing | likert | numeric | other

moreInfo

string · uri

name

unknown

language map — unknown

type

string · uri

#agent

object

xAPI Agent/Group. **required를 두지 않는다** — xAPI 1.0.3은 objectType을 optional로 두고 IFI(mbox / mbox_sha1sum / openid / account) **정확히 하나**를 요구한다. Lexicon은 "넷 중 정확히 하나"를 표현할 수 없으므로 그 규칙은 변환기·검증기의 추가 규칙이다(2026-09-09 검토 지적: 이전 스키마는 objectType을 required로 만들어 유효한 xAPI actor를 거부하고, 식별자 없는 actor를 통과시켰다).

Properties

Reference

mbox

string
  • maxLength: 300
  • maxLength: 64

name

string
  • maxLength: 300
  • enum: Agent | Group

openid

string · uri

#agentAccount

object

Properties

homePage

requiredstring · uri

name

requiredstring
  • maxLength: 300

#attachment

object

Properties

contentType

requiredstring
  • maxLength: 128

display

requiredunknown

language map — unknown

extensions

unknown

IRI-keyed 열린 맵 — unknown

동일. 2026-09-09 검토에서 이 경로에 필드가 없어 소수 인코딩이 불가능하다는 지적을 받아 추가.

  • maxLength: 20000

fileUrl

string · uri

length

requiredinteger
  • minimum: 0

sha2

requiredstring
  • maxLength: 128

usageType

requiredstring · uri

#context

object

Properties

extensions

unknown

소수를 포함한 extensions는 atproto 데이터 모델(float 금지)에 담을 수 없다. JSON 문자열로 보존한다 — 무손실이지만 **검증·질의 불가**다. extensions와 배타적으로 쓴다.

  • maxLength: 20000
Reference

language

string
  • maxLength: 32

platform

string
  • maxLength: 300
  • maxLength: 64

revision

string
  • maxLength: 300
Reference

team

ref
Reference

#contextActivities

object

Properties

  • maxLength: 32
itemsref
Reference
  • maxLength: 32
itemsref
Reference

other

array
  • maxLength: 32
itemsref
Reference

parent

array
  • maxLength: 32
itemsref
Reference

#result

object

xAPI result. score는 소수이므로 **정수 스케일로 인코딩**한다(Lexicon에 float 없음). 원본 복원을 위해 스케일을 함께 기록한다.

Properties

completion

boolean

duration

string

ISO 8601 duration. 문자열이므로 무손실이다.

  • maxLength: 64

extensions

unknown

소수를 포함한 extensions는 atproto 데이터 모델(float 금지)에 담을 수 없다. JSON 문자열로 보존한다 — 무손실이지만 **검증·질의 불가**다. extensions와 배타적으로 쓴다.

  • maxLength: 20000

response

string
  • maxLength: 10000
Reference

success

boolean

#score

object

xAPI score. **정수 인코딩만으로는 무손실이 아니다**(S7 실측: 1/3 → 0.333, 0.8765 → 0.877). 원본 10진 문자열을 함께 보존해 왕복을 무손실로 만들고, 정수 필드는 질의·정렬용으로 둔다.

Properties

maxScaled

integer

범위는 IEEE754 안전 정수(±2^53-1). 초과는 변환기가 실패로 보고한다.

  • minimum: -9007199254740991
  • maximum: 9007199254740991

maxStr

string
  • maxLength: 32

minScaled

integer

범위는 IEEE754 안전 정수(±2^53-1). 초과는 변환기가 실패로 보고한다.

  • minimum: -9007199254740991
  • maximum: 9007199254740991

minStr

string
  • maxLength: 32

raw/min/max에 적용한 10의 지수. 변환기는 고정값 6만 쓴다(`roundtrip.mjs` RAW_EXP). 스키마는 0~9를 허용하나 지수를 레코드마다 바꾸면 정수 필드 간 비교·정렬이 깨진다. 왕복 복원은 문자열 필드가 정본이다.

  • minimum: 0
  • maximum: 9
  • default: 0

rawScaled

integer

xAPI raw × 10^rawScaleExp. 범위는 IEEE754 안전 정수(±2^53-1). 초과는 변환기가 실패로 보고한다.

  • minimum: -9007199254740991
  • maximum: 9007199254740991

rawStr

string
  • maxLength: 32

xAPI scaled × 1000.

  • minimum: -1000
  • maximum: 1000

scaledStr

string

원본 10진 문자열. 왕복 복원의 근거다. 정수 필드보다 우선한다.

  • maxLength: 32

#statementRef

object

Properties

id

requiredstring
  • maxLength: 64

objectType

requiredstring
  • enum: StatementRef

#verb

object

Properties

display

unknown

xAPI language map. **Lexicon에 열린 맵 타입이 없어 unknown으로 담는다** — 검증이 불가능해진다(S7 발견 2). 키는 RFC 5646 언어 태그.

id

requiredstring · uri

#xapiStatement

object

xAPI 1.0.3 statement. 필드 이름·구조를 표준 그대로 유지한다.

Properties

actor

requiredref
Reference
  • maxLength: 32
itemsref
Reference
Reference

id

string

UUID.

  • maxLength: 64

object

requiredref
Reference
Reference

stored

string · datetime

timestamp

string · datetime

verb

requiredref
Reference

version

string
  • maxLength: 16