KR102518172B1 - 컴퓨팅 시스템에서 사용자 어시스턴스를 제공하기 위한 장치 및 방법 - Google Patents

컴퓨팅 시스템에서 사용자 어시스턴스를 제공하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR102518172B1
KR102518172B1 KR1020197023106A KR20197023106A KR102518172B1 KR 102518172 B1 KR102518172 B1 KR 102518172B1 KR 1020197023106 A KR1020197023106 A KR 1020197023106A KR 20197023106 A KR20197023106 A KR 20197023106A KR 102518172 B1 KR102518172 B1 KR 102518172B1
Authority
KR
South Korea
Prior art keywords
application
assistance
display
specific
user
Prior art date
Application number
KR1020197023106A
Other languages
English (en)
Other versions
KR20190107060A (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 KR20190107060A publication Critical patent/KR20190107060A/ko
Application granted granted Critical
Publication of KR102518172B1 publication Critical patent/KR102518172B1/ko

Links

Images

Classifications

    • 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/453Help systems
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1615Constructional details or arrangements for portable computers with several enclosures having relative motions, each enclosure supporting at least one I/O or computing function
    • G06F1/1616Constructional details or arrangements for portable computers with several enclosures having relative motions, each enclosure supporting at least one I/O or computing function with folding flat displays, e.g. laptop computers or notebooks having a clamshell configuration, with body parts pivoting to an open position around an axis parallel to the plane they define in closed position
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1637Details related to the display arrangement, including those related to the mounting of the display in the housing
    • G06F1/1641Details related to the display arrangement, including those related to the mounting of the display in the housing the display being formed by a plurality of foldable display components
    • 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/04817Interaction 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 using icons
    • 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
    • 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/04883Interaction 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 for inputting data by handwriting, e.g. gesture or text
    • 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
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller
    • 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
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04803Split screen, i.e. subdividing the display area or the window area into separate subareas
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Computer Graphics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

장치를 이용하여 어시스턴스를 제공하는 방법은, 프로세서를 이용하여, 상기 장치에 의해 현재 실행 중이고 표시되는 애플리케이션을 결정하는 과정과, 상기 프로세서를 이용하여, 상기 애플리케이션과의 사용자 상호 작용을 촉진하는 정보를 결정하는 과정을 포함할 수 있다. 상기 정보는, 애플리케이션-특정 어시스턴스로서 상기 장치 상에 표시될 수 있다.

Description

컴퓨팅 시스템에서 사용자 어시스턴스를 제공하기 위한 장치 및 방법
본 개시(disclosure)는 컴퓨팅 시스템 내에서 사용자 어시스턴스를 제공하기 위한 플랫폼(platform) 및 인터페이스(interface)에 관한 것이다.
일부 컴퓨팅 시스템은 사용자에게 일반 어시스턴스(general assistance)를 제공할 수 있다. 일반 어시스턴스는 사용자가 다양한 활동을 수행하는 데 도움이 되는 정보 및/또는 동작을 지칭한다. 일반 어시스턴스는 일반적으로 사용자의 일반 컨텍스트(general context)를 분석하여 컴퓨팅 시스템에 의해 결정된다. 사용자의 일반 컨텍스트는 시간, 사용자의 위치, 및 사용자의 이전 행동 패턴들과 같은 정보를 포함한다. 일반 어시스턴스가 일단 결정되면, 사용자에게 제공될 수 있다. 다른 컴퓨팅 시스템들은 사용자에게 애플리케이션-컨텐츠-특정(application-content-specific) 어시스턴스를 제공할 수 있다. 애플리케이션-컨텐츠-특정 어시스턴스는 컴퓨팅 시스템 상에서 사용자가 보고 있는 컨텐츠의 분석으로부터 결정되는 정보 및/또는 동작을 지칭한다.
일반적으로, 일반 어시스턴스를 제공하기 위해 사용되는 어시스턴스 플랫폼(platform) 및 인터페이스(interface)는 사용자에게 애플리케이션-컨텐츠-특정 어시스턴스를 제공하기 위해 사용되는 시스템 및 인터페이스와 완전히 분리되어 있으며 별개이다.
하나 이상의 실시 예들은 장치를 이용하여 어시스턴스(assistance)를 제공하기 위한 방법에 관한 것이다. 일 양태에서, 방법은 프로세서를 이용하여, 상기 장치에 의해 현재 실행 중이고 표시되는 애플리케이션을 결정하는 과정과, 상기 프로세서를 이용하여 상기 애플리케이션과의 사용자 상호 작용을 촉진하는 정보를 결정하는 과정과, 상기 장치 상에 상기 정보를 애플리케이션-특정 어시스턴스로서 표시하는 과정을 포함할 수 있다.
하나 이상의 실시 예들은 어시스턴스(assistance)를 제공하기 위한 시스템에 관한 것이다. 일 양태에서, 상기 시스템은, 명령들을 저장하도록 구성된 메모리, 제1 디스플레이, 및 상기 메모리 및 상기 제1 디스플레이에 연결되는 프로세서를 포함한다. 상기 프로세서는 상기 명령들을 실행하는 것에 응답하여, 어시스턴스를 제공하기 위한 동작들을 개시하도록 구성된다. 상기 동작들은, 상기 제1 디스플레이에 의해 현재 실행되고 표시되고 있는 애플리케이션을 결정하는 과정과, 상기 애플리케이션과의 사용자 상호 작용을 촉진하는 정보를 결정하는 과정과, 애플리케이션-특정 어시스턴스로서 상기 정보를 표시하는 과정을 포함할 수 있다.
하나 이상의 실시 예들은 어시스턴스를 제공하기 위한 컴퓨터 프로그램 제품에 관한 것이다. 일 양태에서, 상기 컴퓨터 프로그램 제품은 저장된 프로그램 코드를 갖는 컴퓨터 판독 가능 저장 매체를 포함한다. 상기 프로그램 코드는 실행 가능한 동작들을 수행하기 위해 프로세서에 의해 실행될 수 있다. 상기 실행 가능한 동작들은 장치에 의해 현재 실행되고 표시되고 있는 애플리케이션을 결정하는 과정과, 상기 애플리케이션과의 사용자 상호 작용을 촉진하는 정보를 결정하는 과정과, 애플리케이션-특정 어시스턴스로서 장치 상에 상기 정보를 표시하는 과정을 포함할 수 있다.
하나 이상의 실시 예들은 어시스턴스를 제공할 수 있는 장치에 관한 것이다. 일 양태에서, 상기 장치는 디스플레이 유닛 및 상기 디스플레이 유닛에 연결되는 프로세서를 포함한다. 상기 프로세서는, 디스플레이 유닛이, 현재 실행 중인 애플리케이션 및 상기 애플리케이션과의 사용자 상호 작용을 가속시키는 상기 애플리케이션과 관련된 정보를 표시하도록 하기 위해 제어하도록 구성된다.
본 섹션은 단지 특정 개념을 소개하기 위해 제공되는 것이며 청구되는 주제의 핵심 또는 필수 기능을 식별하기 위한 것이 아니다. 본 발명의 다수의 다른 특징 및 실시 예는 첨부된 도면 및 다음의 상세한 설명으로부터 명백해질 것이다.
본 개시(disclosure)는 장치의 사용자에게 하나 이상의 상이한 타입들의 어시스턴스를 제공한다. 어시스턴스를 제공하기 위해, 하나 이상의 디스플레이들이 있는 장치에서 작동하는 사용자 인터페이스(user interface, UI)가 제공될 수 있다.
첨부된 도면은 하나 이상의 실시 예를 도시한 것이다. 그러나, 첨부된 도면들이 본 발명을 도시된 실시 예들로만 제한하도록 취해져서는 안된다. 다양한 양태들 및 이점들이 다음의 상세한 설명을 검토할 때 및 도면을 참조할 경우 명백해질 것이다.
도 1은 본 개시에서 설명된 하나 이상의 실시 예들과 함께 사용하기 위한 예시적인 장치를 도시한다.
도 2는 어시스턴스를 제공하기 위해 도 1의 장치에 의해 실행 가능한 예시적인 어시스턴스(assistance) 플랫폼(platform)을 도시한다.
도 3a 내지 도 3h는 일반 어시스턴스(general assistance)의 예들을 도시한다.
도 4a 내지 도 4d는 애플리케이션-특정(application-specific) 어시스턴스의 예들을 도시한다.
도 5는 애플리케이션-컨텐츠-특정(application-content-specific) 어시스턴스의 예를 도시한 것이다.
도 6a 및 도 6b는 애플리케이션 및 상이한 유형들의 어시스턴스 간의 내비게이팅(navigating)의 예를 도시한다.
도 7a 및 도 7b는 상이한 타입들의 어시스턴스 간의 내비게이팅의 예를 도시한다.
도 8은 어시스턴스를 제공하는 예시적인 방법을 도시한다.
본 개시가 신규한 특징들을 정의하는 청구 범위로 결론을 내리고 있지만, 여기에 기재된 다양한 특징들은 도면과 함께 본 설명을 고려하는 것으로부터 더 잘 이해될 수 있을 것이다. 본 개시 내에서 설명되는 프로세스(들), 기계(들), 제조(들) 및 그 변형은 설명의 목적으로 제공된 것이다. 여기에 기재되는 특정한 구조적 및 기능적 세부 사항들은 한정으로서 해석되어서는 안되며 단지 청구 범위의 기반으로서 그리고 사실상 적절하게 상세히 기재한 구조로 기술된 특징들을 다양하게 이용하도록 당업자에게 교시하기 위한 대표적인 기반으로서만 해석되어야 한다. 또한, 본 개시 내에서 사용되는 용어 및 어구는 한정하기 위한 것이 아니라 기재된 특징들에 대한 이해 가능한 설명을 제공하기 위한 것이다.
본 개시는 어시스턴스를 제공하는 것에 관한 것이다. 본 개시 내에서 설명되는 하나 이상의 실시 예들은 전자 장치의 사용자에게 하나 이상의 상이한 타입의 어시스턴스(assistance)를 제공하는 것에 관한 것이다. 특정 실시 예들에서, 어시스턴스를 제공하기 위해 하나 이상의 디스플레이가 구비된 전자 장치 상에서 동작하는 사용자 인터페이스(user interface, UI)가 제공된다. 일부 전자 장치들, 예를 들어 듀얼-디스플레이 장치들 및/또는 멀티-디스플레이 장치들은 하나의 디스플레이를 프라이머리(primary) 디스플레이로서 사용하고 다른 디스플레이를 세컨더리(secondary) 디스플레이로서 사용한다. 프라이머리 디스플레이는 전자 장치의 홈 스크린 및 전자 장치의 하나 이상의 애플리케이션들과의 상호 작용을 위한 주요 수단을 사용자에게 제공할 수 있다. 세컨더리 디스플레이는 보조 컨텐츠를 표시하는 것을 포함하는 다른 기능들을 제공할 수 있다. 예시적인 예에서, 전자 장치는 사용자의 현재 컨텍스트(context)에 기반하여 보조 컨텐츠를 선택하고, 세컨더리 디스플레이 상에 보조 컨텐츠를 자동적으로 표시할 수 있다.
일반적으로, 일반 어시스턴스(general assistance)를 제공하기 위해 이용되는 어시스턴스 플랫폼들 및 인터페이스들은 사용자들에게 애플리케이션-컨텐츠-특정 어시스턴스를 제공하는데 사용되는 시스템들 및 인터페이스들과 완전히 다르고 별개였다. 사용자는 어떤 타입의 어시스턴스가 유용할지 또는 바람직한지를 먼저 결정해야 한다. 이어서, 사용자는 시스템으로부터 특정 타입의 어시스턴스를 수동으로 요청해야 한다. 예를 들어, 종래의 장치는 홈 스크린이 표시되는 동안에 수신되는 사용자 제스처(user gesture)에 응답하여 일반 어시스턴스를 제공할 수 있다.
프라이머리 디스플레이 및 세컨더리 디스플레이의 사용은 2개 이상의 디스플레이들을 이용하여 더 큰 데스크탑 또는 홈 스크린을 제공하는 다른 전자 장치, 예를 들면 모바일 장치 또는 휴대용 장치와는 상이하다. 이러한 장치들의 다수의 디스플레이들은 동시에 더 많은 아이콘들 또는 더 많은 실행 애플리케이션들을 보여주는 단일의 대형 디스플레이로서 작동하도록 구성된다. 다수의 디스플레이들을 단일의 대형 디스플레이로서 이용하면, 실행 중인 단일 애플리케이션에 대하여 더 많은 공간이 할당될 수 있다. 따라서, 보다 큰 데스크탑 또는 홈 스크린을 제공하도록 다수의 디스플레이들을 이용하는 것이 아니라, 본 개시에 개시된 다양한 실시 예들은 프라이머리 및 세컨더리와 같이, 지정되거나 할당된 역할들에 기반하여 디스플레이들을 이용할 수 있다.
하나 이상의 실시 예들은 단일 UI를 통해 다양한 타입들의 어시스턴스를 제공함으로써 이들 다양한 타입들의 어시스턴스를 통합한다. 사용자는 UI를 이용하여 제공되는 다양한 타입의 어시스턴스를 내비게이팅(navigating)할 수 있다. 제공될 수 있는 다양한 타입의 어시스턴스의 예들은, 일반 어시스턴스(general assistance), 애플리케이션-특정 어시스턴스(application-specific assistance) 및 애플리케이션-컨텐츠-특정 어시스턴스(application-content-specific assistance)를 포함한다. 이러한 다양한 타입들의 어시스턴스는 사용자가 현재 작업(task) 또는 다음(예를 들어, 예측되거나 예상되는) 작업을 수행하는 데 도움을 준다. 특정 실시 예들에서, 다양한 타입들의 어시스턴스가 다양한 타입들의 컨텐츠를 사용자에게 제공할 수 있기 때문에, 제공되는 어시스턴스의 타입들은 장치에 의해 검출되는 현재 컨텍스트에 의존한다.
본 개시 내에서 정의된 바와 같이, "일반 어시스턴스"라는 용어는 사용자 및/또는 장치의 현재 컨텍스트(current context)에 의존하는 컴퓨팅 시스템(예: 전자 장치)에 의해 제공되는 어시스턴스를 의미한다. 현재 컨텍스트는 사용자 및/또는 장치의 현재 위치, 현재 시간, 및 사용자에 의한 그 장치에서의 애플리케이션 사용 패턴(예: 이력 패턴)을 포함할 수 있다. 일반 어시스턴스가 애플리케이션 사용의 이력 패턴을 고려하지만, 일반 어시스턴스는 현재 실행 중이고 장치의 프라이머리 디스플레이 상에 표시되는 특정 애플리케이션과 독립적인 것이며, 즉 이에 의존하지 않는다. 따라서, 일반 어시스턴스를 제공하거나 호출하기 위해 이용되는 현재 컨텍스트는 현재 실행 중이고 장치의 프라이머리 디스플레이 상에 표시되는 애플리케이션을 포함하지 않는다.
일반 어시스턴스는 사용자의 다음 작업과 관련된 동작들에 대한 정보 및/또는 바로가기(shortcut)들을 제공하여 사용자를 돕는다. 일반 어시스턴스는 사용자가 아직 새로운 작업을 시작하지 않았거나 한 작업에서 새로운 작업으로 전환하는 과정에 있다는 가정에 기반하여 제공된다. 이러한 방식으로, 전술한 바와 같이, 제공되는 어시스턴스는 현재 실행 중이며 및/또는 장치의 프라이머리 디스플레이 상에 표시되는 애플리케이션과 독립적이다.
본 개시 내에 정의된 바와 같이, "애플리케이션-특정 어시스턴스"라는 용어는 장치에서 현재 실행 중이고 장치의 디스플레이 상에서 현재 표시되는 특정 애플리케이션에 적어도 부분적으로 의존하는 컴퓨팅 시스템(예: 전자 장치)에 의해 제공되는 어시스턴스를 의미한다. 특정 실시 예들에서, 디스플레이는 프라이머리 디스플레이이다. 하나 이상의 실시 예들에서, 프라이머리 디스플레이로 지정된 특정 디스플레이가 장치의 동작 중에 변경될 수도 있다. 일 예에서, 장치의 다른 디스플레이가 실행 중인 애플리케이션을 표시하고 있지 않을 경우, 실행 중인 애플리케이션을 표시하고 있는 디스플레이(예: 전체 화면)가 프라이머리 디스플레이로 지정될 수 있다. 애플리케이션-특정 어시스턴스는, 예를 들어, 애플리케이션 내에 표시되는 컨텐츠를 참조하지 않고 독립적으로 결정된다.
예시적이고 비한정적인 예로서, 사용자는 장치의 프라이머리 디스플레이 상에서 제1 애플리케이션을 열 수 있다. 이에 응답하여, 장치는 장치의 세컨더리 디스플레이 상에서 애플리케이션-특정 어시스턴스를 제공한다. 애플리케이션-특정 어시스턴스의 일부는 사용자가 제1 애플리케이션과 동시에 종종 사용하는 제2 애플리케이션에 대한 링크이다. 사용자가 링크를 선택하는 것에 응답하여, 장치는 제2 애플리케이션을 실행하고, 실행되는 제2 애플리케이션을 제2 디스플레이 상에 표시한다. 후속적으로, 사용자는 프라이머리 디스플레이에서 제1 애플리케이션을 종료한다. 이 경우, 제1 애플리케이션을 종료한 것에 응답하여, 장치는 제2 애플리케이션에 대한 애플리케이션-특정 어시스턴스를 프라이머리 디스플레이 상에 자동적으로 표시할 수 있다(예: 프라이머리 디스플레이가 무엇이었는지). 이 예에서, 프라이머리 디스플레이 및 세컨더리 디스플레이의 역할은 어떤 디스플레이가 실행 중인 애플리케이션을 현재 표시하고 있지에 따라, 자동으로 변경된다.
본 개시 내에서 정의된 바와 같이, "애플리케이션-컨텐츠-특정 어시스턴스"라는 용어는 프라이머리 디스플레이 상에서 애플리케이션에 의해 표시되는 및/또는 프라이머리 디스플레이 상에서 현재 볼 수 있는 컨텐츠에 적어도 부분적으로 의존하는 컴퓨팅 시스템(예: 전자 장치)에 의해 제공되는 어시스턴스를 의미한다. 이와 관련하여, 애플리케이션-컨텐츠-특정 어시스턴스는 컨텐츠를 표시하고 있는 특정 애플리케이션에 의존할 필요가 없으며, 예를 들면, 이에 독립적이다. 애플리케이션-컨텐츠-특정 어시스턴스는 애플리케이션에 의해 표시되는 컨텐츠에 전적으로 의존할 수 있다. 예시적이고 비한정적인 예로서, 사용자는 전자 메일 메시지 내의 컨텐츠 및 브라우저 내의 동일하거나 유사한 컨텐츠를 볼 수 있다. 컨텐츠를 제공하는 애플리케이션이 상이함에도 불구하고 애플리케이션에 의해 표시되거나 제공되는 컨텐츠가 동일하거나 유사하기 때문에, 장치는 이들 두 가지 상이한 케이스들 각각에 있어서 동일한 애플리케이션-컨텐츠-특정 어시스턴스를 제공할 수 있다.
하나 이상의 실시 예들에서, 장치는 능동적 방식으로(예를 들어, 자동적으로) 상이한 타입들의 어시스턴스 중 하나 이상의 조합 또는 임의의 조합을 제공할 수 있다. 예를 들어, 장치는 특정 조건들을 검출할 수 있고, 이 조건들을 검출하는 것에 응답하여, 본 개시에서 설명되는 상이한 타입들의 어시스턴스 중 하나 이상을 제공할 수 있다. 특정 실시 예들에서, 제공되는 상이한 타입들의 어시스턴스는 사용자의 현재 컨텍스트 및/또는 애플리케이션이 실행 중이고 장치의 프라이머리 디스플레이 상에 표시되어 있는지 여부에 관한 조건들을 검출하는 것에 응답하여 선택되고, 제공된다. 예를 들어, 장치는 하나 이상의 타입들의 어시스턴스를 선택하고, 사용자의 일반적인 컨텍스트의 파라미터들에 응답하여 장치를 통해 사용자에게 선택된 타입들의 어시스턴스를 제공할 수 있다. 사용자의 일반적인 컨텍스트들의 파라미터들은, 사용자 및/또는 장치의 현재, 이전, 및 추정되는 미래 위치(예: 과거의 움직임 패턴에 기반하여); 현재 시간; 애플리케이션, 바로가기, 및 정보 액세스와 관련된 사용자의 장치 사용 패턴; 사용자의 캘린더; 날씨; 및 현재 및/또는 과거 트래픽 패턴을 포함하나, 이에 한정되지 않는다.
하나 이상의 실시 예들에서, 현재의 컨텍스트는, 애플리케이션이 실행 중이고 프라이머리 디스플레이 상에 표시되어 있는지 여부, 및 애플리케이션이 실행 중이고 프라이머리 디스플레이 상에 표시되어 있는 경우 표시되는 특정 애플리케이션을 포함하거나 특정한다. 특정 실시 예들에서, 애플리케이션이 실행 중이고 프라이머리 디스플레이 상에 표시되어 있는 경우, 현재의 컨텍스트는 실행 중인 특정 애플리케이션의 명칭 또는 식별자(identity)를 특정할 수 있다. 특정 실시 예들에서, 현재의 컨텍스트는, 컨텐츠가 애플리케이션에 의해 로딩되고 및/또는 표시되는지 여부를 특정할 수 있다. 현재의 컨텍스트는 이하에서 더 상세히 설명되는 다른 타입들의 정보를 특정할 수 있다.
하나 이상의 실시 예들에서, 장치는 일반 어시스턴스, 애플리케이션-특정 어시스턴스, 및/또는 애플리케이션-컨텐츠-특정 어시스턴스에 대한 통합 액세스를 제공할 수 있다. 장치는 상술한 세 가지 상이한 타입들의 어시스턴스의 임의의 쌍 및/또는 세 가지 상이한 타입들의 어시스턴스 모두에 대한 통합 액세스를 제공할 수 있다. 어시스턴스는 공통 UI 및/또는 어시스턴스 플랫폼을 이용하여 상이한 타입들의 어시스턴스들 중의 하나 이상 또는 모두를 표시하는 것에 의해 통합될 수 있다. 예를 들어, 공통 UI는 사용자가 상이한 타입들의 어시스턴스들을 내비게이팅할 수 있도록 한다. 공통 UI는 장치의 세컨더리 디스플레이 또는 복수의 세컨더리 디스플레이들을 이용하여 장치와 통신 가능하게 링크된 다른 전자 장치들의 디스플레이들 상에 표시되거나, 가상 디스플레이 또는 다른 적절한 디스플레이를 이용하여 단일 디스플레이 상에 표시될 수 있다.
이하, 본 발명의 구성들의 또 다른 양태들에 대하여 도면을 참조하여 보다 상세하게 설명한다. 설명의 단순성 몇 명료성을 위해, 도면들에 도시된 요소들이 반드시 일정한 비율로 그려지는 것은 아니다. 예를 들어, 일부 요소들의 치수는 명확성을 위해 다른 요소들에 비해 과장될 수 있다. 또한, 적절한 것으로 여겨지는 경우, 대응하는, 유사하거나 동일한 특징들을 나타내기 위해 참조 번호들이 도면들 사이에서 반복된다.
도 1은 본 개시 내에서 설명되는 하나 이상의 실시 예들과 함께 사용하기 위한 전자 장치(100)의 예를 도시한다. 장치(100)는 적어도 하나의 프로세서(105)를 포함한다. 프로세서(105)는 인터페이스 회로(115)를 통해 메모리(110)에 연결된다. 장치(100)는 메모리(110) 내에 컴퓨터 판독 가능 명령들(또한 "프로그램 코드"로도 지칭됨)을 저장한다. 메모리(110)는 컴퓨터 판독 가능 저장 매체의 일 예이다. 프로세서(105)는 인터페이스 회로(115)를 통해 메모리(110)로부터 액세스되는 프로그램 코드를 실행한다.
메모리(110)는, 예를 들어, 로컬 메모리(120) 및 대용량 저장 장치(125)와 같은 하나 이상의 물리적 메모리 장치들을 포함한다. 로컬 메모리(120)는 프로그램 코드의 실제 실행 동안 일반적으로 사용되는 비영구적 메모리 장치(들)로서 구현된다. 로컬 메모리(120)의 예들은 RAM(random access memory) 및/또는 프로그램 코드의 실행 중에 프로세서에 의한 사용에 적합한 임의의 다양한 타입들의 RAM을 포함한다. 대용량 저장 장치(125)는 영구적 데이터 저장 장치로서 구현된다. 대용량 저장 장치(125)의 예들로는 HDD(hard disk drive), SSD(solid-state drive), 플래시 메모리, ROM(read-only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), 또는 다른 적절한 메모리일 수 있다. 장치(100)는 또한 프로그램 코드가 실행 동안 대용량 저장 장치로부터 검색되어야 하는 횟수를 감소시키기 위해 적어도 일부 프로그램 코드의 임시 저장을 제공하는 하나 이상의 캐시 메모리들(미도시)을 포함할 수 있다.
인터페이스 회로(115)의 예들은 입/출력(input/output, I/O) 서브시스템, I/O 인터페이스, 버스(bus) 시스템, 및 메모리 인터페이스를 포함하지만, 이에 한정되지 않는다. 예를 들어, 인터페이스 회로(115)는 메모리 버스 또는 메모리 제어기, 주변 버스, 가속 그래픽 포트, 및 프로세서 또는 로컬 버스를 포함하는 다양한 버스 구조들 및/또는 버스 구조들의 조합들 중 임의의 것으로서 구현될 수 있다.
하나 이상의 실시 예들에서, 프로세서(105), 메모리(110), 및/또는 인터페이스 회로(115)는 개별 컴포넌트들로서 구현된다. 하나 이상의 실시 예들에서, 프로세서(105), 메모리(110), 및/또는 인터페이스 회로(115)는 하나 이상의 집적 회로들에 통합된다. 예를 들어, 장치(100)의 다양한 컴포넌트들은 하나 이상의 통신 버스들 또는 신호 라인들(예: 인터커넥트들 및/또는 와이어들)에 의해 연결될 수 있다. 특정 실시 예들에서, 메모리(110)는 메모리 인터페이스, 예를 들어, 메모리 제어기(미도시)를 통해 인터페이스 회로(115)에 연결된다.
장치(100)는 하나 이상의 디스플레이들을 포함할 수 있다. 도 1의 예에서, 장치(100)는 멀티-디스플레이 장치이다. 특히, 장치(100)는 디스플레이(130) 및 디스플레이(135)를 갖는 듀얼-디스플레이 장치로서 구현된다. 디스플레이(130)는 프라이머리 디스플레이일 수 있고, 디스플레이(135)는 세컨더리 디스플레이일 수 있다. 특정 실시 예들에서, 디스플레이(130) 및/또는 디스플레이(135)는 사용자로부터 터치 입력을 수신할 수 있는 터치 감지 디스플레이 또는 터치스크린 디스플레이들로서 구현된다. 터치 감지 디스플레이 및/또는 터치 감지 패드는 이용 가능한 다양한 터치 감지 기술들 중 임의의 것을 이용하여 접촉(contact) 시의 접촉, 움직임, 제스처 및 중단을 검출할 수 있다. 터치 감지 기술들의 예들은, 용량성(capacitive), 저항성(resistive), 적외선, 및 표면 탄성파 기술들, 및 터치 감지 디스플레이 및/또는 장치와의 하나 이상의 접촉 포인트들을 결정하기 위한 다른 근접 센서 어레이들 또는 다른 요소들을 포함하지만, 이에 한정되지 않는다.
장치(100)는 카메라 서브시스템(140)을 포함할 수 있다. 카메라 서브시스템(140)은 직접 또는 적절한 입/출력(I/O) 제어기를 통해 인터페이스 회로(115)에 연결될 수 있다. 카메라 서브시스템(140)은 광학 센서(142)에 연결될 수 있다. 광학 센서(142)는 임의의 다양한 기술들을 사용하여 구현될 수 있다. 광학 센서(142)의 예들로는 CCD(charged coupled device) 또는 CMOS(complementary metal-oxide semiconductor) 광학 센서를 포함할 수 있으나, 이에 한정되지 않는다. 카메라 서브시스템(140) 및 광학 센서(142)는 이미지 레코딩 및/또는 비디오 레코딩과 같은 카메라 기능들을 수행할 수 있다.
장치(100)는 오디오 서브시스템(145)을 포함할 수 있다. 오디오 서브시스템(145)은 직접 또는 적절한 입/출력(I/O) 제어기를 통해 인터페이스 회로(115)에 연결될 수 있다. 오디오 서브시스템(145)은 음성 인식, 음성 복제, 디지털 레코딩, 및 전화 기능들과 같은 음성 작동 기능들을 용이하게 하기 위해 스피커(146) 및 마이크로폰(148)에 연결될 수 있다.
장치(100)는 하나 이상의 무선 통신 서브시스템들(150)을 포함할 수 있다. 무선 통신 서브시스템(들)(150) 각각은 인터페이스 회로(115)에 직접 또는 적절한 I/O 제어기(미도시)를 통해 연결될 수 있다. 각각의 무선 통신 서브시스템(들)(150)은 통신 기능들을 용이하게 할 수 있다. 무선 통신 서브시스템들(150)의 예들은 무선 주파수 수신기 및 송신기, 그리고 광학(예: 적외선) 수신기 및 송신기를 포함할 수 있으나, 이에 한정되지 않는다. 무선 통신 서브시스템(150)의 특정 설계 및 구현은 구현되는 장치(100)의 특정 타입 및/또는 장치(100)가 동작하고자 하는 통신 네트워크(들)에 의존할 수 있다.
예시적이고 비한정적인 예로서, 무선 통신 서브시스템(들)(150)은 하나 이상의 모바일 네트워크(예: GSM(global system for mobile communications), GPRS(general packet radio service), EDGE(enhanced data rates for global evolution)), WiMax(world interoperability for microwave access) 네트워크를 포함할 수 있는 WiFi(wireless fidelity) 네트워크, 단거리 무선 네트워크(예: 블루투스 네트워크), 및/또는 상술한 것들의 임의의 조합을 포함할 수 있다. 무선 통신 서브시스템(들)(150)은 장치(100)가 다른 무선 장치들을 위한 기지국으로서 구성될 수 있도록 호스팅 프로토콜들을 구현할 수 있다.
장치(100)는 하나 이상의 센서들(155)을 포함할 수 있다. 센서들(155) 각각은 인터페이스 회로(115)에 직접 또는 적절한 I/O 제어기(미도시)를 통해 연결될 수 있다. 장치(100)에 포함될 수 있는 센서들(155)의 예들은 장치(100)의 배향(orientation), 조명, 및 근접 기능들을 용이하게 하기 위한 모션 센서, 광 센서 및 근접 센서를 포함하지만, 이에 한정되지 않는다. 센서들(155)의 다른 예로는 지오-포지셔닝(geo-positioning) 센서 데이터를 제공할 수 있는 위치 센서(예: GPS(global positioning system) 수신기 및/또는 프로세서), 방향성 내비게이션의 목적을 위해 자북(magnetic north)의 방향을 결정하기 위해 이용될 수 있는 센서 데이터를 제공할 수 있는 전자 자력계(예: 집적 회로 칩), 3차원에서 장치(100)의 속도 및 이동 방향의 변화를 나타내는 데이터를 제공할 수 있는 가속도계, 및 고도를 나타내는 데이터를 제공할 수 있는 고도계(예: 집적 회로)를 포함할 수 있다.
또한, 장치(100)는 인터페이스 회로(115)에 연결되는 하나 이상의 입/출력(I/O) 장치들(160)을 포함할 수 있다. I/O 장치들(160)은 장치(100), 예를 들어 인터페이스 회로(115)에 직접 또는 개재된 I/O 제어기(미도시)를 통해 연결될 수 있다. I/O 장치들(160)의 예로는 트랙 패드, 키보드, 디스플레이 장치, 포인팅 장치, 하나 이상의 통신 포트(예를 들어, USB(Universal Serial Bus) 포트), 네트워크 어댑터 및 버트 또는 기타 물리적 컨트롤을 포함하며, 이에 한정되지 않는다. 네트워크 어댑터는 개재된 사설 또는 공중 네트워크를 통해 장치(100)가 다른 시스템, 컴퓨터 시스템, 원격 프린터 및/또는 원격 저장 장치에 커플링될 수 있게 하는 회로를 지칭한다. 무선 통신 서브시스템(들)(150)의 일부가 아닌 모뎀, 케이블 모뎀, 이더넷 인터페이스 및 무선 송수신기는 장치(100)와 함께 사용될 수 있는 상이한 타입의 네트워크 어댑터들의 예이다. 하나 이상의 I/O 장치들(160)은 센서들(155)의 하나 이상 또는 모두 및/또는 무선 통신 서브시스템(들)(150)의 하나 이상의 기능들을 제어하도록 구성될 수 있다.
메모리(110)는 프로그램 코드를 저장한다. 프로그램 코드의 예들로는 루틴, 프로그램, 오브젝트, 컴포넌트, 로직 및 기타 데이터 구조를 포함하며, 이에 한정되지 않는다. 예시의 목적을 위해, 메모리(110)는 운영 체제(170) 및 애플리케이션(들)(175)을 저장한다. 운영 체제(170) 및/또는 애플리케이션(175)은 예를 들어 어시스턴스 플랫폼 프로그램 코드를 포함할 수 있다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼 프로그램 코드는, 실행될 때, 장치(100) 및/또는 장치(100)와 통신 가능하게 링크될 수 있는 다른 장치들이 본 개시에서 설명된 다양한 동작들을 수행하게 할 수 있다. 메모리(110)는 또한 운영 체제(170)에 의해 이용되는 데이터, 애플리케이션(들)(175)에 의해 이용되는 데이터, 사용자 입력으로부터 수신되는 데이터, 센서(들)(155) 중의 하나 이상 또는 모두에 의해 생성되는 데이터, 카메라 서브시스템(140)에 의해 수신 및/또는 생성되는 데이터, 오디오 서브시스템(145)에 의해 수신 및/또는 생성되는 데이터, 및/또는 I/O 장치들(160)에 의해 수신되는 데이터를 포함하는 데이터를 저장할 수 있다.
일 양태에서, 실행 가능한 프로그램 코드의 형태로 구현되는 운영 체제(170) 및 애플리케이션(들)(175)은 장치(100)에 의해, 보다 구체적으로는 프로세서(105)에 의해 실행되고, 본 개시 내에서 설명된 동작들을 수행한다. 이와 같이, 운영 체제(170) 및 애플리케이션(들)(175)은 장치(100)의 통합된 부분으로 간주될 수 있다. 또한, 장치(100)(예를 들어, 프로세서(105))에 의해 사용, 생성, 및/또는 동작되는 임의의 데이터 및/또는 프로그램 코드는, 장치(100)의 일부로서 채용될 경우 기능을 부여하는 기능적 데이터 구조임을 알아야 한다.
메모리(110)는 다른 프로그램 코드를 저장할 수 있다. 다른 프로그램 코드의 예들로는 하나 이상의 추가 장치들, 하나 이상의 컴퓨터들, 및/또는 하나 이상의 서버들과의 통신을 용이하게 하는 명령들; 그래픽 사용자 인터페이스(GUI) 및/또는 UI 프로세싱; 센서 관련 프로세싱 및 기능들; 전화 관련 프로세스들 및 기능들; 전자 메시징 관련 프로세스들 및 기능들; 웹 브라우징 관련 프로세스들 및 기능들; 미디어 프로세싱 관련 프로세스들 및 기능들; GPS 및 내비게이션 관련 프로세스들 및 기능들; 보안 기능들; 웹 카메라 및/또는 웹 비디오 기능들을 포함한 카메라 관련 프로세스들 및 기능들을 포함하며, 이에 한정되지 않는다.
장치(100)는 전원(미도시)을 더 포함할 수 있다. 전원은 장치(100)의 다양한 요소들에게 전력을 제공할 수 있다. 일 실시 예에서, 전원은 하나 이상의 배터리들로서 구현된다. 배터리들은 일회용(예를 들어, 교체 가능) 또는 재충전 가능 여부와 상관없이 임의의 다양한 공지된 배터리 기술들을 사용하여 구현될 수 있다. 다른 실시 예에서, 전원은 외부 소스로부터 전력을 얻어, 장치의 요소들에 전력(예를 들어, DC 전력)을 제공하도록 구성된다. 재충전 가능 배터리들의 경우, 전원은, 외부 전원에 연결될 때 배터리 또는 배터리들을 충전할 수 있는 회로를 더 포함할 수 있다.
장치(100)는 제한이 아닌 예시의 목적으로 제공된 것이다. 본 개시에서 설명되는 동작들을 수행하도록 구성된 장치 및/또는 시스템은 도 1에 도시된 것과 다른 아키텍처를 가질 수도 있다. 아키텍처는 명령들을 저장할 수 있는 메모리 및 명령들을 실행할 수 있는 프로세서를 포함하는 도 1과 관련하여 설명된 아키텍처의 단순화된 버전일 수 있다. 이와 관련하여, 장치(100)는 구현되는 장치의 특정 타입에 따라 도 1에 도시된 것보다 적은 수의 컴포넌트들 또는 도 1에 도시되지 않은 추가 컴포넌트들을 포함할 수 있다. 예를 들어, 장치(100)는 단일 디스플레이를 포함할 수 있다. 또한, 포함되는 특정 운영 체제 및/또는 애플리케이션(들)은, 포함되는 I/O 장치의 타입일 수도 있는 장치 타입에 따라 달라질 수 있다. 또한, 예시적인 컴포넌트들 중 하나 이상은 다른 컴포넌트에 통합되거나, 그렇지 않으면 그 일부를 형성할 수도 있다. 예를 들어, 프로세서는 적어도 일부 메모리를 포함할 수 있다.
장치(100)는 데이터 프로세싱 시스템, 통신 장치, 또는 프로그램 코드를 저장 및/또는 실행하는데 적합한 다른 적절한 시스템으로서 구현될 수도 있다. 장치(100)의 예시적인 구현 예들은 스마트폰이나 다른 모바일 장치 또는 전화기, 웨어러블 컴퓨팅 장치, 컴퓨터(예를 들어, 데스크탑, 랩탑 또는 태블릿 컴퓨터), 텔레비전 또는 디스플레이를 구비한 어플라이언스, 자동차, 가상 현실 시스템 또는 증강 현실 시스템과 같은 다른 대형 시스템에 포함 및/또는 임베디드되는 컴퓨터 시스템을 포함할 수 있으며, 이에 한정되지 않는다.
도 2는 어시스턴스를 제공하기 위해 장치(100)에 의해 실행 가능한 예시적인 어시스턴스 플랫폼(200)을 도시한다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 장치(100)의 운영 체제(170)에 통합된다. 하나 이상의 다른 실시 예들에서, 어시스턴스 플랫폼(200)은, 예를 들어 장치(100) 내에서 협력하여 실행할 수 있는, 애플리케이션(175) 또는 복수의 애플리케이션들과 같은 독립형 시스템으로서 구현된다.
도 2의 예에서, 어시스턴스 플랫폼(200)은 하나 이상의 애플리케이션들(235) 및 통지(notification) 관리자(245)와 상호 작용할 수 있다. 도시된 바와 같이, 어시스턴스 플랫폼(200)은 어시스턴스 관리자(205), 컨텐츠 인식기(210), 및 어시스턴스 UI(215)를 포함한다. 어시스턴스 플랫폼(200)은 또한 사용자 선호(preference) 데이터(220), 어시스턴스 데이터(225), 및 사용자 행동 데이터(230)와 같은 메모리에 저장된 하나 이상의 데이터 구조들을 포함할 수 있다.
하나 이상의 실시 예들에서, 어시스턴스 관리자(205)는 하나 이상의 애플리케이션(들)(235) 및/또는 통지 관리자(245)에 노출되는 애플리케이션 프로그래밍 인터페이스(application programming interface, API)를 제공할 수 있다. 애플리케이션(235)은 API에 액세스하고, 사용자에 대한 컨텍스트(240)를 어시스턴스 관리자(205)에게 제공할 수 있다. 컨텍스트(240)는 현재의 컨텍스트일 수 있다. 예를 들어, 애플리케이션(235)은 장치(100)의 하나 이상의 센서들(155)에 액세스하고, 센서 데이터, 애플리케이션 상태 데이터, 및/또는 운영 체제 상태 데이터로부터 컨텍스트(240)를 생성할 수 있다. 컨텍스트(240)에 규정되거나 포함되는 정보의 예들은, 사용자 및/또는 장치의 현재, 이전, 및 추정되는 미래 위치(예를 들어, 과거의 움직임 패턴에 기반); 현재 시간; 애플리케이션, 바로가기, 및 정보 액세스와 관련된 사용자의 장치 사용 패턴(예를 들어, 어떤 애플리케이션이 가장 자주 사용되는지, 언제 사용되는지, 어디에서 사용되는지); 사용자의 캘린더; 날씨; 및 현재 및/또는 과거 트래픽 패턴들 중의 하나 이상 또는 임의의 조합을 포함할 수 있으나, 이에 한정되지 않는다.
하나 이상의 실시 예들에서, 컨텍스트(240)는 애플리케이션이 실행 중이고 장치(100)의 프라이머리 디스플레이 상에 표시되는지의 여부를 특정할 수 있다. 또한, 애플리케이션이 실행 중이고 장치(100)의 프라이머리 디스플레이 상에 표시된 경우, 컨텍스트(240)는 실행 중인 특정 애플리케이션의 명칭 또는 식별자(identity)를 규정할 수 있다. 특정 실시 예들에서, 컨텍스트(240)는 컨텐츠가 애플리케이션에 의해 로딩 및/또는 표시되는지 여부를 특정할 수 있다. 또 다른 예시적인 예에서, 애플리케이션(235)이 전자 메일 애플리케이션일 경우, 컨텍스트(240)는 어떤 사람들을 장치(100)의 사용자가 접촉하는지 또는 가장 큰 빈도로 접촉하는지를 특정할 수 있다.
도 2에서 컨텍스트(240)가 애플리케이션(235)에 의해 제공되는 것으로 도시되었지만, 하나 이상의 실시 예들에서, 컨텍스트(240)는 하나 이상의 상이한 소스들로부터 발생하고, 개별적으로 또는 조합하여(예를 들어, 2개 이상의 소스로부터 동시에) 제공될 수 있다. 예를 들어, 컨텍스트(240)는 장치(100)의 운영 체제(170)에 의해 제공될 수 있다. 예를 들어, 운영 체제(170)는 사용자(예를 들어, 장치(100))가 가장 빈번하게 사용하거나 실행하는 애플리케이션들 및/또는 통상적으로 사용자가 현재 실행 중인 애플리케이션과 동시에 어떤 애플리케이션을 사용하는지를 나타내는 컨텍스트(240)를 제공할 수 있다. 다른 예에서, 컨텍스트(240)는 어시스턴스 플랫폼(200)에 의해 직접 결정될 수 있다. 예를 들어, 어시스턴스 관리자(205)는 운영 체제(170) 및/또는 애플리케이션(들)(175)과 상호 작용하는 센서들(155), I/O 장치들(160)에 액세스함으로써 컨텍스트(240)를 결정할 수 있다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200), 예를 들어, 어시스턴스 관리자(205)는, 사용자가 가장 자주 사용하는 어시스턴스의 타입들, 예를 들어, 상이한 타입들의 어시스턴스의 사용 빈도를 트래킹(tracking)(예를 들어, 저장, 분석, 및 결정)할 수 있으며, 이에 따라 어시스턴스 플랫폼(200)에 의해 생성된 UI가 자주 사용되는 어시스턴스에 대하여 우선 순위를 부여할 수 있다.
또한, 특정 실시 예들에서, 애플리케이션(235)은, 애플리케이션(235)이 동작할 수 있고 및/또는 입력으로서 수신할 수 있는 데이터의 특정 타입들, 예를 들어 객체 타입들에 대하여 어시스턴스 관리자(205)에게 알릴 수 있다. 예시적이고 비한정적인 예로서, 애플리케이션(235)이 브라우저인 경우, 애플리케이션(235)은, 애플리케이션(235)이 URL(uniform resource locator)들, 웹 페이지, 텍스트 파일, 또는 다른 객체 타입들과 같은 객체 타입들에 대하여 수신 및/또는 동작할 수 있음을 어시스턴스 관리자(205)에게 알릴 수 있다.
또한, 특정 실시 예들에서, 애플리케이션(235)과 같은 애플리케이션은, 어떤 애플리케이션-특정 어시스턴스가 제공되는지에 대하여 어시스턴스 관리자(205)에게 알릴 수 있다. 예를 들어, 애플리케이션(235)은 어시스턴스 관리자(205)에 의해 제공되는 API에 액세스하고, 애플리케이션(235) 내의 컨텐츠 및/또는 동작들에 대해 어떤 바로가기(shortcut)을 어시스턴스로서 제공할 것인지를 어시스턴스 관리자(205)에게 알릴 수 있다. 예를 들어, 애플리케이션(235)이 전자 메일 애플리케이션인 경우, 애플리케이션(235)은 어시스턴스 관리자(205)에게 애플리케이션-특정 어시스턴스로서 다음과 같은 바로가기들이 제공될 수 있음을 알릴 수 있다: 전자 메일 애플리케이션의 각 계정에 대한 바로가기, 새 메시지를 작성하기 위한 바로가기, 자주 연락하는 연락처에 대한 바로가기; 웹 브라우저를 실행하기 위한 바로가기, 특정 웹 페이지를 실행하기 위한 바로가기.
하나 이상의 실시 예들에서, 컨텐츠 인식기(210)는 장치(100)의 디스플레이 상에 인식 및/또는 표시되는 컨텐츠에 대한 텍스트 처리 기능들을 수행할 수 있다. 특정 실시 예들에서, 컨텐츠는 장치(100)에서 실행 중이고 및/또는 장치(100)의 디스플레이 상에 표시되는 애플리케이션 내에서 표시될 수 있다. 특정 실시 예들에서, 컨텐츠 인식기(210)는 자연어 처리(natural language processing, NLP)를 수행할 수 있다. NLP는 컴퓨터 시스템 및 인간 (자연) 언어 간의 상호 작용을 용이하게 하도록 컴퓨터 프로세스를 구현하는 컴퓨터 과학, 인공 지능, 및 컴퓨터 언어학의 분야이다. NLP는 컴퓨터들이 자연어 입력으로부터 컴퓨터로 이해할 수 있는 의미를 도출하도록 할 수 있다. 국제 표준화기구(international organization for standardization, ISO)는 NLP에 대한 표준들을 발표하고 있다. 이러한 표준의 예로, ISO/TC37/SC4가 있다. NLP의 일부로서, 컨텐츠 인식기(210)는 시맨틱 분석(semantic analysis)을 수행할 수 있다. 시맨틱 분석은, 구문 분석(parsing)을 따를 수 있고, 엔티티들, 명명된 엔티티들, 문장에서 언급된 엔티티들의 의미론적 역할, 및 카디널리티(cardinality), 반복(iteration), 및 종속성과 같은 정량화 정보를 포함하는, 문장의 의미에 대한 컨텍스트 독립적인 형태의 추출을 포함할 수 있다.
하나 이상의 실시 예들에서, 사용자 선호 데이터(220)는 특정 타입의 어시스턴스, 예를 들어, 일반 어시스턴스, 애플리케이션-특정 어시스턴스, 및/또는 애플리케이션-컨텐츠-특정 어시스턴스가 제공되는 경우의 조건들을 나타낼 수 있다. 특정 실시 예들에서, 사용자 선호 데이터(220)는, 상이한 타입들 각각의 어시스턴스가 표시될 장치(100)(또는 복수의 통신 가능하게 연결된 장치들)의 복수의 디스플레이들 중의 디스플레이를 나타낼 수 있다. 하나 이상의 실시 예들에서, 사용자 선호 데이터(220)는, 제공될 수 있는 상이한 타입들의 어시스턴스들 중에서 내비게이팅하기 위한 사용자 선호들을 나타낼 수 있다. 예를 들어, 사용자 선호 데이터(220)는 어떤 타입의 사용자 입력들(예를 들어, 제스처들)이 각 타입의 어시스턴스를 호출하고, 각 타입의 어시스턴스를 해제하고, 및/또는 장치(100)로 하여금 일 타입의 어시턴스를 표시하는 것으로부터 다른 것으로 및/또는 다시 표시하는 것으로 내비게이팅하도록 하기 위해 사용되는지를 나타낼 수 있다.
특정 실시 예들에서, 사용자 선호 데이터(220)는 예를 들어 임의의 어시스턴스 타입에 대해, 사용자가 어떤 타입의 어시스턴스를 수신하는 것에 관심이 있는지 명시할 수 있다. 사용자 선호 데이터(220)는 각 타입의 어시스턴스의 상대적 중요성을 명시할 수 있다. 이것은 어시스턴스 관리자(205)가 어떤 타입의 어시스턴스를 보여줄지를 선택할 수 있게 한다(예를 들어, 일반 어시스턴스, 애플리케이션-특정 어시스턴스, 애플리케이션-컨텐츠-특정 어시스턴스). 사용자 선호 데이터(220)는 또한 어시스턴스의 타입들을 구조화 및/또는 정렬하는 방법을 규정할 수 있다.
특정 실시 예들에서, 사용자 선호 데이터(220)는 사용자에 의해 수동으로 지정될 수 있다. 일반적으로, 사용자는 사용자 선호 데이터(220)를 제공함으로써, 제공된 다양한 타입들의 어시스턴스에 대한 이들 어시스턴스의 아이템들을 명시적으로 나타낼 수 있으며, 이에 따라 어시스턴스 플랫폼(200)이 사용자 선호 데이터(200)에 액세스하여 사용자가 원하는 아이템 및/또는 어시스턴스 타입을 정확하게 사용자에게 제공할 수 있다.
하나 이상의 실시 예들에서, 어시스턴스 데이터(225)는 각각의 상이한 타입의 어시스턴스에 대해 사용자에게 제공될 수 있는 컨텐츠 타입들을 규정할 수 있다. 예를 들어, 어시스턴스 데이터(225)는 일반 어시스턴스를 위해, 애플리케이션-특정 어시스턴스를 위해, 및/또는 애플리케이션-컨텐츠-특정 어시스턴스를 위해 표시될 또는 표시될 수 있는 다양한 정보 타입들 및/또는 바로가기들을 규정할 수 있다. 바로가기는 실행 가능한 프로그램 코드에 대한 링크를 제공하는 UI 내에서 표시되는 객체를 나타낸다. 실행 가능한 프로그램 코드는 애플리케이션이거나 또는 애플리케이션의 실행 가능한 동작일 수 있다.
하나 이상의 실시 예들에서, 사용자 행동 데이터(230)는 장치(100)에 대한 사용자의 과거 행동 패턴을 규정한다. 예를 들어, 사용자 행동 데이터(230)는 사용자에 의해 방문된 위치들의 패턴, 사용자에 의한 애플리케이션 사용 패턴, 및 장치(100)의 사용자의 다른 행동 특성을 특정할 수 있다. 특정 실시 예들에서, 사용자 행동 데이터(230)는 사용자가 어떤 타입의 어시스턴스와 상호 작용하는지를 특정할 수 있다. 예를 들어, 사용자 행동 데이터(230)는 사용자가 각각의 다른 타입의 어시스턴스와 상호 작용하는 빈도 및/또는 사용자가 각각의 다른 타입의 어시스턴스에 액세스하는 특정 조건들을 특정할 수 있다. 어시스턴스 관리자(205)는 이 정보를 결정하고, 데이터를 사용자 행동 데이터(230)에 유지시킬 수 있다.
예시적이고 비한정적인 예에서, 어시스턴스 관리자(205)는 사용자 선호 데이터(220), 어시스턴스 데이터(225), 및 사용자 행동 데이터(230)에 액세스하고, 사용자에게 일반 어시스턴스를 제공할 수 있다. 예를 들어, 어시스턴트 관리자(205)는 어떠한 애플리케이션도 디스플레이 또는 장치(100)의 프라이머리 디스플레이 상에 현재 표시되지 않는다는 것을 결정할 수 있다. 이러한 결정에 응답하여, 사용자 선호 데이터(220)에 의해 특정된 바와 같이, 예를 들어, 어시스턴스 관리자(205)는 어시스턴스 UI(215)를 통해 장치(100)의 디스플레이 상에 사용자를 위한 일반 어시스턴스를 표시할 수 있다. 사용자 선호 데이터(220)는 일반 어시스턴스가 제공되는 특정 디스플레이를 나타낼 수 있다. 어시스턴스 관리자(205)는 사용자 행동 데이터(230)에 기반하여 제공될 어시스턴스 타입을 결정할 수 있으며, 어시스턴스 데이터(225)로부터 표시할 컨텐츠의 아이템들(예를 들어, 정보 및/또는 바로가기)을 결정할 수 있다.
또 다른 예로서, 어시스턴스 관리자(205)는 사용자 선호 데이터(220)와 사용자 행동 데이터(230)의 조합을 사용하여, 제공될 특정 정보(예를 들어, 주식 시장 정보, 사용자가 다음에 이용할 가능성이 높은 애플리케이션, 및/또는 뉴스 헤드라인)를 결정할 수 있다. 어시스턴스 관리자(205)는 어시스턴스 데이터(225)를 이용하여, 이들 타입의 데이터 중의 일부 데이터(예를 들어, 관심있는 주식의 현재 가격 및/또는 선택된 뉴스 소스로부터의 탑 헤드라인)에 대한 컨텐츠를 제공할 수 있다. 사용자가 다음에 이용할 가능성이 높은 애플리케이션(들)을 위해, 어시스턴스 관리자(205)는 사용자 행동 데이터(230)에 액세스할 수 있다.
다른 예시적이고 비한정적인 예에서, 어시스턴스 관리자(205)는 애플리케이션(235)이 입력으로서 동작 및/또는 수신할 수 있는 객체 타입(들)을 나타내는 애플리케이션(235)으로부터 데이터를 수신할 수 있다. 또한, 어시스턴스 관리자(205)는 애플리케이션(235)으로부터 컨텍스트(240)를 수신할 수 있다. 어시스턴스 관리자(205)는 또한 통지 관리자(245)로부터 현재의 통지들을 수신할 수 있다. 어시스턴스 관리자(205)는 애플리케이션이 현재 실행 중인지 여부 및 그러한 애플리케이션이 현재 장치(100)의 디스플레이 상에 표시되는지 여부를 결정할 수 있다. 설명의 편의를 위해, 애플리케이션(235)은, 어시스턴스 관리자(205)가 현재 실행 중이고 장치(100)의 디스플레이 상에(예를 들어 프라이머리 디스플레이 상에) 현재 표시되는 것으로 결정한 애플리케이션이다. 따라서, 어시스턴스 관리자(205)는 애플리케이션-특정 어시스턴스 및/또는 애플리케이션-컨텐츠-특정 어시스턴스를 사용자에게 제공할 수 있다.
예시적이고 비한정적인 예로서, 어시스턴스 관리자(205)는 현재 애플리케이션이 어떤 객체 타입들을 수행하는지에 관한 정보를 이용하여 애플리케이션-특정 어시스턴스에 포함시킬 적합한 컨텐츠를 식별할 수 있다. 예를 들어, 현재 실행 중인 애플리케이션이 영화에 대한 동작들을 지원하는 경우, 어시스턴스 관리자(205)는 사용자는 현재 애플리케이션을 사용하여 동작할 수 있는 사용자가 이전에 저장한 영화의 목록을 보여줄 수 있다.
다른 예에서, 어시스턴스 관리자(205)는 하나 이상의 애플리케이션들에 의해 지원되는 동작들의 목록을 생성 및 저장할 수 있다. 예를 들어, 어시스턴스 관리자(205)는 API를 통해 어시스턴스 관리자(205)에 등록된 바와 같이, 설치된 애플리케이션들에 의해 지원되는 동작들의 목록을 생성할 수 있다. 어시스턴스 관리자(205)는 하나 이상의 애플리케이션들(예를 들어, 현재 실행 중인 애플리케이션 이외의 애플리케이션)에 의해 지원되는 동작들의 목록을 이용하여, 애플리케이션-컨텐츠-특정 어시스턴스를 제공할 수 있다. 예를 들어, 사용자가 애플리케이션 A에서 영화를 보고 있는 경우, 어시스턴스 관리자(205)는 애플리케이션 A에 의해 보여지는 영화에 대해 동작하기 위한 애플리케이션들 B, C, 및 D로부터의 바로가기들을 제공할 수 있다.
언급된 바와 같이, 어시스턴스 관리자(205)는 어시스턴스가 사용자 선호 데이터(220)로부터 제공되는 특정 디스플레이를 결정할 수 있다. 어시스턴스 데이터(225)로부터, 어시스턴스 관리자(205)는 제공될 각각의 상이한 타입의 어시스턴스에 대해 보여질 특정 데이터 항목(item)들을 결정할 수 있다. 어시스턴스 관리자(205)는 사용자 선호 데이터(220), 및/또는 사용자 행동 데이터(230), 및/또는 컨텐츠 인식기(210)에 기반하여 상이한 타입들의 어시스턴스 내에서 제공될 데이터 아이템들의 컨텐츠를 결정할 수 있다. 이해할 수 있는 바와 같이, 컨텐츠 인식기(210)는 어시스턴스 관리자(205)가 애플리케이션-컨텐츠-특정 어시스턴스를 제공하는 경우에 이용된다. 컨텐츠 인식기(210)는 일반 어시스턴스 또는 애플리케이션-특정 어시스턴스를 제공하기 위해 액세스될 필요가 없다.
도 3a 내지 도 3h는 일반 어시스턴스의 예들을 도시한다. 도 3a 내지 도 3h는 도 2의 어시스턴스 UI를 통해 장치(100)에 의해 표시되는 뷰들의 예들을 도시한다. 하나 이상의 실시 예들에서, 보여지는 뷰들은, 장치(100)의 세컨더리 디스플레이 상에 표시된다. 예를 들어, 장치(100)의 프라이머리 디스플레이는 장치(100)의 홈 스크린을 표시할 수 있다. 장치(100)의 프라이머리 디스플레이 상에 홈 스크린을 표시함과 동시에, 어시스턴스 플랫폼(200)은 도 3a 내지 도 3h에 도시된 뷰들 중 하나 이상을 세컨더리 디스플레이 상에 표시할 수 있다. 특정 실시 예들에서, 도 3a 내지 도 3h에 도시된 뷰들 각각은 특정 컨텍스트 또는 컨텍스트의 변화를 검출하는 것에 응답하여 자동적으로 표시된다.
특정 실시 예들에서, 어시스턴스 플랫폼(200)은 애플리케이션이 장치의 프라이머리 디스플레이 상에 표시되어 있지 않는다는 결정에 응답하여, 추가적으로는 특정 컨텍스트 또는 컨텍스트의 변화를 검출한 것에 응답하여, 개별적으로 또는 임의의 조합으로 도 3a 내지 도 3h에 도시된 뷰들 중 임의의 것을 표시하는 것과 같은 일반 어시스턴스를 제공할 수 있다. 애플리케이션이 장치의 프라이머리 디스플레이 상에 표시되지 않는 시나리오의 예는 장치의 홈 스크린이 프라이머리 디스플레이 상에 표시되어 있는 경우이다. 따라서, 도 3a 내지 도 3h와 관련하여 후술되는 예들과 관련하여, 어시스턴스 플랫폼(200)은 설명되는 조건들 하에서 및/또는 장치(100)의 프라이머리 디스플레이 상에 애플리케이션이 현재 표시되어 있지 않다는 결정에 응답하여, 일반 어시스턴스를 제공하는 것의 일부로서 도 3a 내지 도 3h의 뷰들을 표시할 수 있다.
도 3a는 현재의 컨텍스트 내의 시간 정보에 기반하여 사용자에 대한 일반 어시스턴스를 제공하는 예를 도시한다. 도 3a의 예에서, 이동 데이터(travel data)가 적시에 고려되고 사용자를 위한 일반 어시스턴스로서 제공된다. 어시스턴스 플랫폼(200)은 적시의 일반 어시스턴스로서 정보를 표시하기 위해, 사용자의 컨텍스트, 예를 들어 사용자의 현재 시간 및 현재 위치를 결정할 수 있다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 사용자 행동 데이터(230) 및 컨텍스트(240)(예를 들어, 현재 시간 및 현재 위치)에 기반하여 사용자가 집을 떠날 가능성이 높은 것으로 결정할 수 있다. 컨텍스트(240) 및 사용자 행동 데이터(230)(예를 들어, 사용자의 과거 이동 패턴)를 평가한 것에 응답하여, 선택적으로는 애플리케이션이 프라이머리 디스플레이 상에 표시되어 있지 않다는 결정에 응답하여, 어시스턴스 플랫폼(200)은 도 3a에 도시된 뷰를 표시한다.
도 3b는 현재의 컨텍스트 내의 시간 정보에 기반하여 사용자에 대한 일반 어시스턴스를 제공하는 다른 예를 도시한다. 도 3b의 예에서, 캘린더 데이터가 사용자에게 일반 어시스턴스로서 제공된다. 어시스턴스 플랫폼(200)은 적시의 일반 어시스턴스로서 정보를 표시하기 위해 사용자의 컨텍스트, 예를 들어 현재 시간을 결정할 수 있다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 사용자 캘린더 상의 다음 회의를 결정하기 위해 사용자에 대한 캘린더 데이터와 조합하여 컨텍스트(240)를 이용할 수 있다. 컨텍스트(240) 및 사용자에 대한 캘린더를 평가한 것에 응답하여, 선택적으로는 프라이머리 디스플레이 상에 어떠한 애플리케이션도 표시되어 있지 않다는 평가에 응답하여, 어시스턴스 플랫폼(200)은 도 3b에 도시된 뷰를 표시한다.
도 3c는 사용 빈도에 기반하여 사용자에게 일반 어시스턴스를 제공하는 예를 도시한다. 도 3c의 예에서, 금융 시장 데이터가 일반 어시스턴스로서 사용자에게 제공된다. 어시스턴스 플랫폼(200)은 사용자가 빈번하게 액세스하거나 또는 시간별, 일별, 주별, 월별, 또는 다른 적절한 시간 메트릭을 이용하여 계산된 임계값 사용 빈도를 초과하는 빈도를 가지는 데이터 및/또는 서비스들을 결정할 수 있다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 사용자 행동 데이터(230)(예를 들어, 애플리케이션 사용 이력)에 기반하여 사용자가 적어도 최소 빈도로 금융 시장을 확인(예를 들어, 금융 시장 웹페이지를 방문하거나 금융 시장 애플리케이션에 액세스)한 것을 결정한다. 따라서, 어시스턴스 플랫폼(200)은, 금융 시장 데이터에 대한 사용 빈도가 임계치를 초과하고 선택적으로는 애플리케이션이 프라이머리 디스플레이 상에 표시되어 있지 않은 것으로 결정한 것에 응답하여, 도 3c에 도시된 뷰를 표시할 수 있다.
다른 예시적인 예로서, 사용자 선호 데이터는 일반 어시스턴스의 일부로서 이용 가능하게 될 특정 데이터 및/또는 서비스들을 특정할 수 있다. 사용자는 사용자 선호 데이터 내에 저장되는 선호들을 수동으로 지정할 수 있다. 예를 들어, 사용자 선호 데이터는 금융 시장 데이터가 일반 어시스턴스 데이터의 일부로서 이용 가능하게 되도록 지정할 수 있다. 따라서, 어시스턴스 플랫폼(200)은 일반 어시스턴스의 일부로서 사용자 선호 데이터 내에 지정된 임의의 데이터를 제공할 수 있다.
도 3d는 사용 빈도에 기반하여 사용자에게 일반 어시스턴스를 제공하는 다른 예를 도시한다. 도 3d의 예에서, 건강 데이터는 일반적인 어시스턴스로서 사용자에게 제공된다. 어시스턴스 플랫폼(200)은 사용자가 건강 데이터(예를 들어, 일일 목표 대비 오늘 수행된 단계들의 수)에 적어도 최소 빈도로 액세스하는 것으로 결정한다. 따라서, 어시스턴스 플랫폼(200)은 건강 데이터의 사용 빈도가 임계값을 초과하고 선택적으로는 애플리케이션이 프라이머리 디스플레이 상에 표시되어 있지 않다는 결정에 응답하여, 도 3d에 도시된 뷰를 표시할 수 있다.
도 3e는 설정된 기준, 패턴, 또는 범위로부터 벗어나는 데이터를 검출하는 것에 기반하여 사용자에게 일반 어시스턴스를 제공하는 예를 도시한다. 어시스턴스 플랫폼(200)은 일반 어시스턴스를 제공하는 일부로서, 검출되는 차이들을 강조할 수 있다. 도 3e의 예에서, 날씨 데이터가 사용자에게 일반 어시스턴스로서 제공된다. 어시스턴스 플랫폼(200)은 사용자 행동 데이터(230) 및/또는 다른 이력 데이터에 저장된 설정된 기준들과 컨텍스트(240)(예를 들어, 날씨)를 비교할 수 있다. 따라서, 어시스턴스 플랫폼(200)은 컨텍스트(240), 또는 컨텍스트(240) 내의 데이터 항목이 비정상적이며(예를 들어, 정상 설정 범위를 벗어나는 경우), 선택적으로는 애플리케이션이 프라이머리 디스플레이 상에 표시되어 있지 않은 것으로 결정한 것에 응답하여, 도 3e에 도시된 뷰를 표시할 수 있다. 도 3e의 예에서, 어시스턴스 플랫폼(200)은 현재의 컨텍스트(예를 들어, 연중 시각 및 현재의 연중 시각에 대한 과거의 기상 조건)를 고려하여, 겨울 폭풍 경고가 비정상적인 것으로 결정한다.
도 3f는 설정된 기준, 패턴, 또는 범위로부터 벗어나는 데이터를 검출하는 것에 기반하여 사용자에게 일반 어시스턴스를 제공하는 다른 예를 도시한다. 도 3f의 예에서, 트래픽(traffic) 데이터가 일반적인 어시스턴스로서 사용자에게 제공된다. 어시스턴스 플랫폼(200)은 컨텍스트(240), 예를 들어 트래픽을, 사용자 행동 데이터(230) 및/또는 다른 소스로부터의 데이터에 저장된 설정된 기준과 비교할 수 있다. 어시스턴스 플랫폼(200)은 컨텍스트(240)와 사용자 행동 데이터(230)의 비교로부터, 현재의 트래픽 상태들(예를 들어, 사고의 발생)이 비정상적인 것으로(예를 들어, 확립된 정상 범위를 벗어나는 것으로) 결정할 수 있다. 따라서, 어시스턴스 플랫폼(200)은 컨텍스트(240), 또는 컨텍스트(240) 내의 데이터 항목이 비정상적이며(예를 들어, 확립된 정상 범위를 벗어남), 선택적으로는 애플리케이션이 프라이머리 디스플레이 상이 표시되어 있지 않다는 결정에 응답하여, 도 3f에 도시된 뷰를 표시할 수 있다.
도 3g는 상이한 타입들의 어시스턴스가 제공되는 일반 어시스턴스를 사용자에게 제공하는 예를 도시한다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 장치(100)의 사용자가 다음에 사용할 가능성이 높은 객체들의 목록을 결정한다. 사용자가 다음에 사용할 수 있고 어시스턴스 플랫폼(200)이 평가할 수 있는 객체들의 예로는 애플리케이션, 웹 페이지, 또는 사람(예를 들어, 연락처), 파일(예를 들어, 문서, 사진, 스프레드시트, 프레젠테이션), 서적, 또는 기타 컨텐츠를 포함하지만, 이에 한정되지 않는다. 도 3g의 예에서, 어시스턴스 플랫폼(200)은, 사용자가 다음에 사용할 가능성이 높은 다양한 객체들에 대한 링크 또는 바로가기를 제공한다. 도 3g를 참고하면, 각각의 바로가기가 A-H로 표시된 아이콘으로 나타나 있다. 각각의 아이콘 A-H는 아이콘에 의해 표현된 실행 가능한 동작(예를 들어, 프로그램 코드)의 실행을 개시하도록 사용자에 의해 선택 가능하다. 동작들은, 애플리케이션 실행, 적절한 애플리케이션을 사용한 파일 실행, 웹 사이트(예를 들어, URL) 실행, 또는 몇몇 다른 작업 수행을 포함할 수 있으며, 이에 한정되지 않는다.
도 3h는 다수의 상이한 타입들의 어시스턴스 컨텐츠가 장치(100)의 디스플레이 상에 동시에 보여지는 일반 어시스턴스를 제공하는 예를 도시한다. 도 3h의 예에서, 작업 목록(task list), 가정 자동화(home automation) 애플리케이션들 또는 애플리케이션들의 실행 가능한 동작들(예를 들어, 아이콘 A-D), 건강(health) 데이터, 캘린더 및/또는 이벤트 데이터, 및 수신된 전자 메일을 포함하는 일반 어시스턴스가 도시된다. 도 3h의 예에서, 장치(100)는 디스플레이(130)가 프라이머리 디스플레이이고 디스플레이(135)가 세컨더리 디스플레이인 듀얼-디스플레이 장치로서 구현된다. 도시된 바와 같이, 디스플레이(130)는 장치(100)에 대한 홈 스크린 뷰를 표시한다. 디스플레이(135)는 상술한 일반 어시스턴스를 제공한다. 논의된 바와 같이, 도 3a 내지 도 3h와 관련하여 설명된 다양한 타입들의 일반 어시스턴스가 디스플레이(135) 상에 표시될 수 있다.
하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 일반 어시스턴스로서 애플리케이션들에 의해 명시적으로 제공되는 컨텐츠를 제공할 수 있다. 예를 들어, 도 3h를 참고하면, 일반 어시스턴스를 위해 사용될 정보로서 작업 목록이 태스크 관리 애플리케이션에 의해서 명시적으로 제공될 수 있다. 작업 목록 또는 데이터의 서브세트는, API를 통해 애플리케이션으로부터 어시스턴스 플랫폼(200)에게 제공될 수 있다.
하나 이상의 실시 예들에서, 도 3h에 도시된 정보의 항목들 중 하나 이상이 사용자에 대한 활성 통지(active notification)들로부터 획득된다. 활성 통지는 사용자에 의해 아직 실행(예: 선택 또는 해제)되지 않은 통지이다. 도 2와 관련하여 이전에 설명된 바와 같이, 어시스턴스 플랫폼(200)은 통지 관리자(245)와 상호 작용하여 활성 통지를 획득할 수 있다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 하나 이상의 또는 모든 활성 통지들을 일반 어시스턴스로서 사용자에게 제공할 수 있다.
특정 실시 예들에서, 어시스턴스 플랫폼(200)은 활성 통지의 서브세트를 표시할 수 있다. 어시스턴스 플랫폼(200)은 모든 활성 통지들의 세트로부터 활성 통지들의 서브세트를 선택한다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 사용자 선호 데이터(220) 및/또는 어시스턴스 데이터(225)에서 특정된 선호들에 기반하여 활성 통지들의 서브세트를 선택한다. 사용자 선호 데이터(220) 및/또는 어시스턴스 데이터(225)는 일반 어시스턴스 내에, 만약 존재한다면, 어떤 타입의 활성 통지들이 포함되어야 하는지를 나타낼 수 있다. 예들은, 오늘 및/또는 내일의 기한이 있는 작업과 같은 선택된 작업들, 수행된 단계들과 같은 건강 데이터, 다음의 캘린더 이벤트, 또는 읽지 않은 전자 메일 메시지 목록을 포함할 수 있으나, 이에 한정되지 않는다.
하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 통지들 중 어느 것이 사용자에 의해 다음에 수행되거나 액세스될 것으로 여겨지는지에 기반하여 통지들의 서브세트를 선택한다. 다른 실시 예에서, 어시스턴스 플랫폼(200)은 사용자에 의한 액세스 빈도에 기반하여(예를 들어 액세스의 임계 빈도를 초과하는 액세스 빈도를 갖는 활성 통지가 디스플레이를 위해 선택되거나 최상위 "N"개의 통지들이 활성 통지들의 총 개수보다 작은 개수인 경우), 활성 통지들의 서브세트를 선택할 수 있다. 특정 실시 예들에서, 통지들에 대한 액세스 빈도는, 통지들의 서브세트를 선택하기 위해 어시스턴스 플랫폼(200)에 의해 이용될 수 있는 사용자 행동 데이터(230)에 의해 특정될 수 있다.
도 4a 내지 도 4d는 애플리케이션-특정 어시스턴스의 예들을 도시한다. 일반적으로 설명된 바와 같이, 애플리케이션-특정 어시스턴스는 사용자에 의해 수행되는 현재 작업과 관련된 정보 및/또는 동작들을 제공함으로써 사용자를 돕는다. 애플리케이션-특정 어시스턴스는, 사용자가 현재 실행 중이고 표시되는 애플리케이션을 사용하고 있다고 추정한다. 예를 들어, 애플리케이션은 장치(100)의 프라이머리 디스플레이 상에서 실행 중일 수 있다. 애플리케이션-특정 어시스턴스는, 실행 중이고 프라이머리 디스플레이 상에서 표시되는 애플리케이션과의 사용자 상호 작용을 촉진한다. 애플리케이션과의 사용자 상호 작용을 촉진하는 정보의 예들은, 애플리케이션의 실행 가능한 동작들 및 입력(들)로서 애플리케이션에 의해 수신될 수 있는 객체 타입들을 포함할 수 있으나, 이에 한정되지 않는다. 예시적이고 비한정적인 예로서, 어시스턴스 플랫폼(200)은 애플리케이션과 관련된 정보, 애플리케이션의 실행 가능한 동작들, 및/또는 애플리케이션과 관련되고 애플리케이션과의 사용자 상호 작용을 촉진할 가능성이 높은 다른 실행 가능한 동작들에 대한 바로가기들(예를 들어, 링크들)을 제공함으로써, 애플리케이션-특정 어시스턴스를 사용자에게 제공할 수 있다. 도 4a 내지 도 4d의 예들은 제공되는 애플리케이션-특정 어시스턴스에 의해 애플리케이션과의 사용자 상호 작용이 촉진되는 다양한 방법들을 도시한다.
하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 애플리케이션-특정 어시스턴스로서 제공하기 위한 어시스턴스의 타입들(예컨대, 바로가기들)을 결정하기 위해, 실행 애플리케이션의 엔트리 포인트(entry point)들에 액세스할 수 있다. 일반적으로, 엔트리 포인트는 운영 체제로부터 애플리케이션으로 또는 실행될 다른 프로그램 코드로 제어가 전환되는 위치를 지칭한다. 따라서, 어시스턴스 플랫폼(200)은 애플리케이션들에 대한 기존 엔트리 포인트들을 결정할 수 있고, 실행 애플리케이션의 엔트리 포인트들을 이용하여 해당 애플리케이션이 실행 중일 경우 애플리케이션-특정 어시스턴스로서 제공할 타입 정보를 결정할 수 있다.
특정 실시 예들에서, 애플리케이션들 및/또는 장치들 사이에서 데이터 및/또는 컨텐츠를 공유하기 위한 다른 프레임워크들이, 애플리케이션이 실행 중일 경우 애플리케이션-특정 어시스턴스로서 제공할 데이터의 타입을 결정하기 위해 어시스턴스 플랫폼(200)에 의해서 사용될 수 있다. 특정 실시 예들에서, 애플리케이션들은, 애플리케이션이 실행 중인 동안 애플리케이션-특정 어시스턴스로서 이용 가능하게 될 수 있거나 및/또는 이용 가능하게 되어야 하는 정보의 타입들을 어시스턴스 플랫폼(200)에게 통지할 수 있다. 애플리케이션들은 예를 들어 어시스턴스 플랫폼(200)에 의해 표시되는 API를 이용하여, 그러한 정보를 어시스턴스 관리자(205)에게 제공할 수 있다.
도 4a는 애플리케이션-특정 어시스턴스를 제공하는 일 예를 도시한다. 도 4a에 도시된 바와 같이, 장치(100)는 디스플레이(130) 상에서 애플리케이션을 실행 중이다. 도 4a의 예에서, 애플리케이션은 소셜 미디어 애플리케이션이다. 하나 이상의 실시 예들에서, 장치(100)는 디스플레이(135) 상에 애플리케이션-특정 어시스턴스를 자동적으로 표시한다. 예를 들어, 소셜 미디어(또는 다른 애플리케이션)가 실행되고 디스플레이(130) 상에 표시되는 것에 응답하여, 어시스턴스 플랫폼(200)은 디스플레이(135) 상에 애플리케이션-특정 어시스턴스를 생성하고, 제공한다.
도 4a의 예에서, 장치(100)는 디스플레이(135) 상에 제공되는 애플리케이션-특정 어시스턴스에 대한 다양한 아이템들을 결정한다. 도시된 바와 같이, 디스플레이(135)의 영역(402)에서, 어시스턴스 플랫폼(200)은 URL에 대응하는 하나 이상의 바로가기들을 표시한다. 디스플레이(135)의 영역(404)에서, 장치(100)는 하나 이상의 즐겨찾기 사람들, 예를 들어 연락처에 대응하는 하나 이상의 바로가기들을 표시한다. 영역(406)에서, 어시스턴스 플랫폼(200)은 장치(100)에 저장되거나 장치(100)에 이용 가능한 하나 이상의 사진들을 표시한다. 사진은 최근 찍은 사진이거나 최근 저장된 사진일 수 있다. 영역들(402, 404, 406)에 나타나는 아이템들 각각은, 그것이 선택될 경우 장치(100)가 그 애플리케이션의 아이템에 대해 적절한 동작을 수행하도록 하는 바로가기로서, 어시스턴스 플랫폼(200)에 의해 표시될 수 있다. 예를 들어, 바로가기의 선택은, 바로가기에 의해 표현된 아이템이 디스플레이(130) 상에서 실행되는 애플리케이션 내에서 열리도록 할 수 있다. 다른 예에서, 바로가기의 선택은, 특정인에 대한 메시지를 개시 또는 시작하거나, 선택된 바로가기에 의해 표현된 사진을 공유하기 위한 UI가 열리도록 하거나, 바로가기에 의해 표현된 URL을 공유하기 위한 UI가 열리도록 할 수 있다.
논의된 바와 같이, 어시스턴스 플랫폼(200)은 디스플레이(130) 상에 표시된 애플리케이션에 의해 입력으로서 수신되거나 및/또는 동작될 수 있는 객체 타입들을 결정할 수 있다. 결정에 응답하여, 어시스턴스 플랫폼(200)은 도 4a에 도시된 바와 같이 애플리케이션-특정 어시스턴스로서 결정된 객체 타입(들)의 객체들에 대한 바로가기들을 표시할 수 있다. 예를 들어, 장치(100)의 사용자는 디스플레이(130) 상에 실행 및 표시되는 소셜 미디어 애플리케이션을 통해 영역들(402, 404, 및/또는 406)에 나타나 있는 아이템들 중 하나 이상을 공유하도록 선택할 수 있다. 영역(402)으로부터 URL을 선택하는 것에 응답하여, 예를 들어, 선택된 URL이 디스플레이(130) 상에 표시된 애플리케이션에서 열리거나, 또는 URL을 공유하기 위한 UI가 표시될 수 있다. 예를 들어, 사용자 B와 같은 연락처를 선택하는 것에 응답하여, 디스플레이(130) 상에 표시된 애플리케이션에서 해당 연락처가 열릴 수 있으며, 이에 따라 장치(100)의 사용자는 디스플레이(130) 상에서 실행되는 애플리케이션을 통해 사용자 B에게 메시지하거나 연락할 수 있다. 다른 예에서, 연락처를 선택하는 것에 응답하여, 연락처에 대한 새로운 메시지가 디스플레이(130) 상에서 실행되는 애플리케이션에서 개시되거나 시작될 수 있다. 사진 3(photo 3)과 같은 사진을 선택하는 것에 응답하여, 선택된 사진이 디스플레이(130) 상에서 실행되는 애플리케이션에서 열림으로써(예를 들어, 업로드 또는 전송), 사용자는 선택된 사진을 게시할 수가 있다.
예시적이고 비한정적인 예로서, 장치(100)의 사용자가 전자 메일 또는 메시징 애플리케이션을 열어서 애플리케이션이 디스플레이(130) 상에 표시되는 것에 응답하여, 어시스턴스 플랫폼(200)은 하나 이상의 다른 사용자들(예를 들어, 연락처)에 대한 바로가기들과 같은, 애플리케이션-특정 어시스턴스를 디스플레이(135) 상에 표시할 수 있다. 디스플레이(135) 상의 애플리케이션-특정 어시스턴스로부터의 바로가기 선택에 응답하여, 디스플레이(130) 상에서 실행되는 애플리케이션은, 선택된 바로가기에 대응하는 사용자에게 메시지를 개시하는 것과 같은 동작을 실행할 수 있다.
다른 예시적이고 비한정적인 예로서, 장치(100)의 사용자가 디스플레이(130) 상에 브라우저 애플리케이션을 열은 것에 응답하여, 어시스턴스 플랫폼(200)은 이전에 저장된 URL들에 대응하는 바로가기들과 같은, 애플리케이션-특정 어시스턴스를 디스플레이(135) 상에 표시할 수 있다. 디스플레이(135) 상의 애플리케이션-특정 어시스턴스로부터의 URL 선택에 응답하여, 디스플레이(130) 상에서 실행되는 브라우저는 선택된 바로가기에 대응하는 URL에 의해 식별된 웹 페이지를 로딩할 수 있다.
도 4b는 애플리케이션-특정 어시스턴스를 제공하는 다른 예를 도시한다. 도 4b에 도시된 바와 같이, 장치(100)는 디스플레이(130) 상에 표시되는 애플리케이션을 실행 중이다. 도 4b의 예에서, 애플리케이션은 전자 메일 애플리케이션이다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 디스플레이(135) 상에 애플리케이션-특정 어시스턴스를 자동적으로 표시한다. 예를 들어, 전자 메일(또는 다른 애플리케이션)이 디스플레이(130) 상에서 실행되는 것에 응답하여, 장치(100)는 디스플레이(135) 상에 애플리케이션-특정 어시스턴스를 생성하고, 제공한다.
어시스턴스 플랫폼(200)은 본 개시에서 애플리케이션-특정 어시스턴스으로서 설명되는 다양한 타입들의 데이터 중 임의의 것을 제공할 수 있다. 또한, 어시스턴스 플랫폼(200)은 설명된 다양한 디스커버리 메커니즘 중 임의의 것을 이용하여, 제공될 데이터 아이템들의 특정 타입 및 컨텐츠를 결정할 수 있다. 도 4b의 예에서, 어시스턴스 플랫폼(200)은 영역(408) 내의 애플리케이션 A, B, C, 및 D에 대한 단축키들을 제공한다. 예를 들어, 어시스턴스 플랫폼(200)은 전자 메일 애플리케이션이 실행되어 디스플레이(130) 상에 표시되는 동안 가장 자주 이용되는 애플리케이션들을 결정할 수 있다. 예를 들어, 어시스턴스 플랫폼(200)은 과거 사용 데이터에 기반하여 장치(100)의 사용자가 적어도 최소 빈도로 전자 메일 애플리케이션과 동시에 애플리케이션 A, 애플리케이션 B, 애플리케이션 C, 및 애플리케이션 D를 사용하는 것으로 결정한다. 따라서, 어시스턴스 플랫폼(200)은 선택된 바로가기에 의해 표현된 애플리케이션을 실행하기 위해, 사용자에 의해 선택될 수 있는 바로가기들로서 애플리케이션들을 표시할 수 있다. 특정 실시 예들에서, 영역(408)으로부터 선택된 바로가기에 대응하는 애플리케이션이 실행되고 디스플레이(135) 상에 표시됨으로써, 해당 애플리케이션은 디스플레이(130) 상에 표시된 전자 메일 애플리케이션과 동시에 보일 수 있다.
예시적이고 비한정적인 예로서, 어시스턴스 플랫폼(200)은, 사용자가 전자 메일 애플리케이션을 사용하는 동안 자주 캘린더 애플리케이션을 사용하는 것으로 결정할 수 있다. 따라서, 어시스턴스 플랫폼(200)은 영역(408) 또는 디스플레이(135) 상의 다른 영역에 캘린더 애플리케이션을 실행하기 위한 바로가기를 표시할 수 있다. 캘린더 애플리케이션에 대한 바로가기는, 디스플레이(130) 상의 전자 메일 애플리케이션의 실행 및 표시에 응답하여 표시될 수 있다.
도 4c는 애플리케이션-특정 어시스턴스를 제공하는 다른 예를 도시한다. 도 4c에 도시된 바와 같이, 장치(100)는 디스플레이(130) 상에 표시되는 애플리케이션을 실행 중이다. 도 4c의 예에서, 애플리케이션은 웹 페이지를 표시하는 브라우저이다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 디스플레이(135) 상에 애플리케이션-특정 어시스턴스를 자동적으로 표시한다. 예를 들어, 브라우저가 디스플레이(130) 상에서 실행되는 것에 응답하여, 어시스턴스 플랫폼(200)은 디스플레이(135) 상에 애플리케이션-특정 어시스턴스를 생성하고, 제공한다.
도 4c의 예에서, 영역들(410, 412, 및 414)에 표시된 바로가기들은 사용자가 디스플레이(130) 상에 표시된 브라우저와 상호 작용할 수 있는 동작들의 예들을 도시한다. 예를 들어, 영역 410은 URL들을 나타내는 저장된 바로가기들을 표시한다. URL들은, 북마크들, 즐겨찾기 북마크들, 및/또는 자주 방문한 웹 페이지들(예를 들어, 사용자에 의해 북마크 또는 즐겨찾기로서 명시적으로 저장되지 않은 경우)일 수 있다. URL을 나타내는 바로가기(예를 들어, URL1)의 선택에 응답하여, 선택된 URL이 브라우저에게 제공되고, 로드된다. 영역(412)은 실행되고 디스플레이(130) 상에 표시되는 애플리케이션의 실행 가능한 동작들에 대응하는 바로가기들을 포함한다. 예를 들어, 영역(412)에 표시된 바로가기들은, 선택될 경우, 실행 가능한 동작들을 호출할 수 있고 및/또는 실행 가능한 동작을 호출하기 위해 디스플레이(130) 상에 표시된 애플리케이션에게 명령을 제공할 수 있다. 영역(412)에 도시된 바와 같은 실행 가능한 동작들의 예들은, "URL 저장(save URL)", "새로운 탭(new tab)", 및 "탭 보기(view tabs)"를 포함하지만, 이에 한정되지 않는다. 영역(412)은 어시스턴스 플랫폼(200)이 애플리케이션-특정 어시스턴스로서 애플리케이션의 실행 가능한 동작들을 더 표시할 수 있음을 도시한다. 어시스턴스 플랫폼(200)은 엔트리 포인트들, 다른 애플리케이션 간 및/또는 컨텐츠 공유 프레임워크들을 통해서, 또는 애플리케이션-특정 어시스턴스를 위해 이용될 수 있는 이용 가능한 특정 실행 가능 동작들 및/또는 명령들을 어시스턴스 플랫폼(200)에게 통지하는 애플리케이션에 의해서 실행 가능한 동작들을 결정할 수 있다. 영역(414)은 사용자가 종종 브라우저와 동시에 사용하는 애플리케이션들에 대한 바로가기를 표시한다.
다른 예시적이고 비한정적인 예에서, 디스플레이(130) 상에 실행되고 표시되는 애플리케이션이 전자 메일 애플리케이션인 경우, 어시스턴스 플랫폼(200)은 애플리케이션-특정 어시스턴스로서, 빈번하게 사용되는 연락처들에 대한 바로가기를 표시할 수 있다. 다른 예로서, 디스플레이(130) 상에 실행되고 표시되는 애플리케이션이 비디오 스트리밍 애플리케이션인 경우, 어시스턴스 플랫폼(200)은 애플리케이션-특정 어시스턴스로서, 다음에 보기 위한, 제안된 비디오들에 대응하는 바로가기들을 표시할 수 있다.
도 4d는 애플리케이션-특정 어시스턴스를 제공하는 다른 예를 도시한다. 도 4d에 도시된 바와 같이, 장치(100)는 디스플레이(130) 상에 표시되는 애플리케이션을 실행 중이다. 도 4d의 예에서, 애플리케이션은 뉴스 애플리케이션(news application)이다. 하나 이상의 실시 예들에서, 장치(100)는 디스플레이(135) 상에 애플리케이션-특정 어시스턴스를 자동적으로 표시한다. 예를 들어, 뉴스 애플리케이션이 디스플레이(130) 상에서 실행되는 것에 응답하여, 장치(100)는 디스플레이(135) 상에 애플리케이션-특정 어시스턴스를 생성하고, 제공한다.
하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 애플리케이션-특정 어시스턴스로서 정보 하이라이트들을 생성할 수 있다. 영역(416)에서, 어시스턴스 플랫폼(200)은 최상위 스토리들(top stories)을 표시할 수 있다. 예를 들어, 최상위 스토리들의 목록은, 뉴스 애플리케이션(news application)으로부터 직접 획득될 수 있다. 예를 들어, 디스플레이(130) 상에 표시된 뉴스 애플리케이션은, 어시스턴스 플랫폼(200)에 의해서 영역(416)에 바로가기들의 목록으로서 제공될 수 있는 최상위 스토리들을 특정하는 피드를 제공하거나 발행할 수 있다.
다른 예에서, 어시스턴스 플랫폼(200)은 당일 뉴스 하이라이트 목록을 획득하고, 영역(416)에서 각 하이라이트에 대한 바로가기를 제공할 수 있다. 이 경우, 어시스턴스 플랫폼(200)은 디스플레이(130) 상에 표시된 애플리케이션의 기능 또는 식별자에 기반하여, 디스플레이(130) 상에 표시된 애플리케이션 이외의 하나 이상의 소스들로부터 부가적인 정보를 결정할 수 있다.
영역(418)에서, 어시스턴스 플랫폼(200)은 뉴스 또는 주제의 다른 일반 카테고리들에 대한 바로가기들을 표시할 수 있다. 예를 들어, 어시스턴스 플랫폼(200)은 디스플레이(130) 상에 실행되고 표시되는 뉴스 애플리케이션에서 이용 가능한 뉴스 카테고리들의 목록을 획득할 수 있다. 어시스턴스 플랫폼(200)은 영역(418)에서 바로가기들로서 카테고리들을 표시할 수 있다. 영역(418)으로부터 바로가기의 선택에 응답하여, 어시스턴스 플랫폼(200)은 예를 들어, 가장 인기있는(most popular) 의견(opinion), 세계(world) 등의 뉴스들의 선택된 카테고리를 표시하도록 뉴스 애플리케이션(news application)에게 명령할 수 있다.
다른 예시적이고 비한정적인 예에서, 디스플레이(130) 상에 실행되고 표시되는 애플리케이션이 음악 또는 비디오 스트리밍 애플리케이션인 경우, 어시스턴스 플랫폼(200)은 디스플레이(135) 상에 애플리케이션-특정 어시스턴스로서 제공될 수 있는 음악 또는 비디오 스트리밍 애플리케이션(또는 서비스)로부터 새로운 컨텐츠의 목록을 획득할 수 있다.
도 5는 애플리케이션-컨텐츠-특정 어시스턴스를 제공하는 예를 도시한다. 도 5에 도시된 바와 같이, 장치(100)는 디스플레이(130) 상에서 애플리케이션을 실행 중이다. 도 5의 예에서, 애플리케이션은 뉴스 애플리케이션이고, 사용자는 영화와 관련된 컨텐츠를 보고 있다. 예를 들어, 애플리케이션은 "팝 음악의 역사(history of pop music"이라는 영화에 대한 리뷰를 표시하고 있을 수 있다. 하나 이상의 실시 예들에서, 장치(100)는 디스플레이(135) 상에 애플리케이션-컨텐츠-특정 어시스턴스를 자동적으로 표시한다. 예를 들어, 디스플레이(130) 상에서 실행되고 표시되는 애플리케이션 내의 특정 컨텐츠 아이템, 예를 들어 기사(article)를 선택하는 것에 응답하여, 장치(100)는 디스플레이(135) 상에 애플리케이션-컨텐츠-특정 어시스턴스를 생성하고, 제공한다.
논의된 바와 같이, 애플리케이션-컨텐츠-특정 어시스턴스는 장치(100)에 의해 표시되는 실행 애플리케이션 내에서 표시되는 컨텐츠에 관한 부가적인 정보를 제공한다. 어시스턴스 플랫폼(200)은 하나 이상의 바로가기로서 디스플레이(135) 상에 추가 정보를 제공할 수 있다. 바로가기가 선택될 수 있고, 이에 따라 디스플레이(130) 상에 표시된 컨텐츠와 관련된 동작이 개시될 수 있다. 하나 이상의 실시 예들에서, 바로가기의 선택을 통해 개시되는 동작은, 디스플레이(130) 상에 실행되고 표시되는 애플리케이션에 의해서 개시 및/또는 실행된다. 하나 이상의 실시 예들에서, 바로가기의 선택을 통해 개시되는 동작은, 디스플레이(130) 상에 실행되고 표시되는 다른 애플리케이션에서 개시 및/또는 실행된다.
도 5의 예에서, 장치(100)의 사용자는 뉴스 애플리케이션 내의 "팝 음악의 역사 "라는 제목의 영화에 대한 영화 리뷰를 읽게 된다. 어시스턴스 플랫폼(200)은 디스플레이(130) 상에 실행 및 표시되는 애플리케이션에 의해 표시되는 컨텐츠(예를 들어, 영화 리뷰)의 텍스트에 대한 시맨틱 분석을 수행할 수 있다. 이 경우, 어시스턴스 플랫폼(200)은 "팝 음악의 역사"라는 제목의 영화인 컨텐츠의 주제를 결정할 수 있다. 도시된 예에서, 어시스턴스 플랫폼(200)은 컨텐츠로부터 영화 "팝 음악의 역사"를 식별하고, 디스플레이(135) 상의 영역(420)의 윈도우(424)에 영화 "팝 음악의 역사"에 관한 실행 가능한 동작들을 위한 바로가기들을 애플리케이션-컨텐츠-특정 어시스턴스로서 제공하고 있다. 특히, 어시스턴스 플랫폼(200)은 "팝 음악의 역사"의 예고편을 재생하고, "팝 음악의 역사"에 대한 티켓을 구매하고, "팝 음악의 역사"를 시청하기 위한 바로가기들을 제공할 수 있다.
동작이 하나보다 많은 다른 소스 또는 애플리케이션을 통해 수행될 수 있는 경우들에 있어서, 하나보다 많은 소스, 애플리케이션, 및/또는 제공자에 대한 바로가기가 제공될 수 있다. 예를 들어, 어시스턴스 플랫폼(200)은 영화 "팝 음악의 역사"에 대한 예고편이 시청될 수 있는 상이한 소스들로서 바로가기들 1, 2, 및 3을 제공한다. 어시스턴스 플랫폼(200)은 영화 "팝 음악의 역사"에 대한 티켓을 구매할 수 있는 상이한 소스들로서 바로가기들 4 및 2를 제공할 수 있다(여기서, 소스 2는 예고편의 시청 및 티켓의 구매 모두를 제공한다). 어시스턴스 플랫폼(200)은 사용자가 영화 "팝 음악의 역사"를 볼 수 있는 상이한 소스들로서 바로가기들 5 및 6을 제공할 수 있다. 예를 들어, 바로가기들 5 및 6은 2개의 상이한 스트리밍 서비스들에 대응할 수 있다.
또한, 도 5의 예에서, 어시스턴스 플랫폼(200)은 "팝 음악의 역사"이라는 제목의 서적에 대응하는 윈도우(426)를 생성한다. 윈도우(426)는 부분적으로 표시된다. 윈도우(426)에서, 어시스턴스 플랫폼(200)은 "팝 음악의 역사"이라는 제목의 서적을 읽고, 구매하고, 및/또는 청취하기 위한 유사한 바로가기들을 제공할 수 있다. 사용자는 영역(420)에서 좌측 또는 우측으로 스와이프(swiping)함으로써 윈도우 424 및/또는 426에 액세스할 수 있다.
또한, 하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 "팝 음악의 역사"라는 제목의 영화 및/또는 서적에 관한 부가적인 정보를 제공할 수 있다. 이러한 부가 정보의 예들은, 개봉 날짜, 플롯 개요, 사용자 등급, 및 리뷰 요약을 포함할 수 있으며, 이에 한정되지 않는다. 특정 실시 예들에서, 어시스턴스 플랫폼(200)은 바로가기 또는 컨텐츠가 추후 동작을 위해 저장될 것을 요청하는 사용자 입력을 수신할 수 있다. 예를 들어, 사용자는 어시스턴스 플랫폼(200)가 현재의 컨텐츠, 예를 들어 타입을 "영화"로 규정하고 "팝 음악의 역사"의 제목을 가지는 데이터 또는 객체를 저장하도록 하는 제어부(미도시)를 선택할 수 있다. 어시스턴스 플랫폼(200)은 사용자의 요청에 따라, 이후의 재호출 및/또는 동작을 위한 개봉 데이터, 사용자 등급 등과 같은 영화에 관한 부가적인 정보를 저장할 수 있다는 것이 이해되어야 한다.
도 6a 및 도 6b는 애플리케이션 및 상이한 타입들의 어시스턴스 간의 내비게이팅의 예를 도시한다. 도 6a 및 도 6b의 예에서, "애플리케이션 A"로 지칭되는 애플리케이션이 실행되고, 디스플레이들(130 및 135) 모두에서 표시하도록 구성된다. 예시적이고 비한정적인 예로서, "애플리케이션 A"는 전자 독서 애플리케이션이다. 그러나, "애플리케이션 A"의 다른 예들은, 전자 메일 애플리케이션, 워드 프로세싱 애플리케이션, 및 캘린더 애플리케이션을 포함할 수 있으며, 이에 한정되지 않는다.
도 6a의 예에서, "애플리케이션 A"는 디스플레이(130)의 전체 및 디스플레이(135)의 영역(602)에 표시된다. 하나 이상의 실시 예들에서, 디스플레이(135)의 영역(604)은 제어부(606)와 같은 하나 이상의 제어부들을 표시하기 위해 예비되어 있다. 제어부(606)는 단 하나의 디스플레이에 의해 표시되도록 하거나 또는 애플리케이션(100)이 2개보다 많은 디스플레이들을 포함하는 경우 적어도 보다 적은 수의 디스플레이에 의해 표시되도록 하기 위해, 디스플레이들(130 및 135) 모두를 이용하여, "애플리케이션 A"가 표시되는 것으로부터 토글(toggle)되도록 할 수 있다. 예를 들어, 제어부(606)의 활성화에 응답하여, 어시스턴스 플랫폼(200)은 도 6b에 도시된 바와 같이 디스플레이(130) 상에만 "애플리케이션 A"를 표시한다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼(200)은 디스플레이(135)의 전체를 이용하여 "애플리케이션 A"를 표시할 수 있고, 제어부(606)는 표시된 애플리케이션의 상부에 플로팅되거나 중첩될 수 있다.
또한, 특정 실시 예들에서, 제어부(606)의 선택에 응답하여, 어시스턴스 플랫폼(200)은 애플리케이션-특정 컨텐츠 또는 애플리케이션-컨텐츠-특정 컨텐츠를 디스플레이(135) 상에서 제공할 수 있다. 예를 들어, 제어부(606)의 선택에 응답하여, 어시스턴스 플랫폼(200)은 "애플리케이션 A"에 대한 디스플레이 모드를, 디스플레이들(130 및 135) 모두에 표시되는 것으로부터 디스플레이(130)에만 표시되는 것으로 변경한다. 또한, 제어부(606)의 선택에 응답하여 및/또는 "애플리케이션 A"가 디스플레이(130) 상에 표시되고 디스플레이들(130 및 135) 모두에 더 이상 표시되지 않음을 검출한 것에 응답하여, 어시스턴스 플랫폼(200)은 애플리케이션-특정 어시스턴스 및/또는 애플리케이션-컨텐츠-특정 어시스턴스를 결정하고, 디스플레이(135) 상에 표시할 수 있다.
도 6b의 예에서, 제어부(608)가 제공된다. 제어부(608)는 어시스턴스 플랫폼(200)이 디스플레이들(130 및 135) 모두에 "애플리케이션 A"를 표시하도록 한다. 예를 들어, 제어부(608)의 활성화에 응답하여, 어시스턴스 플랫폼(200)은 "애플리케이션 A"에 대한 디스플레이 모드를, 디스플레이(130)에만 표시되는 것으로부터 디스플레이들(130 및 135) 모두에 걸쳐 표시되는 것으로 변경시킬 수 있다. 따라서, 제어부(608)의 선택에 응답하여, 장치(100)는 도 6a에 도시된 상태로 복귀할 수 있다. 이러한 방식으로, 사용자는 애플리케이션과 상호 작용하기 위해 다수의 디스플레이들을 사용하는 것과, 어떤 타입의 어시스턴스를 획득하기 위해 적어도 하나의 디스플레이를 사용하는 것을 전환할 수 있다.
하나 이상의 실시 예들에서, 도 6a 및 도 6b를 참고하면, 어시스턴트 플랫폼(200)이 애플리케이션-특정 어시스턴스 또는 애플리케이션-컨텐츠-특정 어시스턴스를 제공하는지 여부는 사용자에 의해 설정될 수 있는 선호 설정일 수 있다. 특정 실시 예들에서, 어시스턴스 플랫폼(200)은 동일한 디스플레이에서(예를 들어, 디스플레이(135) 상에서) 애플리케이션-특정 어시스턴스 및 애플리케이션-컨텐츠-특정 어시스턴스 모두를 제공할 수 있다. 제공되는 컨텐츠는, 디스플레이(135) 상에 표시될 수 있는 더 많은 어시스턴스가 이용 가능한 경우에 스크롤 가능한 뷰(scrollable view)로 제공될 수 있다.
도 7a 및 도 7b는 상이한 타입들의 어시스턴스 간의 내비게이팅의 예를 도시한다. 하나 이상의 실시 예들에서, 각각의 상이한 타입의 어시스턴스, 예를 들어, 일반 어시스턴스, 애플리케이션-특정 어시스턴스, 및 애플리케이션-컨텐츠-특정 어시스턴스는 상이한 오버레이에서 제공될 수 있다. 도 7a의 예에서, 애플리케이션-특정 컨텐츠가 디스플레이(135) 상에서 표시되는 동안, 애플리케이션은 디스플레이(130) 상에서 실행되고 표시된다. 왼쪽으로의 스와이프(swipe left) 또는 오른쪽으로의 스와이프(swipe right)와 같은 사용자 입력(702)에 응답하여, 도 7a에 도시된 애플리케이션-특정 어시스턴스에 대한 오버레이는 더 이상 표시되지 않으며, 이에 따라 도 7b에 도시된 바와 같은 일반 어시스턴스를 위한 오버레이가 드러난다. 따라서, 사용자는 일 타입의 어시스턴스로부터, 원하는 것일 수 있는 다른 어시스턴스 타입으로 수동으로 내비게이팅할 수 있다. 도 7b에 도시된 바와 같이 일반 어시스턴스를 위한 오버레이가 표시됨에 따라, 애플리케이션-특정 오버레이는 다른 사용자 입력에 응답하여 다시 표시될 수 있다. 예를 들어, 사용자 입력(702)의 반대 방향의 스와이프는 애플리케이션-특정 오버레이가 다시 표시되도록 할 수 있다.
하나 이상의 실시 예들에서, 상이한 오버레이들이 스택(stack)될 수 있으므로, 사용자는 다른 타입들의 어시스턴스를 이동 및 볼 수 있고, 일 오버레이로부터 다른 오버레이로 내비게이팅하거나 및/또는 다시 돌아갈 수 있다. 다른 예에서, 이용 가능한 오버레이들을 사이클링하기 위해, 사용자는 스와이프할 수 있다. 예시적이고 비한정적인 예로서, 사용자는 디스플레이(130) 상에 실행 및 표시되는 애플리케이션과 상호 작용할 수 있다. 어시스턴스 플랫폼(200)은 디스플레이(135) 상에 애플리케이션-컨텐츠-특정 어시스턴스 오버레이를 표시할 수 있다. 애플리케이션-컨텐츠-특정 어시스턴스 오버레이의 아래에 애플리케이션-특정 오버레이가 존재할 수 있다. 애플리케이션-특정 오버레이의 아래에 일반 어시스턴스 오버레이가 존재할 수 있다. 사용자는, 스택을 앞으로 및/또는 뒤로 이동하기 위해 제스처 또는 스와이프와 같은 사용자 입력을 제공함으로써, 상이한 오버레이들 사이를 내비게이팅할 수 있다. 특정한 실시 예들에서, 보다 구체적인 형태의 어시스턴스가 오버레이로서 제공될 때마다, 보다 일반적인 타입들의 어시스턴스가 이러한 방식으로 액세스될 수 있다.
다른 예시적이고 비한정적인 예에서, 사용자가 프라이머리 디스플레이 상에서 장치의 홈 스크린에 액세스할 경우, 어시스턴스 플랫폼(200)은 세컨더리 디스플레이 상에서 일반 어시스턴스를 제공할 수 있다. 사용자가 프라이머리 디스플레이 상에서 애플리케이션을 열 경우, 어시스턴스 플랫폼(200)은 일반 어시스턴스 오버레이 위에 애플리케이션-특정 어시스턴스 오버레이를 표시할 수 있다. 어시스턴스 UI의 이러한 기능을 통해 사용자는 애플리케이션-특정 어시스턴스에 직접 액세스할 수 있고, 일반 어시스턴스 오버레이에 신속하게 액세스하기 위해 오버레이를 멀리 슬라이드시킬 수 있다.
하나 이상의 실시 예들에서, 상이한 타입들의 어시스턴스가 상이한 탭들에서 제공될 수 있다. 디스플레이(135) 상에 탭 인터페이스(tabbed interface)를 제공함으로써, 사용자는 상이한 타입들의 어시스턴스 중 어느 하나에 액세스할 수 있다. 또한, 탭들이 디스플레이됨으로써, 사용자는 임의의 주어진 시간에 이용 가능한 특정 타입들의 어시스턴스를 인식할 수 있다. 특정 실시 예들에서, 상이한 타입들의 어시스턴스 중 하나 이상 또는 모두가 스크롤 가능한 단일의, 통합된 윈도우에 제공될 수 있다. 예를 들어, 이러한 윈도우가 디스플레이(135) 상에 표시될 수 있다. 스크롤 가능한 윈도우 내에서, 상이한 타입들의 어시스턴스에 대한 상이한 타입들의 데이터가 어시스턴스 타입에 따라 인터리브되거나(interleaved) 분리될 수 있다.
도 8은 어시스턴스를 제공하는 예시적인 방법(800)을 도시한다. 도 1 내지 도 7을 참고하여 본 개시에 설명된 전자 장치는 방법(800)에서 설명된 동작들을 수행할 수 있다. 도 8은 다양한 타입들의 어시스턴스를 사용자에게 제공하기 위해 설명된 전자 장치의 동작에 대한 예시적이고 비한정적인 예를 도시한 것이다. 도 8은 그러한 어시스턴스가 제공될 수 있는 상이한 조건들을 도시한다.
블록(802)에서, 장치는 현재의 컨텍스트를 결정할 수 있다. 현재의 컨텍스트는 다양한 상이한 타입들의 정보 중 임의의 것을 포함할 수 있다. 현재의 컨텍스트로서 메모리에 저장될 수 있는 상이한 타입들의 정보의 예들은, 사용자 및/또는 장치의 현재, 이전, 및/또는 추정되는 미래 위치(예를 들어, 과거의 움직임 패턴에 기반함); 현재 시간; 애플리케이션, 바로가기 및 다른 정보(예컨대, 컨텐츠) 액세스와 관련된 사용자의 장치 사용 패턴; 사용자의 캘린더; 현재 및/또는 미래 날씨; 및 현재 및/또는 과거 트래픽 패턴; 장치의 배향; 및 장치의 하나 이상의 다른 디스플레이들 대비 장치의 하나의 디스플레이의 위치 또는 각도를 포함할 수 있으며, 이에 한정되지 않는다.
하나 이상의 실시 예들에서, 현재의 컨텍스트는, 애플리케이션이 실행 중이고 프라이머리 디스플레이 상에 표시되는지 여부, 및, 긍정인 경우, 표시되는 특정 애플리케이션을 포함하거나 특정한다. 특정 실시 예들에서, 애플리케이션(본 개시에서 "프라이머리 애플리케이션"으로 지칭됨)이 실행 중이고 프라이머리 디스플레이 상에서 표시되는 경우, 현재의 컨텍스트는 프라이머리 애플리케이션의 명칭 또는 식별자를 특정한다. 특정 실시 예들에서, 현재의 컨텍스트는, 프라이머리 애플리케이션이 입력으로서 수신할 수 있고, 프라이머리 애플리케이션이 동작할 수 있는 객체 타입들을 특정한다. 특정 실시 예들에서, 현재의 컨텍스트는, 어시스턴스 플랫폼에 의해 호출될 수 있는 프라이머리 애플리케이션으로부터 이용 가능한 실행 가능한 동작들을 특정한다. 특정 실시 예들에서, 현재의 컨텍스트는, 컨텐츠가 애플리케이션에 의해 로딩되거나 및/또는 표시되는지 여부를 특정한다.
현재의 컨텍스트는, 프라이머리 애플리케이션, 장치의 운영 체제로부터 결정되거나 제공될 수 있고, 또는 어시스턴스 플랫폼에 의해 결정(예를 들어, 생성)될 수 있다. 하나 이상의 실시 예들에서, 현재의 컨텍스트의 하나 이상의 아이템들은 상이한 소스들에 의해 결정된다. 예를 들어, 현재의 컨텍스트의 하나 이상의 아이템들이 프라이머리 애플리케이션으로부터 결정되고, 현재의 컨텍스트의 하나 이상의 아이템들이 운영 체제에 의해 제공되고, 및/또는 현재의 컨텍스트의 하나 이상의 아이템들이 어시스턴스 플랫폼에 의해 직접 결정된다.
예시의 목적으로, 장치에 의한 현재의 컨텍스트의 결정이 방법(800)의 특정 블록에서 수행되는 것으로 도시된다. 하나 이상의 실시 예들에서, 현재의 컨텍스트는 다양한 시간들에서 및/또는 상이한 조건들에 응답하여 장치에 의해 결정될 수 있다. 예를 들어, 장치는 장치의 현재의 컨텍스트를 지속적으로(예를 들어, 계속적으로 또는 주기적으로) 결정 및/또는 업데이트할 수 있다. 장치는 특정 조건들 및/또는 이벤트들을 검출한 것에 응답하여 현재의 컨텍스트를 업데이트할 수 있다. 예를 들어, 장치는 사용자 입력에 응답하여 현재의 컨텍스트를 업데이트할 수 있다. 사용자 입력의 예들로는, 장치를 활성화시키는 것, 애플리케이션을 실행하거나 또는 프라이머리 애플리케이션으로서 상이한 애플리케이션을 실행하는 것, 미리 정해진 배향 및/또는 위치(예를 들어, 전술한 바와 같은 각도)에 장치를 배치하는 것, 또는 특정 어시스턴스 타입에 대한 요청을 포함한다. 어시스턴스 플랫폼은 현재의 컨텍스트의 변경에 대한 응답으로, 업데이트되거나 변경되는 어시스턴스(예를 들어, 일반 어시스턴스, 애플리케이션-특정 어시스턴스, 및/또는 애플리케이션-컨텐츠-특정 어시스턴스)를 제공할 수 있다. 하나 이상의 실시 예들에서, 현재의 컨텍스트의 변경은 프라이머리 애플리케이션에 의해 표시된 컨텐츠의 변경을 포함한다.
블록(804)에서, 장치는 홈 스크린이 프라이머리 디스플레이 상에 표시되는지 여부를 결정할 수 있다. 예를 들어, 어시스턴스 플랫폼은 장치가 활성 상태이고 디스플레이들 또는 적어도 프라이머리 디스플레이가 턴 온되어 있음을 검출할 수 있다. 이 경우, 어시스턴스 플랫폼은 프라이머리 디스플레이가 장치에 대한 홈 스크린을 표시하는지 여부를, 예를 들어 현재의 컨텍스트로부터 결정할 수 있다. 홈 스크린이 프라이머리 디스플레이 상에 표시되어 있는 경우, 방법(800)은 블록(806)으로 진행한다. 그렇지 않은 경우, 방법(800)은 블록(810)으로 진행한다.
블록(806)에서, 장치는 세컨더리 디스플레이 상에서 일반 어시스턴스를 제공한다. 하나 이상의 실시 예들에서, 일반 어시스턴스는 세컨더리 디스플레이 상에 표시되는 오버레이 내에서 제공된다. 오버레이는 장치의 사용자에게 어시스턴스를 제공하기 위한 정보 및/또는 바로가기들을 제공하기 위해 표시되는 윈도우 인터페이스 요소로서 구현될 수 있다. 하나 이상의 실시 예들에서, 장치는 홈 스크린이 프라이머리 디스플레이 상에 표시되어 있는 것을 검출한 것에 응답하여, 일반 어시스턴스를 제공할 수 있다.
블록(808)에서, 장치는 세컨더리 디스플레이 상에서 일반 어시스턴스의 일부로서 제공되는 하나 이상의 바로가기를 선택적으로 실행한다. 예를 들어, 사용자의 바로가기 선택에 응답하여, 어시스턴스 플랫폼은 바로가기를 실행할 수 있다. 블록(808) 이후에, 방법(800)은 블록(808)으로 되돌아가서 프로세싱을 계속할 수 있다.
블록(810)으로 계속되어, 장치는 애플리케이션이 실행되고 프라이머리 디스플레이 상에 표시되어 있는지 여부를 결정할 수 있다. 애플리케이션이 실행되고 프라이머리 디스플레이 상에 표시되었다는 결정에 응답하여, 방법(800)은 블록(812)으로 계속된다. 애플리케이션이 실행되어 프라이머리 디스플레이 상에 표시되어 있지 않다는 결정에 응답하여, 방법(800)은 블록(802)으로 되돌아가 프로세싱을 계속한다.
블록(812)에서, 장치는 애플리케이션-특정 어시스턴스를 제공할지 또는 애플리케이션-컨텐츠-특정 어시스턴스를 제공할지 여부를 결정한다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼은 저장된 선호들에 기반하여 제공할 어시스턴스 타입을 결정할 수 있다. 메모리에 저장된 선호들은, 애플리케이션-특정 어시스턴스가 제공될 경우 및 애플리케이션-특정 어시스턴스가 제공될 경우의 조건들 및/또는 환경들을 정의할 수 있다. 특정 실시 예들에서, 선호들은 사용자에 의해 조정 가능하다.
하나 이상의 실시 예들에서, 선호들은 애플리케이션마다 특정된다. 예를 들어, 애플리케이션이 프라이머리 디스플레이 상에 표시되어 있다는 결정에 응답하여, 어시스턴스 플랫폼은 선호들에서 애플리케이션을 조회하고 애플리케이션에 대한 엔트리에 기반하여 애플리케이션-특정 어시스턴스 또는 애플리케이션-컨텐츠-특정 어시스턴스를 구현할 수 있다. 각각의 애플리케이션은 나열된 다른 애플리케이션들과 독립적으로 제공되는 어시스턴스 타입에 대한 선호와 함께 개별적으로 선호들에 나열될 수 있다. 따라서, 특정 실시 예들에서, 어시스턴스 플랫폼에 의해 제공되는 어시스턴스 타입은 임의의 주어진 시간에 프라이머리 애플리케이션에 특정한 것이거나 이것에 커스터마이징된 것이다.
예시적이고 비한정적인 예로서, 선호들은 애플리케이션 A가 프라이머리 애플리케이션인 경우, 어시스턴스 플랫폼이 애플리케이션-특정 어시스턴스를 제공함을 나타낼 수 있다. 선호들은 애플리케이션 B가 프라이머리 애플리케이션인 경우, 어시스턴스 플랫폼이 애플리케이션-컨텐츠-특정 어시스턴스를 제공함을 나타낼 수 있다. 시간이 지남에 따라 상이한 애플리케이션들이 프라이머리 애플리케이션이 되기 때문에, 세컨더리 디스플레이(또는 애플리케이션을 현재 표시하는 디스플레이 이외의 디스플레이) 상에 표시되어 있는 애플리케이션-특정 어시스턴스 또는 애플리케이션-컨텐츠-특정 어시스턴스가 프라이머리 애플리케이션인 특정 애플리케이션과 일치하기 위해 자동으로 업데이트될 수 있다. 예를 들어, 애플리케이션 A가 프라이머리 애플리케이션이고 그 후에 애플리케이션 B가 애플리케이션 A를 대체하는 프라이머리 애플리케이션이 되는 경우, 어시스턴스 플랫폼은, 애플리케이션 A가 프라이머리 애플리케이션인 동안에 애플리케이션 A에 대한 애플리케이션-특정 어시스턴스(또는 애플리케이션-컨텐츠-특정 어시스턴스)를 표시하는 한편, 애플리케이션 B가 프라이머리 애플리케이션인 동안에 애플리케이션 B에 대한 애플리케이션-특정 어시스턴스(또는 애플리케이션 컨테츠-특정 어시스턴스)를 자동으로 표시한다.
또한, 특정 실시 예들에서, 선호들은 프라이머리 애플리케이션이 그 안에 로딩되는 컨텐츠를 가질 경우 어시스턴스 플랫폼이 애플리케이션-컨텐츠-특정 어시스턴스를 제공해야 하는지 여부와 같은 추가적인 조건들을 지정할 수 있다. 이 선호는 애플리케이션 별로 지정될 수 있다. 예시적이고 비한정적인 예에서, 애플리케이션 A가 프라이머리 애플리케이션이고 입력으로서 로딩된 파일과 같은 컨텐츠를 갖지 않는 경우(예를 들어, 컨텐츠를 표시하지 않는 경우), 선호들은 어시스턴스 플랫폼이 애플리케이션-특정 어시스턴스를 제공한다는 것을 나타낼 수 있다. 애플리케이션 A가 프라이머리 애플리케이션이고, 로딩된 컨텐츠를 가지며 및/또는 컨텐츠를 표시하고 있는 경우(예를 들어, 파일이 애플리케이션 A에 로딩된 경우), 선호들은 어시스턴스 플랫폼이 애플리케이션-컨텐츠-특정 어시스턴스를 제공하는 것으로 지정할 수 있다.
또한, 하나 이상의 실시 예들에서, 도 8에 도시되지는 않았지만, 선호들은 어시스턴스 플랫폼이 애플리케이션-컨텐츠-특정 어시스턴스와 애플리케이션-특정 어시스턴스 모두를 동일한 뷰 또는 오버레이에서 동시에 제공하는 것으로 지정할 수 있다. 특정 실시 예들에서, 데이터 및/또는 바로가기들이 애플리케이션-특정 어시스턴스로 또는 애플리케이션-컨텐츠-특정 어시스턴스로 간주되는지 여부에 기반하여, 데이터 및/또는 바로가기들은 오버레이 내에서 그룹화(예를 들어, 분리)될 수 있다. 특정 실시 예들에서, 상이한 타입들의 어시스턴스의 데이터 항목들 및/또는 바로가기들이, 표시된 오버레이 또는 뷰 내에서 혼합된다.
한정이 아닌 예시의 목적을 위해, 애플리케이션-특정 어시스턴스를 제공할지 또는 애플리케이션-컨텐츠-특정 어시스턴스를 제공할지 여부를 결정하는 추가의 예시적인 규칙들이 설명된다. 일 예에서, 장치는 명명된 엔티티들이 표시된 컨텐츠 내에서 발견될 수 있는지 여부를 결정할 수 있다. 긍정인 경우, 장치는 애플리케이션-컨텐츠-특정 어시스턴스를 제공할 수 있다. 예를 들어, 장치가 하나 이상의 명명된 엔티티들이 표시된 컨텐츠의 주제인 것으로 결정한 경우(예를 들어, 명명된 엔티티 또는 엔티티들이 여러 주제들에서 언급되고 주제 추출 기술이 그 주제들을 제안하는 경우), 장치는 애플리케이션-컨텐츠-특정 어시스턴스를 제공한다. 다른 예에서, 장치는 사용자가 명시적으로 또는 이전의 행동 및/또는 상호 작용을 통해 이전에 관심을 표명한 영화 또는 서적과 같은 명명된 엔티티들을 검출할 수 있다. 이러한 경우, 장치는 애플리케이션-컨텐츠-특정 어시스턴스를 제공할 수 있다.
다른 예에서, 장치는 사용자 선호에 기초하거나 사용자 행동에 기초한 추론을 통해 장치로부터 결정된 특정 사용자 지정 애플리케이션들에 대해서만 애플리케이션-컨텐츠-특정 어시스턴스를 제공할 수 있다. 다른 예에서, 장치는 그러한 어시스턴스에 대한 사용자 요청에 응답하여, 애플리케이션-컨텐츠-특정 어시스턴스를 제공할 수 있다. 장치는 표시되는 모든 컨텐츠에 대한 것이든 또는 표시되는 컨텐츠의 서브세트에 대한 것이든 관계없이 애플리케이션-컨텐츠-특정 어시스턴스를 제공할 수 있다.
하나 이상의 실시 예들에서, 장치는 애플리케이션과의 사용자 상호 작용을 촉진하는 정보를 결정하는 것에 응답하여, 애플리케이션-특정 어시스턴스를 제공할 수 있다. 상술한 바와 같이, 애플리케이션과의 사용자 상호 작용을 촉진하는 정보의 예들은, 애플리케이션의 실행 가능한 동작들 및 애플리케이션에 의해 입력으로서 수신될 수 있는 객체 타입들을 포함할 수 있으며, 이에 한정되지 않는다. 예를 들어, 애플리케이션에 대한 하나 이상의 등록된 동작들 및/또는 애플리케이션에 대한 입력으로서 수신될 수 있는 하나 이상의 등록된 객체 타입들을 검출하는 것에 응답하여, 장치는 이러한 정보를 애플리케이션-특정 어시스턴스로서 제공할 수 있다.
계속해서, 장치가 애플리케이션-특정 어시스턴스를 제공하는 경우, 블록(814)에서, 장치는 프라이머리 애플리케이션에 의해 입력으로서 수용 가능한(예를 들어, 수신될 수 있는) 객체 타입들을 결정할 수 있다. 예를 들어, 어시스턴스 플랫폼은 프라이머리 디스플레이 상에 실행 및 표시되는 애플리케이션이 동작 및/또는 입력으로서 수용할 수 있는 파일 타입들과 같은 데이터 타입들을 결정할 수 있다. 장치는 또한 프라이머리 디스플레이 상에서 실행 및 표시되어 있는 애플리케이션의 실행 가능한 동작들을 결정할 수 있다. 예를 들어, 장치는 현재 실행 중이며 프라이머리 디스플레이 상에 표시되어 있는 애플리케이션의 실행 가능한 동작들을 결정할 수 있으며, 이것은 애플리케이션-특정 어시스턴스 내에서의 바로가기들로서 사용 가능하게 될 수 있다.
블록(816)에서, 장치는 애플리케이션-특정 어시스턴스를 제공한다. 하나 이상의 실시 예들에서, 애플리케이션-특정 어시스턴스는 세컨더리 디스플레이 상에 제공되며, 프라이머리 디스플레이 상에 실행 및 표시되고 있는 애플리케이션과 동시에 보여진다. 애플리케이션-특정 어시스턴스는 실행 가능한 동작들 및/또는 객체들에 대한 정보 및/또는 바로가기들을 포함할 수 있다. 특정 실시 예들에서, 애플리케이션-특정 어시스턴스가 오버레이 상에 제공될 수 있다. 예를 들어, 애플리케이션-특정 어시스턴스 오버레이는 세컨더리 디스플레이 상에 일반 어시스턴스를 제공하는 오버레이 및/또는 애플리케이션-컨텐츠-특정 어시스턴스를 제공하는 오버레이 위에 표시되거나 중첩될 수 있다. 애플리케이션-특정 어시스턴스 오버레이는 도 4a 내지 도 4d와 관련하여 본 개시에서 설명된 바와 같이 하나 이상의 정보 아이템들 및/또는 바로가기들을 포함할 수 있다.
블록(818)에서, 장치는 애플리케이션-특정 어시스턴스로서 제공되거나 표시되는 하나 이상의 바로가기들을 선택적으로 실행하고 및/또는 상이한 어시스턴스 타입들 중에서 내비게이팅하기 위한 하나 이상의 요청들을 실행한다. 예를 들어, 사용자가 바로가기를 선택하는 것에 응답하여, 어시스턴스 플랫폼은 선택된 바로가기와 연관된 특정 동작의 실행을 개시하기 위해 필요한 임의의 데이터 및/또는 명령들에 대한 바로가기를 실행하거나 및/또는 애플리케이션을 제공할 수 있다. 다른 예에서, 사용자가 바로가기를 선택하는 것에 응답하여, 어시스턴스 플랫폼은 선택된 바로가기와 연관된 특정 동작의 실행을 개시하기 위해 필요한 임의의 데이터 및/또는 명령들에 대한 바로가기를 실행하거나 및/또는 다른 애플리케이션(예를 들어, 프라이머리 애플리케이션 이외의 애플리케이션)을 제공할 수 있다. 후자의 경우, 어시스턴스 시스템은 다른 애플리케이션을 먼저 실행할 수 있다. 다른 예에서, 상이한 타입의 어시스턴스로 내비게이팅하기 위한 사용자 요청, 예를 들어 사용자 입력에 응답하여, 어시스턴스 플랫폼은 현재 표시된 오버레이 상에 다른 상이한 어시스턴스 오버레이를 표시할 수 있으며 및/또는 현재 표시되어 있는 오버레이를 제거함으로써 다른 상이한 어시스턴스 오버레이를 나타낼 수 있다.
예시적이고 비한정적인 예로서, 애플리케이션-특정 어시스턴스 오버레이가 표시되는 경우, 애플리케이션 플랫폼은, 상이한 타입들의 이용 가능한 어시스턴스 중에서 내비게이팅하기 위한 사용자 요청에 응답하여, 세컨더리 디스플레이 상에서 애플리케이션-특정 어시스턴스 오버레이 위에 일반 어시스턴스 오버레이를 표시할 수 있다(또는 애플리케이션-특정 어시스턴스 오버레이를 제거하여 일반 어시스턴스 오버레이를 나타낼 수 있다). 다른 예시적이고 비한정적인 예에서, 어시스턴스 플랫폼은, 상이한 타입들의 이용 가능한 어시스턴스 중에서 내비게이팅하기 위한 사용자 입력 요청의 수신에 응답하여, 세컨더리 디스플레이 상에서 애플리케이션-특정 어시스턴스 오버레이 위에 애플리케이션-컨텐츠-특정 어시스턴스 오버레이를 표시할 수 있다(또는 애플리케이션-특정 어시스턴스 오버레이를 제거하여 애플리케이션-컨텐츠-특정 어시스턴스 오버레이를 나타낼 수 있다).
예를 들어, 장치는 세컨더리 스크린 상에서 실행 및 표시되는 애플리케이션을 결정할 수 있고, 그러한 애플리케이션이 동작할 수 있고 및/또는 입력으로서 수신할 수 있는 객체들을 결정할 수 있고, 지속적으로(예를 들어, 계속적으로 또는 주기적으로), 및/또는 특정 조건들 및/또는 이벤트들에 응답하여 애플리케이션의 실행 가능한 동작들을 결정할 수 있다. 예를 들어, 장치는 사용자 입력에 응답하여 그러한 정보를 결정할 수 있다. 사용자 입력의 예들로는, 장치를 활성화시키는 것, 애플리케이션을 실행하거나 또는 프라이머리 디스플레이 상에 이전에 실행되어 표시되어 있는 것과 다른 애플리케이션을 실행하는 것, 미리 정해진 배향 및/또는 위치(예를 들어, 상술한 바와 같은 각도)에 장치를 배치하는 것, 또는 특정 어시스턴스 타입에 대한 요청에 대한 응답으로의 것을 포함할 수 있다.
어시스턴스 플랫폼은 프라이머리 디스플레이 상에서 실행 및 표시되어 있는 애플리케이션에서의 임의의 변경 사항을 검출한 것에 응답하여, 이러한 애플리케이션이 입력으로서 동작 및/또는 수신할 수 있는 객체들의 타입에서의 임의의 변경 사항을 검출한 것에 응답하여, 및/또는 애플리케이션으로부터 제공되거나 이용 가능한 실행 가능한 동작들에서의 임의의 변경 사항을 검출한 것에 응답하여, 제공되는 애플리케이션-특정 어시스턴스를 자동으로 업데이트할 수 있다. 예를 들어, 어시스턴스 플랫폼은 실행 중인 애플리케이션, 입력으로서 수용될 수 있는 객체들의 타입 및/또는 애플리케이션의 특정 동작 상태에 기반하여 애플리케이션-특정 어시스턴스에서 바로가기로 사용 가능한 정보 및/또는 동작들을 변경할 수 있다.
블록(818) 후에, 방법(800)은 블록(802)으로 되돌아가서 프로세싱을 계속할 수 있다.
블록(820)으로 계속하여, 어시스턴스 플랫폼이 애플리케이션-컨텐츠-특정 어시스턴스를 제공하는 경우, 장치는 프라이머리 디스플레이 상에서 실행 및 표시되어 있는 애플리케이션에 의해 입력으로서 수용될 수 있는(예를 들어, 수신될 수 있는) 객체 타입들을 결정한다. 예를 들어, 어시스턴스 플랫폼은 프라이머리 애플리케이션이 입력으로서 동작 및/또는 수용할 수 있는 파일 타입과 같은 데이터의 타입들을 결정할 수 있다. 장치는 또한 프라이머리 애플리케이션의 실행 가능한 동작들을 결정할 수 있다. 예를 들어, 장치는 애플리케이션-특정 어시스턴스 내에서 바로가기로 사용 가능하게 될 수 있는 프라이머리 애플리케이션의 실행 가능한 동작들을 결정할 수 있다. 장치는 또한 프라이머리 디스플레이에서 실행 및 표시되어 있는 프라이머리 애플리케이션에 의해 표시되거나 및/또는 제공되는 컨텐츠를 결정할 수 있다. 예를 들어, 장치는 프라이머리 애플리케이션에 의해 프라이머리 디스플레이 상에 로드되어 표시되는 파일의 부분들을 결정할 수 있다.
블록(822)에서, 어시스턴스 플랫폼은 프라이머리 애플리케이션에 의해 표시된 컨텐츠의 시맨틱 분석을 수행할 수 있다. 하나 이상의 실시 예들에서, 어시스턴스 플랫폼은 프라이머리 애플리케이션과 상호 작용하여 관심 대상인 컨텐츠를 식별할 수 있다. 예를 들어, 어시스턴스 플랫폼은 프라이머리 애플리케이션에 의해 표시된 컨텐츠가 영화를 설명하거나 영화와 관련있다는 것을 식별할 수 있다. 논의된 바와 같이, 시맨틱 분석은 텍스트 및/또는 애플리케이션에 현재 보이는 이미지들에 대해 수행될 수 있다. 특정 실시 예들에서, 어시스턴스 플랫폼은 표시된 텍스트로부터 후보 컨텐츠를 식별하기 위해 명명된 엔티티 데이터베이스를 사용함으로써 컨텐츠를 인식할 수 있는 한편, 객체 인식을 사용하여 이미지들 내의 후보 컨텐츠를 식별할 수 있다.
다른 예시적이고 비한정적인 예에서, 어시스턴스 플랫폼은 애플리케이션 자체의 아이덴티티를 사용하여 표시되는 컨텐츠 타입을 필터링할 수 있다. 어시스턴스 플랫폼은 프라이머리 애플리케이션의 타입, 기능, 또는 카테고리가 될 수 있다. 예를 들어, 어시스턴스 플랫폼은 프라이머리 애플리케이션을 로컬 비즈니스 검토용 애플리케이션으로 인식할 수 있다. 따라서, 어시스턴스 플랫폼은 하나 이상의 서적 제목이 프라이머리 애플리케이션에 표시된 컨텐츠와 관련이 있다고 결정한 것에도 불구하고, 애플리케이션이 서적과 관련될 가능성이 없는 것으로 결정하고 그 서적과 관련된 애플리케이션-컨텐츠-특정 어시스턴스를 제공하지 않도록 할 수 있다.
블록(824)에서, 장치는 애플리케이션-컨텐츠-특정 어시스턴스를 제공한다. 하나 이상의 실시 예들에서, 애플리케이션-컨텐츠-특정 어시스턴스는 세컨더리 디스플레이 상에 제공되며, 프라이머리 애플리케이션 상의 프라이머리 애플리케이션과 동시에 표시된다. 특정 실시 예들에서, 애플리케이션-컨텐츠-특정 어시스턴스가 오버레이로서 제공될 수 있다. 예를 들어, 애플리케이션-특정 어시스턴스 오버레이는 세컨더리 디스플레이 상에 일반 어시스턴스를 제공하는 오버레이 위에 표시되거나 중첩될 수 있다. 애플리케이션-컨텐츠-특정 어시스턴스 오버레이는 도 5와 관련하여 본 개시에서 설명된 바와 같이 하나 이상의 정보 아이템 및/또는 바로가기들을 포함할 수 있다.
블록(826)에서, 장치는 선택적으로 애플리케이션-컨텐츠-특정 어시스턴스로서 제공되거나 표시되는 하나 이상의 바로가기를 실행하고 및/또는 상이한 어시스턴스 타입들 사이를 내비게이팅하는 하나 이상의 요청들을 실행한다. 예를 들어, 사용자가 바로가기를 선택한 것에 응답하여, 어시스턴스 플랫폼은 바로가기를 실행할 수 있다. 어시스턴스 플랫폼은 선택된 바로가기와 연관된 특정 동작의 실행을 개시하는데 필요한 임의의 데이터 및/또는 명령들을 애플리케이션에게 제공할 수 있다. 다른 예에서, 사용자가 바로가기를 선택하는 것에 응답하여, 어시스턴스 플랫폼은 바로가기를 실행하고 및/또는 선택된 바로가기와 연관된 특정 동작의 실행을 개시하는데 필요한 임의의 데이터 및/또는 명령들에 대한 바로가기를 실행하거나 및/또는 다른 애플리케이션(예를 들어, 프라이머리 애플리케이션 이외의 애플리케이션)을 제공한다. 후자의 경우, 어시스턴스 시스템은 다른 애플리케이션을 먼저 실행할 수 있다. 다른 예에서, 상이한 타입의 어시스턴스로 내비게이팅하기 위한 사용자 요청, 예를 들어 사용자 입력에 응답하여, 어시스턴스 플랫폼은 현재 표시된 오버레이 상에 다른, 상이한 어시스턴스 오버레이를 표시할 수 있다.
예시적이고 비한정적인 예로서, 애플리케이션-컨텐츠-특정 어시스턴스 오버레이가 표시되는 경우, 애플리케이션 플랫폼은, 상이한 타입들의 가용 어시스턴스 사이에서 내비게이팅하기 위한 사용자 요청에 응답하여, 세컨더리 디스플레이 상에서 애플리케이션-컨텐츠-특정 어시스턴스 오버레이 위에 일반 어시스턴스 오버레이를 표시할 수 있다(또는 애플리케이션-컨텐츠-특정 어시스턴스 오버레이를 제거하여 일반 어시스턴스 오버레이를 나타낼 수 있다). 다른 예시적이고 비한정적인 예에서, 어시스턴스 플랫폼은, 상이한 타입들의 가용 어시스턴스 사이에서 내비게이팅하기 위한 사용자 입력 요청 수신에 응답하여, 세컨더리 디스플레이 상에서 애플리케이션-컨텐츠-특정 어시스턴스 오버레이 위에 애플리케이션-특정 어시스턴스 오버레이를 표시할 수 있다(또는 애플리케이션-컨텐츠-특정 어시스턴스 오버레이를 제거하여 애플리케이션-특정 어시스턴스 오버레이를 나타낼 수 있다).
예시의 목적으로, 애플리케이션에 의해 표시된 컨텐츠의 시맨틱 분석이 방법(800)의 특정 블록에서 수행되는 것으로 도시된다. 하나 이상의 실시 예들에서, 프라이머리 애플리케이션에 의해 표시된 컨텐츠의 시맨틱 분석 및/또는 이미지 처리는 다양한 시간들에서 및/또는 본 개시에서 일반적으로 설명된 상이한 조건들에 응답하여 수행될 수 있다. 예를 들어, 장치는 자동 방식으로 지속적으로(예를 들어, 계속적으로 또는 주기적으로), 및/또는 사용자 입력들을 포함하는 특정 조건들 및/또는 이벤트들에 응답하여 그러한 정보를 결정할 수 있다. 이벤트의 예들로는 이전에 표시된 것과 다른 컨텐츠를 표시하는 프라이머리 애플리케이션(완전히 새로운 컨텐츠 로딩 또는 동일한 컨텐츠나 파일의 다른 부분들을 표시하기 위한 컨텐츠 스크롤)을 포함할 수 있다. 어시스턴스 플랫폼은 설명된 정보에 있어서의 임의의 변경 사항을 검출한 것에 응답하여 제공되는 애플리케이션-컨텐츠-특정 어시스턴스를 자동으로 업데이트할 수 있다. 예를 들어, 어시스턴스 플랫폼은 프라이머리 애플리케이션에 의해 표시된 컨텐츠의 변경 또는 수정을 검출한 것에 기반하여, 애플리케이션-컨텐츠-특정 어시스턴스에서 바로가기로 사용할 수 있는 정보 및/또는 동작들을 변경할 수 있다.
도 8은 단지 예시의 목적으로 제공된다. 따라서, 도 8과 관련하여 기술된 예들은 제한적인 것으로 해석되어서는 안된다. 하나 이상의 실시 예들에서, 예를 들어, 어시스턴스 플랫폼은 어시스턴스에 대한 사용자 요청에 응답하여 어시스턴스를 제공할 수 있다. 또한, 어시스턴스 플랫폼은 수신된 사용자 입력에 의해 구체적으로 요청되는 경우, 특정 타입의 어시스턴스를 제공할 수 있다. 특정 실시 예들에서, 어시스턴스 플랫폼은 디스플레이 상의 임의의 위치에 표시되는 컨텐츠, 사용자에 의해 명시적으로 선택되는 컨텐츠, 또는 사용자에 의해 선택된 디스플레이 영역 내의 컨텐츠에 대한 어시스턴스를 제공할 수 있다.
특정 실시 예들에서, 어시스턴스 플랫폼은 장치를 통해 사용자로부터 수신된 피드백에 기반하여, 사용자들에게 제공되는 어시스턴스를 개선(refine)할 수 있다. 하나 이상의 실시 예들에서, 이 피드백은 암시적이다. 예를 들어, 어시스턴스 플랫폼은 사용자가 어시스턴스 컨텐츠(또는 어시스턴스 컨텐츠를 제공하는 애플리케이션)를 보거나 상호 작용하는 빈도를 결정할 수 있다. 어시스턴스 플랫폼은 사용자가 보다 빈번하게 상호 작용하는 어시스턴스 컨텐츠를 제공하거나 표시할 수 있다. 어시스턴스 플랫폼은 사용자가 그러한 어시스턴스 컨텐츠 아이템들과 덜 빈번하게 상호 작용한다고 결정한 것에 응답하여, 어시스턴스 컨텐츠 아이템들이 제공되는 빈도를 감소시킬 수 있다.
하나 이상의 실시 예들에서는, 피드백이 명시적이다. 예를 들어, 어시스턴스 플랫폼은 사용자가 보고자 하는 특정 어시스턴스 컨텐츠 및 어시스턴스 컨텐츠가 제공되어야 하는 조건들(예를 들어, 어시스턴스 컨텐츠를 제공하기 위해 어시스턴스 플랫폼에 의해 자동으로 검출될 수 있는 조건들)을 나타내는 하나 이상의 사용자 입력들에 의해 특정된 데이터를 수신할 수 있다. 어시스턴스 플랫폼은 사용자가 보고 싶어하지 않거나 자주 보지 않을 가능성이 높은 특정 어시스턴스 컨텐츠를 나타내는 사용자 입력들로부터 데이터를 수신할 수도 있다. 또한, 데이터는 특정 어시스턴스 컨텐츠가 어시스턴스 플랫폼에 의해 제공되어서는 안되는 특정 조건들을 특정할 수 있다.
본 개시에서, 장치가 다수의 디스플레이들을 가지는 실시 예가 설명된다. 설명된 예들에서, 장치는 듀얼-디스플레이 장치이다. 하나 이상의 실시 예들에서, 장치는 2 개보다 많은 디스플레이들을 가진다. 특정 실시 예들에서, 장치는 3개의 디스플레이들을 가진다. 이 경우, 제1 디스플레이는 애플리케이션과의 1차 상호 작용을 지원할 수 있고(예를 들어, 실행 중인 애플리케이션을 표시하는 것), 제2 디스플레이는 애플리케이션-특정 및/또는 애플리케이션-컨텐츠-특정 어시스턴스를 제공할 수 있고, 제3 디스플레이는 일반 어시스턴스를 제공할 수 있다.
하나 이상의 실시 예들에서, 장치는 4개의 디스플레이들을 가진다. 이 경우, 어시스턴스 플랫폼은 각각의 상이한 타입의 어시스턴스를 다른 디스플레이, 예를 들어 제2, 제3, 및 제4 디스플레이에게 할당할 수 있다. 제1 디스플레이는 홈 스크린을 제공하고 및/또는 실행 중인 애플리케이션을 표시하는 것에 할당될 수 있다. 또 다른 실시 예에서, 장치는 특정 어시스턴스 타입에 대한 추가 컨텐츠를 보여주고 어시스턴스 타입들 간에 전환하는 상호 작용 방법을 제공하기 위해, 하나 이상의 추가적인 디스플레이들을 포함하거나 이용할 수 있다.
특정 실시 예들에서, 본 개시에서 설명된 기술들은 단일 디스플레이를 갖는 장치에 적용될 수 있다. 예를 들어, 어시스턴스에 대한 액세스 및 상이한 타입들의 어시스턴스가 하드웨어 제어부(예를 들어, 하드웨어 버튼)를 통해 및/또는 디스플레이의 특정 영역으로 스와이프하는 것과 같은 미리 결정된 제스처를 제공함으로써 또는 다른 사용자 입력을 제공하는 것에 의하는 것과 같은 소프트웨어 제어를 통해 제공될 수 있다. 예시적이고 비한정적인 예로서, 사용자는 디스플레이 상에 표시된 현재의 애플리케이션 또는 홈 스크린과, 하드웨어 제어, 소프트웨어 제어를 통해, 및/또는 디스플레이의 특정 영역에서 제스처를 수행하는 것에 의한 하나 이상의 타입의 어시스턴스 사이에서 전환할 수 있다.
특정 실시 예들에서, 장치가 대형 디스플레이, 예를 들어 태블릿 컴퓨터, 랩탑 컴퓨터 또는 텔레비전을 가지는 단일 스크린 장치로서 구현되는 경우, 하나 이상의 어시스턴스 인터페이스들이 디스플레이 주위에 위치되고 표시될 수 있다. 예를 들어, 어시스턴스 플랫폼은 디스플레이의 에지 또는 에지들 상에 위치된 하나 이상의 사이드바 또는 오버레이로서 어시스턴스 UI를 생성할 수 있다. 사이드바는 고정 크기, 확장 가능성, 및/또는 접이성을 가질 수 있다. 다른 예에서, 특정 사이드바(예를 들어, 하나의 사이드바)는, 하나 이상의 상이한 타입들의 어시스턴스를 포함할 수 있다. 다른 예에서, 어시스턴스 UI는 사용자가 디스플레이 주위를 이동할 수 있는, 크기 변경 가능하고 및/또는 이동 가능한 윈도우로서 구현될 수 있다. 윈도우는 하나 이상의 상이한 타입들의 어시스턴스를 포함할 수 있다. 또한, 여러 윈도우들이 동시에 이용 가능할 수 있다.
하나 이상의 실시 예들에서, 장치는 단일 스크린을 포함하고 어시스턴스를 제공할 수 있는 다른 장치에 통신 가능하게 링크된다. 어시스턴스 플랫폼은 어시스턴스가 제1 장치에 통신 가능하게 링크된 제2 별개 장치에 위치한 세컨더리 디스플레이 상에 표시되는 동안, 제1 장치 내의 프라이머리 디스플레이 상에서 실행 중인 홈 스크린 및/또는 애플리케이션을 표시할 수 있다. 예를 들어, 제2 장치는 어시스턴스 정보를 표시하거나 제공하기 위한 어시스턴스 정보 및/또는 명령들을 수신하기 위해 어시스턴스 플랫폼과 상호 작용할 수 있는 클라이언트 소프트웨어를 포함할 수 있다.
일 예에서, 프라이머리 디스플레이를 포함하는 제1 장치는 랩탑 또는 다른 컴퓨터 시스템이고, 세컨더리 디스플레이는 프라이머리 디스플레이를 가진 제1 장치에 통신 가능하게 링크된 스마트폰, 태블릿 컴퓨터, 또는 스마트 시계 내에서 구현된다. 세컨더리 디스플레이를 포함하는 제2 장치는 일반 어시스턴스, 애플리케이션-특정 어시스턴스 및/또는 애플리케이션-컨텐츠-특정 어시스턴스를 제공할 수 있다. 다른 예에서, 프라이머리 디스플레이, 예를 들어 랩탑 또는 다른 컴퓨터를 포함하는 제1 장치는 하나 이상의 애플리케이션을 표시할 수 있는 반면, 제2 장치(예를 들어, 스마트폰)의 세컨더리 디스플레이는 애플리케이션-특정 어시스턴스를 표시할 수 있고, 제 3 장치(예를 들어, 태블릿 컴퓨터)의 다른 세컨더리 디스플레이는 애플리케이션-컨텐츠-특정 어시스턴스를 표시할 수 있다.
다른 예에서, 프라이머리 디스플레이를 포함하는 제1 장치는 스마트폰이고, 제2 디스플레이는 스마트폰에 통신 가능하게 링크된 스마트 시계에 포함된다. 스마트 시계는 일반 어시스턴스, 애플리케이션-특정 어시스턴스 및/또는 애플리케이션-컨텐츠-특정 어시스턴스를 표시할 수 있다.
다른 예에서, 제1 장치는 하나 이상의 애플리케이션을 실행 및/또는 표시할 수 있는 텔레비전이다. 텔레비전은 어시스턴스 플랫폼을 실행할 수 있다. 사용자는 텔레비전 상의 하나 이상의 애플리케이션과 상호 작용할 수 있다. 세컨더리 디스플레이를 포함하는 제2 장치는 랩탑 컴퓨터, 태블릿 컴퓨터, 스마트폰, 또는 텔레비전에 통신 가능하게 링크된 스마트 시계일 수 있다. 제2 장치의 세컨더리 디스플레이는 하나 이상의 애플리케이션을 표시하는 텔레비전과 동시에 일반 어시스턴스, 애플리케이션-특정 어시스턴스 및/또는 애플리케이션-컨텐츠-특정 어시스턴스를 제공할 수 있다.
다른 예에서, 제1 장치는 내부에 포함된 프라이머리 디스플레이 상에 하나 이상의 애플리케이션들을 실행 및 표시할 수 있는 스마트폰이다. 사용자는 하나 이상의 애플리케이션과 상호 작용할 수 있다. 제1 장치와 통신 가능하게 링크된 제2 장치는, 세컨더리 디스플레이로서 동작할 수 있는 통합된 디스플레이를 가지는 자동차 내의 컴퓨팅 시스템일 수 있다. 제1 장치 내의 어시스턴스 플랫폼의 제어 하에, 자동차 내의 컴퓨팅 시스템의 세컨더리 디스플레이는 어시스턴스, 애플리케이션-특정 어시스턴스, 및/또는 애플리케이션-컨텐츠-특정 어시스턴스를 스마트폰의 프라이머리 디스플레이 상에 표시되는 하나 이상의 애플리케이션과 동시에 표시할 수 있다.
다른 예에서, 제1 장치는 하나 이상의 애플리케이션을 표시할 수 있는 프라이머리 디스플레이로서 동작하는 통합 디스플레이를 가지는 자동차 내의 컴퓨팅 시스템이다. 사용자는 자동차 내의 컴퓨팅 시스템의 디스플레이 상의 하나 이상의 애플리케이션과 상호 작용할 수 있다. 제1 장치와 통신 가능하게 링크된 제2 장치는 스마트폰일 수 있다. 스마트폰은 하나 이상의 애플리케이션을 표시하는 프라이머리 디스플레이와 동시에 일반 어시스턴스, 애플리케이션-특정 어시스턴스 및/또는 애플리케이션-컨텐츠-특정 어시스턴스를 표시할 수 있다.
하나 이상의 실시 예들에서, 어시스턴스 플랫폼은 하나 이상의 실제(예를 들어, 물리적) 디스플레이 및 하나 이상의 가상 장치를 통해 어시스턴스 컨텐츠를 제공할 수 있다. 예를 들어 CAVE(cave automatic virtual environment)와 같은 가상 현실 시스템 내에서, 시스템은 하나 이상의 가상 장치를 통해 일반 어시스턴스, 애플리케이션-특정 어시스턴스 및 애플리케이션-컨텐츠-특정 어시스턴스를 사용자에게 제공할 수 있다. 어시스턴스 플랫폼은 사용자 주위의 스크린들에 컨텐츠를 투사할 수 있다. 예시적이고 비한정적인 예로서, 수신된 입력에 대한 응답으로 상이한 모니터 구성들을 호출하는 기능과 함께, 기존 하드웨어를 사용하면서, 기존의 단일 디스플레이 또는 멀티-디스플레이 장치에 기존의 물리적 디스플레이를 세분할 수 있는 하나 이상의 추가 가상 장치를 보충할 수 있는 가상 장치 관리자(예를 들어, 실행 소프트웨어)가 포함될 수 있다.
사용자가 헤드 장착 디스플레이를 사용하거나 착용하여 가상 컨텐츠만을 볼 수 있는 하나 이상의 실시 예들에서, 어시스턴스 플랫폼은, 사용자의 다른 가상 컨텐츠와의 상호 작용을 보충하기 위해, 어시스턴스 컨텐츠를 다수의 가상 디스플레이들 및/또는 모니터들에 걸쳐 분산시킴으로써 어시스턴스 컨텐츠를 제공할 수 있다. 가상 모니터는 적절한 가상 객체의 형태를 취할 수 있으며, 예를 들어 반드시 현실의 디스플레이들과 유사하게 나타나기보다는 그래픽으로 표현되거나 표시될 수 있다.
하나 이상의 실시 예들에서, 증강 현실 디스플레이를 갖는 장치 및/또는 시스템의 경우, 장치는 하나 이상의 가상 오버레이로서 일반 어시스턴스, 애플리케이션-특정 어시스턴스 및/또는 애플리케이션-컨텐츠-특정 어시스턴스를 표시할 수 있다. 표시되는 가상 오버레이들은 실제 장치, 디스플레이 또는 일반 객체와의 사용자 상호 작용을 보완한다. 특정 실시 예들에서, 장치 및/또는 시스템은, 하나 이상의 다른 실제 디스플레이 상의 및/또는 이러한 다른 실제 디스플레이 상에 표시되는 하나 이상의 다른 가상 오버레이 내의 일반 어시스턴스, 애플리케이션-특정 어시스턴스 및/또는 애플리케이션-컨텐츠-특정 어시스턴스 중의 하나 이상을 제공하거나 표시함과 동시에 사용자가 상호 작용할 수 있는 일반 어시스턴스, 애플리케이션-특정 어시스턴스 및/또는 애플리케이션-컨텐츠-특정 어시스턴스 중의 하나 이상을 포함하는 가상 오버레이를 제공할 수 있다.
특정 실시 예들에서, 증강 현실 시스템들의 경우, 어시스턴스 관리자는 하나 이상의 실제 장치에서 어시스턴스 컨텐츠, 예를 들어, 일반 어시스턴스, 애플리케이션-특정 어시스턴스 및/또는 애플리케이션-컨텐츠-특정 어시스턴스를 제공함으로써 하나 이상의 가상 디스플레이에 표시되는 컨텐츠를 갖는 어시스턴스를 제공할 수 있다.
다수의 상이한 독립적인 장치들이 사용되는 하나 이상의 실시 예들에서, 어시스턴스 플랫폼은 다양한 상이한 장치에 걸쳐 작업(예를 들어, 어시스턴스의 바로가기 또는 데이터 아이템) 및/또는 어시스턴스 타입을 분배할 수 있다. 특정 실시 예들에서, 어시스턴스 플랫폼은 사용자 입력을 통해 활성화될 경우 장치들 및/또는 디스플레이들에 걸쳐 하나 이상의 바로가기 또는 어시스턴스 정보 아이템 및/또는 전체 어시스턴스 오버레이를 전송하도록 동작하는 하나 이상의 인터페이스 제어부를 제공할 수 있다. 예를 들어, 특정 인터페이스 제어부의 활성화에 응답하여, 바로가기 및/또는 어시스턴스 오버레이가 현재 제1 디스플레이 및/또는 제1 장치 상에 표시되는 경우, 어시스턴스 플랫폼은 제1 디스플레이 및/또는 제1 장치 상의 특정 바로가기 및/또는 어시스턴스 오버레이의 표시를 중지하고, 제2 디스플레이 및/또는 제2 장치 상에 바로가기 및/또는 어시스턴스 오버레이를 표시하기 시작할 수 있다.
여기에 사용된 용어는 단지 특정 실시 예들을 설명하기 위한 것이며 제한하려는 것이 아니다. 그럼에도 불구하고 본 개시 전체에 적용되는 몇 가지 정의가 제시될 것이다.
본 개시에 정의된 바와 같은, 단수 형태는 문맥 상 다르게 지시하지 않는 한 복수 형태도 포함하는 것으로 의도된다.
본 개시에 정의된 바와 같은, "적어도 하나", "하나 이상" 및 "및/또는"이라는 용어는 명시적으로 다르게 언급되지 않는 한 연결형 및 분리형 모두의 개방형 표현이다. 예를 들어, "A, B 및 C 중 적어도 하나", "A, B 또는 C 중 적어도 하나", "A, B 및 C 중 하나 이상", "A, B 또는 C 중 하나 이상" 및 "A, B 및/또는 C"는 A 단독, B 단독, C 단독, A 및 B 함께, A 및 C 함께, B 및 C 함께 또는 A, B 및 C 함께를 의미한다.
본 개시에서 정의된 바와 같은, "자동으로"라는 용어는 사용자 개입없이를 의미한다. 본 개시에 정의된 바와 같은, "사용자"라는 용어는 인간을 의미한다.
본 개시에 정의된 바와 같은, "컴퓨터 판독 가능 저장 매체"라는 용어는 명령 실행 시스템, 장치 또는 장치에 의해 또는 그와 관련하여 사용하기 위한 프로그램 코드를 포함하거나 저장하는 저장 매체를 의미한다. 본 개시에 정의된 바와 같은, "컴퓨터 판독 가능 저장 매체"는 일시적인 전파 신호 그 자체가 아니다. 컴퓨터 판독 가능한 저장 매체는 전자 저장 장치, 자기 저장 장치, 광학 저장 장치, 전자기 저장 장치, 반도체 저장 장치 또는 이들의 임의의 적절한 조합일 수 있으며, 이에 한정되는 것은 아니다. 본 개시에서 설명된 바와 같은 메모리는 컴퓨터 판독 가능 저장 매체의 예이다. 컴퓨터 판독 가능 저장 매체의 보다 구체적인 예에 대한 비한정적인 리스트는 휴대용 컴퓨터 디스켓, 하드 디스크, RAM(random access memory), ROM(read-only memory), 소거 가능 프로그래머블 판독 전용 메모리(EEPROM), SRAM(static random access memory), CD-ROM(portable compact disc read-only memory), DVD(digital versatile disk), 메모리 스틱, 플로피 디스크 등과 같은 임의의 타입의 전자 장치를 포함할 수 있다.
본 개시에서 정의된 바와 같은, "만일"이란 용어는 문맥에 따라 "~할 경우" 또는 "~할 시에" 또는 "~에 응답하여" 또는 "~에 대한 응답으로"를 의미한다. 따라서, "결정된 경우" 또는 "[명시된 조건 또는 이벤트]가 검출된 경우"라는 문구는 문맥에 따라, "결정할 시에" 또는 "결정된 것에 응답하여" 또는 [명시된 조건 또는 이벤트]를 검출할 때" 또는 "[명시된 조건 또는 사건]의 검출에 응답하여" 또는 "[명시된 조건 또는 이벤트]를 검출한 것에 대한 응답으로"로 해석될 수 있다.
본 개시에 정의된 바와 같은, 상기한 바와 같은 "~에 응답하여" 및 유사한 언어, 예를 들어 "~할 경우", "~할 때" 또는 "~할 시"는 동작 또는 이벤트에 용이하게 반응하거나 응답하는 것을 의미한다. 반응이나 응답은 자동으로 수행된다. 따라서, 제2 동작이 제1 동작에 대한 "응답"으로 수행되면, 제1 동작의 발생과 제2 동작의 발생 간에 인과 관계가 있다. "~에 대한 응답"이라는 용어는 인과 관계를 나타낸다.
본 개시에 정의된 바와 같은, "일 실시 예", "실시 예", "하나 이상의 실시 예들", "특정 실시 예들"이라는 용어 또는 유사한 언어는 그 실시 예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 개시에서 설명된 적어도 하나의 실시 예에 포함된다는 것을 의미한다. 따라서, "일 실시 예에서", "실시 예에서", "하나 이상의 실시 예들에서", "특정 실시 예들에서" 및 본 개시 전반에 걸친 유사한 언어 모두는 동일한 실시 예를 지칭하는 것일 수 있으며, 반드시 그런 것은 아니다. "실시 예" 및 "구성"이라는 용어는 본 개시에서 상호 교환적으로 사용된다.
본 개시에 정의된 바와 같은, "프로세서"라는 용어는 적어도 하나의 하드웨어 회로를 의미한다. 하드웨어 회로는 프로그램 코드에 포함된 명령들을 수행하도록 구성될 수 있다. 하드웨어 회로는 집적 회로일 수 있다. 프로세서의 예로는 CPU(central processing unit), 어레이 프로세서, 벡터 프로세서, DSP(digital signal processor), FPGA(field-programmable gate array), PLA(programmable logic array), ASIC(application specific integrated circuit), 프로그래머블 논리 회로, 및 제어기를 포함하며, 이에 한정되지 않는다.
본 개시에 정의된 바와 같은, "출력"이라는 용어는 물리적 메모리 요소, 예를 들어 장치들에 저장하고, 디스플레이 또는 다른 주변 출력 장치에 기록하고, 다른 시스템으로 전송 또는 송신하거나, 내보내기 하는 등을 의미한다.
본 개시에 정의된 바와 같은, "실시간"이란 용어는 사용자 또는 시스템이 특정 프로세스 또는 결정을 내리기에 충분히 즉각적으로 감지하거나 프로세서가 일부 외부 프로세스를 따라갈 수 있게 하는 응답 처리 수준을 의미한다.
제1, 제2 등이 본 개시에서 다양한 요소를 설명하기 위해 사용될 수 있다. 이들 용어는 달리 언급되지 않는 한 또는 문맥이 달리 명시하지 않는 한 하나의 요소를 다른 것과 구별하기 위해서만 사용된다.
컴퓨터 프로그램 제품은 예를 들어 장치 또는 시스템과 같은 제조 물품을 의미한다. 컴퓨터 프로그램 제품은 프로세서로 하여금 본 발명의 양태들을 수행하게 하기 위한 컴퓨터 판독 가능 프로그램 명령어들을 갖는 컴퓨터 판독 가능 저장 매체(또는 매체들)를 포함할 수 있다. 본 개시 내에서, "프로그램 코드"라는 용어는 "컴퓨터 판독 가능 프로그램 명령어"라는 용어와 호환적으로 사용된다. 본 개시에 설명된 컴퓨터 판독 가능 프로그램 명령어는 네트워크, 예를 들어 인터넷, LAN(local area network), WAN(wide area network), 및/또는 무선 네크워크를 통해 컴퓨터 판독 가능 저장 매체로부터 각각의 컴퓨팅/처리 장치들로 또는 외부 컴퓨터 또는 외부 저장 장치로 다운로드될 수 있다. 네트워크는 구리 전송 케이블, 광 전송 파이버, 무선 전송, 라우터, 방화벽, 스위치, 게이트웨이 컴퓨터 및/또는 에지 서버를 포함하는 에지 장치를 포함할 수 있다. 각각의 컴퓨팅/처리 장치 내의 네트워크 어댑터 카드 또는 네트워크 인터페이스는 네트워크로부터 컴퓨터 판독 가능 프로그램 명령을 수신하고 각각의 컴퓨팅/프로세싱 장치 내의 컴퓨터 판독 가능 저장 매체에 저장하기 위해 컴퓨터 판독 가능 프로그램 명령을 전송한다.
본 개시에서 설명된 발명의 장치에 대한 동작을 수행하기 위한 컴퓨터 판독 가능 프로그램 명령은 어셈블러 명령, ISA(instruction-set-architecture) 명령, 기계 명령, 기계 의존 명령, 마이크로 코드, 펌웨어 명령 또는 소스 코드 또는 객체 지향 프로그래밍 언어 및/또는 절차적 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어의 임의의 조합일 수 있다. 컴퓨터 판독 가능 프로그램 명령어는 상태-설정 데이터를 규정할 수 있다. 컴퓨터 판독 가능 프로그램 명령은 부분적으로 사용자의 컴퓨터 상에서, 독립형 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터 상에서, 그리고 부분적으로는 원격 컴퓨터 상에서 또는 전체적으로 원격 컴퓨터 또는 서버 상에서 사용자의 컴퓨터상에서 전체적으로 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 LAN 또는 WAN을 포함하는 임의의 타입의 네트워크를 통해 사용자의 컴퓨터에 접속될 수 있거나 또는 외부 컴퓨터에 접속될 수 있다(예를 들어, 인터넷 서비스 제공자). 일부 경우에, 예를 들어, 프로그래머블 논리 회로, FPGA 또는 PLA를 포함하는 전자 회로는 본 개시에서 설명된 본 발명의 장치의 양태들을 수행하기 위해, 전자 회로를 개인화하기 위해 컴퓨터 판독 가능 프로그램 명령어들의 상태 정보를 이용함으로써 컴퓨터 판독 가능 프로그램 명령어들을 실행할 수 있다.
본 발명의 장치의 특정 양태들은 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 여기에 설명된다. 흐름도 및/또는 블록도들의 각 블록, 및 흐름도 및/또는 블록도들의 블록들의 조합은 컴퓨터 판독 가능 프로그램 명령들, 예를 들어 프로그램 코드에 의해 구현될 수 있음을 이해할 것이다.
이들 컴퓨터 판독 가능 프로그램 명령어는 컴퓨터, 특수 목적 컴퓨터 또는 다른 프로그램 가능 데이터 처리 장치의 프로세서에 제공되어 기계를 생성할 수 있으며, 컴퓨터 또는 다른 프로그램 가능한 데이터 처리 장치의 프로세서를 통해 실행되는 명령들은, 흐름도 및/또는 블록도 블록 또는 블록들에서 특정된 기능들/동작들을 구현하기 위한 수단을 생성한다. 이러한 방식으로, 프로세서를 프로그램 코드 명령어들에 동작 가능하게 연결하여 프로세서의 기계를 프로그램 코드의 명령들을 수행하기 위한 특수 목적 기계로 변환시킨다. 이들 컴퓨터 판독 가능 프로그램 명령어들은 또한 컴퓨터, 프로그램 가능 데이터 처리 장치 및/또는 다른 장치가 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터 판독 가능 저장 매체에 저장될 수 있으며, 내부에 저장된 명령어들을 갖는 컴퓨터 판독 가능 저장 매체는 흐름도 및/또는 블록도 블록 또는 블록들에서 규정된 동작들의 양태들을 구현하는 명령어들을 포함하는 제품을 포함한다.
컴퓨터 판독 가능 프로그램 명령은 또한 컴퓨터, 다른 프로그램 가능 데이터 처리 장치 또는 다른 장치 상에 로딩되어 컴퓨터, 다른 프로그램 가능 장치 또는 컴퓨터 구현 프로세스를 생성하기 위한 다른 장치 상에서 일련의 동작을 수행하게함으로써, 컴퓨터, 다른 프로그램 가능한 장치 또는 다른 장치에서 실행되는 명령들이 흐름도 및/또는 블록도 블록(들)에서 규정된 기능들/동작들을 구현하도록 한다.
도면의 흐름도 및 블록도는 본 발명의 장치의 다양한 양태에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현의 구조, 기능 및 동작을 나타낸다. 이와 관련하여, 흐름도 또는 블록도 내의 각 블록은 지정된 동작을 구현하기 위한 하나 이상의 실행 가능한 명령어를 포함하는 모듈, 세그먼트 또는 명령의 일부를 나타낼 수 있다. 일부 다른 구현 예에서, 블록들에서 기술된 동작들은 도면들에서 언급된 순서를 벗어나 발생할 수 있다. 예를 들어, 연속적으로 도시된 2개의 블록은 실질적으로 동시에 실행될 수 있거나, 관련된 기능에 따라 때때로 블록이 역순으로 실행될 수도 있다. 또한, 블록도 및/또는 흐름도의 각 블록, 및 블록도 및/또는 흐름도의 블록의 조합이 특정 기능 또는 동작을 수행하는 특수 목적 하드웨어 기반 시스템에 의해 구현될 수 있거나 또는 특수 목적 하드웨어와 컴퓨터 명령어의 조합을 수행할 수 있음에 유의해야 한다.
아래의 청구 범위에서 발견될 수 있는 모든 수단 또는 단계와 기능 요소의 상응하는 구조, 재료, 작용 및 균등물은 구체적으로 청구된 다른 청구 요소와 조합하여 기능을 수행하기 위한 임의의 구조, 재료 또는 작용을 포함한다.
본 개시에 제공된 실시 예의 설명은 설명의 목적을 위한 것이며 개시된 형태 및 실시 예로 배타적이거나 제한되는 것이 아니다. 본 개시에서 사용되는 용어는 발명의 장치의 원리, 시장에서 발견된 기술에 대한 실제적인 적용 또는 기술적 개선을 설명하고/하거나 당업자가 여기에 개시된 실시 예를 이해할 수 있도록 선택되었다. 본 발명의 장치의 범위 및 사상을 벗어나지 않고 당업자에게는 수정 및 변형이 명백할 수 있다. 따라서, 전술한 설명보다는 그와 같은 특징 및 구현의 범위를 나타내는 이하의 청구 범위가 참조되어야 한다.

