DC-TEXT

작성자 :
Pete Johnston
Eduserv Foundation, 영국
발행일자 :
2007-12-03
식별자 :
http://dublincore.org/documents/2007/12/03/dc-text/
대체함 :
적용 안됨
대체됨 :
적용 안됨
최신 버전 :
http://dublincore.org/documents/dc-text/
문서의 지위 :
이 문서는 DCMI 권고 자원(DCMI Recommended Resource)이다.
설명 :
이 문서는 더블린 코어 메타데이터 기술 집합 (Dublin Core metadata description set)을 표현하기 위한 일반 텍스트 포맷 (simple text format)을 구체화한다. 이 포맷은 "DC-Text"라고도 불린다.

목차

  1. 서론
  2. DCMI 추상 모델 (DCMI Abstract Model)과 DC-Text
  3. DC-Text 구문 (DC-Text Syntax)의 특징
  4. DC-Text 구문 (DC-Text Syntax)
  5. 참고문헌
  6. 감사의 말

1. 서론

DCMI 추상 모델 (DCMI Abstract Model) [DCAM]의 "기술 집합 모델 (Description Set Model)"은 DC 메타데이터 기술 집합을 구성하는 구성물들을 설명한다. 이 문서는 명백한 텍스트에서의 DC 메타데이터 기술 집합을 직렬화하거나 표현하기 위한 구문을 구체화한다. 이 포맷은 "DC-Text"라고도 불린다. 이러한 기술 집합을 직렬화하기 위한 명백한 텍스트 포맷은 DCMI 추상 모델의 구성물들을 강조하는데 있어서 인간이 읽기 편리한 형식으로 예시를 표현하기에 유용하며, 또한 기계 처리가 가능한 포맷으로 표현된 정보를 비교하는 수단으로 유용하다.

2. DCMI 추상 모델 (DCMI Abstract Model)과 DC-Text

DCMI 추상 모델 (DCMI Abstract Model) [DCAM]의 "기술 집합 모델 (Description Set Model)"에 따르면, DC 기술 집합은 다음과 같은 구조를 가진다:

  • 하나의 기술 집합 (description set)은 하나 혹은 그 이상의 기술들 (descriptions)로 구성됨

  • 하나의 기술 (description)는 다음으로 구성됨

    • 0 혹은 하나의 기술된 자원 URI (described resource URI)와

    • 하나 혹은 그 이상의 문장들 (statements)

  • 하나의 문장 (statement)은 다음으로 구성됨

    • 정확히 하나의 속성 URI (property URI)와

    • 정확히 하나의 값 표현 (value surrogate)

  • 하나의 값 표현 (value surrogate)은 하나의 문자적 값 표현 (literal value surrogate)이거나 하나의 비문자적 값 표현 (non-literal value surrogate)임

    • 하나의 문자적 값 표현 (literal value surrogate)은 다음으로 구성됨

      • 정확히 하나의 값 문자열 (value string)

    • 하나의 비문자적 값 표현 (non-literal value surrogate)은 다음으로 구성됨

      • 0 혹은 하나의 값 URI들 (value URIs)

      • 0 혹은 하나의 어휘 부호화 체계 URI들 (vocabulary encoding scheme URIs)

      • 0 혹은 하나 이상의 값 문자열들 (value strings)

  • 하나의 값 문자열 (value string)은 하나의 보통 값 문자열 (plain value string)이거나 하나의 유형화된 값 문자열 (typed value string)임

    • 하나의 보통 값 문자열 (plain value string)은 하나의 값 문자열 언어 (value string language)와 관련이 있을 수 있음

    • 하나의 유형화된 값 문자열 (typed value string)은 구문 부호화 체계 URI (syntax encoding scheme URI)와 관련이 있을 수 있음

  • 하나의 비문자적 값 (non-literal value)은 또 다른 기술 (description)에 의해 서술될 수 있음

이 문서에서 기술된 이 포맷은 전체 DCAM "기술 집합 모델"을 지원한다.

3. DC-Text 구문 (DC-Text Syntax)의 특징

이 부분에서는 구문의 몇몇 특징들의 개요를 보여준다.

3.1 DC-Text 문서의 구조

DC-Text 문서의 일반적인 구조는 다음과 같다:

