KR20080104259A - 컴퓨팅 장치 및 그 동작 방법 - Google Patents

컴퓨팅 장치 및 그 동작 방법

Info

Publication number
KR20080104259A
KR20080104259A KR1020087013836A KR20087013836A KR20080104259A KR 20080104259 A KR20080104259 A KR 20080104259A KR 1020087013836 A KR1020087013836 A KR 1020087013836A KR 20087013836 A KR20087013836 A KR 20087013836A KR 20080104259 A KR20080104259 A KR 20080104259A
Authority
KR
South Korea
Prior art keywords
data
rule
language
computing device
rules
Prior art date
Application number
KR1020087013836A
Other languages
English (en)
Inventor
핌 반 메우르스
Original Assignee
테직 커뮤니케이션 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 테직 커뮤니케이션 인코포레이티드 filed Critical 테직 커뮤니케이션 인코포레이티드
Publication of KR20080104259A publication Critical patent/KR20080104259A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/191Automatic line break hyphenation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명에 따른 컴퓨팅 장치는 사람이 판독 가능한 정보를 제공하는 디스플레이와 사용자 입력 장치를 포함한다. 규칙 데이터 저장부는 디스플레이 상에 데이터를 제공하는 규정된 특징을 관리하는 규칙들의 기술을 포함한다. 이들 특징들은 데이터 및/또는 데이터와 관련하여 수행되는 사용자 동작의 특성이 변할 때마다 언어에 의한 변화를 받는 특징들을 포함한다. 규칙 엔진은 규칙을 실행하도록 구성된다. 하나 이상의 공통 프로그램은 규칙을 적용하는 조건을 인식하고, 이에 응답하여 규칙 엔진을 호출하도록 구성된다.

Description

