Ipfs: IPFS-LD - ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ

์— ๋งŒ๋“  2014๋…„ 09์›” 19์ผ  ยท  34์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ipfs/ipfs

์ด ๋ฌธ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ IPFS ์ปจํ…์ŠคํŠธ์—์„œ ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ƒ๊ฐ์„ ๊ธฐ๋กํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ง€ ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.


์‹œ๋งจํ‹ฑ ์›น์˜ ํž˜์€ ๊ณ ๋ คํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ "์ด๋ฅ™"ํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐํ™”์— ๊ด€ํ•ด์„œ๋Š” TRTTD์ž…๋‹ˆ๋‹ค.

@msporny ๋Š” ๋†€๋ž๋„๋ก ๊ฐ„๋‹จํ•œ JSON-LD๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. IPFS๋Š” ํŠธ๋ฆฌ dag ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์— JSON-LD ์‚ฌ์–‘(๋˜๋Š” ๋‹จ์ˆœํ™”๋œ ๋ฒ„์ „)์ด IPFS์— ์ •๋ง ์ž˜ ๋งž์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ IPFS์— ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๊ฑฐ์˜ ์—†์ด ์‹œ๋งจํ‹ฑ ์›น์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


์ด๊ฒƒ์€ @context ๋งํฌ์˜ ์ถ”๊ฐ€๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(ํ•ด๋‹น ํ‚ค์ผ ํ•„์š”๋Š” ์—†์œผ๋ฉฐ Links ๊ตฌ์กฐ์—์„œ๋„ ์ž์ฒด ํ•„๋“œ๊ฐ€ โ€‹โ€‹๋  ์ˆ˜ ์žˆ์Œ).

๋‚˜๋Š” ์ด๊ฒƒ์ด IPFS ์‚ฌ์šฉ์„ ๋ฐฉํ•ดํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ์ฒด์— ํ•ญ์ƒ ์ปจํ…์ŠคํŠธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ๋งํ•˜๊ธฐ๋ฅผ ์ฃผ์ €ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•œ ๋””์ž์ธ ๊ฒฐ์ •์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ ํ˜•์‹์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ž์œ ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์•„๋งˆ๋„ ์ค‘๊ฐ„ ์ง€์ ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ @context ์œ ํ˜•์˜ ํ•ญ๋ชฉ์„ ์„ ํƒ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๊ณ„์† ์ƒ๊ฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.


์‚ฌ์‹ค @msporny๋‹˜ , ์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒ๊ฐ์ด ์ •๋ง ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ( paper , talk )๋ฅผ ํ™•์ธํ•˜๊ณ  ์ƒ๊ฐ์„ lmkํ•˜์‹ญ์‹œ์˜ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ๋…์€ ์‚ฌ๋ฌผ์— ๋ถ€์—ฌํ•œ ์‹๋ณ„์ž๊ฐ€ ๊ด€๋ จ ์‚ฌ๋ฌผ์— ์—ฐ๊ฒฐ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ์œ ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํฌํ•จ๋œ ํ•ญ๋ชฉ์˜ URI ๋ชฉ๋ก์„ ์ œ๊ณตํ•˜๊ณ  ์ด๋ฒคํŠธ๋Š” ์‹œ๊ฐ„๊ณผ ๋ฐ์ดํ„ฐ ๋ฐ ์ดˆ๋Œ€๋œ ์‚ฌ๋žŒ๋“ค์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๋ฃน ๋ฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋“ฑ์˜ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. http: ๋Œ€์‹  ipfs:๋ฅผ ํ†ตํ•ด ์ด ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฌผ๋ก  ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋ฉฐ ๋‘ ๊ณต๊ฐ„์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ ๊ณต๊ฐ„์— ์žˆ๋Š” ๊ฒƒ์ด ๋‹ค๋ฅธ ๊ณต๊ฐ„์— ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์นœ๊ตฌ๋Š” http: space์— ๋ฌธ์„œํ™”ํ•˜๊ณ  ๊ท€ํ•˜์˜ ์ถœํŒ๋ฌผ์€ ipfs: space์— ๋ฌธ์„œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(rdfhead๋กœ์„œ ์ €๋Š” Turtle์„ ํ˜•์‹์œผ๋กœ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. iI๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜์ง€๋งŒ JSONLD๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.)

/me๋Š” http://static.benet.ai/t/ipfs.pdf ๋ฅผ ์ฝ๊ธฐ ์œ„ํ•ด static.benet.ai์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  34 ๋Œ“๊ธ€

@jbenet๋‹˜ , IPFS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค. DHT(Kademlia ์œ ์‚ฌ) + ๋””์ง€ํ„ธ ์„œ๋ช… + ์ฟผ๋ฆฌ ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋„ท์—์„œ ์ด๋ฆ„ ์ง€์ •์„ ๋Œ€์ฒด(๊ฒฐ๊ตญ DNS ๋Œ€์ฒด)ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์กฐ์‚ฌํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ท€ํ•˜๊ฐ€ ํ•˜๊ณ  ์žˆ๋Š” ์ผ์— ๋งค์šฐ ๊ด€์‹ฌ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ•˜๊ณ  ์žˆ๋Š” ๊ธฐ๋ณธ ์ž‘์—…์€ IPFS( https://manu.sporny.org/2014/identity-credentials/ )๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ ์ค‘์ธ ์ž‘์—…์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ์— JSON-LD๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Telehash๋ฅผ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ๊ฐœ๋… ์ค‘ ์ผ๋ถ€๊ฐ€ IPFS๋ฅผ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ๊ฒฝ์šฐ๋“  ๋„คํŠธ์›Œํฌ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๊ณ„๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด JSON-LD๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. JSON-LD๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ W3C์—์„œ ๋ฐœ์ƒํ•˜๋Š” Web Payments ๋ฐ Credentials ์ž‘์—…์„ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ์ž‘์—… ์„ธํŠธ๋„ JSON-LD ์œ„์— ๊ตฌ์ถ•๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. JSON-LD์˜ ์ฃผ์š” ์ด์  ์ค‘ ํ•˜๋‚˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์†Œ์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ง€์ •ํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค์ด ๊ท€ํ•˜์™€ ํ˜‘๋ ฅํ•˜์ง€ ์•Š๊ณ  ํ”„๋กœํ† ์ฝœ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์‹œ์Šคํ…œ์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์„ฑ์žฅํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ค‘์š”ํ•จ).

์งˆ๋ฌธ์ด ์žˆ์œผ๋ฉด ์งˆ๋ฌธํ•˜์‹ญ์‹œ์˜ค. ๋„คํŠธ์›Œํฌ์˜ ๊ฐ JSON blob์— @context ๋ฅผ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์€ ๋ฌด๊ฑฐ์šด ์š”๊ตฌ ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ƒ๊ฐ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

DHT(Kademlia ์œ ์‚ฌ) + ๋””์ง€ํ„ธ ์„œ๋ช… + ์ฟผ๋ฆฌ ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋„ท์—์„œ ์ด๋ฆ„ ์ง€์ •์„ ๋Œ€์ฒดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(๊ฒฐ๊ตญ DNS ๋Œ€์ฒด).

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฌธ์„œ์˜ IPNS ์„น์…˜์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. http://static.benet.ai/t/ipfs.pdf (3.7). :)

ํ…”๋ ˆํ•ด์‹œ๋ฅผ ์•„์‹œ๋‚˜์š”?

์˜ˆ, ๋‚˜๋Š” ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋… + ๊ทธ๊ฒƒ์„ ๊ตฌ์ถ•ํ•˜๋ ค๋Š” ์ถ”์ง„๋ ฅ์„ ๋งค์šฐ ์ฐฌ์„ฑํ•˜์ง€๋งŒ ํ”„๋กœ์ ํŠธ์˜ ๋งŽ์€ ๊ฒฐ์ •์— ์ฐฌ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํƒœ๊ทธ ๋ผ์ธ์€ "JSON + UDP + DHT = Freedom"์ด์ง€๋งŒ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์‹œ์Šคํ…œ์€ (a) ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ๊ฐ•์ œํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๊ณ , (b) ์ „์†ก ํ”„๋กœํ† ์ฝœ์„ ๊ฐ•์ œํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๋ฉฐ, (c) ๊ฐ•์ œ๋กœ ์ „์†กํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ. ๋ฌผ๋ก  ์ด ์„ธ ๊ฐ€์ง€๊ฐ€ _์˜ค๋Š˜๋‚ _ ํ›Œ๋ฅญํ•œ ์„ ํƒ์ด์ง€๋งŒ ์ด๋Ÿฌํ•œ ํ”„๋กœํ† ์ฝœ์€ ๊ณ„์ธต๊ณผ ์‹œ๊ฐ„์— ๋งž๊ฒŒ ๊ตฌ์ถ•๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ IPFS๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ํ˜•์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  IPFS๋Š” ๋ชจ๋“  ์ „์†ก ์œ„์— ๊ณ„์ธตํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ฒซ ๋ฒˆ์งธ ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ์€ DHT์ด์ง€๋งŒ ํƒ์ƒ‰ํ•  ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

IPFS๋Š” Telehash + (merkle) Web์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๊ณ„๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ์›ํ•œ๋‹ค๋ฉด JSON-LD๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

JSON์„ ์ „์†ก์œผ๋กœ ์š”๊ตฌํ•˜์ง€ ์•Š๊ณ  ์ž‘์—…์˜ -LD ๋ถ€๋ถ„์„ ์ทจํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ท€ํ•˜์˜ (ํ›Œ๋ฅญํ•œ) ์ž‘์—…์€ ๋ชจ๋“  ํŠธ๋ฆฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ์ผ๋ฐ˜ํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ์‹œ๋งจํ‹ฑ ์›น ํ˜•์‹๋ณด๋‹ค ํ›จ์”ฌ ์šฐ์ˆ˜ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (๋†€๋ผ์šด ๋‹จ์ˆœ์„ฑ + ์œ ์—ฐ์„ฑ!) ๋”ฐ๋ผ์„œ ์ด ๋…ธํŠธ์—์„œ ๋‚ด๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์€ @context ์™€ ๋™์ผํ•˜์ง€๋งŒ IPFS ๋งํฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(JSON์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๋ฅผ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ์••์ถ• ํ˜•์‹์ž…๋‹ˆ๋‹ค. -- protobuf๋Š” ํ˜„์žฌ์ด์ง€๋งŒ ๋‚˜์ค‘์— ์ž์ฒด ์„ค๋ช…๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. -- ์ €๋Š” IPFS๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ž‘๋™ํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์ด ์•„๋‹ˆ๋ผ ๋ฏธ๋ž˜์— :) ).