Claims (20)

  1. 전자 장치의 동작 방법에 있어서,
    상기 전자 장치에서 실행 중이고 상기 전자 장치의 제1 디스플레이 상에 표시되는 애플리케이션을 식별하는 과정과,
    상기 애플리케이션이 실행 중인 동안 이용 가능한 정보를 결정하는 과정과,
    상이한 유형들의 어시스턴스를 기반으로 상기 정보를 상기 전자 장치 상에 표시하는 과정을 포함하며,
    상기 정보는, 일반 어시스턴스, 애플리케이션-특정 어시스턴스 및 애플리케이션-컨텐츠-특정 어시스턴스를 포함하는 상기 상이한 유형들의 어시스턴스 사이에서 내비게이팅 되고,
    상기 일반 어시스턴스는 애플리케이션 사용의 이력 패턴을 고려하여 사용자 또는 상기 전자 장치의 컨텍스트를 기반으로 결정되고, 실행 중이고 표시 중인 상기 애플리케이션에 독립적이며,
    상기 애플리케이션-특정 어시스턴스는 실행 중이고 표시 중인 상기 애플리케이션을 기반으로 결정되고,
    상기 애플리케이션-컨텐츠-특정 어시스턴스는 실행 중이고 표시 중인 상기 애플리케이션에 의해 표시된 컨텐츠를 기반으로 결정되고, 상기 애플리케이션에 독립적인, 방법.
  2. 청구항 1에 있어서,
    상기 애플리케이션이 실행 중인 동안 이용 가능한 정보를 결정하는 과정은, 상기 애플리케이션에 대해 적어도 하나의 실행 가능한 동작을 결정하는 과정을 포함하고,
    상기 전자 장치 상에, 상기 정보를 상기 애플리케이션에 특정된 어시스턴스로서 표시하는 경우, 상기 애플리케이션에 대해 상기 적어도 하나의 실행 가능한 동작을 개시하기 위한 바로가기(shortcut)를 표시하는 과정을 포함하는 방법.
  3. 청구항 1에 있어서,
    상기 애플리케이션이 실행 중인 동안 이용 가능한 정보를 결정하는 과정은, 상기 애플리케이션에 의해 수신되는 객체 유형을 결정하는 과정을 포함하고,
    상기 전자 장치 상에, 상기 정보를 상기 애플리케이션에 특정된 어시스턴스로서 표시하는 경우, 상기 결정된 객체 유형의 객체를 상기 애플리케이션에게 제공하기 위한 바로가기를 표시하는 과정을 포함하는 방법.
  4. 청구항 1에 있어서,
    상기 애플리케이션은, 상기 전자 장치의 제1 디스플레이 상에 표시되고,
    상기 애플리케이션에 특정된 어시스턴스는, 상기 전자 장치의 제2 디스플레이 상에 표시되고,
    상기 애플리케이션 및 상기 애플리케이션에 특정된 어시스턴스는 동시에 표시되는 방법.
  5. 삭제
  6. 삭제
  7. 청구항 2에 있어서,
    상기 애플리케이션에 대해 적어도 하나의 실행 가능한 동작을 결정하는 과정은, 상기 전자 장치에 대한 입력에 기반하여 상기 적어도 하나의 실행 가능한 동작을 결정하는 과정을 포함하고,
    상기 전자 장치에 대한 입력은, 상기 전자 장치를 활성화하기 위한 입력, 상기 애플리케이션과 상이한 애플리케이션을 실행하기 위한 입력, 상기 전자 장치의 배향의 변경, 또는 어시스턴스의 유형에 대응하는 요청 중 적어도 하나를 포함하는 방법.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 전자 장치에 있어서,
    명령들을 저장하도록 구성되는 메모리;
    제1 디스플레이; 및
    상기 메모리 및 상기 제1 디스플레이에 연결되는 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 전자 장치에서 실행 중이고 상기 제1 디스플레이 상에 표시되는 애플리케이션을 식별하는 과정과,
    상기 애플리케이션이 실행 중인 동안 이용 가능한 정보를 결정하는 과정과,
    상이한 유형들의 어시스턴스를 기반으로 상기 정보를 상기 전자 장치 상에 표시하도록 구성되며,
    상기 정보는, 일반 어시스턴스, 애플리케이션-특정 어시스턴스 및 애플리케이션-컨텐츠-특정 어시스턴스를 포함하는 상기 상이한 유형들의 어시스턴스 사이에서 내비게이팅 되고,
    상기 일반 어시스턴스는 애플리케이션 사용의 이력 패턴을 고려하여 사용자 또는 상기 전자 장치의 컨텍스트를 기반으로 결정되고, 실행 중이고 표시 중인 상기 애플리케이션에 독립적이며,
    상기 애플리케이션-특정 어시스턴스는 실행 중이고 표시 중인 상기 애플리케이션을 기반으로 결정되고,
    상기 애플리케이션-컨텐츠-특정 어시스턴스는 실행 중이고 표시 중인 상기 애플리케이션에 의해 표시된 컨텐츠를 기반으로 결정되고, 상기 애플리케이션에 독립적인, 전자 장치.
  12. 청구항 11에 있어서,
    상기 적어도 하나의 프로세서는, 상기 애플리케이션이 실행 중인 동안 이용 가능한 정보를 결정하기 위해, 상기 애플리케이션에 대해 적어도 하나의 실행 가능한 동작을 결정하도록 더 구성되고,
    상기 적어도 하나의 프로세서는, 상기 전자 장치 상에, 상기 정보를 상기 애플리케이션에 특정된 어시스턴스로서 표시하기 위해, 상기 애플리케이션에 대해 상기 적어도 하나의 실행 가능한 동작을 개시하기 위한 바로가기(shortcut)를 표시하도록 더 구성되는 전자 장치.
  13. 청구항 11에 있어서,
    상기 적어도 하나의 프로세서는, 상기 애플리케이션이 실행 중인 동안 이용 가능한 정보를 결정하기 위해, 상기 애플리케이션에 의해 수신되는 객체 유형을 결정하도록 더 구성되고,
    상기 적어도 하나의 프로세서는, 상기 전자 장치 상에, 상기 정보를 상기 애플리케이션에 특정된 어시스턴스로서 표시하기 위해, 상기 결정된 객체 유형의 객체를 상기 애플리케이션에게 제공하기 위한 바로가기를 표시하도록 더 구성되는 전자 장치.
  14. 청구항 11에 있어서,
    상기 적어도 하나의 프로세서에 연결된 제2 디스플레이를 더 포함하고,
    상기 애플리케이션에 특정된 어시스턴스는, 상기 제2 디스플레이 상에 표시되고,
    상기 애플리케이션 및 상기 애플리케이션에 특정된 어시스턴스는 동시에 표시되는 전자 장치.
  15. 삭제
  16. 삭제
  17. 청구항 12에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 애플리케이션에 대해 적어도 하나의 실행 가능한 동작을 결정하는 과정은, 상기 전자 장치에 대한 입력에 기반하여 상기 적어도 하나의 실행 가능한 동작을 결정하도록 더 구성되고,
    상기 전자 장치에 대한 입력은, 상기 전자 장치를 활성화하기 위한 입력, 상기 애플리케이션과 상이한 애플리케이션을 실행하기 위한 입력, 상기 전자 장치의 배향의 변경, 또는 어시스턴스의 유형에 대응하는 요청 중 적어도 하나를 포함하는 전자 장치.
  18. 삭제
  19. 청구항 11에 있어서,
    상기 적어도 하나의 프로세서는, 상기 애플리케이션-컨텐츠-특정 어시스턴스를 제공하기 위해,
    상기 애플리케이션에 의해 제공되는 상기 컨텐츠에 대해 시맨틱 분석(semantic analysis)을 수행하도록 구성되는 전자 장치.
  20. 청구항 11에 있어서,
    상기 적어도 하나의 프로세서에 연결되어 상기 애플리케이션-특정 어시스턴스를 표시하는 제2 디스플레이; 및
    상기 적어도 하나의 프로세서에 연결되어 상기 애플리케이션-컨텐츠-특정 어시스턴스를 표시하는 제3 디스플레이를 더 포함하고,
    상기 제1 디스플레이, 상기 제2 디스플레이 및 상기 제3 디스플레이는 복수의 디스플레이들을 갖는 단일의 전자 장치의 일부로 구성되는, 전자 장치.