namespace declaration
label (
  label ( content )
  label (
    label ( [...] )
    [ ... ]
  )
)

DCMI 추상 모델 (Abstract Model)에 의해 정의된 DC 메타데이터 기술 집합 (description set)의 주요소들 각각은 다음과 같은 형식의 구문적 구조에 의해 DC-Text에서 표현된다.

label ( content )

label은 다음과 같은 문자열들 중 하나로 대체된다:

DescriptionSet, Description, ResourceURI, ResourceId, Statement,
PropertyURI, VocabularyEncodingSchemeURI, ValueURI, ValueId,
ValueString, Language, SyntaxEncodingSchemeURI, LiteralValueString

그리고 content는 다음 중 하나가 된다:

  • 하나 혹은 그 이상의 label (content) 형태의 구문적 구조들의 연속 (예: 이러한 구조들은 "nested (함유적)"임); 혹은

  • "literal" 형식의 문자열, 이것은 유니코드 문자를 포현함; 혹은

  • <url> 형식의 문자열, 이것은 URI를 표현함; 혹은

  • prefix:name 형식의 문자열, 이것은 URI의 축약형으로서 사용되는 "한정된 이름 (qualified name)"을 표현함

  • 언어 태그를 표현하는 문자열

  • 값과 값들의 기술 사이의 관계를 생성하는데 사용되는 국부적으로 번주화된 (locally-scoped) 식별자로서의 문자열

위 목록으로 제시된 각 label 값에 있어서, 허락된 content 형식은 아래 Section 4에서 구체화되는 구문 규칙들 (syntax rules)에 의해 결정된다.

DC-Text 구문은 세분화되지 않은 DC 기술 집합 (description set)의 표현을 지원하고, 그래서 DC-Text 문서는 0 혹은 그 이상의 namespace declarations로 구성되고, 이 네임스페이스 선언 이후에는 DescriptionSet의 하나의 label을 가진 간결 label (content) 구문적 구조가 나오며, content에는 Description의 하나의 label을 가진 하나 혹은 그 이상의 함유된 (nested) label ( content ) 구조가 들어간다. 예: DC-Text 문서는 다음과 같은 개요 형식을 가진다:

@prefix prefix: <uri> .

DescriptionSet (
  Description (
    Statement ( ... )
    Statement ( ... )
  )
  Description (
    Statement ( ... )
    Statement ( ... )
  )
)

3.2 DC-Text에서의 URIs

DCAM은 통합 자원 식별자 (Uniform Resource Identifiers, URIs) [RFC3896]를 사용하여 기술된 자원들과 메타데이터 용어들 (속성, 클래스, 어휘 부호화 체계 및 구문 부호화 체계) 모두를 지칭한다.

DC-Text 구문에서, URIs는 전체가 다 표현되거나 "한정된 이름들 (qualified names)"로서 표현될 수도 있다.

3.2.1 URIs

하나의 URI는 전체가 다 표현될 수도 있다. 다음의 예시는 하나의 label ( content ) 구문적 구조의 내용물 (content)로서의 속성 URI (property URI)를 보여준다.

예시 1: 전체가 다 표현된 URI

