KR102353285B1 - 대화형 어시스턴트 컨텍스트 포함하여 사후 검색 결과를 자율적으로 제공 - Google Patents
대화형 어시스턴트 컨텍스트 포함하여 사후 검색 결과를 자율적으로 제공 Download PDFInfo
- Publication number
- KR102353285B1 KR102353285B1 KR1020197017380A KR20197017380A KR102353285B1 KR 102353285 B1 KR102353285 B1 KR 102353285B1 KR 1020197017380 A KR1020197017380 A KR 1020197017380A KR 20197017380 A KR20197017380 A KR 20197017380A KR 102353285 B1 KR102353285 B1 KR 102353285B1
- Authority
- KR
- South Korea
- Prior art keywords
- query
- user
- resource
- criteria
- response
- Prior art date
Links
- 230000002452 interceptive effect Effects 0.000 title description 2
- 230000004044 response Effects 0.000 claims abstract description 100
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000012544 monitoring process Methods 0.000 claims description 16
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical compound [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 claims 1
- 229910052698 phosphorus Inorganic materials 0.000 claims 1
- 239000011574 phosphorus Substances 0.000 claims 1
- 238000012545 processing Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 10
- 230000000007 visual effect Effects 0.000 description 10
- 230000015654 memory Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 241000282472 Canis lupus familiaris Species 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000013549 information retrieval technique Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
- G06F16/432—Query formulation
- G06F16/433—Query formulation using audio data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
- G06F16/435—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90332—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S715/00—Data processing: presentation processing of document, operator interface processing, and screen saver display processing
- Y10S715/978—Audio interaction as part of an operator interface
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Acoustics & Sound (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
방법, 장치 및 컴퓨터 판독 가능 매체는 제1 시간에 사용자의 질의에 응답하는 어떠한 자원도 하나 이상의 기준 (예를 들어, 하나 이상의 품질 기준)을 만족시키지 못함을 결정하고, 그러한 결정에 대한 응답으로, 추후에 질의에 응답하고 그리고 상기 기준을 만족시키는 소정의 리소스에 기초한 콘텐츠를 추후에 사용자에게 프레젠테이션하기 위해 제공하는 것에 관한 것이다. 추후에 질의에 응답하는 소정의 리소스는 제1 시간에 질의에 응답하는 임의의 리소스에 추가되는 리소스일 수도 있거나, 제1 시간에 질의에 응답한 리소스의 리파인드 버전일 수도 있다.
Description
본 명세서는 대화형 어시스턴트 컨텍스트 포함하여 사후 검색 결과를 자율적으로 제공하는 것에 관한 것이다.
검색 엔진은 검색 엔진에 제출된 질의에 대한 응답으로 다양한 리소스에 대한 정보를 제공한다. 예를 들어, 사용자의 질의에 응답하여, 검색 엔진은 질의에 응답하는 리소스를 식별하고, 식별된 리소스의 양태(aspect) 및/또는 링크를 포함하는 검색 결과를 제공할 수 있다. 그러나 일부 질의에 대한 응답으로, 검색 엔진은 검색 결과를 제공할 수 없거나 충분한 품질의 검색 결과를 하나 이상 제공하지 못할 수 있다. 이는 사용자가 아직 이용 가능하지 않은 질의(따라서 검색 엔진에 접근할 수 없음)를 통해 찾고 있는 정보 및/또는 검색 엔진(또는 관련 컴포넌트)이 정보를 적절하게 인덱싱하거나 저장하지 않는 등 다양한 상황에 기인할 수 있다.
예를 들어, 가상의 회사(Acme)가 제작한 가상 제품("위젯")의 출시일을 찾는 "Acme의 위젯 출시일은?(what is the release date for Acme’s widget?”)"에 대한 사용자 쿼리를 가정한다. 상기 출시일이 웹 페이지 및/또는 기타 인터넷 리소스에 공개적으로 제공되는 경우, 검색 엔진은 고품질의 하나 이상의 검색 결과를 제공할 수 있고, 검색된 정보(즉, 출시일)를 사용자에게 제공할 수 있다. 예를 들어, 상기 출시일은 검색 엔진에 의해 다른 검색 결과보다 더 현저하게 제시될 수 있는 권위있는 응답 검색 결과로서 제공될 수 있고 및/또는 다른 검색 결과의 기본 리소스에 대한 링크와 함께 다른 검색 결과의 스니펫(snippet)에 제공될 수 있다. 반면, 출시일이 공개적으로 제공되지 않는 경우, 검색 엔진은 고품질의 검색 결과를 제공하지 못하거나, 검색 결과를 전혀 제공하지 못할 수도 있다.
본 명세서는, 처음 사용자의 질의에 응답하는 어떤 리소스도 하나 이상의 기준(예를 들어, 하나 이상의 품질 기준)을 만족시키지 않는 것으로 결정하고, 그러한 결정에 대한 응답으로, 나중에 상기 질의에 응답하고 상기 기준을 만족시키는 소정의 리소스에 기초한 콘텐츠(예를 들어, 검색 결과)를 나중에 사용자에게 표시하기 위해 제공하는 것과 관련된 방법, 장치 및 컴퓨터 판독 가능 매체에 관한 것이다. 나중에 질의에 응답하는 소정의 리소스는 처음 질의에 응답한 모든 리소스에 추가되는 리소스이거나 처음 질의에 응답한 리소스의 리파인드(refined) 버전일 수 있다(예를 들어, 지식 그래프 또는 다른 데이터베이스에서의 엔트리의 리파인드 버전).
소정의 리소스에 기초한 콘텐츠는 나중에 사용자의 컴퓨팅 장치를 통해 사용자에게 표시하기 위해 제공되며, 사용자가 유사한 정보를 요구하는 질의 및/또는 다른 질의를 다시 제출할 필요없이 사용자에게 표시하기 위해 제공될 수 있다. 예를 들어, 콘텐츠는 사용자의 이동 컴퓨팅 장치상의 시각적 및/또는 청각적 통지를 통해 사용자에게 보여질 수 있고, 사용자가 질의 및/또는 다른 질의를 다시 제출하는 것과 독립적으로 나타낼 수 있다. 또한, 예를 들어, 콘텐츠는 사용자와 자동 어시스턴트 간의 대화 세션 동안 자동 어시스턴트의 시각 및/또는 청각 출력으로서 제공될 수 있으며, 여기서 대화 세션은 유사한 정보를 찾는 질의 및/또는 다른 질의와 관련이 없다.
일부 구현 예에서, 제1 시간에 사용자의 질의를 수신하는 단계와, 상기 질의를 수신한 것에 응답하여, 상기 질의에 기초하여 하나 이상의 데이터베이스의 탐색을 발행하게 하는 단계를 포함하는, 하나 이상의 프로세서에 의해 수행되는 방법이 제공된다. 이 방법은, 상기 검색에 응답하여, 상기 제1 시간에 상기 질의에 응답하는 하나 이상의 리소스를 획득하는 단계; 그리고 상기 제1 시간에 상기 질의에 응답하는 리소스들 중 어느 것도 하나 이상의 기준을 만족시키지 않는 것으로 결정하는 단계를 더 포함한다. 이 방법은 또한, 제1 시간에 후속하는 제2 시간에서, 제2 시간에 질의에 응답하는 소정의 리소스가 기준을 만족시키는지를 결정하는 단계를 더 포함한다. 상기 소정의 리소스는 제1 시간에 질의에 응답하는 리소스들에 추가되거나 또는 제1 시간에 질의에 응답하는 리소스들 중 하나의 리파인드 버전이다. 이 방법은 사용자의 컴퓨팅 장치를 통해 사용자에게 표시하기 위해, 제2 시간에 질의에 응답하는 소정의 리소스(자원)에 기초한 콘텐츠를 제공하는 단계를 더 포함한다. 상기 제공하는 단계는 제1 시간에 상기 질의에 응답한 리소스들 중 어느 것도 상기 기준을 만족시키지 않는다고 결정하는 것에 기초하며, 상기 제2 시간에 상기 질의에 응답하는 상기 소정의 리소스가 상기 기준을 만족시킨다고 결정하는 것에 기초한다.
또한, 여기에 개시된 기술 및 다른 구현 예는 다음 특징들 중 하나 이상을 선택적으로 포함할 수 있다.
일부 구현 예에서, 하나 이상의 기준은 품질 기준을 포함한다. 이러한 구현예 중 일부에서, 상기 품질 기준은 데이터베이스들 중 하나 이상에서 질의(쿼리)에 대한 신뢰할 수 있는 응답을 나타낸다.
일부 구현 예에서, 상기 방법은, 상기 제1 시간에 상기 질의에 응답하는 리소스들 중 어느 것도 상기 기준을 만족하지 않는다고 결정한 것에 응답하여, 상기 기준을 만족하는 상기 제1 시간에 상기 질의에 응답하는 상기 리소스들 중 어느 것에도 관련되지 않은 프롬프트를 사용자 인터페이스 출력 장치를 통해 상기 사용자에게 제시하기 위해 제공하는 단계와, 상기 프롬프트에 응답하여 상기 사용자로부터 추가적인 사용자 인터페이스 입력을 수신하는 단계를 더 포함한다. 이러한 구현예들에서, 소정의 리소스에 기초한 콘텐츠를 제공하는 단계는 프롬프트에 응답하여 사용자로부터의 추가적인 사용자 인터페이스 입력을 수신하는 것을 조건으로 할 수 있다.
일부 구현 예에서, 상기 소정의 리소스는 상기 데이터베이스들 중 하나의 엔트리이고, 상기 소정의 리소스가 상기 제2 시간에 상기 기준을 만족시키는 것으로 결정하는 단계는 상기 엔트리에 대한 필드가 상기 질의에 대한 원하는 정보를 나타내는 제2 시간에서의 값을 포함하는 것으로 결정하는 단계를 포함한다. 이러한 구현예들에서, 소정의 리소스는 제1 시간에 질의에 응답했지만 제1 시간에 상기 값을 포함하지 않으며, 상기 소정의 리소스가 상기 제1 시간에 상기 기준을 만족시키지 못한다고 결정하는 단계는, 상기 제1 시간에 상기 엔트리에 대한 상기 필드에 포함된 임의의 값이 상기 질의에 대한 원하는 정보를 나타내지 않는다고 결정하는 단계를 포함한다.
일부 구현 예에서, 상기 방법은, 상기 제 1 시간 후에, 상기 질의와 무관하고 상기 컴퓨팅 장치를 통해 상기 사용자에 의해 제공되는 추가 사용자 인터페이스 입력을 수신하는 단계; 그리고 상기 추가 사용자 인터페이스 입력을 수신하는 것에 기초하여 상기 소정의 리소스에 기초한 콘텐츠를 제공하는 단계를 더 포함한다. 이러한 구현예들 중 일부에서, 상기 방법은 상기 컴퓨팅 장치를 통해 상기 사용자에게 제시하기 위해, 상기 추가 사용자 인터페이스 입력에 응답하는 초기 응답 출력을 제공하는 단계를 더 포함하며; 그리고 상기 콘텐츠를 제공하는 단계는 초기 응답 출력을 제공한 후에 발생하고, 추가 사용자 인터페이스 입력 후에 사용자에 의해 제공된 임의의 추가 입력을 수신하지 않고 선택적으로 발생한다.
일부 구현 예에서, 질의는 사용자에게 제시(표시)하기 위해 콘텐츠가 제공되는 컴퓨팅 장치에 추가되는 추가 컴퓨팅 장치에서 수신된다.
일부 구현 예에서, 제1 시간에 사용자의 질의에 응답하는 어떠한 리소드도 하나 이상의 기준을 만족시키지 않는 것으로 결정하는 것을 포함하는 하나 이상의 프로세서에 의해 수행되는 방법이 제공된다. 상기 방법은, 상기 제1 시간에 상기 질의에 응답하는 상기 임의의 리소스들 중 어느 것도 상기 기준을 만족시키지 않는다고 결정한 것에 응답하여, 상기 질의에 응답하고 상기 기준을 만족시키는 소정의 리소스의 존재에 대해 모니터링하는 단계를 더 포함한다. 소정의 리소스는 제1 시간에 질의에 응답하는 리소스에 추가되거나 또는 제1 시간에 질의에 응답하는 리소스 중 하나의 리파인드 버전이다. 이 방법은 소정의 리소스의 존재를 결정하는 것에 기초하여, 소정의 리소스에 기초한 콘텐츠를 제공하는 단계를 더 포함한다. 상기 콘텐츠는 사용자의 컴퓨팅 장치를 통해 사용자에게 제시하기 위해 제공된다.
여기에 개시된 기술들 및 다른 구현 예는 다음 특징 중 하나 이상을 선택적으로 포함할 수 있다.
일부 구현 예에서, 상기 방법은, 상기 제1 시간 후에, 상기 질의와 무관하고 상기 컴퓨팅 장치를 통해 상기 사용자에 의해 제공되는 추가 사용자 인터페이스 입력을 수신하는 단계; 그리고 상기 추가 사용자 인터페이스 입력을 수신하는 것에 기초하여 상기 소정의 리소스에 기초한 콘텐츠를 제공하는 단계를 더 포함한다. 이러한 구현예들 중 일부에서, 상기 방법은, 상기 컴퓨팅 장치를 통해 상기 사용자에게 제시하기 위해, 상기 추가 사용자 인터페이스 입력에 응답하는 초기 응답 출력을 제공하는 단계를 더 포함하며, 콘텐츠를 제공하는 것은 초기 응답 출력을 제공한 후에 발생하고, 추가 사용자 인터페이스 입력 후에 사용자에 의해 제공된 임의의 추가 입력을 수신하지 않고 선택적으로 발생한다.
일부 구현 예에서, 질의는 사용자에게 제시하기 위해 콘텐츠가 제공되는 컴퓨팅 장치에 추가되는 추가 컴퓨팅 장치에서 수신된다.
일부 구현 예에서, 하나 이상의 기준은 품질 기준을 포함한다. 이러한 구현예들 중 일부에서, 품질 기준은 데이터베이스들 중 하나 이상에서 질의에 대한 신뢰할 수 있는 응답으로 표시된다.
일부 구현 예에서, 하나 이상의 프로세서에 의해 수행되는 방법이 제공되며, 이는 사용자 및 하나 이상의 프로세서에 의해 구현되는 자동화된 어시스턴트 간의 대화 세션에서: 상기 대화 세션의 일부로서 상기 사용자로부터 질의를 수신하는 단계; 그리고 상기 질의에 응답하는 임의의 리소스 중 어느 것도 하나 이상의 기준을 만족시키지 않는 것으로 결정하는 단계를 포함한다. 상기 질의는 사용자 인터페이스 입력 장치를 통해 사용자에 의해 생성된 사용자 인터페이스 입력에 기초하고, 질의는 대화 세션의 일부로서 자동화된 어시스턴트에 전달된다. 상기 방법은 상기 제1 시간에 상기 질의에 응답하는 상기 임의의 리소스들 중 어느 것도 상기 기준을 만족하지 않는다고 결정한 것에 응답하여, 상기 질의에 응답하고 상기 기준을 만족시키는 소정의 리소스의 존재에 대해 모니터링하는 단계를 더 포함한다. 이 방법은 사용자와 자동화된 어시스턴트 간의 후속 대화 세션에서, 그리고 소정의 리소스의 존재를 결정하는 것에 기초하여: 후속 대화 세션의 일부로서 자동화된 어시스턴트로부터의 출력으로서 사용자에게 제시하기 위해, 상기 질의에 응답하고 상기 기준을 만족시키는 소정의 리소스에 기초한 콘텐츠를 제공하는 단계를 더 포함한다.
여기에 개시된 기술 및 다른 구현 예는 다음 특징 중 하나 이상을 선택적으로 포함할 수 있다.
일부 구현 예에서, 상기 방법은, 상기 대화 세션에서 그리고 상기 질의에 응답하는 리소스들 중 어느 것도 상기 기준을 만족하지 않는다고 결정한 것에 응답하여, 대화 세션의 일부로서 자동화된 어시스턴트로부터의 출력으로서 사용자에게 제시하기 위해, 상기 기준을 만족시키는 상기 질의에 응답하는 리소스들 중 어느 것도 관련되지 않은 프롬프트를 제공하는 단계; 그리고 상기 프롬프트에 응답하여 상기 사용자로부터의 추가 사용자 인터페이스 입력을 수신하는 단계를 더 포함한다. 이러한 구현예들 중 일부에서, 후속 대화 세션에서, 소정의 리소스에 기초한 콘텐츠를 제공하는 것은 프롬프트에 응답하여 사용자로부터의 추가 사용자 인터페이스 입력을 수신하는 것을 조건으로 한다.
일부 구현 예에서, 상기 방법은 후속 대화 세션에서 후속 대화 세션의 일부로서 사용자로부터의 추가 사용자 인터페이스 입력을 수신하는 단계를 더 포함한다. 상기 추가 사용자 인터페이스 입력은 질의와 관련이 없으며, 소정의 리소스에 기반한 콘텐츠를 제공하는 것은 추가 사용자 인터페이스 입력을 수신하는 것을 기반으로 한다. 이러한 구현예들 중 일부에서, 상기 방법은, 후속 대화 세션에서: 후속 대화 세션의 일부로서 자동화된 어시스턴트로부터의 출력으로서 사용자에게 제공하기 위해, 상기 추가 사용자 인터페이스 입력에 응답하는 초기 응답 출력을 제공하는 단계를 더 포함한다. 이러한 구현예들에서, 콘텐츠를 제공하는 것은 초기 응답 출력을 제공한 후에 발생할 수 있고 및/또는 추가 사용자 인터페이스 입력 후에 사용자에 의해 제공된 임의의 추가 입력을 수신하지 않고 발생할 수 있다.
또한, 일부 구현 예는 하나 이상의 컴퓨팅 장치의 하나 이상의 프로세서를 포함하며, 상기 하나 이상의 프로세서들은 연관된 메모리에 저장된 명령어들을 실행하도록 동작 가능하고, 전술한 방법들 중 임의의 것을 수행하도록 명령어들이 구성된다. 일부 구현 예는 전술한 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령어를 저장하는 하나 이상의 비 일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
전술한 개념들 및 본 명세서에서보다 상세하게 기술된 추가적인 개념들의 모든 조합은 본 명세서에 개시된 요지의 일부로서 고려될 수 있음을 이해해야 한다. 예를 들어, 본 명세서의 끝 부분에 나타나는 청구된 요지의 모든 조합은 본 명세서에 개시된 요지의 일부로서 고려된다.
본 명세서의 이러한 구현예들 및 기타 구현예들 중 일부는 다양한 기술적 장점을 얻을 수 있다. 예를 들어, 사용자가 다시 질의 및/또는 유사한 정보를 찾는 다른 질의를 제출하지 않고도 사용자에게 표시를 위한 콘텐츠를 제공하는 것은 사용자가 다시 질의 및/또는 유사한 정보를 찾는 다른 질의를 제출할 때 소비하게 될 리소스와 같은 다양한 계산 리소스의 사용을 감소시킬 수 있다. 또한, 예를 들어, 일부 구현예들에서, 사용자의 질의에 응답하는 어떠한 리소스도 하나 이상의 기준을 만족시키지 않는다고 결정한 것에 응답하여 프롬프트(prompt) 또는 다른 통지가 사용자에게 표시되기 위해 제공될 수 있다. 이러한 구현예들 중 일부에서, 프롬프트는 기준을 만족시키는 리소스의 부족을 사용자에게 알릴 수 있고 및/또는 기준을 만족시키는 리소스가 후속적으로 이용 가능한 경우, 연관된 콘텐츠가 사용자에게 자동으로 제공될 것임을 사용자에게 알릴 수 있다. 이는 사용자로 하여금 질의의 동일한 정보를 찾는 계산적으로 값 비싼 후속 검색을 발행하는 대신에 그러한 콘텐츠의 푸싱(pushing) 또는 다른 제공을 기다리게 할 수 있다. 본 명세서의 다른 곳에서 기술된 것과 같은 부가적인 및/또는 대안적인 기술적 장점이 달성될 수 있다.
도 1은 여기에 개시된 구현 예가 구현될 수 있는 예시적인 환경의 블록도이다.
도 2는 본 명세서에 개시된 구현들에 따라 도 1의 예시적인 환경의 다양한 컴포넌트가 어떻게 상호 작용할 수 있는지의 예를 도시한다.
도 3a는 예시적인 클라이언트 컴퓨팅 장치를 도시한다. 예시적인 클라이언트 컴퓨팅 장치의 디스플레이 스크린은 질의, 및 질의에 응답하여 제공될 수 있는 프롬프트 및 검색 결과의 예를 디스플레이한다.
도 3b는 도 3a에 후속하는 시간에서 도 3a의 예시적인 클라이언트 컴퓨팅 장치를 도시한다. 도 3b의 디스플레이 스크린은 도 3b의 시간에 도 3a의 질의에 응답하고, 하나 이상의 기준을 만족시키는 리소스에 기초하고 그리고 도 3a의 시간에 기준을 만족시키지 않는 질의에 응답하는 리소스에 기초하여 제공된 콘텐츠의 예를 디스플레이한다.
도 4a는 자동화된 어시스턴트와의 대화 세션에서 제공되는 질의 및 대화 세션 동안 질의에 응답하여 제공될 수 있는 검색 결과의 예를 디스플레이하는 디스플레이 스크린을 갖는 도 3a의 예시적인 클라이언트 컴퓨팅 장치를 도시한다.
도 4b는 도 4a의 시간에 후속하는 시간에서의 예시적인 클라이언트 컴퓨팅 장치를 도시한다. 도 4b의 디스플레이 스크린은, 자동화된 어시스턴트와의 또 다른 대화 세션 동안, 콘텐츠의 또 다른 예를 디스플레이한다. 콘텐츠는 도 4b의 시간에 도 4a의 질의에 응답하는 리소스에 기초하며, 하나 이상의 기준을 만족시키는 리소스에 기초하여 그리고 기준을 만족하지 않는 도 4a의 시간에 질의에 응답하는 리소스에 기초하여 제공된다.
도 5a는 자동화된 어시스턴트와의 대화 세션에서 제공되는 질의 및 상기 대화 세션 동안 상기 질의에 응답하여 제공될 수 있는 프롬프트의 다른 예를 디스플레이하는 상기 디스플레이 스크린을 갖는 도 3a의 예시적인 클라이언트 컴퓨팅 장치를 도시한다.
도 5b는 도 5a의 시간 이후의 시간에서의 예시적인 클라이언트 컴퓨팅 장치를 도시한다. 도 5b의 디스플레이 스크린은, 자동화된 어시스턴트와의 다른 대화 세션 동안, 도 5b의 시간에 도 5a의 질의에 응답하는 리소스에 기초하고, 하나 이상의 기준을 만족시키는 리소스에 기초하여 그리고 기준을 만족시키지 않는 도 5a의 시간에서 질의에 응답하는 리소스에 기초하여 제공되는 콘텐츠의 다른 예를 디스플레이한다.
도 6은 또 다른 예시적인 클라이언트 컴퓨팅 장치와, 자동화된 어시스턴트와의 대화 세션에서 콘텐츠를 청각적으로 제공하는 예를 도시한다. 콘텐츠는 도 6의 시간에 사용자의 이전 질의에 응답하는 리소스에 기초한다. 콘텐츠는 하나 이상의 기준을 만족시키는 리소스에 기초하고 그리고 기준을 만족시키지 않는 이전의 질의시에 이전 질의에 응답하는 리소스에 기초하여 제공된다.
도 7은 본 명세서에 개시된 구현 예에 따른 예시적인 방법을 나타내는 흐름도이다.
도 8은 컴퓨팅 장치의 예시적인 아키텍처를 도시한다.
도 2는 본 명세서에 개시된 구현들에 따라 도 1의 예시적인 환경의 다양한 컴포넌트가 어떻게 상호 작용할 수 있는지의 예를 도시한다.
도 3a는 예시적인 클라이언트 컴퓨팅 장치를 도시한다. 예시적인 클라이언트 컴퓨팅 장치의 디스플레이 스크린은 질의, 및 질의에 응답하여 제공될 수 있는 프롬프트 및 검색 결과의 예를 디스플레이한다.
도 3b는 도 3a에 후속하는 시간에서 도 3a의 예시적인 클라이언트 컴퓨팅 장치를 도시한다. 도 3b의 디스플레이 스크린은 도 3b의 시간에 도 3a의 질의에 응답하고, 하나 이상의 기준을 만족시키는 리소스에 기초하고 그리고 도 3a의 시간에 기준을 만족시키지 않는 질의에 응답하는 리소스에 기초하여 제공된 콘텐츠의 예를 디스플레이한다.
도 4a는 자동화된 어시스턴트와의 대화 세션에서 제공되는 질의 및 대화 세션 동안 질의에 응답하여 제공될 수 있는 검색 결과의 예를 디스플레이하는 디스플레이 스크린을 갖는 도 3a의 예시적인 클라이언트 컴퓨팅 장치를 도시한다.
도 4b는 도 4a의 시간에 후속하는 시간에서의 예시적인 클라이언트 컴퓨팅 장치를 도시한다. 도 4b의 디스플레이 스크린은, 자동화된 어시스턴트와의 또 다른 대화 세션 동안, 콘텐츠의 또 다른 예를 디스플레이한다. 콘텐츠는 도 4b의 시간에 도 4a의 질의에 응답하는 리소스에 기초하며, 하나 이상의 기준을 만족시키는 리소스에 기초하여 그리고 기준을 만족하지 않는 도 4a의 시간에 질의에 응답하는 리소스에 기초하여 제공된다.
도 5a는 자동화된 어시스턴트와의 대화 세션에서 제공되는 질의 및 상기 대화 세션 동안 상기 질의에 응답하여 제공될 수 있는 프롬프트의 다른 예를 디스플레이하는 상기 디스플레이 스크린을 갖는 도 3a의 예시적인 클라이언트 컴퓨팅 장치를 도시한다.
도 5b는 도 5a의 시간 이후의 시간에서의 예시적인 클라이언트 컴퓨팅 장치를 도시한다. 도 5b의 디스플레이 스크린은, 자동화된 어시스턴트와의 다른 대화 세션 동안, 도 5b의 시간에 도 5a의 질의에 응답하는 리소스에 기초하고, 하나 이상의 기준을 만족시키는 리소스에 기초하여 그리고 기준을 만족시키지 않는 도 5a의 시간에서 질의에 응답하는 리소스에 기초하여 제공되는 콘텐츠의 다른 예를 디스플레이한다.
도 6은 또 다른 예시적인 클라이언트 컴퓨팅 장치와, 자동화된 어시스턴트와의 대화 세션에서 콘텐츠를 청각적으로 제공하는 예를 도시한다. 콘텐츠는 도 6의 시간에 사용자의 이전 질의에 응답하는 리소스에 기초한다. 콘텐츠는 하나 이상의 기준을 만족시키는 리소스에 기초하고 그리고 기준을 만족시키지 않는 이전의 질의시에 이전 질의에 응답하는 리소스에 기초하여 제공된다.
도 7은 본 명세서에 개시된 구현 예에 따른 예시적인 방법을 나타내는 흐름도이다.
도 8은 컴퓨팅 장치의 예시적인 아키텍처를 도시한다.
본 명세서에 설명된 일부 구현 예는, 제1 시간에 사용자의 질의에 응답하는 어떠한 리소스도 하나 이상의 기준(예를 들어, 하나 이상의 품질 기준)을 만족시키지 않는 것으로 결정하고, 그러한 결정에 대한 응답으로: 나중에 질의에 응답하고 기준을 만족하는 소정의 리소스를 기반으로 하는 콘텐츠를 나중에 사용자에게 제시하기 위해 제공하는 것에 관한 것이다. 나중에 질의에 응답하는 소정의 리소스는 처음 질의에 응답하는 임의의 리소스에 추가되는 리소스일 수도 있고, 처음 질의에 응답한 리소스의 리파인드(refined) 버전일 수도 있다. 소정의 리소스에 기초한 콘텐츠는 사용자의 컴퓨팅 장치를 통해 나중에 사용자에게 제시하기 위해 제공되며, 사용자가 질의 및/또는 유사한 정보를 요구하는 다른 질의를 다시 제출할 필요없이 사용자에게 제시하기 위해 제공될 수 있다.
한 예로, 가상의 스포츠팀들("팀 A"와 "팀 B") 간의 게임을 위한 시간을 찾는 "팀 A는 몇시에 팀 B와 플레이합니까?"라는 사용자 질의를 가정한다. 또한, 게임의 시간이 아직 발표되지 않았다고 가정한다.
식별된 검색에 응답하는 하나 이상의 리소스(있는 경우) 및 질의를 기반으로 하나 이상의 데이터베이스를 검색할 수 있다. 리소스 중 하나 이상의 피처는 리소스 중 하나라도 하나 이상의 품질 기준을 만족하지 않는다고 결정하기 위해 사용될 수 있다. 예를 들어, 리소스의 품질 기준은 리소스에 대한 하나 이상의 검색 랭킹 신호일 수 있고 및/또는 리소스에 대한 누적 랭킹 점수가 하나 이상의 임계값을 만족시키는 것일 수 있다. 다른 예로서, 리소스의 품질 기준은 질의에 대한 신뢰할 수 있는 답변인 콘텐츠를 포함하는 것으로 하나 이상의 데이터베이스를 표시한다는 것일 수 있다. 예를 들어, 일부 리소스는 하나 이상의 질의에 대한 신뢰할 수 있는 답변인 콘텐츠를 포함하는 것으로 간주될 수 있으며, 그러한 콘텐츠는 그러한 질의에 대한 응답으로 두드러지게 표현될 수 있다(예를 들어, 유일한 응답형 콘텐츠로서 제시되거나 다른 콘텐츠보다 두드러지게 제시됨). 예를 들어, 신뢰할 수 있는 답변(응답)은 소위 "원 박스(one box)"에서 시각적으로 제시되거나 및/또는 청각적으로 사용자에게 제시될 수 있다(반면에 다른 응답 리소스의 콘텐츠는 그렇지 않을 수도 있음). 또 다른 예로서, 지식 그래프 또는 다른 리소스의 엔트리인 리소스의 품질 기준은 엔트리가 질의에 대한 원하는 정보를 나타내는 값을 포함하는 필드를 포함하는 것일 수 있다.
응답형 리소스들 중 어느 것도 하나 이상의 품질 기준을 만족시키지 않는다고 결정한 것에 응답하여, 데이터는 추후에 사용자에게 제시되기 위해 기준을 만족시키는 후속적으로 식별된 리소스로부터의 콘텐츠를 제공하게 하는 사용자와 관련하여 저장될 수 있다.
사용자 질의의 시간에 이어서, 품질 기준을 만족하는 소정의 리소스가 존재하고 품질 기준을 만족시키는 것으로 결정될 수 있다. 예를 들어, 소정의 리소스는 질의에 대한 신뢰할 수 있는 콘텐츠(및 선택적으로 하나 이상의 다른 질의)를 포함하는 것으로 추후에 간주되었던 리소스일 수 있다. 또한, 예를 들어, 소정의 리소스는 질의에 응답하는 값(들)(반면에 이전 값은 존재하지 않음)을 포함하도록 업데이트된 하나 이상의 필드를 포함하는 데이터베이스(예를 들어, 지식 그래프)의 엔트리일 수 있다. 예를 들어, 처음 질의에 대한 응답으로 "팀 A와 팀 B" 사이의 게임에 해당하는 지식 그래프 엔트리는 "시간" 필드/노드가 없거나 응답이 없는 "알 수 없음/사용 불가" 값을 갖는 "시간" 필드/노드를 포함할 수 있다. 사용자 질의의 시간에 후속하여, 상기 엔트리의 "시간" 필드는 "19:00"과 같은 특정 응답 값으로 업데이트될 수 있다.
품질 기준을 만족하는 소정의 리소스가 존재하고 품질 기준을 만족시키는 것으로 결정한 것에 응답하여, 소정의 리소스에 기초한 콘텐츠는 사용자의 컴퓨팅 장치를 통해 사용자에게 제시하기 위해 제공될 수 있다. 예를 들어, 콘텐츠는 질의를 제출하기 위해 이용된 사용자와 동일한 컴퓨팅 장치 및/또는 별도의 컴퓨팅 장치를 통해 사용자에게 제시하기 위해 제공될 수 있다. 콘텐츠는 다양한 형태로 제공될 수 있다. 예를 들어, 콘텐츠는 사용자의 모바일(이동) 컴퓨팅 장치상의 시각적 및/또는 청각적 푸시 알림으로서 제공될 수 있고, 사용자가 질의 및/또는 다른 질의를 다시 제출하는 것과 독립적으로 나타낼 수 있다. 또한, 예를 들어, 콘텐츠는 사용자와 자동화된 어시스턴트 간의 대화 세션 동안 자동화된 어시스턴트의 시각 및/또는 청각 출력으로서 제공될 수 있으며, 여기서 대화 세션은 유사한 정보를 찾는 질의 및/또는 다른 질의와 관련이 없다.
이들 및 다른 구현들에 대한 추가 설명은 도면을 참조하여 제공된다. 도 1을 참조하면, 여기서 개시된 기술이 구현될 수 있는 예시적인 환경이 도시되어있다. 예시적인 환경은 하나 이상의 사용자 인터페이스 입력 장치들(102), 하나 이상의 사용자 인터페이스 출력 장치들(104) 및 시스템(120)을 포함한다.
사용자 인터페이스 입력 장치(102)는 예를 들어, 물리적 키보드, (가상 키보드 또는 다른 텍스트 입력 메커니즘을 구현하는) 터치 스크린, 및/또는 마이크로폰을 포함할 수 있다. 사용자 인터페이스 출력 장치(104)는 예를 들어, 디스플레이 스크린 및/또는 스피커(들)를 포함할 수 있다. 사용자 인터페이스 입력 및 출력 장치들(102, 104)은 사용자의 하나 이상의 컴퓨팅 장치들에 통합될 수 있다. 예를 들어, 사용자의 이동 전화기는 사용자 인터페이스 입력 및 출력 장치(102, 104)를 포함할 수 있으며; 또는 독립형 개인 어시스턴트 하드웨어 장치는 사용자 인터페이스 입력 및 출력 장치(102, 104)를 포함할 수 있으며; 또는 제1 컴퓨팅 장치는 사용자 인터페이스 입력 장치(들)(102)를 포함할 수 있고, 개별 컴퓨팅 장치는 사용자 인터페이스 출력 장치(들)(104)를 포함할 수 있다.
시스템(120)이 사용자 인터페이스 출력 및 입력 장치들(102, 104)과 분리되어 도 1에 도시되어 있지만, 일부 실시 예에서, 시스템(120)의 모든 또는 양태는 또한 사용자 인터페이스 입력 장치(들)(102) 및/또는 사용자 인터페이스 출력 장치(들)(104)를 포함하는 컴퓨팅 장치 상에 구현될 수 있다. 예를 들어, 시스템(120)의 출력 생성 엔진(132) 및/또는 질의 처리(프로세싱) 엔진(122)의 모든 또는 양태들은 컴퓨팅 장치상에서 구현될 수 있다. 일부 구현 예에서, 시스템(120)의 모든 또는 양태들은 사용자 인터페이스 입력 장치들(102) 및/또는 사용자 인터페이스 출력 장치들(104)을 포함하는 컴퓨팅 장치로부터 분리되어 원격인 컴퓨팅 장치(들)상에서 구현될 수 있다(예: 모든 또는 양태들이 "클라우드에서 구현될 수 있음"). 이러한 구현예들 중 일부에서, 시스템(120)의 이러한 양태들은 근거리 통신망(LAN) 및/또는 광역 통신망(WAN)(예를 들어, 인터넷)과 같은 하나 이상의 네트워크들을 통해 컴퓨팅 장치와 통신할 수 있다.
사용자 인터페이스 입력 장치(들)(102) 및/또는 사용자 인터페이스 출력 장치(들)(104)를 포함할 수 있는 클라이언트 컴퓨팅 장치(들)의 일부 비제한적인 예들은 데스크톱 컴퓨팅 장치, 랩톱 컴퓨팅 장치, 적어도 부분적으로 자동화된 어시스턴트에 전용인 독립형 하드웨어 장치, 태블릿 컴퓨팅 장치, 이동 전화 컴퓨팅 장치, 사용자 차량의 컴퓨팅 장치(예를 들어, 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 내비게이션 시스템), 또는 컴퓨팅 장치를 포함하는 사용자의 착용 장치(예를 들어, 컴퓨팅 장치를 갖는 사용자의 시계, 컴퓨팅 장치를 갖는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 장치) 중에서 하나 이상을 포함할 수 있다. 추가 및/또는 대안적인 클라이언트 컴퓨팅 장치가 제공될 수 있다. 일부 구현 예에서, 소정의 사용자는 컴퓨팅 장치들의 조정된 "에코시스템"을 집합적으로 형성하는 복수의 클라이언트 컴퓨팅 장치들을 이용하여 시스템(120)의 모든 또는 양태들과 통신할 수 있다. 그러나, 간결성을 위해, 본 명세서에서 설명된 일부 예는 단일 클라이언트 컴퓨팅 장치를 조작하는 사용자에 초점을 맞출 것이다.
클라이언트 컴퓨팅 장치 및 시스템(120)은 (별도의 장치인 경우) 각각 데이터 및 소프트웨어 애플리케이션의 저장을 위한 하나 이상의 메모리, 데이터 액세스 및 애플리케이션 실행을 위한 하나 이상의 프로세서 및 네트워크를 통한 통신을 용이하게 하는 다른 컴포넌트를 포함할 수 있다. 하나 이상의 클라이언트 컴퓨팅 장치 및/또는 시스템(120)에 의해 수행되는 동작은 다수의(복수의) 컴퓨팅 장치에 걸쳐 분산될 수 있다. 시스템(120)은 예를 들어 네트워크를 통해 서로 결합되는 하나 이상의 위치에서의 하나 이상의 컴퓨터상에서 실행되는 컴퓨터 프로그램으로서 구현될 수 있다.
도 1에 도시된 바와 같이, 사용자는 사용자 인터페이스 입력 장치(들)(102)를 통해 시스템(120)에 질의 또는 다른 입력을 제공한다. 시스템(120)은 사용자 인터페이스 출력 장치(들)(104)를 통해 (선택적으로 하나 이상의 컴포넌트에 의한 추가 처리 후에) 사용자에게 제시하기 위한 응답 출력을 제공한다. 간략화를 위해, 입력은 사용자 인터페이스 입력 장치(들)(102)에 의해 시스템(120)에 직접 제공되는 것으로 도 1에 도시되어 있으며, 출력은 시스템(120)에 의해 사용자 인터페이스 출력 장치(들)(104)에 직접 제공되는 것으로 도시되어 있다. 반면, 다양한 구현 예에서, 하나 이상의 중간 하드웨어 컴포넌트가 시스템(120)과 사용자 인터페이스 입력 및/또는 출력 장치(102, 104) 사이에 기능적으로 개재될 수 있고 선택적으로 입력 및/또는 출력을 처리할 수 있다. 예를 들어, 하나 이상의 컴포넌트는 시스템(120)에 의해 제공된 출력을 처리하고, 출력의 처리에 기초하여 사용자 인터페이스 출력 장치(들)(104)를 통해 검색 결과 및/또는 다른 콘텐츠를 표시하기 위한 하나 이상의 신호를 생성할 수 있다. 예를 들어, 사용자 인터페이스 출력 장치(104)가 시스템(120)의 모든 또는 양태들과 별 개인 클라이언트 컴퓨팅 장치상에 존재하는 경우, 하드웨어 프로세서 및/또는 다른 컴포넌트는 출력을 처리하고, 출력에 기초하여 사용자 인터페이스 출력 장치(104)를 구동하기 위한 신호를 생성할 수 있다.
일부 구현 예에서, 입력은 텍스트 입력이다. 이들 구현 예들 중 일부에서, 시스템(120)에 의해 수신된 입력은 이미 텍스트 형식이다. 예를 들어, 사용자 인터페이스 입력 장치(들)(102)는 키보드로의 사용자 인터페이스 입력 및 시스템(120)에 제공된 텍스트 입력에 응답하여 텍스트 입력을 생성하는 키보드를 포함할 수 있다. 또한, 예를 들어, 사용자 인터페이스 입력 장치(들)(102)는 마이크로폰을 포함할 수 있고, 시스템(120)으로부터 분리된 음성-텍스트 프로세서는 마이크로폰에서 수신된 음성 입력을 텍스트 입력으로 변환할 수 있고, 상기 텍스트 입력은 시스템(120)에 제공될 수 있다. 일부 다른 구현예에서, 시스템(120)에 의해 초기에 수신된 입력은 텍스트 형식이 아니지만, 시스템(120)에 의해 텍스트 형식으로 변환되고 텍스트 형식으로 시스템(120)의 하나 이상의 다른 컴포넌트에 제공된다. 예를 들어, 사용자 인터페이스 입력 장치(들)(102)는 마이크로폰을 포함하고, 음성 입력은 마이크로폰에서 수신되어 시스템(120)에 제공될 수 있고, 시스템(120)의 음성-텍스트 프로세서는 음성 입력을 텍스트 입력으로 변환할 수 있다.
클라이언트 컴퓨팅 장치는 선택적으로 시스템(120)과의 대화 및/또는 다른 통신을 가능하게 하는 하나 이상의 애플리케이션을 동작시킬 수 있다. 이러한 애플리케이션은 웹 브라우저, 전용 검색 애플리케이션, SMS(Short Messaging Service) 및/또는 멀티미디어 메시징 서비스("MMS") 클라이언트, 온라인 채팅 클라이언트(예: 인스턴트 메신저, 인터넷 릴레이 채팅 또는 "IRC" 등), 소셜 네트워크와 관련된 메시징 애플리케이션, 시스템(120)과의 대화에 전용되는 자동화된 어시스턴트 메시징 서비스 등과 같은 다양한 형태로 제공될 수 있다. 일부 구현 예에서, 하나 이상의 애플리케이션은 웹 페이지 또는 웹 브라우저 또는 클라이언트 컴퓨팅 장치의 다른 애플리케이션에 의해 렌더링 된 다른 리소스를 통해 구현될 수 있다.
다양한 구현 예에서, 시스템(120)은 질의 처리 엔진(122), 리소스 기준 엔진(124), 모니터링 엔진(126), 검색 엔진(128), 랭킹 엔진(130) 및 출력 생성 엔진(132)을 포함할 수 있다. 일부 구현 예에서, 하나 이상의 엔진들(122, 124, 126, 128, 130 및/또는 132)은 생략되거나, 결합되거나, 및/또는 시스템(120)과 별개인 컴폰넌트로 구현될 수 있다. 예를 들어, 하나 이상의 엔진들(122, 124, 126, 128, 130 및/또는 132) 또는 그 임의의 동작 부분은 사용자 인터페이스 입력 및/또는 출력 장치(102 및 104)를 포함하고 시스템(120)과 별개인 클라이언트 컴퓨팅 장치에 의해 실행되는 컴포넌트로 구현될 수 있다. 또한, 예를 들어, 검색 엔진(128) 및/또는 랭킹(순위) 엔진(130)은 시스템(120)과 별개인 시스템(예를 들어, 시스템(120)과 통신하는 별도의 검색 시스템)에 의해 전체적으로 또는 부분적으로 구현될 수 있다.
질의 처리 엔진(122)은 시스템(120)에 제출되는 질의 및 선택적으로 다른 입력을 처리하고, 시스템(120)의 하나 이상의 다른 컴포넌트에 의한 사용을 위해 주석(annotated) 출력을 생성한다. 예를 들어, 질의 처리 엔진(122)은 사용자 인터페이스 입력 장치(들)(102)를 통해 사용자에 의해 생성된 사용자 인터페이스 입력에 기초하여 생성된 자연어 프리-형식(free-form) 텍스트 입력을 처리할 수 있다. 생성된 주석 출력은 텍스트 입력의 하나 이상의 주석 및 선택적으로 텍스트 입력의 하나 이상의 (예를 들어, 모두) 용어를 포함한다.
일부 구현 예에서, 질의 처리 엔진(122)은 텍스트 입력에서 다양한 유형의 문법 정보를 식별하고 주석을 달도록 구성된다. 예를 들어, 질의 처리 엔진(122)은 그 문법적 역할로 용어에 주석을 달기 위해 구성된 음성 태거(tagger)의 부분을 포함할 수 있다. 또한, 예를 들어, 일부 구현예들에서, 질의 처리 엔진(122)은 추가적으로 및/또는 택일적으로 텍스트 입력에서 용어들 간의 통사적(syntactic) 관계를 결정하도록 구성된 의존성 파서(dependency parse)를 포함할 수 있다.
일부 구현 예에서, 질의 처리 엔진(122)은 사람, 조직, 위치 등에 대한 레퍼런스와 같은 하나 이상의 세그먼트 내의 엔티티 레퍼런스에 주석을 달도록 구성된 엔티티 태거를 부가적으로 및/또는 대안적으로 포함할 수 있다. 엔티티 태거는 (예를 들어, 사람과 같은 엔티티 클래스에 대한 모든 레퍼런스의 식별을 가능하게 하기 위해) 높은 수준의 세분성(granularity) 및/또는 (예를 들어, 특정 사람과 같은 특정 엔티티에 대한 모든 레퍼런스의 식별을 가능하게 하기 위해) 낮은 수준의 세분성에서 엔터티에 대한 레퍼런스에 주석을 달 수 있다. 엔티티 태거는 특정 엔티티를 해석(resolve)하기 위해 자연어 입력의 콘텐츠에 의존할 수 있고 및/또는 특정 엔티티를 해석하기 위해 선택적으로 지식 그래프 또는 다른 엔티티 데이터베이스와 통신할 수 있다.
일부 구현 예에서, 질의 처리 엔진(122)은 하나 이상의 컨텍스트 큐에 기초하여 동일한 엔티티에 대한 레퍼런스(references)를 그룹화하거나 "클러스터링"하도록 구성된 코레퍼런스(coreference) 해석기(resolver)를 부가적으로 및/또는 대안적으로 포함할 수 있다. 예를 들어, 코레퍼런스 해석기는 자연어 입력 "애크미의 위젯, 그것은 언제 출시될 예정입니까?(Acme’s widget, when is it going to be released?)"에서 "그것(it)" 용어를 "Acme의 위젯(Acme’s widget)"으로 해석할 수 있다.
일부 구현 예에서, 질의 처리 엔진(122)의 하나 이상의 컴포넌트는 질의 처리 엔진(122)의 하나 이상의 다른 컴포넌트로부터의 주석에 의존할 수 있다. 예를 들어, 일부 구현예들에서, 지명된 엔티티 태거는 모든 언급을 특정 엔티티에 주석으로 달기에 코레퍼런스 해석기 및/또는 의존성 파서의 주석에 의존할 수 있다. 또한, 예를 들어, 일부 구현예들에서, 코레퍼런스 해석기는 동일한 엔티티에 대한 레퍼런스를 클러스터링할 때 의존성 파서의 주석에 의존할 수 있다. 일부 구현 예에서, 특정 텍스트 입력을 처리할 때, 질의 처리 엔진(122)의 하나 이상의 컴포넌트는 하나 이상의 주석을 결정하기 위해 특정 텍스트 입력 이외의 관련된 이전 입력 및/또는 다른 관련 데이터를 사용할 수 있다. 예를 들어, 시스템(120)과의 대화에서 사용자의 제1 질의는 "애크미(Acme)의 위젯에 대한 검색 결과"일 수 있고, 사용자의 후속 질의는 "그것은 언제 출시될 예정입니까?"일 수 있다. "그것은 언제 출시될 예정입니까?"를 처리할 때, 코레퍼런스 해석기는 "애크미의 위젯에 대한 검색 결과"의 이전 입력을 이용하여 "그것"을 "애크미의 위젯"으로 해석할 수 있다.
검색 엔진(128)은 사용자에 의해 시스템(120)에 제출된 질의에 응답하여 하나 이상의 검색 데이터베이스(154)를 검색한다. 검색 엔진(128)은 검색 데이터베이스(154)를 검색하여 질의에 응답하는 하나 이상의 리소스를 식별한다. 일부 구현 예에서, 검색 데이터베이스(154)는 공개적으로 이용 가능한 리소스를 인덱싱하는 데이터베이스(들) 및/또는 사용자에게 비공개인 리소스를 인덱싱하는 데이터베이스(들)를 포함한다. 검색 엔진(128)은 응답 리소스를 식별하기 위해 데이터베이스(154)를 이용할 수 있고, 식별된 응답 리소스에 기초하여 검색 결과를 생성할 수 있다. 일부 구현 예에서, 하나 이상의 검색 데이터베이스(154)는 시스템(120) 및/또는 임의의 개별 클라이언트 컴퓨팅 장치로부터 멀리 떨어져 있을 수 있고 및/또는 하나 이상의 검색 데이터베이스(154)는 시스템(120) 및/또는 임의의 개별 클라이언트 컴퓨팅 장치에 로컬일 수 있다. 본 명세서에서, 용어 "데이터베이스"는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 구조화된 또는 비구조화된 데이터의 집합을 지칭하는데 사용된다.
검색 엔진(128)은 통상적인 및/또는 다른 정보 검색 기술과 같은 질의에 응답하여 검색 데이터베이스(154)를 검색하는데 다양한 기술을 이용할 수 있다. 랭킹 엔진(130)은 리소스의 인기도, 검색 파라미터와 리소스 간의 매칭 정도, 사용자의 속성(예컨대, 사용자의 위치, 사용자의 주요 언어) 등과 같은 하나 이상의 랭킹 신호를 사용하여 검색 엔진(128)에 의해 식별된 리소스에 대한 점수를 계산한다. 그 다음 랭킹 엔진(130)은 점수(스코어)를 사용하여 응답 리소스를 순위화(랭킹화)한다.
검색 엔진(128)은 랭킹 엔진(130)에 의해 랭킹된 상기 식별된 응답 리소스를 사용하여 하나 이상의 검색 결과를 생성한다. 검색 결과는 질의에 기반하여 발행된 검색에 응답하는 리소스에 대응하는 검색 결과를 포함한다. 예를 들어, 검색 결과들 각각은 응답형 콘텐츠 아이템의 타이틀 또는 다른 개요, 콘텐츠 아이템의 요약, 응답형 콘텐츠 아이템에 대한 링크, 응답형 콘텐츠 아이템에 관련된 다른 정보, 및/또는콘텐츠 아이템의 전체를 포함할 수 있다.
일부 구현 예에서, 질의에 응답하여, 검색 엔진(128)은 하나 이상의 검색 데이터베이스(154)에 표시된 리소스를 질의에 대한 신뢰할 수 있는 답변인 콘텐츠를 포함하는 것으로 식별할 수 있다. 이러한 구현예들 중 일부에서, 검색 엔진(128)은 신뢰성있는 답변(응답)을 포함하는 검색 결과를 생성할 수 있고, 질의에 응답하여 현저하게 제시하기 위해(예를 들어, 유일한 응답 검색 결과로서 제시하기 위해 또는 다른 검색 결과보다 더 두드러지게 제시하기 위해) 그 검색 결과를 제공할 수 있다. 예를 들어, 소위 "원 박스"에서의 에서의 시각적 표현 및/또는 사용자에게 청각적 암송을 위해 제공된 신뢰할 수 있는 응답이 제공될 수 있다(반면에 다른 응답 리소스의 콘텐츠는 그렇지 않을 수도 있음). 일부 구현 예에서, 검색 엔진(128)은 지식 그래프 또는 다른 데이터베이스의 엔트리가 질의에 대한 신뢰할 수 있는 응답을 나타내는 하나 이상의 필드를 포함하는지를 결정할 수 있다. 예를 들어, 질의 "애크미의 위젯 출시일(Acme 's widget release date)"에 대해, 검색 엔진(128)은 "애크미의 위젯"에 대응하는 지식 그래프 엔트리를 식별하고, 신뢰할 수 있는 출시일을 나타내는 엔트리에 대한 "출시일" 필드를 식별할 수 있다. 이러한 신뢰할 수 있는 출시일은 검색 엔진(128)에 의해 질의에 대해 신뢰할 수 있는 답변에 포함될 수 있다.
검색 엔진(128) 및 랭킹 엔진(130)에 의해 생성된 랭킹된(순위가 매겨진) 검색 결과(들)는 질의에 응답하여 출력 생성 엔진(132)에 의해 제공된다. 출력 생성 엔진(132)은 하나 이상의 사용자 인터페이스 출력 장치(들)(104)를 통해 사용자에게 제시(프레젠테이션)하기 위해 랭킹된 검색 결과(들)를 제공한다. 예를 들어, 출력 생성 엔진(132)은 하나 이상의 사용자 인터페이스 출력 장치(들)(104)를 통해 청각 및/또는 시각적 표현을 위한 검색 결과를 제공할 수 있다. 일부 구현 예에서, 시스템(120)은 사용자와의 대화 세션에 관여하는 자동화된 어시스턴트로서 구현되거나 또는 그와 통신할 수 있다. 이러한 구현예들 중 일부에서, 시스템(120)은 대화 세션 동안 사용자로부터 질의를 수신할 수 있고, 사용자와 시스템(120) 간의 대화의 일부로서 질의에 응답하여 검색 결과(들)를 제공할 수 있다.
리소스 기준 엔진(124)은 다양한 질의에 대해, 이들 질의에 대해 리턴된 리소스가 하나 이상의 품질 기준과 같은 하나 이상의 기준을 만족시키는지 여부를 결정한다. 일부 구현 예에서, 리소스 기준 엔진(124)은, 검색 엔진(128)이 질의에 응답하여 식별한 리소스(들)의 하나 이상의 특성을 이용하여 리소스가 질의에 대한 품질 기준을 만족하는지 여부를 결정한다. 예를 들어, 리소스 기준 엔진(124)은 리소스에 대한 하나 이상의 검색 랭킹 신호 및/또는 랭킹 엔진(130)에 의해 결정된 리소스에 대한 누적 랭킹 스코어(점수)에 기초하여 리소스가 하나 이상의 품질 기준을 만족하는지 여부를 결정할 수 있다. 예를 들어, 리소스 기준 엔진(124)은 질의에 응답하여 가장 높은 순위의 리소스가 적어도 임계 순위 스코어를 갖는 경우에만 품질 기준을 만족시키는 것으로 결정할 수 있다. 다른 예로서, 리소스 기준 엔진(124)은 하나 이상의 검색 데이터베이스(154)에서 질의에 대한 신뢰할 수 있는 답변인 콘텐츠를 포함하는 표시가 있는 경우에만 리소스가 품질 기준을 만족시키는 것으로 결정할 수 있다. 또 다른 예로서, 리소스 기준 엔진(124)은 질의에 대한 원하는 정보를 나타내는 값을 포함하는 필드를 포함하는 지식 그래프 또는 다른 리소스의 엔트리인 경우에만 리소스가 품질 기준을 만족시키는 것으로 결정할 수 있다.
질의에 대한 응답 리소스 중 어느 것도 품질 기준을 만족시키지 않는다고 결정한 것에 응답하여, 리소스 기준 엔진(124)은 미래의 시간에 사용자에게 제공하기 위해 기준을 만족시키는 후속적으로 식별된 리소스로부터의 콘텐츠를 제공하게 하는 데이터를 사용자와 관련시켜 저장할 수 있다. 아래에서보다 상세하게 설명되는 바와 같이, 모니터링 엔진(126)은 이러한 리소스의 존재를 모니터링하여 이를 하나 이상의 사용자 인터페이스 출력 장치(들)(104)를 통해 사용자에게 프레젠테이션을 제공하기 위해 출력 생성 엔진(132)에 제공할 수 있다.
일부 구현 예에서, 리소스 기준 엔진(124)은 질의 자체가 하나 이상의 기준을 만족시키는지를 결정하는 것에 기초하여 추가적으로 또는 대안적으로 사용자와 관련하여 상기 데이터를 저장할 수 있다. 예를 들어, 리소스 기준 엔진(124)은 질의 자체가 특정 응답을 찾는 의문(interrogative) 질의인 것으로 결정되는 경우에만 상기 데이터를 저장할 수 있다. 의문 질의는 주제(topic)에 대한 일반 정보를 찾는 일반 질의와 대조될 수 있다. 예를 들어, "팀 A의 경기는 오늘 밤 몇 시인가요? "는 특정 답변(게임 시간)을 찾는 의문 질의이다. 반면에, "복서 견(boxer dogs)"은 개들의 복서 품종에 대한 일반적인 정보를 찾는 일반적인 질의이다.
리소스 기준 엔진(124)은 의문 질의로서 질의를 식별하기 위해 다양한 기술을 이용할 수 있다. 예를 들어, 리소스 기준 엔진(124)은 "누가", "무엇", "언제", "어디에" 및/또는 "?"가 존재하는 것과 같은 질의 내의 하나 이상의 용어 및/또는 문자들에 기초하여 의문 질의로서 질의를 식별할 수 있다. 또한, 예를 들어, 리소스 기준 엔진(124)은 질의 처리 엔진(122)에 의해 제공된 주석에 기초하여 질의를 의문 질의로서 식별할 수 있다. 예를 들어, 리소스 기준 엔진(124)은 소정의 신택스 구조를 나타내는 주석 등을 포함하는 것에 기초하여, 하나 이상의 유형의 엔티티의 존재를 나타내는 주석을 포함하는 것에 기초하여 질의어로서 질의를 식별할 수 있다. 또한, 예를 들어, 음성 질의의 경우, 리소스 기준 엔진(124)은 음성 입력(예를 들어, 굴절(inflection), 억양)의 하나 이상의 특성에 기초하여 질의를 의문 질의로서 식별할 수 있다. 또 다른 예로서, 리소스 기준 엔진(124)은 "몇시입니까(what time is)[이벤트(event)]"의 템플릿(여기서 [이벤트]는 콘서트, 스포츠 게임, TV 프로그램 등과 같은 엔티티 그룹을 나타냄); "[영화] 출시일은 언제입니까(“when is [movie] release date)"의 템플릿 (여기서 [영화]는 "영화" 클래스인 엔티티 그룹을 나타냄); '새로운 [물리적 위치]가 언제 오픈됩니까(when does the new [physical location] open)"라는 템플릿(여기서 [물리적 위치]는 음식점, 업체 등의 물리적 위치 엔티티 그룹을 나타냄)과 같은 의문 질의 템플릿을 따르는 것에 기초하여 의문 질의로서 질의를 식별할 수 있다.
일부 구현 예에서, 상기 질의에 응답하는 어떠한 리소스도 하나 이상의 기준을 만족시키지 못한다는 결정에 응답하여 및/또는 상기 질의가 하나 이상의 기준을 만족시킨다는 결정에 응답하여, 리소스 기준 엔진(124)은 출력 생성 엔진(132)이 질의를 제출한 사용자에게 프레젠테이션을 위한 프롬프트 또는 다른 통지를 제공하게 할 수 있다. 예를 들어, 상기 프롬프트는 기준을 만족시키는 리소스의 부족을 사용자에게 알릴 수 있고 및/또는 기준을 만족시키는 리소스가 후속적으로 이용 가능한 경우, 연관된 콘텐츠가 자동적으로 사용자에게 제공될 것임을 사용자에게 알릴 수 있다. 이러한 구현예들 중 일부에서, 리소스 기준 엔진(124)은 미래 시간에 사용자에게 제시하기 위해 기준을 만족시키는 후속적으로 식별된 리소스로부터의 콘텐츠를 제공하게 하는 사용자와 관련하여 데이터를 저장하기 전에 상기 프롬프트에 응답하여 긍정(affirmative) 사용자 인터페이스 입력을 요구할 수 있다.
모니터링 엔진(126)은 리소스 기준 엔진(124)에 의해 식별된 질의에 응답하고 그리고 질의에 응답하여 이전에 식별된 리소스에 의해 만족되지 않은 하나 이상의 기준을 만족시키는 리소스의 존재를 모니터링한다. 소정의 질의에 대한 리소스가 기준을 만족시키는 것으로 결정한 것에 응답하여, 모니터링 엔진(126)은 출력 생성 엔진(132)과 통신하여 그 리소스에 기초한 콘텐츠가 소정의 질의(또는 그 변형)를 이전에 제출한 사용자(들)의 컴퓨팅 장치에 제공되도록 할 수 있다.
모니터링 엔진(126)은 리소스 기준 엔진(124)에 의해 식별된 질의에 응답하고 그리고 질의에 응답하여 이전에 식별된 리소스에 의해 만족되지 않는 하나 이상의 기준을 만족시키는 리소스의 존재를 모니터링하기 위해 다양한 기술을 이용할 수 있다. 예를 들어, 모니터링 엔진(126)은 질의를 주기적으로 및/또는 다른 간격(들)으로 검색 엔진(128)에 재전송할 수 있고, 응답형 리소스(들)가 지금 그 기준을 만족시키는지를 결정하기 위해 리소스 기준 엔진(124)과 통신한다. 또 다른 예로서, 상기 기준은 리소스가 질의에 대한 신뢰할 수 있는 콘텐츠를 포함하는 것으로 식별되는 것일 수 있고, 모니터링 엔진(126)은 (예를 들어, 검색 데이터베이스(154)에서) 리소스와 관련하여 저장된 해당 데이터에 응답하여 상기 콘텐츠를 식별할 수 있다. 예를 들어, 모니터링 엔진(126)은 그러한 데이터가 질의 및/또는 하나 이상의 관련 질의에 대한 리소스와 관련되어 있다는 통지를 다른 컴포넌트로부터 수신하는 것에 응답하여 모니터링하는 동안 그러한 데이터의 저장을 인식할 수 있다. 또한, 예를 들어, 모니터링 엔진(126)은 데이터베이스의 엔트리(예를 들어, 지식 그래프)가 현재 질의에 대한 원하는 정보를 나타내는 값(들)(이전 값이 있다면 이전 값이 아닌)을 포함하도록 업데이트된 하나 이상의 필드를 포함하는지를 결정할 수 있다.
품질 기준을 만족하는 소정의 리소스가 존재하고 품질 기준을 만족시키는 것으로 결정한 것에 응답하여, 출력 생성 엔진(132)은 사용자의 컴퓨팅 장치를 통해 사용자에게 제시(프레젠테이션)하기 위해 소정의 리소스에 기초한 콘텐츠를 제공할 수 있다. 예를 들어, 상기 콘텐츠는 질의를 제출하기 위해 이용된 사용자와 동일한 컴퓨팅 장치 및/또는 별도의 컴퓨팅 장치를 통해 사용자에게 제시하기 위해 제공될 수 있다. 상기 콘텐츠는 다양한 형태로 제시하기 위해 제공될 수 있다. 예를 들어, 상기 콘텐츠는 사용자의 이동 컴퓨팅 장치상의 시각적 및 또는 청각적 푸시 알림으로서 제공될 수 있고, 사용자가 질의 및/또는 다른 질의를 다시 제출하는 것과 독립적으로 나타날 수 있다. 또한, 예를 들어, 상기 콘텐츠는 사용자와 자동화된 어시스턴트 간의 대화 세션 동안 자동화된 어시스턴트의 시각적 및/또는 청각적 출력으로서 제공될 수 있으며, 여기서 대화 세션은 유사한 정보를 찾는 질의 및/또는 다른 질의와 관련이 없다.
도 2를 참조하면, 시스템(120)의 다양한 컴포넌트에 대한 추가적인 설명이 제공된다. 도 2에 도시된 바와 같이, 질의 처리 엔진(122)은 사용자 인터페이스 입력 장치(들)(102) 중 하나에 의해 생성된 사용자 인터페이스 입력에 기초한 질의(201)를 수신한다. 질의 처리 엔진(122)은 질의(201) 입력의 주석 및/또는 질의(201) 자체의 용어를 포함하는 주석된(annotated) 입력(203)을 생성한다. 검색 엔진(128)은 검색 파라미터를 결정하기 위해 주석된 입력(203)을 이용하고, 검색 파라미터에 기초하여 하나 이상의 검색 데이터베이스(154)를 검색하고, 그 검색에 응답하는 리소스(존재한다면)를 식별한다. 랭킹 엔진(130)은 하나 이상의 신호를 이용하는 응답 리소스(responsive resource)(존재한다면)를 랭킹화한다.
응답형 리소스가 리턴되고 및/또는 임계치 랭킹을 만족하면, 랭킹 엔진(130)은 질의(201)에 응답하여 제공하기 위해 검색 결과(205)를 출력 생성 엔진(132)에 제공한다. 예를 들어, 출력 생성 엔진(132)은 하나 이상의 사용자 인터페이스 출력 장치(들)(104)를 통해 제시하기 위해 검색 결과(205)를 제공할 수 있다.
리소스 기준 엔진(124)은 질의(201)에 응답하는 리소스(존재한다면)가 하나 이상의 기준을 만족하는지 여부를 결정하기 위해 검색 엔진(128), 랭킹 엔진(130) 및/또는 검색 데이터베이스(154)와 통신한다. 그러한 경우, 리소스 기준 엔진(124)은 질의(201)에 대한 더 이상의 동작을 수행하지 않을 수 있다.
그러나, 그렇지 않은 경우, 리소스 기준 엔진(124)은 추후에 사용자에게 제시하기 위해 기준을 만족시키는 후속적으로 식별된 리소스로부터의 콘텐츠를 제공하게 하는 사용자와 관련된 데이터를 저장할 수 있다. 일부 구현 예에서, 그러한 데이터를 저장하기 전에, 리소스 기준 엔진(124)은 질의(201)에 응답하여 제공하기 위해 프롬프트(207)를 출력 생성 엔진(132)에 제공할 수 있다. 프롬프트(207)는 기준을 만족시키는 리소스 부족을 사용자에게 알릴 수 있고 및/또는 기준을 만족시키는 리소스가 후속적으로 이용 가능한 경우, 연관된(관련된) 콘텐츠가 사용자에게 자동으로 제공될 것임을 사용자에게 알릴 수 있다. 이러한 구현예들 중 일부에서, 리소스 기준 엔진(124)은 먼저 사용자와 관련하여 데이터를 저장하기 전에 프롬프트(207)에 응답하여 긍정 사용자 인터페이스 입력을 요구할 수 있다.
모니터링 엔진(126)은 일정 기간에 걸쳐 질의에 응답하고 기준을 만족시키는 리소스의 존재를 모니터링할 수 있다. 그러한 리소스가 장래에 존재한다는 결정에 기초하여, 그리고 리소스 기준 엔진(124)에 의해 사용자와 관련하여 저장된 데이터에 기초하여, 모니터링 엔진(126)은 하나 이상의 사용자 인터페이스 출력 장치(들)(104)를 통해 사용자에게 제시하기 위해 제공하기 위한 새로운 콘텐츠(209)를 출력 생성 엔진(132)에 제공할 수 있다. 출력 생성 엔진(132)은 사용자 인터페이스 출력 장치(들)(104)(질의(201)를 제출하기 위해 이용된 컴퓨팅 장치와 다른 컴퓨팅 장치의 일부일 수 있음) 중 하나를 통해 사용자에게 제시하기 위해 새로운 콘텐츠(209)를 제공한다.
도 3a-6을 참조하여, 시스템(120)의 다양한 구현 예가 설명된다. 또한, 도 3a,도 3b, 도 4a, 도 4b, 도 5a 및 도 5b는 본 명세서에 개시된 구현 예에 따라 컴퓨팅 장치(110)의 사용자와 시스템(120) 사이에서 발생할 수 있는 상호 작용의 예들을 디스플레이하는 디스플레이 스크린(140)을 갖는 컴퓨팅 장치(110)를 도시한다. 시스템(120)의 하나 이상의 양태는 컴퓨팅 장치(110) 및/또는 컴퓨팅 장치(110)와 네트워크 통신하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다.
도 3a, 도 3b, 도 4a, 도 4b, 도 5a 및 도 5b의 디스플레이 스크린(140)은 사용자가 가상 키보드를 통해 사용자 인터페이스 입력을 생성하도록 선택할 수 있는 텍스트 입력 인터페이스 요소(188) 및 사용자가 마이크로폰을 통해 사용자 인터페이스 입력을 생성하도록 선택할 수 있는 음성 입력 인터페이스 요소(189)를 더 포함한다. 일부 구현 예에서, 사용자는 음성 입력 인터페이스 요소(189)의 선택없이 마이크로폰을 통한 사용자 인터페이스 입력을 생성할 수 있다. 예를 들어, 대화가 진행되는 동안, 사용자가 음성 입력 인터페이스 요소(189)를 선택할 필요가 없도록 마이크로폰을 통한 가청(청각적) 사용자 인터페이스 입력에 대한 액티브 모니터링이 발생할 수 있다. 이들 중 일부 및/또는 다른 구현예들에서, 음성 입력 인터페이스 요소(189)는 생략될 수 있다. 또한, 일부 구현 예에서, 텍스트 입력 인터페이스 요소(188)는 부가적으로 및/또는 대안적으로 생략될 수 있다(예를 들어, 사용자는 가청 사용자 인터페이스 입력만을 제공할 수 있다). 도 3a, 도 3b, 도 4a, 도 4b, 도 5a 및 도 5b의 디스플레이 스크린(140)은 컴퓨팅 장치(110)가 하나 이상의 동작을 수행하도록 사용자와 상호 작용할 수 있는 시스템 인터페이스 요소(181, 182, 183)를 더 포함한다.
도 6은 하나 이상의 마이크로폰 및 하나 이상의 스피커를 포함하는 컴퓨팅 장치(610)를 도시하고, 마이크로폰 (들) 및 스피커 (들)를 통해 컴퓨팅 디바이스 (610)의 사용자 (102)와 시스템 120)을 포함한다. 본 명세서에 설명된 구현 예에 따라 컴퓨팅 장치(610)의 사용자(102)와 시스템(120) 사이에서 마이크로폰(들) 및 스피커(들)를 통해 발생할 수 있는 대화의 예를 도시한다. 시스템(120)의 하나 이상의 양태들은 컴퓨팅 장치(610) 및/또는 컴퓨팅 장치(610)와 네트워크 통신하는 하나 이상의 컴퓨팅 장치들 상에서 구현될 수 있다.
도 3a에서, 사용자는 검색 질의 인터페이스 요소(370)에 도시된 바와 같이 질의 "애크미 위젯 출시일(Acme Widget Release Date)"를 제출했다. 질의에 응답하여, 시스템(120)은 질의에 응답하는 리소스를 획득하고, 디스플레이 스크린(140) 상에 표시하기 위한 리소스에 기초한 검색 결과(374A-C)를 제공한다. 시스템(120)은 또한 응답 리소스가 하나 이상의 기준을 만족시키지 못하는 것으로 결정하고, 결과로서 검색 결과(374A-C)와 함께 제시하기 위해 프롬프트(372)를 제공한다. 프롬프트(372)는 "훌륭한 결과(great result)"가 이용 가능하지 않다는 것을 사용자에게 통지하고, "보다 나은(better)" 결과가 이용 가능할 때 통지되도록 프롬프트(372)를 선택하도록 사용자를 유도한다.
사용자가 프롬프트(372)를 선택하는 것에 응답하여, 시스템(120)은 시스템(120)이 그러한 결과의 존재를 결정한 후에 미래에 "더 나은" 결과를 사용자에게 제공할 수 있다. 이 예가 도 3b에 도시되어 있다.
도 3b는 도 3a의 후속하는 시간에서의 도 3a의 클라이언트 컴퓨팅 장치(110)를 도시한다. 도 3b의 디스플레이 스크린(140)은 도 3b의 시간에 도 3a의 질의에 응답하는 리소스에 기초한 콘텐츠(376)의 예를 디스플레이한다. 시스템(120)은 하나 이상의 기준을 만족시키는 리소스에 기초하고, 기준을 만족시키지 않는 도 3a의 시간에 질의에 응답하는 리소스에 기초하고, 사용자가 도 3a의 프롬프트(372)를 선택하는 것에 기초하여 제시를 위해 콘텐츠(376)를 제공한다.
도 4a 및 도 4b는 도 3a 및 도 3b의 예 대신에 발생할 수 있는 또 다른 예를 도시한다. 도 4a 및 도 4b에 도시된 바와 같이, 클라이언트 컴퓨팅 장치(110)의 사용자는 자동화된 어시스턴트와 "채팅 유형" 대화 세션에 참여한다. 자동화된 어시스턴트는 시스템(120)에 의해 전체적으로 또는 부분적으로 구현될 수 있고 및/또는 시스템(120)과 인터페이스할 수 있다.
도 4a에 도시된 바와 같이, 사용자는 도 4a의 대화 세션의 일부로서 질의(480A)를 제공한다. 질의(480A)에 응답하여, 시스템(120)은 질의(480A)에 응답하는 리소스를 획득하고, 질의(480A)에 대한 명시적인 응답이 알려지지 않았음을 사용자에게 통지하지만 또한 질의(480A)에 응답하는 리소스들 중 2개의 리소스에 기초한 2개의 검색 결과를 제공하는 응답형 답변(responsive reply)(482A)을 제공한다. 시스템(120)은 또한 질의(480A)에 응답하는 리소스가 하나 이상의 기준을 만족시키지 못한다고 결정한다.
도 4b에 도시된 바와 같이, 사용자는 도 4a의 대화 세션 다음에 발생하는 다른 대화 세션에 참여한다. 도 4b의 대화 세션에서, 사용자는 "오늘의 날씨"의 질의(480B)를 제공한다. 시스템(120)은 질의(480B)에 응답하는 리소스를 획득하고, 상기 리소스에 기초한 응답형 답변(482B1)을 제공한다.
그 후, 시스템(120)은 도 4b의 시간에서 도 4a의 질의에 응답하는 리소스에 기초한 추가 답변(482B2)을 제공한다. 시스템(120)은 하나 이상의 기준을 만족시키는 리소스에 기초하여 그리고 상기 기준을 만족시키지 못하는 도 4a의 시간에서의 질의에 응답하는 리소스에 기초하여 제시하기 위한 추가 답변(응답)(482B2)을 제공한다.
도 4a 및 도 4b에 도시된 바와 같이, 시스템은 도 4a의 사용자에게 프롬프트를 제공하지 않고 및/또는 사용자가 질의(480A)와 관련하여 장래에 콘텐츠를 수신하기를 원한다는 것을 확인하도록 요구하지 않고 답변(응답)(482B2)을 제공한다. 또한, 도 4b에 도시된 바와 같이, 시스템(120)은, 답변(응답)(482B2)이 질의(480B)에 응답하지 않더라도 질의 (480B)에 즉시 후속하여 답변(응답)(482B2)을 제공한다. 이러한 구현예들 중 일부에서, 시스템(120)은 응답(482B2)을 제공하기 전에 자동화된 어시스턴트와의 대화 세션에 사용자가 참여하기를 기다릴 수 있으며 및/또는 대화 세션이 응답(482B2) 및/또는 질의(480A)(즉, 도 4b에서와 같이)와 관련이없는 경우에도 응답(482B2)을 제공할 수 있다. 이러한 구현예들 중 일부에서, 이는 사용자가 대화 세션에 이미 참여하고 있는 동안 시스템(120)이 응답(482B2)을 제공할 수 있게 하며, 이는 사용자에 대한 교란 및/또는 도 3b와 같이 푸시(push)" 통지가 대신 제공될 경우 발생할 수 있는 연산 리소스의 사용을 감소시킬 수 있다. 일부 구현 예에서, 시스템(120)은 도 4a와는 별도의 대화 세션임을 결정하는 것에 기초하여 대화 세션에서 응답(482B2)을 제공할 수 있다.
본 명세서에 사용된 바와 같이, "대화(다이얼로그) 세션"은 사용자와 자동화된 어시스턴트 사이의 하나 이상의 메시지의 논리적으로 독립적인 교환(logically-self-contained exchange)을 포함할 수있다. 자동화된 어시스턴트는 세션들 간의 시간 경과, 세션들 간의 사용자 컨텍스트(예를 들어, 위치, 예정된 회의 전/도중/이후 등)의 변경, 사용자와 자동화된 어시스턴트 사이의 대화가 아닌, 사용자와 클라이언트 장치 사이의 하나 이상의 개입 상호 작용의 검출(예를 들어, 사용자가 잠시 동안 애플리케이션을 스위칭하고, 사용자가 그 후에 멀리 걸어서 독립형 음성 활성화 제품으로 리턴함), 세션들 사이의 클라이언트 장치의 잠금/슬리핑, 자동화된 어시스턴트의 하나 이상의 인스턴스들과의 인터페이스를 위해 사용되는 클라이언트 장치들의 변경 등과 같은 다양한 신호에 기초하여 사용자와의 여러 대화 세션을 구별할 수 있다.
또한, 도 5a 및 도 5b는 도 3a 및 도 3b의 실시예 및 도 4a 및 4b의 실시예 대신에 발생할 수 있는 또 다른 예를 도시한다. 도 5a 및 도 5b를 참조하면, 클라이언트 컴퓨팅 장치(110)의 사용자는 자동화된 어시스턴트와 "채팅 유형" 대화 세션에 참여한다. 자동화된 어시스턴트는 시스템(120)에 의해 전체적으로 또는 부분적으로 구현될 수 있고 및/또는 시스템(120)과 인터페이스할 수 있다.
도 5a를 참조하면, 사용자는 도 5a의 대화 세션의 일부로서 질의(580A1)를 제공한다. 질의(580A1)에 응답하여, 시스템(120)은 질의(580A1)에 응답하는 임의의 획득된 리소스가 하나 이상의 품질 기준을 만족시키지 못한다고 결정한다. 상기 리소스가 품질 기준을 만족시키지 못한다는 결정에 응답하여, 시스템(120)은 질의(580A)에 대한 명백한 응답이 알려지지 않은 것을 사용자에게 통지하고, 출시일이 공지(발표)될 때 사용자가 통지받기를 원하는지 여부를 사용자에게 요구하는 프롬프트를 사용자에게 제공하는 응답형 답변(582A)을 제공한다. 사용자는 출시일이 발표될 때 사용자가 통지받기를 원하는 것을 확인하는 추가 입력(580A2)을 제공한다.
도 5b를 참조하면, 사용자는 도 5a의 대화 세션 다음에 발생하는 다른 대화 세션에 참여한다. 도 5b의 대화 세션에서, 시스템(120)은 도 5b의 시간에서 도 5a의 질의에 응답하는 리소스에 기초한 콘텐츠(582B)를 제공한다. 도 5b를 참조하면, 시스템(120)은 하나 이상의 기준을 만족시키는 자원에 기초하고, 기준을 만족시키지 못하는 도 5a의 시간에의 질의에 응답하는 리소스에 기초하고, 그리고 도 5a의 추가 입력(580A1)에 기초하여, 프레젠테이션을 위해 콘텐츠(582B)를 제공한다. 도 5b에 도시된 바와 같이, 시스템(120)은 자동화된 어시스턴트와의 대화 세션을 가능하게 하지만 사용자가 대화 세션에서 임의의 사용자 인터페이스 입력을 제공하기 전에 컴퓨팅 장치(110)의 애플리케이션에 액세스하는 것에 응답하여 콘텐츠(582B)를 제공한다. 이러한 구현예들 중 일부에서, 이는 사용자가 대화 세션에 참여할 준비를 하는 동안 시스템(120)이 콘텐츠(582B)를 제공할 수 있게 하며, 이는 이는 사용자에 대한 교란(disturbance) 및/또는 도 3b와 같이 푸시(push)" 통지가 대신 제공될 경우 발생할 수 있는 연산 리소스의 사용을 감소시킬 수 있다.
도 6은 도 1 및도 2 다음에 발생할 수있는 예를 도시한다. 도 3b, 도 4b 및/또는 도 5b 대신에 발생할 수 있고, 도 3a, 도 4a 및/또는 도 5a 다음에 발생할 수 있는 예를 도시한다.
도 6을 참조하면, 사용자(102)(클라이언트 컴퓨팅 장치(101)와 동일한 사용자)는 컴퓨팅 장치(610) 및/또는 시스템(120)에 의해 전체적으로 또는 부분적으로 구현되는 자동화된 어시스턴트와 사용자 사이의 대화의 일부로서 음성 입력(680A)을 제공한다. 음성 입력(680A)에 응답하여, 자동화된 어시스턴트는 컴퓨팅 장치(610)의 스피커를 통해 청각적 프레젠테이션을 위한 응답형 답변(responsive reply)(682A)을 제공한다.
그 후, 자동화된 어시스턴트는 도 6의 시간에 이전 질의(예를 들어, 도 3a, 도 4a 또는 도 5a의 질의)에 응답하는 리소스에 기초한 추가 답변(응답)(682B)을 제공한다. 자동화된 어시스턴트는 리소스가 하나 이상의 기준을 만족시키는 것으로 결정하는 시스템(120)에 기초하고, 이전 질의의 시간에 기준을 만족시키지 않는 이전 질의에 응답하는 리소스에 기초하여 프레젠테이션을 위한 추가 답변(응답)(682B)을 제공한다. 도 6을 참조하면, 응답(682B)이 음성 입력(680A)에 응답하지 않더라도, 자동화된 어시스턴트는 음성 입력(680A)에 대한 응답(682A) 바로 뒤에 응답(682B)을 제공한다. 이러한 구현예들 중 일부에서, 시스템(120)은, 대화 세션이 응답(682B) 및/또는 이전 질의와 관련이 없는 경우에도, 응답(682B)을 제공하기 전에 자동화된 어시스턴트와의 대화 세션에 참여하도록 사용자를 기다릴 수 있고 및/또는 응답(682B)을 제공할 수 있다. 도 6은 후속하여 결정된 리소스에 기초한 콘텐츠를 청각적으로 제공하는 것을 도시하지만, 초기 질의 및 해당 상호 작용은 또한 컴퓨팅 장치(610) 및/또는 다른 컴퓨팅 장치를 통해 청각적으로 발생할 수 있는 것으로 이해된다.
도 7은 본 명세서의 구현예에 따른 예시적인 방법(700)을 도시하는 흐름도이다. 편의상, 흐름도의 동작은 동작을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 시스템(120)과 같은 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 또한, 방법(700)의 동작이 특정 순서로 도시되어 있지만, 이것에 한정되는 것은 아니다. 하나 이상의 동작이 생략 또는 추가될 수 있다.
블록(750)에서, 시스템은 사용자 질의를 수신한다.
블록(752)에서, 시스템은 사용자 질의(쿼리)에 대한 응답하는 리소스가 있는지를 결정한다. 시스템이 사용자 질의에 응답하는 리소스가 없다고 결정하면, 시스템은 블록(758)으로 진행한다. 블록(758)은 이하에서 더 상세하게 설명된다.
블록(752)에서 시스템이 사용자 질의에 응답하는 자원이 있다고 결정하면, 시스템은 블록(754)으로 진행한다. 블록(754)에서, 시스템은 응답하는 리소스들 중 임의의 리소스가 하나 이상의 기준을 만족시키는지를 결정한다. 시스템이 응답하는 리소스들 중 하나 이상이 기준을 만족한다고 결정하면, 시스템은 블록(756)으로 진행하고 방법(700)은 종료한다. 블록(756)에서, 시스템은 질의에 응답하여, 하나 이상의 응답하는 리소스(응답형 리소스)에 기초한 검색 결과를 제공한다.
블록(754)에서, 시스템이 응답형 리소스들 중 어느 것도 기준을 만족시키지 않는다고 결정하면, 시스템은 블록(758)으로 진행하고, 시스템은 선택적으로 블록(756)으로 진행할 수 있다.
블록(758)에서, 시스템은 추후에 사용자에게 프레젠테이션하기 위해 제공되는, 기준을 만족하는 후속적으로 식별된 리소스로부터의 콘텐츠를 야기하는 사용자와 관련된 데이터를 저장한다.
블록(760)에서, 시스템은 블록(750)의 질의에 응답하고 기준을 만족시키는 소정의 리소스의 존재를 모니터링한다. 블록(762)에서, 소정의 리소스가 결정되었는지가 결정된다. 그렇지 않은경우, 시스템은 블록(760)에서 모니터링을 계속한다.
소정의 리소스가 결정되면, 시스템은 블록(764)으로 진행한다. 블록(764)에서, 시스템은 소정의 리소스에 기초한 콘텐츠를 사용자에게 프레젠테이션하기 위해 제공한다. 블록(764)에서, 시스템은 블록(758)에서 사용자와 관련하여 저장된 데이터에 기초하여 사용자에게 콘텐츠를 제공할 수 있다. 블록(764)은 블록(750) 및/또는 블록(756)(수행되는 경우)으로부터 일시적으로 (예를 들어, 수 시간, 일 또는 주 단위로) 분리되는 시간에 발생한다.
일부 구현 예에서, 블록(764)은 블록(766)에서, 하나 이상의 제공 기준이 만족되는지를 결정하는 것에 기초하여 수행된다. 사용자가 자동화된 어시스턴트와 대화 세션에 관여(참여)하고, 특정 애플리케이션을 오픈하고(예를 들어, 자동화된 어시스턴트와의 대화 세션을 가능하게 하는 것) 및/또는 다른 제공 기준과 같은 다양한 제공 기준이 이용될 수 있다.
도 8은 여기에 기술된 기술들의 하나 이상의 양태들을 수행하기 위해 선택적으로 이용될 수 있는 예시적인 컴퓨팅 장치(810)의 블록도이다. 일부 구현 예에서, 클라이언트 컴퓨팅 장치, 시스템(120) 및/또는 다른 컴포넌트(들) 중 하나 이상은 예시적인 컴퓨팅 장치(810)의 하나 이상의 컴포넌트를 포함할 수 있다.
컴퓨팅 장치(810)는 전형적으로 버스 서브시스템(812)을 통해 다수의(복수의) 주변 장치와 통신하는 적어도 하나의 프로세서(814)를 포함한다. 이러한 주변 장치는 예를 들어 메모리 서브시스템(825) 및 파일 저장 서브시스템(826)을 포함하는 저장 서브시스템(824), 사용자 인터페이스 출력 장치(820), 사용자 인터페이스 입력 장치(822) 및 네트워크 인터페이스 서브시스템(816)을 포함할 수 있다. 입력 및 출력 장치는 컴퓨팅 장치(810)와의 사용자 상호 작용을 허용한다. 네트워크 인터페이스 서브시스템(816)은 외부 네트워크에 인터페이스를 제공하고, 다른 컴퓨팅 장치의 해당 인터페이스 장치에 연결된다.
사용자 인터페이스 입력 장치(822)는 키보드, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿과 같은 포인팅 장치, 스캐너, 디스플레이에 통합된 터치 스크린, 음성 인식 시스템과 같은 오디오 입력 장치, 마이크로폰 및/또는 다른 유형의 입력 장치를 포함할 수 있다. 일반적으로, 용어 "입력 장치"의 사용은 정보를 컴퓨팅 장치(810) 또는 통신 네트워크상에 입력하는 모든 가능한 유형의 장치 및 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 장치(820)는 디스플레이 서브시스템, 프린터, 팩스 머신, 또는 오디오 출력 장치와 같은 비 시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD)와 같은 평판 장치, 프로젝션 장치, 또는 가시적 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 또한 오디오 출력 장치를 통한 비 시각적 디스플레이를 제공할 수 있다. 일반적으로, 용어 "출력 장치"의 사용은 컴퓨팅 장치(810)로부터 사용자 또는 다른 기계 또는 컴퓨팅 장치로 정보를 출력하는 모든 가능한 유형의 장치 및 방법을 포함하도록 의도된다.
저장 서브시스템(824)은 여기에 설명된 일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브시스템(824)은 도 7의 방법의 선택된 양태들을 수행하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈은 일반적으로 프로세서(814) 단독으로 또는 다른 프로세서와 함께 실행된다. 저장 서브시스템(824)에서 사용되는 메모리(825)는 프로그램 실행 동안 명령어 및 데이터의 저장을 위한 메인 랜덤 액세스 메모리(RAM)(630) 및 고정된 명령어들이 저장되는 판독 전용 메모리(ROM)(632)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브시스템(826)은 프로그램 및 데이터 파일을위한 영구 저장 장치를 제공할 수 있으며, 하드 디스크 드라이브, 관련 이동식 매체를 갖는 플로피 디스크 드라이브, CD-ROM 드라이브, 광 드라이브 또는 이동식 매체 카트리지를 포함할 수 있다. 특정 구현 예의 기능을 구현하는 모듈은 저장 서브시스템(824)의 파일 저장 서브시스템(826) 또는 프로세서(들)(814)에 의해 액세스 가능한 다른 머신에 의해 저장될 수 있다.
버스 서브시스템(812)은 컴퓨팅 장치(810)의 다양한 컴포넌트들 및 서브시스템들이 의도된 바와 같이 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브시스템(812)은 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브시스템의 다른 구현 예는 다수의 버스를 사용할 수 있다.
컴퓨팅 장치(810)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 장치를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 8에 도시된 컴퓨팅 장치(810)의 설명은 단지 일부 구현 예를 설명하기 위한 특정 예로서만 의도된다. 컴퓨팅 장치(810)의 많은 다른 구성은 도 8에 도시된 컴퓨팅 장치보다 많은 또는 더 적은 컴포넌트를 가질 수 있다.
여기에 설명된 시스템이 사용자에 대한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 경우, 사용자는 프로그램 또는 피처가 사용자 정보(예, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 지리적 위치에 대한 정보)를 수집하는지 또는 사용자와 더 관련이 있을 수 있는 콘텐츠 서버로부터 콘텐츠를 수신할지 여부 및/또는 수신 방법을 제어할 수 있는 기회를 제공받을 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거될 수 있도록 저장 또는 사용되기 전에 하나 이상의 방법으로 취급될 수 있다. 예를 들어, 사용자의 신원정보가 처리되어 사용자에 대한 개인 식별 정보가 결정될 수 없거나 사용자의 지리적 위치가 지리적 위치 정보가 획득되는 곳(예: 도시, 우편 번호 또는 주 수준)으로 일반화될 수 있으므로 사용자의 특정 지리적 위치를 결정할 수 없다. 따라서, 사용자는 사용자에 관한 정보 수집 방법 및/또는 사용 방법을 제어할 수 있다.
일부 구현 예가 본 명세서에서 설명되고 도시되었지만, 기능을 수행하고 및/또는 결과 및/또는 본원에 기술된 하나 이상의 장점을 얻기 위한 다양한 다른 수단 및/또는 구조가 이용될 수 있으며, 이러한 변형 및/또는 수정은 본 명세서에서 설명된 구현예들의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 본 명세서에 기술된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것이며, 실제 파라미터, 치수, 재료 및/또는 구성은 특정 용도 또는 그 교시가 사용되는 용도에 따라 좌우될 것이다. 당업자는 일상적인 실험만을 사용하여 본 명세서에 설명된 특정 구현 예에 대한 다수의 등가물을 인식할 수 있거나 또는 확인할 수 있을 것이다. 따라서, 전술한 구현 예는 단지 예로서 제시되고, 첨부된 청구 범위 및 그 균등물의 범위 내에서 구현예는 구체적으로 기술되고 청구된 것과 다르게 실시될 수 있다는 것을 이해해야 한다. 본 개시의 구현예는 여기에 기술된 각각의 개별적인 특징, 시스템, 아티클, 재료, 키트 및/또는 방법에 관한 것이다. 또한, 그러한 피쳐, 시스템, 아티클, 재료, 키트 및/또는 방법이 서로 불일치하지 않는 경우, 둘 이상의 그러한 피쳐, 시스템, 아티클, 재료, 키트 및/또는 방법의 모든 조합이 본 개시의 범위 내에 포함된다.
Claims (19)
- 하나 이상의 프로세서에 의해 구현되는 방법으로서,
하나 이상의 프로세서에 의해 구현되는 자동화된 어시스턴트와 사용자 간의 대화 세션에서:
상기 대화 세션의 일부로서 상기 사용자로부터 질의를 수신하는 단계 -상기 질의는 사용자 인터페이스 입력 장치를 통해 사용자에 의해 생성된 사용자 인터페이스 입력에 기초하며, 상기 질의는 상기 대화 세션의 일부로서 상기 자동화된 어시스턴트에 보내지며-;
제1 시간에, 상기 질의에 응답하는 임의의 리소스들 중 어느 것도 하나 이상의 기준을 만족시키지 않는 것으로 결정하는 단계 -상기 하나 이상의 기준은 하나 이상의 데이터베이스에서 상기 질의에 대한 신뢰(authoritative)할 수 있는 답변인 표시(indication)를 갖는 것을 포함함-;
상기 질의에 응답하는 상기 임의의 리소스들 중 어느 것도 상기 기준을 만족시키지 않는 것으로 결정하는 것에 기초하여:
상기 질의에 응답하고 그리고 상기 기준을 만족시키는 소정의 리소스의 존재에 대해 모니터링하는 단계 -상기 소정의 리소스는 상기 제1 시간에 상기 질의에 응답하는 리소스에 추가됨-;
상기 사용자와 상기 자동화된 어시스턴트 간의 후속 대화 세션에서, 그리고 상기 소정의 리소스의 존재를 결정하는 것에 기초하여:
상기 후속 대화 세션의 일부로서 상기 자동화된 어시스턴트로부터의 출력으로서 상기 사용자에게 프레젠테이션하기 위해, 상기 질의에 응답하고 그리고 상기 기준을 만족시키는 소정의 리소스에 기초한 콘텐츠를 제공하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제1항에 있어서, 상기 방법은,
상기 대화 세션에서 그리고 상기 질의에 응답하는 리소스들 중 어느 것도 상기 기준을 만족시키지 않는 것으로 결정하는 것에 응답하여:
상기 대화 세션의 일부로서 상기 자동화된 어시스턴트로부터의 출력으로서 사용자에게 프레젠테이션하기 위해, 상기 기준을 만족시키는 상기 질의에 응답하는 리소스들 중 아무것도 관련되지 않은 프롬프트를 제공하는 단계, 그리고
상기 프롬프트에 응답하여 상기 사용자로부터 추가 사용자 인터페이스 입력을 수신하는 단계를 더 포함하며,
상기 후속 대화 세션에서, 상기 소정의 리소스에 기초한 콘텐츠를 제공하는 단계는 상기 프롬프트에 응답하여 상기 사용자로부터 상기 추가 사용자 인터페이스 입력을 수신하는 것을 조건으로 하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제1항에 있어서, 상기 방법은, 상기 후속 대화 세션에서:
상기 후속 대화 세션의 일부로서 상기 사용자로부터 추가 사용자 인터페이스 입력을 수신하는 단계를 더 포함하며, 상기 추가 사용자 인터페이스 입력은 상기 질의와 무관하며,
상기 후속 대화 세션에서, 상기 소정의 리소스에 기초한 콘텐츠를 제공하는 단계는 상기 추가 사용자 인터페이스 입력을 수신하는 것에 기초하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 제3항에 있어서, 상기 방법은, 상기 후속 대화 세션에서:
상기 후속 대화 세션의 일부로서 상기 자동화된 어시스턴트로부터의 출력으로서 사용자에게 프레젠테이션하기 위해, 상기 추가 사용자 인터페이스 입력에 응답하는 초기 응답 출력을 제공하는 단계를 더 포함하며,
상기 콘텐츠를 제공하는 단계는 상기 초기 응답 출력을 제공한 후에 발생하고 그리고 상기 추가 사용자 인터페이스 입력 후에 상기 사용자에 의해 제공되는 임의의 추가 입력을 수신하지 않고 발생하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020227001307A KR102560508B1 (ko) | 2016-11-18 | 2016-11-18 | 대화형 어시스턴트 컨텍스트 포함하여 사후 검색 결과를 자율적으로 제공 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/106450 WO2018090338A1 (en) | 2016-11-18 | 2016-11-18 | Autonomously providing search results post-facto, including in conversational assistant context |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227001307A Division KR102560508B1 (ko) | 2016-11-18 | 2016-11-18 | 대화형 어시스턴트 컨텍스트 포함하여 사후 검색 결과를 자율적으로 제공 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190080941A KR20190080941A (ko) | 2019-07-08 |
KR102353285B1 true KR102353285B1 (ko) | 2022-01-19 |
Family
ID=60676279
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237025295A KR102650135B1 (ko) | 2016-11-18 | 2016-11-18 | 대화형 어시스턴트 컨텍스트 포함하여 사후 검색 결과를 자율적으로 제공 |
KR1020197017380A KR102353285B1 (ko) | 2016-11-18 | 2016-11-18 | 대화형 어시스턴트 컨텍스트 포함하여 사후 검색 결과를 자율적으로 제공 |
KR1020227001307A KR102560508B1 (ko) | 2016-11-18 | 2016-11-18 | 대화형 어시스턴트 컨텍스트 포함하여 사후 검색 결과를 자율적으로 제공 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237025295A KR102650135B1 (ko) | 2016-11-18 | 2016-11-18 | 대화형 어시스턴트 컨텍스트 포함하여 사후 검색 결과를 자율적으로 제공 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227001307A KR102560508B1 (ko) | 2016-11-18 | 2016-11-18 | 대화형 어시스턴트 컨텍스트 포함하여 사후 검색 결과를 자율적으로 제공 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11238116B2 (ko) |
EP (1) | EP3542282B1 (ko) |
JP (3) | JP6900482B2 (ko) |
KR (3) | KR102650135B1 (ko) |
CN (2) | CN114564656A (ko) |
DE (2) | DE102017122547A1 (ko) |
WO (1) | WO2018090338A1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018090338A1 (en) | 2016-11-18 | 2018-05-24 | Google Inc. | Autonomously providing search results post-facto, including in conversational assistant context |
CN109684443B (zh) * | 2018-11-01 | 2020-11-24 | 百度在线网络技术(北京)有限公司 | 智能交互方法和装置 |
CN110297971B (zh) * | 2019-05-30 | 2022-09-20 | 百度在线网络技术(北京)有限公司 | 个性化资源检索方法、装置、设备及计算机可读存储介质 |
CN113826090A (zh) | 2019-06-25 | 2021-12-21 | 谷歌有限责任公司 | 发展中的事件特定的临时知识图 |
KR102144370B1 (ko) * | 2019-11-18 | 2020-08-13 | 주식회사 오투오 | 대화형 정보 검색장치 |
US20210304904A1 (en) * | 2020-03-27 | 2021-09-30 | Samsung Electronics Co., Ltd. | Method and system for managing queries of user in iot network |
KR20220116949A (ko) * | 2021-02-16 | 2022-08-23 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 음성 인식 처리 방법 |
US11756575B2 (en) | 2021-02-16 | 2023-09-12 | Samsung Electronics Co., Ltd. | Electronic device and method for speech recognition processing of electronic device |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09245053A (ja) | 1996-03-05 | 1997-09-19 | Nippon Telegr & Teleph Corp <Ntt> | 情報検索サービス方法及びシステム |
JP2002169818A (ja) | 2000-12-04 | 2002-06-14 | Sanyo Electric Co Ltd | ユーザ支援装置およびシステム |
US9318108B2 (en) * | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US20080120199A1 (en) * | 2006-11-17 | 2008-05-22 | Tracy Pirnack | Method and system for upgrading a previously purchased media asset |
US7743047B2 (en) * | 2007-05-08 | 2010-06-22 | Microsoft Corporation | Accounting for behavioral variability in web search |
US7912852B1 (en) * | 2008-05-02 | 2011-03-22 | Amazon Technologies, Inc. | Search-caching and threshold alerting for commerce sites |
US7979415B2 (en) * | 2008-09-04 | 2011-07-12 | Microsoft Corporation | Predicting future queries from log data |
US7792709B1 (en) * | 2008-10-08 | 2010-09-07 | Trandal David S | Methods and systems for receipt management and price comparison |
US8458177B2 (en) | 2009-02-02 | 2013-06-04 | Yahoo! Inc. | Automated search |
CN105975632B (zh) * | 2011-06-24 | 2019-11-19 | 阿里巴巴集团控股有限公司 | 一种搜索方法、关系建立方法及相关设备 |
JP4980484B1 (ja) | 2011-09-26 | 2012-07-18 | 株式会社インテリジェントウェイブ | Webページ案内プログラム、Webページ応答サーバ、Webページ案内システム及びWebページの案内方法 |
JP6353786B2 (ja) * | 2011-09-30 | 2018-07-04 | アップル インコーポレイテッド | ハンズフリーインタラクションに対するユーザインターフェースの自動適合化 |
CN102436510A (zh) * | 2011-12-30 | 2012-05-02 | 浙江乐得网络科技有限公司 | 通过离线查询提高在线实时搜索质量的方法与*** |
KR20140019122A (ko) * | 2012-08-06 | 2014-02-14 | 김지호 | 모바일 개인정보를 이용한 인간관계 매칭 서비스 제공방법 |
KR20140091136A (ko) * | 2013-01-08 | 2014-07-21 | 박셈 | 양방향 통신 기술을 이용한 실시간 / 비실시간 마케팅 방법 |
US9189742B2 (en) * | 2013-11-20 | 2015-11-17 | Justin London | Adaptive virtual intelligent agent |
JP6257368B2 (ja) | 2014-02-18 | 2018-01-10 | シャープ株式会社 | 情報処理装置 |
US9754284B2 (en) * | 2014-05-22 | 2017-09-05 | Excalibur Ip, Llc | System and method for event triggered search results |
CN105279158A (zh) * | 2014-06-04 | 2016-01-27 | 同程网络科技股份有限公司 | 基于复杂查询条件下的酒店价格排序方法 |
JP6351562B2 (ja) * | 2014-11-12 | 2018-07-04 | 株式会社アドバンスト・メディア | 情報処理システム、受付サーバ、情報処理方法及びプログラム |
US10509829B2 (en) * | 2015-01-21 | 2019-12-17 | Microsoft Technology Licensing, Llc | Contextual search using natural language |
CN105991312B (zh) * | 2015-01-30 | 2019-06-18 | 深圳市腾讯计算机***有限公司 | 一种网络资源的排重方法及装置 |
CN105354283A (zh) * | 2015-10-30 | 2016-02-24 | 北京奇艺世纪科技有限公司 | 一种资源的搜索方法和装置 |
US10747804B2 (en) * | 2016-10-04 | 2020-08-18 | International Business Machines Corporation | Focus-assisted intelligent personal assistant query response determination |
WO2018090338A1 (en) | 2016-11-18 | 2018-05-24 | Google Inc. | Autonomously providing search results post-facto, including in conversational assistant context |
US10127227B1 (en) * | 2017-05-15 | 2018-11-13 | Google Llc | Providing access to user-controlled resources by automated assistants |
-
2016
- 2016-11-18 WO PCT/CN2016/106450 patent/WO2018090338A1/en unknown
- 2016-11-18 KR KR1020237025295A patent/KR102650135B1/ko active IP Right Grant
- 2016-11-18 JP JP2019527233A patent/JP6900482B2/ja active Active
- 2016-11-18 KR KR1020197017380A patent/KR102353285B1/ko active IP Right Grant
- 2016-11-18 EP EP16921672.8A patent/EP3542282B1/en active Active
- 2016-11-18 KR KR1020227001307A patent/KR102560508B1/ko active IP Right Grant
-
2017
- 2017-09-28 DE DE102017122547.1A patent/DE102017122547A1/de active Pending
- 2017-09-28 DE DE202017105914.6U patent/DE202017105914U1/de active Active
- 2017-09-29 CN CN202210070976.0A patent/CN114564656A/zh active Pending
- 2017-09-29 CN CN201710908300.3A patent/CN108073675B/zh active Active
- 2017-09-29 US US15/720,769 patent/US11238116B2/en active Active
-
2021
- 2021-06-16 JP JP2021100131A patent/JP7143481B2/ja active Active
-
2022
- 2022-01-10 US US17/572,452 patent/US11971935B2/en active Active
- 2022-09-14 JP JP2022146122A patent/JP7461428B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
KR102650135B1 (ko) | 2024-03-21 |
DE202017105914U1 (de) | 2017-12-04 |
US20180144055A1 (en) | 2018-05-24 |
CN108073675B (zh) | 2022-02-01 |
US11238116B2 (en) | 2022-02-01 |
DE102017122547A1 (de) | 2018-05-24 |
EP3542282A4 (en) | 2019-10-23 |
CN108073675A (zh) | 2018-05-25 |
JP7461428B2 (ja) | 2024-04-03 |
US20220129513A1 (en) | 2022-04-28 |
KR20230117252A (ko) | 2023-08-07 |
JP2021140827A (ja) | 2021-09-16 |
US11971935B2 (en) | 2024-04-30 |
CN114564656A (zh) | 2022-05-31 |
KR20190080941A (ko) | 2019-07-08 |
KR102560508B1 (ko) | 2023-07-28 |
EP3542282A1 (en) | 2019-09-25 |
WO2018090338A1 (en) | 2018-05-24 |
KR20220011220A (ko) | 2022-01-27 |
JP6900482B2 (ja) | 2021-07-07 |
JP2022179512A (ja) | 2022-12-02 |
EP3542282B1 (en) | 2024-04-10 |
JP2019537801A (ja) | 2019-12-26 |
JP7143481B2 (ja) | 2022-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102353285B1 (ko) | 대화형 어시스턴트 컨텍스트 포함하여 사후 검색 결과를 자율적으로 제공 | |
KR102005531B1 (ko) | 다중 사용자 메시지 교환 스레드에서 자동화 어시스턴트와의 상호 작용을 위한 제안 제공 | |
US11322140B2 (en) | Providing prompt in an automated dialog session based on selected content of prior automated dialog session | |
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 | |
KR102226243B1 (ko) | 메시지 교환 스레드를 사용한 효율적인 검색 촉진 | |
GB2556194A (en) | Autonomously providing search results post-facto, including in conversational assistant context |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |