Google Summer of Code를 보고 재밌겠다는 생각을 많이 했었는데, 우리나라에서도 WoC 2007라는 멋진 행사가 작년부터 열려 2회째를 맞고 있다. 때마침 학생 모니터링 요원으로 활동하고 있는 IBM developerWorks에서 후원도 하네 🙂
올해는 총 18건의 프로젝트가 제안되었고, 그 중 평소부터 생각해 오던 흥미로운 주제와 맞물리는 프로젝트를 발견해서 학생 멘티로 지원해 볼까 한다. 이제 여기부터는 공식 수행 계획서.
프로젝트 수행방법
- 마인드맵 드로잉 클라이언트 개발 or 분석,도입
-> 데스크탑 어플리케이션 형태뿐 아니라 RIA (Rich Internet Application) 혹은 Web 상에서의 구현도 가능하리라 생각한다. 오픈되어있는 그래픽 관련 API를 적극 활용하면 좋을 것 같다.
-> Firefox extension 형태로 개발하면 브라우저 검색 history 정보와의 연동을 통해 데이터 수집과 구조화가 더욱 용이하지는 않을까 하는 생각도 든다. - 마인드맵 형식의 지식DB 설계
-> 지식을 효율적으로 표현할 수 있는 ‘구조적’ 부분과 ‘시각화’ 부분을 균등하게 고려한다. 마인드맵의 특징은 조각조각의 지식을 표현하는 것이 아니라 지식 간의 관계를 시각적으로 나타낸다는 것이다. 이러한 점에 초점을 두고 DB를 설계할 필요가 있다. - 지식DB 구축
-> 구조화된 형태를 상세하게 define하고, 확장성이 있으면서도 검색이 용이한 포맷으로 만든다. - 구조화된 지식DB 검색엔진 개발
-> 지식 조각 (노드)에 대한 정보뿐 아니라 지식 간의 관계 (링크)까지 고려한 Tagging 등의 지식 표현 구조를 활용하여 효율적인 검색이 가능하도록 한다.
예상 일정
- 1주: 개발 내용과 범위에 대해 구체적으로 결정
- 2주: 마인드맵 드로잉 클라이언트 설계
- 3주: 마인드맵 드로잉 클라이언트 개발
- 4주: 구조화된 정보형태 뽑아내기 / 지식 DB 설계
- 5주: 지식 DB 구현
- 6주: 지식 DB 검색 알고리즘 개발
- 7주: 테스트 및 디버깅
- 8주: 문서화 및 마무리
예상 결과
- 마인드맵 드로잉 클라이언트
- 지식 DB 구축 형태 제안
- 지식 DB 검색 알고리즘
- 지식 구조화 API 를 통해 향후 확장 가능한 오픈소스 프로젝트로 발전
관련 경력
- 간단한 SQL parser 개발 (2003)
- PHP + MySQL 기반 간단한 음반 사이트 구축 (2인 팀 프로젝트, 2003)
- Medical Image Viewer DiView 개발 참여 (4인 팀 프로젝트, 2004)
- 임베디드 통신 모듈용 API, 이클립스 개발툴 개발 (시스템베이스, 2004~2007)
지원 사유
저는 지식과 정보를 다양한 형태로 시각화, 구조화함으로써 인간의 창조적인 활동을 도울 수 있는 Creativity Support Tool (CST) 에 관심이 많습니다. 마인드맵은 CST 의 훌륭한 구현 사례로, 컴퓨터라는 가상공간에 사람의 생각을 효율적으로 표현하기에 좋은 구조라고 생각합니다. 사람의 지식을 DB화하고 검색 / 구조화하는 데에 관심이 많아서 Brain DB 아이디어 노트를 통해 이러한 생각을 정리하기도 했고, OpenCyc 등의 프로젝트에도 관심을 가지고 있습니다.
저의 학문적인 관심분야인 Knowledge representation 과 Information visualization 에 대한 아이디어를 실질적으로 구현하려는 생각은 전부터 가지고 있었지만 방향 설정의 어려움 등으로 진행하지 못하였는데, 마인드맵 기반의 지식DB 및 검색시스템 구축 프로젝트가 이러한 생각을 구현하는 데에 있어 적격인 프로젝트라고 생각하여 지원하였습니다.
이 프로젝트를 통해 지식의 DB화에 대한 실질적인 구현과 오픈소스 프로젝트 참여경험을 쌓고 싶습니다. 멘토 분과의 긴밀한 관계를 통해 프로젝트에 임하는 자세와 관련 지식을 배우는 좋은 기회가 될 것 같아서 지원하였습니다.