▒ 접수 ▸ 2011년 6월 7일 수정 ▸ 2011년 7월 26일 채택 ▸ 2011년 8월 2일
▒ 교신저자 차웅석, 서울특별시 동대문구 회기동 1 경희대학교 한의과대학 의사학교실 Tel 010-3314-6797 E-mail [email protected]
객체지향형 처방 데이터베이스의 구축과 처방 검색 프로그램의 설계 및 개발
김현호
1, 홍효신
2, 유제혁
3, 권오민
4, 차웅석
51경희대학교 한의과대학 진단생기능의학과, 2소아과, 3침구과, 5의사학교실, 4한국한의학연구원
Construction of Object-oriented Prescription Database and Design/Development of Prescription Search Program
Kim Hyunho
1, Hong Hyo Shin
2, Yoo Je Hyuk
3, Ohmin Kwon
4, Cha Wung Seok
51Dept. of Diagnostics & Biofunctional medicine, 2Dept. of Pediatrics, 3Dept. of Acupuncture & Moxibustion, 5Dep. of Medicial History College of Oriental Medicine, Kyung Hee University
4Korea Institute of Oreintal Medicine
The first medical text in which detailed treatments of diseases by combinations of materia medica are mentioned is the Shanghanzabinglun(傷寒雜病論). True meaning of the combinations of materia medica used in this text lies in the fact that the efficacy of a prescription transcends that of the linear sum of each materia medica. This kind of concept regarding the composition of a prescription has come to contribute to the formation of theories in prescriptionology;
However, it is difficult to analyze and interpret the meaning of each prescription separately because of differences in interpreting methods, points of view, and terminologies used by members of different academical branches. Therefore, it is desirable that one should understand a prescription as having been modified from a basic prescription, and then bring the interactions of ingredients into the picture, finally understanding the efficacy and chief virtues of the targeted prescription. Nevertheless, with the massive information of prescriptions, which exist in the format of texts, it is impossible to efficiently take advantage of prescription analyzing methods, and therefore the range of analysis extremely restricted. In order to overcomes these weaknesses, this paper suggests that object-oriented prescription database be constructed and that a search program for education and research that could facilitate an efficient access to the database be developed as well.
keywords : prescription search, object-oriented, DB, basic prescription, modified prescription, prescriptionology
I. 서론
여러 본초를 배합하여 질병을 치료하는 방법은 서 한시대의 기록에서 이미 존재한다. 그러나 단순히 효 과가 비슷한 몇 가지 약물을 한데 섞는 것이 아닌, 높 은 치료효과를 발휘하기 위해 복잡한 조방이론과 방 법이 구체적으로 사용된 기록은 한대 장중경의 상한
잡병론(傷寒雜病論)이 그 시작이라 할 수 있으며, 여 기서 사용된 조방 이론은 여러 약물로 조성된 처방의 실제적인 공능이 단순히 각 본초의 효능의 선형적 결 합이 아니라는 것이다. 이러한 처방의 구성에 대한 개 념은 ‘본초학’과 독립적으로 발전하여 후대에 ‘방제 학’, ‘처방제형학’이라는 학문분과를 이루게 되었다1). 한의학이 지속된 지난 2천년간 수많은 의가들은 그 들의 의서에서 처방의 분석방법에 대하여 자신의 견 해를 피력하고, 이를 통하여 자신들의 학파를 구축하 1) 이병욱 외 3명.「단일개념 본초 효능 DB를 이용한 처방해설
연구」. 대한한의학원전학회지. 2007;20(4). 319-324.
<Fig. 1> 보중익기탕의 객체 구성 고 환자들을 효과적으로 치료하였으나, 해석의 방법
과 논의의 시점, 그리고 사용하는 단어의 의미에 있어 서 학파간의 차이가 너무나 심하고, 현학적인 접근방 법이 사용된 경우도 많기 때문에, 후학들이 이를 일관 적으로 받아들이기 힘든 것이 사실이다. 또한 많은 의 서들이 처방의 치료효과에 있어서 효능보다는 적응증 위주로 해설이 되어있기 때문에 주치에 대한 정보가 없는 경우에는 그 처방의 치료범위를 판단하기가 쉽 지 않다. 따라서 처방 하나하나를 따로 분석하여 의미 를 파악하는 것이 매우 힘들기 때문에, 실제적으로는 처방을 이루고 있는 기본방을 찾아내고, 그 기본방으 로부터 약물이 가감되는 것으로 처방의 구조를 파악 하고, 약대(藥對)의 의미를 첨부하여 최종적으로 목표 처방의 효능과 주치 등을 이해하는 것이 가장 바람직 하다고 할 수 있으며, 현대의 많은 방제학 서적들은 이러한 방법을 따르고 있다. 이러한 의미에서 본다면, 주어진 처방에서 기본방을 찾아내는 것과, 처방과 처 방사이의 약물 가감의 관계를 파악하는 것은 하나의 처방을 이해하는 데 있어서 필수적이다.
그러나 한의학 처방치료기술의 자료는 매우 방대하 며, 거의 대부분 텍스트(text)형태로 제공되고 있다.
텍스트형태로 되어있는 의서들과 데이터베이스자료 는 상술한 처방 분석의 방법을 효율적으로 적용할 수 없으며, 연구자의 기억력에 전적으로 의존할 수밖에 없기 때문에 분석 범위도 극단적으로 제한될 수밖에 없다. 따라서 본 논문에서는 객체지향(Object Oriented)의 개념을 이용하여 새롭게 방대한 데이터 베이스를 구축하고, 이 객체지향 데이터베이스에 효 과적으로 접근할 수 있는 검색 프로그램을 개발하여 학습 및 연구를 위한 처방 분석 도구를 완성한 것을 보고하고자 한다.
II. 본론
1. 객체(Object)의 개념과 장점
객체란, 모든 내용과 속성, 구성 성분들을 뜻한다2). 실제로 존재하는 모든 것은 객체가 될 수 있으며, 존
2) Bruce Eckel. Thinking in Java. 3rd edition. New Jersey:
Prentice Hall. 2003.
재하는 모든 것은 이러한 객체들을 포함하거나, 혹은 상위 객체에 포함됨으로써 자신을 나타낼 수 있다. 이 러한 객체를 설명하는 방법은 무척 다양할 수 있으나, 처방을 예로 들어 개념을 정립하는 것이 가장 효과적 일 것이다. 동의보감(東醫寶鑑) 출전의 보중익기탕 (補中益氣湯)을 예로 들어본다면, 먼저 보중익기탕 자 체가 하나의 객체이다. 여기서 언급한 객체는 ‘보중익 기탕’이라는 처방명이 아니라 처방 자체를 나타낸다.
그리고 이 객체는 그 안에 여러 개의 하위 객체를 포 함하는데, ‘처방명’이라는 타입(type)의 객체, ‘구성본 초’라는 타입의 객체, ‘복용법’이라는 타입의 객체, ‘효 능’이라는 타입의 객체, ‘주치’라는 타입의 객체, ‘출 전’이라는 타입의 객체를 가지게 된다. 또한 이중에
‘구성본초’라는 하위 객체는 다시 ‘본초’라는 객체들 의 모임으로 구성되어 있으며, 다시 ‘본초’라는 객체 는 ‘본초명칭’이라는 객체와 ‘포제법’, ‘본초용량’이라 는 객체로 이루어졌다고 볼 수 있다. 이 객체가 가지 고 있는 하위객체 중 ‘처방명’이라는 타입의 객체에는
‘보중익기탕’이라는 문자열이 속해있으며, ‘주치’라는 타입의 객체에는 ‘자한’, ‘권태’, ‘음식실절’등이 속해 있다. 또한 ‘본초명칭’이 ‘인삼’, ‘포제법’이 ‘-(없음)’,
‘본초용량’이 ‘1돈’이라는 각각의 객체로 이루어진 ‘본 초’ 객체를 가지고 있으며, 이 ‘본초’객체들이 모여서
‘구성본초’라는 객체를 구성하게 된다. 보중익기탕 객 체의 구조는 <Fig. 1>에 도식화 되어있다.
설명 자체는 줄글의 형태로 되어있는 의서의 내용 에 비해 좀 더 복잡하게 생각될 수도 있으나, 실제 도 식화된 그림을 보면 훨씬 구조적으로 보중익기탕을 이해할 수 있다는 것을 알 수 있다. 그러나 객체구조 의 장점은 사물을 구조적으로 이해할 수 있다는 것만 이 아니다. 사물 혹은 개념들의 비교, 대조, 포함, 배타 적 포함 관계 등 관계의 구조를 판단하는데 객체구조
는 매우 용이하게 사용될 수 있으며, 정확하게 객체를 다룰 수 있다면 대용량의 데이터를 처리하는데 있어 서 매우 효율적이다. 만일 텍스트 형태의 자료가 주어 지고, 처방들을 비교해야 한다고 가정한다면, 일일이 본초들을 비교해가면서 보아야 할 것이다. 이러한 경 우에 연구의 대상이 되는 처방이 몇 종류 되지 않는다 면 큰 문제가 되지 않을 수 있다. 그러나 연구가 대용 량의 데이터베이스 안에서 이루어지거나, 연구의 형 태가 비교가 아닌 검색의 경우라면, 텍스트 형태의 자 료에서 단순히 문자열 검색만으로 원하는 자료를 얻 어내는 것은 무척 많은 노력과 시간이 드는 일일 것이 며, 또한 그 정확성도 충분히 보장할 수 없을 것이다.
2. 기존 처방 데이터베이스와 그 한계
현대에 들어서 컴퓨터 프로그래밍 기술과 하드웨어 가 발달함에 따라 컴퓨터를 이용한 연구 역시 활발해 졌다. 한의학 역시 컴퓨터를 이용하여 자료를 정리, 연구함으로써 방대한 자료에 대한 접근성이 높아졌으 며, 따라서 자료로부터 새로운 의미를 찾아내는 데 많 은 노력을 절약할 수 있게 되었으나, 이렇게 전산화된 한의학 자료들은 텍스트의 수준을 크게 벗어나지 못 하고 있다3). 많은 양의 의서들과 처방들이 텍스트 형 식으로 입력되어 있기 때문에, 비교와 대조, 포함관계 의 파악 및 검색에 있어서 전혀 효율적이지 못한 것이 사실이다. 물론 텍스트 형식으로 입력되어 있는 경우 에도 문자열 검색을 통하여 원하는 부분을 빠르게 찾 을 수는 있으나, 이는 정확히 합치되는 문자열만을 검 색하기 때문에 따로 떨어져있는 데이터사이의 관계를 알 수 없다. 예를 들어, 동의보감의 모든 내용이 입 력되어있는 자료가 있다 하더라도, 문자열 검색 기능 만 이용하여 ‘인삼’과 ‘감초’를 동시에 가지는 처방을 골라내기 위해서는 무척 많은 시간과 노력이 들 것이 며, 특히 효율적인 학습 및 기초연구에 있어서는 많은 도움이 되지 못하는 것이 사실이다.
최근에 한의학연구원이 주도한 프로젝트인 전통지 식 데이터베이스 구축사업에서는 이러한 텍스트의 단 점을 극복하기 위하여 객체의 개념을 사용한 객체지 향프로그래밍(Object Oriented Programming)을 이 용하였으며, 특허청의 주도하에 ‘한국전통지식포탈
3) 안상우외 4명.「향약집성방의 데이터베이스 구축」. 한국한의학 연구원 연구보고서. 2001.
(www.koreantk.com)’의 형태로 제공하고 있다. 이 사업에서는 처방뿐 아니라 논문, 약제, 처방, 병증, 화 합물 등을 기준으로 하여 매우 다양한 방법으로 한의 학의 주요 요소들에 접근할 수 있도록 하였다4). 그러 나 훌륭한 서비스임에도 불구하고, 인터넷 웹서비스 의 기술적 한계로 인해 사용자편의성이 비교적 떨어 진다는 점과, 특히 처방검색에 있어서 연구자들에게 필요한 객체구조의 장점을 살린 다양한 검색기능의 부재, 그리고 명,청대 이후 중국 의서의 추가가 개선 되어야 할 점으로 생각된다. 또한 원천자료에 대한 내 용을 이해할 수 있는 한의학 전문가의 확보가 부족하 였고, 구축자료에 대한 충분한 검토가 미흡한 것이 사 실이다4). 그리고 한편에서는 원천자료를 DB화하기 위한 방법론으로서 온톨로지(Onthology) 및 의미웹 (Semantic Web)에 기반한 다소 이상적인 DB구축에 대한 방법론 등에 대한 연구도 잇따르고 있다.5)6)본 연구에서는 이러한 기존 서비스의 한계를 극복하고, 또 현재에 상용화할 수 있는 수준의, 정확한 데이터베 이스의 구축과 보다 다양하고 효율적인 검색 방법의 개발을 목표로 하였다.
3. 객체지향형 데이터베이스의 구축
1) 데이터베이스 구축 내용
데이터베이스의 구축 내역은 <Table 1>과 같다.
2) 데이터베이스 구축 세부 내용
현재 임상에서 많이 사용하고 있는 대상 뿐 아니라, 한국 전통의학의 주체성 측면에서 동의보감(東醫寶 鑑)과 방약합편(方藥合編), 동의수세보원(東醫壽 世保元) 등을 중심으로 한국의서를 우선적으로 선정 하였고, 의사학적인 맥락에서 중요한 위치를 차지하 는 중국 각 시대의 의서를 선정하였다. 그리고 임상에 서 많이 사용하고 있다 하더라도 아직 학문적 권위를 인정받지 못하다고 판단된 현대의 자료들은 제외하였다.
4) 한국한의학연구원 편집부.「전통지식 DB 구축사업(2차년도) 완료보고서」. 한국한의학연구원. 2007.
5) Lee HS.「Onthology-based Prescription Knowledge Management System of Oriental Medicine」. Korean Studies Information. 2006.
6) Oh JH, Ahn SW, Kim NI, Cha WS.「Research of Historic Knowledge Based Traditional korean Medicine Database System」. Korea Journal of Oriental Medicine. 2010.
검토, 수정사항 의서명 처방수 소계
본초명칭, 포제법, 본초용량 검토
동의보감 3917
7635
방약합편 813
의학입문 2340
동의수세보원 76
상한론 113
의방집해 376
본초명칭 검토
경악전서 2611
12969
금궤요략 228
금원사대가 의학전서 4554
변증기문 770
부청주남여과 189
소아약증직결 176
온병조변 204
온열경위 113
의림개착 34
의종금감 1817
제중신편 1150
청강의감 154
혈증론 201
화제국방 768
총계 20604
태평성혜방 약 20000 약 40000
<Table 1> 객체지향형 데이터베이스 구축 내용
선정된 의서들에 대하여 전문가 검토 후 확정하였다.
선정된 의서들은 모두 수작업을 통하여 데이터베이 스화 되었으며, 이는 경희대학교 한의과대학 58회 졸 업생들에 의해 이루어졌다. 1차로 수집된 데이터는 본 연구팀에 의해 검토, 수정되었으며, 검토, 수정된 사항은 <Table 1>과 같으며, 우선순위는 전문가에 의해 중요하다고 판단된 순서이다.
3) 처방 객체의 구조
세계지적재산권기구(WIPO, World Intellectual Property Organization)의 논의에 따르면, 전통의학 지식을 보호하기 위해서는 크게 한약자원구조 혹은 임상기술 데이터베이스라는 특별히 구축된 데이터베 이스 구조를 가져야 하는데, 본 연구와 관련된 부분은 후자이다. 임상기술 데이터베이스 구조는 처방명, 효 능, 주치증 분류, 주치증, 구성약물, 복용법, 제조법, 조작기법, 출전1, 출전2, 저자(소유자), 출판년도, 요 법분류, 변방, 가미방 등으로 이루어져있다7). 그러나
7) 안상우 외 4명.「전통의학산업 육성 시스템 구축 방안에 근거한 전통의학 지식 DB의 보완점 고찰」. 한국한의학연구원 연구
각 시대의 의서에 수록된 처방들은 정확히 표준화되 지 않은 내용이 대다수이며, 온톨로지(ontology) 구 조에 대한 총의(consensus) 역시 미흡하거나 전무하 기 때문에 연구와 학습을 위한 1차 도구를 개발하는 것이 목표인 본 연구에서는 WIPO 기준에 따른 모든 자료를 확보하는 것이 의미가 없다고 판단하였고, 연 구 인력 및 기간부족으로 인하여 필수적이지 않다고 판단된 자료는 제외하였다.
본 데이터베이스 처방객체의 구조설계는 동의보 감의 구성을 기준으로 이루어졌으며, 각각 처방명, 출전, 문(門), 출판사 및 페이지, 주치, 구성본초의 하 위 객체를 가진다. 처방명(한글(한문)의 형식), 출전, 문, 출판사 및 페이지는 문자열의 속성을 가지고 있으 며, 주치 역시 문자열의 속성을 가진다. 주치를 단순 문자열로 속성을 부여한 까닭은, 아직 한방처방의 주 치에 사용되는 용어(terminology)의 온톨로지에 대 하여 범 한의계적인 총의가 충분하지 못하기 때문에 주치의 표준화에 있어서 심각한 한계가 있기 때문이 다. 따라서 주치는 각각의 성분에 따라 객체화가 불가 능 하여, 전체를 문자열을 하나의 객체로만 구성하였 다. 본 연구에서 가장 중요하게 고려한 구성본초객체 부분은, 다시 본초라는 하위객체로 이루어져 있으며, 그것은 다시 ‘본초명칭’과 ‘포제법’, ‘본초용량’의 객체 를 가지게 된다. 따라서 본 데이터베이스는 처방명, 출전, 문, 출판사 및 페이지, 주치에 대해서는 단순 문 자열 검색으로 접근이 가능하며, 구성 본초에 대해서 는 표준화된 ‘본초명칭’이라는 객체를 통하여 매우 다 양한 방법으로 접근이 가능하다. ‘본초용량’의 경우는 각 시대 도량형에 대한 표준화의 문제로 문자열로 속 성을 부여하였으며, ‘포제법’ 역시 아직 표준화가 미 흡하여 문자열로 속성을 부여하였다. 출판사 및 페이 지라는 객체를 설정한 이유는, 본 데이터베이스를 보 다 편리한 연구 및 학습 도구로 사용하기 위해서이다.
4) 본초명칭의 표준화
개발대상으로 선정된 의서들에 수록된 본초들은 이 명의 형태로 기록된 것이 많고, 그 이명 또한 다양하 기 때문에 정확하고 효과적인 검색을 위해서는 본초 명칭을 표준화할 필요가 있다. 따라서 본 연구에서는 선정된 모든 의서의 처방 내용에 대해서는 본초 명칭
보고서. 2004.12.:37-47.
을 표준화 하였다. 표준화의 세부 원칙은 다음과 같 다. 첫째, 이명의 경우는 대표명을 정하여 강제로 변 환하였다. 예를 들어 파고지(破古紙)는 보골지(補骨 脂)로 일괄 변환하였으며 조금(條芩), 편금(片芩) 등 도 황금(黃芩)으로, 단사(丹沙)는 주사(朱沙)로 일괄 변환하였다. 이명의 변환 기준은 본초학8)과 한국 의 약용식물9), 그리고 한국전통지식포탈의 약재검 색부분10)이었다. 둘째, 본초학적 의미로 구분해서 사 용하는 동속근연식물 혹은 그 유사한 경우(적복령, 백 복령, 복신등)는 그 의미를 살리기 위하여 구분하였 다. 그러나 보다 다양하고 포괄적인 검색을 위하여 가 족본초라는 개념을 새롭게 구축하여 본 객체들의 관 계를 설정하였으며, 이는 다음 절에서 설명하겠다. 셋 째, 본초학적 의미로 구분해서 사용하는 한 식물의 각 부분(계심, 계지, 계피, 계화, 관계, 육계)들은 역시 의 미를 살리기 위하여 구분하였으나, 가족본초의 개념 으로 관계를 묶어서 설정하였다. 넷째, 모든 본초는 한글로 입력하였다. 보다 완벽한 데이터베이스를 구 축하기 위해서는 본초의 한문명칭도 확보해야 하지 만, 윈도우즈 OS 및 개발환경에서 지원하지 않는 확 장한자의 문제가 존재하기 때문에 불가능하였다. 그 러나 같은 명칭을 가진 본초들이 거의 없으며, 있다 하더라도 현재 많이 사용하는 본초들이 아니라 생각 되기 때문에, 1차 연구 및 학습도구로서 사용하기에 는 문제가 없다고 생각하며, 추후에 한문 명칭을 추가 하는 작업은 그리 어렵지 않을 것으로 생각한다.
본 연구에서 구축한 본초의 표준화 결과 선정된 의 서에 사용되어 객체로 구분할 수 있는 본초는 1700여 종이었다. 이명의 일괄변환 목록과 표준본초 목록, 그 리고 가족본초의 목록은 학습 및 연구용, 그리고 오류 의 수정 및 부족한 부분의 업데이트를 위하여 검색 프 로그램과 함께 제공할 예정이다.
4. 객체지향프로그래밍을 이용한 검색 프로그램의 개발 과 그 기능
8) 전국 한의과대학 본초학 편집위원회. 본초학. 초판. 서울:
영림사. 2006.
9) 배기환. 한국의 약용식물. 5판. 서울:교학사. 2003.
10) Korean Intellectual Property Office. Korean Traditional Knowledge Portal. www.koreantk.com. access on 2009.2.-2009.10.
1) 개발 환경 및 기본 사항
검색 프로그램은 자바개발환경(Java Development Kit6)에서 이클립스(eclipse tool)를 이용하여 개발되 었다. 자바가상머신(Java Virtual Machine)이 지원되 는 모든 운영체제(Operating System)에서 사용이 가 능하며, 데이터베이스의 모든 내용은 검색 프로그램 에 포함되어있기 때문에 오프라인상에서 사용할 수 있고, 따라서 검색의 속도 및 데이터 처리 용량이 온 라인 서비스에 비하여 우수하다. 데이터베이스의 내 용을 사용자 임의로 바꾸어 배포하는 것을 방지하기 위하여 데이터베이스의 내용을 코드(Code)의 형태로 포함시켜 임의적인 열람 및 수정이 불가능하게 하였 다. 검색 프로그램은 경희대학교 한의과대학 58회 졸 업생들이 구축한 객체지향형 데이터베이스에 접근, 검색하기 위한 프로그램이며, 따라서 프로그램의 이 름을 InSAM(INtelligent Searching Academic Masterpiece)으로 하였다.
2) 가족본초의 개념 및 설정
가족본초의 개념은 본초의 표준화 작업 중 발생한 것으로서, 유사하지만 본초학적으로 구분될 만한 의 미를 가진다고 판단되는 본초들을 그룹으로 묶어놓은 것이다. 세부 원칙은 다음과 같다. 첫째, 당귀, 당귀미, 당귀신, 당귀두, 귀초 등 같은 종의 본초이나 약용부 위가 다른 경우이다. 둘째, 지황, 건지황, 숙지황, 생지 황 등 같은 본초이지만 포제법이 달라서 본초학적 의 미가 다른 경우이다. 셋째, 작약, 백작약, 적작약 혹은 창출, 백출 등 거의 유사한 본초이지만 본초학적 의미 가 다른 경우이다. 넷째, 인유(人乳), 우유(牛乳), 저유 (猪乳), 연유(煉乳) 혹은 미(米), 갱미(粳米), 나미(糯 米), 서미(黍米), 속미(粟米), 조미(粗米) 등 상식적으 로 때에 따라서 같은 범주에 속할 수 있다고 판단 된 경우이다.
이렇게 설정된 가족본초의 개념을 사용함으로써 본 프로그램은 보다 다양한 검색기능을 가지게 된다. 가 족본초기능을 사용하지 않을 경우에는 위에서 예를 든 각 본초들은 독립적으로 관계가 없는 본초로 사용 되지만, 가족본초기능을 사용할 경우에는 각 그룹에 속한 본초들을 모두 검색할 수 있다. 예를 들어 ‘인유’
로 검색을 할 경우 ‘인유’가 속한 그룹의 본초들인 ‘우 유’, ‘저유’, ‘연유’등이 프로그램에서 제시되는데, 이
쿼리(Query) 의미 검색방식 인삼 백출 복령 인삼, 백출, 복령이 모두 포함된 처방
검색
DownTop- 인삼 백출 복령/2 인삼, 백출, 복령중 2개 이상을 포함
하는 처방 검색
인삼 백출 복령 -부자/2 인삼, 백출, 복령중 2개 이상을 포함 하지만, 부자는 포함하지 않는 처방 검색
사군자탕/동의보감/2 동의보감 기준 사군자탕과 본초가 2 개 이상 겹치는 처방을 검색 십전대보탕/동의보감/0 십전대보탕의 구성 본초들의 부분집합으로 이루어진 처방 검색
Bottom- Up 십전대보탕/동의보감
/-2
십전대보탕의 구성 본초들의 부분집 합과 그 외 2개까지 다른 본초로 구 성된 처방 검색
반하 백출 진피 백복령 인삼 감초 생강 대조/0
반하, 백출, 진피, 백복령, 인삼, 감초, 생강, 대조의 부분집합에 속하는 처 방 검색
반하 백출 진피 백복령 인삼 감초 생강 대조/-2
반하, 백출, 진피, 백복령, 인삼, 감초, 생강, 대조의 부분집합과 그 외 2개 까지 다른 본초로 구성된 처방 검색
<Table 2> 본초 혹은 처방으로 검색하는 Query의 예시
<Fig. 2> Top-Down Relationship Search(plus match)의 예시
<Fig. 3> Bottom-Up Relationship Search(minus match)의 예시 중 원하는 본초를 선택하면 선택한 본초가 ‘인유’를 대
신한 처방까지 같이 검색되게 알고리즘을 구축하였다.
3) 검색기능
(1) 처방명, 주치로 검색하기
처방명 혹은 주치로 검색하는 경우는 단순한 문자 열 비교 검색을 적용하였다. 쿼리에 주어진 문자열이 처방명 혹은 주치에 포함되어 있으면 검색결과에 포 함된다.
(2) 본초 및 처방으로 검색하기
객체지향형 데이터베이스의 장점을 그대로 살린 기 능으로, 본초의 이름을 이용하여 다양한 검색이 가능 하며, 대표적인 예시는 <Table 2>와 같다. 기본방에 서 확장되어가는 처방을 검색할 것인가, 혹은 이미 확 장된 처방에서 기본방을 찾아갈 것인가에 따라서 검색 방식을 두가지로 나뉘고, 각각 Top-Down Relationship Search(plus match), Bottom-Up Relationship Search(minus match)라고 명명하였다.
Top-Down Relationship Search는 기존 쿼리 (query)에 양의 정수(n)를 포함시킨 것으로, 쿼리에 해당하는 본초들 혹은 처방과 n개 이상 본초가 겹치 는 처방들을 검색한다. 예를들어 ‘사군자탕/동의보감 /3’이라는 쿼리는 동의보감 출전의 사군자탕과 본
초가 3개 이상 겹치는 처방들을 검색하게 된다. 사군 자탕을 온전하게 포함하는 확장처방을 검색하고 싶을 경우에는 ‘사군자탕/동의보감/4’라는 쿼리를 사용할 수 있으며, ‘인삼 백복령 백출 감초/4’ 역시 같은 의미 이다. 따라서 이 기능은 주로 기본방에서 시작하여 처 방이 확장되어가는 과정을 볼 수 있다.<Fig. 2>
Bottom-Up Relationship Search는 역시 기존 쿼 리에 0 혹은 음의 정수(-m)를 포함시킨 것으로, 쿼리 에 해당하는 본초 혹은 처방에 포함되는 다른 처방들 을 검색한다. 이 기능은 쿼리에 해당하는 본초들 혹은 처방에 포함된 보다 작은 처방들을 검색하는데, m개 까지는 다른 본초를 가지고 있어도 허용한다는 의미 이다. 예를들어 ‘십전대보탕/동의보감/0’이라는 쿼리 는 ‘동의보감 출전의 십전대보탕에 완전한 부분집 합인 처방들을 검색하라’는 의미이며, ‘십전대보탕/동 의보감/-3’이라는 쿼리는 ‘동의보감 출전의 십전대 보탕에 포함되지만 3개까지는 다른 본초를 가지고 있 어도 허용한다’라는 의미이다. 후자의 결과에는 의학 입문의 쌍화탕이 포함되는데, 쌍화탕에서 관계 생강 대조를 제외하고는 십전대보탕에 포함되기 때문이다.
따라서 이 기능은 주로 확장된 처방에서 그 처방을 이 루고 있는 기본방 혹은 기본방이라 생각되는 유사한 처방들을 찾을 경우에 사용된다.<Fig. 3>
4) 부가기능
결과 내 검색, 포제와 용량표시, 가족본초기능, 본 초 이름순 정렬 등을 검색 옵션으로 줄 수 있으며, 검 색 대상 의서를 선택하는 의서선택 기능, 검색 결과 내 처방들 중 보다 중요한 처방들을 따로 관리할 수 있는 관심처방 기능, 검색 결과를 텍스트의 형태로 저 장할 수 있는 세이브 기능, 프린트 기능, 처방명과 출 전 혹은 구성 등에 따라 처방들을 정렬할 수 있는 기 능, 검색 결과 내에서 처방을 상하로 움직일 수 있는 기능, 검색 결과 내에서 처방을 삭제할 수 있는 기능, 의서로의 접근성을 강화하기 위한 출판사 및 페이지 확인 기능, 원하지 않는 본초가 제외된 처방 등을 검 색할 수 있는 기능 등이 있으며, 자세한 사항은 프로 그램과 함께 제공될 설명서에 상술되어 있다.
5. 개발프로그램 검색시연
실제 검색 프로그램은 사용자의 편의를 위하여 결 과내 검색, 결과물 저장, 출력기능, 각종 파라메터를 기준으로 정렬하기, 관심처방저장등 매우 다양한 부 가기능을 가지고 있으나, 본 논문에서는 프로그램의 가장 중요한 기능인 검색기능의 결과물을 캡춰화면을 이용하여 본 논문의 끝에 소개하였다. 프로그램의 초 기 화면은 <Fig. 4>와 같으며, 기본적인 검색 결과는
<Fig. 5>, Top-Down Relationship Search의 예는
<Fig. 6>, 그리고 Bottom-Up Relationship Search 의 예는 <Fig. 7>에 소개되어 있다. <Fig. 8>은 연구 대상이 되거나 특별히 따로 보관하여 추후에 다시 볼 수 있는 관심처방으로 보내기 기능을 보여주며, <Fig.
9>은 가족본초기능을 이용한 검색창을 보여준다.
<Fig. 4> InSAM ver. 1.05의 기본 화면
<Fig. 5>‘인삼, 백출, 숙지황, 천궁’을 포함하는 처방 찾기
<Fig. 6> 동의보감 출전 사군자탕을 기준으로 3개 이상 본초가 겹치는 처방 찾기(Top-Down Relationship Search)
<Fig. 7> 선택한 처방 관심처방 탭으로 옮기기 기능
<Fig. 8> 동의보감 출전 반하백출천마탕에 포함되는 처방 찾기(1개의 본초 예외 인정)(Bottom-Up Relationship Search)
<Fig. 9> 가족본초 사용 옵션을 선택하고 검색하였을 경우 나타나는 가족본초선택창
6. 발전방향 및 개선점
본 연구에서 구축한 객체지향형 데이터베이스에 대 한 지속적인 보완과 보강이 필요하다. 특히 객체지향 형 데이터베이스 자료는 누락없이 확보하였으나 매우 오래전에 창작된 관계로 관련자료의 부재와 본 연구 기간의 부족 등에 의해 본초를 모두 표준화시키지 못 하여 태평성혜방(太平聖惠方) 약 20000방의 경우 는 검색프로그램에 제공되지 못하였다. 확장한자 및 이체자등의 특수한 경우 유니코드 체계가 갖는 한계 로 인하여 발생하는 문제가 있으므로 입력지침의 작 성 및 한자표현방법에 대한 연구도 필요하다4). 여러 번 상술하였듯이, 객체지향형 데이터베이스를 효과적 으로 구축하고 자기 일관성(Self-Consistency)을 가 지기 위해서는 표준화가 필수적인 선결조건이다. 특 히 효능과 주치에 대한 표준화는 한의학계가 앞으로 반드시 해결해야할 과제라고 할 수 있겠다. 그리고 본 초들의 이명과 기원에 대한 연구 역시 보다 자세히, 그리고 정확히 이루어져야 본초에 대해서도 보다 정 확한 표준화가 이루어질 수 있을 것이며, 나아가 영문 화 작업 역시 일관성있게 이루어질 수 있을 것이다.
Ⅲ. 결론
컴퓨터 기술의 발달로 한의학 자료의 상당수가 전 산화되었으나, 텍스트형식의 한의학 자료는 자료, 특 히 처방의 비교 및 포함관계 분석에 태생적으로 취약 한 한계를 가지고 있다. 따라서 효율적인 처방 구성 약물의 비교 및 포함관계 분석을 위해서는 객체지향 형의 데이터베이스를 구축해야 하며, 동시에 그 데이 터베이스에 정확하고 효과적으로 접근할 수 있는 검 색 프로그램을 개발해야 한다. 이에 본 연구에서는 의 사학적인 중요성을 가지고, 임상에서 많이 사용되는 한국과 중국의 의서 21종을 선정하여 수록된 처방 40000여개에 대하여 객체지향형 데이터베이스를 구 축하였으며, 구축과정 중 본초들을 표준화 하였다. 또 한 연구자 및 학생들의 의도에 따라 가족본초, 관심처 방관리 등 다양한 검색방법으로 데이터베이스에 정확 하고 효과적으로 접근할 수 있는 검색 프로그램인 InSAM을 개발하였다. 초기 데이터는 누락없이 확보
하였으나, 창작시기가 매우 이르기 때문에 관련 자료가 부족하여 본초를 표준화 시키지 못한 태평성혜방
20000여 방에 대해서는 추후의 업데이트가 필요하다.
감사의 글 및 프로그램의 배포
객체지향형 데이터베이스화 작업을 해 준 경희대학 교 한의과대학 58회 졸업생 일동과, 자료의 검토 및 수정작업을 하고, 본 연구의 설계 및 개발, 구현에 도 움을 준 연구팀 전원에게 감사드린다. 본 개발팀에서 개발한 프로그램(InSAM Ver 1.05)은 CD-ROM의 형태로 초기 배포되었으며, 영리를 목적으로 제작되 지 않았기에 개인적으로 자유롭게 배포와 복제를 할 수 있다. 다만 데이터베이스에 대해서, InSAM을 이용 하지 않은 임의적인 접근 및 수정은 허용하지 않았다.
이 논문은 2008년도 정부재원(교육인적자원부 학술 연구조성사업비)으로 한국학술진흥재단의 지원을 받 아 연구되었음.(KRF-2008-331-E00432)