KR20110055636A - Messaging application with multiple viewports for presenting messages in different orders - Google Patents

Messaging application with multiple viewports for presenting messages in different orders Download PDF

Info

Publication number
KR20110055636A
KR20110055636A KR1020117005897A KR20117005897A KR20110055636A KR 20110055636 A KR20110055636 A KR 20110055636A KR 1020117005897 A KR1020117005897 A KR 1020117005897A KR 20117005897 A KR20117005897 A KR 20117005897A KR 20110055636 A KR20110055636 A KR 20110055636A
Authority
KR
South Korea
Prior art keywords
messages
importance
user
client device
subset
Prior art date
Application number
KR1020117005897A
Other languages
Korean (ko)
Other versions
KR101413700B1 (en
Inventor
에릭 비. 매이어스
더글라스 티. 허드슨
Original Assignee
구글 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 인코포레이티드 filed Critical 구글 인코포레이티드
Publication of KR20110055636A publication Critical patent/KR20110055636A/en
Application granted granted Critical
Publication of KR101413700B1 publication Critical patent/KR101413700B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/53Centralised arrangements for recording incoming messages, i.e. mailbox systems
    • H04M3/533Voice mail systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/53Centralised arrangements for recording incoming messages, i.e. mailbox systems
    • H04M3/533Voice mail systems
    • H04M3/53333Message receiving aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/53Centralised arrangements for recording incoming messages, i.e. mailbox systems
    • H04M3/533Voice mail systems
    • H04M3/53333Message receiving aspects
    • H04M3/5335Message type or catagory, e.g. priority, indication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/12Counting circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/36Memories

Abstract

메시지들을 디스플레이하기 위한 방법에 있어서, 시스템은 다수의 뷰포트들에서 단일 사용자 계정으로부터의 메시지들을 디스플레이한다. 각 뷰포트는 이러한 뷰포트를 통해 그의 사용자 계정에서 메시지들과의 사용자의 종전 상호작용들에 기초하여 계산되는 중요도 스코어에 기초하여 메시지들을 정렬한다. 사용자 계정과 연관된 각 뷰포트는 상이한 메시지 중요도 모델을 이용하여 메시지들을 정렬한다. In a method for displaying messages, the system displays messages from a single user account in multiple viewports. Each viewport sorts messages through this viewport based on importance scores calculated based on the user's previous interactions with messages in his user account. Each viewport associated with a user account sorts the messages using a different message importance model.

Description

상이한 순서들로 메시지들을 제시하기 위한 다수의 뷰포트들을 가진 메시징 애플리케이션{MESSAGING APPLICATION WITH MULTIPLE VIEWPORTS FOR PRESENTING MESSAGES IN DIFFERENT ORDERS}MESSAGING APPLICATION WITH MULTIPLE VIEWPORTS FOR PRESENTING MESSAGES IN DIFFERENT ORDERS}

개시되는 실시예들은 일반적으로 이메일, 인스턴트, 및 음성 메일 메시지들과 같은 메시지들의 디스플레이에 관한 것이다. 보다 구체적으로, 개시되는 실시예들은 메시지들과의 사용자의 상호작용들로부터 결정되는 중요도 인자들 또는 스코어들에 기초하여 정렬된 메시지들을 디스플레이하기 위한 시스템들, 방법들, 및 컴퓨터 프로그램들에 관한 것이다.The disclosed embodiments generally relate to the display of messages such as email, instant, and voice mail messages. More specifically, the disclosed embodiments relate to systems, methods, and computer programs for displaying messages ordered based on importance factors or scores determined from user interactions with the messages. .

이메일 통신이 증가함에 따라, 사용자 계정들에서 수신되고 저장되는 이메일 메시지들의 수도 증가한다. 사용자 계정은 전형적으로 각 이메일 주소 또는 사용자명으로 전송되고 이로부터 전송되는 모든 메시지들을 포함한다. 그러나 몇몇 사용자 계정들은 때때로 에일리어스(alias)라 지칭되는 다수의 이메일 주소들 또는 사용자 이름들과 연관될 수 있고, 이들은 함께 하나의 논리 이메일 주소 또는 사용자명이라 간주될 수 있다. 수신된 이메일의 양은 빠르게 사용자들을 압도할 수 있어 불필요한 메시지들로부터 중요한 메시지들을 걸러내기가 어려워진다.As email communication increases, the number of email messages received and stored in user accounts also increases. A user account typically includes all messages sent to and from each email address or username. However, some user accounts may be associated with multiple email addresses or usernames, sometimes referred to as aliases, which together may be considered as one logical email address or username. The amount of email received can quickly overwhelm users, making it difficult to filter out important messages from unnecessary messages.

추가적으로, 오늘날 많은 사람들이 핸드헬드 컴퓨터들 또는 셀 폰들과 같은 모바일 디바이스들 상에서 그들의 이메일에 액세스하고 이러한 이메일을 본다. 이러한 모바일 디바이스들은 전형적으로 메시지들을 보기 위한 훨씬 더 작은 메시지 윈도우들 또는 인터페이스들을 가진 작은 스크린들을 가진다. 이러한 인터페이스들은 때때로 사용자가 임의의 주어진 시간에 적은 수의 메시지들을 보도록 허용할 뿐이어서, 사용자는 예를 들어 메시지들을 스크롤링하는 것을 통해 중요한 메시지들의 위치를 찾기 위해 이러한 인터페이스와 보다 빈번하게 상호작용할 것이 요구된다. 이러한 모바일 디바이스들은 또한 네트워크 접속성을 이용할 수 있고, 이는 때때로 사용량에 의해 요금이 부과되며 종종 느리다. 이러한 디바이스들의 사용자들은 이러한 매체를 통해 메시지에 액세스할 때 그들이 보는 메시지들을 높은 중요도를 갖는 메시지들로 제한하기를 원한다.In addition, many people today access and view their email on mobile devices such as handheld computers or cell phones. Such mobile devices typically have small screens with much smaller message windows or interfaces for viewing messages. These interfaces sometimes only allow the user to view a small number of messages at any given time, requiring the user to interact with these interfaces more frequently to locate important messages, for example, by scrolling through the messages. do. These mobile devices can also take advantage of network connectivity, which is sometimes charged by usage and often slow. Users of such devices want to limit the messages they see to messages of high importance when accessing messages through such media.

이러한 문제점들을 다루기 위해서, 몇몇 메시지는 보다 쉬운 식별을 위해서 사용자들이 메시지들을 폴더들로 조직화하거나 사용자-정의 라벨들을 부가할 수 있도록 한다. 추가적으로, 몇몇 이메일 애플리케이션들에서 사용자들은 메시지 전달 날짜, 발신자, 또는 메시지 제목과 같은 단일 사용자-정의 메시지 헤더 필드의 값에 따라 특정 뷰(view)로 메시지들을 정렬할 수 있다. 그러나 이러한 조직적 기술들은 때때로 사용자에게 가장 중요한 메시지들을 식별하지 못하고, 사용자가 많은 메시지들을 통해 스크롤링한 후에 비로소 가장 중요하게 생각하는 메시지들의 위치를 찾도록 하게 한다.To address these problems, some messages allow users to organize messages into folders or add user-defined labels for easier identification. In addition, in some email applications, users can sort messages into a particular view according to the value of a single user-defined message header field such as message delivery date, sender, or message subject. However, these organizational techniques sometimes do not identify the messages that are most important to the user and allow the user to locate the messages that are most important after scrolling through the many messages.

특정 사용자에게 예측된 중요도에 기초하여 자동적으로 소트(sort)되는 메시지들의 커스터마이즈 뷰(customized view)를 사용자에게 제공하면서 상기 단점들을 다루는 메시지 시스템 및 방법을 제공할 것이 요구된다.There is a need to provide a message system and method that addresses these shortcomings while providing the user with a customized view of messages that are automatically sorted based on the predicted importance to a particular user.