DescriptionSet (
  Description (
    Statement (
      PropertyURI ( <http://purl.org/dc/terms/subject> )
      ValueString ( "Metadata" )
    )
  )
)

DC-Text 포맷은 상대적 참조의 형식에서는 URI 참조들을 지원하지 않음을 주의하여야 한다.

URIs, 한정된 이름들과 네임스페이스 선언들 (URIs, Qualified Names and Namespace Declarations)

하나의 URI는 "한정된 이름 (qualified name)"로서 표현될 수도 있다.

하나의 "한정된 이름 (qualified name)"은 DC-Text 포맷에서 사용되는 URI의 축약형을 의미한다. 하나의 "한정된 이름 (qualified name)"은 콜론 (:)에 의해 구분되는 하나의 prefix와 하나의 name인 두 부분으로 구성된다. DC-Text에서 "한정된 이름 (qualified name)"이 사용되는 모든 곳에서는 이 방법이 URI를 표현하는데 사용된다.

"한정된 이름 (qualified name)"에서의 "접두사 (prefix)"는 네임스페이스 선언 (namespace declaration)을 사용하는 "네임스페이스 URI (namespace URI)"와 관련이 있다. "한정된 이름 (qualified name)"에 의해서 표현되는 이 URI는 관련 접두사와 "이름 (name)"을 가진 이어져 있는 "네임스페이스 URI (namespace URI)"에 의해 결정된다.

네임스페이스 선언은 DC-Text 문서의 시작 부분에서 이루어지며, 다음과 같은 형식을 가진다:

@prefix prefix: <uri> .

예를 들어, 다음의 선언들은 dcterms 접두사를 http://purl.org/dc/terms/ URI와 연관시키고, ex 구문을 http://example.org/resources/ URI와 연관시킨다.

@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix ex: <http://example.org/resources/> .

DC-Text 개체를 생성함으로써 하나의 기술 집합 (description set)을 "부호화 (encoding)"할 때, 하나의 URI를 표현하기 위한 하나의 "한정된 이름 (qualified name)"은 다음에 의해 결정된다.

  • URI를 하나의 국부적 이름 (위에 설명된 어휘적 제약들에 따른 URI의 길게 이어진 문자들)과 하나의 네임스페이스 URI (URI의 앞 부분)로 구성된 한 쌍으로 나누는 것, 그리고

  • 네임스페이스 URI를 위한 네임스페이스 선언 (Namespace Declaration) 요소를 제공하는 것 (네임스페이스 선언과 "한정된 이름 (qualified name)"에 있는 하나의 접두사를 사용함으로써)

하나의 간략 URI를 표현하기 위해서는 하나 이상의 "한정된 이름 (qualified name)"을 통해 표현이 가능함을 주의하여야 한다. 예를 들어, http://purl.org/dc/terms/title URI는 다음의 쌍들 (namespace URI와 local name) 중 어느 하나를 사용해서도 표현이 가능하다.

커뮤니티들은 일반적으로는 "한정된 이름 (qualified name)"에 대해서는 하나의 URI를 사용하게 하는 관행을 정하는데, 특히 용어들 중 속성, 클래스, 어휘 부호화 체계 및 구문 부호화 체계 (properties, classes, vocabulary encoding schemes and syntax encoding schemes) 용어들의 URIs에 대해서 그러하다. 그러나 이론적으로는 이 네 개의 형식들이 모두 개체의 해석을 변환시키지 않은채 효율적으로 사용될 수 있어야 한다. 모든 DCMI 용어들에 대하여, DCMI 커뮤니티에 의해 사용되는 이 관행은 URI 용어를 나누어 가장 오른쪽 '/' (사선) 옆에 이 확장된 이름을 쪼갠 문자를 적게 된다 (상위의 각 예시들의 첫 부분처럼). 또한, "한정된 이름 (qualified name)" 내의 접두사를 위해 사용되는 이 문자들은 중요하지 않다. 그러나 커뮤니티들은 인간 가독성을 높이기 위해서 하나의 접두사의 공통된 사용에 관한 하나의 관행을 종종 채택하고 있다.

다음의 예시들은 하나의 네임스페이스 선언과 http://purl.org/dc/terms/title 속성 URI (property URI)에 대한 하나의 "한정된 이름 (qualified name)"의 사용을 보여준다:

예시 2: "한정된 이름 (qualified name)"으로서 표현되는 URI

@prefix dcterms: <http://purl.org/dc/terms/> .

DescriptionSet (
  Description (
    Statement (
      PropertyURI ( dcterms:title )
      LiteralValueString ( "DCMI Home Page" )
    )
  )
)

만약 "한정된 이름 (qualified name)"에서 사용되는 접두사가 하나의 네임스페이스 선언에서의 하나의 URI와 관련이 없으면, 에러가 발생한다. 만약 이 접두사가 다수의 URIs (다수의 네임스페이스 선언들을 통하여)와 관련이 있으면, 이 접두사는 가장 최근의 선언에서 구체화된 네임스페이스 URI와 관련이 있다.

다음의 예시들에서는, 접두사 "xx"가 "한정된 이름 (qualified name)"에서 사용되었고, 이 접두사를 위해서 두 개의 네임스페이스 선언이 존재한다. 두 번째 네임스페이스 선언은 http://your.example.org/terms/approved URI로부터 http://your.example.org/terms/approved URI를 생성하는데 사용된다:

예시 3: "한정된 이름 (qualified name)"으로서 표현되는 URI, 다수의 네임스페이스 선언들

@prefix xx: <http://my.example.org/terms/> .
@prefix xx: <http://your.example.org/terms/> .

DescriptionSet (
  Description (
    Statement (
      PropertyURI ( xx:approved )
      LiteralValueString ( "2007-12-03" )
    )
  )
)

3.3 코멘트들

DC-Text 문서의 모든 곳에 코멘트 (comments)를 삽입할 수 있다. 하나의 코멘트는 하나의 #로 시작되며 새로운 라인으로 끝난다.

# A comment at the start of the document
@prefix prefix: <uri> .
DescriptionSet (
  Description (
    # A comment at the start of a description
    Statement ( ... )
    # A comment following a statement
    Statement ( ... )
  )
  Description (
    Statement ( ... )
    Statement ( ... )
  )
)

3.4 문자열 확장 (String Escapes)

문자들을 표현하는 문자열들은 표현되지 않는 문자들 (non-printable characters)과 DC-Text 구문에서 종료기 (terminators)로 사용되는 문자들을 부호화하기 위하여 확장 문자들을 포함할 수도 있다.

  • \t = U+0009, tab
  • \n = U+000A, line feed
  • \r = U+000D, carriage return
  • \" = U+0022, double quote
  • \\ = U+005C, backslash

예시 4: 확장 문자들 (Escape Characters)을 포함하는 문자 (literal)

@prefix dcterms: <http://purl.org/dc/terms/> .

DescriptionSet (
  Description (
    Statement (
      PropertyURI ( dcterms:title )
      LiteralValueString ( "Things that go \"bump\" in the night" )
    )
  )
)

4. DC-Text 구문 (DC-Text Syntax)

이 부분에서는 DCAM 기술 집합 모델 (DCAM Description Set Model)의 구성물들 각각이 DC-Text 구문을 사용하여 어떻게 표현되는 지를 설명한다.

4.1 하나의 기술 집합 (Description Set)을 부호화하기

하나의 기술 집합 (description set)은 하나 혹은 그 이상의 기술들 (descriptions)로 구성된다.

하나의 DC-Text 문서는 하나의 간략 DC 기술 집합 (description set)의 표현을 지원한다. 하나의 기술 집합은 구문적 구조인 DescriptionSet ( ) 을 사용하여 표현된다.

Example 5: 기술 집합들 (Description Sets)

DescriptionSet (
  Description (
    Statement (
      PropertyURI ( <http://purl.org/dc/terms/subject> )
      ValueString ( "Metadata" )
    )
  )
)

4.2 하나의 기술 (Description)를 부호화하기

하나의 기술 (description)은 하나의 자원에 관한 하나 혹은 그 이상의 문장들 (statements)의 집합이다.

하나의 기술 (description)은 Description ( ) 구문적 구조를 사용하여 표현된다.

다음의 예시는 하나의 기술 (description)로 구성된 기술 집합 (description set)을 표현한다.

Example 6: 기술 (Description)

DescriptionSet (
  Description (
    Statement (
      PropertyURI ( <http://purl.org/dc/terms/subject> )
      ValueString ( "Metadata" )
    )
  )
)

하나의 기술 집합 (description set)은 다수의 기술들 (descriptions)을 포함할 수도 있다.

각 기술 (description)은 분리된 Description ( ) 구문적 구조를 사용하여 표현된다.

다음의 예시는 두 개의 기술들 (descriptions)로 구성된 하나의 기술 집합 (description set)을 표현한다. Description ( ) 구문적 구조의 순서는 중요하지 않다.

예시 7: 다수의 기술들 (Descriptions)

DescriptionSet (
  Description (
    Statement (
      PropertyURI ( <http://purl.org/dc/terms/subject> )
      ValueString ( "Metadata" )
    )
  )
  Description (
    Statement (
      PropertyURI ( <http://xmlns.com/foaf/0.1/name> )
      LiteralValueString ( "Dublin Core Metadata Initiative" )
    )
  )
)

4.4.1 기술된 자원 URI (Described Resource URI)

하나의 기술 (description)은 관련된 하나의 기술된 자원 URI (described resource URI)를 가질 수도 있다.

하나의 기술된 자원 URI (described resource URI)는 하나의 ResourceURI ( <url> ) 구문적 구조를 사용하여 표현된다:

예시 8: 기술된 자원 URI (Described Resource URI)

DescriptionSet (
  Description(
    ResourceURI( <http://dublincore.org/pages/home> )
    Statement (
      PropertyURI ( <http://purl.org/dc/terms/subject> )
      ValueString ( "Metadata" )
    )
  )
)

네임스페이스 선언들 (namespace declarations)을 소개함으로써, "한정된 이름 (qualified name)" 방법은 기술된 자원 URI (Described Resource URI)를 축약하는데 사용될 수 있다. 이전 예시에서 처럼 같은 기술 집합 (description set)은 다음과 같이 부호화될 수도 있다.

예시 9: "한정된 이름 (qualified name)"을 사용하여 축약된 기술된 자원 URI (Described Resource URI)

@prefix page: <http://dublincore.org/pages/> .

DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( <http://purl.org/dc/terms/subject> )
      ValueString ( "Metadata" )
    )
  )
)

주석: 이 문서의 이 부분부터, 모든 예시들은 "한정된 이름 (qualified name)"으로서 축약된 URI들을 보여줄 것이지만, 각 경우에 URI들은 전체가 다 표현될 수도 있다.

4.3 하나의 문장 (Statement)을 부호화하기

하나의 기술 (description)은 하나 혹은 그 이상의 문장들 (statements)로 구성된다.

하나의 문장 (statement)은 Statement ( ) 구문적 구조를 사용하여 표현된다.

다음의 예시는 하나의 간략 문장 (statement)으로 구성된 하나의 기술 (description)을 표현한다.

예시 10: 문장들 (Statements)

@prefix page: <http://dublincore.org/pages/> .
@prefix dcterms: <http://purl.org/dc/terms/> .

DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( dcterms:subject )
      ValueString ( "Metadata" )
    )
  )
)

하나의 기술 (description)은 다수의 문장들 (statements)을 가질 수도 있다.

각 문장 (statement)은 분리된 Statement ( ) 구문적 구조를 사용하여 표현된다.

다음의 예시는 두 개의 문장들 (statements)로 구성된 하나의 기술 (description)을 표현한다. Statement ( ) 구문적 구조의 순서는 중요하지 않다.

예시 11: 다수의 문장들 (Statements)

@prefix page: <http://dublincore.org/pages/> .
@prefix dcterms: <http://purl.org/dc/terms/> .

DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( dcterms:subject )
      ValueString ( "Metadata" )
    )
    Statement (
      PropertyURI ( dcterms:title )
      LiteralValueString ( "DCMI Home Page" )
    )
  )
)

