N_12. TSV 데이터를 RDF로 만들기
TSV 형식의 데이터를 RDF 형식의 데이터로 만들 때 주어진 온톨로지 모델에 맞춰서 변환하도록 하는 포스팅에 이어
이번에는 온톨로지 모델이 없을 경우
바로 RDF 로 만드는 방법에 대해서 이야기 해보려고 한다.
지난 포스팅은
https://joyhong.tistory.com/85
을 참조하면 된다.
이번에 소개하는 방식은 간단하게 RDF로 만들수 있는 방식이기 때문에
복잡한 구조로 생성하기에는 한계가 있다.
RDF로 변환하기 위해 입력하는 값으로 URI의 앞 부분, 클래스명, 프로퍼티명, subject 구성이 전부이다.
따라서 TSV 원본 데이터의 헤더값이 프로퍼티명이 되기 때문에 원본 데이터를 잘 구성하여 이 방식을 사용해야 한다.
여기에서는 TSV 형식의 txt 파일이 준비되어 있다고 가정하고 시작한다.
이 파일을 TBC를 통해 RDF로 변환하기 위해서는 TBC 프로젝트 대상인 TSV 파일을 넣어두어야 한다.
TBC에 MyProject 라는 프로젝트를 생성하고 TSV형식의 student.txt 파일을 프로젝트 안에 복사하여 붙여넣었다.
그런 다음 student.txt을 선택하고 마우스 우클릭하여 Import 메뉴를 선택한다.
임포트 메뉴를 선택하면 나타나는 화면에서는 임포트 마법사를 선택해야 하는데
TopBraid Composer 밑에 Import Tab-Delimited Spreadsheet File을 선택하고 Next 버튼을 누른다.
Next 버튼을 누르면 이전 포스팅에서 보았던 창이 나오는데 동일하게 인코딩을 UTF-8로 선택하고
그 바로 아래의 Base namespace as sections: 입력란에 Base namespace로 사용할 정보를 입력하면 된다.
이 부분은 General section / Local section / File section 으로 구분되어 있는데
입력하는 값에 따라 그 아래 부분의 텍스트박스에 값이 변화되어 들어가는 것을 볼 수 있다.
여기에 나타나는 부분이 TSV 파일의 데이터를 RDF로 변환할 때 사용되는 URI 앞 부분이 된다.
위와 같이 정보를 입력하고 Next 버튼을 눌러 다음으로 넘어가면
TSV 헤더에 있는 정보(첫번째 줄에 있는 값)가 프로퍼티로 변경될 때 그 프로퍼티의 접두어를 지정할 수 있는 입력란이 나온다.
여기를 그냥 비워두면 이전 단계에서 입력한 Base namespace 정보로 프로퍼티가 생성되며
이 부분을 입력하면 입력한 값으로 프로퍼티 URI가 만들어진다.
이 부분을 필요에 따라 입력한 뒤 특수문자가 있을 경우 처리하는 방식에 대해 선택하고 다시 Next 버튼을 선택한다.
Next 버튼을 누르면 다음으로 나오는 화면에서 변경할 컬럼을 지정할 수 있도록 체크박스가 나오고 제일 마지막 열에 Property range 부분에서 xsd 데이터타입을 지정할 수 있다.
이 방식으로 TSV를 RDF로 만들 때 생성되는 프로퍼티는 무조건 DatatypeProperty로 만들어지는 것으로 확인된다.
(아님 다른 방식이 있는데 내가 모르는 것일 수도 있다.)
RDF로 만들 컬럼들을 지정하고 중간에 있는 인스턴스 네임 패턴을 추가적을 지정할 수 있다.
%{컬럼번호} 형식인데 디폴트는 %1 로 생성되어 진다.
여기서 다른 컬럼과 조합하여 인스턴스를 만들고 싶다면 %{컬럼번호}를 추가하여 지정하면된다.
마지막으로 Class Name 입력 부분은 만들어지는 subject가 어떤 클래스의 인스턴스로 만들지를 지정하는 부분이다.
참고로 TSV의 라인 하나당 하나의 인스턴스가 만들어지고 그 중에 첫번째 열이 인스턴스명이 되며
두번째 열부터는 인스턴스의 object가 된다. 이 때 predicate는 TSV의 헤더값이 된다.
위의 내용처럼 클래스명은 Student로 지정하였고 인스턴스명의 패턴은 전공명-이름 으로 지정하였다.
네번째 컬럼이 값은 데이터타입이 integer로 지정하였다.
모든 매핑이 완료되면 Finish 버튼을 클릭하여 임포트 과정을 종료시킨다.
에러가 없이 임포트가 종료되면 위와 같은 메시지가 나오고 TBC 프로젝트 안에 TSV 파일명과 동일한 이름의 ttl 파일이 생성되는 것을 확인할 수 있다.
이 파일을 더블클릭하여 TBC로 열어보면
owl:Thing 클래스 밑에 Student 클래스가 생성되어져 있고 그 클래스의 인스턴스로 7개의 인스턴스가 만들어져 있는 것을 볼 수 있다.
그리고 인스턴스명은 전공명-이름 컬럼의 조합으로 생성되어있고 프로퍼티는 property라는 접두어가 붙어 있는 상태로 만들어져 있는 것을 볼 수 있다.