KR1020197023106A 2017-02-07 2018-01-09 컴퓨팅 시스템에서 사용자 어시스턴스를 제공하기 위한 장치 및 방법 KR102518172B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762456015P 2017-02-07 2017-02-07
US62/456,015 2017-02-07
US15/712,376 US11132212B2 (en) 2017-02-07 2017-09-22 Platform and interface for providing user assistance in a computing system
US15/712,376 2017-09-22
PCT/KR2018/000400 WO2018147557A1 (en) 2017-02-07 2018-01-09 An apparatus and a method for providing user assistance in a computing system

Publications (2)

Publication Number Publication Date
KR20190107060A KR20190107060A (ko) 2019-09-18
KR102518172B1 true KR102518172B1 (ko) 2023-04-05

Family

ID=63037168

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197023106A KR102518172B1 (ko) 2017-02-07 2018-01-09 컴퓨팅 시스템에서 사용자 어시스턴스를 제공하기 위한 장치 및 방법

Country Status (5)

Country Link
US (1) US11132212B2 (ko)
EP (1) EP3580645A4 (ko)
KR (1) KR102518172B1 (ko)
CN (1) CN110268377B (ko)
WO (1) WO2018147557A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190087205A1 (en) * 2017-09-18 2019-03-21 Microsoft Technology Licensing, Llc Varying modality of user experiences with a mobile device based on context
US10999167B2 (en) * 2018-04-13 2021-05-04 At&T Intellectual Property I, L.P. Varying data flow aggregation period relative to data value
CN108874485A (zh) * 2018-06-08 2018-11-23 Oppo广东移动通信有限公司 图标显示方法、装置及终端
CN109766053B (zh) * 2019-01-15 2020-12-22 Oppo广东移动通信有限公司 用户界面显示方法、装置、终端及存储介质
US20200387268A1 (en) * 2019-06-06 2020-12-10 United States Postal Service Dynamically customized application selection and recommendation systems
US11954307B2 (en) 2020-12-04 2024-04-09 Samsung Electronics Co., Ltd. Visual selector for application activities

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160360336A1 (en) * 2015-05-27 2016-12-08 Apple Inc. Systems and Methods for Proactively Identifying and Surfacing Relevant Content on a Touch-Sensitive Device

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7353034B2 (en) 2005-04-04 2008-04-01 X One, Inc. Location sharing and tracking using mobile phones or other wireless devices
US8732234B2 (en) 2005-06-07 2014-05-20 Yahoo! Inc. Providing relevant non-requested content to a mobile device
US8989778B2 (en) 2006-06-01 2015-03-24 Green Dot Corporation Secure and private location sharing for location-aware mobile communication devices
US8571580B2 (en) 2006-06-01 2013-10-29 Loopt Llc. Displaying the location of individuals on an interactive map display on a mobile communication device
US8229458B2 (en) 2007-04-08 2012-07-24 Enhanced Geographic Llc Systems and methods to determine the name of a location visited by a user of a wireless device
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US8761751B2 (en) 2008-03-14 2014-06-24 William J. Johnson System and method for targeting data processing system(s) with data
KR20090120549A (ko) 2008-05-20 2009-11-25 (주) 엘지텔레콤 복수의 화면을 가지는 이동통신단말기 및 그의 표시방법
US8548503B2 (en) 2008-08-28 2013-10-01 Aol Inc. Methods and system for providing location-based communication services
US8803816B2 (en) * 2008-09-08 2014-08-12 Qualcomm Incorporated Multi-fold mobile device with configurable interface
KR101604357B1 (ko) 2010-03-24 2016-03-17 엘지전자 주식회사 이동 단말기, 및 이를 이용한 메뉴 표시 방법
US9037485B2 (en) 2010-10-25 2015-05-19 Alohar Mobile Inc. Persistently determining and sharing user stays of a user of a mobile device
WO2012121356A1 (ja) 2011-03-10 2012-09-13 国立大学法人北海道大学 蛍光発色団を有する化合物、化合物を含むイオン濃度センサー、化合物を含む試薬、試薬を備える試薬キット、化合物の前駆体、および化合物の合成方法
US8842057B2 (en) * 2011-09-27 2014-09-23 Z124 Detail on triggers: transitional states
US8892461B2 (en) 2011-10-21 2014-11-18 Alohar Mobile Inc. Mobile device user behavior analysis and authentication
US8787939B2 (en) 2012-03-27 2014-07-22 Facebook, Inc. Dynamic geographic beacons for geographic-positioning-capable devices
US20140047334A1 (en) * 2012-08-09 2014-02-13 Sap Ag Computer application learning solution
US9152106B2 (en) 2012-08-31 2015-10-06 Ricoh Company, Ltd. Fixing device and image forming apparatus including same
KR20140046329A (ko) 2012-10-10 2014-04-18 삼성전자주식회사 멀티 디스플레이 장치 및 그 디스플레이 제어 방법
KR102026729B1 (ko) 2012-12-10 2019-09-30 엘지전자 주식회사 스케줄 인터페이스를 처리하는 방법 및 장치
KR20150007910A (ko) * 2013-07-11 2015-01-21 삼성전자주식회사 사용자 인터렉션을 제공하는 사용자 단말 장치 및 그 방법
US9842113B1 (en) * 2013-08-27 2017-12-12 Google Inc. Context-based file selection
EP2843542A1 (en) * 2013-08-29 2015-03-04 Samsung Electronics Co., Ltd User terminal apparatus, method for controlling user terminal apparatus, and expanded display system
US9686581B2 (en) * 2013-11-07 2017-06-20 Cisco Technology, Inc. Second-screen TV bridge
US9338651B2 (en) 2014-05-09 2016-05-10 Verizon Patent And Licensing Inc. Proactive assistance in obtaining a wireless network connection
KR20150134087A (ko) * 2014-05-21 2015-12-01 삼성전자주식회사 전자 장치 및 전자 장치에서 데이터를 추천하는 방법
KR20150135968A (ko) * 2014-05-26 2015-12-04 삼성전자주식회사 디스플레이 제어 방법 및 전자 장치
US9426137B2 (en) 2014-07-15 2016-08-23 Verizon Patent And Licensing Inc. Mobile device user authentication based on user behavior information
US10404816B2 (en) * 2014-12-05 2019-09-03 Microsoft Technology Licensing, Llc Determining browsing activities
US10254863B2 (en) 2014-12-19 2019-04-09 Lg Electronics Inc. Mobile terminal
US10013263B2 (en) * 2016-02-17 2018-07-03 Vincent Ramirez Systems and methods method for providing an interactive help file for host software user interfaces
US11121745B2 (en) 2017-01-01 2021-09-14 Lg Electronics Inc Method for transmitting plurality of beamformed reference signals for open-loop MIMO transmission in wireless communication system and apparatus therefor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160360336A1 (en) * 2015-05-27 2016-12-08 Apple Inc. Systems and Methods for Proactively Identifying and Surfacing Relevant Content on a Touch-Sensitive Device

