KR20190007042A - 선택가능한 어플리케이션 링크들을 퍼스널 어시스턴트 모듈과의 대화에 통합하기 - Google Patents

선택가능한 어플리케이션 링크들을 퍼스널 어시스턴트 모듈과의 대화에 통합하기 Download PDF

Info

Publication number
KR20190007042A
KR20190007042A KR1020187036263A KR20187036263A KR20190007042A KR 20190007042 A KR20190007042 A KR 20190007042A KR 1020187036263 A KR1020187036263 A KR 1020187036263A KR 20187036263 A KR20187036263 A KR 20187036263A KR 20190007042 A KR20190007042 A KR 20190007042A
Authority
KR
South Korea
Prior art keywords
user
client computing
computing device
personal assistant
message exchange
Prior art date
Application number
KR1020187036263A
Other languages
English (en)
Other versions
KR102339296B1 (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 구글 엘엘씨
Priority to KR1020217040333A priority Critical patent/KR102668730B1/ko
Publication of KR20190007042A publication Critical patent/KR20190007042A/ko
Application granted granted Critical
Publication of KR102339296B1 publication Critical patent/KR102339296B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/16
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

다음 동작들을 위한 방법, 장치, 시스템 및 컴퓨터 판독가능 매체가 제공되며, 상기 동작들은: 사용자가 클라이언트 컴퓨팅 디바이스를 동작하는 동안 상기 사용자에게 서비스하기 위한 퍼스널 어시스턴트 모듈의 인스턴스를 동작하는 동작, 상기 퍼스널 어시스턴트 모듈의 인스턴스는 상기 사용자와 상기 퍼스널 어시스턴트 모듈의 간의 메시지 교환 스레드의 지속적 기록에 대한 엑세스를 가지며; 상기 지속적 메시지 교환 스레드로부터 유래하는 하나 이상의 큐들을 검출하는 동작; 상기 사용자에 의해 동작되는 클라이언트 컴퓨팅 디바이스에 설치된 하나 이상의 후보 어플리케이션들을 식별하는 동작, 상기 하나 이상의 후보 어플리케이션들은 상기 메시지 교환 스레드의 컨텐츠와 연관되며; 및 하나 이상의 선택가능한 링크들을 상기 클라이언트 컴퓨팅 디바이스에 렌더링된 그래픽 사용자 인터페이스에 디스플레이된 상기 메시지 교환 스레드의 트랜스크립트로 통합하는 동작을 포함하며, 각 선택가능한 링크는 상기 클라이언트 컴퓨팅 디바이스로 하여금 각각의 후보 어플리케이션과 연관된 인터페이스를 상기 사용자에게 노출하게 하도록 상기 사용자에 의해 동작가능하다.

Description

선택가능한 어플리케이션 링크들을 퍼스널 어시스턴트 모듈과의 대화에 통합하기
퍼스널 어시스턴트 모듈들은 스마트폰, 태블릿, 차량 네비게이션 시스템 및 스마트 워치와 같은 컴퓨팅 디바이스들에 설치된 소프트웨어 프로세스로 사용자가 자연어 명령을 내릴 수 있는 사용자 친화적 인터페이스를 제공한다. 사용자는 종종 자신의 목소리를 사용하여 자연어 명령을 말하지만, 퍼스널 어시스턴트 모듈은 다양한 형식의 텍스트 및/또는 이미지 입력과 같은 다른 양식으로도 응답할 수 있다. 사용자와 퍼스널 어시스턴트 모듈 간에 교환되는 컨텐츠는 일반적으로 텍스트 (예: 타이핑된 또는 음성 입력으로 생성된) 또는 그림과 같은 다른 데이터로 제한되며 일반적으로 나중에 사용하기 위해 저장되지 않는다. 결과적으로 대화에 관련된 외부 정보를 찾는 사용자는 원하는 정보를 획득하기 위해 웹브라우저와 같은 다른 어플리케이션으로 전환해야만 한다. 한 번에 단일의 어플리케이션만 디스플레이하는 모바일 디바이스를 사용하여 어플리케이션들을 전환하는 것은, 특히 손재주가 떨어지는 사용자의 경우 혼란스럽고 부담이 될 수 있으며 대화 흐름을 방해할 수 있다.
본 발명은 일반적으로 "선택가능한 어플리케이션 링크들" - 다른 어플리케이션에 연관된 인터페이스를 참가자에게 노출시키기 위해 사용자와 퍼스널 어시스턴트 모듈 간의 메시지 교환 스레드에 통합된 그래픽 엘리먼트들 - 을 사용자에 의해 동작되는 클라이언트 컴퓨팅 디바이스(또는 단순히 "클라이언트 디바이스")에 렌더링되는 메시지 교환 스레드의 트랜스크립트에 직접적으로 통합시키기 위한 방법, 장치 및 컴퓨터 판독가능 매체(일시적 및 비 일시적)에 관한 것이다. 다양한 구현예들에서, 트랜스크립트로 통합되는 선택가능한 어플리케이션 링크들은 상기 트랜스크립트를 렌더링하는 클라이언트 디바이스의 리소스에 의해 지시될 수 있다. 예를 들어, 메시지 교환 스레드의 컨텐츠와 어떻게든 관련되고 - 그리고 또한 사용자에 의해 동작되는 클라이언트 컴퓨팅 디바이스에 설치된 - 하나 이상의 "후보 어플리케이션"이 식별될 수 있다. 일부 구현예들에서, 설치된 어플리케이션들에 대한 선택가능한 어플리케이션 링크들만 제시될 수 있다. 다른 구현예들에서, 적용가능한 어플리케이션이 설치되지 않은 경우, 어플리케이션 인스톨러(예를 들어, 앱 스토어 또는 웹 페이지에서) 또는 설치되지 않은 앱에 대응하는 기능을 갖는 웹페이지에 대한 링크가 대신 포함될 수 있다. 메시지 교환 스레드로의 선택가능한 어플리케이션 링크들의 통합은 링크들을 통해 사용가능한 컨텐츠에 액세스하기 위해 사용자가 디바이스에 해야만 하는 사용자 입력들의 수를 감소시킬 수 있다. 이는 손재주가 없는 사용자 또는 디바이스에 사용자 입력을 하는데 어려움을 겪는 사용자에게 특히 유용할 수 있다. 적어도 이러한 사용자들에 대해, 메시지 교환 스레드로의 선택가능한 제안들의 통합은 예를 들어, 사용자가 낮은 손재주로 인해 사용자가 오류를 내지 않도록 함으로써 디바이스 사용의 신뢰성 및 속도를 증가시킬 수 있다.
선택가능한 어플리케이션 링크들을 트랜스크립트에 통합하는 것은 다양한 큐들에 의해 트리거링될 수 있다. 일부 구현예들에서, 큐들은 사용자에 의해 동작되는 하나 이상의 클라이언트 컴퓨팅 디바이스에 의해 메시지 교환 스레드에 통합된 컨텐츠로부터 유래할 수 있다. 예를 들어, 사용자가 스마트 워치로 동작하는 퍼스널 어시스턴트 모듈의 인스턴스에게 "오늘 밤 어떤 스케쥴이 있어?"라고 물어볼 수 있다. 퍼스널 어시스턴트 모듈은 사용자의 캘린더 및/또는 다른 데이터 소스들(클라이언트 디바이스에 대해 온라인 또는 로컬일 수 있음)을 검색하고 그 날 저녁에 아무런 계획이 없다고 응답할 수 있다. 나중에, 사용자는 스마트폰 또는 태블릿과 같은 상이한 클라이언트 디바이스에서 동작하는 퍼스널 어시스턴트 모듈의 제2 인스턴스와 인터렉션할 수 있다. 사용자는 "XYZ Cafe에 예약을 해"와 같은 말을 할 수 있다. 사용자는 예약이 언제 이루어져야 하는지에 대해 명확하지 않았기 때문에, 퍼스널 어시스턴트 모듈의 제2 인스턴스는 지속적 메시지 교환 스레드를 참조하여 - 스마트 워치에서 동작하는 퍼스널 어시스턴트 모듈의 제1 인스턴스에 대한 사용자의 이전 질문 및/또는 그에 대한 응답에 기초하여 -, 사용자가 오늘 저녁을 의미했다는 것을 추론할 수 있다. 그러한 추론을 함으로써, 사용자로부터 요구되는 입력의 수를 더 감소시킬 수 있다.
클라이언트 디바이스에 설치된 어플리케이션은 다양한 방식으로 식별될 수 있다. 일부 구현예들에서, 클라이언트 디바이스 상에 설치된 어플리케이션들은 클라이언트 디바이스로부터 원격인 것으로 알려질 수 있다(예: 사용자에 의해 동작되는 클라이언트 디바이스의 조화된 "생태계(ecosystem)"를 형성하는 하나 이상의 클라이언트 디바이스들에 설치된 어플리케이션의 기록을 갖는 어플리케이션 스토어 서버에 의해). 이러한 경우에, 클라이언트 디바이스에 인스톨될 것으로 알려진 어플리케이션들과 연관된 하나 이상의 선택가능한 어플리케이션 링크를 표시하는 데이터가 클라이언트 디바이스에 다운로드될 수 있고, 클라이언트 디바이스가 이들 어플리케이션에 대한 선택가능한 어플리케이션 링크를 메시지 스레드로 통합할 수 있다. 최소한 이러한 시나리오에서, 메시지 교환 스레드에 통합된 선택가능한 링크들은 - 적어도 데이터가 하나 이상의 외부 컴퓨터들로부터 디바이스로 다운로드되게 함으로써 - 링크가 디스플레이되는 디바이스 외부에 영향을 줄 수 있다. 이러한 프로세스는 선택가능한 링크들에 의해 보다 신뢰성 있게 이루어질 수 있으며, 이는 잘못된 수동 검색 결과의 사용자 선택과 같은 하나 이상의 잘못된 사용자 입력으로 인해 잘못된 데이터가 디바이스로 다운로드되는 위험을 크게 감소시킨다. 이는 네트워크 트래픽을 감소시키고, 전체 시스템이 보다 효율적으로 동작하게 할 수 있다. 일부 구현예에서, 다수의 설치된 어플리케이션들은 원격으로 식별될 수 있고(및 클라이언트에 다운로드된 것을 표시하는 데이터), 그 다음 클라이언트 디바이스는 어플리케이션의 사용 빈도와 같은 다양한 신호에 기초하여 (예를 들어, 사용자의 생태계의 하나 이상의 클라이언트 컴퓨팅 디바이스들 중에서, 또는 단일 클라이언트 컴퓨팅 디바이스에서) 다수의 어플리케이션들의 서브셋을 선택할 수 있다. 일부 구현예들에서, 클라이언트 디바이스 자체는 설치된 어플리케이션을 식별할 수 있다. 예를 들어, "지도", "예약", "음악", "영화", "메시징", "화상 회의", "전화" 등과 같은 어플리케이션 "카테고리"는 메시지 교환 스레드의 컨텐츠에 기초하여 식별될 수 있고, 그 다음, 클라이언트 디바이스는 상기 카테고리 내에서 어떤 매칭되는 어플리케이션들이 설치되었는지(그것이 존재하는 경우) 식별할 수 있다.
일부 구현예들에서, 다음과 같은 동작을 포함하는 컴퓨터로 구현되는 방법이 제공될 수 있다: 사용자에 의해 동작되는 클라이언트 컴퓨팅 디바이스에 의해, 상기 클라이언트 컴퓨팅 디바이스를 동작하는 동안 상기 사용자에게 서비스하기 위한 퍼스널 어시스턴트 모듈의 인스턴스를 동작하는 단계, 상기 퍼스널 어시스턴트 모듈의 인스턴스는 상기 사용자와 상기 퍼스널 어시스턴트 모듈의 간의 메시지 교환 스레드의 지속적 기록에 대한 엑세스를 가지며; 상기 퍼스널 어시스턴트 모듈의 인스턴스에 의해, 상기 지속적 메시지 교환 스레드로부터 유래(emanating)하는 하나 이상의 큐(cue)들을 검출하는 단계, 상기 하나 이상의 큐들은 상기 퍼스널 어시스턴트 모듈의 인스턴스와 구분되는 하나 이상의 어플리케이션들에 대한 하나 이상의 선택가능한 링크들의 상기 지속적 메시지 교환 스레드로의 통합을 트리거링하며; 상기 퍼스널 어시스턴트 모듈의 인스턴스에 의해, 상기 사용자에 의해 동작되는 클라이언트 컴퓨팅 디바이스에 설치된 하나 이상의 후보 어플리케이션들을 식별하는 단계, 상기 하나 이상의 후보 어플리케이션들은 상기 메시지 교환 스레드의 컨텐츠와 연관되며; 및 상기 퍼스널 어시스턴트 모듈의 인스턴스에 의해, 하나 이상의 선택가능한 링크들을 상기 클라이언트 컴퓨팅 디바이스에 렌더링된 그래픽 사용자 인터페이스에 디스플레이된 상기 메시지 교환 스레드의 트랜스크립트(transcript)로 통합하는 단계를 포함하며, 각 선택가능한 링크는 상기 클라이언트 컴퓨팅 디바이스로 하여금 각각의 후보 어플리케이션과 연관된 인터페이스를 상기 사용자에게 노출하게 하도록 상기 사용자에 의해 동작가능하다.
본 명세서에서 논의된 기술의 방법 또는 다른 구현예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다.
다양한 구현예들에서, 상기 클라이언트 컴퓨팅 디바이스는 상기 사용자에 의해 동작되는 복수의 클라이언트 컴퓨팅 디바이스들 중 하나이며, 상기 복수의 클라이언트 컴퓨팅 디바이스 각각은 상기 지속적 메시지 교환 스레드에 대한 엑세스를 가지는 상기 퍼스널 어시스턴트 모듈의 별개의 인스턴스를 동작시키도록 구성될 수 있다. 다양한 구현예들에서, 상기 하나 이상의 큐들은 상기 복수의 클라이언트 컴퓨팅 디바이스의 중 상이한 클라이언트 컴퓨팅 디바이스들에 의해 상기 지속적 메시지 교환 스레드로 통합된 다수의 메시지들을 포함한다.
다양한 구현예들에서, 상기 식별하는 단계는 상기 클라이언트 컴퓨팅 디바이스로부터 원격에 있는 상기 하나 이상의 프로세서들에 의해 수행되며, 그리고 상기 하나 이상의 선택가능한 링크들을 표시하는 데이터는 상기 클라이언트 디바이스에 다운로드된다. 다양한 구현예들에서, 상기 방법은 상기 퍼스널 어시스턴트 모듈의 인스턴스에 의해, 하나 이상의 정보 신호들에 기초하여 상기 다운로드된 하나 이상의 선택가능한 링크들의 서브셋을 디스플레이하기 위해 선택하는 단계를 더 포함할 수 있다. 다양한 구현예들에서, 상기 하나 이상의 정보 신호들은 상기 하나 이상의 후보 어플리케이션들의 사용 빈도를 포함할 수 있다.
다양한 구현예들에서, 상기 식별하는 단계는 상기 클라이언트 컴퓨팅 디바이스와 통합된 상기 하나 이상의 프로세서들에 의해 수행될 수 있다. 다양한 구현예들에서, 상기 하나 이상의 큐들은 상기 메시지 교환 스레드의 컨텐츠로부터 유래할 수 있다. 다양한 구현예들에서, 상기 하나 이상의 큐들은 특정한 어플리케이션과 연관된 키워드 또는 키 문구를 포함할 수 있다.
다양한 구현예들에서, 상기 식별하는 단계는 상기 메시지 교환 스레드의 컨텐츠와 연관된 주어진 어플리케이션이 상기 클라이언트 컴퓨팅 디바이스에 설치되지 않았다는 결정에 응답하여, 상기 클라이언트 컴퓨팅 디바이스에 설치된 웹브라우저를 후보 어플리케이션으로서 식별하는 것을 포함할 수 있다. 다양한 구현예들에서, 상기 통합하는 단계는 인터렉티브 웹페이지에 대한 선택가능한 링크를 상기 트랜스크립트에 통합하는 것을 포함하며, 상기 인터렉티브 웹페이지는 상기 클라이언트 컴퓨팅 디바이스에 설치되지 않은 상기 주어진 어플리케이션의 기능에 대응하는 기능을 포함할 수 있다.
다양한 구현예들에서, 상기 식별하는 단계는 상기 메시지 교환 스레드의 컨텐츠와 연관된 주어진 어플리케이션이 상기 클라이언트 컴퓨팅 디바이스에 설치되지 않았다는 결정에 응답하여, 상기 클라이언트 컴퓨팅 디바이스에 설치된 웹브라우저를 후보 어플리케이션으로서 식별하는 것을 포함할 수 있다. 다양한 구현예들에서, 상기 통합하는 단계는 상기 주어진 어플리케이션의 인스톨러를 다운로드하는 것과 연관된 웹페이지에 대한 선택가능한 링크를 상기 트랜스크립트에 통합하는 것을 포함할 수 있다.
다양한 구현예들에서, 그래픽 사용자 인터페이스는 동작가능한 부분 및 지속적 부분을 포함할 수 있다. 트랜스크립트는 지속적 부분에 렌더링될 수 있다. 상기 동작가능한 부분은 상기 메시지 교환 스레드에 컨텐츠를 통합하기 위해 동작가능한 하나 이상의 그래픽 엘리먼트들을 포함할 수 있다. 이러한 구현예에서, 상기 방법은 하나 이상의 신호들에 기초하여 상기 하나 이상의 프로세서들에 의해, 적어도 하나의 비-지속적 선택가능한 링크를 상기 그래픽 사용자 인터페이스의 상기 동작가능한 부분에 선택적으로 통합하는 단계를 더 포함 할 수 있으며, 상기 적어도 하나의 비-지속적 선택가능한 링크는 상기 클라이언트 컴퓨팅 디바이스로 하여금 상기 사용자에게 특정한 후보 어플리케이션과 연관된 인터페이스를 노출하게 하도록 상기 사용자에 의해 동작가능하다. 다양한 구현예들에서, 상기 하나 이상의 정보 신호들은 상기 사용자와 상기 특정한 후보 어플리케이션 간의 인터렉션의 이력을 포함할 수 있다.
다른 구현예들은 프로세서에 의해 실행가능한 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 포함할 수 있으며, 상기 명령어들은 상기 기술된 하나 이상의 방법들과 같은 방법을 수행한다. 또 다른 구현예는 메모리에 저장된 명령어들을 실행하기 위해 동작가능한 메모리 및 하나 이상의 프로세서들을 포함하는 시스템을 포함할 수 있으며, 상기 시스템은 상기 기술된 하나 이상의 방법들과 같은 방법을 단독으로 또는 집합적으로 수행하는 하나 이상의 모듈들 또는 엔진들을 구현한다.
본 명세서에서 매우 상세히 기술된 상기 개념들 및 추가적 개념들의 모든 조합들은 본 명세서에 개시된 본 발명의 일부인 것으로 고려되어야 한다. 예를 들면, 본 명세서의 끝부분에 나타나는 청구된 발명의 모든 조합들은 본 명세서에 개시된 본 발명의 일부인 것으로 고려된다.
도 1은 다양한 구현예들에 따라, 하나 이상의 선택가능한 어플리케이션 링크들이 메시지 교환 스레드에 통합될 수 있는 환경을 도시한다.
도 2, 도 3 및 도 4는 다양한 구현예들에 따라, 클라이언트 디바이스가 그래픽 사용자 인터페이스를 어떻게 렌더링할 수 있는지의 예를 도시한다.
도 5는 다양한 구현예들에 따라, 개별 클라이언트 디바이스가 어떻게 로컬에 설치된 후보 어플리케이션을 어떻게 식별할 수 있는지의 일례를 도시한다.
도 6은 다양한 구현들에 따라, 개별 클라이언트 디바이스들에 설치된 후보 어플리케이션들이 어떻게 원격으로 식별될 수 있는지의 일례를 도시한다.
도 7은 다양한 구현예들에 따라 예시적인 방법을 도시하는 흐름도를 도시한다.
도 8은 다양한 구현예들에 따라, 클라이언트 디바이스가 그래픽 사용자 인터페이스를 어떻게 렌더링하는지의 다른 예를 도시한다.
도 9은 컴퓨터 시스템의 예시적 아키텍처를 개략적으로 도시한다.
도 1은 하나 이상의 "선택가능한 어플리케이션 링크들"이 사용자와 사용자에 의해 동작되는 클라이언트 디바이스에 렌더링되는 퍼스널 어시스턴트 모듈의 하나 이상의 인스턴스들 간의 메시지 교환 스레드의 트랜스크립트에 직접적으로 통합될 수 있는 환경을 도시한다. 예시적인 환경은 복수의 클라이언트 디바이스(106I-N) 및 지식 시스템(102)을 포함한다. 지식 시스템(102)은 예를 들어 네트워크를 통해 통신하는 하나 이상의 컴퓨터에서 구현될 수 있다. 지식 시스템(102)은 본 명세서에 기술된 시스템들, 컴포넌트들 및 기법들이 구현될 수 있고 및/또는 본 명세서에 기술된 시스템들, 컴포넌트들 및 기법들이 인터페이스할 수 있는 정보 검색 시스템의 예이다.
사용자는 클라이언트 디바이스들의 조정된 "생태계"(108)를 집합적으로 형성하는 하나 이상의 클라이언트 디바이스들(106)을 통해 지식 시스템(102)과 인터렉션할 수 있다. 사용자의 생태계(108)의 각 클라이언트 디바이스(106)는 근거리 통신망(LAN)과 같은 하나 이상의 네트워크(110) 또는 인터넷과 같은 광역 통신망(WAN)을 통해 지식 시스템(102)에 연결된 컴퓨터일 수 있다. 각 클라이언트 디바이스(106)는 예를 들어, 데스크톱 컴퓨팅 디바이스, 랩탑 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 모바일폰 컴퓨팅 디바이스, 사용자 차량의 컴퓨팅 디바이스(예를 들어, 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 네비게이션 시스템) 또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 디바이스를 갖는 사용자의 시계, 컴퓨팅 디바이스를 갖는 사용자의 안경)일 수 있다. 추가적 및/또는 대안적 클라이언트 디바이스이 제공될 수 있다.
각 클라이언트 디바이스(106)는 퍼스널 어시스턴트 모듈(107) 및/또는 도 1에 도시된 어플리케이션들 APP A, APP B, APP C, APP D 및 APP E와 같은 다양한 상이한 어플리케이션들을 동작할 수 있다. 상이한 가상의 어플리케이션들이 상이한 클라이언트 디바이스들(106) 상에 설치된 것을 볼 수 있다. 예를 들어, 제1 클라이언트 디바이스(106i)는 설치된 APP A, APP B 및 APP C를 가진다. 또 다른 클라이언트 디바이스(106N)는 설치된 APP A를 가지지만, 설치된 APP B 또는 APP C는 가지지 않는다. 그러나, 다른 클라이언트 디바이스(106N)는 설치된 APP D 및 APP E를 가진다. APP들 A-E는 다양한 이벤트에 응답하여 클라이언트 디바이스(106)의 사용자에게 노출된 인터페이스를 가질 수 있는 임의의 어플리케이션을 지칭한다. 어플리케이션 인터페이스(즉, 사용자로 하여금 그것과 인터렉션하게 함)는 (예: 비 휘발성 메모리로부터) 어플리케이션을 로딩/오픈/런칭하거나, 또는 만약 어플리케이션이 백그라운드에서 이미 개시/오픈/런칭된 경우, 상기 어플리케이션을 포어그라운드로 가져옴(예: 어플리케이션 창을 활성창으로 만듦)으로써 사용자에게 "노출"될 수 있다. 이러한 앱들(및 본 명세서 언급된 "후보 어플리케이션")은 예약을 하거나 또는 티켓을 얻기(예: 레스토랑 예약, 호텔 예약, 항공사 예약, 기차 예약, 이벤트 예약 등) 위한 어플리케이션, 지도 어플리케이션, 캘린더 어플리케이션, 알림 어플리케이션, 미디어 소비 어플리케이션(예: 음악 또는 비디오 플레이어), 게임, 메시징 앱, 날씨 앱, 부동산 앱, 건강 추적 앱, 쇼핑 앱, 뉴스 앱, 차량 공유 앱, 워드 프로세서 또는 스프레드시트 어플리케이션과 같은 생산성 어플리케이션, 전화 어플리케이션, 웹 브라우저 등을 포함할 수 있으나, 이에 제한되지 않는다.
각 클라이언트 디바이스(106) 및 지식 시스템(102)은 데이터 및 소프트웨어 어플리케이션의 저장을 위한 하나 이상의 메모리들, 데이터에 액세스하고 어플리케이션을 실행하기 위한 하나 이상의 프로세서 및 네트워크를 통해 통신을 지원하는 다른 컴포넌트들을 포함할 수 있다. 하나 이상의 클라이언트 디바이스(106) 및/또는 지식 시스템 (102)에 의해 수행되는 동작들은 다수의 컴퓨터 시스템들에 걸쳐 분산될 수 있다. 지식 시스템(102)은 예를 들면, 네트워크를 통해 서로 연결된 하나 이상의 위치들에서 하나 이상의 컴퓨터에서 실행되는 컴퓨터 프로그램들로서 구현될 수 있다.
다양한 구현예들에서, 지식 시스템(102)은 퍼스널 어시스턴트 엔진(120), 어플리케이션 엔진(122), 인덱싱 엔진(126), 정보 엔진(130), 랭킹 엔진(134) 및 대체 쿼리 제안 엔진(136)을 포함할 수 있다. 일부 구현예들에서, 하나 이상의 엔진들(120, 122, 126, 130, 134 및/또는 136)은 생략 될 수 있다. 일부 구현예들에서, 하나 이상의 엔진들(120, 122, 126, 130, 134 및/또는 136)의 모든 또는 일부 양태들은 결합될 수 있다. 일부 구현예들에서, 하나 이상의 엔진들(120, 122, 126, 130, 134 및/또는 136)은 지식 시스템(102)와 별개인 컴포넌트에서 구현될 수 있다. 일부 구현예들에서, 하나 이상의 엔진들(120, 122, 126, 130, 134 및/또는 136) 또는 그것들의 임의의 동작적 부분은 클라이언트 디바이스(106)에 의해 실행되는 컴포넌트에서 구현될 수 있다.
다양한 구현예들에서, 퍼스널 어시스턴트 엔진(120)은, 예를 들어 인덱스 (121)에 저장될 수있는 다양한 온라인 음향/언어, 문법 및/또는 액션 모델에 의존하는 음성 기반 쿼리 프로세서를 사용하여, 음성 입력을 처리하기 위한 보완적인 기능을 포함할 수 있다. 일부 구현예들에서, 특히 대부분의 클라이언트 디바이스들(106)이 리소스-제한 디바이스들인 경우, 퍼스털 어시스턴트 엔진(120)은 각 클라이언트 디바이스(106)에 로컬인 것보다 더 복잡하고 계산 리소스-집약적 인 음성 프로세싱 기능을 구현할 수 있음이 인식될 것이다. 액션이 퍼스널 어시스턴트 모듈(107)에 의해 수행되는 것으로 본 명세서에 기술된 경우, 이는 퍼스널 어시스턴트 엔진(120)에 의해 수행되는 액션의 하나 이상의 양태들을 포함할 수 있고 포함하지 않을 수도 있음을 이해되어야 한다.
일부 구현예들에서, 다수의 퍼스널 어시스턴트 엔진들(122)이 이용될 수 있고, 각각은 하나 이상의 개별 퍼스널 어시스턴트 모듈(107)에 대한 온라인 대응 물로서 작동한다. 예를 들어, 일부 구현예들에서, 생태계(108)의 각 클라이언트 디바이스(106)는 (예를 들어, 사용자의 선호로 구성된, 동일한 인터렉션 이력과 연관된) 사용자와 연관된 퍼스널 어시스턴트 모듈(107)의 인스턴스를 동작하도록 구성 될 수 있다. 퍼스널 어시스턴트 엔진(120)의 단일의, 사용자 중심 온라인 인스턴스는 사용자가 그 시간에 어떤 디바이스를 동작하고 있는지에 따라, 이들 다수의 퍼스널 어시스턴트 모듈(107) 각각에 액세스가능할 수 있다.
일부 구현예들에서, 예를 들어, 클라이언트 디바이스(106)가 온라인 서비스와 통신할 때마다 온라인 기능이 사용되고, 연결이 없는 경우 오프라인 기능이 사용되도록 온라인 및 오프라인 기능 모두가 지원될 수 있다. 다른 구현예들에서, 상이한 액션들 또는 액션 도메인들은 온라인 및 오프라인 기능에 할당될 수 있고, 다른 구현예들에서는 오프라인 기능이 특정한 음성 입력을 적절히 처리하지 못할 때에만 온라인 기능이 사용될 수 있다. 그러나 다른 구현예들에서는 보완적인 온라인 기능을 사용할 수 없다.
다양한 구현예들에서, 퍼스널 어시스턴트 모듈(107) 및/또는 퍼스널 어시스턴트 엔진(120)은 나중에 사용하기 위해 지속적 메시지 교환 스레드와 같이, 사용자와 퍼스널 어시스턴트 모듈(107)간에 교환된 메시지들 및/또는 다른 데이터의 트랜스크립트를 저장할 수 있다. 예를 들어, 퍼스널 어시스턴트 모듈(107) 및/또는 퍼스널 어시스턴트 엔진(120)은 예를 들어 색인(121)에 메시지 자체를 저장할 수 있다. 일부 구현예들에서, 이러한 메시지들은 타임 스탬프, 메시지 교환 스레드에 메시지가 쓰였던 위치, 메시지의 주제 등으로 주석이 달릴 수 있다. 이들 저장된 메시지들 및 주석들(또는 경우에 따라 메타 데이터)은 나중에 사용자와 사용자의 퍼스널 어시스턴트 모듈(107)의 하나 이상의 인스턴스들 사이의 대화 흐름을 개선하는데 사용될 수 있다. 본 명세서에 사용된 바와 같이, "트랜스크립트"는 메시지 교환 스레드에서 교환 및/또는 보여진 텍스트, 이미지, 사운드 및/또는 애플릿의 라이브 기록을 지칭할 수 있다. 일부 구현예들에서, 메시지 교환 스레드의 트랜스크립트는 사용자가 퍼스널 어시스턴트 모듈의 하나 이상의 인스턴스들과 대화할 때 실시간 또는 거의 실시간으로 업데이트될 수 있다. 어플리케이션 엔진(122)은 클라이언트 디바이스(106)에 설치되거나 또는 이와 달리 사용가능한 어플리케이션들의 색인(124)을 유지할 수 있다. 예를 들어, 어플리케이션 엔진(122)은 클라이언트 디바이스들(106)의 사용자들이 어플리케이션(또는 "앱")을 다운로드하는 소위 "앱 스토어"와 통합되거나 적어도 그와 통신할 수 있다. 일부 구현예들에서, 사용자가 어플리케이션 엔진(122)(또는 어플리케이션 엔진(122)과 통신하는 앱 스토어)으로부터 앱을 다운로드 및/또는 설치하면, 사용자가 해당 어플리케이션을 설치했다는 색인(124)과 같은 기록이 추가될 수 있다. 일부 구현예들에서, 이러한 기록들은 예를 들어 사용자가 어플리케이션을 삭제하는 경우, 사용자가 어플리케이션 엔진(122)이 사용가능한 앱 스토어 이외의 소스로부터 앱을 다운로드받고 설치하는 경우를 반영하기 위해 클라이언트 디바이스(106)와 주기적으로 동기화될 수 있다. 후술될 바와 같이, 어플리케이션 엔진(122)은 클라이언트 디바이스들(106)에 설치된 어플리케이션을 식별하는 프로세스에 참여할 수 있는 도 1에 도시된 다수의 컴포넌트들 중 하나이며, 따라서 적절한 선택가능한 어플리케이션 링크들이 클라이언트 디바이스들(106)에 의해 렌더링된 메시지 교환 스레드들의 트랜스크립트들로 삽입될 수 있다.
일부 구현예들에서, 어플리케이션 엔진(122)은 사용자가 설정한 계정을 통해 개별 사용자들에 의해 액세스 가능할 수 있다. 예를 들어, 사용자는 다양한 자격 증명(예를 들어, 사용자 이름/패스워드, 망막 스캔, 지문 스캔 등)을 사용하여 액세스할 수 있는 계정을 어플리케이션 엔진(122)(또는 어플리케이션 엔진(122)과 통신하는 앱 스토어)에 가질 수 있다. 사용자가 자신의 계정에 로그인하면, 사용자는 사용자에 의해 운영/소유된 클라이언트 디바이스의 생태계를 형성하는 하나 이상의 클라이언트 디바이스들에 하나 이상의 앱들을 다운로드할 수 있다. 일부 경우에, 특정한 앱은 사용자가 앱을 구매하는 조건(또는 앱 사용 권한)에서만 다운로드할 수 있다. 일부 구현예들에서, 사용자가 앱을 구매할 때, 그 이후에 사용자는 생태계(108)의 다수의 클라이언트 디바이스들(106) 상에 앱을 다운로드하고 설치할 권리를 가질 수 있다.
인덱싱 엔진(126)은 지식 시스템(102)에 의한 사용을 위해 색인(128)을 유지할 수 있다. 인덱싱 엔진(126)은 예를 들어 종래의 및/또는 다른 인덱싱 기술을 사용하여 문서를 프로세싱하고 색인(128)의 색인 항목들을 업데이트한다. 예를 들어, 인덱싱 엔진(126)은 월드 와이드 웹(World Wide Web)과 같은 하나 이상의 리소스들을 크롤링하고 이러한 크롤링을 통해 액세스된 문서를 인덱싱할 수 있다. 다른 예로서, 인덱싱 엔진(126)은 그러한 문서를 제어하는 웹 마스터와 같은 하나 이상의 리소스로부터 하나 이상의 문서와 관련된 정보를 수신하고 이러한 정보에 기초하여 상기 문서를 인덱싱할 수 있다. 문서는 문서 주소와 연관된 임의의 데이터이다. 문서는 웹페이지, 워드 프로세싱 문서, PDF(portable document format) 문서, 이미지, 전자메일, 캘린더 항목, 비디오 및 웹 피드 등을 포함한다. 각 문서는 텍스트, 이미지, 비디오, 사운드, 내장된 정보(예: 메타 정보 및/또는 하이퍼링크); 및/또는 내장된 명령어들(예: JavaScript와 같은 ECMAScript 구현)와 같은 컨텐츠를 포함할 수 있다.
정보 엔진(130)은 지식 시스템(102)에 의한 사용을 위한 비-문서-특정 정보에 대한 액세스를 포함하거나 지원하는 다른 색인(132)을 유지할 수 있다. 예를 들어, 지식 시스템(102)은 특정 정보를 탐색하는 것으로 보이는 검색 쿼리에 응답하여 정보를 반환하도록 구성될 수 있다. 사용자가 "Ronald Reagan's birthday"를 검색하면, 지식 시스템(102)은 정보 엔진(130)으로부터 날짜 "1911년 2월 6일"을 수신할 수 있다. 이 정보는 인덱싱 엔진(126)으로부터 수신된 문서와는 별개인 검색 결과의 일부로서 사용자에게 반환될 수 있다. 다양한 구현예들에서, 색인(132) 자체가 정보를 포함할 수 있고 또는 온라인 백과사전, 연감(almanacs) 등과 같은 하나 이상의 다른 정보 소스에 링크될 수 있다. 다양한 구현예들에서, 색인(128) 또는 색인(132)은 쿼리들(또는 쿼리 용어들)과 문서 및/또는 정보 간의 매핑을 포함할 수 있다.
본 명세서에서, 용어 "데이터베이스" 및 "색인"은 임의의 데이터 집합을 지칭하기 위해 광범위하게 사용될 것이다. 데이터베이스 및/또는 색인의 데이터는 임의의 특정한 방식으로 구조화될 필요가 없으며, 하나 이상의 지리적 위치에 있는 저장 디바이스에 저장될 수 있다. 따라서, 예를 들어, 색인들(121, 124, 128 및 132)은 데이터의 다수의 집합을 포함할 수 있고, 그 각각은 상이하게 조직화되고 액세스될 수 있다.
랭킹 엔진(134)은 예를 들어 종래의 및/또는 다른 정보 검색 기법들을 사용하여, 검색 쿼리에 대한 응답인 문서 및 다른 정보를 식별하기 위해 색인들(128 및/또는 132)을 사용할 수 있다. 랭킹 엔진(134)은 예를 들어 하나 이상의 랭킹 신호를 사용하여 검색 쿼리에 대한 응답으로서 식별된 문서 및 다른 정보에 대한 점수를 계산할 수 있다. 각 랭킹 신호는 문서 또는 정보 자체에 관한 정보, 문서 또는 정보와 검색 쿼리 간의 관계 및/또는 문서 또는 정보와 검색을 수행하는 사용자 간의 관계를 제공할 수 있다.
대체 쿼리 제안 엔진(136)은 대체 쿼리 제안의 데이터베이스(도시되지 않음) 및/또는 클라이언트 디바이스(106)의 사용자에 관한 정보(예를 들어, 검색 이력, GPS 위치, 사용자 속성)와 같은 하나 이상의 신호 및/또는 다른 정보를 사용하여, 임의의 검색 결과들과 함께 클라이언트 디바이스(106)에 제공하기 위한 대체 쿼리 제안들을 생성할 수 있다. 사용자가 검색 쿼리의 연속 문자를 입력함에 따라, 대체 쿼리 제안 엔진(136)은 사용자에게 유용한 결과를 산출할 가능성이 있는 대체 쿼리를 식별할 수 있다. 예를 들어, 클라이언트 디바이스(106)가 시카고에 위치하고, "restaur"라는 문자를 타이핑했다고 가정한다. 대체 쿼리 제안 엔진(136)은 클라이언트 디바이스(106)가 시카고에 있음을 표시하는 위치 신호 및 라이브 음악이 나오는 레스토랑에 대한 사용자의 선호를 표시하는 검색 이력 신호에 기초하여, "시카고에 있는 라이브 음악이 나오는 레스토랑"을 제안할 수 있다. 다른 예로서, "Ronald Reagan's birt"를 타이핑한 사용자에 대해, 대체 쿼리 제안 엔진(136)은 예를 들어, 프리픽스 매칭과 같은 기술을 사용하여, "Ronald Reagan's birthday", "Ronald Reagan's birthplace, "Ronald Reagan's birth control position" 등과 같은 대체 쿼리들을 결정하고 제안한다. 대체 쿼리 제안 엔진(136)은 부분적으로 형성된 검색 쿼리의 맞춤법 교정된 버전과 같은 다른 제안도 제공할 수 있다.
다양한 구현예들에서, 퍼스널 어시스턴트 모듈(107)의 하나 이상의 인스턴스들 및/또는 퍼스널 어시스턴트 엔진(120)은 사용자와 퍼스널 어시스턴트 모듈(107)의 하나 이상의 인스턴스들 간의 메시지 교환 스레드로부터 유래하는 하나 이상의 큐들을 검출하도록 구성될 수 있다. 다양한 구현예들에서, 상기 하나 이상의 큐들은 하나 이상의 선택가능한 링크들의 상기 메시지 교환 스레드로의 통합을 트리거링할 수 있다. 상기 하나 이상의 선택가능한 어플리케이션 링크들 각각은 메시지 교환 스레드 및/또는 퍼스널 어시스턴트 모듈(107)과 구별되는 어플리케이션에 링크할 수 있다.
일부 구현예들에서, 큐들은 메시지 교환 스레드의 컨텐츠로부터 유래할 수 있다. 예를 들어, 하나 이상의 어플리케이션들과 연관된 엔터티 또는 키워드/문구를 언급하는 사용자는 하나 이상의 어플리케이션에 대한 하나 이상의 선택가능한 어플리케이션 링크들을 메시지 교환 스레드에 통합하는 큐를 구성할 수 있다. 큐의 다른 예는 사용자에 의한 퍼스널 어시스턴트 모듈(107)을 향한, 어플리케이션과 연관된 패턴 또는 템플릿과 매칭되는 진술이다. 다양한 구현예들에서, 템플릿은 특정한 어플리케이션과 연관될 수 있다. 예를 들어, 템플릿은 사용자 호출 또는 특정 어플리케이션의 활성화를 초래하는 이전 메시지 교환 스레드로부터의 메시지를 포함하는 메시지의 코퍼스로부터 생성되었을 수 있다. 일부 구현예에서, 템플릿은 동일하거나 유사한 고정된 그리고 "일시적" 텍스트를 포함하는 메시지와 같은 하나 이상의 속성을 공유하는 코퍼스로부터 메시지들의 클러스터와 연관될 수 있다. 또 다른 구현예들에서, 큐들은 더 명시적일 수 있다. 예를 들어, 사용자는 자신의 퍼스널 어시스턴트 모듈로 향하는 스레드에 메시지를 입력할 수 있다(예: "안녕 BOT, 샌프란시스코의 날씨는 어때?"). 이것은 퍼스널 어시스턴트 모듈(107)이 샌프란시스코 날씨로 이미 사전 로딩된 날씨 앱에 대한 링크와 같은, 하나 이상의 어플리케이션 링크들을 메시지 교환 스레드의 트랜스크립트에 통합하도록 프롬프트할 수 있다.
클라이언트 디바이스(106), 하나 이상의 퍼스널 어시스턴트 모듈(107) 및/또는 퍼스널 어시스턴트 엔진(120) 또는 어플리케이션 엔진(122)에 디스플레이된 메시지 교환 스레드의 트랜스크립트에 어느 선택가능한 어플리케이션 링크들이 통합될지를 결정하기 위해, 메시지 교환 스레드의 사용자에 의해 동작되는 각 클라이언트 디바이스(106) 상에 설치된 하나 이상의 후보 어플리케이션들을 식별할 수 있다. 다양한 구현예들에서, 상기 하나 이상의 식별된 후보 어플리케이션들은 상기 메시지 교환 스레드의 컨텐츠와 연관될 수 있다. 일부 구현예들에서, 상술된 하나 이상의 큐들은 하나 이상의 어플리케이션들과 연관될 수 있다.
일 예시로서, 사용자가 음악 및/또는 음악가를 언급한 경우, 하나 이상의 후보 어플리케이션들은 음악 재생, 녹음 및 프로듀싱과 연관된 어플리케이션들일 수 있다. 사용자가 영화, 텔레비전 및/또는 배우/감독을 언급한 경우, 하나 이상의 후보 어플리케이션들은 영화/TV를 재생하거나 영화 및 TV 제작과 연관된 캐스트/크루의 검색가능한 데이터베이스와 연관될 수 있다. 사용자가 여행에 대해 언급한 경우, 하나 이상의 후보 어플리케이션들은 호텔, 항공사, 기차, 보트, 렌트카 등의 여행 예약을 하는 것과 연관될 수 있다. 사용지가 레스토랑을 언급한 경우, 하나 이상의 후보 어플리케이션들은 레스토랑 예약, 레스토랑 리뷰, 레스토랑 전화 등과 연관될 수 있다.
하나 이상의 후보 어플리케이션들이 식별되면, 하나 이상의 선택가능한 어플리케이션 링크들("선택가능한 링크들"이라고도 함)이 사용자에 의해 현재 동작되는 주어진 클라이언트 컴퓨팅 디바이스(106)의 그래픽 사용자 인터페이스에 디스플레이되는 메시지 교환 스레드의 트랜스크립트에 통합될 수 있다. 다양한 구현예들에서, 각 선택가능한 링크는 사용자에 의해 동작가능하며, 클라이언트 디바이스(106)로 하여금 각각의 후보 어플리케이션과 연관된 인터페이스를 참가자에게 노출하게 할 수 있다. 예를 들어, 각각의 후보 어플리케이션이 백그라운드에서 실행 중인 경우(예를 들어, 어떤 형태로 휘발성 메모리에 이미 로딩되어 있는 경우), 대응하는 선택가능한 링크의 동작은 후보 어플리케이션이 활성 상태가 되도록하여, 사용자가 각각의 후보 어플리케이션의 인터페이스(그래픽, 청각, 햅틱 등)에 노출되고 따라서 그와 인터렉션할 수 있게 할 수 있다. 각각의 후보 어플리케이션이 설치되어 있지만 백그라운드에서 실행되고 있지 않으면, 대응하는 선택가능한 링크를 동작은 후보 어플리케이션이 오픈되거나 비휘발성 메모리로부터 "런칭"되도록 할 수 있다. 메시지 교환 스레드에(예를 들어, 적어도 하나의 퍼스널 어시스턴트 모듈(107)에 의해 디스플레이된 스레드의 트랜스크립트로) 통합되는 선택가능한 어플리케이션 링크들은 다양한 형태로 제공될 수 있다. 일부 구현예들에서, 선택가능한 어플리케이션 링크는 링크된 어플리케이션과 연관된 그래픽 아이콘 또는 애니메이션의 형태로 제공될 수 있다. 일부 구현예들에서, 선택가능한 어플리케이션 링크는 어플리케이션에 관한 정보를 전달하는 텍스트 또는 어플리케이션을 사용하여 취해질 수 있는 동작 (예를 들어, "위치로 가는 방향")을 포함할 수 있다. 다양한 구현예들에서, 선택가능한 링크는 메시지 교환 스레드의 임의의 다른 메시지와 마찬가지로, 예를 들어 퍼스널 어시스턴트 모듈(107)에 의해 이루어진 진술을 표현하기 위한 "버블(bubble)"내에서, 트랜스크립트의 일부로서 렌더링될 수 있다. 따라서, 선택가능한 어플리케이션 링크는 메시지 교환 스레드에 추가적인 메시지들이 첨부됨에 따라 "위로 이동"할 수 있다.
일부 구현예들에서, 예를 들어 정보 엔진(130) 및/또는 다른 컴포넌트의 일부로서, 지식 시스템(102)은 알려진 엔터티, 엔터티 유형(예를 들어, 사람, 장소, 사물) 및 상기 알려진 엔터티 간의 관계의 기록들을 포함하는 소위 지식 기반을 가질 수 있다. 일부 구현예들에서, 그러한 지식 기반은, 예를 들어 색인(132)에서, 노드들이 엔터티를 표현하고 에지가 엔터티들 및/또는 엔터티 유형들 간의 관계를 표현하는 그래프로서 구현될 수 있지만, 이것이 요구되지는 않는다. 상기 구현예들에서, 상기 지식 기반으로부터의 엔터티들에 관한 정보는 퍼스널 어시스턴트 엔진(120) 및/또는 퍼스널 어시스턴트 모듈(107)의 하나 이상의 인스턴스들과 같은 컴포넌트들에 사용가능하게 될 수 있다. 그 후, 이들 컴포넌트들은 엔터티 정보를 사용하여 관련 어플리케이션을 식별하고, 상기 식별된 후보 어플리케이션과 연관된 상태 머신의 상이한 상태 사이에서 전이하는데 사용가능한 하나 이상의 입력 필드 또는 다른 데이터 포인트를 미리 채운다.
일부 구현예들에서, 지식 기반은 예를 들어, 하나 이상의 엔진들(120, 122, 126 및/또는 130)에 의해 사용되어 사용자와 퍼스널 어시스턴트 모듈(107)의 하나 이상의 인스턴스들 간에 교환된 하나 이상의 메시지들에서 언급된 제1 엔터티 또는 엔터티 유형을 식별할 수 있다. 예를 들어, 엔터티에 관한 검색 쿼리에 응답하여, 획득된 엔터티/엔터티 유형에 관련된 정보는 하나 이상의 후보 어플리케이션들을 식별하는데 사용될 수 있다. 예를 들어, 사용자가 메시지 교환 스레드에 "Babe Ruth가 최고였어!"와 같은 메시지를 제출한다고 가정한다. "베이브 루스(Babe Ruth)"로 예를 들어, 색인(132)에 저장된 지식 기반에 기초한 정보 엔진(130)에 의해, 베이브 루스의 하나 이상의 속성 및/또는 그가 뛰었던 하나 이상의 팀들(예를 들어, 뉴욕 양키즈)과 같은 하나 이상의 관련 엔터티와 함께, 그의 가족, 동료, 활동년도, 살아있는 해 등이 식별될 수 있다. 그 다음, 이 정보 중 하나 이상의 조각들을 사용하여 상기 엔터티의 언급에 응답하거나 또는 이와 달리 관련 있는 하나 이상의 후보 어플리케이션들 또는 어플리케이션 "카테고리들"을 식별할 수 있다. 일부 구현예들에서, 이 정보의 조각들은 링크된 어플리케이션과 연관된 하나 이상의 데이터 포인트들(예를 들어, 입력 파라미터, 데이터 입력 필드, 상태 머신의 상태들 간에 전이하게 하는 데이터 포인트 등)을 "미리 채우는"데에 사용될 수 있다. 이렇게 하면, 사용자가 선택가능한 어플리케이션 링크를 작동시킬 때, 링크된 어플리케이션이 하나 이상의 데이터 포인트들이가 이미 채워진 상태로 오픈될 수 있다.
도 2는 스벤(Sven)이라는 사용자에 의해 동작되는 제1 클라이언트 디바이스(206i)(스마트폰 또는 태블릿 컴퓨터의 형태를 취함)를 도시한다. 클라이언트 디바이스(206i)는 스벤과 퍼스널 어시스턴트 모듈(도 2의 "PAM")의 하나 이상의 인스턴스들 간의 지속적 메시지 교환 스레드의 트랜스크립트(252)를 도시하는 그래픽 사용자 인터페이스(250)를 포함한다. 그래픽 사용자 인터페이스(250)는 또한 스벤이 예를 들어, 퍼스널 어시스턴트 모듈에 의한 이전 진술들에 응답하여 텍스트(타이핑 또는 발화함으로써) 또는 다른 컨텐츠를 메시지 교환 스레드에 입력하는데 사용할 수 있는 텍스트 입력 필드(254)를 포함한다. 이 예에서, 스벤(이것이 스벤의 클라이언트 디바이스(206i)이기 때문에 도 2의 "YOU")은 배고프다고 했다. 퍼스널 어시스턴트 모듈은 스벤에게 어떤 것을 먹고 싶은지 물었고, 스벤은 "나는 그리스 음식을 좋아하지만 인도 음식은 좋아하지 않는다."라고 대답한다. 퍼스널 어시스턴트 모듈은 "가상 카페"라는 레스토랑을 제안함으로써 응답한다.
대화의 이 시점에서, 알려진 엔터티(가상 카페)의 언급은 트랜스크립트(252)에서 렌더링될 복수의 선택가능한 어플리케이션 링크(256i-3)를 유도할 수 있다. 도 2에서, 선택가능한 어플리케이션 링크들(256i-3)이 버블 내에 도시된다. 그러나 이것은 제한하려는 것이 아니다. 다른 구현예들에서, 그러한 아이콘들은 그래픽 및/또는 애니메이션을 포함하거나 포함하지 않을 수 있으며, 예를 들어, 도 3에 도시된 바와 같이 버블 외부에서 렌더링될 수 있다. 또한, 일부 구현예에서, 선택가능한 링크는 순전히 텍스트 하이퍼링크일 수 있다.
제1 선택가능한 어플리케이션 링크(256i)는 전화 어플리케이션에 링크된다. 스벤이 이 링크를 선택하면, 클라이언트 디바이스(206)에 설치된 전화 앱의 인터페이스가 스벤에게 노출될 수 있다. 예를 들어, 전화 앱이 런칭되거나 및/또는 전화 앱에 활성창(많은 모바일 디바이스는에서 단일창)을 제공될 수 있다. 일부 구현예들에서, 전화 앱은 가상 카페와 연관된 전화번호로 전화하기 위해 미리 다이얼링될 수 있다. 제3 선택가능한 어플리케이션 링크 (2563)는 지도 어플리케이션에 링크되며, 예를 들어, 가상 카페에 대한 길안내를 한다. 제2 선택가능한 링크(2562)는 스벤이 가상 카페에 예약하기 위해 동작할 수 있는 "자리 잡기(GRAB A TABLE)" 어플리케이션에 링크된다. 스벤이 해당 링크를 선택하면, "GRAB A TABLE" 어플리케이션과 연관된 인터페이스(예: 그래픽, 인터렉티브 음성 응답, 햅틱 등)가 스벤에게 노출될 수 있다. 일부 구현예들에서, "GRAB A TABLE" 앱은 다양한 소스들로부터 획득된 데이터로 미리 채워진 입력과 같은 다양한 데이터 포인트들을 가질 수 있다. 일부 구현예에서, 데이터 포인트는 클라이언트 디바이스(206i) 및/또는 지식 시스템(102)의 다양한 컴포넌트로부터 획득된 컨텍스트적 데이터로 미리 채워질 수 있다. 예를 들어, 스벤에 의해 동작되는 클라이언트 디바이스(206i)에 의해 제공된 GPS(global positioning system) 좌표는 가상 카페가 근처에 있음을 나타낼 수 있다.
도 3은 나중에 스벤(Sven)에 의해 동작되는 스벤의 생태계의 제2 클라이언트 디바이스(2062)(스마트 워치의 형태를 취함)를 도시한다. 클라이언트 디바이스(2062)는 스벤과 스벤의 퍼스널 어시스턴트 모듈(도 3의 "PAM")의 하나 이상의 인스턴스들 간의 지속적 메시지 교환 스레드의 트랜스크립트(262)를 도시하는 그래픽 사용자 인터페이스(260)를 포함한다. 이 예에서 스벤은 "3명 점심 식사 예약을 해야해"라고 말한다. 도 2에 도시된 이전 메시지들에 의해 제공된 컨텍스트 없이, 이러한 요청은 제2 클라이언트 디바이스(2062)에서 동작하는 퍼스널 어시스턴트 모듈의 인스턴스에 의해 해결될 수 없다. 그러나, 본 명세서에 기술된 기법들을 사용하여, 제2 클라이언트 디바이스(2062)에서 동작하는 퍼스널 어시스턴트 모듈의 인스턴스는 스벤과 스벤의 생태계의 다수의 디바이스들에서 동작하는 퍼스널 어시스턴트 모듈의 다수의 인스턴스들 간의 지속적 메시지 교환 스레드에 대한 액세스할 수 있다(도 1에서 (108)). 따라서, 퍼스널 어시스턴트 모듈은 다시 가상 카페를 제안할 수 있고, 다시 한번 트랜스크립트(262)에 복수의 선택가능한 어플리케이션 링크들(266i-3)을 렌더링할 수 있다.
종종 사용자들은 도 1에 도시된 바와 같이, 디바이스들의 생태계들의 상이한 디바이스들에 설치된 상이한 어플리케이션들을 가질 수 있다. 그것은 스벤의 제1 및 제2 클라이언트 디바이스들(206i 및 2062)의 경우이다. 제1 클라이언트 디바이스(206i)는 "GET A TABLE"이라고 하는 예약 어플리케이션을 가지지만, 제2 클라이언트 디바이스(2062)는 "READY TO EAT"라 불리는 대체적 예약 어플리케이션을 갖는다. 결과적으로, 제2 선택가능한 어플리케이션 링크(2562)가 도 2에 도시된 바와 같이 제1 클라이언트 디바이스(206i)에 렌더링되는 경우, 그것은 로컬에 설치된 "GET A TABLE" 어플리케이션에 링크된다. 결과적으로, 제2 선택가능한 어플리케이션 링크(2662)가 도 3에 도시된 바와 같이 제2 클라이언트 디바이스(2062)에 렌더링되는 경우, 그것은 로컬에 설치된 "READY TO EAT" 어플리케이션에 링크된다. 아래에서 설명하는 바와 같이, 다양한 구현예들에서, 클라이언트 디바이스들에 설치된 어플리케이션들은 사용자와 퍼스널 어시스턴트 모듈 간의 메시지 교환 스레드들에 어떤 선택 가능한 링크들이 포함되는지 지시할 수 있다.
선택가능한 어플리케이션 링크(2662)를 동작하는 스벤에 응답하여, 스벤에게 노출될 수 있는 "READY TO EAT" 어플리케이션(단지 설명의 목적으로 본 명세서에 기술된 가상 어플리케이션)과 연관된 인터페이스(270)의 예시가 도 4에 도시된다. 이 예시에서, "READY TO EAT" 인터페이스(270)는 미리 채워진 다양한 데이터 포인트들(예를 들어, 입력 필드들)로 스벤의 제2 클라이언트 디바이스(2062) 상에 렌더링된다. 예를 들어, 스벤이 3명에 대한 예약이 필요하다고 언급했기 때문에, 예약은 3명의 식사자로 채워졌다.
예약 시간은 오후 12시로 미리 채워졌다. 예를 들어, 스벤이 11:30 AM에 그의 퍼스널 어시스턴트 모듈과 점심 식사를 논의한 후 레스토랑에 도착하기에 충분한 시간이 필요할 수 있기 때문일 수 있다. 예약 시간은 추가적으로 또는 대안적으로 사람들이 일반적으로 식사를 하는 다음 시간이기 때문에 12:00 PM으로 미리 채워질 수 있다. 예를 들어, 3:30 PM에 스벤이 식사를 논의했다면, 예약 시간은 6:30 PM과 같이, 일반적으로 저녁 식사와 연관된 시간으로 미리 채워 졌을 수 있다. 스벤이 퍼스널 어시스턴트 모듈과 인터렉션하는 사용자이기 때문에, 예약자 이름은 "스벤"이다.
도 2 내지 4의 예시는 레스토랑과 관련되지만, 선택가능한 어플리케이션 링크들은 수많은 다른 유형의 어플리케이션들에 링크될 수 있고, 어플리케이션 유형에 따라 다른 유형의 사전 로딩된 데이터를 포함할 수 있음을 이해해야 한다. 예를 들어, 클라이언트 디바이스를 동작하는 사용자가 자신의 퍼스널 어시스턴트 모듈에게 택시를 호출할 것을 요구한다고 가정한다. 다양한 구현예들에서, 운송 앱에 링크된 선택가능한 어플리케이션 링크가 사용자와 퍼스널 어시스턴트 모듈 간의 대화에 통합될 수 있다. 다양한 구현예들에서, 사용자의 현재 위치(예를 들어, 클라이언트 디바이스의 GPS 기능에 의해 결정되는 바와 같이)는 운송 앱과 관련된 "현재 위치" 데이터 포인트를 미리 채우는데 사용될 수 있다. 사용자가 의도된 목적지를 또한 특정한 경우, 운송 앱과 관련된 "목적지" 필드가 유사하게 미리 채워질 수 있다.
전술한 바와 같이, 하나 이상의 선택가능한 어플리케이션 링크들은 클라이언트 디바이스에서 사용가능한 리소스들에 적어도 부분적으로 기초하여 클라이언트 디바이스에 의해 디스플레이된 트랜스크립트에서 선택적으로 렌더링될 수 있다. 예를 들어, 일부 구현예들에서, 설치된 어플리케이션들에 대한 선택가능한 어플리케이션 링크들만 클라이언트 디바이스에 디스플레이될 수 있다. 도 5는 도 1에 도시된 환경의 다양한 컴포넌트들을 도시하고, 사용자의 생태계(508)의 클라이언트 디바이스(506)에 통합된(예를 들어, 소프트웨어로 설치되거나, 하드웨어 컴포넌트로) 하나 이상의 컴포넌트들이 어떻게 클라이언트 디바이스(506)에 설치된 어플리케이션들의 식별을 수행할 수 있는지를 설명한다. 이 예시에서, 제1 클라이언트 디바이스(506i)는 다른 것들 중에서, 앞서 논의된 "GRAB A TABLE"라 불리는 (가상의) 예약 클라이언트 어플리케이션(562)을 설치했다. 제2 클라이언트 디바이스(5062)는 다른 것들 중에서, "READY TO EAT"로 불리는 상이한 (가상의) 예약 클라이언트 어플리케이션(564)을 설치했다.
사용자가 퍼스널 어시스턴트 모듈(507i)의 제1 인스턴스와 대화하기 위해 사용자의 생태계(508)의 제1 클라이언트 디바이스(506i)와 인터렉션한다고 가정하자. 또한, 메시지 교환 스레드가 도 2과 유사한 먹을 장소에 관한 논의를 포함한다고 가정하자. 이 논의(즉, 레스토랑 예약과 관련된 논의로부터의 하나 이상의 큐들)에 기초하여, 예를 들어, 퍼스널 어시스턴트 엔진(120) 및/또는 어플리케이션 엔진(122)에 의해 "예약(RESERVATION)"의 어플리케이션 카테고리가 식별되고, 이 카테고리의 표시는 제1 클라이언트 디바이스들(506i)에 제공된다.
사용자가 퍼스널 어시스턴트 모듈(5072)의 제2 인스턴스와 대화하기 위해 사용자의 생태계(508)의 제2 클라이언트 디바이스(5062)와 인터렉션한다고 가정하자. 또한, 메시지 교환 스레드가 도 3-4과 유사한 먹을 장소에 관한 논의를 포함한다고 가정하자. 이 논의(즉, 레스토랑 예약과 관련된 논의로부터의 하나 이상의 큐들)에 기초하여, 예를 들어, 퍼스널 어시스턴트 엔진(120) 및/또는 어플리케이션 엔진(122)에 의해 "예약(RESERVATION)"의 어플리케이션 카테고리가 식별되고, 이 카테고리의 표시는 제2 클라이언트 디바이스들(5062)에 제공된다.
퍼스널 어시스턴트 모듈들(507i-2)가 "예약(RESERVATION)" 어플리케이션 카테고리의 표시를 수신하면, 각각은 "예약(RESERVATION)" 카테고리와 매칭되는 하나 이상의 로컬적으로 설치된 어플리케이션들을 식별할 수 있다. 예를 들어, 제1 클라이언트 디바이스(506i)는 "GRAB A TABLE" 클라이언트(562)를 설치했고, 제1 퍼스널 어시스턴트 모듈(507i)은 이것을 "예약(RESERVATION)" 어플리케이션으로서 식별할 수 있다. 결과적으로, 제1 퍼스널 어시스턴트 모듈(507i)은 그것이 디스플레이하는 메시지 교환 스레드의 트랜스크립트에 "GRAB A TABLE" 클라이언트(562)에 대한 선택가능한 어플리케이션 링크를 통합할 수 있다. 유사하게, 제2 클라이언트 디바이스(5062)는 "READY TO EAT" 클라이언트 (564)를 설치했고, 제2 퍼스널 어시스턴트 모듈(5072)은 이것을 "예약 (RESERVATION)" 어플리케이션으로서 식별할 수 있다. 결과적으로, 제2 퍼스널 어시스턴트 모듈(5072)은 그것이 디스플레이하는 메시지 교환 스레드의 트랜스크립트에 "READY TO EAT"클라이언트(564)에 대한 선택가능한 어플리케이션 링크를 통합할 수 있다.
일부 구현예들에서, 클라이언트 디바이스는 특정한 어플리케이션 카테고리와 매칭되는 다수의 어플리케이션을 설치했을 수 있다. 예를 들어, 단일 클라이언트 디바이스는 도 5에 도시된 "GRAB A TABLE" 클라이언트(562) 및 "READY TO EAT" 클라이언트(564) 모두를 가질 수 있다. 일부 구현예들에서, 두 어플리케이션에 대한 선택가능한 어플리케이션 링크들이 그 클라이언트 디바이스 상의 메시지 교환 스레드 트랜스크립트에 통합될 수 있다. 일부 버전에서, 다수의 선택가능한 어플리케이션 링크들은 각 클라이언트의 사용 빈도와 같은 다양한 정보 신호에 기초하여 선택된 순서로 제시될 수 있다. "GRAB A TABLE" 클라이언트(562)가 "READY TO EAT" 클라이언트(564)보다 더 자주 사용된다면, 클라이언트(562)에 대한 선택가능한 어플리케이션 링크는 클라이언트(564)에 대한 선택가능한 어플리케이션 링크보다 우선적으로, 더 두드러지게 더 현저하게 등으로 제시될 수 있다.
단일 클라이언트 디바이스에 설치된 다수의 어플리케이션들이 어플리케이션 카테고리와 매칭되는 일부 구현예들에서, 퍼스널 어시스턴트 모듈(507) 또는 다른 컴포넌트는 상기 다수의 어플리케이션들 각각이 선택가능한 어플리케이션 링크의 메시지 교환 스레드의 트랜스크립트로의 통합을 보장하는지 여부를 결정하기 위해 상기 다수의 어플리케이션들이 얼마나 자주 사용되는지 분석할 수 있다. 예를 들어, 주어진 어플리케이션과 연관된 사용 빈도는 메시지 교환 스레드 트랜스크립트에 통합된 대응하는 선택가능한 어플리케이션 링크를 갖기 위해, 다른 매칭되는 설치된 어플리케이션들과 별도로 또는 상대적으로, 미리 결정된 임계치를 만족시킬 필요가 있을 수 있다. 어플리케이션이 자주 사용되지 않거나 또는 심지어 전혀 사용되지 않은 경우(예: 어플리케이션이 제조업체에 의해 설치되었고 사용자가 한번도 오픈하지 않은 경우), 어플리케이션에 대한 선택가능한 어플리케이션 링크는 메시지 교환 스레드의 트랜스크립트에 통합될 수 없다.
도 6는 도 5의 대안적 시나리오를 도시한다. 여기서, 사용자에 의해 동작되는 조화된 생태계(608)의 클라이언트 디바이스(606I-N) 상에 설치된 어플리케이션들의 식별은 클라이언트 디바이스(606I-N)로부터 적어도 부분적으로 원격적으로 수행될 수 있다. 특히, 어플리케이션 엔진(122)(앞서 설명되었고, 앱스토어와 통합되거나 또는 적어도 앱스토어와 통신할 수 있음)은 색인(124)의 기록들에 기초하여, 어떤 어플리케이션이 생태계(608)의 어떤 클라이언트 디바이스(606) 상에 설치되는지를 결정하도록 구성될 수 있다.
이 예시에서, 생태계(608)의 클라이언트 디바이스들(606)을 동작하는 사용자가 어플리케이션들 APP A, APP B, APP C, APP D 및 APP E를 다운로드하고 사용할 권리를 소유한다고 가정하자. 예를 들어, 사용자의 모바일폰일 수 있는 제1 클라이언트 디바이스(606i)에서, 사용자는 APP A, APP B 및 APP C를 설치했다. 아랫줄에서 그들의 배치에 의해 표시된 바와 같이, APP D 및 APP E는 제1 클라이언트 디바이스(606i)에 설치되지 않았지만, 사용자가 다운로드 및/또는 설치할 권한을 이전에 구매했었기 때문에 다운로드 및/또는 설치가 가능할 수 있다. 예를 들어, 사용자의 스마트 워치일 수 있는 제2 클라이언트 디바이스(606N)에서, 사용자는 APP A, APP D 및 APP E를 설치했다. 아랫줄에서 그들의 배치에 의해 표시된 바와 같이, APP B 및 APP C는 제2 클라이언트 디바이스(606N)에 설치되지 않았지만, 사용자가 다운로드 및/또는 설치할 권한을 이전에 구매했었기 때문에 다운로드 및/또는 설치가 가능할 수 있다.
도 6의 예시에서, 퍼스널 어시스턴트 엔진(120)은 어떤 어플리케이션이 어떤 클라이언트 디바이스(606) 상에 설치되어 있는지를 결정하기 위해 어플리케이션 엔진(122)과 상의할 수 있다. 하나 이상의 선택가능한 어플리케이션 링크들을 메시지 교환 스레드로 통합하기 위한 하나 이상의 큐들이 검출된 경우, 퍼스널 어시스턴트 엔진(120)은 어플리케이션 엔진(122)이 주어진 클라이언트 디바이스(606)에 설치된 하나 이상의 어플리케이션을 식별할 것을 요청할 수 있다. 퍼스널 어시스턴트 엔진(120)은 주어진 클라이언트 디바이스(606)에, 메시지 교환 스레드의 컨텐츠와도 연관된 주어진 클라이언트 디바이스에 설치된 어플리케이션들에 대한 하나 이상의 선택가능한 어플리케이션 링크들을 표시하는 데이터를 다운로드하도록 구성될 수 있다. 다양한 구현예들에서, 주어진 클라이언트 디바이스(606)는 하나 이상의 신호들에 응답하여(예를 들어, 링크된 어플리케이션의 사용 빈도, 링크된 어플리케이션이 여전히 설치되어 있는지 등), 하나 이상의 선택가능한 어플리케이션 링크들을 메시지 교환 스레드 트랜스크립트에 자동적으로 통합할 수 있거나, 또는 하나 이상의 선택가능한 어플리케이션 링크들의 서브셋을 트랜스크립트에 선택적으로 통합할 수 있다. 일부 구현예들에서, 주어진 어플리케이션이 설치되지 않았지만 클라이언트 디바이스에서 사용가능하다면(제1 클라이언트 디바이스(606i)상의 APP D 및 APP E의 경우와 같이), 어플리케이션을 클라이언트 디바이스(606)에 완전히 설치하도록 선택가능한 어플리케이션 링크가 해당 클라이언트 디바이스 상에 디스플레이된 메시지 교환 스레드의 트랜스크립트에 통합될 수 있다.
상술된 예시들은 선택가능한 어플리케이션 링크가 특정 어플리케이션에 어떻게 링크될 수 있는지를 보여준다. 그러나 이것은 제한하려는 것이 아니다. 일부 구현예에서, 선택가능한 어플리케이션 링크들은 논의와 관련되고 임의의 수의 어플리케이션들을 사용하여 액세스 가능한 문서들 또는 다른 온라인 컨텐츠들에 링크될 수 있다. 예를 들어, 일부 구현예들에서, 선택가능한 어플리케이션 링크는 웹 어드레스 또는 다른 온라인 식별자에 링크될 수 있다. 그러한 일부 구현예들에서, 클라이언트 디바이스에서의 선택가능한 어플리케이션 링크의 동작은 선호하는 설치된 웹브라우저를 사용자에게 노출시킬 수 있다. 다양한 구현예들에서, 웹브라우저는 클라이언트 디바이스에 설치되지 않은 어플리케이션의 그것에 대응하는 기능을 가지는 인터렉티브 웹페이지와 같은, 이미 로딩된 웹페이지 또는 메시지 교환 스레드의 컨텐츠와 관련된 다른 컨텐츠를 가질 수 있다. 이제 도 7을 참조하면, 사용자와 퍼스널 어시스턴트 모듈의 하나 이상의 인스턴스들 간의 메시지 교환 스레드의 트랜스크립트에 직접적으로 하나 이상의 선택가능한 어플리케이션 링크를 선택적으로 통합하는 방법(700)이 기술된다. 편의상, 흐름도의 동작들은 동작들을 수행하는 시스템을 참조하여 기술된다. 이 시스템은 본 명세서에 기술된 다양한 엔진 및/또는 클라이언트 어플리케이션들을 포함하는 다양한 컴퓨터 시스템의 다양한 컴포넌트들을 포함할 수 있다. 추가로, 방법(700)의 동작들이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작들은 재순서화, 생략 또는 추가될 수 있다.
블록(702)에서, 시스템은 그리고 특히 사용자의 생태계의 하나 이상의 클라이언트 디바이스들은 사용자에게 서비스하기 위해 퍼스널 어시스턴트 모듈의 인스턴스를 동작시킬 수 있다. 다양한 구현예들에서, 퍼스널 어시스턴트 모듈의 인스턴스는 사용자와 퍼스널 어시스턴트 모듈의 하나 이상의 인스턴스 사이의 메시지 교환 스레드의 지속적 기록에 대한 액세스를 가질 수 있다. 예를 들어, 지속적 메시지 교환 스레드는 퍼스널 어시스턴트 엔진(120)에 의해 유지될 수 있고, 사용자에게 서비스하는 퍼스널 어시스턴트 모듈의 모든 인스턴스에 사용가능하게 된다(예를 들어, 동기화를 위해). 블록(704)에서, 시스템은 지속적 메시지 교환 스레드로부터 유래하는 하나 이상의 큐들을 검출할 수 있다. 하나 이상의 큐들은 퍼스널 어시스턴트 모듈과 구분되는 하나 이상의 어플리케이션들에 대한 하나 이상의 선택가능한 링크들의 메시지 교환 스레드로의 통합을 트리거링할 수 있다.
블록(706)에서, 시스템은 클라이언트 디바이스에 설치된 하나 이상의 후보 어플리케이션들을 식별할 수 있다. 상기 기술된 바와 같이, 일부 구현예들에서, 후보 어플리케이션들은 메시지 교환 스레드의 컨텐츠와 어떻게든 관련 있는 것으로 간주되는 어플리케이션들일 수 있다. 도 2-4는 사용자가 퍼스널 어시스턴트 모듈과 외식에 대해 논의하는 예시를 도시하며, 결과로서, 외식과 연관된 어플리케이션들(예: 레스토랑에 전화걸기, 예약 어플리케이션, 지도 어플리케이션 등)이 식별된다. 다른 예들도 앞서 기술되었다. 다양한 구현예들에서, 블록(706)의 식별하는 단계는 주어진 클라이언트 컴퓨팅 디바이스로부터 원격에 있는 하나 이상의 프로세서들에 의해 수행될 수 있으며, 그리고 상기 하나 이상의 선택가능한 링크들을 표시하는 데이터는 상기 주어진 클라이언트 디바이스에 다운로드될 수 있다. 다른 구현예들에서, 블록(706)의 식별하는 단계는 상기 주어진 클라이언트 컴퓨팅 디바이스와 통합된 상기 하나 이상의 프로세서들에 의해 수행될 수 있다.
일부 시나리오에서, 통합에 가장 적절한 하나 이상의 후보 어플리케이션들이 주어진 클라이언트 컴퓨팅 디바이스에 설치되어 있지 않을 수 있다. 그러나, 일부 후보 어플리케이션들(예: 레스토랑/항공사 예약 어플리케이션, 지도 어플리케이션 등)은 대응하는 기능을 포함하는 대응하는 웹페이지들이 있을 수 있다. 예를 들어, 사용자는 웹브라우저를 "GRAB A TABLE" 웹사이트로 탐색하여, 사용자가 "GRAB A TABLE" 앱을 사용하여 예약할 때와 동일한 방식으로 예약을 할 수 있다. 따라서, 다양한 구현예들에서, 선택적 블록(708)에서, 시스템은 상기 메시지 교환 스레드의 컨텐츠와 연관된 주어진 어플리케이션이 상기 주어진 클라이언트 컴퓨팅 디바이스에 설치되지 않았다는 결정에 응답하여, 상기 주어진 클라이언트 컴퓨팅 디바이스에 설치된 웹브라우저 또는 다른 범용 어플리케이션(예: 전화 걸기, 이메일 어플리케이션, 소셜 네트워킹 어플리케이션 등)을 후보 어플리케이션으로서 식별할 수 있다.
블록(710)에서, 시스템은 클라이언트 디바이스에 의해 렌더링되는 메시지 교환 스레드의 트랜스크립트에 하나 이상의 선택가능한 어플리케이션 링크를 통합할 수 있다. 웹브라우저와 같은 범용 어플리케이션이 블록(708)에서 식별되는 경우, 다양한 구현예들에서, 시스템은 주어진 클라이언트 컴퓨팅 디바이스에 설치되지 않은 것으로 결정된 주어진 어플리케이션의 기능에 대응하는 기능을 포함하는 인터렉티브 웹페이지에 대한 선택가능한 링크를 통합할 수 있다. 추가적으로 또는 대안적으로, 다양한 구현들에서, 시스템은 주어진 클라이언트 컴퓨팅 디바이스에 설치되지 않은 것으로 결정된 어플리케이션을 다운로드 및/또는 설치하기 위한 선택가능한 링크를 통합할 수 있다.
도 8는 도 2의 대안적 구현예를 도시한다. 동일한 제1 클라이언트 디바이스(206i)(스마트폰 또는 태블릿 컴퓨터의 형태를 취함)가 스벤이라는 사용자에 의해 동작된다. 이 구현예에서, 클라이언트 디바이스(206i)는 2개의 부분의 그래픽 사용자 인터페이스를 포함한다: 스벤과 퍼스널 어시스턴트 모듈(도 2에서 "PAM")의 하나 이상의 인스턴스들 간의 지속적 메시지 교환 스레드의 트랜스크립트(252)를 도시하는 지속적 부분(850A)과; 메시지 교환 스레드에 텍스트(예를 들어, 타이핑 또는 발화에 의해) 또는 다른 컨텐츠를 입력하기 위해 스벤에 의해 동작가능한 키보드 및/또는 다른 그래픽 엘리먼트들을 포함하는 동작가능한 부분(850B). 일부 구현예들에서, 동작가능한 부분(850B)은 도 2의 텍스트 입력 필드(254)를 선택하는(예를 들어, 탭핑) 스벤에 응답하여 렌더링될 수 있다. 이 예에서, 스벤(이것이 스벤의 클라이언트 디바이스(206i)이기 때문에 도 8의 "YOU")은 배고프다고 했다. 퍼스널 어시스턴트 모듈("PAM")은 스벤에게 어떤 것을 먹고 싶은지 물었고, 스벤은 "나는 그리스 음식을 좋아하지만 인도 음식은 좋아하지 않는다."라고 대답한다. 퍼스널 어시스턴트 모듈은 다시 한번 "가상 카페"라는 레스토랑을 제안함으로써 응답한다. 그러나, 이번에는 퍼스널 어시스턴트 모듈이 그림 2와 약간 다른 방식으로 제안을 한다. 특히, 퍼스널 어시스턴트 모듈은 동작가능한 부분(850B)에 3개의 선택가능한 링크(856i-3) 및 지속적 부분(850A)에서 3개의 선택가능한 링크(8564-6)를 제공한다. 동작가능한 부분(850B)에 포함된 선택가능한 링크들(856i-3)은 스벤이 동작하는 키보드에 더 가깝기 때문에 스벤의 손가락에 의해 더 쉽게 엑세스될 수 있다. 그러나, 이들은 메시지 교환 스레드에 통합되지 않으므로, 트랜스크립트(252)에는 나타나지 않는다. 따라서, 이들은 비-지속적이다 - 스벤이 그들을 선택하지 않고 스벤과 퍼스널 어시스턴트 모듈 사이의 메시지 교환의 주제가 변경되면, 선택가능한 링크들(856i-3)은 지속되지 않을 수 있다(예를 들어, 그들은 사라질 수 있고 및/또는 현재 대화와 관련성이 높은 선택가능한 링크로 대체될 수 있음).
대조적으로, 선택가능한 링크들(8564-6)는 이제 트랜스크립트(252)의 일부이다. 따라서, 스벤은 예를 들면, 트랜스크립트(252)가 선택가능한 링크들(856i-3)이 지속적 부분(850A)에서 가시적인 것으로부터 "위로 이동"되도록 이들이 충분히 성장한 후에 얼마간 후에, 다시 돌아와서 상기 링크들을 동작할 수 있다. 보다 일반적으로는, 본 명세서에 기술된 다양한 구현예들(도 2-4의 것들을 포함)에서 메시지 교환 스레드에 통합된 선택가능한 링크들은 스레드에서 지속될 수 있으므로, 나중에 사용자가 스레드에서 "위로 스크롤"할 수 있고, 링크들이 통합된 후 한참 후에도 이러한 링크들을 작동시킬 수 있다. 이는 사용자와 연관된 생태계의 디바이스들 전반에 걸쳐서 적용될 수 있다. 예를 들어, 스벤은 나중에 도 3-4에 도시된 클라이언트 디바이스(2062)(스마트 워치)를 사용하여, 클라이언트 디바이스(206i)를 사용하여 원래 생성된 트랜스크립트 부분을 다시 방문하고, 과거의 메시지 교환 스레드에 통합되었던 선택가능한 링크를 선택한다.
도 8을 다시 참조하면, 다양한 구현예들에서, 선택가능한 링크들은 다양한 신호에 기초하여 동작가능한 부분(850B) 또는 지속적 부분(850A)에 선택적으로 통합될 수 있다. 일부 구현예들에서, 사용자와 선택가능한 링크에 의해 링크된 후보 어플리케이션 사이의 인터렉션의 이력이 고려될 수 있다. 예를 들어, 6개의 잠재적 응답 후보 어플리케이션이 식별되면(도 8에서와 같이), 가장 빈번하게 사용되는 n개의 어플리케이션들에 대한 링크들만이 한 부분 또는 다른 부분에 통합될 수 있다(예를 들어, 사용자 선호, 화면 크기 등에 기초하여).
예를 들어, 도 8에서, 전화 앱(선택가능한 링크(856i에 의해 링크됨), GRAB A TABLE 앱(선택가능한 링크(8562)에 의해 링크됨) 및 네비게이션 앱(선택가능한 링크(8563)에 의해 링크됨)이 6개의 잠재적으로 식별된 응답 어플리케이션 중 가장 빈번하게 사용된 3개의 어플리케이션일 수 있고, 따라서, 사용자의 손가락에 의해 보다 쉽게 액세스될 수 있도록 동작가능한 부분(850B)에 통합될 수 있다. 한편, 다른 선택가능한 링크들(8564-6)과 연관된 어플리케이션들은 덜 빈번하게 사용될 수 있고, 따라서 지속적 부분(850A)으로 분류될 수 있다. 물론, 선택가능한 링크들(856i-6)은 다른 방식으로 포함될 수 있다. 예를 들어, 사용자는 예를 들어 나중에 링크들을 위로 스크롤하여 엑세스할 수 있도록 가장 빈번하게 사용된 앱들에 대한 선택가능한 링크들을 동작가능한 부분(850B)에 추가로 또는 그 대신에 지속적 부분(850A)에 나타나는 것을 선호할 수 있다.
추가적으로 또는 대안적으로, 선택가능한 링크들을 동작가능한 부분(850B)과 지속적 부분(850A)에 선택적으로 통합하는 경우 다른 신호들이 고려될 수 있다. 일부 구현예들에서, 현재의 논의에 대한 특정한 후보 어플리케이션의 관련성이 고려될 수 있다. 예를 들어, 가장 관련성이 높은 어플리케이션들에 대한 선택가능한 링크들이 동작가능한 부분(850B)에 통합될 수 있는 반면, 덜 관련성 있는 어플리케이션들에 대한 선택가능한 링크들은 지속적 부분(850A)에 통합될 수도 있고, 그 반대일 수도 있다. 일부 구현예들에서, 이미 설치된 어플리케이션에 대한 선택가능한 링크들이 동작가능한 부분(850B)에 통합될 수 있는 반면, 설치되지 않은 어플리케이션 및/또는 설치되지 않은 앱에 대응하는 기능을 갖는 웹페이지에 대한 선택가능한 링크들은 지속적 부분(850A)에 통합될 수 있고, 그 반대일 수도 있다. 일부 구현예들에서, 지속적 부분(850A)(또는 경우에 따라 동작가능한 부분(850B)에) 통합된 선택가능한 링크들은 클라이언트 디바이스에 로컬적 또는 비-로컬적일 수 있는 문서에 대한 링크들을 포함할 수 있다(예를 들어, 레스토랑에 대한 이전 방문의 영수증, 레스토랑에 관한 이메일 또는 다른 서신에 대한 링크 등).
도 9은 예시적 컴퓨터 시스템(910)의 블록도이다. 컴퓨터 시스템(910)는 일반적으로 적어도 하나의 프로세서(914)를 포함하며, 버스 서브시스템(912)을 통해 다수의 주변 디바이스들과 통신한다. 이들 주변 디바이스들은 예를 들면, 메모리 서브시스템(925) 및 파일 저장 서브시스템(926)을 포함하는 저장 서브시스템(926), 사용자 인터페이스 출력 디바이스(920), 사용자 인터페이스 입력 디바이스(922) 및 네트워크 인터페이스 서브시스템(916)을 포함할 수 있다. 입력 및 출력 디바이스는 컴퓨터 시스템(910)과 사용자 인터렉션을 하게 한다. 네트워크 인터페이스 서브시스템(916)은 외부 네트워크에 대한 인터페이스를 제공하며, 다른 컴퓨터 시스템들의 대응하는 인터페이스 디바이스들과 연결된다.
사용자 인터페이스 입력 디바이스(922)는 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿, 스캐너, 디스플레이에 통합된 터치스크린과 같은 포인팅 디바이스, 음성 인식 시스템, 마이크로폰과 같은 오디오 입력 디바이스 및/또는 다른 유형의 입력 디바이스를 포함한다. 일반적으로, 용어 "입력 디바이스"의 사용은 정보를 컴퓨터 시스템(910) 또는 통신 네트워크에 입력하기 위한 모든 가능한 유형의 디바이스들과 방식들을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(920)는 디스플레이 서브시스템, 프린터, 팩스 기계 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 CRT, LCD와 같은 평면 패널 디바이스, 프로젝션 디바이스 또는 시각적 이미지를 생성하기 위한 일부 기타 메커니즘을 포함할 수 있다. 또한, 디스플레이 서브시스템은 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, 용어 "출력 디바이스"의 사용은 정보를 컴퓨터 시스템(910)로부터 사용자에게 또는 다른 기계 또는 컴퓨터 시스템에 정보를 출력하기 위한 모든 가능한 유형의 디바이스들과 방식들을 포함하도록 의도된다.
저장 서브시스템(926)은 본 명세서에 기술된 일부 또는 전부의 모듈들의 기능을 제공하기 위한 프로그래밍 및 데이터 구조를 저장한다. 예를 들어, 저장 서브 시스템(926)은 방법(700)의 선택된 양태들을 수행하고 및/또는 퍼스널 어시스턴트 모듈(107), 퍼스널 어시스턴트 엔진(120), 어플리케이션 엔진(122), 인덱싱 엔진(126), 정보 엔진(130) 랭킹 엔진(134) 및/또는 대체 쿼리 제안 엔진(136) 중 하나 이상을 구현하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈들은 일반적으로 프로세서(914) 단독으로 또는 다른 프로세서들과의 조합에 의해 실행된다. 저장 서브시스템(926)에서 사용된 메모리(925)는 프로그램 실행 중에 명령어들 및 데이터의 저장을 위한 메인 RAM(930) 및 고정된 명령어들이 저장되는 ROM(932)을 포함하는 다수의 메모리들을 포함할 수 있다. 파일 저장 서브시스템(926)은 프로그램 및 데이터 파일에 대한 영구적 저장을 제공할 수 있고, 하드 디스크 드라이브, 연관된 이동식 매체와 함께인 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브 또는 이동식 매체 카트리지들을 포함할 수 있다. 특정 구현예들의 기능을 구현하는 모듈들은 파일 저장 서브시스템(926)에 의해 저장 서브시스템(926)에 또는 프로세서(들)(914)에 의해 엑세스가능한 다른 기계에 저장될 수 있다.
버스 서브시스템(912)은 의도된 대로 컴퓨터 시스템(910)의 다양한 컴포넌트들 및 서브시스템들이 서로 통신하게 하기 위한 메커니즘을 제공한다. 버스 서브시스템(912)이 개략적으로 단일의 버스로 도시되었지만, 버스 서브시스템의 대안적 구현예들은 다수의 버스들을 사용할 수 있다.
컴퓨터 시스템(910)은 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서퍼팜 또는 임의의 기타 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형들일 수 있다. 컴퓨터들 및 네트워크들의 변하지 않는 성질 때문에, 도 9에 도시된 컴퓨터 시스템(910)의 기술은 일부 구현예들을 도시하기 위한 목적의 특정 예시로만 의도된다. 컴퓨터 시스템(910)의 많은 다른 구성들이 도 9에 도시된 컴퓨터 시스템보다 많거나 적은 컴포넌트들을 가질 수 있다.
본 명세서에서 논의된 시스템들이 사용자들에 관한 개인 정보를 수집하거나 또는 개인 정보를 사용하는 경우들에 있어서, 사용자들에게 프로그램들 또는 구성들이 사용자 정보(예를 들면, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 직업, 사용자의 선호들 또는 사용자의 현재 지리적 위치)에 관한 정보를 수집할 것인지 여부를 제어할, 사용자와 더 관련된 컨텐츠 서버로부터의 컨텐츠를 수신할지 및/또는 어떻게 수신할지 제어할 기회가 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 취급되어, 개인적으로 식별가능한 정보는 제거된다. 예를 들면, 사용자의 신원은 사용자에 관한 개인적으로 식별가능한 정보가 결정될 수 없도록 취급되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 수준으로), 사용자의 특정한 지리적 위치가 결정될 수 없도록 한다. 따라서, 사용자는 사용자에 관한 정보가 어떻게 수집되는지 그리고 사용되는지에 관한 제어를 가질 수 있다.
몇몇 구현예가 본 명세서에서 기술되고 도시되었지만, 기능을 수행하고 및/또는 결과 및/또는 본 명세서에 기술된 하나 이상의 이점을 획득하기 위한 다양한 다른 수단들 및/또는 구조들이 활용될 수 있으며, 그러한 변형들 및/또는 수정들은 본 명세서에서 기술된 구현예들의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 본 명세서에 기술된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것으로 의도되었으며, 실제 파라미터, 치수, 재료 및/또는 구성은 교시를 사용되는 특정 어플리케이션 또는 어플리케이션들에 의존할 것이다. 통상의 기술자는 일상적인 실험만을 사용하여 본 명세서에 기술된 특정 구현예들에 대한 많은 균등물들을 인식할 수 있거나 또는 확인할 수 있을 것이다. 따라서, 전술한 구현예들은 단지 예일 뿐이며, 첨부된 청구범위 및 그 균등물의 범위 내에서 구현은 구체적으로 기술되고 청구된 것과 다르게도 실시될 수 있음을 이해해야 한다. 본 개시의 구현은 본 명세서에 기술된 각각의 개별적인 구성, 시스템, 물품, 재료, 키트 및/또는 방법에 관한 것이다. 또한 구성, 시스템, 물품, 재료, 키트 및/또는 방법이 상호 불일치하지 않는다면, 그러한 두 개 이상의 구성, 시스템, 물품, 재료, 키트 및/또는 방법의 모든 조합이 본 발명의 범위 내에 포함된다.

