더블린 코어의 XML 구현 지침
1. 서론
이 문서는 XML[XML]을 사용하여 더블린 코어[더블린코어] 메타데이터 어플리케이션을 구현하는 사람들에게 지침을 제공하기 위한 것이다. 이 지침에서는 간략 더블린코어(한정어를 포함하지 않은)와 확장 더블린코어 어플리케이션 양쪽 모두를 고려하였다. 각각의 경우 기본적인 메타데이터 모델을 기술하고(구문 중립적인 방식으로), 그 다음에 XML 구현을 위한 특정한 지침 일부를 제시하였다. 더블린코어 이외의 메타데이터를 사용하는 것과 관련된 지침도 일부 제시하고 있다.
이 문서에서는 더블린 코어를 RDF/XML[RDF]로 부호화하기 위한 지침을 제공하지 않고 있다. 게다가 RDF/XML 대신 ‘평이한’ XML로 메타데이터를 부호화할 때의 상대적인 이점을 강조하지도 않고 있다. 이 문서는 RDF/XML이 적절치 않다고 판단되는 경우에 지침을 제공하기 위한 것이다. 더블린 코어 메타데이터를 RDF/XML로 부호화하기 위한 방법은 다른 문서에서 개발 중에 있다[DCARCH].
2. 전문용어
- 자원(Resource)
- 독자성을 지닌 것이라면 어떤 것도 자원이다. 친숙한 예로서는 전자문서와 이미지, 서비스(예를 들어 “로스 엔젤리스의 오늘의 기상 보도”), 기타 자원의 집서 등이 포함된다. 모든 자원이 네트워크상에서 “검색되지는” 않는다. 이를테면 사람이나 단체, 도서관에 소장된 제본된 책도 자원으로 인정될 수 있다.
- 속성(Property)
- 속성은 자원을 기술하기 위해 사용된 특수한 관점이나 특성, 성질, 관계이다.
- 레코드(Record)
- 레코드는 자원에 관하여 어느 정도 구조화된 메타데이터로서, 하나 이상의 속성과 그 값으로 구성되어 있다.
더블린 코어 메타데이터 요소는 속성이라는 점에 유의해야 한다(위에서 정의한 바와 같이). 아울러 ‘element’와 ‘attribute’라는 용어가 XML에서 사용될 때와 이보다 더 일반적인 메타데이터 상황에서 사용될 때 이들 용어 간에 혼란이 있을 수 있다는 점도 유의하기 바란다.
3. 일반적인 구현 지침
권고사항 1. 구현자는 구현하고자 하는 XML 어플리케이션을 XML DTD 대신 XML 스키마 [XMLSCHEMA]에 기반해야 한다.XML 스키마에 기반한 방식이 더 유연하고, 다른 XML 어플리케이션에서 쉽게 재사용할 수 있다. 때로는 어플리케이션에서 XML 스키마와 DTD 두 가지를 제시하는 것이 현명할 수도 있다. XML 스키마를 사용하지 않는 경우에는 DTD를 대신 제시해야 한다. 더블린코어 메타데이터 [DCXMLS]를 사용하는 프로젝트나 제품에 이용하기 위한 XML 스키마 목록을 더블린코어에서 유지, 관리하고 있다.
권고사항 2. 구현자는 더블린코어 요소와 요소 세목, 입력 체계를 고유하게 식별하기 위하여 XML 이름 공간[XMLNS]을 사용해야 한다.더블린코어 이름공간 권고사항[DCMINS]에서 더블린코어 이름공간을 정의하고 있다. [DCMINS].
일종의 컨테이너 XML 요소 내에 레코드를 부호화한다는 점에 유의할 필요가 있다. 이 문서에서는 컨테이너 요소의 이름에 대해서는 아무런 권고도 하지 않고 있으며, 그 요소가 어떤 이름공간에 속해야 하는지에 대해서도 권고하지 않고 있다. 후보로서의 컨테이너 요소명에는 <dc>, <dublinCore>, <resource>, <record>와 <metadata> 등이 해당된다.
4. 간략 더블린 코어
4.1 추상 모델
- 간략 더블린코어 레코드는 하나 이상의 속성과 이와 관련된 값으로 구성된다.
- 각 속성은 기술대상 자원의 성질이다.
- 각 속성은 15개의 DCMES [DCMES] 요소 중 하나여야 한다.
- 속성은 반복될 수 있다.
- 각 값은 리터럴 문자열이다.
- 각각의 리터럴 문자열 값은 관련된 언어를 가질 수 있다(예를 들어 en-GB).
간략 더블린코어 레코드와 기술대상 자원 간에 공식적인 연계는 없다는 점에 유의할 필요가 있다. 해당 자원의 URI를 더블린코어 식별기호 요소의 값으로 부호화함으로써 그러한 연계가 이루어질 수 있지만, 그러나 이렇게 하는 것이 필수적인 사항은 아니다.
비록 속성 값을 URI로 할 수도 있지만, 간략 더블린코어 모델에서는 어떤 경우가 여기에 해당되는지를 알려 주는 장치가 없다는 점을 유의할 필요가 있다. 구현할 때 어떤 값이 URI이고 어떤 값이 URI가 아닌지를 구현자의 책임아래 판단하여 선택할 수 있다.
4.2 구현지침
(구현하는 사람은 일반 지침을 따라야 한다)
권고사항 3. 구현자는 속성을 XML 요소로, 값을 이 XML 요소의 값으로 부호화해야 한다. 이때 XML 요소명은 이 요소명과 적절한 더블린코어 이름공간 이름과를 연결하는 XML로 한정된 이름(QName)이어야 한다. 예를 들면,
<dc:title value="Dublin Core in XML" />
이 아니라
<dc:title>Dublin Core in XML</dc:title>
로 해야 한다.
권고사항 4.15개의 더블린코어 요소에 대한 속성명에 대해서는 모두 소문자를 사용해야 한다. 예를 들면,
<dc:Title>Dublin Core in XML</dc:Title>
이 아니라
<dc:title>Dublin Core in XML</dc:title>
로 해야 한다.
권고사항 5. 복수의 속성 값은 해당 속성에 대한 XML 요소를 반복해서 부호화해야 한다. 예를 들면 다음과 같다.
<dc:title>First title</dc:title>
<dc:title>Second title</dc:title>
4.3 용례 - 간략 더블린코어 레코드
<?xml version="1.0"?>
<metadata
xmlns="http://example.org/myapp/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://example.org/myapp/ http://example.org/myapp/schema.xsd"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:title>
UKOLN
</dc:title>
<dc:description>
UKOLN is a national focus of expertise in digital information
management. It provides policy, research and awareness services
to the UK library, information and cultural heritage communities.
UKOLN is based at the University of Bath.
</dc:description>
<dc:publisher>
UKOLN, University of Bath
</dc:publisher>
<dc:identifier>
http://www.ukoln.ac.uk/
</dc:identifier>
</metadata>
http://example.org/myapp/schema.xsd인 XML 스키마는 실재하지 않는 것으로 가상의 예로 제시한 것임에 유의하기 바란다.
5. 확장 더블린 코어
5.1 추상 모델
- 확장 더블린코어 레코드는 하나 이상의 속성과 이 속성과 관련된 값으로 구성되어 있다.
- 각 속성은 기술대상자원의 성질이다.
- 각 속성은 다음 중 하나여야 한다. 즉
- 15개의 더블린코어 요소 중 하나여야 한다,
- 더블린코어에서 권고한 기타 요소 중 하나여야 한다(예. audience)[DCTERMS],
- 더블린코어 메타데이터 용어[DCTERMS] 권고사항에 수록된 요소 세목 중 하나여야 한다..
- 속성은 반복될 수 있다.
- 각각의 값은 리터럴 문자열이다.
- 각각의 값은 관련된 부호화 체계를 가질 수 있다.
- 각각의 부호화 체계는 명칭을 가지고 있다.
- 개개의 리터럴 문자열 값은 관련 언어를 가질 수 있다(예, en-GB).
현재 더블린코어에서 권장하고 있는 부호하 체계의 명칭은 더블린코어 메타데이터 용어 권고사항[DCTERMS] 에서 구체적으로 제시되어 있음을 유의하기 바란다(‘레이블’이 아니라 ‘용어명’으로 제시되어 있다). 더블린코어에서는 장차 합의된 체계명을 등록할 수 있는 다른 방안을 개발할 것으로 예상된다.
5.2 구현지침
(구현자는 일반 지침과 간략 더블린 코어에 적용된 지침을 따라야 한다.)
권고사항 6. 요소 세목은 다른 속성과 동일한 방식으로 취급되어야 한다. XML 요소명은 요소 세목명과 적절한 더블린코어 이름공간명을 연결하는 XML로 한정된 이름이어야 한다[QName]. 예를 들면 다음과 같다.
<dcterms:available>2002-06</dcterms:available>
요소 세목은 그 자체로 요소이며 따라서 다른 더블린코어 요소와 유사한 방식으로 부호화되는 것이 최선의 방안이다. 특히 요소 세목 자체가 더 전개될 수 있다는 점도 유의해야 한다(즉 'format'은 'extent'로 전개되고 이것은 다시 'duration'으로 전개될 수 있다).다음의 주 1도 참조하기 바란다.
권고사항 7. 부호화 체계는 해당 속성에 대한 XML 요소의 'xsi:type' 성질을 사용하여 구현되 어야 한다. 부호화 체계의 명칭은 성질 값으로 제시되어야 하고, 이 체계 명칭을 적절한 이름공간 명칭과 연결하는 XML로 한정된 이름(QName) 형식으로 부호화해야 한다. 예를 들면 다음과 같다.
<dc:identifier xsi:type="dcterms:URI">http://www.ukoln.ac.uk/</dc:identifier>
다음의 주 2도 참조하기 바란다.
권고사항 8. 요소 세목과 부호화 체계에는 더블린코어 메타데이터 용어 권고사항[DCTERMS] ('레이블'이 아니라 '용어명'으로 제시된)에서 구체적으로 제시된 명칭을 사용해야 한다. 일반적으로 요소명과 요소 세목명에 대해서는 대문자와 소문자를 혼용할 수도 있으나 첫 번째 문자를 항상 소문자로 사용해야 하며, 부호화 체계명도 대문자와 소문자를 혼용할 수 있으나 항상 대문자로 시작해야 하며, 부호화 체계명은 대체로 모두 대문자이다. 예를 들면 다음과 같다.
<dcterms:isPartOf xsi:type="dcterms:URI">
http://www.bbc.co.uk/
</dcterms:isPartOf>
<dcterms:temporal xsi:type="dcterms:Period">
name=The Great Depression; start=1929; end=1939;
</dcterms:temporal>
권고사항 9. 값의 언어를 제시해야 하는 경우에는 'xml:lang' 성질을 사용하여 부호화해야 한다. 예를 들면 다음과 같다.
<dc:subject xml:lang="en">seafood</dc:subject>
<dc:subject xml:lang="fr">fruits de mer</dc:subject>
5.3 용례 - 확장 더블린코어 레코드
<?xml version="1.0"?>
<metadata
xmlns="http://example.org/myapp/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://example.org/myapp/ http://example.org/myapp/schema.xsd"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/">
<dc:title>
UKOLN
</dc:title>
<dcterms:alternative>
UK Office for Library and Information Networking
</dcterms:alternative>
<dc:subject>
national centre, network information support, library
community, awareness, research, information services,public
library networking, bibliographic management, distributed
library systems, metadata, resource discovery,
conferences,lectures, workshops
</dc:subject>
<dc:subject xsi:type="dcterms:DDC">
062
</dc:subject>
<dc:subject xsi:type="dcterms:UDC">
061(410)
</dc:subject>
<dc:description>
UKOLN is a national focus of expertise in digital information
management. It provides policy, research and awareness services
to the UK library, information and cultural heritage communities.
UKOLN is based at the University of Bath.
</dc:description>
<dc:description xml:lang="fr">
UKOLN est un centre national d'expertise dans la gestion de l'information
digitale.
</dc:description>
<dc:publisher>
UKOLN, University of Bath
</dc:publisher>
<dcterms:isPartOf xsi:type="dcterms:URI">
http://www.bath.ac.uk/
</dcterms:isPartOf>
<dc:identifier xsi:type="dcterms:URI">
http://www.ukoln.ac.uk/
</dc:identifier>
<dcterms:modified xsi:type="dcterms:W3CDTF">
2001-07-18
</dcterms:modified>
<dc:format xsi:type="dcterms:IMT">
text/html
</dc:format>
<dcterms:extent>
14 Kbytes
</dcterms:extent>
</metadata>
6. 더블린코어 메타데이터와 기타 메타데이터 스키마와의 혼용
다수의 메타데이터 어플리케이션에서는 더블린 코어 메타데이터와 이와 다른 메타데이터 스키마에서 취한 속성을 혼용하게 될 것이다. 이렇게 하는 데에는 여러 가지 이유가 있는데, 더블린코어에 기반한 메타데이터 어플리케이션이 DCMES에서 이용할 수 없는 의미를 수용할 필요가 있고, 한편으로는 다른 메타데이터 어플리케이션에서 DCMES 요소를 수용할 필요가 있기 때문이다.
가능하다면 더블린코어 메타데이터 모두를 XML로 사용하기 위해서는 위에 제시된 지침을 따라야 한다.
더블린코어 이외의 다른 속성도 더블린코어 요소와 함께 XML 요소로 부호화될 수 있다. 여기에 두 가지 간단한 용례를 제시하였다.
6.1 용례 - 더블린코어와 IMS 메타데이터의 혼용
이 용례에서는 간략 더블린코어 레코드에 IMS(IEEE LOM)[IMS]의 TypicalLearningTime 속성을 추가하였다.
<?xml version="1.0"?>
<record
xmlns="http://example.org/learningapp/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://example.org/learningapp/ http://example.org/learningapp/schema.xsd"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:ims="http://www.imsglobal.org/xsd/imsmd_v1p2">
<dc:title>
Frog maths
</dc:title>
<dc:identifier>
http://somewhere.com/frogmaths/
</dc:identifier>
<dc:description>
Simple maths games for 5-7 year olds.
</dc:description>
<ims:typicallearningtime>
<ims:datetime>
0000-00-00T00:15
</ims:datetime>
</ims:typicallearningtime>
</record>
요소명에 적용되는 더블린코어 대소문자 규정은 다른 메타데이터 스키마에는 적용되지 않을 수도 있다는 점에 유의하기 바란다.
6.2 용례 - 더블린코어와 ODRL 메타데이터 혼용
이 용례에서는 위의 용례에 기계가독 Open Digital Rights Language [ODRL] 사항과 DC Right 요소가 추가된 것이다.
<?xml version="1.0"?>
<record
xmlns="http://example.org/learningapp/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://example.org/learningapp/ http://example.org/learningapp/schema.xsd"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:oex="http://odrl.net/1.0/ODRL-EX"
xmlns:odd="http://odrl.net/1.0/ODRL-DD"
xmlns:ims="http://www.imsglobal.org/xsd/imsmd_v1p2">
<dc:title>
Frog maths
</dc:title>
<dc:identifier xsi:type="dcterms:URI">
http://somewhere.com/frogmaths/
</dc:identifier>
<dc:description>
Simple maths games for 5-7 year olds.
</dc:description>
<ims:typicallearningtime>
<ims:datetime>
0000-00-00T00:15
</ims:datetime>
</ims:typicallearningtime>
<dc:rights>
Permission is granted for anyone to display, copy, modify and annotate
this software.
</dc:rights>
<oex:rights>
<oex:asset>
<oex:context>
<odd:uid idscheme="URI">
http://somewhere.com/frogmaths/
</odd:uid>
</oex:context>
</oex:asset>
<oex:permission>
<odd:display/>
<odd:modify/>
<odd:annotate/>
</oex:permission>
</oex:rights>
</record>
ODRL은 이 문서에서 제안한 더블린코어 XML 부호화 과정에 사용되지 않는 구조적 규정(즉 XML 요소를 전입하는 것)을 사용하고 있음을 유의할 필요가 있다. 이것은 IMS와 같은 다른 메타데이터 어플리케이션에서도 적용될 수 있을 것이다.
주석
[주 1] 권고사항 6에서 확장 더블린 코어 메타데이터 레코드는 요소 세목과 이 요소 세목의 속한 요소 간의 관계에 관한 확실한 정보를 포함해야 한다는 것을 전제로 하지 않고 있다. 이러한 관계는 다른 문서에서 체계적으로 제시하고 있으며, 스키마 정의에서 기계로 판독할 수 있는 방식으로 표현될 것이다.
그러나 일부 구현자들은 이러한 관계를 메타데이터 레코드 내에 표현하는 것을 더 선호하고 있다.
일부 구현자들은 'refines' 성질을 사용하는 것을 제안하고 있다. 예를 들면 다음과 같다.
<dcterms:alternative refines="dc:title">foo</dcterms:alternative>
다른 구현자들은 요소 세목이 속한 요소를 표현한 XML 요소 내에 전입된 요소 세목을 표현하는 XML 요소와 함께, 요소 봉쇄정책을 사용하는 방안을 제안하고 있다. 예를 들면 다음과 같다.
<dc:title>
<dcterms:alternative>foo</dcterms:alternative>
</dc:title>
이러한 방법 중 어느 것도 이 지침에서 권고하는 방법이 아니다. 그러나 정확하고 일관되게 적용된다는 것을 전제로 한다면 DCQ를 XML로 사용하는 소프트웨어 어플리케이션에서는 이 두 가지 표현방식 중 어느 하나를 수용해도 적절하다고 할 수 있다.
[주 2] 권고사항 7에서는 확장 더블린 코에서 부호화 체계를 구현하기 위해 'xsi:type'을 사용하도록 명시하고 있다. 이렇게 하게 되면 구현자들은 W3C XML 스키마 규격[XMLSCHEMA]에서 제공하는 데이터 유형화 기능을 일부 이용할 수 있게 된다.
대신 일부 구현자들은 특정한 스키마 정의 언어와는 다른 별도의 규정을 사용하는 방안을 제안한 바 있다. 그러한 규정 중 하나는 해당 속성에 대해 XML 요소의 'scheme' 성질을 사용하는 것이다. 예를 들면 다음과 같다.
<dc:identifier scheme="dcterms:URI">http://www.ukoln.ac.uk/</dc:identifier>
이 방법은 이 지침에서 권장하는 사항이 아니다. 그러나 정확하고 일관되게 적용된다는 것을 전제로 한다면, DCQ를 XML로 사용하는 소프트웨어 어플리케이션에서는 이 두 가지 표현방식 중 어느 하나를 수용하는 것도 적절하다고 할 수 있다.
참고문헌
[DCMI] Dublin Core Metadata Initiative http://dublincore.org/
[XML] Extensible Markup Language (XML) http://www.w3.org/XML/
[DCMES] Dublin Core Metadata Element Set, Version 1.1: Reference Description http://dublincore.org/documents/dces/
[DCTERMS] DCMI Metadata Terms http://dublincore.org/documents/dcmi-terms/
[RDF] Resource Description Framework (RDF) http://www.w3.org/RDF/
[DCARCH] DCMI Architecture Working Group http://dublincore.org/groups/architecture/
[XMLSCHEMA] XML Schema http://www.w3.org/XML/Schema
[DCXMLS] DCMI Metadata expressed in XML Schema Language http://dublincore.org/schemas/xmls/
[XMLNS] Namespaces in XML http://www.w3.org/TR/1999/REC-xml-names-19990114/
[DCMINS] Namespace Policy for the Dublin Core Metadata Initiative (DCMI) http://dublincore.org/documents/dcmi-namespace/
[IMS] IMS Learning Resource Meta-data Information Model - Version 1.2 Final Specification http://www.imsglobal.org/metadata/imsmdv1p2/imsmd_infov1p2.html
[ODRL] The Open Digital Rights Language Initiative http://odrl.net/
|