티스토리 뷰
SCORM RTE에서 이야기한 CMI Data Model을 정리해서 올려놓겠습니다.
아마도 이 자료가 필요한 분들이 많을 거라고 생각됩니다.
처음 SCORM을 접했을 때, 가장 많이 봤던 부분이기도 하구요~~ 이미 다른 정리된 좋은 자료가 있을지 모르지만..
미니주석이라는 설명으로 제가 나름 파악한 내용도 추가해 놓도록 할께요~~
각 엘리먼트 다음에 GetValue, SetValue 등이 표시될 겁니다.
GetValue, SetValue가 모두 있으면 읽고 쓰기가 가능하다는 것이구요..
GetValue 는 읽기만 가능하구, SetValue는 쓰기가 가능하다는 것입니다.
위 말이 잘 이해가 안되면 이전 강좌를 참고하세요~~
그리고 스펙에 나와 있는 데이터 타입이나 에러 처리등 기타 상세한 부분은 정리하지 않았습니다.
그것은 SCORM 스펙을 직접 참고하시기 바랍니다.
SCORM 관련 이야기가 이제 거의 마무리 되어 가네요~
이러닝에 관심 없으셨던 분들은 다음 강좌를 기대해 주세요!!
1. Data Model Version
cmi._version
데이터 모델의 버전. SCORM Run-Time Envrionment Version 1.3에서는 "1.0"으로 사용함.
GetValue("cmi._version")
2. Comments From Learner
학습자가 사용할 수 있는 설명 혹은 주석을 의미합니다.
cmi.comments_from_learner._children
cmi.comments_from_learner에서 지원되는 자식 엘리먼트의 리스트를 나타냄.
다시 말하면 cmi.comments_from_learner의 자식으로 comment, location, timestamp가 올수 있다는 것을 알려주는 것입니다.
GetValue("cmi.comments_from_learner._children")
cmi.comments_from_learner._count
학습자가 해당 SCO에 대해 작성한 설명 혹은 주석(comment)의 수.
GetValue("cmi.comments_from_learner._count")
cmi.comments_from_learner.n.comment
학습자가 작성한 n번째의 설명 혹은 주석 (comment).
GetValue("cmi.comments_from_learner.0.comment")
SetValue("cmi.comments_from_learner.0.comment", "SCO에 대한 일부 설명들")
미니주석) 중간에 n 이 나타나는 것은 여러개가 올 수 있다는 것입니다. 그래서 바로 위에 _count가 있는 거겠죠..
학습자가 작성한 값을 넣어야 하니까. 당연히 SetValue도 가능한 겁니다.
cmi.comments_from_learner.n.location
학습자가 작성한 설명 혹은 주석이 SCO 내에서 발생한 위치
GetValue, SetValue
미니주석) 보통 SCO가 여러개의 HTML 파일로 이루어지니까요.. 그 해당 HTML 파일의 위치가 저장된다고 보시면 됩니다.
cmi.comments_from_learner.n.timestamp
학습자가 작성한 설명 혹은 주석이 생성되거나 최근에 수정된 날짜와 시각.
GetValue, SetValue
미니주석) SCORM 2004 TimeStamp의 날짜 형식은 2007-03-28T11:25:30 와 같습니다.
3. Comments From LMS
LMS 즉, 시스템이 보내주는 설명 혹은 주석을 의미합니다.
cmi.comments_from_lms._children
cmi.comments_from_lms에서 지원되는 자식 엘리먼트의 리스트를 나타냄.
다시 말하면 cmi.comments_from_lms의 자식으로 comment, location, timestamp가 올수 있다는 것을 알려주는 것입니다.
GetValue
미니주석) cmi.comments_from_lms의 경우, 모든 하위 엘리먼트에 대해 SetValue가 존재하지 않습니다.
시스템에서 값을 보내주는 것이기 때문에 콘텐츠 내부에서 SetValue를 호출해 저장할 필요가 없는 것이죠~~
cmi.comments_from_lms._count
LMS에서 작성된 설명 혹은 주석(comment)의 수.
GetValue
cmi.comments_from_lms.n.comment
LMS에서 작성된 n번째의 설명 혹은 주석 (comment).
GetValue
cmi.comments_from_lms.n.location
LMS에서 작성된 설명 혹은 주석이 SCO 내에서 발생한 위치
GetValue
cmi.comments_from_lms.n.timestamp
LMS에서 작성된 설명 혹은 주석이 생성되거나 최근에 수정된 날짜와 시각.
GetValue
4. Completion Status
학습완료 여부를 나타냅니다. 진도체크에서 가장 중요하게 활용되죠..
cmi.completion_status
학습자가 SCO의 학습을 모두 완료했는지 여부를 나타냄.
GetValue, SetValue, Sequencing impacts
미니주석) cmi.completion_status의 상태값은 다음 중 하나를 가지게 됩니다.
"completed" : SCO의 학습이 모두 완료된 상태. 학습완료..
"incomplete" : SCO의 학습은 시작했으나 아직 완료되지 않은 상태. 학습중..
"not attempted" : 아직 SCO의 학습이 시작되지 않은 상태. 미학습..
"unknown" : 상태값이 확정되지 않은 상태.. - 시퀀싱을 적용할 때 나타날 수 있음..
참고로 시퀀싱에 의해 학습여부 상태를 결정할 수 있습니다.
이때 사용하는 변수는 Completion Threshold, Progress Measure, Completion Status입니다.
자세한 조건은 역시 스펙을 참고하세요~~
5. Completion Threshold
SCO의 완료 여부, 즉 cmi.competion_status 값을 결정할 때 사용되는 값입니다.
cmi.completion_threshold
SCO의 완료여부를 결정하는데 사용하는 0.0~1.0 사이의 값.
GetValue
미니주석) SCO 완료 여부를 결정하는데 사용하면서 SetValue가 없으면 값을 어디에서 설정하게 될까요?
정답은 바로 imsmanifest.xml 파일입니다.. 즉, 콘텐츠를 생성하면서 넣어두는 것이죠..
그럼 SCO의 완료 여부를 결정하는 조건이 스펙에 다양하게 나와있지만.. 기본적인 규칙은..
Progress Measure 값이 Competion Threshold보다 크면 "completed", 학습완료입니다~
6. Credit
Credit이라는 단어는 여러 가지 뜻을 가지고 있죠..
여기에서는 학점 이수.. 이런 뜻으로 보시면 됩니다.
cmi.credit
학점 이수 과정 여부를 지정함.
GetValue
다음 값 중의 하나를 가지면 기본값은 "credit"입니다.
"credit" : 학점 이수 과정
"no-credit" : 학점 이수 과정 아님..
미니주석) "credit"으로 설정되어 있을 때, 이 값을 사용하는 것은 아래의 cmi.success_status에서입니다.
cmi.completion_status가 아니구요..
7. Entry
cmi.entry
학습자가 전에 SCO에 접속했었는지 여부를 나타냄.
GetValue
"ab-inito" : 처음 SCO에 접근함
"resume" : 이전에 SCO에 접근한 적이 있음.
"" : 정보 없음
미니주석) 시퀀싱이 없던 SCORM 1.2에서는 이걸 이용해 북마크 기능을 구현하기도 했었습니다.
SCORM 2004에서는 주로 복습여부를 결정할 때 사용합니다.
즉, 복습할 때에는 학습추적 데이터에 반영하지 않아야 하는 경우에 resume으로 설정해서 활용합니다.
8. Exit
cmi.exit
학습자가 SCO를 종료할 때 어떤 상황이었는지를 설정함.
SetValue, Sequencing impacts
"time-out" : max_time_allowed로 지정된 제한 시간을 넘겨서 종료할 때.
"suspend" : 일시정지 버튼을 통해 종료할 때.
"logout" : 로그아웃을 통해 종료할 때.
"normal" : 정상적으로 SCO를 종료할 때.
"" : 종료 조건이 정의되지 않았을 때.
미니주석) 종료하는 방식에 따라 시퀀싱에 영향을 주게 됩니다. 또한, 이 값은 읽을 수는 없고 SetValue를 통해 쓸 수만 있습니다.
9. Interactions
SCO에서 LMS로 전달되는 학습자의 상호작용(interaction)을 정의해 놓은 것이라고 합니다.
제 생각에는 질문(interaction)을 올리구요..
질문에 대한 학습목표(objective)를 설정하고, 정답(correct_resposne)를 결정합니다.
그리고 이에 대한 학습자의 답변(learner_response)를 받아서 결과(result)를 저장하고, 비중(weight)에 따라 학습성적에 반영할 수도 있는 구조인 듯 합니다.
하지만, 제대로 사용해 본적은 없어 정확한 용도를 설명하기가 애매하네요.. 일단 정의를 잘 살펴보시고 유추하시기 바랍니다.
cmi.interactions._children
cmi.interactions 데이터 모델에서 지원하는 엘리먼트 리스트.
GetValue
cmi.interactions._count
학습자 상호작용(interaction)의 전체 개수.
GetValue
cmi.interactions.n.id
n번째 interaction의 고유한 아이디
GetValue, SetValue
cmi.interactions.n.type
n번째 interaction의 타입
GetValue, SetValue
타입은 다음중 하나입니다.
"true-false", "choice", "fill-in", "long-fill-in", "likert", "matching", "performance", "sequencing", "numeric", "other"
cmi.interactions.n.objectives._count
n번째 interaction에 포함된 학습목표(objectives)의 개수.
GetValue
cmi.interactions.n.objectives.n.id
n번째 interaction에 포함된 n번째 학습목표의 고유한 아이디
GetValue, SetValue
cmi.interactions.n.timestamp
n번째 interaction을 사용할 수 있도록 생성한 시간.
GetValue, SetValue
cmi.interactions.n.correct_responses._count
n번째 interaction에 대한 LMS에서 선정한 정답의 개수.
GetValue
cmi.interactions.n.correct_responses.n.pattern
n번째 interaction에 대한 LMS가 선정한 정답 내용. cmi.interactions.n.type에 의해 내용이 결정됨.
GetValue, SetValue
cmi.interactions.n.weighting
n번째 interaction의 비중. SCO에서의 점수(score) 계산에 사용될 수 있다고 합니다.
GetValue, SetValue
cmi.interactions.n.learner_response
n번째 interaction에 대한 학습자의 응답.
GetValue, SetValue
cmi.interactions.n.result
n번째 interaction에 대한 결과
GetValue, SetValue
다음과 같은 값들이 가능합니다.
"correct", "incorrect", "unanticipated", "neutral", 실수값
cmi.interactions.n.latency
학습자가 interaction에 대해 응답을 할 때까지의 시간.
GetValue, SetValue
cmi.interactions.n.description
n번째 interaction에 대한 간단한 설명
GetValue, SetValue
10. Launch Data
cmi.launch_data
SCO를 초기화할 때 사용할 수 있는 데이터.
GetValue
미니주석) imsmanifest.xml을 만들때, 입력하는 <adlcp:dataFromLMS>의 값이 이걸 통해서 SCO로 전달되었던 것 같습니다.
정확히 기억이 안나내요.. -,- 이제는 이러닝을 떠난 상태라.. 쩝~~ (조금이라도 기억이 남아 있을 때.. 빨랑 정리해 둬야지.. ^^)
한번에 다 정리하려니.. 너무 양이 많습니다~~ 쩝!!
나머지는 다음번에 정리해서 올려놓도록 하겠습니다.
그럼.. 좋은 하루 되세요~~ 2007. 3. 28 From 미니...
'XML Developer > SCORM' 카테고리의 다른 글
8. SCORM 콘텐츠 패키징 절차에 대한 생각.. (5) | 2007.11.07 |
---|---|
7. SCOM CMI 데이터 모델 두번째 (0) | 2007.04.11 |
5. SCORM RTE(Run-Time Environment) #2 (0) | 2007.03.21 |
4. SCORM RTE(Run-Time Environment) #1 (0) | 2007.01.25 |
3. 콘텐츠 통합 모델 (Contents Aggregation Model) (1) | 2006.11.27 |