[Navigator]¶
Navigator 제품에 대한 필수 API 를 정의
개요¶
입력받은 문장에서 미리 정의되어 있는 dat파일 내용에 맞춰 단어를 추출하여 그 결과값으로 화면이동등의 처리를 용이하게 하기 위한 라이브러리이다.
데이터 파일¶
- dat 파일
입력 받은 문장에서 추출해야 할 의미 있는 단어들을 정의하고 사용된 값들을 설정하는 데이터 파일
데이터 구분자는 ‘\n’ 데이터 필드의 구분자는 ‘,’ 필드내의 구분자는 ‘|’를 사용한다.
전체프로젝트 내에서 사용되는 Global파일과 특정 화면에서 사용되는 Scene파일로 구분된다.
- Global 파일
전체 화면에서 사용될 menu.dat(고정) 파일과 추가로 전역적으로 사용될 데이터가 정의된 파일
menu.dat : 메뉴 이동에 사용되는 dat파일 (이름 변경 불가)
item.dat : 전역적으로 사용될 데이터가 정의된 파일 (이름 변경 가능, 파일 추가 가능)
value, attr, keys, fillers(옵션) 순서로 구성된다.
ex) /www/html/intro.html,0,시작|인트로,filler1|filler2
요소
Description
value
스크립트 파싱시 사용될 데이터중 하나
attr
스크립트 파싱시 사용될 데이터중 하나
keys
문장에서 찾을 실제 단어의 집합 ‘|’ 로 구분하여 배열로 처리된다.
fillers
스크립트 파싱시 사용될 데이터중 하나로 ‘|’ 로 구분하여 배열로 담겨온다.
- Number 파일
전체 화면에서 사용될 number.dat(고정) 파일로 전역적으로 사용될 데이터가 정의된 파일
starts, ends, fillers(옵션) 순서로 구성된다.
starts + 숫자 의 조합으로 사용 : ‘금액’은 + “1000”
숫자 + ends 의 조합으로 사용 : “삼천” + ‘원’
ex) 금액|가격,원|달라,filler1|filler2|filler3
요소
Description
starts
문장에서 찾을 실제 숫자 시작의 집합 ‘|’ 로 구분하여 배열로 처리된다.
ends
문장에서 찾을 실제 숫자 종료의 집합 ‘|’ 로 구분하여 배열로 처리된다.
fillers
스크립트 파싱시 사용될 데이터중 하나로 ‘|’ 로 구분하여 배열로 담겨온다.
- Scene 파일
특정 화면에서 사용될 데이터가 정의된 파일로 특정 화면의 이름으로 정의된다.
starts, ends, fillers(옵션) 순서로 구성된다.
starts + “value가 될 문장” + ends의 조합으로 사용 : ‘이름’은 + “유라클” + ‘이다’
예외적으로 starts + “value가 될 단어” 조합으로 사용가능 : ‘이름’은 + “유라클”
ex) 외출자|이름,이다,filler1
요소
Description
starts
문장에서 찾을 실제 숫자 시작의 집합 ‘|’ 로 구분하여 배열로 처리된다.
ends
문장에서 찾을 실제 숫자 종료의 집합 ‘|’ 로 구분하여 배열로 처리된다.
fillers
스크립트 파싱시 사용될 데이터중 하나로 ‘|’ 로 구분하여 배열로 담겨온다.
규칙¶
- 입력받은 메시지를 각 dat파일로 정의된 값과 비교하여 각 dat파일의 내용을 해당 파일의 이름으로 된 키값으로 데이터를 만들어 준다.
menu.dat파일에서 찾은 데이터는 결과값의 “menu” 키로 담겨온다.
- 결과값의 데이터는 배열의 형태로 오며 정확도가 높은 첫번째 배열값을 실제 화면처리에서 사용한다.
단어의 위치가 앞일수록 우선순위가 높다.
단어의 위치가 같다면 길이가 길수록 우선순위가 높다.
- Global타입의 경우 keys의 포함된 단어들을 찾아 결과를 처리한다.
- keys가 “메인|홈화면” 일 경우
- “홈화면”
key=홈화면, value=/www/html/home.html (첫번째 배열)
- “메인화면으로 이동”
key=메인, value=/www/html/home.html (첫번째 배열)
- “메인인 홈화면으로 이동”
key=메인, value=/www/html/home.html (첫번째 배열)
key=홈화면, value=/www/html/home.html (두번째 배열)
- Number타입의 경우 숫자와 해당 starts 값과 ends 값중 하나를 포함했을때 처리가 된다.
- starts가 “금액” ends가 “원” 일 경우
- “금액은 천”
key=금액, value=1000
- “3천원”
key=원, value=3000
- Scene타입의 경우 현재 화면 또는 이동할 화면내에 있는 요소들을 처리한다.
- 검색 결과에 menu데이터가 존재하면 해당 menu화면의 요소를 검색하며 해당 menu데이터 내에 “scenes” 키값으로 결과값이 배열로 담겨온다.
result.menu[0].scenes
- 검색 결과에 menu데이터가 존재하지 않으면 현재 화면의 요소를 검색하며 “scenes” 키값으로 결과값이 배열로 담겨온다
result.scenes
- Scene타입의 경우 starts와 ends 사이의 문장의 값을 처리한다.
단, “starts + 단어” 의 조합일 경우 ends가 없어도 해당 단어를 처리한다.
starts가 “외출자|이름” ends가 “이다|이고” 일 경우
- “이름은 서자 홍길동이다.”
start=이름, end=이다, value=서자 홍길동
- “외출자는 홍길동”
start=외출자, end=””, value=홍길동
NAVIGATOR API¶
Navigator 기능을 제공한다.
status Type¶
Type |
Description |
---|---|
PROCESSING |
진행 중 |
SUCCESS |
정상 처리됨 |
FAIL |
처리 중 문제가 발생함 |
데이터 load¶
-
M.
plugin
('page_navigator').load( setting)¶ Changed in version 2.0.0.
- Arguments
setting (Object) – 설정 정보
setting.root (String) – dat파일의 root path 정보 (“stt”)
setting.callback (Function) – 처리 결과를 받을 콜백
-
M.
callback
(status, result)¶
- Arguments
status (String) – 상태 ( status Type )
result (Object) – load의 결과
result.result (String) – load의 결과
result.message (String) – load의 결과 메시지
원본 데이터를 기반으로 매핑되어야 할 사전 정의 데이터 파일을 메모리에 적재함.
Example:
M.plugin('page_navigator').load({ 'root': 'stt', callback:function(status, result){ alert(JSON.stringify(result)); } });
데이터 검색¶
-
M.
plugin
('page_navigator').search( setting)¶ Changed in version 2.0.0.
- Arguments
setting (Object) – 설정 정보
setting.message (String) – 결과를 추출하고자 하는 원본 데이터
setting.input (String) – 입력 컴포넌트로 이동하기 위해 사용하는 값으로, value 값으로 끝나는 단어가 검색되는 경우, 필요한 값이 리턴됨
setting.callback (Function) – 검증 결과 콜백 함수
-
M.
callback
(status, result)¶
- Arguments
status (String) – 상태 ( status Type )
result (Object) – 검색 결과
result.result (String) – 검색 결과 (SUCCESS, INPUT)
:param Object result.data : 검색 결과 자료
원본 데이터를 이용하여, 사전 정의된 정보를 검색함.
Example:
M.plugin('page_navigator').search({ 'message': '삼성전자 현재가', callback:function(status, result){ alert(JSON.stringify(result)); } });M.plugin('page_navigator').search({ 'message': '아이디 입력', 'input': '입력', callback:function(status, result){ alert(JSON.stringify(result)); } });