340 likes | 599 Views
하이퍼링크 기반 추론을 이용한 웹 전문가시스템. 송용욱 , 연세대학교 김우주 , 전북대학교 홍준석 , 인제대학교. 목차. 웹 기반 전문가시스템 하이퍼링크 기반 웹 전문가시스템 구축 단계 규칙베이스와 의사결정나무 하이퍼링크 기반 추론 추론 사이트의 자동 생성 및 관리 WeBIS 요약. 웹 기반 전문가시스템. 다양한 Web-based Applications 지능형 웹 사이트 개인화 웹 사이트 고객 서비스 Call center, 금융 상담 , … 서버 부하의 문제
E N D
하이퍼링크 기반 추론을이용한 웹 전문가시스템 송용욱, 연세대학교 김우주, 전북대학교 홍준석, 인제대학교
목차 • 웹 기반 전문가시스템 • 하이퍼링크 기반 웹 전문가시스템 구축 단계 • 규칙베이스와 의사결정나무 • 하이퍼링크 기반 추론 • 추론 사이트의 자동 생성 및 관리 • WeBIS • 요약
웹 기반 전문가시스템 • 다양한 Web-based Applications • 지능형 웹 사이트 • 개인화 웹 사이트 • 고객 서비스 • Call center, 금융 상담, … • 서버 부하의 문제 • Multi-processing • CGI(Common Gateway Interface) • FastCGI(Open Market), mod-perl(Apache Web Server), PerlEx(Active State) • Transaction server : MTS (ASP), … • Multi-threading : Java Servlet, JSP, … • Fact base • Connectionless & stateless • 질문화면마다 추론 재 수행 필요
빨간색 서시오 신호등 파란색 가시오 하이퍼링크 기반 추론
하이퍼링크 기반 추론의 장단점 • 장점 • 기존 웹 환경에서 별도의 시스템 없이 구현 가능 • On-line & Off-line • 웹 서버의 부하 최소화 • Multi-processing • Fact base • “취소” 기능의 구현 용이 • 단점 • 규칙의 표현성 • Global Variables – Cookies(Session(ASP))로 해결 가능 • Predicates – JavaScript, VBScript로 해결 가능 • Predicate calculus • 규칙의 관리 • 지식분석도(Expert’s Diagram) • WeBIS
하이퍼링크 기반 웹 전문가시스템 구축 단계 Step 1) 규칙 베이스를 마련한다. Step 2) 규칙 베이스를 의사결정나무로 변환한다. • 변환 알고리즘 Step 3) 의사결정나무로부터 하이퍼링크된 HTML 파일들을 만든다. • 하이퍼링크 기반 추론 • HTML 파일 생성 및 유지보수 시스템(WeBIS) Step 4) HTML 파일들을 웹 서버에 올린다.
(BWD-RULE 규칙1 IF (IS "동물이 털이 있다." TRUE) THEN (IS 포유류이다. TRUE)) (BWD-RULE 규칙2 IF (IS "동물이 젖이 있다." TRUE) THEN (IS 포유류이다. TRUE)) (BWD-RULE 규칙3 IF (IS "동물이 깃털이 있다." TRUE) THEN (IS 새이다. TRUE)) (BWD-RULE 규칙4 IF (IS "동물이 난다." TRUE) (IS "동물이 알을 낳는다." TRUE) THEN (IS 새이다. TRUE)) (BWD-RULE 규칙5 IF (IS 포유류이다. TRUE) (IS "고기를 먹는다." TRUE) THEN (IS 육식동물이다. TRUE)) (BWD-RULE 규칙6 IF (IS 포유류이다. TRUE) (IS "송곳니가 있다." TRUE) (IS "날카로운 발톱이 있다." TRUE) (IS "눈이 전방을 향해 있다." TRUE) THEN (IS 육식동물이다. TRUE)) (BWD-RULE 규칙7 IF (IS 포유류이다. TRUE) (IS "발굽이 있다." TRUE) (IS "되삭임질을 한다." TRUE) THEN (IS 초식동물이다. TRUE)) (BWD-RULE 규칙8 IF (IS 육식동물이다. TRUE) (IS 황갈색이다. TRUE) (IS "검은 점이 있다." TRUE) THEN (IS 치타이다. TRUE)) 규칙베이스 : 동물원 예제
의사결정나무로의 변환 (1) • Assumption • Propositional logic • P Q R S • Procedure Step 2.1) Eliminate chaining variables • Q R C, P C S P (Q R) S Step 2.2) Convert to disjunctive normal form • P (Q R) (P Q) (P R) Step 2.3) Eliminate disjunction • (P Q) (P R) S P Q S, P R S Step 2.4) Convert to decision tree • See next pages.
* Notation R : a rule base, a finite set { ri, i = 1, …, n} ri : a rule, a pair (Pi, ci), where Pi is a finite set and ci is a term Pi : a finite set { pij, j = 1, …, mi }, of which elements are propositions and the propositions are connected by AND operators because we assume the rules are in canonical form ci : a conclusion T : a tree, a pair (V, E), where V is a finite set and E is a binary relation on V V : a vertex set of T, { vk, k = 1, …, p } vk : a vertex, a singular set (nk), of which element represent propositions or conclusions of rules, that is, nk = pij for some k, i, and j or nk = ci for some k and i E : an edge set of T, { es, s = 1, …, q } es : an edge, a set (vs1, vs2, bs, Fs), where vs1 and vs2 are two vertices connected by es, bs is a Boolean value(true or false), which represents whether the connection condition for proposition vs1 is true or false, and Fs is a finite set Hs : a path, a finite set of edges { est, where t = 1, …, rs }, of which elements are all the edges which connect the vertices from vs2 to the root vertex. Note that Hs includes es by definition. Fs : a fact base, a finite set of facts { fst = (nst1, bst), built from est = (vst1 = (nst1), vst2, bst, Fst) in Hs, t = 1, …, rs } fst : a fact, a pair (nst, bst), which represents that the value of nst is bst, where nst is a proposition, that is nst = pij for some s, t, i, and j, and bst is a Boolean value
function ConvertRulebase2Tree(R) returns T inputs: R = { ri, i = 1, …, n}, a rule base variables: T = (V, E), a binary tree NonconnectedEdges = { ej }, a set of edges ej = (v1, v2, b, F), an edge T.V T.E NonconnectedEdges for each riin R do NonconnectedEdges ConvertRule2Tree(NonconnectedEdges, ri, T) end for for each ejin NonconnectedEdges do make a conclusion c = “No conclusion” make a vertex v = (c) T.V T.V { v } ej.v2 v end for return T
function ConvertRule2Tree(NonconnectedEdges, r, T) returns Edges inputs: NonconnectedEdges = { es }, a set of edges ej = (vs1, vs2, bs, Fs), an edge r = (P, c), a rule P = { pj }, a set of propositions inputs & outputs: T = (V, E), a binary tree to be built variables: Edges = { es }, a set of edges es = (vs1, vs2, bs, Fs), an edge CurrentEdge = (v1, v2, b, F), an edge Edges if NonconnectedEdges = then CurrentEdge NULL for each pjin r.P do make a vertex v = (pj) T.V T.V { v } make a fact falseFact = (pj, false) make a fact trueFact = (pj, true) if CurrentEdge = NULL then make an edge falseEdge = (v, NULL, false, { falseFact }) make an edge trueEdge = (v, NULL, true, { trueFact }) else CurrentEdge.v2 v make an edge falseEdge = (v, NULL, false, CurrentEdge.F { falseFact }) make an edge trueEdge = (v, NULL, true, CurrentEdge.F { trueFact }) end if T.E T.E { trueEdge, falseEdge } Edges Edges { flaseEdge } CurrentEdge trueEdge end for make a vertex v = (r.c) T.V T.V { v } CurrentEdge.v2 v
else for each esin NonconnectedEdges do if Match(r.P, es.F) = false then Edges Edges { es } else CurrentEdge = es for each pjin r.P do if Exist(pj, CurrentEdge.F) = false then make a vertex v = (pj) T.V T.V { v } make a fact falseFact = (pj, false) make a fact trueFact = (pj, true) CurrentEdge.v2 v make an edge falseEdge = (v, NULL, false, CurrentEdge.F { falseFact }) make an edge trueEdge = (v, NULL, true, CurrentEdge.F { trueFact }) T.E T.E { trueEdge, falseEdge } Edges Edges { flaseEdge } CurrentEdge trueEdge end if end for make a vertex v = (r.c) T.V T.V { v } CurrentEdge.v2 v end if end for end if return Edges
function Match(P, F) returns Boolean inputs: P = { pj }, a set of propositions F = { ft = (nt, bt) }, a fact base for each pjin P do for each ftin F do if pj = ft.ntand ft.bt = false then return false end if end for end for return true function Exist(p, F) returns Boolean inputs: p, a proposition F = { ft = (nt, bt) }, a fact base for each ftin F do if p = ft.ntthen return true end if end for return false
의사결정나무로의 변환 (2) R1: a b c x R2: b d y x T y c T T F d b T F F ? ? y T a d T F F ? b F ?
의사결정나무로의 변환 (3) S • Extension • NOT의 처리 • P S • Multiple branches • IF (M = a) THEN S • M : a, b, c • Numerical expressions • IF (a + b) > 3 AND p = TRUE THEN s • IF p = FALSE AND (a + c) < 5 THEN t • Global Variables F P T ? S a M b ? c ? s T t p T T F c a,b F ? F ?
하이퍼링크 기반 추론 • 변수의 종류 • 진위형(Fact Type) • Hyperlink • 선택형(OAV Type) • Hyperlink • 수치형(Numeric Type) • JavaScript / VBScript
수치형 변수의 구현 IF total_income >= 0.2 * threshold THEN pay_tax
<HTML> <HEAD> <TITLE> Expression Type </TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function verifyValue(form) { if (form.total_income.value >= 0.2 * form.threshold.value) { location="http://iis.kaist.ac.kr/paytax.html" } else { location="http://iis.kaist.ac.kr/notax.html" } } //--> </SCRIPT> </HEAD> <BODY> <FORM NAME="exprform"> <BR> 다음을 입력하십시오. <BR> total_income <INPUT TYPE="text" NAME="total_income"> <BR> threshold <INPUT TYPE="text" NAME="threshold"> <BR><BR> <INPUT TYPE="button" VALUE="OK" onClick="verifyValue(this.form)"> </FORM> </BODY> </HTML>
WeBIS* • 웹 기반 추론 사이트 생성 및 관리를 위한 도구 • 지식의 표현 • 지식분석도(Expert’s Diagram) • Lee, J. K., I. K. Lee, and H. R. Choi, "Automatic rule generation by the transformation of Expert's Diagram: LIFT," Int. J. Man-Machine Studies, 32(1990), 275-292. • 규칙베이스로부터 지식분석도 생성 • Syntax of rules • 사이트 생성 • HTML, JavaScript, ASP, WML, … • Template 파일에 의한 디자인 지원 • 웹 사이트 분석 • HTML 파일로부터 지식분석도 생성 * http://www.waisolutions.com/
Automatic Generation WeBIS HTML Files Manual Input by Knowledge Engineer Web site Analysis Automatic conversion Internet Rule base Knowledge Acquisition Web Browsers Web Servers Knowledge Source Architecture of WeBIS
WeBIS의 기능 • 지식분석도 입력 및 수정 • 디자인 지원 – Theme 및 Template 편집 • 추론 사이트 생성 • HTML(Client-side script) • ASP(Server-side script) • WML • Level of Abstraction • Grouping nodes • 웹 사이트 분석 • Database 연결 • Session 처리
디자인과 Template File (2) <HTML> <HEAD> <TITLE> <!--WGITITLE--> </TITLE> <!--WGBRANCH--> </HEAD> <BODY> <TABLE ALIGN=CENTER> <!--WGINPUTFORM " 확 인 " 3--> </TABLE> <!--WGOBJECT photo--> </BODY> </HTML>
디자인과 Template File (3) <HTML><HEAD> <TITLE> 허리에 통증? </TITLE> <SCRIPT LANGUAGE=JavaScript> function WBIBranch(form) { if (form.WBIName1[0].checked) { form.action = "WBI2.html"; } else if (form.WBIName1[1].checked) { form.action = "WBI3.html"; } else { } if (form.action != null && form.action != "") { form.submit(); } } </Script> </HEAD> <BODY> <TABLE ALIGN=CENTER> <FORM METHOD=GET NAME="WBIForm1"> <TR> <TD COLSPAN=1 width="223" height="35" bgcolor="#EBDF8F"><B>허리에 통증?</B></TD> </TR> <TR> <TD> <INPUT TYPE=RADIO NAME="WBIName1" VALUE="WBIValue1_0_0">Yes </TD> </TR> <TR> <TD> <INPUT TYPE=RADIO NAME="WBIName1" VALUE="WBIValue1_1_0">No </TD> </TR> <TR> <TD COLSPAN=1> <BR> </TD> </TR> <TR> <TD COLSPAN=1> <BR> </TD> </TR> <TR> <TD COLSPAN=1> <BR> </TD> </TR> <TR> <TD COLSPAN=1 ALIGN=CENTER> <INPUT TYPE=BUTTON VALUE=" 확 인" OnClick="WBIBranch(this.form)"> </TD> </TR> </FORM> </TABLE> </BODY> </HTML>
WeBIS의 적용 분야 • 분류 문제 • 진단, 자문, 신용평가 • 지식 기반 상품 추천 • 고객 안내 등 • Knowledge Management System • 지식 입력 및 관리 • 웹 사이트 개발 및 유지 보수 • CASE Tool
요약 • 하이퍼링크 기반 추론 • 웹 서버의 부하 문제 해결 • 하이퍼링크기반 웹 전문가시스템의 구축 방법론 • 변환 알고리즘 • 하이퍼링크 기반 추론 • WeBIS를 이용한 추론 사이트의 생성 및 관리 • 규칙베이스로부터 지식분석도의 자동 생성기능 필요