온톨로지 비법노트를 출간했습니다
실제 도시데이터로 온톨로지를 다룰 수 있었던 이유
by Justin Kim
『온톨로지 비법노트』를 출간했습니다. 온톨로지 강의에서 다루었던 개념과 실습을 책으로 정리하면서, 독자가 직접 데이터를 가져오고 관계를 정의한 뒤 질문에 대한 답을 구하는 과정을 담고 싶었습니다. 출간 소식을 전하려니, 그 과정을 가능하게 해 준 데이터 이야기를 먼저 하고 싶습니다.
강의를 준비하면서 어려웠던 일 중 하나는 처음부터 끝까지 온전하게 동작하는 실습을 만들 수 있는 데이터 샘플을 구하는 것이었습니다. 온톨로지를 설명할 개념과 도구가 있어도, 그것들을 하나의 흐름으로 연결해 보여 줄 데이터가 필요했습니다. 데이터를 불러오고, 의미를 부여하고, 질의한 결과를 확인하는 데까지 갈 수 있어야 했습니다.

개념 하나를 설명할 때는 작은 예제를 직접 만들 수 있습니다. 사람 몇 명과 그 사이의 관계를 적어도 클래스와 프로퍼티를 설명할 수 있고, 숫자 몇 개를 정해 놓으면 규칙에 따른 추론도 보여 줄 수 있습니다. 하지만 강의 전체를 그런 방식으로 구성하려니 마음에 걸렸습니다. 설명하고 싶은 관계가 생길 때마다 그 관계에 꼭 맞는 데이터를 만들어 넣게 되기 때문입니다.
그러면 실습은 매끄럽게 흘러갑니다. 필요한 값은 늘 있고, 관계도 미리 정해져 있으며, 질문하면 준비한 답이 나옵니다. 정작 수강생이 자기 데이터를 앞에 놓았을 때 마주할 고민을 충분히 다루기 어렵습니다. 어떤 값을 하나의 개체로 보아야 하는지, 서로 다른 항목을 무엇으로 연결해야 하는지, 질문에 답하기 위해 빠진 정보는 무엇인지 같은 고민입니다.
다행히 공공데이터를 제공하는 포털에서 실마리를 찾았습니다. 이 책의 실습에는 서울시의 공공데이터 포털인 서울 열린데이터광장에서 제공하는 데이터를 사용했습니다. 서울시 실시간 도시데이터에는 인구와 도로 소통, 주차장, 날씨, 전기차 충전소 등 여러 도시 정보가 담겨 있습니다. 실제 장소를 중심으로 서로 다른 정보를 함께 살펴볼 수 있다는 점이 온톨로지 실습에 잘 맞았습니다.
무엇보다 안도했던 것은 온톨로지 강의를 위해 상상력을 동원해 가짜 데이터를 만들어 내지 않아도 되었다는 점입니다. 강남역이나 여의도 한강공원처럼 우리가 아는 장소의 데이터를 받아 볼 수 있었습니다. 설명을 위해 필요한 상황을 모두 꾸미는 대신, 제공된 데이터에 어떤 정보가 있고 그 정보로 어디까지 답할 수 있는지부터 살펴볼 수 있었습니다.
예를 들어 정체된 도로 근처에서 주차할 곳을 찾으려면 도로의 상태, 주차장의 위치, 남은 공간을 함께 알아야 합니다. 데이터에 도로명과 주차장 이름이 들어 있다는 것만으로 이 질문에 곧바로 답할 수는 없습니다. 무엇이 도로이고 무엇이 주차장인지, 각각의 상태는 어떻게 표현할지, 두 장소 사이의 거리는 어떻게 판단할지를 정해야 합니다. 실제 데이터가 있으니 온톨로지 모델링이 필요한 이유도 구체적으로 설명할 수 있었습니다.

책에서도 이 순서를 중요하게 다루었습니다. 먼저 알고 싶은 질문을 정하고, 원본 데이터에서 그 질문에 필요한 정보를 찾습니다. 이어서 개념과 관계를 정의하는 TBox와 개별 대상에 관한 사실을 담는 ABox를 설계합니다. 이때 어떤 클래스를 만들 것인지는 질문과 데이터를 함께 보면서 결정합니다. 독자가 자신의 데이터로 돌아갔을 때도 이 순서를 따라가 볼 수 있기를 바랐습니다.
실제 데이터를 쓴다고 모델링이 저절로 되는 것은 아닙니다. 오히려 판단할 일이 분명해집니다. 장소와 그 장소의 특정 시점 상태를 어떻게 구분할지, 원본의 어떤 필드를 관계로 옮길지, 어디까지 온톨로지로 표현할지 결정해야 합니다. 책 후반의 실습에서도 API가 주는 모든 항목을 한꺼번에 온톨로지로 바꾸기보다, 질의와 판단에 필요한 데이터를 골라 RDF로 변환하고 나머지는 원본으로 보관하는 방식을 다룹니다.
이런 선택을 거쳐 실제로 결과를 확인하는 과정까지 책에 담았습니다. Protégé에서 개념과 관계를 설계하고, 데이터를 Fuseki에 적재한 다음 SPARQL로 질의합니다. 그 결과를 자연어 질의 응답과 추천에 활용하는 실습으로 이어갑니다. 앞에서 정한 의미와 관계가 뒤에서 어떤 답을 구할 수 있게 해 주는지 연결해서 보여 주고 싶었습니다.

공공데이터가 있어서 좋았던 점은 수업이 끝난 뒤에도 질문을 이어 갈 수 있다는 것입니다. 책에 나온 조건을 바꾸거나 다른 장소를 살펴보면서, 같은 모델이 어디까지 쓸모 있는지 확인해 볼 수 있습니다. 데이터가 바뀌면 결과가 달라지는 이유를 살피는 일도 실습의 일부가 됩니다. 그때 온톨로지는 독자가 직접 고치고 시험해 볼 수 있는 설계가 됩니다.
이번 책을 준비하면서 데이터를 공개하고 유지하는 일이 교육에도 얼마나 큰 도움이 되는지 실감했습니다. 누군가가 데이터를 수집하고, 항목을 설명하고, 외부에서 호출할 수 있도록 제공해 주었기 때문에 저는 그 위에서 온톨로지를 가르칠 수 있었습니다. 덕분에 수강생과 독자도 실제 도시의 데이터를 가지고 관계를 정의하고 질문하는 경험을 할 수 있게 되었습니다.
『온톨로지 비법노트』를 통해 독자들이 자신의 데이터에 어떤 질문을 던질 수 있을지 떠올렸으면 좋겠습니다. 그리고 출간 소식과 함께, 이 강의와 책의 바탕이 된 공공데이터를 제공하고 운영해 주신 분들께 감사의 마음을 전합니다. 상상으로 채워야 할 줄 알았던 실습을 실제 데이터로 구성할 수 있어서 참 다행이었습니다.
서적 구매
Subscribe via RSS
Comments