๋„คํŠธ์›Œํฌ์˜ ๊ฐ JSON blob์— @context ๋ฅผ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์€ ํฐ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋„ค, ์ €๋„ ๋˜‘๊ฐ™์ด ์ฃผ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค :)

@jbenet re: https://github.com/dataprotocols/dataprotocols/issues/110#issuecomment -43430309 - ๋„ค, ๊ฑฐ๊ธฐ์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์ฃผ์žฅ์€ ๋งค์šฐ ํ›Œ๋ฅญํ•˜๊ณ  ์ž˜ ์•Œ๋ ค์ ธ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ดํ•˜๋Š” ์ผ์— ์ •๋ง ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์‹ ๋ฌธ์„ ํ›‘์–ด๋ณด๊ณ  ๋‹น์‹ ์˜ ๋น„๋””์˜ค๋ฅผ ๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์˜ค๋Š˜ ๋งˆ๊ฐํ•ด์•ผ ํ•˜๋Š” ๊ธฐํ•œ์ด ์žˆ์ง€๋งŒ ๋‹น์‹ ์˜ ๋…ผ๋ฌธ์„ ์ฝ๊ณ  ๋‚ด ํ• ์ผ ๋ชฉ๋ก์— ์žˆ๋Š” ์ „์ฒด ๋น„๋””์˜ค๋ฅผ ์‹œ์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„์‹œ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ €๋Š” W3C๋ฅผ ํ†ตํ•ด ์›น ํ‘œ์ค€์„ ๊ตฌ์ถ•ํ•˜๋Š” ์ผ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ท€ํ•˜๊ฐ€ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ์†”๋ฃจ์…˜์ด ํ•„์š”ํ•œ ์ผ๋ จ์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์ž‘์—… ์ค‘ ์ผ๋ถ€๋ฅผ ์›น์šฉ์œผ๋กœ ์ž‘์—… ์ค‘์ธ ์ฐจ์„ธ๋Œ€ W3C ํ‘œ์ค€ ๋กœ๊ทธ์ธ ์†”๋ฃจ์…˜์— ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค(์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๊ฒŒ์‹œ๋ฌผ). ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ Telehash๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ด์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์šฐ๋ ค๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ท€ํ•˜๋Š” ์šฐ๋ฆฌ์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋” ์ž˜ ๋งž์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ๋ถ„ํ•ดํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“  ๋‹น์‹ ์ด ๋งŒ๋“  ๊ฒƒ์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ ๋‹ค์Œ ๋‹ค์‹œ ์—ฐ๋ฝ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ผ์ฃผ์ผ ์•ˆ์— ์—ฐ๋ฝ์ด ์—†์œผ๋ฉด ๋‹ค์‹œ ํ•‘์„ ๋ณด๋‚ด์ฃผ์„ธ์š”.

@jbenet๋‹˜ , ์ฃผ๋ง์— ๋ฐฑ์„œ๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ณ  ํ”„๋ ˆ์  ํ…Œ์ด์…˜์„ ๋ณผ ๊ธฐํšŒ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ์— ์ด์•ผ๊ธฐํ•  ์‹œ๊ฐ„์„ ์ •ํ•ฉ์‹œ๋‹ค. ์ €๋Š” ๋ฏธ๊ตญ ๋™๋ถ€ ํ•ด์•ˆ์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ™”/์ˆ˜๋ฅผ ์ œ์™ธํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๋‚  ์˜ค์ „ 10์‹œ~์˜คํ›„ 2์‹œ ์ด์šฉ ๊ฐ€๋Šฅ. ๋‚ด ์ด๋ฉ”์ผ: [email protected] , Skype: msporny , SIP: sip:[email protected] ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ €์—๊ฒŒ ์—ฐ๋ฝํ•˜์„ธ์š”.

ipns์™€ ์ด wrt์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์›น ๋กœ๊ทธ์ธ, ์ž๊ฒฉ โ€‹โ€‹์ฆ๋ช… ๋ฐ ์›น ๊ฒฐ์ œ: https://manu.sporny.org/2014/identity-credentials/

@msporny ๋Œ€๋‹จํ•ด! ํ•  ๊ฒƒ์ด๋‹ค. ์ง€๊ธˆ ํ„ฐ์น˜๋ฒ ์ด์Šค์— ์ด๋ฉ”์ผ์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ ์—ฐ๋ฝ์ฒ˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ณต๊ฐœ ๋“ฑ).

