rdfproc: Redland RDF 도구
시맨틱 웹에서 쓰는 여러 파일 포맷들을 상호 변환하기 위해 Redland RDF 라이브러리를 사용해 보았다.
데비안에서는 redland-utils 패키지를 설치하면 rdfproc 명령을 사용할 수 있다.
rdfproc의 모든 명령은 "store"를 첫번째 인자로 받는다. store는 RDF 트리플 저장소의 이름이다. 저장소로는 MySQL, SQLite 등도 사용할 수 있지만 기본값은 버클리 DB이다. 저장소가 없을 경우에는 새로 만든다. 그러니까
$ rdfproc store print # 저장소의 내용을 출력
# 새로 만들었으므로 아무것도 없다
$ ls
store-po2s.db store-so2p.db store-sp2o.db
$ file *
store-po2s.db: Berkeley DB (Btree, version 9, native byte-order)
store-so2p.db: Berkeley DB (Btree, version 9, native byte-order)
store-sp2o.db: Berkeley DB (Btree, version 9, native byte-order)
s, p, o는 각각 RDF 트리플의 Subject, Predicate, Object를 나타낸다. 보다시피 버클리 DB 파일 3개가 새로 생겼다.
-n 옵션을 주면 기존 저장소를 지우고 새로 만든다.
rdfproc은 query 명령으로 SPARQL 쿼리를 실행할 수 있지만 이 내용은 나중으로 미루기로 하고, 파일 포맷 변환에 필요한 명령은 parse와 serialize다. parse 명령은 파일 이름(또는 URI)를 첫 번째 인자로, 파일 포맷을 두 번째 인자로 받는다. serialize 명령은 파일 포맷만 인자로 받는다.
예를 들어, test.turtle이라는 Turtle 포맷의 파일이 있을때 이것을 test.rdf라는 RDF/XML 포맷의 파일로 변환하려면 다음과 같이 한다.
$ rdfproc -n store parse test.turtle turtle
$ rdfproc store serialize rdfxml > test.rdf
$ rm store-*.db
댓글 달기