4.3.1 하나의 속성 URI (Property URI)를 부호화하기

하나의 문장 (statement)은 반드시 정확히 하나의 속성 URI (Property URI)를 포함해야 한다.

하나의 속성 URI (Property URI)는 PropertyURI ( <url> ) 구문적 구조를 사용하여 표현된다.

다음의 예시는 속성 URI (Property URI)가 http://purl.org/dc/terms/subject인 하나의 간략 문장으로 구성된 하나의 기술를 표현한다.

예시 12: 속성 URI (Property URI)

@prefix page: <http://dublincore.org/pages/> .
@prefix dcterms: <http://purl.org/dc/terms/> .

DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( dcterms:subject )
      ValueString ( "Metadata" )
    )
  )
)

4.4 하나의 값 표현 (Value Surrogate)을 부호화하기

하나의 문장 (statement)은 반드시 정확히 하나의 값 표현 (value surrogate)을 포함해야 한다. 하나의 값 표현 (value surrogate)은 문자적 값 표현이 (literal value surrogate)거나 비문자적 값 표현 (non-literal value surrogate)이다.

4.4.1 문자적 값 표현 (Literal Value Surrogate)을 부호화하기

하나의 문자적 값 표현 (Literal Value Surrogate)은 정확히 하나의 값 문자열 (value string)로 구성된다.