Claims (26)

  1. 컴퓨터로 구현되는 방법으로서,
    사용자에 의해 동작되는 클라이언트 컴퓨팅 디바이스에 의해, 상기 클라이언트 컴퓨팅 디바이스를 동작하는 동안 상기 사용자에게 서비스하기 위한 퍼스널 어시스턴트 모듈의 인스턴스를 동작하는 단계, 상기 퍼스널 어시스턴트 모듈의 인스턴스는 상기 사용자와 상기 퍼스널 어시스턴트 모듈의 간의 메시지 교환 스레드의 지속적 기록에 대한 엑세스를 가지며; 상기 퍼스널 어시스턴트 모듈의 인스턴스에 의해, 상기 지속적 메시지 교환 스레드로부터 유래(emanating)하는 하나 이상의 큐(cue)들을 검출하는 단계, 상기 하나 이상의 큐들은 상기 퍼스널 어시스턴트 모듈의 인스턴스와 구분되는 하나 이상의 어플리케이션들에 대한 하나 이상의 선택가능한 링크들의 상기 지속적 메시지 교환 스레드로의 통합을 트리거링하며;
    상기 퍼스널 어시스턴트 모듈의 인스턴스에 의해, 상기 사용자에 의해 동작되는 클라이언트 컴퓨팅 디바이스에 설치된 하나 이상의 후보 어플리케이션들을 식별하는 단계, 상기 하나 이상의 후보 어플리케이션들은 상기 메시지 교환 스레드의 컨텐츠와 연관되며; 및
    상기 퍼스널 어시스턴트 모듈의 인스턴스에 의해, 하나 이상의 선택가능한 링크들을 상기 클라이언트 컴퓨팅 디바이스에 렌더링된 그래픽 사용자 인터페이스에 디스플레이된 상기 메시지 교환 스레드의 트랜스크립트(transcript)로 통합하는 단계를 포함하며, 각 선택가능한 링크는 상기 클라이언트 컴퓨팅 디바이스로 하여금 각각의 후보 어플리케이션과 연관된 인터페이스를 상기 사용자에게 노출하게 하도록 상기 사용자에 의해 동작가능한 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  2. 청구항 1에 있어서,
    상기 클라이언트 컴퓨팅 디바이스는 상기 사용자에 의해 동작되는 복수의 클라이언트 컴퓨팅 디바이스들 중 하나이며, 상기 복수의 클라이언트 컴퓨팅 디바이스 각각은 상기 지속적 메시지 교환 스레드에 대한 엑세스를 가지는 상기 퍼스널 어시스턴트 모듈의 별개의 인스턴스를 동작시키도록 구성되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  3. 청구항 2에 있어서,
    상기 하나 이상의 큐들은 상기 복수의 클라이언트 컴퓨팅 디바이스의 중 상이한 클라이언트 컴퓨팅 디바이스들에 의해 상기 지속적 메시지 교환 스레드로 통합된 다수의 메시지들을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  4. 임의의 선행하는 청구항에 있어서,
    상기 식별하는 단계는 상기 클라이언트 컴퓨팅 디바이스로부터 원격에 있는 상기 하나 이상의 프로세서들에 의해 수행되며, 그리고 상기 하나 이상의 선택가능한 링크들을 표시하는 데이터는 상기 클라이언트 디바이스에 다운로드되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  5. 청구항 4에 있어서,
    상기 퍼스널 어시스턴트 모듈의 인스턴스에 의해, 하나 이상의 정보 신호들에 기초하여 상기 다운로드된 하나 이상의 선택가능한 링크들의 서브셋을 디스플레이하기 위해 선택하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  6. 청구항 5에 있어서,
    상기 하나 이상의 정보 신호들은 상기 하나 이상의 후보 어플리케이션들의 사용 빈도를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  7. 임의의 선행하는 청구항에 있어서,
    상기 식별하는 단계는 상기 클라이언트 컴퓨팅 디바이스와 통합된 상기 하나 이상의 프로세서들에 의해 수행되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  8. 임의의 선행하는 청구항에 있어서,
    상기 하나 이상의 큐들은 상기 메시지 교환 스레드의 컨텐츠로부터 유래하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  9. 청구항 8에 있어서,
    상기 하나 이상의 큐들은 특정한 어플리케이션과 연관된 키워드 또는 문구를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  10. 임의의 선행하는 청구항에 있어서,
    상기 식별하는 단계는 상기 메시지 교환 스레드의 컨텐츠와 연관된 주어진 어플리케이션이 상기 클라이언트 컴퓨팅 디바이스에 설치되지 않았다는 결정에 응답하여, 상기 클라이언트 컴퓨팅 디바이스에 설치된 웹브라우저를 후보 어플리케이션으로서 식별하는 것을 포함하며; 그리고
    상기 통합하는 단계는 인터렉티브 웹페이지에 대한 선택가능한 링크를 상기 트랜스크립트에 통합하는 것을 포함하며, 상기 인터렉티브 웹페이지는 상기 클라이언트 컴퓨팅 디바이스에 설치되지 않은 상기 주어진 어플리케이션의 기능에 대응하는 기능을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  11. 임의의 선행하는 청구항에 있어서,
    상기 식별하는 단계는 상기 메시지 교환 스레드의 컨텐츠와 연관된 주어진 어플리케이션이 상기 클라이언트 컴퓨팅 디바이스에 설치되지 않았다는 결정에 응답하여, 상기 클라이언트 컴퓨팅 디바이스에 설치된 웹브라우저를 후보 어플리케이션으로서 식별하는 것을 포함하며; 그리고
    상기 통합하는 단계는 상기 주어진 어플리케이션의 인스톨러를 다운로드하는 것과 연관된 웹페이지에 대한 선택가능한 링크를 상기 트랜스크립트에 통합하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  12. 임의의 선행하는 청구항에 있어서,
    상기 그래픽 사용자 인터페이스는 동작가능한 부분 및 지속적 부분(persistent portion)을 포함하며, 상기 트랜스크립트는 상기 지속적 부분에 렌더링되고, 상기 동작가능한 부분은 상기 메시지 교환 스레드에 컨텐츠를 통합하기 위해 동작가능한 하나 이상의 그래픽 엘리먼트들을 포함하며, 그리고 상기 방법은: 하나 이상의 신호들에 기초하여 상기 하나 이상의 프로세서들에 의해, 적어도 하나의 비-지속적 선택가능한 링크를 상기 그래픽 사용자 인터페이스의 상기 동작가능한 부분에 선택적으로 통합하는 단계를 더 포함하며, 상기 적어도 하나의 비-지속적 선택가능한 링크는 상기 클라이언트 컴퓨팅 디바이스로 하여금 상기 사용자에게 특정한 후보 어플리케이션과 연관된 인터페이스를 노출하게 하도록 상기 사용자에 의해 동작가능한 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  13. 청구항 12에 있어서,
    상기 하나 이상의 정보 신호들은 상기 사용자와 상기 특정한 후보 어플리케이션 간의 인터렉션의 이력을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  14. 하나 이상의 프로세서들 및 명령어들을 저장하는 메모리를 포함하는 시스템으로서, 상기 명령어들은 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금:
    사용자가 클라이언트 컴퓨팅 디바이스를 동작하는 동안, 상기 사용자에게 서비스하기 위한 퍼스널 어시스턴트 모듈의 인스턴스를 동작하게 하고, 상기 퍼스널 어시스턴트 모듈의 인스턴스는 상기 사용자와 상기 퍼스널 어시스턴트 모듈의 간의 메시지 교환 스레드의 지속적 기록(persistent record)에 대한 엑세스를 가지며;
    상기 지속적 메시지 교환 스레드로부터 유래(emanating)하는 하나 이상의 큐(cue)들을 검출하게 하고, 상기 하나 이상의 큐들은 상기 퍼스널 어시스턴트 모듈의 인스턴스와 구분되는 하나 이상의 어플리케이션들에 대한 하나 이상의 선택가능한 링크들의 상기 지속적 메시지 교환 스레드로의 통합을 트리거링하며;
    상기 사용자에 의해 동작되는 상기 클라이언트 컴퓨팅 디바이스에 설치된 하나 이상의 후보 어플리케이션들을 식별하게 하고, 상기 하나 이상의 후보 어플리케이션들은 상기 메시지 교환 스레드의 컨텐츠와 연관되며; 및
    하나 이상의 선택가능한 링크들을 상기 클라이언트 컴퓨팅 디바이스에 렌더링된 그래픽 사용자 인터페이스에 디스플레이된 상기 메시지 교환 스레드의 트랜스크립트(transcript)로 통합하게 하고, 각 선택가능한 링크는 상기 클라이언트 컴퓨팅 디바이스로 하여금 각각의 후보 어플리케이션과 연관된 인터페이스를 상기 사용자에게 노출하게 하도록 상기 사용자에 의해 동작가능한 것을 특징으로 하는 시스템.
  15. 청구항 14에 있어서,
    상기 클라이언트 컴퓨팅 디바이스는 상기 사용자에 의해 동작되는 복수의 클라이언트 컴퓨팅 디바이스들 중 하나이며, 상기 복수의 클라이언트 컴퓨팅 디바이스 각각은 상기 지속적 메시지 교환 스레드에 대한 엑세스를 가지는 상기 퍼스널 어시스턴트 모듈의 별개의 인스턴스를 동작시키도록 구성되는 것을 특징으로 하는 시스템.
  16. 청구항 15에 있어서,
    상기 하나 이상의 큐들은 상기 복수의 클라이언트 컴퓨팅 디바이스의 중 상이한 클라이언트 컴퓨팅 디바이스들에 의해 상기 지속적 메시지 교환 스레드로 통합된 다수의 메시지들을 포함하는 것을 특징으로 하는 시스템.
  17. 청구항 14 내지 16 중 어느 한 항에 있어서,
    상기 식별은 상기 주어진 클라이언트 컴퓨팅 디바이스로부터 원격에 있는 상기 하나 이상의 프로세서들에 의해 수행되며, 그리고 상기 하나 이상의 선택가능한 링크들을 표시하는 데이터는 상기 주어진 클라이언트 디바이스에 다운로드되는 것을 특징으로 하는 시스템.
  18. 청구항 17에 있어서,
    상기 명령어들은 하나 이상의 정보 신호들에 기초하여 상기 다운로드된 하나 이상의 선택가능한 링크들의 서브셋을 디스플레이하기 위해 선택하게 하는 것을 더 포함하는 것을 특징으로 하는 시스템.
  19. 청구항 18에 있어서,
    상기 하나 이상의 정보 신호들은 상기 하나 이상의 후보 어플리케이션들의 사용 빈도를 포함하는 것을 특징으로 하는 시스템.
  20. 청구항 14 내지 19 중 어느 한 항에 있어서,
    상기 식별은 상기 주어진 클라이언트 컴퓨팅 디바이스와 통합된 상기 하나 이상의 프로세서들에 의해 수행되는 것을 특징으로 하는 시스템.
  21. 청구항 14 내지 20 중 어느 한 항에 있어서,
    기 하나 이상의 큐들은 상기 메시지 교환 스레드의 컨텐츠로부터 유래하는 것을 특징으로 하는 시스템.
  22. 청구항 14 내지 21 중 어느 한 항에 있어서,
    상기 식별은 상기 메시지 교환 스레드의 컨텐츠와 연관된 주어진 어플리케이션이 상기 주어진 클라이언트 컴퓨팅 디바이스에 설치되지 않았다는 결정에 응답하여, 상기 주어진 클라이언트 컴퓨팅 디바이스에 설치된 웹브라우저를 후보 어플리케이션으로서 식별하는 것을 포함하며; 그리고
    상기 통합은 인터렉티브 웹페이지에 대한 선택가능한 링크를 상기 복사에 통합하는 것을 포함하며, 상기 인터렉티브 웹페이지는 상기 주어진 클라이언트 컴퓨팅 디바이스에 설치되지 않은 상기 주어진 어플리케이션의 기능에 대응하는 기능을 포함하는 것을 특징으로 하는 시스템.
  23. 명령어들을 포함하는 적어도 하나의 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어들은 사용자에 의해 동작되는 클라이언트 컴퓨팅 디바이스에 의한 명령어들의 실행에 응답하여, 상기 클라이언트 컴퓨팅 디바이스로 하여금 동작들을 수행하게 하는 하며, 상기 동작들은:
    상기 사용자가 상기 클라이언트 컴퓨팅 디바이스를 동작하는 동안 상기 사용자에게 서비스하기 위한 퍼스널 어시스턴트 모듈의 인스턴스를 동작하는 동작, 상기 퍼스널 어시스턴트 모듈의 인스턴스는 상기 사용자와 상기 퍼스널 어시스턴트 모듈의 간의 메시지 교환 스레드의 지속적 기록에 대한 엑세스를 가지며;
    상기 퍼스널 어시스턴트 모듈의 인스턴스에 의해, 상기 지속적 메시지 교환 스레드로부터 유래(emanating)하는 하나 이상의 큐(cue)들을 검출하는 동작, 상기 하나 이상의 큐들은 상기 퍼스널 어시스턴트 모듈의 인스턴스와 구분되는 하나 이상의 어플리케이션들에 대한 하나 이상의 선택가능한 링크들의 상기 지속적 메시지 교환 스레드로의 통합을 트리거링하며;
    상기 퍼스널 어시스턴트 모듈의 인스턴스에 의해, 상기 사용자에 의해 동작되는 클라이언트 컴퓨팅 디바이스에 설치된 하나 이상의 후보 어플리케이션들을 식별하는 동작, 상기 하나 이상의 후보 어플리케이션들은 상기 메시지 교환 스레드의 컨텐츠와 연관되며; 및
    상기 퍼스널 어시스턴트 모듈의 인스턴스에 의해, 하나 이상의 선택가능한 링크들을 상기 클라이언트 컴퓨팅 디바이스에 렌더링된 그래픽 사용자 인터페이스에 디스플레이된 상기 메시지 교환 스레드의 트랜스크립트(transcript)로 통합하는 동작을 포함하며, 각 선택가능한 링크는 상기 클라이언트 컴퓨팅 디바이스로 하여금 각각의 후보 어플리케이션과 연관된 인터페이스를 상기 사용자에게 노출하게 하도록 상기 사용자에 의해 동작가능한 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  24. 청구항 23에 있어서,
    상기 명령어들은 하나 이상의 프로세서에 의한 명령어들의 실행에 응답하여, 상기 하나 이상의 프로세서로 하여금 청구항 2 내지 청구항 13 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  25. 청구항 1 내지 청구항 13 중 어느 한 항의 방법을 수행하도록 구성된 장치.
  26. 컴퓨팅 디바이스에 의해 실행될 때 청구항 1 내지 청구항 13 중 어느 한 항의 방법을 수행되게 하는 기계 판독가능 명령어들을 포함하는 컴퓨터 프로그램.
KR1020187036263A 2016-05-17 2016-12-28 선택가능한 어플리케이션 링크들을 퍼스널 어시스턴트 모듈과의 대화에 통합하기 KR102339296B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020217040333A KR102668730B1 (ko) 2016-05-17 2016-12-28 선택가능한 어플리케이션 링크들을 퍼스널 어시스턴트 모듈과의 대화에 통합하기

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662337845P 2016-05-17 2016-05-17
US62/337,845 2016-05-17
US15/207,821 US10291565B2 (en) 2016-05-17 2016-07-12 Incorporating selectable application links into conversations with personal assistant modules
US15/207,821 2016-07-12
PCT/US2016/068918 WO2017200590A1 (en) 2016-05-17 2016-12-28 Incorporating selectable application links into conversations with personal assistant modules

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020217040333A Division KR102668730B1 (ko) 2016-05-17 2016-12-28 선택가능한 어플리케이션 링크들을 퍼스널 어시스턴트 모듈과의 대화에 통합하기

Publications (2)

Publication Number Publication Date
KR20190007042A true KR20190007042A (ko) 2019-01-21
KR102339296B1 KR102339296B1 (ko) 2021-12-14

Family

ID=57838522

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217040333A KR102668730B1 (ko) 2016-05-17 2016-12-28 선택가능한 어플리케이션 링크들을 퍼스널 어시스턴트 모듈과의 대화에 통합하기
KR1020187036263A KR102339296B1 (ko) 2016-05-17 2016-12-28 선택가능한 어플리케이션 링크들을 퍼스널 어시스턴트 모듈과의 대화에 통합하기

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217040333A KR102668730B1 (ko) 2016-05-17 2016-12-28 선택가능한 어플리케이션 링크들을 퍼스널 어시스턴트 모듈과의 대화에 통합하기

Country Status (8)

Country Link
US (2) US10291565B2 (ko)
EP (1) EP3440544A1 (ko)
JP (2) JP6595127B2 (ko)
KR (2) KR102668730B1 (ko)
CN (2) CN107395485B (ko)
DE (2) DE102016125804A1 (ko)
GB (1) GB2550638A (ko)
WO (1) WO2017200590A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2962891A1 (en) * 2016-11-22 2018-05-22 Kik Interactive Inc. Method, system and apparatus for centralized augmentation of autonomous message handling
CN111699483B (zh) * 2018-01-16 2024-04-09 谷歌有限责任公司 提供助理深度链接以实行第三方对话会话转移的系统、方法和装置
US10782951B2 (en) * 2018-02-23 2020-09-22 Digital Turbine, Inc. Instant installation of apps
JP7155605B2 (ja) * 2018-05-22 2022-10-19 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US10198877B1 (en) 2018-05-23 2019-02-05 Google Llc Providing a communications channel between instances of automated assistants
JP6603001B1 (ja) * 2018-05-23 2019-11-06 グーグル エルエルシー 自動アシスタントのインスタンス間への通信チャネルの提供
KR102661340B1 (ko) * 2018-09-21 2024-04-30 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN110704054A (zh) * 2019-09-06 2020-01-17 北京达佳互联信息技术有限公司 通过小程序接入目标应用程序的方法、装置、电子设备及存储介质
CN112187856A (zh) * 2020-08-21 2021-01-05 黄冈格罗夫氢能汽车有限公司 一种燃料电池氢能汽车车机的智能提醒系统及方法
US20240073160A1 (en) * 2022-08-25 2024-02-29 Equals 3 LLC Providing a system-generated response in a messaging session

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050191A1 (en) * 2005-08-29 2007-03-01 Voicebox Technologies, Inc. Mobile systems and methods of supporting natural language human-machine interactions
WO2014200728A1 (en) * 2013-06-09 2014-12-18 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
KR101511831B1 (ko) * 2010-01-18 2015-04-14 애플 인크. 지능형 자동화 어시스턴트에 의한 능동적 입력 유도
US20150186474A1 (en) * 2013-12-31 2015-07-02 Google Inc. Surfacing navigational search results

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223073A1 (en) 2000-05-04 2005-10-06 Malik Dale W Attaching applets to messaging communications
US6976082B1 (en) 2000-11-03 2005-12-13 At&T Corp. System and method for receiving multi-media messages
US20040215467A1 (en) 2001-01-03 2004-10-28 Coffman Kathryn D. Method and system for electronic document handling, such as for requests for quotations under an electronic auction
US20020138588A1 (en) 2001-03-20 2002-09-26 Richard Leeds System and method for adaptive forums communication
US7406659B2 (en) 2001-11-26 2008-07-29 Microsoft Corporation Smart links
US7451188B2 (en) 2005-01-07 2008-11-11 At&T Corp System and method for text translations and annotation in an instant messaging session
US7483899B2 (en) 2005-01-11 2009-01-27 International Business Machines Corporation Conversation persistence in real-time collaboration system
US20080201434A1 (en) 2007-02-16 2008-08-21 Microsoft Corporation Context-Sensitive Searches and Functionality for Instant Messaging Applications
US8504621B2 (en) 2007-10-26 2013-08-06 Microsoft Corporation Facilitating a decision-making process
US7890525B2 (en) 2007-11-14 2011-02-15 International Business Machines Corporation Foreign language abbreviation translation in an instant messaging system
CN101217508B (zh) * 2007-12-29 2010-06-23 腾讯科技(深圳)有限公司 一种基于即时通信平台的网络代理系统及其实现方法
US20120010995A1 (en) * 2008-10-23 2012-01-12 Savnor Technologies Web content capturing, packaging, distribution
US9031216B1 (en) 2009-03-05 2015-05-12 Google Inc. In-conversation search
GB2470751A (en) 2009-06-04 2010-12-08 Iq2 Ltd Delivering messages/content by determining if a target device is equipped with the appropriate application to enable the message/content to be conveyed.
US20110035453A1 (en) 2009-08-06 2011-02-10 Oracle International Corporation Automatic rules-based messaging system based on analysis of text and/or associated metadata
US8977639B2 (en) * 2009-12-02 2015-03-10 Google Inc. Actionable search results for visual queries
WO2012154440A2 (en) 2011-05-06 2012-11-15 Evans Michael Shepherd System and method for including advertisements in electronic communications
US9253137B1 (en) 2011-06-24 2016-02-02 Google Inc. Concurrent display of conversation messages and social network posts by conversation message authors
CA3023918C (en) * 2011-09-30 2022-11-29 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
AU2012316484A1 (en) * 2011-09-30 2014-04-17 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US9082402B2 (en) 2011-12-08 2015-07-14 Sri International Generic virtual personal assistant platform
WO2013089684A2 (en) 2011-12-13 2013-06-20 Empire Technology Development, Llc Graphics render matching for displays
US20130218885A1 (en) 2012-02-22 2013-08-22 Salesforce.Com, Inc. Systems and methods for context-aware message tagging
AU2012201460A1 (en) 2012-03-12 2013-09-26 Tdm Projectservice Service Pty Ltd Mr Pay it
US9685160B2 (en) 2012-04-16 2017-06-20 Htc Corporation Method for offering suggestion during conversation, electronic device using the same, and non-transitory storage medium
US20130326354A1 (en) 2012-06-01 2013-12-05 James Anderson Systems and Methods for Selection and Personalization of Content Items
JP6231315B2 (ja) 2012-07-20 2017-11-15 公立大学法人広島市立大学 情報処理装置
US9338403B2 (en) 2013-01-23 2016-05-10 Google Inc. Persistent conversations
US10228819B2 (en) * 2013-02-04 2019-03-12 602531 British Cilumbia Ltd. Method, system, and apparatus for executing an action related to user selection
KR101488930B1 (ko) 2013-02-25 2015-02-03 주식회사 팬택 모바일 단말의 입력 예측 서비스 제공 장치 및 방법
US9607617B2 (en) 2013-04-02 2017-03-28 Nuance Communications, Inc. Concept cloud in smart phone applications
GB201401173D0 (en) * 2013-09-11 2014-03-12 Landa Corp Ltd Ink formulations and film constructions thereof
US9514748B2 (en) * 2014-01-15 2016-12-06 Microsoft Technology Licensing, Llc Digital personal assistant interaction with impersonations and rich multimedia in responses
KR102249197B1 (ko) 2014-05-31 2021-05-10 삼성전자주식회사 사용자 단말 장치, 통신 시스템 및 그 제어 방법
US9965559B2 (en) 2014-08-21 2018-05-08 Google Llc Providing automatic actions for mobile onscreen content
US20160092410A1 (en) * 2014-09-25 2016-03-31 Monotype Imaging Inc. Selectable Styles for Text Messaging System User Devices
US20160092937A1 (en) 2014-09-25 2016-03-31 Monotype Imagining Inc. Selectable Text Messaging Styles for Brand Owners
US9508339B2 (en) * 2015-01-30 2016-11-29 Microsoft Technology Licensing, Llc Updating language understanding classifier models for a digital personal assistant based on crowd-sourcing
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US20160342665A1 (en) * 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Interactive command line for content creation
CN105024922A (zh) * 2015-07-22 2015-11-04 苏州乐聚一堂电子科技有限公司 聊天机器人与聊天系统
US10686738B2 (en) * 2015-07-24 2020-06-16 Facebook, Inc. Providing personal assistant service via messaging
CN108781175B (zh) 2015-12-21 2021-09-21 谷歌有限责任公司 用于消息交换题绪的自动建议的方法、介质及系统
KR102174346B1 (ko) 2015-12-21 2020-11-04 구글 엘엘씨 메시징 애플리케이션들을 위한 자동적인 제안들 및 다른 콘텐츠
US10158593B2 (en) * 2016-04-08 2018-12-18 Microsoft Technology Licensing, Llc Proactive intelligent personal assistant

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050191A1 (en) * 2005-08-29 2007-03-01 Voicebox Technologies, Inc. Mobile systems and methods of supporting natural language human-machine interactions
KR101511831B1 (ko) * 2010-01-18 2015-04-14 애플 인크. 지능형 자동화 어시스턴트에 의한 능동적 입력 유도
WO2014200728A1 (en) * 2013-06-09 2014-12-18 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US20150186474A1 (en) * 2013-12-31 2015-07-02 Google Inc. Surfacing navigational search results

