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,시작filler2
| 요소 |
Description |
| value |
스크립트 파싱시 사용될 데이터중 하나 |
| attr |
스크립트 파싱시 사용될 데이터중 하나 |
| keys |
문장에서 찾을 실제 단어의 집합 '|' 로 구분하여 배열로 처리된다. |
| fillers |
스크립트 파싱시 사용될 데이터중 하나로 '|' 로 구분하여 배열로 담겨온다. |
-
Number 파일
- 전체 화면에서 사용될 number.dat(고정) 파일로 전역적으로 사용될 데이터가 정의된 파일
- starts, ends, fillers(옵션) 순서로 구성된다.
- starts + 숫자 의 조합으로 사용 : '금액'은 + "1000"
- 숫자 + ends 의 조합으로 사용 : "삼천" + '원'
- ex) 금액달라,filler1filler3
| 요소 |
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 (첫번째 배열)
2) "메인화면으로 이동"
- key=메인, value=/www/html/home.html (첫번째 배열)
3) "메인인 홈화면으로 이동"
- key=메인, value=/www/html/home.html (첫번째 배열)
- key=홈화면, value=/www/html/home.html (두번째 배열)
-
Number타입의 경우 숫자와 해당 starts 값과 ends 값중 하나를 포함했을때 처리가 된다.
- starts가 "금액" ends가 "원" 일 경우
-
"금액은 천"
-
"3천원"
-
Scene타입의 경우 현재 화면 또는 이동할 화면내에 있는 요소들을 처리한다.
-
검색 결과에 menu데이터가 존재하면 해당 menu화면의 요소를 검색하며 해당 menu데이터 내에 "scenes" 키값으로 결과값이 배열로 담겨온다.
-
검색 결과에 menu데이터가 존재하지 않으면 현재 화면의 요소를 검색하며 "scenes" 키값으로 결과값이 배열로 담겨온다
-
Scene타입의 경우 starts와 ends 사이의 문장의 값을 처리한다.
- 단, "starts + 단어" 의 조합일 경우 ends가 없어도 해당 단어를 처리한다.
* starts가 "외출자이고" 일 경우
-
"이름은 서자 홍길동이다."
- start=이름, end=이다, value=서자 홍길동
-
"외출자는 홍길동"
- start=외출자, end="", value=홍길동
Navigator 기능을 제공한다.
| Type |
Description |
| PROCESSING |
진행 중 |
| SUCCESS |
정상 처리됨 |
| FAIL |
처리 중 문제가 발생함 |
Changed in version 2.0.0
Arguments
- setting(Object) - 설정 정보
- setting.root(String) - dat파일의 root path 정보 ("stt")
- setting.callback(Function) - 처리 결과를 받을 콜백
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));
}
});
Changed in version 2.0.0
Arguments
- setting(Object) - 설정 정보
- setting.message(String) - 결과를 추출하고자 하는 원본 데이터
- setting.input(String) - 입력 컴포넌트로 이동하기 위해 사용하는 값으로, value 값으로 끝나는 단어가 검색되는 경우, 필요한 값이 리턴됨
- setting.callback(Function) - 검증 결과 콜백 함수
Arguments
- status(String) - 상태 ( Status Type )
- result(Object) - 검색 결과
- result.result(String) - 검색 결과 (SUCCESS, INPUT)
- result.data(Object) - 검색 결과 자료
- 원본 데이터를 이용하여, 사전 정의된 정보를 검색함.
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));
}
});