4.4.1.1 문자적 값 표현 값 문자열 (Literal Value Surrogate Value String)을 부호화하기

문자적 값 표현 (literal value surrogate) 내의 하나의 값 문자열 (value string)은 LiteralValueString ( ) 구문적 구조를 사용하여 표현된다.

다음의 예시는 값 문자열 (value string)을 포함하는 문자적 값 표현 (literal value surrogate)을 가진 하나의 간략 문장 (statement)으로 구성된 하나의 기술 (description)를 표현한다.

예시 13: 문자적 값 표현 (Literal Value Surrogate: 값 문자열 (Value String)

@prefix page: <http://dublincore.org/pages/> .
@prefix dcterms: <http://purl.org/dc/terms/> .

DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( dcterms:title )
      LiteralValueString ( "DCMI Home Page" )
    )
  )
)

4.4.2 비문자적 값 표현을 부호화하기

비문자적 값 표현은 다음으로 구성된다:

  • 0 혹은 하나의 값 URI들 (value URIs)
  • 0 혹은 하나의 어휘 부호화 체계 URI들 (vocabulary encoding scheme URIs)
  • 0 혹은 그 이상의 값 문자열들 (value strings)
4.4.2.1값 URI (Value URI)

하나의 값 URI (value URI)는 ValueURI ( <url> ) 구문적 구조를 사용하여 표현된다.