메시지들을 디스플레이하기 위한 방법에 있어서, 시스템은 다수의 뷰포트(viewport)들에서 단일 사용자 계정(즉, 각 사용자의 계정)으로부터의 메시지들을 디스플레이한다. 각 뷰포트는 이러한 뷰포트를 통해 그의 사용자 계정에서 메시지들과의 사용자의 종전 상호작용들에 기초하여 계산되는 중요도 스코어에 기초하여 메시지들을 정렬한다. 사용자 계정과 연관된 각 뷰포트는 상이한 메시지 중요도 모델을 이용하여 메시지들을 정렬한다. In a method for displaying messages, the system displays messages from a single user account (ie, each user's account) in multiple viewports. Each viewport sorts messages through this viewport based on importance scores calculated based on the user's previous interactions with messages in his user account. Each viewport associated with a user account sorts the messages using a different message importance model.

몇몇 실시예들에서, 제 1 클라이언트 디바이스가 제 1 중요도 스코어 계산에 의해 정렬된 메시지들을 뷰포트에서 디스플레이하고 제 2 클라이언트 디바이스는 제 2 중요도 스코어 계산에 의해 정렬된 동일한 사용자 계정으로부터의 메시지들을 뷰포트에서 디스플레이한다. 중요도 예측 모델들은 메시지들과의 사용자 상호작용들에 기초하여 중요도 스코어들을 생성하는데 이용된다.In some embodiments, the first client device displays messages in the viewport sorted by the first importance score calculation and the second client device displays messages from the same user account sorted by the second importance score calculation in the viewport. do. Importance prediction models are used to generate importance scores based on user interactions with messages.

몇몇 실시예들에서, 클라이언트 디바이스는 제 1 중요도 스코어 계산에 의해 정렬된 메시지들을 뷰포트에서 디스플레이하고 제 2 중요도 스코어 계산에 의해 정렬된 동일한 사용자 계정으로부터의 메시지들을 제 2 뷰포트에서 디스플레이한다.In some embodiments, the client device displays messages in the viewport sorted by the first importance score calculation and messages in the second viewport from the same user account sorted by the second importance score calculation.

본 발명의 또 다른 양상에서, 서버는 제 1 클라이언트 디바이스로 제 1 중요도 스코어 계산에 의해 정렬된 메시지들의 목록을 전송하고 제 2 클라이언트 디바이스로 제 2 중요도 스코어 계산에 의해 정렬된 동일한 사용자 계정으로부터의 메시지들의 또 다른 목록을 전송한다. In another aspect of the invention, the server sends a list of messages sorted by the first importance score calculation to the first client device and messages from the same user account sorted by the second importance score calculation to the second client device. Send another list of them.

본 발명의 또 다른 양상에서, 서버는 클라이언트 디바이스로 제 1 중요도 스코어 계산에 의해 정렬된 메시지들의 목록을 전송하고 상기 클라이언트 디바이스로 제 2 중요도 스코어 계산에 의해 정렬된 동일한 사용자 계정으로부터의 메시지들의 또 다른 목록을 전송한다. In another aspect of the invention, the server sends a list of messages sorted by the first importance score calculation to the client device and another of messages from the same user account sorted by the second importance score calculation to the client device. Send the list.

몇몇 양상들은 상기 방법들을 수행하기 위한 명령들을 포함하는 하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체를 제공한다.Some aspects provide a computer readable storage medium storing one or more programs comprising instructions for performing the methods.

도 1은 몇몇 양상들에 따라 클라이언트-서버 네트워크 환경의 인프라구조를 도시하는 블록도이다.
도 2는 몇몇 양상들에 따라 다수의 클라이언트들로 정렬된 메시지 목록들을 제공하는 프로세스를 도시하는 흐름도이다.
도 3은 몇몇 다른 양상들에 따라 단일 클라이언트로 정렬된 메시지 목록들을 제공하는 또 다른 프로세스를 도시하는 흐름도이다.
도 4는 몇몇 양상들에 따라 정렬된 메시지 목록을 생성하는 프로세스를 도시하는 흐름도이다.
도 5a-5d는 몇몇 양상들에 따라 정렬된 메시지를 생성하기 위해 이용되는 데이터 구조들을 도시하는 블록도들이다.
도 6은 몇몇 양상들에 따른 예시적인 클라이언트의 블록도이다.
도 7은 몇몇 양상들에 따른 예시적인 서버의 블록도이다.
유사한 참조 번호들이 도면들을 통해 대응하는 부분들을 참조한다.
1 is a block diagram illustrating the infrastructure of a client-server network environment in accordance with some aspects.
2 is a flow diagram illustrating a process of providing message lists arranged in multiple clients in accordance with some aspects.
3 is a flow diagram illustrating another process of providing message lists arranged into a single client in accordance with some other aspects.
4 is a flow diagram illustrating a process of generating an ordered message list in accordance with some aspects.
5A-5D are block diagrams illustrating data structures used to generate an ordered message in accordance with some aspects.
6 is a block diagram of an example client in accordance with some aspects.
7 is a block diagram of an example server in accordance with some aspects.
Like reference numerals refer to corresponding parts throughout the drawings.

도 1은 몇몇 양상들에 따른 시스템(100)의 블록도이다. 하나 이상의 클라이언트들(103) 및 메시지 서버(106)는 임의의 적합한 수단을 통해 통신 네트워크(104)에 연결된다. 통신 네트워크(104)는 하나 이상의 로컬 영역 네트워크(LAN)들, 광역 네트워크(WAN)들, 예를 들어 인터넷 등 또는 이들의 조합일 수 있다.1 is a block diagram of a system 100 in accordance with some aspects. One or more clients 103 and message server 106 are connected to communication network 104 via any suitable means. The communication network 104 may be one or more local area networks (LANs), wide area networks (WANs), such as the Internet, or a combination thereof.

몇몇 양상들에서, 클라이언트(103)는 개인용 컴퓨터, 핸드헬드 컴퓨터, 개인 휴대 정보 단말기, 셀룰러-폰 등과 같은 임의의 적합한 컴퓨팅 디바이스이다. 클라이언트(103)는 메시지들을 보기 위한 하나 이상의 소프트웨어 애플리케이션들 또는 인터페이스들을 포함한다. 본원에서 사용될 때 메시지들은 한 사람, 하나의 스테이션, 또는 그룹으로부터 다른 것으로의 임의의 유형의 통신 메시지들을 지칭하고, 전자 메일(이메일) 메시지들, 인스턴트 메시지들, 음성메일 메시지들 등을 포함한다. In some aspects, client 103 is any suitable computing device such as a personal computer, handheld computer, personal digital assistant, cellular-phone, and the like. Client 103 includes one or more software applications or interfaces for viewing messages. As used herein, messages refer to any type of communication messages from one person, one station, or group to another, and include e-mail (email) messages, instant messages, voicemail messages, and the like.

몇몇 실시예들에서, 메시지 서버(106)는 프런트 엔드 서버(120), 검색 엔진(122), 검색 결과 랭커(124), 중요도 예측 모델(126), 메시지 데이터베이스(128), 및 사용자 계정 데이터베이스(130)를 포함한다. 검색 엔진(122)은 사용자 계정 데이터베이스(130)와 연관된 특정 사용자 계정에 속하는 메시지들의 세트들을 리트리빙(retrieve)하기 위해 메시지 데이터베이스(128)와 통신한다. 사용자 계정은 각각의 이메일 주소 또는 사용자명으로 전송되고 이로부터 전송되는 모든 메시지들을 포함한다. 몇몇 경우들에서, 각 사용자 계정은 때때로 에일리어스(alias)라 지칭되는 다수의 이메일 주소들 또는 사용자명들과 연관될 수 있고, 이들은 함께 이러한 논의의 목적을 위해 하나의 논리 이메일 주소 또는 사용자명이라 간주될 수 있다. 검색 엔진(122)은 검색 결과 랭커(124)로 리트리빙된 메시지들의 세트를 전송하고, 이러한 검색 결과 랭커(124)는 중요도 예측 모델들(126)을 이용하여 세트 내의 각 개별 메시지에 대해 계산된 중요도 스코어들에 따라 메시지 순서를 조직화한다. 하나의 경우에, 복귀되는 메시지들의 세트는 모두 새로운 메시지들이다. In some embodiments, the message server 106 may be a front end server 120, a search engine 122, a search result ranker 124, a importance prediction model 126, a message database 128, and a user account database ( 130). Search engine 122 communicates with message database 128 to retrieve sets of messages belonging to a particular user account associated with user account database 130. The user account includes all messages sent to and from each email address or username. In some cases, each user account may be associated with multiple email addresses or usernames, sometimes referred to as aliases, which together are one logical email address or username for the purpose of this discussion. Can be considered. The search engine 122 sends a set of retrieved messages to the search result ranker 124, which search result ranker 124 calculates for each individual message in the set using the importance prediction models 126. Organize message order according to importance scores. In one case, the set of messages returned are all new messages.

메시지 데이터베이스(128)는 사용자들에 대한 메시지들을 저장한다. 몇몇 실시예들에서, 하나의 메시지 데이터베이스(128)가 사용자 계정마다 이용되고, 다른 실시예들에서는 다수의 사용자들로부터의 메시지들이 동일한 메시지 데이터베이스(128)에 저장된다. 당업자는 한 사용자로부터의 메시지들이 시스템의 다른 사용자들에 의해 액세스되는 것을 방지하기 위한 많은 방법들이 있다는 것을 인식할 것이다.Message database 128 stores messages for users. In some embodiments, one message database 128 is used per user account, and in other embodiments messages from multiple users are stored in the same message database 128. Those skilled in the art will appreciate that there are many ways to prevent messages from one user from being accessed by other users of the system.

중요도 예측 모델들(126)은 적어도 하나의 사용자 계정에서 개별 메시지들에 대한 중요도 스코어들을 계산한다. 하나 이상의 중요도 예측 모델들(126)은 사용자 계정과 연관된다. 중요도 예측 모델들(126)은 사용자 계정에서 하나 이상의 메시지들의 세트에 대해 중요도 스코어들을 계산한다.Importance prediction models 126 calculate importance scores for individual messages in at least one user account. One or more importance prediction models 126 are associated with a user account. Importance prediction models 126 calculate importance scores for a set of one or more messages in a user account.

일 실시예에서, 중요도 예측 모델들(126)은 기계 학습(machine learning)을 이용하여 생성된다. 기계 학습은 소프트웨어 툴들 및 컴퓨터 시스템들을 이용하여 구현되는, 기능들 및 예측 모델들을 생성하는 기술들의 세트를 포함한다(예를 들어, 기능들 또는 예측 모델들의 컴포넌트들에 적용될 가중치들을 결정함으로써). 기계 학습은 당업자에게 잘 알려져 있으므로 본 문서에서는 기술되지 않는다. 각 예측 모델은 메시지들의 세트 내의 각 메시지에 대해 중요도 스코어, 또는 둘 이상의 중요도 스코어들을 계산하는데 이용된다. 이러한 모델은 하나 이상의 메시지 품질 신호들(때때로 메시지 품질 인자들, 또는 메시지 중요도 인자들이라 지칭됨)을 이용하여 각 메시지에 대해 하나 이상의 스코어들을 계산하도록 규정된다. 미리규정된 메시지 품질 신호들의 세트 중 각 메시지 품질 신호는 상이한 예측 모델들에서 상이하게 가중(weight)될 수 있는데, 이는 각 메시지 품질 신호에 적용되는 가중치들이 사용자 계정에서 메시지들에 대한 이전의 사용자 동작들 또는 사용자 선호사항들에 따라 결정되기 때문이다.In one embodiment, the importance prediction models 126 are generated using machine learning. Machine learning includes a set of techniques for generating functions and prediction models, implemented using software tools and computer systems (eg, by determining weights to be applied to the components of the functions or prediction models). Machine learning is well known to those skilled in the art and is not described in this document. Each prediction model is used to calculate a importance score, or two or more importance scores, for each message in the set of messages. This model is defined to calculate one or more scores for each message using one or more message quality signals (sometimes referred to as message quality factors, or message importance factors). Each message quality signal in a set of predefined message quality signals may be weighted differently in different prediction models, where the weights applied to each message quality signal are prior user actions on the messages in the user account. This is because it depends on the user or user preferences.

메시지 품질 신호들의 예들은 다음을 포함한다: 사용자가 메시지를 판독했는지 여부를 식별하는 신호, 메시지의 수신시로부터 사용자가 메시지를 판독한 최초 시간까지의 지연시간을 식별하는 신호, 상기 사용자가 상기 메시지에 응답했는지 여부를 식별하는 신호, 상기 사용자가 상기 메시지를 포워딩했는지 여부를 식별하는 신호, 상기 사용자가 상기 메시지를 순서에 맞지 않게 판독하는지 여부를 식별하는 신호, 상기 사용자가 특정 메시지를 판독하는데 걸린 총 시간을 나타내는 신호, 상기 사용자가 상기 메시지에 대한 탐색을 수행했는지 여부를 식별하는 신호, 상기 사용자가 상기 메시지를 판독했던 횟수를 나타내는 신호, 및 상기 메시지의 또 다른 참가자에 대한 상기 사용자의 친화도(affinity)를 나타내는 신호. 뷰포트 에서 메시지들을 정렬하기 위해 이용될 수 있는 다른 메시지 품질 신호들은 메시지 헤더 정보에 기초한 신호들 및 메시지들에 대한 다른 메타데이터에 기초한 신호들을 포함한다. Examples of message quality signals include: a signal identifying whether the user has read a message, a signal identifying a delay from the receipt of the message to the first time the user reads the message, the user receiving the message A signal identifying whether or not the user has forwarded the message, a signal identifying whether the user has forwarded the message, a signal identifying whether the user reads the message out of sequence, or the user is caught reading a specific message. A signal indicating total time, a signal identifying whether the user has performed a search for the message, a signal indicating the number of times the user has read the message, and the user's affinity for another participant of the message Signal representing (affinity). Other message quality signals that can be used to sort messages in the viewport include signals based on message header information and signals based on other metadata for the messages.

뷰포트는 사용자 계정에서 메시지들의 세트를 보고 메시지들의 세트와 상호작용하기 위한 사용자 인터페이스이다. 클라이언트는 메시지들을 보기 위한 하나 이상의 뷰포트들을 제공할 수 있고, 다시 말해서 동일한 개인용 컴퓨터 상의 상이한 메시지 뷰잉(viewing) 윈도우들과 같이, 상이한 뷰포트들이 동일한 디바이스 상에 존재할 수 있다. 이용가능한 메시지 품질 신호들의 서브세트 및 다른 메시지 신호들은 특정 뷰포트에 대해 중요도 스코어들을 생성하도록 조합될 수 있고(예를 들어 가중된 합산과 같은 선형 조합, 또는 비-선형 조합), 이러한 중요도 스코어들은 그 후 상기 뷰포트에 대한 메시지들을 정렬하는데 이용된다. A viewport is a user interface for viewing a set of messages in a user account and interacting with the set of messages. The client may provide one or more viewports for viewing messages, that is, different viewports may exist on the same device, such as different message viewing windows on the same personal computer. The subset of available message quality signals and other message signals can be combined to produce importance scores for a particular viewport (eg, linear combination, such as weighted summation, or non-linear combination), and these importance scores are It is then used to sort the messages for the viewport.

몇몇 실시예들에서, 중요도 예측 모델들(126)은 특정 뷰포트에 대해 중요한 메시지 특성들의 최초 예측 모델을 수립하는데 기계 학습을 이용한다. 그 다음 이러한 모델은 특정 메시지에 대해 중요도 스코어를 계산하기 위해 메시지들의 세트 내의 각 메시지에 적용된다. 메시지들의 세트는 그 후 검색 결과 랭커(124)를 이용하여 정렬, 즉 특정 뷰포트에 대해 소트된다. 예를 들어, 검색 결과 랭커(124)는 중요도 스코어가 감소하는 순서로 메시지들을 정렬할 수 있다.In some embodiments, importance prediction models 126 use machine learning to establish an initial prediction model of important message characteristics for a particular viewport. This model is then applied to each message in the set of messages to calculate a importance score for that particular message. The set of messages is then sorted using search result ranker 124, ie for a particular viewport. For example, search result ranker 124 may sort the messages in order of decreasing importance score.

중요도 예측 모델들의 선택은 클라이언트에서 특정 뷰포트의 선택에 의존한다. 몇몇 실시예들에서 뷰포트는, 사용자의 전체 메시지 인박스(inbox)를 볼 때 디스플레이될 것처럼, 사용자 계정의 모든 메시지들을 디스플레이할 수 있다. 다른 실시예들에서, 뷰포트는 특정 폴더 또는 서브폴더 내의 모든 메시지들과 같은 사용자 계정 내의 메시지들의 서브세트를 디스플레이할 수 있다. 또 다른 실시예들에서, 뷰포트는 특정 라벨이 부가된 모든 메시지들과 같은 사용자 계정 내의 메시지들의 서브세트를 디스플레이할 수 있다. 추가적인 실시예들에서, 뷰포트는 사용자가 명시적으로 선택한 메시지들에 기초하여 메시지들의 커스텀 서브세트를 디스플레이할 수 있다. 뷰포트의 선택은 중요도 예측 모델(126)에 상기 뷰포트와 연관된 메시지들을 제공한다.The choice of importance prediction models depends on the selection of a particular viewport at the client. In some embodiments, the viewport can display all the messages of the user account, as will be displayed when viewing the user's entire message inbox. In other embodiments, the viewport can display a subset of the messages in the user account, such as all messages in a particular folder or subfolder. In still other embodiments, the viewport can display a subset of messages in the user account, such as all messages with a particular label. In further embodiments, the viewport can display a custom subset of messages based on the messages that the user has explicitly selected. The selection of the viewport provides the importance prediction model 126 with messages associated with the viewport.

하나의 사용자 계정은 메시지들의 정렬된 목록들을 디스플레이하거나 또는 제시하기 위한 둘 이상의 뷰포트를 생성하기 위해 둘 이상의 중요도 예측 모델(126)을 포함할 수 있다. 각 중요도 예측 모델은 상이한 메시지 품질 신호들을 이용함으로써 또는 하나 이상의 메시지 품질 신호들에 대한 상이한 가중치들에 의해서 특정 메시지에 대해 별개의 중요도 스코어들을 계산하는데 이용될 수 있다. 예를 들어, 하나의 중요도 예측 모델은 사용자가 메시지를 포워딩하는지 여부를 식별하는 신호와 사용자가 메시지에 응답하는지 여부를 식별하는 신호의 조합에 기초할 수 있다. 동일한 사용자 계정은 사용자가 메시지를 판독한 횟수를 나타내는 신호들 및 메시지를 판독하는데 소요된 총 시간을 나타내는 신호의 조합에 기초한 중요도 예측 모델을 포함할 수 있다. 사용자가 동일한 메시지들의 세트(폴더, 검색 결과, 라벨 등)에 각각의 뷰포트 모델을 적용하는 경우, 2개의 뷰포트 모델들은 각 모델에 의해 독립적으로 계산되는 중요도 스코어들에 기초하여 동일한 메시지들의 세트를 다르게 정렬할 수 있다.One user account may include two or more importance prediction models 126 to create two or more viewports for displaying or presenting sorted lists of messages. Each importance prediction model may be used to calculate separate importance scores for a particular message by using different message quality signals or by different weights for one or more message quality signals. For example, one importance prediction model may be based on a combination of a signal identifying whether the user forwards the message and a signal identifying whether the user responds to the message. The same user account may include a importance prediction model based on a combination of signals indicative of the number of times the user has read the message and signals indicative of the total time spent reading the message. When a user applies each viewport model to the same set of messages (folders, search results, labels, etc.), the two viewport models differ in the same set of messages based on importance scores calculated independently by each model. You can sort.

몇몇 실시예들에서, 이하 기술되는 메시지들을 정렬하기 위한 메커니즘들은 대화 목록들 내의 대화들에 적용되고, 여기서 각 대화는 미리규정된 기준들에 따라 함께 그룹화된 메시지들의 그룹이다. 예를 들어, 각 대화는 최초 메시지뿐만 아니라 대화 내의 다른 메시지들에 대한 응답들인 하나 이상의 메시지들, 및 메시지들을 포워딩하는 0개 이상의 메시지들 또는 대화 내의 메시지들로부터의 정보를 포함할 수 있다. 몇몇 대화들이 단지 하나의 메시지를 포함할 수 있는 한편, 사용자 계정 내의 대화들의 목록은 전형적으로 각각이 둘 이상의 메시지들을 포함하는 다수의 대화들일 것이다. 몇몇 실시예들에서, 아래에서 기술되는 중요도 예측 모델들 및 뷰포트 기능들은 각 대화 내의 각 메시지에 이러한 메커니즘들을 적용하고 하나 이상의 조합된 중요도 스코어들을 생성함으로써 대화들의 목록 내의 대화들에 적용되고, 이러한 중요도 스코어들은 대화들을 정렬시키는데 이용된다. 대안적으로, 메시지 정렬에 관해 이하 기술되는 메커니즘들은 미리규정된 기준들에 따라(예를 들어, 대화가 N개 이하의 메시지들을 포함할 때 대화 내의 모든 메시지들, 그렇지 않은 경우 대화 내의 마지막 N개의 메시지들, 또는 대화 내의 마지막 메시지 플러스 N-1개의 최장 메시지들 ― 여기서 N은 미리규정된 값(예를 들어, 5)임 ―) 각 대화 내의 메시지들의 서브세트에 적용된다. 대화 목록들을 저장하고 디스플레이하는 이메일 애플리케이션에 관한 추가적인 정보는 미국 특허 출원 공개 2005-0222985 A1에서 찾을 수 있고, 이러한 내용은 참조에 의해 배경 정보로서 본원에 통합된다.In some embodiments, the mechanisms for sorting the messages described below apply to conversations in conversation lists, where each conversation is a group of messages grouped together according to predefined criteria. For example, each conversation may include one or more messages that are responses to other messages in the conversation as well as the original message, and information from zero or more messages or messages in the conversation that forward messages. While some conversations may contain only one message, the list of conversations within a user account will typically be a number of conversations, each containing two or more messages. In some embodiments, the importance prediction models and viewport functions described below are applied to conversations in the list of conversations by applying these mechanisms to each message in each conversation and generating one or more combined importance scores, the importance of which Scores are used to sort conversations. Alternatively, the mechanisms described below with regard to message sorting may be in accordance with predefined criteria (eg, all messages in a conversation when the conversation includes N or less messages, otherwise the last N in the conversation). Messages, or the last message in a conversation plus N-1 longest messages, where N is a predefined value (e.g., 5)-) applies to a subset of messages in each conversation. Additional information regarding an email application that stores and displays conversation lists can be found in US Patent Application Publication 2005-0222985 A1, which is incorporated herein by reference as background information.

도 2는 중요도 스코어에 의해 정렬되는 메시지들을 생성하고 디스플레이하는 것에 관한 클라이언트 및 서버 간의 상호작용에 대한 흐름도이다. 뷰포트의 선택은 중요도 스코어에 기초하여 메시지들을 정렬하기 위한 사용자 요청(202)을 트리거링한다. 사용자 요청(202)은 중요도 예측 모델들(126)(도 1)에 선택된 뷰포트에 대한 정보를 제공하고 사용자가 보기를 원하는 메시지 데이터 베이스(128) 내의 메시지들의 세트 또는 서브세트들을 규정한다. 예를 들어, 선택된 뷰포트가 사용자 계정 내의 폴더일 때, 사용자 요청(202)은 이러한 폴더에 속하는 메시지들의 서브세트를 식별하는 정보를 포함한다.2 is a flow diagram of the interaction between a client and a server regarding generating and displaying messages sorted by importance scores. The selection of the viewport triggers the user request 202 to sort the messages based on the importance scores. The user request 202 provides information about the selected viewport to the importance prediction models 126 (FIG. 1) and defines a set or subset of messages in the message database 128 that the user wants to view. For example, when the selected viewport is a folder in a user account, the user request 202 includes information identifying a subset of messages belonging to this folder.

몇몇 실시예들에서 뷰포트 선택은, 뷰잉을 위한 메시징 애플리케이션에서 메시지들의 폴더를 선택하는 것과 같이 사용자에 의해 명시적으로 이루어질 수 있다. 다른 실시예들에서 뷰포트 선택은, 메시지 메시지 뷰잉 애플리케이션의 시작 시에 디스플레이하기 위해 중요도-기반 뷰포트를 자동으로 선택하는 클라이언트 디바이스에 의해 자동으로 트리거링될 수 있다.In some embodiments viewport selection may be made explicitly by the user, such as selecting a folder of messages in a messaging application for viewing. In other embodiments viewport selection may be automatically triggered by a client device that automatically selects a importance-based viewport for display at the start of a message message viewing application.

도 2를 또 참조하면, 서버는 사용자 요청을 수신하고 선택된 뷰포트와 연관된 메시지들의 세트를 식별한다. 서버는 선택된 뷰포트에서 각 메시지에 대한 중요도 스코어를 계산하고(204) 중요도 스코어들에 기초하여 정렬된 메시지 목록을 생성한다(204). 서버는 그 후 클라이언트로 생성된 메시지 목록을 다시 전송하고(206), 이러한 클라이언트는 선택된 뷰포트에서 정렬된 목록을 디스플레이한다(208).Referring again to FIG. 2, the server receives the user request and identifies a set of messages associated with the selected viewport. The server calculates (204) the importance score for each message in the selected viewport and generates an ordered message list based on the importance scores (204). The server then sends back the generated message list to the client (206), which displays the sorted list in the selected viewport (208).

일 실시예에서, 제 2 별개의 클라이언트 디바이스가 중요도 스코어에 의해 정렬되는 메시지 목록에 대한 사용자 요청(210)을 트리거링할 수 있다. 제 2 요청은 제 1 요청(202)과는 별개인 메시지들의 세트에 대한 것이지만 동일한 사용자 계정으로부터의 것일 수 있다. 대안적으로, 제 2 요청은 제 1 요청과 정확히 동일한 메시지들에 대한 것이지만, 제 2 클라이언트로부터 올 수도 있다. 또한, 서버는 선택된 뷰포트에서 각 메시지에 대해 중요도 예측 모델에 따라 중요도 스코어를 계산하고(212) 중요도 스코어들에 기초하여 정렬된 메시지 목록을 생성한다(212). 서버는 204에서와 같이 동일한 중요도 예측 모델을 이용할 수 있거나 제 2 클라이언트 상에서 선택된 클라이언트 뷰포트에 따라 별개의 중요도 예측 모델을 이용할 수 있다. 서버가 정렬된 메시지 목록을 생성한 후(212), 메시지 목록은 요청하는 제 2 클라이언트로 다시 전송된다(214). 제 2 클라이언트는 이후 제 2 클라이언트 상에서 선택된 뷰포트에서 생성된 메시지 목록을 디스플레이한다(216).In one embodiment, a second separate client device may trigger a user request 210 for a message list that is sorted by importance score. The second request is for a set of messages separate from the first request 202 but may be from the same user account. Alternatively, the second request is for exactly the same messages as the first request, but may come from the second client. In addition, the server calculates 212 the importance score according to the importance prediction model for each message in the selected viewport and generates an ordered message list based on the importance scores (212). The server may use the same importance prediction model as in 204 or may use a separate importance prediction model depending on the client viewport selected on the second client. After the server generates the ordered message list (212), the message list is sent back to the requesting second client (214). The second client then displays a list of messages generated in the selected viewport on the second client (216).

사용자 요청들은 사용자에 의한 뷰포트의 수동 선택에 기초할 수 있거나 자동으로 트리거링된 뷰포트 선택에 기초하여 선택될 수 있다. 몇몇 실시예들에서 사용자가 개인용 컴퓨터와 같은 클라이언트 디바이스인 경우, 사용자는 연관된 뷰포트들을 가진 폴더들을 명시적으로 선택하거나 사용자 계정의 임의의 특정 폴더 또는 인박스에 적용될 미리규정된 또는 커스텀 뷰포트를 선택할 수도 있다. 몇몇 실시예들에서, 클라이언트가 PDA 또는 셀 폰을 이용하여 그 또는 그녀의 사용자 계정 내의 메시지들에 액세스하고 있는 경우, 사용자가 메시지들을 보려고 시도할 때 특정 뷰포트가 상기 디바이스와 함께 이용되기 위해 자동으로 선택될 수 있다. 예를 들어, 사용자는 시작 시 자동적으로 특정 뷰포트(예를 들어, 사용자에게 예측된 중요도에 따라 정렬된 메시지들을 디스플레이하는 뷰포트)를 선택하는 셀 폰 또는 모바일 디바이스 상의 클라이언트 애플리케이션을 가질 수 있다. User requests may be based on manual selection of viewport by the user or may be selected based on automatically triggered viewport selection. In some embodiments, if the user is a client device such as a personal computer, the user may explicitly select folders with associated viewports or select predefined or custom viewports to be applied to any particular folder or inbox of the user account. have. In some embodiments, if the client is accessing messages in his or her user account using a PDA or cell phone, a particular viewport is automatically used for use with the device when the user attempts to view the messages. Can be selected. For example, a user may have a client application on a cell phone or mobile device that automatically selects a particular viewport (eg, a viewport that displays messages sorted according to predicted importance to the user) at startup.

주기적으로, 각 사용자에 대한 중요도 예측 모델들은 중요도 예측 모델들과 연관된 뷰포트들을 통한(즉, 이를 이용하는 동안) 메시지들과의 최근 사용자 상호작용들에 기초하여 업데이트된다(220). 일 실시예에서, 메시지 상태 데이터베이스(416)는 이하 더 기술되는 것처럼 메시지들과의 사용자 상호작용들을 저장한다. 각 모델은 메시지들에 대한 중요도 스코어들을 계산하기 위해 메시지 품질 신호들의 세트를 적용하기 때문에, 모델들을 업데이트하는 것은 메시지 상태 데이터베이스(416)(이하 기술되는 도 4 참조)로부터 관련 상호작용 신호들을 리트리빙하고 이에 따라 모델에 이러한 신호들을 적용하는 것을 포함한다. 몇몇 실시예들에서, 이러한 프로세스는 정기적인 시간 간격들로, 예를 들어 매일 밤 한 번씩 발생할 수 있는 한편, 다른 실시예들에서 이러한 프로세스는 다소 빈번하게 발생할 수 있다. 몇몇 실시예들에서, 각 모델은 동일한 사용자 계정 내의 다른 모델들이 업데이트되는 시기와 독립적인 시간에 업데이트될 수 있다(각 모델과 연관된 뷰포트를 통한(즉, 이를 이용하는 동안) 메시지들과의 사용자 상호작용들에 기초하여).Periodically, the importance prediction models for each user are updated 220 based on recent user interactions with messages through the viewports associated with the importance prediction models (ie, while using it). In one embodiment, message state database 416 stores user interactions with messages as described further below. Since each model applies a set of message quality signals to calculate importance scores for the messages, updating the models retrieves relevant interaction signals from the message state database 416 (see FIG. 4 described below). And thus applying these signals to the model. In some embodiments, this process may occur at regular time intervals, such as once every night, while in other embodiments this process may occur somewhat frequently. In some embodiments, each model may be updated at a time independent of when other models in the same user account are updated (user interaction with messages through (ie, while using) the viewport associated with each model). Based on them).

몇몇 실시예들에서, 중요도 예측 모델들(126)은 다수의 사용자 계정들로부터 메시지 상호작용 신호들을 수집할 수 있다. 모델들은 개별 사용자들에 대해 메시지 중요도의 가장 강한 지시자(indicator)들을 결정하도록 시간에 걸쳐 적응한다. 다수의 사용자들로부터 사용자 상호작용 신호들을 수집하는 것은 중요도 예측 모델(126)을 설립하는 또 다른 수단을 제공한다. 모델은 다수의 사용자들에 대해 메시지 상태 데이터베이스(416)에 저장된 관련 상호작용 신호들을 리트리빙하고 이에 따라 모델에 이러한 신호들을 적용함으로써 스스로 업데이트할 수 있다.In some embodiments, importance prediction models 126 may collect message interaction signals from multiple user accounts. The models adapt over time to determine the strongest indicators of message importance for individual users. Collecting user interaction signals from multiple users provides another means of establishing importance prediction model 126. The model may update itself by retrieving the relevant interaction signals stored in the message status database 416 for multiple users and applying these signals to the model accordingly.

도 3은 뷰포트들에서 중요 메시지들의 생성 및 디스플레이에 관한 클라이언트 및 서버 간의 상호작용들에 대한 또 다른 실시예의 흐름도이다. 제 1 클라이언트 디바이스에서의 사용자 동작은 중요도 스코어 기반 메시지 목록에 대한 사용자 요청(302)을 트리거링한다. 서버는 304에서 제 1 요청을 수신하고, 예측 모델에 따라 각 메시지에 대해 중요도 스코어들을 계산하며, 정렬된 메시지 목록을 생성한다. 그 후 서버는 클라이언트로 생성된 메시지 목록을 다시 전송하고(306), 이러한 클라이언트는 선택된 메시지 뷰포트에서 상기 목록을 디스플레이한다(308).3 is a flow diagram of another embodiment of interactions between a client and a server regarding the generation and display of important messages in viewports. User action at the first client device triggers a user request 302 for the importance score based message list. The server receives the first request at 304, calculates importance scores for each message according to the predictive model, and generates an ordered message list. The server then sends back the generated message list to the client (306), which displays the list in the selected message viewport (308).

일 실시예에서, 별개의 중요도 예측 모델을 이용하는, 이전 단계에서 이용되는 것과는 상이한 뷰포트에 대한 제 2 요청을 동일한 클라이언트가 트리거링할 수 있다(310). 제 2 요청은 또한 제 1 요청(302)에 의해 요청되는 것들과는 상이한 메시지들의 세트에 대한 것일 수 있다. 예를 들어, 제 2 요청(310)은 제 1 요청(302)에서 선택된 것과는 상이한 메시지 폴더에 대한 것일 수 있다.In one embodiment, the same client may trigger 310 a second request for a different viewport than that used in the previous step, using a separate importance prediction model. The second request may also be for a different set of messages than those requested by the first request 302. For example, the second request 310 may be for a different message folder than that selected in the first request 302.

서버는 312에서 제 2 요청을 수신하고, 예측 모델에 따라 각 메시지에 대한 중요도 스코어들을 계산하며, 정렬된 메시지를 생성한다. 그러나 여기서 서버는 선택된 클라이언트 뷰포트와 연관된 중요도 예측 모델을 이용한다. 이러한 모델은 단계(304)에서와 동일한 중요도 예측 모델일 수 있거나 모델은 이전의 중요도 예측 모델과는 상이할 수 있다. 몇몇 실시예들에서, 사용자는 다수의 폴더들에 동일한 중요도 예측 모델을 연관시킬 수 있다. 그러한 시나리오에서, 서버는 제 1 요청(302) 및 제 2 요청(310)과 연관된 상이한 메시지 목록들에 동일한 중요도 예측 모델을 적용할 것이다.The server receives the second request at 312, calculates importance scores for each message according to the prediction model, and generates an ordered message. However, here the server uses the importance prediction model associated with the selected client viewport. This model may be the same importance prediction model as in step 304 or the model may be different from the previous importance prediction model. In some embodiments, a user can associate the same importance prediction model with multiple folders. In such a scenario, the server will apply the same importance prediction model to the different message lists associated with the first request 302 and the second request 310.

서버가 312에서 현재 메시지 목록을 생성한 후, 서버는 정렬된 메시지 목록을 요청하는 클라이언트로 다시 전송한다. 요청하는 클라이언트는 이후 클라이언트에서의 각 메시지 뷰포트에서 이러한 정렬된 메시지 목록(316)을 디스플레이한다.After the server generates the current message list at 312, the server sends it back to the requesting client. The requesting client then displays this sorted message list 316 in each message viewport at the client.

몇몇 실시예들에서, 사용자는 상이한 클라이언트들 상의 유사한 뷰포트에서 동일한 세트 메시지들에 상이한 중요도 예측 모델들을 적용하기를 원할 수 있다. 예를 들어, 사용자는 집 또는 직장에 있는 동안 그의 계정에서 특정 폴더 내의 중요 메시지들을 보기를 원할 수 있다. 예를 들어 직장에 있는 동안 사용자에게 중요한 메시지들은 집에 있는 동안 사용자에게 중요한 메시지들과 다를 수 있다. 이러한 시나리오에서, 상이한 클라이언트들 상의 유사한 뷰포트들로부터 동일한 폴더를 선택하는 것은 동일한 메시지들 중 적어도 일부에 상이한 중요도 예측 모델들을 적용함으로써 메시지들을 다르게 정렬할 것이다.In some embodiments, a user may want to apply different importance prediction models to the same set messages in a similar viewport on different clients. For example, a user may want to see important messages in a specific folder in his account while at home or at work. For example, messages that are important to the user while at work may be different from messages that are important to the user while at home. In such a scenario, selecting the same folder from similar viewports on different clients will order the messages differently by applying different importance prediction models to at least some of the same messages.

몇몇 실시예들에서, 사용자 위치 컨택스트 정보는 사용자의 물리적 위치(예를 들어, 집, 직장, 차량 등)를 기술할 수 있고, 추가적으로 현재 시각을 기술할 수 있다. 이러한 물리적 위치 정보는 사용자에 의해 직접 규정되고 선택될 수 있다. 예를 들어, 사용자는 각 위치 또는 시각에 대해 상이한 프로파일들을 생성할 수 있다. 그 다음 각 프로파일은 상이한 뷰포트, 따라서 중요도 예측 모델들과 연관된다. 클라이언트의 물리적 위치는 주지의 위치정보(positioning) 기술들, 예를 들어 지구 위치정보 시스템(GPS)을 이용하여 자동으로 결정될 수 있다. 예를 들어, 사용자의 셀룰러-폰은 사용자의 현재 위치정보 위치에 기초하여 사용자가 집에 있는 시기를 알 수 있고, 그 후 사용자의 메시지들에 적절한 뷰포트 및 중요도 예측 모델을 연관시킬 수 있다.In some embodiments, the user location context information may describe the physical location of the user (eg, home, work, vehicle, etc.) and may additionally describe the current time of day. This physical location information can be defined and selected directly by the user. For example, a user can create different profiles for each location or time of day. Each profile is then associated with a different viewport, thus importance prediction models. The physical location of the client may be automatically determined using known positioning techniques, for example, the Global Positioning System (GPS). For example, the user's cellular-phone may know when the user is at home based on the user's current geolocation location and then associate the appropriate viewport and importance prediction model with the user's messages.

다시 도 3을 참조하면, 제 2 사용자 요청(310)은 또한 사용자 위치를 서버에 제공할 수 있다. 서버는 제 2 요청(310)의 수신 시에 적절한 중요도 예측 모델을 선택하기 위해 이러한 위치 정보를 이용한다. 위에서 기술된 것처럼 서버는 그 후 계속하여 메시지 목록을 생성한다(312). 사용자 위치가 중요도 예측 모델을 선택하는데 도움이 될 수 있게 함으로써 사용자는 동일한 메시지 세트와 다수의 중요도 예측 모델들을 연관시킬 수 있다.Referring again to FIG. 3, the second user request 310 can also provide the user location to the server. The server uses this location information to select an appropriate importance prediction model upon receipt of the second request 310. As described above, the server then continues to generate 312 a message list. By allowing the user location to help select the importance prediction model, the user can associate the same message set with multiple importance prediction models.

도 4는 중요도 정렬된 메시지 목록을 생성하기 위한 프로세스의 흐름도이다. 402에서 중요도 정렬된 메시지 목록을 생성하기 위한 사용자 질의가 서버에 의해 수신된다. 404에서 사용자 질의는 전문 인덱스에 대해 이루어진다. 그 후 메시지 목록은 사용자 질의에 응답하여 404에서 리트리빙된다. 결과적인 메시지 목록은 개별 메시지 중요도 스코어들을 결정하는 뷰포트 기능(408)으로 입력되고 410에서 정렬된 메시지 목록을 생성한다.4 is a flow diagram of a process for generating an ordered message list of importance. At 402, a user query is received by the server for generating an ordered message list. At 404, the user query is made against the full index. The message list is then retrieved at 404 in response to a user query. The resulting message list is entered into viewport function 408 to determine individual message importance scores and produces an ordered message list at 410.

몇몇 실시예들에서, 클라이언트가 뷰포트에 관한 메시지들의 특정 세트를 식별할 수 있기 때문에 프로세스는 메시지 목록(406)에서 시작할 수 있다. 이러한 경우 질의(402) 및 전문 인덱스(404)는 뷰포트 기능(408)으로의 입력을 위해 메시지 목록(406)을 결정하는데 요구되지 않을 수 있다. 예를 들어, 사용자가 사용자 계정에서 폴더와 연관된 뷰포트를 선택하는 경우, 이러한 폴더에 대한 메시지들은 메시지 데이터베이스(128)에 저장된 정보를 이용하여 결정될 수 있고, 이러한 경우 메시지 목록(406)을 생성하기 위해 전문 인덱스 검색이 요구되지 않는다.In some embodiments, the process can begin at message list 406 because the client can identify a particular set of messages about the viewport. In such case query 402 and full-text index 404 may not be required to determine message list 406 for input to viewport function 408. For example, when a user selects a viewport associated with a folder in a user account, messages for that folder may be determined using information stored in the message database 128, in which case to generate a message list 406. Full index search is not required.

몇몇 실시예들에서, 뷰포트 기능(408)은 하나 이상의 중요도 예측 모델들, 컨택 목록(412), 메시지 데이터베이스(128), 및 메시지 상태 데이터베이스(416)의 이용을 통해 메시지 목록(406) 내의 각 메시지에 대해 중요도 스코어를 결정한다. 메시지 상태 데이터베이스(416)는 메시지가 판독되었는지 아닌지를 나타내는 정보를 포함하는 상태 정보를 저장한다. 메시지 상태 데이터베이스(416)는 또한 다음 중 하나 이상과 같은 다른 상태 정보를 저장할 수 있다: 각 메시지를 열어보거나 판독한 횟수, 사용자가 판독을 위해 메시지를 열린 상태로 유지하는 시간의 양, 사용자가 메시지에 응답한 횟수, 사용자가 메시지를 포워딩한 횟수 등. 모델들은 각 메시지들에 대해 중요도 스코어를 계산하기 위해 컨택 목록(412)과 협력하여 이용될 수 있다. 컨택 목록(412)은 이후 기술될 것처럼 중요한 사용자들을 식별하는데 도움이 되는 다른 메시지 참가자들에 대한 친화도(affinity) 스코어들을 유지한다. 친화도 스코어들은 사용자의 컨택 목록(412) 내의 컨택들(예를 들어, 사람들, 회사들 등)에 의해 전송되는 메시지들의 중요도 스코어들을 부스트(boost)시키기 위해 각 중요도 예측 모델에 의해 이용될 수 있다. 예를 들어, 사용자의 컨택 목록에서 높은 친화도 스코어들을 가진 컨택들로부터의 메시지들은 보다 낮은 친화도 스코어를 가진 컨택들로부터의 메시지들 및 사용자의 컨택 목록에 나열되지 않은 사람들 또는 엔티티들로부터의 메시지들보다 더 큰 중요도 스코어 부스트를 수신할 수 있다. 이러한 정보는 뷰포트 기능에 의해 이용되는 중요도 예측 모델에 의해 수행되는 중요도 스코어 계산의 다른 부분들과 뷰포트 기능(408)에서 결합될 수 있다.In some embodiments, viewport function 408 may utilize each message in message list 406 through the use of one or more importance prediction models, contact list 412, message database 128, and message status database 416. Determine importance scores for. The message state database 416 stores state information including information indicating whether a message has been read or not. The message state database 416 can also store other state information, such as one or more of the following: the number of times each message has been opened or read, the amount of time the user has left the message open for reading, and the message The number of times you responded to, the number of times a user forwarded a message, and more. Models may be used in conjunction with contact list 412 to calculate importance scores for each message. The contact list 412 maintains affinity scores for other message participants, which will help identify important users as will be described later. Affinity scores may be used by each importance prediction model to boost the importance scores of messages sent by contacts (eg, people, companies, etc.) in the user's contact list 412. . For example, messages from contacts with high affinity scores in the user's contact list are messages from contacts with lower affinity scores and messages from people or entities not listed in the user's contact list. May receive a greater importance score boost than these. This information can be combined in the viewport function 408 with other portions of the importance score calculation performed by the importance prediction model used by the viewport function.

도 5a는 몇몇 양상들에 따라 사용자 계정 데이터베이스(130)(도 1)에서의 예시적인 사용자 계정 레코드(502)를 도시한다. 사용자 계정 레코드(502)와 연관될 수 있는 정보의 일부는 메시지 데이터베이스(128)(도 1), 메시지 상태 데이터베이스(416)(도 4), 전문 인덱스(404)(도 4), 및 컨택 목록(412)(도 4)을 포함한다. 이러한 정보의 일부는 별개의 사용자 데이터베이스들에 저장될 수 있거나, 몇몇 실시예들에서 모든 사용자들에 대해 단일한 데이터베이스에 저장될 수 있다.5A illustrates an example user account record 502 in the user account database 130 (FIG. 1) in accordance with some aspects. Some of the information that may be associated with the user account record 502 includes the message database 128 (FIG. 1), the message state database 416 (FIG. 4), the professional index 404 (FIG. 4), and the contact list ( 412 (FIG. 4). Some of this information may be stored in separate user databases, or in some embodiments may be stored in a single database for all users.

도 5b는 몇몇 양상들에 따라 메시지 데이터베이스(128)에서의 예시적인 메시지 레코드(510)를 도시한다. 메시지 레코드(510)는 메시지를 고유하게 식별하는 메시지 식별자(512)를 포함한다. 몇몇 실시예들에서, 메시지 식별자(512)는 하나의 메시지와 연관된다. 몇몇 실시예들에서, 메시지 식별자(512)는 대화를 포함하는 메시지들의 그룹과 연관된다. 메시지(510)와 연관될 수 있는 정보 중 일부는 메타데이터(514), 헤더 정보(520), 및 컨텐츠(530)를 포함한다.5B shows an example message record 510 in the message database 128 in accordance with some aspects. The message record 510 includes a message identifier 512 that uniquely identifies the message. In some embodiments, message identifier 512 is associated with one message. In some embodiments, message identifier 512 is associated with a group of messages that include a conversation. Some of the information that may be associated with the message 510 includes metadata 514, header information 520, and content 530.

몇몇 실시예들에서, 메타데이터(514)는 라벨 또는 폴더(516) 할당들 및 타임스탬프(518)와 같은 메시지와 관련된 정보를 포함한다. 메시지 데이터베이스(128) 내의 각 메시지는 사용자 계정에서 폴더에 할당될 수 있다. 부가적으로, 사용자는 사용자 계정 내의 임의의 메시지에 하나 이상의 라벨들(128)을 적용할 수 있다. 타임스탬프(518)는 사용자 계정에 의해 메시지가 수신된 시간을 나타내는 정보를 제공한다. 타임스탬프(518)는 이러한 메시지와 상호작용하는데 소요되는 사용자의 시간을 계산하는데 가치가 있을 수 있다.In some embodiments, metadata 514 includes information related to the message, such as label or folder 516 assignments and time stamp 518. Each message in message database 128 may be assigned to a folder in a user account. Additionally, the user can apply one or more labels 128 to any message in the user account. Time stamp 518 provides information indicating the time at which the message was received by the user account. Timestamp 518 may be valuable for calculating the user's time spent interacting with such a message.

헤더 정보(520)는 예를 들어 발신자(524) 및 수신자들(522), 메시지의 메시지 수신 날짜 및 시간 값(때때로 날짜 값 또는 시간 값이라 지칭됨), 및 제목(528)을 식별하는 정보를 포함하는 메시지의 헤더 정보를 포함할 수 있다. 다른 정보는 또한 참조에 의해 본원에 통합되는 RFC 2822에 기술된 것과 같이 헤더 정보에 포함될 수 있다. 메시지 컨텐츠(530)는 메시지의 컨텐츠를 포함할 수 있다. 컨텐츠(530)는 텍스트, 이미지들, 및 첨부들을 포함할 수 있다. 당업자는 메시지 정보를 저장하기 위한 다른 방법들을 인식할 것이다. 예를 들어, 첨부는 또 다른 저장 구조에 저장될 수 있고 그것에 대한 참조가 메시지(510) 내에 위치될 수 있다. Header information 520 may include information identifying, for example, sender 524 and recipients 522, message reception date and time values (sometimes referred to as date values or time values) of the message, and subject 528. It may include header information of the containing message. Other information may also be included in the header information as described in RFC 2822, which is incorporated herein by reference. The message content 530 may include content of a message. Content 530 can include text, images, and attachments. Those skilled in the art will recognize other methods for storing message information. For example, the attachment may be stored in another storage structure and a reference to it may be located in message 510.

도 5c는 몇몇 실시예들에 따라 메시지 상태 데이터베이스(416)에서의 예시적인 메시지 상태 레코드(534)를 도시한다. 각 메시지 상태 레코드(534)는 메시지 또는 대화 식별자 및 메시지 데이터베이스(128) 내의 단일 메시지에 대한 상태 정보의 세트를 포함한다. 몇몇 실시예들에서, 상태 정보는 하나 이상의 타임스탬프들(536) 및 대표적인 메시지에 대해 트랙킹되는 다양한 사용자 상호작용들을 나타내는 필드들의 세트를 포함한다. 하나 이상의 타임스탬프들(536)이 다양한 메시지 상호작용들을 수행하는데 사용자에 의해 소비되는 시간의 길이를 나타내는 메시지 품질 신호들을 계산하는데 이용될 수 있다. 예를 들어, 하나의 타임스탬프는 사용자가 메시지를 판독한 최초 시간을 식별할 수 있는 한편 또 다른 타임스탬프는 사용자가 메시지를 판독한 가장 최근의 시간을 식별할 수 있다. 제 1 타임스탬프는 메시지의 수신과 사용자의 메시지 판독 간의 지연을 결정하는데 이용될 수 있다. 제 2 타임스탬프는 사용자에 의한 메시지의 판독들 간의 시간 길이를 결정하는데 이용될 수 있다.5C shows an example message status record 534 in the message status database 416 in accordance with some embodiments. Each message status record 534 includes a set of status information for a message or conversation identifier and a single message in the message database 128. In some embodiments, the status information includes one or more timestamps 536 and a set of fields representing various user interactions tracked for the representative message. One or more timestamps 536 may be used to calculate message quality signals indicative of the length of time spent by a user in performing various message interactions. For example, one timestamp may identify the first time the user read the message while another timestamp may identify the most recent time the user read the message. The first timestamp may be used to determine a delay between the receipt of the message and the user's reading of the message. The second timestamp may be used to determine the length of time between readings of the message by the user.

메시지 상태 레코드(534) 내의 레코드 필드들의 세트는 중요도 예측 모델들(126)에 의해 이용되는 메시지 품질 신호들에 상호연관된다. 예를 들어, 이러한 필드들의 세트는 특정 메시지가 판독되었는지에 대한 상태, 메시지가 판독된 횟수의 카운트, 및 사용자가 메시지를 판독하는데 걸린 총 시간 값을 포함할 수 있다. 이러한 필드들의 세트는 또한 메시지가 포워딩되었는지 여부 또는 메시지에 응답했는지 여부와 같은 다른 메시지 품질 신호 지시자들을 포함할 수 있다. The set of record fields in the message status record 534 is correlated to the message quality signals used by the importance prediction models 126. For example, this set of fields may include a status as to whether a particular message has been read, a count of the number of times the message has been read, and a total time value for the user to read the message. This set of fields may also include other message quality signal indicators, such as whether the message was forwarded or responded to the message.

도 5d는 몇몇 실시예들에 따라 컨택 목록(412)(도 4)에서의 예시적인 컨택 엔트리(564)를 도시한다. 각 컨택 엔트리(564)는 사용자가 위에서 규정된 것과 같은 메시지들을 이용하여 통신하거나 통신할 수 있는 하나의 컨택을 나타낼 수 있다. 각 컨택 엔트리(564)는 컨택(566)의 명칭에 관한 정보, 컨택(568)의 이메일 컨택 정보, 전화 컨택 정보(570), 및 컨택에 대한 하나 이상의 친화도 스코어들(572)을 포함한다. 하나 이상의 친화도 스코어들(572)은 메시지들에 대한 중요도 스코어들을 계산하는 것과 관련하여 특정 컨택에 대한 사용자 친화도의 수치적(numerical) 표현을 제공한다. 일 실시예에서, 친화도 스코어들은 사용자의 컨택 목록에 나열된 컨택(예를 들어, 사람, 회사 또는 다른 엔티티)로부터 수신된 메시지에 할당된 중요도 스코어에 영향을 미칠 수 있다. 몇몇 실시예들에서, 각 친화도 스코어(572)는 컨택과 사용자 간의 통신 활동의 양을 나타낸다. 친화도 스코어에 대한 공헌들은(예를 들어, 각 컨택으로 전송되거나 각 컨택에 의해 전송된 통신들은) 시간 가중될 수 있어, 보다 최근의 공헌들이 더 오래된 공헌들보다 더 크게 가중된다.5D shows an example contact entry 564 in contact list 412 (FIG. 4), in accordance with some embodiments. Each contact entry 564 may represent one contact in which the user can communicate or communicate using messages as defined above. Each contact entry 564 includes information about the name of the contact 566, email contact information of the contact 568, telephone contact information 570, and one or more affinity scores 572 for the contact. One or more affinity scores 572 provide a numerical representation of user affinity for a particular contact with respect to calculating importance scores for the messages. In one embodiment, the affinity scores may affect the importance scores assigned to messages received from contacts listed in the user's contact list (eg, a person, company, or other entity). In some embodiments, each affinity score 572 represents the amount of communication activity between a contact and a user. Contributions to the affinity score (eg, communications sent to or by each contact) can be time weighted, so that more recent contributions are weighted larger than older contributions.

몇몇 양상들에서, 클라이언트 디바이스의 유형 및 시각은 친화도 스코어(572)와 연관된 가중치에 영향을 미칠 수 있는데 이는 그것이 하나 이상의 중요도 예측 모델들에 의해 적용되기 때문이다. 예를 들어, 사용자가 업무 시간 동안 그의 업무 PDA 상에서 메시지들을 보고 있는 경우, 관리자를 나타내는 컨택 엔트리(564)에 대한 친화도 스코어(572)는 사용자가 주말에 그의 집 개인용 컴퓨터에서 메시지들을 보고 있는 경우보다 더 큰 가중치를 할당받을 수 있다. 대안적으로 말하여, 이러한 2개의 컨택스트들에 이용되는 뷰포트들은 각각의 친화도 스코어(572)에 상이한 가중치들을 할당할 수 있다.In some aspects, the type and perspective of the client device can affect the weight associated with the affinity score 572 because it is applied by one or more importance prediction models. For example, if a user is viewing messages on his work PDA during business hours, the affinity score 572 for contact entry 564 representing the manager is the case when the user is viewing messages on his home personal computer over the weekend. Larger weights may be assigned. Alternatively, the viewports used for these two contexts can assign different weights to each affinity score 572.

도 6은 클라이언트 디바이스(600)의 블록도이다. 몇몇 실시예들에서, 디바이스(600)는 하나 이상의 처리 장치들(CPU들)(602); 하나 이상의 네트워크 또는 다른 통신 인터페이스들(604); 메모리(606); 사용자 인터페이스(610)(이는 디스플레이(612) 및 사용자 입력 디바이스(614)를 포함할 수 있음) 및 이러한 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(608)을 포함한다. 통신 버스들(608)은 시스템 컴포넌트들 간에서 상호연결하고 이들 간의 통신들을 제어하는 회로부(때때로 칩셋이라 지칭됨)를 포함할 수 있다. 메모리(606)는 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스들과 같은 고속 랜덤 액세스 메모리를 포함하고, 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비-휘발성 솔리드 스테이트 저장 디바이스들과 같은 비-휘발성 메모리를 포함할 수도 있다. 메모리(606), 또는 대안적으로 메모리(606) 내의 비-휘발성 메모리 디바이스(들)는 컴퓨터 판독가능 저장 매체를 포함한다. 몇몇 실시예들에서, 메모리(606)는 중앙 처리장치(들)(602)로부터 원격으로 위치되는 대용량 저장소를 포함한다. 몇몇 실시예들에서 또한 메모리(606)는 다음의 프로그램들, 모듈들, 및 데이터 구조들, 또는 이들의 서브세트를 저장한다:6 is a block diagram of a client device 600. In some embodiments, device 600 may include one or more processing units (CPUs) 602; One or more network or other communication interfaces 604; Memory 606; A user interface 610 (which may include a display 612 and a user input device 614) and one or more communication buses 608 for interconnecting these components. The communication buses 608 may include circuitry (sometimes called a chipset) that interconnects and controls communications between system components. Memory 606 includes fast random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices, and may include one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or It may include non-volatile memory such as other non-volatile solid state storage devices. Memory 606, or alternatively non-volatile memory device (s) in memory 606, includes computer readable storage media. In some embodiments, memory 606 includes mass storage located remotely from central processing unit (s) 602. In some embodiments memory 606 also stores the following programs, modules, and data structures, or a subset thereof:

다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 프로시저들을 포함하는 운영 체제(616);An operating system 616 including procedures for processing various basic system services and for performing hardware dependent tasks;

인터넷, 다른 광역 네트워크들, 로컬 영역 네트워크들, 대도시 영역 네트워크들 등과 같은 하나 이상의 통신 네트워크들(104)(도 1) 및 하나 이상의 통신 네트워크 인터페이스들(604)(유선 또는 무선)을 통해 다른 컴퓨터들로 클라이언트 디바이스(600)를 연결시키기 위해 이용되는 통신 모듈(618);Other computers via one or more communication networks 104 (FIG. 1) and one or more communication network interfaces 604 (wired or wireless) such as the Internet, other wide area networks, local area networks, metropolitan area networks, and the like. A communication module 618 used to connect the client device 600 to a network;

중요도 스코어-기반 메시지 목록(622)의 디스플레이를 포함하여, 뷰포트들에서 메시지들을 보고 메시지들과 상호작용하기 위한 클라이언트 애플리케이션(620); 및Client application 620 for viewing and interacting with messages in viewports, including display of importance score-based message list 622; And

다른 선택적인 클라이언트 애플리케이션들(624).Other optional client applications 624.

도 7은 본원 발명의 일 실시예에 따른 메시지 서버(700)를 도시하는 블록도이다. 몇몇 실시예들에서, 메시지 서버(700)는 하나 이상의 처리 장치들(CPU들)(702); 하나 이상의 네트워크 또는 다른 통신 인터페이스들(704); 메모리(706); 이러한 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(708)을 포함한다. 메모리(706)는 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스들과 같은 고속 랜덤 액세스 메모리를 포함하고, 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비-휘발성 솔리드 스테이트 저장 디바이스들과 같은 비-휘발성 메모리를 포함할 수도 있다. 메모리(706), 또는 대안적으로 메모리(706) 내의 비-휘발성 메모리 디바이스(들)는 컴퓨터 판독가능 저장 매체를 포함한다. 몇몇 실시예들에서, 메모리(706)는 중앙 처리장치(들)(702)로부터 원격으로 위치되는 대용량 저장소를 포함한다. 몇몇 실시예들에서 또한 메모리(706)는 다음의 프로그램들, 모듈들, 및 데이터 구조들, 또는 이들의 서브세트를 저장한다:7 is a block diagram illustrating a message server 700 according to an embodiment of the present invention. In some embodiments, message server 700 may include one or more processing units (CPUs) 702; One or more network or other communication interfaces 704; Memory 706; One or more communication buses 708 for interconnecting these components. Memory 706 includes fast random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices, and may include one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or It may include non-volatile memory such as other non-volatile solid state storage devices. Memory 706, or alternatively non-volatile memory device (s) in memory 706, includes a computer readable storage medium. In some embodiments, memory 706 includes mass storage located remotely from central processing unit (s) 702. In some embodiments the memory 706 also stores the following programs, modules, and data structures, or a subset thereof:

다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 프로시저들을 포함하는 운영 체제(716);An operating system 716 including procedures for processing various basic system services and for performing hardware dependent tasks;

인터넷, 다른 광역 네트워크들, 로컬 영역 네트워크들, 대도시 영역 네트워크들 등과 같은 하나 이상의 통신 네트워크들(104)(도 1) 및 하나 이상의 통신 네트워크 인터페이스들(704)(유선 또는 무선)을 통해 다른 컴퓨터들로 메시지 서버(700)를 연결시키기 위해 이용되는 네트워크 통신 모듈(712);Other computers via one or more communication networks 104 (FIG. 1) and one or more communication network interfaces 704 (wired or wireless), such as the Internet, other wide area networks, local area networks, metropolitan area networks, and the like. A network communication module 712 used to connect the message server 700 to a network;

사용자 계정 정보; 메시지 데이터베이스(130), 메시지 상태 데이터베이스(416), 전문 인덱스(406), 및 사용자 컨택 목록(412)을 포함하는 사용자 계정 데이터베이스(130);User account information; A user account database 130 including a message database 130, a message state database 416, a full text index 406, and a user contact list 412;

사용자 질의들(예를 들어, 하나 이상의 메시지들의 컨텐츠 내에 위치될 수 있는 워드들 또는 용어들을 특정하는 질의들 및/또는 하나 이상의 메시지들과 연관될 수 있는 메타데이터 값들(예를 들어, 날짜, 폴더, 라벨, 발신자 명칭, 참가자 명칭 등)을 특정하는 하나 이상의 질의들)에 기초하여 메시지 목록 결과들을 제공하는데 이용되는 검색 엔진(122);User queries (e.g., queries that specify words or terms that may be located within the content of one or more messages and / or metadata values that may be associated with one or more messages (e.g., date, folder A search engine 122 used to provide message list results based on one or more queries) specifying a label, sender name, participant name, etc.);

메시지들과 연관되는 중요도 스코어들에 기초하여 메시지들을 정렬하기 위한 기능을 제공하는 검색 결과 랭커(124);A search result ranker 124 that provides a function for sorting messages based on importance scores associated with the messages;

메시지들에 대해 중요도 스코어들을 생성하는데 이용되는 하나 이상의 중요도 예측 모델들(126);One or more importance prediction models 126 used to generate importance scores for the messages;

정렬의 목적 및 클라이언트들로 전송의 목적을 위해 서버에서 생성되는 메시지 목록들(730); 및Message lists 730 generated at the server for sorting purposes and for sending to clients; And

메시지 품질 신호들을 처리하고 이에 따라 모델들을 업데이트하는 중요도 예측 모델들에 대한 업데이터 모듈(732).Updater module 732 for importance prediction models that process message quality signals and update the models accordingly.

상기 엘리먼트들 각각은 이전에 언급된 메모리 디바이스들 중 하나 이상에 저장될 수 있고 상기 기능을 수행하는 명령들의 세트에 대응한다. 상기 모듈들 또는 프로그램들(즉, 명령들의 세트들)은 별개 소프트웨어 프로그램들, 프로시저들 또는 모듈들로서 구현될 필요가 없고, 따라서 이러한 모듈들의 다양한 서브세트들은 다양한 실시예들에서 결합되거나 그렇지 않으면 재배열될 수 있다. 몇몇 실시예들에서, 메모리(706)는 상기 모듈들 및 데이터 구조들의 서브세트를 저장할 수 있다. 또한 메모리(706)는 위에서 기술되지 않은 추가적인 모듈들 및 데이터 구조들을 저장할 수 있다.Each of the elements may be stored in one or more of the previously mentioned memory devices and corresponds to a set of instructions to perform the function. The modules or programs (ie, sets of instructions) need not be implemented as separate software programs, procedures or modules, so that various subsets of these modules may be combined or otherwise re-installed in various embodiments. Can be arranged. In some embodiments, memory 706 may store a subset of the modules and data structures. The memory 706 may also store additional modules and data structures not described above.

도 7은 "메시지 서버"를 도시하지만, 도 7은 본원에서 기술되는 실시예들의 구조적 개략도라기보다는 서버들의 세트에서 존재할 수 있는 다양한 특징들에 대한 기능적 설명으로서 의도된다. 실질적으로, 그리고 당업자에 의해 인식될 것처럼, 분리되어 도시된 아이템들은 결합될 수 있고 몇몇 아이템들은 분리될 수 있다. 예를 들어, 도 7에서 분리되어 도시된 몇몇 아이템들은 단일 서버들 상에서 구현될 수 있고 단일 아이템들이 하나 이상의 서버들에 의해 구현될 수 있다. 메시지 서버를 구현하는데 이용되는 서버들의 실제 수 및 그들 사이에서 특징들이 어떻게 할당되는지는 실시예마다 달라질 것이고, 평균 사용량 기간들 동안뿐만 아니라 피크 사용량 기간들 동안 시스템이 처리해야 하는 데이터 트래픽의 양에 부분적으로 의존할 수 있다.Although FIG. 7 shows a “message server”, FIG. 7 is intended as a functional description of various features that may exist in a set of servers rather than as a structural schematic of the embodiments described herein. Indeed, and as will be appreciated by those skilled in the art, items shown separately may be combined and some items may be separated. For example, some items shown separately in FIG. 7 may be implemented on single servers and single items may be implemented by one or more servers. The actual number of servers used to implement the message server and how features are allocated between them will vary from embodiment to embodiment and depend in part on the amount of data traffic that the system must handle during peak usage periods as well as during average usage periods. You can depend on it.

설명의 목적을 위해 상기 설명은 특정 실시예들을 참조하여 기술되었다. 그러나 상기 예시적인 논의들은 빠짐 없거나(exhaustive) 개시되는 정확한 형태들로 본 발명을 제한하도록 의도되지는 않는다. 많은 수정들 및 변형들이 상기 교시들의 관점에서 가능하다. 실시예들은 본 발명의 원칙들 및 이들의 실제적인 응용들을 가장 잘 설명하도록 선택되고 기술되었으며, 이에 의해 당업자는 예상되는 특정 용도에 적합한 다양한 수정들을 이용하여 본 발명 및 다양한 실시예들을 최상으로 이용할 수 있을 것이다.
For purposes of explanation, the description has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to limit the invention to the precise forms disclosed or exhaustive. Many modifications and variations are possible in view of the above teachings. The embodiments have been selected and described in order to best explain the principles of the present invention and their practical applications, thereby enabling those skilled in the art to best utilize the present invention and various embodiments with various modifications suitable for the particular use envisioned. There will be.

Claims (24)

메시지들을 디스플레이하기 위한 방법으로서,
제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 상기 제 1 클라이언트 디바이스에서 디스플레이하는 단계 ― 상기 제 1 서브세트는 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
제 2 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 상기 제 2 클라이언트 디바이스에서 디스플레이하는 단계 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―
를 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 포함하고,
상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
메시지들을 디스플레이하기 위한 방법.
As a method for displaying messages,
In response to a first user action at a first client device, displaying a first subset of a first plurality of messages at the first client device, wherein the first subset is calculated using a first importance prediction model. Ordered by the first importance score being; And
In response to a second user action at a second client device, displaying at the second client device a second subset of a second plurality of messages, the second subset being calculated using a second importance prediction model Sorted by the second importance score being
Wherein the first and second plurality of messages comprise messages in a single user account of each user,
The first and second importance prediction models are different,
Method for displaying messages.
제 1 항에 있어서,
상기 제 1 사용자 동작은 상기 제 1 클라이언트 디바이스에서 제 1 뷰포트(viewport)의 사용자 선택인,
메시지들을 디스플레이하기 위한 방법.
The method of claim 1,
The first user action is a user selection of a first viewport at the first client device;
Method for displaying messages.
제 1 항에 있어서,
상기 제 1 사용자 동작은 상기 제 1 클라이언트 디바이스에서 메시징 애플리케이션의 사용자 선택인,
메시지들을 디스플레이하기 위한 방법.
The method of claim 1,
The first user action is a user selection of a messaging application at the first client device;
Method for displaying messages.
제 1 항에 있어서,
메시지 품질 신호들의 제 1 세트에 기초하여 상기 제 1 다수의 메시지들의 상기 제 1 서브세트 내의 각 메시지에 대해 상기 제 1 중요도 스코어를 계산하는 단계; 및
메시지 품질 신호들의 제 2 세트에 기초하여 상기 제 2 다수의 메시지들의 상기 제 2 서브세트 내의 각 메시지에 대해 제 2 각각의 메시지 중요도 스코어를 계산하는 단계
를 포함하는, 메시지들을 디스플레이하기 위한 방법.
The method of claim 1,
Calculating the first importance score for each message in the first subset of the first plurality of messages based on the first set of message quality signals; And
Calculating a second respective message importance score for each message in the second subset of the second plurality of messages based on the second set of message quality signals
And displaying the messages.
제 4 항에 있어서,
상기 계산하는 동작들은 상기 제 1 및 제 2 클라이언트 디바이스들로부터 원격인 서버에서 수행되는,
메시지들을 디스플레이하기 위한 방법.
The method of claim 4, wherein
The calculating operations are performed at a server remote from the first and second client devices,
Method for displaying messages.
제 4 항에 있어서,
각 메시지에 대해, 상기 메시지 품질 신호들의 제 1 및 제 2 세트들은 각각:
상기 사용자가 상기 메시지를 판독했는지 여부를 식별하는 신호;
상기 메시지의 수신시로부터 상기 사용자가 상기 메시지를 판독한 최초 시간까지의 지연 시간을 식별하는 신호;
상기 사용자가 상기 메시지에 응답했는지 여부를 식별하는 신호;
상기 사용자가 상기 메시지를 포워딩했는지 여부를 식별하는 신호;
상기 사용자가 상기 메시지를 순서에 맞지 않게(out of order) 판독하는지 여부를 식별하는 신호;
상기 사용자가 상기 메시지를 판독하는데 걸린 총 시간을 나타내는 신호;
상기 사용자가 상기 메시지에 대한 탐색을 수행했는지 여부를 식별하는 신호;
상기 사용자가 상기 메시지를 판독한 횟수를 나타내는 신호; 및
상기 메시지의 또 다른 참가자(participant)에 대한 상기 사용자의 친화도(affinity)를 나타내는 신호
중 하나 이상을 포함하는, 메시지들을 디스플레이하기 위한 방법.
The method of claim 4, wherein
For each message, the first and second sets of message quality signals are each:
A signal identifying whether the user has read the message;
A signal identifying a delay time from receipt of said message to an initial time said user reads said message;
A signal identifying whether the user responded to the message;
A signal identifying whether the user has forwarded the message;
A signal identifying whether the user reads the message out of order;
A signal indicative of the total time taken by the user to read the message;
A signal identifying whether the user has performed a search for the message;
A signal indicating the number of times the user has read the message; And
A signal indicating the affinity of the user for another participant of the message
And one or more of the following.
제 6 항에 있어서,
상기 제 1 중요도 예측 모델과 연관되는 뷰포트를 이용하면서 상기 사용자 계정에서 메시지들과의 사용자 상호작용들에 따라 상기 메시지 품질 신호들의 제 1 세트 내의 메시지 품질 신호들의 멤버십 및 가중치(weight)들을 결정하기 위해 기계 학습(machine learning)을 이용하여 상기 제 1 중요도 예측 모델을 업데이트하는 단계를 포함하는,
메시지들을 디스플레이하기 위한 방법.
The method according to claim 6,
To determine membership and weights of message quality signals in the first set of message quality signals in accordance with user interactions with messages in the user account while using the viewport associated with the first importance prediction model. Updating the first importance prediction model using machine learning;
Method for displaying messages.
제 7 항에 있어서,
상기 제 2 중요도 예측 모델과 연관되는 뷰포트를 이용하면서 상기 사용자 계정에서 메시지들과의 사용자 상호작용들에 따라 상기 메시지 품질 신호들의 제 2 세트 내의 메시지 품질 신호들의 멤버십 및 가중치들을 결정하기 위해 기계 학습을 이용하여 상기 제 2 중요도 예측 모델을 업데이트하는 단계를 포함하는,
메시지들을 디스플레이하기 위한 방법.
The method of claim 7, wherein
Machine learning is used to determine membership and weights of message quality signals in the second set of message quality signals in accordance with user interactions with messages in the user account while using the viewport associated with the second importance prediction model. Updating the second importance prediction model using;
Method for displaying messages.
제 6 항에 있어서,
상기 제 1 중요도 예측 모델과 연관되는 뷰포트를 이용하면서 다수의 사용자 계정들에서 메시지들과의 사용자 상호작용들에 따라 상기 메시지 품질 신호들의 제 1 세트 내의 메시지 품질 신호들의 멤버십 및 가중치들을 결정하기 위해 기계 학습을 이용하여 상기 제 1 중요도 예측 모델을 업데이트하는 단계를 포함하는,
메시지들을 디스플레이하기 위한 방법.
The method according to claim 6,
A machine to determine membership and weights of message quality signals in the first set of message quality signals according to user interactions with messages in multiple user accounts while using the viewport associated with the first importance prediction model. Updating the first importance prediction model using learning,
Method for displaying messages.
제 9 항에 있어서,
상기 제 2 중요도 예측 모델과 연관되는 뷰포트를 이용하면서 상기 다수의 사용자 계정들에서 메시지들과의 사용자 상호작용들에 따라 상기 메시지 품질 신호들의 제 2 세트 내의 메시지 품질 신호들의 멤버십 및 가중치들을 결정하기 위해 기계 학습을 이용하여 상기 제 2 중요도 예측 모델을 업데이트하는 단계를 포함하는,
메시지들을 디스플레이하기 위한 방법.
The method of claim 9,
To determine membership and weights of message quality signals in the second set of message quality signals according to user interactions with messages in the plurality of user accounts while using the viewport associated with the second importance prediction model. Updating the second importance prediction model using machine learning,
Method for displaying messages.
제 4 항에 있어서,
상기 메시지 품질 신호들의 제 1 세트는 날짜 및 시간 신호 이외에 적어도 하나의 신호를 포함하는,
메시지들을 디스플레이하기 위한 방법.
The method of claim 4, wherein
The first set of message quality signals comprises at least one signal in addition to a date and time signal,
Method for displaying messages.
제 4 항에 있어서,
상기 메시지 품질 신호들의 제 2 세트는 날짜 및 시간 신호 이외에 적어도 하나의 신호를 포함하는,
메시지들을 디스플레이하기 위한 방법.
The method of claim 4, wherein
The second set of message quality signals comprises at least one signal in addition to a date and time signal,
Method for displaying messages.
제 1 항에 있어서,
상기 제 2 다수의 메시지들은 상기 제 1 다수의 메시지들 내의 메시지들의 서브세트를 적어도 포함하는,
메시지들을 디스플레이하기 위한 방법.
The method of claim 1,
The second plurality of messages comprises at least a subset of messages in the first plurality of messages,
Method for displaying messages.
제 1 항에 있어서,
상기 제 1 다수의 메시지들은 (A) 상기 사용자 계정의 제 1 미리규정된 폴더 내의 메시지들, 및 (B) 제 1 라벨로 라벨링되는 메시지들로 이루어진 그룹에서 선택되는 메시지들을 포함하고; 그리고
상기 제 2 다수의 메시지들은 (A) 상기 사용자 계정의 제 2 미리규정된 폴더 내의 메시지들, 및 (B) 제 2 라벨로 라벨링되는 메시지들로 이루어진 그룹에서 선택되는 메시지들을 포함하는,
메시지들을 디스플레이하기 위한 방법.
The method of claim 1,
The first plurality of messages comprises messages selected from the group consisting of (A) messages in a first predefined folder of the user account, and (B) messages labeled with a first label; And
Wherein the second plurality of messages comprises messages selected from the group consisting of (A) messages in a second predefined folder of the user account, and (B) messages labeled with a second label.
Method for displaying messages.
메시지들을 디스플레이하기 위한 방법으로서,
클라이언트 디바이스에서:
상기 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 제 1 클라이언트 디바이스에서 디스플레이하는 단계 ― 상기 제 1 서브세트는 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
상기 제 1 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 상기 제 1 클라이언트 디바이스에서 디스플레이하는 단계 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―
를 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각각 단일 사용자 계정에서의 메시지들을 포함하며,
상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
메시지들을 디스플레이하기 위한 방법.
As a method for displaying messages,
On the client device:
In response to a first user action at the client device, displaying at the first client device a first subset of the first plurality of messages, the first subset being calculated using a first importance prediction model; Sorted by 1 importance score; And
In response to a second user action at the first client device, displaying a second subset of a second plurality of messages at the first client device, the second subset using a second importance prediction model; Sorted by the second importance score computed
Wherein the first and second plurality of messages each include messages in a single user account,
The first and second importance prediction models are different,
Method for displaying messages.
메시지들을 디스플레이하기 위한 방법으로서,
제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하는 단계 ― 상기 제 1 서브세트의 목록은 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
제 2 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 나열하는 정보를 상기 제 2 클라이언트 디바이스로 전송하는 단계 ― 상기 제 2 서브세트의 목록은 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―;
를 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
메시지들을 디스플레이하기 위한 방법.
As a method for displaying messages,
In response to a first user action at a first client device, sending information to the first client device listing a first subset of a first plurality of messages, the list of the first subset being of first importance; Aligned by the first importance score calculated using the prediction model; And
In response to a second user action at a second client device, sending information listing the second subset of the second plurality of messages to the second client device, wherein the list of the second subset is of second importance; Aligned by a second importance score calculated using the prediction model;
Wherein the first and second plurality of messages each include messages in a single user account of each user,
The first and second importance prediction models are different,
Method for displaying messages.
메시지들을 디스플레이하기 위한 방법으로서,
제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하는 단계 ― 상기 제 1 서브세트의 목록은 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
상기 제 1 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하는 단계 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―;
를 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
메시지들을 디스플레이하기 위한 방법.
As a method for displaying messages,
In response to a first user action at a first client device, sending information to the first client device listing a first subset of a first plurality of messages, the list of the first subset being of first importance; Aligned by the first importance score calculated using the prediction model; And
In response to a second user action at the first client device, sending information to the first client device listing a second subset of a second plurality of messages, the second subset predicting a second importance Aligned by a second importance score calculated using the model;
Wherein the first and second plurality of messages each include messages in a single user account of each user,
The first and second importance prediction models are different,
Method for displaying messages.
하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체로서,
상기 하나 이상의 프로그램들은:
제 1 클라이언트 디바이스에서,
상기 제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 상기 제 1 클라이언트 디바이스에서 디스플레이하고 ― 상기 제 1 서브세트는 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 그리고
상기 제 1 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 상기 제 1 클라이언트 디바이스에서 디스플레이하기 위한 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―
명령들을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각각 단일 사용자 계정에서의 메시지들을 포함하며,
상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체.
A computer readable storage medium for storing one or more programs, the method comprising:
The one or more programs are:
At the first client device,
In response to a first user action at the first client device, display a first subset of a first plurality of messages at the first client device, the first subset computed using a first importance prediction model Ordered by the first importance score being; And
In response to a second user action at the first client device, for displaying at the first client device a second subset of a second plurality of messages, the second subset using a second importance prediction model; Sorted by the second importance score computed
Instructions, wherein the first and second plurality of messages each include messages in a single user account,
The first and second importance prediction models are different,
A computer readable storage medium storing one or more programs.
하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체로서,
상기 하나 이상의 프로그램들은:
제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하고 ― 상기 제 1 서브세트의 목록은 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 그리고
제 2 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 나열하는 정보를 상기 제 2 클라이언트 디바이스로 전송하기 위한 ― 상기 제 2 서브세트의 목록은 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―;
명령들을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체.
A computer readable storage medium for storing one or more programs, the method comprising:
The one or more programs are:
In response to a first user action at a first client device, send information to the first client device listing a first subset of a first plurality of messages, the list of the first subset predicting a first importance Aligned by the first importance score calculated using the model; And
In response to a second user action at a second client device, information for transmitting a second subset of the second plurality of messages to the second client device, wherein the list of the second subset is of second importance. Aligned by a second importance score calculated using the prediction model;
Instructions, wherein the first and second plurality of messages each include messages in a single user account of each user,
The first and second importance prediction models are different,
A computer readable storage medium storing one or more programs.
하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체로서,
상기 하나 이상의 프로그램들은:
제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하고 ― 상기 제 1 서브세트의 목록은 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 그리고
상기 제 1 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하기 위한 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―;
명령들을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체.
A computer readable storage medium for storing one or more programs, the method comprising:
The one or more programs are:
In response to a first user action at a first client device, send information to the first client device listing a first subset of a first plurality of messages, the list of the first subset predicting a first importance Aligned by the first importance score calculated using the model; And
In response to a second user action at the first client device, information for transmitting a second subset of the second plurality of messages to the first client device, the second subset predicting a second importance Aligned by a second importance score calculated using the model;
Instructions, wherein the first and second plurality of messages each include messages in a single user account of each user,
The first and second importance prediction models are different,
A computer readable storage medium storing one or more programs.
메시지들을 디스플레이하기 위한 시스템으로서,
메모리;
하나 이상의 프로세서들; 및
상기 메모리에 저장되고 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되는 하나 이상의 모듈들
을 포함하고, 상기 모듈들은:
제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 상기 제 1 클라이언트 디바이스에서 디스플레이하고 ― 상기 제 1 서브세트는 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 그리고
제 2 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 상기 제 2 클라이언트 디바이스에서 디스플레이하기 위한 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―
명령들을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
메시지들을 디스플레이하기 위한 시스템.
A system for displaying messages,
Memory;
One or more processors; And
One or more modules stored in the memory and configured to be executed by the one or more processors
The module includes:
In response to a first user action at a first client device, display a first subset of a first plurality of messages at the first client device, wherein the first subset is computed using a first importance prediction model; Sorted by first importance score; And
In response to a second user action at a second client device, for displaying at the second client device a second subset of a second plurality of messages, the second subset computed using a second importance prediction model Sorted by the second importance score being
Instructions, wherein the first and second plurality of messages each include messages in a single user account of each user,
The first and second importance prediction models are different,
System for displaying messages.
클라이언트 디바이스로서,
메모리;
하나 이상의 프로세서들; 및
상기 메모리에 저장되고 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되는 하나 이상의 모듈들
을 포함하고, 상기 하나 이상의 모듈들은:
상기 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 상기 클라이언트 디바이스에서 디스플레이하기 위한 명령들 ― 상기 제 1 서브세트는 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
상기 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 상기 클라이언트 디바이스에서 디스플레이하기 위한 명령들 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―
을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각각 단일 사용자 계정에서의 메시지들을 포함하며,
상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
클라이언트 디바이스.
As a client device,
Memory;
One or more processors; And
One or more modules stored in the memory and configured to be executed by the one or more processors
Wherein the one or more modules are:
In response to a first user action at the client device, instructions for displaying at the client device a first subset of a first plurality of messages, the first subset being calculated using a first importance prediction model. Sorted by first importance score; And
In response to a second user action at the client device, instructions for displaying a second subset of a second plurality of messages at the client device, wherein the second subset is calculated using a second importance prediction model. Sorted by second importance score ―
Wherein the first and second plurality of messages each include messages in a single user account,
The first and second importance prediction models are different,
Client device.
서버 시스템으로서,
메모리;
하나 이상의 프로세서들; 및
상기 메모리에 저장되고 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되는 하나 이상의 모듈들
을 포함하고, 상기 하나 이상의 모듈들은:
제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하기 위한 명령들 ― 상기 제 1 서브세트의 목록은 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
제 2 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 나열하는 정보를 상기 제 2 클라이언트 디바이스로 전송하기 위한 명령들 ― 상기 제 2 서브세트의 목록은 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―;
을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
서버 시스템.
As a server system,
Memory;
One or more processors; And
One or more modules stored in the memory and configured to be executed by the one or more processors
Wherein the one or more modules are:
In response to a first user action at a first client device, instructions for sending to the first client device information listing the first subset of the first plurality of messages, the list of the first subset being selected from the first user device. Ordered by the first importance score calculated using the 1 importance prediction model; And
In response to a second user action at a second client device, instructions for sending to the second client device information listing a second subset of a second plurality of messages, wherein the list of second subsets is determined by the second user device. Aligned by a second importance score calculated using a two importance prediction model;
Wherein the first and second plurality of messages each include messages in a single user account of each user,
The first and second importance prediction models are different,
Server system.
서버 시스템으로서,
메모리;
하나 이상의 프로세서들; 및
상기 메모리에 저장되고 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되는 하나 이상의 모듈들
을 포함하고, 상기 하나 이상의 모듈들은:
클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 나열하는 정보를 상기 클라이언트 디바이스로 전송하기 위한 명령들 ― 상기 제 1 서브세트의 목록은 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
상기 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 나열하는 정보를 상기 클라이언트 디바이스로 전송하기 위한 명령들 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―;
을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
서버 시스템.
As a server system,
Memory;
One or more processors; And
One or more modules stored in the memory and configured to be executed by the one or more processors
Wherein the one or more modules are:
Instructions, in response to a first user action at a client device, to send information to the client device listing a first subset of a first plurality of messages, the list of the first subset being a first importance prediction model. Aligned by a first importance score computed using; And
Instructions, in response to a second user action at the client device, to send information to the client device listing a second subset of a second plurality of messages, the second subset generating a second importance prediction model. Aligned by a second importance score computed using;
Wherein the first and second plurality of messages each include messages in a single user account of each user,
The first and second importance prediction models are different,
Server system.
KR1020117005897A 2008-08-14 2009-08-07 Messaging application with multiple viewports for presenting messages in different orders KR101413700B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/192,055 US8185492B2 (en) 2008-08-14 2008-08-14 Messaging application with multiple viewports for presenting messages in different orders
US12/192,055 2008-08-14
PCT/US2009/053164 WO2010019474A2 (en) 2008-08-14 2009-08-07 Messaging application with multiple viewports for presenting messages in different orders

Publications (2)

Publication Number Publication Date
KR20110055636A true KR20110055636A (en) 2011-05-25
KR101413700B1 KR101413700B1 (en) 2014-06-30

Family

ID=41669591

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117005897A KR101413700B1 (en) 2008-08-14 2009-08-07 Messaging application with multiple viewports for presenting messages in different orders

Country Status (6)

Country Link
US (2) US8185492B2 (en)
EP (1) EP2316078A4 (en)
JP (1) JP5351964B2 (en)
KR (1) KR101413700B1 (en)
DE (1) DE202009019142U1 (en)
WO (1) WO2010019474A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014055094A1 (en) * 2012-10-02 2014-04-10 Google Inc. Ordinal positioning of content items based on viewport
KR20190130685A (en) * 2015-07-29 2019-11-22 구글 엘엘씨 Modeling personal entities

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090210391A1 (en) * 2008-02-14 2009-08-20 Hall Stephen G Method and system for automated search for, and retrieval and distribution of, information
US8868661B2 (en) * 2008-10-08 2014-10-21 Verizon Patent And Licensing Inc. Message management based on metadata
US20100100845A1 (en) * 2008-10-20 2010-04-22 Ingboo Inc. Organization and Delivery of Information Updates
US8224996B2 (en) * 2008-12-29 2012-07-17 International Business Machines Corporation Directory viewports
US9602444B2 (en) * 2009-05-28 2017-03-21 Google Inc. Participant suggestion system
US20120005282A1 (en) * 2010-07-02 2012-01-05 Microsoft Corporation Collaborative ranking and filtering of electronic mail messages
US8555156B2 (en) * 2010-08-16 2013-10-08 Google Inc. Inferring that a message has been read
US20120054642A1 (en) * 2010-08-27 2012-03-01 Peter Wernes Balsiger Sorted Inbox User Interface for Messaging Application
US9619100B2 (en) 2010-08-30 2017-04-11 Nokia Technologies Oy Method, apparatus, and computer program product for adapting a content segment based on an importance level
US8312096B2 (en) 2010-12-08 2012-11-13 Google Inc. Priority inbox notifications and synchronization for mobile messaging application
US9116984B2 (en) * 2011-06-28 2015-08-25 Microsoft Technology Licensing, Llc Summarization of conversation threads
US8751591B2 (en) 2011-09-30 2014-06-10 Blackberry Limited Systems and methods of adjusting contact importance for a computing device
US10733669B2 (en) 2012-08-02 2020-08-04 Chicago Mercantile Exchange Inc. Message processing
US20140059141A1 (en) * 2012-08-23 2014-02-27 Linkedln Corporation Electronic messaging system utilizing social classification rules
GB201219931D0 (en) * 2012-11-06 2012-12-19 Truphone Ltd Management of contact information
US20140143779A1 (en) * 2012-11-19 2014-05-22 Raytheon Company Contextual routing of data elements
WO2014094198A1 (en) * 2012-12-17 2014-06-26 Nokia Corporation Message preloading system
US9825896B2 (en) 2014-03-04 2017-11-21 Notion Ai, Inc. Proposed message disposition viewport apparatus and method for timed operation
US9887947B2 (en) * 2015-02-19 2018-02-06 Notion Ai, Inc. Incentivized message disposition apparatus and time limited method for operation
US10708151B2 (en) * 2015-10-22 2020-07-07 Level 3 Communications, Llc System and methods for adaptive notification and ticketing
US11016534B2 (en) * 2016-04-28 2021-05-25 International Business Machines Corporation System, method, and recording medium for predicting cognitive states of a sender of an electronic message
US9864732B2 (en) 2016-05-02 2018-01-09 Google Inc. User interfaces that facilitate management of formatting of digital content
US10601760B2 (en) * 2016-10-24 2020-03-24 Facebook, Inc. Techniques for device configuration of prospective contacts using messaging history information
US11115359B2 (en) 2016-11-03 2021-09-07 Samsung Electronics Co., Ltd. Method and apparatus for importance filtering a plurality of messages
US10721202B2 (en) * 2017-05-29 2020-07-21 International Business Machines Corporation Broadcast response prioritization and engagements
US11714522B2 (en) * 2017-12-08 2023-08-01 Yahoo Assets Llc Controlling a graphical user interface using a presentation of messages based upon predicted interactions with the messages
US20210027104A1 (en) * 2019-07-25 2021-01-28 Microsoft Technology Licensing, Llc Eyes-off annotated data collection framework for electronic messaging platforms

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654787B1 (en) 1998-12-31 2003-11-25 Brightmail, Incorporated Method and apparatus for filtering e-mail
KR100869624B1 (en) * 2000-03-16 2008-11-21 마이크로소프트 코포레이션 Priorities generation and management
US6654791B1 (en) 2000-03-24 2003-11-25 International Business Machines Corporation Method and apparatus for processing electronic mail using an importance indicator
US6842775B1 (en) 2000-08-29 2005-01-11 International Business Machines Corporation Method and system for modifying mail rules
US7200606B2 (en) 2000-11-07 2007-04-03 The Regents Of The University Of California Method and system for selecting documents by measuring document quality
US20030187937A1 (en) 2002-03-28 2003-10-02 Yao Timothy Hun-Jen Using fuzzy-neural systems to improve e-mail handling efficiency
US20030195937A1 (en) * 2002-04-16 2003-10-16 Kontact Software Inc. Intelligent message screening
US20050204001A1 (en) * 2002-09-30 2005-09-15 Tzvi Stein Method and devices for prioritizing electronic messages
US7484213B2 (en) * 2003-07-11 2009-01-27 Boban Mathew Agent architecture employed within an integrated message, document and communication system
US7814545B2 (en) * 2003-07-22 2010-10-12 Sonicwall, Inc. Message classification using classifiers
US20050203929A1 (en) 2004-03-09 2005-09-15 Devapratim Hazarika System, method and computer program product for prioritizing contacts
US20050204009A1 (en) 2004-03-09 2005-09-15 Devapratim Hazarika System, method and computer program product for prioritizing messages
US7814155B2 (en) * 2004-03-31 2010-10-12 Google Inc. Email conversation management system
US7941491B2 (en) * 2004-06-04 2011-05-10 Messagemind, Inc. System and method for dynamic adaptive user-based prioritization and display of electronic messages
US7664249B2 (en) * 2004-06-30 2010-02-16 Microsoft Corporation Methods and interfaces for probing and understanding behaviors of alerting and filtering systems based on models and simulation from logs
US20060031340A1 (en) * 2004-07-12 2006-02-09 Boban Mathew Apparatus and method for advanced attachment filtering within an integrated messaging platform
US7889853B2 (en) * 2004-07-27 2011-02-15 At&T Intellectual Property I, L.P. Methods, systems, devices, and products for providing ring backs
US8621024B2 (en) * 2007-04-24 2013-12-31 Blackberry Limited System and method for prioritizing and displaying messages

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014055094A1 (en) * 2012-10-02 2014-04-10 Google Inc. Ordinal positioning of content items based on viewport
US10657310B2 (en) 2012-10-02 2020-05-19 Google Llc Ordinal positioning of content items based on viewport
US11409944B2 (en) 2012-10-02 2022-08-09 Google Llc Ordinal positioning of content items based on viewport
KR20190130685A (en) * 2015-07-29 2019-11-22 구글 엘엘씨 Modeling personal entities

Also Published As

Publication number Publication date
JP2011530771A (en) 2011-12-22
KR101413700B1 (en) 2014-06-30
US20120233556A1 (en) 2012-09-13
EP2316078A4 (en) 2012-12-05
WO2010019474A3 (en) 2010-11-11
US9219619B2 (en) 2015-12-22
US8185492B2 (en) 2012-05-22
DE202009019142U1 (en) 2017-01-20
WO2010019474A2 (en) 2010-02-18
EP2316078A2 (en) 2011-05-04
US20100042570A1 (en) 2010-02-18
JP5351964B2 (en) 2013-11-27

Similar Documents

Publication Publication Date Title
KR101413700B1 (en) Messaging application with multiple viewports for presenting messages in different orders
US11190474B2 (en) Method and system for collecting and presenting historical communication data for a mobile device
KR101031942B1 (en) Method and system for locating contact information collected from contact sources
US10963524B2 (en) Self populating address book
JP5960215B2 (en) Priority inbox notification and synchronization for mobile messaging applications
KR20060094853A (en) Method and system for aggregating contact information from multiple contact sources
US7543032B2 (en) Method and apparatus for associating messages with data elements
US9654427B2 (en) Presenting instant messages
CN102385615A (en) Information collection and presentation
JP2008052422A (en) Presence search apparatus and messaging system
US8572242B2 (en) Leveraging passive networks
US8358750B1 (en) Electronic message management system and associated methods

Legal Events

Date Code Title Description
AMND Amendment
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170613

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180612

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190613

Year of fee payment: 6