컴퓨팅 장치 및 그 동작 방법{EMBEDDED RULE ENGINE FOR RENDERING TEXT AND OTHER APPLICATIONS}
본 발명은 셀 폰(cell phone) 및 개인용 데이터 보조 장치(personal data assistant)와 같은 핸드헬드 컴퓨팅 장치에 관한 것이다. 보다 구체적으로는, 본 발명은 데이터 유형 또는 수행되는 사용자 동작의 특징에 따라서 언어마다 달라질 수 있는 데이터 표시 특성을 주관하는 규칙을 제공하는 규칙 엔진을 사용하는 핸드헬드 컴퓨터와 관련이 있다. 규칙을 제공하는데 있어서, 규칙 엔진은 지정된 언어에 따라서, 데이터가 자동으로 제공되고, 사용자가 개시한 동작들이 확실하게 행해지도록 돕는다.
핸드헬드 컴퓨팅 장치는 오늘날 널리 보급되어 있다. 컴퓨터 인에이블형 셀 폰 및 개인용 데이터 보조 장치가 그 두 예이다. 최소한, 이들 장치는 사용자 디스플레이, 물리적 또는 가상 키패드 또는 사용자 입력을 위한 디지타이징면(digitizing surface) 및 케이스 내에 하우징된 디지털 데이터 처리기를 포함한다.
사용자와 효과적으로 통신하기 위해, 그러한 장치는 하나의 언어 또는 다른 언어로 그들의 출력을 제공해야 한다. 통상적으로는, 데이터 처리기의 프로그래밍은 그러한 하나의 언어만 제공한다. 이 프로그래밍은 인스트럭션을 실행하기 위해 범용 프로세서를 사용하는 것과 같은 다양한 방법으로 또는 ASIC(application specific integrated circuit), FPGA(field programmable gate array) 등과 같은 회로를 프로그래밍함으로써 실현될 수 있다. 보다 구체적으로는, 하나의 언어 또는 다른 언어를 따르는 컴퓨팅 장치의 프로그래밍은 통상적으로 대응 폰트를 이용할 수 있도록 결합된 운영체제로 구현된다.
이 장치는 널리 보급되어 있지만, 몇 가지 문제점이 있다. 첫째, 상이한 언어들에 대해 상이한 운영체제 버전을 기록하는 작업이 시간 소모적이고 비용이 많이 들 수 있다. 따라서, 일부 제조업자는 사용 인구가 비교적 적은 언어에 대한 기록 운영체제를 무시할 수도 있는데, 이는 이러한 운영체제가 비교적 적은 수의 잠재적인 고객을 제공하기 때문이다. 이들 언어를 말하는 사람들의 경우에는, 이들 언어를 따르도록 프로그램되는 핸드헬드 컴퓨터를 구하기가 어려울 수도 있다.
두 번째 문제는, 수백 또는 수천 개의 가용 언어를 접하는 제조업자는, 핸드헬드 컴퓨팅 장치에 포함될 하나의 언어를 선택하기가 어렵다는 것을 알 수 있다. 일부 제조업자는 예상 바이어의 언어와 동일한 비율로 다른 언어로 프로그램된 다른 장치들을 생산하기로 계획한다. 그러나, 시장은 제조업자와 판매자 사이의 지연 시간 동안 크게 변할 수 있으며, 따라서 정확한 계획을 수립하는 것은 거의 불가능하다. 이 때문에, 제조업자 또는 판매자는 슬로우 셀러(slow seller)인 언어 로 프로그램된 제품을 고수할 수 있다.
세 번째 문제는, 희귀 언어를 사용하는 사람이 그들의 언어로 프로그램된 핸드헬드 장치를 구하는 드문 경우에, 그들이 그 장치를 고수할 수도 있다는 것이다. 대부분의 바이어들은 영어 또는 중국어 또는 스페인어와 같은 다른 언어를 사용하기 때문에 장래에 그 장치를 되파는 것은 어려울 수 있다.
결론적으로, 어떠한 미해결된 문제로 인해, 공지된 핸드헬드 컴퓨팅 장치의 언어 특정 프로그래밍은 모든 제조업자 또는 소비자를 항상 만족시킬 수는 없을 것이다.
컴퓨팅 장치는 사람이 판독할 수 있는 정보를 제공하는 디스플레이와 사용자 입력 장치를 포함한다. 규칙 데이터 저장부는 디스플레이 상에 제공되는 데이터의 규정된 특징들을 관리하는 규칙의 기술(statement)을 포함한다. 이들 특징들은, 데이터 유형 및/또는 데이터와 관련하여 수행되는 사용자 동작의 특징이 변할 때마다, 언어의 변화에 따른 특징들을 포함한다. 규칙 엔진은 이 규칙을 실시하도록 구성된다. 하나 이상의 공통 프로그램은 규칙을 적용하기 위한 상태를 인식하고 그에 따라 규칙 엔진을 호출하도록 구성된다.
본 발명은 방법, 장치, 로직 회로, 신호 저장 매체 또는 이들의 조합으로 구현될 수 있다. 본 발명은 다수의 다른 이점 및 장점을 제공하는데, 이는 이하의 상세한 설명으로부터 명확할 것이다.
도 1a는 컴퓨팅 장치의 구성요소 및 상호접속부의 블록도.
도 1b는 규칙 데이터베이스의 블록도.
도 2는 디지털 데이터 처리 머신의 블록도.
도 3은 신호 저장 매체를 도시한 도면.
도 4는 로직 회로의 사시도.
도 5는 데이터의 유형 및/또는 그 데이터로 수행되는 사용자 동작의 특성으로 인해 언어에 의해 표시가 변하는 데이터 디스플레이를 돕는 동작을 도시한 순서도.
본 발명의 특징, 목적 및 이점은 첨부 도면과 관련한 하기의 상세한 설명을 고려하면 보다 명확해질 것이다.
하드웨어 구성요소 및 상호접속부
전체적인 구성(Overall Structure)
본 발명의 일측면은 컴퓨팅 장치와 관련된다. 이 장치는 무선 폰, PDA 등과 같은 컴퓨팅 기능을 갖는 핸드헬드 장치로 구현될 수도 있다.
도 1a는 예시적인 컴퓨팅 장치(100)를 도시한 것이다. 기본적으로는, 장 치(100)는 실행 엔진(106)을 이용하여 사용자(도시되어 있지 않음)에 의해 명령된 다양한 컴퓨팅 작업을 수행한다. 엔진(106) 및 장치(100)의 다른 모든 기능적인 요소는 하나 이상의 하드웨어 장치, 소프트웨어 장치, 하나 이상의 하드웨어 또는 소프트웨어 장치의 일부분 또는 이들의 조합에 의해 구현될 수 있다. 이들 서브콤프넌트의 구성은 도 2 내지 4를 참조하여 이하에 보다 상세히 설명한다.
엔진(106)은 사용자 입력 장치(104) 및 사용자 출력 장치(102)를 통해 사용자와 상호작용한다. 입력부(104)는 물리적 또는 온스크린 키패드 또는 키보드, 디지타이징면, 포인팅 장치, 또는 후술하는 동작에 적합한 임의의 다른 사용자 입력 장치이다. 출력부(102)는 LCD 또는 본 명세서에서 논의하는 동작에 적합한 임의의 다른 기술을 이용하는 소형의 컬러 또는 흑백 디스플레이 스크린을 포함한다. 출력부(102)는 버저(buzzer), 음향 생성기, 진동 기구, 스피커 또는 기타 출력 장치와 같은 다른 구성요소를 포함할 수도 있다.
엔진(106)은 공통 프로그램(106b) 및 규칙 엔진(106a)을 포함한다. 이들 구성요소는 이하에 보다 상세히 설명한다.
공통 프로그램(Common Program)
기본적으로, 공통 프로그램(106b)은 후술하는 규칙 엔진(106a)의 특정 기능 외의 장치(100)의 처리 특성을 나타낸다. 기본적으로는, 공통 프로그램(106b)은 그 동작이 하나의 언어에 따라 고정되거나 또는 언어의 변화에 관계없는 다양한 처리를 포함한다. 언어에 따라 변하는 기능에 대해서는, 이들은 이하에 상세히 논의 되는 특별 규칙(118b)을 제공하는 규칙 엔진의 동작에 의해 처리된다.
공통 프로그램(106b)은 다양한 응용 프로그램, 시스템 기능, 운영체제, 운영체제 요소, 장치 드라이버, 그래픽 렌더링 등을 포함할 수도 있다. 응용 프로그램의 일부 예들은 워드프로세싱, 다이얼링 폰 넘버(dialing phone number), 어드레스 북, 캘린더, 스프레드시트 등과 같은 작업을 포함한다. 계산 효율을 높이기 위해, 프로그램(106b)은 보다 높은 레벨의 프로그램에 의해 호출되는 다양한 보다 낮은 레벨의 공유 응용 프로그램을 포함할 수도 있다. 이들 프로그램은 예를 들어 서브루틴 또는 라이브러리 기능일 수도 있다. 이들 공유 프로그램은 104를 통해 사용자 입력을 수신하고, 데이터가 입력되면 102에서 사용자 입력을 디스플레이하며, (수기 인식 또는 T9 입력과 같은) 사용자 입력에서 모호성을 해결하고, 데이터를 저장하며, 전화 신호기 또는 진동 기능을 제공하고, 디스플레이(102) 및 사용자 입력부(104)를 관리하며, 시스템 레벨 기능을 동작시키는 등과 같은 작업을 수행한다.
선택적으로, 공통 프로그램(106b)은 모호한 사용자 입력을 해석하는 것을 돕는 사용자 입력 명확화(disambiguation) 프로그램을 포함할 수도 있다. 예를 들면, 이 프로그램은 전화 키를 사용하여 사용자가 단어를 철자하는 것을 도울 수도 있는데, 이것은 일반적으로 대부분의 키들이 세 개의 가능한 문자에 대응하므로 모호한 사용자 입력을 제공한다. 일부 예시적인 명확화 프로그램은 본 명세서에 참조로서 포함되는 다음 문헌에 예시되어 있다. 1999년 9월 14일에 특허허여되었으며 발명의 명칭이 "Disambiguating System for Disambiguating Ambiguous Input Sequences by Displaying Objects Associated with the Generated Input Sequences in the Order of the Decreasing Frequency of Use"인 King 등의 미국 특허 제5,953,541호, 2001년 10월 23일 특허허여되었으며 발명의 명칭이 "Reduced Keyboard Disambiguating System"인 Flinchem 등의 미국 특허 제6,307,548호, 1998년 10월 6일 특허허여되었으며 발명의 명칭이 "Reduced Keyboard Disambiguating Computer"인 Grover 등의 미국 특허 제5,818,437호.
사용자 입력 명확화 프로그램의 동작을 더욱 향상시키기 위해, 명확화 응용 프로그램은 명확화를 목적으로 하는 다양한 특별 규칙(118b)을 이용할 수도 있다. 그러한 규칙(175)의 일례를 이하에 논의한다.
프로그램(106b)은 그래픽을 렌더링하기 위한 렌더링 엔진을 더 포함할 수 있다. 이 렌더링 엔진은 다른 프로그램(106b)으로부터 고 레벨 입력을 수신하고, 그 응답으로 사용자 출력부(102)에 특정 픽셀 레벨 표시 인스트럭션을 제공한다. 일례에서, 렌더링 엔진은 유니코드(Unicode)와 같은 넓은 범위의 보편적인 문자 맵을 수신한다. 다른 예에서, 렌더링 엔진은 언어 특정과 같은 보다 특화된 인코딩을 이용하는데, 라틴-7이 그 일례이다. 그래픽 렌더링은 매우 보편적인 분야이므로, (본 명세서를 참조한) 당업자는 그들의 특정 애플리케이션에 적절한 렌더링 엔진을 구현하는데 적합한 다양한 기술을 알 수 있을 것이다.
공통 프로그램(106b)의 다른 구성요소는 업데이터(106c)이다. 업데이터(106c)는 특별 규칙(118b)의 요소들을 업데이트하는 하드웨어 및/또는 소프트웨어 모듈의 선택적인 모듈이다. 물론, 필요한 경우 업데이터(106c)는 이들 이외의 부가적인 요소들을 업데이트하도록 구현될 수도 있다. 그러나, 구현될 때, 업데이터(106c)는 원격 위치로부터 업데이트를 다운로드하도록 프로그램되며, 규칙 엔진(106a)이 다른 언어를 따르도록 규칙(118b)의 적어도 일부를 업데이트로 대체한다.
규칙 엔진(Rules Engine)
규칙 엔진(106a)은 규칙 데이터베이스(118)에 포함된 여러 규칙을 제공한다. 엔진(106a)은 실행 엔진(106)의 별도의 부분일 수도 있고 엔진(106)에 통합될 수도 있다. (본 예에서) 프로그래밍 인스트럭션을 실행하는 요소(106b)와 달리, 엔진(106a)은 규칙(118)을 제공한다. 일실시예에서, 규칙은 정규 표현(regular expression)과 같은 쉽게 변경할 수 있는 형태로 쓰여진다. 정규 표현은 잘 알려진 구성으로 "regexp" 또는 "regex" 또는 "regxp"로도 알려져 있다. 넓은 의미로, 정규 표현은 선택적으로는 소정의 신택스 규칙에 따라 스트링 세트를 나타내거나 또는 스트링 세트와 매칭되는 스트링이다. 규칙(118)은 정규 표현 이외의 다른 형태로 기술될 수도 있다. 포맷과 신택스에 관계없이, 각각의 규칙은 출력 스트링 조작에 대한 입력 스트링을 기술하는 역할을 한다. 일실시예에서, 규칙 엔진(106a)은 규칙(118)을 판독하고, 실행을 위해 이들을 유한 상태 머신(finite state machine)으로 변환한다.
후술하는 바와 같이, 언어 특정 규칙이 특별 규칙(118b)에 포함된다. 단일 언어 설치를 위한 한 세트의 특별 규칙(118b)이 있거나 또는 다른 언어에 각각 대 응하는 복수 세트의 규칙(118b)이 있을 수 있다. 어느 경우든, 한 언어가 설치된다. 단일 언어 설치에 있어서는, 이 언어는 머신(100)에 설치되는 것이기 때문에 설치 언어이다. 복수의 언어 머신에 있어서는, 운영체제(10b의 일부)는 사용자가 이들 언어 중 한 언어를 용이하게 선택할 수 있게 하며, 따라서 규칙 엔진(106a)은 사용자가 선택하는 하나의 언어를 따른다. 여기서, 사용자 선택 언어는 설치 언어이다.
일실시예에서, 규칙 엔진(106a)은 그것이 제어하는 장치(100)에 포함되는 특수 목적 컴퓨터이기 때문에, 규칙 엔진(106a) 및 규칙(118)은 장치(100)에 내장된다. 규칙 엔진(106a)은 소스 코드, 컴파일된 코드, 실행 가능한 코드 또는 실행 엔진(106)의 다른 구현예에 포함될 수 있다.
데이터 저장부(Data Store)
데이터 저장부(110)는 이하에 상세히 설명하는 바와 같이, 디지털 데이터 저장부로 구현될 수도 있다. 규칙 데이터베이스(118)는 저장부(110)에 포함된다. 업데이터(106)를 사용하는 실시예들에서, 데이터베이스(118)의 일부 또는 전체 규칙(적어도 특별 규칙(118b))은 업데이터(106c)에 의해 관리되는 변화를 용이하게 하도록 재기록 가능한 저장부에 포함된다. 데이터 저장부(110)의 컨텐츠(110)는 파일, 페이지, 레지스터, 링크드 리스트(linked list), 테이블, 스트링, 관계 데이터베이스 또는 임의의 다른 가능한 데이터 구조에서 발생할 수도 있다.
규칙(Rules)
이하에서 논의되겠지만, 규칙(118a 내지 118c)은 프로그래밍 인스트럭션 외의 데이터로서 구현되며, 이들 데이터는 소정 언어에 특유한 표시(presentation), 저장 및 기타 동작에 대한 가이드라인을 제공한다. 따라서, 엔진(106a)은 규칙(118)을 실행하지 않고 오히려 이들을 제공한다. 이와 관련하여, 규칙(118)은 정규 표현과 같은 쉽게 교환 가능한 형태로 구현될 수도 있다. 그러나, 다양한 다른 가능한 포맷을 사용하여 출력 스트링 조작에 대한 입력 스트링을 기술할 수도 있다.
도시된 바와 같이, 규칙 데이터베이스(118)는 공통 규칙(118a), 특별 규칙(118b) 및 폰트 규칙(118c)을 포함한다. 공통 규칙(118b)은 언어별로 다른 동작을 지정하지 않지만, 특별 규칙(118b)은 다른 동작을 지정한다. 또는, 공통 규칙(118a)이 생략되고, 실행 엔진(106)이 적절히 구성된 응용 프로그램(106b)을 실행함으로써 그러한 공통 기능을 수행할 수도 있다.
폰트 규칙(118c)은 설치 언어에 따라서 소정의 문자를 디스플레이하는 규칙을 규정한다. 예를 들면, 프랑스어에 대한 한 폰트 규칙은 "oe"가 함께 발생할 때 일반적으로 "e"를 10 픽셀 왼쪽으로 이동시키도록 규정함으로써 리가춰(ligature)를 인식한다. 장치(100)가 네덜란드어용으로 구현되면, 폰트 규칙(118c)은 "ij"가 함께 발생할 때 "j"가 왼쪽으로 5 픽셀 이동되도록 규정함으로써 커닝(kerning)(힌팅(hinting))을 구현한다.
일실시예에서, 폰트 규칙(118c)은 오픈 타입 폰트(Open Type font) 또는 트 루 타입 폰트(True Type font) 기술에 이용되는 폰트 테이블과 같은 잘 알려진 기술에 의해 구현될 수도 있다. 이들에 대한 다른 정보는 오픈 타입 명세서 v.1.4 및 마이크로소프트사에 의해 보급된 관련 문서에서 얻을 수 있다.
텍스트 디스플레이의 다양한 기본적인 특징들을 기술한 특별 규칙(118b)(후술함)과 달리, 폰트 규칙(118c)은 하나 이상의 문자를 다른 문자로 교체하는 것, 스트링 내의 문자들의 재정렬, 소팅(sorting), 음절 경계(syllable boundary) 검색 등과 같은 보다 높은 레벨의 동작을 예상하지 않는다.
특별 규칙(Special Rule)
일반적으로, 특별 규칙(118b)은 데이터가 102에서 제공되는 방법의 규정된 특징들을 관리한다. 이들 특징들은 데이터의 유형 및/또는 데이터 상에서 수행되는 사용자 동작의 특성에 따라서 언어별로 변할 수 있는 특성들을 포함한다.
언어(Language)
전술한 바와 같이, 특별 규칙(118b)은 소정의 요인에 따라서 언어에 따라 변하는 데이터 표시 특성을 관리한다. 이 애플리케이션에 사용된 "언어(Language)"는 단어들 및 공동체에 의해 이해되는 이들을 결합하는 방법을 포함하는 상이한 통신 시스템을 지칭한다. 상이한 언어들의 일부 예는 영어, 프랑스어, 독일어 및 스페인어를 포함한다.
여기에 사용된 "언어"는 다른 개념도 포함한다. 즉, 단일 용어를 사용하여 다양한 부가적인 개념을 보다 편리하게 표현하기 위해, 상이한 "언어"는 상이한 방언, 지역어 등을 부가적으로 포함하는 것으로 이해된다. "방언(dialect)"은 특정 서브그룹의 사람들에 의해 사용되는 언어의 변종(variation)을 지칭한다. 예를 들어, 일부 사람들은 영국 언어와 미국 영어를 영어의 상이한 방언이라고 생각한다. "지역어(Locale)"는 단어들 또는 이들의 사용 방법이 지리적 위치에 의해 변하는 언어 변종을 지칭한다. 여기서 사용된 상이한 "언어"는 음역(register), 사회적 방언(sociolect), 사투리(jargon), 속어(slang), 이돌렉트(idolect), 표준어, 다이글로시아(diglossia), 동류 언어계(diasystem), 플루리센트릭어(pluricentric language) 등과 같은 다른 언어 변종 또는 서브셋을 더 포함할 수 있다.
데이터 및 사용자 동작의 유형
전술한 바와 같이, 특별 규칙(118b)은 데이터의 유형 및/또는 데이터에 대해 행해진 사용자 동작의 특성에 따라 언어에 따라 변하는 데이터 표시를 관리한다.
언어를 나타내는 디스플레이(102)의 변경을 보증하는 데이터 유형과 관련하여, 일부 예는 숫자, 통화, 날짜, 시간, 전화번호, 주소, 우편번호, 언어명 등을 포함한다. 예를 들면, 동일한 원시 숫자(raw number)는 통화로서 디스플레이될 때, 적용가능한 언어에 따라 상이하게, 예를 들어 미국 영어에서는 "1,000"으로 또는 네덜란드어에서는 "1.000"으로 표시된다.
언어를 나타내는 디스플레이(102)의 변경을 보증하는 사용자 동작과 관련하여, 일부 예는 소팅(sorting), 메뉴 보여주기, 메시지 보여주기, 하이픈으로 연결 하기, 워드 브레이크(word break) 등을 포함한다. 예를 들면, 동일한 텍스트 리스트가 적용 가능한 언어에 따라 상이하게 분류될 수도 있는데, 이는 상이한 언어의 알파벳이 상이하게 정렬될 수도 있기 때문이다.
추가적인 예들
도 1b는 특별 규칙(118b)의 다른 예들을 도시한 것이다. 규칙들(118b) 중에서, 문자 숫자 텍스트를 소팅하는 규칙(154), 통화를 나타내는 규칙(156), 텍스트를 하이픈으로 연결하는 규칙(158), 숫자를 나타내는 규칙(160), 날짜 및/또는 시간을 나타내는 규칙(162), 메뉴/메시지 규칙(170), 로컬리제이션 규칙(166), 명확화 가이드라인(175) 및 그래픽 규칙(180)이 있다. 일부 예의 내용 및 동작은 이하에서 논의한다.
일례로, 로컬리제이션 규칙(166)은 유니코드 문자들(N1, N2, N3)이 하나의 열에 나타날 때마다, N1을 N42로 교체하고, N3을 N2의 앞으로 이동하도록 규정할 수 있다. 로컬리제이션 규칙은 문자들이 재정렬되거나, 대체되거나 또는 특정 언어로 수정되는 경우를 처리한다.
숫자(160)의 일례로서, 네덜란드어에 대한 규칙은, 데이터의 유형이 숫자일 때마다 콤마와 마침표가 교환된다. 통화(156)의 일례로서, 네덜란드어에 대한 규칙은, "FL" 또는 유로 부호가 "$"로 대체된다. 날짜 규칙(162)은 숫자 데이터 표현에서 날짜와 달의 순서를 바꿀 수도 있다.
예시적인 인도어의 하이픈 연결 규칙(158)은 인도 말에 대한 적절한 음절 경 계를 인식하고, 적절한 워드 브레이크를 추천한다. 예시적인 독일어 소팅 규칙(154)은 영어 알파벳에 없는 문자들을 인식하고, 관련 알파벳에서 그러한 문자들의 순서에 맞게 소팅한다. 상술한 하이픈 연결 외에, 규칙(158)은 분철(syllabification), 워드브레이크(wordbreak) 및 하이픈 연결 규칙을 더 포함할 수 있다. 하이픈 연결은 긴 단어가 작은 전화 디스플레이에서 적절히 연결될 필요가 있는 핀란드어 또는 독일어와 같은 복합어와 관련이 있다. 타이에서는 스페이서가 전혀 사용되지 않고, 규칙(158)은 음절에 기반한 워드브레이크 역할을 할 수 있다.
메뉴/메시지 규칙(170)은 다음과 같이 동작한다. 메뉴 규칙은 다양한 시스템 또는 응용 프로그램 메뉴 항목과 설치 언어 내의 이들의 대응 명칭 사이의 맵핑을 포함한다. 예를 들어, 메뉴 규칙은 특정 메뉴 항목이 영어 애플리케이션에 대한 "편집(Edit)"으로서 보여져야 한다는 것을 나타낼 수도 있다. 따라서, 규칙 엔진(106a)이 메뉴 규칙을 호출할 때마다, 이 규칙의 실행은 렌더링 엔진이 이 메뉴 항목에 대한 "편집"을 디스플레이하게 한다. 메뉴 항목과 명칭의 맵핑은 규칙 그 자체의 일부를 포함할 수도 있고, 또는 규칙이 그 규칙 외부와의 맵핑을 지칭할 수도 있다. 단일 맵핑 또는 복수의 맵핑이 호출되어 메뉴를 복수의 언어 또는 심지어 모든 언어와 맵핑할 수도 있다.
시스템 생성 메시지를 제외하고는 메시지 규칙(170)은 유사한 양식으로 동작한다. 메시지 규칙은 "삭제하시겠습니까?(OK to delete?)"와 같은 시스템 생성 메시지들과 하나 이상의 설치 언어 내의 그들의 어법 사이의 맵핑을 포함한다.
전술한 바와 같이, 응용 프로그램(106b)은 모호한 사용자 입력을 해석하는 것을 돕기 위한 사용자 입력 명확화 프로그램을 포함할 수도 있다. 이 프로그램의 동작을 지원하기 위해, 특별 규칙(118b)은 언어 특정 문제를 돕기 위한 명확화 가이드라인(175)을 포함할 수도 있다. 가이드라인(175)은 예를 들어 설치 언어에 따라 인식된 단어의 어휘 및 다른 잠재적인 사용자 항목을 포함할 수도 있다. 예를 들어, 사용자가 전화 키를 사용하여 단어를 스펠링할 때, 사용자의 모호한 출력을 어휘(175)와 비교하는 중에 의도하는 입력 단어를 식별하기 위해 (106b의)명확화 응용 프로그램이 규칙 엔진(116a)을 보충한다.
특별 규칙(118b)은 단일 단어를 구현하는 규칙을 제공하도록 구현될 수 있거나, 또는 규칙(118b)은 복수의 언어에 대해 복수의 서브셋을 포함할 수 있다. 복수의 언어 예에서, 응용 프로그램(106b)은 또한 사용자가 원하는 언어들 중에서 능동적으로 전환할 수 있게 하거나, 상황에 따라 또는 다른 수동 입력에 의해 언어들 사이의 전환이 이루어질 수도 있다.
예시적인 디지털 데이터 처리 장치
전술한 바와 같이, 데이터 처리 항목(예를 들면, 실행 엔진(106) 또는 실행 엔진의 임의의 구성요소)은 다양한 형태로 구현될 수 있다.
일부 예는 범용 프로세서, DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(field programmable gate array) 또는 다른 프로그램 가능한 로직 장치, 별도의 게이트(discrete gate) 또는 트랜지스터 로직, 별도 하드웨어 구성요소, 또는 본 명세서에서 기술한 기능들을 수행하도록 설계된 이들의 임의의 조합을 포함한다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로서, 프로세서는 임의의 통상의 프로세서, 컨트롤러, 마이크로컨트롤러 또는 상태 머신일 수도 있다. 프로세서는 또한 DSP와 마이크로프로세서의 조합과 같은 컴퓨팅 장치의 조합, 복수의 마이크로프로세서, DSP 코어를 포함한 하나 이상의 마이크로프로세서 또는 임의의 다른 그러한 구성으로서 구현될 수도 있다.
보다 구체적인 예로서, 도 2는 디지털 데이터 처리 장치(200)를 나타낸다. 장치(200)는 저장부(204)에 결합된 마이크로프로세서, 개인용 컴퓨터, 워크스테이션, 제어기, 마이크로컨트롤러, 상태 머신 또는 기타 처리 머신과 같은 프로세서(202)를 포함한다. 이 예에서, 저장부(204)는 고속 액세스 저장부(206) 및 비휘발성 저장부(208)를 포함한다. 고속 액세스 저장부(206)는 예를 들어 프로세서(202)에 의해 실행된 프로그래밍 인스트럭션을 저장하는데 사용될 수 있다. 저장부(206, 208)는 도 3 및 4와 관련하여 보다 상세히 논의되는 바와 같이 다양한 장치에 의해 구현될 수 있다. 많은 대안들이 가능하다. 예를 들면, 구성요소들(206, 208) 중 하나는 생략될 수도 있고, 또한 저장부(204, 206 및/또는 208)는 프로세서(202)에 내장될 수도 있고 또는 장치(200) 외부에 제공될 수도 있다.
장치(200)는 또한 커넥터, 라인, 버스, 케이블, 버퍼, 전자 링크, 네트워크, 모뎀, 또는 프로세서(202)용 다른 수단과 같은 장치(200) 외부의 다른 하드웨어와 데이터를 교환하기 위한 입력/출력부(210)를 포함한다.
신호 저장 매체
전술한 바와 같이, 저장부(204, 208)(도 2 참조) 등을 구현하기 위해, 디지털 데이터 저장부의 다양한 예들이 예를 들어 데이터 저장부(110)(도 1 참조)와 같은 시스템(100)에서 사용된 저장부를 제공하는데 사용될 수도 있다. 응용에 따라서, 이 디지털 데이터 저장부는 데이터 저장 또는 머신 판독가능한 인스트럭션을 저장하는 것과 같은 다양한 기능에 사용될 수도 있다. 이들 인스트럭션은 다양한 처리 기능을 수행하는 것을 도울 수도 있고, 또는 컴퓨터에 소프트웨어 프로그램을 설치하는 역할을 할 수도 있으며, 이 경우 소프트웨어 프로그램은 이와 관련된 다른 기능을 수행하도록 실행 가능하다.
아무튼, 신호 저장 매체는 머신 판독 가능한 신호를 디지털 방식으로 저장하기 위한 임의의 구성으로 구현될 수 있다. 그 일례로 CD-ROM, WORM, DVD, 디지털 광학 테이프, 디스크 저장부(300)(도 3 참조) 또는 기타 광학 저장부와 같은 광학 매체를 들 수 있다. 다른 예로는 종래의 "하드 드라이브", RAID(redundant array of inexpensive disk) 또는 다른 DASD(direct access storage device)와 같은 직접 액세스 저장부가 있다. 또 다른 예로는 자기 테이프 또는 광학 테이프와 같은 직렬 액세스 저장부가 있다. 디지털 데이터 저장부의 또 다른 예로는 ROM, EPROM, 플래시 PROM, EEPROM, 메모리 레지스터, 배터리 백업 RAM 등과 같은 전자 메모리가 있다.
예시적인 저장 매체는 프로세서에 결합되며, 따라서 프로세서는 정보를 저장 매체에 기록하거나 또는 기록 매체로부터 정보를 판독할 수 있다. 대안으로서, 저장 매체는 프로세서에 통합될 수도 있다. 다른 예에서는, 프로세서 및 저장 매체가 ASIC 또는 다른 집적 회로에 위치할 수도 있다.
로직 회로(Logic Circuitry)
(전술한) 머신 실행 가능한 인스트럭션을 포함하는 신호 저장 매체와 달리, 다른 실시예는 실행 엔진(106) 및/또는 그 구성요소와 같은 처리 특징부를 구현하기 위해 로직 회로를 사용한다.
속도, 비용, 제작 비용 등을 감안한 애플리케이션의 특정 요건에 따라서, 이 로직은 수천 개의 작은 집적 트랜지스터를 갖는 ASIC(application-specific integrated circuit)을 구성함으로써 구현될 수 있다. 이러한 ASIC은 CMOS, TTL, VLSI 또는 다른 적절한 구성을 갖도록 구현될 수도 있다. 다른 대안들은 DSP(digital signal processing chip), 별도의 회로(예를 들면, 저항, 캐패시터, 다이오드, 인덕터 및 트랜지스터), FPGA(field programmable gate array), PLA(programmable logic array), PLD(programmable logic device) 등을 포함한다.
도 4는 집적 회로(400)의 형태로 로직 회로의 일례를 도시한 것이다.
동작
이상, 본 발명의 구조적 특징들을 설명하였으므로, 이하에서는 본 발명의 동작 특징을 설명한다. 본 명세서에 개시된 실시예와 관련하여 설명하는 임의의 방 법, 프로세스 또는 알고리즘의 단계들은 하드웨어에서 직접 구현될 수도 있고, 하드웨어에 의해 실행되는 소프트웨어 모듈 또는 이들의 조합으로 구현될 수 있다.
전체적인 동작의 순서
도 5는 본 발명의 방법 측면의 일례를 도시하는 순서도(500)이다. 일반적으로, 이 순서도(500)는 핸드헬드 컴퓨팅 장치에서 언어 가변 데이터의 디스플레이를 관리하기 위한 규칙 세트를 이용한다. 응용시에, 데이터의 유형 또는 사용자 개시 동작의 특성에 따라서 언어에 따라 변하는 디스플레이된 데이터의 특징들을 관리하기 위해 이들 규칙이 호출된다. 설명을 위해, 전술한 시스템(100)(도 1 참조)의 특정 상황에서 도 5의 예를 설명하지만, 여기에 한정되지는 않는다.
구성
단계 501에서, 장치(100)가 구성된다. 다른 동작들 중에서, 하나 이상의 규칙의 기술이 규칙 데이터베이스(118)에 기록된다. 단계(501)는 장치(100)의 제조, 첫 번째 시동, 사용자 구성, 재구성, 재프로그래밍, 또는 다른 유용한 시간 또는 이벤트시에 수행될 수 있다.
구성(501)의 일부로서, 장치(100)는 특정 언어로 데이터를 수신하고 디스플레이하도록 구성된다. 이것은 "설치 언어(language of installation)"라고도 한다. 복수의 이러한 언어가 있을 수도 있지만, 설명의 편의를 위해 이하의 논의에서는 하나만 사용된다. 설치 언어는 어느 특별 규칙(118b) 및 폰트 규칙(118c)이 설치되는 지를 결정한다. 제조 및 구성의 편의를 위해, 변형 없이 임의의 언어에 동일 프로그램(106b)이 사용될 수도 있다.
정상 동작
구성(501) 후에, 장치(100)는 정상 동작을 하며(502), 특히 공통 프로그램(106b) 및 이들의 서브콤프넌트의 기능을 수행한다. 이들 동작(502)은 502a로 표시된 바와 같이 장치(100)의 정상 동작을 계속 수행한다. 한편으로는, 단계 502의 동작은 어떠한 규칙(118a 내지 118c)도 요구하지 않는 다양한 사용자 및 장치 개시 동작을 포함한다.
단계 502에서, 공통 프로그램(106b)은 다양한 이벤트 또는 트리거에 응답하여 실행된다. 이벤트/트리거의 일부 예는 응용 프로그램의 사용자 개시, 운영체제 기능의 사용자 개시, 시스템 애플리케이션의 운영체제 개시, 사전 스케줄링된 시간의 도달, 원격 소스로부터의 신호의 도착, 반복 스케줄링된 이벤트의 발생, 사전 결정된 신호의 발생 또는 장치(100) 내부의 상태, 공통 프로그램의 상태의 변화, I/O 동작 또는 공통 프로그램(106b)에 대한 임의의 다른 하드웨어 또는 소프트웨어 이벤트를 포함한다.
전술한 이벤트 또는 트리거가 발생하면, 관련된 공통 프로그램(106b)이 실행된다. 공통 프로그램 실행의 일부 예는 워드 프로세서와 같은 고레벨 응용 프로그램에 포함된 진행중인 작업의 개시 또는 수행, 다이얼러 호출, 스프레드시트 열기, 컨택트 디렉토리를 통한 검색, 목록표(do-list) 관리, 텍스트 메시징 또는 사용자 의 희망 및 장치(100)의 프로그래밍에 따른 수백 개의 다른 동작들을 포함한다. 또한, 정상 동작(502)은 장치 드라이버의 실행, 시스템 기능, 라이브러리 작업 또는 106b의 구성요소와 관련된 다른 처리 작업을 포함할 수도 있다.
업데이터
동작(502)의 다른 예는 업데이터(106c)가 실행되는 경우이다. 일실시예에서, 업데이터(106c)는 사전 설정된 스케줄, 주기적인 트리거, 수동 사용자 활성화, 원격으로 전송된 활성화 신호 등과 같은 이벤트에 응답하여 실행된다. 업데이터(106c)는 규칙(118b)의 잘못된 설치를 수정하거나, 규칙(118b) 및/또는 폰트(118d)를 업그레이드하거나, 장치(100)의 설치 언어를 변경하거나 또는 언어의 업데이팅 외의 다른 동작을 한다.
바람직하게는, 머신(100)의 범용 구성으로 인해, 업데이터(106c)는 기존의 특별 규칙(118b) 및 폰트(118d)를 새로운 언어에 적용할 수 있는 다른 세트로 교체하는 단순한 동작에 의해 장치(100)의 설치 언어를 변경할 수 있다. 이것은 100의 어떠한 다른 구성요소도 바꾸지 않고도 장치(100)가 새로운 언어에 따라서 무난하게 동작하게 할 수 있게 한다.
업데이트를 다운로드하기 위해, 업데이터(106c)는 무선 접속, 인터넷 또는 다른 링크를 통해 무선 서비스 제공자, 소프트웨어 제조업자, 애프트마켓(after-market) 소프트웨어 제조업자 또는 다른 개체와 통신한다. 장치의 설치 언어를 바꾸는 동작은 사용자에게 비용없이 행해질 수 있거나 또는 새로운 언어 제공자가 사 용자에게 요금을 부과할 수도 있다.
호출
단계 504는 단계 502에서 동작하는 공통 프로그램이 규칙 엔진(106a)을 호출하였는 지의 여부를 검사한다. 일실시예에서, 단계 504는 적절한 호출, 핸드오프, 인터럽트 또는 다른 신호를 공통 프로그램들(106b) 중 호출하는 하나의 공통 프로그램으로부터 수신하였는 지를 판단하는 규칙 엔진(106a)에 의해 수행된다. 단계 504는 단계 504d에 도시된 바와 같이 설정된 또는 가변 스케줄에 따라 주기적으로 또는 다른 반복 기준에 따라 수행될 수 있다.
특별 규칙(506b)을 수행하기 위한 규칙 엔진(106a) 상에서의 호출(504)과 관련하여, 일실시예에서 호출 공통 프로그램은 이들 호출을 데이터 유형, 데이터와 관련하여 수행되는 사용자 동작의 특성 또는 둘 모두로 인한 언어에 따라 변할 수 있는 (디스플레이를 통해) 데이터 표시를 요구하는 상태로 한정한다. 다른 예에서는, 호출 프로그램이 임의의 데이터가 디스플레이되기 전에 규칙을 호출하고, 어떠한 특별 규칙(118b)이 적용되는 지에 따라 규칙 엔진(106a)이 특별 규칙(506b)을 적용한다(또는 전송되지 않은 데이터를 반환한다).
규칙 엔진(106a)이 특별 규칙(506b)을 수행할 것을 요구하는 호출과 관련하여, 이 호출(504)은 사용자 입력이 라인 브레이크를 삽입하거나, 사용자 입력이 스크롤 업/다운 동작을 요구하거나, 사용자가 메뉴를 호출하거나, 운영체제 또는 응용 프로그램이 사용자에게 메시지를 발행하는 단계 또는 다른 처리 단계를 포함하 는 여러 가지 이유로 발생할 수 있다. 하나의 특정 예로서, 이전에 오픈한 어드레스 북 응용 프로그램(106b)을 갖는 사용자가 알파벳 순으로 된 어드레스 리스트를 디스플레이하는 기능을 선택한다. 그러면, 어드레스북 응용 프로그램이 어드레스들이 설치 언어에 따라 적절히 소팅되어 있음을 보장하는 규칙 엔진(106a)을 호출한다.
규칙 실행
단계 506에서, 공통 프로그램(106b) 중 하나에 의해 호출되면, 규칙 엔진(106a)은 데이터베이스(118) 내의 적절한 규칙을 실행한다. 공통 프로그램으로부터의 요구의 특성에 따라, 단계 504에서 규칙 엔진(106a)은 공통 규칙(506a), 특별 규칙(506b) 및/또는 폰트 규칙(506c)을 호출할 수 있다. 따라서, 공통 프로그램(106b)은 유닛(106b)의 프로그래밍 그 자체에 의존하기보다는 규칙 엔진(106a)의 공유 기능을 이용하도록 구성된다. 이것은 공통 프로그램(106b)을 단순화한다.
일부 경우에, 프로그램이 엔진(106a)을 호출할 때, 엔진(106a)은 공통 규칙(118a)을 이용하여 요구된 기능을 수행한다(단계 506a). 다른 경우에, 즉 폰트를 포함하는 문제의 경우에, 엔진(106a)은 폰트 규칙(118c)을 이용하여 요구된 기능을 수행한다(단계 506c). 바람직하게는, 폰트 규칙(118c)은 설치 언어에 적절한 폰트로 텍스트를 디스플레이하는 것을 돕는다.
다른 경우에, 엔진(106a)은 특별 규칙(118b)을 이용하여 요구된 기능을 수행한다(단계 506b). 특별 규칙(118b)을 이용함으로써, 엔진(106a)은 데이터의 유형 또는 데이터에 대해 수행되는 사용자의 동작으로 인해 여러 언어들에 걸쳐 변하는 것처럼 보일 수 있는 데이터의 디스플레이와 관련된 문제에 특별히 전념한다. 따라서, 특별 규칙(118b)은 모든 특정 동작으로부터의 데이터 및 모든 유형의 데이터가 설치 언어에 따라서 적절히 디스플레이되게 한다.
단계 506b의 일실시예에서, 규칙 데이터베이스(118)는 복수의 특별 규칙 세트(118b)(및 폰트 규칙(118c))을 포함하고, 단계 506b의 일부로서, 규칙 엔진(106)은 설치 언어에 따라서 적절한 세트(118b/118c)를 선택한다.
규칙 엔진(106a)이 규칙을 적용하는 것을 종료하면, 엔진(106a)은 결과를 호출 공통 프로그램(506a)에 전달한다.
특별 규칙 실행의 예들
단계 506b의 일례에서, 컨택 디렉토리는 디스플레이 컨택에 대한 사용자 요구를 수신한다. 컨택을 소팅하기 위해, 컨택 프로그램이 규칙 엔진(106a)을 호출한다(504). 단계 506에서, 규칙 엔진(106a)은 일례에서 네덜란드어 특별 규칙 세트(118b)의 일부인 규칙(154)에 따라서 소팅 동작을 행한다. 따라서, 규칙(154)은 ij 문자가 j 문자 이전에 오는 규칙과 같은 네덜란드어에 특유한 특징들을 알고 있다. 규칙 엔진(106a)은 단계 506 완료시에 적절히 소팅된 데이터를 호출 프로그램(106b)에게 반환한다(506a).
단계 506b의 다른 예에서는, 계산기 프로그램(106b)이 단계 502에서 실행되고 있었다. (또한 502에서)사용자 입력을 통해, 계산기 프로그램이 숫자 항목을 수신한다. 설치 언어(네덜란드어)에 따라서 숫자를 적절히 디스플레이하기 위해, 계산기는 규칙 엔진(106a)을 작동시킨다(504). 단계 506b에서, 엔진(106a)이 네덜란드어 특별 규칙 세트(118b)의 일부인 숫자 규칙(160)에 따라서 텍스트를 조작한다. 따라서, 규칙(160)은 예를 들어 콤마와 십진법이 미국식 표현에 비해 바뀌는 네덜란드 프로토콜에 특유한 특징들을 따른다. 규칙 엔진(106a)은 출력을 위해 적절히 표현된 데이터를 호출 프로그램(106b)에 반환한다(506a).
단계 506b의 다른 예에서는, 데이터베이스 애플리케이션 프로그램(106b)이 단계 502에서 실행중이다. (또한 502에서)사용자 입력을 통해, 데이터베이스 프로그램이 사용자가 디스플레이할 날짜를 수신한다. 날짜를 적절히 디스플레이하기 위해, 데이터베이스 프로그램은 규칙 엔진(106a)을 호출한다(504). 규칙 엔진(106a)은 일례에서 네덜란드어 특별 규칙 세트(118b)의 일부인 규칙(162)에 따라서 날짜 디스플레이 동작을 행한다(506b). 따라서, 규칙(154)은 달이 먼저 오는 대신에 날짜가 먼저 표시된다는 네덜란드어 프로토콜을 알 고 있다. 따라서, 규칙 엔진(106a)은 데이터베이스로부터 "19 February 2001"을 호출 프로그램(106b)에게 반환한다(506a).
단계 506b의 다른 예에서는, 워드 프로세싱 프로그램(106b)이 단계 502에서 실행된다. (또한 502에서)사용자 입력을 통해, 워드프로세싱 프로그램이 사용자의 여러 텍스트 입력을 수신한다. 설치 언어(이 예에서는 독일어)에 따라서 임의의 적절한 하이픈 연결을 갖는 텍스트를 올바르게 제공하기 위해, 워드 프로세서는 규칙 엔진(106a)을 작동시킨다(504). 엔진(106a)은 이 예에서는 독일어 특별 규칙 세트(118b)의 일부인 하이픈 연결 규칙(158)에 따라서 제안된 하이픈 연결을 반환한다(506a). 특히, 단계 506b에서, 규칙(158)은 독일어 단어에 대한 적절한 음절 경계를 인식하고, 적절한 워드 브레이크를 추천한다. 규칙 엔진(106a)은 하이픈 연결 추천 또는 하나 이상의 특정 하이픈 연결 단어를 호출 프로그램(106b)에 반환한다(506a).
단계 506b의 다른 예에서는, 운영체제 프로그램(106b)이 단계 502에서 실행된다. 설치 언어(이 예에서는 네덜란드어)에 따라서 프로그램의 메뉴를 적절히 제공하기 위해, 프로그램은 규칙 엔진(106a)을 작동시킨다(504). 이것은 메뉴가 호출되거나 또는 디스플레이될 때마다 또는 다른 기준에 기초하여 전체 메뉴 시스템에 대해 1회 행해질 수 있다. 엔진(106a)은 이 예에서는 네덜란드어 특별 규칙 세트(118b)의 일부인 메뉴 규칙(170)에 따라 메뉴 항목의 기술을 반환한다(506a). 일례로서, 규칙(170)은 특정 항목(영어에서는 "폴더")이 대응 네덜란드어 "Map"으로 표현된다는 것을 인식한다(506b). 이 조작(번역)을 수행하기 위해, 메뉴 규칙(170)은 규칙 또는 다른 소스에 포함되는 번역 맵핑을 참조한다. 번역은, 예를 들어 각 메뉴 항목에 대한 숫자 코드와 영어, 네덜란드어, 스페인어 또는 설치 언어의 대응 단어 사이에서 이루어질 수 있다. 규칙 엔진(106a)은 번역 추천어를 호출 프로그램(106b)에 반환한다(506a).
메시지 규칙(170)은 시스템 생성 메시지를 제외하면 유사한 방식으로 동작한다. 메시지 규칙은 문자 숫자 코드 또는 영어 메시지 "삭제하시겠습니까(OK to delete?)"와 같은 시스템 생성 메시지와 독일어 "Wissen?"과 같은 설치 언어의 구 문 사이를 맵핑한다.
단계 506b의 다른 예로서, 워드 프로세싱 프로그램(106b)이 단계 502에서 실행된다. 이 프로그램은 전화 키패드(104)를 통해 사용자 입력을 수신한다. 보다 구체적으로는, 사용자는 숫자 전화 키를 사용하여 텍스트를 입력하며, 각 z가 복수의 문자에 대응하기 때문에 사용자의 출력은 모호하다. 따라서, "6-4-3"의 사용자의 입력이 "M-E-N"에 해당하는지 또는 "O-E-M"에 해당하는지 명확하지가 않다. 영어가 설치 언어가 아니라면, 키들은 완전히 다른 문자 맵핑을 갖지만, 그래도 사용자의 입력은 분명하지 않다. 적절한 단어 선택을 디스플레이하기 위해, 워드 프로세싱 프로그램이라고 하는 명확화 기능이 규칙 엔진(106a)을 트리거한다(504). 규칙 엔진(106a)은 이 예에서는 영어 단어의 어휘인 설치 언어에 대한 명확화 가이드라인(175)을 불러온다. 따라서, 규칙(154)은 사용자의 입력이 "men" 또는 "oem" 또는 "neo" 또는 "oenophile" 등과 같은 다른 단어의 시작에 해당할 수도 있음을 암시한다. 규칙 엔진(106a)은 이 정보를 엔진(106a)을 호출한 명확화 기능에게 전달한다.
단계 506b의 다른 예로서, 운영체제 프로그램 또는 시스템 기능(106b)이 단계 502에서 실행된다. 보다 구체적으로는, 단계 502에서 사용자 입력을 통해 이 프로그램(106b)은 머신(100)의 하드웨어 구성을 조정하는 일련의 요구를 수신한다. 어떤 점에서, 이들 사용자 요구들 중 하나는 실행될 수 없고, 몇몇 이유로 그것은 거부되어야 한다. 그래픽을 통해 오류를 사용자와 적절히 통신하기 위해, 프로그램은 규칙 엔진(106a)을 호출한다(504). 규칙 엔진(106a)은 규칙(180)에 따라서 적절한 그래픽 심볼을 유도한다. 예를 들면, 영어 실시예의 경우, 중지(Halt)를 나타내는 손동작을 보여주는 그래픽으로 에러를 통신하는 것이 유용할 수 있다. 그러나, 다른 언어에서는, 이 손동작이 공격적으로 간주될 수 있으며, 따라서 규칙(180)은 다른 손동작 또는 완전히 다른 객체를 도시하는 심볼을 이용하도록 지시한다. 규칙 엔진(106a)은 단계 506a에서 적절한 그래픽 심볼을 호출 프로그램(106b)에게 반환한다.
규칙 실행 후
규칙 엔진(106a)이 규칙을 적용한 후에, 엔진(106a)은 호출 공통 프로그램에게 결과를 전달한다(506a). 단계 506 후에, 루틴(500)은 종료되지 않는다. 즉, 공통 프로그램은 계속해서 장치(100)를 동작시킨다. 또한, 단계 504는 공통 프로그램(106b)으로부터의 호출에 규칙 엔진(106a)이 신속하게 작동하도록 반복적으로 수행된다(504d).
언어마다 변하는 데이터의 디스플레이에 속하는 특별 규칙(118b)의 경우에, 데이터 전달(506a) 후에 사용자에게 데이터를 제공하는데 있어서 할 추가 작업이 있다. 즉, 특별 규칙(118b)을 호출한(504) 동일 또는 상이한 공통 프로그램이 (단계 506c에서 폰트 규칙(118c)을 통해) 적절한 폰트 정보를 획득하기 위해 규칙 엔진(106a)을 호출한다. 호출 프로그램으로 다시 전달된 폰트 정보는 사용자 출력(102)에서 데이터를 적절히 디스플레이하기 위해 그래픽 렌더링과 같은 다른 공통 프로그램에 의해 사용된다.
기타 실시예들
이상, 예시적인 실시예들을 개시하였지만, 첨부한 청구범위에 의해 정의된 본 발명의 범주로부터 벗어나지 않고 다양한 변화 및 수정이 이루어질 수 있을 것이다. 따라서, 개시된 실시예는 본 발명에 의해 널리 고려되는 요지의 대표이고, 본 발명의 범주는 당업자에게 자명하게 될 수 있는 다른 실시예를 충분히 포함하며, 따라서 본 발명의 범주는 첨부된 청구범위에 의해서만 제한된다.
당업자에게 알려져 있거나 추후에 알려지게 될 전술한 실시예의 요소들에 대한 모든 구조적 및 기능적 균등물은 참고로서 여기에 특별히 포함시켜, 현재의 청구범위에 의해 포함시키고자 한다. 또한, 장치 또는 방법이 본 발명이 해결하고자 하는 각각의 모든 문제점을 해결할 필요는 없는데, 이는 현재의 청구항들에 의해 그것이 포함되기 때문이다. 또한, 본 발명에서의 구성요소, 부품 또는 방법의 단계가 청구범위에 명시적으로 기재되어 있는지에 관계없이 본 발명에서의 어떠한 구성요소, 부품 또는 방법의 단계도 공개된 대로 한정하는 것은 아니다. 어떠한 청구범위의 구성요소도 그 구성요소가 "수단(means for)" 또는 방법항의 경우에는 "단계(step for)"를 사용하여 특별히 나열되지 않는 한, 35 USC 112의 6조 규정 하에서 해석되어서는 안 된다.
또한, 본 발명의 구성요소가 단수형으로 설명 또는 청구될 수도 있지만, 단수형의 구성요소와 관련하여 명시적으로 표현되지 않는 한 하나만을 의미하지 않고 하나 이상을 의미한다. 또한, 당업자는 설명 또는 청구를 위해 동작 순서가 일부 특정 순서로 나열되어 있다고 인식하겠지만, 본 발명은 그러한 특정 순서를 넘어서 다양한 변화를 상정한다.
또한, 당업자는 정보 및 신호가 다양한 기술 및 기법을 이용하여 표현될 수도 있다는 것을 이해할 수 있을 것이다. 예를 들면, 본 명세서에서 참조한 임의의 데이터, 인스트럭션, 커맨드, 정보, 신호, 비트, 심볼 및 칩이 전류, 전자기파, 자기장 또는 입자, 광학 필드 또는 입자, 기타 항목들 또는 이들의 조합으로 표현될 수도 있다.
또한, 당업자라면 본 명세서에 개시된 임의의 예시적인 논리 블록, 모듈, 회로 및 프로세스 단계들은 전자 하드웨어, 컴퓨터 소프트웨어 또는 이들의 조합으로 구현될 수도 있다. 이 하드웨어와 소프트웨어의 교환가능성을 명확하게 설명하기 위해, 다양한 예시적인 구성요소, 블록, 모듈, 회로 및 단계들을 이들의 기능성의 관점에서 일반적으로 설명하였다. 그러한 기능성이 하드웨어 또는 소프트웨어로서 구현될 지는 전체적인 시스템에 부과된 특정 응용 및 설계 제한에 달려있다. 당업자라면 각각의 특정 애플리케이션에 대해 여러 방법으로 전술한 기능성을 구현할 수 있을 것이지만, 그러한 구현 결정은 본 발명의 범주로부터 벗어나는 것으로 해석되어서는 안 된다.
전술한 실시예는 당업자가 본 발명을 실시하거나 사용할 수 있도록 제공된다. 이들 실시예에 대한 다양한 변형예들은 당업자에게 쉽게 자명할 것이며, 본 명세서에서 정의한 일반적인 원리는 본 발명의 사상 또는 범주로부터 벗어나지 않고 다른 실시예에 적용될 수도 있다. 따라서, 본 발명은 이들 실시예에 한정되지 않고 본 명세서에 개시한 원리 및 신규한 특징들과 부합하는 가장 넓은 범위를 따른다.