다음의 예시는 하나의 값 URI (value URI)를 포함하는 비문자적 값 표현 (non-literal value surrogate)을 가진 하나의 간략 문장 (statement)으로 구성된 하나의 기술 (description)을 표현한다.

예시 14: 비문자적 값 표현 (Non-Literal Value Surrogate): 값 URI (Value URI)

@prefix page: <http://dublincore.org/pages/> .
@prefix agent: <http://example.org/agents/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement(
      PropertyURI ( dcterms:creator )
      ValueURI ( agent:DCMI )
    )
  )
)
4.4.2.2 어휘 부호화 체계 URI

하나의 어휘 부호화 체계 URI는 VocabularyEncodingSchemeURI ( <url> ) 구문적 구조를 사용하여 표현된다.

다음의 예시는 값 URI (Value URI)와 어휘 부호화 체계 URI (vocabulary encoding scheme URI)를 포함하는 비문자적 값 표현 (non-literal value surrogate)을 가진 하나의 간략 문장 (statement)으로 구성된 하나의 기술 (description)을 표현한다.

예시 15: 비문자적 값 표현 (Non-Literal Value Surrogate): 어휘 부호화 체계 URI (Vocabulary Encoding Scheme URI)

@prefix page: <http://dublincore.org/pages/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix exterms: <http://example.org/terms/> .
@prefix exsh: <http://example.org/sh/> .

DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( dcterms:subject )
      ValueURI ( exsh:metadata )
      VocabularyEncodingSchemeURI ( myterms:EXSH )
    )
  )
)
4.4.2.3 비문자적 값 표현 값 문자열 (Non-Literal Value Surrogate Value String)을 부호화하기

비문자적 값 표현 (non-literal value surrogate) 내 하나의 값 문자열 (value string)은 ValueString ( ) 구문적 구조를 사용하여 표현된다.

다음의 예시는 값 URI (value URI), 어휘 부호화 체계 URI (vocabulary encoding scheme URI) 및 값 문자열 (value string)을 포함하는 비문자적 값 표현 (non-literal value surrogate)을 가진 하나의 간략 문장 (statement)으로 구성된 하나의 기술 (description)를 표현한다.

예시 16: 비문자적 값 표현 (Non-Literal Value Surrogate): 값 문자열 (Value String)

@prefix page: <http://dublincore.org/pages/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix exterms: <http://example.org/terms/> .
@prefix exsh: <http://example.org/sh/> .

DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( dcterms:subject )
      ValueURI ( exsh:metadata )
      VocabularyEncodingSchemeURI ( exterms:EXSH )
      ValueString ( "Metadata" )
    )
  )
)

비문자적 값 표현 (non-literal value surrogate)은 다수의 값 문자열들 (value strings)을 포함할 수 있다.

다음의 예시는 값 URI (value URI), 어휘 부호화 체계 URI (vocabulary encoding scheme URI) 및 두 개의 값 문자열들 (value strings)을 포함하는 비문자적 값 표현 (non-literal value surrogate)을 가진 하나의 간략 문장 (statement)으로 구성된 하나의 기술 (description)를 표현한다.