์šฐ๋ฆฌ๋Š” ์˜ค๋Š˜ IRC์—์„œ "์ด๊ฒƒ์ด ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฌผ๊ฑด์ž…๋‹ˆ๊นŒ?" ์งˆ๋ฌธ์— ๋‹ตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‘˜๋Ÿฌ๋ณด๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. @jbenet ์€ LSON-LD ์Šคํƒ€์ผ @type ๋˜๋Š” @context ๋งํฌ๋ฅผ ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ ํ•ด๋‹น ์ฒด์ธ์—์„œ ์–ด๋–ป๊ฒŒ ๋น ์ ธ๋‚˜์™”๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. @context ๋งํฌ๊ฐ€ ๋งจ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋‚˜์š”? @tv42 ๋Š” ๋˜ํ•œ ๋””๋ ‰ํ† ๋ฆฌ ๋…ธ๋“œ๊ฐ€ ํ‚ค๋กœ ์ž์‹ ์„ธ๊ทธ๋จผํŠธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ ์ด๋ฆ„๊ณผ์˜ ์ถฉ๋Œ์— ๋Œ€ํ•œ ์šฐ๋ ค๋ฅผ ์ œ๊ธฐ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ธ๊ทธ๋จผํŠธ ์ด๋ฆ„์— ์ ‘๋‘์‚ฌ๋ฅผ ๋ถ™์ด๊ฑฐ๋‚˜ ์ด์Šค์ผ€์ดํ”„ ์ฒ˜๋ฆฌํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์œ ํ˜• ์„ค๋ช…์— ๋Œ€ํ•œ ํ•ด์‹œ ID๋ฅผ ๋ณด์œ ํ•˜๊ธฐ ์œ„ํ•ด ๋ช…์‹œ์  ์œ ํ˜• ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ์ž‘์—…์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ์ผ์„ ๋” ๋งŽ์ด ๊ธฐ๋Œ€ํ•œ๋‹ค๋ฉด ์•„๋งˆ๋„ ๋งํฌ๋ฅผ ๋‚ด๋ถ€ ๋ฐ ์™ธ๋ถ€ ์„ธํŠธ๋กœ ๋ถ„ํ• ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. $ @context ์œ ํ˜• ํ•ญ๋ชฉ์„ @context ํŒŒ์ผ ํ•ญ๋ชฉ ( ์˜ˆ๋ฅผ ๋“ค์–ด).

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ˜•์‹์€ (๊ฑฐ์˜ ํ™•์‹คํžˆ) ์ด ์‹œ์ ์—์„œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ช‡ ๋‹ฌ์„ ์ด๊ฒƒ์œผ๋กœ ๋“์ด๊ณ  ๋‹ค์‹œ ํ™์ˆ˜ ๋ฌธ์„ ์—ด์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งํฌ ํ™•์žฅ๊ณผ ๊ฐ™์€ ๋‚˜๋จธ์ง€ ์งˆ๋ฌธ์€ ์–ผ๋งˆ ๋™์•ˆ ์•Œ๋ ค์กŒ์œผ๋ฉฐ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ipfs ๊ฐ์ฒด๋Š” json ๋˜๋Š” ๋‹ค๋ฅธ ๊ฒƒ๊ณผ ๊ฐ™์€ ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด๋Š” JSON(JSON-LD, JSON-์Šคํ‚ค๋งˆ ๋“ฑ ํฌํ•จ)์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์†”๋ฃจ์…˜์„ IPFS์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ RDF ํŠธ๋ฆฌํ”Œ์„ ipfs ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌด์—‡์ด๋“  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ๋ฐ์ดํ„ฐ๋Š” ๋งค์šฐ ์ง€์ €๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์„ธ๊ณ„ ์–ด๋Š ๋ˆ„๊ตฌ๋„ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ํŠน์ • ๋ฐ์ดํ„ฐ ์œ ํ˜• ์ง€์ • ์‹œ์Šคํ…œ์„ ์ฑ„ํƒํ•˜๋„๋ก ๊ฐ•์š”ํ•˜๋Š” ๋ฐ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ์ด๋Ÿฌํ•œ ์ฃผ์žฅ์— ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์žฅ๊ธฐ์ ์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์œ ์ผํ•œ ์†”๋ฃจ์…˜์€ ์‚ฌ๋žŒ๋“ค์ด ์›ํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ด๋“  ํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์œ ์—ฐํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ๋‹จ๋‹จํ•˜๊ฒŒ ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์ œ _preferred_ ๋ฐฉ์‹(์‚ฌ๋žŒ๋“ค์ด ์ผ์„ ํ•˜๋„๋ก ์ œ์•ˆํ•˜๋Š” ๋ฐฉ์‹)์€ (๋†€๋ผ์šธ ์ •๋„๋กœ ๊ฐ•๋ ฅํ•˜๊ณ  ๊ฐ„๋‹จํ•œ) JSON-LD์˜ @context / @type ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‚˜๋Š” ๋‹น์‹ ์ด ์–ด๋–ป๊ฒŒ ๊ทธ ์‚ฌ์Šฌ์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ฒด์ธ์ด ์—†์œผ๋ฏ€๋กœ ์ปจํ…์ŠคํŠธ๋ฅผ ํ•œ ๋ฒˆ๋งŒ ํ•ด๊ฒฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ปจํ…์ŠคํŠธ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์œ ํšจํ•œ ์ปจํ…์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ(์‚ฌ์–‘์ด ์žˆ์Œ) ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์ด๋Ÿฌํ•œ ์œ ํ˜•์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ _์˜์กดํ•ด์„œ๋Š” ์•ˆ ๋˜๋ฉฐ, ๊ทธ๋Ÿด ๋•Œ ํ™œ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@tv42 ๋Š” ๋˜ํ•œ ๋””๋ ‰ํ† ๋ฆฌ ๋…ธ๋“œ๊ฐ€ ์ž์‹ ์„ธ๊ทธ๋จผํŠธ ์ด๋ฆ„์„ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ ์ด๋ฆ„๊ณผ์˜ ์ถฉ๋Œ์— ๋Œ€ํ•œ ์šฐ๋ ค๋ฅผ ์ œ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

dir ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ์ด๋ฏธ @context ๊ฐ€ ์žˆ์œผ๋ฉด ๋‹ค๋ฅธ ํŒŒ์ผ ์ƒ์„ฑ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (๋˜๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ (์•ˆ์ •๋œ ์ •๋ ฌ) ๋’ค์— ๋งํฌ๋ฅผ ์ถ”๊ฐ€). ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋‘ ๊ฐœ์˜ ํŒŒ์ผ์„ ๋งŒ๋“ค๋ ค๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

2015๋…„ 5์›” 1์ผ ๊ธˆ์š”์ผ 03:51:22AM -0700์— Juan Batiz-Benet์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ˜•์‹์€ ํ˜„์žฌ (๋Œ€๋ถ€๋ถ„) ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜
๋ช‡ ๋‹ฌ ๋™์•ˆ ๊ทธ๊ฒƒ์„ ๋“์ด๊ณ  ํ™์ˆ˜๋ฅผ ์—ด์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‹ค์‹œ ๊ฒŒ์ดํŠธ. ๋‚˜๋จธ์ง€ ์งˆ๋ฌธ(์˜ˆ: ๋งํฌ ํ™•์žฅ)
์–ผ๋งˆ ๋™์•ˆ ์•Œ๋ ค์กŒ์œผ๋ฉฐ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ.

๋งํฌ ํ™•์žฅ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งํฌ ํ‚ค ์ ‘๋‘์‚ฌ
๋„ค์ž„์ŠคํŽ˜์ด์Šค๋„ ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ ํ˜• ์ •๋ณด ์ฑ„์šฐ๊ธฐ
into Data๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(์ด๊ฒƒ์ด ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
[1,2,3,4,5]). ์œ ํ˜•์„ ์—ด๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ์ง€์† ๊ฐ€๋Šฅํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์•„๋‹ˆ์ง€๋งŒ
์ด๋Ÿฌํ•œ ์žฅ์†Œ ์ค‘ ํ•˜๋‚˜๋Š” ์œ ํ˜• ํ•ด์‹œ๋ฅผ ์ €์žฅํ•˜๋Š” ์žฅ์†Œ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ _์„ ํ˜ธํ•˜๋Š”_ ๋ฐฉ์‹ -- ์‚ฌ๋žŒ๋“ค์ด ์ผ์„ ํ•˜๋„๋ก ์ œ์•ˆํ•˜๋Š” ๋ฐฉ์‹
-- @context / @type ๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
(๋†€๋ผ์šธ ์ •๋„๋กœ ๊ฐ•๋ ฅํ•˜๊ณ  ๊ฐ„๋‹จํ•œ) JSON-LD.

JSON-LD๋Š” ๊ดœ์ฐฎ์ง€๋งŒ ์ฃผ๋ณ€ ์ƒํƒœ๊ณ„๊ฐ€ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
@-์ ‘๋‘์‚ฌ๋Š” ํŠน๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ํŠน๋ณ„ํ•จ์ด ์ €์žฅ๋˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•œ๋‹ค
์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ(์˜ˆ:
๋‚ด๋ถ€/์™ธ๋ถ€ ํ”Œ๋ž˜๊ทธ) ๋”ฐ๋ผ์„œ @context ์‚ฌ์ด์— ๋ชจํ˜ธ์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.
ํŒŒ์ผ ๋ฐ @context ์œ ํ˜• ๋งํฌ. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ํŒŒ์ผ/ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ๋งํฌ์— ํ‚ค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
'์•„์ด/์™€', ๊ทธ๋Ÿฌ๋ฉด ์œ ํ˜•์— ๋Œ€ํ•œ '์ปจํ…์ŠคํŠธ'๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒŒ์ผ(๋˜๋Š” ๋ฌด์—‡์ด๋“ )์— ๋Œ€ํ•œ ๋งํฌ ๋ฐ 'ํ•˜์œ„/์ปจํ…์ŠคํŠธ'. ์•„์ง ์ง„ํ–‰ ์ค‘์ด์•ผ
๊ฐ์ฒด ์ƒ์„ฑ๊ธฐ๊ฐ€ ์™ธ๋ถ€์—์„œ ์ •์˜ํ•œ ๊ทœ์น™์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์†Œ๋น„์ž๋Š” ์ž๊ธฐ ์„ค๋ช…์ด ์—†๋Š” ์ฑ„๋„์„ ํ†ตํ•ด ๋™์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‚˜๋Š” ๋‹น์‹ ์ด ์–ด๋–ป๊ฒŒ ๊ทธ ์‚ฌ์Šฌ์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์Šฌ์ด ์—†๋‹ค, ๋‹น์‹ ์€ ํ•ด๊ฒฐ
์ปจํ…์ŠคํŠธ ํ•œ ๋ฒˆ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ์ปจํ…์ŠคํŠธ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
๋ฌผ์ฒด. ์œ ํšจํ•œ ์ปจํ…์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ -- ์‚ฌ์–‘์ด ์žˆ์Šต๋‹ˆ๋‹ค -- ๋‹น์‹ ์€
๋ฌด์‹œํ•ด.

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์–ด๋–ป๊ฒŒ ๋๋‚ด๋Š”์ง€ ๊ถ๊ธˆํ•˜๋‹ค
์ฒด์ธ:

