KR101847097B1 - 동적이고 구성가능한 사용자 인터페이스 - Google Patents

동적이고 구성가능한 사용자 인터페이스 Download PDF

Info

Publication number
KR101847097B1
KR101847097B1 KR1020147010705A KR20147010705A KR101847097B1 KR 101847097 B1 KR101847097 B1 KR 101847097B1 KR 1020147010705 A KR1020147010705 A KR 1020147010705A KR 20147010705 A KR20147010705 A KR 20147010705A KR 101847097 B1 KR101847097 B1 KR 101847097B1
Authority
KR
South Korea
Prior art keywords
information
user
situation
mobile device
subset
Prior art date
Application number
KR1020147010705A
Other languages
English (en)
Other versions
KR20140079428A (ko
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 KR20140079428A publication Critical patent/KR20140079428A/ko
Application granted granted Critical
Publication of KR101847097B1 publication Critical patent/KR101847097B1/ko

Links

Images

Classifications

    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/20Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
    • 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/016Input arrangements with force or tactile feedback as computer generated output to the user
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

일부 실시예들에서, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법이 제공된다. 방법은 모바일 디바이스를 통해, 모바일 디바이스의 사용자로부터 입력을 수신하는 단계 ― 입력은 동적 상황 의존 정보 큐들을 제시하기 위한 특성과 관련됨 ―; 상황을 결정하는 단계; 정보 큐들의 세트에 대한 서브세트를 식별하는 단계 ― 서브세트는 상황과 연관됨―; 및 모바일 디바이스를 통해, 식별된 서브세트를 사용자에게 지배적으로 제시하는 단계 ― 제시는 정보 큐들의 세트에서 다른 정보 큐들의 임의의 제시에 비해 지배적이며, 제시는 수신된 사용자 입력과 일치함 ―를 포함할 수 있다.

Description

동적이고 구성가능한 사용자 인터페이스{DYNAMIC AND CONFIGURABLE USER INTERFACE}
관련 출원들에 대한 상호 참조들
[0001] 본 출원은 "DYNAMIC AND CONFIGURABLE USER INTERFACE"이란 명칭으로 2011년 9월 22일 출원된 미국 가출원 제61/537,684호 및 "DYNAMIC AND CONFIGURABLE USER INTERFACE"이란 명칭으로 2012년 1월 6일 출원된 미국 정식 출원 제13/344,735호의 이익 및 우선권을 주장한다. 이로써, 이들 참조들 각각은 모든 목적들을 위해 그 전체가 참조로 통합된다.
[0002] 모바일 디바이스들은 점점 널리 보급되고 다재다능해지고 있다. 예를 들어, 다양한 세트의 프로그램들이 셀룰러 전화들 및 휴대 정보 단말기(PDA)상에서 실행될 수 있다. 추가로, 모바일 디바이스들은 다양한 타입들의 정보(예를 들어, 뉴스 또는 교육용 지도서들)를 사용자에게 제시할 수 있다. 모바일 디바이스의 사용자 인터페이스는 사용자가 (예를 들어, 프로그램과 연관된 그래픽 아이콘을 선택함으로써) 실행할 프로그램을 선택하게 하고 그리고/또는 특정한 이용가능한 정보를 시청하게 할 수 있다. 사용자가 프로그램을 쉽게 선택할 수 없거나 정보를 시청할 수 없다면, 프로그램 또는 정보의 가치는 감소된다. 따라서, 사용자가 원하는 프로그램들 및 정보에 쉽게 액세스하게 하는 사용자 인터페이스를 제공하는 것이 중요하다.
[0003] 모바일 디바이스들의 사용자들에게 이용가능한 사용자 인터페이스들을 향상시키기 위한 기법들이 제공된다. 동적으로 구성된 사용자 인터페이스 또는 디스플레이는, 이용가능한 프로그램들 및/또는 정보의 타입들을 식별하는 정보 큐들(cues)(예를 들어, 경고들)을 주어진 상황(context)에 따라 상이하게 사용자에게 제시하도록 생성될 수 있다. 예를 들어, 프로그램들 및/또는 정보 타입들의 서브세트와 연관된 정보 큐들(예를 들어, 그래픽 아이콘들)은, 상황에 기초하여 식별되고 (예를 들어, 그래픽 아이콘, 애니메이팅된 시각적 제시, 음향 등을 사용하여) 사용자에게 제시될 수 있다. 한편, 일부 경우들에서, 상황과 연관되지 않은 다른 프로그램들 및/또는 정보 타입들과 연관된 정보 큐들은 제시되지 않거나 (예를 들어, 더 작은 아이콘 사이즈, 작은(less) 애니메이션 또는 애니메이션 없음(no animation), 작은 음향 또는 음향 없음(no sound) 등을 사용하여) 덜 두드러지게(less prominently) 제시된다. 사용자는 상황 연관 정보 큐들의 제시에 관한 특성을 적어도 부분적으로 정의할 수 있다. 예를 들어, 사용자는 스크린의 동적 부분을 적어도 부분적으로 정의할 수 있고, 여기서, 동적 부분에서의 정보 큐들의 제시는 (예를 들어, 제시된 정보 큐들의 아이덴티티 또는 큐들의 다른 제시 특성들이 변하는) 상황에 따라 변한다. 사용자는, 터치 스크린을 사용하여 동적 영역의 주변부(perimeter)를 정의하고, 동적 영역 구성들의 시스템 제공 옵션들 중에서의 선택을 하고, 동적인 스크린의 퍼센티지를 식별하는 등을 할 수 있다. 이후, 상황들은 사용자 입력 또는 시스템 추론들에 기초하여 결정될 수 있다. 프로그램들 및/또는 정보 타입들의 서브세트가 사용자 입력들 및/또는 시스템 알고리즘들(예를 들어, 뉴럴 네트워크의 사용)에 기초하여 상황과 연관될 수 있다. 서브세트는, 상황을 고려해 볼 때, 관심이 높아진 것으로 예측되거나 알려진 프로그램들 및/또는 정보 타입들을 포함할 수 있다. 서브세트와 연관된 정보 큐들은 (예를 들어, 동적 부분에서 서브세트에 대한 그래픽 아이콘들 또는 텍스트를 단지 디스플레이하고, 서브세트의 제시들을 애니메이팅하고, 서브세트의 하나 또는 그 초과의 것에 링크된 음향 클립(들)을 플레이하는 등의) 지배적(predominate) 방식으로 사용자에게 제시될 수 있다. 그 후, 사용자는, 상황을 고려해 볼 때, 특정한 관심의 프로그램들 및/또는 정보 타입들을 쉽게 식별하고 그리고/또는 그에 액세스할 수 있다.
[0004] 일부 실시예들에서, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법이 제공된다. 방법은, 모바일 디바이스를 통해, 모바일 디바이스의 사용자로부터 입력을 수신하는 단계 ―입력은 동적 상황 의존 정보 큐들을 제시하기 위한 특성과 관련됨―; 상황을 결정하는 단계; 정보 큐들의 세트에 대한 서브세트를 식별하는 단계 ―서브세트는 상황과 연관됨―; 및 모바일 디바이스를 통해, 식별된 서브세트를 사용자에게 지배적으로 제시하는 단계 ―제시는 정보 큐들의 세트에서 다른 정보 큐들의 임의의 제시에 비해 지배적임―를 포함할 수 있으며, 제시는 수신된 사용자 입력과 일치한다. 정보 큐들의 세트는 프로그램과 연관된 그래픽 아이콘을 포함할 수 있고, 프로그램은 모바일 디바이스 상에서 실행가능하다. 정보 큐들의 세트는 상황의 경고를 포함할 수 있다. 정보 큐들의 세트는 거래(deal)의 경고를 포함할 수 있다. 상황은 이전에 수신된 상황 정의 사용자 입력에 기초하여 결정될 수 있다. 이전에 수신된 상황 정의 사용자 입력은 정보 큐들의 세트에 대한 서브세트를 디스플레이하기 위한 하나 또는 그 초과의 조건들을 식별할 수 있다. 하나 또는 그 초과의 조건들은 하나 또는 그 초과의 특정한 발신자들로부터 이메일을 수신하는 것을 포함할 수 있다. 입력은 식별된 서브세트를 시각적으로 제시하기 위해 모바일 디바이스 상의 스크린의 동적 부분의 실제 또는 대략적인 경계를 포함할 수 있다. 입력은 하나 또는 그 초과의 터치 스크린 드로잉 경계들(touch-screen-drawn borders)을 포함할 수 있다. 동적 부분은 모바일 디바이스상의 스크린의 복수의 영역들을 포함할 수 있고, 복수의 영역들은 스크린의 일부(less than an entirety)를 커버한다. 식별된 서브세트는 모바일 디바이스상의 스크린의 시스템 정의 부분내에 시각적으로 제시될 수 있다. 정보 큐들의 세트의 하나 또는 그 초과의 정보 큐들은 복수의 상황들과 연관된다. 식별된 서브세트에는 적어도 하나의 스크롤링 피처(scrolling feature)가 제시될 수 있어서, 식별된 서브세트는 모바일 디바이스의 스크린상에 전체적으로 동시에 제시되지 않는다. 방법은, 정보 큐들의 세트에 대한 정보 큐들의 적어도 일부를 랭킹하는 단계를 더 포함할 수 있고, 식별된 서브세트의 제시는 랭킹에 적어도 부분적으로 기초한다. 정보 큐들의 세트에 대한 식별된 서브세트의 정보 큐들 각각의 제시와 연관된 스크린 위치는 랭킹에 적어도 부분적으로 기초할 수 있다. 입력은, 복수의 시스템 생성 스크린 파티셔닝 옵션들 중에서의 선택을 포함할 수 있다. 식별된 서브세트를 지배적으로 제시하는 단계는, 정보 큐들의 세트에서 다른 정보 큐들과 연관된 그래픽 아이콘들의 임의의 디스플레이에 비해 서브세트와 연관된 그래픽 아이콘들을 지배적으로 디스플레이하는 단계를 포함할 수 있다. 일부 경우들에서, 서브세트에서의 정보 큐들은 모바일 디바이스의 디스플레이 스크린상에서 사용자에게 시각적으로 제시되고, 다른 정보 큐들은 디스플레이 스크린상에서 사용자에게 시각적으로 제시되지 않는다. 일부 경우들에서, 서브세트에서의 정보 큐들은 모바일 디바이스의 홈 스크린 또는 데스크탑상에서 사용자에게 시각적으로 제시되고, 다른 정보 큐들은 홈 스크린 또는 데스크탑상에서 사용자에게 시각적으로 제시되지 않는다. 서브세트는 상황이 결정되었다는 것을 나타내는 정보 큐를 포함할 수 있다. 상황이 결정되었다는 것을 나타내는 정보 큐는 모바일 디바이스의 음향 및 진동 중 적어도 하나를 사용하여 사용자에게 제시될 수 있다. 상황은 환경적 상황(environmental context)일 수 있다. 방법은, 모바일 디바이스를 통해, 정보 큐들의 정적 상황 의존 세트를 사용자에게 제시하는 단계를 더 포함할 수 있다. 모바일 디바이스는 셀룰러 폰일 수 있다. 방법은, 하나 또는 그 초과의 상황 연관 변수들을 수신하는 단계를 더 포함할 수 있고, 여기서, 상황을 결정하는 단계는 수신된 하나 또는 그 초과의 상황 연관 변수들에 기초하여 상황을 추론하는 단계를 포함한다. 방법은, 제 2 상황을 결정하는 단계; 정보 큐들의 동적 세트에 대한 제 2 서브세트를 식별하는 단계 ―제 2 서브세트는 제 2 상황과 연관됨―; 및 모바일 디바이스를 통해, 동적 세트에서 다른 정보 큐들의 임의의 제시에 비해 제 2 서브세트를 지배적으로 제시하는 단계를 더 포함할 수 있고, 여기서, 제시는 수신된 사용자 입력과 일치하고 제 2 서브세트는 서브세트와 상이하다. 서브세트는 프로그램들을 상황과 연관시키는 사용자 입력들에 적어도 부분적으로 기초하여 식별될 수 있고, 프로그램들은 모바일 디바이스상에서 실행가능하다. 방법은, 모바일 디바이스상에서 실행가능한 프로그램과 사용자의 상호작용들을 모니터링하는 단계; 사용자의 상호작용들과 상황 연관 변수 간의 상관을 식별하는 단계; 상황 연관 변수의 값을 수신하는 단계; 및 식별된 상관 및 수신된 값에 기초하여 상황을 추론하는 단계를 더 포함할 수 있다.
[0005] 일부 실시예들에서, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 시스템이 제공된다. 시스템은, 모바일 디바이스의 사용자로부터 입력을 수신하도록 구성된 입력 컴포넌트 ―입력은 동적 상황 의존 정보 큐들을 제시하기 위한 특성과 관련됨―; 상황을 결정하도록 구성된 상황 검출기; 결정된 상황을 정보 큐들의 세트에 대한 서브세트와 연관시키도록 구성된 연관기(associator); 및 정보 큐들의 세트에서 다른 정보 큐들의 임의의 제시와 비교하여 서브세트를 지배적으로 제시하는 사용자 인터페이스를 생성하도록 구성된 사용자 인터페이스 생성기를 포함할 수 있고, 여기서, 서브세트의 제시는 수신된 사용자 입력과 일치한다. 사용자 인터페이스 생성기는 동적 상황 의존 정보 큐들을 디스플레이하기 위한 모바일 디바이스의 디스플레이의 부분을 정의하는 디스플레이 배분기(display apportioner)를 포함할 수 있고, 이 정의는 사용자 입력에 의존한다. 상황 검출기는 복수의 상황 정의들을 적어도 주기적으로 조정하도록 구성된 적응 모델(adaptive model)을 포함할 수 있다. 연관기는, 정보 큐들의 동적 세트의 부분들과 상황들 간의 연관들을 적어도 주기적으로 조정하도록 구성된 적응 모델을 포함할 수 있다.
[0006] 일부 실시예들에서, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 시스템이 제공된다. 시스템은, 모바일 디바이스의 사용자로부터 입력을 수신하도록 구성된 입력 디바이스 ―입력은 동적 상황 의존 정보 큐들을 제시하기 위한 특성과 관련됨―; 및 상황을 결정하고; 정보 큐들의 세트에 대한 서브세트를 식별하고 ―서브세트는 상황과 연관됨―; 그리고 식별된 서브세트를 사용자에게 지배적으로 제시하기 위해 사용자 인터페이스를 생성하는 컴퓨터 실행가능 명령들로 프로그래밍된 하나 또는 그 초과의 프로세서들을 포함할 수 있고, 제시는 정보 큐들의 세트에서 다른 정보 큐들의 임의의 제시에 비해 지배적이며, 제시는 수신된 사용자 입력과 일치한다. 모바일 디바이스는 하나 또는 그 초과의 프로세서들을 포함할 수 있다. 외부 컴퓨터가 하나 또는 그 초과의 프로세서들 중 적어도 하나를 포함할 수 있고, 외부 컴퓨터는 무선 접속을 통해 모바일 디바이스에 커플링된다. 모바일 디바이스는 하나 또는 그 초과의 상황 연관 변수들을 모니터링하도록 구성된 하나 또는 그 초과의 센서들을 더 포함할 수 있다.
[0007] 일부 실시예들에서, 사용자 인터페이스를 생성하기 위한 시스템이 제공된다. 시스템은, 모바일 디바이스의 사용자로부터 입력을 수신하기 위한 수단 ―입력은 동적 상황 의존 정보 큐들을 제시하기 위한 특성과 관련됨―; 상황을 결정하기 위한 수단; 정보 큐들의 세트에 대한 서브세트를 식별하기 위한 수단 ―서브세트는 상황과 연관됨―; 및 정보 큐들의 세트에서 다른 정보 큐들의 임의의 제시와 비교하여, 식별된 서브세트를 지배적으로 제시하기 위한 수단을 포함할 수 있고, 여기서, 제시는 수신된 사용자 입력과 일치한다. 상황을 결정하기 위한 수단은 클러스터링 알고리즘(clustering algorithm)을 사용하는 것을 포함할 수 있다. 서브세트를 식별하기 위한 수단은 뉴럴 네트워크를 사용하는 것을 포함할 수 있다. 입력 수신 수단은 터치 스크린을 포함할 수 있다.
[0008] 도 1은 모바일 디바이스에 대한 사용자 인터페이스를 생성하기 위한 시스템의 실시예를 도시한다.
[0009] 도 2는 동적 사용자 인터페이스를 구성하기 위한, 본 발명의 실시예에 따른 방법을 도시한다.
[0010] 도 3은 동적 사용자 인터페이스를 구성하기 위한, 본 발명의 실시예에 따른 방법을 도시한다.
[0011] 도 4는 상황에 기초하여 프로그램들 및/또는 정보 타입들을 식별하기 위한 방법의 실시예를 도시한다.
[0012] 도 5는 상황 의존 변수들, 상황들, 프로그램들, 및 정보 타입들 간의 연관들의 실시예를 도시한다.
[0013] 도 6은 모바일 디바이스의 스크린의 예를 도시한다.
[0014] 도 7은 상황을 추론하고 디스플레이를 생성하기 위한 시스템의 실시예를 도시한다.
[0015] 도 8의 컴퓨터 시스템의 실시예를 예시한다.
[0016] 모바일 디바이스들의 사용자들에게 이용가능한 사용자 인터페이스들을 향상시키기 위한 방법들, 디바이스들, 및 시스템들이 제공된다. 현재의 모바일 디바이스들은 다수의 프로그램들 및 정보 타입들을 지원한다. 그러나, 모바일 디바이스의 디스플레이에 대해 소형 사이즈를 고려해 볼 때, 모든 이용가능한 프로그램들 및 정보의 타입들을 식별하는 정보 큐들을 사용자에게 제시하는 것은 바람직하지 못하거나 불가능할 수 있다. 본 발명의 일부 실시예들은 동적으로 구성된 사용자 인터페이스 또는 디스플레이를 생성하는 것에 관한 것이다. 사용자는 동적 사용자 인터페이스 또는 디스플레이에 관한 특성을 적어도 부분적으로 정의할 수 있다. 예를 들어, 사용자는 정보 큐들의 제시가 상황에 걸쳐 변하는 스크린의 부분을 적어도 부분적으로 정의할 수 있다. 상황은 예를 들어, 사용자 입력 또는 시스템 추론들에 기초하여 결정될 수 있다. (예를 들어, 각각이 이용가능한 프로그램을 식별할 수 있거나 특정한 타입의 정보를 제시할 수 있는) 특정한 정보 큐들이 (예를 들어, 사용자 입력들 또는 시스템 분석들에 기초하여) 상황과 연관될 수 있다. 사용자 인터페이스는 사용자가 특정한 정보 큐와 연관된 프로그램 또는 정보를 쉽게 식별하고 그리고/또는 그에 액세스하게 하도록 구성될 수 있다. 예를 들어, 스크린의 정의된 동적 부분이 특정한 프로그램들과만 연관된 그래픽 아이콘들 또는 텍스트를 디스플레이할 수 있고, 특정한 프로그램들의 제시들이 (예를 들어, 아이콘 사이즈를 증가시키고, 애니메이션을 추가하고, 아이콘-링크된 음향 클립들을 추가하는 식으로) 강조될 수 있고, 그리고/또는 사용자에게는 (예를 들어, 디바이스의 진동, 음향 신호, 플래싱 디스플레이 등을 통해) 상황 또는 연관된 프로그램/정보 타입에 관해 경고될 수 있다.
[0017] 일부 경우들에서, 상황은 환경적 상황이다. 환경적 상황은, 예를 들어, 위치 상황(예를 들어, 샌디에고 다운타운, 메인스트리트 15번가, "작업" 위치, 외부, GPS 좌표들, 자유의 여신상 근처, Moe's Pizza 근처, 휴게소 근처 등), 세팅(setting) 상황(예를 들어, 여행, 직장, 홈 등), 활동(activity) 상황(예를 들어, 야구 게임, 영화, 미팅, 저녁, 공부(studying) 등), 연관된 사람과의 상황(예를 들어, Betty와 미팅, Bill이 근처에 있음, Ann이 말하는 중임, Peter가 근처 있을 거 같음 등), 또는 시간 상황(예를 들어, 월요일, 주말, 저녁, 오후 9시, 1월 등)을 포함할 수 있다. 일부 경우들에서, 상황은 이벤트-검출 상황이다. 이벤트-검출 상황은 예를 들어, 사용자 동작(예를 들어, 아이콘의 선택, 특정 키들의 타이핑, 프로그램과의 특정한 상호작용, 일정 시간 기간 동안 디바이스의 미사용, 유지된 타이핑, 문서들 보기 등), 프로그램의 개시, 또는 (예를 들어, 프로그램에 의해 검출된) 트리거의 검출을 포함할 수 있다. 트리거(예를 들어, 주가 변동, 기상 주의보, 항공권들 거래, 구두(a pair of shoes) 판매, 다른 소셜 네트워킹 계정의 업데이트, 특정한 저널에 의한 새로운 이슈의 공개, 특정한 토픽에 대한 새로운 기사의 공개 등에 기초한 트리거)는 사용자/디바이스와 독립적일 수 있어서, 사용자/디바이스의 존재에 의해 실질적으로 영향을 받지 않는다. 다른 경우들에서, 트리거(예를 들어, 모바일 디바이스의 배터리, 사용자 계정에 의해 수신된 신규 이메일 등에 기초한 트리거)는 사용자/디바이스에 적어도 부분적으로 의존한다.
[0018] 일부 상황들은 상호 배타적일 수 있지만(예를 들어, 아침 및 저녁 또는 Moe's Pizza 및 직장), 다른 상황들은 그렇지 않을 수 있다(예를 들어, 집에서 그리고 아침). 상황들은 (예를 들어, 사전 판매 세팅들에 기초하여) 사전 정의될 수 있거나 사전 정의되지 않을 수 있다. 일부 실시예들에서, 예를 들어, 상황은 아래에 더욱 상세히 설명되는 바와 같이, 상황 연관 변수들의 특정한 값들을 반복적으로 관측하는 것에 기초하여 정의된다. 상황에는 특정한 명칭(예를 들어, "Home") 또는 일반 명칭(예를 들어, "상황 A")이 부여되거나 부여되지 않을 수 있다. 일부 실시예들에서, 사용자는 사전 정의되거나 학습된 상황의 명칭을 입력할 수 있다.
[0019] 아래에 더욱 상세히 설명되는 바와 같이, 상황이 결정된 이후에, 디스플레이는 사용자에게 관심이 있을 것 같은 프로그램들 및/또는 정보 타입들을 통지하기 위해 정보 큐들을 제시하도록 구성될 수 있다. 일례로서, 시스템은 전화의 GPS 데이터에 기초하여 그리고/또는 시각(time of day)에 기초하여 사용자가 "사무실(office)" 상황에 있다는 것을 추론할 수 있거나, 사용자는 그가 "사무실" 상황에 있다는 것을 특정하는 디바이스에 데이터를 입력할 수 있다. 시스템은 사용자가 직장 상황에 있는 동안 프로그램을 빈번하게 사용하고 정보 타입에 액세스하기 때문에, 이메일 애플리케이션 및 기술-개발 정보를 직장에 관련된 것으로 식별할 수 있다. 딕테이션(dictation) 및 스캐닝 애플리케이션들은 애플리케이션들을 직장 상황과 연관시키는 사용자 입력에 기초하여 직장 관련 프로그램들로서 또한 식별될 수 있다. 다른 애플리케이션들(예를 들어, 스포츠 뉴스 애플리케이션들 또는 운동-로깅(exercise-logging) 애플리케이션) 및 정보 타입들(예를 들어, 골프 뉴스)은 직장 상황과 연관되는 것이 아니라 다른 상황들과 연관된다. 그 후, 직장 연관 프로그램들이 사용자에게 지배적으로 제시된다. 예를 들어, 사용자는 자신의 스크린의 부분을 "동적"인 것으로 정의할 수 있다. 그 후, 직장 관련 애플리케이션들 및/또는 정보 타입들과만 연관된 사용자 또는 머신 선택가능한 아이콘들 또는 텍스트가 이러한 부분에 디스플레이될 수 있다. 하나 또는 그 초과의 다른 스크린 부분들은 정적일 수 있고 상황과 독립적인 아이콘들 및/또는 정보(예를 들어, 웹 브라우징 애플리케이션 아이콘, 전화 애플리케이션 아이콘, 및 기상 정보)를 디스플레이할 수 있다. 이러한 방식으로, 사용자는 상황을 고려해 볼 때 가장 사용할 것 같은 프로그램들 및 정보의 타입들에 쉽게 액세스할 수 있다.
[0020] 다른 예로서, 애플리케이션은 거래를 위해 서버를 트래킹하도록 동작할 수 있다. 거래의 검출은 이벤트 검출 상황으로서 정의될 수 있다. 그 후, 사용자 인터페이스는 (예를 들어, 경고 아이콘을 제시하고, 연관된 애플리케이션의 아이콘을 제시하고, 연관된 애플리케이션의 아이콘의 제시 또는 어피어런스(appearance)를 변경하고, 경고 또는 상황 정보를 제시하고, 디바이스를 진동시키고, 톤을 플레이하는 식으로) 거래 또는 상황을 사용자에게 경고하도록 구성될 수 있다. (예를 들어, 거래를 얻기 위한) 특정한 프로그램들 또는 프로그램 피처들이 사용자에게 또한 제시될 수 있다. 경고는 (예를 들어, 경고 아이콘을 애니메이팅함으로써) 애니메이션을 포함할 수 있고 그리고/또는 디바이스는 음향 신호를 방출할 수 있다.
[0021] 도 1은 모바일 디바이스에 대한 사용자 인터페이스를 생성하기 위한 시스템(100)의 실시예를 도시한다. 시스템은 (클라우드 네트워크를 포함할 수 있는) 네트워크(들)(130) 및 무선 네트워크(115)를 통해 원격 서버(140)와 통신할 수 있는 모바일 디바이스(110)를 포함할 수 있다. 무선 네트워크(115)는 셀룰러 서비스 제공자의 무선 네트워크를 나타낼 수 있다. 무선 네트워크(115)는 원격 서버(140)와 통신하기 위해 하나 또는 그 초과의 네트워크(들)(130)를 사용할 수 있다. 네트워크(들)(130)는 기업 인트라넷과 같은 하나 또는 그 초과의 사설 네트워크들 및/또는 인터넷과 같은 하나 또는 그 초과의 공중 네트워크들을 포함할 수 있다.
[0022] 모바일 디바이스(110)는 PDA, 태블릿 컴퓨터, 랩탑, 핸드헬드 게임 디바이스, 디지털 카메라 등과 같은 셀룰러 전화 또는 일부 다른 모바일 컴퓨터화된 디바이스를 나타낼 수 있다. 모바일 디바이스(110)는 모바일 디바이스의 주변 물리적 환경으로부터 오디오 데이터(예를 들어, 사람(111)이 이야기한 말)를 수집하거나 캡처할 수 있는 마이크론폰을 포함할 수 있다. 모바일 디바이스(110)는 오디오 신호들을 방출하는 스피커를 포함할 수 있다.
[0023] 모바일 디바이스(110)는 디스플레이(예를 들어, 터치 스크린 디스플레이)를 또한 포함할 수 있다. 디스플레이는 이용가능한 프로그램들 및/또는 정보를 사용자에게 제시하도록 구성될 수 있다. 예를 들어, 복수의 프로그램들 및/또는 정보의 타입들 또는 그 각각과 연관된 사용자 선택가능 그래픽 아이콘들 또는 텍스트가 디스플레이될 수 있다. 디스플레이는 적어도 약 0.5, 1, 2, 3, 5, 10, 12, 14, 20, 25, 30, 40 또는 50인치, 약 0.5, 1, 2, 3, 5, 10, 12, 14, 20, 25, 30, 40 또는 50인치, 또는 약 0.5, 1, 2, 3, 5, 10, 12, 14, 20, 25, 30, 40 또는 50인치 미만의 길이 및/또는 폭을 가질 수 있다.
[0024] 모바일 디바이스(110)는 사용자 입력 컴포넌트를 포함할 수 있다. 사용자 입력 컴포넌트는 실행할 프로그램의 선택, 시청할 정보의 타입의 선택 또는 사용자 선호도의 세팅과 같은, 사용자로부터의 입력을 수신하도록 구성될 수 있다. 사용자 입력 컴포넌트는 키패드(예를 들어, 숫자 및/또는 알파벳 키패드) 및/또는 (예를 들어, 음성 인식 소프트웨어와 커플링된) 마이크로폰을 포함할 수 있다. 사용자 입력 컴포넌트는 마우스, 태블릿 펜 및/또는 터치 스크린을 포함할 수 있다.
[0025] 시스템(100)은 하나 또는 그 초과의 센서들을 포함할 수 있다. 일부 실시예들에서, 모바일 디바이스(110)는 하나 또는 그 초과의 센서들(예를 들어, 광 검출 센서, 잡음 센서, 압력 센서, 위치 센서, GPS 등)을 포함한다. 일부 실시예들에서, 하나 또는 그 초과의 센서들은 모바일 디바이스(110) 외부에 있다. 예를 들어, 모바일 디바이스 위치 센서는 디바이스가 "샌디에고"에 있다는 것을 나타낼 수 있고 외부 센서는 샌디에고의 온도를 식별할 수 있다. 외부 센서들은 모바일 디바이스(110) 및/또는 원격 서버(140)와 무선 통신할 수 있다.
[0026] 모바일 디바이스(110)는 프로세서(112) 및 저장 디바이스(114)를 포함할 수 있다. 원격 서버(140)는 프로세서(142) 및 저장 디바이스(144)를 포함할 수 있다. "저장 디바이스" 및 "프로세서"를 본원에서는 단수형을 사용하여 지칭하지만, 다수의 저장 디바이스들 및 프로세서들이 대신 사용될 수 있다. 저장 디바이스(114 또는 144)는 상황 데이터(122), 프로그램 데이터(124) 및/또는 사용자 데이터(126)와 같은 데이터(120)를 저장할 수 있다. 데이터(120) 중 일부 또는 모두는 개별 사용자들 또는 모바일 디바이스들에 대해 특정될 수 있다. 저장된 데이터(120)는, 현재 또는 최근의 모바일 디바이스 상황을 결정하고 그리고/또는 상황과 연관된 프로그램들 및/또는 정보 타입들을 결정하는데 사용될 수 있다. 연관된 프로그램들 및/또는 정보 타입들은 임의의 적합한 방식으로 그리고 임의의 적합한 형태의 데이터의 사용을 통해 결정될 수 있다. 예를 들어, 관심 프로그램들이 원격 디바이스의 위치, 모바일 디바이스와 연관된 캘린더, 시각, 인근 랜드마크, 사용자의 입력 등에 관한 데이터에 적어도 부분적으로 기초하여 예측될 수 있다.
[0027] 상황 데이터(122)는 상황 연관 변수들 및/또는 복수의 상황들을 포함할 수 있다. 예를 들어, 상황 데이터(122)는 "집"의 상황과 연관되는 GPS 좌표들의 세트를 포함할 수 있다. 상황들의 예들은 위에서 제공되었다.
[0028] 상황 연관 변수들은 현재, 가까운 미래 또는 미래 상황의 결정을 지원할 수 있는 임의의 변수들을 포함할 수 있다. 상황 연관 변수들의 예들은, GPS 좌표들, (예를 들어, 상황을 구체적으로 식별하거나 프로그램의 실행을 개시하는) 사용자 입력들; 디바이스 신호 세기; 인근 블루투스 디바이스들의 검출; 센서에 대한 근접성; 인근 스피커의 식별; 이야기된 단어들의 인식; 단일 발생 또는 반복된 활동 또는 이벤트를 식별하는 이메일들 또는 캘린더들; 사용자 특정 또는 일반 캘린더 이벤트들(예를 들어, 오후 1시 또는 크리스마스에 Bob과의 미팅); 시간 데이터(예를 들어, 날짜, 요일, 시각 등); 공개적으로 송신된 데이터 및/또는 네트워크를 통해 수신된 데이터(예를 들어, 주가, 기상, 간행물, 제품 거래 등);디바이스 이력(예를 들어, 특정한 프로그램의 사용, 디바이스가 온/오프된 시간들 등); 및 사용자 정의 트리거들(예를 들어, 거래 가격 통지 트리거들, 주가 통지 트리거들, 웹사이트 업데이트 통지 트리거들 등)을 포함한다.
[0029] 예를 들어, (디바이스가 다운타운에 있는 것을 나타내는) GPS 좌표들, (월요일 오후 3시라는 것을 나타내는) 시간 데이터, (사용자가 딕테이션 프로그램을 막 실행하였다는 것을 나타내는) 사용자 활동, 및 (인근 화자가 사용자의 보스로서 식별됨을 식별하는) 화자 식별의 상황 연관 변수들은 디바이스 및 사용자가 "직장" 상황에 있다는 것을 프로세서가 추론하게 할 수 있다. 다른 예로서, (샌디에고와 샌프란시스코 사이의 항공편이 $130에 이용가능하다는 것을 나타내는) 항공료 체크 및 (이들 위치들 사이의 항공편들에 대한 $140에서의 트리거를 나타내는) 사용자 정의 트리거의 상황 연관 변수들은 프로세서가 항공편 가격 검출 이벤트 상황을 추론하게 할 수 있다.
[0030] 일부 실시예들에서, 상황 데이터는 상황들의 리스트를 포함한다. 예를 들어, 사용자는 하나 또는 그 초과의 상황 헤딩들(headings)(예를 들어, "직장", "집", "상황 A", "휴가", "Misc" 등)을 입력할 수 있다.
[0031] 프로그램 데이터(124)는 모바일 디바이스상에서 실행될 수 있는 프로그램들의 리스트를 포함할 수 있다. 프로그램은 예를 들어, 애플리케이션 또는 소프트웨어를 포함할 수 있다. 프로그램 데이터(124)는 모바일 디바이스상에서 시청될 수 있는 정보의 타입들의 리스트를 또한 포함할 수 있다. 정보의 타입은 예를 들어, 뉴스, 스포츠 뉴스, 날짜, 외부 온도 등을 포함할 수 있다. 일부 경우들에서, 정보의 타입은 (예를 들어, 배경) 프로그램의 실행에 의해 결정된다.
[0032] 프로그램 데이터(124)는 하나 또는 그 초과의 프로그램들 및/또는 정보 타입들 각각과 연관된 선택가능 피처와 같은 정보 큐를 포함할 수 있다. 예를 들어, 하나 또는 그 초과의 프로그램들 및/또는 정보 타입들은 사용자 선택가능 그래픽 아이콘, 텍스트, 버튼, 또는 다른 옵션과 연관될 수 있다. 사용자 선택가능 피처에 대한 사용자의 선택은 연관된 프로그램을 실행하게 할 수 있거나 선택된 타입의 특정한 정보가 디스플레이되게 할 수 있다. 일부 경우들에서, 사용자는 프로그램을 실행하거나 정보 타입으로부터 정보를 시청하기 위해 사용자 선택가능 피처를 선택할 필요가 없다. 프로그램 데이터(124)는 프로그램 또는 정보 타입의 디스크립션 및/또는 키워드들(예를 들어, 프로그램의 타이틀)을 포함할 수 있다.
[0033] 프로그램 데이터(124)는 하나 또는 그 초과의 상황들과 하나 또는 그 초과의 정보 큐들, 프로그램들 및/또는 정보 타입들 간의 연관들을 포함할 수 있다. 정보 큐는 프로그램 또는 정보 타입과 연관될 수 있어서, 정보 큐와 상황을 연관시키는 것은 프로그램 또는 정보 타입과 상황을 더 연관시키고, 프로그램 또는 정보 타입과 상황을 연관시키는 것은 정보 큐와 상황을 더 연관시키게 된다. 일부 실시예들에서, 상황은 일반적으로 하나 또는 그 초과의 (그리고 일부 경우들에서는, 고정된 수의) 프로그램들 및/또는 정보 타입들과 연관될 수 있고; 그리고/또는 프로그램/정보 타입은 하나 또는 그 초과의 상황과 연관될 수 있다. 일부 실시예들에서, 상황은, 각각 개별 또는 연속 연관 가중치를 갖는, 복수의 (또는 모든) 프로그램들 또는 정보 타입들과 연관될 수 있다. 연관들 및 관련 피처들(예를 들어, 연관 가중치들, 랭킹들 등)은, 예를 들어, (아래에 추가로 설명되는) 결정된 상황을 고려해 볼 때 프로그램을 사용하거나 정보 타입을 시청하는데 있어 사용자가 얼마나 관심 있을지에 대한 시스템의 예측들에 기초하고 그리고/또는 (예를 들어, 가중치 또는 프로그램 랭킹을 정의하는) 사용자 입력에 기초할 수 있다. 시스템의 예측은 예를 들어, 프로그래머에 의해 제공된 데이터, 사용자 선호도들, 및/또는 특정한 상황들에서 사용된 프로그램들의 이력 분석에 기초할 수 있다.
[0034] 특정한 실시예들에서, 상이한 상황들에 대응하는 프로그램 데이터(124)는 계층적(nested) 구조를 가질 수 있다. 이들 경우들에서, 상황이 하위(예를 들어, 더욱 정밀한) 레벨에서 결정되면, 상황의 특이성은 사용하거나 시청하는데 있어서 사용자가 어떤 프로그램들 또는 정보 타입들에 관심 있어 할지에 대한 더욱 정확한 결정을 가능케할 수 있다. 예를 들어, "작업중(at work)"의 상위 레벨 상황과 반대로, 상황은 "클라이언트 A와의 미팅"일 수 있다. 프로세서는 "작업중"인 동안 사용자가 사용하는 일부 프로그램들은 클라이언트 A와의 미팅 동안에는 전혀 사용되지 않지만, 다른 프로그램들은 비교적 높은 빈도로 사용된다는 것을 식별할 수 있다. 예를 들어, 사용자는 클라이언트 A와의 미팅 동안에는 스캐닝 애플리케이션은 전혀 사용하지 않을 수 있지만, 딕테이션 애플리케이션은 루틴하게 사용할 수 있다. 따라서, 더욱 제한되고 그리고/또는 더 잘 맞는(better tailored) 세트의 프로그램 아이콘들이 보다 정밀한 상황에서 사용자에게 제시될 수 있다.
[0035] 사용자 데이터(126)는 사용자에 의해 명확히 입력된 정보 및/또는 모바일 디바이스의 사용자의 사용에 기초하여 사용자에 관하여 결정된 정보를 포함할 수 있다. 예를 들어, 사용자 데이터(126)는 특정한 프로그램들 또는 정보 타입들이 하나 또는 그 초과의 또는 모든 상황들에서 지배적으로 디스플레이되어야 한다는 표시자들을 포함할 수 있다. 사용자 데이터(126)는, 하나 또는 그 초과의 프로그램들 및/또는 정보 타입들을 사용자에게 제시할 방법(예를 들어, 특정한 사이즈의 그래픽 아이콘들의 디스플레이, 아이콘들 또는 정보의 위치, 음향 통지, 디바이스 진동들, 텍스트의 애니메이션들, 또는 아이콘들 등)에 대한 선호도를 포함할 수 있다. 사용자 데이터(126)는 하나 또는 그 초과의 기존의(pre-existing) 또는 신규 상황들에 대한 사용자의 정의(예를 들어, 명칭 및/또는 디스크립션)를 포함할 수 있다. 사용자 데이터(126)는 사용자 또는 모바일 디바이스(110)(예를 들어, 모바일 디바이스상의 센서들의 타입들)에 관한 인구통계적 정보를 포함할 수 있다. 사용자 데이터(126)는 디스플레이의 파티셔닝(예를 들어, 동적인 디스플레이에 대한 일부(fraction), 주변부, 또는 영역)에 관한 선호도들을 포함할 수 있다.
[0036] 모바일 디바이스(110)의 프로세서(112) 및 서버(140)의 프로세서(142) 중 하나 또는 양자 모두는 모바일 디바이스(110)의 저장 디바이스(114) 및/또는 서버(140)의 저장 디바이스(144)에 커플링될 수 있다. 이들 프로세서들 중 하나 또는 양자 모두는 본원에 설명되는 임의의 단계 또는 방법을 수행할 수 있다. 아래에 더욱 상세히 설명되는 바와 같이, 프로세서는 현재의 상황 또는 미래의 상황을 결정하기 위해 상황 데이터(122)를 분석할 수 있다. 그 후, 프로세서는 상황과 연관된 프로그램들 또는 정보 타입들을 결정하기 위해 프로그램 데이터(124)를 분석할 수 있다. 일 실시예에서, 연관된 프로그램들 및/또는 정보 타입들은 시스템 알고리즘들에 의해 초기에 결정되고, 그 뒤에 사용자 데이터(126)(예를 들어, 최우선(over-riding) 연관들)에 기초하여 개량된다. 프로그램들 또는 정보 타입들의 결정에 적어도 부분적으로 기초하여, 프로세서는 사용자에게 지배적으로 제시될 하나 또는 그 초과의 정보 큐들을 식별할 수 있다. 일부 경우들에서, 모바일 디바이스(110)상의 디스플레이 스크린이 연관된 정보 큐들을 지배적으로 디스플레이할 수 있다.
[0037] 도 2는 동적 사용자 인터페이스를 구성하기 위한, 본 발명의 실시예에 따른 방법(200)을 도시한다. 205에서, 상황 의존 제시 특성에 관한 사용자 입력이 수신된다. 제시 특성은 예를 들어, 상황 연관 프로그램들 및/또는 정보 타입들을 사용자에게 제시하기 위해 사용되는 (예를 들어, 시각, 오디오, 진동 등의) 일반적 타입의 신호를 나타낼 수 있다. 다른 예로서, 제시 특성은 프로그램들 및/또는 정보 타입들을 제시하기 위해 사용되는 (예를 들어, 음향 클립, 아이콘들에 대한 디스플레이내(intra-display) 위치, 진동 지속기간 등의) 특정한 타입의 신호를 나타낼 수 있다. 일부 경우들에서, 제시 특성은 상황들에 걸쳐 고정된다. 예를 들어, (예를 들어, 이용가능한 프로그램들 또는 정보 타입들을 식별하는) 상황 의존 정보 큐들이 스크린의 고정된 부분내에서 지속적으로 제시될 수 있거나, 진동이 신규 상황의 식별을 항상 표시할 수 있다. 일부 경우들에서, 제시 특성은 상이한 상황들에 대한 상이한 값들, 정의들 등을 포함한다. 사용자 입력은 예를 들어, 디스플레이된 옵션들 중에서의 선택, 터치 스크린 입력(예를 들어, 상황 연관 프로그램들 및/또는 정보 타입들을 디스플레이하기 위해 스크린의 부분 둘레의 주변부를 드로잉하는 것), 수동 입력(예를 들어, 키보드를 사용하여 상황 연관 프로그램들 및/또는 정보 타입들의 디스플레이에 쓰일(devote) 스크린의 퍼센티지를 입력하는 것) 등을 포함할 수 있다.
[0038] 210에서, 상황이 결정된다. 상황들의 결정들은 아래에서 더욱 상세히 설명된다. 상황들은 사용자 입력들, 이벤트 검출들, 또는 수신된 상황 연관 변수들에 의해 지원된 추론들에 부분적으로 또는 전적으로 기초하여 결정될 수 있다.
[0039] 215에서, (예를 들어, 각각이 하나 또는 그 초과의 프로그램들 및/또는 정보 타입들과 연관되는) 상황 연관 정보 큐들이 식별된다. 이러한 식별이 아래에서 더욱 상세히 설명된다. 상황 연관 정보 큐들은 사용자 입력들, 프로그램 사용 및 정보 시청의 사용자 특정 이력 분석, 프로그램 디스크립션들 등에 부분적으로 또는 전적으로 기초하여 결정될 수 있다. 일부 경우들에서, 상황 연관 프로그램들 및/또는 정보 타입들이 (예를 들어, 개별적으로 또는 상황 연관 정보 큐들의 식별의 일부로서) 식별된다. 상황과 연관된 정보 타입은 상황이 식별되었다는(예를 들어, 거래 상황이 식별되었다는) 통지를 포함하거나 포함하지 않을 수 있다. 상황과 연관된 프로그램들은 상황을 결정하기 위해 적어도 부분적으로 사용되는 프로그램을 포함하거나 포함하지 않을 수 있다.
[0040] 220에서, 상황 연관 정보 큐들이 사용자 입력에 따라 제시되어, 정보 큐들의 제시가 사용자 입력과 일치할 수 있다. 예를 들어, 사용자가 스크린의 부분을 동적이거나 상황 의존형인 것으로 정의하면, 상황 연관 그래픽 정보 큐들이 정의된 부분에 제시될 수 있다. 다른 예로서, 사용자가 신호를 (예를 들어, 연관된 그래픽 아이콘들을 확대시키고, 애니메이션을 추가하는 것 등을 위해) 상황 연관 정보 큐들과 연관되는 것으로 식별하면, 식별된 신호를 통해 또는 그 식별된 신호와 함께 상황 연관 정보 큐들이 제시될 수 있다.
[0041] 도 3은 동적 사용자 인터페이스를 구성하기 위한, 본 발명의 실시예에 따른 방법(300)을 도시한다. 305에서, 하나 또는 그 초과의 잠재적 상황 연관 변수들이 식별된다. 상황 연관 변수들의 예들은 앞서 나열되었다. 변수들은 예를 들어, 표준 세팅들, 사용자 입력들, 식별을 수행하는 모바일 디바이스 또는 프로세서상에 있거나 그와 통신하는 이용가능한 센서들, 또는 프로그램 데이터에 기초하여 식별될 수 있다.
[0042] 310에서, 상황 연관 변수들 및 사용자 액션들이 모니터링된다. 사용자 액션들은 예를 들어, (예를 들어, 디바이스의 현재 위치를 "집"으로서 식별하는) 사용자 입력들, 디바이스의 실행을 위한 프로그램의 선택, 정보의 타입의 시청 등을 포함할 수 있다. 315에서, 관련있는 상황 연관 변수들이 결정된다. 관련있는 상황 연관 변수들은, 예를 들어, 모니터링된 상황 연관 변수들 중 어느 것이, 빈번하게 결정가능한지, (예를 들어, 임계치 초과 또는 특정한 범위 이내의) 원하는 가변성(variability)을 나타내는지, 적어도 최소의 일관성을 나타내는지, 복수의 범위들내에서 클러스터링되는지, 사용자 액션들과 상관되는지, 상황들을 예측할 가능성이 높은지 등을 식별함으로써 결정될 수 있다. 일부 경우들에서, 사용자는 관련있는 상황 연관 변수들을 식별한다. 일부 경우들에서, 잠재적 상황 연관 변수들 모두가 관련있는 것으로 결정된다.
[0043] 320에서, 관련있는 상황 연관 변수들 중 빈번하게 관측된 값들이 식별된다. 관련있는 상황 연관 변수들의 값들은 예를 들어, 수들, 정수들, 실수들, 스케일링된 수들, 이진 식별자들, 워드들, 카테고리들 등을 포함할 수 있다. 빈번하게 관측된 값들은 값들의 하나 또는 그 초과의 범위들을 포함할 수 있다. 예를 들어, 모니터링된 데이터는 모바일 디바이스가 3개의 GPS 좌표들 중 하나에 매우 빈번하게 근접한다는 것을 나타낼 수 있다. 따라서, 빈번하게 관측된 값들은 3개의 GPS 좌표들을 둘러싸는 GPS 좌표들의 3개의 범위들을 포함할 수 있다.
[0044] 325에서, 상황들이 정의된다. 정의된 상황은, 모바일 디바이스가 상황에 있는지에 관하여 유용한 정보를 제공하는 상황 연관 변수들의 식별, 모바일 디바이스가 상황에 있는지에 관하여 유용한 정보를 제공하는 다양한 상황 연관 변수들이 얼마나 많이 있는지를 나타내는 가중치들, 상황과 연관된 상황 연관 변수들의 값들, 및/또는 상황 명칭을 포함할 수 있다.
[0045] 일부 실시예들에서, 상황은 식별된 상황 연관 변수들의 값들에 기초하여 정의된다. 상황들은 관련있는 상황 연관 변수들의 상이한 특정 값들의 반복된 발생들에 기초하여 정의될 수 있다. 상황들은 예를 들어, 관련있는 상황 연관 변수들의 값들의 클러스터들을 식별하기 위해 클러스터링 알고리즘(예를 들어, 주요 컴포넌트 분석)을 사용함으로써 정의될 수 있다. 예를 들어, 모니터링된 데이터는, 2개의 상태들 중 하나에 모바일 디바이스가 빈번하게 있다는 것을 나타낼 수 있는데, 이 2개의 상태들 각각은, 서로 다른, 지리적 위치, 수신 강도, 및 사용자 선택 링거 톤에 대응한다. 일부 경우들에서, 상황들은 (예를 들어, 현재의 위치를 "집"으로서 식별하는) 사용자에 의해 적어도 부분적으로 정의된다.
[0046] 일부 실시예들에서, 상황은 사용자 입력들에 기초하여 정의된다. 예를 들어, 사용자는 임의의 저장된 상황들에 부가하여, 4개의 상황들이 존재하거나 "신규" 상황이 존재한다는 것을 입력할 수 있다. 상황들은 명칭화될 수도 있고 아닐 수도 있다. 일부 경우들에서, 하나 또는 그 초과의 상황들은 사용자가 상황에 있는지를 추론하기 위해 사용된 임의의 상황 연관 변수들과 연관되지 않는다. (따라서, 예를 들어, 일부 실시예들에서, 방법(300)은 201, 310, 및/또는 315를 포함하지 않는다). 대신에, 예를 들어, 시스템은 사용자가 주어진 상황에 있을 때를 나타내기 위해 사용자 입력들에 의존할 수 있다.
[0047] 330에서, 하나 또는 그 초과의 상황들이 특정한 프로그램들 및/또는 정보의 타입들과 연관된다. 상황과 연관된 특정한 프로그램들 및/또는 정보 타입들은, 310에서 모니터링된 데이터, 사용자 입력들, 상황이 정의된 이후에 모니터링된 데이터, 상황의 분석(예를 들어, 아키텍처-펌(architecture-firm) 작업 세팅), 프로그램들 및/또는 정보 타입들에 대한 다른 사용자의 사용의 분석, 프로그램들 및/또는 정보 타입들의 목적들의 분석 등 중 하나 또는 그 초과의 것에 적어도 부분적으로 기초하여 결정될 수 있다. 각 상황은 0개, 하나 또는 그 초과의 프로그램들 및/또는 하나 또는 그 초과의 정보 타입들과 연관될 수 있다. 연관은 (연관되거나 연관되지 않은) 이진수일 수 있거나 아닐 수도 있다. 예를 들어, 상황은 복수의 프로그램들 및/또는 정보 타입들과 연관될 수 있지만, 연관들의 가중치는 프로그램들 및/또는 정보 타입들 중에서 변할 수 있다. 일부 경우들에서, 가중된 연관은 복수의 프로그램들 및/또는 정보 타입들 각각과 상황 사이에서 결정된다. 일부 경우들에서, 상황은 그 후, 특정한 임계치 초과의(예를 들어, 특정한 값 초과의 또는 가장 높은 가중치들 중의) 연관 가중치를 갖는 프로그램들 및/또는 정보 타입들과만 연관된다.
[0048] 335에서, 상황 연관 변수들 중 적어도 하나에 대한 값들이 수신된다. 일부 경우들에서, 수신된 값들은 (예를 들어, 모바일 디바이스의 스피커가 배경 잡음을 측정하도록 활성화되지 않았기 때문에) 상황을 식별하는데 있어서 유용할 수 있는 모든 변수들에 대한 값들을 포함하지 않는다. 일부 경우들에서, 수신된 변수의 부재(absence) 자체는 상황 연관 변수에 대한 수신된 값일 수 있다. 값들은 (예를 들어, 모바일 디바이스(110) 또는 원격 서버(140)에) 자동으로 수신되고 그리고/또는 이용가능할 수 있거나, 또는 (예를 들어, 모바일 디바이스(110) 또는 원격 서버(140)로부터) 값들에 대한 요청에 응답할 수 있다.
[0049] 340에서, 상황이 결정된다. 일부 실시예들에서, 상황은 정의된 상황들 및 수신된 값들에 기초하여 추론된다. 예를 들어, 정의된 클러스터들 각각은 다양한 상황 연관 변수들의 값들에 대한 클러스터에 대응할 수 있다(예를 들어, "클러스터 #1"은 다운타운 위치, 평일, 묵음 링, 및 낮은 배경 잡음에 대응한다). 상황은 (예를 들어, 엄격한 또는 가중된 거리 측정치에 기초하여) 어느 클러스터가 수신된 값들을 가장 밀접하게 포함하는지를 식별함으로써 추론될 수 있다. 상황 추론은 신뢰값 또는 범위와 연관될 수 있고, 일부 경우들에서는, 다수의 상황들이 추론되고, 각 상황은 신뢰 메트릭과 연관될 수 있다. 상황은 과거, 현재 또는 미래의 상황을 포함할 수 있다.
[0050] 일부 실시예들에서, 상황은 사용자 입력에 부분적으로 또는 전적으로 기초하여 결정된다. 따라서, 일부 경우들에서, 방법(300)은 335에서 상황 연관 변수들에 대한 값들을 수신하지 않는다. 예를 들어, 사용자는 사용자가 "상황 B"에 있거나 "집" 상황에 있다는 것을 나타내는 옵션을 선택할 수 있고, 일부 실시예들에서, 상황은 이벤트의 검출에 기초하여 결정된다. 예를 들어, 임계치를 초과하게 상승하는 주가, 임계치 아래로 하락하는 항공료, 신규 영화의 개봉 등은 시스템이 특정한 이벤트 검출 상황을 결정하게 할 수 있다. 일부 실시예들에서, 상황은 임의의 상황 연관 변수들에 관련되지 않고 결정된다.
[0051] 사용자에게는 상황 결정이 통지될 수 있다. 예를 들어, (예를 들어, 디바이스 디스플레이 스크린상의) 시각적 신호, 애니메이션, 음향 신호, 라디오 신호, 무선 신호, 진동 신호 등이, 상황이 일반적으로 결정되었거나 특정한 상황이 결정되었다는 것을 나타낼 수 있다. 예를 들어, 상이한 음향 클립들이 복수의 환경적 상황들과 연관될 수 있다. 음향 클립은 디바이스가 연관된 상황에 있다는 결정시에 플레이될 수 있다.
[0052] 345에서, 프로그램들 및/또는 정보의 타입들이 결정된 상황에 기초하여 식별된다. 프로그램들 및/또는 정보의 타입들은 결정된 상황을 고려해 볼 때 사용자에 관심이 있는 것으로 예측되는 것들을 포함할 수 있다. 프로그램들 및/또는 정보 타입들은 330에서 결정된 상황과 연관된 것들일 수 있다. 식별된 프로그램들 및/또는 정보 타입들은, 아래에 더욱 상세히 설명되는 바와 같이, 프로그램들 및/또는 정보 타입들의 총 동적 세트에 대한 서브세트를 포함할 수 있다. 일 실시예에서, 단일 상황이 340에서 결정되고, (330으로부터의) 상황과 연관된 프로그램들 및/또는 정보 타입들 중 일부 또는 모두는 345에서 식별된 것들이다.
[0053] 다른 실시예들에서, (예를 들어, 신뢰 메트릭과 각각 연관된) 다수의 상황들이 340에서 결정된다. 특정한 프로그램들 및/또는 정보 타입들은, 각각의 결정된 상황과 연관된 신뢰 메트릭들 및/또는 각각의 결정된 상황과 각각의 프로그램 및/또는 정보 타입 간의 연관 가중치들에 적어도 부분적으로 기초하여 식별될 수 있다. 각각의 프로그램 및/또는 정보 타입에는 상황 결정 신뢰 메트릭에 의해 승산된(multiplied) 상황 연관 가중치의 어크로스-상황(across-context) 합과 동일한 중요값이 할당될 수 있다. 그 후, 임계치 또는 랭킹 알고리즘이, 어느 프로그램들 및/또는 정보 타입들이 사용자에게 관심이 있을지 결정하기 위해 사용될 수 있다. 예를 들어, 상황 결정은, 디바이스가 상황 A에 있는 90% 확률 및 디바이스가 상황 B에 있는 10% 확률을 포함한다는 것을 가정한다. 또한, 4개의 프로그램들에 대한 연관 가중 벡터들은 상황 A에 대해 [1, 0.5, 0, .2]이고 상황 B에 대해 [1, 1, 0.2, 0.5]임을 가정한다. 4개의 프로그램에 대한 중요값 벡터는 0.9*[1, 0.5, 0, .2]+0.1*[1, 1, .2, .5]= [1.0, 0.55, 0.02, 0.23]과 동일할 것이다.
[0054] 식별된 프로그램들 및/또는 정보 타입들 각각은 정보 큐(예를 들어, 그래픽 아이콘, 시각적 효과, 애니메이션, 진동, 정적 텍스트, 시간 의존 텍스트 등)와 연관될 수 있다. 그 후, 식별된 프로그램들 및/또는 정보 타입들과 연관된 정보 큐들이 사용자에게 제시될 수 있다.
[0055] 도 4는 정보 큐들을 제시하는 방법(400)의 실시예를 도시한다. 405에서, 프로그램들 및/또는 정보 타입들의 제 1 세트가 식별된다. 프로그램들 및/또는 정보 타입들의 제 1 세트는 적어도 부분적으로 상황 의존형일 수 있다. 예를 들어, 제 1 세트는 사용자에게 항상 제시되는 프로그램들 및/또는 정보 타입들을 포함할 수 있다. 일부 실시예들에서, 프로그램들 또는 정보 타입들의 제시와 연관된 하나 또는 그 초과 또는 모든 제시 특징(presentation characteristic)들(예를 들어, 디스플레이 위치, 아이콘 사이즈, 폰트 등)은 상황 의존형이다. 프로그램들 및/또는 정보 타입들의 제 1 세트는 프로그램들 및/또는 정보 타입들이 상황들에 걸쳐 유용할 것이라는 예측들에 기초하여 식별될 수 있다. 이들 예측들은 예를 들어, 모니터링된 사용자 액션들 및/또는 프로그램들 및/또는 정보 타입들의 특정한 유틸리티에 기초할 수 있다. 프로그램들 및/또는 정보 타입들의 제 1 세트는 사용자 입력들에 기초하여 적어도 부분적으로 또는 전적으로 결정될 수 있다.
[0056] 410에서, 현재 또는 미래의 상황이 결정된다. 상황은 예를 들어, 도 3에 관하여 설명한 방법에 기초하여 결정될 수 있다.
[0057] 415에서, 프로그램들 및/또는 정보의 타입들의 제 2 세트는 결정된 상황에 적어도 부분적으로 기초하여 식별된다. 이러한 방식으로, 제 2 세트의 프로그램들 및/또는 정보 타입들의 아이덴티티들은 결정된 상황에 의해 영향을 받을 수 있다. 결정은 예를 들어, 도 3에 관하여 설명한 방법에 기초하여 결정될 수 있다. 일부 경우들에서, 상황 의존 프로그램들 또는 정보 타입들의 제 1 세트가 먼저 식별된다. 그 후, 나머지 프로그램들 및/또는 정보 타입들과 하나 또는 그 초과의 상황들 간의 연관들이 형성될 수 있다. 프로그램들 및/또는 정보 타입들의 제 2 세트는 하나 또는 그 초과의 결정된 상황들과 연관된 것들 중 일부(예를 들어, 임계치 초과의 특정한 연관 가중치를 갖는 모든 프로그램들 및/또는 정보 타입들) 또는 모두를 포함할 수 있다(예를 들어, 도 3에 관한 345의 설명을 참조).
[0058] 일부 실시예들에서, 프로그램들 및/또는 정보 타입들의 제 2 세트는 정보 큐들을 통해 현재 실행중이 아닌 그리고/또는 현재 제시되지 않는 프로그램들 및/또는 정보 타입들만을 포함한다. 일부 실시예들에서, 프로그램들 및/또는 정보 타입들의 제 2 세트는 정보 큐들을 통해 현재 실행중인 그리고/또는 제시되는 것들을 포함할 수 있다. 프로그램들 및/또는 정보 타입들의 제 2 세트는 상황을 결정하고 그리고/또는 상황 연관 변수를 결정하기 위해 사용된 프로그램을 포함하거나 포함하지 않을 수 있다. 예를 들어, 일부 경우들에서, 프로그램 A가 상황 A'와 연관된 이벤트를 검출한다. 제 2 세트는 프로그램 A로 이루어질 수도 있고, (상황 A'와 연관된 다른 프로그램들 및/또는 정보 타입들에 부가하여) 프로그램 A를 포함할 수도 있고, 혹은 프로그램 A를 포함하지 않을 수도 있다.
[0059] 일부 경우들에서, 프로그램들 및/또는 정보의 타입들의 제 2 세트는 적어도 부분적으로 고정된다. 예를 들어, 프로그램들의 제 2 세트는 상황에 관계없이 적어도 3개의 프로그램들을 포함할 수 있다. 이러한 경우들에서, 제시 특징들은 결정된 상황에 기초하여 특정한 프로그램들 및/또는 정보 타입들을 강조하기 위해 제시된 프로그램들 및/또는 정보의 타입에 걸쳐 변할 수 있다. 일부 경우들에서, 프로그램들 및/또는 정보 타입의 제 2 세트에 대한 아이덴티티는 전적으로 상황 의존형이어서, 어떤 프로그램들 및/또는 정보 타입들이 결정된 상황에 관계없이 반드시 제시되는 것은 아니다.
[0060] 일부 경우들에서, 제 2 세트에서의 프로그램들 및/또는 정보의 타입들의 수는 설정수와 동일해야 하거나 설정 범위 이내이어야 한다. 설정수는 사용자 입력(예를 들어, 사용자는 "4"개의 프로그램들이 스크린의 동적 부분에 디스플레이되어야 한다는 것을 입력함)으로부터 직접적으로, (예를 들어, 8개의 프로그램 아이콘들이 스크린의 사용자 정의 동적 부분들에서 디스플레이될 수 있다는 것을 결정하는) 사용자 입력으로부터 간접적으로, 또는 사용자 입력없이 결정될 수 있다. 일례로서, 제 2 세트는 정확히 총 8개의 프로그램들 및/또는 정보 타입들을 포함할 필요가 있을 수 있다. 다른 예로서, 제 2 세트는 정확하게 4개의 프로그램들 및 4개의 정보의 타입들을 포함할 필요가 있을 수 있다. 다른 예로서, 제 2 세트는 적어도 2개, 4개, 또는 8개의 프로그램들을 포함할 필요가 있을 수 있다.
[0061] 420에서, 하나 또는 그 초과의 제시 특징들이 결정된다. 제시 특징들은 디바이스가 프로그램 및/또는 정보 타입을 사용자에게 제시하는 방법(예를 들어, 정보 큐가 제시되는 방법)에 영향을 미치는 임의의 특성을 포함한다. 제시 특징들의 타입들의 예들은, 디스플레이내 위치, 사이즈, 폰트 사이즈, 폰트 스타일, 컬러, 애니메이션, 팝업, 음향 등을 포함한다. 하나 또는 그 초과의 제시 특징들(예를 들어, 아이콘 사이즈)은 제 2 세트의 하나 또는 그 초과 또는 모든 프로그램들 및/또는 정보 타입들과 연관된 정보 큐들에 대해 결정될 수 있다. 제시 특징들은 결정된 상황에 의존할 수 있다. 예를 들어, 단일 이용가능한 프로그램을 식별하는 단일 정보 큐와 연관된 제시 특징들은 대형 아이콘 사이즈, 디폴트 폰트 스타일 및 사이즈, 디스플레이의 우측 최상부 코너, 애니메이션 없음, 및 아이콘을 마우스-오버(mouse-over)할시 오디오 클립의 플레잉을 포함할 수 있다.
[0062] 일부 실시예들에서, 하나 또는 그 초과의 제시 특징들(예를 들어, 사이즈, 폰트 사이즈, 및 폰트 스타일)은 제 1 세트와 연관된 모든 정보 큐들, 제 2 세트와 연관된 모든 정보 큐들, 또는 제 1 세트 및 제 2 세트 양자 모두와 연관된 모든 정보 큐들에 걸쳐 동일하다. 일부 실시예들에서, 하나 또는 그 초과의 제시 특징들(예를 들어, 위치 및/또는 사이즈)은 제 2 세트(또는 제 1 세트)의 정보 큐들의 제시들에 걸쳐 변한다. 예를 들어, 제 2 세트는 각각이 그래픽 아이콘(정보 큐)에 의해 표현되는 복수의 프로그램들을 포함할 수 있다. 그래픽 아이콘들은 사용자가 모든 아이콘들을 시청할 수 있도록 상이한 스크린 위치에서 모두 제시될 수 있다. 아이콘들의 사이즈는 사용자가 프로그램들 각각에 관심이 있을 수 있는 예측된 확률에 의존하여 변할 수 있다. 다른 예로서, 결정된 상황을 고려해 볼 때 가장 높은 연관 가중치를 갖는 아이콘이 애니메이팅될 수 있다. 일부 경우들에서, 제시 특징들의 분포들(예를 들어, 디스플레이된 아이콘들의 사이즈 분포들)은 상황들에 걸쳐 유사하거나 동일하다. 일부 경우들에서, 제시 특징들의 분포들은 상황들에 걸쳐 상이하다(예를 들어, 아이콘이 상황 A에서 애니메이팅되지만, 상황 B에서는 어떠한 아이콘들도 애니메이팅되지 않는다).
[0063] 425에서, 제 1 세트 및 제 2 세트와 연관된 정보 큐들은 (예를 들어, 동시에) 제시된다. 제시는 디바이스의 디스플레이에서 프로그램들 및/또는 정보 큐들(또는 정보 자체)의 표현들을 디스플레이하는 것을 포함할 수 있다. 프로그램들은 예를 들어, 아이콘 또는 텍스트에 의해 표현될 수 있다. 정보 타입들이 유사하게 표현될 수 있거나(예를 들어, 스포츠 뉴스가 신문 아이콘에 의해 표현될 수 있음), 또는 타입(예를 들어, GPS 좌표들)에 대응하는 정보가 자체 디스플레이될 수 있다.
[0064] 제시는 또한 또는 대안적으로, 일반적 또는 프로그램- 또는 정보-타입 특정 음향 신호들을 플레이하는 것; 디바이스를 진동시키는 것; 디스플레이 스크린을 플래시하는 것; 디바이스로부터 라디오 신호들을 전송하는 것 등을 포함할 수 있다.
[0065] 일부 경우들에서, 제 1 세트와 연관된 정보 큐들은 제 2 세트와 연관된 정보 큐들과 개별적으로 제시된다. 예를 들어, 모바일 디바이스의 스크린은 제 1 세트와 연관된 정보 큐들을 제시하기 위한 정적 부분 및 제 2 세트와 연관된 정보 큐들을 제시하기 위한 동적 부분을 포함할 수 있다. 동적 부분 및 정적 부분은 각각 연속적일 수 있거나 다수의 개별 엘리먼트들을 포함할 수 있다. 동적 부분 및 정적 부분은 요컨대, 전체 스크린, 또는 스크린의 일부(less than an entirety)를 구성할 수 있다. 다른 예로서, 모바일 디바이스의 스크린은 프로그램들의 제 1 세트를 시각적으로 제시할 수 있고, 제 2 세트는 예를 들어, 음향 신호들을 방출하고, 디바이스를 진동시키는 식으로 사용자에게 제시될 수 있다.
[0066] 도 5는 상황 의존 변수들, 상황들, 프로그램들, 및 정보 타입들 간의 연관들의 실시예를 도시한다. 복수의 잠재적 상황 연관 변수들(v1, v2, ..., vn)이 식별된다. 각 변수는 하나 또는 그 초과의 상황들(c1, c2, ..., cn)과 연관될 수 있다. 도 5의 라인 두께는 가중치들에 대응하여, 두꺼운 라인들은, 주어진 변수들이 상황을 바로(very) 나타내는 것으로 식별된다는 것을 나타낸다. 예를 들어, "v1"은 GPS 좌표들에 대응할 수 있고, "c1"은 직장 상황에 대응할 수 있고, "cn"은 집 상황에 대응할 수 있다. GPS 좌표들은 디바이스가 직장 상황에 있는지 그리고 디바이스가 집 상황에 있는지에 관하여 매우 유용한 정보를 제공할 수 있다. 따라서, 높은 연관 가중치가 존재한다.
[0067] 복수의 프로그램들(p1, p2, ..., pn) 및/또는 정보의 타입들(i1, i2, ..., in)이 또한 식별된다. 각 상황은 하나 또는 그 초과의 프로그램들 및/또는 정보 타입들과 연관될 수 있다. 연관은, 사용자가 주어진 프로그램을 사용할 확률 또는 주어진 정보의 타입을 시청할 확률, 또는 주어진 프로그램에서의 사용자 정의 상황 의존 관심에 관한 것일 수 있다. 다시, 연관이 가중될 수 있다. 예를 들어, "c1"은 직장 상황에 대응할 수 있고, "pn"은 이러한 상황에서 루틴하게 사용되는 직장 이메일 프로그램에 대응할 수 있다. 직장에서의 직장 이메일 프로그램의 빈번한 사용 또는 상황과 프로그램 사이의 강한 논리적 접속이 c1과 pn 사이의 높은 연관을 발생시킬 수 있다.
[0068] 도 5에 도시된 연관 네트워크는 고정된 네트워크, 동적 네트워크 및/또는 "학습" 네트워크일 수 있다. 동적 네트워크는 예를 들어, 각 변수, 상황, 프로그램, 및/또는 정보 타입과 연관된 "노드들"이 추가되거나 삭제되게 할 수 있고 그리고/또는 연관 가중치들이 조정되게 할 수 있다. 이들 동적특성(dynamics)은 적어도 부분적으로, 사용자 입력 및/또는 모니터링된 데이터(예를 들어, 주어진 상황에 있을 때 사용자에 의해 실제로 사용된 프로그램들)에 기초하여 결정될 수 있다. 연관 네트워크는 뉴럴 네트워크를 포함할 수 있다.
[0069] 도 6은 모바일 디바이스의 스크린(600)의 예를 도시한다. 스크린은 동적 부분(605) 및 정적 부분(610)을 포함할 수 있다. 정적 부분(610)은 예를 들어, 상황 의존 프로그램들(p1', p2' 및 p3') 및/또는 정보 타입들(i1')을 식별하는 정보 큐들을 제시할 수 있다. 동적 부분(605)은 상황 의존 프로그램들(p3, p5, p6, 및 p8) 및/또는 정보 타입들(i2 및 i3)을 식별하는 정보 큐들을 제시할 수 있다. 정적 부분 및/또는 동적 부분은 스크린의 적어도 0%, 3%, 5%, 10%, 20%, 50%, 80%, 90%, 95% 97% 또는 100%의 영역, 약 0%, 3%, 5%, 10%, 20%, 50%, 80%, 90%, 95% 97% 또는 100%의 영역, 또는 0%, 3%, 5%, 10%, 20%, 50%, 80%, 90%, 95% 97% 또는 100% 미만의 영역을 포함할 수 있다. 일부 실시예들에서, 정적 부분 및 동적 부분 중 하나 또는 양자 모두는 스크린의 적어도 30% 또는 적어도 50%를 나타내는 영역을 포함한다. 일부 경우들에서, 디스플레이(600)는 상황 의존 프로그램들 (및/또는 정보 타입들)을 식별하는 정보 큐들을 제시하는 정적 부분을 포함하지 않는다. 정적 부분 및/또는 동적 부분에 대응하는 영역들은 고정되거나 변할 수 있다. 예를 들어, 영역들 중 하나 또는 양자 모두의 사이즈 및 위치는 결정된 상황을 고려해 볼 때 사용자에 관심이 있는 것으로 예측되는 다수의 프로그램들에 의존할 수 있다.
[0070] 일부 실시예들에서, 사용자는 동적 부분(605) 및/또는 정적 부분(610)에 대응하는 스크린의 하나 또는 그 초과의 영역들을 정의한다. 예를 들어, 사용자는 동적 영역으로서 정의될 스크린상의 영역에 대한, 부분 또는 전체의, 대략적 또는 실제 주변부를 드로잉하기 위해 핑거 또는 포인팅 디바이스를 사용할 수 있다. 다른 예로서, 사용자는 동적 영역으로서 정의될 스크린상의 직사각형 영역의 수직 또는 수평 에지의 좌표를 식별하기 위해 핑거 또는 포인팅 디바이스를 사용할 수 있다. 또 다른 예로서, 사용자는, 상황 의존 프로그램들 및/또는 정보 타입들을 식별하는 정보 큐들의 제시를 포함하며 사용자가 동적이길 원하는 스크린의 부분을 나타내는 변수(예를 들어, 프랙션(fraction), 퍼센티지 또는 가중치)를 입력할 수 있다. 또한, 예들은, 시스템 생성 디스플레이 파티셔닝 옵션들 사이에서의 사용자 선택들, 동적 부분(605)에서 디스플레이될 프로그램들 및/또는 정보 타입들의 수에 대한 표시들, 등을 포함한다.
[0071] 일부 실시예들에서, 동적 부분(605) 및 정적 부분(610)은 상이한 어피어런스 특징들을 포함한다. 예를 들어, 배경들, 아이콘 사이즈, 아이콘 간격 등은 부분들 사이에서 상이할 수 있다. 일부 실시예들에서, 동적 부분(605) 및 정적 부분(610)은 시각적 마커(예를 들어, 부분들을 분리하는 라인, 부분들 중 하나 또는 양자 모두 둘레의 박스 등)에 의해 분리된다. 일부 실시예들에서, 동적 부분(605) 및 정적 부분(610)은 상이한 네비게이션 컨트롤들(navigational controls)을 포함한다. 예를 들어, 동적 부분(605)은 스크롤링 피처(예를 들어, 트랙 패드를 사용하여 스크롤하기 위한 스크롤 바 또는 능력)를 포함할 수 있다. 스크롤링 피처는 예를 들어, 사용자가 동적 부분에서 식별된 동적 프로그램들 및/또는 정보 타입들을 식별하는 정보 큐들의 일부를 시청하게 하고, 스크롤링 피처의 사용시에, 프로그램들 및/또는 정보 타입들 중 다른 것을 식별하는 정보 큐들을 시청하게 할 수 있다. 정적 부분(610)은 추가로 또는 대안적으로, 스크롤링 피처를 포함할 수 있다.
[0072] 도 6에 도시되어 있는 바와 같이, 상이한 프로그램들 및 정보 타입들과 연관된 정보 큐들은 상이한 제시 특징들을 포함할 수 있다. 예를 들어, 정보 큐들은 상이한 사이즈들일 수 있고 상이한 "뚜렷함(boldness)"(컬러링, 배경, 하이라이팅, 폰트 사이즈 등)을 포함할 수 있다. 제시 특징들은 사용자의 예측된 관심에 의존하여 정보 큐들에 걸쳐 변할 수 있다. 예를 들어, 더 큰 관심이 있는 것으로 예측된 프로그램들 및/또는 정보 타입들과 연관된 정보 큐들이 지배적으로 사이징(예를 들어, 더 크게)될 수 있고, 지배적으로 위치(예를 들어, 디스플레이의 상부 또는 중앙 근처에 위치)될 수 있고, 지배적으로 (예를 들어, 더 넓거나 더 밝은 아이콘 또는 폰트 컬러들로) 하이라이팅될 수 있고, 지배적으로 음향-피처링될 수 있고(예를 들어, 마우스-오버 음향 클립을 동반하지만 다른 것들은 동반되지 않음), 지배적으로 애니메이팅(예를 들어, 플래싱 아이콘 또는 이동 아이콘)될 수 있다. 일부 경우들에서, 동적 부분(605)은, 예측된 관심의 프로그램들 및/또는 정보 타입들을 다른 것들로부터 구별하는 제시 특징들을 이용하여, 프로그램들 및/또는 정보 타입들의 풀 세트와 연관된 정보 큐들을 제시한다. 일부 경우들에서, 동적 부분은 정보 큐들의 세트에 대한 서브세트만을 제시하는데, 이 서브세트는 결정된 상황에 적어도 부분적으로 기초하여 식별된다. 제시 특징들은 (예를 들어, 예측된 관심 가중치에 기초하여) 이러한 서브세트에 걸쳐 변하거나 또는 변하지 않을 수도 있다.
[0073] 일부 경우들에서, 정적 부분(610)은 완벽하게 정적이고 ― 프로그램들 및/또는 정보 타입들의 제시들이 항상 동일하게 유지된다. 일부 경우들에서, 제시된 프로그램들 및/또는 정보 타입들의 아이덴티티는 항상 동일하게 유지(또는 사용자 세팅들에 기초하여서만 변경)되지만, 제시 특징은 변할 수 있다. 제시 특징들은 사용자 세팅들 및/또는 상황들에 기초하여 변할 수 있다. 일부 경우들에서, 동적 부분(605)은 정적 부분(610) 보다는 더욱 상황 의존형이다. 예를 들어, 정적 부분(610)에서 제시된 정보 큐들과 연관된 제시 특징들이 상황에 의존하면, 정보 큐들의 제시 특징들의 상황 의존 가변성은 동적 부분(605)에서 더욱 드라마틱(dramatic)하다.
[0074] 도 6은 (예를 들어, 각각이 프로그램 또는 정보 타입을 식별하는) 정보 큐들의 동적 세트에 대한 서브세트를 선택적으로 디스플레이하는 실시예를 도시한다. 일부 실시예들에서, 서브세트는 다른 수단을 사용하여 선택적으로 제시된다. 예를 들어, 서브세트와 연관된 음향 신호들은 디바이스로부터 방출될 수 있고, 서브세트에 대응하는 무선 신호들은 디바이스들로부터 방출될 수 있는 식이다.
[0075] 도 7은 사용자 인터페이스 또는 디스플레이를 생성하기 위한 시스템(700)의 실시예를 도시한다. 시스템(700)은 상황 연관 변수 검출기(705)를 포함할 수 있다. 상황 연관 변수 검출기(705)는 하나 또는 그 초과의 센서들을 포함할 수 있고 그리고/또는 하나 또는 그 초과의 센서들로부터 신호들을 (예를 들어, 네트워크를 통한 송신을 통해) 수신할 수 있다. 센서들은 모바일 디바이스(110)상에 있을 수 있고, 모바일 디바이스(110)에 커플링될 수 있거나, 모바일 디바이스(110)의 외부에 있고 모바일 디바이스(110)에 커플링되지 않을 수 있다. 예를 들어, 상황 연관 변수 검출기(705)는 (예를 들어, GPS 좌표들, 모바일 디바이스(110)가 수신기들에 인접하다는 것을 나타내는, 수신기들에 의해 수신되는 신호들, 모바일 디바이스(110)의 사용자에 의해 입력된 데이터 등에 의해) 모바일 디바이스(110)의 위치를 검출할 수 있다. 상황 연관 변수 검출기(705)는 모바일 디바이스(110)상에 저장된 캘린더 이벤트들을 검출할 수 있다.
[0076] 시스템(730)은 상황을 결정하도록 구성된 상황 검출기(710)를 포함할 수 있다. 상황 검출기(710)는 상황 연관 변수 검출기(705)에 의해 검출된 변수들을 수신할 수 있다. 상황 검출기(710)는 상황들을 정의하는 상황 정의기(715)를 포함할 수 있다. 상황 정의는 상황과 하나 또는 그 초과의 변수들 사이의 (가중된 또는 가중되지 않은) 연관들, 상황 확률, 상황 명칭 등을 포함할 수 있다. 상황 정의들은 예를 들어, 저장 디바이스(114 또는 144)에 상황 데이터(122)로서 저장될 수 있다. 일부 경우들에서, 상황 검출기(710)는 적응 모델(720)을 포함한다.
[0077] 적응 모델(720)은 상황들과 상황 연관 변수들 간의 연관들을 식별하고 그리고/또는 동적으로 조정하고, 그리고/또는 이들 연관들의 가중치들을 동적으로 조정할 수 있다. 예를 들어, 적응 모델(720)은 상황 연관 변수들의 누적 또는 시간-가중 클러스터들을 형성하기 위한 클러스터링 알고리즘을 포함할 수 있다. 일부 경우들에서, 클러스터들은 상황 연관 변수 데이터 및/또는 센서 데이터에 주로 기초하여 형성된다. 예를 들어, 상황 연관 변수 검출기(705)는 일주일의 기간에 걸쳐, 하기의 변수들: GPS 좌표들, 시각, 및 링 볼륨을 검출할 수 있다. 데이터는 2개의 지배적 클러스터들을 형성할 수 있는데, 하나는 직장 위치, 근무 시간, 및 묵음 링 볼륨과 연관되고, 다른 하나는 집 위치, 집에 있는 시간, 및 라우드 링 볼륨과 연관된다. 일부 경우들에서, 클러스터들은 적어도 부분적으로, 모바일 디바이스의 사용자에 의해 사용된 프로그램 및/또는 사용자에 의해 시청된 정보에 기초하여 형성된다. 예를 들어, 제 1 클러스터는 이메일 애플리케이션의 사용자의 사용과 연관된 경우들에 관한 것일 수 있고, 제 2 클러스터는 뉴스에 대한 사용자의 시청에 관한 것일 수 있다.
[0078] 클러스터 아이덴티티에 관한 가장 유효한 정보를 제공하는 변수들이 상황들을 정의하기 위해 사용될 수 있고 그리고/또는 매우 가중될 수 있고, 하나 또는 그 초과의 상황들과 연관된 이들 변수들의 값들은 동적으로 조정될 수 있다. 따라서, 예를 들어, 적응 모델은 초기에 2개의 상황 클러스터들을 식별할 수 있는데, 하나는 오전 9시, 오후 1시 및 오후 3시의 시간들 및 "다운타운"의 위치와 연관되고, 다른 하나는 오후 8시 및 "근교(suburb)"의 위치와 연관된다. 적응 모델은 예를 들어, 오후 5시 30분 이전의 시간들을 클러스터 1과 연관시킬 수 있고 5시 30분 이후의 시간들을 클러스터 2와 연관시킬 수 있다. 더 많은 데이터가 수집된 이후에, 이러한 구별은 클러스터 1과 클러스터 2 사이의 천이가 발생할 것 같은 시간에 관한 더욱 상세한 데이터에 기초하여 조정될 수 있다.
삭제
[0079] 상황 검출기(710)는 프로그램/정보 연관기(associator)(725)에 커플링될 수 있다. 프로그램/정보 연관기(725)는 하나 또는 그 초과의 상황들을 하나 또는 그 초과의 프로그램들 및/또는 정보 타입들과 연관시킬 수 있다. 일부 경우들에서, 일부 또는 모든 연관들이 (예를 들어, 사용의 예측된 확률에 기초하여) 가중된다. 프로그램/정보 연관기는 상황들과 프로그램/정보 타입들 간의 연관들을 식별하고 그리고/또는 동적으로 조정하도록 구성된 적응 모델(730)을 포함할 수 있다.
[0080] 일부 경우들에서, 적응 모델(730)은, 하나 또는 그 초과의 프로그램들 및/또는 정보의 타입들과 상황들 간에 가중치들을 할당한다. 높은 가중치들은, (1) 상황을 고려해 볼 때, 사용자가 프로그램을 사용하거나 정보를 시청할 예측된 확률; 및/또는 (2) 주어진 상황에 있을 때 프로그램 및/또는 정보 타입을 제시하는데 있어 표시된 사용자 관심에 대응할 수 있다. 가중치들은 과거의 사용 및 시청 데이터 및 과거의 상황 연관 변수 데이터에 기초하여 할당될 수 있다. 최근의 활동 패턴들 및/또는 사용자 선호도들이 가중치들을 결정하는데 있어서 더욱 영향을 미칠 수 있다.
[0081] 일부 경우들에서, 적응 모델(730)은 프로그램들 및/또는 정보 타입들을 클러스터링하는 클러스터링 알고리즘을 포함한다. 예를 들어, 1 시간의 시간 프레임내에서, 사용자는 프로그램들(A, B 및 F)을 실행할 수 있고 정보(G)를 시청할 수 있으며, 다른 1시간의 시간 프레임내에서, 사용자는 프로그램들(C, D 및 F)을 실행할 수 있고, 정보(N)를 시청할 수 있다. 그 후, 이러한 데이터 세트는 2개의 데이터 포인트들에 대응할 수 있다. 시간에 걸쳐 수집된 데이터는 단일 상황내에서 사용자에 관심이 있는 것으로 예측된 프로그램들 및/또는 정보 타입들의 세트들의 식별을 허용할 수 있다. 그 후, 각 상황은 예를 들어, 프로그램들 및/또는 정보 타입들의 하나 또는 그 초과의 세트들과 연관될 수 있다.
[0082] 적응 모델(730)은 상황 검출기(710)에서의 적응 모델(720)과 유사한 피처들을 가질 수 있다. 일부 경우들에서, 2개는 단일 모델로 조합된다. 예를 들어, 상황 연관 변수들과 상황들 간의 관계를 모델링하고 상황들과 관심의 프로그램들/정보 타입들 간의 관계를 개별적으로 모델링하기 보다는, 단일 모델이 상황 연관 변수들과 관심의 프로그램들/정보 타입들 간의 관계를 모델링할 수 있다.
[0083] 프로그램/정보 연관기(725)는 프로그램/정보 디코더(735)를 포함할 수 있다. 프로그램/정보 디코더(735)는 사용자가 프로그램을 사용하고 그리고/또는 정보 타입을 시청하는데 있어서 관심이 있을 수 있는 상황들을 예측하기 위해 하나 또는 그 초과의 프로그램들 및/또는 정보 타입들을 분석할 수 있다. 예를 들어, 프로그램/정보 디코더는 명칭, 디스크립션, 메타데이터, 사용자 입력, 또는 파퓰레이션 기반 사용 또는 프로그램 또는 정보의 타입과 연관된 시청 통계를 분석할 수 있다.
[0084] 프로그램/정보 연관기(725)는, 상황의 결정시에 (예를 들어, 연관된 정보 큐들을 통해) 제시될 동적 프로그램들/ 정보 타입들, 복수의 프로그램들/정보 타입들과 결정된 상황 간의 연관들의 가중치들, 결정된 상황을 기초로 디스플레이될 것으로 예측된 동적 프로그램들/정보 타입들의 수, 예측된 관심에 의해 분류된 프로그램들/정보 타입들의 상황 의존 랭킹, 프로그램들/정보 타입들의 사용자 제공 상황 의존 랭킹, 프로그램들/정보 타입들의 사용자 제공 또는 시스템 생성 상황 의존 랭킹 등 중 하나 또는 그 초과의 것을 결정하고 그리고/또는 출력할 수 있다. 이들 중 임의의 것 또는 모두는 예를 들어, 저장 디바이스(114 또는 144)에 프로그램 데이터(124)로서 저장될 수 있다.
[0085] 일부 경우들에서, 프로그램/정보 연관기(725)는 특정한 프로그램들 및/또는 정보 타입들을 정보 큐(예를 들어, 그래픽 아이콘, 신호 또는 텍스트)와 연관시키는 정보 큐 연관기(740)를 더 포함한다. 따라서, 프로그램/정보 연관기(725)는 정보 큐 연관기(740)의 사용에 의해, 하나 또는 그 초과의 정보 큐들을 주어진 상황과 연관시킬 수 있다. 연관은 (예를 들어, 상황을 하나 또는 그 초과의 프로그램들 및/또는 정보 타입들과 연관시키고 그리고/또는 하나 또는 그 초과의 프로그램들 및/또는 정보 타입들이 하나 또는 그 초과의 정보 큐들과 연관되는) 간접 기법 또는 (예를 들어, 상황을 하나 또는 그 초과의 정보 큐들과 직접적으로 연관시키는) 직접 기법에 기초하여 결정될 수 있다. 직접 연관들은 (예를 들어, 클러스터링 알고리즘, 적응 모델 등을 사용하는) 다른 타입들의 연관들에 대해 본원에 설명한 유사한 기법들을 사용하여 이루어질 수 있다. 일부 경우들에서, 정보 큐 연관기(740)는 프로그램/정보 연관기와는 개별적으로 제공된다.
[0086] 프로그램/정보 연관기(725)는 사용자 입력들에 기초한 연관들을 포함할 수 있다. 예를 들어, 사용자는 조건들을 표시할 수 있는데, 이 조건들 하에서, 사용자는 하나 또는 그 초과의 특정한 정보 큐들이 제시되길 원하거나 또는 하나 또는 그 초과의 프로그램들 및/또는 정보 타입들이 식별되길 원한다. 예를 들어, 사용자는, 그가 특정한 사람(들) 또는 이메일 주소(들)로부터의 이메일 수신시에 특정한 프로그램과 연관된 그래픽 아이콘이 제시되길 원한다는 것을 표시할 수 있다. 이러한 표시는 예를 들어, 사용자가 상황을 정의하고, 상황들 중에서 선택하는 것 등에 해당(amount)할 수 있다.
[0087] 프로그램/정보 연관기(725)는 사용자 인터페이스 생성기(745)에 커플링될 수 있다. 사용자 인터페이스 생성기(745)는 사용자에게 시스템 식별 상황 및/또는 연관된 프로그램 또는 정보 타입을 통지하도록 구성될 수 있다. 예를 들어, 사용자 인터페이스 생성기(745)는 디스플레이 생성기, 음향 생성기, 진동 생성기 등을 포함할 수 있다. 생성된 신호는 (예를 들어, 상황이 결정되거나 프로그램들 및/또는 정보 타입들이 식별된다는) 일반적인 의미를 가질 수 있다. 생성된 신호는 특정한 의미를 가질 수 있다(예를 들어, 음향 신호는 새로운 거래가 검출되었다는 것을 나타내거나 데스크탑상에 제시된 시각적 아이콘은 사용자가 상황 연관 프로그램에 쉽게 액세스하게 한다).
[0088] 사용자 인터페이스 생성기(745)는 디스플레이 배분기(750)를 포함할 수 있다. 디스플레이 배분기는, 각각 도 6을 참조로 앞서 보다 상세히 설명된 정적 부분과 동적 부분 사이에서 디스플레이 스크린을 배분할 수 있다. 배분하는 것은 예를 들어, 스크린의 동적 부분을 적어도 부분적으로 정의하는(예를 들어, 동적 부분의 주변부를 정의하고, 동적 부분에 할당될 스크린의 퍼센티지를 정의하는 등의) 결정된 상황 및/또는 사용자 입력과 연관된 프로그램들 또는 정보의 타입들의 수에 기초할 수 있다. 일부 경우들에서, 정적 부분과 동적 부분 사이에서 배분하는 것은 상황들에 걸쳐 고정된다. 도 6은 정적 부분과 동적 부분 사이에서 배분된 스크린의 예를 도시한다. 일부 실시예들에서, 전체 스크린은 동적 부분이거나 또는 전체 스크린은 정적 부분이다(예를 들어, 그리고, 사용자에게는 예를 들어, 음향 신호들, 디스플레이 플래시들 등을 통해 상황 연관 프로그램들 및/또는 정보 타입들이 통지된다).
[0089] 사용자 인터페이스 생성기(745)는 정적 프로그램 식별자(755)를 포함할 수 있다. 정적 프로그램 식별자는 결정된 상황에 관계없이 제시될 프로그램들 및/또는 정보의 타입들을 식별할 수 있다. 일부 경우들에서, 이들 프로그램들은 사용자 입력들에 기초하여 적어도 부분적으로 정의된다.
[0090] 사용자 인터페이스 생성기(745)는 제시 특징 식별자(760)를 포함할 수 있다. 제시 특징 식별자(760)는 하나 또는 그 초과의 정적 및/또는 동적 프로그램 및/또는 정보의 타입들과 연관된 정보 큐(들)의 제시와 연관된 특징들을 식별할 수 있다. 제시 특징들은 도 4를 참조하여 위에서 보다 상세시 설명하였다. 일 경우에서, 결정된 상황을 고려해 볼 때 사용자에게 관심이 있는 것으로 예측되는 하나 또는 그 초과의 프로그램들 및/또는 정보 타입들과 연관된 정보 큐(들)는 지배적인 제시 특징들과 연관될 수 있다. 예를 들어, 사용자는 상황과 연관될 프로그램들에 대한 랭킹된 리스트를 제공할 수 있다. 높게 랭킹된 프로그램들과 연관된 정보 큐들(예를 들어, 그래픽 아이콘들)은 (예를 들어, 상부 위치, 중심 위치, 상이한 위치 등에서) 더 낮게 랭킹된 프로그램들보다 더 두드러지게 제시될 수 있다. 사용자는 랭크-변화 제시 특징들을 설정 또는 변경할 수 있거나 설정 또는 변경하지 않을 수 있다.
[0091] 사용자 인터페이스 생성기(745)는 (예를 들어, 디스플레이상에 디스플레이될 텍스트 및/또는 아이콘들을 생성하기 위해) (예를 들어, 모바일 디바이스(110)의) 디스플레이, 스피커, 진동기, 및/또는 프로세서에 커플링될 수 있다.
[0092] 도 8은, 본원에 설명한 바와 같이, 다양한 다른 실시예들에 의해 제공되는 방법들을 수행할 수 있는 컴퓨터 시스템(800)의 일 실시예의 개략적인 예시를 제공한다. 원격 서버(140) 및/또는 모바일 디바이스(110)는 시스템(800)의 하나 또는 그 초과의 컴포넌트들을 포함할 수 있다. 도 8은 오로지 다양한 컴포넌트들의 일반화된 예시를 제공하는 것으로 의도되며, 이 다양한 컴포넌트들 중 임의의 컴포넌트 또는 전부가 적절하게 활용될 수 있다는 것을 유의해야 한다. 따라서, 도 8은 개별 시스템 엘리먼트들이 상대적으로 분리되거나 상대적으로 더욱 통합된 방식으로 구현될 수 있는 방법을 광범위하게 예시한다.
[0093] 버스(805)를 통해 전기적으로 커플링될 수 있는(또는 그렇지 않다면 적절한 경우, 통신할 수 있는) 하드웨어 엘리먼트들을 포함하는 컴퓨터 시스템(800)이 도시되어 있다. 하드웨어 엘리먼트들은, 제한 없이, (디지털 신호 프로세싱 칩들, 그래픽 가속 프로세서들 등과 같은) 하나 또는 그 초과의 범용 프로세서들 및/또는 하나 또는 그 초과의 특수 용도 프로세서들을 포함하는 하나 또는 그 초과의 프로세서들(810); 제한 없이, 마우스, 키보드, 터치 스크린들, 트랙 패드들 등을 포함할 수 있는 하나 또는 그 초과의 입력 디바이스들(815); 및 제한 없이, 디스플레이 디바이스, 프린터 등을 포함할 수 있는 하나 또는 그 초과의 출력 디바이스들(820)을 포함할 수 있다.
[0094] 컴퓨터 시스템(800)은, 하나 또는 그 초과의 저장 디바이스(825)를 더 포함할 수 있는데 (그리고/또는 하나 또는 그 초과의 저장 디바이스(825)와 통신할 수 있는데), 이 하나 또는 그 초과의 저장 디바이스(825)는, 제한 없이, 로컬 및/또는 네트워크 액세스가능한 저장소를 포함할 수 있고 그리고/또는 제한 없이, 디스크 드라이브, 드라이브 어레이, 광학적 저장 디바이스, 프로그램가능하고, 플래시-업데이트가능한 랜덤 액세스 메모리("RAM") 및/또는 판독 전용 메모리("ROM")와 같은 고체 상태 저장 디바이스 등을 포함할 수 있다. 이러한 저장 디바이스들은, 제한 없이, 다양한 파일 시스템들, 데이터베이스 구조들 등을 포함하는 임의의 적절한 데이터 스토어들을 구현하도록 구성될 수 있다.
[0095] 컴퓨터 시스템(800)은 또한, 제한 없이, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 디바이스, 무선 통신 디바이스 및/또는 칩셋(예컨대, 블루투스TM 디바이스, 802.11 디바이스, Wi-Fi 디바이스, WiMax 디바이스, 셀룰러 통신 시설 등) 등을 포함할 수 있는 통신 서브시스템(830)을 포함할 수 있다. 통신 서브시스템(830)은 데이터가 네트워크(예컨대, 일예를 들면, 아래에 설명되는 네트워크), 다른 컴퓨터 시스템들, 및/또는 본원에 설명한 임의의 다른 디바이스들과 교환되게 허용할 수 있다. 다수의 실시예들에서, 컴퓨터 시스템(800)은 앞서 설명된 바와 같이, RAM 또는 ROM 디바이스를 포함할 수 있는 작업 메모리(835)를 더 포함할 것이다.
[0096] 컴퓨터 시스템(800)은 또한, 운영 시스템(840), 디바이스 드라이버들, 실행가능 라이브러리들, 및/또는 다양한 실시예들에 의해 제공된 컴퓨터 프로그램들을 포함할 수 있고 그리고/또는 본원에 설명한 바와 같이, 다른 실시예들에 의해 제공되는 방법들을 구현하고 그리고/또는 다른 실시예들에 의해 제공되는 시스템들을 구성하도록 설계될 수 있는 하나 또는 그 초과의 애플리케이션 프로그램들(845)과 같은 다른 코드를 포함하는, 작업 메모리(835)내에 현재 위치된 것으로 도시되어 있는 소프트웨어 엘리먼트들을 포함할 수 있다. 단지 예로서, 앞서 논의된 방법(들)과 관련하여 설명된 하나 또는 그 초과의 절차들은 컴퓨터(및/또는 컴퓨터내의 프로세서)에 의해 실행가능한 코드 및/또는 명령들로서 구현될 수 있고; 이후, 일 양상에서, 이러한 코드 및/또는 명령들은, 설명된 방법들에 따라 하나 또는 그 초과의 동작들을 수행하도록, 범용 컴퓨터(또는 다른 디바이스)를 구성 및/또는 적응시키는데 사용될 수 있다.
[0097] 이들 명령들 및/또는 코드의 세트는, 앞서 설명된 저장 디바이스(들)(825)와 같은 컴퓨터 판독가능 저장 매체상에 저장될 수 있다. 일부 경우들에서, 저장 매체는 시스템(800)과 같은 컴퓨터 시스템내에 통합될 수 있다. 다른 실시예들에서, 저장 매체는 컴퓨터 시스템으로부터 분리될 수 있고(예를 들어, 컴팩트 디스크와 같은 착탈식 매체일 수 있고) 그리고/또는 설치 패키지에 제공될 수 있어서, 저장되어 있는 명령들/코드로 범용 컴퓨터를 프로그래밍하고, 구성하고 그리고/또는 적응시키는데 저장 매체가 사용될 수 있다. 이들 명령들은, 컴퓨터 시스템(800)에 의해 실행가능한 실행가능 코드의 형태를 취할 수 있고, 그리고/또는 (예를 들어, 일반적으로 이용가능한 다양한 컴파일러들, 설치 프로그램들, 압축/압축해제 유틸리티들 등 중 임의의 것을 사용하는) 컴퓨터 시스템(800)상에서의 컴필레이션(compilation) 및/또는 설치시에, 이후 실행가능한 코드의 형태를 취하는 소스 및/또는 설치가능한 코드의 형태를 취할 수 있다.
[0098] 실질적인 변동들이 특정한 요건들에 따라 이루어질 수 있다는 것이 당업자에게 명백할 것이다. 예를 들어, 커스터마이징된 하드웨어가 또한 사용될 수 있고 그리고/또는 특정한 엘리먼트들이 하드웨어, (휴대용 소프트웨어, 예컨대 애플릿들, 등을 포함하는) 소프트웨어, 또는 이 양자 모두에서 구현될 수 있다. 또한, 네트워크 입/출력 디바이스들과 같은 다른 컴퓨팅 디바이스들에 대한 접속이 이용될 수 있다.
[0099] 위에서 언급된 바와 같이, 일 양상에서, 일부 실시예들은 본 발명의 다양한 실시예들에 따른 방법들을 수행하기 위해 (컴퓨터 시스템(800)과 같은) 컴퓨터 시스템을 이용할 수 있다. 실시예들의 세트에 따르면, 이러한 방법들의 절차들 중 일부 또는 모두가 작업 메모리(835)에 포함된 (운영 시스템(840) 및/또는 애플리케이션 프로그램(845)과 같은 다른 코드에 통합될 수 있는) 하나 또는 그 초과의 명령들의 하나 또는 그 초과의 시퀀스들을 실행하는 프로세서(810)에 응답하여 컴퓨터 시스템(800)에 의해 수행된다. 이러한 명령들은 저장 디바이스(들)(825) 중 하나 또는 그 초과의 것과 같은 다른 컴퓨터 판독가능 매체로부터 작업 메모리(835)로 판독될 수 있다. 단지 예로서, 작업 메모리(835)에 포함된 명령들의 시퀀스들의 실행은 프로세서(들)(810)로 하여금 본원에 설명된 방법들의 하나 또는 그 초과의 절차들을 수행하게 할 수 있다.
[0100] 본원에 사용되는 바와 같은, 용어들 "머신 판독가능 매체" 및 "컴퓨터 판독가능 매체"는, 머신이 특정한 방식으로 동작하게 하는 데이터를 제공하는데 참여하는 임의의 매체를 지칭한다. 컴퓨터 판독가능 매체 및 저장 매체는 일시적(transitory) 전파 신호들을 지시하지 않는다. 컴퓨터 시스템(800)을 사용하여 구현되는 실시예에서, 다양한 컴퓨터 판독가능 매체는 실행을 위해 프로세서(들)(810)에 명령들/코드를 제공하는데 수반될 수 있고 그리고/또는 이러한 명령들/코드를 저장하기 위해 사용될 수 있다. 다수의 구현들에서, 컴퓨터 판독가능 매체는 물리적 및/또는 유형의(tangible) 저장 매체이다. 이러한 매체는 비휘발성 매체 또는 휘발성 매체의 형태를 취할 수 있다. 비휘발성 매체는 예를 들어, 저장 디바이스(들)(825)와 같은 광학 및/또는 자기 디스크들을 포함한다. 휘발성 매체는 제한 없이, 작업 메모리(835)와 같은 동적 메모리를 포함한다.
[0101] 물리적 및/또는 유형의 컴퓨터 판독가능 매체의 공통 형태들은 예를 들어, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 또는 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광학 매체, 천공 카드들, 페이퍼테이프, 홀들의 패턴들을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지 등을 포함한다.
[0102] 앞서 논의된 방법들, 시스템들, 및 디바이스들은 예들이다. 다양한 구성들은, 적절한 경우, 다양한 절차들 또는 컴포넌트들을 생략, 대체 또는 추가할 수 있다. 예를 들어, 대안적 구성들에서, 방법들은 설명된 것과 상이한 순서로 수행될 수 있고 그리고/또는 다양한 스테이지들이 추가, 생략 그리고/또는 조합될 수 있다. 방법들 모두 또는 일부가 반복적으로 수행될 수 있다. 또한, 특정한 구성들에 관하여 설명한 피처들이 다양한 다른 구성들에 결합될 수 있다. 구성들의 상이한 양상들 및 엘리먼트들이 유사한 방식으로 결합될 수 있다. 또한, 기술이 발전함에 따라, 다수의 엘리먼트들은 예들이며 청구항들 또는 본 개시물의 범위를 제한하지 않는다.
[0103] (구현들을 포함하는) 예시적인 구성들의 완전한 이해를 제공하기 위해 특정한 상세사항들이 설명에 제공된다. 그러나, 구성들은 이들 특정한 상세사항들 없이도 실시될 수 있다. 예를 들어, "프로그램들"이 설명되는 경우들에서, 본 개시물은, 일부 실시예들에서, 또한 또는 대안적으로, "정보의 타입들"에 관한 것일 수 있다. 반대의 경우 또한 발생할 수 있다. 다른 예로서, 널리 공지된 회로들, 프로세스들, 알고리즘들, 구조들, 및 기법들은 구성들을 모호하게 하는 것을 회피하기 위해 불필요한 상세사항 없이 도시하였다. 이러한 설명은 단지 예시적인 구성들만을 제공하고, 청구항들의 범위, 적용가능성, 또는 구성들을 제한하지 않는다. 오히려, 구성들에 대한 선행 설명은 설명된 기법들을 구현하는 것을 가능케하는 설명을 당업자에게 제공할 것이다. 본 개시물의 사상 또는 범위를 이탈하지 않고, 엘리먼트들에 대한 기능 및 배열에 있어 다양한 변경들이 이루어질 수 있다.
[0104] 또한, 구성들은 흐름도 또는 블록도로서 도시된 프로세스로서 설명될 수 있다. 순차적 프로세스로서 동작들을 각각 설명할 수 있지만, 다수의 동작들은 병렬로 또는 동시에 수행될 수 있다. 또한, 동작들의 순서는 재배열될 수 있다. 프로세스는 도면에 포함되지 않은 추가의 단계들을 가질 수 있다. 또한, 방법들의 예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션 언어들(hardware description languages), 또는 이들의 임의의 결합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어, 또는 마이크로코드에서 구현될 때, 필요한 작업들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들은 저장 매체와 같은 비일시적 컴퓨터 판독가능 매체에 저장될 수 있다. 프로세서들은 설명한 작업들을 수행할 수 있다.
[0105] 여러 예시적인 구성들을 설명하였지만, 본 개시물의 사상을 벗어나지 않는 다양한 변경들, 대안의 구성들, 및 등가물들이 사용될 수 있다. 예를 들어, 상기 엘리먼트들은 대형 시스템의 컴포넌트들일 수 있고, 여기서, 다른 규칙이 본 발명의 애플리케이션에 우선하거나 그렇지 않으면 본 발명의 애플리케이션을 변경할 수 있다. 또한, 상기 엘리먼트들이 고려되기 이전에, 고려되는 동안, 또는 고려된 이후에, 다수의 단계들이 착수될 수 있다. 따라서, 상기 설명은 청구항들의 범위를 한정하지 않는다.

Claims (40)

  1. 프로세서에 의해 수행되는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법으로서,
    상기 모바일 디바이스를 통해, 상기 모바일 디바이스의 사용자로부터 입력을 수신하는 단계 ― 상기 입력은 동적 상황 의존 정보 큐들(dynamic context-dependent informational cues)을 제시하기 위한 그래픽 사용자 인터페이스(GUI) 내의 사용자 특정된 통지(notification) 영역의 실시간 선택과 관련됨 ―;
    하나 또는 그 초과의 상황 연관 변수(context-associated variable)들을 결정하는 단계;
    상기 상황 연관 변수들의 값들의 클러스터(cluster)들을 식별함으로써 상황(context)을 결정하는 단계;
    정보 큐들의 세트에 대한 서브세트를 식별하는 단계 ― 상기 서브세트는 상기 상황과 연관됨 ―; 및
    상기 모바일 디바이스를 통해, 상기 통지 영역 내의 상기 식별된 서브세트를 상기 사용자에게 제시하고, 그리고 상기 정보 큐들의 세트에서 다른 정보 큐들을 숨기는 단계를 포함하고,
    상기 제시는 수신된 사용자 입력과 일치하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 정보 큐들의 세트는 프로그램과 연관된 그래픽 아이콘을 포함하고, 상기 프로그램은 상기 모바일 디바이스상에서 실행가능한, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 정보 큐들의 세트는 상기 상황의 경고를 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  4. 제 1 항에 있어서,
    상기 정보 큐들의 세트는 거래(deal)의 경고를 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 상황은 이전에 수신된 상황 정의 사용자 입력에 기초하여 결정되는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  6. 제 5 항에 있어서,
    상기 이전에 수신된 상황 정의 사용자 입력은 상기 정보 큐들의 세트에 대한 상기 서브세트를 디스플레이하기 위한 하나 또는 그 초과의 조건들을 식별하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  7. 제 6 항에 있어서,
    상기 하나 또는 그 초과의 조건들은 하나 또는 그 초과의 특정 발신자들로부터 이메일을 수신하는 것을 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  8. 제 1 항에 있어서,
    상기 입력은 상기 식별된 서브세트를 시각적으로 제시하기 위해 상기 모바일 디바이스상의 스크린의 동적 부분의 경계를 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  9. 제 8 항에 있어서,
    상기 입력은 터치 스크린상에 하나 또는 그 초과의 경계들을 드로잉(draw)하는 것을 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  10. 제 8 항에 있어서,
    상기 동적 부분은 상기 모바일 디바이스상의 스크린의 복수의 영역들을 포함하고, 상기 복수의 영역들은 상기 스크린의 일부(less than an entirety)를 커버하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  11. 제 1 항에 있어서,
    상기 식별된 서브세트는 상기 모바일 디바이스상의 스크린의 시스템 정의 부분 내에 시각적으로 제시되는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  12. 제 1 항에 있어서,
    상기 정보 큐들의 세트에 대한 하나 또는 그 초과의 정보 큐들은 복수의 상황들과 연관되는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  13. 제 1 항에 있어서,
    상기 식별된 서브세트는, 상기 식별된 서브세트가 상기 모바일 디바이스의 스크린상에 전부 동시에 제시되지 않도록, 적어도 하나의 스크롤링 피처를 이용하여 제시되는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  14. 제 1 항에 있어서,
    상기 정보 큐들의 세트에 대한 정보 큐들 중 적어도 일부를 랭킹하는 단계를 더 포함하고, 상기 식별된 서브세트의 제시는 상기 랭킹에 적어도 부분적으로 기초하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  15. 제 14 항에 있어서,
    상기 정보 큐들의 세트에 대한 상기 식별된 서브세트의 정보 큐들 각각의 제시와 연관되는 스크린 위치는, 상기 랭킹에 적어도 부분적으로 기초하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  16. 제 1 항에 있어서,
    상기 입력은 복수의 시스템 생성 스크린 파티셔닝 옵션들 사이에서의 선택을 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  17. 제 1 항에 있어서,
    상기 식별된 서브세트를 제시하는 것은, 상기 정보 큐들의 세트에서 상기 다른 정보 큐들과 연관된 그래픽 아이콘들과 상이하게 상기 서브세트와 연관된 그래픽 아이콘들을 디스플레이하는 것을 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  18. 제 1 항에 있어서,
    상기 서브세트에서의 정보 큐들은 상기 모바일 디바이스의 디스플레이 스크린상에서 상기 사용자에게 시각적으로 제시되고, 그리고 상기 다른 정보 큐들은 상기 디스플레이 스크린상에서 상기 사용자에게 시각적으로 제시되지 않는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  19. 제 1 항에 있어서,
    상기 서브세트에서의 정보 큐들은 상기 모바일 디바이스의 데스크탑 또는 홈 스크린상에서 상기 사용자에게 시각적으로 제시되고, 그리고 상기 다른 정보 큐들은 상기 데스크탑 또는 홈 스크린상에서 상기 사용자에게 시각적으로 제시되지 않는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  20. 제 1 항에 있어서,
    상기 서브세트는 상기 상황이 결정되었다는 것을 나타내는 정보 큐를 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  21. 제 20 항에 있어서,
    상기 상황이 결정되었다는 것을 나타내는 정보 큐는 상기 모바일 디바이스의 음향 및 진동 중 적어도 하나를 사용하여 상기 사용자에게 제시되는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  22. 제 1 항에 있어서,
    상기 상황은 환경적 상황인, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  23. 제 1 항에 있어서,
    상기 모바일 디바이스를 통해, 정보 큐들의 정적 상황 의존 세트를 상기 사용자에게 제시하는 단계를 더 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  24. 제 1 항에 있어서,
    상기 모바일 디바이스는 셀룰러 폰인, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  25. 제 1 항에 있어서,
    하나 또는 그 초과의 상황 연관 변수들을 수신하는 단계를 더 포함하고,
    상기 상황을 결정하는 단계는 상기 수신된 하나 또는 그 초과의 상황 연관 변수들에 기초하여 상기 상황을 추론하는 단계를 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  26. 제 1 항에 있어서,
    제 2 상황을 결정하는 단계;
    상기 정보 큐들의 세트에 대한 제 2 서브세트를 식별하는 단계 ― 상기 제 2 서브세트는 상기 제 2 상황과 연관됨 ―; 및
    상기 모바일 디바이스를 통해, 상기 세트에서의 다른 정보 큐들의 임의의 제시에 대비되게 상기 제 2 서브세트를 제시하는 단계를 더 포함하고,
    상기 제시는 상기 수신된 사용자 입력과 일치하고, 그리고 상기 제 2 서브세트는 상기 서브세트와 상이한, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  27. 제 1 항에 있어서,
    상기 서브세트는 프로그램들을 상기 상황과 연관시키는 사용자 입력들에 적어도 부분적으로 기초하여 식별되고, 상기 프로그램들은 상기 모바일 디바이스상에서 실행가능한, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  28. 제 1 항에 있어서,
    상기 상황을 결정하는 단계는:
    상기 모바일 디바이스상에서 실행가능한 프로그램들과 상기 사용자의 상호작용들을 모니터링하는 단계;
    상기 사용자의 상호작용들과 상기 상황 연관 변수들 사이의 상관을 식별하는 단계; 및
    상기 식별된 상관 및 상기 상황 연관 변수들의 값들에 기초하여 상기 상황을 추론하는 단계
    를 더 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 방법.
  29. 프로세서 판독가능 명령들을 포함하는, 프로세서-판독가능 저장 매체로서,
    상기 프로세서 판독가능 명령들은 프로세서로 하여금:
    모바일 디바이스의 사용자로부터 입력을 수신하게 하고 ― 상기 입력은 동적 상황 의존 정보 큐들을 제시하기 위한 그래픽 사용자 인터페이스(GUI) 내의 사용자 특정된 통지 영역의 실시간 선택과 관련됨 ―;
    하나 또는 그 초과의 상황 연관 변수들을 결정하게 하고;
    상기 상황 연관 변수들의 값들의 클러스터들을 식별함으로써 상황을 결정하게 하고;
    상기 결정된 상황을 정보 큐들의 세트에 대한 서브세트와 연관시키게 하고; 그리고
    상기 통지 영역 내의 상기 서브세트를 제시하는 사용자 인터페이스를 생성하고 그리고 상기 정보 큐들의 세트에서 다른 정보 큐들의 제시를 숨기게 하도록 구성되고,
    상기 서브세트의 제시는 수신된 사용자 입력과 일치하는, 프로세서-판독가능 저장 매체.
  30. 제 29 항에 있어서,
    상기 프로세서 판독가능 명령들은 상기 프로세서로 하여금 상기 동적 상황 의존 정보 큐들을 디스플레이하기 위한 상기 모바일 디바이스의 디스플레이의 부분을 정의하게 하도록 추가로 구성되고, 상기 정의는 상기 사용자 입력에 의존하는, 프로세서-판독가능 저장 매체.
  31. 제 29 항에 있어서,
    상기 프로세서 판독가능 명령들은 상기 프로세서로 하여금 복수의 상황 정의들을 적어도 주기적으로 조정하게 하도록 추가로 구성되는, 프로세서-판독가능 저장 매체.
  32. 제 29 항에 있어서,
    상기 프로세서 판독가능 명령들은 상기 프로세서로 하여금 상기 정보 큐들의 세트의 부분들과 상황들 간의 연관들을 적어도 주기적으로 조정하게 하도록 추가로 구성되는, 프로세서-판독가능 저장 매체.
  33. 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 시스템으로서,
    상기 모바일 디바이스의 사용자로부터 입력을 수신하도록 구성된 입력 디바이스 ― 상기 입력은 동적 상황 의존 정보 큐들을 제시하기 위한 그래픽 사용자 인터페이스(GUI) 내의 사용자 특정된 통지 영역의 실시간 선택과 관련됨 ―;
    하나 또는 그 초과의 상황 연관 변수들을 결정하고;
    상기 상황 연관 변수들의 값들의 클러스터들을 식별함으로써 상황을 결정하고;
    정보 큐들의 세트에 대한 서브세트를 식별하고 ― 상기 서브세트는 상기 상황과 연관됨 ―; 그리고
    상기 통지 영역 내의 상기 식별된 서브세트를 상기 사용자에게 제시하기 위해 상기 사용자 인터페이스를 생성하고 그리고 상기 정보 큐들의 세트에서 다른 정보 큐들을 숨기기 위한,
    컴퓨터 실행가능 명령들로 프로그래밍된 하나 또는 그 초과의 프로세서들
    을 포함하고,
    상기 제시는 수신된 사용자 입력과 일치하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 시스템.
  34. 제 33 항에 있어서,
    상기 모바일 디바이스는 상기 하나 또는 그 초과의 프로세서들을 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 시스템.
  35. 제 33 항에 있어서,
    외부 컴퓨터는 상기 하나 또는 그 초과의 프로세서들 중 적어도 하나를 포함하고, 그리고 상기 외부 컴퓨터는 무선 접속을 통해 상기 모바일 디바이스에 커플링되는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 시스템.
  36. 제 33 항에 있어서,
    상기 모바일 디바이스는 하나 또는 그 초과의 상황 연관 변수들을 모니터링하도록 구성된 하나 또는 그 초과의 센서들을 더 포함하는, 모바일 디바이스의 사용자 인터페이스를 생성하기 위한 시스템.
  37. 사용자 인터페이스를 생성하기 위한 시스템으로서,
    모바일 디바이스의 사용자로부터 입력을 수신하기 위한 수단 ― 상기 입력은 동적 상황 의존 정보 큐들을 제시하기 위한 그래픽 사용자 인터페이스(GUI) 내의 사용자 특정된 통지 영역의 실시간 선택과 관련됨 ―;
    하나 또는 그 초과의 상황 연관 변수들을 결정하기 위한 수단;
    상기 상황 연관 변수들의 값들의 클러스터들을 식별함으로써 상황을 결정하기 위한 수단;
    정보 큐들의 세트에 대한 서브세트를 식별하기 위한 수단 ― 상기 서브세트는 상기 상황과 연관됨 ―; 및
    상기 통지 영역 내의 상기 식별된 서브세트를 제시하고, 그리고 상기 정보 큐들의 세트에서 다른 정보 큐들의 제시를 숨기기 위한 수단을 포함하고,
    상기 제시는 수신된 사용자 입력과 일치하는, 사용자 인터페이스를 생성하기 위한 시스템.
  38. 제 37 항에 있어서,
    상기 상황을 결정하기 위한 수단은 클러스터링 알고리즘(clustering algorithm)을 사용하는 것을 포함하고,
    클러스터는 상기 상황 연관 변수들의 값들의 클러스터들 각각에 대응하는, 사용자 인터페이스를 생성하기 위한 시스템.
  39. 제 37 항에 있어서,
    상기 서브세트를 식별하기 위한 수단은 뉴럴 네트워크(neural network)를 사용하는 것을 포함하는, 사용자 인터페이스를 생성하기 위한 시스템.
  40. 제 37 항에 있어서,
    상기 입력을 수신하기 위한 수단은 터치 스크린을 포함하는, 사용자 인터페이스를 생성하기 위한 시스템.
KR1020147010705A 2011-09-22 2012-09-12 동적이고 구성가능한 사용자 인터페이스 KR101847097B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161537684P 2011-09-22 2011-09-22
US61/537,684 2011-09-22
US13/344,735 2012-01-06
US13/344,735 US9672049B2 (en) 2011-09-22 2012-01-06 Dynamic and configurable user interface
PCT/US2012/054834 WO2013043430A1 (en) 2011-09-22 2012-09-12 Dynamic and configurable user interface

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020167013848A Division KR20160066048A (ko) 2011-09-22 2012-09-12 동적이고 구성가능한 사용자 인터페이스

Publications (2)

Publication Number Publication Date
KR20140079428A KR20140079428A (ko) 2014-06-26
KR101847097B1 true KR101847097B1 (ko) 2018-04-10

Family

ID=47912645

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167013848A KR20160066048A (ko) 2011-09-22 2012-09-12 동적이고 구성가능한 사용자 인터페이스
KR1020147010705A KR101847097B1 (ko) 2011-09-22 2012-09-12 동적이고 구성가능한 사용자 인터페이스

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167013848A KR20160066048A (ko) 2011-09-22 2012-09-12 동적이고 구성가능한 사용자 인터페이스

Country Status (6)

Country Link
US (2) US9672049B2 (ko)
EP (1) EP2758871B1 (ko)
JP (2) JP6224592B2 (ko)
KR (2) KR20160066048A (ko)
CN (1) CN103827821B (ko)
WO (1) WO2013043430A1 (ko)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9672049B2 (en) 2011-09-22 2017-06-06 Qualcomm Incorporated Dynamic and configurable user interface
DE102012221513A1 (de) * 2011-12-09 2013-06-13 International Business Machines Corp. Verfahren und System zum Bereitstellen zusätzlicher Daten einem grafischen Schnittstellenelement
KR101980173B1 (ko) * 2012-03-16 2019-05-20 삼성전자주식회사 서드 파티 테스크 공급자들의 서비스 제공을 대행하는 협력적 퍼스널 어시스턴트 시스템 및 그에 따른 방법
US11372536B2 (en) * 2012-11-20 2022-06-28 Samsung Electronics Company, Ltd. Transition and interaction model for wearable electronic device
US11237719B2 (en) 2012-11-20 2022-02-01 Samsung Electronics Company, Ltd. Controlling remote electronic device with wearable electronic device
US20140152583A1 (en) * 2012-12-03 2014-06-05 International Business Machines Corporation Optimistic placement of user interface elements on a touch screen
US20140164935A1 (en) * 2012-12-12 2014-06-12 Dror Frommer System for rapid browsing of content
US20140201655A1 (en) * 2013-01-16 2014-07-17 Lookout, Inc. Method and system for managing and displaying activity icons on a mobile device
US20150089360A1 (en) * 2013-09-25 2015-03-26 At&T Mobility Ii Llc Intelligent Adaptation of User Interfaces
US20150089359A1 (en) * 2013-09-25 2015-03-26 At&T Mobility Ii Llc Intelligent Adaptation of Home Screens
US20150089386A1 (en) * 2013-09-25 2015-03-26 At&T Mobility Ii Llc Intelligent Adaptation of Home Screens According to Handedness
US9792003B1 (en) * 2013-09-27 2017-10-17 Audible, Inc. Dynamic format selection and delivery
EP3058446A4 (en) * 2013-10-14 2017-07-05 Yahoo! Inc. Systems and methods for providing context-based user interface
US9032321B1 (en) * 2014-06-16 2015-05-12 Google Inc. Context-based presentation of a user interface
JP6274028B2 (ja) * 2014-06-18 2018-02-07 富士通株式会社 表示端末、表示方法、及びプログラム
US9916059B2 (en) 2014-07-31 2018-03-13 Microsoft Technology Licensing, Llc Application launcher sizing
US10186138B2 (en) * 2014-09-02 2019-01-22 Apple Inc. Providing priming cues to a user of an electronic device
US9600156B2 (en) 2014-09-26 2017-03-21 International Business Machines Corporation Enlarging a selection region associated with selected information in a document displayed on a screen of a computing device
US10320704B2 (en) * 2014-10-22 2019-06-11 Tata Consultancy Services Limited User driven smartphone scheduling enhancement for running data analytics application
US20160148157A1 (en) * 2014-11-25 2016-05-26 Sanju Walia Managing activities in an organization
US9927954B2 (en) * 2014-12-05 2018-03-27 HomeAway.com. Inc. Dynamic interface to present customized information contextually in relation to access to a property
KR20160133154A (ko) * 2015-05-12 2016-11-22 삼성전자주식회사 전자 장치 및 그의 그래픽 유저 인터페이스 제공 방법
JP6344311B2 (ja) * 2015-05-26 2018-06-20 ソニー株式会社 表示装置、情報処理システム及び制御方法
US10380569B2 (en) 2015-08-11 2019-08-13 Toshiba Tec Corporation Systems, methods, and apparatuses for displaying purchase transaction elements based on a determined hierarchy
US10845949B2 (en) 2015-09-28 2020-11-24 Oath Inc. Continuity of experience card for index
US11609427B2 (en) 2015-10-16 2023-03-21 Ostendo Technologies, Inc. Dual-mode augmented/virtual reality (AR/VR) near-eye wearable displays
US10521070B2 (en) 2015-10-23 2019-12-31 Oath Inc. Method to automatically update a homescreen
US11106273B2 (en) * 2015-10-30 2021-08-31 Ostendo Technologies, Inc. System and methods for on-body gestural interfaces and projection displays
US10146397B2 (en) * 2015-11-27 2018-12-04 International Business Machines Corporation User experience steering
US10345594B2 (en) 2015-12-18 2019-07-09 Ostendo Technologies, Inc. Systems and methods for augmented near-eye wearable displays
US10831766B2 (en) 2015-12-21 2020-11-10 Oath Inc. Decentralized cards platform for showing contextual cards in a stream
US10578882B2 (en) 2015-12-28 2020-03-03 Ostendo Technologies, Inc. Non-telecentric emissive micro-pixel array light modulators and methods of fabrication thereof
USD789416S1 (en) * 2016-02-04 2017-06-13 Lutron Electronics Co., Inc. Display screen or portion thereof with animated graphical user interface
USD797791S1 (en) * 2016-03-22 2017-09-19 Teletracking Technologies, Inc. Display screen with graphical user interface
US10353203B2 (en) 2016-04-05 2019-07-16 Ostendo Technologies, Inc. Augmented/virtual reality near-eye displays with edge imaging lens comprising a plurality of display devices
US10453431B2 (en) 2016-04-28 2019-10-22 Ostendo Technologies, Inc. Integrated near-far light field display systems
US10522106B2 (en) 2016-05-05 2019-12-31 Ostendo Technologies, Inc. Methods and apparatus for active transparency modulation
US10345986B1 (en) * 2016-05-17 2019-07-09 Google Llc Information cycling in graphical notifications
US10248536B2 (en) * 2016-10-31 2019-04-02 International Business Machines Corporation Method for static and dynamic configuration verification
US20180129581A1 (en) * 2016-11-07 2018-05-10 International Business Machines Corporation Method for static and dynamic configuration verification
US20190122140A1 (en) * 2017-10-20 2019-04-25 STATGRAF Research LLP. Data analysis and rendering
CN108874485A (zh) * 2018-06-08 2018-11-23 Oppo广东移动通信有限公司 图标显示方法、装置及终端
US20220291789A1 (en) * 2019-07-11 2022-09-15 Google Llc System and Method for Providing an Artificial Intelligence Control Surface for a User of a Computing Device
US10768952B1 (en) 2019-08-12 2020-09-08 Capital One Services, Llc Systems and methods for generating interfaces based on user proficiency
US11097688B2 (en) 2019-09-20 2021-08-24 GM Cruise Holdings, LLC Journey verification for ridesharing via audible signals
US10953852B1 (en) 2019-09-27 2021-03-23 GM Cruise Holdings, LLC. Pick-up authentication via audible signals
US11267401B2 (en) 2019-09-27 2022-03-08 GM Cruise Holdings, LLC Safe passenger disembarking for autonomous vehicles via audible signals
DE102020204619A1 (de) * 2020-04-09 2021-10-14 Siemens Aktiengesellschaft Überwachen eines Elektroenergieübertragungssystems
US11546458B2 (en) * 2020-06-10 2023-01-03 Micron Technology, Inc. Organizing applications for mobile devices
US11756574B2 (en) * 2021-03-11 2023-09-12 Apple Inc. Multiple state digital assistant for continuous dialog
CN113407268B (zh) * 2021-05-07 2023-09-01 北京奇艺世纪科技有限公司 互动窗口展示方法、装置、电子设备及存储介质
CN114356165B (zh) * 2022-01-11 2024-01-23 瀚云科技有限公司 一种监控设备的监控区域确定方法、装置及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080162649A1 (en) 2007-01-03 2008-07-03 Social Concepts, Inc. Image based electronic mail system

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6211858B1 (en) 1997-09-26 2001-04-03 Ericsson Inc. Method and apparatus for displaying a rotating meter icon on a portable intelligent communications device
US6668177B2 (en) 2001-04-26 2003-12-23 Nokia Corporation Method and apparatus for displaying prioritized icons in a mobile terminal
EP1256875A1 (en) 2001-05-10 2002-11-13 Nokia Corporation Method and device for context dependent user input prediction
US20020186257A1 (en) 2001-06-08 2002-12-12 Cadiz Jonathan J. System and process for providing dynamic communication access and information awareness in an interactive peripheral display
US7032188B2 (en) * 2001-09-28 2006-04-18 Nokia Corporation Multilevel sorting and displaying of contextual objects
US7493573B2 (en) * 2003-02-07 2009-02-17 Sun Microsystems, Inc. Scrolling vertical column mechanism for cellular telephone
CN1754147A (zh) * 2003-02-25 2006-03-29 松下电器产业株式会社 应用程序的预测方法及移动终端
US7386279B2 (en) 2003-04-02 2008-06-10 Sun Microsystems, Inc. Context based main screen for mobile device
EP1473911A1 (en) 2003-04-28 2004-11-03 Sony Ericsson Mobile Communications AB Changing presentation of items of information based on message reception frequency
US7221331B2 (en) 2003-05-05 2007-05-22 Microsoft Corporation Method and system for auxiliary display of information for a computing device
US7620894B1 (en) * 2003-10-08 2009-11-17 Apple Inc. Automatic, dynamic user interface configuration
WO2005055034A1 (en) 2003-12-01 2005-06-16 Research In Motion Limited Previewing a new event on a small screen device
JP4730684B2 (ja) 2004-03-16 2011-07-20 イマジニアリング株式会社 ユーザインターフェースが進化するデータベースシステムおよび当該データベースシステムを利用したWebブラウザ
US20060107219A1 (en) 2004-05-26 2006-05-18 Motorola, Inc. Method to enhance user interface and target applications based on context awareness
ATE355697T1 (de) 2004-11-09 2006-03-15 Research In Motion Ltd Benutzerschnittstelle mit dynamischer leiste
US20080005679A1 (en) * 2006-06-28 2008-01-03 Microsoft Corporation Context specific user interface
JP2008015971A (ja) 2006-07-10 2008-01-24 Matsushita Electric Ind Co Ltd 情報提示装置及び情報提示方法
US7581188B2 (en) * 2006-09-27 2009-08-25 Hewlett-Packard Development Company, L.P. Context-based user interface system
US8032839B2 (en) * 2006-12-18 2011-10-04 Sap Ag User interface experience system
US20090150807A1 (en) * 2007-12-06 2009-06-11 International Business Machines Corporation Method and apparatus for an in-context auto-arrangable user interface
US20090187466A1 (en) * 2008-01-23 2009-07-23 Maphook, Inc. Location-Based Information-Geo Retail Notification
US8245143B2 (en) 2008-10-08 2012-08-14 Research In Motion Limited Method and handheld electronic device having a graphical user interface which arranges icons dynamically
JP5262673B2 (ja) 2008-12-18 2013-08-14 日本電気株式会社 携帯端末、機能実行方法及びプログラム
JP5201591B2 (ja) * 2009-03-05 2013-06-05 Necカシオモバイルコミュニケーションズ株式会社 携帯端末装置及びプログラム
US20100317371A1 (en) 2009-06-12 2010-12-16 Westerinen William J Context-based interaction model for mobile devices
JP2011066850A (ja) 2009-09-18 2011-03-31 Fujitsu Toshiba Mobile Communications Ltd 情報通信端末
US8972878B2 (en) * 2009-09-21 2015-03-03 Avaya Inc. Screen icon manipulation by context and frequency of Use
JP4982551B2 (ja) 2009-11-05 2012-07-25 株式会社エヌ・ティ・ティ・ドコモ 通信システム、通信装置及びプログラム
US8490018B2 (en) * 2009-11-17 2013-07-16 International Business Machines Corporation Prioritization of choices based on context and user history
US20110126119A1 (en) * 2009-11-20 2011-05-26 Young Daniel J Contextual presentation of information
JP5400599B2 (ja) 2009-12-18 2014-01-29 株式会社日立製作所 Guiカスタマイズ方法、システム及びプログラム
JP2011160145A (ja) * 2010-01-29 2011-08-18 Fujitsu Toshiba Mobile Communications Ltd 携帯端末装置
US8315791B2 (en) * 2010-06-18 2012-11-20 Nokia Coporation Method and apparatus for providing smart zooming of a geographic representation
US8881057B2 (en) * 2010-11-09 2014-11-04 Blackberry Limited Methods and apparatus to display mobile device contexts
US9292171B2 (en) * 2010-11-17 2016-03-22 International Business Machines Corporation Border menu for context dependent actions within a graphical user interface
US8766793B2 (en) * 2011-03-25 2014-07-01 Microsoft Corporation Contextually-appropriate task reminders
US9672049B2 (en) 2011-09-22 2017-06-06 Qualcomm Incorporated Dynamic and configurable user interface

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080162649A1 (en) 2007-01-03 2008-07-03 Social Concepts, Inc. Image based electronic mail system

Also Published As

Publication number Publication date
US9672049B2 (en) 2017-06-06
US20170262293A1 (en) 2017-09-14
JP6224592B2 (ja) 2017-11-01
KR20140079428A (ko) 2014-06-26
WO2013043430A1 (en) 2013-03-28
JP2014531666A (ja) 2014-11-27
EP2758871A1 (en) 2014-07-30
CN103827821A (zh) 2014-05-28
KR20160066048A (ko) 2016-06-09
JP2016194932A (ja) 2016-11-17
US11106350B2 (en) 2021-08-31
JP6348538B2 (ja) 2018-06-27
US20130080890A1 (en) 2013-03-28
EP2758871B1 (en) 2021-08-11
CN103827821B (zh) 2018-02-06

Similar Documents

Publication Publication Date Title
KR101847097B1 (ko) 동적이고 구성가능한 사용자 인터페이스
CN108268259B (zh) 动态生成定制应用入门教程
US8805417B2 (en) Dynamic contact list display
US10055681B2 (en) Mapping actions and objects to tasks
CN110326010A (zh) 具有基于内容的通知徽标标注的图形用户界面
US20160063874A1 (en) Emotionally intelligent systems
WO2017167123A1 (zh) 一种移动设备上资源入口的显示方法、装置及移动设备
CN108279819B (zh) 动态生成自定义应用设置集
US20100153890A1 (en) Method, Apparatus and Computer Program Product for Providing a Predictive Model for Drawing Using Touch Screen Devices
US20180188906A1 (en) Dynamically generating a subset of actions
CN105320425A (zh) 基于场境的用户界面的呈现
US20140180744A1 (en) Interface to select application based on state transition models of work
US11436265B2 (en) System for presenting tailored content based on user sensibilities
CN104285427A (zh) 根据通过使不同数据源相关确定的上下文配置终端装置
US20180197099A1 (en) User state predictions for presenting information
CN108304575B (zh) 一种标识显示的方法及终端
AU2022306844A1 (en) Content genome generation and management system in a multi-modal artificial intelligence system for media assets
KR20170119908A (ko) 경기 결과 예측 서비스를 제공하는 시스템 및 방법
CN116307394A (zh) 产品用户体验评分方法、装置、介质及设备
US20190116218A1 (en) Personalization framework
US20240094889A1 (en) Overflow application tool for computing devices

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2016101003057; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20160525

Effective date: 20180227

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant