KR102329378B1 - 봇들에 대한 의도-기반 검색을 위한 기술들 - Google Patents

봇들에 대한 의도-기반 검색을 위한 기술들 Download PDF

Info

Publication number
KR102329378B1
KR102329378B1 KR1020197031786A KR20197031786A KR102329378B1 KR 102329378 B1 KR102329378 B1 KR 102329378B1 KR 1020197031786 A KR1020197031786 A KR 1020197031786A KR 20197031786 A KR20197031786 A KR 20197031786A KR 102329378 B1 KR102329378 B1 KR 102329378B1
Authority
KR
South Korea
Prior art keywords
bot
user
messaging
bots
natural language
Prior art date
Application number
KR1020197031786A
Other languages
English (en)
Other versions
KR20190130157A (ko
Inventor
윌리 블랜딘
로랑 니콜라스 란도우스키
케말 엘 모우자히드
헨리 로메오 리리아니
Original Assignee
페이스북, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 페이스북, 인크. filed Critical 페이스북, 인크.
Priority to KR1020217037441A priority Critical patent/KR102451259B1/ko
Publication of KR20190130157A publication Critical patent/KR20190130157A/ko
Application granted granted Critical
Publication of KR102329378B1 publication Critical patent/KR102329378B1/ko

Links

Images

Classifications

    • 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/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

봇들에 대한 의도-기반 탐색을 위한 기술들이 설명된다. 일 실시예에서, 장치는 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신하도록 동작하는 봇 애플리케이션 인터페이스 구성요소로서, 상기 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대한 봇 능력을 자연 언어로 표현하는, 상기 봇 애플리케이션 인터페이스 구성요소; 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것으로서, 상기 사용자 서비스 프롬프트는 자연 언어로 표현되는, 상기 사용자 서비스 프롬프트 수신하기; 및 상기 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것에 응답하여 상기 사용자 클라이언트 디바이스에 대해 하나 이상의 선택된 볼트들을 식별하도록 동작하는 클라이언트 통신 구성요소; 및 상기 복수의 봇 능력 카탈로그들에 대해 상기 사용자 서비스 프롬프트를 매칭시킴으로써 상기 복수의 봇들 중 하나 이상의 선택된 봇들을 결정하도록 동작하는 상호작용 프로세싱 구성요소를 포함할 수 있다. 다른 실시예들이 설명되고 주장된다.

Description

봇들에 대한 의도-기반 검색을 위한 기술들
관련 출원들
본 출원은 35 U.S.C.§119(e) 하에서, 2017년 4월 12일에 출원된, 대리인 문서 번호 1360F0169.1의, "봇들에 대한 의도-기반 검색을 위한 기술들"이라는 제목의, 미국 특허 출원 번호 제15/485,665호에 대한 우선권의 이익을 주장하며, 이것은 전체적으로 참조로서 통합된다.
본 출원은 2017년 4월 12일에 출원된, 대리인 문서 번호 1360F0169.2의, "봇들에 대한 개인화된 검색을 위한 기술들"이라는 제목의, 미국 특허 출원 번호 제15/485,738호에 관한 것이며, 이것은 전체적으로 참조로서 통합된다.
본 출원은 2017년 4월 12일에 출원된, 대리인 문서 번호 1360F0169.3의, "봇들에 대한 이벤트-기반 추천들을 위한 기술들"이라는 제목의 미국 특허 출원 번호 제15/485,812호에 관한 것이며, 이것은 전체적으로 참조로서 통합된다.
본 출원은 2017년 4월 12일에 출원된, 대리인 문서 번호 136F0169.4의, "봇들에 대한 강화를 위한 기술들"이라는 제목의, 미국 특허 출원 번호 제15/485,853호에 관한 것이며, 이것은 전체적으로 참조로서 통합된다.
본 출원은 2017년 4월 12일에 출원된, 대리인 문서 번호 1360F0169.5의, "다중-사용자 봇 애플리케이션들을 위한 기술들"이라는 제목의, 미국 특허 출원 번호 제15/485,880호에 관한 것이며, 이것은 전체적으로 참조로서 통합된다.
사용자들은 메시징 시스템에서 서로 상호 작용하여, 둘 이상의 사용자들 사이에서의 텍스트-기반 대화에서 서로에 대해 앞뒤로 메시지들을 전송할 수 있다. 사용자는 메시징 시스템에서 그들과 연관된 사용자 계정을 가질 수 있고, 사용자 계정은 사용자에 대한 온라인 아이덴티티를 제공하고, 메시지들에 대한 목적지는 사용자로 향해지며, 일반적으로 메시징 시스템으로의 사용자 액세스 및 사용을 조정한다. 사용자는 이동 디바이스들(예컨대, 휴대폰들), 데스크탑 컴퓨터들, 웹 브라우저들, 전문화된 메시징 클라이언트들 등을 포함한, 다양한 엔드포인트들로부터 메시징 시스템을 액세스할 수 있다.
다음은 여기에서 설명된 몇몇 신규 실시예들에 대한 기본 이해를 제공하기 위해 단순화된 요약을 제공한다. 이러한 요약은 광대한 개요가 아니며, 주요/중대한 요소들을 식별하거나 또는 그것의 범위를 상세히 기술하도록 의도되지 않는다. 몇몇 개념들은 나중에 제공되는 더 상세한 설명에 대한 서곡으로서 단순화된 형태로 제공된다.
다양한 실시예들은 일반적으로 봇들을 위한 기술들에 관한 것이다. 몇몇 실시예들은 특히 봇들에 대한 의도-기반 및/또는 개인화된 검색을 위한 기술들에 관한 것이다. 몇몇 실시예들은 봇들에 대한 이벤트-기반 추천들에 관한 것이다. 몇몇 실시예들은 봇들에 대한 강화에 관한 것이다. 몇몇 실시예들은 다중-사용자 봇 애플리케이션들에 관한 것이다.
일 실시예에서, 예를 들면, 장치는 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신하도록 동작하는 봇 애플리케이션 인터페이스 구성요소로서, 여기에서 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대해 봇 능력을 자연 언어로 표현하는, 상기 봇 애플리케이션 인터페이스 구성요소; 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것으로, 상기 사용자 서비스 프롬프트는 자연 언어로 표현되는, 상기 사용자 서비스 프롬프트 수신하기; 및 상기 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것에 응답하여 상기 사용자 클라이언트 디바이스에 대해 하나 이상의 선택된 봇들을 식별하도록 동작하는 클라이언트 통신 구성요소; 및 상기 복수의 봇 능력 카탈로그들에 대하여 상기 사용자 서비스 프롬프트를 매칭시킴으로써 상기 복수의 봇들 중 하나 이상의 선택된 봇들을 결정하도록 동작하는 상호작용 프로세싱 구성요소를 포함할 수 있다. 다른 실시예들이 설명되고 주장된다.
또 다른 실시예에서, 예를 들면, 장치는 봇-서비스 시스템에서 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것으로서, 상기 사용자 서비스 프롬프트는 자연 언어로 표현되는, 상기 사용자 서비스 프롬프트를 수신하며 상기 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트는 수신하는 것에 응답하여 상기 사용자 클라이언트 디바이스에 대해 둘 이상의 필터링된 봇들을 식별하도록 동작하는 클라이언트 통신 구성요소; 및 복수의 봇들 중 둘 이상의 선택된 봇들을 결정하며 봇 적합성에 기초하여 상기 둘 이상의 선택된 봇들의 둘 이상의 필터링된 봇들을 결정하도록 동작하는 상호작용 프로세싱 구성요소를 포함할 수 있다. 다른 실시예들이 설명되고 주장된다.
또 다른 실시예에서, 예를 들면, 장치는 봇-서비스 시스템에서 복수의 에이전트들에 대한 복수의 에이전트-이벤트 가입들을 수신하도록 동작하는 봇 애플리케이션 인터페이스 구성요소; 사용자 계정과 연관된 이벤트를 검출하는 것으로, 상기 사용자 계정은 사용자 클라이언트 디바이스와 연관되는, 상기 이벤트를 검출하며; 하나 이상의 이벤트-응답 에이전트들을 결정하기 위해 상기 복수의 에이전트-이벤트 가입들에 대해 이벤트를 매칭시키도록 동작적인 상호작용 프로세싱 구성요소; 및 상기 이벤트를 검출하는 것에 응답하여 상기 사용자 클라이언트 디바이스에 대해 하나 이상의 이벤트-응답 에이전트들을 식별하도록 동작하는 클라이언트 통신 구성요소를 포함할 수 있다. 다른 실시예들이 설명되고 주장된다.
또 다른 실시예에서, 예를 들면, 장치는 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신하도록 동작하는 봇 애플리케이션 인터페이스 구성요소로서, 상기 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대해 봇 능력을 자연 언어로 표현하는, 상기 봇 애플리케이션 인터페이스 구성요소; 복수의 사용자 클라이언트 디바이스들로부터 복수의 사용자 서비스 프롬프트들을 수신하는 것으로, 상기 복수의 사용자 서비스 프롬프트들은 자연 언어로 표현되는, 상기 복수의 사용자 서비스 프롬프트들을 수신하며; 상기 복수의 사용자 서비스 프롬프트들을 수신하는 것에 응답하여 상기 복수의 사용자 클라이언트 디바이스로 선택된 봇들을 제공하도록 동작하는 클라이언트 통신 구성요소; 및 자연 언어 기계-학습 구성요소에 의해 생성된 봇 능력 표를 사용하여 상기 복수의 봇 능력 카탈로그들에 대해 상기 복수의 사용자 서비스 프롬프트들을 매칭시킴으로써 상기 복수의 사용자 프롬프트들에 대해 상기 복수의 봇들 중 선택된 봇들을 결정하고; 상기 선택된 봇들과의 사용자 상호작용들에 기초하여 봇 상호작용 이력을 기록하며; 상기 봇 상호작용 이력에 기초하여 자연 언어 기계-학습 구성요소를 업데이트하도록 동작하는 상호작용 프로세싱 구성요소를 포함할 수 있다. 다른 실시예들이 설명되고 주장된다.
또 다른 실시예에서, 예를 들면, 장치는 복수의 클라이언트 디바이스들 상에서 다중-사용자 인터페이스를 인스턴스화하는 것으로, 상기 인스턴스화하는 것은 상기 복수의 클라이언트 디바이스들 상에서의 다중-사용자 인터페이스의 적어도 일 부분의 디스플레이를 나타내는, 상기 인스턴스화하기; 상기 복수의 클라이언트 디바이스들 중 제 1 클라이언트 디바이스로부터 사용자-인터페이스 상호작용을 수신하며; 상기 사용자-인터페이스 상호작용에 기초하여 상기 복수의 클라이언트 디바이스들 상에서 상기 다중-사용자 인터페이스를 업데이트하도록 상기 프로세서 회로 상에서 동작적인 메시징 구성요소를 포함할 수 있다. 다른 실시예들이 설명되고 주장된다.
앞서 말한 것 및 관련된 결말들의 성취를 위해, 특정한 예시적인 양상들이 다음의 상세한 설명 및 부가적인 도면들과 관련되어 여기에서 설명된다. 이들 양상들은 여기에서 개시된 원리들이 실시될 수 있는 다양한 방식들을 나타내며 모든 양상들 및 그것의 등가물들은 청구된 주제의 범위 내에 있도록 의도된다. 다른 이점들 및 신규 특징들은 도면들과 함께 고려될 때 다음의 상세한 설명으로부터 명백해질 것이다.
발명에 따른 실시예들은 특히 방법, 시스템, 및 컴퓨터-판독 가능한 저장 매체에 관한 첨부된 청구항들에서 개시된다. 하나의 청구항 카테고리, 예컨대, 시스템에서 언급된 임의의 특징은 또한, 또 다른 청구항 카테고리, 예컨대, 방법, 저장 매체 또는 예를 들어 컴퓨터 프로그램 제품에서 주장될 수 있다. 뒤에서의 첨부된 청구항들에서 의존성들 또는 참조들은 단지 형식적인 이유들로 선택된다. 그러나, 다시 임의의 이전 청구항들(특히, 다수의 의존성들)에 대한 의도적인 참조에서 기인한 임의의 주제가 또한 주장될 수 있으며, 따라서 청구항들 및 그것의 특징들의 임의의 조합이 개시되며 첨부된 청구항들에서 선택된 의존성들에 관계없이 주장될 수 있다. 주장될 수 있는 주제는 첨부된 청구항들에서 제시된 바와 같은 특징들의 조합들 뿐만 아니라, 청구항들에서 특징들의 임의의 다른 조합을 또한 포함하며, 여기에서 청구항들에서 언급된 각각의 특징은 청구항들에서 임의의 다른 특징 또는 다른 특징들의 조합과 조합될 수 있다. 더욱이, 여기에서 설명되거나 또는 묘사된 실시예들 및 특징들 중 임의의 것은 별개의 청구항에서 및/또는 여기에서 설명되거나 또는 묘사된 임의의 실시예 또는 특징과 또는 첨부된 청구항들의 특징들 중 임의의 것과 임의로 조합하여 주장될 수 있다.
컴퓨터-구현 방법은: 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신하는 단계로서, 상기 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대해 봇 능력을 자연 언어로 표현하는, 상기 복수의 봇 능력 카탈로그 수신 단계; 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 단계로서, 상기 사용자 서비스 프롬프트는 자연 언어로 표현되는, 상기 사용자 서비스 프롬프트 수신 단계; 상기 복수의 봇 능력 카탈로그들에 대해 상기 사용자 서비스 프롬프트를 매칭시킴으로써 상기 복수의 봇들 중 하나 이상의 선택된 봇들을 결정하는 단계; 및 상기 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것에 응답하여 상기 사용자 클라이언트 디바이스에 대해 하나 이상의 선택된 봇들을 식별하는 단계를 포함할 수 있다.
컴퓨터-구현 방법은: 개발자 봇-구성 인터페이스를 통해 상기 복수의 봇 능력 카탈로그들 중 하나 이상의 봇 능력 카탈로그들을 수신하는 단계를 추가로 포함할 수 있다.
컴퓨터-구현 방법은 임의의 다른 방법과 조합하여: 상기 복수의 봇 능력 카탈로그들 중 하나 이상이 하나 이상의 예시적인 사용자 프롬프트들을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은, 임의의 다른 방법과 조합하여: 상기 사용자 프롬프트가 상기 사용자 클라이언트 디바이스 상에서 메시징 클라이언트를 통해 수신되며, 상기 하나 이상의 선택된 봇들은 선택적으로 상기 사용자 클라이언트 디바이스 상에서 상기 메시징 클라이언트에 대해 식별된다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은, 임의의 다른 방법과 조합하여: 상기 사용자 프롬프트가 둘 이상의 사용자들 사이에서의 상호 작용의 일 부분을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은, 임의의 다른 방법과 조합하여: 상기 복수의 봇 능력 카탈로그들을 자연 언어 프로세싱 구성요소로 제출하는 단계; 상기 자연 언어 프로세싱 구성요소로부터 봇 능력 표를 수신하는 단계; 사용자 프롬프트는 상기 자연 언어 프로세싱 구성요소로 제출하는 단계; 상기 자연 언어 프로세싱 구성요소로부터 사용자 의도를 수신하는 단계; 및 상기 봇 능력 표에 상기 사용자 의도를 비교함으로써 상기 하나 이상의 선택된 봇들을 결정하는 단계를 추가로 포함할 수 있다.
컴퓨터-구현 방법은, 임의의 다른 방법과 조합하여: 상기 봇 능력 표는 복수의 봇 능력 벡터들로서 상기 복수의 봇 능력 카탈로그들을 나타내고, 상기 사용자 의도는 사용자 의도 벡터로서 상기 사용자 프롬프트를 나타내고, 상기 봇 능력 표에 상기 사용자 의도를 비교하는 것은 상기 사용자 의도 벡터에 기초하여 상기 복수의 봇 능력 벡터들의 유사성 검색을 수행하는 것을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은, 임의의 다른 방법과 조합하여: 상기 자연 언어 프로세싱 구성요소는 자연 언어 기계-학습 구성요소를 포함한다는 것을 추가로 포함할 수 있으며, 상기 봇-서비스 시스템에 대한 봇 상호작용 이력에 기초하여 상기 자연 언어 기계-학습 구성요소를 교시하는 단계를 추가로 포함할 수 있다.
컴퓨터-구현 방법은, 임의의 다른 방법과 조합하여: 상기 메시징 봇은 메시지 스레드 내에서 참여자로서 표현되기에 적합한 네트워크-액세스 가능한 서비스로의 자동화 프론트-엔드이고, 상기 메시징 봇은: 특히 특정한 사용자와 상기 메시징 봇 사이에서의 1 대 1 메시지로서, 상기 메시징 봇을 명시적으로 포함하는 메시지 스레드에서, 또는 상기 메시징 봇이 정규 참여자가 아닌 메시지 스레드에서, 선택적으로 부합되며, 상기 메시징 봇은 상기 서비스와 상호작용할 목적들로 상기 메시지 스레드에서의 임시 참여자인 것을 추가로 포함할 수 있다.
장치는: 디바이스 상에서의 프로세서 회로; 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신하기 위해 상기 프로세서 회로상에서 동작적인 봇 애플리케이션 인터페이스 구성요소로서, 상기 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대해 봇 능력을 자연 언어로 표현하는, 상기 봇 애플리케이션 인터페이스 구성요소; 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것으로서, 상기 사용자 서비스 프롬프트는 자연 언어로 표현되는, 상기 사용자 서비스 프롬프트를 수신하며; 상기 사용자 클라이언트 디바이스로부터 상기 사용자 서비스 프롬프트를 수신하는 것에 응답하여 상기 사용자 클라이언트 디바이스에 대해 하나 이상의 선택된 봇들을 식별하도록 동작하는 클라이언트 통신 구성요소; 및 상기 복수의 봇 능력 카탈로그들에 대해 상기 사용자 서비스 프롬프트를 매칭시킴으로써 상기 복수의 봇들 중 상기 하나 이상의 선택된 봇들을 결정하도록 동작하는 상호작용 프로세싱 구성요소를 포함할 수 있다.
장치는 상기 프로세서 회로에 의해 실행될 때, 상기 프로세서 회로가 여기에서 설명된 방법들 중 임의의 것을 실행하게 하는 지시들을 포함한 비-일시적 컴퓨터-판독 가능한 매체를 추가로 포함할 수 있다.
장치는, 임의의 다른 장치와 조합하여: 상기 프로세서 회로상에서: 복수의 클라이언트 디바이스들 상에서 다중-사용자 인터페이스를 인스턴스화하는 것으로, 상기 인스턴스화하는 것은 상기 복수의 클라이언트 디바이스들의 각각 상에서 상기 다중-사용자 인터페이스의 적어도 일 부분의 디스플레이를 나타내는, 상기 인스턴스화하기; 상기 복수의 클라이언트 디바이스들 중 제 1 클라이언트 디바이스로부터 사용자-인터페이스 상호작용을 수신하며; 상기 사용자 인터페이스 상호작용에 기초하여 상기 복수의 클라이언트 디바이스들 상에서 상기 다중-사용자 인터페이스를 업데이트하도록 동작하는 상기 메시징 구성요소를 추가로 포함할 수 있으며; 및/또는 상기 봇 애플리케이션 인터페이스 구성요소는 봇 관리 구성요소 및/또는 봇 애플리케이션들을 위한 메시징 시스템에 대한 프론트-엔드로서 동작하기 위해 구성된다.
장치는, 임의의 다른 장치와 조합하여: 봇 관리 구성요소를 포함하며, 상기 봇 관리 구성요소는 상기 상호작용 프로세싱 구성요소로부터 사용자 의도를 수신하고, 상기 사용자 의도에 기초하여 상기 클라이언트 디바이스에 대한 메시징 봇 옵션들을 결정하며, 상기 클라이언트 디바이스로 상기 메시징 봇 옵션들을 전송하도록 동작 가능하고, 상기 클라이언트 디바이스로 상기 메시징 봇 옵션들을 전송하는 것은 선택적으로 상기 메시징 봇 옵션 구성을 메시지 큐에 부가하는 것을 포함한다는 것을 추가로 포함할 수 있다.
장치는, 임의의 다른 장치와 조합하여: 상기 메시징 봇 옵션 구성은 상기 메시징 봇과의 상호작용들을 가능하게 하는 제어들을 갖고 메시지 스레드를 디스플레이할 때 메시징 클라이언트에 대한 메시징 인터페이스를 구성하도록 동작 가능하며; 및/또는 상기 메시징 봇 옵션 구성은 복수의 메시징 봇 호출 제어들로 이루어지고, 각각의 호출 제어들은 상이한 메시징 봇과 연관된다는 것을 추가로 포함할 수 있다.
적어도 하나의 컴퓨터-판독 가능한 저장 매체는, 실행될 때, 상기 프로세서 회로가 여기에서 설명된 방법들 중 임의의 것을 실행하게 하는 지시들을 포함할 수 있다.
도 1은 소비자-대-기업 메시징 시스템의 실시예를 예시한다.
도 2는 소셜 그래프의 실시예를 예시한다.
도 3a는 메시징 봇 호출 제어들을 갖는 메시지 상호작용 디스플레이를 가진 사용자 인터페이스의 실시예를 예시한다.
도 3b는 메시징 봇 메뉴를 가진 사용자 인터페이스의 실시예를 예시한다.
도 3c는 다중-사용자 요청 제어를 갖는 메시징 봇 메뉴를 가진 사용자 인터페이스의 실시예를 예시한다.
도 3d는 2차 다중-사용자 인터페이스를 가진 사용자 인터페이스의 실시예를 예시한다.
도 3e는 다중-사용자 기여 요소를 포함한 구성된 서비스 요청에 대한 메시징 봇 메뉴를 위한 사용자 인터페이스의 실시예를 예시한다.
도 4a는 서비스 요청을 전달하는 관리 텍스트를 갖는 메시지 상호작용 디스플레이를 가진 사용자 인터페이스의 실시예를 예시한다.
도 4b는 다중-사용자 인터페이스의 2차 사용자에 맞춤화된 서비스 요청을 전달하는 관리 텍스트를 갖는 메시지 상호작용 디스플레이를 가진 사용자 인터페이스의 실시예를 예시한다.
도 5는 메시징 상호작용에 기초하여 사용자 의도를 결정하는 소비자-대-기업 메시징 시스템의 실시예를 예시한다.
도 6은 사용자 의도에 기초하여 메시징 봇 옵션 구성을 결정하는 소비자-대-기업 메시징 시스템의 실시예를 예시한다.
도 7은 사용자 정보 교환 및 봇 정보 교환에 기초하여 메시징 봇 옵션들을 결정하는 소비자-대-기업 메시징 시스템의 실시예를 예시한다.
도 8a는 도 1의 시스템에 대한 제 1 논리 흐름의 실시예를 예시한다.
도 8b는 도 1의 시스템에 대한 제 1 논리 흐름의 실시예를 예시한다.
도 8c는 도 1의 시스템에 대한 제 1 논리 흐름의 실시예를 예시한다.
도 8d는 도 1의 시스템에 대한 제 1 논리 흐름의 실시예를 예시한다.
도 8e는 도 1의 시스템에 대한 제 1 논리 흐름의 실시예를 예시한다.
도 9는 도 1의 시스템에 대한 집중화 시스템의 실시예를 예시한다.
도 10은 도 1의 시스템에 대한 분산형 시스템의 실시예를 예시한다.
도 11은 컴퓨팅 아키텍처의 실시예를 예시한다.
도 12는 통신 아키텍처의 실시예를 예시한다.
도 13은 라디오 디바이스 아키텍처의 실시예를 예시한다.
네트워크-연결된 컴퓨팅 디바이스들은 대인적 통신에 참여하기 위해 전례가 없는 능력을 그들의 사용자들에게 제공할 수 있다. 사람들은 그들의 친구들, 가족, 협력자들, 및 다른 동료들과의 메시징 상호작용들에 참여할 수 있다. 그들의 접촉들을 이용한 사용자의 메시지 교환들은 각각 별개의 메시지 스레드 내에서 유지될 수 있다.
이들 네트워크-연결된 컴퓨팅 디바이스들은 또한 네트워크-액세스 가능한 서비스들로의 액세스를 그것들의 사용자들에게 제공할 수 있다. 예를 들어, 수송 서비스들, 식사 서비스들, 엔터테인먼트 서비스들, 및 다른 서비스들은 사람들이 그들의 서비스들과 관계를 맺도록 그들의 클라이언트 디바이스들을 사용할 수 있게 하기 위해 웹 사이트들, 웹 애플리케이션들, 클라이언트 애플리케이션들, 또는 다른 네트워크-액세스 가능성 기술들을 사용할 수 있다. 몇몇 엔터테인먼트 또는 미디어 서비스들과 같은, 몇몇 경우들에서, 서비스는 클라이언트 디바이스들을 통해 배열되고 전달될 수 있다. 예를 들어, 음악은 클라이언트 디바이스를 통해 구매되며 재생을 위해 클라이언트 디바이스로 전달될 수 있다. 수송, 식사, 및 직접적 엔터테인먼트와 같은, 다른 경우들에서, 서비스는 클라이언트 디바이스들을 통해 배열될 수 있지만, 클라이언트 디바이스의 외부에서 수행된다. 예를 들어, 승차-공유(ride-sharing) 서비스는 클라이언트 디바이스를 통해 배열되지만 사용자에게 승차 공유를 제공하는 차량 및 운전자를 통해 수행될 수 있다.
몇몇 경우들에서, 네트워크-액세스 가능한 서비스의 사용은 한 명 이상의 사람과 관련될 수 있다. 특히 서비스로의 사용자의 액세스가 그들이 또한 메시징을 위해 사용하는 클라이언트 디바이스인 경우에, 사용자는 서비스가 관련되는 다른 사람들과의 메시징 클라이언트에서 네트워크-액세스 가능한 서비스에 관계함을 공유하는 것으로부터 이익을 얻을 수 있다. 이와 같이, 메시지 스레드들은 그들의 접촉들을 이용해서 사용자의 온라인 소셜 관계를 위한 허브들로서 동작할 수 있으며, 메시지 스레드들은 메시징을 위해 사용된 동일한 클라이언트를 통해 요청되고, 모니터링되거나, 또는 그것과 관계되는 서비스들을 통합한다.
메시징 콘텍스트를 통해 사용자가 서비스와 상호 작용하는 것을 돕기 위해, 서비스들은 메시징 시스템 내에서 메시징 봇들로서 표현될 수 있다. 메시징 봇은 메시지 스레드 내에서 참여자로서 표현될 수 있는 네트워크-액세스 가능한 서비스로의 자동화 프론트-엔드일 수 있다. 몇몇 경우들에서, 메시징 봇은 특정한 사용자와 메시징 봇 사이에서의 1-대-1 메시지 스레드와 같은, 메시징 봇을 명시적으로 포함하는 메시지 스레드에서 부합될 수 있다. 다른 경우들에서, 메시징 봇은 메시징 봇이 정규 참여자가 아닌 메시지 스레드에서 부합될 수 있으며, 메시징 봇은 서비스와 상호작용하는 목적들을 위한 메시지 스레드에서의 임시 참여자이다. 메시징 봇은 두 명의 사용자들 사이에서의 1-대-1 스레드인지 또는 다수의 사용자들 사이에서의 그룹 스레드인지에 관계없이, 임의의 다른 스레드에서 임시 참여자로서 포함될 수 있다.
몇몇 경우들에서, 네트워크-액세스 가능한 서비스의 사용은 한 명 이상의 사람과 관련될 수 있다. 특히 서비스로의 사용자의 액세스가 그들이 또한 메시징을 위해 사용하는 클라이언트 디바이스인 경우에, 사용자는 서비스와 관련되는 다른 사람들과 메시징 클라이언트에서의 네트워크-액세스 가능한 서비스로의 관계함을 공유하는 것으로부터 이익을 얻을 수 있다. 이와 같이, 메시지 스레드들은 그들의 접촉들과 사용자의 온라인 소셜 관계를 위한 허브로서 동작할 수 있으며, 메시지 스레드들은 메시징을 위해 사용된 동일한 클라이언트를 통해 요청되고, 모니터링되거나 또는 참여되는 서비스들을 통합한다.
메시징 콘텍스트를 통해 사용자가 서비스와 상호 작용하는 것을 돕기 위해, 서비스들은 메시징 시스템 내에서 메시징 봇들로서 표현될 수 있다. 메시징 봇은 메시지 스레드 내에서 참여자로서 표현될 수 있는 네트워크-액세스 가능한 서비스로의 자동화 프론트-엔드일 수 있다. 몇몇 경우들에서, 메시징 봇은 특정한 사용자와 메시징 봇 사이에서의 1-대-1 메시지 스레드와 같은, 메시징 봇을 명시적으로 포함하는 메시지 스레드에서 부합될 수 있다. 다른 경우들에서, 메시징 봇은 메시징 봇이 정규 참여자가 아닌 메시지 스레드에서 부합될 수 있으며, 메시징 봇은 서비스와 상호작용할 목적들을 위한 메시지 스레드에서의 임시 참여자이다. 메시징 봇은 두 명의 사용자들 사이에서의 1-대-1 스레드인지 또는 다수의 사용자들 사이에서의 그룹 스레드인지에 관계없이, 임의의 다른 스레드에서 임시 참여자로서 포함될 수 있다.
이와 같이, 사용자는 메시징 클라이언트의 친숙한 경험 내에서 네트워크 서비스들과 관계를 맺을 수 있다. 뿐만 아니라, 메시징 클라이언트를 사용함으로써, 사용자는 다른 사람들의 포함을 허용하기 위해 메시징 콘텍스트 내에서 네트워크 서비스들과 관계를 맺을 수 있다. 몇몇 경우들에서, 이것은 친구들 또는 가족이 수송 세부사항들에 대해 알게 하는 것과 같은, 서비스들에 대해 다른 사람들에게 간단히 알릴 수 있다. 다른 경우들에서, 이것은 식사, 승차, 엔터테인먼트, 또는 다른 서비스가 다수의 사람들의 사용을 위해 배열되는 경우와 같은, 다수의 사람들을 위한 서비스들의 수행을 가능하게 할 수 있다. 그 결과, 실시예들은 네트워크-액세스 가능한 서비스들을 사용하는 경험을 개선할 수 있으며 메시징 시스템의 사용자로의 네트워크-액세스 가능한 서비스들의 범위를 확대할 수 있다.
사용자들은 관계를 맺을 봇들을 제안받을 수 있다. 이들 제안들은 둘 이상의 사용자들 사이에서의 메시지 스레드의 콘텍스트 내에서 이루어질 수 있다. 이와 같이, 이들 제안들은 제안들을 디스플레이하기 위해 사용된 스크린 공간의 양을 제어하는 기술들을 사용하여 이루어질 수 있다. 이들 제안들은 선택될 때, 서비스 요청의 구성을 위해 메시징 봇과의 더 큰 인터페이스를 인스턴스화하는 제어들일 수 있다.
개발자는 그들의 메시징 봇의 능력들을 특정하기 위해 자연스러운 방법을 제공받음으로써 도움을 받을 수 있다. 봇 플랫폼은 개발자들이 개발자-정의 예들의 세트를 사용하여 그들의 봇들의 능력들을 정의할 수 있게 하는 봇 엔진을 제공할 수 있다. 예들은 개발자가 그들의 메시징 봇이 추천되게 해야 하는 예시적인 진술들 또는 대화들일 수 있다. 그 결과, 실시예들은 사용자로의 추천을 위한 메시징 봇들을 결정하는 어려움을 감소시킬 수 있다.
참조가 이제 도면들에 대해 이루어지며, 여기에서 유사한 참조 번호들은 그 전체에 걸쳐 유사한 요소들을 나타내기 위해 사용된다. 다음의 설명에서, 설명의 목적들을 위해, 다수의 특정 세부사항들은 그것의 철저한 이해를 제공하기 위해 제시된다. 그러나, 신규 실시예들은 이들 특정 세부사항들 없이 실시될 수 있다는 것이 명백할 수 있다. 다른 인스턴스들에서, 잘 알려진 구조들 및 디바이스들은 그것의 설명을 가능하게 하기 위해 블록도 형태로 도시된다. 의도는 청구된 주제와 일치하는 모든 수정들, 등가물들, 및 대안들을 커버하는 것이다.
여기에서 사용된 바와 같이 "a" 및 "b" 및 "c" 및 유사한 지정자들은 임의의 양의 정수를 나타내는 변수들이도록 의도된 것다는 것이 주의할 만하다. 따라서, 예를 들어, 구현이 a=5에 대한 값을 설정하면, 구성요소들(122-1 내지 122-a)로서 예시된 구성요소들(122)의 완전한 세트는 구성요소들(122-1, 122-2, 122-3, 122-4 및 122-5)을 포함할 수 있다. 실시예들은 이러한 맥락에서 제한되지 않는다.
도 1은 소비자-대-기업 통신 시스템(100)에 대한 블록도를 예시한다. 일 실시예에서, 소비자-대-기업 통신 시스템(100)은 하나 이상의 구성요소들을 포함한 소프트웨어 애플리케이션들을 가진 컴퓨터-구현된 시스템을 포함할 수 있다. 도 1에 도시된 소비자-대-기업 통신 시스템(100)은 특정한 토폴로지에서 제한된 수의 요소들을 갖지만, 소비자-대-기업 통신 시스템(100)은 주어진 구현에 대해 원하는 대로 대안적인 토폴로지들에서 더 많거나 또는 더 적은 요소들을 포함할 수 있다는 것이 이해될 수 있다.
소비자-대-기업 서비스(110)는 소비자들 및 기업들 사이에서 중재자로서 작용할 수 있다. 소비자들 및 기업들은 소비자-대-기업 서비스(110)의 사용자들 양쪽 모두일 수 있으며, 소비자들은 개인 사용자 계정에 의해 표현되고 기업은 거래 계정 및, 가능하게는 기업의 대표들 및 다른 고용인들과 연관된 개인 사용자 계정들과 같은, 기업과 연관된 하나 이상의 개인 사용자 계정들에 의해 표현된다. 소비자 사용자는 소셜 그래프에서 사용자 엔티티로 표현될 수 있다. 기업 또는 다른 상업적 사용자는 소셜 그래프에서 기업 엔티티에 의해 표현될 수 있다. 소비자 사용자 및 상업적 사용자 간의 관계는 소셜 그래프에서 사용자 엔티티 및 기업 엔티티 사이에서 하나 이상의 에지들에 의해 표현될 수 있다.
소비자-대-기업 서비스(110)는 메시징 시스템(140)을 포함할 수 있다. 메시징 시스템(140)은 일반적으로 개인 사용자들과 같은 개개의 엔티티들 및 기업들 및 다른 조직들과 같은 집단 엔티티들 사이에서 메시지들을 수신하고, 저장하며, 전달하도록 배열될 수 있다. 메시징 시스템(140)은 메시징 엔드포인트(125)와 같은, 메시징 엔드포인트들이 오프라인인 동안 메시지들을 저장하며 일단 메시징 엔드포인트들이 이용 가능하면 메시지들을 전달할 수 있다. 메시징 시스템(140)은 사용자가 동일한 사용자 계정에 대해 다수의 메시징 엔드포인트들(예컨대, 이동 디바이스 상에서의 메시징 클라이언트, 개인용 컴퓨터상에서의 웹 브라우저)을 사용할 수 있게 하며, 메시징 시스템(140)은 사용자 계정의 메시징 상태에 대해 메시징 엔드포인트들의 모두를 최신으로 유지한다.
소비자-대-기업 서비스(110)는 소셜 네트워킹 서비스(130)를 포함할 수 있다. 소셜 네트워킹 서비스(130)는 소셜 그래프를 나타내는 소셜 그래프 데이터 구조를 유지할 수 있다. 소셜 그래프는 사용자 엔티티들, 거래 엔티티들, 및 임의의 다른 종류의 엔티티와 같은, 엔티티들 사이에서의 관계들을 나타낼 수 있다. 소셜 그래프는 그래프 관계들로서 관계들을 나타낼 수 있으며, 여기에서 모든 정보는 그래프에서 특정한 노드에 부착되거나 또는 그래프에서 두 개의 노드들 사이에서의 특정한 노드에 부착되는 것으로 인코딩된다. 메시징 시스템(140)은 소셜 네트워킹 서비스(130)의 요소일 수 있으며, 소셜 그래프는 적어도 부분적으로, 소셜-네트워킹 정보를 포함한다. 소비자-대-기업 서비스(110)의 전체는 소셜 네트워킹 서비스의 요소이거나 또는 요소들로 구성될 수 있다.
소비자-대-기업 서비스(110)는 소비자 포털(150)을 포함할 수 있다. 소비자 포털(150)은 소비자들에 의해 사용되고 있는 클라이언트 애플리케이션들에 대한 소비자-대-기업 서비스(110)로의 통일된 엔트리 포인트일 수 있다. 소비자 포털(150)은 소비자-대-기업 서비스(110)를 사용하지 않거나 또는 그것을 사용한 거래에 참여하지 않는 사용자들을 포함한, 비-거래 엔티티들을 위한 일반적인 사용자 포털로서 작용할 수 있다. 소비자 포털(150)은 메시징 시스템(140) 및 소셜 네트워킹 서비스(130)로의 액세스를 제공할 수 있다. 몇몇 실시예들에서, 소셜 네트워킹 서비스(130)로의 모든 액세스는 소비자 포털(150)에 의해 중재될 수 있으며, 여기에서 소셜 네트워킹 서비스(130)의 정보는 사용자가 소셜 그래프 정보의 일부 또는 모두로의 직접적인 액세스를 갖지 않고 사용자를 대신하여 사용되고 관리된다. 몇몇 실시예들에서, 사용자는 그들의 사용자 계정을 사용하여 메시징 시스템(140)으로의 직접적인 액세스를 가질 수 있으며, 소비자 포털(150)은 소비자 포털(150)의 중재 없이 메시징 엔드포인트(125)와 메시징 시스템(140) 사이에서의 직접적인 네트워크 통신을 통해 제공된 일반 메시징 기능(예컨대, 친구들과의 메시징)을 가진 소비자-대-기업 서비스(110)의 소비자 기능들로 제한된다.
소비자-대-기업 서비스(110)는 기업 포털(160)을 포함할 수 있다. 기업 포털(160)은 기업 엔티티들에 의해 사용되는 클라이언트 애플리케이션에 대한 소비자-대-기업 서비스(110)로의 통일된 엔트리 포인트일 수 있다. 기업 포털(160)은 메시징 시스템(140) 및 소셜 네트워킹 서비스(130)로의 액세스를 제공할 수 있다. 몇몇 실시예들에서, 소셜 네트워킹 서비스(130)로의 모든 액세스는 기업 포털(160)에 의해 중재될 수 있으며 여기에서 소셜 네트워킹 서비스(130)의 정보는 소셜 그래프 정보의 일부 또는 모두로의 직접적인 액세스를 가진 기업 엔티티 없이 기업 엔티티 대신에 사용되고 관리된다. 몇몇 실시예들에서, 기업 엔티티는 그들의 거래 계정을 사용하여 메시징 시스템(140)으로의 직접적인 액세스를 가질 수 있으며, 기업 포털(160)은 기업 포털(160)의 중재 없이 하나 이상의 봇들(190)과 메시징 시스템(140) 사이에서의 직접적인 네트워크 통신을 통해 제공된 일반 메시징 기능(예컨대, 고객들과의 메시징)을 가진 소비자-대-기업 서비스(110)의 기업 기능들로 제한된다.
사용자는 소비자-대-기업 통신 시스템(100)에 참여하며 클라이언트 디바이스(120) 상에서 실행하는 메시징 엔드포인트(125) 소프트웨어 애플리케이션을 사용하여 소비자-대-기업 서비스(110)와 상호 작용할 수 있다. 클라이언트 디바이스(120)는 통상적으로 iPhone®, Android® 전화, 또는 다른 스마트폰과 같은 스마트폰 - 종래의 전화기의 것을 넘는 기능을 제공하는 소프트웨어 애플리케이션들을 실행할 수 있는 이동 전화 - 일 수 있다. 메시징 엔드포인트(125)는 구체적으로 소비자-대-기업 서비스(110)의 부분을 형성하는 특정한 메시징 시스템(140)과 연관될 수 있거나 또는 복수의 메시징 서비스들과 상호 작용하도록 동작하는 범용 메시징 클라이언트일 수 있다. 메시징 엔드포인트(125)는 메시징 태스크들 및 거래 태스크들의 수행을 위해 소비자 포털(150) 및 메시징 시스템(140) 중 하나 또는 양쪽 모두와 상호 작용할 수 있다.
기업 엔티티는 사용자로의 디스플레이를 위한 정보의 모음을 포함한 거래 표현으로 메시징 시스템에서 표현될 수 있다. 거래 표현은 기업 페이지를 포함할 수 있으며, 기업 페이지는 소비자-대-기업 통신 시스템(100) 내에서 기업의 아이덴티티이다. 기업 페이지는 기업 엔티티에 관한 정보를 디스플레이할 수 있다. 기업 페이지는 기업 엔티티에 대한 물리적 위치, 물리적 위치의 운영 시간들, 또는 기업 엔티티(예컨대, 기업 엔티티의 대표)가 소비자-대-기업 통신 시스템(100)을 통해 메시징을 위해 이용 가능한 시간들 중 하나 이상과 같은, 기업 엔티티에 대한 정보를 포함할 수 있다. 기업 페이지는 소셜 그래프에서 표현될 수 있는 바와 같이 소셜 네트워크 내에서 기업 엔티티를 "좋아하거나" 또는 "팔로우한" 시청 사용자의 친구들의 리스트와 같은, 기업 엔티티에 대한 소셜-네트워킹 정보를 포함할 수 있다.
거래 표현은 기업 엔티티에 정확하게 대응하지 않을 수 있다. 기업과 같은, 단일 기업 엔티티는 다수의 거래 표현들 및 그러므로 다수의 기업 페이지들을 가질 수 있다. 예를 들어, 단일 기업은 동일한 기업에 의해 소유되고 동작되는 상이한 브랜드들에 대한 상이한 표현들을 가질 수 있다. 소매상 또는 재판매자는 다수의 브랜드들을 팔 수 있으며 그들이 파는 상이한 브랜드들에 대해 상이한 표현들을 가질 수 있다. 기업은 미국에 대한 하나의 기업 페이지, 유럽에 대한 또 다른 것, 러시아에 대한 또 다른 것 등과 같은, 그들의 운영하는 상이한 지리적 영역들에 대해 상이한 표현들을 가질 수 있다.
메시징 콘텍스트 내에서 사용자가 서비스와 상호작용하는 것을 돕기 위해, 서비스들은 봇들(190)로 표현될 수 있다. 봇은 상호작용에서의 참여자로서 표현될 수 있는 네트워크-액세스 가능한 서비스에 대한 완전히 또는 부분적으로 자동화된 프론트-엔드일 수 있다. 몇몇 인스턴스들에서, 상호작용은 메시지 스레드 내에서 구체화된 메시징 상호작용을 포함할 수 있으며, 봇들(190)은 메시징 봇들을 포함한다. 몇몇 경우들에서, 메시징 봇은 특정한 사용자와 메시징 봇 사이에서의 1-대-1 메시지 스레드와 같은, 메시징 봇을 명시적으로 포함하는 메시지 스레드에서와 부합될 수 있다. 다른 경우들에서, 메시징 봇은 메시징 봇이 정규 참여자가 아닌 메시지 스레드에서와 부합될 수 있으며, 메시징 봇은 서비스와 상호작용할 목적들을 위한 메시지 스레들에서의 임시 참여자이다. 메시징 봇은 두 명의 사용자들 사이에서의 1-대-1 스레드인지 또는 둘 이상의 사용자들 사이에서의 그룹 스레드인지에 관계없이, 임의의 다른 스레드에서의 임시 참여자로서 포함될 수 있다.
봇들(190)은 메시징이 아닌 통신 채널들을 사용하여 사용자들과 상호작용할 수 있다. 예를 들어, 봇은 스마트폰, 개인용 컴퓨터, 음성-활성화 기기, 또는 사용자가 음성을 통해 상호작용할 수 있는 다른 디바이스와 같은, 음성 시스템을 통해 동작하는 음성 봇을 포함할 수 있다. 이들 실시예들에서, 음성 시스템은 봇들(190)을 대신하여 음성 인식 및 음성 생성을 수행할 수 있다. 다른 유형들의 대화식 시스템들은 봇들(190)과 사용자들 사이에서 중재하기 위해 사용될 수 있다.
거래 표현을 위한 메시징 봇은 메시징 시스템(140)에서 메시징 대화 시 제공될 수 있다. 메시징 시스템(140)의 사용자는 기업의 가상 표현을 포함하는 메시징 봇과의 메시징에 의해 기업과 상호작용할 수 있다. 메시징 봇은 구체적으로 기업 페이지로서 표현된 거래 표현에 대응할 수 있으며, 메시징 봇은 메시징 콘텍스트에서 기업 페이지의 표현이다. 봇과의 메시징은 그러므로 주로 기업으로부터 사용자들로 정보를 제공하는데 전용되는, 기업 페이지로부터, 사용자들 및 기업이 대화에 참여할 수 있는 대화식 메시징으로 거래 표현의 존재를 확장시킬 수 있다.
기업은 메시징 시스템(140)과 관계를 맺기 위해 하나 이상의 거래 애플리케이션들을 사용할 수 있다. 애플리케이션은 애플리케이션 프로그래밍 인터페이스(API)를 통해 메시징 시스템(140) 및/또는 소셜 네트워킹 시스템(130)으로의 액세스를 가능하게 하는 특정 등록에 대응할 수 있다. 애플리케이션은 애플리케이션이 어떻게 메시징 시스템(140)에 의해 접속될 수 있는지를 특정하는 애플리케이션에 대한 다양한 등록된 훅들을 통해 메시징 시스템(140)에 등록될 수 있다. 이들 훅들은 메시징 시스템(140) 내에서, 사용자 메시징과 같은, 이벤트들에 응답하여 애플리케이션에 접속하기 위해 사용될 수 있다. 애플리케이션은 인증 및 메시징 시스템(140)과의 정보의 안전한(예컨대, 암호화된) 수신 및 전송을 위해 사용될 수 있는 보안 토큰을 할당받을 수 있다. 애플리케이션은 메시징 시스템(140) 및/또는 소셜 네트워킹 서비스(130)를 가진 특정 AppID에 대응할 수 있다. 기업이 에이전트를 통해 그것이 제공하는 서비스들 및 제품들의 다수의 양상들을 드러낼 수 있기 때문에, 다수의 상이한 애플리케이션들이 메시징 시스템(140)을 통해 사용자와 상호 작용하기 위해 기업 엔티티에 의해 사용될 수 있다. 각각의 애플리케이션은 그것이 작동시키는, 기업 페이지들과 같은, 하나 이상의 거래 표현들에 대해 메시징 시스템(140)으로 가입될 수 있다.
네트워크(180)는 컴퓨터 디바이스들 사이에서 컴퓨터 송신들을 운반하도록 동작하는 임의의 형태의 컴퓨터 네트워크를 포함할 수 있다. 네트워크(180)는 인트라넷들 및 인터넷 중 하나 또는 양쪽 모두를 포함할 수 있다. 네트워크(180)는, 이동 클라이언트 디바이스(120)에 연결성을 제공하기 위해 사용될 수 있는 바와 같이, 셀룰러 데이터 및/또는 Wi-Fi 데이터 네트워크들을 포함할 수 있다.
소비자-대-기업 통신 시스템(100)은 사용자들 사이에서의 상호작용들로부터 생성된 지식을 사용할 수 있다. 소비자-대-기업 통신 시스템(100)은 소셜 네트워킹 서비스(130)의 구성요소를 포함할 수 있으며 소셜 네트워킹 서비스(130)의 보다 광범위한 상호작용들로부터 생성된 지식을 사용할 수 있다. 이와 같이, 소비자-대-기업 통신 시스템(100) 및 더 큰 소셜 네트워킹 서비스(130)의 사용자들의 프라이버시를 보호하기 위해, 소비자-대-기업 통신 시스템(100)은 예를 들면, 적절한 프라이버시 세팅들을 설정함으로써, 사용자들로 하여금 소비자-대-기업 통신 시스템(100)에 의해 로깅하거나 또는 다른 시스템들(예컨대, 제 3 자 시스템들)과 공유한 그들의 동작들에 참여하거나 또는 그것에서 탈퇴하도록 허용하는 허가 서버(또는 다른 적절한 구성요소(들))를 포함할 수 있다. 사용자의 프라이버시 세팅은 사용자와 연관된 어떤 정보가 로깅될 수 있는지, 사용자와 연관된 정보가 어떻게 로깅될 수 있는지, 사용자와 연관된 정보가 언제 로깅될 수 있는지, 누가 사용자와 연관된 정보를 로깅할 수 있는지, 사용자와 연관된 정보가 누구와 공유될 수 있는지, 및 어떤 목적들을 위해 사용자와 연관된 정보가 로깅되거나 또는 공유될 수 있는지를 결정할 수 있다. 허가 서버들 또는 다른 허가 구성요소들은 적절하게 블로킹, 데이터 해싱, 익명화, 또는 다른 적절한 기술들을 통해 소비자-대-기업 통신 시스템(100) 및 소셜 네트워킹 서비스(130)의 다른 요소들의 사용자들의 하나 이상의 프라이버시 세팅들을 시행하기 위해 사용될 수 있다. 예를 들면, 소셜 네트워킹 서비스(130)의 사용자들과 소셜 네트워킹 서비스(130) 사이에서의 상호 작용들이 미디어 콘텐트 선호들 및 콘텐트의 상이한 조각들에 대한 선호들 사이에서의 관계들을 학습하기 위해 사용될 수 있지만, 이들 상호작용들은 학습 프로세스 이전에 또는 그것의 부분으로서 익명화될 수 있다.
도 2는 소셜 그래프(200)의 예를 예시한다. 특정한 실시예들에서, 소셜-네트워킹 시스템은 소셜 그래프 데이터 구조로서 하나 이상의 데이터 저장소들에 하나 이상의 소셜 그래프들(200)을 저장할 수 있다.
특정한 실시예들에서, 소셜 그래프(200)는 다수의 사용자 노드들(202) 및 다수의 개념 노드들(204)을 포함할 수 있는, 다수의 노드들을 포함할 수 있다. 소셜 그래프(200)는 노드들을 연결하는 다수의 에지들(206)을 포함할 수 있다. 특정한 실시예들에서, 소셜-네트워킹 시스템, 클라이언트 시스템, 제 3 자 시스템, 또는 임의의 다른 시스템 또는 디바이스는 적절한 애플리케이션들을 위한 소셜 그래프(200) 및 관련된 소셜-그래프 정보를 액세스할 수 있다. 소셜 그래프(200)의 노드들 및 에지들은 데이터 오브젝트로서 예를 들어, 데이터 저장소(소셜-그래프 데이터베이스와 같은)에 저장될 수 있다. 이러한 데이터 저장소는 소셜 그래프(200)의 노드들 또는 에지들의 하나 이상의 검색 가능한 또는 질의 가능한 인덱스들을 포함할 수 있다.
특정한 실시예들에서, 사용자 노드(202)는 소셜-네트워킹 시스템의 사용자에 대응할 수 있다. 제한으로서가 아닌 예로서, 사용자는 소셜-네트워킹 시스템과 또는 그것을 통해 상호작용하거나 또는 통신하는 개인(인간 사용자), 엔티티(예컨대, 회사, 기업, 또는 제 3 자 애플리케이션), 또는 그룹(예컨대, 개인들 또는 엔티티들의)일 수 있다. 특정한 실시예들에서, 사용자가 소셜-네트워킹 시스템으로 계정을 등록할 때, 소셜-네트워킹 시스템은 사용자에 대응하는 사용자 노드(202)를 생성하며, 사용자 노드(202)를 하나 이상의 데이터 저장소들에 저장할 수 있다. 여기에서 설명된 사용자들 및 사용자 노드들(202)은, 적절한 경우, 등록된 사용자들 및 등록된 사용자들과 연관된 사용자 노드들(202)을 나타낼 수 있다. 또한, 또는 대안으로서, 여기에서 설명된 사용자 노드들(202)은, 적절한 경우, 소셜-네트워킹 시스템에 등록되지 않은 사용자들을 나타낼 수 있다. 특정한 실시예들에서, 사용자 노드(202)는 사용자에 의해 제공된 정보 또는 소셜-네트워킹 시스템을 포함한, 다양한 시스템들에 의해 수집된 정보와 연관될 수 있다. 제한으로서가 아닌 예로서, 사용자는 그들의 이름, 프로필 사진, 연락처 정보, 생일, 성별, 결혼 여부, 가족 여부, 직업, 교육 배경, 선호들, 관심사들, 또는 다른 데모그래픽 정보를 제공할 수 있다. 특정한 실시예들에서, 사용자 노드(202)는 사용자와 연관된 정보에 대응하는 하나 이상의 데이터 오브젝트들과 연관될 수 있다. 특정한 실시예들에서, 사용자 노드(202)는 하나 이상의 웹페이지들에 대응할 수 있다. 사용자 노드(202)는 소셜-네트워킹 시스템에서 사용자에 대한 고유 사용자 식별자와 연관될 수 있다.
특정한 실시예들에서, 개념 노드(204)는 개념에 대응할 수 있다. 제한으로서가 아닌 예로서, 개념은 장소(예를 들면, 영화관, 레스토랑, 랜드마크, 또는 도시와 같은); 웹사이트(예를 들면, 소셜-네트워크 서비스와 연관된 웹사이트 또는 웹-애플리케이션 서버와 연관된 제 3 자 웹사이트와 같은); 엔티티(예를 들면, 사람, 기업, 그룹, 스포츠팀, 또는 유명인사와 같은); 웹-애플리케이션 서버와 같은, 외부 서버상에 또는 소셜-네트워킹 시스템 내에 위치될 수 있는 리소스(예를 들면, 오디오 파일, 비디오 파일, 디지털 사진, 텍스트 파일, 구조화된 문서, 또는 애플리케이션과 같은); 실제 또는 지적 재산권(예를 들면, 조각품, 그림, 영화, 게임, 노래, 아이디어, 사진, 또는 논문과 같은); 게임; 활동; 아이디어 또는 이론; 또 다른 적절한 개념; 또는 둘 이상의 이러한 개념들에 대응할 수 있다. 개념 노드(204)는 사용자에 의해 제공된 개념의 정보 또는 소셜-네트워킹 시스템을 포함한, 다양한 시스템들에 의해 수집된 정보와 연관될 수 있다. 제한으로서가 아닌 예로서, 개념의 정보는 이름 또는 타이틀; 하나 이상의 이미지들(예컨대, 책의 커버 페이지의 이미지); 위치(예컨대, 주소 또는 지리적 위치); 웹사이트(URL과 연관될 수 있는); 연락처 정보(예컨대, 전화번호 또는 이메일 주소); 다른 적절한 개념 정보; 또는 이러한 정보의 임의의 적절한 조합을 포함할 수 있다. 특정한 실시예들에서, 개념 노드(204)는 개념 노드(204)와 연관된 정보에 대응하는 하나 이상의 데이터 오브젝트들과 연관될 수 있다. 특정한 실시예들에서, 개념 노드(204)는 하나 이상의 웹페이지들에 대응할 수 있다.
특정한 실시예들에서, 소셜 그래프(200)에서의 노드는 웹페이지("프로필 페이지"로서 불리울 수 있는)를 표현하거나 또는 그것에 의해 표현될 수 있다. 프로필 페이지들은 소셜-네트워킹 시스템에 의해 호스팅되거나 또는 그것으로 액세스 가능할 수 있다. 프로필 페이지들은 또한 제 3 자 서버와 연관된 제 3 자 웹사이트들 상에서 호스팅될 수 있다. 제한으로서가 아닌 예로서, 특정한 외부 웹페이지에 대응하는 프로필 페이지는 특정한 외부 웹페이지일 수 있으며 프로필 페이지는 특정한 개념 노드(204)에 대응할 수 있다. 프로필 페이지들은 다른 사용자들의 모든 또는 선택된 서브세트에 의해 볼 수 있을 것이다. 제한으로서가 아닌 예로서, 사용자 노드(202)는 대응하는 사용자-프로필 페이지를 가질 수 있으며 여기에서 대응하는 사용자는 콘텐트를 부가하고, 선언하거나, 또는 그 외 그 또는 그녀 스스로를 표현할 수 있다. 기업 페이지(205)와 같은 기업 페이지는 거래 엔티티를 위해 사용자-프로필 페이지를 포함할 수 있다. 제한으로서가 아닌 또 다른 예로서, 개념 노드(204)는, 특히 개념 노드(204)에 대응하는 개념에 관하여, 하나 이상의 사용자들이 콘텐트를 부가하고, 선언들을 하거나, 또는 그들 스스로를 표현할 수 있는 대응하는 개념-프로필 페이지를 가질 수 있다.
특정한 실시예들에서, 개념 노드(204)는 제 3 자 시스템에 의해 호스팅된 제 3 자 웹페이지 또는 리소스를 나타낼 수 있다. 제 3 자 웹페이지 또는 리소스는, 다른 요소들 중에서, 콘텐트, 선택 가능한 또는 다른 아이콘, 또는 동작 또는 활동을 나타내는 다른 상호 작용 가능한 오브젝트(예를 들면, JavaScript, AJAX, 또는 PHP 코드들로 구현될 수 있는)를 포함할 수 있다. 제한으로서가 아닌 예로서, 제 3 자 웹페이지는 "좋아요", "체크인", "먹기", "추천하기", 또는 다른 적절한 동작 또는 활동과 같은 선택 가능한 아이콘을 포함할 수 있다. 제 3 자 웹페이지를 보는 사용자는 아이콘들 중 하나(예컨대, "먹기")를 선택함으로써 동작을 수행할 수 있어서, 클라이언트 시스템으로 하여금 사용자의 동작을 나타내는 메시지를 소셜-네트워킹 시스템으로 전송하게 한다. 메시지에 응답하여, 소셜-네트워킹 시스템은 사용자에 대응하는 사용자 노드(202) 및 제 3 자 웹페이지 또는 리소스에 대응하는 개념 노드(204) 사이에 에지(예컨대, "먹기" 에지)를 생성하며 에지(206)를 하나 이상의 데이터 저장소들에 저장할 수 있다.
특정한 실시예들에서, 소셜 그래프(200)에서의 노드들의 쌍은 하나 이상의 에지들(206)에 의해 서로 연결될 수 있다. 노드들의 쌍을 연결하는 에지(206)는 노드들의 쌍 사이에서 관계를 나타낼 수 있다. 특정한 실시예들에서, 에지(206)는 노드들의 쌍 사이에서의 관계에 대응하는 하나 이상의 데이터 오브젝트들 또는 속성들을 포함하거나 또는 이를 나타낼 수 있다. 제한으로서가 아닌 예로서, 제 1 사용자는 제 2 사용자가 제 1 사용자의 "친구"”임을 나타낼 수 있다. 이러한 표시에 응답하여, 소셜-네트워킹 시스템은 제 2 사용자에게 "친구 요청"을 전송할 수 있다. 제 2 사용자가 "친구 요청"을 확인하면, 소셜-네트워킹 시스템은 소셜 그래프(200)에서 제 1 사용자의 사용자 노드(202)를 제 2 사용자의 사용자 노드(202)에 연결한 에지(206)를 생성하며 소셜-그래프 정보로서 에지(206)를 하나 이상의 데이터 저장소들에 저장할 수 있다. 도 2의 예에서, 소셜 그래프(200)는 사용자("Amanda") 및 사용자("Dorothy")의 사용자 노드들(202) 사이에서의 친구 관계를 나타내는 에지(206)를 포함한다 본 개시는 특정한 사용자 노드들(202)을 연결하는 특정한 속성들을 가진 특정한 에지들(206)을 설명하거나 또는 예시하지만, 본 개시는 사용자 노드들(202)을 연결하는 임의의 적절한 속성들을 가진 임의의 적절한 에지들(206)을 고려한다. 제한으로서가 아닌 예로서, 에지(206)는 우정, 가족 관계, 기업 또는 직장 관계, 팬 관계, 팔로워 관계, 방문자 관계, 가입자 관계, 상관/하급자 관계, 상호인과적 관계, 비-상호인과적 관계, 또 다른 적절한 유형의 관계, 또는 둘 이상의 이러한 관계들을 나타낼 수 있다. 게다가, 본 개시는 일반적으로 노드들을 연결되는 것으로 설명하지만, 본 개시는 또한 사용자들 또는 개념들을 연결되는 것으로 설명한다. 여기에서, 연결되는 사용자들 또는 개념들에 대한 참조들은, 적절한 경우, 하나 이상의 에지들(206)에 의해 소셜 그래프(200)에서 연결되는 이들 사용자들 또는 개념들에 대응하는 노드들을 나타낼 수 있다.
특정한 실시예들에서, 사용자 노드(202)와 개념 노드(204) 사이에서의 에지(206)는 개념 노드(204)와 연관된 개념을 향해 사용자 노드(202)와 연관된 사용자에 의해 수행된 특정한 동작 또는 활동을 나타낼 수 있다. 제한으로서가 아닌 예로서, 도 2에 예시된 바와 같이, 사용자는 개념을 "좋아함", "참석함", "플레이함", "청취함", "요리함", "근무함" 또는 "시청"할 수 있으며, 그 각각은 에지 유형 또는 서브유형에 대응할 수 있다. 개념 노드(204)에 대응하는 개념-프로필 페이지는, 예를 들면, 선택 가능한 "체크인" 아이콘(예를 들면, 클릭 가능한 "체크인" 아이콘과 같은) 또는 선택 가능한 "즐겨찾기에 추가" 아이콘을 포함할 수 있다. 유사하게, 사용자가 이들 아이콘들을 클릭한 후, 소셜-네트워킹 시스템은 각각의 동작에 대응하는 사용자의 동작에 응답하여 "즐겨찾기" 에지 또는 "체크인" 에지를 생성할 수 있다. 제한으로서가 아닌 또 다른 예로서, 사용자(사용자 "Carla")는 특정한 애플리케이션(온라인 음악 애플리케이션인, SPOTIFY)을 사용하여 특정한 노래("Across the Sea")를 청취할 수 있다. 이 경우에, 소셜-네트워킹 시스템은 사용자에 대응하는 사용자 노드들(202)과 사용자가 노래를 청취하며 애플리케이션을 사용함을 나타내기 위해 노래 및 애플리케이션에 대응하는 개념 노드들(204) 사이에 "청취함" 에지(206) 및 "사용함" 에지를 생성할 수 있다(도 2에 예시된 바와 같이). 게다가, 소셜-네트워킹 시스템은 특정한 노래가 특정한 애플리케이션에 의해 플레이됨을 나타내기 위해 노래 및 애플리케이션에 대응하는 개념 노드들(204) 사이에 "플레이함" 에지(206)를 생성할 수 있다(도 2에 예시된 바와 같이). 이 경우에, "플레이함" 에지(206)는 외부 오디오 파일(노래 "Across the Sea")에 대해 외부 애플리케이션(SPOTIFY)에 의해 수행된 동작에 대응한다. 본 개시는 사용자 노드들(202) 및 개념 노드들(204)을 연결한 특정한 속성들을 가진 특정한 에지들(206)을 설명하지만, 본 개시는 사용자 노드들(202) 및 개념 노드들(204)을 연결하는 임의의 적절한 속성들을 가진 임의의 적절한 에지들(206)을 고려한다. 게다가, 본 개시는 단일 관계를 나타내는 사용자 노드(202)와 개념 노드(204) 사이에서의 에지들을 설명하지만, 본 개시는 하나 이상의 관계들을 나타내는 사용자 노드(202)와 개념 노드(204) 사이에서의 에지들을 고려한다. 제한으로서가 아닌 예로서, 에지(206)는 사용자가 좋아하며 특정한 개념에서 사용하는 것 양쪽 모두를 나타낼 수 있다. 대안적으로, 또 다른 에지(206)는 사용자 노드(202)와 개념 노드(204) 사이에서(도 2에 예시된 바와 같이 사용자("Edwin")에 대한 사용자 노드(202) 및 "SPOTIFY"에 대한 개념 노드(204) 사이에서)의 각각의 유형의 관계(또는 다수의 단일 관계)를 나타낼 수 있다.
특정한 실시예들에서, 소셜-네트워킹 시스템은 소셜 그래프(200)에서 사용자 노드(202)와 개념 노드(204) 사이에 에지(206)를 생성할 수 있다. 제한으로서가 아닌 예로서, 개념-프로필 페이지를 보는 사용자(예를 들면, 사용자의 클라이언트 시스템에 의해 호스팅된 특수-목적 애플리케이션 또는 웹 브라우저를 사용함으로써)는, 사용자의 클라이언트 시스템이 개념-프로필 페이지와 연관된 개념에 대한 사용자의 호감을 나타내는 메시지를 소셜-네트워킹 시스템에 전송하게 할 수 있는, "좋아요" 아이콘을 클릭하거나 또는 선택함으로써 개념 노드(204)에 의해 표현된 개념을 그 또는 그녀가 좋아한다고 나타낼 수 있다. 메시지에 응답하여, 소셜-네트워킹 시스템은 사용자와 개념 노드(204) 사이에서 "좋아요" 에지(206)에 의해 예시된 바와 같이, 사용자와 연관된 사용자 노드(202) 및 개념 노드(204) 사이에 에지(206)를 생성할 수 있다. 특정한 실시예들에서, 소셜-네트워킹 시스템은 하나 이상의 데이터 저장소들에 에지(206)를 저장할 수 있다. 특정한 실시예들에서, 에지(206)는 특정한 사용자 동작에 응답하여 소셜-네트워킹 시스템에 의해 자동으로 형성될 수 있다. 제한으로서가 아닌 예로서, 제 1 사용자가 사진을 업로드하고, 영화를 보거나, 또는 노래를 듣는다면, 에지(206)는 제 1 사용자에 대응하는 사용자 노드(202)와 이들 개념들에 대응하는 개념 노드들(204) 사이에 형성될 수 있다. 본 개시는 특정한 방식들로 특정한 에지들(206)을 형성하는 것을 설명하지만, 본 개시는 임의의 적절한 방식으로 임의의 적절한 에지들(206)을 형성하는 것을 고려한다.
소셜 그래프(200)는 복수의 제품 노드들을 추가로 포함할 수 있다. 제품 노드들은 특정한 기업과 연관될 수 있는 특정한 제품들을 나타낼 수 있다. 기업은 소비자-대-기업 서비스(110)로 제품 카탈로그를 제공할 수 있으며 소비자-대-기업 서비스(110)는 그러므로 별개의 제품 노드에 있는 각각의 제품을 갖고 소셜 그래프(200)에서의 제품 내에서 제품들의 각각을 나타낼 수 있다. 제품 노드는 가격 정보, 서술적 정보, 제조사 정보, 가용성 정보, 및 다른 관련 있는 정보와 같은, 제품에 관한 정보를 포함할 수 있다. 예를 들면, 레스토랑에 대한 메뉴에서 아이템들의 각각은 아이템들의 각각을 설명하는 제품 노드를 갖고 소셜 그래프(200) 내에서 표현될 수 있다. 제품 노드는 제품을 제공하는 기업으로 에지에 의해 연결될 수 있다. 다수의 기업이 제품을 제공하는 경우에, 각각의 기업은 제품에 대한 그것의 제공과 연관된 별개의 제품 노드를 가질 수 있거나 또는 각각 동일한 제품 노드에 연결할 수 있다. 제품 노드는 제품을 구매하고, 평가하고, 소유하고, 추천하거나, 또는 본 각각의 사용자로 에지에 의해 연결될 수 있으며, 에지는 관계의 특징(예컨대, 구매, 평가, 소유, 추천, 시청, 또는 다른 관계)을 서술한다. 제품 노드들의 각각은 연계된 판매자 기업에 의해 그래프 id 및 연관된 판매자 id와 연관될 수 있다. 기업으로부터 이용 가능한 제품들은 그러므로 소셜 그래프(200) 내에서 기업을 위해 사용자 노드에 연결된 이용 가능한 제품 노드들을 검색함으로써 사용자에게 전달될 수 있다. 제품 노드에 대한 정보는 언급된 제품에 관한 정보를 캡슐화하는 제품 오브젝트로서 소셜-네트워킹 시스템에 의해 조작될 수 있다.
도 3a는 메시지 봇 호출 제어들(315)을 가진 메시지 상호작용 디스플레이(310)를 가진 사용자 인터페이스(300)의 실시예를 예시한다.
클라이언트 디바이스(320)는 소비자-대-기업 통신 시스템(100)을 액세스하기 위해 사용된 임의의 디바이스에 대응할 수 있다. 도 3a의 예시된 실시예에서, 클라이언트 디바이스(320)는 스마트폰 디바이스와 비슷하지만, 여기에서 설명된 기술들은 임의의 유형의 디바이스와 함께 사용될 수 있다는 것이 이해될 것이다. 사용자 인터페이스(300)는 일반적으로 메시징 시스템(140)에 대한 메시지 스레드의 디스플레이에 대응할 수 있다.
메시징 클라이언트는 메시징 클라이언트 헤더(305)를 디스플레이할 수 있다. 메시징 클라이언트 헤더(305)는 실제 이름, 별명들, 또는 다른 이름 정보에 따라 선택될 수 있는, 메시지 스레드에 참여하는 하나 이상의 사용자들의 이름과 같은, 메시지 스레드에 대한 타이틀을 포함할 수 있다. 메시징 클라이언트 헤더(305)는 메시징 클라이언트에 대한 인박스 뷰로 사용자를 돌려보내기 위해 제어를 포함할 수 있다. 인박스 뷰 제어는 판독되지 않는 메시지를 가진 최근 메시지 스레드들의 수에 따라 증대될 수 있다.
메시지 스레드에 대한 사용자 인터페이스(300)는 구성 제어들(322)을 포함할 수 있다. 많은, 대부분의, 또는 거의 모든 구성 제어들(322)은 텍스트 입력, 미디어 선택, 이모티콘 선택, 카메라 사용, 소셜 승인 아이콘 등과 같은, 다양한 태스크들의 수행을 위한 인터페이스 제어들로의 액세스 및 그것의 사용을 가능하게 할 수 있다. 제어들은 텍스트-기반 메시지들의 구성을 위해 텍스트의 입력을 가능하게 하는 텍스트 입력 제어들을 포함할 수 있다. 제어들은 하드웨어 제어들을 포함할 수 있다. 몇몇 실시예들에서, 제어들은 터치스크린-기반 제어들일 수 있다.
메시지 스레드에 대한 사용자 인터페이스(300)는 메시지 상호작용 디스플레이(310)를 포함할 수 있다. 메시지 상호작용 디스플레이(310)는 메시지 스레드 내에서 교환된 메시지들을 포함할 수 있다. 메시지 상호작용 디스플레이(310)는 부가적인 메시지들이 메시지 스레드에서의 참여자들에 의해 메시지 스레드에 부가됨에 따라 반복적으로 업데이트될 수 있다. 메시지는 사용자에 대한 아바타와 연관되어 디스플레이될 수 있다.
메시징 클라이언트 및/또는 메시징 시스템(140)은 하나 이상의 메시징 봇들을 선택하고 구성하는데 사용하기 위한 메시징 콘텐트를 검출할 수 있다. 추출된 메시징 콘텐트는 일반적으로 메시지들의 단어, 구절, 문장, 시퀀스 또는 상호교환, 또는 메시징 시스템(140)이 잠재적인 동작, 옵션, 또는 다른 제안과 연관시키는 메시지 스레드의 다른 요소에 대응할 수 있다. 식별된 메시징 콘텐트를 사용하는 메시징 시스템(140)은 메시징 콘텐트와 관련된, 제안된 메시징 봇들과 같은, 제안된 서비스들을 호출할 수 있다. 추출을 위한 메시징 콘텐트는 단어들 및/또는 구절들 사이에서의 미리 결정되고 사전-할당된 연관들 및 다양한 제안들에 기초하여 결정될 수 있거나, 또는 자연 언어 프로그래밍 기술들에 기초하여 자동으로 결정될 수 있다.
메시징 봇과 상호작용할 때 잠재적인 사용자 관심을 검출하는 것은 메시징 봇 호출 제어들(315)의 디스플레이를 호출할 수 있다. 메시징 클라이언트는 복수의 트리거된 메시징 봇 호출 제어들(315)에서, 메시징 봇들을 제안하는 것에 대응할 수 있는 것과 같은, 복수의 제안된 서비스들을 검색하고 디스플레이할 수 있다. 몇몇 실시예들에서, 복수의 제안된 서비스들은 메시징 클라이언트 및/또는 메시징 시스템(140)이 관련 있는 콘텍스트를 검출하는 것에 응답하여 자동으로 디스플레이될 수 있다. 메시징 봇 호출 제어들(315)은 복수의 메시징 봇 옵션들을 포함할 수 있다. 메시징 봇 호출 제어는 특정한 서비스와 연관된 특정한 메시징 봇을 포함할 수 있다.
메시징 봇 호출 제어들(315)은, 메시징 봇들에 의해 표현될 수 있는 바와 같이, 서비스들에 대한 제안들을 포함할 수 있다. 메시징 봇 호출 제어들(315)은 제안된 메시징 봇들의 등급이 매겨진 리스트를 포함할 수 있다. 제안된 메시징 봇들은 다양한 기술들에 기초하여 및 다양한 인자들에 기초하여 결정될 수 있다. 제안된 메시징 봇들의 랭킹은 메시징 봇 호출 제어들(315)이 순서화로 표현될 수 있으며, 높게-등급이 매겨진 메시징 봇들은 보다 두드러지게 디스플레이되고 낮게-등급이 매겨진 메시징 봇들은 덜 두드러지게 디스플레이된다. 예를 들어, 몇몇 낮게-등급이 매겨진 메시징 봇들은 사용자가 메시징 봇 호출 제어들(315)을 통해 내비게이팅한다면, 그것들이 완전히 또는 부분적으로 스크린 밖에 있으며 단지 드러내도록(또는 완전히 드러내도록) 배열될 수 있다.
정보는 메시지 스레드에서 구체화된 메시징 상호작용의 콘텐트, 또는 콘텐트의 일 부분으로부터 추출된다. 몇몇 경우들에서, 메시지 스레드와의 관계함의 현재 기간을 검출하고 상기 현재 기간 동안 메시지 스레드를 분석함으로써와 같이, 메시지 스레드의 최근의 부분이 사용될 수 있다. 메시지 스레드의 최근 부분은 다양한 기술들에 따라 정의될 수 있다. 몇몇 경우들에서, 최근 부분은 미리 정의된 시간의 길이에 따라 정의될 수 있으며, 최근 부분은 미리 정의된 시간의 길이와 같은 길이에 걸쳐 이어지며 현재 시간에 종료되는 시간의 범위 동안 교환된 스레드의 세그먼트이다. 몇몇 경우들에서, 최근 부분은, 메시지 스레드와의 임시 해약을 나타내기 위해, 미리 정의될 수 있는, 가변 길이에 걸쳐 이어지는 것으로서, 충분한 길이의 대화에서 가장 최근의 중단을 검출하는 것에 의해서와 같이, 결정될 수 있다. 예를 들면, 메시지 스레드의 최근 부분은 1시간보다 긴 대화에서 임의의 갭을 포함하지 않는 현재 시간에 끝난 스레드의 최대 범위일 수 있다. 스레드의 최근 부분을 정의하기 위한 다른 기술들이 사용될 수 있다.
복수의 메시징 봇 호출 제어들(315) 중 메시징 봇 호출 제어를 선택하는 것은 특정한 선택된 메시징 봇과의 상호 작용을 위해 인터페이스를 호출할 수 있다.
몇몇 실시예들에서, 메시지 스레드는 다수의 참여자들이 메시지 상호작용에 참여하는 다중-사용자 메시지 스레드일 수 있다. 그러나, 대안적인 실시예에서, 메시지 스레드는 사용자가 직접 그리고 의도적으로 추천하고 사용자를 다양한 메시징 봇들로 유도할 수 있는 시스템과 관계를 맺는 봇-요청 스레드일 수 있다. 사용자는 봇들의 리스트로부터 봇-요청 스레드를 선택하고, 추천된 봇들을 수신하기 위해 봇-요청 엔진과 관계를 맺으며, 그 후 봇-요청 스레드에서의 봇들과 관계를 맺을 수 있다. 예를 들면, "Want to get dinner tonight? I'm thinking Chinese food."를 묻기보다는, 사용자는 봇-요청 스레드에서 "I'd like to get dinner tonight and am thinking Chinese food."를 제출할 수 있으며, 봇-요청 시스템은 이에 응답하여 사용자에게 메시징 봇들을 추천한다. 메시징 봇 호출 제어들(315)은 그 후 사용자-대-사용자 상호작용에서 암시적인 추천들에 대한 기회의 검출에 대한 응답보다는, 대신에 사용자에 의한 직접 질의에 대한 응답으로서 제공될 수 있다.
또 다른 대안적인 실시예에서, 메시징 봇으로부터의 도움을 위한 요청은 사용자-대-사용자 메시지 스레드 내에서 직접 호출될 수 있다. 봇 요청은 봇-제안 시스템을 직접 처리함으로써 이루어질 수 있다. 봇-제안 시스템을 직접 처리하는 것은 다양한 기술들을 사용하여 수행될 수 있다. 예를 들면, 봇-제안 시스템은 봇-제안 시스템이 처리 중임을 나타내는 텍스트 세그먼트가 텍스트-기반 요청 앞에 붙음으로써 처리될 수 있다. 예를 들면, 사용자는 봇-제안 시스템을 호출하는 "@M" 텍스트 세그먼트를 가진, "@M I'd like to get dinner tonight and am thinking Chinese food"를 입력할 수 있다. 대안적으로 또는 부가적으로, 제어는 사용자-대-사용자 메시지 스레드로의 봇-제안 시스템의 처리를 가능하게 하는 구성 제어들(322)의 일부로서 제공될 수 있다. 몇몇 실시예들에서, 봇-제안 시스템이 직접 호출되는 경우에, 봇-제안 시스템의 호출, 봇-제안 시스템에 의한 임의의 응답들(메시징 봇 호출 제어들(315) 또는 다른 응답들), 또는 메시징 봇과의 상호작용들은 단지 봇-제안 시스템 및 임의의 봇들을 호출하는 클라이언트 디바이스(320)의 사용자에게만 도시될 수 있으며, 메시징 시스템(140)은 이들 상호작용들을 다른 클라이언트 디바이스들에 제공하는 것을 삼가한다. 이것은 스레드에서의 임의의 다른 참여자들로부터 사적인 메시징 봇들 및 호출 사용자와 봇-제안 시스템들 사이에서의 사용자-대-사용자 메시지 스레드 내에 사이드-대화를 생성한다. 그러나, 다른 실시예들에서, 다른 클라이언트 디바이스들, 및 그러므로 그들의 사용자들은 이들 상호작용들 중 일부 또는 모두를 제공받을 수 있다.
도 3b는 메시징 봇 메뉴(335)를 가진 사용자 인터페이스(325)의 실시예를 예시한다.
특정한 메시징 봇에 대한 메시징 봇 메뉴(335)는 상기 메시징 봇에 대한 메시징 봇 호출 제어가 클라이언트 디바이스(320)의 사용자에 의해 선택되는 것에 응답하여 디스플레이될 수 있다. 메시징 봇 메뉴(335)는 그것이 호출되는 메시징 스레드와 관련되어 디스플레이될 수 있다.
메시징 봇 메뉴(335)는 구체적으로 특정한 메시징 봇과 연관된 디스플레이 요소이며 사용자가 호출되는 메시지 스레드의 콘텍스트 내에서 메시징 봇에 대한 인터페이스와 상호작용할 수 있게 한다. 클라이언트 디바이스(320)의 사용자는 메시징 봇 메뉴(335)로 이동하고, 메시징 봇과 상호작용하기 위해 메시징 봇 메뉴(335)와 상호 작용하고, 메시지 스레드에서 메시징 대화에 다시 참여하기 위해 메시징 봇 메뉴(335)를 취소하고, 메시징 봇에 다시 참여하기 위해 메시징 봇 메뉴(335)로 다시 돌아가고, 상이한 메시징 봇 메뉴들 사이에서 이동하며, 일반적으로 진행 중인 메시징 대화로의 연결을 유지하면서 메시징 봇을 선택하고 그것과 상호작용하도록 메시지 스레드의 콘텍스트 내에서 메시징 봇 메뉴들과 동적으로 상호작용할 수 있다.
메시징 봇 호출 제어들(330)은 메시징 봇 메뉴(335)에 인접하여 디스플레이될 수 있다. 메시징 봇 호출 제어들(330)은 메시징 대화에 인접하여 디스플레이된 메시징 봇 호출 제어들(315)과 대체로 유사하지만, 클라이언트 디바이스(320)의 스크린의 최상부 부분으로 이전될 수 있다. 이전된 메시징 봇 호출 제어들(330)은 다양한 메시징 봇 메뉴들 사이에서 선택하기 위한 탭들일 수 있다. 이와 같이, 현재-선택되지 않은 메시징 봇 호출 제어를 선택하는 것은 지금-선택된 메시징 봇 호출 제어에 대한 메시징 봇 메뉴를 디스플레이하기 위해 메시징 클라이언트를 이전시킬 수 있다. 현재 메시징 봇 메뉴(335)와 연관된 특정한 메시징 봇 호출 제어는, 상기 메시징 봇 호출 제어에 대한 메시징 봇이 현재 활성 메시징 봇 메뉴(335)를 갖는다는 것을 나타내도록, 별개의 시각적 스타일을 갖고 디스플레이될 수 있다. 현재-활성인 메시징 봇 메뉴(335)에 대한 제어를 다시 선택하는 것은 사용자가 메시징 상호작용 디스플레이(310)에서 메시징 봇 대화의 뷰로 돌아갈 수 있도록 메시징 봇 메뉴(335)를 최소화할 수 있다.
메시징 봇 메뉴(335)는 복수의 맞춤화 옵션들(345)을 포함할 수 있다. 이들 맞춤화 옵션들(345)은 메시징 봇 메뉴(335)의 부분으로서 제공된 메시징 봇에 대한 제어들에 의해 설정된 바와 같이 메시징 봇을 구성하는 세팅들을 포함한다. 맞춤화 옵션들(345)은 처음에, 메시지 스레드의 콘텍스트에 기초하여, 메시징 봇 호출 제어들(315)의 디스플레이를 유도하는 특정 메시징 상호작용의 콘텐트에 기초하여, 메시지 스레드 및/또는 특정 메시징 상호작용에 대한 사용자 정보에 기초하여, 및/또는 메시징 봇 메뉴(335)의 콘텍스트의 다른 분석에 따라 자동으로 설정될 수 있다. 이들 맞춤화 옵션들(345)은 그 후 사용자에 의해 유지되거나 또는 메시징 봇 메뉴(335)의 제어들을 사용하여 수정될 수 있다.
일반적으로, 메시징 봇 메뉴(335)는 맞춤화 옵션들(345)이 자동으로 설정되는지 또는 클라이언트 디바이스(320)의 사용자에 의해 수동으로 설정되는지에 관계없이, 맞춤화 옵션들(345)에 기초하여 구성된다. 몇몇 인스턴스들에서, 메시징 봇 메뉴(335)는 하나 이상의 메뉴 엔트리들을 포함할 수 있다. 예를 들어, 레스토랑 추천들을 구성하고, 디스플레이하며, 선택하기 위해 설계된 메시징 봇 메뉴(335)에 대해, 메뉴 엔트리(340)는 특정한 레스토랑에 대응할 수 있다. 메뉴 엔트리(340)는 명칭, 위치, 가격 정보, 실적 정보, 및 메뉴 엔트리(340)에 관한 다른 정보를 포함할 수 있다. 메뉴 엔트리(340)는 하나 이상의 제어들을 포함할 수 있다. 예를 들면, 레스토랑 메뉴에 대한 제어는 레스토랑 및 레스토랑에 대한 특정한 이용 가능한 예약 시간 양쪽 모두에 대한 선택을 가능하게 할 수 있다. 이들 인스턴스들에서, 메뉴 엔트리들은 맞춤화 옵션들(345)에 기초하여 적어도 부분적으로 결정된다. 메뉴 엔트리들은 또한, 메시지 스레드 또는 메시지 스레드에서의 참여자들에 관한 정보와 같은, 부가적인 정보에 적어도 부분적으로 기초하여 결정될 수 있다.
도 3c는 다중-사용자 요청 제어(355)를 가진 메시징 봇 메뉴를 갖는 사용자 인터페이스(350)의 실시예를 예시한다.
몇몇 경우들에서, 소비자-대-기업 서비스(110)와 상호작용하기 위한 인터페이스는 다수의 클라이언트 디바이스들에 걸쳐 분포될 수 있으며, 따라서 다수의 클라이언트 디바이스들 상에서의 다수의 사용자들은 서비스 요청의 구성에 기여한다. 1차 사용자는 메시징 봇과의 상호작용을 개시하며 상기 메시징 봇과 상호작용하기 위해 1차 인터페이스를 사용할 수 있다. 그러나, 메시지 스레드에서의 다른 사용자들은 1차 사용자 및 임의의 다른 2차 사용자들과 협력하여 메시징 봇과 관계할 기회를 제공받을 수 있다.
몇몇 경우들에서, 메시징 봇에 대한 인터페이스, 또는 사용자들과 통신하기 위해 소비자-대-기업 서비스(110)를 사용하는 다른 에이전트는, 1차 사용자에 의한 에이전트의 선택에 기초하여 다수의 클라이언트 디바이스들에 걸쳐 인스턴스화될 수 있다. 다른 경우들에서, 에이전트는 처음에 단일 클라이언트 디바이스 상에서 단일-사용자 인터페이스를 인스턴스화하며 선택적으로 또는 단지 결국 다수의 클라이언트 디바이스들 상에서 인스턴스화할 수 있다. 인스턴스화한 클라이언트 디바이스 상에서의 인터페이스는 다중-사용자 인터페이스에 대한 1차인 1차 다중-사용자 인터페이스 또는 다중-사용자 인터페이스에 대한 제어 인터페이스일 수 있다.
다중-사용자 요청 제어(355)는 2차 클라이언트 디바이스들 상에서 2차 사용자 인터페이스들을 인스턴스화하기 위해 사용될 수 있다. 2차 클라이언트 디바이스는 그룹 메시지 스레드에서 현재 다른 참여자들에 의해 사용되고 있는 것들로서 식별될 수 있다. 다중-사용자 요청 제어(355)는 서비스 요청을 구성하기 위해 하나 이상의 다른 클라이언트 디바이스들 상에서 2차 사용자 인터페이스의 인스턴스화를 개시할 수 있다. 예시된 실시예에서, 다중-사용자 요청 제어(355)는 그들이 요청된 서비스에 참여할 사람들의 카운트에 포함되어야 하는지 여부를 나타내기 위해 2차 클라이언트 디바이스들의 사용자들에게 묻는 2차 클라이언트 디바이스 상에서의 사용자 인터페이스를 인스턴스화한다.
도 3d는 2차 다중-사용자 인터페이스(365)를 가진 사용자 인터페이스(360)의 실시예를 예시한다.
사용자 인터페이스(360)는 2차 클라이언트 디바이스(370) 상에서 디스플레이될 수 있다. 2차 클라이언트 디바이스(370)는 메시징 봇과의 접속을 개시한 사용자가 아닌 메시지 스레드에서의 참여자에 의해 사용된 클라이언트 디바이스를 포함할 수 있다.
2차 클라이언트 디바이스(370)에 대한 사용자 인터페이스(360)는 1차 클라이언트 디바이스 상에서의 1차 다중-사용자 인터페이스에 기초하여 2차 클라이언트 디바이스(370) 상에서 인스턴스화된 2차 다중-사용자 인터페이스(365)를 포함할 수 있다. 2차 다중-사용자 인터페이스(365)는 1차 다중-사용자 인터페이스에서 특정된 정보를 포함할 수 있다. 예를 들면, 레스토랑 예약을 위해, 1차 다중-사용자 인터페이스는 예약을 위한 특정한 레스토랑, 날짜, 및 시간을 결정할 수 있다. 2차 다중-사용자 인터페이스(365)는 하나 이상의 다중-사용자 제어들의 다중-사용자 제어(368)를 포함할 수 있다. 2차 다중-사용자 인터페이스상에서의 다중-사용자 제어(368)는 서비스 요청의 구성에 기여하도록 메시지 스레드에서의 참여자에게 권한을 줄 수 있다. 예를 들면, 서비스 요청이 구성되는 경우, 하나 이상의 다중-사용자 제어들은 사용자로 하여금 그들이 요청되는 서비스에 참여되기를 원하는지 여부를 등록할 수 있게 할 것이다.
메시지 스레드에 대한 사용자 인터페이스(360)는 구성 제어들(369)을 포함할 수 있다. 많은, 대부분의, 또는 거의 모든 구성 제어들(369)은 텍스트 입력, 미디어 선택, 이모티콘 선택, 카메라 사용, 소셜 승인 아이콘 등과 같은, 다양한 태스크들의 수행을 위한 인터페이스 제어들로의 액세스 및 그것의 사용을 가능하게 할 수 있다. 제어들은 텍스트-기반 메시지들의 구성을 위해 텍스트의 입력을 가능하게 하는 텍스트 입력 제어들을 포함할 수 있다. 제어들은 하드웨어 제어들을 포함할 수 있다. 몇몇 실시예들에서, 제어들은 터치스크린-기반 제어들일 수 있다.
도 3e는 다중-사용자 기여 요소(395)를 포함한 구성된 서비스 요청을 위한 메시징 봇 메뉴(390)에 대한 사용자 인터페이스(380)의 실시예를 예시한다.
메시징 봇 메뉴(390)는 서비스 요청이 서비스 요청을 허용하기 위해 충분히 구성된 포인트로 전진할 수 있다. 일단 메시징 봇 메뉴(390)가 이 상태에 도달하면, 서비스 요청 제어(385)가 디스플레이될 수 있다. 서비스 요청 제어(385)는 사용자로 하여금 서비스가 수행되도록 요청할 수 있게 한다.
구성된 서비스 요청에 대한 메시징 봇 메뉴(390)는 다중-사용자 인터페이스에 기초하여 구성된 옵션들을 포함할 수 있으며, 여기에서 구성된 옵션들 중 적어도 일 부분은 하나 이상의 2차 다중-사용자 인터페이스들의 사용자들에 의한 다중-사용자 인터페이스에서의 참여에 기초한다. 구성된 옵션들은 다중-사용자 기여 요소(395)를 포함할 수 있으며, 여기에서 다중-사용자 기여 요소(395)는 다중-사용자 인터페이스에 대한 1차 클라이언트 디바이스(320)가 아닌 하나 이상의 2차 클라이언트 디바이스들 상에서의 사용자 인터페이스 상호작용들을 반영한다. 예시된 실시예에서, 다중-사용자 기여 요소(395)는 메시지 스레드에서의 참여자들이 그룹 예약에 참여할지에 대한 정보를 수집하는 2차 다중-사용자 인터페이스들의 결과들을 반영한다.
도 4a는 서비스 요청을 전달하는 관리 텍스트(415)를 갖는 메시지 상호작용 디스플레이(410)를 가진 사용자 인터페이스(400)의 실시예를 예시한다.
일단 사용자가 서비스 요청 제어(385)를 선택하거나, 또는 그 외 메시징 봇으로부터 서비스를 요청하면, 메시징 봇은 관리 텍스트(415)를 메시징 시스템(140)으로 제공할 수 있으며, 관리 텍스트(415)는 구성된 서비스를 전달한다. 관리 텍스트(415)는 그 후 메시징 상호작용 디스플레이(410)의 부분으로서 디스플레이를 위해 메시징 시스템(140)에 의해 클라이언트 디바이스(320)로 제공된다. 관리 텍스트(415)는 또한 사용자에게 속한 다른 클라이언트 디바이스들로 및 메시지 스레드에서의 다른 참여자들과 연관된 클라이언트 디바이스들로 분배될 수 있다. 관리 텍스트(415)는 텍스트, 이미지들, 제어들, 또는 임의의 다른 요소를 포함할 수 있다. 관리 텍스트(415)는 뷰어에 기초하여 맞춤화될 수 있다. 예를 들면, 관리 텍스트는 상기 사용자에게 및 다른 사용자들에게 서비스를 상이하게 요청하는 사용자를 식별할 수 있다.
도 4b는 다중-사용자 인터페이스의 2차 사용자에 맞춤화된 서비스 요청을 전달하는 관리 텍스트(440)를 갖는 메시지 상호작용 디스플레이(435)를 가진 사용자 인터페이스(425)의 실시예를 예시한다.
관리 텍스트(440)는 2차 클라이언트 디바이스(370) 상에서 메시지 상호작용 디스플레이(435)로 제공된다. 관리 텍스트는 메시지 스레드에서의 참여자들을 위해 각각의 클라이언트 디바이스에 맞춤화될 수 있다. 2차 클라이언트 디바이스(720)에 대한 관리 텍스트(440)는 2차 클라이언트 디바이스(370)의 사용자가 그 구성에 참여한 서비스 요청을 전달할 수 있다. 2차 클라이언트 디바이스(370)에 대한 관리 텍스트(440)는 2차 클라이언트 디바이스(370)의 특정 기여들을 반영할 수 있다. 예를 들면, 서비스에 대한 요청을 위해, 관리 텍스트(440)는 사용자가 서비스 요청에 참여하기로 선택하였는지를 반영할 수 있다. 몇몇 실시예들에서, 서비스 요청에 참여하는 것을 거절한 사용자는 관리 텍스트를 수신하는 것에서 제외될 수 있으며, 따라서 관리 텍스트는 서비스 요청에 참여하기로 선택한 사용자들에게만 전송된다.
도 5는 메시징 상호작용에 기초하여 사용자 의도(515)를 결정하는 소비자-대-기업 통신 시스템(100)의 실시예를 예시한다.
메시징 시스템(140)은 복수의 구성요소들을 포함할 수 있다. 몇몇 실시예들에서, 이들 복수의 구성요소들은 복수의 서버들 중에 분포될 수 있다. 다른 실시예들에서, 단일 서버는 복수의 구성요소들을 구현할 수 있다. 몇몇 실시예들에서, 복수의 서버들은 단일 서버 디바이스에 의해 실행될 수 있다. 다른 실시예들에서, 복수의 서버들은 복수의 서버 디바이스들에 의해 실행될 수 있다. 몇몇 실시예들에서, 다양한 구성요소들 및 다양한 서버들의 다수의 인스턴스들은 중복성, 개선된 스케일링, 및 다른 이익들을 제공하기 위해 실행될 수 있다. 유사하게, 클라이언트 디바이스는 메시징 클라이언트의 부분으로서 복수의 구성요소들을 실행할 수 있다.
클라이언트 디바이스는 네트워크 트래픽을 교환하기 위해 무선 송신들을 사용하여 다른 디바이스들과 통신할 수 있다. 메시징 트랜잭션들의 교환에 포함될 수 있는 바와 같은, 네트워크 트래픽을 교환하는 것은, 네트워크 인터페이스 제어기(NIC)를 통해 네트워크 트래픽을 송신하는 것 및 수신하는 것을 포함할 수 있다. NIC는 클라이언트 디바이스와 같은, 컴퓨터 디바이스를 컴퓨터 네트워크에 연결하는 하드웨어 구성요소를 포함한다. NIC는 소프트웨어 애플리케이션들이 NIC를 액세스하고 사용할 수 있게 하는 소프트웨어 네트워크 인터페이스와 연관될 수 있다. 네트워크 트래픽은 데이터 링크들을 통해 송신된 신호들로서 컴퓨터 네트워크를 통해 수신될 수 있다. 네트워크 트래픽은 이들 신호들을 캡처하고 그것들을 해석함으로써 수신될 수 있다. NIC는 컴퓨터 네트워크를 통해 네트워크 트래픽을 수신하며 네트워크 인터페이스 애플리케이션 프로그래밍 인터페이스(API)를 사용하여 소프트웨어 애플리케이션들에 액세스 가능한 메모리 저장 장치로 네트워크 트래픽을 전달할 수 있다. 네트워크 인터페이스 제어기는, 네트워크 통신을 통해 메시징 클라이언트 및 메시징 서버들의 상호 운용을 포함한, 여기에서 설명된 실시예들의 네트워크 활동들을 위해 사용될 수 있다. 예를 들면, 클라이언트 프론트-엔드 서버(535)로 또는 그로부터 메시지들을 송신하거나 또는 수신하는 메시징 클라이언트는 정보의 송신 또는 수신을 위한 통신 네트워크로의 네트워크 액세스를 위해 네트워크 인터페이스 제어기를 사용하는 것으로서 해석될 수 있다.
메시징 클라이언트는 사용자 인터페이스 구성요소(523)를 포함할 수 있다. 사용자 인터페이스 구성요소(523)는 일반적으로 클라이언트 디바이스의 사용자에게 사용자 인터페이스들을 디스플레이하고 클라이언트 디바이스를 위한 메시징 클라이언트에 대한 사용자 명령들을 수신하도록 배열될 수 있다. 메시징 클라이언트는 클라이언트 메시징 구성요소(526)를 포함할 수 있다. 클라이언트 메시징 구성요소(526)는 일반적으로 클라이언트 프론트-엔드 서버(535)와의 통신을 통해 메시징 클라이언트 대신에 메시징 상호작용들을 행하도록 배열될 수 있다.
클라이언트 프론트-엔드 서버(535)는 일반적으로 전송자 클라이언트 디바이스(520)와 같은 클라이언트 디바이스들을 위한 메시징 시스템(140)으로의 네트워크 액세스 포인트로서 동작하도록 배열될 수 있다. 클라이언트 프론트-엔드 서버(535)는 메시징 구성요소(530)를 포함할 수 있으며, 메시징 구성요소(530)는 일반적으로 메시징 시스템(140)을 위한 메시징 서비스들로의 네트워크 액세스 포인트로서 동작하도록 배열된다. 메시징 구성요소(530)는 클라이언트 디바이스들로부터 메시지들을 수신하며 메시지들을 메시지 큐들에 부가할 수 있다.
메시지 큐(580)는 구체적으로, 메시징 시스템(140) 내에서 전송자 클라이언트 디바이스(520)의 사용자에 대한 사용자 계정과 고유하게 연관됨으로써와 같은, 전송자 클라이언트 디바이스(520)의 사용자와 연관될 수 있다. 메시지 큐(580)는 이러한 사용자에 의해 사용된 모든 메시징 엔드포인트들을 위해 사용된 단일 큐일 수 있다. 메시지 큐(580)는 엄격한 선형 순서로 업데이트들의 표현을 포함할 수 있다. 메시지 큐(580)는 다양한 기술들에 따라 데이터 유닛으로서 조직될 수 있다. 메시지 큐(580)는 반-영구적 메모리, 영구적 저장 장치, 반-영구적 메모리 및 영구적 저장 장치 양쪽 모두, 또는 둘의 조합에 저장될 수 있다. 메시지 큐(580)는, 링크드 리스트들, 어레이들, 및 큐들을 조직하는 다른 기술들을 포함하여, 다양한 데이터 구조들에 따라 조직될 수 있다. 메시지 큐(580)는 일반적으로 어떤 업데이트도 그 이전에 수신된 임의의 업데이트들 이전에 큐로부터 제거되거나 또는 검색되지 않을 선입선출(FIFO) 큐를 포함할 수 있다.
메시징 시스템(140)은 작업자 서버들(545, 555, 565)과 같은, 하나 이상의 작업자 서버들을 포함할 수 있다. 일반적으로, 메시징 시스템(140)은 다양한 태스크들에 할당될 수 있는 복수의 작업자 서버들을 포함할 수 있다. 작업자 서버(545)는 메시지 큐 모니터링 구성요소(540)를 포함할 수 있으며, 메시지 큐 모니터링 구성요소(540)는 다양한 플래그들, 표시자들, 및 다른 정보를 위한 메시징 시스템(140)의 메시지 큐(580) 및 다른 메시지 큐들에, 메시지들을 포함할 수 있는 바와 같이, 업데이트들을 모니터링하도록 배열된다. 작업자 서버(55)는 상호작용 프로세싱 구성요소(550)를 포함할 수 있으며, 상기 상호작용 프로세싱 구성요소(550)는 메시징 상호작용의 콘텐트들에 기초하여 사용자 의도(515)의 생성을 관리하도록 동작적이다. 작업자 서버(565)는 자연 언어 프로세싱 구성요소(560)를 포함할 수 있으며, 상기 자연 언어 프로세싱(NLP) 구성요소(560)는 메시징 상호작용들을 분석하도록 메시징 상호작용들을 분석하고 메시징 상호작용들에 기초하여 사용자 의도(515)를 생성하기 위해 자연 언어 프로세싱 기술들을 사용하도록 동작적이다. NLP 구성요소(560)는 그것의 NLP 동작들을 개선하기 위해 자연 언어 기계-학습 기술을 사용하도록 동작하는 자연 언어 기계-학습 구성요소를 포함할 수 있다.
상호작용 프로세싱 구성요소(550)는 NLP 구성요소(560)와 인터페이스할 수 있다. NLP 구성요소(560)는 소비자-대-기업 통신 시스템(100)을 위한 자연 언어 프로세싱을 수행한다. 자연 언어 프로세싱의 수행은 메시징 상호작용의 의도를 결정하기 위해 메시징 상호작용의 콘텐트들을 분석하는 것을 포함할 수 있다. 의도는 메시징 상호작용에 의해 추구되는 목표를 나타낸다. 예를 들면, 어디서 저녁을 먹을지를 논의하는 사람들은 "식사", "먹기", "레스토랑" 또는 다른 관련된 용어의 의도를 가질 수 있다. 상호작용 프로세싱 구성요소(550)는, 하나 이상의 메시지들을 포함하여, 메시징 상호작용의 의도를 NLP 구성요소(560)로 제공하고 NLP 구성요소(560)는 사용자 의도(515), 또는 다수의 사용자 의도들로 응답하며, 그것은 상기 의도를 위해 검출한다. NLP 구성요소(560)는 알려진 자연 언어 프로세싱(NLP) 및 기계 학습(ML) 기술들을 사용하여 구현될 수 있다.
메시지 큐 모니터링 구성요소(540)는 메시징 상호작용을 모니터링한다. 이러한 메시징 상호작용은 메시징 시스템(140)을 통해 교환된다. 이러한 메시징 상호작용은, 전송자 클라이언트 디바이스(520) 및/또는 수신자 클라이언트 디바이스(590)와 같은, 적어도 하나의 클라이언트 디바이스를 수반한다. 메시지(510)는 전송자 클라이언트 디바이스(520) 상에서 메시징 클라이언트의 클라이언트 메시징 구성요소(526)로부터 전송될 수 있다. 이러한 메시지(510)는 메시지 스레드와 연관되며, 상기 메시지 스레드는 전송자 클라이언트 디바이스(520)의 사용자를 포함하여, 둘 이상의 참여자들을 수반한다. 이러한 메시지(510)는 메시지 스레드의 메시징 상호작용의 일 부분을 포함한다.
메시지(510)는 클라이언트 프론트-엔드 서버(535)의 메시징 구성요소(530)에 의해 수신되며 전송자와 연관된 메시지 큐(580)에 부가된다. 메시지(510)는 메시지 큐(580)를 사용하여 수신자 클라이언트 디바이스(590)로 분배된다. 메시지 큐 모니터링 구성요소(540)는 또한 메시지(510)를 수신하며 그것을 상호작용 프로세싱 구성요소(550)로 제공한다.
상호작용 프로세싱 구성요소(550)는 메시지(510)를 NLP 구성요소(560)로 제공하며 이에 응답하여 사용자 의도(515)를 수신한다. 메시지(510)는 전체로서 메시징 상호작용의 분석을 가능하게 하도록, 다수의 메시지들의 리포지토리의 부분으로서 NLP 구성요소(560)로 제공될 수 있다. 이와 같이, 상호작용 프로세싱 구성요소(550)는 메시징 상호작용의 적어도 일 부분을 NLP 구성요소(560)에 제출하고 적어도 메시징 상호작용의 부분을 NLP 구성요소(560)에 제출하는 것에 응답하여 NLP 구성요소(560)로부터 사용자 의도(515)를 수신함으로써 메시징 상호작용에 대한 사용자 의도를 결정한다. 상호작용 프로세싱 구성요소(550)는 그러므로 NLP 구성요소(560)를 사용함으로써 메시징 상호작용에 대한 사용자 의도(515)를 검출할 수 있다.
도 6은 사용자 의도(515)에 기초하여 메시징 봇 옵션 구성을 결정하는 소비자-대-기업 통신 시스템(100)의 실시예를 예시한다.
몇몇 실시예들에서, 소비자-대-기업 통신 시스템(100)은 소비자-대-기업 통신 시스템(100)을 위한 메시징 봇 서비스들로의 액세스 포인트로서 동작하는 봇 관리 구성요소(660)를 포함할 수 있다. 봇 관리 구성요소(660)는 메시징 시스템(140)의 서버들과 하나 이상의 내부 및/또는 외부 봇 실행 서버들 사이에서의 중재자로서 동작할 수 있다. 봇 관리 구성요소(660)는 일반적으로 액세스 가능한 프레임워크를 메시징 봇 시스템에 제공하도록 배열된 봇 프레임워크를 포함할 수 있다. 봇 관리 구성요소(660)는 도 5를 참조하여 설명된 작업자 서버들(545, 555, 565)과 대체로 유사한 작업자 서버(665)에 의해 실행될 수 있다.
몇몇 경우들에서, 메시징 봇들은 봇과 연관된 서비스에 의해 동작된 외부 봇 서버와 같은, 소비자-대-기업 통신 시스템(100)의 외부에 있는 서버들에 의해 실행될 수 있다. 봇 관리 구성요소(660)는 메시징 봇과 연관된 서비스를 위한 외부 봇 서버를 결정할 수 있다. 봇 관리 구성요소(660)는 메시지들을 메시징 봇과 연관된 외부 봇 서버로 전송함으로써 메시지들을 메시징 봇에 제출할 수 있다. 몇몇 실시예들에서, 메시지들을 제출하는 것은 메시지 콘텐트를 추출하는 것 및 봇 서버 상호작용 애플리케이션 프로그래밍 인터페이스(API)를 사용하여 외부 봇 서버로 메시지 콘텐트를 송신하는 것을 포함할 수 있다. 메시징 봇들로부터의 봇 메시지들은 유사하게 봇 관리 구성요소(660)에 의해 외부 봇 서버로부터 수신될 수 있다.
다른 경우들에서, 메시징 봇들은 소비자-대-기업 통신 시스템(100)의 서버들에 의해 실행될 수 있다. 봇 관리 구성요소(660)는 메시징 봇과 연관된 서비스를 위한 호스팅된 봇 서버를 결정할 수 있다. 호스팅된 봇 서버는 소비자-대-기업 통신 시스템(100)의 제공자에 의해 유지된 봇 서버를 포함할 수 있다. 봇 관리 구성요소(660)는 메시지들을 메시징 봇과 연관된 호스팅된 봇 서버로 전송함으로써 메시지들을 메시징 봇으로 제출할 수 있으며 호스팅된 봇 서버로부터 그것들을 수신함으로써 메시징 봇으로부터 메시지들을 수신할 수 있다.
봇 관리 구성요소(660)는 상호작용 프로세싱 구성요소(550)로부터 사용자 의도(515)를 수신하고 사용자 의도(515)에 기초하여 클라이언트 디바이스에 대한 메시징 봇 옵션 구성(610)을 결정한다. 메시징 봇 옵션 구성(610)은 하나 이상의 클라이언트 디바이스들의 하나 이상의 사용자들이 하나 이상의 메시징 봇들과 관계를 맺을 수 있게 하는 인터페이스 제어들을 갖고 하나 이상의 클라이언트 디바이스들을 구성한다.
봇 관리 구성요소(660)는 전송자 클라이언트 디바이스(520)에 의해 전송되는 메시지(510)에 의해 발생되는 메시징 상호작용의 콘텍스트에서의 변화에 응답하여 메시징 봇 옵션 구성(610)을 전송 클라이언트 디바이스(520)로 전송한다. 전송자 클라이언트 디바이스(520)로 메시징 봇 옵션 구성(610)을 전송하는 것은 메시징 상호작용이 일어나는 메시지 스레드와 연관된 메시지 큐(580)와 같은, 메시지 큐(580)로 메시징 봇 옵션 구성(610)을 부가하는 것을 포함할 수 있다. 메시징 봇 옵션 구성은 그 후 서버 메시징 구성요소(530)가 메시지 큐(580)로부터 메시징 봇 옵션 구성(610)을 검색하고 그것을 클라이언트 메시징 구성요소(526)로 전달함으로써 전송자 클라이언트 디바이스(520)로 분배된다. 메시징 봇 옵션 구성(610)은 메시지 스레드에서의 모든 참여자에 속하는 모든 클라이언트 디바이스와 같은, 메시징 상호작용에 수반된 모든 사용자 및 클라이언트 디바이스로 분배될 수 있다. 이와 같이, 메시지(510)에 대한 수신자 클라이언트 디바이스(590)는 또한 메시지(510)에 응답하여 발생된 메시징 봇 옵션 구성(610)을 수신할 수 있다. 몇몇 실시예들에서, 메시징 봇 옵션 구성(610)은 메시징 봇 상호작용을 개시한 1차 클라이언트 및 메시지 스레드에 존재하지만 메시징 봇 상호작용을 개시하지 않는 하나 이상의 2차 클라이언트들을 위해 개별적으로 구성될 수 있다.
메시징 상호작용은 복수의 교환된 메시지들을 포함한다. 이러한 복수의 교환된 메시지들은 메시지 상호작용의 가장 최근 메시지(510)를 포함한다. 가장 최근 메시지(510)와 연관된 메시지 패키지를 갖고, 메시징 구성요소(530)를 통해 클라이언트 디바이스로 전송된 이러한 메시지 패키지는, 메시징 봇 옵션 구성(610)을 전달하기 위해 사용될 수 있다. 전송자 클라이언트 디바이스(510)로 전송된 메시지 패키지는 메시징 시스템(140)에 의해 메시지(510)의 수신을 확인하기 위해 사용될 수 있고, 하나 이상의 수신자 사용자들로의 메시지(510)의 전달을 보고하기 위해 사용될 수 있으며, 및/또는 수신자 사용자가 메시지(510)를 보았음을 보고하기 위해 사용될 수 있다. 수신자 클라이언트 디바이스(590)로 전송된 메시지 패키지는, 수신자 클라이언트 디바이스(590)로의 메시지(510)의 초기 전달일 수 있는 바와 같이, 양쪽 메시지(510) 모두를 포함할 수 있다. 어느 경우든, 메시지 패키지는 부가적으로 메시징 봇 옵션 구성(610)을 포함할 수 있다.
일반적으로, 메시지(510)는, 메시지(510)를 전송하기 위해 사용된 클라이언트 디바이스를 포함하여, 메시지 스레드와 관련된 모든 클라이언트 디바이스로 전송될 수 있다. 이러한 메시지(510)는 메시징 봇 옵션 구성(610)과 함께 메시지(510)를 전달하기 위해 사용된 패키지에서 증대될 수 있다. 메시징 봇 옵션 구성(610)은 메시징 봇과의 상호작용들을 가능하게 하는 제어들을 갖고 메시지 스레드를 디스플레이할 때 메시징 클라이언트를 위한 메시징 인터페이스를 구성한다. 그러므로, 봇 관리 구성요소(660)는 클라이언트 디바이스로 메시지 패키지를 전송하도록 동작적이며, 메시지 패키지는 가장 최근 메시지(510)와 연관되고, 따라서 메시지 패키지는 메시징 봇 옵션 구성(610)을 포함한다. 이러한 메시지 패키지는 가장 최근 메시지(510)로 클라이언트 디바이스를 업데이트한다. 몇몇 경우들에서, 이러한 가장 최근 메시지(510)는 메시지 패키지를 수신한 것과 상이한 클라이언트 디바이스로부터 수신된다. 몇몇 경우들에서, 메시지 패키지(510)는 클라이언트 디바이스로부터 가장 최근 메시지의 수신을 확인응답할 수 있다.
몇몇 인스턴스들에서, 메시징 봇 옵션 구성(610)은 메시징 봇과 연관된 메시징 봇 메뉴일 수 있다. 메시징 봇 메뉴는 사용자 의도(515)에 기초하여 맞춤화된다. 메시징 봇 메뉴는 복수의 사용자-맞춤화 가능한 옵션들로 이루어질 수 있다. 사용자 의도에 기초하여 메시징 봇 메뉴를 맞춤화하는 것은 사용자 의도에 기초하여 사용자-맞춤화 가능한 옵션들 중 하나 이상을 사전에 채우는 것으로 이루어질 수 있다. 메시징 봇 메뉴는 메시징 봇 옵션 구성들을 클라이언트 디바이스에 제공하는 나중 스테이지 또는 제 2 스테이지를 포함할 수 있으며, 제 1 스테이지는 메시징 봇 옵션 구성들이고 제 2 스테이지는 메시징 봇 호출 제어의 활성화에 응답하여 제공된 맞춤화된 메시징 봇 메뉴이다.
몇몇 인스턴스들에서, 메시징 봇 옵션 구성(610)은 복수의 메시징 봇 호출 제어들로 이루어질 수 있다. 메시징 봇 호출 제어들의 각각은 상이한 메시징 봇과 연관된다. 이러한 복수의 메시징 봇 호출 제어들은 사용자 의도(515)에 기초하여 선택된다. 사용자 의도(515)는 메시징 상호작용의 사용자-표현 목표 또는 대상을 반영할 수 있다. 다양한 메시징 봇들은 이러한 사용자 의도(515)와 연관될 수 있다. 예를 들면, 메시징 봇들은 소비자-대-기업 통신 시스템(100)으로의 등록 동안 하나 이상의 사용자 의도들을 할당받을 수 있다. 사용자 의도(515)와 연관된 복수의 메시징 봇들이 결정되며 클라이언트 디바이스로 제공된다. 몇몇 인스턴스들에서, 복수의 메시징 봇 호출 제어들은 부가적으로 사용자 콘텍스트에 기초하여 선택될 수 있다. 사용자 콘텍스트는 제한 없이, 사용자 위치 및 로컬 사용자 시간 중 하나 이상으로 이루어질 수 있다. 복수의 메시징 봇 호출 제어들은 부가적으로, 사용자 프로필에 저장된 사용자 서비스 선호 정보에 기초하여와 같은, 사용자 프로필에 기초하여 선택될 수 있다.
메시징 봇 호출 제어들을 포함한 메시징 봇 옵션 구성(610)의 전달 후, 클라이언트 디바이스의 사용자는 메시징 봇 호출 제어들 중 하나를 선택할 수 있다. 메시징 구성요소(550)는 그 후 클라이언트 디바이스로부터 복수의 메시징 봇 호출 제어들 중 선택된 메시징 봇 호출 제어의 사용자 메시징 봇 선택을 수신할 수 있다. 선택된 메시징 봇 호출 제어는 선택된 메시징 봇과 연관된다. 사용자 메시징 봇 선택은 봇 관리 구성요소(660)로 전달되며, 그 후 이에 응답하여 메시징 봇 인터페이스를 클라이언트 디바이스로 전송한다. 이러한 메시징 봇 인터페이스는 몇몇 인스턴스들에서, 메시징 봇 메뉴를 포함할 수 있다.
메시징 봇 선택을 프로세싱하기 위해, 봇 관리 구성요소(660)는 메시징 봇 호출 메시지를 선택된 메시징 봇과 연관된 봇 서버로 전송한다. 메시징 봇 호출 메시지는 메시징 봇이 사용자 의도(515)에 따라 스스로를 구성할 수 있게 하기 위해 사용자 의도(515)를 포함한다. 몇몇 인스턴스들에서, 봇 서버는 소비자-대-기업 통신 시스템(100)에 의해 호스팅될 수 있다. 다른 인스턴스들에서, 봇 서버는 메시징 봇의 개발자에 의해서와 같이, 외부적으로 호스팅될 수 있다. 봇 관리 구성요소(660)는 그 후 메시징 봇 호출 메시지에 응답하여 봇 서버로부터 메시징 봇 인터페이스 규격을 수신하며, 여기에서 이러한 메시징 봇 인터페이스는 메시징 봇 인터페이스 규격에 기초한다.
메시징 구성요소(530)는 복수의 클라이언트 디바이스들 상에서 다중-사용자 인터페이스를 인스턴스화할 수 있다. 인스턴스화하는 것은 복수의 클라이언트 디바이스들의 각각 상에서 다중-사용자 인터페이스의 적어도 일 부분의 디스플레이를 나타낸다. 이에 응답하여, 복수의 클라이언트 디바이스들의 각각 상에서의 메시징 클라이언트는 다중-사용자 인터페이스의 적어도 일 부분을 디스플레이한다. 메시징 구성요소는 복수의 클라이언트 디바이스들 중 제 1 클라이언트 디바이스로부터 사용자-인터페이스 상호작용을 수신하며 사용자-인터페이스 상호작용에 기초하여 복수의 클라이언트 디바이스들 상에서 다중-사용자 인터페이스를 업데이트한다. 메시징 구성요소(530)는 복수의 클라이언트 디바이스들 중 개시 클라이언트 디바이스로부터 다중-사용자 애플리케이션 개시를 수신하며 다중-사용자 애플리케이션 개시에 응답하여 복수의 클라이언트 디바이스들 상에서 다중-사용자 인터페이스를 인스턴스화할 수 있다.
다중-사용자 애플리케이션 개시는 메시징 시스템에 대한 메시지 스레드와 연관될 수 있다. 메시지 스레드는 복수의 참여자 사용자 계정들과 연관될 수 있으며, 상기 복수의 참여자 사용자 계정들은 복수의 클라이언트 디바이스들과 연관된다. 다중-사용자 인터페이스는 메시지 스레드에서 복수의 참여자 사용자 계정들에 대한 복수의 클라이언트 디바이스들과 연관되는 복수의 참여자 사용자 계정들에 기초하여 복수의 클라이언트 디바이스들 상에서 인스턴스화된다.
메시징 구성요소(530)는 복수의 참여자 사용자 계정들과 메시지 스레드 사이에서의 연관에 기초하여 사용자-인터페이스 업데이트 오브젝트를 분배함으로써 복수의 클라이언트 디바이스들 상에서 다중-사용자 인터페이스를 업데이트할 수 있다. 사용자-인터페이스 업데이트 오브젝트는 메시지 큐(580)를 사용하여 분배될 수 있으며, 상기 오브젝트는 복수의 클라이언트 디바이스들로의 분배를 위해 큐잉된다.
개시 클라이언트 디바이스는 복수의 참여자 사용자 계정들 중 개시 사용자 계정과 연관될 수 있다. 개시 사용자 계정은 봇과의 상호작용을 위한 1차 계정으로서 사용될 수 있으며, 여기에서 요청된 서비스는 개시 사용자 계정으로부터의 요청인 것으로서 요청된다. 메시징 구성요소(530)는 다중-사용자 인터페이스를 통해 서비스 요청을 수신하는 것으로서, 상기 서비스 요청은 복수의 참여자 사용자 계정들로부터의 입력을 포함하는, 상기 서비스 요청 수신하며, 서비스 요청을 메시징 봇으로 제출할 수 있다. 서비스 요청은 개시 사용자 계정과 연관되는 것으로 개시 사용자 계정에 의해 제출된다. 서비스 요청은 개시 사용자 계정에서 비롯되는 것으로 메시징 봇에 전송된다.
복수의 참여자 사용자 계정들은 개시 사용자 계정 및 개시 사용자 계정이 아닌 하나 이상의 기여자 사용자 계정들을 포함할 수 있다. 서비스 요청을 포함한 입력은 개시 사용자 계정으로부터의 그룹 서비스 구성 및 하나 이상의 기여자 사용자 계정들로부터의 하나 이상의 개인 서비스 구성들을 포함할 수 있다. 예를 들면, 각각의 참여 사용자는 그들이 수신하고 싶어하는 서비스의 특정한 부분을 나타낼 수 있다. 예를 들면, 참여 사용자는 음식 주문, 수송 주문, 또는 다른 서비스 주문을 선택할 수 있다. 이와 같이, 하나 이상의 개인 서비스 구성들은 하나 이상의 옵션 선택들을 포함할 수 있다. 대안적으로, 하나 이상의 개인 서비스 구성들은 하나 이상의 서비스-요청 참여 확인들을 포함할 수 있으며, 따라서 요청된 서비스에 대한 참여자 카운트는 하나 이상의 서비스-요청 참여 확인들에 기초하여 결정된다.
다중-사용자 애플리케이션은 연관된 비용과 함께 서비스 요청을 생성하기 위해 사용될 수 있다. 몇몇 경우들에서, 메시징 구성요소(530)는 개시 사용자 계정으로부터 비용-분담 요청을 수신하며 비용-분담 요청을 하나 이상의 기여자 사용자 계정들로 전송할 수 있다. 비용-분담 요청은 메시지 큐(580)를 통해 전송될 수 있다. 비용-분담 요청은 하나 이상의 기여자 사용자 계정들로부터의 금융 이체를 개시하도록 동작할 수 있다. 몇몇 인스턴스들에서, 금융 이체는 개시 사용자 계정에 배상하기 위해 사용될 수 있다. 대안적으로, 하나 이상의 참여자 사용자 계정들로부터의 금융 이체는 요청된 서비스를 지불하기 위해 풀링될 수 있다.
도 7은 사용자 정보 교환(730) 및 봇 정보 교환(795)에 기초하여 메시징 봇 옵션 구성(610)을 결정하는 소비자-대-기업 통신 시스템(100)의 실시예를 예시한다.
사용자-대-봇 대화는 봇 관리 구성요소(660)에 의해 중재될 수 있다. 봇 관리 구성요소(660)는 메시징 시스템(140)을 위한 메시징 서버들에 결합될 수 있다. 메시징 서버들은 봇 관리 구성요소(660)와 사용자 클라이언트(720) 사이에서 메시지들의 전송 및 수신을 수행할 수 있다. 메시징 서버들은 봇 관리 구성요소(660)와 봇 애플케이션(790) 사이에서 정보의 전송 및 수신을 수행할 수 있거나, 또는 기업 포털(160)과 같은, 봇-애플리케이션 프론트-엔드가 사용될 수 있다.
사용자 클라이언트(720)는 메시징 클라이언트, 봇 애플리케이션(790)으로의 액세스를 위한 전용 클라이언트 또는 복수의 봇들(190)을 위한 복수의 봇 애플리케이션들, 또는 메시징 기능을 포함한 임의의 다른 클라이언트를 포함할 수 있다. 사용자 클라이언트(720)는 클라이언트 디바이스 상에서 실행할 수 있다. 사용자 클라이언트(720)는 클라이언트 통신 구성요소(740)를 사용하여 봇 관리 구성요소(660)와의 사용자 정보 교환(730)에 참여할 수 있다. 클라이언트 통신 구성요소(740)는 클라이언트 프론트-엔드를 봇 관리 구성요소(660)에 제공할 수 있으며, 이것은 메시징 시스템(140)에 의한 메시지들의 송신에 의해 중재될 수 있다. 사용자 정보 교환(730)은 사용자 클라이언트(720)로부터 봇 관리 구성요소(660)로의 사용자-구성 메시지들의 전송 및 봇 관리 구성요소(660)로부터 사용자 클라이언트(720)로의 봇 메시지들의 전송을 포함할 수 있다. 사용자 정보 교환(730)은, 제한 없이, 하나 이상의 사용자들에 대한 소셜-네트워킹 정보, 하나 이상의 사용자들에 대한 봇 상호작용 이력 정보, 또는 다른 사용자 정보와 같은, 사용자 메시지들 외에 부가적인 사용자 정보를 추가로 포함할 수 있다.
봇 애플리케이션(790)은 개발자 컴퓨터 시스템상에서 실행할 수 있거나 또는 소비자-대-기업 통신 시스템(100)에 의해 호스팅될 수 있는 바와 같은, 소프트웨어 프로그램을 포함할 수 있다. 봇 애플리케이션(790)은 봇 애플리케이션 인터페이스 구성요소(780)를 통해 봇 관리 구성요소(660)와의 봇 정보 교환(795)에 참여할 수 있다. 봇 애플리케이션 인터페이스 구성요소(780)는 봇 애플리케이션을 위한 메시징 시스템 및/또는 봇 관리 구성요소(660)로의 프론트-엔드로서 동작할 수 있다. 봇 정보 교환(795)은 봇 관리 구성요소(660)로의 예시적인 대화들의 제출 및 봇 애플리케이션(790)을 가진 봇 애플리케이션 인터페이스 구성요소(780)에 의한 봇 API 호출들의 수행을 포함할 수 있다. 봇 정보 교환(795)은 봇 관리 구성요소(660)로의 봇 능력 카탈로그의 제출 및/또는 사용자로의 제안을 위한 봇의 선택을 위한 다른 정보 교환을 포함할 수 있다.
봇 애플리케이션 인터페이스 구성요소(780)는 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들(770)을 수신한다. 봇-서비스 시스템은 메시징 시스템(140)의 구성요소를 포함할 수 있다. 참여자 봇 애플리케이션(790)에 대한 봇 능력 카탈로그는 상기 봇 애플리케이션(790)과의 봇 정보 교환(790)의 적어도 부분으로서 수신될 수 있다. 봇 애플리케이션 인터페이스 구성요소(780)는 봇들의 각각에 대한 봇 정보 교환(795)의 부분으로서 봇 능력 카탈로그들(770)을 상호작용 프로세싱 구성요소(760)로 제공한다.
복수의 봇 능력 카탈로그들(770)의 각각은 연관된 봇에 대한 봇 능력을 자연 언어로 표현한다. 특정한 봇은 특정한 서비스 또는 서비스들의 세트를 제공하기 위해 구축된다. 이들 서비스들은, 영어, 스페인어, 또는 임의의 다른 언어와 같은, 자연 언어로 표현될 수 있다. 이들 서비스들은 봇이 사용자에게 어떤 서비스 또는 서비스들을 제공할 수 있는지를 인간-판독 가능한 용어들로 설명하기 위해 자연 언어를 사용할 수 있다. 다양한 인간-판독 가능한 봇 능력 서술들이 사용될 수 있다. 예를 들면, 개발자는 문장 "This bot can help find and order food for delivery in the San Francisco area."로 음식-배달-주문 봇을 설명할 수 있다. 복수의 봇 능력 카탈로그들(770) 중 하나 이상은 하나 이상의 예시적인 사용자 프롬프트들로 봇 능력을 표현할 수 있다. 예시적인 사용자 프롬프트는 개발자가, 봇을 사용자에게 제안하는 것과 같은, 봇과의 상호작용을 유도해야 하는 사용자 서술, 사용자 상호작용, 또는 다른 사용자 거동의 예이다. 예를 들면, 예시적인 사용자 프롬프트는 인간-판독 가능한 자연 언어 문장, "What do you think about ordering something in?"일 수 있다. 예시적인 문장에 예시된 바와 같이, 예시적인 사용자 프롬프트는 사용자-대-사용자 교환의 일 부분을 포함할 수 있으며, 따라서 사용자는 하나 이상의 다른 사용자들과의 대화의 자연스러움 흐름을 동반하기 위해 봇들을 제안받을 수 있다.
봇 애플리케이션 인터페이스 구성요소(780)는 개발자 봇-구성 인터페이스를 통해 복수의 봇 능력 카탈로그들(770) 중 하나 이상의 봇 능력 카탈로그들을 수신할 수 있다. 이와 같이, 봇 능력들의 자연 언어 표현은 개발자-기록 봇 능력 서술들일 수 있다. 뿐만 아니라, 개발자-기록 봇 능력 서술들은 개발자-기록 예시적인 사용자 프롬프트들일 수 있다. 몇몇 경우들에서, 개발자는 그들의 봇과 사용자의 상호작용들의 로그들을 수신할 수 있다. 개발자는 그 후 앞으로 이동하고, 봇과의 상호작용을 유도해야 하는 사용자 서술의 예로서 사용되어야 하는 예시적인 사용자 프롬프트로서 사용자 프롬프트를 표시할 수 있다. 이와 같이, 적어도 몇몇 봇 능력 서술들은 개발자-승인 사용자-생성 예시적인 사용자 프롬프트들일 수 있다. 몇몇 경우들에서, 개발자는 봇에 대한 예시적인 사용자 프롬프트로서 사용자-생성 프롬프트를 사용하기 전에 사용자-생성 프롬프트를 편집할 수 있다.
클라이언트 통신 구성요소(740)는 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신한다. 사용자 서비스 프롬프트는 사용자에 관하여 그것이 사용자에게 봇을 제안하기 위해 적절할 수 있다는 임의의 표시이다. 사용자 서비스 프롬프트는 자연 언어로 표현될 수 있다. 이러한 자연 언어는 기록된 텍스트, 말한 단어, 시각적 제스처들 또는 사인들(예컨대, 수화), 또는 자연 언어의 임의의 다른 사용을 포함할 수 있다. 몇몇 경우들에서, 사용자 프롬프트는 사용자 클라이언트 디바이스 상에서 메시징 클라이언트를 통해 수신될 수 있다. 사용자 프롬프트는 둘 이상의 사용자들 사이에서의 상호작용의 일 부분을 포함할 수 있다. 이러한 상호작용은 메시징 클라이언트를 사용하여 수행된 메시징 상호작용을 포함할 수 있다.
몇몇 경우들에서, 사용자 프롬프트는 봇 상호작용 결과를 포함할 수 있다. 봇 상호작용 결과는 하나 이상의 사용자들과 하나 이상의 봇들 사이에서의 상호작용의 결과이다. 예를 들면, 사용자가 봇을 통해 레스토랑 예약을 하는 것은 봇 상호작용 결과이다. 봇 상호작용 결과는 봇들과의 상호작용들의 체인들을 장려하기 위해 사용자 프롬프트로서 인식될 수 있다. 예를 들어, 사용자는 약속, 예약, 또는 특정한 위치로 여행하기 위한 다른 계획을 하는 것의 봇 상호작용 결과에 응답하여 수송-서비스 봇들을 제안받을 수 있다. 예를 들면, 레스토랑 예약이 봇을 통해 이루어지는 것에 응답하여, 사용자는 사용자에 의한 임의의 다른 사용자 동작(수송에서의 특정 관심을 표현하는 것과 같은) 없이 승차-공유 봇을 제안받을 수 있다.
상호작용 프로세싱 구성요소(760)는 복수의 봇 능력 카탈로그들(770)에 사용자 서비스 프롬프트를 매칭시킴으로써 복수의 봇들 중 하나 이상의 선택된 봇들을 결정한다. 몇몇 경우들에서, 소비자-대-기업 시스템(100)은, 가능한 경우, 사용자에게 옵션들을 제공하기 위해 다수의 봇들을 제안하도록 구성될 수 있다. 이와 같이, 상호작용 프로세싱 구성요소(760)는 복수의 봇들 중 둘 이상의 선택된 봇들을 결정할 수 있다.
클라이언트 통신 구성요소(740)는 그 후 사용자 정보 교환(730)의 부분으로서 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것에 응답하여 사용자 클라이언트 디바이스에 대한 하나 이상의 선택된 봇들을 식별한다. 하나 이상의 선택된 봇들은 사용자 프롬프트를 검출하기 위해 사용된 사용자 클라이언트 디바이스 상에서 동일한 메시징 클라이언트에 대해 식별될 수 있다.
상호작용 프로세싱 구성요소(760)는 자연 언어 봇 능력들에 자연 언어 사용자 프롬프트들을 매칭시키기 위해 NLP 구성요소(560)를 사용할 수 있다. 상호작용 프로세싱 구성요소(760)는 복수의 봇 능력 카탈로그들(770)을 NLP 구성요소(560)로 제출하고 그에 대한 반응으로 NLP 구성요소(560)로부터 봇 능력 표(710)를 수신한다. 상호작용 프로세싱 구성요소(760)는 사용자 프롬프트를 NLP 구성요소(560)로 제출하며 그에 대한 반응으로 NLP 구성요소(560)로부터 사용자 의도를 수신한다. 상호작용 프로세싱 구성요소(760)는 그 후 봇 능력 표에 사용자 의도를 비교함으로써 하나 이상의 선택된 봇들을 결정한다.
이러한 비교는 추상형 수치 형태로 자연 언어 표현의 추론된 의미를 나타내는 수 벡터들을 사용하여 수행될 수 있다. 봇 능력 표(710)는 복수의 봇 능력 벡터들로서 복수의 봇 능력 카탈로그들을 나타낼 수 있다. 복수의 봇 능력 벡터들은 추상형 수치 형태로 자연 언어 봇 능력들을 인코딩한다. 몇몇 실시예들에서, 각각의 봇은 단일 봇 능력 벡터에 의해 표현될 수 있으며, 따라서 심지어 복수의 자연 언어 봇 능력 표현들도 단일 수 벡터로 조합된다. 그러나, 다른 실시예들에서, 봇들은 봇 능력 표(710)에서 복수의 봇 능력 표현들(예컨대, 복수의 예시적인 사용자 프롬프트들)의 각각에 대한 별개의 벡터를 갖는 것에 의해서와 같은, 다수의 벡터들에 의해 표현될 수 있다. 자연 언어 봇 능력들로부터 비-자연 언어 봇 능력 벡터들로의 변환은 자연 언어-대-벡터 기술들을 사용하여 NLP 구성요소(560)에 의해 수행된다.
유사하게, 사용자 의도는 사용자 의도 벡터로서 사용자 프롬프트를 표현할 수 있다. 자연 언어 사용자 프롬프트로부터 비-자연 언어 수 벡터로의 변환은 자연 언어-대-벡터 기술들을 사용하여 NLP 구성요소(560)에 의해 수행된다.
봇 능력 표(710)에 사용자 의도를 비교하는 것은 그러므로 사용자 의도 벡터에 기초하여 복수의 봇 능력 벡터들의 유사성 검색을 수행하는 것을 포함할 수 있다. 상호작용 프로세싱 구성요소(760)는 검색어로서 벡터화된 사용자 의도를 사용하여 봇 능력 표(710)를 검색할 수 있다. 유사성 검색은 코사인 유사성 비교에 기초할 수 있다. 봇 능력 표(710)는 효율적인 코사인 유사성 비교들을 가능하게 하도록 조직될 수 있으며, 따라서 복수의 봇 능력 벡터들은 직접 코사인 유사성 산출이 복수의 봇 능력 벡터들 모두 및 사용자 의도 벡터 사이에서 수행되지 않고 검색된다. 상호작용 프로세싱 구성요소(760)는 유사성 검색이 하나 이상의 봇들에 대한 하나 이상의 봇 능력 벡터들이 사용자 의도 벡터와 유사하다고 결정하는 것에 기초하여 하나 이상의 봇들을 선택한다.
상호작용 프로세싱 구성요소(760)는 사용자 의도 벡터에 대해 최고 유사성을 가진 봇 능력 벡터들을 갖는 미리 정의된 수의 봇들을 선택함으로써 미리 정의된 수의 봇들을 선택할 수 있다. 대안적으로, 상호작용 프로세싱 구성요소(760)는 미리 정의된 유사성 임계치가 사용자 의도 벡터를 초과하는 봇 능력 벡터들을 가진 이들 벡터들을 선택함으로써 봇들의 선택을 선택할 수 있다. 이들 기술들은, 미리 정의된 수의 봇들을 초과하지 않고 미리 정의된 유사성 임계치가 사용자 의도 벡터를 초과하는 봇 능력 벡터들을 가진 이들 봇들을 선택하는 것에 의해서와 같이, 조합하여 사용될 수 있으며, 따라서 더 많은 봇들이 미리 정의된 수에 의해 허용된 것보다 미리 정의된 유사성 임계치를 초과한다면, 사용자 의도에 대해 최고 유사성을 가진 미리 정의된 수의 봇들이 선택된다. 이와 같이, 선택된 봇들은 미리 정의된 유사성 임계치가 미리 정의된 수의 봇들까지 초과하는 것들일 수 있다. 선택된 봇들은 유사도에 따라 클라이언트 디바이스 상에서 디스플레이를 위해 등급이 매겨질 수 있으며, 더 높은 유사성 봇들은 더 낮은 유사성 봇들보다 높게 등급이 매겨진다.
몇몇 실시예들에서, 선택된 봇들은 특정 사용자에 대한 봇들의 선택 및 랭킹을 개선하기 위해 사용자-특정 정보에 기초하여 필터링될 수 있다. 이와 같이, 상호작용 프로세싱 구성요소(760)는 봇 적합성에 기초하여 둘 이상의 선택된 봇들의 둘 이상의 필터링된 봇들을 결정하며 사용자 클라이언트 디바이스로부터의 사용자 서비스 프롬프트를 수신하는 것에 응답하여 사용자 클라이언트 디바이스에 대해 둘 이상의 필터링된 봇들을 식별할 수 있다. 봇 적합성은 특정한 사용자에 대한 특정한 봇의 예측된 적합성에 대응한다. 특정한 사용자에 대한, 또는 메시지 스레드에서의 복수의 사용자들에 대한 봇 적합성을 위해 선택된 봇들을 필터링하는 것은 소비자-대-기업 통신 시스템(100)의 사용자 베이스에 걸쳐 추천들을 균일하게 수행하는 것에 비교하여 특정한 사용자들의 개인 경험을 개선하도록 사용자 또는 사용자들의 특정한 선호들을 처리한다.
상호작용 프로세싱 구성요소(760)는 하나 이상의 필터링된 봇들을 결정하기 위해 둘 이상의 제안된 봇들에 대한 봇 적합성을 결정한다. 봇 적합성을 결정하는 것은, 제한 없이, 사용자 프로필 정보, 사용자 거동 정보, 사용자 위치 정보, 사용자 메시징 콘텍스트 정보, 및 사용자 봇 이력 정보와 같은, 하나 이상의 신호들에 기초할 수 있다. 클라이언트 통신 구성요소(740)는 신호들을 분석하는데 사용하기 위한 사용자 정보를 검색하며 사용자 정보 교환(730)의 부분으로서 사용자 정보를 제공할 수 있다.
사용자 프로필 정보는 다양한 상이한 유형들의 정보를 포함할 수 있다. 사용자 프로필 정보는 데모그래픽 정보를 포함할 수 있다. 사용자 프로필 정보는 관계 정보를 포함할 수 있다. 사용자 프로필 정보는 교육 및/또는 직업 정보를 포함할 수 있다. 사용자 프로필 정보는, 사용자의 좋아하는 미디어, 서비스들, 또는 다른 선호들을 나타내는 사용자-생성 정보와 같은, 선호 정보를 포함할 수 있다. 이와 같이, 사용자 프로필 정보는 사용자에 대한 사용자 프로필에서 사용자 서비스 선호 정보를 포함할 수 있다.
봇들은 소비자-대-기업 통신 시스템(100)이 봇들의 등급을 매기는 것을 돕기 위해 소비자-대-기업 통신 시스템(100)에 대해 봇들의 등급을 매기는 것에 적합한 봇 랭킹 정보를 제공하도록 권한을 부여받을 수 있다. 봇은 사용자 서비스 프롬프트를 기술하는 정보 및/또는 하나 이상의 봇들의 제공을 유도하는 하나 이상의 사용자들을 제공받을 수 있다. 봇은 이 정보를 분석하며 그것이 사용자 서비스 프롬프트에 응답하고 및/또는 서비스를 하나 이상의 사용자들에 제공하는데 적절한지에 대한 그 자신의 분석을 나타내는 봇 랭킹 정보를 제공하도록 허용된다. 봇은 그것들이 높게 등급이 매겨져야 하지만, 누가 그 후 사용자들에 의해 열악하게 수신되는지를 나타내는 봇 랭킹 정보를 제공하는 봇들을 처벌함으로써 정직하고 정확한 평가를 제공하도록 권장될 수 있다. 일반적으로, 봇은 봇의 사용자 수신에 긍정적으로 대응하는 봇 랭킹 정보를 제공하는 봇들을 보상하고 봇의 사용자 수신에 열악하게 대응하는 봇 랭킹 정보를 제공하는 봇들을 처벌함으로써 정직하고 정확한 평가를 제공하도록 권장받을 수 있다. 봇의 사용자 수신은 제한 없이, 사용을 위해 선택되는 봇, 서비스를 수신하기 위해 봇을 사용하는 사용자, 및 봇으로부터 수신된 서비스 또는 봇 경험의 몇몇 다른 요소에 대한 사용자 만족과 같은, 제안된 봇에 대한 사용자 응답의 하나 이상의 측정치들을 포함할 수 있다.
상호작용 프로세싱 구성요소(760)는 봇 랭킹 정보에 대해 둘 이상의 필터링된 봇들을 질의하고 봇 랭킹 정보에 기초하여 둘 이상의 필터링된 봇들의 등급을 매긴다. 필터링된 봇들의 랭킹은 필터링된 봇들 중 어떤 것이 하나 이상의 사용자들을 위해 디스플레이될지 및/또는 하나 이상의 필터링된 봇들이 하나 이상의 사용자들을 위해 디스플레이되는 순서를 결정할 수 있다. 랭킹 봇 정보는 필터링된 봇들의 랭킹 순서의 결정에 기여할 수 있다. 필터링된 봇들의 최고-등급이 매겨진 그룹들은 디스플레이를 위해 하나 이상의 클라이언트 디바이스들에 제공되고 제공된 필터링된 봇들의 랭킹 순서에 기초하여 디스플레이를 위해 순서화될 수 있다. 봇 랭킹 정보는 봇 정보 교환(795)의 적어도 일 부분을 포함할 수 있다. 봇 랭킹 정보는 봇들에 의해 생성된 수치 스코어를 포함할 수 있으며, 수치 스코어는 수치 스코어를 포함한 다수의 인자들의 수학적 조합을 통해 각각의 봇에 대한 랭킹 수에 기여한다.
몇몇 경우들에서, 봇은 봇 랭킹 정보를 생성하도록 돕기 위해 사용자에 대한 사용자 정보를 제공받을 수 있다. 봇 랭킹 정보에 대해 둘 이상의 필터링 봇들에 질의하는 것은 사용자 계정에 대한 사용자 정보를 제공하는 것을 포함할 수 있으며, 여기에서 사용자 서비스 프롬프트는 봇-서비스 시스템에 대한 사용자 계정과 연관된다. 사용자 정보는, 데모그래픽 정보 및 사용자-관심 정보를 포함할 수 있는 것과 같은, 사용자 프로필 정보를 포함할 수 있다. 사용자 정보는 사용자-서비스-선호 정보를 포함할 수 있다. 사용자 정보는 위치 정보를 포함할 수 있으며, 이것은 음식 배달 또는 수송과 같은, 물리적 구성요소를 포함하는 서비스와 관련되는 봇들에 대해 특히 사용될 수 있다.
사용자 정보는 소비자-대-기업 통신 시스템(100)에 의해 안전하게 유지되며, 이와 같이, 사용자 정보를 공유하기 위한 사용자로부터의 허가는 정보가 공유되기 전에 요구될 수 있다. 이와 같이, 상호작용 프로세싱 구성요소(760)는 둘 이상의 필터링된 봇들의 봇에 대한 사용자-정보 공유 설정을 결정하며 사용자-정보 공유 설정 및 필터링된 봇으로서의 봇의 결정에 기초하여 사용자 계정으로부터 사용자-정보 공유 허가를 요청할 수 있다. 사용자-정보 공유 허가는 제 3 자들과 공유될 사용자 계정과 연관된 사용자 정보에 대한 허가이다. 이러한 허가는 정보가 제 3 자들과 공유되기 전에 요구될 수 있다. 몇몇 실시예들에서, 제 3 자들과 정보를 공유하기 위한 허가는 소비자-대-기업 통신 시스템(100)을 사용하여 모든 봇들에 대해 요청되고 수신될 수 있고, 따라서 허가는 일반적으로 제안된 봇들을 결정할 때 특정한 정보를 공유하도록 승인된다. 대안적으로, 몇몇 실시예들에서, 제 3 자들과 정보를 공유하기 위한 허가는 특정 봇들에 대해 요청되고 수신될 수 있으며, 따라서 사용자 정보를 공유하기 위한 허가는 상기 특정 봇에 대해 사용자로부터 요청되며 수신된 허가는 단지 상기 특정 봇을 위한 것이다. 이와 같이, 이들 실시예들에서, 사용자는 다른 봇들과 정보를 공유하기 위한 추가 허가에 대해 요청받을 수 있다.
일 경우에서, 필터링된 봇들은 계정-기반 봇을 포함할 수 있다. 계정-기반 봇은 소비자-대-기업 통신 시스템(100)을 위해 사용된 사용자 계정 외에 서비스를 수신하기 위한 봇의 사용이 사용자 계정을 사용하는 봇이다. 예를 들면, 사용자는 메시징 시스템(140)에 대한 메시징 계정 및 그 후 승차-공유 봇과 함께 사용하기 위한 별개의 사용자 계정을 가질 수 있다. 이들 계정들은 소비자-대-기업 통신 시스템(100)으로 서비스의 사용을 용이하게 하기 위해 서로 연결될 수 있지만, 그것들은 별개의 시스템들로의 사용자의 별개의 등록들을 나타낸다. 이 경우에, 계정-기반 봇으로 제공된 사용자 정보는 계정-기반 봇과 연관된 서비스를 위한 계정 정보와 같은, 계정-기반 봇에 대한 계정 정보를 포함할 수 있다. 예를 들면, 승차-공유 서비스와 연관된 승차-공유 봇은 또한 사용자 클라이언트 디바이스 상에서 승차-공유 애플리케이션에 의해 표현될 수 있다.
봇-서비스 시스템은 에이전트와의 하나의 상호작용이, 잠재적으로 무기한으로 계속되는 이러한 패턴을 갖고, 부가적인 에이전트로 이어질 수 있는 부가적인 제안들을 생성하도록 에이전트들과의 사용자 상호작용들을 묶도록 동작할 수 있다. 에이전트는 메시지 스레드에서 참여자들의 서비스에서의 메시지 스레드와 상호 작용하도록 동작하는 임의의 엔티티를 포함할 수 있다. 에이전트들은 하나 이상의 메시징 봇들, 하나 이상의 다중-사용자 애플리케이션들, 하나 이상의 메시징 클라이언트 툴들, 및 하나 이상의 소셜-네트워킹 툴들 중 하나 이상을 포함할 수 있다. 메시징 클라이언트 툴은 사용자 입력에 기초하여 메시지 스레드로 서비스를 제공하도록 동작적이며 메시지 스레드에 대한 결과를 생성하는 메시징 클라이언트 피처를 포함할 수 있다. 소셜-네트워킹 툴은 소셜 네트워킹 정보에 기초하여 서비스를 제공하도록 동작적이며 및/또는 메시지 스레드에 대한 소셜-네트워킹 정보를 생성하는 메시징 클라이언트 피처를 포함할 수 있다.
에이전트는 다중-사용자 폴 툴을 포함할 수 있다. 다중-사용자 폴 툴은 클라이언트 디바이스들로부터의 선택을 모으고 메시지 스레드에서 클라이언트 디바이스들로부터의 개개의 선택들에 기초하여 그룹 선택을 제공하는 풀을 다수의 클라이언트 디바이스들 상에서 제공할 수 있다. 다중-사용자 폴은 복수의 옵션들을 포함한다. 몇몇 경우들에서, 다중-사용자 폴 툴의 옵션들은 메시지 스레드에서의 참여자들을 총괄하여 포함하는 1차 사용자에 의해 - 1차 사용자 및 하나 이상의 2차 사용자들과 함께 - 구성될 수 있으며, 그 후 이들 옵션들에 대해 투표하고, 다중-사용자 풀의 결과는 옵션들 중에서 대다수 또는 복수의 선택을 포함한다. 몇몇 실시예들에서, 소비자-대-기업 통신 시스템(100)은 하나 이상의 옵션들을 자동으로 구성할 수 있다. 옵션들의 자동 구성은 메시징 봇으로부터의 봇 정보 및 메시징 상호작용 정보 중 하나 또는 양쪽 모두에 기초할 수 있다. 메시징 봇으로부터의 봇 정보는 메시징 봇 구성 옵션들을 포함할 수 있다. 메시징 봇 구성 옵션들은 메시징 봇에 의해 제공될 서비스의 구성을 위해 메시징 봇을 구성하기 위해 이용 가능한 옵션들을 포함할 수 있다.
에이전트들과 사용자 상호작용들을 묶는 것은 특정한 이벤트들에 가입하는 에이전트들에 기초할 수 있다. 이벤트들은, 이에 제한되지 않지만, 메시지 스레드와의 상호작용으로부터 생성되는 결과를 포함한다. 상호작용 프로세싱 구성요소(760)는 봇 정보 교환(795)의 부분으로서 봇-서비스 시스템에서 복수의 에이전트들에 대한 복수의 에이전트-이벤트 가입들을 수신할 수 있다. 에이전트는 소비자-대-기업 통신 시스템(100)과 함께 사용하기 위한 에이전트의 구성의 부분으로서 하나 이상의 이벤트들에 가입된다. 예를 들면, 메시징 봇은 메시징 봇의 개발자 구성의 부분으로서 다양한 이벤트들에 가입될 수 있다.
상호작용 프로세싱 구성요소(760)는 사용자 계정과 연관된 이벤트를 검출한다. 이러한 사용자 계정은 사용자 클라이언트 디바이스와 연관된다. 상호작용 프로세싱 구성요소(760)는 하나 이상의 이벤트-응답 에이전트들을 결정하기 위해 복수의 에이전트-이벤트 가입들에 대해 이벤트를 매칭시키며 이벤트를 검출하는 것에 응답하여 사용자 클라이언트 디바이스에 대해 하나 이상의 이벤트-응답 에이전트들을 식별한다. 이벤트-응답 에이전트들은 사용자에 의한 선택을 위해 이용 가능한 복수의 제안된 에이전트들로서 사용자 클라이언트 디바이스에 대해 식별될 수 있다.
이벤트는 사용자 서비스 프롬프트, 사용자 계정에 대한 소셜-정보 업데이트, 및 사용자 계정에 대한 사용자 콘텍스트 변화 중 하나 이상을 포함할 수 있다. 사용자 서비스 프롬프트는 둘 이상의 사용자들 사이에서의 상호작용에서 에이전트-기반 서비스에 참여하는데 검출된 관심을 포함할 수 있다. 소셜-정보 업데이트는, 제한 없이, 관계 상태 변화 및 친구 추가 중 하나를 포함할 수 있다. 사용자 콘텍스트 변화는, 제한 없이, 사용자 위치 변화를 포함할 수 있다. 이벤트는 봇 상호작용 결과를 포함할 수 있다. 사용자 위치 변화는 특정한 도시 블록에 도착하는 것, 특정한 도시에 도착하는 것, 또는 임의의 다른 사용자 위치 변화에 대응할 수 있다.
이벤트는 둘 이상의 사용자들 사이에서의 상호작용의 일 부분에 기초하여 검출될 수 있다. 예를 들어, 소비자-대-기업 통신 시스템(100)은 다중-사용자 폴 툴을 수행하고, 다중-사용자 폴 툴로부터 다중-사용자 폴 결과를 수신하며, 다중-사용자 폴 결과에 기초하여 상호작용에 대한 후속 이벤트를 생성할 수 있다. 후속 이벤트는 하나 이상의 부가적인 이벤트-응답 에이전트들을 결정하기 위해 복수의 에이전트-이벤트 가입들에 대해 매칭될 수 있다. 이들 부가적인 이벤트-응답 에이전트들은 그 후 후속 이벤트를 검출하는 것에 응답하여 사용자 클라이언트 디바이스에 대해 식별될 수 있다. 이벤트는 이벤트 정보에 따라 검출될 수 있다. 이벤트 정보는 사용자 클라이언트 디바이스 상에서 메시징 클라이언트를 통해 수신될 수 있으며, 하나 이상의 이벤트-응답 에이전트들은 사용자 클라이언트 디바이스 상에서 메시징 클라이언트에 대해 식별된다. 이벤트 정보는, 예를 들면, 특정한 이벤트에 대한 특정한 위치에서 계획된 참석을 포함할 수 있다.
NLP 구성요소(560)는 자연 언어 기계-학습 구성요소를 포함할 수 있으며, 따라서 NLP 구성요소(560)는 기계-학습 기술들을 사용하여 그것의 성능을 개선하도록 동작적이다. 상호작용 프로세싱 구성요소(760)는 그러므로 봇-서비스 시스템에 대한 봇 상호작용 이력에 기초하여 자연 언어 기계-학습 구성요소를 교시할 수 있다.
몇몇 실시예들에서, 분류체계(taxonomy)는 봇-서비스 시스템의 초기 기간 동안 사용되며 그 후 봇 능력들과 서비스 프롬프트들 사이에서의 기계-학습 기반 매칭으로 대체될 수 있다. 분류체계는 정의된 분류체계에 따라 봇 능력들을 나타내는 인간-생성 분류체계를 포함할 수 있으며, 상호작용 프로세싱 구성요소(760)는 정의된 분류체계들을 위한 기술들을 사용하여 정의된 분류체계에 기초하여 봇 능력들에 대해 사용자 프롬프트들을 매칭시킨다. 상호작용 프로세싱 구성요소(760)는 봇 상호작용 이력의 적어도 일 부분을 생성하기 위해 봇-서비스 시스템에 대한 복수의 분류체계-기반 봇 선택들을 수행할 수 있다.
소비자-대-기업 통신 시스템(100)은 사용자들로의 제안 봇들을 가진 그것의 진행 중인 경험에 기초하여 기계 학습을 사용함으로써 그 성능을 반복적으로 개선할 수 있다. 봇 애플리케이션 인터페이스 구성요소(780)는 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신한다. 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대해 봇 능력을 자연 언어로 표현한다. 클라이언트 통신 구성요소(740)는 복수의 사용자 클라이언트 디바이스들로부터 복수의 사용자 서비스 프롬프트들을 수신하며, 복수의 사용자 서비스 프롬프트들은 자연 언어로 표현된다. 상호작용 프로세싱 구성요소(760)는 자연 언어 기계-학습 구성요소에 의해 생성된 봇 능력 표(710)를 사용하여 복수의 봇 능력 카탈로그들에 대해 복수의 사용자 서비스 프롬프트들을 매칭시킴으로써 복수의 사용자 프롬프트들의 각각에 대해 복수의 봇들 중 선택된 봇들을 결정한다.
클라이언트 통신 구성요소(740)는 복수의 사용자 서비스 프롬프트들을 수신하는 것에 응답하여 복수의 사용자 클라이언트 디바이스로 선택된 봇들을 제공한다. 상호작용 프로세싱 구성요소(760)는 선택된 봇과의 사용자 상호작용들에 기초하여 봇 상호작용 이력을 기록하며 그 후 봇 상호작용 이력에 기초하여 자연 언어 기계-학습 구성요소를 업데이트한다. 상호작용 프로세싱 구성요소(760)는 봇 상호작용 이력에 기초하여 봇들의 성능에 관련된 신호들을 수집한다.
상호작용 프로세싱 구성요소(760)는 봇 완료율에 대해 최적화하는 것에 기초하여 자연 언어 기계-학습 구성요소를 업데이트할 수 있다. 봇 완료율은 사용자들이 봇과의 상호작용을 완료하는 비율에 대응할 수 있다. 봇과의 상호작용은 상호작용이 사용자에 대한 결과를 생성하는 경우 완료된다. 봇 완료율에 대해 최적화하는 것은 사용자 봇 거부율들에 기초할 수 있다. 봇 완료율에 대해 최적화하는 것은 정의된 봇 거부 임계치 아래로 사용자 봇 거부율을 유지하는 것에 기초할 수 있다. 봇 완료율에 대해 최적화하는 것은 사용자-봇-이력 신호들에 기초할 수 있다. 사용자-봇-이력 신호들은 사용자들과 봇들 사이에서의 상호작용들에 대한 정보를 나타낸다. 봇 능력 표가 복수의 봇 능력 벡터들로서 복수의 봇 능력 카탈로그들을 나타내는 경우, 상호작용 프로세싱 구성요소(760)는 복수의 봇 능력 카탈로그들과 복수의 봇 능력 벡터들 사이에서의 매핑을 수정하도록 자연 언어 기계-학습 구성요소를 업데이트할 수 있다.
몇몇 실시예들에서, 상호작용 프로세싱 구성요소(760)는 증가하는 봇 정보 공유에 기초하여 자연 언어 기계-학습 구성요소를 업데이트할 수 있다. 결과를 생성하지만 봇-서비스 시스템에 대한 공식적인 정보-보고 신호들을 사용하여 결과에 대한 정보를 공유하지 않는 봇들은 낮아진 제안된 봇들에서의 랭크를 가짐으로써 처벌받을 수 있다. 유사한 처벌행위가, 봇이 서비스의 구성 시 사용자 정보를 수신하지만 봇-서비스 시스템으로 상기 사용자 정보를 제공하지 않는 경우 수행될 수 있다. 반대로, 봇들은 그것들이 서비스의 구성 동안 결정된 사용자에 대한 사용자 정보와 같은, 정보를 봇-서비스 시스템에 제공하는 경우 더 높은 랭킹으로 보상받을 수 있다.
개시된 아키텍처의 신규 양상들을 수행하기 위한 대표적인 방법들을 나타내는 흐름도들의 세트가 여기에 포함된다. 설명의 단순성의 목적들을 위해, 예를 들면, 플로우 차트 또는 흐름도의 형태로, 여기에 도시된 하나 이상의 방법들은 일련의 동작들로서 도시되고 설명되지만, 방법들은, 몇몇 동작들이, 그것에 따라, 여기에서 도시되고 설명된 것과 다른 동작들과 상이한 순서로 및/또는 동시에 발생할 수 있으므로, 동작들의 순서에 제한되지 않는다는 것이 이해되고 인식될 것이다. 예를 들면, 이 기술분야의 숙련자들은 방법이 대안적으로 상태 도에서처럼, 일련의 서로 관계가 있는 상태들 또는 이벤트들로서 표현될 수 있다는 것을 이해하고 인식할 것이다. 게다가, 방법에 예시된 모든 동작들이 신규 구현을 위해 요구되는 것은 아닐 수 있다.
도 8a는 논리 흐름(800)의 일 실시예를 예시한다. 논리 흐름(800)은 역에서 설명된 하나 이상의 실시예들에 의해 실행된 동작들 중 일부 또는 모두를 나타낼 수 있다.
도 8a에 도시된 예시된 실시예에서, 논리 흐름(800)은 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신할 수 있으며, 여기에서 복수의 봇 능력 카탈로그들의 각각은 블록(802)에서 연관된 봇에 대해 봇 능력을 자연 언어로 표현한다.
논리 흐름(800)은 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신할 수 있으며, 상기 사용자 서비스 프롬프트는 블록(804)에서 자연 언어로 표현된다.
논리 흐름(800)은 블록(806)에서 복수의 봇 능력 카탈로그들에 대해 사용자 서비스 프롬프트를 매칭시킴으로써 복수의 봇들 중 하나 이상의 선택된 봇들을 결정할 수 있다.
논리 흐름(800)은 블록(808)에서 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것에 응답하여 사용자 클라이언트 디바이스에 대해 하나 이상의 선택된 봇들을 식별할 수 있다.
도 8b는 논리 흐름(820)의 일 실시예를 예시한다. 논리 흐름(820)은 여기에서 설명된 하나 이상의 실시예들에 의해 실행된 동작들 중 일부 또는 모두를 나타낼 수 있다.
도 8b에 도시된 예시된 실시예에서, 논리 흐름(820)은 봇-서비스 시스템에서 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신할 수 있으며, 상기 사용자 서비스 프롬프트는 블록(822)에서 자연 언어로 표현된다.
논리 흐름(820)은 블록(824)에서 복수의 봇들 중 둘 이상의 선택된 봇들을 결정할 수 있다.
논리 흐름(820)은 블록(826)에서 봇 적합성에 기초하여 둘 이상의 선택된 봇들의 둘 이상의 필터링된 봇들을 결정할 수 있다.
논리 흐름(820)은 블록(828)에서 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것에 응답하여 사용자 클라이언트 디바이스에 대해 둘 이상의 필터링된 봇들을 식별할 수 있다.
도 8c는 논리 흐름(840)의 일 실시예를 예시한다. 논리 흐름(840)은 여기에서 설명된 하나 이상의 실시예들에 의해 실행된 동작들 중 일부 또는 모두를 나타낼 수 있다.
도 8c에 도시된 예시된 실시예에서, 논리 흐름(840)은 블록(842)에서 봇-서비스 시스템에서 복수의 에이전트들에 대한 복수의 에이전트-이벤트 가입들을 수신할 수 있다.
논리 흐름(840)은 사용자 계정과 연관된 이벤트를 검출할 수 있으며, 상기 사용자 계정은 블록(844)에서 사용자 클라이언트 디바이스와 연관된다.
논리 흐름(840)은 블록(846)에서 하나 이상의 이벤트-응답 에이전트들을 결정하기 위해 복수의 에이전트-이벤트 가입들에 대해 이벤트를 매칭시킬 수 있다.
논리 흐름(840)은 블록(848)에서 이벤트를 검출하는 것에 응답하여 사용자 클라이언트 디바이스에 대해 하나 이상의 이벤트-응답 에이전트들을 식별할 수 있다.
도 8d는 논리 흐름(860)의 일 실시예를 예시한다. 논리 흐름(860)은 여기에서 설명된 하나 이상의 실시예들에 의해 실행된 동작들 중 일부 또는 모두를 나타낼 수 있다.
도 8d에 도시된 예시된 실시예에서, 논리 흐름(860)은 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신할 수 있으며, 여기에서 복수의 봇 능력 카탈로그들의 각각은 블록(862)에서 연관된 봇에 대해 봇 능력을 자연 언어로 표현한다.
논리 흐름(860)은 복수의 사용자 클라이언트 디바이스들로부터 복수의 사용자 서비스 프롬프트들을 수신할 수 있으며, 상기 복수의 사용자 서비스 프롬프트들은 블록(864)에서 자연 언어로 표현된다.
논리 흐름(860)은 블록(866)에서 자연 언어 기계-학습 구성요소에 의해 생성된 봇 능력 표를 사용하여 복수의 봇 능력 카탈로그들에 대해 복수의 사용자 서비스 프롬프트들을 매칭시킴으로써 복수의 사용자 프롬프트들의 각각에 대해 복수의 봇들 중 선택된 봇들을 결정할 수 있다.
논리 흐름(860)은 블록(868)에서 복수의 사용자 서비스 프롬프트들을 수신하는 것에 응답하여 복수의 사용자 클라이언트 디바이스로 선택된 봇들을 제공할 수 있다.
논리 흐름(860)은 블록(870)에서 선택된 봇들과의 사용자 상호작용들에 기초하여 봇 상호작용 이력을 기록할 수 있다.
논리 흐름(860)은 블록(872)에서 봇 상호작용 이력에 기초하여 자연 언어 기계-학습 구성요소를 업데이트할 수 있다.
도 8e는 논리 흐름(880)의 일 실시예를 예시한다. 논리 흐름(880)은 여기에서 설명된 하나 이상의 실시예들에 의해 실행된 동작들 중 일부 또는 모두를 나타낼 수 있다.
도 8e에 도시된 예시된 실시예에서, 논리 흐름(880)은 복수의 클라이언트 서비스들 상에서 다중-사용자 인터페이스를 인스턴스화할 수 있으며, 여기에서 인스턴스화하는 것은 블록(882)에서 복수의 클라이언트 디바이스들의 각각 상에서 다중-사용자 인터페이스의 적어도 일 부분의 디스플레이를 나타낸다.
논리 흐름(880)은 블록(884)에서 복수의 클라이언트 디바이스들 중 제 1 클라이언트 디바이스로부터 사용자-인터페이스 상호작용을 수신할 수 있다.
논리 흐름(880)은 블록(886)에서 사용자-인터페이스 상호작용에 기초하여 복수의 클라이언트 디바이스들 상에서 다중-사용자 인터페이스를 업데이트할 수 있다.
실시예들은 이들 예들에 제한되지 않는다.
도 9는 집중화 시스템(900)의 블록도를 예시한다. 집중화 시스템(900)은 전체적으로 단일 집중화 서버 디바이스(920) 내에서와 같은, 단일 컴퓨팅 엔티티에서 소비자-대-기업 통신 시스템(100)에 대한 구조 및/또는 동작들 중 일부 또는 모두를 구현할 수 있다.
집중화 서버 디바이스(920)는 소비자-대-기업 통신 시스템(100)에 대한 정보를 수신하고, 프로세싱하며, 전송할 수 있는 임의의 전자 디바이스를 포함할 수 있다. 전자 디바이스의 예들은 제한 없이 울트라-이동 디바이스, 이동 디바이스, 개인용 디지털 보조기(PDA), 이동 컴퓨팅 디바이스, 스마트폰, 전화, 디지털 전화, 휴대 전화, 전자책(eBook) 판독기들, 핸드셋, 단-방향 페이저, 양-방향 페이저, 메시징 디바이스, 컴퓨터, 개인용 컴퓨터(PC), 디스크탑 컴퓨터, 랩탑 컴퓨터, 노트북 컴퓨터, 넷북 컴퓨터, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 서버, 서버 어레이 또는 서버 팜, 웹 서버, 네트워크 서버, 인터넷 서버, 워크 스테이션, 미니-컴퓨터, 메인 프레임 컴퓨터, 슈퍼컴퓨터, 네트워크 기기, 웹 기기, 분산형 컴퓨팅 시스템, 다중프로세서 시스템들, 프로세서-기반 시스템들, 소비자 전자 장치들, 프로그램 가능한 소비자 전자 장치들, 게임 디바이스들, 텔레비전, 디지털 텔레비전, 셋 탑 박스, 무선 액세스 포인트, 기지국, 가입자 스테이션, 모바일 가입자 센터, 라디오 네트워크 제어기, 라우터, 허브, 게이트웨이, 브리지, 스위치, 기계, 또는 그것의 조합을 포함할 수 있다. 실시예들은 이러한 맥락에서 제한되지 않는다.
집중화 서버 디바이스(920)는 프로세싱 구성요소(930)를 사용하여 소비자-대-기업 통신 시스템(100)에 대한 프로세싱 동작들 또는 로직을 실행할 수 있다. 프로세싱 구성요소(930)는 다양한 하드웨어 요소들, 소프트웨어 요소들, 또는 양쪽 모두의 조합을 포함할 수 있다. 하드웨어 요소들의 예들은 디바이스들, 논리 디바이스들, 구성요소들, 프로세서들, 마이크로프로세서들, 회로들, 프로세서 회로들, 회로 요소들(예컨대, 트랜지스터들, 저항기들, 커패시터들, 인덕터들 등), 집적 회로들, 애플리케이션 특정 집적 회로들(ASIC), 프로그램 가능한 논리 디바이스들(PLD), 디지털 신호 프로세서들(DSP), 필드 프로그램 가능한 게이트 어레이(FPGA), 메모리 유닛들, 논리 게이트들, 레지스터들, 반도체 디바이스, 칩들, 마이크로칩들, 칩 셋들 등을 포함할 수 있다. 소프트웨어 요소들의 예들은 소프트웨어 구성요소들, 프로그램들, 애플리케이션들, 컴퓨터 프로그램들, 애플리케이션 프로그램들, 시스템 프로그램들, 소프트웨어 개발 프로그램들, 기계 프로그램들, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 함수들, 방법들, 프로시저들, 소프트웨어 인터페이스들, 애플리케이션 프로그램 인터페이스들(API), 지시 세트들, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트들, 컴퓨터 코드 세그먼트들, 단어들, 값들, 심볼들, 또는 그것의 임의의 조합을 포함할 수 있다. 실시예가 하드웨어 요소들 및/또는 소프트웨어 요소들을 사용하여 구현되는지를 결정하는 것은, 주어진 구현에 대해 요구된 대로, 원하는 계산율, 전력 레벨들, 열 허용 오차들, 프로세싱 사이클 예산, 입력 데이터 레이트들, 출력 데이터 레이트들, 메모리 리소스들, 데이터 버스 속도들 및 다른 설계 또는 성능 제약들과 같은, 임의의 수의 인자들에 따라 달라질 수 있다.
집중화 서버 디바이스(920)는 통신 구성요소(940)를 사용하여 소비자-대-기업 통신 시스템(100)에 대한 통신 동작들 또는 로직을 실행할 수 있다. 통신 구성요소(940)는 패킷-스위칭 네트워크들(예컨대, 인터넷과 같은 공공 네트워크들, 기업 인트라넷과 같은 사설 네트워크들 등), 회로-스위칭 네트워크들(예컨대, 공중 스위치 전화 네트워크), 또는 패킷-스위칭 네트워크들 및 회로-스위칭 네트워크들의 조합(적절한 게이트웨이들 및 변환기들과 함께)과 함께 사용하기에 적합한 기술들과 같은, 임의의 잘-알려진 통신 기술들 및 프로토콜들을 구현할 수 있다. 통신 구성요소(940)는 하나 이상의 통신 인터페이스들, 네트워크 인터페이스들, 네트워크 인터페이스 카드들(NIC), 라디오들, 무선 송신기들/수신기들(트랜시버들), 유선 및/또는 무선 통신 미디어, 물리 커넥터들 등과 같은, 다양한 유형들의 표준 통신 요소들을 포함할 수 있다. 제한으로서가 아닌, 예로서, 통신 미디어(912)는 유선 통신 미디어 및 무선 통신 미디어를 포함한다. 유선 통신 미디어의 예들은, 와이어, 케이블, 금속 리드들, 인쇄 회로 보드들(PCB), 백플레인들, 스위치 패브릭들, 반도체 재료, 꼬임-쌍 와이어, 동축 케이블, 파이버 옵틱스, 전파 신호 등을 포함할 수 있다. 무선 통신 미디어의 예들은 음향, 라디오-주파수(RF) 스펙트럼, 적외선 및 다른 무선 미디어를 포함할 수 있다.
집중화 서버 디바이스(920)는 단일 컴퓨팅 엔티티에서 소비자-대-기업 서비스(110)를 구현할 수 있다. 집중화 서버 디바이스(920)는 통신 구성요소(940)를 통해 통신 신호들(914)을 사용하여 통신 미디어(912)를 통해 다른 디바이스들과 통신할 수 있다. 디바이스들은 주어진 구현에 대해 요구된 대로 집중화 서버 디바이스(920)의 내부에 있거나 또는 외부에 있을 수 있다. 집중화 서버 디바이스(920)는 클라이언트 디바이스(120), 클라이언트 디바이스(320), 2차 클라이언트 디바이스(370), 전송자 클라이언트 디바이스(520), 수신자 클라이언트 디바이스(590), 또는 임의의 다른 클라이언트 디바이스를 포함할 수 있는 것과 같은, 복수의 클라이언트 디바이스들(910)과 통신할 수 있다.
도 10은 분산형 시스템(1000)의 블록도를 예시한다. 분산형 시스템(1000)은 다수의 컴퓨팅 엔티티들에 걸쳐 소비자-대-기업 통신 시스템(100)에 대한 구조 및/또는 동작들의 부분들을 분배할 수 있다. 분산형 시스템(1000)의 예들은 제한 없이, 클라이언트-서버 아키텍처, 3-티어 아키텍처, N-티어 아키텍처, 밀착-결합 또는 클러스터링된 아키텍처, 피어-투-피어 아키텍처, 마스터-슬레이브 아키텍처, 공유형 데이터베이스 아키텍처, 및 다른 유형들의 분산형 시스템들을 포함할 수 있다. 실시예들은 이러한 맥락에서 제한되지 않는다.
분산형 시스템(1000)은 복수의 분산형 서버 디바이스들(1010)을 포함할 수 있다. 일반적으로, 분산형 서버 디바이스들(1010)은 도 9를 참조하여 설명된 바와 같이 집중화 서버 디바이스(820)와 동일하거나 또는 유사할 수 있다. 예를 들어, 분산형 서버 디바이스들(1010)은 각각 도 9를 참조하여 설명된 바와 같이, 각각 프로세싱 구성요소(930) 및 통신 구성요소(940)와 동일하거나 또는 유사한 프로세싱 구성요소(1030) 및 통신 구성요소(1040)를 포함할 수 있다. 또 다른 예에서, 분산형 서버 디바이스들(1010)은 통신 구성요소들(1040)을 경유하여 통신 신호들(1014)을 사용하여 통신 미디어(1012)를 통해 통신할 수 있다.
분산형 서버 디바이스들(1010)은 설명된 실시예들에 따라 다양한 방법들을 수행하도록 동작하는 하나 이상의 서버 프로그램들을 포함하거나 또는 이를 이용할 수 있다. 일 실시예에서, 예를 들면, 분산형 서버 디바이스들(1010)은 각각 하나 이상의 소비자-대-기업 서버들(1015)을 구현할 수 있다. 소비자-대-기업 서버들(1015)은 분산형 컴퓨팅 엔티티로서 소비자-대-기업 서비스(110)를 총괄하여 구현할 수 있다. 소비자-대-기업 서버들(1015)은 클라이언트 디바이스(120), 클라이언트 디바이스(320), 2차 클라이언트 디바이스(370), 전송자 클라이언트 디바이스(520), 수신자 클라이언트 디바이스(590), 클라이언트 디바이스(910), 또는 임의의 다른 클라이언트 디바이스를 포함할 수 있는 것과 같은, 복수의 클라이언트 디바이스들(1020)과 통신할 수 있다.
도 11은 이전에 설명된 바와 같이 다양한 실시예들을 구현하는데 적합한 대표적인 컴퓨팅 아키텍처(1100)의 실시예를 예시한다. 일 실시예에서, 컴퓨팅 아키텍처(1100)는 전자 디바이스를 포함하거나 또는 그것의 부분으로서 구현될 수 있다. 전자 디바이스의 예들은 다른 것들 중에서, 도 9 및 도 10을 참조하여 설명된 것들을 포함할 수 있다. 실시예들은 이러한 맥락에서 제한되지 않는다.
본 출원에서 사용된 바와 같이, 용어들("시스템" 및 "구성요소")은 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어 중 하나인, 컴퓨터-관련 엔티티를 나타내도록 의도되며, 그 예들은 대표적인 컴퓨팅 아키텍처(1100)에 의해 제공된다. 예를 들면, 구성요소는, 이에 제한되지 않지만, 프로세서상에서 구동하는 프로세스, 프로세서, 하드 디스크 드라이브, 다수의 저장 드라이브들(광학 및/또는 자기 저장 매체의), 오브젝트, 실행 파일, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있다. 예시로서, 서버상에서 구동하는 애플리케이션 및 서버 양쪽 모두는 구성요소일 수 있다. 하나 이상의 구성요소들은 프로세스 및/또는 실행 스레드 내에 존재할 수 있으며, 구성요소는 하나의 컴퓨터상에서 국소화되고 및/또는 둘 이상의 구성요소들 사이에 분포될 수 있다. 뿐만 아니라, 구성요소들은 동작들을 조정하기 위해 다양한 유형들의 통신 미디어에 의해 서로 통신적으로 결합될 수 있다. 조정은 정보의 단-방향 또는 양-방향 교환을 수반할 수 있다. 예를 들어, 구성요소들은 통신 미디어를 통해 전달된 신호들의 형태로 정보를 전달할 수 있다. 정보는 다양한 신호 라인들에 할당된 신호들로서 구현될 수 있다. 이러한 할당들에서, 각각의 메시지는 신호이다. 추가 실시예들은, 그러나, 대안적으로 데이터 메시지들을 이용할 수 있다. 이러한 데이터 메시지들은 다양한 연결들에 걸쳐 전송될 수 있다. 대표적인 연결들은 병렬 인터페이스들, 직렬 인터페이스들, 및 버스 인터페이스들을 포함한다.
컴퓨팅 아키텍처(1100)는 하나 이상의 프로세서들, 다중-코어 프로세서들, 코-프로세서들, 메모리 유닛들, 칩셋들, 제어기들, 주변 장치들, 인터페이스들, 발진기들, 타이밍 디바이스들, 비디오 카드들, 오디오 카드들, 멀티미디어 입력/출력(I/O) 구성요소들, 전원 공급 장치들 등과 같은, 다양한 공통 컴퓨팅 요소들을 포함한다. 실시예들은, 그러나, 컴퓨팅 아키텍처(1100)에 의한 구현에 제한되지 않는다.
도 11에 도시된 바와 같이, 컴퓨팅 아키텍처(1100)는 프로세싱 유닛(1104), 시스템 메모리(1106) 및 시스템 버스(1108)를 포함한다. 프로세싱 유닛(1104)은, 제한 없이, AMD® Athlon®, Duron® 및 Opteron® 프로세서들; ARM® 애플리케이션, 내장되고 안전한 프로세서들; IBM® 및 Motorola® DragonBall® 및 PowerPC® 프로세서들; IBM 및 Sony® 셀 프로세서들; Intel® Celeron®, Core (2) Duo®, Itanium®, Pentium®, Xeon®, 및 XScale® 프로세서들; 및 유사한 프로세서들을 포함한, 다양한 상업적으로 이용 가능한 프로세서들 중 임의의 것일 수 있다. 듀얼 마이크로프로세서들, 다중-코어 프로세서들, 및 다른 다중-프로세서 아키텍처들은 또한 프로세싱 유닛(1104)으로서 이용될 수 있다.
시스템 버스(1108)는, 이에 제한되지 않지만, 시스템 메모리(1106)를 포함한 시스템 구성요소들을 위한 인터페이스를 프로세싱 유닛(1104)에 제공한다. 시스템 버스(1108)는 다양한 상업적으로 이용 가능한 버스 아키텍처들 중 임의의 것을 사용하여 메모리 버스(메모리 제어기를 갖거나 또는 그것 없이), 주변장치 버스, 및 로컬 버스에 추가로 상호 연결할 수 있는 여러 유형들의 버스 구조 중 임의의 것일 수 있다. 인터페이스 어댑터들은 슬롯 아키텍처를 통해 시스템 버스(1108)에 연결할 수 있다. 예시적인 슬롯 아키텍처들은 제한 없이, 가속화 그래픽 포트(AGP), 카드 버스, (확장형) 산업용 표준 아키텍처((E)ISA), 마이크로 채널 아키텍처(MCA), NuBus, 주변 구성요소 상호접속(확장형)(PCI(X)), PCI 고속, 개인용 컴퓨터 메모리 카드 국제 협회(PCMCIA) 등을 포함할 수 있다.
컴퓨팅 아키텍처(1100)는 다양한 제조 물품들을 포함하거나 또는 이를 구현할 수 있다. 제조 물품은 로직을 저장하기 위해 컴퓨터-판독 가능한 저장 매체를 포함할 수 있다. 컴퓨터-판독 가능한 저장 매체의 예들은, 휘발성 메모리 또는 비-휘발성 메모리, 착탈 가능한 또는 착탈 가능하지 않은 메모리, 삭제 가능한 또는 삭제 가능하지 않는 메모리, 기록 가능한 또는 재-기록 가능한 메모리 등을 포함한, 전자 데이터를 저장할 수 있는 임의의 유형의 미디어를 포함할 수 있다. 로직의 예들은 소스 코드, 컴파일링 코드, 해석된 코드, 실행 가능한 코드, 정적 코드, 동적 코드, 오브젝트-지향 코드, 시각적 코드 등과 같은, 임의의 적절한 유형의 코드를 사용하여 구현된 실행 가능한 컴퓨터 프로그램 지시들을 포함할 수 있다. 실시예들은 또한, 여기에서 설명된 동작들의 수행을 가능하게 하기 위해 하나 이상의 프로세서들에 의해 판독되고 실행될 수 있는, 비-일시적 컴퓨터-판독 가능한 매체에 또는 그것 상에 포함된 지시들로서 적어도 부분적으로 구현될 수 있다.
시스템 메모리(1106)는 판독-전용 메모리(ROM), 랜덤-액세스 메모리(RAM), 동적 RAM(DRAM), 이중-데이터-레이트 DRAM(DDRAM), 동기식 DRAM(SDRAM), 정적 RAM(SRAM), 프로그램 가능한 ROM(PROM), 삭제 가능한 프로그램 가능 ROM(EPROM), 전기적으로 삭제 가능한 프로그램 가능 ROM(EEPROM), 플래시 메모리, 강유전성 폴리머 메모리와 같은 폴리머 메모리, 오보닉 메모리, 상 변화 또는 강유전성 메모리, 실리콘-산화물-질화물-산화물 실리콘(SONOS) 메모리, 자기 또는 광학 카드들, 독립 디스크들의 이중 어레이(RAID) 드라이브들과 같은 디바이스들의 어레이, 고체 상태 메모리 디바이스들(예컨대, USB 메모리, 고체 상태 드라이브들(SSD)) 및 정보를 저장하기 위해 적합한 임의의 다른 유형의 저장 미디어와 같은, 하나 이상의 고속 메모리 유닛들의 형태로 다양한 유형들의 컴퓨터-판독 가능한 저장 미디어를 포함할 수 있다. 도 11에 도시된 예시된 실시예에서, 시스템 메모리(1106)는 비-휘발성 메모리(1110) 및/또는 휘발성 메모리(1112)를 포함할 수 있다. 기본 입력/출력 시스템(BIOS)는 비-휘발성 메모리(1110)에 저장될 수 있다.
컴퓨터(1102)는 내부(또는 외부) 하드 디스크 드라이브(HDD)(1114), 착탈 가능한 자기 디스크(1118)로부터 판독하거나 또는 그것으로 기록하기 위한 자기 플로피 디스크 드라이브(FDD)(1116), 및 착탈 가능한 광학 디스크(1122)(예컨대, CD-ROM 또는 DVD)로부터 판독하거나 또는 그것으로 기록하기 위한 광학 디스크 드라이브(1120)를 포함한, 하나 이상의 저속 메모리 유닛들의 형태로 다양한 유형들의 컴퓨터-판독 가능한 저장 미디어를 포함할 수 있다. HDD(1114), FDD(1116) 및 광학 디스크 드라이브(1120)는 각각, HDD 인터페이스(1124), FDD 인터페이스(1126) 및 광학 드라이브 인터페이스(1128)에 의해 시스템 버스(1108)에 연결될 수 있다. 외부 드라이브 구현들을 위한 HDD 인터페이스(1124)는 범용 직렬 버스(USB) 및 IEEE 1394 인터페이스 기술들 중 적어도 하나 또는 양쪽 모두를 포함할 수 있다.
드라이브들 및 연관된 컴퓨터-판독 가능한 미디어는 데이터의 휘발성 및/또는 비휘발성 저장, 데이터 구조들, 컴퓨터-실행 가능한 지시들 등을 제공한다. 예를 들면, 다수의 프로그램 모듈들이 운영 시스템(1130), 하나 이상의 애플리케이션 프로그램들(1132), 다른 프로그램 모듈들(1134), 및 프로그램 데이터(1136)를 포함한, 드라이브들 및 메모리 유닛들(1110, 1112)에 저장될 수 있다. 일 실시예에서, 하나 이상의 애플리케이션 프로그램들(1132), 다른 프로그램 모듈들(1134), 및 프로그램 데이터(1136)는, 예를 들면, 시스템(100)의 다양한 애플리케이션들 및/또는 구성요소들을 포함할 수 있다.
사용자는 하나 이상의 유선/무선 입력 디바이스들, 예를 들면 키보드(1138) 및 마우스(1140)와 같은, 포인팅 디바이스를 통해 컴퓨터(1102)로 명령들 및 정보를 입력할 수 있다. 다른 입력 디바이스들은 마이크로폰들, 적외선(IR) 원격 제어들, 라디오-주파수(RF) 원격 제어들, 게임 패드들, 스타일러스 펜들, 카드 판독기들, 동글들, 핑거 프린트 판독기들, 글러브들, 그래픽 태블릿들, 조이스틱들, 키보드들, 망막 판독기들, 터치 스크린들(예컨대, 정전식, 저항식 등), 트랙볼들, 트랙패드들, 센서들, 스타일러스들 등을 포함할 수 있다. 이들 및 다른 입력 디바이스들은 종종 시스템 버스(1108)에 결합되는 입력 디바이스 인터페이스(1142)를 통해 프로세싱 유닛(1104)에 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스 등과 같은 다른 인터페이스들에 의해 연결될 수 있다.
모니터(1144) 또는 다른 유형의 디스플레이 디바이스가 또한, 비디오 어댑터(1146)와 같은, 인터페이스를 통해 시스템 버스(1108)에 연결된다. 모니터(1144)는 컴퓨터(1102)의 내부에 있거나 또는 외부에 있을 수 있다. 모니터(1144) 외에, 컴퓨터는 통상적으로 스피커들, 프린터들 등과 같은, 다른 주변장치 출력 디바이스들을 포함한다.
컴퓨터(1102)는 유선 및/또는 무선 통신들을 통해 원격 컴퓨터(1148)와 같은, 하나 이상의 원격 컴퓨터들로의 논리적 연결들을 사용하여 네트워킹된 환경에서 동작할 수 있다. 원격 컴퓨터(1148)는 워크스테이션, 서버 컴퓨터, 라우터, 개인용 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 엔터테인먼트 기기, 피어 디바이스 또는 다른 공통 네트워크 노드일 수 있으며, 통상적으로 컴퓨터(1102)에 대해 설명된 많은 또는 모든 요소들을 포함하지만, 간결성의 목적들을 위해, 단지 메모리/저장 디바이스(1150)만이 예시된다. 묘사된 논리적 연결들은 근거리 네트워크(LAN)(1152) 및/또는 더 큰 네트워크들, 예를 들면, 광역 네트워크(WAN)(1154)로의 유선/무선 연결성을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경들은 사무실들 및 회사들에서 아주 흔하며, 인트라넷들과 같은 기업-전체 컴퓨터 네트워크들을 가능하게 하고, 그 모두는 전역적 통신 네트워크, 예를 들면 인터넷에 연결할 수 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1156)를 통해 LAN(1152)에 연결된다. 어댑터(1156)는 LAN(1152)으로의 유선 및/또는 무선 통신들을 가능하게 할 수 있으며, 이것은 어댑터(1156)의 무선 기능과 통신하기 위해 그것 상에 배치된 무선 액세스 포인트를 포함할 수 있다.
WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 모델(1158)을 포함할 수 있거나, 또는 WAN(1154) 상에서 통신 서버에 연결되거나, 또는 인터넷에 의해서와 같은, WAN(1154)을 통한 통신들을 수립하기 위한 다른 수단을 갖는다. 내부 또는 외부에 있으며 유선 및/또는 무선 디바이스일 수 있는, 모뎀(1158)은 입력 디바이스 인터페이스(1142)를 통해 시스템 버스(1108)에 연결한다. 네트워킹 환경에서, 컴퓨터(1102), 또는 그것의 부분들에 대하여 묘사된 프로그램 모듈들은 원격 메모리/저장 디바이스(1150)에 저장될 수 있다. 도시된 네트워크 연결들은 대표적이며 컴퓨터들 사이에 통신 링크를 수립하는 다른 수단이 사용될 수 있다는 것이 이해될 것이다.
컴퓨터(1102)는 무선 통신에 동작적으로 배치된 무선 디바이스들과 같은, IEEE 802 표준들의 군(예컨대, IEEE 802.11 OTA(over-the-air) 변조 기술들)을 사용하여 유선 및 무선 디바이스들 또는 엔티티들과 통신하도록 동작 가능하다. 이것은 다른 것들 중에서, 적어도 Wi-Fi(또는 무선 충실도), WiMax, 및 Bluetooth™ 무선 기술들을 포함한다. 따라서, 통신은 종래의 네트워크 또는 간단히 적어도 두 개의 디바이스들 사이에서의 애드 혹 통신과 마찬가지로 미리 정의된 구조일 수 있다. Wi-Fi 네트워크들은 안전하고, 신뢰 가능하고, 빠른 무선 연결성을 제공하기 위해 IEEE 802.11x(a, b, g, n 등)로 불리우는 라디오 기술들을 사용한다. Wi-Fi 네트워크는 서로에, 인터넷에, 및 유선 네트워크들(IEEE 802.3-관련 미디어 및 기능들을 사용하는)에 컴퓨터들을 연결하기 위해 사용될 수 있다.
도 12는 이전에 설명된 바와 같이 다양한 실시예들을 구현하는데 적합한 대표적인 통신 아키텍처(1200)의 블록도를 예시한다. 통신 아키텍처(1200)는, 송신기, 수신기, 트랜시버, 라디오, 네트워크 인터페이스, 기저대역 프로세서, 안테나, 증폭기들, 필터들, 전원 공급 장치들 등과 같은, 다양한 공통 통신 요소들을 포함한다. 그러나, 실시예들은 통신 아키텍처(1200)에 의한 구현에 제한되지 않는다.
도 12에 도시된 바와 같이, 통신 아키텍처(1200)는 하나 이상의 클라이언트들(1202) 및 서버들(1204)을 포함한다. 클라이언트들(1202)은 메시징 클라이언트들 또는 다른 통신 클라이언트들에 대응할 수 있다. 서버들(1204)은 소비자-대-기업 서비스(110)의 서버들을 구현할 수 있다. 클라이언트들(1202) 및 서버들(1204)은 쿠키들 및/또는 연관된 콘텍스트 정보와 같은, 각각의 클라이언트들(1202) 및 서버들(1204)에 국소적인 정보를 저장하기 위해 이용될 수 있는 하나 이상의 각각의 클라이언트 데이터 저장소들(1208) 및 서버 데이터 저장소들(1210)에 동작적으로 연결된다.
클라이언트들(1202) 및 서버들(1204)은 통신 프레임워크(1206)를 사용하여 서로 정보를 전달할 수 있다. 통신 프레임워크(1206)는 임의의 잘 알려진 통신 기술들 및 프로토콜들을 구현할 수 있다. 통신 프레임워크(1206)는 패킷-스위칭 네트워크(인터넷과 같은 공공 네트워크들, 기업 인트라넷과 같은 사설 네트워크들 등), 회로-스위칭 네트워크(예컨대, 공중 스위칭 전화 네트워크), 또는 패킷-스위칭 네트워크와 회로-스위칭 네트워크(적절한 게이트웨이들 및 변환기들을 갖고)의 조합으로서 구현될 수 있다.
통신 프레임워크(1206)는 통신 네트워크를 수용하고, 그것으로 전달하며, 연결하도록 배열된 다양한 네트워크 인터페이스들을 구현할 수 있다. 네트워크 인터페이스는 입력 출력 인터페이스의 특수화 형태로서 간주될 수 있다. 네트워크 인터페이스들은 제한 없이, 직접 연결, 이더넷(예컨대, 두꺼운, 얇은, 꼬임 쌍 10/100/1000 Base T 등), 토큰 링, 무선 네트워크 인터페이스들, 셀룰러 네트워크 인터페이스들, IEEE 802.11a-x 네트워크 인터페이스들, IEEE 802.16 네트워크 인터페이스들, IEEE 802.20 네트워크 인터페이스들 등을 포함한 연결 프로토콜들을 이용할 수 있다. 뿐만 아니라, 다수의 네트워크 인터페이스들은 다양한 통신 네트워크 유형들과 관계를 맺기 위해 사용될 수 있다. 예를 들면, 다수의 네트워크 인터페이스들은 브로드캐스트, 멀티캐스트, 및 유니캐스트 네트워크들을 통한 통신을 허용하기 위해 이용될 수 있다. 프로세싱 요건들은 더 많은 양의 속도 및 용량을 서술하지만, 분산형 네트워크 제어기 아키텍처들은 유사하게, 클라이언트들(1202) 및 서버들(1204)에 의해 요구된 통신 대역폭을 풀링하고, 로드 밸런싱하며, 그 외 증가시키기 위해 이용될 수 있다. 통신 네트워크는 제한 없이, 직접 상호 연결, 보안 맞춤 연결, 사설 네트워크(예컨대, 기업 인트라넷), 공중 네트워크(예컨대, 인터넷), 개인 영역 네트워크(PAN), 근거리 네트워크(LAN), 대도시 영역 네트워크(MAN), 인터넷상에서의 노드들로서의 동작 미션들(OMNI), 광역 네트워크(WAN), 무선 네트워크, 셀룰러 네트워크, 및 다른 통신 네트워크들을 포함한 유선 및/또는 네트워크들 중 임의의 하나 및 그것의 조합일 수 있다.
도 13은 시스템(100)과 같은 멀티캐리어 OFDM 시스템을 사용하기 위한 디바이스(1300)의 실시예를 예시한다. 디바이스(1300)는, 예를 들면, 시스템(100) 및/또는 논리 회로(1335)를 참조하여 설명된 바와 같이, 예를 들면, 소프트웨어 구성요소들(1360)을 구현할 수 있다. 논리 회로(1335)는 시스템(100)에 대해 설명된 동작들을 수행하기 위해 물리 회로들을 포함할 수 있다. 도 13에 도시된 바와 같이, 디바이스(1300)는 라디오 인터페이스(1310), 기저대역 회로(1320), 및 컴퓨팅 플랫폼(1330)을 포함할 수 있지만, 실시예들은 이러한 구성에 제한되지 않는다.
디바이스(1300)는 전체적으로 단일 디바이스 내에서와 같은, 단일 컴퓨팅 엔티티에서 시스템(100) 및/또는 논리 회로(1335)에 대한 구조 및/또는 동작들 중 일부 또는 모두를 구현할 수 있다. 대안적으로, 디바이스(1300)는 클라이언트-서버 아키텍처, 3-티어 아키텍처, N-티어 아키텍처, 밀착-결합 또는 클러스터링된 아키텍처, 피어-투-피어 아키텍처, 마스터-슬레이브 아키텍처, 공유 데이터베이스 아키텍처, 및 다른 유형들의 분산형 시스템들과 같은, 분산형 시스템 아키텍처를 사용하여 다수의 컴퓨팅 엔티티들에 걸쳐 시스템(100) 및/또는 논리 회로(1335)에 대한 구조 및/또는 동작들의 부분들을 분배할 수 있다. 실시예들은 이러한 맥락에서 제한되지 않는다.
일 실시예에서, 라디오 인터페이스(1310)는 단일 캐리어 또는 멀티-캐리어 변조 신호들(예컨대, 상보 코드 키잉(CCK) 및/또는 직교 주파수 분할 다중화(OFDM) 심볼들)을 송신하고 및/또는 수신하기 위해 적응된 구성요소 또는 구성요소들의 조합을 포함할 수 있지만, 실시예들은 임의의 특정 OTA(over-the-air) 인터페이스 또는 변조 기법에 제한되지 않는다. 라디오 인터페이스(1310)는, 예를 들면, 수신기(1312), 송신기(1316), 및/또는 주파수 합성기(1314)를 포함할 수 있다. 라디오 인터페이스(1310)는 바이어스 제어들, 수정 발진기 및/또는 하나 이상의 안테나들(1318)을 포함할 수 있다. 또 다른 실시예에서, 라디오 인터페이스(1310)는 원하는 대로, 외부 전압-제어 발진기들(VCO들), 표면 탄성파 필터들, 중간 주파수(IF) 필터들 및/또는 RF 필터들을 사용할 수 있다. 다양한 잠재적인 RF 인터페이스 설계로 인해, 그것의 광범위한 설명은 생략된다.
기저대역 회로(1320)는 수신 및/또는 송신 신호들을 프로세싱하기 위해 라디오 인터페이스(1310)와 통신할 수 있으며, 예를 들면, 수신된 신호들을 하향 변환하기 위한 아날로그-디지털 변환기(1322), 송신을 위해 신호들을 상향 변환하기 위한 디지털-아날로그 변환기(1324)를 포함할 수 있다. 뿐만 아니라, 기저대역 회로(1320)는 각각의 수신/송신 신호들의 PHY 링크 계층 프로세싱을 위해 기저대역 또는 물리 계층(PHY) 프로세싱 회로(1356)를 포함할 수 있다. 기저대역 회로(1320)는, 예를 들면, 매체 액세스 제어(MAC)/데이터 링크 계층 프로세싱을 위해 프로세싱 회로(1328)를 포함할 수 있다. 기저대역 회로(1320)는 예를 들면, 하나 이상의 인터페이스들(1334)을 통해, 프로세싱 회로(1328) 및/또는 컴퓨팅 플랫폼(1330)과 통신하기 위해 메모리 제어기(1332)를 포함할 수 있다.
몇몇 실시예들에서, PHY 프로세싱 회로(1326)는, 라디오 프레임들과 같은, 통신 프레임들을 구성하고 및/또는 파괴하기 위해, 버퍼 메모리와 같은 부가적인 회로와 조합하여, 프레임 구성 및/또는 검출 모듈을 포함할 수 있다. 대안적으로 또는 또한, MAC 프로세싱 회로(1328)는 PHY 프로세싱 회로(1326)에 독립적으로 이들 기능들 중 특정한 것에 대한 프로세싱을 공유하거나 또는 이들 프로세스들을 수행할 수 있다. 몇몇 실시예들에서, MAC 및 PHY 프로세싱은 단일 회로로 통합될 수 있다.
컴퓨팅 플랫폼(1330)은 디바이스(1300)에 대한 컴퓨팅 기능을 제공할 수 있다. 도시된 바와 같이, 컴퓨팅 플랫폼(1330)은 프로세싱 구성요소(1340)를 포함할 수 있다. 기저대역 회로(1320) 외에, 또는 그것에 대안적으로, 디바이스(1300)는 프로세싱 구성요소(1340)를 사용하여 시스템(100) 및 논리 회로(1335)에 대한 프로세싱 동작들 또는 로직을 실행할 수 있다. 프로세싱 구성요소(1340)(및/또는 PHY(1326) 및/또는 MAC(1328))는 다양한 하드웨어 요소들, 소프트웨어 요소들, 또는 양쪽 모두의 조합을 포함할 수 있다. 하드웨어 요소들의 예들은 디바이스들, 논리 디바이스들, 구성요소들, 프로세서들, 마이크로프로세서들, 회로들, 프로세서 회로들, 회로 요소들(예컨대, 트랜지스터들, 저항기들, 커패시터들, 인덕터들 등), 집적 회로들, 애플리케이션 특정 집적 회로들(ASIC), 프로그램 가능한 논리 디바이스들(PLD), 디지털 신호 프로세서들(DSP), 필드 프로그램 가능한 게이트 어레이(FPGA), 메모리 유닛들, 로직 게이트들, 레지스터들, 반도체 디바이스들, 칩들, 마이크로칩들, 칩 셋들 등을 포함할 수 있다. 소프트웨어 요소들의 예들은 소프트웨어 구성요소들, 프로그램들, 애플리케이션들, 컴퓨터 프로그램들, 애플리케이션 프로그램들, 시스템 프로그램들, 소프트웨어 개발 프로그램들, 기계 프로그램들, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 함수들, 방법들, 프로시저들, 소프트웨어 인터페이스들, 애플리케이션 프로그램 인터페이스들(API), 지시 세트들, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트들, 컴퓨터 코드 세그먼트들, 단어들, 값들, 심볼들, 또는 그것의 임의의 조합을 포함할 수 있다. 실시예가 하드웨어 요소들 및/또는 소프트웨어 요소들을 사용하여 구현되는지를 결정하는 것은, 주어진 구현에 대해 요구된 대로, 원하는 계산율, 전력 레벨들, 열 허용 오차들, 프로세싱 사이클 예산, 입력 데이터 레이트들, 출력 데이터 레이트들, 메모리 리소스들, 데이터 버스 속도들 및 다른 설계 또는 성능 제약들과 같은, 임의의 수의 인자들에 따라 달라질 수 있다.
컴퓨팅 플랫폼(1330)은 다른 플랫폼 구성요소들(1350)을 추가로 포함할 수 있다. 다른 플랫폼 구성요소들(1350)은, 하나 이상의 프로세서들, 다중-코어 프로세서들, 코-프로세서들, 메모리 유닛들, 칩셋들, 제어기들, 주변장치들, 인터페이스들, 발진기들, 타이밍 디바이스들, 비디오 카드들, 오디오 카드들, 멀티미디어 입력/출력(I/O) 구성요소들(예컨대, 디지털 디스플레이들), 전원 공급 장치들 등과 같은, 일반적인 컴퓨팅 요소들을 포함한다. 메모리 유닛들의 예들은 제한 없이 판독-전용 메모리(ROM), 랜덤-액세스 메모리(RAM), 동적 RAM(DRAM), 이중-데이터-레이트 DRAM(DDRAM), 동기식 DRAM(SDRAM), 정적 RAM(SRAM), 프로그램 가능한 ROM(PROM), 삭제 가능한 프로그램 가능 ROM(EPROM), 전기적으로 삭제 가능한 프로그램 가능 ROM(EEPROM), 플래시 메모리, 강유전성 폴리머 메모리와 같은 폴리머 메모리, 오보닉 메모리, 상 변화 또는 강유전성 메모리, 실리콘-산화물-질화물-산화물 실리콘(SONOS) 메모리, 자기 또는 광학 카드들, 독립 디스크들의 이중 어레이(RAID) 드라이브들과 같은 디바이스들의 어레이, 고체 상태 메모리 디바이스들(예컨대, USB 메모리, 고체 상태 드라이브들(SSD)) 및 정보를 저장하기 위해 적합한 임의의 다른 유형의 저장 미디어와 같은, 하나 이상의 고속 메모리 유닛들의 형태로 다양한 유형들의 컴퓨터-판독 가능하고 기계 판독 가능한 저장 미디어를 포함할 수 있다.
디바이스(1300)는, 예를 들면, 울트라-이동 디바이스, 이동 디바이스, 고정 디바이스, 기계-대-기계(M2M) 디바이스, 개인용 디지털 보조기(PDA), 이동 컴퓨팅 디바이스, 스마트폰, 전화, 디지털 전화, 휴대 전화, 사용자 장비, 전자책(ebook) 판독기들, 핸드셋, 단-방향 페이저, 양-방향 페이저, 메시징 디바이스, 컴퓨터, 개인용 컴퓨터(PC), 디스크탑 컴퓨터, 랩탑 컴퓨터, 노트북 컴퓨터, 넷북 컴퓨터, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 서버, 서버 어레이 또는 서버 팜, 웹 서버, 네트워크 서버, 인터넷 서버, 워크 스테이션, 미니-컴퓨터, 메인 프레임 컴퓨터, 슈퍼컴퓨터, 네트워크 기기, 웹 기기, 분산형 컴퓨팅 시스템, 다중프로세서 시스템들, 프로세서-기반 시스템들, 소비자 전자 장치들, 프로그램 가능한 소비자 전자 장치들, 게임 디바이스들, 텔레비전, 디지털 텔레비전, 셋 탑 박스, 무선 액세스 포인트, 기지국, 노드 B, 진화된 노드 B(eNB), 가입자 스테이션, 모바일 가입자 센터, 라디오 네트워크 제어기, 라우터, 허브, 게이트웨이, 브리지, 스위치, 기계, 또는 그것의 조합일 수 있다. 따라서, 여기에서 설명된 디바이스(1300)의 기능들 및/또는 특정 구성들은 적절하게 요구된 대로, 디바이스(1300)의 다양한 실시예들에 포함되거나 또는 생략될 수 있다. 몇몇 실시예들에서, 디바이스(1300)는 여기에서 인용된 3GPP LTE 규격들 및/또는 WMAN들에 대한 IEEE 1302.16 표준들, 및/또는 다른 광대역 무선 네트워크들 중 하나 이상과 연관된 프로토콜들 및 주파수들과 호환 가능하도록 구성될 수 있지만, 실시예들은 이점에 대해서 제한되지 않는다.
디바이스(1300)의 실시예들은 단일 입력 단일 출력(SISO) 아키텍처들을 사용하여 구현될 수 있다. 그러나, 특정한 구현들은 빔성형 또는 공간 분할 다중 액세스(SDMA)에 대한 적응형 안테나 기술들을 사용하여 및/또는 MIMO 통신 기술들을 사용하여 송신 및/또는 수신을 위한 다수의 안테나들(예컨대, 안테나들(1318))을 포함할 수 있다.
디바이스(1300)의 구성요소들 및 피처들은 이산 회로, 애플리케이션 특정 집적 회로(ASIC), 로직 게이트들 및/또는 단일 칩 아키텍처들의 임의의 조합을 사용하여 구현될 수 있다. 뿐만 아니라, 디바이스(1300)의 피처들은 마이크로제어기들, 프로그램 가능한 로직 어레이들 및/또는 마이크로프로세서들 또는 적절한 경우 앞서 말한 것의 임의의 조합을 사용하여 구현될 수 있다. 하드웨어, 펌웨어 및/또는 소프트웨어 요소들은 여기에서 총괄하여 또는 개별적으로 "로직" 또는 "회로"로서 불리울 수 있다는 것이 주의된다.
도 13의 블록도에 도시된 대표적인 디바이스(1300)는 많은 잠재적인 구현들의 하나의 기능적으로 서술적인 예를 나타낼 수 있다는 것이 이해되어야 한다. 따라서, 수반된 도면들에 묘사된 블록 기능들의 분할, 생략 또는 포함은 이들 기능들을 구현하기 위한 하드웨어 구성요소들, 회로들, 소프트웨어 및/또는 요소들이 반드시 실시예들에서 분할되고, 생략되거나, 또는 포함되는 것이 아닐 것임을 암시하지 않는다.
컴퓨터-구현 방법은 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신하는 단계로서, 여기에서 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대해 봇 능력을 자연 언어로 표현하는, 상기 복수의 봇 능력 카탈로그들 수신 단계; 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 단계로서, 상기 사용자 서비스 프롬프트는 자연 언어로 표현되는, 상기 사용자 서비스 프롬프트 수신 단계; 상기 복수의 봇 능력 카탈로그들에 대해 사용자 서비스 프롬프트를 매칭시킴으로써 복수의 봇들 중 하나 이상의 선택된 봇들을 결정하는 단계; 및 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것에 응답하여 사용자 클라이언트 디바이스에 대해 하나 이상의 선택된 봇들을 식별하는 단계를 포함할 수 있다.
컴퓨터-구현 방법은 개발자 봇-구성 인터페이스를 통해 복수의 봇 능력 카탈로그들 중 하나 이상의 봇 능력 카탈로그들을 수신하는 단계를 추가로 포함할 수 있다.
컴퓨터-구현 방법은 복수의 봇 능력 카탈로그들 중 하나 이상이 하나 이상의 예시적인 사용자 프롬프트들을 포함하나는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 사용자 프롬프트가 사용자 클라이언트 디바이스 상에서 메시징 클라이언트를 통해 수신되며, 상기 하나 이상의 선택된 봇들은 사용자 클라이언트 디바이스 상에서 메시징 클라이언트에 대해 식별된다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 사용자 프롬프트가 둘 이상의 사용자들 사이에서의 상호작용의 일 부분을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 상호작용이 메시징 상호작용을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 복수의 봇 능력 카탈로그들을 자연 언어 프로세싱 구성요소로 제출하는 단계; 자연 언어 프로세싱 구성요소로부터 봇 능력 표를 수신하는 단계; 사용자 프롬프트를 자연 언어 프로세싱 구성요소로 제출하는 단계; 자연 언어 프로세싱 구성요소로부터 사용자 의도를 수신하는 단계; 및 봇 능력 표에 사용자 의도를 비교함으로써 하나 이상의 선택된 봇들을 결정하는 단계를 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 봇 능력 테이블이 복수의 봇 능력 벡터들로서 복수의 봇 능력 카탈로그들을 나타내며, 사용자 의도는 사용자 의도 벡터로서 사용자 프롬프트를 나타내고, 봇 능력 표에 사용자 의도를 비교하는 것은 사용자 의도 벡터에 기초하여 복수의 봇 능력 벡터들의 유사성 검색을 수행하는 것을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 유사성 검색이 코사인 유사성 비교에 기초한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 자연-언어 프로세싱 구성요소가 자연 언어 기계-학습 구성요소를 포함한다는 것을 추가로 포함할 수 있으며: 봇-서비스 시스템에 대하 봇 상호작용 이력에 기초하여 자연 언어 기계-학습 구성요소를 교시하는 단계를 추가로 포함한다.
컴퓨터-구현 방법은 봇 상호작용 이력의 적어도 일 부분을 생성하기 위해 봇-서비스 시스템에 대한 분류체계-기반 봇 선택을 수행하는 단계를 추가로 포함할 수 있다.
장치는 디바이스 상에서의 프로세서 회로; 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신하도록 프로세서 회로상에서 동작적인 봇 애플리케이션 인터페이스 구성요소로서, 상기 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대해 봇 능력을 자연 언어로 표현하는, 상기 봇 애플리케이션 인터페이스 구성요소; 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것으로서, 상기 사용자 서비스 프롬프트는 자연 언어로 표현되는, 상기 사용자 서비스 프롬프트 수신하기; 및 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것에 응답하여 사용자 클라이언트 디바이스에 대해 하나 이상의 선택된 봇들을 식별하도록 동작하는 클라이언트 통신 구성요소; 및 복수의 봇 능력 카탈로그들에 대해 사용자 서비스 프롬프트를 매칭시킴으로써 복수의 봇들 중 하나 이상의 선택된 봇들을 결정하도록 동작하는 상호작용 프로세싱 구성요소를 포함할 수 있다. 장치는 여기에서 설명된 컴퓨터-구현 방법들 중 임의의 것을 구현하도록 동작할 수 있다.
컴퓨터-구현 방법은 봇-서비스 시스템에서 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 단계로서, 상기 사용자 서비스 프롬프트는 자연 언어로 표현되는, 상기 사용자 서비스 프롬프트 수신 단계; 복수의 봇들 중 둘 이상의 선택된 봇들을 결정하는 단계; 봇 적합성에 기초하여 둘 이상의 선택된 봇들의 둘 이상의 필터링된 봇들을 결정하는 단계; 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것에 응답하여 사용자 클라이언트 디바이스에 대해 둘 이상의 필터링된 봇들을 식별하는 단계를 포함할 수 있다.
컴퓨터-구현 방법은 상기 사용자 프롬프트가 사용자 클라이언트 디바이스 상에서 메시징 클라이언트를 통해 수신되며, 상기 하나 이상의 선택된 봇들은 사용자 클라이언트 디바이스 상에서 메시징 클라이언트에 대해 식별된다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 사용자 프롬프트가 둘 이상의 사용자들 사이에서의 상호작용의 일 부분을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 사용자 프롬프트가 봇 상호작용 결과를 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 봇 랭킹 정보에 대해 둘 이상의 필터링된 봇들에 질의하는 단계; 및 상기 봇 랭킹 정보에 기초하여 둘 이상의 필터링된 봇들의 등급을 매기는 단계를 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 사용자 서비스 프롬프트가 봇-서비스 시스템에 대한 사용자 계정과 연관되며, 봇 랭킹 정보에 대해 둘 이상의 필터링된 봇들에 질의하는 것은 사용자 계정에 대한 사용자 정보를 제공하는 것을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 둘 이상의 필터링된 봇들의 봇에 대한 사용자-정보 공유 세팅을 결정하는 단계; 및 상기 사용자-정보 공유 설정 및 필터링된 봇으로서 상기 봇의 결정에 기초하여 사용자 계정으로부터 사용자-정보 공유 허가를 요청하는 단계를 추가로 포함할 수 있다.
컴퓨터-구현 방법은 둘 이상의 필터링된 봇들이 계정-기반 봇을 포함하며, 상기 사용자 정보는 계정-기반 봇에 대한 계정 정보를 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 사용자 프로필 정보, 사용자 거동 정보, 사용자 위치 정보, 사용자 메시징 콘텍스트 정보, 및 사용자 봇 이력 정보 중 하나 이상에 기초하여 둘 이상의 제안된 봇들에 대한 봇 적합성을 결정하는 단계를 추가로 포함할 수 있다.
장치는 디바이스 상에서의 프로세서 회로; 봇-서비스 시스템에서 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것으로서, 상기 사용자 서비스 프롬프트는 자연 언어로 표현되는, 상기 사용자 서비스 프롬프트를 수신하며 사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것에 응답하여 사용자 클라이언트 디바이스에 대해 둘 이상의 필터링된 봇들을 식별하도록 상기 프로세서 회로상에서 동작적인, 클라이언트 통신 구성요소; 및 복수의 봇들 중 둘 이상의 선택된 봇들을 결정하며 봇 적합성에 기초하여 둘 이상의 선택된 봇들 중 둘 이상의 필터링된 봇들을 결정하도록 동작하는 상호작용 프로세싱 구성요소를 포함할 수 있다. 상기 장치는 여기에서 설명된 컴퓨터-구현 방법들 중 임의의 것을 구현하도록 동작할 수 있다.
컴퓨터-구현 방법은 봇-서비스 시스템에서 복수의 에이전트들에 대한 복수의 에이전트-이벤트 가입들을 수신하는 단계; 사용자 계정과 연관된 이벤트를 검출하는 단계로서, 상기 사용자 계정은 사용자 클라이언트와 연관되는, 상기 검출 단계; 하나 이상의 이벤트-응답 에이전트들을 결정하기 위해 복수의 에이전트-이벤트 가입들에 대해 상기 이벤트를 매칭시키는 단계; 및 이벤트를 검출하는 것에 응답하여 사용자 클라이언트 디바이스에 대해 하나 이상의 이벤트-응답 에이전트들을 식별하는 단계를 포함할 수 있다.
컴퓨터-구현 방법은 상기 이벤트가 이벤트 정보에 따라 검출되며, 상기 이벤트 정보는 사용자 클라이언트 디바이스 상에서 메시징 클라이언트를 통해 수신되고, 상기 하나 이상의 이벤트-응답 에이전트들은 사용자 클라이언트 디바이스 상에서 메시징 클라이언트에 대해 식별된다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 이벤트가 둘 이상의 사용자들 사이에서의 상호작용의 일 부분에 기초하여 검출된다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 복수의 에이전트들이 하나 이상의 메시징 봇들, 하나 이상의 다중-사용자 애플리케이션들, 하나 이상의 메시징 클라이언트 툴들, 및 하나 이상의 소셜-네트워킹 툴들 중 하나 이상을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 복수의 에이전트들이 다중-사용자 폴 툴을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 이벤트가 둘 이상의 사용자들 사이에서의 상호작용의 일 부분에 기초하여 검출된다는 것을 추가로 포함할 수 있으며: 상기 다중-사용자 폴 툴을 수행하는 단계; 상기 다중-사용자 폴 툴로부터 다중-사용자 폴 결과를 수신하는 단계; 및 상기 다중-사용자 폴 결과에 기초하여 상기 상호작용에 대한 후속 이벤트를 생성하는 단계를 추가로 포함한다.
컴퓨터-구현 방법은 상기 이벤트가 사용자 서비스 프롬프트, 사용자 계정에 대한 소셜-정보 업데이트, 및 상기 사용자 계정에 대한 사용자 콘텍스트 변화 중 하나 이상을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 소셜 정보 업데이트가 관계 상태 변화 및 친구 추가 중 하나를 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 사용자 콘텍스트 변화가 사용자 위치 변화를 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 이벤트가 봇 상호작용 결과를 포함한다는 것을 추가로 포함할 수 있다.
장치는 디바이스 상에서의 프로세서 회로; 상기 프로세서 회로상에서, 봇-서비스 시스템에서 복수의 에이전트들에 대한 복수의 에이전트-이벤트 가입들을 수신하도록 동작하는 봇 애플리케이션 인터페이스; 사용자 계정과 연관된 이벤트를 검출하는 것으로서, 상기 사용자 계정은 사용자 클라이언트 디바이스와 연관되는, 상기 검출하기; 및 하나 이상의 이벤트-응답 에이전트들을 결정하기 위해 복수의 에이전트-이벤트 가입들에 대해 상기 이벤트를 매칭시키도록 동작적인 상호작용 프로세싱 구성요소; 및 상기 이벤트를 검출하는 것에 응답하여 상기 사용자 클라이언트 디바이스에 대해 하나 이상의 이벤트-응답 에이전트들을 식별하도록 동작하는 클라이언트 통신 구성요소를 포함할 수 있다. 상기 장치는 여기에서 설명된 컴퓨터-구현 방법들 중 임의의 것을 구현하도록 동작할 수 있다.
컴퓨터-구현 방법은 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신하는 단계로서, 상기 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대해 자연 언어로 봇 능력을 표현하는, 상기 봇 능력 카탈로그들 수신 단계; 복수의 사용자 클라이언트 디바이스들로부터 복수의 사용자 서비스 프롬프트들을 수신하는 단계로서, 상기 복수의 사용자 서비스 프롬프트들은 자연 언어로 표현되는, 상기 복수의 사용자 서비스 프롬프트들 수신 단계; 자연 언어 기계-학습 구성요소에 의해 생성된 봇 능력 표를 사용하여 상기 복수의 봇 능력 카탈로그들에 대해 상기 복수의 사용자 서비스 프롬프트들을 매칭시킴으로써 복수의 사용자 프롬프트들의 각각에 대해 상기 복수의 봇들 중 선택된 봇들을 결정하는 단계; 상기 복수의 사용자 서비스 프롬프트들을 수신하는 것에 응답하여 상기 복수의 사용자 클라이언트 디바이스로 상기 선택된 봇들을 제공하는 단계; 상기 선택된 봇들과의 사용자 상호작용들에 기초하여 봇 상호작용 이력을 기록하는 단계; 및 상기 봇 상호작용 이력에 기초하여 자연 언어 기계-학습 구성요소를 업데이트하는 단계를 포함할 수 있다.
컴퓨터-구현 방법은 봇 완료율에 대해 최적화하는 것에 기초하여 상기 자연 언어 기계-학습 구성요소를 업데이트하는 단계를 추가로 포함할 수 있다.
컴퓨터-구현 방법은 봇 완료율에 대해 최적화하는 것은 사용자 봇 거부율들에 기초한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 봇 완료율에 대해 최적화하는 것은 사용자 봇 거부율을 미리 정의된 봇 거부 임계치 아래로 유지하는 것에 기초한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 봇 완료율에 대해 최적화하는 것은 사용자-봇-이력 신호들에 기초한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 증가하는 봇 정보 공유에 기초하여 상기 자연 언어 기계-학습 구성요소를 업데이트하는 단계를 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 봇 능력 표가 복수의 봇 능력 벡터들로서 상기 복수의 봇 능력 카탈로그들을 나타낸다는 것을 추가로 포함할 수 있으며, 상기 복수의 봇 능력 카탈로그들과 상기 복수의 봇 능력 벡터들 사이에서의 매핑을 수정하도록 상기 자연 언어 기계-학습 구성요소를 업데이트하는 단계를 추가로 포함한다.
장치는 디바이스 상에서의 프로세서 회로; 상기 프로세서 회로상에서, 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신하도록 동작하는 봇 애플리케이션 인터페이스 구성요소로서, 상기 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대해 봇 능력을 자연 언어로 표현하는, 상기 봇 애플리케이션 인터페이스 구성요소; 복수의 사용자 클라이언트 디바이스들로부터 복수의 사용자 서비스 프롬프트들을 수신하는 것으로서, 상기 복수의 사용자 서비스 프롬프트들은 자연 언어로 표현되는, 상기 복수의 사용자 서비스 프롬프트들 수신하기; 및 상기 복수의 사용자 서비스 프롬프트들을 수신하는 것에 응답하여 선택된 봇들을 상기 복수의 사용자 클라이언트 디바이스로 제공하도록 동작하는 클라이언트 통신 구성요소; 및 자연 언어 기계-학습 구성요소에 의해 생성된 봇 능력 표를 사용하여 상기 복수의 봇 능력 카탈로그들에 대해 상기 복수의 사용자 서비스 프롬프트들을 매칭시킴으로써 상기 복수의 사용자 프롬프트들에 대해 상기 복수의 봇들 중 선택된 봇들을 결정하고; 상기 선택된 봇들과의 사용자 상호작용들에 기초하여 봇 상호작용 이력을 기록하며; 상기 봇 상호작용 이력에 기초하여 상기 자연 언어 기계-학습 구성요소를 업데이트하도록 동작하는 상호작용 프로세싱 구성요소를 포함할 수 있다. 상기 장치는 여기에서 설명된 상기 컴퓨터-구현 방법들 중 임의의 것을 구현하도록 동작할 수 있다.
컴퓨터-구현 방법은 복수의 클라이언트 디바이스들 상에서 다중-사용자 인터페이스를 인스턴스화하는 단계로서, 상기 인스턴스화하는 것은 상기 복수의 클라이언트 디바이스들의 각각 상에서 다중-사용자 인터페이스의 적어도 일 부분의 디스플레이를 나타내는, 상기 인스턴스화 단계; 상기 복수의 클라이언트 디바이스들 중 제 1 클라이언트 디바이스로부터 사용자-인터페이스 상호작용을 수신하는 단계; 및 상기 사용자-인터페이스 상호작용에 기초하여 상기 복수의 클라이언트 디바이스들 상에서 상기 다중-사용자 인터페이스를 업데이트하는 단계를 포함할 수 있다.
컴퓨터-구현 방법은 상기 복수의 클라이언트 디바이스들 상에서 메시징 클라이언트는 상기 다중-사용자 인터페이스의 적어도 일 부분을 디스플레이한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 복수의 클라이언트 디바이스들 중 개시 클라이언트 디바이스로부터 다중-사용자 애플리케이션 개시를 수신하는 단계; 및 상기 다중-사용자 애플리케이션 개시에 응답하여 상기 복수의 클라이언트 디바이스들 상에서 상기 다중-사용자 인터페이스를 인스턴스화하는 단계를 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 다중-사용자 애플리케이션 개시는 메시징 시스템에 대한 메시지 스레드와 연관되며, 상기 메시지 스레드는 복수의 참여자 사용자 계정들과 연관되고, 상기 복수의 참여자 사용자 계정들은 상기 복수의 클라이언트 디바이스들과 연관되고, 상기 다중-사용자 인터페이스는 상기 메시지 스레드에서 상기 복수의 참여자 사용자 계정들에 대한 상기 복수의 클라이언트 디바이스들과 연관되는 복수의 참여자 사용자 계정들에 기초하여 상기 복수의 클라이언트 디바이스들 상에서 인스턴스화된다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 복수의 참여자 사용자 계정들과 상기 메시지 스레드 사이에서의 연관에 기초하여 사용자-인터페이스 업데이트 오브젝트를 분배함으로써 상기 복수의 클라이언트 디바이스들 상에서 상기 다중-사용자 인터페이스를 업데이트하는 단계를 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 개시 클라이언트 디바이스가 상기 복수의 참여자 사용자 계정들의 개시 사용자 계정과 연관된다는 것을 추가로 포함할 수 있으며, 상기 다중-사용자 인터페이스를 통해 서비스 요청을 수신하는 단계로서, 상기 서비스 요청은 상기 복수의 참여자 사용자 계정들로부터의 입력을 포함하는, 상기 서비스 요청 수신 단계; 및 상기 서비스 요청을 메시징 봇으로 제출하는 단계를 추가로 포함한다.
컴퓨터-구현 방법은 상기 서비스 요청이 상기 개시 사용자 계정에 의해 제출되며, 상기 메시징 봇으로의 상기 서비스 요청은 상기 개시 사용자 계정으로 비롯된다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 복수의 참여자 사용자 계정들이 상기 개시 사용자 계정 및 상기 개시 사용자 계정이 아닌 하나 이상의 기여자 사용자 계정들을 포함하며, 상기 입력은 상기 개시 사용자 계정으로부터의 그룹 서비스 구성 및 상기 하나 이상의 기여자 사용자 계정들로부터의 하나 이상의 개개의 서비스 구성들을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 하나 이상의 개개의 서비스 구성들이 하나 이상의 서비스-요청 참여 확인들을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 하나 이상의 개개의 서비스 구성들이 하나 이상의 옵션 선택들을 포함한다는 것을 추가로 포함할 수 있다.
컴퓨터-구현 방법은 상기 개시 사용자 계정으로부터 비용-부담 요청을 수신하는 단계; 및 상기 비용-부담 요청을 상기 하나 이상의 기여자 사용자 계정들로 전송하는 단계를 추가로 포함할 수 있다.
장치는 디바이스 상에서의 프로세서 회로; 상기 프로세서 회로상에서, 복수의 클라이언트 디바이스들 상에서 다중-사용자 인터페이스를 인스턴스화하는 것으로서, 상기 인스턴스화하는 것은 상기 복수의 클라이언트 디바이스들의 각각 상에서 상기 다중-사용자 인터페이스의 적어도 일 부분의 디스플레이를 나타내는, 상기 인스턴스화하기; 상기 복수의 클라이언트 디바이스들 중 제 1 클라이언트 디바이스로부터 사용자-인터페이스 상호작용을 수신하며; 상기 사용자-인터페이스 상호작용에 기초하여 상기 복수의 클라이언트 디바이스들 상에서 상기 다중-사용자 인터페이스를 업데이트하도록 동작하는 메시징 구성요소를 포함할 수 있다. 상기 장치는 여기에서 설명된 컴퓨터-구현 방법들 중 임의의 것을 구현하도록 동작할 수 있다.
적어도 하나의 컴퓨터-판독 가능한 저장 매체는 실행될 때, 시스템이 여기에서 설명된 컴퓨터-구현 방법들 중 임의의 것을 수행하게 하는 지시들을 포함할 수 있다.
컴퓨터-구현 방법은 상기 메시징 봇이 메시지 스레드 내에서 참여자로서 표현되기에 적합한 네트워크-액세스 가능한 서비스로의 자동화 프론트-엔드이고, 상기 메시징 봇은 선택적으로: 특히 특정한 사용자와 상기 메시징 봇 사이에서의 1-대-1 메시지 스레드로서, 상기 메시징 봇을 명시적으로 포함하는 메시지 스레드에서, 또는 상기 메시징 봇이 정규 참여자가 아닌 메시지 스레드에서 부합되고, 상기 메시징 봇은 상기 서비스와 상호작용할 목적들을 위해 상기 메시지 스레드에서의 임시 참여자인 것을 추가로 포함할 수 있다.
장치는 상기 메시징 구성요소가 상기 프로세서 회로상에서: 복수의 클라이언트 디바이스들 상에서 다중-사용자 인터페이스를 인스턴스화하는 것으로서, 상기 인스턴스화하는 것은 상기 복수의 클라이언트 디바이스들의 각각 상에서 상기 다중-사용자 인터페이스의 적어도 일 부분의 디스플레이를 나타내는, 상기 인스턴스화하기; 상기 복수의 클라이언트 디바이스들 중 제 1 클라이언트 디바이스로부터 사용자-인터페이스 상호작용을 수신하며; 상기 사용자-인터페이스 상호작용에 기초하여 상기 복수의 클라이언트 디바이스들 상에서 상기 다중-사용자 인터페이스를 업데이트하도록 동작적이며; 및/또는 상기 봇 애플리케이션 인터페이스 구성요소는 상기 봇 애플리케이션들에 대해 상기 봇 관리 구성요소 및/또는 메시징 시스템으로의 프론트-엔드로서 동작하기 위해 구성된다는 것을 추가로 포함할 수 있다.
장치는 봇 관리 구성요소를 추가로 포함할 수 있으며, 상기 봇 관리 구성요소는 상기 상호작용 프로세싱 구성요소로부터 사용자 의도를 수신하며, 상기 사용자 의도에 기초하여 상기 클라이언트 디바이스에 대한 메시징 봇 옵션 구성을 결정하고, 상기 메시징 봇 옵션 구성을 상기 클라이언트 디바이스로 전송하도록 동작가능하며, 상기 메시징 봇 옵션들을 상기 클라이언트 디바이스로 전송하는 것은 선택적으로 상기 메시징 봇 옵션 구성을 메시지 큐에 부가하는 것을 포함한다.
장치는 상기 메시징 봇과의 상호작용들을 가능하게 하는 제어들을 갖고 메시지 스레드를 디스플레이할 때 메시징 클라이언트에 대한 메시징 인터페이스를 구성하도록 동작 가능한 상기 메시징 봇 옵션 구성을 더 포함할 수 있으며; 및/또는 상기 메시징 봇 옵션들은 복수의 메시징 봇 호출 제어들로 이루어지고, 각각의 호출 제어들은 상이한 메시징 봇과 연관된다.
몇몇 실시예들은 그것들의 파생어들과 함께 표현("일 실시예" 또는 "실시예")을 사용하여 설명될 수 있다. 이들 용어들은 실시예와 관련되어 설명된 특정한 특징, 구조, 또는 특성이 적어도 일 실시예에 포함된다는 것을 의미한다. 명세서에서의 다양한 곳들에서 구절("일 실시예에서")의 출현들은 반드시 모두가 동일한 실시예를 나타내는 것은 아니다. 뿐만 아니라, 몇몇 실시예들은 그것들의 파생어들과 함께 표현("결합된" 및 "연결된")을 사용하여 설명될 수 있다. 이들 용어들은 반드시 서로에 대해 동의어들로서 의도되는 것은 아니다. 예를 들면, 몇몇 실시예들은 둘 이상의 요소들이 서로 직접적인 물리 또는 전기적 접촉을 하는 것을 나타내기 위해 용어들("연결된" 및/또는 "결합된")을 사용하여 설명될 수 있다. 그러나, 용어("결합된")는 또한 둘 이상의 요소들이 서로 직접 접촉하는 것은 아니며, 서로 여전히 협력하거나 또는 상호작용한다는 것을 의미할 수 있다.
여기에서 사용된 표기법들 및 명명법에 대한 일반적인 참조로서, 여기에서의 상세한 설명들은 컴퓨터 또는 컴퓨터들의 네트워크상에서 실행된 프로그램 절차들에 대하여 제공될 수 있다. 이들 절차적인 서술들 및 표현들은 이 기술분야의 숙련자들에 의해 그들의 작업의 본질을 이 기술분야의 다른 숙련자들에게 가장 효율적으로 전달하기 위해 사용된다.
여기에서의 절차는, 일반적으로 원하는 결과로 이어지는 동작들의 일관성 있는 시퀀스의 동작들인 것으로 인지된다. 이들 동작들은 물리적인 양들의 물리적 조작들을 요구하는 것들이다. 보통, 반드시는 아니지만, 이들 양들은 저장되고, 전달되고, 조합되고, 비교되며, 그 외 조작될 수 있는 전기, 자기, 또는 광학 신호들의 형태를 취한다. 그것은 가끔은, 원칙적으로 일반적인 사용의 이유들로, 이들 신호들을 비트들, 값들, 요소들, 심볼들, 문자들, 용어들, 숫자들 등으로 나타내는 것이 편리하다는 것을 입증한다. 그러나, 이들 및 유사한 용어들의 모두는 적절한 물리적 양들과 연관될 것이며 단지 이들 양들에 적용된 편리한 라벨들이라는 것이 주의되어야 한다.
뿐만 아니라, 수행된 조작들은 종종, 부가하는 것 또는 비교하는 것과 같은, 용어들로 참조되며, 이것은 일반적으로 인간 조작자에 의해 수행된 정신적 동작들과 연관된다. 인간 조작자의 어떤 이러한 능력도, 대부분의 경우들에서, 하나 이상의 실시예들의 부분을 형성하는 여기에서 설명된 동작들 중 임의의 것에서 필요하거나, 또는 바람직하지 않다. 오히려, 동작들은 기계 동작들이다. 다양한 실시예들의 동작들을 수행하기 위한 유용한 기계들은 범용 디지털 컴퓨터들 또는 유사한 디바이스들을 포함한다.
다양한 실시예들은 또한 이들 동작들을 수행하기 위한 장치들 또는 시스템들과 관련된다. 이러한 장치는 요구된 목적을 위해 특수하게 구성될 수 있거나 또는 그것은 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 또는 재구성된 것으로 범용 컴퓨터를 포함할 수 있다. 여기에서 제공된 절차들은 특정한 컴퓨터 또는 다른 장치에 고유하게 관련되지는 않는다. 다양한 범용 기계들은 여기에서의 교시들에 따라 기록된 프로그램들과 함께 사용될 수 있거나, 또는 그것은 요구된 방법 단계들을 수행하도록 보다 전문화된 장치를 구성하는 것이 편리하는 것을 입증해 보일 수 있다. 다양한 이들 기계들에 대한 요구된 구조는 주어진 설명으로부터 명백해질 것이다.
개시의 요약은 판독자가 기술적 개시의 특징을 빨리 알아내는 것을 허용하기 위해 제공된다는 것이 강조된다. 그것은 청구항들의 범위 또는 의미를 해석하거나 또는 제한하기 위해 사용되지 않을 것이라는 조건하에 제출된다. 또한, 앞서 말한 상세한 설명에서, 다양한 특징들은 개시를 간소화할 목적으로 단일 실시예에 함께 그룹핑된다는 것이 이해될 수 있다. 개시의 이러한 방법은 청구된 실시예들이 각각의 청구항에서 명확히 열거된 것보다 많은 특징들을 요구한다는 의도를 반영하는 것으로 해석되지 않을 것이다. 오히려, 다음의 청구항들이 반영하는 바와 같이, 본 발명의 주제는 단일의 개시된 실시예의 모두보다 적은 특징들에 있다. 따라서, 다음의 청구항들은 상세한 설명으로 통합되며, 각각의 청구항은 별개의 실시예로서 그 자체로 성립한다. 첨부된 청구항들에서, 용어들("포함하는" 및 "여기에서")은 각각 각각의 청구항들("포함한" 및 "여기서")의 평이한-영어 등가물들로서 사용된다. 게다가, 용어들("제 1", "제 2", "제 3" 등)은 단지 라벨들로서 사용되며, 그것들의 오브젝트들에 수치적 요건들을 부여하도록 의도되지 않는다.
상기 설명된 것은 개시된 아키텍처의 예들을 포함한다. 물론, 구성요소들 및/또는 방법들의 모든 인지 가능한 조합을 설명하는 것은 가능하지 않으며, 이 기술분야의 통상의 기술자는 많은 추가 조합들 및 순열들이 가능하다는 것을 인식할 수 있다. 따라서, 신규 아키텍처는 첨부된 청구항들의 사상 및 범위에 있는 모든 이러한 변경들, 수정들 및 변화들을 포괄하도록 의도된다.

Claims (35)

  1. 컴퓨터-구현 방법에 있어서,
    봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신하는 단계로서, 상기 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대해 봇 능력을 자연 언어로 표현하는, 상기 복수의 봇 능력 카탈로그들 수신 단계;
    사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 단계로서, 상기 사용자 서비스 프롬프트는 자연 언어로 표현되는, 상기 사용자 서비스 프롬프트 수신 단계;
    상기 복수의 봇 능력 카탈로그들에 대해 상기 사용자 서비스 프롬프트를 매칭시킴으로써 상기 복수의 봇들 중 하나 이상의 선택된 봇들을 결정하는 단계; 및
    상기 사용자 클라이언트 디바이스로부터 상기 사용자 서비스 프롬프트를 수신하는 것에 응답하여 상기 사용자 클라이언트 디바이스에 대해 상기 하나 이상의 선택된 봇들을 식별하는 단계를 포함하는, 컴퓨터-구현 방법.
  2. 제 1 항에 있어서,
    개발자 봇-구성 인터페이스를 통해 상기 복수의 봇 능력 카탈로그들 중 하나 이상의 봇 능력 카탈로그들을 수신하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  3. 제 1 항에 있어서,
    상기 복수의 봇 능력 카탈로그들 중 하나 이상은 하나 이상의 예시적인 사용자 서비스 프롬프트들을 포함하는, 컴퓨터-구현 방법.
  4. 제 1 항에 있어서,
    상기 사용자 서비스 프롬프트는 상기 사용자 클라이언트 디바이스 상에서 메시징 클라이언트를 통해 수신되며, 상기 하나 이상의 선택된 봇들은 상기 사용자 클라이언트 디바이스 상에서 상기 메시징 클라이언트에 대해 식별되는, 컴퓨터-구현 방법.
  5. 제 1 항에 있어서,
    상기 사용자 서비스 프롬프트는 둘 이상의 사용자들 사이에서의 상호작용의 일 부분을 포함하는, 컴퓨터-구현 방법.
  6. 제 1 항에 있어서,
    상기 복수의 봇 능력 카탈로그들을 자연 언어 프로세싱 구성요소로 제출하는 단계;
    상기 자연 언어 프로세싱 구성요소로부터 봇 능력 표를 수신하는 단계;
    상기 사용자 서비스 프롬프트를 상기 자연 언어 프로세싱 구성요소로 제출하는 단계;
    상기 자연 언어 프로세싱 구성요소로부터 사용자 의도를 수신하는 단계; 및
    상기 봇 능력 표에 상기 사용자 의도를 비교함으로써 상기 하나 이상의 선택된 봇들을 결정하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  7. 제 6 항에 있어서,
    상기 봇 능력 표는 복수의 봇 능력 벡터들로서 상기 복수의 봇 능력 카탈로그들을 나타내며, 상기 사용자 의도는 사용자 의도 벡터로서 상기 사용자 서비스 프롬프트를 나타내고, 상기 봇 능력 표에 상기 사용자 의도를 비교하는 것은 상기 사용자 의도 벡터에 기초하여 상기 복수의 봇 능력 벡터들의 유사성 검색을 수행하는 것을 포함하는, 컴퓨터-구현 방법.
  8. 제 6 항에 있어서,
    상기 자연 언어 프로세싱 구성요소는 자연 언어 기계-학습 구성요소를 포함하며,
    상기 봇-서비스 시스템에 대한 봇 상호작용 이력에 기초하여 상기 자연 언어 기계-학습 구성요소를 교시하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  9. 장치에 있어서,
    디바이스 상에서의 프로세서 회로;
    상기 프로세서 회로상에서, 봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신하도록 동작하는 봇 애플리케이션 인터페이스 구성요소로서, 상기 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대해 봇 능력을 자연 언어로 표현하는, 상기 봇 애플리케이션 인터페이스 구성요소;
    사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하는 것으로서, 상기 사용자 서비스 프롬프트는 자연 언어로 표현되는, 상기 사용자 서비스 프롬프트를 수신하며; 상기 사용자 클라이언트 디바이스로부터 상기 사용자 서비스 프롬프트를 수신하는 것에 응답하여 상기 사용자 클라이언트 디바이스에 대해 하나 이상의 선택된 봇들을 식별하도록 동작하는 클라이언트 통신 구성요소; 및
    상기 복수의 봇 능력 카탈로그들에 대해 상기 사용자 서비스 프롬프트를 매칭시킴으로써 상기 복수의 봇들 중 상기 하나 이상의 선택된 봇들을 결정하도록 동작하는 상호작용 프로세싱 구성요소를 포함하는, 장치.
  10. 제 9 항에 있어서,
    상기 복수의 봇 능력 카탈로그들 중 하나 이상은 하나 이상의 예시적인 사용자 서비스 프롬프트들을 포함하는, 장치.
  11. 제 9 항에 있어서,
    상기 사용자 서비스 프롬프트는 상기 사용자 클라이언트 디바이스 상에서 메시징 클라이언트를 통해 수신되고, 상기 하나 이상의 선택된 봇들은 상기 사용자 클라이언트 디바이스 상에서 상기 메시징 클라이언트에 대해 식별되며, 상기 사용자 서비스 프롬프트는 둘 이상의 사용자들 사이에서의 상호작용의 일 부분을 포함하는, 장치.
  12. 제 9 항에 있어서,
    상기 복수의 봇 능력 카탈로그들을 자연 언어 프로세싱 구성요소로 제출하고; 상기 자연 언어 프로세싱 구성요소로부터 봇 능력 표를 수신하고; 상기 사용자 서비스 프롬프트를 자연 언어 프로세싱 구성요소로 제출하고; 상기 자연 언어 프로세싱 구성요소로부터 사용자 의도를 수신하며; 상기 봇 능력 표에 상기 사용자 의도를 비교함으로써 상기 하나 이상의 선택된 봇들을 결정하도록 동작하는 상기 상호작용 프로세싱 구성요소를 더 포함하는, 장치.
  13. 제 12 항에 있어서,
    상기 봇 능력 표는 복수의 봇 능력 벡터들로서 상기 복수의 봇 능력 카탈로그들을 나타내고, 상기 사용자 의도는 사용자 의도 벡터로서 상기 사용자 서비스 프롬프트를 나타내며, 상기 봇 능력 표에 상기 사용자 의도를 비교하는 것은 상기 사용자 의도 벡터에 기초하여 상기 복수의 봇 능력 벡터들의 유사성 검색을 수행하는 것을 포함하는, 장치.
  14. 제 12 항에 있어서,
    상기 자연 언어 프로세싱 구성요소는 자연 언어 기계-학습 구성요소를 포함하며,
    상기 봇-서비스 시스템에 대한 봇 상호작용 이력에 기초하여 상기 자연 언어 기계-학습 구성요소를 교시하도록 동작하는 상기 상호작용 프로세싱 구성요소를 더 포함하는, 장치.
  15. 지시들을 포함한 적어도 하나의 컴퓨터-판독 가능한 매체에 있어서,
    상기 지시들은 실행될 때, 시스템으로 하여금:
    봇-서비스 시스템에서 복수의 봇들에 대한 복수의 봇 능력 카탈로그들을 수신하게 하는 것으로서, 상기 복수의 봇 능력 카탈로그들의 각각은 연관된 봇에 대해 봇 능력을 자연 언어로 표현하는, 상기 복수의 봇 능력 카탈로그들을 수신하게 하기;
    사용자 클라이언트 디바이스로부터 사용자 서비스 프롬프트를 수신하게 하는 것으로서, 상기 사용자 서비스 프롬프트는 자연 언어로 표현되는, 상기 사용자 서비스 프롬프트를 수신하게 하기;
    상기 복수의 봇 능력 카탈로그들에 대해 상기 사용자 서비스 프롬프트를 매칭시킴으로써 상기 복수의 봇들 중 하나 이상의 선택된 봇들을 결정하게 하며;
    상기 사용자 클라이언트 디바이스로부터 상기 사용자 서비스 프롬프트를 수신하는 것에 응답하여 상기 사용자 클라이언트 디바이스에 대해 상기 하나 이상의 선택된 봇들을 식별하게 하는, 적어도 하나의 컴퓨터-판독 가능한 저장 매체.
  16. 제 15 항에 있어서,
    상기 복수의 봇 능력 카탈로그들 중 하나 이상은 하나 이상의 예시적인 사용자 서비스 프롬프트들을 포함하는, 적어도 하나의 컴퓨터-판독 가능한 저장 매체.
  17. 제 15 항에 있어서,
    상기 사용자 서비스 프롬프트는 상기 사용자 클라이언트 디바이스 상에서 메시징 클라이언트를 통해 수신되며, 상기 하나 이상의 선택된 봇들은 상기 사용자 클라이언트 디바이스 상에서 상기 메시징 클라이언트에 대해 식별되고, 상기 사용자 서비스 프롬프트는 둘 이상의 사용자들 사이에서의 상호작용의 일 부분을 포함하는, 적어도 하나의 컴퓨터-판독 가능한 저장 매체.
  18. 제 15 항에 있어서,
    실행될 때, 시스템으로 하여금:
    상기 복수의 봇 능력 카탈로그들을 자연 언어 프로세싱 구성요소로 제출하게 하고;
    상기 자연 언어 프로세싱 구성요소로부터 봇 능력 표를 수신하게 하고;
    상기 사용자 서비스 프롬프트를 상기 자연 언어 프로세싱 구성요소로 제출하게 하고;
    상기 자연 언어 프로세싱 구성요소로부터 사용자 의도를 수신하게 하며;
    상기 봇 능력 표에 상기 사용자 의도를 비교함으로써 상기 하나 이상의 선택된 봇들을 결정하게 하는 지시들을 더 포함하는, 적어도 하나의 컴퓨터-판독 가능한 저장 매체.
  19. 제 18 항에 있어서,
    상기 봇 능력 표는 복수의 봇 능력 벡터들로서 상기 복수의 봇 능력 카탈로그들을 나타내며, 상기 사용자 의도는 사용자 의도 벡터로서 상기 사용자 서비스 프롬프트를 나타내고, 상기 봇 능력 표에 상기 사용자 의도를 비교하는 것은 상기 사용자 의도 벡터에 기초하여 상기 복수의 봇 능력 벡터들의 유사성 검색을 수행하는 것을 포함하는, 적어도 하나의 컴퓨터-판독 가능한 저장 매체.
  20. 제 18 항에 있어서,
    상기 자연 언어 프로세싱 구성요소는 자연 언어 기계-학습 구성요소를 포함하며, 실행될 때, 시스템으로 하여금:
    상기 봇-서비스 시스템에 대한 봇 상호작용 이력에 기초하여 상기 자연 언어 기계-학습 구성요소를 교시하게 하는 추가 지시들을 포함하는, 적어도 하나의 컴퓨터-판독 가능한 저장 매체.
  21. 제 1 항 또는 제 2 항에 있어서,
    상기 하나 이상의 선택된 봇들은 상기 사용자 클라이언트 디바이스 상에서 메시징 클라이언트에 대해 식별되는, 컴퓨터-구현 방법.
  22. 제 1 항 또는 제 2 항에 있어서,
    상기 하나 이상의 선택된 봇들은 메시징 봇들이고,
    상기 메시징 봇 또는 각각의 메시징 봇은 메시지 스레드 내에서 참여자로서 표현되기 위해 적합한 네트워크-액세스 가능한 서비스로의 자동화 프론트-엔드이며, 상기 메시징 봇은 선택적으로:
    특히 특정한 사용자와 상기 메시징 봇 사이에서 1-대-1 메시지 스레드로서, 상기 메시징 봇을 명시적으로 포함하는 메시지 스레드에서, 또는
    상기 메시징 봇이 정규 참여자가 아니고, 상기 메시징 봇은 상기 서비스와 상호작용할 목적들을 위해 상기 메시지 스레드에서 임시 참여자인 메시지 스레드에서 부합되는, 컴퓨터-구현 방법.
  23. 제 9 항에 있어서,
    상기 프로세서 회로에 의해 실행될 때, 상기 프로세서 회로가 제 1 항 또는 제 2 항에 따른 방법의 단계들 모두를 수반한 방법을 실행하게 하는 지시들을 포함한 비-일시적 컴퓨터-판독 가능한 매체를 더 포함하는, 장치.
  24. 제 9 항에 있어서,
    메시징 구성요소를 더 포함하고,
    상기 메시징 구성요소는 상기 프로세서 회로상에서:
    복수의 클라이언트 디바이스들 상에서 다중-사용자 인터페이스를 인스턴스화하는 것으로서, 상기 인스턴스화하는 것은 상기 복수의 클라이언트 디바이스들의 각각 상에서 상기 다중-사용자 인터페이스 중 적어도 일 부분의 디스플레이를 나타내는, 상기 인스턴스화하는 것;
    상기 복수의 클라이언트 디바이스들 중 제 1 클라이언트 디바이스로부터 사용자-인터페이스 상호작용을 수신하며;
    상기 사용자-인터페이스 상호작용에 기초하여 상기 복수의 클라이언트 디바이스들 상에서 상기 다중-사용자 인터페이스를 업데이트하도록 동작하고; 및/또는
    상기 봇 애플리케이션 인터페이스 구성요소는 봇 애플리케이션들에 대한 봇 관리 구성요소 및/또는 메시징 시스템으로의 프론트-엔드로서 동작하기 위해 구성되는, 장치.
  25. 제 9 항 또는 제 24 항에 있어서,
    봇 관리 구성요소를 포함하며, 상기 봇 관리 구성요소는 상기 상호작용 프로세싱 구성요소로부터 사용자 의도를 수신하고, 상기 사용자 의도에 기초하여 상기 클라이언트 디바이스에 대한 메시징 봇 옵션 구성을 결정하며, 상기 메시징 봇 옵션 구성을 상기 클라이언트 디바이스로 전송하도록 동작 가능하며, 상기 메시징 봇 옵션들을 상기 클라이언트 디바이스로 전송하는 것은 선택적으로 상기 메시징 봇 옵션 구성을 메시지 큐에 부가하는 것을 더 포함하는, 장치.
  26. 제 25 항에 있어서,
    상기 메시징 봇 옵션 구성은 상기 메시징 봇과의 상호작용들을 가능하게 하는 제어들을 갖고 메시지 스레드를 디스플레이할 때 메시징 클라이언트에 대한 메시징 인터페이스를 구성하도록 동작 가능하며; 및/또는
    상기 메시징 봇 옵션 구성은 복수의 메시징 봇 호출 제어들로 이루어지고, 각각의 호출 제어들은 상이한 메시징 봇과 연관되는, 장치.
  27. 적어도 하나의 컴퓨터-판독 가능한 저장 매체에 있어서,
    실행될 때, 시스템으로 하여금 제 1 항 또는 제 2 항에 따른 방법의 단계들 모두를 수반한 방법을 실행하게 하는 지시들을 포함하는, 적어도 하나의 컴퓨터-판독 가능한 저장 매체.
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
KR1020197031786A 2017-04-12 2017-04-17 봇들에 대한 의도-기반 검색을 위한 기술들 KR102329378B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020217037441A KR102451259B1 (ko) 2017-04-12 2017-04-17 봇들에 대한 의도-기반 검색을 위한 기술들

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/485,665 2017-04-12
US15/485,665 US11025566B2 (en) 2017-04-12 2017-04-12 Techniques for intent-based search for bots
PCT/US2017/027921 WO2018190883A1 (en) 2017-04-12 2017-04-17 Techniques for intent-based search for bots

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020217037441A Division KR102451259B1 (ko) 2017-04-12 2017-04-17 봇들에 대한 의도-기반 검색을 위한 기술들