A๋Š” ์–ด๋–ค ์œ ํ˜•์ธ๊ฐ€์š”? A/ @context ๋ฅผ ๋”ฐ๋ผ B๋กœ ๊ฐ€๋ด…์‹œ๋‹ค. B๋Š” ์–ด๋–ค ์œ ํ˜•์ธ๊ฐ€์š”?
B/ @context ๋ฅผ ๋”ฐ๋ผ C๋กœ ๊ฐ€์žโ€ฆ

๊ทธ๋Ÿฌ๋‚˜ B ์‚ฌ์–‘(๋‚ด ์˜ˆ์—์„œ๋Š” C)์„ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š”
B/ @context ๋งํฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฑ„๋„์ด ์žˆ๋Š” ๊ฒฝ์šฐ
์œ ํ˜• ์‚ฌ์–‘(C)์„ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐฐํฌํ•˜๋Š” ๋ฐ๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ?
์œ ํ˜• ์Šคํ‚ค๋งˆ ์ž์ฒด(B)? ๊ทธ๋ƒฅ ์žˆ๋Š”๊ฒŒ ๋‚˜์„๋“ฏ.
๊ฐ์ฒด๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋‹ค์ค‘ ํ•ด์‹œ๋ฅผ ๋ณด์œ ํ•˜๋Š” ๊ฐ์ฒด์˜ ์ผ๋ฐ˜์ ์ธ ์œ„์น˜
์œ ํ˜•( @context ๋งํฌ ๋“ฑ). ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ธธ์„ ๋ฒ—์–ด๋‚˜
๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์‚ฐ์ž/์†Œ๋น„์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋งก๊ธฐ์‹ญ์‹œ์˜ค.
์œ ํ˜• ์ •์˜์— ๋Œ€ํ•œ ์ฐธ์กฐ(์‚ฌ์–‘ C, Cv2 ๋˜๋Š”
๋Œ€์•ˆ CCv1.3, ๋˜๋Š” ...) ๋˜๋Š” ๋ฉ€ํ‹ฐ ํ•ด์‹œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ
๋ถˆํˆฌ๋ช…ํ•œ ์‹๋ณ„์ž. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์—ฌ์ „ํžˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šค์œ„์น˜ pbn.GetType() {
case ft.T๋””๋ ‰ํ† ๋ฆฌ:
root.val = NewDirectory(pointsTo.String(), mnode, ๋ฃจํŠธ, fs)

GetType์ด @context Link ํ•ด์‹œ(๋˜๋Š”
์–ด๋””์—์„œ๋‚˜), TDirectory๋Š” ๋‹ค์ค‘ ํ•ด์‹œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
(QmWellKnownDirectoryType).

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์ด๋Ÿฌํ•œ ์œ ํ˜•์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ _์˜์กดํ•ด์„œ๋Š” ์•ˆ๋˜์ง€๋งŒ
์žˆ์„ ๋•Œ ํ™œ์šฉํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€ ๋ถˆํˆฌ๋ช…ํ•œ ์‹๋ณ„์ž์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ์šฐ๋ฆฌ๋Š” ๊ฐ™์€ ๋ง์„ ํ•˜๊ณ  ์žˆ์„์ง€๋„ ๋ชฐ๋ผ
๋ฌผ๊ฑด ;).

@tv42 ๋Š” ๋˜ํ•œ ํŒŒ์ผ ์ด๋ฆ„๊ณผ์˜ ์ถฉ๋Œ์— ๋Œ€ํ•œ ์šฐ๋ ค๋ฅผ ์ œ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.
๋””๋ ‰ํ† ๋ฆฌ ๋…ธ๋“œ๋Š” ์ž์‹ ์„ธ๊ทธ๋จผํŠธ ์ด๋ฆ„์„ ํ‚ค๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

dir ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ์ด๋ฏธ @context ๊ฐ€ ์žˆ์œผ๋ฉด ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ํŒŒ์ผ ์ƒ์„ฑ--(๋˜๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ ๋งํฌ๋ฅผ ๋’ค์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
(์•ˆ์ •๋œ ์ •๋ ฌ)). ๋‘ ๊ฐœ์˜ ํŒŒ์ผ์„ ๋งŒ๋“ค๋ ค๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ฐ™์€ ์ด๋ฆ„.

@context ํŒŒ์ผ์„ ๋ถˆ๋ฒ•์œผ๋กœ ๋งŒ๋“ค๋ ค๋Š” ๊ฒฝ์šฐ ;). ์›ํ•˜๋Š” ๊ฒฝ์šฐ
์‚ฌ๋žŒ๋“ค์ด @context ํŒŒ์ผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
"์ด ๋งํฌ๋Š” ์œ ํ˜•์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค"์™€ "์ด ๋งํฌ๋Š”
ํŒŒ์ผ/ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ/โ€ฆ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค
๊ทธ ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๋“ค ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋Š” ํ•œ ๋‚˜๋Š” ํ–‰๋ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค
;).

๋ฉฐ์น  ์ „์— @cryptix ์™€ ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆ„์—ˆ๊ณ  JSON-LD ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. json-ld์— ๋Œ€ํ•œ ์‚ฌ์–‘์—์„œ๋Š” "๋งํฌ"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ json์—์„œ json-ld๋กœ์˜ ๋งคํ•‘์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์ง€์ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ํ˜„์žฌ "ํž™"ํ•œ RDF์— ๋Œ€ํ•ด ์žฌ๊ตฌ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ json-ld๋ฅผ ์ค€์ˆ˜ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

http://www.w3.org/TR/json-ld/#interpreting -json-as-json-ld

2015๋…„ 5์›” 1์ผ ๊ธˆ์š”์ผ 09:24:27 PM -0700์— W. Trevor King์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

๋งํฌ ํ™•์žฅ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งํฌ ํ‚ค ์ ‘๋‘์‚ฌ
๋„ค์ž„์ŠคํŽ˜์ด์Šค๋„ ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ ํ˜• ์ •๋ณด ์ฑ„์šฐ๊ธฐ
into Data๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(์ด๊ฒƒ์ด ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
[1,2,3,4,5]). ์œ ํ˜•์„ ์—ด๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ์ง€์† ๊ฐ€๋Šฅํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์•„๋‹ˆ์ง€๋งŒ
์ด๋Ÿฌํ•œ ์žฅ์†Œ ์ค‘ ํ•˜๋‚˜๋Š” ์œ ํ˜• ํ•ด์‹œ๋ฅผ ์ €์žฅํ•˜๋Š” ์žฅ์†Œ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ ์ฐธ๊ณ  ์‚ฌํ•ญ(ํ•ด์‹œ๋œ ์œ ํ˜• ID ๋ฐฐํฌ
ํŽ˜์ด๋กœ๋“œ), @tv42 ์—์„œ Ethos ETypes [1,2,3]์— ๊ด€์‹ฌ์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ
๋‚˜๋Š” ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์— ๋Œ€ํ•œ ์ผ์ข…์˜ ๋ช…์‹œ์ ์ธ ์Šฌ๋กฏ์ด ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์—„์ฒญ๋‚œ.

EType์„ ๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ํ‘œ๋ฉดํ™”ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ๋ฉฐ์น  ๋™์•ˆ ์ฝ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ด€๋ จ๋œ ๊ฒƒ์€ Kathleen Fisher์˜ PADS ์ž‘์—… + ๊ด€๋ จ์ž…๋‹ˆ๋‹ค. PADS ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง€ ๊ฐ€ ์ตœ๊ทผ์— ๋ณ€๊ฒฝ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. (๊ทธ๋Ÿฌ๋‚˜ ์ธํ„ฐ๋„ท ์•„์นด์ด๋ธŒ๋Š” ์šฐ๋ฆฌ๋ฅผ ๋‹ค์‹œ ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค \o/: http://web.archive.org/web/20130125041549/http://www.padsproj.org/ )

์–ด์จŒ๋“ , PADS๋Š” ๋งค์šฐ ์˜ณ์€ ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ๊นŒ์ง€ ๋‚ด๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๊ด‘๋ฒ”์œ„ํ•œ ๊ตฌํ˜„์„ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์—ฌ๊ธฐ์—์„œ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” JSON-LD ์Šคํƒ€์ผ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

JSON-LD๋Š” @context ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋งŒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ํŠนํžˆ ๊ฐ ๋งํฌ ์ด๋ฆ„(JSON์˜ ํ‚ค)์€ ๋‹ค์Œ ๋ฒ”์ฃผ ์ค‘ ํ•˜๋‚˜์— ์†ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • @context : ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ปจํ…์ŠคํŠธ ๋งํฌ ๋˜๋Š” ์ธ๋ผ์ธ ๋…ธ๋“œ
  • @id : ํ˜„์žฌ ๋…ธ๋“œ์˜ URI
  • schema://full-uri : ์ˆ ์–ด๊ฐ€ URI์ธ ๋งํฌ๋กœ ์ธ์‹
  • prefix:name : ์ˆ ์–ด๊ฐ€ ์ ‘๋‘์–ด URI(์ปจํ…์ŠคํŠธ์— ์ •์˜๋จ)์™€ ์ด๋ฆ„์˜ ์—ฐ๊ฒฐ์ธ ๋งํฌ๋กœ ์ธ์‹๋ฉ๋‹ˆ๋‹ค.
  • name: ์ปจํ…์ŠคํŠธ์— ์ •์˜๋œ ๊ฒฝ์šฐ์—๋งŒ ๋งํฌ๋กœ ์ธ์‹๋ฉ๋‹ˆ๋‹ค.

ํŠนํžˆ JSON-LD๋Š” ์ž„์˜์˜ ํ‚ค/๊ฐ’ ๋งต์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ‚ค๊ฐ€ URI๋กœ ํ•ด์„๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด URI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ˆ ์–ด๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ์€ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

{
  "http://xmlns.com/foaf/0.1/name": "<!DOCTYPE html><html><body><p>Hello World</p></body></html>"
}

http://xmlns.com/foaf/0.1/name ๋Š” ์›น ํŽ˜์ด์ง€์˜ ์บ์‹œ๋œ ๋ฒ„์ „์ด ์•„๋‹ˆ๋ผ ํ•ญ์ƒ FOAF ์ด๋ฆ„์„ ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ฐ˜๋“œ์‹œ ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์ง€๋งŒ ๊ฐœ์ฒด ํ˜•์‹์„ ๋””์ž์ธํ•  ๋•Œ ๋งํฌ๋ฅผ ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ๋กœ ํ•ด์„ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋””๋ ‰ํ† ๋ฆฌ๋Š” JSON-LD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{
  "@context": {
    "entry": {
      "@id": "http://schema/unixfs#entry",
      "name": "http://schema/unixfs#filename",
      "content": {
        "@id": "http://schema/unixfs#filename",
        "@type": "@id"
      }
    }
  },
  "entry": [
    {
      "name": "README.md"
      "content": "/ipfs/<hash-of-README.md>"
    }
  ]
}

IPFS-LD์—์„œ ์šฐ๋ฆฌ๋Š” ๊ฐ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ปจํ…์ŠคํŠธ์™€ ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๋…ธ๋“œ๋ฅผ ๊ฐ€์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ฐ ํ•ญ๋ชฉ์—๋Š” ๊ณ ์œ ํ•œ ์ปจํ…์ŠคํŠธ, ์ด๋ฆ„์ด ํฌํ•จ๋œ ๋…ธ๋“œ ๋ฐ ํŒŒ์ผ ๋‚ด์šฉ์ด ์žˆ๋Š” ๋…ธ๋“œ์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด JSON ๋ฌธ์„œ์— ํ—ˆ์šฉ๋˜๋Š” ์—ฌ๋Ÿฌ ์ˆ˜์ค€์˜ ๊ฐ„์ ‘ ์ฐธ์กฐ๊ฐ€ ์ถ”๊ฐ€๋˜์ง€๋งŒ(๋ชจ๋“  ๊ฒƒ์ด ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ์••์ถ•๋˜๊ธฐ ๋•Œ๋ฌธ์—) ๊ฐ ๋…ธ๋“œ์— ๋‹ค๋ฅธ ํ•ด์‹œ๊ฐ€ ์žˆ๊ณ  ๊ฐœ๋ณ„์ ์œผ๋กœ ์ถ”์ ํ•ด์•ผ ํ•˜๋Š” IPFS์—๋Š” ํ—ˆ์šฉ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์€ JSON-LD๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ JSON-LD์—์„œ ์˜๊ฐ์„ ์–ป์€ ์ž์ฒด ์ปจํ…์ŠคํŠธ ํ˜•์‹์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜•์‹์ด JSON์ด ์•„๋‹ˆ๊ณ  ๋งค์šฐ ๊ตฌ์ฒด์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž„์˜์˜ ํ‚ค ๋งต(unixfs์šฉ)์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๊ณ  IPFS ๊ฐœ์ฒด์˜ ๋ฐ์ดํ„ฐ ์„น์…˜๋„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค(JSON์—๋Š” ํ•ด๋‹น ํ•ญ๋ชฉ์ด ์—†์Šต๋‹ˆ๋‹ค. ).

IPFS ๊ฐœ์ฒด์˜ ๋งํฌ ์„น์…˜์€ ๋งค์šฐ ์ œํ•œ์ ์ด๋ฏ€๋กœ ๋งํฌ์—๋Š” ์ด๋ฆ„์ด ์žˆ๊ณ  ๋‹ค๋ฅธ ๊ฐœ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’์„ ํฌํ•จํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ปจํ…์ŠคํŠธ์—์„œ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ URI ํ˜•์‹์˜ ๋งํฌ์˜ ์™„์ „ํ•œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์„น์…˜๋„ ์žˆ์œผ๋ฏ€๋กœ ํฌํ•จํ•  ๋‚ด์šฉ์„ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

unixfs์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ๊ฐ์ฒด๋ฅผ ์ƒ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • directory :

    • ๋””๋ ‰ํ† ๋ฆฌ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” @context ๋งํฌ

    • README.md ๊ฐœ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” entry:README.md ๋งํฌ

    • ๋ฐ์ดํ„ฐ ์—†์Œ

  • README.md :

    • ํŒŒ์ผ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” @context ๋งํฌ

    • README.md ๋‚ด์šฉ์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์„น์…˜

  • ๋””๋ ‰ํ† ๋ฆฌ ์ปจํ…์ŠคํŠธ:

```
{
// @type : IPFS ๊ฐ์ฒด์˜ ํƒ€์ž…
"@type": " http://schema/unixfs#Directory "

// entry: declares the links starting with "entry:"
//   <strong i="38">@id</strong>: the relationship with the pointed object
//   <strong i="39">@key</strong>: the relationship with the link name suffix (after ':')
"entry": {
  "@id": "http://schema/unixfs#containsEntry",
  "@key": "http://schema/unixfs#hasFilename"
}

}
```

  • ํŒŒ์ผ ์ปจํ…์ŠคํŠธ:

```
{
"@type": " http://schema/unixfs#File "

// <strong i="50">@data</strong>: the relationship with the data section of the object
"@data": "http://schema/unixfs#content"

}
```

์ด๊ฒƒ์„ ์‚ผ์ค‘์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# Contained in directory object:
<hash of directory>        <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema/unixfs#Directory>
<hash of directory>        <http://schema/unixfs#containsEntry>              <hash of README.md object>
<hash of README.md object> <http://schema/unixfs#hasFilename>                "README.md"

# Contained in README.md object:
<hash of README.md object> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema/unixfs#File>
<hash of README.md object> <http://schema/unixfs#content>                    DATA SECTION of README.md

์•ˆ๋…•ํ•˜์„ธ์š” @mildred -- ํ›Œ๋ฅญํ•œ ๋ถ„์„์ž…๋‹ˆ๋‹ค. ์žฌ๋ฏธ์žˆ๊ฒŒ๋„ irc://irc.frennode.org#json -ld์—์„œ dlongley์™€์˜ ๋Œ€ํ™”์—์„œ ๋™์ผํ•œ ๊ฒฐ๋ก ์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค(๊ด€์‹ฌ ์žˆ๋Š” ๊ฒฝ์šฐ ๋กœ๊ทธ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Œ)

๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ ์ข€ ๋” ๊ด€๋Œ€ํ•œ IPLD ์œ ํ˜•์„ ์‹คํ—˜ํ•ด ์™”์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์˜ˆ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์ตœ์ข…(๋˜๋Š” ์ •ํ™•ํ•œ๊ฐ€?)๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ๋ฐฉํ–ฅ ๊ฐ๊ฐ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š” ์ฐธ๊ณ  ์‚ฌํ•ญ:

  • ๋‹ค๋ฅธ ๊ฐ’์˜ ํฌํ•จ _ํ—ˆ์šฉ_์— ๋Œ€ํ•œ ํŽธ์•ˆํ•œ ๋งํฌ(๋งŽ์€ ์š”์ฒญ), ์šฐ๋ฆฌ๋Š” {"@type": "mlink", "hash": "<multihash>"} ๋งŒ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ปจํ…์ŠคํŠธ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒฝ๋กœ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ _nest_ ๋งํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: https://github.com/ipfs/go-ipld/blob/master/ipld.go#L122 -L141).

๋‚˜๋Š” ๋‹น์‹ ๊ณผ ๋‚ด๊ฐ€ ์˜ณ์€ ๊ธธ์„ ๊ฐ€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ JSON-LD์—์„œ ๋งŽ์ด ๋ฒ—์–ด๋‚˜์ง€ ์•Š๊ณ ๋„ ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ง€ ๋ช‡ ๊ฐ€์ง€ ์ œํ•œ์„ ๋ฒ„๋ฆฌ๊ณ 

@mildred๋Š” ์—ฌ๊ธฐ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ -- dlongley์™€์˜ ๋Œ€ํ™”์—์„œ -- ๊ธฐ์ˆ ์ ์œผ๋กœ JSON-LD ํ‘œ์ค€์—์„œ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๊ณ  ์›ํ•˜๋Š” ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ _๋ณ€ํ™˜(์••์ถ•/ํ™•์žฅ)์„ ํ˜ธ์ถœํ•˜๋ฉด ๋ชจ๋“  "๋น„ -์ปจํ…์ŠคํŠธ ์ •์˜" ํ‚ค. (์ผํƒˆํ•˜์ง€ ์•Š๋„๋ก ๋…ธ๋ ฅํ•ด์•ผ ํ•จ)

JSON์„ ๋ณ€ํ™˜ํ•  ๋•Œ json-ld.js ํŒŒ์„œ๊ฐ€ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒ์„ฑ๋œ ํŠธ๋ฆฌํ”Œ์˜ ๊ด€์ ์—์„œ JSON-LD๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ๋งŽ์€ ํ˜ผ๋ž€์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. JSON ๋ณ€ํ™˜ ๋‹จ๊ณ„๋Š” ํ•ด๋‹น ํŒŒ์„œ์—๋งŒ ํ•ด๋‹น๋˜๋ฉฐ ๋ฌธ์ œ ์—†์ด ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ์ƒ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ go-ipld ๋กœ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์ž˜ ์ดํ•ดํ•œ๋‹ค๋ฉด ํ˜„์žฌ IPFS ๊ฐœ์ฒด์˜ Link ์„น์…˜์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งž์Šต๋‹ˆ๊นŒ? ์ด ๊ฒƒ: merkledag.proto

๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ํšจ์œจ์ ์ธ ์ฒ˜๋ฆฌ(๊ฒฝ๋กœ์™€ ์ง์ ‘ ๊ด€๋ จ๋œ ๋งํฌ ์ด๋ฆ„ ๋ฐ ๋งํฌ ํ•ด์‹œ)๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์ด์ œ๋Š” ์กฐ๊ธˆ ๋” ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ๋œ ํ•ด์‹œ๋ฅผ ์–ป์œผ๋ ค๋ฉด ํ•ด์‹œ ํ…Œ์ด๋ธ”์—์„œ "mlink" ๋ฌธ์ž์—ด์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์ •๋ง ํ•„์š”ํ•œ๊ฐ€์š”?

์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ/RDF๋ฅผ ์›ํ•œ๋‹ค๋ฉด ๋‹จ์ˆœํžˆ ์ž์‹ ์˜ ์™€์ด์–ด ํ˜•์‹(protobuf๋Š” ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ํ•œ ํ›Œ๋ฅญํ•จ)๊ณผ JSON์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ทธ ์œ„์— JSON-LD ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•ด Unixfs๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ํ›Œ๋ฅญํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. JSON-LD ํ‚ค๋Š” ๋ชจ๋“  ์ƒํ™ฉ์—์„œ RDF ์ˆ ์–ด๋ฅผ ์ฐธ์กฐํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ ์ด๋ฆ„์„ JSON-LD ํ‚ค๋กœ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€ ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’์ž…๋‹ˆ๋‹ค.

๋Œ€์‹ ์—:

{
  "@context": "/ipfs/Qmf1ec6n9f8kW8JTLjqaZceJVpDpZD4L3aPoJFvssBE7Eb/merkleweb",
  "foo": {
    "@type": "mlink",
    "@value": <multihash>,
    "unixType": "dir",
    "unixMode": "0755",
  },
  "bar.jpeg": {
    "@type": "mlink",
    "@value": <multihash>,
    "unixType": "file",
    "unixMode": "0644",
  }
}

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ชจ๋ธ๋ง ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค :

{
  <strong i="16">@context</strong>: {
    "ipfs":   "tag:ipfs.io,2015:ipfs:"
    "unixfs": "tag:ipfs.io,2015:unixfs:"
  }
  <strong i="17">@type</strong>: "unixfs:directory"
  "unixfs:contains": [
    {
      "@id":   "ipfs://<IPFS Hash>"
      "@type": ["unixfs:directory"]
      "unixfs:name": "foo"
      "unixfs:mode": "0755"
    },
    {
      "@id":   "ipfs://<IPFS Hash>"
      "@type": ["unixfs:file"]
      "unixfs:name": "bar.jpeg"
      "unixfs:mode": "0644"
    }
  ]
}

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋ฐ”์ด๋„ˆ๋ฆฌ/์ง๋ ฌํ™”๋œ ๋ฒ„์ „์€ ์ด์™€ ๊ฐ™์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋งˆ์ง€๋ง‰ ํ‘œ๊ธฐ๋ฒ•์„ RDF ํŠธ๋ฆฝ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

DIRECTORY              <tag:ipfs.io,2015:unixfs:contains> <ipfs://Hash:foo>
DIRECTORY              <tag:ipfs.io,2015:unixfs:contains> <ipfs://Hash:bar.jpeg>
<ipfs://Hash:foo>      <strong i="21">@type</strong>                              <tag:ipfs.io,2015:unixfs:directory>
<ipfs://Hash:foo>      <tag:ipfs.io,2015:unixfs:name>     "foo"
<ipfs://Hash:foo>      <tag:ipfs.io,2015:unixfs:mode>     "0755"
<ipfs://Hash:bar.jpeg> <strong i="22">@type</strong>                              <tag:ipfs.io,2015:unixfs:file>
<ipfs://Hash:bar.jpeg> <tag:ipfs.io,2015:unixfs:name>     "bar.jpeg"
<ipfs://Hash:bar.jpeg> <tag:ipfs.io,2015:unixfs:mode>     "0644"

์ €๋Š” IRC์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์ €ํ•˜์ง€ ๋ง๊ณ  ์ €์—๊ฒŒ ํ•‘์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.

์ด ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•œ RDF์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์—ฌ๊ธฐ์— ์•ฝ๊ฐ„์˜ ์„ค๋ช…์ด ์žˆ์Šต๋‹ˆ๋‹ค.

RDF๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. JSON-LD ๋’ค์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. RDF์—์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ํŠธ๋ฆฌํ”Œ๋กœ ์ธ์ฝ”๋”ฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<subject> <predicate> <object>
  • ์ฃผ์ฒด๋Š” URI๋กœ ์‹๋ณ„๋˜๋Š” ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค.
  • ์ˆ ์–ด๋Š” <http://www.w3.org/1999/02/22-rdf-syntax-ns#name> ์™€ ๊ฐ™์€ URI์ž…๋‹ˆ๋‹ค. URI๋Š” ๊ด€๊ณ„๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์ •์˜ํ•˜๋ฉฐ ์‚ฌ์–‘์ด๋‚˜ ์Šคํ‚ค๋งˆ์— ์ž˜ ์ •์˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐœ์ฒด๋Š” ๋งํฌ/์ˆ ์–ด์˜ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค. ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’(์„ ํƒ์ ์œผ๋กœ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด, ์˜ˆ๋ฅผ ๋“ค์–ด ์ •์ˆ˜ ๋˜๋Š” ๋‚ ์งœ, ์ผ๋ฐ˜์ ์œผ๋กœ xsd ์Šคํ‚ค๋งˆ์—์„œ ํŒŒ์ƒ๋จ)์ด๊ฑฐ๋‚˜ URI๋กœ ์‹๋ณ„๋˜๋Š” ๋‹ค๋ฅธ ๋…ธ๋“œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ผ์ค‘ ํ‘œ๊ธฐ๋ฒ•์€ ๋ชจ๋“  ์ฃผ์ œ ๋ฐ ๊ฐœ์ฒด ๋…ธ๋“œ์— ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” URI๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ํŠธ๋ฆฌํ”Œ์„ ๋‚˜์—ดํ•˜์—ฌ ์™„์ „ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