Claims (21)

  1. 컴퓨팅 장치로서,
    사람이 판독 가능한 정보를 제공하는 디스플레이와,
    사용자 입력 장치와,
    지정된 응용 프로그램 작업을 수행하고 출력이 규정된 동작 언어로 제공되도록 현재 구성된 하나 이상의 응용 프로그램으로서, 상기 응용 프로그램이 또한
    데이터의 유형 또는 상기 데이터와 관련하여 수행되는 사용자 동작의 특성 또는 이들 둘 모두로 인해 언어에 따라 표시가 변할 수 있는 데이터의 디스플레이의 표시를 요구하는 이벤트들을 인식하고,
    상기 이벤트들 중 하나를 인식하는 것에 응답하여, 상기 데이터에 대한 규칙 엔진을 호출하는 상기 데이터를 제공하는 대신에 상기 규칙 엔진에 대한 규정된 동작 언어를 식별한 후에 상기 규칙 엔진에 의해 반환된 조작된 데이터를 제공하는 것을 포함하는 동작을 수행하도록 구성되는, 상기 응용프로그램과,
    다른 언어와 부합하도록 표시하기 위해 수신된 데이터의 조작을 관리하는 여러 규칙 세트로서, 상기 규칙은 상기 데이터의 유형, 상기 데이터와 관련하여 수행되는 사용자 동작의 특성 또는 이들 둘 모두로 인해 발생하는 변화를 구현하는, 상기 규칙 세트와,
    응용 프로그램들 중 하나에 의해 호출되는 것에 응답하여 상기 규칙 내에서 상기 데이터 및 상기 동작 언어에 적용가능한 각각의 규칙을 식별하고, 식별된 규 칙을 적용하여 상기 동작 언어에 부합하는 표시를 위해 상기 데이터를 조작하며, 상기 조작된 상기 데이터를 상기 규칙 엔진을 호출한 상기 응용 프로그램에게 반환하는 것을 포함하는 동작을 수행하는 규칙 엔진
    을 포함하는 컴퓨팅 장치.
  2. 제 1 항에 있어서,
    사용자 입력 정보를 인식하는 명확화 정보를 더 포함하는
    텍스트 입력 장치.
  3. 컴퓨팅 장치로서,
    사람이 판독가능한 정보를 제공하는 디스플레이와,
    사용자 입력 장치와,
    규칙 엔진을 호출하여 입력 데이터를 상기 규칙 엔진에게 전달하도록 사전 결정된 조건에 응답하는 하나 이상의 공통 프로그램과,
    데이터 유형, 상기 데이터와 관련하여 수행되는 사용자 동작의 특성 또는 이 둘 모두로 인해 표시(presentation)가 언어에 따라 변할 수 있는 입력 데이터의 변환을 관리하는 규칙 세트로서, 상기 변환은 상기 입력 데이터를 지정된 언어와 부합하는 출력 데이터로 조작하는 것을 포함하는, 상기 규칙 세트와,
    상기 입력 데이터를 수신하고, 상기 입력 데이터 및 상기 지정된 언어에 적용할 수 있는 각각의 상기 규칙을 식별하며, 상기 식별된 규칙을 적용하여 상기 입력 데이터를 지정된 언어와 부합하는 출력 데이터로 조작하고, 상기 출력 데이터를 상기 규칙 엔진을 호출한 상기 공통 프로그램에게 반환하는 것을 포함하는 동작을 수행하도록 구성된 규칙 엔진을 포함하는
    컴퓨팅 장치.
  4. 제 3 항에 있어서,
    상기 언어에 따른 변화는 방언(dialect) 및 지역어(locale) 중 적어도 하나에 따른 변화를 포함하는
    컴퓨팅 장치.
  5. 제 3 항에 있어서,
    원격 위치로부터 업데이트를 다운로드하고, 상기 업데이트로 상기 규칙 세트의 적어도 일부분을 대체하여 상기 규칙 엔진이 다른 언어에 부합하는 데이터를 출력하도록 프로그램된 선택적으로 활성화된 업데이트 모듈을 더 포함하는
    컴퓨팅 장치.
  6. 제 3 항에 있어서,
    상기 규칙은 또한 폰트로 인해 표시가 언어에 따라 변할 수 있는 입력 데이터의 변환을 관리하는
    컴퓨팅 장치.
  7. 제 3 항에 있어서,
    상기 규칙은 상기 지정된 언어 내의 어휘에 대해 복수의 해석을 갖는 사용자 입력을 분석하는 명확화 가이드 라인을 포함하는
    컴퓨팅 장치.
  8. 제 3 항에 있어서,
    상기 입력 데이터를 상기 지정된 언어에 부합하는 출력 데이터로 조작하는 것은 상기 지정된 언어에 부합하는 그래픽 요소를 디스플레이하는 것을 포함하는
    컴퓨팅 장치.
  9. 제 3 항에 있어서,
    상기 규칙은 입력 스트링의 출력 스트링으로의 다른 조작을 규정하는 정규 표현을 포함하는
    컴퓨팅 장치.
  10. 제 3 항에 있어서,
    상기 입력 데이터를 상기 지정된 언어에 부합하는 출력 데이터로 조작하는 것은 입력 데이터의 하나 이상의 문자를 하나 이상의 다른 문자로 교체하는 것을 포함하는
    컴퓨팅 장치.
  11. 제 3 항에 있어서,
    상기 입력 데이터는 문자 스트링을 포함하고,
    상기 입력 데이터를 상기 지정된 언어에 부합하는 출력 데이터로 조작하는 것은 상기 입력 데이터의 문자들을 재정렬하는 것을 포함하는
    컴퓨팅 장치.
  12. 제 3 항에 있어서,
    상기 입력 데이터를 상기 지정된 언어에 부합하는 출력 데이터로 조작하는 것은
    상기 지정된 언어에 부합하는 음절 경계를 찾아내는 것과,
    상기 지정된 언어에 부합하는 방식으로 텍스트를 하이픈으로 연결하는 것을 포함하는
    컴퓨팅 장치.
  13. 제 3 항에 있어서,
    상기 입력 데이터를 상기 지정된 언어에 부합하는 출력 데이터로 조작하는 것은 상기 지정된 언어에 따라 텍스트를 소팅하는 것을 포함하는
    컴퓨팅 장치.
  14. 제 3 항에 있어서,
    상기 입력 데이터를 상기 지정된 언어에 부합하는 출력 데이터로 조작하는 것은 상기 지정된 언어에 부합하는 방식으로 숫자, 통화, 날짜, 시간 중 하나를 표현하는 포맷을 따르는 것을 포함하는
    컴퓨팅 장치.
  15. 제 3 항에 있어서,
    상기 입력 데이터를 상기 지정된 언어에 부합하는 출력 데이터로 조작하는 것은 상기 지정된 언어에 따른 메뉴 텍스트를 표현하는 것을 포함하는
    컴퓨팅 장치.
  16. 제 3 항에 있어서,
    상기 입력 데이터를 상기 지정된 언어에 부합하는 출력 데이터로 조작하는 것은 상기 지정된 언어로 상기 공통 프로그램에 의해 개시된 메시지를 표현하는 것을 포함하는
    컴퓨팅 장치.
  17. 컴퓨팅 장치로서,
    사람이 판독가능한 정보를 제공하는 디스플레이와,
    사용자 입력 장치와,
    상기 디스플레이를 통해 데이터를 제공하기 위한 요건에 응답하여 규칙 엔진을 호출하도록 구성된 하나 이상의 공통 프로그램으로서, 상기 데이터는 데이터 유형, 상기 데이터와 관련하여 수행되는 사용자 동작의 특성 또는 이들 둘 모두로 인 해 언어에 따라 변할 수 있는, 하나 이상의 공통 프로그램과,
    각각의 규칙이 입력 데이터를 지정된 언어에 따라 표시하기 위한 출력 데이터로 다르게 조작하는 것을 지정하는, 규칙들의 집합과,
    공통 프로그램 중 하나에 의해 호출되는 규칙 엔진에 응답하여 상기 규칙들 중 적절한 하나의 규칙을 실행하도록 구성된 규칙 엔진
    을 포함하는 컴퓨팅 장치.
  18. 컴퓨팅 장치로서,
    사람이 판독가능한 정보를 제공하는 디스플레이와,
    사용자 입력 장치와,
    상기 디스플레이에 데이터를 제공하는 규정된 특징들을 관리하는 규칙들의 기술(statement)을 포함하는 규칙 데이터 저장부로서, 상기 규정된 특징들은 데이터의 유형, 상기 데이터와 관련하여 수행되는 사용자 동작의 특성 중 적어도 하나가 변할 때마다 상이한 언어에 걸쳐서 변화되는 특징들을 포함하는 규칙 데이터 저장부와,
    상기 규칙들을 실행하도록 구성된 규칙 엔진과,
    규정된 조건에 응답하여 상기 규칙 엔진을 호출하도록 프로그램된 하나 이상의 공통 프로그램
    을 포함하는 컴퓨팅 장치.
  19. 컴퓨팅 장치 동작 방법에 있어서,
    사람이 판독 가능한 정보를 제공하는 디스플레이와, 사용자 입력 장치와, 규칙 데이터 저장부와, 상기 규칙 데이터 저장부의 규칙을 실행하도록 구성된 규칙 엔진과, 규정된 조건에 응답하여 상기 규칙 엔진을 호출하도록 프로그램된 하나 이상의 공통 프로그램과, 선택적으로 활성화되는 업데이터를 포함하는 컴퓨팅 장치를 생산하는 단계와,
    상기 업데이터의 활성화에 응답하여, 상기 업데이터가 원격 위치로부터 업데이트를 획득하고, 상기 규칙 데이터 저장부에 상기 업데이트를 설치하여 지정된 언어에 따라 상기 디스플레이 상에 데이터를 제공하는 규정된 특징들을 관리하는 규칙들의 기술을 제공하는 단계를 포함하되,
    상기 규정된 특징들은 데이터 유형 및 상기 데이터와 관련하여 수행되는 사용자 동작의 특성 중 적어도 하나가 변할 때마다 상이한 언어에 걸쳐 변화되는 특징들을 포함하는
    컴퓨팅 장치 동작 방법.
  20. 제 19 항에 있어서,
    상기 생산 동작은 상기 제 1 지정된 언어에 따라 상기 디스플레이 상에 데이 터를 제공하는 규정된 특징들을 관리하는 규칙의 제 1 기술(statement)과 함께 상기 규칙 데이터 저장부를 생산하는 것을 포함하고,
    상기 업데이트 획득 동작은 제 2 지정된 언어에 따라 상기 디스플레이 상에 데이터를 제공하는 규정된 특징들을 관리하는 규칙의 제 2 기술을 제공하는 것을 포함하는
    컴퓨팅 장치 동작 방법.
  21. 제 19 항에 있어서,
    상기 동작은 상기 업데이트를 제공하는 요금을 과금하는 단계를 더 포함하는
    컴퓨팅 장치 동작 방법.
