N_11. 온톨로지 모델에 인스턴스 생성하기 - TSV
온톨로지는 스키마 레벨과 인스턴스 레벨로 구분되어 지는데
스키마 레벨은 보통 온톨로지 모델링 도구를 사용하여 모델을 생성한다.
DB로 이야기하면 데이터베이스를 설계하여 만들어낸 결과가 온톨로지 모델 즉 스키마 레벨로 이야기할 수 있다.
그리고 실제 데이터베이스 값들은 미리 생성한 테이블에 생성을 하게 되는데
온톨로지에서도 마찬가지로 온톨로지 모델에 맞춰 인스턴스를 생성하게 된다.
이번 글에서는 온톨로지 모델이 존재하고
그 모델에 맞춰 인스턴스를 생성하고자 할 때
일정한 구조에 맞춰 데이터를 입력하고 그 데이터를 인스턴스로 변환하여 생성하고자 할 때 유용한 방법이다.
일정한 구조는 여기에서 TSV 형식인데, 우리가 보통 엑셀로 작업하여 TSV로 변환하여 사용하면 되기 때문에
엑셀에 데이터를 입력한다고 생각해도 무방하다.
여기에서 사용하는 모델은 아래의 포스팅에서 다운받을 수 있다.
https://joyhong.tistory.com/84
모델에 맞춰 엑셀로 데이터를 입력하여 RDF 형식으로 변환할 데이터가 구축되어 있다고 가정하고 포스팅을 시작한다.
포스팅에서 사용할 데이터는 위의 엑셀과 같다.
사용자가 엑셀로 데이터를 구축하고 이 데이터를 온톨로지 모델에 맞춰 RDF 형식으로 변경하려면
트리플 변환이라는 과정을 거쳐야 하는데
TBC에서는 이 기능을 제공하고 있다. (이 기능은 FE 버전은 제공하지 않는 것으로 알고 있다.)
정확히 이야기하면 이 기능은 TSV 형식을 RDF 형식으로 변경하여 import 하는 기능이다.
따라서 위의 엑셀 파일을 TSV 형식으로 변경하여야 한다.
여기서 해결해야 하는 부분이 인코딩 문제가 있는데
가장 완벽한 해결 방법으로는 TBC 안에서 tsv형식의 txt 파일을 생성하고
그 txt 파일을 임포트 하는 방식이다.
1. TSV 형식의 TXT 파일 생성
TBC에서 새로운 파일을 txt 형태로 생성한 후 엑셀의 내용을 복사하여 붙여넣기를 하여 데이터를 준비한다.
이 때 엑셀 시트 하나당 하나의 txt 가 만들어져야 한다.
프로젝트는 이미 만들어져 있다고 가정하고
네비게이터 영역에서 해당 프로젝트를 선택하고 마우스 우클릭하여 New > File을 선택한다.
그 다음 파일명을 입력하고 Finish 버튼을 클릭하면 하나의 txt 파일이 생성된다.
위의 과정 처럼 TBC 안에서 txt 파일을 생성한 후 생성된 txt 파일에 엑셀의 내용을 복사하여 붙여넣으면 완료가 된다.
복사하여 붙여넣기를 하게 되면 자동으로 탭으로 구분이 되어지기 때문에
혹시 엑셀의 셀 내용 중에 탭 구분자가 있다면 미리 치환을 할 필요가 있겠다.
2. TSV 파일 임포트
TBC 프로젝트 안에 tsv 파일이 만들어졌다면 온톨로지 모델 파일을 한번 선택해 놓고, 임포트할 tsv 파일에서 마우스 우클릭을 한다. (온톨로지 모델 파일도 TBC 프로젝트 안에 존재한다고 가정한다.)
이 의미는 선택한 온톨로지 모델 파일에 tsv 파일을 임포트 하겠다는 의미이다.
Import를 선택 후 TopBraid Composer > Import Tab-Delimited Spreadsheet File 을 선택하고 Next 버튼을 클릭한다.
다음에 나오는 화면에서 하단의 체크 박스를 선택하고 인코딩을 UTF-8로 선택한다.
만약 첫번째 텍스트 박스에 표기된 내용이 임포트할 tsv 파일이 아니라면 바로 밑의 버튼을 선택하여 대상 tsv 파일을 선택하면 된다.
인코딩 선택까지 완료되면 Next 버튼을 클릭하고 다음에 나오는 선택에서는 특수문자에 대한 처리인데 원하는 것을 선택한 후 다시 Next 버튼을 선택한다.
여기까지 에러가 없을 경우에는 스프레드시트 미리보기 창이 나오게 되는데
TSV의 값과 온톨로지 모델 간의 매핑을 미리보는 화면이다.
이 예제에서는 TSV의 헤더명을 모델의 프로퍼티명에 해당되는 이름으로 맞춰놓았기에 아무런 붉은 체크 없이 완벽하고 나오고 있는 것이다.
만약 붉은 체크 또는 X 표시가 보이면 값을 바꿔줘야 한다.
임포트가 완료되면 해당 온톨로지 모델에 실제 인스턴스값이 추가되어 있는 것을 확인할 수 있다.
예시에서 사용한 TSV 파일은 위의 파일과 같다.
다음에는 온톨로지 모델이 없는 경우에 TSV 데이터를 바로 RDF 형식으로 만드는 방법에 대해서 살펴볼 예정이다.