JSON-LD์˜ JSON ํ‚ค๋Š” ์ฃผ์ฒด(ํ‚ค๊ฐ€ ์žˆ๋Š” ๊ฐ์ฒด)์™€ ๊ฐ์ฒด(JSON-LD ํ‚ค์˜ ๊ฐ’)๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์ˆ ์–ด์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ URI๋Š” ์ฃผ์ฒด์™€ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ฒด์˜ URI๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด @id ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

HTTP๋ฅผ ํ†ตํ•ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋น„๊ตํ•˜์—ฌ IPFS๋ฅผ ํ†ตํ•œ ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ์„ค๋ช…ํ•˜๋Š” ๊ธ€์ด ์žˆ์Šต๋‹ˆ๊นŒ? (URI๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? IPFS๋ฅผ ํ†ตํ•œ ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ์˜ ๊ฒŒ์‹œ์ž์™€ ์†Œ๋น„์ž๋ฅผ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?)

๋ณด๋‹ค:

IPLD๋Š” json ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. IPLD ์œ„์— ๋ชจ๋“  JSON-LD๋ฅผ ๊ณ„์ธตํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(์•„์ง ์ฐฉ๋ฅ™ํ•˜์ง€ ์•Š์Œ)

@jbenet ์€ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ฝ๊ณ  ๋งํฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ›Œ๋ฅญํ•œ ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ์ž…๋‹ˆ๋‹ค. IMHO

Linked Data๊ฐ€ ํ•˜๋‚˜์˜ ์ง๋ ฌํ™”๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์—์„œ ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค. JSON-LD, RDF/XML, RDFa, Turtle ๋˜๋Š” ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ํ˜•์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Linked Data์— ํ•„์š”ํ•œ ๊ฒƒ์€ JSON์˜ ํ‚ค๊ฐ€ URI๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ JSON-LD๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ปจํ…์ŠคํŠธ์—์„œ ํ•˜๋‚˜์˜ ๋ผ์ด๋„ˆ๋กœ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ช…์‹œ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” urn:string:<key> ์ ‘๋‘์‚ฌ๋กœ ๊ฐ„๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ (์ผ๋ฐ˜์ ์œผ๋กœ ์„ ํ˜ธ๋˜๋Š”) ๋ฐฉ๋ฒ•์€ ๊ฐ ์šฉ์–ด์— ๋Œ€ํ•ด ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์„ค๋ช…์ด ํฌํ•จ๋œ http(s) ๋˜๋Š” ipfs: ๋ฌธ์„œ์— ํ‚ค์— ๋Œ€ํ•œ ์šฉ์–ด๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Linked Data๋กœ ์ž‘์„ฑ๋œ IPFS ํ•ด์‹œ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋„ ํฅ๋ฏธ๋กญ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์˜ค๋Š˜ Turtle์—์„œ RFC6920 ์— ์„ค๋ช…๋œ ํŒจํ„ด์„ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

<ni:///multihash;QmZvTvRQ2voimuYwBtKsyMqMqirDt5Xrq4sdow2RM5ynKj> 
    <https://schema.org/sameAs> 
        <https://gateway.ipfs.io/ipfs/QmZvTvRQ2voimuYwBtKsyMqMqirDt5Xrq4sdow2RM5ynKj> ,
        <http://ia801506.us.archive.org/3/items/NodeUp114/NodeUp%20114.mp3> ,
        <ipfs:/ipfs/QmZvTvRQ2voimuYwBtKsyMqMqirDt5Xrq4sdow2RM5ynKj> ;
    <https://schema.org/contentType>
        "audio/mpeg" ;
    <https://schema.org/title>
        "NodeUp: A Node.js Podcast - Episode 114 - Internationalization Deep Dive" .

https://namedinstance.com/.well-known/ni/multihash/QmZvTvRQ2voimuYwBtKsyMqMqirDt5Xrq4sdow2RM5ynKj

์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ๋…์€ ์‚ฌ๋ฌผ์— ๋ถ€์—ฌํ•œ ์‹๋ณ„์ž๊ฐ€ ๊ด€๋ จ ์‚ฌ๋ฌผ์— ์—ฐ๊ฒฐ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ์œ ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํฌํ•จ๋œ ํ•ญ๋ชฉ์˜ URI ๋ชฉ๋ก์„ ์ œ๊ณตํ•˜๊ณ  ์ด๋ฒคํŠธ๋Š” ์‹œ๊ฐ„๊ณผ ๋ฐ์ดํ„ฐ ๋ฐ ์ดˆ๋Œ€๋œ ์‚ฌ๋žŒ๋“ค์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๋ฃน ๋ฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋“ฑ์˜ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. http: ๋Œ€์‹  ipfs:๋ฅผ ํ†ตํ•ด ์ด ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฌผ๋ก  ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋ฉฐ ๋‘ ๊ณต๊ฐ„์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ ๊ณต๊ฐ„์— ์žˆ๋Š” ๊ฒƒ์ด ๋‹ค๋ฅธ ๊ณต๊ฐ„์— ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์นœ๊ตฌ๋Š” http: space์— ๋ฌธ์„œํ™”ํ•˜๊ณ  ๊ท€ํ•˜์˜ ์ถœํŒ๋ฌผ์€ ipfs: space์— ๋ฌธ์„œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(rdfhead๋กœ์„œ ์ €๋Š” Turtle์„ ํ˜•์‹์œผ๋กœ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. iI๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜์ง€๋งŒ JSONLD๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.)

/me๋Š” http://static.benet.ai/t/ipfs.pdf ๋ฅผ ์ฝ๊ธฐ ์œ„ํ•ด static.benet.ai์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@timbl https://github.com/ipfs/papers/blob/master/ipfs-cap2pfs/ipfs-p2p-file-system.pdf ์—์„œ IPFS ๋ฌธ์„œ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์šฉ IPFS ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํ†ตํ•œ ๋™์ผํ•œ ๋ฌธ์„œ: https://ipfs.io/ipfs/QmV9tSDx9UiPeWExXEeH6aoDvmihvx6jD5eLb4jbTaKGps

์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ ๊ณต๊ฐ„์— ์žˆ๋Š” ๊ฒƒ์ด ๋‹ค๋ฅธ ๊ณต๊ฐ„์— ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค! ๋‹ค์Œ์€ ๋ชจ๋‘ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. dweb: URI ์ฒด๊ณ„์™€ https://dweb.link ๋Š” ์•„์ง ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ URI์˜ ๊ฒฝ์šฐ fs:/ipfs/somehash ์ด๊ณ (IPFS ๊ฒŒ์ดํŠธ์›จ์ด ๋ฆฌ๋””๋ ‰์…˜ ์• ๋“œ์˜จ์—์„œ) HTTP์˜ ๊ฒฝ์šฐ https://ipfs.io/ipfs/somehash ์ž…๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ์˜ ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๊ฒƒ์„ ๋†“์นœ ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค!

https://ipld.io/

image

https://github.com/ipld/ipld ์—์„œ ๋Œ€ํ™”๋ฅผ ๊ณ„์†ํ•ฉ์‹œ๋‹ค.

ํ™•์‹ ํ•˜๋Š”. ๋งํฌ๋œ ๋ฐ์ดํ„ฐ์˜ ์ธก๋ฉด์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๋ ค๋ฉด ์–ธ์ œ๋“ ์ง€ ๋‹ค์Œ์„ ๋ฐฉ๋ฌธํ•˜์‹ญ์‹œ์˜ค.

https://gitter.im/linkeddata/chat

@nicola ๋‚˜๋Š” ๊ทธ ์ฑ„๋„์— ๋Œ€ํ•ด ๋‚ฏ์„ค์ง€ ์•Š๋‹ค.

์šฐ๋ฆฌ๋Š” ์‹ค์ œ๋กœ ์˜ค๋Š˜ ์‹œ์Šคํ…œ์— ipfs: URI๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋…ผ์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ipld์˜ ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค!