Also Published As

Publication number Publication date
US20180225132A1 (en) 2018-08-09
EP3580645A1 (en) 2019-12-18
CN110268377A (zh) 2019-09-20
EP3580645A4 (en) 2020-07-01
WO2018147557A1 (en) 2018-08-16
CN110268377B (zh) 2023-01-31
US11132212B2 (en) 2021-09-28
KR20190107060A (ko) 2019-09-18

Similar Documents

Publication Publication Date Title
KR102518172B1 (ko) 컴퓨팅 시스템에서 사용자 어시스턴스를 제공하기 위한 장치 및 방법
US12026593B2 (en) Action suggestions for user-selected content
US10437418B2 (en) Overloading app icon touchscreen interaction to provide action accessibility
US20190171339A1 (en) Method, system, and apparatus for executing an action related to user selection
US9871903B2 (en) Mobile computing terminal with more than one lock screen and method of using the same
US10902078B2 (en) User-specified user application data sharing
US20170068739A1 (en) Queryless search based on context
US11734581B1 (en) Providing contextual actions for mobile onscreen content
US20150193395A1 (en) Predictive link pre-loading
US11422672B2 (en) Managing updates in a computing system using multiple access methods
US20210382934A1 (en) Dynamic search control invocation and visual search
US10664155B2 (en) Managing content displayed on a touch screen enabled device using gestures
WO2015200798A1 (en) Context menu utilizing a context indicator and floating menu bar
US20160323692A1 (en) Invisiblemask: a tangible mechanism to enhance mobile device smartness
KR20160089379A (ko) 상황 정보 탐색 및 내비게이션 기법
WO2013184343A1 (en) Collecting web pages/links from communications and documents for later reading
WO2014117244A1 (en) Data retrieval by way of context-sensitive icons
US9063576B1 (en) Managing gesture input information
CN108268507B (zh) 一种基于浏览器的处理方法、装置及电子设备
US20210026913A1 (en) Web browser control feature
US20130113741A1 (en) System and method for searching keywords
US11372945B2 (en) Restructuring pages having similar content
CA2842031A1 (en) Method, system, and apparatus for executing an action related to user selection
CN115328361A (zh) 书籍信息显示方法、装置、设备和存储介质
US20150160830A1 (en) Interactive content consumption through text and image selection

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right