์ด ๋ฌธ์ ๋ฅผ ์ฌ์ฉํ์ฌ IPFS ์ปจํ ์คํธ์์ ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ์ ๋ํ ์๊ฐ์ ๊ธฐ๋กํ๊ฒ ์ต๋๋ค. ์ด๊ฒ์ ๋จ์ง ๋ธ๋ ์ธ์คํ ๋ฐ์ผ ๋ฟ์ ๋๋ค.
์๋งจํฑ ์น์ ํ์ ๊ณ ๋ คํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ค์ ๋ก "์ด๋ฅ"ํ์ง๋ ์์์ง๋ง ๋ฐ์ดํฐ ๊ตฌ์กฐํ์ ๊ดํด์๋ TRTTD์ ๋๋ค.
@msporny ๋ ๋๋๋๋ก ๊ฐ๋จํ JSON-LD๋ฅผ ๋ง๋ค์์ต๋๋ค. IPFS๋ ํธ๋ฆฌ dag ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ JSON-LD ์ฌ์(๋๋ ๋จ์ํ๋ ๋ฒ์ )์ด IPFS์ ์ ๋ง ์ ๋ง์ ์ ์์ต๋๋ค. ์ด๊ฒ์ IPFS์ ์ค๋ฒํค๋๊ฐ ๊ฑฐ์ ์์ด ์๋งจํฑ ์น์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ด๊ฒ์ @context
๋งํฌ์ ์ถ๊ฐ๋ฅผ ์๋ฏธํฉ๋๋ค(ํด๋น ํค์ผ ํ์๋ ์์ผ๋ฉฐ Links
๊ตฌ์กฐ์์๋ ์์ฒด ํ๋๊ฐ โโ๋ ์ ์์).
๋๋ ์ด๊ฒ์ด IPFS ์ฌ์ฉ์ ๋ฐฉํดํ ๊ฒ์ด๋ผ๊ณ ํ์ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด์ ํญ์ ์ปจํ ์คํธ๊ฐ ์์ด์ผ ํ๋ค๊ณ ๋งํ๊ธฐ๋ฅผ ์ฃผ์ ํฉ๋๋ค. ๊ฐ๋ ฅํ ๋์์ธ ๊ฒฐ์ ์ ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ ํ์์ ๋ํ ์์ ํ ์์ ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ์๋ง๋ ์ค๊ฐ ์ง์ ์ด ์์ ๊ฒ์
๋๋ค. ์ต์ํ @context
์ ํ์ ํญ๋ชฉ์ ์ ํ์ ์ผ๋ก ์ถ๊ฐํ ์ ์๋๋ก ์ง์ํด์ผ ํฉ๋๋ค. ๊ทธ๊ฒ์ ๋ํด ๊ณ์ ์๊ฐํ ๊ฒ์
๋๋ค.
์ฌ์ค @msporny๋ , ์ฌ๋ฌ๋ถ์ ์๊ฐ์ด ์ ๋ง ๊ถ๊ธํฉ๋๋ค. ์ด ํ๋ก์ ํธ( paper , talk )๋ฅผ ํ์ธํ๊ณ ์๊ฐ์ lmkํ์ญ์์ค.
@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์ ํค)์ ๋ค์ ๋ฒ์ฃผ ์ค ํ๋์ ์ํด์ผ ํฉ๋๋ค.
ํนํ 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
๋งํฌentry:README.md
๋งํฌREADME.md
:@context
๋งํฌ```
{
// @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 ์ ํ์ ์คํํด ์์ต๋๋ค. ํนํ ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ์ด๊ฒ์ ์ต์ข (๋๋ ์ ํํ๊ฐ?)๊ฐ ์๋์ง๋ง ๋ฐฉํฅ ๊ฐ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
@value
์ ์ฌ์ฉ์ ๋ฌด์ํ๋ฉด ์๋ชป๋ ๊ฒ์
๋๋ค)์ค์ ์ฐธ๊ณ ์ฌํญ:
{"@type": "mlink", "hash": "<multihash>"}
๋ง ์์ฝํฉ๋๋ค.๋๋ ๋น์ ๊ณผ ๋ด๊ฐ ์ณ์ ๊ธธ์ ๊ฐ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ํ 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>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#name>
์ ๊ฐ์ URI์
๋๋ค. 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://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/
์๋ฏธ๋ก ์ ์ํธ ์ด์ฉ์ฑ์ ๊ดํด์๋ 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 ์คํ ๋ฆฌ๋ก ์ด์ด์ง ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ์ ๊ฐ๋ ์ ์ฌ๋ฌผ์ ๋ถ์ฌํ ์๋ณ์๊ฐ ๊ด๋ จ ์ฌ๋ฌผ์ ์ฐ๊ฒฐ๋๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ์ฌ ์ ์ฉํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๋๋ ํ ๋ฆฌ๋ ํฌํจ๋ ํญ๋ชฉ์ URI ๋ชฉ๋ก์ ์ ๊ณตํ๊ณ ์ด๋ฒคํธ๋ ์๊ฐ๊ณผ ๋ฐ์ดํฐ ๋ฐ ์ด๋๋ ์ฌ๋๋ค์ ๋ํ ๋งํฌ๋ฅผ ์ ๊ณตํ๊ณ ์ฌ๋๋ค์ ๊ทธ๋ฃน ๋ฐ ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ํ ๋งํฌ๋ฅผ ์ ๊ณตํ๋ ๋ฑ์ ๋ฐฉ์์ผ๋ก ์งํ๋ฉ๋๋ค. http: ๋์ ipfs:๋ฅผ ํตํด ์ด ๋ชจ๋ ์์ ์ ์ํํ๋ฉด ๋ฌผ๋ก ์ ๋๋ก ์๋ํ๋ฉฐ ๋ ๊ณต๊ฐ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ ๊ณต๊ฐ์ ์๋ ๊ฒ์ด ๋ค๋ฅธ ๊ณต๊ฐ์ ์๋ ๊ฒ๊ณผ ๊ฐ๋ค๊ณ ์ฃผ์ฅํ ์ ์์ต๋๋ค. ์น๊ตฌ๋ http: space์ ๋ฌธ์ํํ๊ณ ๊ทํ์ ์ถํ๋ฌผ์ ipfs: space์ ๋ฌธ์ํํ ์ ์์ต๋๋ค.
(rdfhead๋ก์ ์ ๋ Turtle์ ํ์์ผ๋ก ์ ํธํฉ๋๋ค. iI๋ ๊ฐ๋จํ๊ณ ๊ฐ๋ ฅํ์ง๋ง JSONLD๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.)
/me๋ http://static.benet.ai/t/ipfs.pdf ๋ฅผ ์ฝ๊ธฐ ์ํด static.benet.ai์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.