๋ถ„๋ช…ํžˆ LD๊ฐ€ ์•„๋‹Œ ๊ฒƒ์— ๋Œ€ํ•ด ์ž˜ ์ •์˜๋œ ์šฉ์–ด "์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ"๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
https://www.w3.org/standards/semanticweb/data

๊ทธ๋ž˜์„œ, ๋‚˜๋Š” ์ด๊ฒƒ์ด ์˜ค๋ž˜๋œ ์‹ค์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ํ›„์†์„ ์œ„ํ•ด ๋ฏน์Šคํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜ ์ž์‹ ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ์ž๊ฒฉ ์ฆ๋ช… ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(https://w3c.github.io/vc-data-model/)์„ ์ž‘์—…ํ•ด ์™”์œผ๋ฉฐ JSON-LD ๋Œ€ IPLD๋กœ ํ‘œ์‹œ๋˜๋Š” @context ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. (์ฐธ์กฐ: https://github.com/w3c/vc-data-model/pull/261 ). JSON-LD๋Š” IPLD์™€ ์™„๋ฒฝํ•˜๊ฒŒ ํ˜ธํ™˜๋˜์ง€๋งŒ IPLD๋Š” ๊ธฐ์กด ์‚ฌ์–‘๊ณผ์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ์œ„ํ•ด ํ•„์š”ํ•œ JSON-LD์™€ ์™„์ „ํžˆ ํ•˜์œ„ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณผ ๋•Œ ํ•ด๊ฒฐ์ฑ…์€ ipld: ๋ฅผ ietf์—์„œ ์œ ํšจํ•œ ์ฒด๊ณ„๋กœ ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ(์ฐธ์กฐ: https://github.com/ipld/specs/issues/98) { <attr> : ipld:<cid> } ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. { "/" : <cid> } ๊ฐ€ IPLD์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ฐธ์กฐ: https://github.com/ipld/specs/issues/99). ๋˜ํ•œ/์ถ”๊ฐ€๋กœ application/ipld ์˜ MIME Content-type์„ ๋“ฑ๋กํ•˜์—ฌ ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•˜๋Š” ์œ ํ˜•์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜ผ๋™์„ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด application/json+ipld ๋Œ€ application/cbor+ipld ๋ฅผ ํ—ˆ์šฉํ•˜๋„๋ก ํ•ฉ์„ฑ๋ฉ๋‹ˆ๋‹ค. ( @mildred ์ €๋Š” ipfs://๋ฅผ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์šฐ๋ฆฌ๋Š” ์ž์—ฐ์Šค๋Ÿฌ์šด ์—ฐ๊ฒฐ๊ณผ ` { "@context" : "/ipfs/" }'์€(๋Š”) ์œ ํšจํ•œ URI์ž…๋‹ˆ๋‹ค.

์˜๋ฏธ๋ก ์  ์ƒํ˜ธ ์šด์šฉ์„ฑ์— ๊ด€ํ•ด์„œ๋Š” IPLD ์œ„์— JSON-LD ์ปจํ…์ŠคํŠธ๋ฅผ ๊ณ„์ธตํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋ฃจํŒ… ๋ฌธ์ œ์— ๋„๋‹ฌํ•˜๊ณ  URI๋ฅผ JSON-LD์— ์œ ํšจํ•œ ๊ฐ’์œผ๋กœ ํฌํ•จํ•˜์—ฌ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ถ๊ทน์  ์œผ๋กœ ๊ทธ๊ฒƒ์€ Turtles ์ž…๋‹ˆ๋‹ค .

(rdfhead๋กœ์„œ ์ €๋Š” Turtle์„ ํ˜•์‹์œผ๋กœ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. iI๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜์ง€๋งŒ JSONLD๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.)

์ด์— ๋Œ€ํ•œ ์™„๋ฒฝํ•œ ์˜ˆ๋Š” http://www.w3.org/ ๋ฅผ ์ฐธ์กฐํ•˜๋Š” xsd:datetime ์— ์—ฐ๊ฒฐ๋˜๋Š” https://w3id.org/did/v1 ์—์„œ ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ์ž๊ฒฉ ์ฆ๋ช…์— ๋Œ€ํ•œ @context ์˜ datetime ์ฒ˜๋ฆฌ์ž…๋‹ˆ๋‹ค. 2001/XMLSchema# , ๋ฌธ์„œ ์†Œ์Šค์— ๋Œ€ํ•œ ์„ค๋ช…์ด html ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ด xml์—์„œ ๋‚ด๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ์ฃผ์„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋จผ์ € ๊ธฐ๋ณธ ์ œ๊ณต ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ •์˜๋Š” ์ •๋ณด์šฉ์ด๋ฉฐ ์‹ค์ œ ๊ธฐ๋ณธ ์ œ๊ณต ์ •์˜๋Š” ๋งˆ๋ฒ•์ž…๋‹ˆ๋‹ค.

:turtle: > :turtle: > :turtle: ์Šคํƒ์˜ ๋งจ ์•„๋ž˜์—์„œ @timbl ์— ๋™์˜ํ•˜๊ณ  ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ JSON-LD์™€์˜ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ์ด ๋งˆ๋ฒ•์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ipld: .

@jonnycrunch ๋‹น์‹ ์˜ ์•„์ด๋””์–ด๋ฅผ ์ง€์ง€ํ•ฉ๋‹ˆ๋‹ค. Turtle์€ ๊ฐ€์žฅ ์ธ๊ธฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. JSON์ด ์›น์—์„œ ์ž˜ ํ™•๋ฆฝ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ JSON์ด ๋ธŒ๋ผ์šฐ์ €์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๊ณ  ํ•™์Šต ๊ณก์„ ์ด ์–•๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ด‘๋ฒ”์œ„ํ•œ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์— ํ˜ธ์†Œํ•˜๋Š” ๊ฒƒ๊ณผ ์ƒํ˜ธ ์šด์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ธฐ๋Šฅ์ด ํ’๋ถ€ํ•œ ์‹œ์Šคํ…œ(ํ‘๋ฐฑ์ด ์•„๋‹˜)์„ ๊ฐ–๋Š” ๊ฒƒ ์‚ฌ์ด์—๋Š” ๊ท ํ˜•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด URL์„ ์ž…๋ ฅํ•˜๋ฉด @context ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ๋ฌธ์ž๊ฐ€ ์žˆ์ง€๋งŒ ์™•๋ณต์„ ํ”ผํ•˜๊ณ  ์›๊ฒฉ ํŒŒ์ผ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋” ๋‚ซ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ถ๊ทน์ ์œผ๋กœ URI๋Š” ์ด๋ฆ„(uuid)๊ณผ ๋กœ์ผ€์ดํ„ฐ(ํ”„๋กœํ† ์ฝœ) ๋ชจ๋‘์ด๋ฉฐ ๋‘๋‡Œ๊ฐ€ ๋‘ ๊ฐ€์ง€๋ฅผ ๋™์‹œ์— ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์—์„œ ํ˜ผ๋ž€์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. JSON ํ‚ค์—์„œ URI๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ URI์— ๋Œ€ํ•œ ์•ฝ์นญ์„ ์‚ฌ์šฉํ•˜๋Š” ์ง€์ ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ ์ค‘ ๋งŽ์€ ๋ถ€๋ถ„์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ipfs: ๋ฐ http: ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋ฉด ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ์ข…์˜ ์ ‘์ฐฉ์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ˜‘๋ ฅ ๋„คํŠธ์›Œํฌ์˜ ์ผ๋ถ€๊ฐ€ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ipld:<cid> ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋„๋ก ๋‚ด ์˜๊ฒฌ์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๊ณ  ๋”ฐ๋ผ์„œ ipld:// ์ด์ค‘ ์Šฌ๋ž˜์‹œ // ๊ฐ€์น˜๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ํŽ˜์ด๋กœ๋“œ๋Š” ์ž์ฒด ์„ค๋ช…์ ์ด๋ฏ€๋กœ ์ž์ฒด ๊ถŒํ•œ์ด๋ฉฐ ์ž์ฒด์ ์œผ๋กœ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ์ „๋ฌธ๊ฐ€๋“ค์˜ ์ฃผ์žฅ์ž…๋‹ˆ๋‹ค.

@jonnycrunch ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…์€ ipld:๋ฅผ IETF์˜ ์œ ํšจํ•œ ์ฒด๊ณ„๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋งค์šฐ ์ง€์ง€ํ•˜๋ฉฐ (๋ณด๋‹ค ์ „ํ†ต์ ์ธ) Linked Data ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ IPFS/IPLD ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฐ„์˜ ํ›Œ๋ฅญํ•œ interop ์Šคํ† ๋ฆฌ๋กœ ์ด์–ด์งˆ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