이름표 (공개 주소)
Hahoe Genesis Protocol (HGP)의 칸 이름을 다른 기관의 프로그램도 읽을 수 있게 공개 주소에 낸다. 이 쪽이 그 주소의 사람용 설명이다.
1. 주소
섹션 제목: “1. 주소”| 무엇 | 주소 | 모양 |
|---|---|---|
| 이 설명 쪽 | https:/ |
사람이 읽는 쪽 |
| 칸 이름의 뜻 (이름표) | https:/ |
JSON-LD 1.1 context |
| 칸의 바탕 주소 | https:/ |
hgp:sha256 = https:/ |
| 관계망 규칙표 | https:/ |
JSON |
| 지문 묶음의 프로필 | https:/ |
이 쪽 4절 |
- 판 번호가 주소에 들어간다. 한 번 낸 판은 고치지 않는다. 칸을 더하거나 뜻을 바꾸면
v2를 새로 낸다. 옛 판은 그대로 남는다. - 칸의 바탕 주소(
ns#)는 판이 바뀌어도 그대로다. 같은 칸은 늘 같은 주소다. - 로그인 없이 열린다. 기계용 파일은
Content-Type: application/ld+json(규칙표는application/json),Access-Control-Allow-Origin: *로 낸다. 다른 기관의 프로그램이 바로 읽을 수 있게.
2. v1에 든 칸
섹션 제목: “2. v1에 든 칸”v1에는 지금 쓰는 두 묶음만 넣는다. 장부(03-manifest)의 칸은 03이 승인되면 v2에 넣는다.
2.1 지문 (02-지문)
섹션 제목: “2.1 지문 (02-지문)”| 칸 | 뜻 | 계산 |
|---|---|---|
sha256 |
원본 파일의 지문 | SHA-256 (FIPS 180-4), 파일 바이트 그대로, 소문자 16진수 64자 |
root |
권 지문 | RFC 6962 2.1 머클 뿌리. 잎 = SHA-256(0x00 ‖ 지문), 가지 = SHA-256(0x01 ‖ 왼 ‖ 오), 홀수는 복사하지 않고 올린다. 잎의 차례는 권 안 면의 차례, 같은 원본은 처음 한 번 (02-지문 5절) |
root_version |
권 지문의 판. 면이 바뀌면 올라간다 | |
method |
권 지문을 만든 법 (사람이 읽는 글) | |
manifest |
이 지문 묶음이 어느 IIIF 매니페스트의 것인가 | 주소 |
canvases |
캔버스마다 한 줄 | |
canvas |
IIIF 캔버스 주소 | 주소 |
derivation |
화면용 줄인 사본을 원본에서 만든 법: crop [x0, y0, x1, y1] (원본 픽셀), rotate (도), reduced_long_side (픽셀) |
2.2 관계망 장부 (06-관계망)
섹션 제목: “2.2 관계망 장부 (06-관계망)”| 칸 | 뜻 (06 4절) |
|---|---|
id |
줄의 이름표 (UUID). JSON-LD로 낼 때는 id, about, to, replaces 앞에 urn:uuid:를 붙인다 |
type |
줄의 종류: node 점, claim 주장, view 보기 |
kind |
점의 종류: person, group, place, event, work, thing |
handle |
사람이 읽는 별칭 <프로젝트>:<별칭> |
about, to |
주장의 대상과 관계의 상대 (이름표) |
prop, value |
무엇을 말하나, 그 값 |
role |
사건에서 맡은 자리, 친척 관계 (5절) |
basis |
stated 근거가 그대로 적음, inferred 미루어 앎 |
source |
근거의 자리 목록 |
when |
사실의 때 (edtf, original, calendar) |
at |
기록한 때 (RFC 3339) |
event |
줄이 하는 일: claimed, confirmed, retracted, reopened, scope_changed |
status |
candidate 후보, confirmed 확인, retracted 물림 |
made_by, confirmed_by |
만든 이 (사람·기계), 확인 도장 (자격 as) |
scope, depositor |
범위, 근거 기록의 기탁자 |
include, prefer, ties |
보기의 규칙 (06 7절) |
replaces, note |
대신하는 줄, 메모 |
- 장부 줄 맨 앞의
hgp칸(규격 판, 예"2026.10")은 이름표 이름과 겹쳐 JSON-LD로 풀지 않는다. JSON-LD로 낼 때는conformsTo에 적는다.
3. IIIF 매니페스트에서 쓰는 법
섹션 제목: “3. IIIF 매니페스트에서 쓰는 법”IIIF 공식 검사기로 시험한 결과에 맞춘다 (hgp 이슈 #1, arkive 2026-10-12).
@context를 목록으로 쓰고 hgp 주소를 앞, IIIF 주소를 맨 뒤에:["https://hgp.hahoe.io/ns/v1.jsonld", "http://iiif.io/api/presentation/3/context.json"]- 캔버스에는
hgp:sha256(원본 스캔 지문)을 붙여도 된다. 검사기를 통과한다. - 매니페스트에는
hgp:root를 붙이지 않는다. 검사기가 막는다. 권 지문은metadata(사람용 글)와seeAlso의 지문 묶음(기계용)에 둔다 (결정 0009). - context 자리에 주소 대신 객체를 적지 않는다. 검사기가 막는다.
4. 지문 묶음 프로필 (fixity-v1)
섹션 제목: “4. 지문 묶음 프로필 (fixity-v1)”매니페스트의 seeAlso가 가리키는 기계용 파일이다 (02-지문 9절).
{"type": "Dataset", "format": "application/json", "profile": "https://hgp.hahoe.io/ns/#fixity-v1", "id": "<저장고>/api/books/<권>/export/fixity"}묶음 안의 칸은 2.1절. 묶음 맨 위에 "@context": "https://hgp.hahoe.io/ns/v1.jsonld"를 둘 수 있다. 예전 임시 이름 urn:x-hgp:fixity는 이 주소로 바꾼다.
- 묶음 안에서는 프로필을
conformsTo로 적는다:"conformsTo": "https://hgp.hahoe.io/ns/#fixity-v1".profile은 매니페스트의seeAlso칸(IIIF)에서 쓰는 이름이고 v1 이름표에는 없어서, 묶음 안의profile은 JSON-LD 처리기가 버린다 (2026-10-12 시험).
5. 관계망 규칙표
섹션 제목: “5. 관계망 규칙표”relations-v1.json은 「어느 종류의 점에 어떤 칸이 오고, 값이 어떤 모양이고, 하나인지 여럿인지」를 기계가 검사할 수 있게 적은 표다. 칸의 뜻은 06-관계망, 이 표는 모양만 정한다.
- 어김의 두 단계.
error는 장부에 들어가면 안 되는 것(근거 없음, 기계가 처음부터 확인).review는 사람이 볼 것(하나여야 할 칸에 값이 둘, 목록에 없는 자리 이름). 겹침은 고르지 않고 남긴다는 06 7절 때문에, 값이 둘인 것은 어김이 아니라review다. - 기계가 낸 주장은 처음부터
confirmed일 수 없다 (error). 확인 도장은 사람만 찍는다 (결정 0006). - 사건 속 자리(
participant의role)는 정해 둔 값이다.
| 값 | 한국어 | 옛 값 (arkive가 옮길 때까지 읽음) |
|---|---|---|
visitor |
찾아온 이 | 「찾아온 이」 |
host |
맞은 이 | 「맞은 이」 |
sender |
보낸 이, 준 이 | 「보낸 이」, 「준 이」 |
recipient |
받은 이 | 「받은 이」, 「받은 이(물건)」 |
companion |
함께한 이 | 「함께한 이」 |
편지와 물건은 사건의 갈래(event_kind)가 이미 가르므로 「준 이」와 「보낸 이」를 하나로 둔다.
- 친척 관계(
kin의role)는 원문의 호칭을 그대로 적는다 (족질, 족숙, 외숙 등). 한국 친족 호칭은 많고 뜻이 섬세해 목록으로 닫지 않는다. 빈 글자는error. - 규칙표 모양은 JSON이다. W3C SHACL(그래프 검사 표준)로 옮겨 낼 수 있으나 지금은 하지 않는다 (참조).
6. 국제 표준
섹션 제목: “6. 국제 표준”| 표준 | 대응 | 등급 |
|---|---|---|
| JSON-LD 1.1 (W3C) | v1.jsonld는 JSON-LD 1.1 context다. 주장 줄, 점 줄, 지문 묶음, 캔버스 예를 처리기(jsonld.js 8.3.3, 안전 모드)로 펼쳐 RDF까지 바꿔 봤다 (2026-10-12) |
정합 |
| IIIF Presentation 3 | 3절대로 쓴 매니페스트는 공식 검사기 통과 (arkive 6권) | 준수 |
| W3C SHACL | 규칙표를 SHACL로 옮길 수 있게 짰다 | 참조 |