Also Published As

Publication number Publication date
US20190068537A1 (en) 2019-02-28
CN112910759B (zh) 2022-03-15
US10291565B2 (en) 2019-05-14
US10601755B2 (en) 2020-03-24
GB201621667D0 (en) 2017-02-01
CN112910759A (zh) 2021-06-04
GB2550638A (en) 2017-11-29
JP6928046B2 (ja) 2021-09-01
KR20210153758A (ko) 2021-12-17
CN107395485A (zh) 2017-11-24
DE202016008323U1 (de) 2017-07-26
EP3440544A1 (en) 2019-02-13
KR102339296B1 (ko) 2021-12-14
KR102668730B1 (ko) 2024-05-28
CN107395485B (zh) 2021-02-09
WO2017200590A1 (en) 2017-11-23
JP2020042826A (ja) 2020-03-19
JP6595127B2 (ja) 2019-10-23
US20170339088A1 (en) 2017-11-23
DE102016125804A1 (de) 2017-11-23
JP2019518280A (ja) 2019-06-27

Similar Documents

Publication Publication Date Title
KR102215471B1 (ko) 선택가능한 어플리케이션 링크들을 메시지 교환 스레드들에 통합하기
KR102339296B1 (ko) 선택가능한 어플리케이션 링크들을 퍼스널 어시스턴트 모듈과의 대화에 통합하기
US11232792B2 (en) Proactive incorporation of unsolicited content into human-to-computer dialogs
JP6956113B2 (ja) マルチユーザメッセージ交換スレッドにおける自動化アシスタントとのインタラクションのための提案を提供すること
CN112015530B (zh) 用于将第三方服务与数字助理相结合的系统和方法
US10241752B2 (en) Interface for a virtual digital assistant
KR20200003871A (ko) 인간-대-컴퓨터 대화들에 요청되지 않은 콘텐츠의 선행적 통합
KR20200006107A (ko) 다수의 코퍼스들로부터 응답 정보 획득
GB2556192A (en) Providing prompt in an automated dialog session based on selected content of prior automated dialog session
KR20080017414A (ko) 의미 풍부 개체를 갖는 동적 사용자 경험을 제공하는컴퓨터화된 방법, 시스템 및 컴퓨터 판독가능 매체
KR102002115B1 (ko) 메시지 교환 스레드의 증대
KR20190003709A (ko) 메시지 교환 스레드를 사용한 효율적인 검색 촉진

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
GRNT Written decision to grant