KR1020087013836A 2005-12-09 2006-12-08 컴퓨팅 장치 및 그 동작 방법 KR20080104259A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US74922505P 2005-12-09 2005-12-09
US60/749,225 2005-12-09
US11/380,494 US7587378B2 (en) 2005-12-09 2006-04-27 Embedded rule engine for rendering text and other applications
US11/380,494 2006-04-27

Publications (1)

Publication Number Publication Date
KR20080104259A true KR20080104259A (ko) 2008-12-02

Family

ID=38163419

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087013836A KR20080104259A (ko) 2005-12-09 2006-12-08 컴퓨팅 장치 및 그 동작 방법

Country Status (6)

Country Link
US (1) US7587378B2 (ko)
EP (1) EP1958092A4 (ko)
KR (1) KR20080104259A (ko)
AU (1) AU2006326672A1 (ko)
CA (1) CA2631702A1 (ko)
WO (1) WO2007070369A2 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8542132B2 (en) * 2004-06-02 2013-09-24 Blackberry Limited Handheld electronic device and associated method employing a multiple-axis input device and using non-edited characters as context in text disambiguation
US7312726B2 (en) 2004-06-02 2007-12-25 Research In Motion Limited Handheld electronic device with text disambiguation
US8117540B2 (en) * 2005-05-18 2012-02-14 Neuer Wall Treuhand Gmbh Method and device incorporating improved text input mechanism
US8036878B2 (en) * 2005-05-18 2011-10-11 Never Wall Treuhand GmbH Device incorporating improved text input mechanism
US8374846B2 (en) 2005-05-18 2013-02-12 Neuer Wall Treuhand Gmbh Text input device and method
US9606634B2 (en) 2005-05-18 2017-03-28 Nokia Technologies Oy Device incorporating improved text input mechanism
US8166418B2 (en) * 2006-05-26 2012-04-24 Zi Corporation Of Canada, Inc. Device and method of conveying meaning
US8736420B2 (en) * 2007-01-29 2014-05-27 At&T Intellectual Property I, L.P. Methods, systems, and products for controlling devices
US20100182230A1 (en) * 2007-06-26 2010-07-22 Eiko Yamada Terminal, function starting-up method and program for terminal
US9560003B2 (en) 2008-02-14 2017-01-31 Gary Stephen Shuster Erroneous addressing prevention for electronic messaging
ATE501478T1 (de) 2008-06-11 2011-03-15 Exb Asset Man Gmbh Vorrichtung und verfahren mit verbessertem texteingabemechanismus
US8209262B2 (en) * 2008-07-03 2012-06-26 International Business Machines Corporation Pattern-based policy application mechanism for SCA
US8245191B2 (en) * 2008-07-03 2012-08-14 International Business Machines Corporation Policy application rules for automated configuration of software components
KR20110088235A (ko) * 2010-01-28 2011-08-03 삼성전자주식회사 텍스트 출력 방법 및 장치
US20120023454A1 (en) * 2010-07-20 2012-01-26 Sap Ag Schedule management using linked events
WO2012098428A1 (en) * 2011-01-18 2012-07-26 Nokia Corporation Task performance
EP2535802B1 (en) 2011-06-16 2016-08-10 GN Netcom A/S Computer-implemented method of arranging text items in a predefined order
US8752200B2 (en) 2011-07-12 2014-06-10 At&T Intellectual Property I, L.P. Devices, systems and methods for security using magnetic field based identification
US8983849B2 (en) 2012-10-17 2015-03-17 Nuance Communications, Inc. Multiple device intelligent language model synchronization
US9298276B1 (en) 2013-12-31 2016-03-29 Google Inc. Word prediction for numbers and symbols

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109352A (en) 1988-08-09 1992-04-28 Dell Robert B O System for encoding a collection of ideographic characters
US5109576A (en) * 1991-04-24 1992-05-05 Teekell Gordon E Closure device
US5809415A (en) * 1995-12-11 1998-09-15 Unwired Planet, Inc. Method and architecture for an interactive two-way data communication network
US5952942A (en) * 1996-11-21 1999-09-14 Motorola, Inc. Method and device for input of text messages from a keypad
US6009444A (en) * 1997-02-24 1999-12-28 Motorola, Inc. Text input device and method
US6054941A (en) * 1997-05-27 2000-04-25 Motorola, Inc. Apparatus and method for inputting ideographic characters
US7257528B1 (en) * 1998-02-13 2007-08-14 Zi Corporation Of Canada, Inc. Method and apparatus for Chinese character text input
US6104317A (en) * 1998-02-27 2000-08-15 Motorola, Inc. Data entry device and method
US6169538B1 (en) * 1998-08-13 2001-01-02 Motorola, Inc. Method and apparatus for implementing a graphical user interface keyboard and a text buffer on electronic devices
SE514377C2 (sv) * 1998-08-26 2001-02-19 Gunnar Sparr Teckenigenkänning
US6362752B1 (en) * 1998-12-23 2002-03-26 Motorola, Inc. Keypad with strokes assigned to key for ideographic text input
US6801659B1 (en) * 1999-01-04 2004-10-05 Zi Technology Corporation Ltd. Text input system for ideographic and nonideographic languages
US6204848B1 (en) * 1999-04-14 2001-03-20 Motorola, Inc. Data entry apparatus having a limited number of character keys and method
US7610194B2 (en) * 2002-07-18 2009-10-27 Tegic Communications, Inc. Dynamic database reordering system
US6172625B1 (en) * 1999-07-06 2001-01-09 Motorola, Inc. Disambiguation method and apparatus, and dictionary data compression techniques
US6424743B1 (en) * 1999-11-05 2002-07-23 Motorola, Inc. Graphical handwriting recognition user interface
US6490547B1 (en) * 1999-12-07 2002-12-03 International Business Machines Corporation Just in time localization
US6686852B1 (en) * 2000-09-15 2004-02-03 Motorola, Inc. Keypad layout for alphabetic character input
GB2368670A (en) 2000-11-03 2002-05-08 Envisional Software Solutions Data acquisition system
SE521911C2 (sv) * 2001-01-15 2003-12-16 Decuma Ab Ideon Res Park Metod, anordning och datorprogram för igenkänning av ett handskrivet tecken
SE519014C2 (sv) * 2001-03-07 2002-12-23 Decuma Ab Ideon Res Park Metod och anordning för igenkänning av ett handskrivet mönster
US6982658B2 (en) * 2001-03-22 2006-01-03 Motorola, Inc. Keypad layout for alphabetic symbol input
US6502118B1 (en) * 2001-03-22 2002-12-31 Motorola, Inc. Fast system and method for producing a logarithmic signal approximation with variable precision
JP4569051B2 (ja) 2001-06-07 2010-10-27 株式会社エクォス・リサーチ 領域別情報送信装置
US20030046670A1 (en) * 2001-06-15 2003-03-06 Marlow Mark J. Binary object system for automated data translation
US20030023426A1 (en) 2001-06-22 2003-01-30 Zi Technology Corporation Ltd. Japanese language entry mechanism for small keypads
US6947771B2 (en) * 2001-08-06 2005-09-20 Motorola, Inc. User interface for a portable electronic device
US6757544B2 (en) * 2001-08-15 2004-06-29 Motorola, Inc. System and method for determining a location relevant to a communication device and/or its associated user
US20030054830A1 (en) 2001-09-04 2003-03-20 Zi Corporation Navigation system for mobile communication devices
US7075520B2 (en) * 2001-12-12 2006-07-11 Zi Technology Corporation Ltd Key press disambiguation using a keypad of multidirectional keys
US7111248B2 (en) * 2002-01-15 2006-09-19 Openwave Systems Inc. Alphanumeric information input method
US7949513B2 (en) 2002-01-22 2011-05-24 Zi Corporation Of Canada, Inc. Language module and method for use with text processing devices
US6807529B2 (en) * 2002-02-27 2004-10-19 Motorola, Inc. System and method for concurrent multimodal communication
US6912581B2 (en) * 2002-02-27 2005-06-28 Motorola, Inc. System and method for concurrent multimodal communication session persistence
US6864809B2 (en) * 2002-02-28 2005-03-08 Zi Technology Corporation Ltd Korean language predictive mechanism for text entry by a user
US7272564B2 (en) * 2002-03-22 2007-09-18 Motorola, Inc. Method and apparatus for multimodal communication with user control of delivery modality
US20040039990A1 (en) 2002-03-30 2004-02-26 Xorbix Technologies, Inc. Automated form and data analysis tool
US7020849B1 (en) * 2002-05-31 2006-03-28 Openwave Systems Inc. Dynamic display for communication devices
US7095403B2 (en) * 2002-12-09 2006-08-22 Motorola, Inc. User interface of a keypad entry system for character input
US20040163032A1 (en) * 2002-12-17 2004-08-19 Jin Guo Ambiguity resolution for predictive text entry
US7318162B2 (en) 2002-12-18 2008-01-08 Sas Institute Inc. Computer-implemented system and method for managing data integrity validation rules
US20040153975A1 (en) * 2003-02-05 2004-08-05 Williams Roland E. Text entry mechanism for small keypads
US20040153963A1 (en) 2003-02-05 2004-08-05 Simpson Todd G. Information entry mechanism for small keypads
US7256769B2 (en) * 2003-02-24 2007-08-14 Zi Corporation Of Canada, Inc. System and method for text entry on a reduced keyboard
US6955602B2 (en) * 2003-05-15 2005-10-18 Zi Technology Corporation Ltd Text entry within a video game
WO2004111871A1 (en) 2003-06-18 2004-12-23 Zi Corporation Configurable information identification system and method
US20060236239A1 (en) 2003-06-18 2006-10-19 Zi Corporation Text entry system and method
US7057607B2 (en) * 2003-06-30 2006-06-06 Motorola, Inc. Application-independent text entry for touch-sensitive display
US7389235B2 (en) * 2003-09-30 2008-06-17 Motorola, Inc. Method and system for unified speech and graphic user interfaces
US6973332B2 (en) * 2003-10-24 2005-12-06 Motorola, Inc. Apparatus and method for forming compound words
US8136050B2 (en) 2003-11-21 2012-03-13 Nuance Communications, Inc. Electronic device and user interface and input method therefor
WO2006026908A1 (fr) 2004-08-25 2006-03-16 Dong Li Procede permettant d'introduire dans un terminal portatif des caracteres chinois a l'aide de lettres phonetiques continues
US7890492B2 (en) * 2004-11-15 2011-02-15 Zi Corporation Of Canada, Inc. Organizing pointers to objects in an array to improve the speed of object retrieval
US20060129928A1 (en) * 2004-12-02 2006-06-15 Weigen Qiu Use of pointing device to identify ideographic characters
MX2007006772A (es) * 2004-12-07 2008-03-10 Zi Corp Canada Inc Interfase de usuario con caracteristicas de busqueda aumentadas.
US20060155536A1 (en) * 2004-12-20 2006-07-13 Williams Roland E Method and device for displaying a telephone number
US7466859B2 (en) * 2004-12-30 2008-12-16 Motorola, Inc. Candidate list enhancement for predictive text input in electronic devices
RU2007135945A (ru) 2005-02-28 2009-04-10 Зи Декума Аб (Se) Граф распознавания
WO2006091155A1 (en) 2005-02-28 2006-08-31 Zi Decuma Ab Segmentation-based recognition
EP1952651A4 (en) * 2005-11-21 2010-06-02 Zi Corp Canada Inc INFORMATION DISTRIBUTION SYSTEM AND METHOD FOR MOBILE DEVICES
US8018439B2 (en) * 2006-03-22 2011-09-13 Zi Corporation Of Canada, Inc. Mobile appliance system and method enabling efficient entry
US8166418B2 (en) * 2006-05-26 2012-04-24 Zi Corporation Of Canada, Inc. Device and method of conveying meaning
CN101611417B (zh) * 2006-12-01 2012-07-04 Zi德库玛股份公司 用于字符识别的方法