예시 17: 비문자적 값 표현 (Non-Literal Value Surrogate): 다수의 값 문자열들 (Value Strings)

@prefix page: <http://dublincore.org/pages/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix exterms: <http://example.org/terms/> .
@prefix exsh: <http://example.org/sh/> .

DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( dcterms:subject )
      ValueURI ( exsh:metadata )
      VocabularyEncodingSchemeURI ( exterms:EXSH )
      ValueString ( "Metadata" )
      ValueString ( "M?adonn?s" )
    )
  )
)

4.5 하나의 값 문자열 (Value String)을 부호화하기

하나의 값 문자열 (value string)은 하나의 명백한 값 문자열 (plain value string)이거나 하나의 유형화된 값 문자열 (typed value string)이다.

4.5.1 하나의 명백한 값 문자열 (Plain Value String)을 부호화하기

하나의 명백한 값 문자열 (plain value string)은 하나의 값 문자열 언어 (value string language)와 관련이 있다.

4.5.1.1 값 문자열 언어를 부호화하기

하나의 값 문자열 언어 (value string language)는 Language ( tag ) 구문적 구조를 사용하여 표현된다.

다음의 예시는 값 URI (value URI), 어휘 부호화 체계 URI (vocabulary encoding scheme URI) 및 두 개의 명백한 값 문자열들 (plain value strings)을 포함하는 비문자적 값 표현 (non-literal value surrogate)을 가진 하나의 간략 문장 (statement)으로 구성된 하나의 기술 (description)를 표현한다.

예시 18: 값 문자열 언어들 (Value String Languages)

@prefix page: <http://dublincore.org/pages/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix exterms: <http://example.org/terms/> .
@prefix exsh: <http://example.org/sh/> .

DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( dcterms:subject )
      ValueURI ( exsh:metadata )
      VocabularyEncodingSchemeURI ( exterms:EXSH )
      ValueString ( "Metadata"
        Language ( en )
      )
      ValueString ( "M?adonn?s"
        Language ( fr )
      )
    )
  )
)

4.5.2 하나의 유형화된 값 문자열 (Typed Value String)을 부호화하기

하나의 유형화된 값 문자열 (typed value string)은 하나의 구문 부호화 체계 URI (syntax encoding scheme URI)와 연관이 있다.

4.5.2 하나의 구문 부호화 체계 URI (Syntax Encoding Scheme URI)를 부호화하기

하나의 구문 부호화 체계 URI는 SyntaxEncodingSchemeURI ( <url> ) 구문적 구조를 사용하여 표현된다.

다음 예시는 값 URI (value URI)과 어휘 부호화 체계 URI (vocabulary encoding scheme URI)를 포함하는 비문자적 값 표현 (non-literal value surrogate)을 가진 간략한 문장 (statement)으로 구성된 하나의 기술 (description)를 표현한다.

예시 19: 구문 부호화 체계 URI (Syntax Encoding Scheme URI)

@prefix page: <http://dublincore.org/pages/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xs: <http://www.w3.org/2001/XMLSchema#> .
DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( dcterms:modified )
      ValueString ( "2006-02-14"
        SyntaxEncodingSchemeURI ( xs:date )
      )
    )
  )
)

4.6 비문자적 값들 (Non-Literal Values)의 기술들 (descriptions)

하나의 기술 집합 (description set)은 다수의 기술들 (descriptions)을 포함할 수 있고, 각각의 기술는 Description ( content ) 구문적 구조에 의해 표현된다. 이 구조들의 순서는 중요하지 않다.

예시 20: 다수의 기술들 (description)

@prefix page: <http://dublincore.org/pages/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( dcterms:subject )
      ValueString ( "Metadata" )
    )
  )
  Description (
    Statement (
      PropertyURI ( foaf:name )
      LiteralValueString ( "Dublin Core Metadata Initiative" )
    )
  )
)

하나의 기술 내 하나의 문장에서의 비문자적 값 (non-literal value)으로서 지칭되는 하나의 자원은 기술 집합 내의 또 다른 기술의 기술된 자원이 될 수 있다. 만약 이 자원이 하나의 URI를 부여받았다면, 이 URI는 아래에서 보여지는 바와 같이, 값 URI로서 이 자원이 비문자적 값으로 지칭되는 문장 내에서 나타나고 이 자원의 기술 내에서 기술된 자원 URI (described resource URI)로서 나타난다.

예시 21: 기술된 자원 (Described Resource)으로서의 비문자적 값 (Non-Literal Value)

@prefix page: <http://dublincore.org/pages/> .
@prefix agent: <http://example.org/agents/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( dcterms:creator )
      ValueURI ( agent:DCMI )
    )
  )
  Description (
    ResourceURI ( agent:DCMI )
    Statement (
      PropertyURI ( foaf:name )
      LiteralValueString ( "Dublin Core Metadata Initiative" )
    )
  )
)

몇몇 경우에, 자원 (resource)은 부여된 URI를 가지지 않거나 URI를 모를 수도 있다. 이런 자원은 하나의 기술 (description) 내 하나의 문장 (statement)에서 비문자적 값 (non-literal value)으로서 지칭될 수도 있고, 같은 기술 집합 (description set)내의 또 다른 기술 (description)의 기술된 자원 (described resource)으로 지칭될 수도 있다.

DC-Text 내에서, 첫 번째 기술 (description) 내 문장과 두 번째 기술 (description) 내 문장 (statement) 사이의 연관성은 DC-Text 개체로 국한된 자원 (resource)을 위한 식별자를 사용하여 형성된다. 이러한 국부적 식별자는 자원 (resource)이 비문자적 값 (non-literal value)으로 지칭되는 하나 혹은 그 이상의 Statement ( ) 구성물들 내의 ValueId ( id ) 구문적 구성물에서 사용되고, 기술된 자원 (described resource)을 위한 Description ( ) 구성물 내의 ResourceId ( id ) 구성물에서 사용된다. ValueId ( id ) 구성물의 내용물 (content)은 같은 DC-Text 개체 내에 있는 ResourceId ( id )의 내용물과 반드시 일치해야 한다.

이것은 문장 (statements) 내 값 (values)으로의 참조들을 이러한 값들 (values)의 기술들 (descriptions)로 연결시키기 위한 구문적 방법임에 주의하여야 한다: 국부적 식별자 자체는 기술 집합 (description set) 내에 나타나지 않는다.

예시 23: 기술된 자원 (Described Resource)으로서의 비문자적 값 (Non-Literal Value)

@prefix page: <http://dublincore.org/pages/> .
@prefix agent: <http://example.org/agents/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
DescriptionSet (
  Description (
    ResourceURI ( page:home )
    Statement (
      PropertyURI ( dcterms:creator )
      ValueId ( agentDCMI )
    )
  )
  Description (
    ResourceId ( agentDCMI )
    Statement (
      PropertyURI ( foaf:name )
      LiteralValueString ( "Dublin Core Metadata Initiative" )
    )
  )
)

참고문헌

[DCAM]
DCMI 추상 모델 (DCMI Abstract Model) DCMI 권고안 (DCMI Recommendation). 2007-06-04
http://dublincore.org/documents/2007/06/04/abstract-model/

[URI]
Berners-Lee, T., R. Fielding, L. Masinter. RFC 3986: Uniform Resource Identifier (URI): Generic Syntax. Internet Engineering Task Force (IETF). January 2005.
<http://www.ietf.org/rfc/rfc3986.txt>

이 문서에서 수정된 사항들

2008-01-14. 다음과 같은 기록이 제거되었음: 2007-12-03 일자로, http://purl.org/dc/terms/ ("dcterms:") 네임스페이스에서의 http://purl.org/dc/elements/1.1/ ("dc:") 네임스페이스의 15개 속성들 (properties)을 "반복 (replicate)" 가능하게 하고자 하는 href="/documents/2007/07/02/domain-range/">제안서가 아직 승인되거나 구현되지 않았다. 이 제안서가 승인되기까지, 이 문서에서 dcterms:subject와 dcterms:title 이름들로 참조하고 있는 것들은 "제안된 (proposed)" 지위도 가지고 있는 것으로 이해되어야 한다.

2008-03-31. 예시 14, 15, 16 및 17의 제목을 "문자적 값 표현 (Literal Value Surrogate)"에서 "비문자적 값 표현 (Non-Literal Value Surrogate)"으로 변경함. 프로파일 URI를 제거함.