Publications (2)

Publication Number Publication Date
KR20190130157A KR20190130157A (ko) 2019-11-21
KR102329378B1 true KR102329378B1 (ko) 2021-11-22

Family

ID=63790050

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217037441A KR102451259B1 (ko) 2017-04-12 2017-04-17 봇들에 대한 의도-기반 검색을 위한 기술들
KR1020197031786A KR102329378B1 (ko) 2017-04-12 2017-04-17 봇들에 대한 의도-기반 검색을 위한 기술들

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217037441A KR102451259B1 (ko) 2017-04-12 2017-04-17 봇들에 대한 의도-기반 검색을 위한 기술들

Country Status (5)

Country Link
US (1) US11025566B2 (ko)
JP (2) JP7133565B2 (ko)
KR (2) KR102451259B1 (ko)
CN (1) CN110753918A (ko)
WO (1) WO2018190883A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI662504B (zh) * 2017-06-30 2019-06-11 正文科技股份有限公司 萬物協作社交方法
US10997258B2 (en) * 2018-02-28 2021-05-04 Fujitsu Limited Bot networks
US10861442B2 (en) * 2018-11-06 2020-12-08 Visa International Service Association Automated chat bot processing
AU2020225381B2 (en) * 2019-02-22 2022-09-15 Liveperson, Inc. Dynamic text message processing implementing endpoint communication channel selection
AU2020245555B2 (en) * 2019-03-28 2023-03-16 Liveperson, Inc. Dynamic message processing and aggregation of data in messaging
CN111949860B (zh) * 2019-05-15 2022-02-08 北京字节跳动网络技术有限公司 用于生成相关度确定模型的方法和装置
US11070497B2 (en) 2019-08-07 2021-07-20 Liveperson, Inc. Systems and methods for transferring messaging to automation
US11159457B2 (en) * 2019-11-12 2021-10-26 International Business Machines Corporation Chatbot orchestration
CN111159380B (zh) * 2019-12-31 2021-04-27 腾讯科技(深圳)有限公司 交互方法、装置、计算机设备及存储介质
WO2021144750A1 (en) 2020-01-17 2021-07-22 Bitonic Technology Labs Private Limited Method and system for identifying ideal virtual assitant bots for providing response to user queries
KR20210102698A (ko) * 2020-02-12 2021-08-20 라인플러스 주식회사 영상 통화 봇을 이용한 커뮤니케이션을 제공하는 방법, 시스템, 및 컴퓨터 프로그램
US11218594B1 (en) * 2020-08-11 2022-01-04 Genesys Telecommunications Laboratories, Inc. System and method for creating bots for automating first party touchpoints
CN114143279B (zh) * 2020-08-13 2023-10-24 北京有限元科技有限公司 交互记录的采样方法、装置以及存储介质
FR3116914A1 (fr) * 2020-11-27 2022-06-03 Orange Procédé de gestion d’un accès à une pluralité de bots avec utilisation d’un canal de recherche indépendant, produit programme d'ordinateur, médium de stockage, terminal et serveurs correspondants.
US11695712B2 (en) * 2021-08-03 2023-07-04 Salesforce, Inc. Machine learning based supervised user experience for an application monitored by multiple secondary applications
WO2023076360A1 (en) * 2021-10-29 2023-05-04 Snap Inc. Accessing web-based fragments for display
US11803253B2 (en) * 2021-11-29 2023-10-31 International Business Machines Corporation Keyword recommendations for virtual keyboards
KR20230159919A (ko) 2022-05-16 2023-11-23 주식회사 마인드웨어웍스 챗봇 서비스 및 컨택센터 서비스 연계 제공 시스템
US20230379274A1 (en) * 2022-05-18 2023-11-23 Pricewaterhousecoopers Llp Dynamic hierarchical/multi-level hierarchical content navigation chatbot
US20240061895A1 (en) * 2022-08-17 2024-02-22 At&T Intellectual Property I, L.P. Multiparty conversational search and curation
US20240073160A1 (en) * 2022-08-25 2024-02-29 Equals 3 LLC Providing a system-generated response in a messaging session
JP7462368B1 (ja) 2023-11-21 2024-04-05 Spiral.AI株式会社 プログラム、コンピュータ、システムおよび情報処理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140068467A1 (en) 2011-11-08 2014-03-06 Kakao Corp. Method of providing instant messaging service and multiple services expanded from instant messaging service
US20140164953A1 (en) 2012-12-11 2014-06-12 Nuance Communications, Inc. Systems and methods for invoking virtual agent
US20150067503A1 (en) 2013-08-27 2015-03-05 Persais, Llc System and method for virtual assistants with agent store
WO2015187584A1 (en) 2013-12-31 2015-12-10 Next It Corporation Virtual assistant teams
WO2016135746A2 (en) 2015-02-27 2016-09-01 Keypoint Technologies India Pvt. Ltd. Contextual discovery
KR101712180B1 (ko) 2015-12-29 2017-03-06 라인 가부시키가이샤 메시지를 송수신하기 위한 컴퓨터로 읽을 수 있는 기록매체에 저장된 프로그램, 방법 및 장치

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1055372A (ja) * 1996-05-14 1998-02-24 Sharp Corp オンデマンド・インターフェース装置及びコンピュータ読み取り可能な記録媒体
JP2007109249A (ja) * 1997-03-11 2007-04-26 Fujitsu Ltd 仮想カタログシステムならびにそのための仲介エージェント、カタログエージェントおよびプログラム記憶媒体
KR100522440B1 (ko) * 2003-05-02 2005-10-20 에스케이 텔레콤주식회사 대화형 인터페이스를 이용한 사용자 정황 수집방법
US7774292B2 (en) * 2003-11-10 2010-08-10 Conversive, Inc. System for conditional answering of requests
US7809525B2 (en) * 2007-07-31 2010-10-05 International Business Machines Corporation Automatic configuration of robotic transaction playback through analysis of previously collected traffic patterns
CN101364110B (zh) * 2008-09-28 2010-08-18 重庆邮电大学 一种多自主机器人协同作业控制方法及系统
US20110208714A1 (en) * 2010-02-19 2011-08-25 c/o Microsoft Corporation Large scale search bot detection
KR101511038B1 (ko) 2010-10-11 2015-04-10 에스케이플래닛 주식회사 참석자 간 채팅기능을 제공하는 모임예약 서비스 시스템 및 방법
US8694656B2 (en) 2010-11-09 2014-04-08 Sony Corporation System and method for creating a viewing social network
US9317834B2 (en) 2011-06-30 2016-04-19 Microsoft Technology Licensing, Llc User computing device with personal agent program for recommending meeting a friend at a service location based on current location, travel direction, and calendar activity
US8666836B2 (en) 2011-12-15 2014-03-04 Facebook, Inc. Targeting items to a user of a social networking system based on a predicted event for the user
KR101448336B1 (ko) 2011-12-23 2014-10-08 (주)카카오 인스턴트 메시징 서비스를 제공하는 채팅창에 포함된 메시지 입력창을 이용하여 확장된 서비스를 제공하는 방법
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
CN103885444B (zh) * 2012-12-21 2017-05-24 联想(北京)有限公司 信息处理方法、可移动电子设备和决策控制设备
US20140201629A1 (en) * 2013-01-17 2014-07-17 Microsoft Corporation Collaborative learning through user generated knowledge
KR101821358B1 (ko) * 2013-01-22 2018-01-25 네이버 주식회사 다자간 메신저 서비스를 제공하는 방법 및 시스템
KR101428969B1 (ko) 2013-07-04 2014-09-26 주식회사 엔씨소프트 메신저 서버와 인스턴트 메시징 서비스를 이용한 정보 검색 시스템 및 방법
US20150169285A1 (en) * 2013-12-18 2015-06-18 Microsoft Corporation Intent-based user experience
CN104794122B (zh) 2014-01-20 2020-04-17 腾讯科技(北京)有限公司 一种位置信息推荐方法、装置和系统
US20150278370A1 (en) * 2014-04-01 2015-10-01 Microsoft Corporation Task completion for natural language input
US20150356468A1 (en) 2014-06-05 2015-12-10 Re:Group'd Media Inc. Mobile chat systems for real time polling, rating and rsvp'ing
US9647968B2 (en) * 2015-03-25 2017-05-09 Pypestream Inc Systems and methods for invoking chatbots in a channel based communication system
US20160301771A1 (en) * 2015-04-13 2016-10-13 Microsoft Technology Licensing, Llc Matching problem descriptions with support topic identifiers
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
GB2539380A (en) * 2015-05-20 2016-12-21 Knogno Ltd A method and system for searching within a graph-based architecture
CN105045094B (zh) * 2015-08-03 2019-05-17 南通大学 多机器人群体的任务搜索和任务执行方法
KR101594500B1 (ko) * 2015-08-12 2016-02-16 주식회사 스캐터랩 채팅내용에 기반하여 필요정보를 제공하는 인공지능 채팅 방법
CN114037467A (zh) 2015-10-20 2022-02-11 索尼公司 信息处理系统、信息处理方法和计算机可读存储介质
CN108292412A (zh) 2015-11-23 2018-07-17 维萨国际服务协会 在交易中提供补充信息的系统和方法
WO2017112796A1 (en) 2015-12-21 2017-06-29 Google Inc. Automatic suggestions and other content for messaging applications
US11477139B2 (en) 2016-02-25 2022-10-18 Meta Platforms, Inc. Techniques for messaging bot rich communication
US9699128B1 (en) 2016-05-17 2017-07-04 Google Inc. 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
US10162817B2 (en) * 2016-06-14 2018-12-25 Microsoft Technology Licensing, Llc Computer messaging bot creation
US20180005218A1 (en) 2016-06-30 2018-01-04 Copper LLC Smart data cable for point of sale systems
US10075463B2 (en) 2016-09-09 2018-09-11 Ca, Inc. Bot detection system based on deep learning
CN117634495A (zh) 2016-09-20 2024-03-01 谷歌有限责任公司 基于消息贴纸的建议响应
US10361975B2 (en) 2016-10-10 2019-07-23 Microsoft Technology Licensing, Llc Messaging bot selection in multi-bot chat sessions
US11004131B2 (en) 2016-10-16 2021-05-11 Ebay Inc. Intelligent online personal assistant with multi-turn dialog based on visual search
CN106378780A (zh) * 2016-10-21 2017-02-08 遨博(北京)智能科技有限公司 一种机器人系统、控制机器人的方法和服务器
US11138388B2 (en) 2016-12-22 2021-10-05 Verizon Media Inc. Method and system for facilitating a user-machine conversation
US10853716B2 (en) 2016-12-27 2020-12-01 Microsoft Technology Licensing, Llc Systems and methods for a mathematical chat bot
US10740373B2 (en) 2017-02-08 2020-08-11 International Business Machines Corporation Dialog mechanism responsive to query context
KR102365688B1 (ko) 2017-04-06 2022-02-22 삼성전자주식회사 자연어 이해에 기반한 콘텐트 제공 방법 및 이를 수행하는 전자 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140068467A1 (en) 2011-11-08 2014-03-06 Kakao Corp. Method of providing instant messaging service and multiple services expanded from instant messaging service
US20140164953A1 (en) 2012-12-11 2014-06-12 Nuance Communications, Inc. Systems and methods for invoking virtual agent
US20150067503A1 (en) 2013-08-27 2015-03-05 Persais, Llc System and method for virtual assistants with agent store
WO2015187584A1 (en) 2013-12-31 2015-12-10 Next It Corporation Virtual assistant teams
WO2016135746A2 (en) 2015-02-27 2016-09-01 Keypoint Technologies India Pvt. Ltd. Contextual discovery
KR101712180B1 (ko) 2015-12-29 2017-03-06 라인 가부시키가이샤 메시지를 송수신하기 위한 컴퓨터로 읽을 수 있는 기록매체에 저장된 프로그램, 방법 및 장치

