xAPI란?
1. 표준 데이터 xAPI란?
학습 분석 데이터 현재 에듀테크 분야가 지속적으로 발전하고 있으며 이 분야에서도 데이터가 매우 중요한 역할을 하고 있다 하지만 데이터를 수집하기 위한 사용자의 플랫폼, 기기 등 매우 다
ars420.tistory.com
xAPI Statements
- xAPI에서 추적할 경험 및 이벤트의 증거
- JSON 형태
- 개별 경험들을 합쳐 전체적인 의미를 제공하기 위해 집계 및 분석되도록 의도됨
✅ 필수요건
- Statements와 다른 객체는 빈 객체의 값을 포함해서는 안된다
- Statements는 각 Property를 한 번 이상 사용해서는 안된다
- Statements는 actor, verb, object를 사용해야 한다
- Statements는 Property를 어떤 순서로든 사용할 수 있다
Statements Property
[1] Actor
- objectType은 Agent / Group 2가지가 존재함
→ Agent : 개인 또는 시스템
→ Group : Agent의 집합
1.1) Actor의 objectType이 Agent인 경우
- Agent : 개인 또는 시스템을 나타냄
- Agent는 역기능 식별자 (Inverse Functional Identifier) 중 하나로 식별되어야 함
- Agent는 Group 식별자로 사용되는 역기능 식별자를 사용해서는 안 됨
Property | Type | Description | Required |
objectType | 문자열 | Agent가 Statements의 오브젝트로 사용될 때만 필수 | 선택 |
name | 문자열 | Agent의 전체 이름 | 선택 |
Agent의 고유한 역기능 식별자 | Agent 고유의 역함수 식별자(IFI) | 필수 |
1.2) 역기능 식별자 (Inverse Functional Identifier)
- Agent나 식별된 Group의 값을 나타냄
- 해당 Agent나 식별된 Group을 고유하게 식별할 수 있도록 보장됨
- 데이터를 저장하고 검색하기 위해서 Agent와 Group은 고유하게 식별될 필요가 있음 → 역기능 식별자 활용을 하여 식별
Property | Type | Description |
mbox | mailto IRI | 필수 형식 : "mailto:email address" 이 Agent에 할당된 적이 있고 앞으로 할당될 이메일 주소만 사용하고 다른 이메일 주소는 이 속성 및 mbox_sha1sum에 사용해야 함 |
mbox_sha1sum | 문자열 | mailto IRI의 16진수로 인코딩된 SHA1 해시임. 요청이 mbox를 기반으로 하는 경우, LRS에 일치하는 해시가 있는 에이전트가 포함될 수 있음 |
openid | URI | Agent를 고유하게 식별하는 openID |
account | 객체 | 기존 시스템 (ex. LMS 또는 내부 네트워크)의 사용자 계정 |
1.3) 계정 객체 (Account Object)
- 개인 시스템 (LMS 또는 인트라넷) 또는 공용 시스템 (SNS)과 같은 기존 시스템의 사용자 계정
- Agent 또는 Group에 관한 모든 Statements를 식별하기 위해 Agent 또는 Group에 대한 계정 이름을 사용해야 함
Property | Type | Description | Required |
homePage | IRL | 계정이 있는 시스템의 정식 홈 페이지 FOAF의 accountServiceHomePage를 기반으로 함 |
필수 |
name | 문자열 | 이 계정에 로그인할 때 사용되는 고유한 ID 또는 이름 FOAF의 accountName을 기반으로 함 |
필수 |
[2] Verb
- Actor와 Activity 간의 동작을 정의
- 학습 경험 중에 수행된 동작을 설명함
- xAPI는 특정한 Verb를 지정하지 않음
- 대신, 의미 있는 Verb를 설정하고 누구나 사용할 수 있도록 Verb를 어떻게 만들어야 하는지 정의
- IRI와 여러 언어에 해당하는 인간이 읽을 수 있는 Verb의 의미를 제공하는 이름으로 구성
Property | Type | Description | Required |
id | IRI | Verb 정의에 해당함 단어가 아니라 Verb의 의미에 해당함 |
필수 |
display | 언어 맵 | 선택한 Verb에 이미 결정된 의미를 읽을 수 있는 표시로 제공 | 권장 |
- id에 포함된 IRI는 사람이 Statements를 검토하여 Verb를 다른 유사한 Verb와 구별할 수 있는 충분한 의미를 제공해야 함
- 단일 Verb IRI는 여러 의미를 나타내기 위해 사용되어서는 안됨
- display는 이미 Verb IRI로 결정된 의미를 Description하기 위해 사용해야 함
[3] Object
- 수행된 동작 대상을 정의
- Object는 활동(Activity), Agent/Group, 하위 Statements(Substatement), Statements 참조가 될 수 있음
3.1) ObjectType이 활동(Activity)인 경우
Property | Type | Description | Required |
objectType | 문자열 | Activity | 선택 |
id | IRI | 단일 고유한 Activity를 식별하기 위한 식별자 | 필수 |
definition | Object | 메타데이터 | 선택 |
3.2) Activity Definition
Property | Type | Description | Required |
name | Language Map | Activity의 인간이 읽을 수 있는 이름 | 추천 |
description | Language Map | Activity의 설명 | 추천 |
type | IRI | Activity의 Type | 추천 |
moreInfo | IRL | Activity에 대한 인간이 읽을 수 있는 정보 이 정보에는 Activity를 실행하는 방법이 포함될 수 있음 |
선택 |
extension | Object | 필요한 다른 Property들의 맵 | 선택 |
[4] Result
- Statement와 관련된 측정 결과를 나타냄
Property | Type | Description | Required |
scaled | -1 에서 1 사이의 십진수 | 스케일링 및 정규화로 수정된 경험과 관련된 점수 | 권장 |
raw | min 및 max (있는 경우) | 문장에 설명된 경험에서 Agent가 달성한 점수 | 선택 |
min | min 및 max (있는 경우) | 가장 낮은 점수 | 선택 |
max | min 및 max (있는 경우) | 가장 높은 점수 | 선택 |
[5] context
- Statements 일부 상황에 맞는 정보를 추가할 수 있는 장소 제공
- 경험이 어떤 다른 활동에 어떻게 부합하는지 등의 정보를 저장할 수 있음
Property | Type | Description | Required |
registration | UUID | Statement가 연결된 등록 정보 | 선택 |
instructor | Agent (Group) | Statement와 관련된 강사 (Actor로 포함되지 않는 경우) | 선택 |
team | Group | Statement와 관련된 팀 (Actor로 포함되지 않는 경우) | 선택 |
context Activities | Object | Statement와 관련된 학습 활동 context Type의 맵 |
선택 |
revision | 문자열 | Statemnet와 관련된 학습 활동의 수정 버전 (형식 자유) Object가 Activity인 경우에만 사용 일반적인 문제 수정을 추적하는데 사용 (큰 변화가 있을 경우 새로운 Activity ID 사용) |
선택 |
platform | 문자열 | 학습 활동 경험에서 사용된 플랫폼 Object가 Activity인 경우에만 사용 |
선택 |
language | 문자열 | Statement에서 기록된 경험에 적용되는 언어를 나타내는 코드 | 선택 |
statement | Statement의 context로 고려할 다른 Statement | 선택 | |
extension | 문자열 | 도메인별 context의 맵 (ex.고도, 공기속도, 바람, 자세, GPS 좌표 등) |
선택 |
- registration
→ 시도, 세션일 수도 있으며 여러 활동에 걸칠 수 있음
→ 동일한 registration은 동일한 학습 경험에 대한 statement 요청에 모두 사용되며 모든 데이터가 일관되게 기록됨
- context Activities
→ 많은 Statements는 단 하나의 활동에만 관련되는 것이 아니라 다른 문맥적으로 관련 있는 활동과 관련됨
이러한 관련 활동을 구조화된 방식으로 나타냄
→ Parent / Grouping / Category / Other
[6] Timestamp
- 경험이 발생한 시간
- stored 속성과 다를 수 있음 → 경험이 발생한 시점과 해당 statement가 LRS에 의해 수신되기까지 지연이 있을 수 있음
[7] Stored
- Statement가 LRS에 의해 저장된 시간
- LRS가 Statement를 수신한 시간과 저장될 때까지의 어떤 시간이든 될 수 있음
[8] Authority
- Statement가 참된 것임을 주장하는 주체에 대한 정보 제공
- 인증된 사용자 또는 일부 시스템 또는 애플리케이션을 나타냄
[9] Version
- LRS는 그들이 그 외에 유효성을 검사하는 경우, 버전이 1.0.으로 시작하는 모든 Statements를 수용해야 함
- 버전이 지정되었지만 1.0.으로 시작하지 않은 모든 Statemnets를 LRS는 거부해야 함
[10] Attachments
- 경험의 결과로 부여된 이미지, 에세이, 비디오 등
- Attachment를 LRS에 저장하고 검색할 수 있는 방법 필요
Reference
xAPI-Spec/xAPI-Data.md at master · adlnet/xAPI-Spec
The xAPI Specification describes communication about learner activity and experiences between technologies. - adlnet/xAPI-Spec
github.com
[공식 문서 한글 번역판] xAPI docs 2.0 Data 톺아보기
1.0 문서 Documents Experience API는 학습 기록 공급자(LRP)가 임의의 데이터를 문서 형태로 저장할 수 있는 기능을 제공한다. 이 데이터는 대체로 비구조화되어 있으므로 유연성을 가질 수 있다. 문서
zzgrworkspace.tistory.com
'Data Analysis > xAPI' 카테고리의 다른 글
1. 표준 데이터 xAPI란? (0) | 2024.04.10 |
---|