Jess 간단한 문법 요약

Jes s 다운로드

Jess의 라이센스 버전을 다음 사이트에서 다운받을 수 있다. http://www.manning.com/friedman-hill 또는 http://herzberg.ca.sandia.gov/jess

 

Jess의 설치

Jess를 설치하고 실행하기 위해서는 먼저 J2SE가 설치되어야 한다. 버전은 1.2이상이면 된다.

다운받은 압축파일을 적당한 위치에 풀고 내컴퓨터의 환경변수의 CLASSPATHjess.jar를 추가시킨다.

 

Jess의 실행

다음과 같이 Jess 실행시킬 있다.

 

D:\Jess 61p7>java -classpath .;jess.jar jess.Main Jess, the Java Expert System Shell

Copyright (C) 2003 E.J. Friedman Hill and the Sandia Corporation Jess Version 6.1 4/9/2003

Jess>

 

Jes s P r ogr a m 실행

Command prompt 상에서 간단히 Jess program을 실행할 있다. Jess> (printout t "Hello, World!" crlf)

Hello, World!

Jess>

 

또한 스크립트 형태의 간단한 *.clp 파일을 작성하여 Jess 기동과 동시에 실행할 수도 있다. C:\Jess 61> java jess.Main hello.clp

Hello, World!

C:\Jess 61>

 

Jes s La ngua ge

기본적으로 Jess에서는 newline whitespace 무시(, 인용부호 내의 코드는 제외)되므로 코드 작성시 구분이 용 이하게 작성하면 된다.

 