Also Published As

Publication number Publication date
US11025566B2 (en) 2021-06-01
JP2020518893A (ja) 2020-06-25
US20180300399A1 (en) 2018-10-18
KR20210146415A (ko) 2021-12-03
JP2022106822A (ja) 2022-07-20
JP7133565B2 (ja) 2022-09-08
KR102451259B1 (ko) 2022-10-06
CN110753918A (zh) 2020-02-04
KR20190130157A (ko) 2019-11-21
WO2018190883A1 (en) 2018-10-18

Similar Documents

Publication Publication Date Title
KR102329378B1 (ko) 봇들에 대한 의도-기반 검색을 위한 기술들
US11552910B1 (en) Techniques for messaging bot controls based on machine-learning user intent detection
KR102415452B1 (ko) 양식 응답의 자동 결정을 위한 기술
US20190068526A1 (en) Methods and systems for helper bot platform assistance
JP2021144722A (ja) メッセージングエージェントプラットフォームのための技術
US20170201575A1 (en) Pivot interface element for a messaging system
US10726843B2 (en) Methods and systems for responding to inquiries based on social graph information
EP3073421A1 (en) Techniques for automated determination of form responses
US20180302345A1 (en) Techniques for event-based recommendations for bots
US11341173B2 (en) Techniques for personalized search for bots
US10846615B2 (en) Techniques for reinforcement for bots using capability catalogs
US20180300161A1 (en) Techniques for multiple-user bot applications
EP3502927A1 (en) Methods and systems for responding to inquiries based on social graph information
EP3073422A1 (en) Techniques for product, service, and business recommendation
US11494440B1 (en) Proactive and reactive suggestions for a messaging system
EP3388952A1 (en) Techniques for intent-based search for bots

Legal Events

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