KR102005531B1 - 다중 사용자 메시지 교환 스레드에서 자동화 어시스턴트와의 상호 작용을 위한 제안 제공 - Google Patents

다중 사용자 메시지 교환 스레드에서 자동화 어시스턴트와의 상호 작용을 위한 제안 제공 Download PDF

Info

Publication number
KR102005531B1
KR102005531B1 KR1020187035967A KR20187035967A KR102005531B1 KR 102005531 B1 KR102005531 B1 KR 102005531B1 KR 1020187035967 A KR1020187035967 A KR 1020187035967A KR 20187035967 A KR20187035967 A KR 20187035967A KR 102005531 B1 KR102005531 B1 KR 102005531B1
Authority
KR
South Korea
Prior art keywords
message exchange
user
content
query
exchange thread
Prior art date
Application number
KR1020187035967A
Other languages
English (en)
Other versions
KR20190003773A (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 KR20190003773A publication Critical patent/KR20190003773A/ko
Application granted granted Critical
Publication of KR102005531B1 publication Critical patent/KR102005531B1/ko

Links

Images

Classifications

    • 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/903Querying
    • G06F16/9032Query formulation
    • G06F16/90324Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • 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
    • 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/951Indexing; Web crawling techniques
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/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
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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]
    • 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/063Content adaptation, e.g. replacement of unsuitable content
    • 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/10Multimedia information
    • 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

Landscapes

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

Abstract

사용자들 사이에 진행중인 메시지 교환 스레드의 적어도 하나의 문맥적으로 관련있는 제안을 하나 이상의 사용자들에게 제공한다. 상기 제안은 사용자(들)의 컴퓨팅 디바이스(들)의 사용자 인터페이스 출력 디바이스(들)를 통해 사용자(들)에게 프리젠테이션하기 위해 제공된다. 상기 제안은 자동화 어시스턴트에게 제출되어 상기 자동화 어시스턴트가 쿼리에 응답하는 컨텐츠를 상기 메시지 교환 스레드에 통합할 수 있게 하는 쿼리를 나타낸다. 일부 구현예에서, 상기 제안은 선택 가능한 제안이고, 상기 쿼리에 응답하는 컨텐츠는 상기 선택 가능한 제안으로 지시되는 사용자 인터페이스 입력에 응답하여 메시지 교환 스레드에 통합된다. 일부 구현 예에서, 상기 제안은 메시지 교환 스레드의 사용자간에 이미 전달된 하나 이상의 메시지에 기초하여 결정된다.

Description

다중 사용자 메시지 교환 스레드에서 자동화 어시스턴트와의 상호 작용을 위한 제안 제공
다수의 사용자는 텍스트 메시지 교환, 온라인 채팅(예를 들어, 인스턴트 메신저, 인터넷 중계 채팅), 소셜 네트워크 메시징 스레드(threads) 등과 같은 다양한 기술을 사용하여 구현될 수 있는 메시지 교환 스레드를 통해 텍스트로 서로 통신할 수 있다. 문자 메시지 애플리케이션, 온라인 채팅 애플리케이션, 소셜 네트워킹 애플리케이션 등과 같은 클라이언트 메시지 교환 애플리케이션은, 그래픽 사용자 인터페이스의 일부로 진행중인(ongoing) 메시지 교환 스레드의 사본(예를 들어, 사용자가 대화할 때 실시간으로 업데이트되는 텍스트 및/또는 이미지의 실시간(live) 또는 거의 실시간 레코드)의 적어도 일부를 표시하여, 사용자가 대화를 따라갈 수 있도록 할 수 있다.
상기 진행중인 메시지 교환 스레드 및 그에 따라 디스플레이되는 사본은 일반적으로 사용자가 의도적으로 및 명시적으로 상기 메시지 교환 스레드에 통합하는 영상(pictures)과 같은 텍스트 또는 다른 데이터로 제한된다. 결과적으로, 대화와 관련된 외부 정보를 찾는 사용자는 원하는 정보를 얻기 위해 웹 브라우저와 같은 다른 애플리케이션으로 스위칭해야 한다. 스위칭 애플리케이션은 종종 한 번에 하나의 애플리케이션만 디스플레이하는 모바일 컴퓨팅 디바이스를 사용할 때와 같은 다양한 시나리오에서 하나 이상의 단점을 가질 수 있다. 예를 들어, 스위칭 애플리케이션은 혼란스럽고 부담이 될 수 있고, 대화의 흐름을 방해할 수 있고, 및/또는 하나 이상의 연산 리소스(예를 들어, 모바일 컴퓨팅 디바이스의 메모리, 프로세서 및/또는 배터리 자원)에 부과될 수 있다. 클라이언트 메시지 교환 어플리케이션의 추가 및/또는 대안적인 단점은 제시될 수 있다.
본 명세의 일부 구현예는 적어도 하나의 문맥적으로 관련된 제안을 사용자 간의 진행중인 메시지 교환 스레드의 하나 이상의 사용자에게 제공하는 것에 관한 것이다. 상기 제안은 사용자(들)의 컴퓨팅 디바이스(들)의 사용자 인터페이스 출력 디바이스(들)를 통해 사용자(들)에게 프리젠테이션하기 위해 제공된다. 상기 제안은 자동화 어시스턴트가 쿼리에 응답하는 컨텐츠를 메시지 교환 스레드에 통합하도록 자동화 어시스턴트로 제출(예컨대, 메시지 교환 스레드를 통해 자동화 어시스턴트로 제출)될 수 있는 쿼리를 나타낸다. 상기 문맥적으로 관련된 제안을 메시지 교환 스레드에 통합하는 것은 쿼리에 응답하는 컨텐츠에 액세스하기 위해 사용자가 디바이스에 입력해야 하는 사용자 입력의 수를 줄일 수 있다. 이것은 손재주가 서툰 사용자 또는 디바이스에 입력을 적용하는데 어려움을 겪는 사용자에게 특히 유익할 수 있다. 적어도 이들 사용자에게는 메시지 교환 스레드로의 상기 선택 가능한 제안들의 통합은 예를 들어 서툰 손재주로 인한 사용자 오류를 줄임(saving)으로써 디바이스의 신뢰도 및 사용 속도를 증가시킬 수 있다.
일부 구현예에서, 상기 제안은 선택 가능한 제안(예를 들어, 디스플레이를 위해 제공된 선택 가능한 그래픽 요소)이고, 쿼리에 응답하는 컨텐츠는 상기 선택 가능한 제안으로 지시되는(을 지시하는) 사용자 인터페이스 입력(예를 들어, "탭" "클릭", "구두 명령")에 응답하여 메시지 교환 스레드에 통합된다. 일부 구현예에서, 상기 제안은 메시지 교환 스레드의 사용자들 간에 이미 전달된(already commicated)) 하나 이상의 메시지에 기초하여 결정된다. 예를 들어, 상기 제안에 의해 표시된 쿼리는 하나 이상의 용어(term), 이미지 및/또는 이미 전달된 메시지의 다른 컨텐츠에 기초하여 결정될 수 있다.
본 명세서에 기술된 일부 구현예의 하나의 특정 예로서, "톰(Tom)", "제리(Jerry)" 및 "스파이크(Spike)"가 메시지 교환 스레드에 참여한다고 가정한다. 게다가, "톰"은 자신의 컴퓨팅 디바이스들 중 하나의 메시지 교환 클라이언트를 사용하여 "밴드 A가 루이빌에서 콘서트를 한다고 들었는데 관심 있니?"라는 메시지를 작성하고, 해당 메시지를 상기 스레드에 통합한다고 가정한다. 또한, 제리는 자신의 컴퓨팅 디바이스의 텍스트 메시징 애플리케이션을 사용하여 "날짜가 언제인지 아니?"라는 응답 메시지를 작성하고 해당 메시지를 상기 스레드에 통합한다고 가정한다. "밴드 A의 루이빌 콘서트 날짜"라는 쿼리가 상기 메시지에 기초하여 그리고 본 명세서에 기술된 하나 이상의 기술에 따른 상기 응답 메시지에 기초하여 결정될 수 있다. 또한, (예를 들어, 쿼리의 모든 용어를 포함하는) 상기 쿼리의 표시를 제공하는 선택 가능한 그래픽 요소인 제안은, 그들 각각의 텍스트 메시징 애플리케이션을 통해 톰, 제리 및/또는 스파이크에게 디스플레이하기 위해 제공될 수 있다. 사용자에게 디스플레이된 선택 가능한 그래픽 요소로 지시되는 사용자들 중 한 사용자의 사용자 인터페이스 입력에 응답하여, 상기 쿼리에 응답하는 컨텐츠는 메시지 교환 스레드에 자동으로 통합되어 하나 이상의(예를 들어, 모든 사용자에게 디스플레이될 수 있다. 예를 들어, 상기 컨텐츠에는 날짜, 시간 및/또는 루이빌에서 밴드 A의 콘서트 위치를 나타내는 텍스트가 포함될 수 있다. 상기 컨텐츠는 예를 들어 쿼리에 대해 발행된 검색에 대해 리턴된 하나 이상의 검색 결과에 기초하여 결정될 수 있다.
일부 구현예에서, 진행중인 메시지 교환 스레드 중에 문맥적으로 관련된 제안들을 제공하는 단계는 이들 제안에 의해 표시되고 자동화 어시스턴트로 하여금 문맥적으로 관련된 컨텐츠를 메시지 교환 스레드에 통합하게 하는 쿼리들을 사용자가 제출하는 것을 용이하게 할 수 있다. 이것은 사용자가 사용자의 특정 정보 요구를 충족시키기 위해 상기 메시지 교환 스레드를 렌더링하는 애플리케이션으로부터 다른 애플리케이션으로 스위칭할 필요성을 감소 및/또는 제거할 수 있다. 이것은 손재주가 없는 사용자나 디바이스로 입력하는데 어려움을 겪는 사용자에게 특히 유용할 수 있다.
이것은 정보 요구 사항(needs)을 충족시키기 위해 다른 애플리케이션으로으로 스위칭할 때 소비될 수 있는 특정 연산 자원의 사용을 추가로 줄일 수 있다. 예를 들어, 다른 애플리케이션으로의 스위칭은 애플리케이션의 론칭(launching) 및/또는 서피싱(surfacing)을 통해 프로세서, 메모리 및/또는 배터리 자원의 사용이 필요할 수 있다. 또한, 메시지 교환 스레드에서 자동화 어시스턴트로부터 컨텐츠를 획득하는 대신에 다른 컨텐츠를 획득할 다른 애플리케이션으로 스위칭하는 것은, 사용자가 정보를 획득하는데 소요되는 시간이 늘어날 수 있으며, 이로 인해 컨텐츠를 획득하는데 필요한 연산 자원들의 소비가 그에 상응하여 증가 할 수 있다. 일부 구현예에서, 본 명세서에 기술된 기술들은 제안들이 제공되지 않는 및/또는 사용자의 정보 요구를 충족시키지 못하는 제안들을 제공하는 시나리오들과 같은, 향후 진행중인 메시지 시나리오들에서 사용자에 의해 자동화 어시스턴트로 제공될 수 있는 다양한 유형의 입력에 대해 사용자들을 교육하는 역할을 추가로 한다. 적어도 이러한 시나리오들에서, 메시지 교환 스레드에 통합된 선택 가능한 제안은 적어도 하나 이상의 외부 컴퓨터에서 디바이스로 데이터를 다운로드하게 하여 상기 제안들이 디스플레이되는 디바이스의 외부에서 영향을 줄 수 있다. 이 프로세스는 오류의 수동 검색 결과의 사용자 선택과 같은 하나 이상의 오류 사용자 입력으로 인해 디바이스로 오류 데이터가 다운로드되는 위험을 대폭적으로 줄이는 상기 선택 가능한 제안들을 통해 더욱 신뢰할 수 있다. 이렇게 하면 네트워크 트래픽이 감소하여 전체 시스템이 보다 효율적으로 작동시킬 수 있다.
일부 구현예에서, 하나 이상의 프로세서에 의해 수행되는 방법은 진행중인 메시지 교환 스레드의 하나 이상의 이미 전달된 메시지에 기초하여 적어도 하나의 후보 쿼리를 결정하는 단계가 제공된다. 상기 진행중인 메시지 교환 스레드는 제1 사용자의 제1 메시지 교환 클라이언트 및 제2 사용자의 제2 메시지 교환 클라이언트를 통해 적어도 제1 사용자와 제2 사용자 사이에 있다. 상기 방법은 제1 메시지 교환 클라이언트를 통해 적어도 제1 사용자에게 디스플레이하기 위해, 상기 후보 쿼리의 표시를 제공하는 선택 가능한 그래픽 요소를 제공하는 단계를 더 포함한다. 상기 방법은 상기 선택 가능한 그래픽 요소로 지시되는(directed) 제1 사용자의 사용자 인터페이스 입력에 응답하여, 상기 후보 쿼리에 응답하는 컨텐츠를 상기 진행중인 메시지 교환 스레드에 통합하는 단계를 더 포함한다. 상기 컨텐츠를 진행중인 메시지 교환 스레드에 통합하는 단계는 상기 컨텐츠가 상기 제1 메시지 교환 클라이언트를 통해 제1 사용자에게 디스플레이되게 하고 상기 제2 메시지 교환 클라이언트를 통해 제2 사용자에게 디스플레이되게 한다.
일부 구현예에서, 상기 컨텐츠를 진행중인 메시지 교환 스레드에 통합하는 단계는 상기 메시지 교환 클라이언트들 중 적어도 하나가 상기 컨텐츠를 상기 메시지 교환 클라이언트들 중 적어도 하나의 그래픽 사용자 인터페이스에 디스플레이되는 상기 진행중인 메시지 교환 스레드의 사본에 삽입하도록 요청하는 단계를 포함한다.
일부 구현예에서, 상기 컨텐츠는 하나 이상의 텍스트 및 이미지를 포함한다.
일부 구현예에서, 상기 후보 쿼리를 결정하는 단계는 상기 후보 쿼리의 하나 이상의 쿼리 용어와 진행중인 메시지 교환 스레드의 이미 전달된 메시지들의 하나 이상의 메시지 용어 사이의 일치성(conformance)에 기초하여 쿼리들의 말뭉치(corpus)로부터 후보 쿼리를 선택하는 단계를 포함한다.
일부 구현예에서, 상기 후보 쿼리를 결정하는 단계는 상기 진행중인 메시지 교환 스레드의 이미 전달된 메시지들에서 참조된 적어도 하나의 엔티티를 결정하는 단계 및 상기 적어도 하나의 엔티티에 기초하여 후보 쿼리를 결정하는 단계를 포함한다. 이러한 구현예 중 일부에서, 상기 적어도 하나의 엔티티에 기초하여 후보 쿼리를 결정하는 단계는 상기 적어도 하나의 엔티티의 별칭에 기초하여 후보 쿼리에 대한 하나 이상의 쿼리 용어를 생성하는 단계를 포함한다.
일부 구현예에서, 상기 후보 쿼리를 결정하는 단계 및 상기 선택 가능한 그래픽 요소를 제공하는 단계는 상기 메시지 교환 스레드에 포함시키기 위해 사용자에 의한 임의의 추가 자연어 입력의 공식화(formulation)와 독립적으로 발생한다.
일부 구현예에서, 상기 방법은 상기 진행중인 메시지 교환 스레드의 이미 전달된 메시지들 중 적어도 하나의 하나 이상의 용어에 기초하여 후보 쿼리에 대한 스코어를 결정하는 단계를 더 포함한다. 상기 선택 가능한 그래픽 요소를 제공하는 단계는 임계값을 만족시키는 스코어에 기초할 수 있다. 이러한 구현예 중 일부에서, 상기 하나 이상의 용어들에 기초하여 스코어를 결정하는 단계는 명명된 엔티티가 상기 용어들에 포함되는지 여부에 기초하여 상기 스코어를 결정하는 단계 및/또는 복수의 용어가 적어도 하나의 사전 정의된 검색 쿼리 패턴에 일치되는지 여부에 기초하여 상기 스코어를 결정하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 후보 쿼리의 제출량에 기초하는 후보 쿼리에 대한 인기 척도 및/또는 상기 후보 쿼리에 응답하는 상기 컨텐츠에 대한 품질 척도에 기초하여 후보 쿼리에 대한 스코어를 결정하는 단계를 더 포함한다. 상기 선택 가능한 그래픽 요소를 제공하는 단계는 임계값을 만족시키는 스코어에 기초할 수 있다.
일부 구현예에서, 상기 방법은 상기 후보 쿼리를 검색 엔진으로 제출하는 단계를 추가 포함하고, 이 단계는 후보 쿼리를 검색 엔진으로 제출하는 것에 응답하여 하나 이상의 검색 결과를 수신하는 단계, 및 상기 검색 결과들 중 적어도 하나에 기초하여 상기 진행중인 메시지 교환 스레드에 통합할 컨텐츠를 결정하는 단계를 포함한다. 이러한 구현예 중 일부에서, 상기 후보 쿼리를 검색 엔진으로 제출하는 단계는 상기 선택 가능한 그래픽 요소로 지시되는 사용자 인터페이스 입력에 대한 응답이다.
일부 구현예에서, 상기 컨텐츠를 진행중인 메시지 교환 스레드에 통합하는 단계는 상기 컨텐츠가 자동화 어시스턴트에 의해 생성된다는 그래픽 표시를 갖는 상기 진행중인 메시지 교환 스레드에 상기 컨텐츠를 통합하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 제1 메시지 교환 클라이언트를 통해 상기 제1 사용자에게 디스플레이하기 위해, 하나 이상의 용어를 식별하고, 선택될 때 상기 하나 이상의 용어로 하여금 상기 하나 이상의 용어가 제1 사용자로부터 유래되었다는 표시를 갖는 메시지 교환 스레드에 통합되게 하고, 상기 하나 이상의 용어로 하여금 상기 하나 이상의 용어에 응답하는 임의의 컨텐츠에 통합되지 않고 상기 메시지 교환 스레드에 통합되게 하는 추가 선택 가능한 그래픽 요소를 제공하는 단계를 더 포함한다.
일부 구현예에서, 상기 그래픽 요소를 제공하는 단계는 상기 제2 메시지 교환 클라이언트를 통해 제2 사용자에게 디스플레이하기 위한 그래픽 요소를 제공하는 단계를 더 포함한다.
일부 구현예에서, 상기 컨텐츠는 제1 엔티티에 포커싱된 선택 가능한 제1 컨텐츠 아이템 및 제2 엔티티에 포커싱된 선택 가능한 제2 컨텐츠 아이템을 포함한다. 이러한 구현예 중 일부에서, 상기 제1 컨텐츠 아이템에 지시된 사용자 인터페이스 입력은 상기 제1 엔티티에 포커싱된 추가 제1 엔티티 컨텐츠가 상기 메시지 교환 스레드에 통합되게 하고, 그리고 상기 제2 컨텐츠 아이템에 지시된 사용자 인터페이스 입력은 상기 제2 엔티티에 포커싱된 추가 제2 엔티티 컨텐츠가 상기 메시지 교환 스레드에 통합되게 한다.
일부 구현예에서, 상기 컨텐츠는 제1 엔티티에 포커싱된 제1 이미지 또는 텍스트를 포함하고, 선택될 때, 상기 제1 엔티티에 특정한 하나 이상의 추가 컴퓨팅 동작(actions)이 수행되게 하는 적어도 하나의 선택 가능한 딥 링크(deep link)를 더 포함한다.
일부 구현예에서, 상기 방법은 상기 적어도 하나의 후보 쿼리 및 상기 컨텐츠에 기초하여 추가 관련 쿼리를 결정하는 단계와, 상기 제1 사용자의 사용자 인터페이스 입력 이후에, 상기 제1 메시지 교환 클라이언트를 통해 적어도 제1 사용자에게 디스플레이하기 위해, 상기 추가 관련 쿼리의 표시를 제공하는 추가의 선택 가능한 그래픽 요소를 제공하는 단계를 포함한다. 상기 추가의 선택 가능한 그래픽 요소는 상기 그래픽 요소의 동시 디스플레이 없이 디스플레이하기 위해 제공될 수 있다. 상기 방법은 상기 추가의 선택 가능한 그래픽 요소로 지시되는 상기 제1 사용자의 추가 사용자 인터페이스 입력에 응답하여, 상기 추가 관련 쿼리에 응답하는 추가 컨텐츠를 상기 진행중인 메시지 교환 스레드에 통합하는 단계를 더 포함한다. 상기 추가 컨텐츠를 상기 진행중인 메시지 교환 스레드에 통합하는 단계는 상기 추가 컨텐츠가 상기 제1 메시지 교환 클라이언트를 통해 제1 사용자에게 디스플레이되고 상기 제2 메시지 교환 클라이언트를 통해 제2 사용자에게 디스플레이되게 한다.
게다가, 일부 구현예들은 메모리와 하나 이상의 컴퓨팅 디바이스의 하나 이상의 프로세서를 포함하여, 하나 이상의 프로세서는 관련 메모리에 저장된 명령들을 실행하도록 동작 가능하고, 상기 명령들은 전술한 방법들 중 임의의 것을 수행하도록 구성된다. 일부 구현예들은 전술한 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
전술한 개념들 및 본 명세서에서 보다 상세하게 기술된 추가 개념들의 모든 조합은 본 명세서에 개시된 주제의 일부로서 고려될 수 있음을 이해해야 한다. 예를 들어, 본 명세서의 끝 부분에 나타난 청구된 주제의 모든 조합은 본 명세서에 개시된 주제의 부분으로 고려된다.
도 1은 본 명세서에 개시된 구현예들이 구현될 수 있는 예시적인 환경의 도면이다.
도 2a는 사용자들 간의 진행중인 메시지 교환 스레드의 하나 이상의 사용자에게 적어도 하나의 문맥적으로 관련된 제안을 제공하는 예를 도시한다.
도 2b는 사용자에게 제공되고 쿼리를 나타내는 제안으로 지시되는 사용자 인터페이스 입력과 같은, 메시지 교환 스레드의 사용자들 중 하나의 사용자 인터페이스 입력에 응답하여 메시지 교환 스레드에 쿼리에 응답하는 컨텐츠를 포함시키는 예를 나타낸다.
도 3a, 도 3b, 도 3c 및 도 3d는 클라이언트 컴퓨팅 디바이스가 다양한 구현예에 따라 메시지 교환 클라이언트에 대한 그래픽 사용자 인터페이스를 렌더링할 수 있는 방법의 예를 도시한다.
도 4는 사용자들 간의 진행중인 메시지 교환 스레드의 하나 이상의 사용자에게 적어도 하나의 문맥적으로 관련된 제안을 제공하고 메시지 교환 스레드에 상기 제안에 의해 표시된 쿼리에 응답하는 컨텐츠를 포함시키는 예시적인 방법을 나타낸 흐름도를 도시한다.
도 5는 컴퓨팅 디바이스의 예시적인 아키텍처를 도시한다.
본 명세서의 구현예들은 적어도 하나의 문맥적으로 관련된 제안을 사용자 사이에서 진행중인 메시지 교환 스레드의 하나 이상의 사용자에게 제공하는 것에 관한 것이다. 상기 제안은 사용자(들)의 컴퓨팅 디바이스(들)의 사용자 인터페이스 출력 디바이스(들)를 통해 사용자(들)에게 프리젠테이션하기 위해 제공된다. 상기 제안은 자동화 어시스턴트가 쿼리에 응답하는 컨텐츠를 메시지 교환 스레드에 통합하도록 자동화 어시스턴트로 제출(예컨대, 메시지 교환 스레드를 통해 자동화 어시스턴트로 제출)될 수 있는 쿼리를 나타낸다. 일부 구현예에서, 상기 제안은 선택 가능한 제안(예를 들어, 디스플레이를 위해 제공된 선택 가능한 그래픽 요소)이고, 쿼리에 응답하는 컨텐츠는 상기 선택 가능한 제안을 지시하는 사용자 인터페이스 입력(예를 들어, "탭" "클릭", "구두 명령")에 응답하여 메시지 교환 스레드에 통합된다. 일부 구현예에서, 상기 제안은 메시지 교환 스레드의 사용자들 간에 이미 전달된(already communicated)) 하나 이상의 메시지에 기초하여 결정된다. 예를 들어, 상기 제안에 의해 표시된 쿼리는 하나 이상의 용어(term), 이미지 및/또는 이미 전달된 메시지의 다른 컨텐츠에 기초하여 결정될 수 있다.
이제 도 1을 참조하면, 본 명세서에 개시된 기술들이 구현될 수 있는 예시적인 환경이 도시되어 있다. 예시적인 환경은 복수의 클라이언트 컴퓨팅 디바이스(1061-N) 및 자동화 어시스턴트(120)를 포함한다. 자동화 어시스턴트(120)가 클라이언트 컴퓨팅 디바이스(1061-N)와 별개로 도 1에 도시되어 있지만, 일부 구현예에서 자동화 어시스턴트(120)의 모두 또는 양태는 하나 이상의 클라이언트 컴퓨팅 디바이스(1061-N)에 의해 구현될 수 있다. 예를 들어, 클라이언트 컴퓨팅 디바이스(1061)는 자동화 어시스턴트(120)의 하나 이상의 양태들 중 하나의 인스턴스를 구현할 수 있고, 클라이언트 컴퓨팅 디바이스(106N)는 또한 자동화 어시스턴트(120)의 하나 이상의 양태들의 개별적인 인스턴스를 구현할 수 있다. 자동화 어시스턴트(120)의 하나 이상의(예를 들어, 모든) 양태가 클라이언트 컴퓨팅 디바이스(1061-N)로부터 멀리 떨어진(원격인) 하나 이상의 컴퓨팅 디바이스에 의해 구현되는 구현예에서, 클라이언트 컴퓨팅 디바이스(1061-N) 및 자동화 어시스턴트(120)의 양태들은 근거리 통신망(LAN) 및/또는 광역 통신망(WAN)(예컨대, 인터넷)과 같은 하나 이상의 네트워크를 통해 전달(communicate)될 수 있다.
클라이언트 컴퓨팅 디바이스(1061-N)는 예를 들어 데스크탑 컴퓨팅 디바이스, 랩탑 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 모바일 폰 컴퓨팅 디바이스, 사용자 차량의 컴퓨팅 디바이스(예를 들어, 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 네비게이션 시스템) 또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 디바이스를 갖는 사용자의 시계, 컴퓨팅 디바이스를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스) 중 하나 이상을 포함할 수 있다. 추가의 및/또는 대안적인 클라이언트 컴퓨팅 디바이스들이 제공될 수 있다.
각각의 클라이언트 컴퓨팅 디바이스(1061-N) 및 자동화 어시스턴트(120)는 데이터 및 소프트웨어 애플리케이션의 저장을 위한 하나 이상의 메모리, 데이터에 액세스하고 애플리케이션을 실행하기 위한 하나 이상의 프로세서 및 네트워크를 통한 통신을 용이하게 하는 다른 구성 요소들을 포함할 수 있다. 하나 이상의 클라이언트 컴퓨팅 디바이스(1061-N) 및/또는 자동화 어시스턴트(120)에 의해 수행된 동작들은 다수의 컴퓨터 시스템에 걸쳐 분산될 수 있다. 자동화 어시스턴트(120)는 예를 들어 네트워크를 통해 서로 결합되는 하나 이상의 위치에서 하나 이상의 컴퓨터상에서 실행되는 컴퓨터 프로그램으로 구현될 수 있다.
일부 구현예에서, 주어진 사용자는 컴퓨팅 디바이스들의 조정된 "에코시스템"을 집합적으로 형성하는 사용자의 복수의 클라이언트 컴퓨팅 디바이스를 이용하여 자동화 어시스턴트(120)와 통신할 수 있다. 예를 들어, 사용자는 사용자의 다수의 컴퓨팅 디바이스를 통해 진행중인 메시지 스레드에 참여할 수 있다. 예를 들어, 사용자는 제1 컴퓨팅 디바이스(예를 들어, 데스크탑 컴퓨팅 디바이스)에서 사용자 인터페이스 입력을 통해 상기 메시지 스레드에 통합하기 위한 제1 메시지를 제공할 수 있고, 제2 컴퓨팅 디바이스(예를 들어, 모바일 컴퓨팅 디바이스)에서 사용자 인터페이스 입력을 통해 상기 메시지 스레드에 통합하기 위한 제2 메시지를 나중에 제공할 수 있다. 그러나, 간결함을 위해, 본 발명에서 설명된 많은 예들은 클라이언트 컴퓨팅 디바이스(1061-N) 중 하나를 운용하는 주어진 사용자에 포커싱될 것이다.
각각의 클라이언트 컴퓨팅 디바이스(1061-N)는 메시지 교환 클라이언트(1071-N) 중 응답하는 하나와 같은 다양한 상이한 애플리케이션을 동작시킬 수 있다. 메시지 교환 클라이언트(1071-N)는 다양한 형태로 존재할 수 있고, 그들 형태는 클라이언트 컴퓨팅 디바이스(1061-N)에 걸쳐 다양할 수 있고 및/또는 다수의 형태는 클라이언트 컴퓨팅 디바이스(1061-N) 중 하나에서 동작될 수 있다. 일부 구현예에서, 하나 이상의 메시지 교환 클라이언트(1071-N)는 단문 메시징 서비스("SMS") 및/또는 멀티미디어 메시징 서비스("MMS") 클라이언트, 온라인 채팅 클라이언트(예컨대, 인스턴트 메신저, 인터넷 중계 채팅 또는 "IRC"등), 소셜 네트워크와 관련된 메시징 애플리케이션 등의 형태일 수 있다. 일부 구현예에서, 하나 이상의 메시지 교환 클라이언트(1071-N)는 웹 페이지 또는 웹 브라우저(미도시) 또는 클라이언트 컴퓨팅 디바이스의 다른 애플리케이션에 의해 렌더링된 다른 자원들을 통해 구현될 수 있다.
자동화 어시스턴트(120)는 이들 사용자의 다수의 메시지 교환 클라이언트(1071-N)를 통해 발생하는 다수의 사용자들 간의 진행중인 메시지 교환 스레드의 하나 이상의 메시지를 검사(examine)한다, 일부 구현예에서, 자동화 어시스턴트(120)는 사용자들 간의 메시지 교환 스레드를 용이하게 하는 중앙 교환기로서 기능한다. 다른 구현들에서, 자동화 어시스턴트(120)는 중앙 교환기로서 기능하지 않을 수 있지만, 진행중인 메시지 교환의 메시지들을 연속적으로, 주기적으로 또는 다른 정규 및/또는 비정규 간격으로 여전히 검사할 수 있다. 예를 들어, 자동화 어시스턴트(120)는 진행중인 메시지 교환에 참여하고 클라이언트 컴퓨팅 디바이스(들)를 통해 메시지 교환을 검사하는 사용자들의 하나 이상의 클라이언트 컴퓨팅 디바이스상에 전체적으로 또는 부분적으로 구현될 수 있다. 또한, 예를 들어, 자동화 어시스턴트(120)는 진행중인 메시지 교환에 참여한 사용자들의 클라이언트 컴퓨팅 디바이스로부터 이격되는 하나 이상의 컴퓨팅 디바이스 상에 전체적으로 또는 부분적으로 구현될 수 있지만, 하나 이상의 클라이언트 컴퓨팅 디바이스 및/또는 메시지 교환을 용이하게 하는 다른 컴퓨팅 디바이스로부터 상기 진행중인 메시지 교환의 메시지들을 수신할 수 있다.
일부 구현예에서, 자동화 어시스턴트(120)는 하나 이상의 검사된 메시지에 기초하여, 메시지 교환 클라이언트(1071-N)를 통해 하나 이상의 이들 사용자에게 프리젠테이션(예를 들어, 그래픽 요소로서 디스플레이하기 위해)하기 위한 적어도 하나의 문맥적으로 관련된 제안을 결정한다.
자동화 어시스턴트에 의해 결정된 제안은, 자동화 어시스턴트(120) 및/또는 하나 이상의 메시지 교환 클라이언트가 메시지 교환 스레드에 상기 쿼리에 응답하는 컨텐츠를 통합하게 하기 위해 메시지 교환 클라이언트(1071-N) 중 하나를 통해 자동화 어시스턴트(120)로 제출할 수 있는 쿼리를 나타낸다. 예를 들어, 상기 제안에 관련되고 상기 메시지 교환 스레드의 사용자 중 하나에 의해 제공되는 사용자 인터페이스 입력에 응답하여, 자동화 어시스턴트(120)는 쿼리에 응답하는 컨텐츠를 메시지 교환 스레드에 통합할 수 있다. 이들 구현예 중 일부에서, 상기 제안에 관한 사용자 인터페이스 입력은 제안에 의해 지시된 쿼리가 자동화 어시스턴트(120)로 제출될 수 있게 할 수 있고, 자동화 어시스턴트(120)는 쿼리에 기초하여 검색을 개시할 수 있으며, 자동화 어시스턴트(120)는 검색의 하나 이상의 검색 결과에 기초하여 컨텐츠를 결정할 수 있다. 일부 다른 구현예에서, 상기 검색에 응답하는 컨텐츠는 이전에 결정되었을 수 있고, 상기 제안에 대한 사용자 인터페이스 입력에 응답하여 쿼리 또는 다른 데이터를 수신하는 것에 응답하여 자동화 어시스턴트(120)에 의해 상기 메시지 교환 스레드로 구현될 수 있다. 또 다른 구현에서, 사용자는 상기 제안에 의해 표시된 쿼리를 타이핑하거나 말하고, 상기 제안에 대해 명시적으로 사용자 인터페이스 입력을 지시하지 않고 자동화 어시스턴트(120)로 상기 쿼리를 제출할 수 있다. 이들 구현예 중 일부에서, 자동화 어시스턴트(120)는 마찬가지로 컨텐츠를 메시지 교환 스레드에 통합함으로써 응답할 수 있다.
일부 구현예에서, 자동화 어시스턴트(120)는 사용자에 의해 제공된 하나 이상의 사용자 인터페이스 입력에 독립적으로 사용자에게 프리젠테이션하기 위한 제안을 제공할 수 있다. 예를 들어, 제안은 메시지 교환 스레드에 잠재적인 포함을 위한 메시지를 공식화할 때 사용자에 의해 제공되는 임의의 자연어 사용자 인터페이스 입력(예를 들어, 타이핑된 또는 발화된)과 독립적으로 제공될 수 있다. 예를 들어, 일부 구현예에서, 제안은 메시지 교환 스레드의 가장 최근의 메시지인 주어진 메시지에 적어도 부분적으로 기초하여 결정될 수 있으며, 메시지 교환에 제출된 경우 가장 최근이 될 추가 메시지를 공식화하는 것에 관한 임의의 사용자 인터페이스 입력을 제공하는 이들 사용자 이전에 하나 이상의 사용자에게 제시될 수 있다.
일부 구현예에서, 제안은 자동으로 그리고 임의의 사용자 인터페이스 입력과 독립적으로 제공될 수 있다. 일부 다른 구현예에서, 제안은 사용자 인터페이스 요소의 사용자 선택, 사용자에 의해 제공된 발화 명령 등과 같은 특정 사용자 인터페이스 입력에 응답하여 제공될 수 있다. 예를 들어, 제안은 메시지 교환 클라이언트(1071-N) 중 하나에 의해 렌더링된 그래픽 사용자 인터페이스에서 사용자 "탭 (tapping)" 또는 "응답 영역"을 선택하는 것에 응답하여 제공될 수 있다. 다른 예로서, 제안은 가상 버튼(예컨대, 탭, 롱 탭), 구두 명령(예컨대, "헤이 개인 비서, 나에게 몇 가지 제안을 해줘")등과의 사용자 상호 작용에 응답하여 제공될 수 있다.
일부 구현예에서, 자동화 어시스턴트(120)가 제안을 제공하는지 여부 및/또는 자동화 어시스턴트(120)가 제안을 제공하는 방법은 제안에 의해 표시된 쿼리에 대한 스코어에 기초할 수 있다. 예를 들어, 자동화 어시스턴트(120)는 쿼리에 대한 스코어가 임계값을 만족한다면 프리젠테이션을 위한 제안을 자동으로 제공할 수 있지만, 스코어가 임계값을 만족하지 않으면 제안을 제공하기 전에 사용자 인터페이스 입력을 요구할 수 있다. 또한, 예를 들어, 자동화 어시스턴트(120)는 스코어가 제1 임계값을 만족시키면 프리젠테이션을 위한 제안을 자동으로 제공할 수 있고, 스코어가 제1 임계값을 만족시키지는 않지만 제2 임계값을 만족시키면 프리젠테이션을 위한 제안을 제공하기 전에 특정 사용자 인터페이스 입력을 요구하며, 스코어가 제1 임계값 또는 제2 임계값를 만족시키지 못하면 어떠한 상황에도 제안을 제공하지 않을 수 있다. 쿼리에 대한 스코어 결정의 구현들에 대한 추가 설명이 본 명세서에 제공된다.
일부 구현예에서, 자동화 어시스턴트(120)는 메시지 처리 엔진(122), 엔티티 결정 엔진(124), 제안 엔진(126), 컨텐츠 엔진(128) 및 메시지 교환 엔진(130)을 포함할 수 있다. 일부 구현예에서, 하나 이상의 엔진(122, 124, 126, 128 및/또는 130)은 생략될 수 있다. 일부 구현예에서, 하나 이상의 엔진(122, 124, 126, 128 및/또는 130)의 모두 또는 양태가 결합될 수 있다. 일부 구현예에서, 하나 이상의 엔진(122, 124, 126, 128 및/또는 130)은 자동화 어시스턴트(120)와 별개의 구성 요소로 구현될 수 있다. 예를 들어, 하나 이상의 엔진(122, 124, 126, 128 및/또는 130) 또는 그들의 임의의 동작 부분은 클라이언트 컴퓨팅 디바이스(1061-N)에 의해 실행되는 구성 요소에서 구현될 수 있다.
메시지 처리 엔진(122)은 메시지 교환 스레드의 하나 이상의 메시지를 처리하고, 자동화 어시스턴트(120)의 하나 이상의 다른 구성 요소에 의한 사용을 위해 주석화된(annotated) 출력을 생성한다. 예를 들어, 메시지 처리 엔진(122)은 클라이언트 디바이스(1O61)의 하나 이상의 사용자 인터페이스 입력 디바이스를 통해 사용자에 의해 공식화되고 메시지 교환 클라이언트(1071)에 의해 메시지 교환 스레드로 제출되는 자유 형식의 자연어 입력을 처리할 수 있다. 생성된 메시지의 주석된 출력은 메시지의 컨텐츠의 하나 이상의 주석 및 선택적으로 컨텐츠 자체의 적어도 일부를 포함한다.
일부 구현예에서, 메시지 처리 엔진(122)은 메시지들의 자연어 컨텐츠의 다양한 유형의 문법 정보를 식별하고 주석을 달도록 구성된다. 예를 들어, 메시지 처리 엔진(122)은 그 문법적 역할로 용어들에 주석을 달기 위해 구성된 품사 태거 (tagger)를 포함할 수 있다. 예를 들어, 품사 태거는 각 용어를 "명사", "동사", "형용사", "대명사"등과 같은 품사로 태깅할 수 있다. 또한, 예를 들어, 일부 구현예에서, 메시지 처리 엔진(122)은 자연어 입력의 용어들 사이의 구문적 관계를 결정하도록 구성된 의존성 파서를 추가 적으로 및/또는 대안적으로 포함할 수 있다. 예를 들어, 의존성 파서는 어느 용어가 다른 용어, 문장의 주어와 동사 등(예를 들어, 파스 트리(parse tree))을 변경하는지 결정할 수 있으며, 그러한 의존성들에 대한 주석을 만들 수 있다.
일부 구현예에서, 메시지 처리 엔진(122)은 사람, 조직, 위치에 대한 참조와 같은 메시지의 컨텐츠(예를 들어, 자연어 컨텐츠 및/또는 이미지) 내의 엔티티 참조에 주석을 달도록 구성된 엔티티 태거를 추가로 및/또는 대안적으로 포함할 수 있다, 엔티티 태거는 높은 수준의 세분성(예컨대, 사람과 같은 엔티티 클래스에 대한 모든 참조를 식별할 수 있게 하는) 및/또는 낮은 수준의 세분성(예컨대, 특정 사람과 같은 특정 엔티티에 대한 모든 참조를 식별할 수 있게 하는)으로 엔티티에 대한 참조에 주석을 달 수 있다. 상기 엔티티 태거는 특정 엔티티를 분석(resolve)하기 위해 컨텐츠 자체에 의존할 수 있고 및/또는 특정 엔티티를 분석하기 위해 하나 이상의 자원과 선택적으로 통신할 수 있다. 예를 들어, 자연어 컨텐츠내의 엔티티를 분석하기 위해, 엔티티 태그는 지식 그래프 또는 다른 엔티티 데이터베이스와 통신하여 특정 엔티티를 분석할 수 있다. 또한, 예를 들어, 이미지 컨텐츠 내의 엔티티를 분석하기 위해, 엔티티 태거는, 이미지에 존재하는 하나 이상의 엔티티(예컨대, 엔티티 분류(들))를 식별하도록 구성된 컨볼루션 신경망과 같은 이미지 처리 시스템과 통신할 수 있다.
일부 구현예에서, 메시지 처리 엔진(122)은 하나 이상의 문맥 큐에 기초하여 동일한 엔티티에 대한 참조를 그룹화하거나 "클러스터링"하도록 구성된 동일 지시어 분석기(coreference resolver)를 부가 적으로 및/또는 대안적으로 포함할 수 있다. 예를 들어, 동일 지시어 분석기는 자연어 입력인 "나는 레스토랑 A가 좋다고 생각해. 그것은 어디에 있지?(I think Restaurant A sounds good. Where is it located?)"에서, "그것(it)"이라는 용어를 "레스토랑 A"로 분석하기 위해 활용될 수 있다.
일부 구현예에서, 메시지 처리 엔진(122)의 하나 이상의 구성 요소는 메시지 처리 엔진(122)의 하나 이상의 다른 구성 요소부터의 주석에 의존할 수 있다. 예를 들어, 일부 구현예에서 상기 명명된 엔티티 태거는 특정 엔티티네 대한 모든 언급에 주석을 달 때 상기 동일 지시어 분석기 및/또는 의존성 파서로부터의 주석에 의존할 수 있다. 또한, 예를 들어, 일부 구현예에서, 동일 지시어 분석기는 동일한 엔티티에 대한 참조를 클러스터링할 때 의존성 파서로부터의 주석에 의존할 수 있다. 일부 구현예에서, 특정 메시지를 처리할 때, 메시지 처리 엔진(122)의 하나 이상의 구성 요소는 메시지 교환 스레드의 주어진 메시지에 대한 하나 이상의 주석을 결정하기 위해 메시지 교환 스레드의 하나 이상의 이전 메시지를 사용할 수 있다. 예를 들어, 메시지 교환 스레드의 제1 사용자는 "레스토랑 A는 어때?(How does Restaurant A sound?)"라는 메시지를 통합시킬 수 있고, 제2 사용자는 메시지 교환 스레드에 "그것은 어디에 있지?" 라는 응답 메시지를 포함시킬 수 있다. "그것은 어디에 있지?"를 처리할 때, 동일 지시어 분석기는 ""레스토랑 A는 어때 ?"라는 이전 메시지에 기초하여 "그것"을 "레스토랑 A"로 분석할 수 있다.
엔티티 결정 엔진(124)은 메시지 교환 스레드의 하나 이상의 메시지에서 참조되는 하나 이상의 엔티티를 결정한다. 일부 구현예에서, 엔티티 결정 엔진(124)은 메시지 교환 스레드의 메시지들의 서브 세트의 분석에 기초하여 메시지 교환 스레드에서 "최근에" 참조된 하나 이상의 엔티티를 결정할 수 있다. 예를 들어, 엔진(124)은 마지막 N개의 메시지(예컨대, 마지막 1, 2 또는 4개의 메시지)에 기초하여 및/또는 시간 임계값 내의(예컨대, 마지막 분, 마지막 10분) 메시지 교환 스레드에 포함되었던 메시지(들)에 기초하여 최근에 참조된 엔티티들을 결정할 수 있다.
하나 이상의 메시지에서 참조된 엔티티를 결정할 때, 엔티티 결정 엔진(124)은 메시지 처리 엔진(122)에 의해 제공된 메시지(들) 및/또는 주석(예를 들어, 엔진(122)의 엔티티 태거에 의해 제공된 엔티티 태그)의 내용에 의존할 수 있다. 엔티티 결정 엔진(124)은 또한 지식 그래프 또는 다른 엔티티 데이터베이스 및/또는 메시지 교환 스레드에 참여하는 하나 이상의 사용자의 사용자 속성(들)과 같은 엔티티를 결정할 때 하나 이상의 추가 자원을 활용할 수 있다.
일 예로서, "그 때의 날씨는 어때?(what's the weather like then?")라는 가장 최근 메시지와 "더비(Dewrby)를 위한 5월의 루이빌 여행에 관심 있니?(any interest in a trip to Louisville in May for the Derby?")라는 바로 앞에 오는 메시지를 가정한다. 상기 2개의 메시지에 기초하여, 엔티티 결정 엔진(124)은 예를 들어, 루이빌의 "별칭" 특성을 갖는 지식 그래프에서 해당 엔티티에 대한 엔트리에 기초하고 상기 "더비"와 관련된 엔티티에 대한 엔트리와 강한 관계를 갖는 엔트리에 기초하여 켄터키주의 루이빌시에 응답하는 엔티티를 결정할 수 있다. 엔티티 결정 엔진(124)은 또한 (예를 들어, 엔진(122)에 의해 제공된 주석들에 기초하여) 메시지들 내의 용어 "5월" 및/또는 메시지 내의 구문론적(syntactic) 관계의 존재(presence)에 기초하여 5월에 응답하는 엔티티를 선택적으로 결정할 수 있다. 엔티티 결정 엔진(124)은 또한 메시지내의 해당 용어의 존재에 기초하여 "날씨"에 응답하는 엔티티를 선택적으로 결정할 수 있다. 일부 구현예에서, 엔티티 결정 엔진(124)은 생략될 수 있다.
제안 엔진(126)은 메시지 교환 스레드의 하나 이상의 메시지에 기초하여, 하나 이상의 메시지에 문맥상으로 관련된 하나 이상의 제안을 결정한다. 제안 엔진(126)은 (예를 들어, 하나 이상의 메시지 교환 클라이언트(1071-N)를 통해 프리젠테이션하기 위해) 메시지 교환 스레드에 참여하는 하나 이상의 사용자에게 프리젠테이션하기 위해(예를 들어, 그래픽 요소로서 디스플레이하기 위해) 하나 이상의 상기 결정된 제안들을 제공할 수 있다. 예를 들어, 상기 제안들은 스레드에 참여하는 하나 이상의 사용자가 볼 수 있는 그래픽 요소들로서 제공될 수 있다. 예를 들어, 그래픽 요소들은 하나 이상의 메시지 교환 클라이언트(1071-N)와 연관된 그래픽 사용자 인터페이스(들) 상에 디스플레이될 수 있고, 상기 진행중인 메시지 교환 스레드의 사본과 함께 디스플레이될 수 있지만 선택적으로 포함되지 않을 수 있다. 본 명세서에 사용된 바와 같이, "사본(transcript)"은 메시지 교환 스레드에 참여하는 하나 이상의 사용자가 교환 및/또는 볼 수 있는 텍스트, 이미지, 사운드 등의 라이브 레코드를 지칭할 수 있다. 일부 구현예에서, 메시지 교환 스레드의 사본은 사용자가 대화할 때 실시간 또는 거의 실시간으로 업데이트될 수 있다.
일부 구현예에서, 제안 엔진(126)은 메시지 교환 엔진(130)으로 상기 제안들을 제공할 수 있으며, 메시지 교환 엔진(130)은 제안들을 하나 이상의 메시지 교환 클라이언트(1071-N)로 제공할 수 있다. 예를 들어, 메시지 교환 엔진(130)은, 적어도 하나의 메시지 교환 클라이언트(1071-N)가 상기 적어도 하나의 메시지 교환 클라이언트(1071-N)에 의해 랜더링된 그래픽 사용자 인터페이스에서 그래픽 요소를 제공하도록 요청할 수 있다.
일부 구현예에서, 상기 제안 엔진(126)은 엔티티 결정 엔진(124)에 의해 결정된 하나 이상의 엔티티 및/또는 쿼리 데이터베이스(156)의 하나 이상의 쿼리에 기초하여, 메시지 처리 엔진(122)에 의해 결정된 주석 출력에 기초한 제안을 결정한다. 쿼리 데이터베이스(156)는 예를 들어 자동화 어시스턴트 및/또는 검색 엔진으로 이전에 제출된 하나 이상의 쿼리 및/또는 하나 이상의 쿼리 "템플릿"을 포함할 수 있다. 쿼리 템플릿들은 하나 이상의 용어 및 쿼리를 생성하기 위해 특정 엔티티의 별칭으로 "채워질(filled)"수 있는 하나 이상의 플레이스홀더를 포함할 수 있다. 예를 들어, 쿼리 템플릿은 "[영화]의 출연자들" 형식을 취할 수 있으며, "영화"는 템플릿에 기초하여 쿼리를 생성하도록 특정 영화의 별칭으로 채워질 수 있다.
일부 구현예에서, 제안 엔진(126)은 메시지 교환 스레드의 하나 이상의 메시지에 기초하여 후보 검색 쿼리를 결정하고, 상기 후보 검색 쿼리에 기초하여 제안을 생성한다. 예를 들어, 상기 제안은 후보 검색 쿼리의 표시를 제공하는 선택 가능한 그래픽 요소일 수 있다. 그래픽 요소는 검색 쿼리의 전체 또는 검색 쿼리 용어의 서브 그룹 또는 검색 쿼리의 재기록(rewrite)을 포함할 수 있다(예를 들어, 검색 쿼리가 디스플레이를 위해 요구되는 것보다 길 때).
제안 엔진(126)은 다양한 기술을 이용하여 후보 검색 쿼리를 결정할 수 있다. 일부 구현예에서, 제안 엔진(126)은 엔티티 결정 엔진(124)에 의해 결정된 하나 이상의 엔티티에 기초하여 후보 검색 쿼리를 결정할 수 있다. 예를 들어, 제안 엔진(126)은 하나 이상의 데이터베이스내의(예컨대, 쿼리 데이터베이스(156)내의) 하나 이상의 엔티티와 강하게 관련된 하나 이상의 검색 쿼리를 결정할 수 있다. 또한, 예를 들어, 제안 엔진(126)은 하나 이상의 엔티티의 별칭에 기초하여 하나 이상의 검색 쿼리를 결정할 수 있다. 예를 들어, 상술한 바와 같이, 엔티티 결정 엔진(124)은 "더비를 위한 5월의 루이빌 여행에 관심 있니?"라는 메시지를 뒤따르는 "그 때의 날씨는 어때?"라는 메시지에 기초하여 켄터키주의 루이빌 도시에 응답하는 엔티티를 결정할 수 있다. 상기 제안 엔진(126)은 메시지들의 용어("날씨", "5월")에 기초하고 메시지 처리 엔진(122)에 의해 제공된 주석 출력(예컨대, "그 때"가 "5월"에 대한 참조임을 결정하기 위해)에 기초하여, 엔진(124)에 의해 결정된 엔티티의 별칭("루이빌, KY)에 근거한 "루이빌, KY 5월 날씨"(Louisville, KY weather in May")라는 후보 쿼리를 결정할 수 있다.
일부 구현예에서, 제안 엔진(126)은 쿼리 데이터베이스(156)의 쿼리들과 같은 이전에 제출된 검색 쿼리들의 말뭉치로부터 그것을 선택하는 것에 기초하여 후보 검색 쿼리를 부가 적으로 및/또는 대안적으로 결정할 수 있다. 후보 검색 쿼리는, 예를 들어, 후보 검색 쿼리와 메시지 교환 스레드의 메시지들에 포함된 용어(들)사이의 일치성((conformance), 후보 쿼리와 엔티티 결정 엔진(124)에 의해 결정된 엔티티의 별칭(들)사이의 일치성에 기초하여 선택될 수 있고 및/또는 (예를 들어, 후보 쿼리의 제출 빈도 또는 후보 쿼리의 제출량을 나타내는 다른 척도에 기초한) 검색 쿼리의 인기 척도에 기초하여 결정될 수 있다.
일부 구현예에서, 제안 엔진(126)은 쿼리 데이터베이스(156)에서, (예를 들어, 메시지들의 엔티티 결정 엔진(124)에 의해 결정된) 하나 이상의 용어 및/또는 엔티티와 연관된 쿼리 템플릿을 식별하는 것에 기초하여 후보 검색 쿼리를 부가적으로 및/또는 대안적으로 결정할 수 있다. 제안 엔진(126)은 하나 이상의 적절한 용어로 상기 쿼리 템플릿의 플레이스 홀더(들)를 채워 후보 쿼리를 더 생성할 수 있다. 예를 들어, "근처 [요리 종류] 레스토랑(nearby [cuisine type] restaurants)"이라는 쿼리 템플릿은 "레스토랑"의 엔터티 클래스, "요리 종류"의 엔터티 클래스와 같은 하나 이상의 엔터티와 관련되고 및/또는 "음식(food)", "저녁", "예약", "레스토랑", "해산물", "바베큐"등과 같은 하나 이상의 용어와 관련된다고 가정한다. 제안 엔진(126)은 "누구 점심 먹고 싶어? - 나는 바베큐 생각뿐인데"라는 메시지를 포함하는 메시지 교환에 기초하여 해당 쿼리 템플릿을 식별할 수 있다. 제안 엔진(126)은 바비큐가 요리 유형이고 메시지에 포함된 용어라는 것에 기초하여 "바베큐"로 "[요리 종류]" 플레이스 홀더를 더 채울 수 있다.
일부 구현예에서, 제안 엔진(126)이 제안을 제공하는지 여부는 제안에 의해 표시된 쿼리에 대한 스코어에 기초할 수 있다. 예를 들어, 일부 구현예에서, 제안 엔진(126)은 본 명세서에 설명된 것과 같은 하나 이상의 기술을 이용하여 하나 이상의 후보 쿼리의 그룹을 결정할 수 있다. 이들 구현 중 일부에서, 제안 엔진(126)은 그룹의 후보 쿼리 각각에 대한 스코어를 결정할 수 있고, 임계값을 만족하는 스코어를 갖는 후보 쿼리(있는 경우)들에 기초한 제안들만을 제공할 수 있다.
일부 구현예에서, 제안 엔진(126)은 후보 쿼리에 대한 스코어를 추가로 및/또는 대안적으로 이용하여 해당 후보 쿼리를 나타내는 제안이 어떻게 제공되는 지를 결정할 수 있다. 예를 들어, 일부 구현예에서, 제안 엔진(126)은 후보 쿼리를 나타내는 그래픽 요소로서 제공된 제안의 디스플레이 순서, 크기 및/또는 다른 시각적 중요성(visual prominence)을 결정하기 위해 후보 쿼리의 스코어를 사용할 수 있다. 또한, 예를 들어, 일부 구현예에서, 제안 엔진(126)은 후보 쿼리에 대한 스코어가 임계값을 만족한다면 프리젠테이션을 위한 제안을 자동으로 제공할 수 있지만, 스코어가 임계값을 만족시키지 않으면 제안을 제공하기 전에 사용자 인터페이스 입력을 요구할 수 있다. 또한, 예를 들어, 제안 엔진(126)은, 스코어가 제1 임계값을 만족하는 경우, 프리젠테이션을 위한 제안을 자동으로 제공하고, 스코어가 제1 임계값을 만족시키지 않지만 제2 임계값을 만족하는 경우, 프리젠테이션을 위한 제안을 제공하기 전에 특정 사용자 인터페이스 입력을 요구하고, 스코어가 제1 임계값 또는 제2 임계값를 만족시키지 못하는 경우, 어떠한 상황에서도 제안을 제공하지 않을 수 있다.
일부 구현예에서, 제안 엔진(126)은 (1) 후보 쿼리 자체의 하나 이상의 특성, (2) 후보 쿼리에 응답하는 검색 결과들의 하나 이상의 특성 및/또는 (3) 진행중인 메시지 교환 스레드의 하나 이상의 메시지의 하나 이상의 특성에 기초하여 후보 쿼리에 대한 스코어를 결정할 수 있다.
후보 쿼리의 하나 이상의 특성은 예를 들어, 검색 결과에 대한 인기 척도(popularity measure)를 포함할 수 있다. 상기 후보 쿼리에 응답하는 하나 이상의 검색 결과의 하나 이상의 특성은 예를 들어 검색 결과(들)에 대한 품질 척도(들) 및/또는 검색 결과(들)이 탐색(navigational) 검색 결과, 선별(curated) 검색 결과, "지식 카드" 검색 결과 등과 같은 특정 유형(들)인지 여부를 포함할 수 있다.
진행중인 메시지 교환 스레드의 하나 이상의 메시지의 하나 이상의 특성은 예를 들어, "채팅 가능성(chattiness)"의 척도 및/또는 가장 최근의 메시지 또는 가장 최근의 N개의 메시지와 같은 상기 하나 이상의 메시지의 "검색 가능성(searchiness)"의 척도를 포함할 수 있다. 일부 구현예에서, 메시지의 "검색 가능성"의 척도는 메시지의 용어들 및/또는 구문 구조를 이전에 제출된 검색 쿼리들의 용어들 및/또는 구문 패턴들과 비교하는 것에 기초하여 결정될 수 있다. 예를 들어, 메시지의 구문 구조는 검색 엔진으로 제출된 검색들에서 공통적인 구문 구조와 비교될 수 있으며, 만약 높은 일치성이 있으면 상기 메시지가 "검색 가능"함을 나타낼 수 있다. 또한, 예를 들어, 메시지내의 특정 용어의 존재 및/또는 부재는 메시지가 "무엇", "언제", "?"등의 존재와 같이 메시지가 "검색 가능"함을 나타낼 수 있다. 또한, 예를 들어, 임의의 명명된 엔티티의 존재, 특정 양의 명명된 엔티티의 존재 및/또는 메시지 내의 특정 클래스의 명명된 엔티티의 존재가 상기 메시지가 "검색 가능"함을 나타낼 수 있다.
일부 구현예에서, 메시지의 "채팅 가능성" 척도는 메시지의 용어들 및/또는 구문 구조를 둘 이상의 사용자 간의 이전 메시지 교환의 용어들 및/또는 구문 패턴들과 비교하여 결정될 수 있다. 예를 들어, 메시지의 구문 구조는 사용자들 간의 이전 메시지 교환에서 공통적인 구문 구조와 비교될 수 있으며, 높은 일치성이 있는 경우 메시지가 "채팅 가능"함을 나타낼 수 있다. 또한, 예를 들어, 메시지 내의 특정 용어들의 존재 및/또는 부재는 메시지가 "채팅 가능"함을 나타낼 수 있다. 또한, 예를 들어, 메시지 내의 임의의 명명된 엔티티 및/또는 특정 클래스의 명명된 엔티티의 부재가 그 메시지가 "채팅 가능"함을 나타낼 수 있다.
일부 구현예에서, 제안 엔진(126)은 훈련된 분류기 및/또는 다른 기계 학습 시스템을 이용하여 "채팅 가능성" 및/또는 "검색 가능성"의 척도를 결정할 수 있다. 예를 들어, 분류기는 메시지(들)의 용어(들), 메시지들의 주석들(예를 들어, 엔진(122)에 의해 제공된 주석)과 같은 하나 이상의 메시지의 하나 이상의 특징을 입력으로서 수신하도록 훈련될 수 있으며, 메시지가 "검색 가능"(즉, 검색 결과에 대한 욕구를 나타내는) 및/또는 "채팅 가능"(즉, 하나 이상의 사용자와의 추가 통신에 대한 욕구)의 여부 및/또는 메시지가 어느 정도로 "검색 가능" 및/또는 "채팅 가능"인지의 표시를 출력으로서 제공할 수 있다.
컨텐츠 엔진(128)은 사용자가 해당 쿼리에 기초한 제안을 선택하거나 상호 작용하는 것에 응답하여 자동화 어시스턴트(120)로 지시되는 쿼리와 같이, 자동화 어시스턴트(120)로 지시되는 쿼리에 응답하는 컨텐츠를 결정한다. 상기 컨텐츠는 예를 들어, 공개 데이터베이스(154) 및/또는 개인 데이터베이스(152)로부터, 식별될 수 있는 쿼리에 응답하는 문서, 이미지, 텍스트 컨텐츠 및/또는 기타 정보를 포함할 수 있다. 다양한 구현예에서, 검색 쿼리에 응답하는 컨텐츠는 다른 결정된 컨텐츠와 관련된 추가 제안들을 더 포함할 수 있다.
일부 구현예에서, 컨텐츠 엔진(128)은 별도의 검색 엔진(미도시)에 쿼리를 제출하고 그 제출에 응답하여 하나 이상의 검색 결과를 얻을 수 있다. 일부 구현예에서, 검색 엔진은 공용 데이터베이스(154)와 같은 하나 이상의 공개 컨텐츠 자원을 검색할 수 있다. 일부 구현예에서, 검색 엔진은 개인 데이터베이스(152)와 같은 쿼리(및/또는 메시지 교환 스레드의 다른 사용자)를 제출한 사용자에게 개인적인 하나 이상의 개인 컨텐츠 자원을 부가 적으로 및/또는 대안적으로 검색할 수 있다. 예를 들어, 개인 데이터베이스(152)는 사용자의 캘린더 항목(entry), 사용자의 연락처 항목, 사용자의 전자 메일, 사용자의 전자 메일로부터 도출된 컨텐츠 등과 같이 사용자에게 개인적인 항목들을 포함할 수 있다. 검색 엔진은 예를 들어, 쿼리 제출과 함께 컨텐츠 엔진(128)에 의해 제공된 사용자 인증 정보에 기초하여 개인 데이터베이스(152)(또는 사용자의 개인 데이터베이스(152)의 항목들의 서브 세트)에 액세스할 수 있다. 일부 다른 구현예에서, 컨텐츠 엔진(128) 자체는 공용 데이터베이스(154), 개인 데이터베이스(152) 및/또는 쿼리에 기초한 다른 자원의 검색을 수행할 수 있다.
많은 경우, 쿼리에 응답하는 컨텐츠는 대화의 흐름을 방해하지 않고 메시지 교환 스레드에 쉽게 통합할 수 없을 수도 있다(예를 들어, 너무 길고, 세부 사항이 너무 많은 등으로). 이러한 상황에서, 컨텐츠 엔진(128)은 스레드에 통합하기 위해 전체 응답 컨텐츠(즉, 전체 응답 컨텐츠가 발췌될 수 있음)의 서브 세트를 선택할 수 있다. 일부 구현예에서, 컨텐츠 엔진(128)은 메시지 교환 스레드에 통합하기 위해 서브 세트를 선택(또는 응답 컨텐츠를 발췌)할 수 있다. 다른 구현들에서, 컨텐츠 엔진(128)은 포괄적인 응답 정보를 하나 이상의 메시지 교환 클라이언트들(1071-N)로 제공할 수 있고, 그들은 발췌를 수행할 수 있다. 예를 들어, 일부 구현예에서, 메시지 교환 클라이언트(1071)는 클라이언트 컴퓨팅 디바이스(1061)의 스크린 크기에 기초하여 정보를 발췌할 수 있다. 또 다른 구현예에서, 컨텐츠 엔진(128) 및 메시지 교환 클라이언트는 모두 발췌를 수행할 수 있다. 일부 구현예에서, 상위 N개의 검색 결과(또는 다른 컨텐츠)가 메시지 교환 스레드로 통합하기 위해 선택될 수 있고 및/또는 특정 유형의 검색 결과(또는 다른 컨텐츠)가 메시지 교환 스레드로의 통합을 위해 선택될 수 있다. N은 예를 들어 스크린 크기, 사용자 선호도 등에 기초하여 선택될 수 있거나 수동으로 선택될 수 있다(예를 들어, N은 5, 10, 2, 1 등으로 설정될 수 있다).
다양한 구현예에서, 쿼리에 응답하여 메시지 교환 스레드에 통합된 컨텐츠의 적어도 일부는 쿼리에 응답하는 하나 이상의 전자 문서에 링크될 수 있어, 사용자는 새로운 자원(예컨대, 정보를 디스플레이하는 웹 브라우저)으로 향하도록 해당 컨텐츠를 선택하기만 하면 된다. 일부 구현예에서, 메시지 교환 스레드에 통합된 컨텐츠의 적어도 일부는 쿼리에 응답하는 메시지 교환 클라이언트들(107) 중 적어도 하나를 동작시키는 클라이언트 컴퓨팅 디바이스(106) 상에 설치된 애플리케이션에 링크될 수 있다. 예를 들어, 사용자가 "프랭크에서의 저녁 식사 예약"의 쿼리를 나타내는 제안을 선택하면, "프랭크" 위치와 관련된 하나 이상의 그래픽 요소가 메시지 교환 스레드에 통합될 수 있고, 그러한 그래픽 요소들은 프랭크 위치(예컨대, 딥 링크)에서 예약을 생성하도록 특별히 동작 가능한 다른 애플리케이션을 열도록 선택될 수 있다.
메시지 교환 엔진(130)은 메시지 교환 스레드로 (컨텐츠 엔진(128)에 의해 결정된) 컨텐츠의 편입(incorporation)을 용이하게 할 수 있고 및/또는 하나 이상의 메시지 교환 클라이언트를 통한 디스플레이를 위한 (제안 엔진(126)에 의해 결정됨) 제안들의 제공을 용이하게 할 수 있다.
메시지 교환 스레드에 통합된 컨텐츠는 스레드에 참여하는 하나 이상의 사용자가 볼 수 있다. 예를 들어, 컨텐츠는 진행중인 메시지 교환 스레드의 사본을 묘사하는 메시지 교환 클라이언트와 연관된 그래픽 사용자 인터페이스상에서 볼 수 있다. 메시지 교환 엔진(130)은 다양한 방식으로 다수의 메시지 교환 클라이언트(1071-N) 사이의 메시지 교환 스레드에 컨텐츠를 통합할 수 있다. 일부 구현예에서, 메시지 교환 엔진(130)은 메시지 교환 스레드에 참여하는 메시지 교환 클라이언트(1071-N) 중 적어도 하나가 그래픽 사용자 인터페이스에 디스플레이된 진행중인 메시지 교환 스레드의 사본에 컨텐츠를 삽입하도록 요청할 수 있다. 일부 시나리오에서, 컨텐츠는 메시지 교환 스레드에 참여하는 모든 메시지 교환 클라이언트에 의해 렌더링된 사본과 같이, 둘 이상의 메시지 교환 클라이언트에 의해 렌더링된 사본들에 통합될 수 있다. 일부 구현예에서, 메시지 교환 엔진(130)은 단순히 메시지 교환 클라이언트에 응답 컨텐츠를 제공할 수 있으며, 그러면 메시지 교환 클라이언트는 메시지 교환 스레드에 어떤 컨텐츠를 통합할지를 선택할 수 있다.
이제 도 2a 및 도 2b를 참조하면, 자동화 어시스턴트(120)의 다양한 구성 요소에 대한 추가 적인 설명이 제공된다.
도 2a 및 도 2b에서, 메시지 교환 스레드는 메시지 교환 클라이언트(1071)와 메시지 교환 클라이언트(107N) 사이에서 진행중이다. 도 2a에서, 메시지 교환 엔진(130)은 스레드(201)의 하나 이상의 메시지를 획득하여 메시지 처리 엔진(122)으로 제공한다. 일부 구현예에서, 메시지 교환 엔진(130)은 메시지 교환 클라이언트(1071 및 107N) 간의 메시지 교환 스레드를 용이하게 하는 중앙 교환기로서 기능할 수 있다. 다른 구현들에서, 메시지 교환 엔진(130)은 중앙 교환기로서 기능하지 않을 수 있지만, 여전히 스레드(201)의 메시지(들)를 얻을 수 있다.
메시지 처리 엔진(122)은 스레드(201)의 메시지(들)를 처리하여 스레드 (201)의 메시지(들)의 다양한 주석을 생성한다. 메시지 처리 엔진(122)은 엔티티 결정 엔진(124) 및 제안 엔진(126)으로 주석 입력(예를 들어, 스레드(201)의 메시지(들)의 용어 및/또는 다른 컨텐츠 및 생성된 주석)(202)을 제공한다.
엔티티 결정 엔진(124)은 주석 입력(202), 엔티티 데이터베이스 및/또는 다른 자원들에 기초하여 스레드(201)의 메시지들에서 참조된 하나 이상의 엔티티들(203)을 결정한다. 엔티티 결정 엔진(124)은 하나 이상의 엔티티(203)를 제안 엔진(126)으로 제공한다.
제안 엔진(126)은 하나 이상의 제안들(204)을 결정하여 제안들(204)을 메시지 교환 엔진(130)으로 제공한다. 메시지 교환 엔진(130)은 메시지 교환 클라이언트(1071 및 107N) 중 하나 또는 모두를 통해 디스플레이하기 위해 제안(204)을 제공한다. 일부 구현예에서, 하나 이상의 제안(204)은 후보 검색 쿼리들의 용어들을 포함하고 및/또는 후보 검색 쿼리를 나타내는 선택 가능한 그래픽 요소일 수 있다. 일부 구현예에서, 하나 이상의 제안(204)은 청취 가능한 제안들로서 제공될 수 있다.
본 명세서에 설명된 바와 같이, 제안 엔진(126)은 제안들을 결정하기 위해 하나 이상의 다양한 기술을 이용할 수 있다. 예를 들어, 제안 엔진(126)은 주석 입력(202), 엔티티들(203) 및/또는 쿼리 데이터베이스(156)에 기초하여 후보 검색 쿼리를 결정할 수 있고, 후보 검색 쿼리에 기초하여 제안을 생성할 수 있다. 일부 구현예에서, 제안 엔진(126)은 제안들(204)과 연관된 후보 쿼리들에 대한 스코어를 결정하고, 상기 스코어들에 기초하여 제안들(204)을 제공할지 여부를 결정한다. 일부 구현예에서, 제안 엔진(126)은 스코어를 이용하여 제안들(204)이 제공될 방법을 결정한다. 예를 들어, 제안 엔진은 스코어를 이용하여 제안들(204)의 특정 디스플레이 위치, 제안들(204)의 특정 디스플레이 크기 및/또는 제안들(204)의 다른 특정 디스플레이 특성을 나타내는 제안들(204)을 제공하기 위한 컴퓨터 판독 가능 명령들을 생성할 수 있다.
도 2b는 사용자에게 제공되고 쿼리를 나타내는 제안으로 지시되는 사용자 인터페이스 입력과 같은, 메시지 교환 스레드의 사용자들 중 하나의 사용자 인터페이스 입력에 응답하여 메시지 교환 스레드에 쿼리에 응답하는 컨텐츠를 포함시키는 예를 도시한다.
예를 들어, 도 2b에서 메시지 교환 엔진(130)은 도 2a에서 제공된 제공 제안들(204) 중 하나에 관한 사용자 인터페이스 입력에 응답하여 쿼리(205)를 수신할 수 있다(즉, 해당 제안은 쿼리(205)를 나타낼 수 있다). 도 2a와 관련하여 설명된 바와 같이, 제안은 메시지 교환 클라이언트(1071 및 107N) 중 하나 또는 모두를 통해 디스플레이하기 위해 제공될 수 있다. 쿼리(205)는 제안이 제공된 메시지 교환 클라이언트(1071 및 107N) 중 하나를 통해 상기 제안에 지시된 사용자 인터페이스 입력에 응답하여 메시지 교환 엔진(130)로 제공될 수 있다.
메시지 교환 엔진(130)은 쿼리(205)에 응답하는 컨텐츠(206)를 획득하는 컨텐츠 엔진(128)으로 쿼리(205)를 제공한다. 컨텐츠(206)는 컨텐츠 엔진(128)에 의해 개인 데이터베이스(152) 및/또는 공용 데이터베이스(154)로부터 직접 또는 간접적으로 획득될 수 있다. 일부 구현예에서, 컨텐츠 엔진(128)은 쿼리(205)의 제출에 응답하여 검색 결과의 세트 또는 다른 컨텐츠를 결정하고, 컨텐츠(206)를 생성하기 위해 컨텐츠를 발췌한다. 컨텐츠 엔진(128)은 컨텐츠를 메시지 교환 엔진(130)으로 제공한다. 메시지 교환 엔진(130)은 컨텐츠(206)를 메시지 교환 클라이언트(1071 및 107N) 사이의 상기 진행중인 메시지 교환 스레드에 통합시킨다. 예를 들어, 컨텐츠(206)는 메시지 교환 클라이언트의 둘 모두에서 메시지 교환 스레드의 일부로서 디스플레이하기 위해 메시지 교환 스레드에 통합될 수 있다
이제 도 3a 내지 도 3d를 참조하면, 본 명세서에 설명된 다양한 구성 요소 및 기술에 대한 추가 적인 설명이 제공된다. 도 3a 내지 도 3d는 클라이언트 컴퓨팅 디바이스(1061)가 메시지 교환 스레드 동안 메시지 교환 클라이언트(1061)의 그래픽 사용자 인터페이스를 어떻게 렌더링할 수 있는지의 예를 도시하는 디스플레이 스크린(140)를 갖는 도 1의 클라이언트 컴퓨팅 디바이스(1061)를 각각 도시한다. 도 3a~3d에서, 클라이언트 컴퓨팅 디바이스(1061)의 사용자는 "톰(Tom)" 및 "알렉스(Alex)"라는 2명의 다른 사용자와 진행중인 메시지 교환 스레드에 참여한다.
도 3a 내지 도 3d의 디스플레이 스크린(140)은 사용자가 가상 키보드를 통해 사용자 입력을 생성하도록 선택할 수 있는 텍스트 응답 인터페이스 요소(388) 및 사용자가 마이크로폰을 통해 사용자 입력을 생성하도록 선택할 수 있는 음성 응답 인터페이스 요소(389)를 더 포함한다. 디스플레이 스크린(140)은 또한 컴퓨팅 디바이스(1061)로 하여금 하나 이상의 동작(actions)을 수행하게 하기 위해 사용자와 상호 작용할 수 있는 시스템 인터페이스 요소(381, 382, 383)를 포함한다.
도 3a에서, 사용자는 이전에 자연어 메시지(380A)를 공식화하여 메시지 교환 스레드에 통합하기 위해 해당 메시지(380A)를 제출했다. 또한, 톰은 이전에 자연어 메시지(382A)를 공식화하고 상기 메시지(380A)를 통합한 후에 메시지 교환 스레드에 통합하기 위해 메시지(382A)를 제출했다. 알렉스는 또한 자연어 메시지 (384A)를 공식화하고 상기 메시지(382A)를 통합한 후에 메시지 교환 스레드에 통합하기 위해 메시지(384A)를 제출했다.
자동화 어시스턴트(120)로 제출될 수 있는 "아크메 캐스트(Acme Cast)"의 후보 쿼리를 나타내는 선택 가능한 그래픽 요소(361)가 또한 도 3a에 도시되어 있다. 그래픽 요소(361)는 후보 쿼리의 텍스트를 포함하고, 또한 그래픽 요소(361)의 선택이 메시지 교환 스레드에 상기 후보 쿼리("아크메 캐스트")에 응답하는 컨텐츠를 포함하게 한다는 것을 사용자에게 나타내기 위해 "별(star)"을 포함한다. 상기 텍스트 "아니오(No)"를 포함하는 선택 가능한 그래픽 요소(371)가 또한 도시된다. 그래픽 요소(371)의 선택은 "아니오"가 (사용자가 하나 이상의 사용자 인터페이스 입력을 통해 스레드에 통합하기 위해 제출할 수 있는) 텍스트 응답 인터페이스 요소(388)에 자동으로 채워지도록 하거나 "아니오"가 메시지 교환 스레드내의 통합 을 위해 자동으로 제출되게 할 것이다. 두 시나리오 중 하나에서, "아니오"는 사용자의 응답으로서 메시지 교환 스레드에 통합되며, "아니오"에 응답하는 컨텐츠는 포함시키지 않는다. 다시 말해, 그래픽 요소(371)의 선택은 사용자가 텍스트 응답인터페이스 요소(388)에서 "아니오"를 타이핑한 것 처럼 및/또는 음성 응답 인터페이스 요소(385)를 선택한 후에 "아니오"를 말한 것처럼 "아니오"의 응답을 생성할 수 있게 한다.
일부 구현예에서, 자동화 어시스턴트(120)는 메시지 교환 스레드의 하나 이상의 이미 전달된 메시지(380A, 382A 및 384A)에 기초하여 그래픽 요소(361)에 의해 표시된 후보 검색 쿼리("아크메 캐스트")를 결정할 수 있다. 예를 들어, 후보 검색 쿼리는 톰으로부터의 메시지(382A) 내의 용어인 "아크메"(영화의 가상 이름)의 존재 및 알렉스로부터의 메시지(384A)내의 용어인 "출연자"의 존재에 기초하여 결정될 수 있다.
일부 구현예에서, 톰의 메시지 교환 클라이언트는 톰에 의한 선택을 위해 그래픽 요소(371) 및/또는 그래픽 요소(361)를 또한 표시할 수 있음을 알아야 한다. 또한, 알렉스의 메시지 교환 클라이언트는 알렉스에 의한 선택을 위해 그래픽 요소(371)를 디스플레이할 수 있다("아니오"는 알렉스가 자신의 메시지(384A)에 문맥적으로 적절하게 응답하지 않았기 때문이므로 그래픽 요소(371)는 알렉스에게 표시되지 않을 수 있다).
도 3b는 사용자가 도 3의 그래픽 요소(361)를 향한 사용자 인터페이스 입력을 제공한 후의 그래픽 사용자 인터페이스를 나타낸다. 예를 들어, 사용자는 그래픽 요소(361)를 "탭"할 수 있다. 도 3b에서, 그래픽 요소(361)의 사용자 선택은 메시지 교환 스레드로에 통합하기 위한 "아크메 캐스트"에 응답하는 컨텐츠를 얻기 위해, 상기 메시지(380B)가 제공되었음을 나타내는 별과 함께 후보 쿼리 "아크메 캐스트"의 텍스트를 포함하는 사용자로부터의 메시지(380B)로서 상기 메시지 교환 스레드에 통합된다. 예를 들어, 컴퓨팅 디바이스(1061)의 메시지 교환 클라이언트는 자동화 어시스턴트(120)로 하여금 자동화 어시스턴트(120)로 지시되는 쿼리로서 "아크메 캐스트"를 처리하게 하는 표시와 함께 "아크메 캐스트"를 제출함으로써 메시지(380B)를 통합할 수 있다. 상기 표시는 사람이 인식할 수 있는 표시 및/또는 사람이 인식할 수 없는 표시일 수 있다. 일부 구현예에서, 톰 및/또는 알렉스의 메시지 교환 클라이언트는 ("you" 대신에 사용자 이름의 표시와 함께) 메시지(380B)를 또한 표시할 수 있음을 알아야 한다.
컨텐츠(390A)는 또한 "자동화 어시스턴트"로부터의 메시지로서 도 3b의 메시지 교환 스레드에 통합된다. 컨텐츠(390A)는 상기 컨텐츠가 메시지(380B)에 응답하고 상기 쿼리("아크메 캐스트")에 응답하는 3개의 "카드" 및 선택 가능한 옵션 ("...")을 포함함을 나타내기 위해 "여기 내가 찾은 것이 있어"라는 텍스트를 포함한다. 상기 카드들은 "아크메 영화"의 출연자(cast member)들 중 3명을 위한 것이고 선택 가능 옵션("...")은 사용자가 추가 출연자에 대한 추가 카드를 볼 수 있게 한다. 각 카드에는 출연자의 이미지, 출연자의 "알려진" 이름 및 "아크메 영화"(이탤릭체로 표시된)의 출연자의 이름이 포함된다. 일부 구현예에서, 톰 및/또는 알렉스의 메시지 교환 클라이언트는 또한 컨텐츠(390A)를 디스플레이할 수 있음을 알아야한다. 이들 구현 중 일부에서, 추가 출연자에 대한 추가 카드를 보기 위해 상기 선택 가능 옵션("...")으로 지시되는 임의의 사용자 중 하나의 사용자 인터페이스 입력은, 추가 카드가 모든 메시지 교환 클라이언트의 그래픽 사용자 인터페이스에 표시되거나 또는 사용자 인터페이스 입력을 제공한 사용자의 클라이언트에만 표시되도록 할 수 있다. 일부 구현예에서, 하나 이상의 카드는 사용자에 의해 선택되어, 해당 카드의 출연자에 대한 추가 컨텐츠가 제공되도록 할 수 있다. 예를 들어, 카드들 중 하나가 선택되면 추가 컨텐츠가 사용자를 위한 메시지 교환 스레드에 및 선택적으로 추가 사용자들을 위한 메시지 교환 스레드에 통합될 수 있다. 또한, 예를 들어, 카드들 중 하나가 선택되면 추가 컨텐츠가, 별개의 웹 브라우저 애플리케이션과 같이, 메시지 교환 클라이언트와 별개인 다른 애플리케이션에서 사용자에게 제공될 수 있다.
선택 가능한 그래픽 요소들(362 및 363)은 또한 도 3b에 도시되어, 자동화 어시스턴트(120)로 제출될 수 있는 "아크메 예고편(Acme Trailer)" 및 "아크메 상영 시간(Acme Showtimes)"의 후보 쿼리를 나타낸다. 그래픽 요소들(362 및 363) 각각은 그의 후보 쿼리를 나타내는 텍스트를 포함하고(후보 쿼리의 텍스트 전체를 포함하지는 않지만) 또한 각각은 해당 선택이 메시지 교환 스레드에 그의 후보 쿼리에 응답하는 컨텐츠를 통합하게 한다는 것을 사용자에게 나타내기 위한 "별"을 포함한다. 그래픽 요소(361)(도 3a)와 마찬가지로, 톰 및/또는 알렉스의 메시지 교환 클라이언트는 그래픽 요소(362 및 363)를 또한 디스플레이할 수 있다. 일부 구현예에서, 자동화 어시스턴트(120)는 후보 쿼리인 "아크메 영화" 및/또는 컨텐츠(390A)와 관련된 이러한 후보 쿼리들에 기초하여 그래픽 요소들(362 및 363)의 후보 쿼리를 결정할 수 있다. 예를 들어, 자동화 어시스턴트(120)는 이러한 후보 쿼리들이 "아크메 상영 시간"의 후속 및/또는 선행 제출 중 가장 빈번하게 다른 사용자들에 의해 제출된 2개의 쿼리임을 나타내는 데이터베이스 항목에 기초하여 이러한 후보 쿼리들을 결정할 수 있다.
도 3c는 알렉스가 자신의 그래픽 사용자 인터페이스에 디스플레이된 그래픽 요소(363)의 인스턴스를 향해 지시한 사용자 인터페이스 입력(예컨대, "탭")을 제공한 이후의 그래픽 사용자 인터페이스를 도시한다. 도 3c에서, 그래픽 요소(363)의 알렉스의 선택은 메시지(384B)가 메시지 교환 스레드에 통합하기 위해 "아크메 캐스트"에 응답하는 컨텐츠를 얻기 위해 제공되었음을 나타내는 별과 함께, 상기 후보 쿼리("아크메 상영 시간")의 텍스트를 포함하는 알렉스로부터의 메시지(384B)로서 메시지 교환 스레드에 통합된다.
컨텐츠(390B)는 또한 "자동화 어시스턴트"로부터의 메시지로서 도 3c의 메시지 교환 스레드에 통합된다. 컨텐츠(390B)는 텍스트 "여기 내가 찾은 것이 있어"를 포함하여, 상기 컨텐츠가 메시지(384B)에 응답한 것이고 두개의 영화관에서 "아크메 영화"에 대한 상영 시간을 나타내는 자연어 출력을 포함하는 것을 나타낼 수 있다. 도 3c에서, 두개의 영화관은 톰, 알렉스 및 사용자에게 위치적으로 인접하며, 컨텐츠(390B)의 자연어 출력은 각각의 영화관에 대한 톰, 알렉스 및 사용자의 거리의 표시를 포함한다. 예를 들어, 자동화 어시스턴트(120)는 메시지 교환 스레드의 사용자 각각에 대한 위치 정보 및/또는 다른 사용자 속성을 갖는 검색을 발행하는 것에 기초하여 컨텐츠를 결정하여, 메시지 교환 스레드의 메시지들로부터 식별 가능하지 않을 수 있는 사용자들의 위치 및/또는 사용자들의 다른 속성에 문맥적으로 또한 관련있는 컨텐츠(390B)를 결정할 수 있다.
선택 가능한 그래픽 요소들(362 및 365)이 또한 도 3c에 도시되어 있어, 자동화 어시스턴트(120)로 제출될 수 있는 "아크메 예고편" 및 "아크메 영상(Acme Pictures)"의 후보 쿼리를 나타낸다. 그래픽 요소들(362 및 365) 각각은 그의 후보 쿼리를 나타내는 텍스트를 포함하고, 각각은 또한 그 선택이 메시지 교환 스레드에 그의 후보 쿼리에 응답하는 컨텐츠의 통합을 발생할 것임을 사용자에게 나타내기 위한 "별"을 포함한다. 일부 구현예에서, 자동화 어시스턴트(120)는 후보 쿼리 "아크메 상영 시간" 및/또는 컨텐츠(390B)와 관련된 이러한 후보 쿼리들에 기초하여 상기 그래픽 요소들(362 및 365)의 후보 쿼리를 결정할 수 있다.
도 3c에서, "영화관 1 @ 7로 하자(Let's do Cinema 1 @ 7)"라는 자연어 입력이 텍스트 응답 인터페이스 요소(388)내에 도시되어 사용자에 의해 공식화될 수 있다. 예를 들어, 사용자는 컨텐츠(390B)가 메시지 교환 스레드에 통합된 이후에 가상 키보드를 이용하여 자연 언어 입력을 제공할 수 있다.
도 3d는 사용자가 "영화관 1 @ 7로 하자"라는 자연어 입력을 메시지 교환 스레드로 제출한 후의 그래픽 사용자 인터페이스를 나타낸다. 도 3d에서, 자연어 입력의 사용자 제출은 상기 메시지가 사용자로부터 왔으며 자동화 어시스턴트로부터의 응답 컨텐츠를 얻기 위한 의도가 아님을 나타내기 위해 별을 포함하지 않는 사용자로부터의 메시지(380C)로서 메시지 교환 스레드에 통합된다. 많은 구현예에서, 톰 및/또는 알렉스의 메시지 교환 클라이언트는 또한 메시지(380C)("you" 대신에 사용자 이름의 표시와 함께)를 디스플레이할 것이다.
자동화 어시스턴트(120)로 제출될 수 있는 "영화관 1의 길 안내(Directions to Cinema 1)"라는 후보 쿼리를 나타내는 선택 가능한 그래픽 요소(366)가 도 3d에 또한 도시되어 있다. 그래픽 요소(366)는 후보 쿼리의 텍스트를 포함하고 또한 그래픽 요소(366)의 선택이 메시지 교환 스레드에 후보 쿼리("영화관 1의 길 안내")에 응답하는 컨턴츠를 통합하게 할 것임을 사용자에게 나타내기 위한 "별"을 포함한다.
일부 구현예에서, 자동화 어시스턴트(120)는 메시지(380C)와 같은 하나 이상의 이미 전달된 메시지 및/또는 컨텐츠(390B)에 기초하여 그래픽 요소(366)에 의해 표현된 상기 후보 검색 쿼리("영화관 1의 길 안내")를 결정할 수 있다.
도 3a 내지 3d에 도시되지 않았지만, 일부 구현예에서, 메시지 교환 스레드의 사용자 및/또는 다른 사용자는 제공된 제안을 선택하지 않고 자동화 어시스턴트(120)에 쿼리를 명시적으로 제출할 수 있다. 예를 들어, 사용자는 텍스트 응답 인터페이스 요소(388)에서 자연어 입력을 공식화할 수 있고, 상기 입력과 조합하여 특정 용어들 및/또는 기호들(예컨대, 접두어로 @automatedassistant)를 포함시켜 해당 입력이 자동화 어시스턴트(120)로 제출되도록 한다(예컨대, 입력에 응답하는 컨텐츠로 응답되는 "별"을 갖는 메시지로 표시하기 위해). 또 다른 예로서, 사용자는 음성 응답 인터페이스 요소(389)를 선택한 후에 구두로 자연어 입력을 공식화할 수 있고 해당 입력이 자동화 어시스턴트(120)로 제출되게 하기 위해 상기 입력과 조합하여 특정 용어를 말할 수 있다. 또 다른 예로서, 별도의 그래픽 인터페이스 요소가 그래픽 사용자 인터페이스에 제공될 수 있으며, 상기 그래픽 사용자 인터페이스는 선택될 때 사용자가 공식화된 자연어 입력이 자동화 어시스턴트(120)로 제출되게 한다.
도 4는 사용자들 사이에서 진행중인 메시지 교환 스레드의 하나 이상의 사용자에게 적어도 하나의 문맥적으로 관련있는 제안을 제공하고, 메시지 교환 스레드에 상기 제안에 의해 표시된 쿼리에 응답하는 컨텐츠를 통합하는 예시적인 방법(400)을 나타내는 흐름도를 도시한다. 편의상, 흐름도의 동작들은 해당 동작을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 자동화 어시스턴트(120)와 같은 다양한 컴퓨터 시스템의 다양한 구성 요소를 포함할 수 있다. 더욱이, 방법(400)의 동작들은 특정 순서로 도시되어 있지만, 이은 제한을 의미하는 것은 아니다. 하나 이상의 동작은 재정렬, 생략 또는 추가될 수 있다.
블록(450)에서, 시스템은 다수의 메시지 교환 클라이언트를 동작시키는 다수의 사용자들 사이에서 진행중인 메시지 교환 스레드를 검사한다.
블록(452)에서, 시스템은 메시지 교환 스레드의 하나 이상의 메시지에 기초하여 하나 이상의 후보 쿼리를 결정한다.
블록(454)에서, 시스템은 후보 쿼리 각각에 대한 스코어를 결정한다.
블록(456)에서, 시스템은 후보 쿼리 각각에 대해, 후보 쿼리의 스코어가 임계값을 만족시키는지 여부를 결정한다. 시스템이 블록(456)에서 후보 쿼리들 중 어느 것도 임계값을 만족시키는 스코어를 갖지 않는다고 결정하면, 시스템은 블록(458)으로 진행하여 메시지 교환 스레드내의 추가 메시지를 기다린다. 메시지 교환 스레드 내의 다른 메시지에 응답하여, 시스템은 다시 블록(450)으로 진행할 수 있다.
시스템이 블록(456)에서, 후보 쿼리들 중 적어도 하나가 임계값을 만족시키는 스코어를 갖는 것으로 결정하면, 시스템은 블록(460)으로 진행한다.
블록(460)에서, 시스템은 메시지 교환 스레드의 적어도 하나의 사용자에게 프리젠테이션하기 위해, 스코어가 임계값을 만족시키는 하나 이상의 후보 쿼리에 대한 하나 이상의 제안을 제공한다.
블록(462)에서, 시스템은 제공된 제안들 중 하나로 지시되는 사용자 인터페이스 입력이 발생했음을 식별한다.
블록(464)에서, 시스템은 사용자 인터페이스 입력이 지시된 제안의 후보 쿼리에 응답하는 컨텐츠를 결정한다.
블록(466)에서, 시스템은 컨텐츠를 메시지 교환 스레드에 통합하고 블록(458)으로 진행한다. 블록(458)에서, 시스템은 메시지 교환 스레드에서 추가 메시지를 기다리고, 메시지 교환 스레드 내의 다른 메시지에 응답하여, 시스템은 다시 블록(450)으로 진행할 수 있다.
도 5는 본 명세서에 기술된 기술들의 하나 이상의 양태들을 수행하기 위해 선택적으로 이용될 수 있는 예시적인 컴퓨팅 디바이스(510)의 블록도이다.일부 구현예에서, 클라이언트 컴퓨팅 디바이스(1601-N), 자동화 어시스턴트(120) 및/또는 다른 구성 요소(들) 중 하나 이상은 예시적인 컴퓨팅 디바이스(510)의 하나 이상의 구성 요소를 포함할 수 있다.
컴퓨팅 디바이스(510)는 전형적으로 버스 서브 시스템(512)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(514)를 포함한다. 이들 주변 디바이스는 예를 들어 메모리 서브 시스템(525) 및 파일 저장 서브 시스템(526), 사용자 인터페이스 출력 디바이스들(520), 사용자 인터페이스 입력 디바이스들(522) 및 네트워크인터페이스 서브 시스템(516)을 포함하는 저장 서브 시스템(524)을 포함할 수 있다. 입력 및 출력 디바이스들은 컴퓨팅 디바이스(510)와의 사용자 상호 작용을 허용한다. 네트워크인터페이스 서브 시스템(516)은 외부 네트워크들로인터페이스를 제공하며, 다른 컴퓨팅 디바이스들의 대응인터페이스 디바이스에 연결된다.
사용자 인터페이스 입력 디바이스들(522)은 키보드, 포인팅 디바이스(예컨대, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿), 스캐너, 터치 스크린(디스플레이에 통합된), 입력 디바이스(음성인식 시스템, 마이크로폰, 및/또는 다른 타입의 입력 디바이스)를 포함할 수 있다.일반적으로, "입력 디바이스"라는 용어의 사용은 정보를 컴퓨팅 디바이스(510) 또는 통신 네트워크 상에 입력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스들(520)은 디스플레이 서브 시스템, 프린터, 팩스 머신, 또는 오디오 출력 디바이스들과 같은 비 시각적 디스플레이들을 포함할 수 있다. 디스플레이 서브 시스템은 음극선 관(CRT), 액정 디스플레이(LCD)와 같은 평판 디바이스, 프로젝션 디바이스, 또는 가시적 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 디스플레이 서브 시스템은 또한 오디오 출력 디바이스를 통한 비-시각적 디스플레이를 제공할 수 있다.일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(510)로부터 사용자 또는 다른 기계 또는 컴퓨팅 디바이스로 정보를 출력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
저장 서브 시스템(524)은 본 명세서에 설명된일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브 시스템(524)은 도 5의 방법의 선택된 양상들을 수행하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈은일반적으로 프로세서(514) 단독으로 또는 다른 프로세서와 조합하여 실행된다. 저장 서브 시스템(524)에서 사용되는 메모리(525)는 프로그램 실행 중 명령 및 데이터의 저장을 위한 주 랜덤 액세스 메모리(RAM)(530) 및 고정 명령이 저장되는 판독 전용 메모리(ROM)(532)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브 시스템(526)은 프로그램 및 데이터 파일을 위한 영구 저장 장치를 제공할 수 있으며, 하드 디스크 드라이브, 관련 이동식 매체와 함께 플로피 디스크 드라이브, CD-ROM 드라이브, 광 드라이브 또는 이동식 매체 카트리지를 포함할 수 있다. 특정 구현예의 기능을 구현하는 모듈은 스토리지 서브 시스템(524)의 파일 저장 서브 시스템(526) 또는 프로세서(들)(514)에 의해 액세스 가능한 다른 머신에 의해 저장될 수 있다.
버스 서브 시스템(512)은 컴퓨팅 디바이스(510)의 다양한 구성 요소들 및 서브 시스템들이 의도된 바와 같이 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브 시스템(512)은 단일 버스로서 개략적으로 도시되었지만, 버스 서브 시스템의 다른 구현예는 다수의 버스를 사용할 수 있다.
컴퓨팅 디바이스(510)는 워크 스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로인해, 도 8에 도시된 컴퓨팅 디바이스(510)의 설명은 단지일부 구현예를 설명하기 위한 특정 예로서만 의도된다. 컴퓨팅 디바이스(510)의 많은 다른 구성이 도 1에 도시된 컴퓨팅 디바이스보다 더 많거나적은 구성 요소를 가질 수 있다.
본 명세서에 설명된 시스템이 사용자에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 경우, 사용자는 프로그램 또는 기능이 사용자 정보(예컨대, 사용자의 소셜 네트워크, 사회적 행동 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 지리적 위치에 대한 정보)를 수집하는 지 여부를 제어할 수 있는 기회 또는 사용자에게 보다 관련이 있는 컨텐츠 서버로부터 컨텐츠를 수신할지 여부 및/또는 컨텐츠를 수신하는 방법을 제어할 기회를 제공받을 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거될 수 있도록 저장되거나 사용되기 전에 하나 이상의 방법으로 취급될 수 있다. 예를 들어, 사용자의 신원은 처리되어 사용자에 대한 개인 식별 정보가 결정될 수 없거나 사용자의 지리적 위치가 지리적 위치 정보가 획득되는 곳(예컨대, 도시, ZIP 코드 또는 주 수준)으로일반화될 수 있기 때문에 사용자의 특정 지리적 위치를 결정할 수 없다. 따라서 사용자의 특정 지리적 위치가 결정될 수 없다. 따라서, 사용자는 사용자에 관한 정보 수집 방법 및/또는 사용 방법에 대한 제어권을 가질 수 있다.
몇몇 구현예가 본 명세서에서 설명되고 도시되었지만, 기능을 수행하고 및/또는 결과 및/또는 본 발명에 기술된 하나 이상의 이점을 얻기 위한 다양한 다른 수단 및/또는 구조가 이용될 수 있으며, 그러한 변형 및 및/또는 수정은 본 명세서에서 설명된 구현의 범위 내에 있는 것으로 간주된다. 보다일반적으로는, 본 명세서에 기술된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것이며, 실제 파라미터, 치수, 재료 및/또는 구성은 특정 용도 또는 그 교시가 사용되는 용도에 따라 좌우될 것이다. 당업자는일상적인 실험만을 사용하여 본 명세서에서 설명된 특정 구현예에 대한 많은 균등물을인식할 수 있거나 또는 확인할 수 있을 것이다. 따라서, 전술한 구현예는 단지 예일 뿐이며, 첨부된 청구 범위와 그 등가물의 범위 내에서 구현은 구체적으로 기술되고 청구된 것과 다르게 실시될 수 있음을 이해해야한다. 본 발명의 구현은 본 명세서에 기술된 각각의 개별적인 특징, 시스템, 항목, 재료, 키트 및/또는 방법에 관한 것이다. 또한 이들 2개 이상의 특징, 시스템, 항목, 재료, 키트 및/또는 방법의 임의의 조합은 그러한 특징, 시스템, 항목, 재료, 키트 및/또는 방법이 상호 불일치하지 않는 경우 본 발명의 범위내에 포함된다.

Claims (23)

  1. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    진행중인(ongoing) 메시지 교환 스레드의 하나 이상의 이미(already) 전달된 메시지에 기초하여 적어도 하나의 후보 쿼리를 결정하는 단계와,
    상기 진행중인 메시지 교환 스레드는 제1 사용자의 제1 메시지 교환 클라이언트 및 제2 사용자의 제2 메시지 교환 클라이언트를 통해 적어도 제1 사용자와 제2 사용자 사이에 있고;
    상기 제1 메시지 교환 클라이언트를 통해 적어도 제1 사용자에게 디스플레이하기 위해, 상기 후보 쿼리의 표시를 제공하는 선택 가능한 그래픽 요소를 제공하는 단계와;
    상기 선택 가능한 그래픽 요소로 지시되는(directed) 제1 사용자의 사용자 인터페이스 입력에 응답하여:
    상기 후보 쿼리를 검색 엔진으로 제출하는 단계와;
    상기 검색 엔진으로 상기 후보 쿼리를 제출하는 것에 응답하여 하나 이상의 검색 결과를 수신하는 단계와;
    상기 검색 결과들 중 적어도 하나에 기초하여 상기 진행중인 메시지 교환 스레드에 통합할 컨텐츠를 결정하는 단계를 포함하고; 그리고
    상기 컨텐츠를 상기 진행중인 메시지 교환 스레드에 통합하는 단계를 포함하여, 상기 컨텐츠가 상기 제1 메시지 교환 클라이언트를 통해 제1 사용자에게 디스플레이되게 하고 상기 제2 메시지 교환 클라이언트를 통해 제2 사용자에게 디스플레이되게 하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 컨텐츠를 진행중인 메시지 교환 스레드에 통합하는 단계는,
    상기 메시지 교환 클라이언트들 중 적어도 하나가 상기 컨텐츠를 상기 메시지 교환 클라이언트들 중 적어도 하나의 그래픽 사용자 인터페이스에 디스플레이되는 상기 진행중인 메시지 교환 스레드의 사본에 삽입하도록 요청하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    하나 이상의 텍스트 및 이미지를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 후보 쿼리를 결정하는 단계는,
    상기 후보 쿼리의 하나 이상의 쿼리 용어와 진행중인 메시지 교환 스레드의 이미 전달된 메시지들의 하나 이상의 메시지 용어 사이의 일치성(conformance)에 기초하여 쿼리들의 말뭉치(corpus)로부터 후보 쿼리를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 후보 쿼리를 결정하는 단계는,
    상기 진행중인 메시지 교환 스레드의 이미 전달된 메시지들에서 참조된 적어도 하나의 엔티티를 결정하는 단계; 및
    상기 적어도 하나의 엔티티에 기초하여 후보 쿼리를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 적어도 하나의 엔티티에 기초하여 후보 쿼리를 결정하는 단계는,
    상기 적어도 하나의 엔티티의 별칭에 기초하여 후보 쿼리에 대한 하나 이상의 쿼리 용어를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 후보 쿼리를 결정하는 단계 및 상기 선택 가능한 그래픽 요소를 제공하는 단계는 상기 메시지 교환 스레드에 포함시키기 위해 사용자에 의한 임의의 추가 자연어 입력의 공식화(formulation)와 독립적으로 발생하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 진행중인 메시지 교환 스레드의 이미 전달된 메시지들 중 적어도 하나의 하나 이상의 용어에 기초하여 후보 쿼리에 대한 스코어를 결정하는 단계를 더 포함하고,
    상기 선택 가능한 그래픽 요소를 제공하는 단계는 임계값을 만족시키는 스코어에 기초하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 하나 이상의 용어들에 기초하여 스코어를 결정하는 단계는,
    명명된 엔티티가 상기 용어들에 포함되는지 여부에 기초하여 상기 스코어를 결정하는 단계; 및
    복수의 용어가 적어도 하나의 사전 정의된 검색 쿼리 패턴에 일치되는지 여부에 기초하여 상기 스코어를 결정하는 단계 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 후보 쿼리의 제출량에 기초하는 후보 쿼리에 대한 인기 척도; 및
    상기 후보 쿼리에 응답하는 상기 컨텐츠에 대한 품질 척도 중 적어도 하나에 기초하여 후보 쿼리에 대한 스코어를 결정하는 단계를 더 포함하고,
    상기 선택 가능한 그래픽 요소를 제공하는 단계는 임계값을 만족시키는 스코어에 기초하는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    상기 후보 쿼리를 검색 엔진으로 제출하는 단계는,
    상기 선택 가능한 그래픽 요소로 지시되는 사용자 인터페이스 입력에 대한 응답인 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    상기 컨텐츠를 진행중인 메시지 교환 스레드에 통합하는 단계는,
    상기 컨텐츠가 자동화 어시스턴트에 의해 생성된다는 그래픽 표시를 갖는 상기 진행중인 메시지 교환 스레드에 상기 컨텐츠를 통합하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제1항에 있어서,
    상기 제1 메시지 교환 클라이언트를 통해 상기 제1 사용자에게 디스플레이하기 위해, 하나 이상의 용어를 식별하고, 선택될 때 상기 하나 이상의 용어로 하여금 상기 하나 이상의 용어가 제1 사용자로부터 유래되었다는 표시를 갖는 메시지 교환 스레드에 통합되게 하고, 상기 하나 이상의 용어로 하여금 상기 하나 이상의 용어에 응답하는 임의의 컨텐츠에 통합되지 않고 상기 메시지 교환 스레드에 통합되게 하는 추가 선택 가능한 그래픽 요소를 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  14. 제1항에 있어서,
    상기 그래픽 요소를 제공하는 단계는,
    상기 제2 메시지 교환 클라이언트를 통해 제2 사용자에게 디스플레이하기 위한 그래픽 요소를 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  15. 제1항에 있어서,
    상기 컨텐츠는 제1 엔티티에 포커싱된 선택 가능한 제1 컨텐츠 아이템 및 제2 엔티티에 포커싱된 선택 가능한 제2 컨텐츠 아이템을 포함하고;
    상기 제1 컨텐츠 아이템에 지시된 사용자 인터페이스 입력은 상기 제1 엔티티에 포커싱된 추가 제1 엔티티 컨텐츠가 상기 메시지 교환 스레드에 통합되게 하고; 그리고
    상기 제2 컨텐츠 아이템에 지시된 사용자 인터페이스 입력은 상기 제2 엔티티에 포커싱된 추가 제2 엔티티 컨텐츠가 상기 메시지 교환 스레드에 통합되게 하는 것을 특징으로 하는 방법.
  16. 제1항에 있어서,
    상기 컨텐츠는,
    제1 엔티티에 포커싱된 제1 이미지 또는 텍스트를 포함하고, 선택될 때, 상기 제1 엔티티에 특정한 하나 이상의 추가 컴퓨팅 동작(actions)이 수행되게 하는 적어도 하나의 선택 가능한 딥 링크(deep link)를 더 포함하는 것을 특징으로 하는 방법.
  17. 제1항에 있어서,
    상기 적어도 하나의 후보 쿼리 및 상기 컨텐츠에 기초하여 추가 관련 쿼리를 결정하는 단계;
    상기 제1 사용자의 사용자 인터페이스 입력 이후에, 상기 제1 메시지 교환 클라이언트를 통해 적어도 제1 사용자에게 디스플레이하기 위해, 상기 추가 관련 쿼리의 표시를 제공하는 추가의 선택 가능한 그래픽 요소를 제공하는 단계,
    상기 추가의 선택 가능한 그래픽 요소는 상기 그래픽 요소의 동시 디스플레이 없이 디스플레이하기 위해 제공되고;
    상기 추가의 선택 가능한 그래픽 요소로 지시되는 상기 제1 사용자의 추가 사용자 인터페이스 입력에 응답하여:
    상기 추가 관련 쿼리에 응답하는 추가 컨텐츠를 상기 진행중인 메시지 교환 스레드에 통합하는 단계를 더 포함하고,
    상기 추가 컨텐츠를 상기 진행중인 메시지 교환 스레드에 통합하는 단계는 상기 추가 컨텐츠가 상기 제1 메시지 교환 클라이언트를 통해 제1 사용자에게 디스플레이되고 상기 제2 메시지 교환 클라이언트를 통해 제2 사용자에게 디스플레이되게 하는 것을 특징으로 하는 방법.
  18. 메모리와 하나 이상의 프로세서를 포함하는 시스템으로서, 상기 메모리는 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
    진행중인 메시지 교환 스레드의 하나 이상의 이미 전달된 메시지에 기초하여 적어도 하나의 후보 쿼리를 결정하고,
    상기 진행중인 메시지 교환 스레드는 제1 사용자의 제1 메시지 교환 클라이언트 및 제2 사용자의 제2 메시지 교환 클라이언트를 통해 적어도 제1 사용자와 제2 사용자 사이에 있고;
    상기 제1 메시지 교환 클라이언트를 통해 적어도 제1 사용자에게 디스플레이하기 위해, 상기 후보 쿼리의 표시를 제공하는 선택 가능한 그래픽 요소를 제공하고;
    상기 선택 가능한 그래픽 요소로 지시되는(directed) 제1 사용자의 사용자 인터페이스 입력에 응답하여:
    상기 후보 쿼리를 검색 엔진으로 제출하고;
    상기 검색 엔진으로 상기 후보 쿼리를 제출하는 것에 응답하여 하나 이상의 검색 결과를 수신하고;
    상기 검색 결과들 중 적어도 하나에 기초하여 상기 진행중인 메시지 교환 스레드에 통합할 컨텐츠를 결정하고; 그리고
    상기 컨텐츠를 상기 진행중인 메시지 교환 스레드에 통합하게 하는 명령들을 저장하고,
    상기 컨텐츠를 상기 진행중인 메시지 교환 스레드에 통합할 때 상기 하나 이상의 프로세서는 상기 컨텐츠가 상기 제1 메시지 교환 클라이언트를 통해 제1 사용자에게 디스플레이되게 하고 상기 제2 메시지 교환 클라이언트를 통해 제2 사용자에게 디스플레이되게 하는 것을 특징으로 하는 시스템.
  19. 하나 이상의 프로세서에 의한 명령들의 실행에 응답하여, 상기 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 명령들을 포함하는 적어도 하나의 비-일시적 컴퓨터 판독 가능 매체로서, 상기 동작들은:
    진행중인(ongoing) 메시지 교환 스레드의 하나 이상의 이미 전달된 메시지에 기초하여 적어도 하나의 후보 쿼리를 결정하는 동작과,
    상기 진행중인 메시지 교환 스레드는 제1 사용자의 제1 메시지 교환 클라이언트 및 제2 사용자의 제2 메시지 교환 클라이언트를 통해 적어도 제1 사용자와 제2 사용자 사이에 있고;
    상기 제1 메시지 교환 클라이언트를 통해 적어도 제1 사용자에게 디스플레이하기 위해, 상기 후보 쿼리의 표시를 제공하는 선택 가능한 그래픽 요소를 제공하는 동작과;
    상기 선택 가능한 그래픽 요소로 지시되는(directed) 제1 사용자의 사용자 인터페이스 입력에 응답하여:
    상기 후보 쿼리를 검색 엔진으로 제출하는 동작과;
    상기 검색 엔진으로 상기 후보 쿼리를 제출하는 것에 응답하여 하나 이상의 검색 결과를 수신하는 동작과;
    상기 검색 결과들 중 적어도 하나에 기초하여 상기 진행중인 메시지 교환 스레드에 통합할 컨텐츠를 결정하는 동작과; 그리고
    상기 후보 쿼리에 응답하는 컨텐츠를 상기 진행중인 메시지 교환 스레드에 통합하는 동작을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  20. 제19항에 있어서,
    하나 이상의 프로세서에 의한 명령들의 실행에 응답하여, 상기 하나 이상의 프로세서로 하여금 제2항 내지 제17항 중 임의의 어느 한 항의 방법을 수행하게 하는 명령들을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  21. 제1항 내지 제17항 중 임의의 어느 한 항의 방법을 수행하도록 구성된 것을 특징으로 하는 장치.
  22. 컴퓨팅 장치에 의해 실행될 때 제1항 내지 제17항 중 임의의 어느 한 항의 방법을 수행하게 하는 기계 판독 가능 명령들을 포함하는 비-일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램.
  23. 삭제
KR1020187035967A 2016-05-17 2016-12-22 다중 사용자 메시지 교환 스레드에서 자동화 어시스턴트와의 상호 작용을 위한 제안 제공 KR102005531B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/157,115 2016-05-17
US15/157,115 US11227017B2 (en) 2016-05-17 2016-05-17 Providing suggestions for interaction with an automated assistant in a multi-user message exchange thread
PCT/US2016/068354 WO2017200583A1 (en) 2016-05-17 2016-12-22 Providing suggestions for interaction with an automated assistant in a multi-user message exchange thread

Publications (2)

Publication Number Publication Date
KR20190003773A KR20190003773A (ko) 2019-01-09
KR102005531B1 true KR102005531B1 (ko) 2019-10-01

Family

ID=57838496

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187035967A KR102005531B1 (ko) 2016-05-17 2016-12-22 다중 사용자 메시지 교환 스레드에서 자동화 어시스턴트와의 상호 작용을 위한 제안 제공

Country Status (8)

Country Link
US (3) US11227017B2 (ko)
EP (1) EP3369011B1 (ko)
JP (1) JP6956113B2 (ko)
KR (1) KR102005531B1 (ko)
CN (2) CN112905773A (ko)
DE (2) DE202016008241U1 (ko)
GB (1) GB2550639A (ko)
WO (1) WO2017200583A1 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8106856B2 (en) 2006-09-06 2012-01-31 Apple Inc. Portable electronic device for photo management
US8698762B2 (en) 2010-01-06 2014-04-15 Apple Inc. Device, method, and graphical user interface for navigating and displaying content in context
WO2014143776A2 (en) 2013-03-15 2014-09-18 Bodhi Technology Ventures Llc Providing remote interactions with host device using a wireless device
US10313506B2 (en) 2014-05-30 2019-06-04 Apple Inc. Wellness aggregator
AU2016215440B2 (en) 2015-02-02 2019-03-14 Apple Inc. Device, method, and graphical user interface for establishing a relationship and connection between two devices
WO2016144385A1 (en) 2015-03-08 2016-09-15 Apple Inc. Sharing user-configurable graphical constructs
US10275116B2 (en) 2015-06-07 2019-04-30 Apple Inc. Browser with docked tabs
US10003938B2 (en) 2015-08-14 2018-06-19 Apple Inc. Easy location sharing
US10445425B2 (en) 2015-09-15 2019-10-15 Apple Inc. Emoji and canned responses
AU2017264388B2 (en) 2016-05-13 2022-04-21 Equals 3 LLC Searching structured and unstructured data sets
US11227017B2 (en) 2016-05-17 2022-01-18 Google Llc Providing suggestions for interaction with an automated assistant in a multi-user message exchange thread
US10904168B2 (en) 2016-06-03 2021-01-26 Spotify Ab System and method for providing digital media content with a conversational messaging environment
DK201770423A1 (en) 2016-06-11 2018-01-15 Apple Inc Activity and workout updates
DK201670608A1 (en) 2016-06-12 2018-01-02 Apple Inc User interfaces for retrieving contextually relevant media content
AU2017100670C4 (en) 2016-06-12 2019-11-21 Apple Inc. User interfaces for retrieving contextually relevant media content
US10873786B2 (en) 2016-06-12 2020-12-22 Apple Inc. Recording and broadcasting application visual output
US11334565B1 (en) 2016-10-28 2022-05-17 Intuit, Inc. System to convert natural-language financial questions into database queries
US11630688B2 (en) * 2017-02-02 2023-04-18 Samsung Electronics Co., Ltd. Method and apparatus for managing content across applications
EP3566155A4 (en) * 2017-03-06 2020-10-14 Google LLC SHARED EXPERIENCE
JP6929670B2 (ja) * 2017-03-15 2021-09-01 Line株式会社 プログラム、情報処理方法、端末
CN109873745B (zh) * 2017-12-01 2021-08-24 腾讯科技(深圳)有限公司 通信控制方法、装置及存储介质
CN107992585B (zh) * 2017-12-08 2020-09-18 北京百度网讯科技有限公司 通用标签挖掘方法、装置、服务器及介质
CN110678861B (zh) * 2017-12-22 2023-12-08 谷歌有限责任公司 图像选择建议
US10970329B1 (en) * 2018-03-30 2021-04-06 Snap Inc. Associating a graphical element to media content item collections
EP4361777A3 (en) * 2018-05-04 2024-07-31 Google LLC Generating and/or adapting automated assistant content according to a distance between user(s) and an automated assistant interface
US11567980B2 (en) * 2018-05-07 2023-01-31 Google Llc Determining responsive content for a compound query based on a set of generated sub-queries
DK180171B1 (en) 2018-05-07 2020-07-14 Apple Inc USER INTERFACES FOR SHARING CONTEXTUALLY RELEVANT MEDIA CONTENT
JP7012883B2 (ja) * 2018-05-07 2022-01-28 グーグル エルエルシー 自動化されたアシスタントルーチン内に含めるための自動化されたアシスタントアクションを推奨すること
US10198877B1 (en) 2018-05-23 2019-02-05 Google Llc Providing a communications channel between instances of automated assistants
WO2020040753A1 (en) * 2018-08-21 2020-02-27 Google Llc Automated assistant invocation of second interactive module using supplemental data provided by first interactive module
US10606851B1 (en) * 2018-09-10 2020-03-31 Palantir Technologies Inc. Intelligent compute request scoring and routing
US11120007B2 (en) 2018-11-26 2021-09-14 Palantir Technologies Inc. Module expiration management
US10409641B1 (en) 2018-11-26 2019-09-10 Palantir Technologies Inc. Module assignment management
CN113795825B (zh) * 2019-05-06 2024-08-27 谷歌有限责任公司 根据动态用户队列和/或多模式存在检测为自动化助理指配优先级
EP3942399B1 (en) * 2019-05-06 2024-04-10 Google LLC Automated assistant for generating, in response to a request from a user, application input content using application data from other sources
CN113544770A (zh) * 2019-05-06 2021-10-22 谷歌有限责任公司 在访问非助理应用时通过自动助理初始化非助理后台动作
DK201970535A1 (en) 2019-05-06 2020-12-21 Apple Inc Media browsing user interface with intelligently selected representative media items
KR20240129085A (ko) * 2019-05-09 2024-08-27 구글 엘엘씨 제한된 아키텍처를 사용하는 서드파티 차량 컴퓨팅 디바이스에 대한 자동화된 어시스턴트 제안
US11194467B2 (en) 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
US11074408B2 (en) 2019-06-01 2021-07-27 Apple Inc. Mail application features
WO2021006906A1 (en) * 2019-07-11 2021-01-14 Google Llc System and method for providing an artificial intelligence control surface for a user of a computing device
US11301529B2 (en) * 2019-08-07 2022-04-12 Modeone Technologies Inc. System and method for analyzing, organizing, and presenting data stored on a mobile communication device
CN112445852A (zh) * 2019-09-03 2021-03-05 顺丰科技有限公司 跨系统多线程数据交互方法及系统
US11741308B2 (en) * 2020-05-14 2023-08-29 Oracle International Corporation Method and system for constructing data queries from conversational input
CN112260935B (zh) * 2020-10-19 2022-04-15 维沃移动通信有限公司 消息处理方法、装置、电子设备及可读存储介质
EP4323992A1 (en) 2021-05-15 2024-02-21 Apple Inc. User interfaces for group workouts
JP7421762B1 (ja) 2022-09-27 2024-01-25 グリー株式会社 情報処理システム、制御方法、及びサーバ装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144157A1 (en) 2003-12-29 2005-06-30 Moody Paul B. System and method for searching and retrieving related messages
US20130297317A1 (en) 2012-04-16 2013-11-07 Htc Corporation Method for offering suggestion during conversation, electronic device using the same, and non-transitory storage medium

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004227313A (ja) 2003-01-23 2004-08-12 Namco Ltd 端末用文字会話情報、情報記憶媒体及び文字会話用端末
US7451188B2 (en) 2005-01-07 2008-11-11 At&T Corp System and method for text translations and annotation in an instant messaging session
US7590699B2 (en) * 2005-06-23 2009-09-15 Microsoft Corporation Instant messaging with built-in search
US20080201434A1 (en) 2007-02-16 2008-08-21 Microsoft Corporation Context-Sensitive Searches and Functionality for Instant Messaging Applications
US8312380B2 (en) 2008-04-04 2012-11-13 Yahoo! Inc. Local map chat
US8650210B1 (en) * 2010-02-09 2014-02-11 Google Inc. Identifying non-search actions based on a search query
US20120284093A1 (en) 2011-05-06 2012-11-08 Michael Shepherd Evans System and Method For Including Advertisements In Electronic Communications
KR101267006B1 (ko) 2011-12-21 2013-05-30 (주)카카오 인스턴트 메시징 서비스의 채팅창에서 인스턴트 메시지와 온라인 문서를 링크하는 방법 및 인스턴트 메시지와 온라인 문서를 링크하는 이동 단말
KR102014778B1 (ko) 2012-12-14 2019-08-27 엘지전자 주식회사 텍스트 메시징 서비스를 제공하는 디지털 디바이스 및 그 제어 방법
US9374327B2 (en) 2013-01-08 2016-06-21 Vmware, Inc. Intelligent chat system
US9529856B2 (en) * 2013-06-03 2016-12-27 Google Inc. Query suggestion templates
JP5814980B2 (ja) * 2013-06-19 2015-11-17 ヤフー株式会社 レコメンド装置、レコメンド方法及びレコメンドプログラム
CN104794122B (zh) 2014-01-20 2020-04-17 腾讯科技(北京)有限公司 一种位置信息推荐方法、装置和系统
WO2015183699A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Predictive messaging method
WO2016018039A1 (en) * 2014-07-31 2016-02-04 Samsung Electronics Co., Ltd. Apparatus and method for providing information
US9965559B2 (en) 2014-08-21 2018-05-08 Google Llc Providing automatic actions for mobile onscreen content
JP2016051186A (ja) 2014-08-28 2016-04-11 シャープ株式会社 情報提示装置、その制御方法、プログラム、情報提示システム、ならびに、サーバ装置
US9799049B2 (en) * 2014-12-15 2017-10-24 Nuance Communications, Inc. Enhancing a message by providing supplemental content in the message
US10158593B2 (en) * 2016-04-08 2018-12-18 Microsoft Technology Licensing, Llc Proactive intelligent personal assistant
US11227017B2 (en) 2016-05-17 2022-01-18 Google Llc Providing suggestions for interaction with an automated assistant in a multi-user message exchange thread
US11153250B2 (en) * 2018-03-21 2021-10-19 International Business Machines Corporation Controlling communication of notifications to a user

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144157A1 (en) 2003-12-29 2005-06-30 Moody Paul B. System and method for searching and retrieving related messages
US20130297317A1 (en) 2012-04-16 2013-11-07 Htc Corporation Method for offering suggestion during conversation, electronic device using the same, and non-transitory storage medium

Also Published As

Publication number Publication date
EP3369011A1 (en) 2018-09-05
US20170337209A1 (en) 2017-11-23
EP3369011B1 (en) 2019-04-17
CN107391523A (zh) 2017-11-24
US20240256611A1 (en) 2024-08-01
US11227017B2 (en) 2022-01-18
GB201621668D0 (en) 2017-02-01
US20220092120A1 (en) 2022-03-24
WO2017200583A1 (en) 2017-11-23
CN112905773A (zh) 2021-06-04
CN107391523B (zh) 2021-03-09
DE202016008241U1 (de) 2017-05-24
JP6956113B2 (ja) 2021-10-27
KR20190003773A (ko) 2019-01-09
GB2550639A (en) 2017-11-29
US11960543B2 (en) 2024-04-16
JP2019522266A (ja) 2019-08-08
DE102016125783A1 (de) 2017-11-23

Similar Documents

Publication Publication Date Title
KR102005531B1 (ko) 다중 사용자 메시지 교환 스레드에서 자동화 어시스턴트와의 상호 작용을 위한 제안 제공
US11494427B2 (en) Generating a personal database entry for a user based on natural language user interface input of the user and generating output based on the entry in response to further natural language user interface input of the user
US10826856B2 (en) Automated generation of prompts and analyses of user responses to the prompts to determine an entity for an action and perform one or more computing actions related to the action and the entity
US11238242B2 (en) Generating output for presentation in response to user interface input, where the input and/or the output include chatspeak
CN110582765A (zh) 未索求内容到人类与计算机对话中的前摄并入
JP7143481B2 (ja) 会話アシスタントコンテキストを含む遡及的検索結果の自律的提供
JP2019537802A (ja) 事前の自動化ダイアログセッションの選択された内容に基づく、自動化ダイアログセッション中でのプロンプトの提供
KR102226243B1 (ko) 메시지 교환 스레드를 사용한 효율적인 검색 촉진

Legal Events

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