일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 왕좌의 게임
- 맥북
- CANON AE-1
- 맥프레
- 맥
- 아리아 스타크
- 맥킨토시
- 샤오미
- 오존 스트라이크 배틀 RED
- Italy
- Torino
- 국립 영화 박물관
- 베나리아
- 애플
- 이탈리아
- 필름
- 여행기
- 튜린
- 오존 스트라이크 배틀
- 필름카메라
- Turin
- 토리노
- apple
- 여행후기
- 여행
- Parallels
- 후기
- 오존 스트라이크 배틀 RED LED
- Mole Antonelliana
- 해외여행
- Today
- Total
Happiness is everywhere
1. JESS란? 본문
JESS란 무엇인가?
JESS(Java Expert System Shell)는 rule-based system을 개발하기 위해 rule과 환경에 대한 fact을 설명할 수 있는 요소들로 구성되어 있는 rule-engine입니다. 1990년대 후반 Sandia National Laboratories의 Ernest Friedman-Hill에 의해 Java 언어를 바탕으로 개발되었습니다. JESS는 사용자가 입력한 rule과 fact들을 사용하여 forward chaining inference 방법으로 새로운 fact들을 추론하고 기존의 fact들을 변경시키게 됩니다. JESS의 큰 장점은 작고 가벼우며 가장 빠른 rule-engine이라는 점입니다. 또한 Java를 기반으로 개발되었기 때문에 Java Platform에서 호환이 가능한 API를 제공하고 있으므로 사용하고 활용하기 쉽습니다.
Rule-based system을 개발하기 위해서는 JESS 이 외에도 기존의 프로그래밍 언어나 인공지능 시스템을 위한 프로그래밍 언어를 사용할 수도 있습니다. 하지만 이러한 방법들로 rule-based system을 만들기에는 많은 제약사항이 있습니다. 먼저 C나 C++와 같은 일반적인 프로그래밍 언어로 rule-based system을 개발할 경우에는, 언어 자체에서 지원해주는 기능의 제한으로 인해 시스템 자체를 개발하기 어려우며 이로 인해 개발자가 직접 새로 개발해야 하는 부분이 많아지게 됩니다. LISP과 같은 인공지능 시스템을 위한 프로그래밍 언어들은 일반적인 프로그래밍 언어가 가지는 한계점들을 어느 정도 극복할 수 있어 시스템을 개발하는데 많은 어려움이 줄어들고 상대적으로 쉽게 rule-based system을 개발할 수 있으나 이러한 언어들을 이용해 시스템을 개발하기 위한 기술들이 필요하며 최종적으로 생성되는 산출물의 복잡도와 시스템의 크기가 JESS로 만든 시스템보다 더 높아지고 커지게 된다. 결론적으로 본 연구에서는 JESS를 이용함으로써 간단하고 쉬운 방법으로 rule-based system을 구현하였다.
그림 1 JESS Architecture
JESS의 architecture는 위의 그림에서 보이는 것과 같이 3개의 큰 component로 구성되어 있다. Working memory에는 사용자가 입력한 fact들이 저장되어 있고 Rule base에는 규칙들이 저장되어 있다. 저장된 fact와 규칙들을 이용하여 inference engine이 forward chaining inference 방법을 사용하여 새로운 fact들을 추론하거나 기존의 fact들을 수정하게 된다.
JESS를 사용함으로써 새로운 fact들과 규칙들을 쉽게 관리할 수 있어 체계적인 규칙의 관리가 가능해진다. 기존의 다른 방법에서는 규칙을 정의하고 적용하기 위해 포맷을 정의한다 할지라도 모든 상황을 고려하지 못하는 경우가 발생할 수 있다. 하지만 JESS에서는 정형화된 포맷을 통해 모든 경우의 규칙과 상황을 고려할 수 있다. 또한 동일한 이유로 새로운 fact가 시스템에 추가될 때, 시스템이 가지고 있는 규칙들을 쉽게 적용하여 새로운 사실들을 추론해 낼 수 있다.