Also Published As

Publication number Publication date
EP1958092A2 (en) 2008-08-20
AU2006326672A1 (en) 2007-06-21
WO2007070369A3 (en) 2008-06-19
US7587378B2 (en) 2009-09-08
WO2007070369A2 (en) 2007-06-21
CA2631702A1 (en) 2007-06-21
US20070156618A1 (en) 2007-07-05
WO2007070369B1 (en) 2008-08-07
EP1958092A4 (en) 2012-04-18

Similar Documents

Publication Publication Date Title
KR20080104259A (ko) 컴퓨팅 장치 및 그 동작 방법
KR100893447B1 (ko) 사용자 단어 및 사용자 동작의 컨텍스트 예측 장치 및 방법
CN105117376B (zh) 多模式输入法编辑器
US8504349B2 (en) Text prediction with partial selection in a variety of domains
US5974413A (en) Semantic user interface
US8671357B2 (en) Methods and systems for improved data input, compression, recognition, correction, and translation through frequency-based language analysis
US8413069B2 (en) Method and apparatus for the automatic completion of composite characters
CN104951099A (zh) 一种基于输入法的展示候选项的方法和装置
KR20070098904A (ko) 수동 입력된 불명확한 텍스트 입력을 해석하기 위해 음성입력을 활용하는 방법 및 장치
JP2003513389A (ja) 言語入力ユーザインタフェース
US20030112277A1 (en) Input of data using a combination of data input systems
US20050114138A1 (en) Character inputting method and character inputting apparatus
US9223901B2 (en) Method for selecting elements in textual electronic lists and for operating computer-implemented programs using natural language commands
US20020040866A1 (en) Method and apparatus for displaying information
CN101375273A (zh) 用于绘制文本和其他应用的嵌入式规则引擎
KR102158544B1 (ko) 모바일 기기의 입력 인터페이스 내에서 맞춤법 검사를 지원하는 방법 및 시스템
JP2007164278A (ja) 日本語処理装置、日本語処理方法及び日本語処理用プログラム
KR20000042959A (ko) 전화기 자판이 부착된 한글 입력장치 및 그방법
JP2001343995A (ja) 音声入力処理装置、音声入力処理方法及び音声入力処理プログラムを記録した記録媒体
CA2541554C (en) A method and system for selecting a currency symbol for a handheld electronic device
JP2004086449A (ja) 不完全または曖昧な音声表記入力のための比較機能を有する中国語音声表記入力装置およびその方法
JPH07111716B2 (ja) 電訳機
KR20160122390A (ko) 스마트 디바이스 입력 장치 및 방법
JP2001282782A (ja) 辞書登録システム、および辞書登録処理プログラムを記録した記録媒体
JPH04120656A (ja) 文書処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application