발행 이후 신고된 오류나 이슈는 정오표를 확인하시기 바랍니다.
이 명세의 영어 버전만이 공식적인 기준입니다. 비공식 번역본 역시 제공될 수 있습니다.
Copyright © 2017 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and document use rules apply.
이 문서는 자가 유지 가능한 생태계를 지원하기 위해 설계된 웹 상 데이터의 게시 및 활용과 관련된 모범 사례를 제공합니다. 데이터는 사람과 기계 모두가 검색하고 이해할 수 있어야 합니다. 데이터가 어떤 방식으로든 사용될 경우, 데이터 제공자이든 외부 당사자이든 그 사용 또한 검색 가능해야 하며, 데이터 게시자의 노력이 인정받아야 합니다. 요약하자면, 이러한 모범 사례를 따르면 게시자와 이용자 간의 상호작용이 촉진됩니다.
이 절은 이 문서가 발행될 당시의 상태를 설명합니다. 다른 문서가 이 문서를 대체할 수 있습니다. 현재의 W3C 발행물과 이 기술 보고서의 최신 버전 목록은 W3C 기술 보고서 색인 https://www.w3.org/TR/에서 확인할 수 있습니다.
웹 데이터 모범 사례 워킹 그룹은 차터에 따라 오픈 데이터 생태계를 개발하고, 개발자와 게시자 간의 더 나은 소통을 촉진하며, 데이터 관리 방식의 일관성을 개선하기 위한 지침을 제공하고, 데이터 재사용을 촉진하며 개발자들이 어떤 기술을 사용하든 데이터에 대한 신뢰를 조성하여 진정한 혁신의 가능성을 높이기 위해 결성되었습니다. 이 모범 사례 문서는 데이터 품질 및 데이터셋 사용 어휘와 함께 제공됩니다.
이 문서는 웹 데이터 모범 사례 워킹 그룹에서 권고안으로 발행되었습니다. 이 문서에 대한 의견을 제출하고자 한다면, public-dwbp-comments@w3.org (구독, 아카이브)로 보내주시기 바랍니다. 모든 의견을 환영합니다.
워킹 그룹의 이행 보고서를 참고하시기 바랍니다.
이 문서는 W3C 회원, 소프트웨어 개발자, 그리고 기타 W3C 그룹 및 이해당사자에 의해 검토되었으며, W3C 이사에 의해 W3C 권고안으로 승인되었습니다. 이 문서는 안정된 문서로 참고 자료로 사용할 수 있으며, 다른 문서에서 인용될 수 있습니다. W3C의 권고안 발행 목적은 명세에 대한 주목을 유도하고 널리 배포를 장려하는 것입니다. 이는 웹의 기능성과 상호운용성을 향상시킵니다.
이 문서는 2004년 2월 5일자 W3C 특허 정책에 따라 운영되는 그룹에 의해 작성되었습니다. W3C는 그룹 산출물과 관련해 제출된 공개 특허 공개 목록을 유지하고 있습니다. 해당 페이지에는 특허 공개 방법도 포함되어 있습니다. 누군가 본인이 알고 있는 특허가 필수 청구항(Claim(s)) 을 포함한다고 믿는 경우, W3C 특허 정책 6절에 따라 정보를 공개해야 합니다.
이 문서는 2015년 9월 1일 W3C 프로세스 문서의 적용을 받습니다.
이 절은 비규범입니다.
아래에서 설명하는 모범 사례들은 웹이 데이터 교환의 매체로서 지속적으로 성장할 수 있도록 장려하고 가능하게 하기 위해 개발되었습니다. 전 세계 정부의 오픈 데이터 온라인 공유의 증가 [ OKFN-INDEX] [ODB], 연구데이터 동맹(Research Data Alliance)과 같은 기관에서 권장하는 연구 데이터의 온라인 출판의 증가 [RDA], 소셜 미디어 데이터의 수집, 분석 및 온라인 출판, 정보의 크라우드소싱, 프랑스 국립도서관(Bibliothèque nationale de France) [BNF] 등 주요 문화유산 컬렉션의 웹상 존재감 확대, 그리고 링크드 오픈 데이터 클라우드(Linked Open Data Cloud)의 지속적 성장 [LODC] 등이 데이터 출판에서 웹 사용이 성장하고 있음을 보여줍니다.
그러나 이러한 성장은 일관된 스타일을 보이지 않으며, 많은 경우 오픈 웹 플랫폼의 사실 간 연결, 관련 리소스 검색, 인터랙티브 시각화 생성 등 전체 잠재력을 활용하지 못하고 있습니다.
전반적으로 데이터 제공자는 데이터를 공개적으로 또는 통제된 접근 방식으로 공유하는 것을 목표로 합니다. 데이터 소비자(스스로 생산자일 수도 있음)는 데이터를 특히 정확하고, 정기적으로 업데이트되며, 항상 이용 가능하기만 하면 찾고, 사용하고, 연결하기를 원합니다. 이는 데이터 제공자와 데이터 소비자 간의 공통 이해에 대한 근본적인 필요성을 만듭니다. 이러한 합의 없이는 데이터 제공자의 노력이 데이터 소비자의 요구와 맞지 않을 수 있습니다.
웹의 개방성과 유연성은 데이터 제공자 및 소비자에게 새로운 도전을 제시합니다. 예를 들면, 데이터를 쉽게 찾고 이해할 수 있도록 데이터를 어떻게 표현하고, 설명하며, 이용 가능하도록 할지 고민해야 합니다. 예를 들어, 일반적인 데이터베이스는 데이터 표현 및 접근을 하나의 데이터 모델과 DBMS가 담당하지만, 웹 상의 데이터는 다양한 표현과 접근 방법이 공존할 수 있습니다. 더 많은 도전 과제는 웹 데이터 과제 섹션을 참고하세요.
이러한 맥락에서 데이터 관리의 일관성을 향상시키는 지침을 제공하는 것이 중요합니다. 이러한 지침은 데이터 재사용을 촉진하고, 개발자들이 어떤 기술을 사용하더라도 데이터에 대한 신뢰를 만들어 진정한 혁신의 가능성을 높입니다.
모든 데이터와 메타데이터를 공개적으로 공유해야 하는 것은 아닙니다. 보안, 상업적 민감성, 그리고 무엇보다 개인의 프라이버시도 고려해야 합니다. 어떤 데이터를 어떤 상황에서 공유할지에 관한 정책은 데이터 제공자가 결정해야 합니다. 데이터 공유 정책은 노출 위험을 평가하고, 민감한 데이터를 보호하기 위한 보안 인증 및 권한 부여 등 적절한 보안 조치를 결정하게 됩니다.
상황에 따라 개인에 관한 민감한 정보는 전체 이름, 집 주소, 이메일 주소, 주민등록번호, IP 주소, 차량번호판, 운전면허번호, 얼굴, 지문이나 필적, 신용카드번호, 디지털 신원, 생년월일, 출생지, 유전정보, 전화번호, 로그인 이름, 스크린 이름, 별명, 건강기록 등이 포함될 수 있습니다. 일부 정보는 공개적으로 공유하거나, 더 제한된 환경에서 공유해도 안전할 수 있지만, 여러 소스에서 데이터를 결합하면 의도치 않게 개인이 식별될 수 있다는 점을 명심해야 합니다.
웹 데이터 게시의 일반적인 모범 사례는 표준을 사용하는 것입니다. 다양한 조직들은 특정 도메인/애플리케이션과 관련된 데이터셋 출판에 특화된 표준을 지정하며, 해당 데이터에 관심 있는 사용자 커뮤니티를 포함합니다. 이 표준들은 커뮤니티 사용자 간 정보 소통의 공통적인 방식을 정의합니다. 예를 들어, 교통 시간표를 출판할 때 사용할 수 있는 표준으로 General Transit Feed Specification [GTFS] 및 서비스 인터페이스(Service Interface for Real Time Information) [SIRI]가 있습니다. 이들은 표준 용어, 표준 데이터 형식, 표준 데이터 접근 방식을 혼합하여 규정합니다. 또 다른 일반 모범 사례는 문자 및 문자열 데이터를 처리할 때 유니코드(Unicode)를 활용하는 것입니다. 유니코드는 다국어 텍스트 처리 및 소프트웨어 현지화를 용이하게 합니다.
모범 사례는 데이터 포맷, 데이터 접근, 데이터 식별자, 메타데이터 등 데이터 게시와 소비 관련 다양한 측면을 다룹니다. 웹 데이터 모범 사례의 범위를 한정하고, 필요한 기능들을 도출하기 위해 DWBP 워킹 그룹은 웹에서 데이터가 어떻게 게시되고 사용되는지를 보여주는 일련의 사용 사례 [DWBP-UCR]를 수집했습니다. 이 사용 사례에서 도출된 요구 사항은 도메인 및 응용 분야와 무관하게 적용되는 모범 사례 개발을 안내하는 데 사용되었습니다. 단, 특별한 문맥을 다루는 다른 모범 사례 문서나 표준에 의해 보완/확장될 수 있습니다. 어휘의 경우, W3C의 링크드 데이터 출판 모범 사례 [LD-BP]가 유용한 참조가 되며, 라이선스 및 그 밖의 권한/의무 표현에 관한 구체적 권장사항은 ODRL [ODRL-model], 출처 관련 표준[PROV-Overview] 등에서 제공됩니다. 이 문서의 모범 사례는 SDW-BP]의 공간/시간 데이터 검색성, 접근성, 상호운용성과 관련된 구체 조언으로 확장되었습니다.
DWBP는 링크드 데이터 이용을 권장하지만, CSV 등 다른 오픈 포맷의 웹 데이터에 대한 모범 사례도 촉진합니다. 웹의 잠재력을 극대화하여 데이터 포인트 간 연결성을 높일 수 있는 방식으로 CSV 파일 등 표 형식 데이터를 공유하는 방법은 Tabular Data Primer [Tabular-Data-Primer]에서 설명되어 있습니다.
데이터 제공자가 DWBP를 채택하도록 장려하기 위해서 이해, 처리 가능성, 검색성, 재사용성, 신뢰, 연결성, 접근성, 상호운용성 등 여러 이점이 제시되었습니다. 이에 대해서는 모범 사례의 이점 장에서 자세히 설명합니다.
이 절은 비규범입니다.
이 문서는 주로 웹상에 데이터를 게시하는 이들을 위해 맞춤화된 모범 사례를 제시합니다. 이 모범 사례는 정보관리 담당자, 개발자, 그리고 웹에서 연구 데이터를 공유•재사용하려는 과학자 등 더 폭넓은 집단의 니즈를 충족하도록 설계되었습니다. 데이터 게시자가 주요 독자이지만, 관련 활동에 참여하는 모든 분들도 본 문서에 익숙해지기를 권장합니다. 최대한 읽기 쉽고, 사용성이 높으면서도 기술 명세에 필요한 정확성과 명확성을 잃지 않도록 작성되었습니다.
이 문서를 읽는 분들은 웹 아키텍처의 기본 개념(리소스, URI 등)과 여러 데이터 포맷을 어느 정도 알고 있다고 가정합니다. 각 모범 사례의 규범적 요소는 의도한 결과입니다. 가능한 구현 방법도 제시하고, 적합하다면 특정 기술의 사용을 권장할 수 있습니다. 어휘와 데이터 모델에 대한 기초 지식이 있으면 이 문서의 일부 내용을 더 잘 이해하는 데 도움이 됩니다.
이 절은 비규범입니다.
이 문서는 아래와 같은 모범 사례만을 다룹니다:
위에서 언급했듯이, 모범 사례가 지켜졌는지를 판단할 때는 의도한 결과를 기준으로 하고, 지침으로 제시된 가능한 구현 방법은 참고사항입니다. 모범 사례 또한 우리가 함께 웹을 만들어가며 개선해 나갈 수 있습니다.
이 절은 비규범입니다.
다음 다이어그램은 이 문서에서 고려하는 맥락을 나타냅니다. 일반적으로, 웹 데이터 게시 및 활용을 위한 모범 사례는 데이터셋과 배포판과 관련됩니다. 데이터는 서로 다른 배포판(데이터셋의 구체적 물리적 형태)으로 게시됩니다. 여기서 데이터란 "기록할 수 있고 내재된 의미가 있는 알려진 사실"을 의미합니다 [Navathe]. 이러한 배포판은 데이터의 대규모 공유를 촉진하며, 데이터셋이 목적, 대상, 관심사, 라이선스와 무관하게 여러 데이터 소비자 집단에 의해 활용될 수 있도록 합니다. 이질성이 크고 데이터 제공자와 소비자가 서로 모르는 상황도 있으므로, 데이터셋 및 배포판에 대한 신뢰성과 재사용에 도움이 되는 구조적 메타데이터, 설명 메타데이터, 접근 정보, 데이터 품질 정보, 출처 정보, 라이선스 정보, 사용 정보 등의 제공이 필요합니다.
웹 상의 데이터 게시·공유에서 중요한 한 가지는 웹의 아키텍처적 기반입니다 [WEBARCH]. 그 중에서도 리소스 식별 원칙이 중요한데, 자원 식별에는 URI를 사용해야 한다는 것입니다. 우리의 맥락에서 자원은 전체 데이터셋이나 특정 데이터셋 아이템이 될 수 있습니다. 모든 자원은 안정적인 URI로 게시되어, 다른 리소스와의 참조 및 연결(링킹)이 가능해야 합니다. 마지막으로, 데이터셋 간 상호운용성을 위해서는 데이터 어휘와 표준 채택이 중요합니다.
이 절은 비규범입니다.
이 문서 전체에서 다음 네임스페이스 프리픽스를 사용합니다.
| 프리픽스 | 네임스페이스 IRI | 설명 |
|---|---|---|
| dcat | http://www.w3.org/ns/dcat# | 데이터 카탈로그 어휘(DCAT) |
| dct | http://purl.org/dc/terms/ | 더블린 코어 메타데이터 이니셔티브(DCMI) 메타데이터 용어 |
| dqv | http://www.w3.org/ns/dqv# | DWBP 데이터 품질 어휘(DQV) |
| duv | http://www.w3.org/ns/duv# | DWBP 데이터셋 사용 어휘(DUV) |
| foaf | http://xmlns.com/foaf/0.1/ | Friend of a Friend (FOAF) 어휘 |
| oa | http://www.w3.org/ns/oa# | 웹 어노테이션 온톨로지 |
| owl | http://www.w3.org/2002/07/owl# | 웹 온톨로지 언어(OWL) |
| pav | http://pav-ontology.github.io/pav/ | Provenance, Authoring and Versioning (PAV) |
| prov | http://www.w3.org/ns/prov# | 출처 온톨로지(PROV) |
| rdf | http://www.w3.org/1999/02/22-rdf-syntax-ns# | 리소스 설명 프레임워크(RDF) |
| rdfs | http://www.w3.org/2000/01/rdf-schema# | RDF 스키마 어휘(RDFS) |
| skos | http://www.w3.org/2004/02/skos/core# | 단순 지식 조직 시스템(SKos) |
이 절은 웹 데이터 모범 사례를 설명할 때 사용하는 템플릿을 제시합니다.
모범 사례 템플릿
모범 사례의 간단한 설명
이 절에서는 두 가지 중요한 질문에 답합니다:
모범 사례가 다루는 문제에 대한 전체 설명도 제공될 수 있습니다. 보통 몇 문장 이내로 작성됩니다.
데이터 게시자가 모범 사례를 따르면 달성 가능한 바를 설명합니다.
실현 가능한 구현 전략을 설명합니다. 작성 시점의 최선의 조언이지만, 구체적 상황이나 미래의 변화에 따라 다른 방법이 더 적합할 수 있습니다.
모범 사례 충족 여부를 테스트하는 방법에 대한 정보입니다. 기계적으로 테스트가 가능할 수도, 아닐 수도 있습니다.
모범 사례의 관련성 정보입니다. Data on the Web Best Practices Use Cases & Requirements 문서에 기술된 하나 이상의 요구 사항으로 설명됩니다 [DWBP-UCR]
이 절에는 웹에서 데이터를 게시하고 소비할 때 데이터 게시자와 데이터 소비자가 직면하는 다양한 과제를 극복할 수 있도록 돕는 모범 사례가 포함되어 있습니다. 각 도전 과제별로 하나 이상의 모범 사례가 제안되었으며, 이에 대한 자세한 설명은 웹 데이터 과제 섹션에 나와 있습니다.
각 모범 사례는 Data on the Web Best Practices Use Cases & Requirements 문서 [DWBP-UCR]의 하나 이상의 요구 사항과 관련이 있으며, 이 문서는 모범 사례 개발의 지침이 되었습니다. 각 모범 사례는 그 관련성을 입증하는 하나 이상의 요구 사항을 근거로 삼고 있습니다.
몇 가지 모범 사례 적용에 대한 RDF 예시로 Turtle [Turtle] 또는 JSON-LD [JSON-LD]를 사용하여 보여줍니다.
웹은 개방형 정보 공간으로, 기업 내부 정보 시스템과 같은 특정 맥락이 존재하지 않으므로 메타데이터 제공은 기본 요구 사항입니다. 메타데이터가 충분하지 않으면 데이터 게시자 외에는 데이터의 검색이나 재활용이 불가능합니다. 메타데이터는 데이터 소비자가 데이터의 의미, 구조를 더 잘 이해할 수 있도록 돕는 추가 정보를 제공하며, 권리와 라이선스 조건, 데이터를 생성한 조직, 데이터 품질, 데이터 접근 방법, 데이터셋의 갱신 주기 등 여러 이슈를 명확하게 설명해줍니다. 게시자는 여러 언어로 사람이 읽을 수 있는 정보를 제공하고, 가능한 한 의도된 사용자가 이해할 수 있는 언어로 정보를 제공하는 것이 권장됩니다.
메타데이터는 데이터셋 검색 및 재활용 등 작업에 활용될 수 있으며, 특정 자원의 하나의 속성부터 전체 데이터셋, 특정 조직의 모든 데이터셋까지 다양한 수준의 세분성에 따라 지정될 수 있습니다. 또한 메타데이터는 다양한 유형이 있을 수 있고, 여러 분류 기준에 따라 다양한 분류 체계로 나눌 수 있습니다. 예를 들어, 특정 분류 체계는 설명(descriptive), 구조(structural), 관리(administrative) 특징에 따라 세 가지 메타데이터 유형을 정의할 수 있습니다. 다른 분류 체계는 메타데이터가 사용되는 작업(예: 검색, 재활용)에 따라 유형을 정의할 수도 있습니다.
모범 사례 1: 메타데이터 제공
사람 사용자와 컴퓨터 응용프로그램 모두를 위해 메타데이터를 제공하세요.
웹에서 데이터를 게시할 때 메타데이터 제공은 필수적입니다. 왜냐하면 데이터 게시자와 소비자는 서로 모를 수 있기 때문입니다. 따라서 사람 사용자와 컴퓨터 애플리케이션이 데이터를 이해하고, 데이터셋이나 배포판을 설명하는 다른 중요한 측면을 파악할 수 있도록 정보를 제공하는 것이 필수적입니다.
사람은 메타데이터를 이해할 수 있고, 컴퓨터 응용프로그램(특히 사용자 에이전트)은 이를 처리할 수 있습니다.
사람이 읽을 수 있는 메타데이터 제공 방식 예시:
기계가 읽을 수 있는 메타데이터 제공 방식 예시:
사람이 읽을 수 있는 메타데이터가 제공되는지 확인하세요.
올바른 기계 판독 포맷으로, 문법 오류 없이 메타데이터가 제공되는지 확인하세요.
관련 요구사항: R-MetadataAvailable, R-MetadataDocum, R-MetadataMachineRead
모범 사례 2: 설명 메타데이터 제공
데이터셋 및 배포판의 전체 특성을 설명하는 메타데이터를 제공하세요.
데이터셋의 설명 정보를 명시적으로 제공하면 사용자 에이전트가 웹에 공개된 데이터셋을 자동으로 탐색할 수 있으며, 사람도 데이터셋과 그 배포판의 특성을 이해할 수 있습니다.
사람은 데이터셋 및 배포판의 특성을 해석 가능하고, 소프트웨어 에이전트는 데이터셋과 배포판을 자동으로 탐색할 수 있습니다.
설명 메타데이터에는 다음과 같은 데이터셋 전체 특성이 포함될 수 있습니다:
설명 메타데이터에는 다음과 같은 배포판의 전체 특성이 포함될 수 있습니다:
설명 메타데이터의 기계 판독 버전은 데이터셋 설명에 W3C가 권장하는 Data Catalog Vocabulary [ VOCAB-DCAT]와 같은 어휘를 사용할 수 있습니다. 이를 통해 데이터셋을 추상적 엔터티로 기술하는 프레임워크를 제공합니다.
데이터셋 자체의 메타데이터에 데이터셋의 전체 특성이 사람이 읽을 수 있는 형식으로 포함되어 있는지 확인하세요.
설명 메타데이터가 올바른 기계 판독 포맷으로 제공되는지 확인하세요.
관련 요구사항: R-MetadataAvailable, R-MetadataMachineRead, R-MetadataStandardized
모범 사례 3: 구조적 메타데이터 제공
배포판의 스키마와 내부 구조를 설명하는 메타데이터를 제공하세요.
배포판의 내부 구조에 대한 정보를 제공하는 것은 데이터셋을 탐색하거나 질의하려는 이들에게 필수적이며, 데이터의 의미를 이해하는 데 도움이 됩니다.
사람은 데이터셋의 스키마를 해석할 수 있고, 소프트웨어 에이전트는 배포판을 자동으로 처리할 수 있습니다.
사람이 읽을 수 있는 구조적 메타데이터는 보통 데이터셋 스키마의 속성 또는 컬럼 정보를 제공합니다.
기계 판독 구조적 메타데이터는 특정 배포판의 포맷에 따라 별도의 문서로 제공할 수도, 문서 내에 삽입할 수도 있습니다. 상세 내용은 아래 링크를 참고하세요.
구조적 메타데이터가 사람이 읽을 수 있는 형식으로 제공되는지 확인하세요.
배포판의 메타데이터에 데이터셋의 구조 정보가 기계 판독 형식으로, 문법 오류 없이 포함되는지 확인하세요.
관련 요구사항: R-MetadataAvailable
라이선스는 웹 상의 데이터에 첨부할 수 있는 매우 유용한 정보입니다. 발행자가 채택한 라이선스 유형에 따라 데이터 공유 및 재사용에 대한 제한이 많거나 적을 수 있습니다. 웹 데이터 맥락에서 데이터셋의 라이선스는 메타데이터 내부 또는 별도의 문서(연결된 문서)에서 지정할 수 있습니다.
모범 사례 4: 데이터 라이선스 정보 제공
데이터 사용을 통제하는 라이선스 계약에 대한 링크 또는 사본을 제공하세요.
라이선스 정보의 존재는 데이터 소비자가 데이터 활용 가능성을 평가하는 데 필수적입니다. 사용자 에이전트는 라이선스 정보의 존재 유무를 잠재적 소비자에게 데이터를 포함 및 제외할지 결정하는 트리거로 삼을 수 있습니다.
사람은 특정 배포판 이용에 대한 제한 사항을 설명하는 데이터 라이선스 정보를 이해할 수 있고, 소프트웨어 에이전트는 배포판의 데이터 라이선스를 자동으로 탐지할 수 있습니다.
데이터 라이선스 정보는 사람이 읽을 수 있는 라이선스 계약에 대한 링크 또는 포함된 사본으로 제공할 수 있습니다. 또한, 기계가 읽을 수 있는 라이선스 계약의 링크 또는 포함된 사본으로 제공해 처리가 가능하도록 할 수도 있습니다.
라이선스를 연결할 수 있는 속성을 포함하는 아래 어휘 중 하나를 사용할 수 있습니다:
dct:license)cc:license)schema:license)xhtml:license)또한 다음과 같은 여러 기계 판독 권리 언어가 있습니다:
데이터셋 자체의 메타데이터에 사람이 읽을 수 있는 데이터 라이선스 정보가 포함되어 있는지 확인하세요.
사용자 에이전트가 데이터셋 라이선스를 자동으로 감지하거나 검색할 수 있는지 확인하세요.
관련 사용 사례: R-LicenseAvailable, R-MetadataMachineRead, R-LicenseLiability
웹은 비즈니스, 엔지니어링, 과학 커뮤니티를 연결하여 과거에는 상상할 수 없었던 협업 기회를 창출합니다. 웹 데이터 게시에서 도전 과제는 데이터의 출처에 대해 적절한 수준의 세부 정보를 제공하는 데 있습니다. 데이터 생산자는 반드시 데이터 게시자와 동일하지 않을 수 있으므로 해당 메타데이터를 수집·제공하는 것이 특히 중요합니다. 프로비넌스가 없으면, 소비자는 공유되는 데이터의 무결성과 신뢰성을 본질적으로 신뢰할 방법이 없습니다. 데이터 제공자는 잠재적인 소비자 커뮤니티의 요구를 인지하여 어느 정도의 프로비넌스 세부 정보가 적절한지 파악해야 합니다.
모범 사례 5: 데이터 프로비넌스 정보 제공
데이터의 출처와 변경 이력에 대한 완전한 정보를 제공하세요.
프로비넌스는 데이터셋 소비자가 품질을 판단하는 한 방법입니다. 데이터의 출처 및 이력을 이해하면 신뢰할 수 있는지 판단하고, 중요한 해석적 맥락을 제공합니다.
사람은 데이터셋의 출처와 이력을 알 수 있고, 소프트웨어 에이전트는 프로비넌스 정보를 자동으로 처리할 수 있습니다.
기계가 읽을 수 있는 데이터 프로비넌스는 정보 기술에 권장되는 온톨로지(예: W3C의 프로비넌스 온톨로지 [PROV-O])를 사용하여 제공할 수 있습니다.
데이터셋 자체의 메타데이터에 사람이 읽을 수 있는 프로비넌스 정보가 포함되어 있는지 확인하세요.
컴퓨터 응용프로그램이 데이터셋 프로비넌스 정보를 자동으로 처리할 수 있는지 확인하세요.
관련 요구사항: R-ProvAvailable, R-MetadataAvailable
데이터셋의 품질은 이를 활용하는 응용프로그램의 품질에 큰 영향을 줄 수 있습니다. 따라서 데이터 품질 정보를 데이터 공개 및 활용 과정에 포함하는 것이 매우 중요합니다. 보통 품질 평가는 여러 품질 차원별로 다양한 특성을 포함하며, 이는 게시자와 소비자 모두에게 관련성 있는 특성입니다. 데이터 품질 어휘는 각 품질 차원별 품질 평가를 위한 측정값(measure), 지표(metric) 등의 개념을 정의합니다 [VOCAB-DQV]. 특정 평가 상황에 맞는 휴리스틱도 있으며, 여기에는 데이터 내용, 데이터 메타정보, 그리고 일부 의도된 용도에 대한 적합도를 판단하는 인간의 평가 등이 포함될 수 있습니다.
모범 사례 6: 데이터 품질 정보 제공
데이터 품질과 특정 목적에 대한 적합성에 대한 정보를 제공하세요.
데이터 품질은 데이터가 생성된 원래 목적과 매우 다른 응용을 포함하여 특정 응용에 데이터를 활용할 수 있는지에 심각한 영향을 끼칠 수 있습니다. 데이터 품질을 문서화하면 데이터셋 선택 과정이 훨씬 쉬워지고 재사용 가능성이 올라갑니다. 도메인 특수성과 무관하게 데이터 품질은 반드시 문서화되어야 하며, 알려진 품질 이슈도 메타데이터에 명확히 기록해야 합니다.
사람과 소프트웨어 에이전트 모두 데이터셋의 품질을 평가하여 자신들의 응용에 적합한지 판단할 수 있게 됩니다.
데이터셋 품질 메타데이터의 기계 판독 버전은 DWBP 워킹 그룹이 개발한 데이터 품질 어휘 [VOCAB-DQV]를 사용해 제공할 수 있습니다.
데이터셋 자체의 메타데이터에 데이터 품질 정보가 포함되어 있는지 확인하세요.
컴퓨터 응용프로그램이 데이터셋 품질 정보를 자동으로 처리할 수 있는지 확인하세요.
관련 요구사항: R-QualityMetrics, R-DataMissingIncomplete, R-QualityOpinions
웹에 게시된 데이터셋은 시간이 지나면서 변경될 수 있습니다. 일부 데이터셋은 정기적으로 갱신되며, 다른 데이터셋은 데이터 수집이 향상됨에 따라 업데이트가 이뤄질 수 있습니다. 이러한 변경을 처리하기 위해 데이터셋의 새 버전이 생성될 수 있습니다. 하지만 언제 데이터를 새 데이터셋으로 간주해야 할지, 아니면 단순히 새 버전으로 봐야 할지에 대한 합의는 없습니다. 다음에서는 대부분의 제공자가 '기존 데이터셋의 새 버전'이라고 인정할 만한 몇몇 시나리오를 소개합니다.
일반적으로 시계열 또는 공간 시리즈를 나타내는 여러 데이터셋(예: 다른 지역이나 다른 연도의 동일 종류 데이터)은 동일 데이터셋의 여러 버전으로 간주하지 않습니다. 이 경우 각 데이터셋은 세상을 다른 시점·영역에서 관찰한 결과를 다루므로 모두 별개의 데이터셋으로 취급해야 합니다. 예를 들어, 특정 도시의 주간 일기 예보 데이터처럼, 매주 새로운 데이터셋이 생성되어 그 주의 예보 데이터만 저장한다면 각 주마다 별개의 데이터셋으로 봅니다.
시나리오 1, 2는 주로 주요 버전을 생성할 수 있으며, 시나리오 3은 주로 부 버전만 생성할 수 있습니다. 하지만 버전을 '주요'·'부'로 구분하는 논리보다 더 중요한 것은, 데이터 변경 시 반드시 버전 정보를 갱신한다는 점입니다. 사소한 변경이라도 데이터셋의 신뢰성을 위해 각기 다른 버전을 추적하여 관리하는 것이 중요합니다. 데이터 제공자는 특정 데이터셋을 여러 데이터 소비자가 활용하고 있을 수 있음을 인지하고, 새 버전 공개 시 해당 소비자에게 이를 알리도록 노력해야 합니다. 실시간 데이터의 경우 자동 타임스탬프를 버전 식별자로 쓸 수 있습니다. 각 데이터셋에 대해 일관되고, 이해하기 쉬운 버전 관리 방침을 적용해야 데이터 소비자가 변화하는 데이터셋을 이해·활용할 수 있습니다.
최고 권장사항 7: 버전 정보 제공
각 데이터셋에 대해 버전 번호 또는 날짜를 할당하고 명기하세요.
버전 정보는 데이터셋 개정본을 고유하게 식별해줍니다. 이 고유성 덕분에 데이터 소비자는 시간이 지나며 데이터가 어떻게, 얼마나 변경됐는지, 현재 사용하는 데이터셋이 어떤 버전인지 판단할 수 있습니다. 잘 관리된 데이터 버전 정보는 신버전 존재 여부도 손쉽게 파악하게 해줍니다. 명시적인 버전 관리 덕분에 연구 재현성, 데이터간 비교성, 혼동 방지 등이 가능해집니다. 표준화된 규칙에 따라 고유 버전 번호를 부여하면 각 버전간 차이에 대한 사용자의 이해 기대도 생겨납니다.
사람과 소프트웨어 에이전트 모두 자신이 사용 중인 데이터셋이 어떤 버전인지 쉽게 알 수 있습니다.
버전 관리 정보를 제공하는 최적 방안은 맥락마다 다르나, 다음과 같은 기본 지침이 있습니다:
웹 온톨로지 언어[OWL2-QUICK-REFERENCE] 및 Provenance, Authoring and Versioning Ontology [PAV]에서는 버전 정보에 쓸 수 있는 다양한 주석 속성을 제공합니다.
데이터셋/배포본의 메타데이터에 사람이 읽을 수 있는 형식의 고유 버전 번호 또는 날짜가 있는지 확인하세요.
프로그램(컴퓨터)이 자동으로 데이터셋/배포본의 고유 버전 번호 또는 날짜를 탐지/처리할 수 있는지 확인하세요.
관련 요구사항: R-DataVersion
최고 권장사항 8: 버전 이력 제공
각 버전별 변경 내역을 설명한 완전한 버전 이력을 제공하세요.
데이터를 활용한 응용프로그램을 개발할 때, 해당 데이터가 시간에 따라 어떻게 달라지는지 이해하는 것이 유용할 수 있습니다. 데이터의 동적인 변화까지 이해한다면 해석력이 더욱 높아집니다. 데이터셋의 여러 버전이 서로 어떤 점이 어떻게 달라졌는지 확인하려면 변경 요약이 없을 경우 매우 많은 노력이 듭니다.
사람과 소프트웨어 에이전트는 데이터셋이 버전별로 어떻게 변경되었으며, 특정 두 버전이 어떤 부분에서 차이가 나는지를 쉽게 이해할 수 있습니다.
게시된 버전들의 목록과, 각 버전이 이전 버전과 어떻게 다른지 설명한 변경 요약을 함께 제공하세요. 하나의 전용 URL에서 최신 전체 이력을 조회할 수 있게 하는 API도 구현할 수 있습니다.
게시된 버전 목록과 각 버전이 이전 버전과 어떻게 다른지 자세하게 설명한 변경기록(Q로그)이 함께 제공되는지 확인하세요.
관련 요구사항: R-DataVersion
식별자는 다양한 형태로 존재하며 모든 정보 시스템에서 광범위하게 사용됩니다. 웹상의 데이터 탐색, 활용, 인용은 근본적으로 HTTP(또는 HTTPS) URI―즉, 인터넷에서 디리퍼런싱해 조회 가능한 전역 고유 식별자―의 사용에 의존합니다[RFC3986] . 이 맥락에서 URI에 대해 강조할 만한 몇 가지 핵심 사항이 있습니다.
최고 권장사항 9: 데이터셋 식별자로 영구 URI 사용
각 데이터셋을 신중히 설계된 영구 URI로 식별하세요.
공통 식별 시스템을 도입하면 이해관계자 누구나 신뢰성 있게 기본 데이터 식별·비교를 수행할 수 있습니다. 이는 적절한 데이터 관리와 재사용을 위한 필수 전제조건입니다.
개발자는 코드에 URI를 직접 내장할 수 있으므로, 해당 URI가 오랜 기간 변경되지 않고, 항상 동일 리소스를 가리키도록 하는 것이 중요합니다.
데이터셋 자체나 해당 정보는 데이터 상태, 가용성, 형식과 무관하게 오랜 시간 탐색과 인용이 가능합니다.
URI를 영구적으로 사용하려면 설계 시부터 이를 고려해야 합니다. 관련 자료가 매우 많으며, 예시로 유럽연합 "영구 URI에 관한 연구"[PURI]는 여러 참고 자료를 제공합니다.
발행자가 영구성을 직접 관리할 URI 공간을 확보할 수 없다면, Permanent Identifiers for the Web이나 purl.org 같은 리디렉션 서비스를 활용할 수 있습니다. 이런 서비스를 통해 발행 위치가 바뀌더라도 리디렉션으로 언제든 연결 가능합니다. 해당 서비스의 소프트웨어는 자유롭게 설치·운영할 수도 있습니다.
DOI(Digital Object Identifier)도 대안이 될 수 있습니다. DOI는 웹 기술과 독립적으로 정의되지만, 'URI stub'와 결합해 활용이 가능합니다. DOI는 연구 데이터와 도서관 등 디지털 인프라에서 매우 중요한 역할을 합니다.
모든 데이터셋이 영구적 사용을 염두에 두고 설계된 URI로 식별되는지 확인하세요. 이상적으로는 해당 사이트에서 URI 구조 설계 방식을 공개하고, 발행자가 유지 관리를 못하더라도 장기 유지 방안(공약)이 명시되어야 합니다.
관련 요구사항: R-UniqueIdentifier, R-Citable
최고 권장사항 10: 데이터셋 내부 식별자에 영구 URI 활용
가능한 한, 다른 사람이 발행한 URI를 데이터셋 내 식별자로 재사용하세요.
웹의 힘은 네트워크 효과에 있습니다. 전화기가 두 대가 돼야 통화가 가능하고, 세 대가 되면 가치는 더 커지는 것처럼, 데이터도 동일 사물·장소·개념·이벤트·인물 등에 대해 타인의 데이터와 상호 참조되면 가치가 커집니다. 즉, 여러 데이터셋이 동일한 식별자를 사용하고, 내 식별자가 타 데이터셋에서도 참고될 수 있어야 합니다. 이 식별자가 HTTP URI라면 조회와 데이터 연계까지 가능합니다.
이러한 개념은 5성급 링크드 데이터의 핵심이기도 하며, 하이퍼미디어에서 링크가 추가 데이터나 관련 서비스를 가리키는 원리와도 맞닿아 있습니다.
이것이 곧 "데이터의 웹"입니다.
웹 전반에서 데이터 항목이 상호 연계되어, 사람과 기계 모두 접근 가능한 글로벌 정보 공간이 구축됩니다.
이 주제는 워낙 광범위해 본 문서에서는 개략만 다룹니다.
개발자는 자신이 풀려는 문제의 해결책이 이미 타인에 의해 구현된 경우가 많다는 점을 잘 압니다. 마찬가지로, 국가, 통화, 학문분야, 종, 단백질, 도시, 지역, 노벨상 수상자, 상품 등 분명한 주제의 식별자 셋이 이미 존재할 가능성이 높습니다. 기존 어휘 찾기 절차 [LD-BP]도 참고 가능합니다.
요구에 부합하는 식별자집이 없다면, 직접 새로 설계해야 하며, 다른 이들이 내 데이터를 링크해 부가가치를 올릴 수 있도록 URI 영속성 규칙을 준수해야 합니다.
데이터셋 내에서 국가, 지역, 조직, 인물 등 변화가 거의 없거나 아주 느린 대상을 참조할 때 URI 혹은 URI stub(에 붙일 수 있는 짧은 식별자)로 표현됐는지 확인하세요. 이들 URI가 반드시 실제로 웹에서 해석(resolve)될 필요는 없으나, 글로벌 변수로서의 가치는 여전합니다.
관련 요구사항: R-UniqueIdentifier
최고 권장사항 11: 데이터셋 버전 및 시리즈에 URI 부여
개별 데이터셋 버전 및 전체 시리즈에도 각각 전용 URI를 부여하세요.
문서와 마찬가지로 많은 데이터셋은 자연스러운 시리즈(군)로 묶입니다. 예:
각 사례마다, 현재 상태(현행 버스 정류장, 현직 공무원 등)에 대한 참조가 필요할 때가 있고, 과거 특정 시점 시나리오에 대한 참조가 더 적절할 수도 있습니다.
사람과 소프트웨어 에이전트는 특정 데이터셋 버전, '데이터셋 시리즈', '최신 버전' 같은 개념을 분명히 참조 가능해집니다.
W3C 문서 버전 관리를 좋은 예로 들 수 있습니다.
(영구) URI https://www.w3.org/TR/2016/PR-dwbp-20161215/는 해당 일자 문서의 스냅샷입니다. '최신 버전'용
URI https://www.w3.org/TR/dwbp/는 일련의 유사 문서군을 가리키며, 향후 문서가 갱신될 때마다 '최신버전' URI는 갱신된
문서로 포워딩되고, 일자형 URI는 불변입니다.
각 데이터셋 버전에 개별 URI가 있고, '최신 버전'용 URI도 함께 있는지 확인하세요.
관련 요구사항: R-UniqueIdentifier, R-Citable
데이터를 어떤 형식으로 제공하느냐는 데이터의 활용 가능성에 있어 매우 중요한 요소입니다. 아무리 좋은, 유연한 접근 메커니즘도 실제로 데이터를 사용 및 재사용이 가능한 형식으로 제공하지 않으면 쓸모가 없습니다. 아래에서는 데이터의 형식을 선정할 때 파일 수준과 개별 필드 수준 양쪽 모두에 대한 모범 사례를 상세히 설명합니다. W3C는 가능한 한 많은 사용자와 컴퓨터 시스템에서 쉽게 처리할 수 있는 형식의 사용을 권장합니다. 데이터베이스 덤프나 스프레드시트 등 최종 공개 형식을 생성하기 위한 소스 형식은 본 문서의 범위에서 제외됩니다. 이 문서는 실제로 공개되는 데이터와 관련된 사항을 다루며, 공개 데이터를 생성하기 위해 내부적으로 사용하는 시스템에는 관여하지 않습니다.
모범 사례 12: 기계가 읽을 수 있는 표준화된 데이터 형식 사용
데이터의 의도된 용도나 잠재적 사용에 적합한, 기계가 읽을 수 있는 표준화된 데이터 형식으로 데이터를 제공하세요.
데이터가 점점 더 보편화되고 데이터셋의 크기와 복잡성이 증가하면서, 컴퓨터를 통한 데이터 처리의 중요성은 더욱 커지고 있습니다. 기계 가독성이 없는 형식으로 데이터를 게시하면 데이터의 활용도에 심각한 제한이 생깁니다. 데이터는 처리되어 정보로 변환될 때 가치를 얻습니다. 참고로, 컴퓨터로 읽고 수정할 수 있는 형식과 진정한 의미의 기계 가독성을 갖는 형식은 다릅니다. 후자는 데이터가 컴퓨터에 의해 쉽게 추출, 변환, 처리될 수 있음을 의미합니다.
비표준 데이터 형식은 비용과 비효율성을 초래하며, 데이터가 변환 과정에서 의미를 잃을 수도 있습니다. 반면 표준화된 데이터 형식은 상호운용성과 미래 활용(리믹스, 시각화 등)을 가능하게 하며, 많은 경우 공개 당시에는 예측하지 못한 활용 케이스까지 지원할 수 있습니다. 대부분의 기계 가독 표준 형식은 지역 중립적이라는 것도 주목할 필요가 있습니다.
웹에 공개된 데이터를 기계가 쉽게 읽고 처리할 수 있으며, 사람도 해당 분야에서 일반적으로 사용되는 컴퓨터 도구를 활용하여 데이터를 손쉽게 다룰 수 있게 됩니다.
CSV, XML, HDF5, JSON 및 RDF 직렬화 문법(RDF/XML, JSON-LD, Turtle 등)을 포함하되 이에 제한하지 않고, 쉽게 파싱 가능한 표준 기계가독 데이터 형식으로 데이터를 제공하세요.
데이터 형식이 잘 알려진 기계가독 데이터 형식 명세를 준수하는지 확인하세요.
관련 요구사항: R-FormatMachineRead, R-FormatStandardized R-FormatOpen
모범 사례 13: 지역 중립적 데이터 표현 사용
지역 중립적 데이터 구조와 값을 사용하거나, 불가능할 경우 데이터 값에 사용된 지역 정보의 메타데이터를 제공하세요.
기계가독성이면서 특정 언어나 문화에 치우치지 않은 데이터 값은 각각의 문화권 표현을 사용하는 값보다 더 오래 유지되며 오해의 여지도 적습니다. 날짜, 통화, 숫자 등은 비슷해 보이지만 지역에 따라 의미가 달라질 수 있습니다. 예를 들어, '날짜' 4/7은 데이터가 생성된 위치에 따라 4월 7일 또는 7월 4일로 읽힐 수 있습니다. 마찬가지로, €2,000 은 2천 유로이거나 2유로를 과도하게 자세하게 표현한 것일 수 있습니다. 지역 중립적 형식을 사용하면 사용자의 언어나 위치에 따라 달라지는 교환 규칙을 따로 정할 필요가 없습니다. 이미 지역 특화 형식으로 된 데이터라면, locale 파라미터를 제공하여 해당 데이터의 지역과 언어를 명확히 표시하면 사용자가 데이터 활용 가능성을 결정하고 자동 번역 서비스 활용도 할 수 있습니다.
사람과 소프트웨어 에이전트 모두 날짜, 시간, 통화, 숫자 등의 표기가 의미하는 바를 정확히 해석할 수 있습니다.
대부분의 일반적인 데이터 직렬화 형식은 지역 중립적입니다. 예를 들어, XML 스키마 타입 xsd:integer,
xsd:date 등은 지역 중립적인 데이터 교환을 위한 것입니다. 지역 중립적 표현을 사용하면 복잡한 파싱이나 오해 걱정 없이 값을 정확하게 처리할
수 있고, 데이터 소비자 환경에 맞는 표기로도 쉽게 보여줄 수 있습니다. 예를 들어, "€2000,00"을 문자열로 저장하기보다 아래와 같은 데이터 구조로 교환하는 것이
강력히 권장됩니다:
…
"price" {
"value": 2000.00,
"currency": "EUR"
}
…
일부 데이터셋에는 지역 중립적으로 전환할 수 없는 값이 있을 수 있습니다. 특히 자연어 텍스트 값이 그런 경우입니다. 지역/언어에 따라 달라지는 데이터를 위한 각 필드에는 해당 언어와 지역을 표시하는 언어 태그가 필요합니다. 이 정보는 데이터 파싱, 데이터 소비자 측의 올바른 표시 및 처리를 도와줍니다. BCP47 [BCP47]은 언어와 지역 식별 표준이고, CLDR [CLDR]은 특정 로케일 포맷 및 참조값의 소스 역할을 합니다.
로케일 영향을 받는 데이터 값이 지역 중립적으로 표현되었는지, 아니면 그렇지 않으면 관련 지역 메타데이터가 제공되는지 확인하세요.
관련 요구사항: R-FormatLocalize, R-MetadataAvailable, R-GeographicalContext, R-FormatMachineRead
모범 사례 14: 다양한 형식의 데이터 제공
의도된 혹은 잠재적 용도에 여러 형식이 적합할 때는 데이터를 복수 형식으로 제공하세요.
두 가지 이상 형식으로 데이터를 제공하면 데이터 변환에 소요되는 비용이 줄어듭니다. 또한 변환 과정에서 오류가 생길 가능성도 최소화됩니다. 많은 사용자가 특정 형식으로 데이터를 변환해야 한다면, 처음부터 해당 형식으로도 공개하는 것이 시간과 비용을 절약하며, 오류 발생 가능성을 여러 번 줄여줍니다. 마지막으로, 데이터를 처리할 수 있는 도구와 응용프로그램의 수도 증가합니다.
최대한 많은 사용자가 데이터를 자신이 선호하는 형식으로 변환하지 않고 바로 사용할 수 있게 됩니다.
필요 가능성이 높은 데이터 형식을 고려하고, 미래에 유용할 법한 대안도 염두에 두세요. 데이터 제공자는 여러 형식으로 제공하는 데 드는 노력과 그 효과 간의 균형을 맞춰야 합니다. 최소 한 개의 대안 형식만 추가로 제공해도 데이터의 활용성은 크게 늘어납니다. 여러 형식으로 데이터를 제공하려면 모범 사례 – 다중 형식용 콘텐츠 협상(Content Negotiation)에서 설명한 방법을 활용할 수 있습니다.
참고: 데이터셋 내의 로컬 식별자(local identifier)는 URI의 fragment로 노출될 수 있으므로 형식 간 일관성이 반드시 유지되어야 합니다.
전체 데이터셋이 두 가지 이상 데이터 형식으로 제공되는지 확인하세요.
관련 요구사항: R-FormatMultiple
어휘(vocabulary)는 특정 주제를 설명하고 표현하는 데 사용되는 개념과 관계(“용어” 또는 “속성”이라 불리기도 함)를 정의합니다. 이들은 특정 응용에서 사용될 수 있는 용어들을 분류하고, 가능한 관계 유형을 규정하며, 해당 용어 사용에 대한 제약 조건도 정의합니다. ‘어휘’와 비슷한 의미로 온톨로지, 통제 어휘, 시소러스, 분류체계, 코드 목록, 시맨틱 네트워크 등 여러 용어가 쓰이기도 합니다.
이들 명칭이 가리키는 산출물 사이에 엄격한 구분은 없습니다. 다만 “온톨로지”는 (링크드) 데이터셋의 자원 설명을 구조화하는 클래스와 속성의 어휘를 일컫는 경우가 많습니다. 관계형 데이터베이스에서는 테이블과 칼럼 이름에 해당하고, XML에서는 XML 스키마로 정의된 요소에 해당합니다. 온톨로지는 시맨틱 웹에서 추론 기법의 핵심 빌딩 블록입니다. W3C가 온톨로지 생성을 위해 최초로 제공한 수단은 RDF 스키마 [RDF-SCHEMA] 언어입니다. 또한 Web Ontology Language [OWL2-OVERVIEW]와 같은 언어들로 더 표현력이 풍부한 온톨로지를 정의할 수 있습니다.
반면 “통제 어휘”, “개념 체계”, “지식 조직 시스템”은 앞서 언급한 어휘(즉, (링크드) 데이터셋의 자원 설명 구조화에 쓰이는 어휘)로 기술되는 설명에 활용될 자원을 나열하고 정의합니다. 예를 들어 시소러스의 개념 “건축(architecture)”은 책 설명의 주제 필드에서(이때 “주제”는 도서 온톨로지에 정의됨) 사용됩니다. 이러한 어휘의 용어를 정의할 때 복잡한 형식을 쓸 필요가 없는 경우가 많으므로, ISO 25964 데이터 모델 [ISO-25964]이나 W3C의 Simple Knowledge Organization System [SKOS-PRIMER] 같은 더 단순한 모델들이 제안되어 사용됩니다.
모범 사례 15: 어휘 재사용(가능하면 표준화된 어휘 사용)
데이터와 메타데이터를 인코딩할 때, 반드시 공유된(가능하면 표준화된) 어휘의 용어를 활용하세요.
이미 다른 곳에서 사용되는 어휘를 활용하면 커뮤니티 내 합의를 포착하고 확산하는 데 기여합니다. 상호운용성은 높이고 중복은 줄여 데이터 재사용을 장려할 수 있습니다. 특히 메타데이터(구조, 출처, 품질, 버전 등)에서 공유 어휘를 쓸 경우 데이터와 메타데이터의 비교 및 자동 처리가 쉬워집니다. 또한, 표준의 코드/용어를 참조하면 비슷한 요소/값 간의 모호성이나 충돌도 예방할 수 있습니다.
데이터 게시자와 소비자 사이의 상호운용성과 합의가 높아집니다.
W3C의 링크드 데이터 출판 모범 사례 [LD-BP]의 어휘(Vocabularies) 절은 기존 어휘의 탐색, 평가, 선택에 관한 지침을 제공합니다.
OGC(Open Geospatial Consortium), ISO, W3C, WMO, 도서관, 연구 데이터 서비스 등은 모두 공용 코드, 용어, Linked Data 어휘 목록을 제공합니다. 핵심은 데이터셋/문서에서 사람이든 기계든 그 값의 표준화된 의미를 파악할 수 있는 충분한 맥락 정보를 제공해야 한다는 점입니다. 웹에서는 표준 어휘 리소스의 명확한 웹 식별자(URI)를 활용하면 효율적입니다(같은 URI에 다국어 레이블을 부여해 더 나은 국가 간 상호운용성도 가능). EU의 다국어 시소러스인 Eurovoc가 대표적입니다.
Linked Open Vocabularies 저장소 같은 어휘 저장소와, 기술별 모범 사례(Best Practices for Publishing Linked Data [LD-BP] 등), 혹은 RDFa 및 JSON-LD 코어 초기 컨텍스트에서 언급된 서비스 리스트를 참고하여, 데이터셋을 표현하는 클래스, 속성, 용어, 요소, 속성 등이 타 데이터셋에서 쓰이는 어휘 정의를 중복하지 않는지 확인하세요.
사용하려는 어휘 내 용어/코드가 IETF, OGC, W3C 등 표준기구나 정부기관 등 권위를 갖춘 곳에서 정의/공개되어 있는지도 점검하세요.
관련 요구사항: R-MetadataStandardized, R-MetadataDocum, R-QualityComparable, R-VocabOpen, R-VocabReference
모범 사례 16: 적합한 형식화 수준 선택
데이터와 대표적 응용에 알맞은 형식적 의미 수준(formal semantics level)을 선택하세요.
아인슈타인이 그랬듯, 모든 것은 최대한 단순하게 만들되 더 단순하지 않게 하라는 말이 있습니다.
형식적 의미 부여(formal semantics)는 명확한 명세를 통해 의미를 정확하게 전달하며, 복잡한 어휘(온톨로지)를 쓰면 자동추론 등 고급작업의 기반이 될 수 있습니다. 단 복잡한 어휘는 작성과 이해가 어렵고, 재사용·비교·타 데이터셋 연동에 장애가 될 수도 있습니다.
데이터가 충분히 풍부해서 예) “A B C가 참이고 D는 거짓일 때 E가 유도됨” 같은 복잡한 질문을 지원한다면 OWL Profile [OWL2-PROFILES] 같은 것이 알맞습니다.
하지만 버스 정류장 목록 같은 단순 데이터에는 그만한 복잡성이 필요 없습니다.
매우 단순한 어휘 선택이 매력적이지만, 너무 단순화하다가 지리정보처럼 지도 표시에 필수인 중요한 데이터를 빼먹을 위험이 있습니다. 핵심은 단순히 데이터를 공유하는 데서 그치지 않고 타인 재사용까지 고려해 균형을 잡는 것입니다.
필요 이상 복잡하지 않게, 가장 유력한 응용사례들을 지원하게 됩니다.
동료들이 이미 뭘 쓰는지 보세요. 대개 현재 요구와 맞거나 거의 맞는 어휘가 있을 겁니다―그걸 쓰는 게 좋습니다.
마음에 드는 어휘가 도메인/범위 제약 등 내 케이스에 안 맞는 제한을 가진 경우, 어휘 발행자에게 연락해 해소할 수 있는지 문의해보세요. 보통 제한을 풀거나 더 다양한 활용사례 가이드도 받을 수 있습니다.
W3C는 public-vocabs@w3.org [archive]에서 어휘 사용/개발 관련 토론을 진행합니다.
직접 어휘를 만든다면, 의미적 제약(제한)을 최소화하여 타인이 재사용 가능성을 높이세요. 예를 들어 SKOS(가장 널리 쓰이는 온톨로지 중 하나) 설계자들은 제안된 형식적
공리 대부분을 비판적으로 바라보고, 많은 경우 응용과 충돌 가능성을 우려해 도입하지 않았습니다. 예) skos:broader 속성은 많은 시소러스에서
위계 링크를 정의하는 데 적합함에도 불구하고, 전이적(transitive) 성질은 정의하지 않았습니다 [SKOS-DESIGN 참조]. 이런 '광폭 설계(design for wide use)' 내역을
고려해서 어휘를 선택하세요.
이런 ‘광폭 설계’ 예로 schema.org도 있습니다. 2011년 등장한 schema.org는, 타입의 사용가능
대상(프로퍼티의 사용 범위 등)을 규정할 때 강제보다 안내(권장, informative approach)를 해 폭발적으로 채택되었습니다. 예) author 속성의 값은 Organization 혹은
Person이어야 한다고 기대(expect)할 뿐, 실제로는 CreativeWork 등에서도 사용할 수 있고 엄격 제약이
아닙니다. 이런 설계 덕분에 schema.org는 데이터 공유용 어휘로 좋은 선택이 됩니다.
이는 대부분 주관적 판단의 영역이며, 객관적 테스트는 거의 없습니다. 일반적 기준을 들자면:
관련 요구사항: R-VocabReference, R-QualityComparable
웹에서 데이터에 쉽게 접근할 수 있도록 하면 사람과 기계 모두 웹 인프라를 이용한 데이터 공유의 이점을 활용할 수 있습니다. 기본적으로 웹은 HTTP(Hypertext Transfer Protocol) 방식을 통한 접근을 제공합니다. 이것은 데이터에 원자적 트랜잭션 수준에서 접근할 수 있게 합니다. 이는 파일을 간단히 일괄 다운로드하는 방식일 수도 있고, 데이터가 여러 파일에 분산되어 있거나 더 정교한 검색 방식이 필요한 경우에는 API를 통해 이루어집니다. 두 가지 기본 방법, 즉 일괄 다운로드와 API는 상호 배타적이지 않습니다.
일괄 다운로드 방식을 사용하는 경우, 데이터는 일반적으로 서버 측에서 미리 처리되어 여러 파일이나 디렉토리 트리 전체를 하나의 다운로드 가능한 파일로 제공합니다. 비파일 시스템 솔루션에서 대용량 데이터를 가져올 때, 데이터 사용자 커뮤니티에 따라 제공자는 일련의 검색 작업을 지원하기 위한 API를 제공할 수도 있습니다.
실시간 또는 거의 실시간으로 생성되는 데이터의 경우, 정보 제공자는 자동화 시스템을 활용하여 긴급 정보, 기상 예측 데이터, 시스템 모니터링 메트릭 등 시간에 민감한 데이터에 즉시 접근할 수 있도록 해야 합니다. 일반적으로 API는 제삼자가 이러한 데이터를 자동으로 검색하고 검색할 수 있도록 제공되어야 합니다.
API는 실시간 데이터 파이프라인을 자동화하는 것 외에도 웹의 모든 종류의 데이터에 적합합니다. 다운로드를 위한 파일 게시보다 보통 더 많은 작업이 필요하지만, 정보 제공자들은 점점 더 잘 문서화되고 표준 기반의 안정적인 API를 제공하는 것이 그만한 가치가 있다고 판단하고 있습니다.
일부 데이터 제공자에게는 누가 데이터를 다운로드했는지, 그리고 어떻게 사용했는지가 중요할 수 있습니다. 이 정보를 수집하는 방법은 두 가지가 있습니다. 첫째, 제공자는 사용자가 자발적으로 정보를 제공하도록 권장할 수 있습니다. 사용자가 정보를 제공할 동기는 데이터의 지속적인 공개를 독려하고 자신의 연구를 알릴 수 있기 때문입니다. 두 번째, 덜 사용자 친화적인 방법으로는, 데이터 접근 전에 반드시 등록하도록 요구할 수 있습니다. 두 경우 모두, Dataset Usage Vocabulary [VOCAB-DUV]를 활용하여 이러한 정보를 표현할 수 있습니다. 사용자의 정보를 수집할 때, 제공자는 그 정보를 왜, 어떻게 사용할 것인지(명시적으로든 암시적으로든) 설명해야 합니다. 명확한 정책 없이 정보를 요청하면 사용자가 정보를 제공하는 것을 꺼릴 수 있으며, 결국 데이터셋의 가치가 떨어질 수 있습니다.
최고 권장 사항 17: 일괄 다운로드 제공
소비자가 한 번의 요청으로 전체 데이터셋을 가져올 수 있도록 합니다.
웹 데이터가 여러 URI에 분산되어 있지만 논리적으로 하나의 컨테이너로 구성될 수 있는 경우, 데이터를 일괄적으로 접근하는 것이 유용할 수 있습니다. 일괄 접근은 데이터를 하나의 데이터셋으로 다루기 위한 일관된 방법을 제공합니다. 여러 요청을 통해 개별적으로 데이터를 접근하면 번거로울 수 있고, 전체 데이터셋을 재구성하는 경우 데이터 처리 방식의 일관성이 떨어질 수 있습니다.
일반 사용자가 합리적이라고 생각하는 시간보다 더 오래 걸리는 대용량 파일 전송도 전용 파일 전송 프로토콜을 통해 가능하게 됩니다.
데이터의 성격과 소비자의 필요에 따라 다음과 같은 방식이 포함될 수 있습니다:
일괄 다운로드에는 데이터셋을 설명하는 메타데이터도 포함해야 합니다. 발견 메타데이터[VOCAB-DCAT]는 일괄 다운로드 외부에도 제공해야 합니다.
전체 데이터셋을 한 번의 요청으로 가져올 수 있는지 확인합니다.
관련 요구 사항: R-AccessBulk
최고 권장 사항 18: 대용량 데이터셋에 대한 부분집합 제공
데이터셋이 크다면, 사용자와 애플리케이션이 데이터를 쉽게 활용할 수 있도록 유용한 부분집합을 제공하세요.
대용량 데이터셋은 이동이 어렵고, 사용자가 데이터를 저장하거나 파싱하는 데도 불편할 수 있습니다. 사용자가 데이터셋 전체가 아니라 필요한 부분만 다운로드할 수 있어야 합니다. 또한 웹 애플리케이션이 대용량 데이터셋을 활용할 때 "지연 로딩" 방식을 적용하면 전체 데이터를 한꺼번에 불러오는 대신 필요한 부분을 그때그때 가져와 성능이 개선됩니다. 데이터의 부분집합을 활용하면 오프라인 처리도 훨씬 효율적으로 이뤄질 수 있습니다. 특히 실시간 애플리케이션은 더 빠르게 업데이트할 수 있어 큰 이점을 얻습니다.
사람과 애플리케이션은 전체 데이터셋 대신 자신에게 필요한 부분집합만 효율적으로 접근할 수 있게 됩니다. 도메인 내에서 사용자가 너무 크다고 여기는 정적 데이터셋은 더 작은 단위로 다운로드 가능해야 합니다. API는 데이터의 슬라이스 또는 필터링된 부분집합을 제공해야 하며, 그 세분화 수준은 도메인 및 웹 애플리케이션 성능 요구에 따라 결정해야 합니다.
데이터셋의 예상 사용사례를 고려하여 어떤 유형의 부분집합이 가장 유용할지 판단해야 합니다. API는 일반적으로 부분집합 데이터를 제공하는 가장 유연한 방식으로, 전송할 데이터의 커스터마이즈가 가능해 어떤 상황에서도 필요한 데이터만 받을 수 있게 합니다. 세분화 수준은 웹 애플리케이션 접근 속도에 적합해야 합니다. (예: API 호출이 1초 내 응답된다면 자연스러운 상호작용이 가능, 10초 이상 걸리면 사용자는 실패로 인식할 수 있습니다.)
데이터셋을 작은 단위로 나눈 후, 그 단위를 개별적으로 다운로드하거나 조회할 수 있도록 하는 것도 하나의 방법입니다.
또한 데이터셋 내부에 각 섹션(또는 예상 사용 목적에 따라 더 작은 단위)에 별도의 처리가 가능하도록 마크업을 추가하는 것도 도움이 됩니다. 예를 들어 RDF Data Cube Vocabulary를 사용해 "슬라이스"를 표시하는 방법이 있습니다.
작은 단위를 여러 번 요청해서 전체 데이터셋을 복원할 수 있는지 확인합니다.
관련 요구 사항: R-Citable, R-GranularityLevels, R-UniqueIdentifier, R-AccessRealTime
최고 권장 사항 19: 여러 형식으로 제공되는 데이터의 콘텐츠 협상 사용
여러 형식으로 데이터 제공 시, 파일 확장자 외에 콘텐츠 협상도 활용하세요.
예를 들어 RDFa를 사용하면, 사람과 기계가 읽을 수 있는 데이터를 혼합한 HTML 페이지에서 데이터를 제공할 수 있습니다. 하지만 웹 아키텍처[WEBARCH]와 DCAT [VOCAB-DCAT]가 명확히 하듯, 데이터셋과 같은 리소스는 여러 개의 표현(representation)을 가질 수 있습니다. 동일한 데이터가 JSON, XML, RDF, CSV, HTML 등 여러 형식으로 제공될 수 있습니다. 이러한 다중 표현은 API를 통해 제공될 수도 있지만, 동일한 URL을 사용하여 콘텐츠 협상을 통해 적절한 표현(DCAT에서 distribution이라 부름)을 반환할 수 있어야 합니다. 각 표현별로 직접 접근이 필요하다면 구체적 URI를 지정할 수도 있습니다.
콘텐츠 협상을 통해, 클라이언트의 요청에 따라 다양한 리소스 또는 동일 리소스의 다양한 표현을 제공할 수 있습니다.
실현 방법은 웹서버를 설정하여 요청된 자원의 콘텐츠 협상 기능을 활성화하는 것입니다.
자원의 구체적 표현 형식은 URI 또는 HTTP 요청의 Content-type을 통해 접근할 수 있습니다.
리소스의 사용 가능한 표현을 확인하고, HTTP 요청 헤더에서 허용하는 콘텐츠 형식을 지정해 가져올 수 있는지 점검합니다.
관련 요구 사항: R-FormatMachineRead, R-FormatMultiple
최고 권장 사항 20: 실시간 접근 제공
데이터가 실시간으로 생성될 때, 이를 웹상에서 실시간 또는 근실시간으로 제공해야 합니다.
실시간 데이터가 웹에 존재하면 시점에 민감한 중요한 데이터에 접근이 가능하고, 실시간 웹 애플리케이션 개발을 촉진할 수 있습니다. 실시간 접근은 실시간 데이터 생산자가 데이터를 즉시 데이터 제공자에게 전달해야 가능하며, 특정 애플리케이션의 실시간 접근 필요성은 새로고침 주기, 데이터 후처리로 인한 지연, 인프라 가용성, 소비자 요구 데이터 등을 고려해 개별적으로 평가해야 합니다. 데이터 접근성 외에도, 제공자는 데이터 누락, 오류 및 이상, 발행 지연에 관한 추가 정보를 제공할 수 있습니다.
애플리케이션이 실시간(데이터 생성 후 수 밀리초~몇 초 이내) 또는 근실시간 데이터에 접근할 수 있게 됩니다.
정보 제공자가 웹 서비스를 구성하여 실시간 데이터가 도착하면 즉시 소비자가 polling 또는 streaming으로 받을 수 있게 하는 방법입니다.
소비자가 데이터를 자주 확인하지 않을 때는 API를 통해 소비자 요청 시 가장 최신 데이터를 polling 방식으로 읽도록 할 수 있습니다. 정보 제공자는 이러한 조회(read-only) 요청을 위해 API를 제공합니다.
소비자가 데이터를 자주 확인한다면, 데이터가 API를 통해 실시간으로 push되는 streaming 데이터 구현이 더 적합할 수 있습니다. 스트리밍 기술에는 Server-sent Events, WebSocket, EventSourceAPI 등 여러 표준 프로토콜이 있습니다.
관련 요구 사항: R-AccessRealTime
최고 권장 사항 21: 최신 데이터 제공
데이터를 항상 최신 상태로 제공하고, 업데이트 빈도를 명확히 하십시오.
웹에서 데이터의 제공 시점이 데이터의 생성 또는 수집 시점과 최대한 가깝게 맞춰져야 하며, 필요에 따라 처리나 변경이 이뤄질 수 있습니다. 데이터 발행을 업데이트 주기와 일치시키면 소비자의 신뢰와 데이터 재사용이 촉진됩니다.
웹상의 데이터는 적시에 업데이트되어, 온라인으로 접근 가능한 최신 데이터가 다른 어떤 채널로 공개되는 최신 데이터와 대체로 일치하게 됩니다. 새 데이터가 생성되면, 최대한 빨리 웹에 공개됩니다.
정기적으로 데이터셋의 새 버전을 웹에 게시하는데, 이때 데이터 버전 관리 최고 권장사항을 따라야 합니다. 웹 게시를 데이터 새 버전 출시 절차의 일부로 포함하거나 담당자를 지정하면 데이터가 구버전으로 머무르는 것을 방지할 수 있습니다. 앞으로의 업데이트에 대한 기대치를 명확하게 하기 위해 업데이트 빈도를 명시한 텍스트와, 빈도를 표시한 기계 판독 가능한 메타데이터를 함께 제공할 수 있습니다.
업데이트 빈도가 명시되어 있으며, 웹상에 가장 최근 공개된 버전이 명시된 업데이트 주기 내임을 확인합니다.
관련 요구 사항: R-AccessUptodate
이용할 수 없는 데이터에 대해, 접근 방법과 접근 가능한 주체에 대한 설명을 제공하십시오.
제공 불가 데이터에 대한 온라인 문서화를 공개하면, 데이터 제공자가 명시적으로 지식 격차(knowledge gap)를 알릴 수 있습니다. 이는 소비자 커뮤니티에 맥락적 설명을 제공해, 이용 가능한 데이터 활용을 장려합니다.
소비자는 현재 데이터셋에서 참조된 데이터가 이용 불가이거나, 다른 조건 하에만 이용 가능함을 명확하게 인지하게 됩니다.
기계/사람 맥락에 따라 다양한 제공불가 표시 방법이 있습니다. 데이터 제공자는 HTML 문서로 사람이 읽을 수 있는 설명을 제공할 수 있습니다. 기계 인터페이스에서는 관련 HTTP 상태 코드와 맞춤형 메시지를 사용할 수 있습니다. 예시: 303(See Other), 410(영구 삭제됨), 503(데이터 제공 서비스 불가) 등이 있습니다.
데이터셋에 제공 불가(또는 제한적 접근)의 데이터가 참조될 경우, 누락 내용 및 접근 방법(가능한 경우)이 명확히 안내되는지 확인합니다. 접근 불가 데이터에 접근 시 HTTP 400/500대의 적절한 응답 코드가 반환되는지도 점검합니다.
관련 요구 사항: R-AccessLevel, R-SensitivePrivacy, R-SensitiveSecurity
최고 권장사항 23: API를 통해 데이터 제공
가능하다면 데이터를 제공하기 위해 API를 제공하세요.
API는 데이터 소비자에게 가장 큰 유연성과 처리 가능성을 제공합니다. 실시간 데이터 활용, 요청별 필터링, 원자 수준 데이터 처리가 가능하도록 도와줍니다. 데이터셋이 크거나, 자주 갱신되거나, 매우 복잡하다면 데이터를 공개하는 데 API가 최적의 선택일 수 있습니다.
개발자들이 자신의 애플리케이션에서 데이터를 프로그래밍 방식으로 접근할 수 있고, 데이터는 소비자 측의 추가 작업 없이도 최신 상태로 사용됩니다. 웹 애플리케이션은 프로그래밍 인터페이스를 쿼리해서 원하는 데이터를 직접 얻을 수 있습니다.
API를 만드는 것은 단순히 다운로드용 데이터를 게시하는 것보다 약간 더 복잡합니다. 웹 애플리케이션 구축에 대한 전반적 이해가 필요합니다. 그렇다고 반드시 처음부터 직접 개발해야 하는 것은 아닙니다. CKAN과 같은 데이터 관리 플랫폼을 사용한다면, 내장된 API를 활성화할 수도 있습니다. 많은 웹 개발 프레임워크에서 API 지원 기능이 포함되어 있으며, API 전용 프레임워크도 다수 존재합니다.
Rails(Ruby), Django(Python), Express(NodeJS)는 API 구축을 지원하는 대표적 웹 개발 프레임워크이며, Swagger, Apigility, Restify, Restlet 등이 API 구축을 위한 별도의 프레임워크 예시입니다.
테스트 클라이언트가 호출을 모의할 수 있고, API가 예상한 응답을 반환하는지 확인하세요.
관련 요구사항: R-AccessRealTime, R-AccessUpToDate
최고 권장사항 24: API의 기반으로 웹 표준 사용
API를 설계할 때, 웹 자체의 기술을 기반으로 하는 아키텍처 스타일을 적용하세요.
웹 표준 위에 구축된 API는 웹의 강점을 활용할 수 있습니다. 예를 들어, HTTP 메서드를 HTTP 동사로 이용하고, 각 개별 리소스에 직접 매핑되는 URI를 사용하는 것은 요청과 응답 간의 강결합을 피하고, 유지보수하기 쉽고 누구나 쉽게 이해·활용할 수 있는 API를 만듭니다. 웹의 무상태성은 빠른 확장성에도 강점을 주며, 하이퍼미디어를 활용하면 더욱 풍부한 API 상호작용이 가능합니다.
REST 등 웹 표준 기반 API 경험이 있는 개발자는 해당 API를 빠르게 파악해 사용할 수 있습니다. API가 더 쉽게 유지관리될 수 있습니다.
REST(REpresentational State Transfer)[Fielding][Richardson]는 웹 API에서 웹 아키텍처 구조 자체의 이점을 활용할 수 있는 아키텍처 스타일입니다. RESTful API 구축에 대해 자세히 다루지는 않지만, 참고 자료와 커뮤니티가 많습니다. REST API 구축을 지원하는 웹 프레임워크를 이미 사용 중이라면, 그 기능을 쓰는 것도 좋고, 아니면 REST 구조의 API 전용 프레임워크를 검토해 보세요.
또 하나 고려할 점은 하이퍼미디어 API, 즉 데이터와 함께 링크를 응답에 포함시키는 것입니다. 하이퍼미디어 링크는 웹을 웹답게 하며, 데이터 API가 훨씬 더 유용하고 사용하기 쉬워질 수 있습니다. 링크는 추가 리소스, 문서, 내비게이션을 제공합니다. REST의 모든 제약 조건을 만족하지 않아도, 응답에 링크를 포함시키면 서비스가 풍부하고 자기문서적이 될 수 있습니다.
서비스가 사용자 정의 메서드 호출을 위해 http를 터널처럼 사용하지 않고, URI에 메서드 명이 포함되어 있지 않은지 확인합니다.
관련 요구사항: R-APIDocumented, R-UniqueIdentifier
최고 권장사항 25: API의 완전한 문서 제공
웹상에 API 관련 모든 정보를 제공합니다. 기능 추가나 변경 시 문서도 갱신하세요.
개발자는 API의 주요 소비자이며, 문서는 품질과 활용성의 첫 번째 단서입니다. 문서가 완전하고 이해하기 쉬우면, 개발자들은 계속 API를 사용하려는 동기를 유지할 수 있습니다. 모든 문서를 한 군데서 제공하면 효율적 코딩이 가능하고, 변화 내역을 명확히 하면 새로운 기능을 충분히 활용할 수 있습니다.
개발자는 API의 각 호출에 대해, 사용할 파라미터와 반환값 등 모든 정보(코드 활용법, 변경 알림, 연락처 등 일체의 정보)를 상세히 파악할 수 있습니다. API 문서가 웹에서 쉽게 찾아볼 수 있도록 구축되어야 하며, 기계도 API 문서를 읽어서 API 클라이언트 소프트웨어 개발을 지원할 수 있어야 합니다.
일반적인 API 레퍼런스 문서는 API가 지원하는 호출의 전체 목록, 각 항목의 목적, 파라미터, 반환값, 사용 예시까지 종합적으로 제공합니다. 최근에는 개발자가 직접 호출을 테스트할 수 있는 폼을 문서에 제공하는 것도 대표적 추세입니다. Swagger, io-docs, OpenApis 등 다양한 API 문서 자동 생성 도구도 있습니다. 그리고 API 자체가 자기문서화(Self-documenting)되어야 하며, 오류나 사용 방법에 대해 유용한 정보를 반환해야 합니다. 사용자와의 질의응답, 제안, 버그리포트는 관리자에게 직접 연락할 수 있는 수단을 제공해야 합니다.
문서의 품질은 개발자의 사용과 피드백과도 관련이 깊으니, 사용자의 지속적 피드백을 적극적으로 받는 것이 좋습니다.
API가 지원하는 모든 호출이 문서에 설명되어 있는지 확인하세요. 호출별 필수/선택 파라미터와 반환값의 상세 내역을 제공해야 합니다.
첫 번째 정상 호출까지 걸리는 시간(Time To First Successful Call)이 충분히 짧은지(몇 분 내 요청 성공) 확인하세요. 이 시간이 짧을수록 개발자가 API를 계속 사용할 확률이 높아집니다.
관련 요구사항: R-APIDocumented
최고 권장사항 26: API의 파괴적 변경을 피하세요
클라이언트 코드를 깨뜨리는 API 변경을 피하고, API 개선 시 변경사항을 개발자에게 반드시 알리세요.
개발자는 API 클라이언트를 구현할 때 응답 형식이나 스키마 등 특정 특성에 의존합니다. API에서 파괴적 변경을 방지해야 클라이언트 코드가 고장날 위험이 줄어듭니다. 특히 변화가 발생할 때 이를 잘 알리면, 개발자들은 새 기능을 활용하거나 드문 경우 코드에 필요한 대응도 할 수 있습니다.
개발자의 코드는 계속 작동하며, 개발자는 개선사항을 빠르게 알고 활용할 수 있습니다. 파괴적 변경은 드물며, 불가피할 경우에도 개발자는 충분한 시간과 정보를 바탕으로 대응할 수 있어 신뢰도가 높아집니다. API 변경사항은 API 문서 사이트를 통해 공지됩니다.
API를 개선할 때는 기존 호출 방식의 변경 대신, 새 호출이나 옵션 추가에 집중하세요. 기존 클라이언트는 무시해도 계속 사용할 수 있습니다.
완벽하게 RESTful 방식이라면, 리소스 URI를 고정시키고 직접적으로 코드에 의존되지 않는 요소만 바꿔, 개발자의 영향을 피할 수 있습니다. 설계 당시의 확장 지점을 벗어나는 호환 불가 변경이 필요하다면, 새로운 REST API(별도 URI)로 분리하는 것이 최선입니다.
중대한 변경 시 클라이언트 코드가 깨지지 않도록 할 수 없는 구조라면 버전관리를 사용하세요. 응답 헤더 등에 버전 정보를 표시하고, URI나 Accept 헤더(Content Negotiation)를 통해 요청에서 버전 선택이 가능하도록 하세요. URI에 버전을 포함할 땐 왼쪽에 최대한 가깝게 두세요. 새로운 버전에 맞추지 못한 개발자는 기존 버전을 계속 사용할 수 있어야 합니다.
변경 알림을 직접 위해 메일링리스트를 만들고 개발자가 가입하도록 유도하세요. 공지 및 피드백 창구로 활용할 수 있고, 사용자 상호지원도 가능합니다.
API의 변경을 실제 운영 이전에 테스트 버전에서 먼저 배포하세요. 개발자들에게 테스트 환경에서 앱을 시험하고 의견을 제시하도록 요청합시다.
관련 요구사항: R-PersistentIdentification, R-APIDocumented
작업 그룹은 모든 웹상의 데이터가 무기한 동안 언제든지 요청 시 제공될 것이라고 가정하는 것은 비현실적임을 인식하고 있습니다. 다양한 이유로 데이터 발행자는 데이터를 실시간 웹에서 제거하고자 하거나 그럴 필요가 있을 수 있습니다. 이 경우 데이터는 현재 작업의 범위를 벗어나 데이터 아카이브 관리자의 영역으로 넘어갑니다. 여기서 다루는 범위는, 데이터가 삭제되거나 보관됨을 제공자가 어떻게 알릴 수 있을지에 관한 사항입니다. 단순히 리소스를 웹에서 삭제하는 것은 바람직하지 않습니다. 이런 상황에서는 URI를 조회해도 HTTP 404가 반환되며, 사용자는 단순히 찾을 수 없다는 것 외에 아무런 정보를 받을 수 없습니다. 다음 베스트 프랙티스들은 보다 생산적인 접근법을 제안합니다.
최고 권장사항 27: 식별자 보존
웹에서 데이터를 제거할 때에도 식별자를 보존하고, 보관된 리소스에 대한 정보를 제공하세요.
URI 조회는 웹 데이터의 주요 인터페이스입니다. 만약 URI 조회시 404(찾을 수 없음)가 발생하면, 사용자는 데이터의 부재가 영구적인지 일시적인지, 계획된 것인지 실수인지 알 수 없습니다. 제공자 또는 제3자에 의해 데이터가 보관되어 있다면, 원래 URI가 깨진 경우 보관본을 찾기가 훨씬 더 어려워집니다.
리소스의 URI는 항상 해당 리소스를 반환하거나 그에 대한 정보를 제공하는 곳으로 리디렉션됩니다.
다음 두 가지 시나리오를 고려해야 합니다:
첫 번째 경우, 서버는 410(Gone) HTTP 코드로 응답하도록 설정해야 합니다. 명세에서는 다음과 같이 설명합니다:
410 응답은 주로 웹 유지 관리를 보조하기 위한 것으로, 해당 리소스가 의도적으로 이용 불가함을 알리고 서버 소유자가 외부 링크를 제거하도록 권장하는 데 사용됩니다.
두 번째로 데이터가 보관된 경우, 데이터를 보관 중인 아카이브 및 접근 방법에 대한 정보를 제공하는 웹 페이지로 리디렉션하는 것이 더 적절합니다.
두 경우 모두, 원래 URI는 계속해서 리소스를 식별하며 데이터가 더 이상 직접적으로 제공되지 않아도 유용한 정보로 연결이 유지됩니다.
더 이상 제공되지 않는 데이터셋의 URI를 조회할 때, 적절히 410 또는 303 응답 코드를 사용해 현재 상태와 접근 가능성에 대한 정보를 반환하는지 확인하세요.
관련 요구사항:R-AccessLevel, R-PersistentIdentification
최고 권장사항 28: 데이터셋 커버리지 평가
데이터셋을 보존하기 전에 커버리지를 평가하세요.
웹 데이터의 한 조각은 본질적으로 전 세계적 그래프의 나머지 부분에 의존합니다. 이 전체적인 맥락이 데이터셋 내 리소스 설명의 의미를 결정합니다. 이상적으로 데이터셋을 보존할 때는 그 모든 맥락까지 함께 보존하는 것이 바람직합니다. 즉, 전체 데이터 웹을 보존하는 것입니다.
아카이브 시점에, 데이터셋 덤프가 이미 보존된 리소스 및 사용된 어휘와 어떻게 연결되는지 평가할 필요가 있습니다. 사용된 어휘들 또는 참조 리소스 중 아주 일부만 보존되어 있거나, 거의 모두가 어디에도 보존되어 있지 않은 데이터셋은 '위험' 플래그가 붙어야 합니다.
사용자는 보관된 데이터를 미래에도 잘 활용할 수 있습니다.
사용된 리소스가 모두 어딘가 이미 보존되어 있거나, 보존 대상 데이터셋과 함께 제공되어야 하는지 점검하세요.
50년 후 무엇이 보존될지 예측은 불가능하지만, 보관 데이터셋이 널리 쓰이는 외부 리소스와 어휘에만 의존하는지 점검할 수 있습니다. 고유하거나 거의 쓰이지 않는 의존성은 아카이브에 같이 보존되었는지 확인하세요.
관련 요구사항:R-VocabReference
웹에 데이터를 게시하면 다양한 전문성 수준을 가진 폭넓은 사용자들에게 대규모로 데이터 공유가 가능합니다. 데이터 제공자는 게시된 데이터가 소비자의 요구를 충족하고 있는지 확인하고자 하며, 이를 위해 사용자 피드백이 매우 중요합니다. 피드백은 제공자와 소비자 모두에게 이익이 있습니다. 이는 데이터 제공자가 게시 데이터의 완전성을 높이는 데 도움이 되고, 새로운 데이터 공개를 장려합니다. 피드백을 통해 데이터 소비자는 데이터 사용 경험(예: 데이터를 활용한 애플리케이션), 선호도와 요구를 표현할 수 있습니다. 가능하다면 피드백은 다른 데이터 소비자도 볼 수 있도록 공개되어야 하며, 이를 통해 사용자는 다른 사용자들의 존재를 인식하고, 협업 환경이 지원되며, 사용자 커뮤니티의 경험, 관심사, 질문 등이 현재 어떻게 해결되고 있는지도 알 수 있습니다.
사용자 인터페이스 관점에서는 사이트 등록, 문의 양식, 품질 평가 선택, 설문조사, 블로그용 댓글 박스 등 다양한 피드백 수집 방법이 있습니다. 기계 관점에서는 데이터 제공자가 데이터 사용량이나 데이터를 활용한 특정 애플리케이션 정보를 기록할 수도 있습니다. 이와 같은 피드백은 데이터 제공자와 소비자 간 소통 채널을 구축합니다. 공개 피드백은 사람이 읽을 수 있는 형태로 표시해야 합니다.
이 절에서는 데이터 제공자가 소비자의 피드백 제공을 촉진하기 위해 따라야 할 몇 가지 베스트 프랙티스를 소개합니다. 이 피드백은 사람이나 기계를 위한 것일 수 있습니다.
최고 권장사항 29: 데이터 소비자로부터 피드백 받기
소비자가 피드백을 제공할 수 있도록 쉽게 찾을 수 있는 방법을 제공하세요.
피드백을 받으면 제공자가 데이터 소비자의 요구를 파악할 수 있고, 게시된 데이터 품질 향상에도 도움이 됩니다. 또한 제공자가 소비자의 요구를 해결하려 노력한다는 신뢰를 높여줍니다. 명확한 피드백 체계를 제시하면 피드백 제공 방법을 찾기 위한 장벽이 사라집니다.
데이터 소비자는 데이터셋과 배포본에 대해 피드백이나 평점을 남길 수 있게 됩니다.
문의 양식, 클릭식 데이터 품질 평가 버튼, 댓글 박스 등 하나 이상의 피드백 방식을 제공하세요. 받은 피드백을 최대한 활용하려면, 각 항목을 데이터베이스에 저장해 정량화 및 분석이 가능한 추적 시스템과 연계하는 것이 좋습니다. 피드백 유형(예: 편집, 분류[평가], 댓글, 질의 등 동기)을 함께 기록하면 Dataset Usage Vocabulary [VOCAB-DUV]을 활용해 피드백 항목을 표현할 수도 있습니다.
최소 한 가지 이상의 피드백 방식을 제공하고, 데이터 소비자가 쉽게 찾을 수 있는지 확인하세요.
관련 요구사항: R-UsageFeedback, R-QualityOpinions
최고 권장사항 30: 피드백 공개
데이터셋과 배포본에 대한 소비자 피드백을 공개하세요.
피드백을 공유하면 사용자들이 본인의 우려 사항이 처리되고 있다는 점을 알 수 있고, 중복 신고도 예방할 수 있습니다. 또한, 사용자는 데이터를 사용할 때 발생할 수 있는 문제를 사전에 이해할 수 있고, 커뮤니티 형성도 촉진됩니다.
소비자는 데이터셋에 영향을 주는 오류의 유형을 파악하고, 타 사용자의 경험도 확인하며, 제공자가 실제로 문제를 적극적으로 해결하고 있음을 알 수 있습니다. 또한, 이미 유사 피드백이 제출되어 있는지 쉽게 확인할 수 있어, 불필요한 중복 신고를 줄이고 관리자의 부담도 줄일 수 있습니다.
피드백은 HTML 웹페이지의 일부로 공개할 수도 있지만, Dataset Usage Vocabulary [VOCAB-DUV]을 활용해 기계판독형으로 제공할 수도 있습니다.
특정 데이터셋이나 배포본에 대해 데이터 소비자가 남긴 피드백이 공개되어 있는지 확인하세요.
관련 요구사항: R-UsageFeedback, R-QualityOpinions
데이터 고도화는 원본 데이터 또는 사전 처리된 데이터를 보완, 정제 또는 향상시키는 일련의 프로세스를 의미합니다. 이 개념과 유사 주제들은 오늘날 거의 모든 비즈니스나 조직에서 데이터를 매우 중요한 자산으로 만들어 줍니다. 데이터 고도화는 스스로도 폭넓은 주제이며, 그 세부 내용은 본 문서 범위를 벗어납니다. 다만, 이러한 기법 중 일부는 윤리적 문제가 발생할 수 있으므로 주의해야 함을 꼭 명심해야 합니다. 과학 연구에서는 결과나 통계를 왜곡할 수 있는 고도화 기법을 피해야 하며, 사람에 관한 데이터를 다루는 경우, 서로 개별로는 식별이 안 되는 데이터셋을 결합하더라도 합쳐진 결과가 프라이버시를 침해할 우려가 있습니다. 또한, 이 기술들은 대규모로 적용될 수 있으므로 항상 주의가 필요합니다.
이 절에서는 데이터 제공자가 데이터 고도화를 위해 참고해야 할 권장사항을 안내합니다.
최고 권장사항 31: 새로운 데이터 생성으로 데이터 고도화
데이터의 가치를 높일 수 있다면, 새로운 데이터를 생성해 데이터셋을 고도화하세요.
고도화는 특히 비구조적 데이터의 처리 가능성을 비약적으로 높일 수 있습니다. 특정 조건에서는 누락된 값을 채울 수 있고, 기존 원본 데이터에서 새로운 속성이나 지표를 추가할 수도 있습니다. 같은 방식으로 추가 측정치를 수집하거나, 기존 데이터를 다른 데이터셋과 결합해 고도화할 수도 있습니다. 완성도 높은 데이터셋을 공개하면, 제대로 잘 처리하고 윤리적으로 활용할 경우 신뢰도를 강화할 수 있습니다. 일반 활용도가 높은 값을 파생시켜 제공하면 사용자 시간을 아끼고 재사용도 촉진합니다. 데이터를 고도화할 수 있는 다양한 지능적 기법이 존재하며, 이를 통해 데이터셋의 자산 가치는 더욱 커집니다.
누락된 값이 있는 데이터셋은 이 값을 채워 보완하게 됩니다. 관련 지표나 속성을 추가할 경우, 추가가 분석 결과나 통계적 의미를 왜곡하지 않는 한, 데이터 구조와 활용성이 모두 향상됩니다.
데이터 고도화 기법은 매우 복잡하며 이 문서에서 다루는 범위를 넘어갑니다. 여기서는 가능성만 간략히 언급합니다.
머신러닝은 데이터 고도화에 많은 부분 적용할 수 있습니다. 카테고리 분류, 모호성 제거, 엔터티 추출, 감성 분석, 토픽 구축 등 다양한 방법이 있습니다. 기존 열에 대해 수식계산만으로도 새 값을 산출할 수 있습니다. 시각 분석을 통한 공간 데이터 feature 식별, 인구통계 정보 결합도 대표적 예입니다. 마지막으로, 고도화가 수요 기반일 수도 있는데 이 경우 누락값을 계산 등 직접적으로 보완하기도 합니다.
추론 기반 기법으로 추가된 값은 반드시 그렇게 산출되었음을 명확하게 표시해야 하며, 고도화로 대체된 원본 값도 여전히 조회 가능해야 합니다.
라이선스가 허용된다면, 데이터 고도화에 사용된 코드는 데이터셋과 함께 공개하세요. 과학 데이터의 경우, 코드 공유는 특히 중요합니다.
고도화 우선순위는 데이터 소비자에게의 가치와 소요 노력에 따라 결정하세요. 사용자의 요구는 설문, 직접요청 기록 등 수요 측정으로 평가 가능하며, 이러한 수요 분석 방법 자체도 함께 문서화해야 데이터 가치 향상이 입증될 수 있습니다.
타인의 데이터에 대해 고도화 작업을 했다면, 그 결과를 원 제공자에게 환류하는 것도 권장됩니다.
데이터셋에 더 쉽게 제공할 수 있는데도 빠진 값이나 다른 사용자가 필요로 할 필드가 없는지 점검하세요. 추론 기법 등으로 추가한 값은 반드시 그렇게 추가됐음을 표시하고, 대체된 원시 데이터도 여전히 제공되는지 확인하세요.
관련 요구사항: R-DataEnrichment, R-FormatMachineRead, R-ProvAvailable
최고 권장사항 32: 보완적 데이터 표현 제공
그래프, 표, 웹 애플리케이션, 요약 등 바로 인사이트를 줄 수 있는 다양한 형태로 데이터를 보완 설명하세요.
웹에 공개된 데이터는 본질적으로 타인에게 해당 주제를 알리기 위한 것입니다. 하지만 단순히 데이터셋 다운로드나 API 접근만 허용하면 해석에 대한 부담이 모두 소비자에게 전가됩니다. 웹은 사용자가 별도의 도구를 직접 만들지 않아도 데이터를 탐색하고 배울 수 있는 다양한 방식의 데이터 표현 기회를 제공합니다.
보완적 데이터 표현은 사람 사용자에게 데이터를 바로 이해할 수 있는 통찰을 제공하게 됩니다.
가장 쉬운 방법은 홈페이지 등에 데이터 해석 요약본을 제공하는 것입니다. 그래프나 표로 요약정보를 함께 제공하면 사용자가 데이터를 빨리 이해할 수 있습니다.
인터랙티브 시각화나 웹 애플리케이션을 만들 수 있는 역량이 있다면, 데이터를 좀 더 쉽게 이해하고 패턴을 찾을 수 있도록 제공할 수 있습니다. 이는 데이터가 효율적으로 처리될 수 있음을 보여주며, 재사용도 촉진합니다.
다운로드 또는 API 호출 없이도 데이터 해석에 도움이 되는 추가 자료가 데이터셋과 함께 제공되는지 확인하세요.
관련 요구사항: R-DataEnrichment
데이터를 재사용하는 것은 데이터를 다시 발행하는 또 하나의 방식입니다. 이는 단순히 재공개입니다. 기존 데이터를 다른 데이터셋과 결합하거나, 웹 애플리케이션이나 시각화를 만들거나, 번역처럼 데이터를 새로운 형태로 재포장하는 것이 그 예시입니다. 데이터를 재공개하는 사람은 웹에서의 특수한 책임을 집니다. 본 절은 데이터를 재공개(republishing)할 때 따라야 할 권고사항을 안내합니다.
최고 권장사항 33: 원래 제공자에게 피드백 제공
데이터를 재사용할 때 원래 제공자에게 그 사실을 알리세요. 오류를 발견하거나 제안, 칭찬이 있다면 마찬가지로 알려주세요.
제공자는 일반적으로 자신이 게시한 데이터가 얼마나 유용하게 쓰이고 있는지 알고 싶어합니다. 또한 데이터 게시 활동에 자원을 배분하기 위해 사용 통계를 보고해야 할 수도 있습니다. 여러분의 활용 사실을 보고하면 데이터 공개에 노력을 기울일 근거를 마련해줍니다. 피드백은 제공자에게 직접적 도움을 주어, 미래 이용자를 위해 데이터셋 품질을 높이게 만듭니다.
더 나은 소통을 통해 원래 제공자가 해당 데이터 활용 방식을 쉽게 파악할 수 있고, 이것이 데이터 공개의 필요성을 입증하는 데 도움을 줍니다. 제공자는 데이터를 개선할 수 있는 구체적 방안도 알 수 있으며, 이는 모두를 위한 더 많고 더 나은 데이터로 이어집니다.
새 제품에서 데이터셋을 사용할 때는 제공자의 연락처, 사용한 데이터셋의 URI, 연락일자를 기록해두세요. 이를 데이터셋 활용 코드의 주석으로 남길 수 있습니다. 제공자의 피드백 요청 경로를 따라 피드백을 제공하세요. 따로 안내가 없다면 데이터가 올라간 웹사이트의 연락처를 확인해 사용하세요.
데이터 제공자에게 사용 사실을 알리는 연락 내역이 최소 1건 이상 남아 있는지 확인하세요.
관련 요구사항: R-TrackDataUsage, R-UsageFeedback, R-QualityOpinions
최고 권장사항 34: 라이선스 조건 준수
원본 데이터셋 제공자가 제시한 라이선스 조건을 반드시 확인하고 따라야 합니다.
라이선스는 타인의 작업물을 이용할 때 적용되는 법적 틀을 제시합니다. 원 제공자의 요구사항을 지키면, 데이터 제공자와 사용자의 관계가 원활해집니다. 라이선스를 준수하면 제공자의 법적 조치에 대해 걱정할 필요가 없으며, 최초 라이선스를 이해하면 2차 저작물(재공개본)에 어떤 라이선스를 적용할지 결정할 때 도움이 됩니다.
데이터 제공자는 자신의 데이터가 라이선스 요건에 따라 재사용되고 있음을 신뢰할 수 있고, 이에 따라 앞으로도 계속 데이터 공개를 장려하게 됩니다. 데이터 재사용자는 재가공 자료에도 적절한 라이선스를 올바르게 적용할 수 있게 됩니다.
원본 라이선스를 읽고, 그 요건을 지켜야 합니다. 파생 저작물에 특정 라이선스 적용을 요구한다면, 그에 맞는 라이선스를 선정하세요. 별도의 라이선스가 없다면, 원래 제공자에게 문의해 라이선스 정보를 받아야 합니다.
원래 라이선스를 꼼꼼히 읽고, 데이터 사용이 그 어느 조항도 위반하지 않는지 확인하십시오.
관련 요구사항: R-LicenseAvailable, R-LicenseLiability,
최고 권장사항 35: 원본 출처 명시
데이터의 출처를 메타데이터에 명시하세요. 사용자 인터페이스가 있다면, 인용 정보를 화면에 잘 보이게 제공하세요.
데이터는 신뢰할 수 있을 때 비로소 유용합니다. 출처를 밝히는 것은 신뢰를 보여주는 중요한 신호입니다. 첫째, 사용자는 출처의 평판으로 데이터의 신뢰도를 판단할 수 있고, 둘째로 출처 명시는 재공개자로서의 믿음을 주는 행위이기도 합니다. 출처 명시는 최종 사용자에게 정보를 제공할 뿐 아니라, 데이터 제공자의 노고에 보상을 해줍니다. 데이터를 공개하는 제공자들은 적절히 인정 받고 싶어하며, 크레딧이 부여되어야 앞으로도 더 많이 데이터를 공유할 동기가 생깁니다. 인용은 또한 데이터의 프로비넌스와 연계를 유지해, 타인 역시 데이터를 적절히 활용할 수 있게 합니다.
최종 사용자는 데이터의 신뢰도를 스스로 확인할 수 있으며, 원 제공자의 노력이 인식받게 됩니다. 웹에 공개된 데이터의 프로비넌스(chain of provenance)는 원 제공자까지 추적이 가능해집니다.
사용자 인터페이스에 원본 출처에 대한 인용문과 작동하는 링크를 함께 보여줄 수 있습니다.
재사용 데이터의 원본 출처가 메타데이터에 반드시 명시되어 있는지, 사용자 인터페이스 상에서도 사람이 쉽게 확인할 수 있는 인용문이 있는지 점검하세요.
관련 요구사항: R-Citable, R-ProvAvailable, R-MetadataAvailable, R-TrackDataUsage
이 절은 비규범적입니다.
인용(Citation)은 논문 참고문헌과 같은 직접적·명시적 인용, 같은 연구 그룹의 후속 논문 같은 간접 인용, 예술 인용·패러디 또는 표절 등에서 나타나는 암묵적 인용 등 다양한 형태가 있습니다.
데이터 아카이빙(Data Archiving)은 디지털 자료의 장기 보관 및 상태 모니터링에 관한 일련의 실천을 의미합니다.
이러한 과업은 신뢰할 수 있는 디지털 저장소(Trusted Digital Repository, TDR) 혹은 장기 아카이브 서비스(Long-Term Archive Service, LTA)의 책임입니다. 보통 이러한 서비스는 데이터의 인제스트(저장), 모니터링, 재사용을 정의한 OAIS 모델 [OAIS]을 따릅니다.
이 WG의 맥락에서 데이터 소비자(Data Consumer)란 데이터를 접근·활용·후처리할 수 있는 개인 또는 집단을 의미합니다.
출처: Strong, Diane M., Yang W. Lee, and Richard Y. Wang. "Data quality in context." Communications of the ACM 40.5 (1997): 103-110.
데이터 포맷(Data Format)은 특정한 데이터 표기를 위한 규약, 즉 컴퓨터 시스템에서 정보를 부호화 및 저장하는 방법(종종 데이터 타입이나 표준 집합에 의해 제한됨)을 의미합니다.
데이터 보존(Data Preservation)은 Alliance for Permanent Access Network의 정의에 따르면 "시간이 지나도 객체의 기술적·지적 생존을 보장하는 과정 및 운용"입니다. 이는 보존 계획 및 메타데이터에 초점을 둔 데이터 관리 계획의 일부입니다. 보존에 노력을 들이는 것이 가치로운지는 (미래) 데이터의 가치, 가용 자원, 관계자 커뮤니티의 판단에 따라 달라집니다.
데이터 생산자(Data Producer)는 데이터를 생성하고 관리할 책임이 있는 개인이나 집단입니다.
출처: Strong, Diane M., Yang W. Lee, and Richard Y. Wang. "Data quality in context." Communications of the ACM 40.5 (1997): 103-110.
프로비넌스(Provenance)는 프랑스어 "provenir(유래하다)"에서 유래했으며, 예술 작품 소장 과정을 설명하는 데 쓰입니다. 데이터 프로비넌스(Data provenance) 역시 이와 유사하게 데이터 히스토리를 사용자에게 전달하는 메타데이터입니다.
데이터 품질(Data Quality)은 일반적으로 특정 응용이나 사용 목적에 ‘적합함’(fitness for use)으로 정의됩니다.
데이터셋(Dataset)은 단일 주체가 게시 또는 관리하는 데이터 모음으로, 하나 이상의 포맷으로 접근·다운로드할 수 있습니다. 데이터셋이 반드시 파일로 제공될 필요는 없습니다.
배포본(Distribution)은 데이터셋의 특정한 제공 형태를 의미합니다. 하나의 데이터셋은 여러 형식—서로 다른 포맷이나 엔드포인트—으로 제공될 수 있습니다. 예로는 다운로드 가능한 CSV 파일, API, RSS 피드 등이 있습니다.
피드백 포럼은 소비자가 특정 주제에 대해 메시지를 남길 수 있도록 하는 공간입니다. 메시지는 타 소비자에 대한 답글을 포함할 수 있습니다. 각 메시지는 작성 일시 정보를 갖고, 개인 정보와 연계하거나 익명으로 제출할 수 있습니다.
출처: Semantically-Interlinked Online Communities (SIOC) 및 주석 모델 [Annotation-Model]
주석이 생성된 원인을 더 잘 이해하기 위해서는 SKOS Concept Scheme [SKOS-PRIMER]과 같이 단순한 계층구조(클래스/하위클래스)보다 의미 구분이 풍부한 개념 연결로 공동체 간 주석의 상관성을 파악할 수 있습니다.
파일 포맷(File Format)은 컴퓨터 파일에 데이터를 저장할 때 정보를 부호화하는 표준 방식을 의미합니다. 디지털 저장 매체에 정보를 어떻게 비트로 부호화할지 명세하며, 독점적이거나 공개되어 있지 않거나, 혹은 오픈일 수도 있습니다.
파일 포맷 예: 일반 텍스트(권장 인코딩은 UTF-8), CSV(Comma Separated Variable) [RFC4180], PDF [PDF], XML, JSON [RFC4627], Turtle [Turtle], HDF5
라이선스(License)는 데이터와 연계된 자료를 활용할 수 있는 공식 허가를 부여하는 법적 문서입니다.
로케일(Locale)은 언어 및 지역 등 특정 사용자군의 국제적 선호값 집합입니다. 일반적으로 언어나 지리정보를 간결하게 나타내는 토큰(예: 언어 태그)으로 표기하며, 이는 다양한 과정에 전달되어 문화적 차이의 행위에 영향을 줍니다.
출처: Language Tags and Locale Identifiers for the World Wide Web [LTLI].
머신 판독 데이터(machine-readable data)는 표준 포맷으로, 컴퓨터 시스템이 자동으로 읽고 처리할 수 있습니다. 일반 문서, PDF 등은 사람이 읽기 쉽지만 대부분 기계에 불리합니다. XML, JSON, HDF5, RDF, CSV 등은 머신 판독 데이터 포맷입니다.
출처: Wikipedia.
"근실시간(Near real-time, NRT)"이란 통신·컴퓨팅 분야에서 자동 데이터 처리 또는 전송에서 발생하는 이벤트가 나타나고 이를 처리·표시하는 데까지 걸리는 지연 시간을 가리킵니다. 근실시간 표시란 계산 지연을 뺀 최대한 실제 상황에 가까운 시점의 모습을 보여줍니다.
출처: Wikipedia
민감 정보(Sensitive data)는 제한된 방식 또는 한정된 이용자에 의해 사용·공개되는 데이터/메타데이터입니다. 민감 정보에는 개인정보, 기업·정부 데이터 등이 포함되며, 잘못 공개시 개인이나 조직에 피해를 줄 수 있습니다.
표준(Standard)은 기술 시스템에 관한 확립된 규범이나 기준입니다. 공식 문서로서 공학적·기술적 기준, 방법, 절차, 관행을 규정합니다. 관습, 관례, 기업표준 등 사실상 대세가 된 것은 ‘사실상 표준(de facto standard)’이라 부르기도 합니다.
출처: Wikipedia
구조화 데이터(Structured Data)는 고정된 스키마를 따르는 데이터를 의미합니다. 관계형 데이터베이스, 스프레드시트가 대표 예입니다.
어휘(Vocabulary)는 특정 목적을 위한 용어(term) 집합입니다. 간단한 RDF 스키마 [RDF-SCHEMA], FOAF [FOAF], 더블린코어 [DCTERMS]처럼 단순한 것부터, 의료 정보처럼 수천 개의 용어로 구성된 복잡한 어휘도 있습니다. 어휘는 링크드 데이터에서 데이터 통합에 핵심 역할을 합니다. 이 용어는 온톨로지와도 일부 겹칩니다.
이 절은 비규범적입니다.
아래 도표는 웹에서 데이터를 게시하거나 활용할 때 직면하게 되는 주요 과제 몇 가지를 요약한 것입니다. 이러한 문제들은 DWBP 활용사례 및 요구사항 [DWBP-UCR]에서 도출되었고, 도표에서 제시된 바와 같이 하나 이상의 베스트 프랙티스 권고안을 통해 해결됩니다.
이 절은 비규범적입니다.
아래 목록은 DWBP를 적용했을 때의 주요 이점을 설명합니다. 각 이점은 웹에서 데이터셋이 제공되는 방식이 개선되는 한 측면을 나타냅니다.
다음 표는 베스트 프랙티스와 이점 간의 관계를 보여줍니다.
| 베스트 프랙티스 | 이점 |
|---|---|
| 메타데이터 제공 |
|
| 기술적 메타데이터 제공 |
|
| 구조적 메타데이터 제공 |
|
| 데이터 라이선스 정보 제공 |
|
| 데이터 프로비넌스 정보 제공 |
|
| 데이터 품질 정보 제공 |
|
| 버전 표시 제공 |
|
| 버전 이력 제공 |
|
| 데이터셋 식별자로 영구 URI 사용 |
|
| 데이터셋 내부 식별자로 영구 URI 사용 |
|
| 데이터셋 버전 및 시리즈에 URI 할당 |
|
| 머신 판독 가능한 표준화된 데이터 포맷 사용 |
|
| 로케일 중립적 데이터 표현 사용 |
|
| 여러 형식으로 데이터 제공 |
|
| 가능하면 표준화된 어휘 재사용 |
|
| 적절한 형식화 수준 선택 |
|
| 일괄 다운로드 제공 |
|
| 대용량 데이터셋에 대해 부분집합 제공 |
|
| 여러 형식으로 제공되는 데이터에 대해 콘텐츠 협상 사용 |
|
| 실시간 접근 제공 |
|
| 데이터 최신 상태로 제공 |
|
| 이용 불가 데이터에 대한 설명 제공 |
|
| 데이터를 API로 제공 |
|
| API의 기반으로 웹 표준 사용 |
|
| API에 대한 완전한 문서 제공 |
|
| API의 파괴적 변경 방지 |
|
| 식별자 보존 |
|
| 데이터셋 커버리지 평가 |
|
| 데이터 소비자로부터 피드백 수집 |
|
| 피드백 공개 |
|
| 새로운 데이터 생성으로 데이터 고도화 |
|
| 보완적 데이터 표현 제공 |
|
| 원래 제공자에게 피드백 제공 |
|
| 라이선스 조건 준수 |
|
| 원본 출처 인용 |
|
아래 도표는 베스트 프랙티스 채택으로 데이터 발행자가 얻는 이점을 보여줍니다.
재사용
모든 베스트 프랙티스
접근성
검색성
처리 가능성
신뢰
상호운용성
이 절은 비규범적입니다.
편집자들은 이 문서에 기여한 모든 워킹 그룹 구성원들의 기여에 감사드립니다. 특히 Annette Greiner의 큰 노력과 Antoine Isaac, Eric Stephan 및 Phil Archer의 기여에 감사드립니다.
이 문서는 Spatial Data on the Web Working Group의 많은 구성원들로부터 받은 입력에 의해 혜택을 보았습니다. 특히 Andrea Perego, Dan Brickley, Linda van den Brink 및 Jeremy Tandy에게 감사드립니다.
편집자들은 또한 Addison Phillips, Adriano Machado, Adriano Veloso, Andreas Kuckartz, Augusto Herrmann, Bart van Leeuwen, Christophe Gueret, Erik Wilde, Giancarlo Guizzardi, Gisele Pappa, Gregg Kellogg, Herbert Van de Sompel, Ivan Herman, Leigh Dodds, Lewis John McGibbney, Makx Dekkers, Manuel Tomas Carrasco-Benitez, Maurino Andrea, Michel Dumontier, Nandana Mihindukulasooriya, Nathalia Sautchuk Patrício, Peter Winstanley, Renato Iannella, Steven Adler, Vagner Diniz 및 Wagner Meira로부터 받은 코멘트에 감사드립니다.
편집자들은 또한 본 워킹 그룹의 의장인 Deirdre Lee, Hadley Beeman, Yaso Córdova 및 스태프 연락자 Phil Archer에게 감사드립니다.
이전 버전 이후 변경 사항: