![]() |
IMS 콘텐츠 패키징 - 정보 모델 |
발행일 | 2008년 00월 00일 |
최신 버전 | IMS 콘텐츠 패키징 - 정보 모델 버전 1.2 |
이전 버전 |
Copyright © IMS Global Learning Consortium2007. All Rights Reserved.
이 표준을 배포하거나 제품 또는 서비스 제공을 위해서 활용하고자 한다면, IMS Korea 표준화 포럼 사무국(한국교육학술정보원)에 승인 요청을 하고 이메일을 통해 승인을 받아야 한다. IMS 정식회원 및 기부회원, 개발자 네트워크는 상기의 저작권 공지사항과 이 문장을 사본에 포함시키는 조건 하에 이 표준을 배포 및 활용할 수 있다. 그러나 저작권 공지사항 또는 IMS 명칭이 표기된 부분을 삭제하는 등, 이 표준을 훼손하는 행위는 금지된다. 단, IMS가 승인한 프로젝트그룹의 감독 하에 IMS 표준을 수정하는 경우는 예외적으로 허용된다. 상기 부여된 제한된 승인 내용은 영속적이며, IMS 또는 후임기관 그 누구라도 라이센스를 취소할 수 없다. 이 표준은 어떠한 보증도 하지 않으며, 특히 불침해에 대한 그 어떤 보증도 하지 않는다. 이 표준의 사용에 대한 책임은 온전히 사용자에 의하며, 그 어떤 컨소시엄이나 제공 주체도 이 표준을 사용함으로써 제3자가 직간접적으로 입을 수 있는 피해에 대해 책임지지 않는다.Copyright © 2007 by IMS Global Learning Consortium, Inc. All Rights Reserved.
심의부회 : | |||
성 명 | 근 무 처 | 직 위 | |
원안작성 협력기관 : 한국교육학술정보원(IMS Korea 표준화포럼) | |||
성 명 | 근 무 처 | 직 위 | |
(위 원 장) | 황대준 | 성균관대학교 | 교수 |
(실무위원) | 김성윤 | (주)포씨소프트 | 이사 |
(실무위원) | 김 현 | (주)씨티유니온 | 과장 |
(실무위원) | 유욱종 | (주)다울소프트 | 부장 |
(실무위원) | 조성현 | 테크빌닷컴(주) | 부사장 |
(실무위원) | 조용상 | 한국교육학술정보원 | 팀장 |
(실무위원) | 장근원 | (주)크레듀 | 과장 |
(실무위원) | 차남주 | (주)디유넷 | 부사장 |
(실무위원) | 최성기 | SK C&C | 과장 |
(자문위원) | 권희춘 | 수원여대 | 교수 |
(자문위원) | 김종현 | 계원예술대학 | 교수 |
(자문위원) | 김현진 | 한국교원대학교 | 교수 |
(자문위원) | 손진곤 | 한국방송통신대학교 | 교수 |
(자문위원) | 정광식 | 한국방송통신대학교 | 교수 |
(자문위원) | 한태인 | (주)메디오피아 | 부사장 |
(간 사) | 신성욱 | 한국교육학술정보원 | 연구원 |
참조: 교환 패키지, 로컬, 논리 패키지, 매니페스트(Manifest), 리모트
참조: 논리 패키지
참조: 로컬, 논리 패키지, 리모트
참조: 논리 패키지, 패키지 교환 파일.
참조: 교환 패키지, 패키지 해석기
참조: 논리 패키지, 교환 패키지
참조: 자식 매니페스트, 로컬, 매니페스트, 리모트
참조: 로컬, 논리 패키지, 리모트
참조: 로컬, 논리 패키지, 리모트
참조: 자원(Resource)
참조: 콘텐츠 패키지, 교환 패키지, 논리 패키지
참조: 교환 패키지
참조: 교환 패키지, 논리 패키지
참조: 교환 패키지
참조: 로컬, 리모트
참조: 교환 패키지, 논리 패키지
참조: 논리 패키지
자원(resource)은 흔히 콘텐츠 단위를 기술하기 위해 사용된다. 이 경우, 자원은 콘텐츠의 URL 실행 지시자(Launchable URI)정보 또한 포함할 수 있다. 자원에 기술되는 모든 파일은 로컬 또는 리모트 환경에 위치 될 수 있다.참조: Launchable URI, 로컬, 리모트
참조: 메타데이터, 자원
ABNF | Augmented Backus-Naur Form |
ADL | Advanced Distributed Learning |
PIF | Packaging Interchange File |
PIM | Platform Independent Model |
SCORM | Sharable Content Object Reference Model |
UML | Unified Modeling Language |
URI | Uniform Resource Identifier |
XML | Extensible Markup Language |
그림 5.1 IMS 콘텐츠 패키징 개념 모델
핵심 구조적 구성요소는 다음과 같다.표 6.1 클래스 기술(class descriptor)
기술 | 정의 |
---|---|
클래스명 | 기술되는 클래스에 주어진 이름 |
클래스 유형 | 이 클래스의 추상 클래스 유형 |
데이터 유형 | 값 클래스와 특성 클래스의 경우, 클래스에 유효한 값에 허락된 구조를 말 한다. 유효한 데이터 유형은 다음과 같다: URI: RFC3986에서 정의된, 의미론적으로 유효한 URI의 인스턴스. 참고: 이 정보모델이 참조하는 기본 규격, 표준, 그리고 권고는 URI,의 정의로서 RFC2396과 RFC2732를 사용한다. 이는 RFC2986에 의해 무효화되지만, 기본 문서 대부분이 RFC3986을 참조에 포함시키도록 업데이트되지 않았다. LUID: 매니페스트 내의 로컬 단일 식별자이며, 이는 제한된 값의 범위를 가지는 문자열 데이터 형식(string data type)을 기반으로 한다. LUIDref: 매니페스트 내에서 정의가 제시된, LUID에 대한 참조. LUID 값과 이를 참조하는 LUIDref (들)은 동일하다.Boolean: 원시적인 이치(two-valued) 데이터 유형으로, ‘참’과 ‘거짓’의 두 가 지 키워드로 객체의 논리적 상태를 표시한다. 문자열(String): 출력 가능한(printable) 문자들의 시퀀스불특정(unspecified): 알려지지 않은, 또는 중요하지 않은 데이터 유형 |
값의 범위 | 이 클래스의 유효한 값의 범위를 나타냄. 값의 범위가 불특정인 경우, 알 려지지 않았거나 중요하지 않음을 알 수 있다. |
다중성(Multiplicity) | 클래스의 속성으로, 특정 부모 컨텍스트에서 사용할 수 있는 횟수, 또는 특정 부모 컨텍스트에서 나타나는 횟수를 표시한다. 이 속성의 값은 범위 로 표시되거나 다음 약식 표기법을 사용한 범위로 표현된다.
|
특성 클래스 | ‘{“ characteristic *“,” characteristic “}’ 양식에서 이 클래스와 관련된 특성 클 래스를 나열한다. 하나 이상의 특성이 { } 안에 나열된다. 각 특성은 콤마 로 구분된다.하나 이상의 특성이 나열된 경우, 형제 순서의 중요성을 중요성을 ‘순차적 (ordered)’ 또는 ‘비순차적(unordered)’으로 표시한다. ‘순차적(ordered)’은 나열된 형제 시퀀스를 상술하며, ‘비순차(unordered)’ 은 형제의 집합을 상술한다. 순서는 중요하지 않다. |
부모(Parents) | 이 클래스의 부모일 수 있는 클래스를 나열한다. |
자식(Children) | ‘[” child *“,” child “]’ 양식에서 이 클래스의 자식 클래스일 수 있는 클래스를 나열한다. 하나 이상의 자식 클래스를 [ ] 안에 나열한다. 각 자식 클래스는 콤마로 구분한다. 하나 이상의 자식이 나열된 경우, 형제 순서의 중요성을 중요성을 ‘순차적 (ordered)’ 또는 ‘비순차적(unordered)’으로 표시한다. ‘순차적(ordered)’은 나열된 형제 시퀀스를 상술하며, ‘비순차(unordered)’ 은 형제의 집합을 상술한다. 순서는 중요하지 않다. |
내용(Description) | 클래스와 값의 범위에 대한 기술을 포함한다. |
그림 6.1 콘텐츠 패키징 PIM 의 구조도 (개요)
그림 6.1에 제시된 구조도는 주 클래스 사이의 관계에 중점을 두며, 다중성, 순서, 속성을 서술하지 않는다.표 6.2 교환 패키지 클래스 정의
기술 | 정의 |
---|---|
클래스명 | InterchangePackage |
클래스 유형 | 컨테이너 |
데이터 유형 | n / a |
값의 범위 | n / a |
다중성 | 1..1 |
특성 클래스 | n / a |
부모(Parents) | 없음 |
자식(Children) | [Manifest] |
내용(Description) |
InterchangePackage 객체는 시스템간 교환되는 논리 패키지의 부분집합이다. 교환 패키지는 다음 조건을 충족시킨다.
|
그림 6.2 Manifest 클래스 PIM의 단순 구조도
표 6.3 Manifest 클래스에 대한 정의
기술 | 정의 |
---|---|
클래스명 | Manifest |
클래스 유형 | 컨테이너 |
데이터 유형 | n / a |
값의 범위 | n / a |
다중성 | 1..1 은 InterchangePackage의 자식 0..Manifest의 자식으로 바인딩 되지 않음, 비순차적 |
특성 클래스 | { Idetifier, Version, Base, Other }, 비순차적 |
부모(Parents) | InterchangePackage Manifest |
자식(Children) | [ ManifestMetadata, Organizations, Resources, Manifest, IPointer, Extension ], 순차적 |
내용(Description) | Manifest 객체는 논리 패키지의 완전한 인스턴스를 기술하는 데이터 구조의 컨테이너이다.Manifest는 Manifest 클래스 (자식 매니페스트)의 자식 객체를 포함할 수 있다. 자식 매니페스트는 보다 큰 논리 패키지의 일부인 논리 패키지의 완전한 인스턴스를 기술한다. Manifest는 또한 Manifest 외부의 자식 매니페스트를 참조하는 IPointer 클래스의 자식 객체를 포함할 수 있다. 자식 매니페스트와 외부 참조 자식매니페스트의 어떠한 조합도 허용이 되며, Manifest 내의 조합의 순서는 중요하지 않다. Manifest의 직접적인 자식으로 선언된 IPointer의 적절한 타겟은 6.9절에 정의되어 있다.Manifest는 선구자인 InterchangePackage 객체에 로컬이나 리모트인 구성요소에 대한 참조를 포함할 수 있다. 참조는 Resource, File, 그리고 IPointer 자식 객체를 통해 이루어진다. Resource와 File은 콘텐츠 파일과 컨트롤 파일을 참조하기 위해 이용된다. IPointer는 참조 매니페스트를 식별하기 위해 사용된다. Manifest는 Manifest를 해석하기 위해 필요한 컨트롤 파일을 모두 기술하는 File 객체를 포함한다. |
표 6.4 ManifestMetadata 클래스 정의
기술 | 정의 |
---|---|
클래스명 | ManifestMetadata |
클래스 유형 | 컨테이너 |
데이터 유형 | n / a |
값의 범위 | n / a |
다중성 | 0..1 |
특성 클래스 | n / a |
부모(Parents) | Manifest |
자식(Children) | [ Schema, SchemaVersion, IPointer, MetadataModel ], 순차적 |
내용(Description) | ManifestMetadata 객체는 부모 Manifest 객체에 대한 기술정보를 포함한다. ManifestMetadata는 부모 Manifest가 기술하는 논리 패키지 전체를 범위로 한다.ManifestMetadata의 Schema와 SchemaVersion 자식은 부모 Manifest의 의미를 관장하는 표준이나 프로파일에 대한 정보를 제공한다. ManifestMetadata의 MetadataModel 자식은 부모 Manifest에 대한 일반적인 기술정보의 위치표시자(placeholder) 역할을 한다. MetadataModel은 다른 네임스페이스에 정의된 정보 구조를 가진 메타데이터를 허용하는 확장점(extension point)이다. 여러 개의 각기 다른 MetadataModel은 단일 ManifestMetadata 객체 내에 포함된 확장으로 선언될 수 있다. 메타데이터가 외부 Metadata 객체에 정의되어 있다면, IPointer 객체를 사용해 해당 외부 Metadata 객체에 링크를 할 수 있다. MetadataModel과 외부참조 메타데이터의 어떠한 조합도 허용되며, 조합의 Metadata 객체 내의 순서는 중요하지 않다. Manifest의 자식으로 선언된 IPointer의 적절한 타겟은 6.9절에 정의되어 있다. |
표 6.5 Schema 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Schema |
클래스 유형 | 값(value) |
데이터 유형 | 문자열(string) |
값의 범위 | [UCS] 의 출력 가능한 문자 레파토리 |
다중성 | 0..1 |
특성 클래스 | n / a |
부모(Parents) | ManifestMetadata |
자식(Children) | n / a |
내용(Description) | Schema 객체는 부모 Manifest 객체의 표준 또는 프로파일의 이름을 선언한다. Schema의 값을 통해 패키지 해석기는 Manifest의 의미를 관장하는 표준이나 프로필 정보를 얻을 수 있다. 이 값은 특정 메타데이터 스키마에게 지정된 이름이나 레이블과 혼동되어서는 안된다. Schema의 값으로 선언된 문자열의 콘텐츠나 의미에는, 문자열은 어떠한 버전 정보도 포함하지 않는다는 요건 외에 어떤 요건도 부여되지 않는다. 디폴트 값은 ‘IMS 콘텐츠’이다. |
표 6.6 SchemaVersion 클래스 정의
기술 | 정의 |
---|---|
클래스명 | SchemaVersion |
클래스 유형 | 값(value) |
데이터 유형 | 문자열(string) |
값의 범위 | [UCS] 의 출력 가능한 문자 레파토리 |
다중성 | 0..1 |
확장점 (Is extension point) | 불허(false) |
특성 클래스 | n / a |
부모(Parents) | ManifestMetadata |
자식(Children) | n / a |
내용(Description) | SchemaVersion 객체는 형제 Schema 객체의 값으로 선언된 표준이나 프로파일의 버전을 선언한다. 이 값을 통해 패키지 해석기는 형제 Schema에 의해 식별되는 모델이나 프로파일의 버전을 알 수 있으며, SchemaVersion의 값은 그 외의 정보를 포함하지 않는다. ‘IMS 콘텐츠’가 형제 Schema의 값으로 선언되고 Manifest 문서가 이 정보모델의 바인딩에 의해 결정되는 경우 디폴트 값은 ‘1.2’이다.버전정보의 구문법이나 버전 구문법(versioning syntax) 적용에 대한 방법론(heuristic)은 이 정보모델에서 상술하지 않는다. |
표 6.7 MetadataModel 클래스 정의
기술 | 정의 |
---|---|
클래스명 | MetadataModel |
클래스 유형 | 불특정(unspecified) |
데이터 유형 | 불특정(unspecified) |
값의 범위 | 불특정(unspecified) |
다중성 | 0..무제한(unbounded), 순서 또한 불특정 |
특성 클래스 | 불특정(unspecified), 순서 또한 불특정 |
부모(Parents) | ManifestMetadata Metadata |
자식(Children) | 불특정(unspecified), 순서 또한 불특정 |
내용(Description) | MetadataModel 객체는 위치 표시자(placeholder)이며, 이 정보모델의 바인딩에 교환 패키지의 메타데이터가 포함될 유효한 위치를 알려준다. 하나 이상의 메타데이터 모델로 구성된 확장 컨테이너나 값(value) 클래스 유형의 실제 이름은 바인딩 된 클래스가 이 정보모델의 바인딩 된 인스턴스에 등록될 때에만 알 수 있다. 즉, 클래스의 실제 유형은 이 정보모델에 상술되어 있지 않다.MetadataModel은 ManifestMetadata와 Metadata의 두 가지 메타데이터 컨테이너에 의해 사용된다. MetadataModel은 이 정보모델의 바인딩된 인스턴스 내의 MetadataModel들과 관련 정보들을 표시하는 유일한 수단이다. 패키지 작성기는 MetadataModel의 부모 객체에 의해 캡슐화된 콘텐츠를 적절히 기술하기 위해 필요한 각기 다른 MetadataModel을 개수에 제한없이 수식할 수 있다. MetadataModel은 하나 이상의 메타데이타와 관련된 정보를 선언하는 데에만 사용된다. MetadataModel의 의미론은 이 정보모델 내에 있는 부모의 의미론 범위 내에 있다. MetadataModel의 의미론은 이 정보모델에서 정의된 부모의 의미론을 무효화하거나 재정의하지 않는다. |
그림 6.3 Organizations 클래스 PIM의 단순 구조도
표 6.8 Organizations 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Organizations |
클래스 유형 | 컨테이너 |
데이터 유형 | n / a |
값의 범위 | n / a |
다중성 | 1..1 |
특성 클래스 | { Default, Other }, 비순차적 |
부모(Parents) | Manifest |
자식(Children) | [ Organization, IPointer, Extension ], 순차적 |
내용(Description) | Organizations 객체는 Resource 객체 사이의 논리적 관계를 기술하는 클래스의 컨테이너이다. Organization 또는 Organizations의 IPointer 하위 객체를 이용해 하나 이상의 논리적인 구성을 기술할 수 있다. Organizations와 IPointer 객체의 순서는 중요하지 않다. 참조 매니페스트에 정의된 Organizations는 IPointer를 이용해 식별된다. Organizations의 자식으로 선언된 IPointer에 대한 적절한 타겟은 6.9절에 정의되어 있다. |
표 6.9 Organization 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Organization |
클래스 유형 | 컨테이너 |
데이터 유형 | n / a |
값의 범위 | n / a |
다중성 | 0..무제한(unbounded), 순차적 |
특성 클래스 | {Identifier, Structure, Other }, 비순차적 |
부모(Parents) | Organizations |
자식(Children) | [ Title, LingualTitle, Item, IPointer, Metadata, Extension ], 순차적 |
내용(Description) | Organization 객체는 Manifest 객체에 의해 캡슐화된 Resource 객체들 사이의 특정한 논리 관계를 기술하는 클래스들의 컨테이너이다. Organization 객체가 여러 개라도 그 목적은 동일하다. 각 Organization이 다른 구조를 보이더라도, 각 Organization 객체는 특정 Manifest 내의 자원 객체 집합을 구성하는 방법을 제시한다. Item 자식 객체는 Organization 내의 구조적 노드를 대표하기 위해 사용된다. 참조 Manifest에서 정의된 Item 객체는 IPointer 객체를 사용해 식별된다. Item과 IPointer객체의 어떠한 조합도 허용되며, 객체의 순서는 중요성을 가진다. Organization의 자식으로 선언된 IPointer에 대한 적절한 타겟은 6.9절에 정의되어 있다. 각 Organization 객체는 하나 이상의 하위(child) Item 이나 IPointer가 선언된다. |
표 6.10 Title 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Title |
클래스 유형 | 값(value) |
데이터 유형 | 문자열(string) |
값의 범위 | [UCS]의 출력 가능한 문자 레파토리 |
다중성 | 0..1 |
특성 클래스 | n / a |
부모(Parents) | Organization Item |
자식(Children) | n / a |
내용(Description) | Title 객체는 Organization이나 Item 객체가 대표하는 구조의 이름이나 레이블을 부여하기 위해 Organization이나 Item 객체에 적용된 텍스트 값을 포함한다. 텍스트 값은 언어 유형을 가지지 않는다. Title의 값은 문자열이다. Title에 대한 문자열의 하나 이상의 언어 민감형(language-sensitive) 표현을 원하는 실행자의 경우 항상 LingualTitle 클래스를 사용해야 한다. |
표 6.11 LingualTitle 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Title |
클래스 유형 | 값(value) |
데이터 유형 | 문자열(string) |
값의 범위 | [UCS]의 출력 가능한 문자 레파토리 |
다중성 | 0..무제한(unbounded), 비순차적 |
특성 클래스 | { 언어 } |
부모(Parents) | Organization Item |
자식(Children) | n / a |
내용(Description) | LingualTitle 객체는 Organization이나 Item 객체가 표현하는 구조들에 이름이나 레이블을 부여하기 위해 Organization이나 Item 객체에 적용된 언어별 텍스트 값을 포함한다. LingualTitle의 언어는 Language 객체에 의해 상술된다. |
표 6.12 Item 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Item |
클래스 유형 | 컨테이너 |
데이터 유형 | n / a |
값의 범위 | n / a |
다중성 | 1..무제한(unbounded), 순차적 |
특성 클래스 | { Identifier, IdentifierRef, IsVisible, Parameters, Other }, 비순차적 |
부모(Parents) | Organization Item |
자식(Children) | [ Title, Item, IPointer Metadata, Extension ], 순차적 |
내용(Description) | Item 객체는 특정 Organization이나 다른 Item 객체의 구조적 노드를 표현하는 데 사용되는 컨테이너이다.
Item 객체는 하위(child) Item이나 IPointer 객체를 포함할 수 있으며, 이는 각각 고유한 구조적 노드를 표현한다. 참조 Manifest에 정의된 Item들은 IPointer클래스를 사용해 식별된다. Item 내에서, Item과 IPointer의 어떠한 조합도 가능하며, 객체의 순서는 의미가 있다. Item의 하위(child)계층으로 선언된 IPointer의 적절한 타겟은 6.9장에 정의되어 있다.
Item은 IdentifierRef 객체를 사용해 구조적 역할과 위치와 연계된 Resource 객체에 대한 내부 참조를 표현할 수 있다.
Item은 IdentifierRef를 이용해 구조적 역할과 위치와 연계된 자식 매니페스트에 대한 내부 참조를 표현할 수 있다. 참조의 결과는 다음과 같다.
|
그림 6.4 Resources 클래스 PIM의 단순 구조도
표 6.13 Resources 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Resources |
클래스 유형 | 컨테이너 |
데이터 유형 | n / a |
값의 범위 | n / a |
다중성 | 1..1 |
특성 클래스 | { Base, 기타 }, 비순차적 |
부모(Parents) | Manifest |
자식(Children) | [ Resource, IPointer, Extension ], 비순차적 |
자식 그루핑 모델 (Child grouping model) | 순차적 |
내용(Description) | Resources 객체는 상위 Manifest 객체에서 사용되는 파일에 대한 모든 정보를 포함하는 컨테이너이다. 파일들은 로컬 또는 리모트 일 수 있다. Resources는 상위 Manifest 대한 파일을 기술한다. 상위 Manifest의 형제, 자식, 또는 상속 Manifest 객체들을 포함해 다른 Manifest 객체 내의 참조 파일들은 Resources 객체의 범위에 포함되지 않는다.Resource와 Resources 객체의 하위 레벨의 IPointer 들은 특정 파일 집합(collection of files)을 기술하기 위해 사용된다. IPointer는 참조된 Manifest내의 자원을 식별하기 위해 사용된다. 자식 Resource와 IPointer 객체의 순서는 중요하지 않다. Resources 객체의 IPointer 자식에 대한 적절한 타겟은 6.9절에 정의되어 있다. |
표 6.14 Resource 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Resource |
클래스 유형 | 컨테이너 |
데이터 유형 | n / a |
값의 범위 | n / a |
다중성 | 0..무제한(unbounded), 비순차적 |
특성 클래스 | { Identifier, Type, Base, Href, Other }, 비순차적 |
부모(Parents) | Resources |
자식(Children) | [ Metadata, File, Dependency, 변형, Extension ], 순차적 |
내용(Description) | 자원 객체는 선구자 Manifest 객체가 사용하는 특정 파일 집합과 연관된 정보에 대한 컨테이너이다. 변형 자원은 변형 클래스를 이용해 식별된다. 상위 Resource과 변형 객체의 집합 사이의 관계는 변형 자원의 메타데이터를 이용해 기술된다. Resource{Href} 객체에 의해 선언된 값은 launchable URI이다. Resource{Href}에서 선언된 파일 참조는 같은 Resource의 File 객체에도 연계되어 선언된다. 연계된 File 객체의 Href는 Resource{Href}이 참조한 것과 같은 파일을 참조한다. Resource{Href}은 URI에서 ‘실행(launch)’ 파라미터를 포함한다는 점에서 연계 File{Href}과 다르다. |
표 6.15 File 클래스 정의
기술 | 정의 |
---|---|
클래스명 | File |
클래스 유형 | 컨테이너 |
데이터 유형 | n / a |
값의 범위 | n / a |
다중성 | 0..무제한(unbounded), 비순차적 |
특성 클래스 | { Href, Other }, 비순차적 |
부모(Parents) | Resource |
자식(Children) | [ Metadata, Extension ], 순차적 |
내용(Description) | File 객체는 부모 Resource 객체에 의해 캡슐화된 단일 컴퓨터 파일과 관련된 모든 정보에 대한 컨테이너이다. 파일에는 컴퓨터 파일을 기술하는 Manifest과 파일의 위치에 대한 참조가 포함되어 있다. |
표 6.16 Dependency 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Dependency |
클래스 유형 | 컨테이너 |
데이터 유형 | n / a |
값의 범위 | n / a |
다중성 | 0..무제한(unbounded), 비순차적 |
확장점 (Is extension point) | 불허(false) |
특성 클래스 | { IdentifierRef, Other }, 비순차적 |
부모(Parents) | Resource |
자식(Children) | [ Extension ] |
내용(Description) | Dependency 객체는 Resource 객체로 하여금 형제 Resource 객체에 기술된 파일 집합을 참조할 수 있도록 한다. Dependency는 IdentifierRef 객체를 이용해 Resource나 IPointer 객체를 참조한다. 참조된 Resource나 IPointer는 Dependency의 최상위(grandparent) Resource 객체에 의해 캡슐화된다. IPointer를 참조하는 경우, IPointer는 참조된 매니페스트의 Resource를 참조한다. 참조의 결과로, 참조된 Resource의 범위 내에 있는 파일은 참조하는 Dependency의 부모 Resource의 범위 내에 있는 것으로 간주된다. 참조된 Resource와 연계된 특성 객체는 참조하는 Dependency의 부모 Resource의 범위 내에 있는 것으로 간주되지 않는다. |
그림 6.5 Metadata 클래스 PIM의 단순 구조도
표 6.17은 IMS 콘텐츠 패키징 정보모델의 Metadata 클래스를 정의한다.표 6.17 Metadata 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Metadata |
클래스 유형 | 컨테이너 |
데이터 유형 | n / a |
값의 범위 | n / a |
다중성 | 0..1 |
특성 클래스 | 무(none) |
부모(Parents) | Organization Item Resource File |
자식(Children) | [ IPointer, MetadataModel ], xor |
자식 그루핑 모델 (Child grouping model) | 순차적 |
내용(Description) | Metadata 객체는 상위(parent) 컨테이너(container)-클래스(class)-유형(type) 객체에 대한 기술 정보를 포함한다. 메타데이터의 범위는 상위 컨테이너 클래스에만 국한된다. MetadataModel 하위(child) 객체는 부모에 관한 일반적인 기술 정보에 대한 컨테이너 역할을 한다. MetadataModel은 다른 네임스페이스에 정의된 정보구조를 가진 메타데이터를 허용하는 확장점이다. 여러 개의 각기 다른 MetadataModel은 단일 MetadataModel 객체 내에 포함된 확장으로 선언될 수 있다. 메타데이타가 외부 객체로 정의된 경우, IPointer 객체를 이용해 그 객체에 링크할 수 있다. MetadataModel과 외부 참조 메타데이터의 어떠한 조합도 허용이 되며, Metadata 객체 내에서 조합의 순서는 중요하지 않다. Metadata의 하위 레벨로 선언된 IPointer에 대한 적절한 타겟은 6.9절에 정의되어 있다. |
그림 6.6 Variant 클래스 PIM의 단순 구조도
표 6.18은 IMS 콘텐츠 패키징 정보모델의 Variant 클래스를 정의한다.표 6.18 Variant 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Variant |
클래스 유형 | 컨테이너 |
데이터 유형 | n / a |
값의 범위 | n / a |
다중성 | 1..무제한(unbounded), 비순차적 |
특성 클래스 | { Identifier, IdentifierRef, 기타 }, 비순차적 |
부모(Parents) | Resource |
자식(Children) | [ Metadata, Extension ], 순차적 |
자식 그루핑 모델 (Child grouping model) | 순차적 |
내용(Description) | Variant 객체는 Resource 객체로 하여금 변형 Resource 객체를 참조하고 기술할 수 있도록 한다. Variant는 IdentifierRef 객체를 사용해 Resource나 IPointer 객체를 참조한다. 참조된 Resource나 IPointer는 Variant의 최상위(grandparent) Resource 객체에 의해 요약된다. IPointer에 대한 참조의 경우, IPointer는 참조된 매니페스트 내의 Resource를 참조한다. Variant에 대한 Metadata 자식 객체는 항상 Variant와 상위(parent) Resource간의 관계를 기술하기 위해 사용된다. |
그림 6.7 IPointer 클래스 PIM의 단순 구조도
표 6.19는 IMS 콘텐츠 패키징 정보모델의 IPointer 클래스를 정의한다.표 6.19 IPointer 클래스 정의
기술정의클래스명IPointer클래스 유형컨테이너데이터 유형n / a값의 범위n / a다중성0..무제한(unbounded), 순차적특성 클래스{ Identifier, LinkType, LinkHref, Other }, 비순차적부모(Parents)Manifest ManifestMetadata MetadataOrganizations Organization Item Resources자식(Children)n / a자식 그루핑 모델 (Child grouping model)순차적내용(Description)IPointer 객체는 링크 객체이며, 매니페스트 문서의 노드 집합을 식별하고 이를 상위 객체와 연계시키는 것을 목표로 한다. 식별된 노드 집합의 소스는 로컬 또는 리모트일 수 있다.IPointer에 의해 식별된 노드 집합은 IPointer의 상위 클래스의 유효한 하위 클래스이다 (표 20 참조).표 6.20은 IPointer 클래스를 이용한 상위(parent)-클래스(class)-타겟(target)-클래스(class) 링크의 허용 된 조합을 정의한다.표 6.20 상위(parent)/타겟(target) 클래스의 허용된 링크 조합
IPointer 클래스의 부모 클래스 | IPointer 클래스의 유효한 타겟 노드 집합 |
---|---|
Manifest | Manifest |
Organizations | Organization |
Organization | Item |
Item | Item |
Resources | Resource |
ManifestMetadata | MetadataModel |
Metadata | MetadataModel |
그림 6.8 Extension 클래스 PIM의 단순 구조도
표 6.21은 IMS 콘텐츠 패키징 정보모델의 Extension 클래스를 정의한다.표 6.21 Extension 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Extension |
클래스 유형 | 불특정(unspecified) |
데이터 유형 | 불특정(unspecified) |
값의 범위 | 불특정(unspecified) |
다중성 | 0..무제한(unbounded), 순차적 |
확장점 (Is extension point) | 참(true) |
특성 클래스 | 불특정(unspecified), 순서 또한 불특정 |
부모(Parents) | Manifest Organizations OrganizationItem Resources Resource Variant FileDependency |
자식(Children) | 불특정(unspecified), 순서 또한 불특정 |
자식 그루핑 모델 (Child grouping model) | 순차적 |
내용(Description) | Extension 객체는 위치 표시자 이며, 이 정보모델의 바인딩에 이 정보모델의 유형 컨테이너 클래스를 확장하는 value 또는 container 클래스를 삽입할 유효한 위치를 알려준다.Extension 클래스는 이 정보모델의 유형 컨테이너를 확장하기 위한 두 가지 기법 중 하나이다. 또 다른 기법은 Other 클래스이다. Extension 객체는 유형 컨테이너의 클래스를 확장하기 위해 사용된다. Extension 객체를 대신해 사용된 확장 container나 value 클래스 유형의 실제 이름은 바인딩 된 객체가 이 정보모델의 바인딩 된 인스턴스에 등록될 때에만 알 수 있다. 그러므로, 클래스의 실제 유형은 이 정보모델에 상술되어 있지 않다. Extension의 의미론은 이 정보모델의 부모 객체의 범위 내에 있다. Extension의 의미론은 이 정보모델에서 정의된 어떠한 상위 객체의 의미론도 무효화시키거나 재정의하지 않는다. |
표 6.22 Base 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Base |
클래스 유형 | 특성(characteristic) |
데이터 유형 | URI |
값의 범위 | 바인딩 언어 의존적 |
다중성 | 0..1 |
부모(Parents) | Manifest Resources Resource |
내용(Description) | Base 객체는 Base가 관련 객체의 하위 객체를 참조하는 상대참조를 변환하는 목적으로 연계된 객체의 베이스 URI를 상술하기 위해 사용된다. Base에 선언된 값이 허용된 하위 객체내의 다음 Base 객체로 교체되거나 수정되는 경우를 제외하고, Base 값의 범위는 베이스가 연관된 객체의 모든 자식에게 적용된다.Base 값으로 표현된 모든 상대 경로 세그먼트는 해당 표현을 포함하고 있는 매니페스트 문서로 해석(resolve)된다. 세그먼트로 표현된 Base는 가장 가까운 조상(ancestor) 객체에 표현된 상대 경로 세그먼트에 첨부되어 Base 객체에서 최상위(root) Manifest까지 값을 표현할 수 있다. 그 결과로 모아진 상대 경로 세그먼트의 시퀀스는 Manifest 문서의 위치나 절대 경로를 생성하기 위해 가공되는 위치에 첨부된다. Base 객체의 범위 내에 등장하는 상대 참조는 RFC3986에 정의된 규칙에 따라 해석된다. |
표 6.23 Default 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Default |
클래스 유형 | 특성(characteristic) |
데이터 유형 | 바인딩 언어 의존적 (디폴트는 문자열이다) |
값의 범위 | Organization의 값{ Default }.Organization{ Identifier } 객체 |
다중성 | 0..1 |
부모(Parents) | Organizations |
내용(Description) | Default 객체는 Organizations 객체의 단일 자식 Organization 객체를 주어진 Manifest 객체의 기본, 또는 디폴트 Organization 구조로 지정한다. 디폴트 Organization은 타겟 Organization 객체의 Identifier 객체의 값을 참조함으로써 지정된다. 타겟 Organization은 Default를 가진 Organization 객체의 자식(child)이다. 이 외에 Default에 의한 다른 참조를 허용하지 않는다. Organizations 객체에 Default가 선언되지 않는 경우, Organizations 객체의 첫 번째로 정의된 Organization 객체가 기본 또는 디폴트 구성 구조(organizing structure)로 간주된다. |
표 6.24 Href 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Href |
클래스 유형 | 특성(characteristic) |
데이터 유형 | URI |
값의 범위 | RFC3986에 의해 정의 |
부모 객체에 의한 다중성 | 0..1 : Resource 1..1 : File |
부모(Parents) | Resource File |
내용(Description) | Href 객체는 자원의 위치를 파악하기 위해 사용된다. Href에 선언된 값은 의미론적으로 유효한 URI이다. 이 문서는 선언된 문자열이 유효한 URI이거나, 실제 자원이나 파악된 위치의 자원의 일부로 변환된다는 어떠한 보장도 하지 않는다.Manifest.Resources.Resource{Href}에 선언된 값은 자원이 기술하는 콘텐츠의 위치를 파악하고 액세스하는 데 사용될 수 있는 URL를 대표한다. URL을 변환하기 위해 패키지 해석기가 필요하지는 않다. URI는 교환 패키지의 콘텐츠가 가공된 후 다른 소프트웨어 구성요소에 의해 추후 사용을 목적으로 저장된다.Manifest.Resources.Resource.File{Href}에 선언된 값은 단일한 디지털 자원의 위치를 파악하는 데 쓰이며, 위치가 파악된 자원의 용도에는 관여하지 않는다. |
표 6.25 Identifier 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Identifier |
클래스 유형 | 특성(characteristic) |
데이터 유형 | 바인딩 언어 의존적 로컬 단일 식별자 (LUID) |
값의 범위 | 바인딩 언어 의존적 |
다중성 | 1..1 |
부모(Parents) | Manifest Organization ItemResource IPointer Variant |
내용(Description) | Identifier 객체는 Manifest 객체내의 Identifier 객체의 부모를 식별한다. 즉, Manifest의 자식 매니페스트 객체를 포함해 같은 Manifest 내에서 식별자에 대해 주어진 값에 대해서는 한 번만 발생한다. Identifier의 값은 IdentifierRef 객체를 이용해 다른 객체로부터의 내부 참조로 사용될 수 있다. |
표 6.26 IdentifierRef 클래스 정의
기술 | 정의 |
---|---|
클래스명 | dentifierRef |
클래스 유형 | 특성 |
데이터 유형 | 현재의 LUID (LUIDref)에 대한 바인딩 언어 의존적 참조 |
값의 범위 | IdentifierRef 객체가 직접 포함하는 Manifest 객체의 Identifier 객체 값,그리고 다음에 정의된 내부 참조 규칙에 의해 제한된 값. |
다중성 | 0..1 : Item 1..1 : Dependency 1..1 : Variant |
부모(Parents) | Item Dependency Variant |
내용(Description) | IdentifierRef 객체는 IdentifierRef 객체가 직접적으로 포함하는 Manifest 객체의 하위 레벨 Identifier 객체의 값을 정확히 복제한다. 객체가 직접 포함하는 Manifest는 객체의 구성에서 제일 처음으로 등장하는 Manifest에 정의된다. 참조되는 식별자는 직접적으로 포함하는 Manifest의 자식 매니페스트에 포함되어 있을 수 있다.
또한, IdentifierRef는 다음 내부 참조 규칙을 따른다.
|
그림 6.9 – 매니페스트와 (하위)매니페스트에 대한 범위 지정 규칙
표 6.27 IsVisible 클래스 정의
기술 | 정의 |
---|---|
클래스명 | IsVisibler |
클래스 유형 | 특성(characteristic) |
데이터 유형 | Boolean |
값의 범위 | 참(true) (디폴트) 불허(false) |
다중성 | 0..1 |
부모(Parents) | Item |
내용(Description) | IsVisible 객체는 형제 Title 객체에 선언된 텍스트 문자열을 디스플레이할 지, 또는 그 외의 방법으로 Item 객체의 존재를 시각적으로 표시할 지를 렌더링(rendering) 프로세스에 지시한다.이 플래그는 기타 어떠한 행위도 전가하지 않는다. IsVisible은 IsVisble 부모 Item의 후손 Item에 가시성 상태(visibility state)의 상속을 선언하지 않는다. IsVisible의 디폴트 값은 Item의 바인딩된 인스턴스에 선언되지 않더라도 ‘참(true)’이 될 것이다. 즉, 상위 Item에서 IsVisible의 부재는 Item에 ‘참(true)’의 값을 가진 IsVisible이 선언된 것과 같다. ‘참(true)’의 값은 형재 Title의 콘텐츠가 항상 렌더링(rendering) 애플리케이션에 의해 디스플레이 되어야 한다는 의미로 해석된다 (예를 들어, Item{IsVisible}.Title) ‘불허(false)’의 값은 형제 Title의 콘텐츠는 항상 렌더링 애플리케이션에 의해 디스플레이 되어서는 안된다는 의미로 해석된다. |
표 6.28 Language 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Language |
클래스 유형 | 특성(characteristic) |
데이터 유형 | 문자열(string) |
값의 범위 | IEEE 1484.12.1에서 정의한 1.3 Language 요소의 값의 범위로, 다음 ABNF 규칙을 기반으로 정의된다. language-id = lang-code *lang-sub-code; lang-code is any language code defined by ISO 639–1 & 2lang-sub-code = "-" country-code ; country-code is any country code defined by ; ISO 3166-1 |
다중성 | 1 |
부모(Parents) | LingualTitle |
내용(Description) | 부모 LingualTitle 객체에 포함된 문자열의 인간 언어를 식별하는 Language 객체 |
표 6.29 LinkHref 클래스 정의
기술 | 정의 |
---|---|
클래스명 | LinkHref |
클래스 유형 | 특성(characteristic) |
데이터 유형 | URI |
값의 범위 | 바인딩 언어 의존적. 아래 정의된 외부 참조 규칙에 의해 제한된다. |
다중성 | 1 |
부모(Parents) | IPointer |
내용(Description) | LinkHref 객체는 같은, 혹은 다른 (‘리모트’) Manifest 문서에서 객체 집합을 명확하게 식별한다. LinkHref에 선언된 값은 의미론적으로 유효한 절대적, 또는 상대적 참조이다. URL은 위치상 제한이 없기 때문에, 특성의 범위는 전역적 (global)이다. |
표 6.30 LinkType 클래스 정의
기술 | 정의 |
---|---|
클래스명 | LinkType |
클래스 유형 | 특성(characteristic) |
데이터 유형 | 문자열(string) |
값의 범위 | 바인딩 언어 의존적 |
다중성 | 0..1 |
부모(Parents) | IPointer |
내용(Description) | LinkType 객체는 특별한 의미가 부여된 용어나 키워드 (예를 들어, 어휘나 구문)를 선언할 위치를 제공한다. IMS 콘텐츠 패키징에서는 ‘단순한’ 키워드를 이 객체의 값으로 사용한다. LinkType의 범위는 부모로 제한된다. NOTE: 단순 링크는 로컬 자원과 리모트 자원 하나씩을 연계하는 링크로, 로컬 자원에서 리모트 자원으로 아크(arc)가 이동한다. 즉, 단순 링크는 항상 아웃바운드 링크이다. |
표 6.31 Other 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Other |
클래스 유형 | 특성(characteristic) |
데이터 유형 | 이 정보모델에서는 알려진 바 없다 |
값의 범위 | 이 정보모델에서는 알려진 바 없다 |
다중성 | 0..무제한(unbounded) |
부모(Parents) | Manifest Metadata OrganizationsOrganization Item Resources ResourceFile Dependency |
내용(Description) | Other 객체는 특성 클래스의 논리적으로 동등하다고 선언된 컨테이너 클래스의 특성에 대한 확장점이다. Other는 위치 표시자로, 다른 정보모델에서 정의된 특성 클래스를 도입할 유효한 위치를 이 정보모델의 바인딩에 알린다. 대체되어 사용된 확장 특성 클래스 유형의 실제 이름은 클래스의 바인딩이 이 정보모델의 바인딩 된 인스턴스에 등록될 때에만 알 수 있다. 확장된 특성 클래스의 의미론은 이 정보모델 내의 클래스의 정의에 따라 상위 클래스의 의미론 범위 내에 있다. 확장된 특성 클래스의 의미론은 이 정보모델에 정의된 어떠한 부모 클래스의 의미론도 무효화하거나 재정의하지 않는다.Other의 범위는 그 상위 객체(parent object)로 제한된다. |
표 6.32 Parameter 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Parameter |
클래스 유형 | 특성(characteristic) |
데이터 유형 | 문자열(string) |
값의 범위 | 아래 기술 내용 참조 |
다중성 | 0..1 |
부모(Parents) | Item |
내용(Description) | Parameter 객체에는 (항상) Item 객체에 연계되는 정적이며 애플리케이션에 의해 활용되는 특정 정보가 기재된다. 그러나, 파라미터는 이 정보모델에 의 해 정의되지 않는다. 일반적으로, 파라미터는(Parameter의 상위 Item이 참조 하는 Resource 객체에 상술된 파일들을 포함하여) Item에 기재된 정보를 이 용하는 애플리케이션에 의해 그 용도가 정의된다. Parameter에 선언된 값으로 표현된 문자는 항상 RFC3986에 정의된 URI로 인코딩된 값이어야 한다.Parameter의 범위는 상위 객체로 제한된다. |
표 6.33 Structure 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Structure |
클래스 유형 | 특성(characteristic) |
데이터 유형 | 문자열(string) |
값의 범위 | 아래 기술 내용 참조 |
다중성 | 0..1 |
확장점 (Is extension point) | 불허(false) |
부모(Parents) | Organization |
내용(Description) | Organization 객체 내에서 Item 객체들간의 관계를 기술하는 Structure 객체. Structure 특성의 범위는 부모 Organization으로 한정된다. Structure의 값의 범위에는 IMS Global Learning Consortium, Inc. 의 승인을 받고 통제 목록 [SDN11, 06]을 통해 공개된 용어들을 포함하고 있다. 승인된 용어 목록의 구문법과 의미론은 이 정보모델을 실행하는 모든 소프트웨어 구성요소에 의해 지원된다. Structure의 값의 범위는 확장될 수 있다. IMS 값 중 특정 Organization의 Item 객체 집합의 Organization을 정의하고자 하는 실행자 집단의 필요에 부응하는 승인된 IMS 값이 존재하지 않을 때 이러한 확장 표현을 생성하고 사용할 수 있다.Structure의 값으로 사용된 확장 표현들은 RFC3986의 3절에 정의된 URI 구문법 규칙을 따른다. Structure 값의 범위를 확장하는 데 사용되는 용어들의 구문법은 용어의 소스를 URI로 밝히고 Item 자체를 URI fragment: scheme://authority/hierarchy#term 로 밝힌다. |
표 6.34 Type 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Type |
클래스 유형 | 특성(characteristic) |
데이터 유형 | 문자열(string) |
값의 범위 | 아래 기술 내용 참조 |
다중성 | 1..1 |
부모(Parents) | Resource |
내용(Description) | Type 객체는 상위(parent) Resource 객체가 기술하는 자원의 유형을 표시하는 용어, 키워드, 또는 구문을 제시한다. Type의 값의 범위는 IMS Global Learning Consortium, Inc.에서 제공한 용어를 포함하며, 이는 통제 목록 [SDN11, 06]을 통해 공개되었다. 승인된 용어 목록은 이 정보모델을 포함한 모든 소프트웨어 구성요소에 의해 지원된다.Type의 값의 범위는 통제 목록을 넘어 확장될 수 있다. 이러한 확장 표현은 실행 집단의 표현 욕구를 만족시키는 승인된 IMS 값이 없을 때에 생성되고 사용될 수 있다. Type의 값으로 사용된 확장 표현은 RFC3986의 3절에 정의된 URI 구문법 규칙을 따른다. Type 값의 범위 확장 용어의 구문법은 용어의 소스를 URI로 밝히고 용어 자체를 URI fragment: cheme://authority/hierarchy#term 로 밝힌다: Type 특성의 범위는 상위 객체에 제한되어 있다. 특히, Type 값으로 표현된 의미론은 Resource.Dependency{ IdentifierRef } 참조의 사용을 통해 전송(transmit)되거나 ‘상속(inherit)’되지 않는다. |
표 6.35 Version 클래스 정의
기술 | 정의 |
---|---|
클래스명 | Version |
클래스 유형 | 특성(characteristic) |
데이터 유형 | 문자열(string) |
값의 범위 | [UCS]의 출력 가능한 문자 레파토리 |
다중성 | 0..1 |
부모(Parents) | Manifest |
내용(Description) | Version 객체는 Manifest 객체의 고유한 버전을 표시하는 값을 가진다. 이 특성이 InterchangePackage 객체의 자식 매니페스트에 기재될 때(declare), 해당 값은 IMS 매니페스트 문서가 된다. 이 특성이 자식 매니페스트에 기재될 때, 그 특성은 해당 Manifest에만 적용이 되며 자식 매니페스트가 포함된 전체 문서에 해당되지는 않는다. 버전 정보의 의미론은 이 문서에 상술되어 있지 않다. 실행자들은 필요에 따라 원하는 의미 표시를 선택해 사용할 수 있다. 버전의 범위는 상위 객체에 제한된다. |