Semantic Web๊ณผ Linked Data๋ ์ฐ์ฃผ์ ๊ฐ์ต๋๋ค. ๊ทธ๊ณณ์๋ ์๋ช ์ด ์์ต๋๋ค. ์ด๋ ์ ๋ ์ฅ๊ธฐ๊ฐ ๊ฑฐ๊ธฐ์ ๊ฐ๋ ค๋ฉดโฆ "๋๋ ์ฐ์ฃผ ๋นํ์ฌ๊ฐ๋๊ณ ์ถ๋ค"๋ ์ด๋ฆฐ ์์ ์ ๊ทธ๋ค์ด ๋น์ ์๊ฒ ๋ฌด์์ ๋งํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ตฌ์ ์๋ ๋์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ณผ ์ ์์ต๋๋ค. ์๋ง์ถ์ด ์ฒ๋ฌธํ์ ๋๋ ์ ๋ฌธ๊ฐ๊ฐ ๋๋ ๊ฒ์ด ํจ์ฌ ์ฝ์ต๋๋ค.
์ด ๊ธฐ์ฌ๋ RDF ์คํ ๋ฆฌ์ง ์ธ๊ณ์ ์ต์ ๋ํฅ์ ์ด์ ์ ๋ง์ถ ๊ฒ์ ๋๋ค. ์ฒซ ๋ฒ์งธ ๋จ๋ฝ์ ์์ ๋ ์ปท ์๋์ ์์ฌ์ ์ธ ํ๋ณด ์ด๋ฏธ์ง์์ ์๊ฐ์ ๋ฐ์์ต๋๋ค.
I. RDF ์ก์ธ์ค๋ฅผ ์ํ GraphQL
๊ธฐ๋ณธ์ ์ผ๋ก ์ด ๊ธฐํ๋ ๋ค์์ ํตํด ์ ๊ณต๋ฉ๋๋ค.
์ ์ฅ์๊ฐ ๊ทธ๋ฌํ ๊ธฐํ๋ฅผ ์ ๊ณตํ์ง ์๋ ๊ฒฝ์ฐ ์ ์ ํ "ํด๊ฒฐ์"(ํด๊ฒฐ์)๋ฅผ ์์ฑํ์ฌ ๋
๋ฆฝ์ ์ผ๋ก ๊ตฌํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ด๊ฒ์ ํ๋์ค ํ๋ก์ ํธ์์ ์ํ๋์์ต๋๋ค.
Semantic Web๊ณผ Linked Data์ ์ ํต ์ง์ง์์ ๊ด์ ์์ ๋ณผ ๋, ์ด ๋ชจ๋ ๊ฒ์ ์ ํฉํ ํ๋ซํผ(๋ฌผ๋ก RDF ์ ์ฅ์)์ด ์๋ ๋ค์ ๋ฐ์ดํฐ ์ฌ์ผ๋ก๋ฅผ ์ค์ฌ์ผ๋ก ๊ตฌ์ถ๋ ํตํฉ์ ์ํ ๊ฒ์ด๋ฏ๋ก ๋ฌผ๋ก ์ฌํ ์ผ์ ๋๋ค. .
GraphQL๊ณผ SPARQL์ ๋น๊ตํ์ ๋์ ์ธ์์ ๋ ๊ฐ์ง์ ๋๋ค.
- ํํธ์ผ๋ก GraphQL์ SPARQL์ ๋จผ ์น์ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. REST์ ๋ํ ์ผ๋ฐ์ ์ธ ์ฌ์ ํ ๋ฐ ๋ค์ค ์ฟผ๋ฆฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ฟผ๋ฆฌ ์ธ์ด, ์ ์ด๋ ์น์ ๊ฒฝ์ฐ;
- ๋ฐ๋ฉด์ GraphQL์ ๊ฒฝ์ง๋ ์ฒด๊ณ๋ ๋ค์งํ๋๋ค. ๋ฐ๋ผ์ ๊ทธ "์ฑ์ฐฐ์ฑ"์ RDF์ ์์ ํ ์ฑ์ฐฐ์ฑ์ ๋นํด ๋งค์ฐ ์ ํ์ ์ธ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฑ ๊ฒฝ๋ก์ ์๋ ๋ก๊ทธ๊ฐ ์์ผ๋ฏ๋ก "๊ทธ๋ํ-"์ธ ์ด์ ๋ ๋ช ํํ์ง ์์ต๋๋ค.
II. MongoDB์ฉ ์ด๋ํฐ
์ด์ ํธ๋ ๋๋ฅผ ๋ณด์ํ๋ ํธ๋ ๋.
- ์ง๊ธ ์คํ๋
์์
์ด์ฉ๋ฉด - ํนํ, ๋ชจ๋ ๋์ผํ GraphQL์์ - MongoDB ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ RDF ๊ทธ๋ํ๋ก ํ์ํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค. - Ontotext GraphDB ์ต๊ทผ
๊ทธ๊ฒ์ ์ ์์ต๋๋ค MongoDB ์ฟผ๋ฆฌ์์ SPARQL ์กฐ๊ฐ์ ์ฝ์ ํฉ๋๋ค.
์ข ๋ ๊ด๋ฒ์ํ๊ฒ ๋งํ์๋ฉด, ์ด๋ฌํ ์์ค์ ์ ์ฅ๋ JSON์ RDF๋ก ์ด๋ ์ ๋ "์ฆ์์์" ํํํ ์ ์๋ JSON ์์ค์ ๋ํ ์ด๋ํฐ์ ๋ํด ๋งํ๋ฉด ๊ฝค ์ค๋ซ๋์ ๊ธฐ์กด ์์ค๋ฅผ ๊ธฐ์ตํ ์ ์์ต๋๋ค.
์ฒ์ ๋ ๊ฐ์ง ์ถ์ธ๋ฅผ ์์ฝํ๋ฉด RDF ์ ์ฅ์๊ฐ "๋ค์ค ์ ์ฅ"(๋ค์ค ์ธ์ด ์ง์์ฑ) ์กฐ๊ฑด์์ ํตํฉ ๋ฐ ๊ธฐ๋ฅ์ ์ํ ์์ ํ ์ค๋น ์ํ๋ฅผ ์
์ฆํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋์ด ํ์๋ ์ค๋ซ๋์ ์ ํํ์ง ์์์ผ๋ฉฐ ๊ทธ๊ฒ์ ๋์ฒดํ๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ต๋๋ค.
์์ปจ๋, ์๋ผ. ๋ค์ค ๋ชจ๋ธ DBMS ์ฃผ์ ์ ๋ํด ๋ณ๋์ ๊ธฐ์ฌ๋ฅผ ํ ์ ํ๊ณ ์ถ์ง๋ง ์ง๊ธ์ ๊ทธ๋ํ ๋ชจ๋ธ(RDF๋ ๊ทธ ๋ณํ์ผ๋ก ๊ฐ์ฃผ๋ ์ ์์)์ "๊ธฐ๋ฐ"์ธ ๋ค์ค ๋ชจ๋ธ DBMS๊ฐ ์์์ ์ ์ ์์ต๋๋ค. ๋์ฒด LPG ๊ทธ๋ํ ๋ชจ๋ธ์ RDF ์ ์ฅ์์ ์ํ ์ผ๋ถ ์๊ท๋ชจ ๋ค์ค ๋ชจ๋ธ๋ง์ ๋ค์์์ ๋
ผ์๋ ๊ฒ์
๋๋ค.
III. OLTP ๋ ์ฌ๋ฉ
๊ทธ๋ฌ๋ ๋์ผํ Gartner
๊ทธ๋ฌ๋ OLTP-OLAP ๊ท๋ชจ์์ RDF ์ ์ฅ์๋ ์ด๋์ ์์ต๋๊น? ๋๋ ์ด๋ ๊ฒ ๋๋ตํ ๊ฒ์ ๋๋ค. ๊ฑฐ๊ธฐ๋ ์ฌ๊ธฐ๋ ์๋๋๋ค. ์๋ํ ๋ฐ๋ฅผ ๋ํ๋ด๋ ค๋ฉด ์ธ ๋ฒ์งธ ์ฝ์ด๊ฐ ํ์ํฉ๋๋ค. ๋ด๊ฐ ์ ์ํ๊ณ ์ถ์ ์ต์ ์ผ๋ก ์ฌ๋ฆฝ โ ์จ๋ผ์ธ ์ง์ ์ฒ๋ฆฌ.
๊ทธ๋ฌ๋ ์ฌ์ ํ:
- MongoDB์ ํจ๊ป GraphDB์์ ๊ตฌํ๋ ํตํฉ ๋ฉ์ปค๋์ฆ์ ์ต์ํ์ด ์๋๋๋ค.
์์ ๋ ์ฐ๊ธฐ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด - Stardog์ ๋ ๋์๊ฐ ์๋ฒฝํ๊ฒ ๋์๊ฐ๋๋ค.
์ฌ์์ฑํ๋ค ๋ค์ ์ฐ๊ธฐ ์ฑ๋ฅ ํฅ์์ ๋ชฉํ๋ก ์์ง.
์ด์ ์๋ก์ด ํ๋ ์ด์ด๋ฅผ ์์ฅ์ ์๊ฐํ๊ฒ ์ต๋๋ค. IBM Netezza ๋ฐ Amazon Redshift ์ ์์ -
SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { โฆ }
IV. RocksDB
์์ ์ด๋ฏธ
๋จผ์ ํ๋จํด๋ณด๋ฉด
๋์งธ, ํด๋น ์ฃผ์ ์ ํ๋ก์ ํธ(์ฆ, ์ ํ์ด ์๋)๊ฐ RocksDB์์ ๋ง๋ค์ด์ง๋๋ค.
์๋ฅผ ๋ค์ด eBay๋ ๋ค์์์ RocksDB๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ ๋ค๋ฅธ ์ - ๋ช ๋ฌ ์ ์ ๋ํ๋ฌ์ต๋๋ค.
V. LPG ์ง์
LPG ๊ทธ๋ํ์ RDF ๊ทธ๋ํ์ ์ฃผ์ ์ฐจ์ด์ ์ ์๊ธฐ์์ผ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
LPG์์ ์ค์นผ๋ผ ์์ฑ์ ์์ง ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋ ์ ์๋ ๋ฐ๋ฉด RDF์์๋ ์์ง "์ ํ"์๋ง ์ฐ๊ฒฐ๋ ์ ์์ต๋๋ค(์ค์นผ๋ผ ์์ฑ๋ฟ๋ง ์๋๋ผ ์ผ๋ฐ ๋งํฌ๋ ํฌํจ). LPG์ ๋นํด RDF์ ์ด๋ฌํ ํ๊ณ
๋ถ๋ช ํ "LPG ์ง์" ์์ ์ ๋ ๋ถ๋ถ์ผ๋ก ๋๋ฉ๋๋ค.
- LPG ๊ตฌ์กฐ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ ์ ์๋๋ก RDF ๋ชจ๋ธ์ ๋ณ๊ฒฝํฉ๋๋ค.
- ์ด ์์ ๋ ๋ชจ๋ธ์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ ์ ์๋๋ก RDF ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ LPG ์ฟผ๋ฆฌ ์ธ์ด์์ ์ด ๋ชจ๋ธ์ ์ฟผ๋ฆฌํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค.
V.1. ๋ฐ์ดํฐ ๋ชจ๋ธ
์ฌ๊ธฐ์๋ ๋ช ๊ฐ์ง ๊ฐ๋ฅํ ์ ๊ทผ ๋ฐฉ์์ด ์์ต๋๋ค.
V.1.1. ์ฑ๊ธํค ์์ฑ
RDF์ LPG๋ฅผ ์กฐํ์ํค๋ ๊ฐ์ฅ ๋ฌธ์ ๊ทธ๋๋ก์ ์ ๊ทผ ๋ฐฉ์์ ์๋ง๋
- ์๋ฅผ ๋ค์ด ์ ์ด ๋์
:isMarriedTo
์ ์ด๊ฐ ์ฌ์ฉ๋ฉ๋๋ค:isMarriedTo1
,:isMarriedTo2
๊ทธ๋ฆฌ๊ณ t. ๋ผ. - ๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ์ ์ด๋ ์๋ก์ด ์ผ์คํญ์ ์ฃผ์ ๊ฐ ๋ฉ๋๋ค.
:isMarriedTo1 :since "2013-09-13"^^xsd:date
๊ธฐํ - ์ด๋ฌํ ์ ์ด ์ธ์คํด์ค์ ๊ณตํต ์ ์ด์ ์ฐ๊ฒฐ์ ๋ค์ ํ์์ ์ผ์ค ํญ์ ์ํด ์ค์ ๋ฉ๋๋ค.
:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo
. - ๋ฌผ๋ก ,
rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type
, ํ์ง๋ง ๊ทธ๋ฅ ์ฐ๋ฉด ์ ๋๋ ์ด์ ๋ฅผ ์๊ฐํด ๋ณด์ญ์์ค.:isMarriedTo1 rdf:type :isMarriedTo
.
"LPG ์ง์" ์์
์ ์ฌ๊ธฐ์์ RDFS ์์ค์์ ํด๊ฒฐ๋ฉ๋๋ค. ๊ทธ๋ฌํ ๊ฒฐ์ ์ ๊ด๋ จ ๋ฌธ์์ ํฌํจ๋์ด์ผ ํฉ๋๋ค.
V.1.2. ์ ๋๋ก ๋ ๊ตฌ์ฒดํ
์์งํ์ง ์์ ์ ๊ทผ ๋ฐฉ์์ ์์ฑ ์ธ์คํด์ค๊ฐ ์ธ ์์ผ๋ก ์๋ฒฝํ๊ฒ ์ธ์คํด์คํ๋๋ค๋ ์ธ์์์ ๋น๋กฏ๋ฉ๋๋ค. ์ธ ์๋ฅ์ด์ ๋ํด ์ด์ผ๊ธฐํ ์ ์์ผ๋ฏ๋ก ์์ฑ ์ธ์คํด์ค์ ๋ํด์๋ ์ด์ผ๊ธฐํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์ ์ค ๊ฐ์ฅ ํ์คํ ๊ฒ์
<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .
V.1.3. ๊ธฐํ ์ ๊ทผ๋ฒ
๊ณต์์ ์ธ ์๋ฏธ๋ก ์ ์ ๊ฒฝ์ ์ธ ์๋ ์์ง๋ง ๋จ์ํ ์ธ ์์ด URI์ธ ์ผ๋ถ ์๋ณ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ์๊ฐํ๊ณ ์ด๋ฌํ URI๋ก ์ ์ธ ์์ ๊ตฌ์ฑํฉ๋๋ค. ๋จ์ ๊ฒ์ SPARQL์์ ์ด๋ฌํ URI์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋์
์๋ ๊ทธ๋ก๊ทธ๋ํ์์
:bob :marriedTo :alice {"since" : "2013-09-13"}
V.2. ์ฟผ๋ฆฌ ์ธ์ด
๋ชจ๋ธ ์์ค์์ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ LPG๋ฅผ ์ง์ํ๋ค๋ฉด ์ด๋ฌํ ๋ชจ๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ ์ ์๋๋ก ํด์ผ ํฉ๋๋ค.
- RDF* ์ฟผ๋ฆฌ์ฉ Blazegraph ์ง์
์คํํด* ะธ๊ทธ๋ ๋ฆฐ . SPARQL* ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }
- Anzograph๋ ์ง์ํฉ๋๋ค.
์คํํด* ๊ทธ๋ฆฌ๊ณ ์ง์ํ ์์ ์ด๋ค. - Stardog์ ์์ฒด์ ์ผ๋ก ์ ์งํฉ๋๋ค.
ํ๋ SPARQL ๋ฐ๋ค์ ๊ทธ๋ ๋ฆฐ. ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ์ฌ SPARQL์์ triplet์ URI์ "๋ฉํ ์ ๋ณด"๋ฅผ ์ป์ ์ ์์ต๋๋ค.
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}
- Allegrograph๋ ์์ฒด ์ง์
ํ๋ ์คํํด:
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }
๊ทธ๋ฐ๋ฐ GraphDB๋ ํ๋ Tinkerpop/Gremlin์ ์ง์ํ๋ฉด์ LPG๋ฅผ ์ง์ํ์ง ์์๋๋ฐ 8.0์ด๋ 8.1 ๋ฒ์ ์์ ์ด๊ฒ ๋ฉ์ท๋ค.
VI. ๋ผ์ด์ ์ค ๊ฐํ
"triplestore of choice"์ "open source triplestore" ์ธํธ์ ๊ต์ฐจ์ ์ ์ต๊ทผ ์ถ๊ฐ๋ ํญ๋ชฉ์ด ์์ต๋๋ค. ์๋ก์ด ์คํ ์์ค RDF ์คํ ์ด๋ ์ผ์์ ์ธ ์ฌ์ฉ์ ์ํ ์ข์ ์ ํ๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ๊ณ , ๋ด๊ฐ ์ฌ์ฉํ๊ณ ์ถ์ ์๋ก์ด ํธ๋ฆฌํ ์คํ ์ด(์: AnzoGraph)์ ์์ค ์ฝ๋๋ ๋ซํ ์์ต๋๋ค. ์คํ๋ ค ๊ฐ์์ ๋ํด ์ด์ผ๊ธฐ ํ ์ ์์ต๋๋ค ...
๋ฌผ๋ก ์ด์ ์ ์คํ ์์ค๋ ๋ซํ์ง ์์ง๋ง ์ผ๋ถ ์คํ ์์ค ์ ์ฅ์๋ ์ ์ฐจ ๋ ์ด์ ์ ํํ ๊ฐ์น๊ฐ ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ๋ด ์๊ฐ์ ์คํ ์์ค ๋ฒ์ ์ด ์๋ Virtuoso๋ ๋ฒ๊ทธ์ ๋น ์ ธ ์์ต๋๋ค. Blazegraph๋ AWS์์ ์ธ์ํ์ฌ Amazon Neptune์ ๊ธฐ๋ฐ์ ํ์ฑํ์ต๋๋ค. ์ด์ ์ ์ด๋ ํ๋ ์ด์์ ๋ฆด๋ฆฌ์ค๊ฐ ์๋์ง ์ฌ๋ถ๋ ๋ช ํํ์ง ์์ต๋๋ค. ์ ๋๋ง ๋จ์๋ค...
์คํ ์์ค๊ฐ ๊ทธ๋ค์ง ์ค์ํ์ง ์์ง๋ง ์๋ํ๊ณ ์ถ๋ค๋ฉด ๋ชจ๋ ๊ฒ์ด ์ด์ ๋ณด๋ค ๋ ์ฅ๋ฐ๋น์ ๋๋ค. ์๋ฅผ ๋ค์ด:
- ์คํ ๋
์ ์ง ๋ฌด๋ฃ ๋ฒ์ ๋ฐฐํฌ(๋จ, ์ผ๋ฐ ๋ฒ์ ์ ํ๊ฐ ๊ธฐ๊ฐ์ ๋ ๋ฐฐ๊ฐ ๋จ) - ะฒ
๊ทธ๋ํDB ํด๋ผ์ฐ๋ , ์ด์ ์ ๋ฌด๋ฃ ๊ธฐ๋ณธ ์๊ธ์ ๋ฅผ ์ ํํ ์ ์์๋ ๊ฒฝ์ฐ ์ ๊ท ์ฌ์ฉ์ ๋ฑ๋ก์ด ์ผ์ ์ค์ง๋ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ผ๋ฐ IT ํ์ ๋๊ฐ ๊ณต๊ฐ์ ์ ๊ทผํ๊ธฐ ์ ์ ๋ ์ด๋ ค์์ง๊ณ ์์ผ๋ฉฐ ๊ทธ ๊ฐ๋ฐ์ ๋ง์ ๊ธฐ์ ์ด๋๊ณ ์์ต๋๋ค.
์ถ์ฒ : habr.com