Jess Symbol은 영문자, 숫자와 몇가지 특수문자($, *, ., =, +, /, <, >, _, ?,

#)로 구성이 되며 숫자로 시작되지 않는다. 또한 $, =, ?와 같은 특수문자로 시작되어서는 안된다.

Symbol ‘nil’ 자바에서 ‘null’ 같다. ‘nil’ 반드시 소문자이어야 한다. 반대로 ‘TRUE’, ‘FALSE’ 같은 Symbol 반드 시 대문자이어야 한다.

 

Jess 모든 Value들은 클래스 jess.Value 인스턴스이다. 이들은 한번 생성되면 변하지 않는다. jess.Value객체 자신이 가지고 있는 자료의 타입을 알고 있고 이것은 자신의 type()메소드를 통해 가능하다. jess.RU 클래스 는 이들 타입에 대한 상수들을 가지고 있다.

 

 

Number Type 3가지가 있다. RU.INTEGER, RU.FLOAT, RU.LONG이 그것이다.

String 인용부호로 감싸며 자바에서와 같이 인용부호 자체() \”’ 표현한다. 또한 \n 줄바꿈 기호이다. String type 마찬가지로 jess.Value 객체로 표현될 있으며 타입은 RU.STRING이다.

 

Jess에서 주석기호는 세미콜론(;)이다.

 

Jes s 의 간단한

Jess에서 가장 기초가 되는 구조는 list이다. 다음은 Jess에서 사용하는 list 예를 보여준다. (+ 3 2)

(a b c)

("Hello, World") ()

(1 2 3)

(deftemplate foo (slot bar))

 

list 첫번째 요소는 head라고 하며 head 인하여 list 고유한 특성을 지니게 된다. 각각의 list 괄호((, )) 구 분이 되어진다. 일부 사람들은 괄호 사용을 자바와 같이 쓰게 되는데 이는 잘못된 것이다.

(bind ?x (+

(* 20 3

)

(- 37 23

)

)

)

 

Jess Language 특성상 Readablity 증가시키기 위해서는 다음 예와 같이 작성해야 한다. (bind ?x (+

(* 20 3)

(- 37 23)))

 

함수호출

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

Jess prompt상에서 간단히 함수를 호출할 있다. Jess> (+ 2 2)

4

 

 

Jess 함수는 이와 같이 선행표기법을 쓴다. 다음과 같이 Jess함수는 함수 내에 포함되어 호출된 수도 있다. Jess> (+ (+ 2 3) (* 3 3))

14

 

 

가장 많이쓰는 함수는 printout 함수이다. 함수는 text 표준출력 또는 file 저장한다. Jess> (printout t "The answer is " 42 "!" crlf)

The answer is 42!

여기서 ‘t’는 콘솔창에 출력하라는 의미이고 ‘crlf’는 새로운 행을 출력하라는 뜻이다.

 

다른 유용한 함수는 ‘batch’이다. 함수는 ‘clp’확장자를 가진 file 읽어들여 실행하는 함수이다. Jess> (batch examples/hello.clp)

Hello, World!

 

Java에서 long형의 값을 Jess로 넣기 어렵다. 이때 쓰는 함수가 ‘long’함수이다. long형 값을 넣기 위해서는 다음과 같 이 String을 사용한다.

 

(bind ?aLongValue (long "123456789"))

변수

 

Jess에서의 변수는 Java 비슷하다. 그러나 type 지정되어 있지 않다. 이것은 Jess 변수 자체에서 어떤형태로이든 지 data type 가지고 있기 때문이다. Jess 변수는 signle symbol, number, string, list 등을 참조할 있다. Jess 변 수는 ‘?’ 시작된다.

변수를 따로 선언할 필요는 없다. 변수에 값을 할당하기 위해서는 bind함수를 쓰면 된다. Jess> (bind ?x "The value")

"The value"

그리고 변수의 값을 보기 위해서는 변수명을 타이핑하기만 하면 된다. Jess> (bind ?a (+ 2 2))

4

Jess> ?a

4

 

 

전역변수

Jess에서는 ‘reset’이라는 아주 중요한 명령어가 있는데 reset 하게되면 Jess ‘working memory’ 초기화된다. 일반변수인 경우 reset 의해서 사라지게 된다. 그러나 전역변수는 reset 의해서도 사라지지 않는다. 전역변수는 다음과 같이 ‘*’문자로 표현될 수 있다.

?*a*        ?*all-values*                   ?*counter*

그리고 전역변수는 ‘defgrobal’함수에 의해서 선언된다. 다음 예제가 도움이 것이다. Jess> (defglobal ?*x* = 3)

TRUE

Jess> ?*x*

3

Jess> (bind ?*x* 4)

4

Jess> ?*x*

4

Jess> (reset) ;; Jess will reset ?*x* to its initial value of 3 TRUE

Jess> ?*x*

3

Jess> (bind ?*x* 4)

4

Jess> (set-reset-globals nil)

FALSE

Jess> (reset) ;; This time, ?*x* will not be changed.

TRUE

Jess> ?*x*

4

 

 

[출처] asiadream | 구영탄 http://blog.naver.com/asiadream/6620163

 
 


 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
17 [java 인공지능] 오라클, 자바 머신러닝 라이브러리 ‘트리뷰오’ 오픈소스로 공개 졸리운_곰 2023.08.27 27
16 [java 인공지능] 자바를 위한 머신 러닝 라이브러리 졸리운_곰 2023.08.27 21
15 [Java 인공지능] 오라클, 자바 머신러닝 라이브러리 ‘트리뷰오’ 오픈소스로 공개 file 졸리운_곰 2023.08.13 24
14 [java 인공지능] [java] 라이프 게임 (life game) file 졸리운_곰 2021.10.19 91
13 How to use Weka in your Java code 졸리운_곰 2020.02.01 138
12 weka and java eclipse example : A Simple Machine Learning Example in Java file 졸리운_곰 2020.01.31 69
11 머신러닝? weka file 졸리운_곰 2020.01.31 125
10 [Weka] Weka를 이용한 Iris 데이터 머신러닝 file 졸리운_곰 2020.01.30 123
9 [강좌] WEKA 사용법 (간단한 분류, 의사결정트리 분석 설명) file 졸리운_곰 2020.01.30 118
8 [JESS] Jess , 이클립스 연동 file 졸리운_곰 2019.12.22 50
» Jess 간단한 문법 요약 졸리운_곰 2019.12.22 71
6 Jess 6.1 다운로드 friedman-hill_src_1_jess_se file 졸리운_곰 2019.12.22 16
5 java artificial intelligence Rule Engine Jess Working Memory 졸리운_곰 2019.12.22 104
4 Defining Functions in Jess 졸리운_곰 2019.12.22 121
3 Jess Language Basics 졸리운_곰 2019.12.22 52
2 Embedding Jess in a Java Application 졸리운_곰 2019.12.22 33
1 다섯개의 탑 자바로 머신러닝 라이브러리 Top 5 machine learning libraries for Java file 졸리운_곰 2017.08.22 161
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED