KR20110055636A - 상이한 순서들로 메시지들을 제시하기 위한 다수의 뷰포트들을 가진 메시징 애플리케이션 - Google Patents

상이한 순서들로 메시지들을 제시하기 위한 다수의 뷰포트들을 가진 메시징 애플리케이션 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
English (en)
Other versions
KR101413700B1 (ko
Inventor
에릭 비. 매이어스
더글라스 티. 허드슨
Original Assignee
구글 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 인코포레이티드 filed Critical 구글 인코포레이티드
Publication of KR20110055636A publication Critical patent/KR20110055636A/ko
Application granted granted Critical
Publication of KR101413700B1 publication Critical patent/KR101413700B1/ko

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Digital Computer Display Output (AREA)

Abstract

메시지들을 디스플레이하기 위한 방법에 있어서, 시스템은 다수의 뷰포트들에서 단일 사용자 계정으로부터의 메시지들을 디스플레이한다. 각 뷰포트는 이러한 뷰포트를 통해 그의 사용자 계정에서 메시지들과의 사용자의 종전 상호작용들에 기초하여 계산되는 중요도 스코어에 기초하여 메시지들을 정렬한다. 사용자 계정과 연관된 각 뷰포트는 상이한 메시지 중요도 모델을 이용하여 메시지들을 정렬한다.

Description

상이한 순서들로 메시지들을 제시하기 위한 다수의 뷰포트들을 가진 메시징 애플리케이션{MESSAGING APPLICATION WITH MULTIPLE VIEWPORTS FOR PRESENTING MESSAGES IN DIFFERENT ORDERS}
개시되는 실시예들은 일반적으로 이메일, 인스턴트, 및 음성 메일 메시지들과 같은 메시지들의 디스플레이에 관한 것이다. 보다 구체적으로, 개시되는 실시예들은 메시지들과의 사용자의 상호작용들로부터 결정되는 중요도 인자들 또는 스코어들에 기초하여 정렬된 메시지들을 디스플레이하기 위한 시스템들, 방법들, 및 컴퓨터 프로그램들에 관한 것이다.
이메일 통신이 증가함에 따라, 사용자 계정들에서 수신되고 저장되는 이메일 메시지들의 수도 증가한다. 사용자 계정은 전형적으로 각 이메일 주소 또는 사용자명으로 전송되고 이로부터 전송되는 모든 메시지들을 포함한다. 그러나 몇몇 사용자 계정들은 때때로 에일리어스(alias)라 지칭되는 다수의 이메일 주소들 또는 사용자 이름들과 연관될 수 있고, 이들은 함께 하나의 논리 이메일 주소 또는 사용자명이라 간주될 수 있다. 수신된 이메일의 양은 빠르게 사용자들을 압도할 수 있어 불필요한 메시지들로부터 중요한 메시지들을 걸러내기가 어려워진다.
추가적으로, 오늘날 많은 사람들이 핸드헬드 컴퓨터들 또는 셀 폰들과 같은 모바일 디바이스들 상에서 그들의 이메일에 액세스하고 이러한 이메일을 본다. 이러한 모바일 디바이스들은 전형적으로 메시지들을 보기 위한 훨씬 더 작은 메시지 윈도우들 또는 인터페이스들을 가진 작은 스크린들을 가진다. 이러한 인터페이스들은 때때로 사용자가 임의의 주어진 시간에 적은 수의 메시지들을 보도록 허용할 뿐이어서, 사용자는 예를 들어 메시지들을 스크롤링하는 것을 통해 중요한 메시지들의 위치를 찾기 위해 이러한 인터페이스와 보다 빈번하게 상호작용할 것이 요구된다. 이러한 모바일 디바이스들은 또한 네트워크 접속성을 이용할 수 있고, 이는 때때로 사용량에 의해 요금이 부과되며 종종 느리다. 이러한 디바이스들의 사용자들은 이러한 매체를 통해 메시지에 액세스할 때 그들이 보는 메시지들을 높은 중요도를 갖는 메시지들로 제한하기를 원한다.
이러한 문제점들을 다루기 위해서, 몇몇 메시지는 보다 쉬운 식별을 위해서 사용자들이 메시지들을 폴더들로 조직화하거나 사용자-정의 라벨들을 부가할 수 있도록 한다. 추가적으로, 몇몇 이메일 애플리케이션들에서 사용자들은 메시지 전달 날짜, 발신자, 또는 메시지 제목과 같은 단일 사용자-정의 메시지 헤더 필드의 값에 따라 특정 뷰(view)로 메시지들을 정렬할 수 있다. 그러나 이러한 조직적 기술들은 때때로 사용자에게 가장 중요한 메시지들을 식별하지 못하고, 사용자가 많은 메시지들을 통해 스크롤링한 후에 비로소 가장 중요하게 생각하는 메시지들의 위치를 찾도록 하게 한다.
특정 사용자에게 예측된 중요도에 기초하여 자동적으로 소트(sort)되는 메시지들의 커스터마이즈 뷰(customized view)를 사용자에게 제공하면서 상기 단점들을 다루는 메시지 시스템 및 방법을 제공할 것이 요구된다.
메시지들을 디스플레이하기 위한 방법에 있어서, 시스템은 다수의 뷰포트(viewport)들에서 단일 사용자 계정(즉, 각 사용자의 계정)으로부터의 메시지들을 디스플레이한다. 각 뷰포트는 이러한 뷰포트를 통해 그의 사용자 계정에서 메시지들과의 사용자의 종전 상호작용들에 기초하여 계산되는 중요도 스코어에 기초하여 메시지들을 정렬한다. 사용자 계정과 연관된 각 뷰포트는 상이한 메시지 중요도 모델을 이용하여 메시지들을 정렬한다.
몇몇 실시예들에서, 제 1 클라이언트 디바이스가 제 1 중요도 스코어 계산에 의해 정렬된 메시지들을 뷰포트에서 디스플레이하고 제 2 클라이언트 디바이스는 제 2 중요도 스코어 계산에 의해 정렬된 동일한 사용자 계정으로부터의 메시지들을 뷰포트에서 디스플레이한다. 중요도 예측 모델들은 메시지들과의 사용자 상호작용들에 기초하여 중요도 스코어들을 생성하는데 이용된다.
몇몇 실시예들에서, 클라이언트 디바이스는 제 1 중요도 스코어 계산에 의해 정렬된 메시지들을 뷰포트에서 디스플레이하고 제 2 중요도 스코어 계산에 의해 정렬된 동일한 사용자 계정으로부터의 메시지들을 제 2 뷰포트에서 디스플레이한다.
본 발명의 또 다른 양상에서, 서버는 제 1 클라이언트 디바이스로 제 1 중요도 스코어 계산에 의해 정렬된 메시지들의 목록을 전송하고 제 2 클라이언트 디바이스로 제 2 중요도 스코어 계산에 의해 정렬된 동일한 사용자 계정으로부터의 메시지들의 또 다른 목록을 전송한다.
본 발명의 또 다른 양상에서, 서버는 클라이언트 디바이스로 제 1 중요도 스코어 계산에 의해 정렬된 메시지들의 목록을 전송하고 상기 클라이언트 디바이스로 제 2 중요도 스코어 계산에 의해 정렬된 동일한 사용자 계정으로부터의 메시지들의 또 다른 목록을 전송한다.
몇몇 양상들은 상기 방법들을 수행하기 위한 명령들을 포함하는 하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체를 제공한다.
도 1은 몇몇 양상들에 따라 클라이언트-서버 네트워크 환경의 인프라구조를 도시하는 블록도이다.
도 2는 몇몇 양상들에 따라 다수의 클라이언트들로 정렬된 메시지 목록들을 제공하는 프로세스를 도시하는 흐름도이다.
도 3은 몇몇 다른 양상들에 따라 단일 클라이언트로 정렬된 메시지 목록들을 제공하는 또 다른 프로세스를 도시하는 흐름도이다.
도 4는 몇몇 양상들에 따라 정렬된 메시지 목록을 생성하는 프로세스를 도시하는 흐름도이다.
도 5a-5d는 몇몇 양상들에 따라 정렬된 메시지를 생성하기 위해 이용되는 데이터 구조들을 도시하는 블록도들이다.
도 6은 몇몇 양상들에 따른 예시적인 클라이언트의 블록도이다.
도 7은 몇몇 양상들에 따른 예시적인 서버의 블록도이다.
유사한 참조 번호들이 도면들을 통해 대응하는 부분들을 참조한다.
도 1은 몇몇 양상들에 따른 시스템(100)의 블록도이다. 하나 이상의 클라이언트들(103) 및 메시지 서버(106)는 임의의 적합한 수단을 통해 통신 네트워크(104)에 연결된다. 통신 네트워크(104)는 하나 이상의 로컬 영역 네트워크(LAN)들, 광역 네트워크(WAN)들, 예를 들어 인터넷 등 또는 이들의 조합일 수 있다.
몇몇 양상들에서, 클라이언트(103)는 개인용 컴퓨터, 핸드헬드 컴퓨터, 개인 휴대 정보 단말기, 셀룰러-폰 등과 같은 임의의 적합한 컴퓨팅 디바이스이다. 클라이언트(103)는 메시지들을 보기 위한 하나 이상의 소프트웨어 애플리케이션들 또는 인터페이스들을 포함한다. 본원에서 사용될 때 메시지들은 한 사람, 하나의 스테이션, 또는 그룹으로부터 다른 것으로의 임의의 유형의 통신 메시지들을 지칭하고, 전자 메일(이메일) 메시지들, 인스턴트 메시지들, 음성메일 메시지들 등을 포함한다.
몇몇 실시예들에서, 메시지 서버(106)는 프런트 엔드 서버(120), 검색 엔진(122), 검색 결과 랭커(124), 중요도 예측 모델(126), 메시지 데이터베이스(128), 및 사용자 계정 데이터베이스(130)를 포함한다. 검색 엔진(122)은 사용자 계정 데이터베이스(130)와 연관된 특정 사용자 계정에 속하는 메시지들의 세트들을 리트리빙(retrieve)하기 위해 메시지 데이터베이스(128)와 통신한다. 사용자 계정은 각각의 이메일 주소 또는 사용자명으로 전송되고 이로부터 전송되는 모든 메시지들을 포함한다. 몇몇 경우들에서, 각 사용자 계정은 때때로 에일리어스(alias)라 지칭되는 다수의 이메일 주소들 또는 사용자명들과 연관될 수 있고, 이들은 함께 이러한 논의의 목적을 위해 하나의 논리 이메일 주소 또는 사용자명이라 간주될 수 있다. 검색 엔진(122)은 검색 결과 랭커(124)로 리트리빙된 메시지들의 세트를 전송하고, 이러한 검색 결과 랭커(124)는 중요도 예측 모델들(126)을 이용하여 세트 내의 각 개별 메시지에 대해 계산된 중요도 스코어들에 따라 메시지 순서를 조직화한다. 하나의 경우에, 복귀되는 메시지들의 세트는 모두 새로운 메시지들이다.
메시지 데이터베이스(128)는 사용자들에 대한 메시지들을 저장한다. 몇몇 실시예들에서, 하나의 메시지 데이터베이스(128)가 사용자 계정마다 이용되고, 다른 실시예들에서는 다수의 사용자들로부터의 메시지들이 동일한 메시지 데이터베이스(128)에 저장된다. 당업자는 한 사용자로부터의 메시지들이 시스템의 다른 사용자들에 의해 액세스되는 것을 방지하기 위한 많은 방법들이 있다는 것을 인식할 것이다.
중요도 예측 모델들(126)은 적어도 하나의 사용자 계정에서 개별 메시지들에 대한 중요도 스코어들을 계산한다. 하나 이상의 중요도 예측 모델들(126)은 사용자 계정과 연관된다. 중요도 예측 모델들(126)은 사용자 계정에서 하나 이상의 메시지들의 세트에 대해 중요도 스코어들을 계산한다.
일 실시예에서, 중요도 예측 모델들(126)은 기계 학습(machine learning)을 이용하여 생성된다. 기계 학습은 소프트웨어 툴들 및 컴퓨터 시스템들을 이용하여 구현되는, 기능들 및 예측 모델들을 생성하는 기술들의 세트를 포함한다(예를 들어, 기능들 또는 예측 모델들의 컴포넌트들에 적용될 가중치들을 결정함으로써). 기계 학습은 당업자에게 잘 알려져 있으므로 본 문서에서는 기술되지 않는다. 각 예측 모델은 메시지들의 세트 내의 각 메시지에 대해 중요도 스코어, 또는 둘 이상의 중요도 스코어들을 계산하는데 이용된다. 이러한 모델은 하나 이상의 메시지 품질 신호들(때때로 메시지 품질 인자들, 또는 메시지 중요도 인자들이라 지칭됨)을 이용하여 각 메시지에 대해 하나 이상의 스코어들을 계산하도록 규정된다. 미리규정된 메시지 품질 신호들의 세트 중 각 메시지 품질 신호는 상이한 예측 모델들에서 상이하게 가중(weight)될 수 있는데, 이는 각 메시지 품질 신호에 적용되는 가중치들이 사용자 계정에서 메시지들에 대한 이전의 사용자 동작들 또는 사용자 선호사항들에 따라 결정되기 때문이다.
메시지 품질 신호들의 예들은 다음을 포함한다: 사용자가 메시지를 판독했는지 여부를 식별하는 신호, 메시지의 수신시로부터 사용자가 메시지를 판독한 최초 시간까지의 지연시간을 식별하는 신호, 상기 사용자가 상기 메시지에 응답했는지 여부를 식별하는 신호, 상기 사용자가 상기 메시지를 포워딩했는지 여부를 식별하는 신호, 상기 사용자가 상기 메시지를 순서에 맞지 않게 판독하는지 여부를 식별하는 신호, 상기 사용자가 특정 메시지를 판독하는데 걸린 총 시간을 나타내는 신호, 상기 사용자가 상기 메시지에 대한 탐색을 수행했는지 여부를 식별하는 신호, 상기 사용자가 상기 메시지를 판독했던 횟수를 나타내는 신호, 및 상기 메시지의 또 다른 참가자에 대한 상기 사용자의 친화도(affinity)를 나타내는 신호. 뷰포트 에서 메시지들을 정렬하기 위해 이용될 수 있는 다른 메시지 품질 신호들은 메시지 헤더 정보에 기초한 신호들 및 메시지들에 대한 다른 메타데이터에 기초한 신호들을 포함한다.
뷰포트는 사용자 계정에서 메시지들의 세트를 보고 메시지들의 세트와 상호작용하기 위한 사용자 인터페이스이다. 클라이언트는 메시지들을 보기 위한 하나 이상의 뷰포트들을 제공할 수 있고, 다시 말해서 동일한 개인용 컴퓨터 상의 상이한 메시지 뷰잉(viewing) 윈도우들과 같이, 상이한 뷰포트들이 동일한 디바이스 상에 존재할 수 있다. 이용가능한 메시지 품질 신호들의 서브세트 및 다른 메시지 신호들은 특정 뷰포트에 대해 중요도 스코어들을 생성하도록 조합될 수 있고(예를 들어 가중된 합산과 같은 선형 조합, 또는 비-선형 조합), 이러한 중요도 스코어들은 그 후 상기 뷰포트에 대한 메시지들을 정렬하는데 이용된다.
몇몇 실시예들에서, 중요도 예측 모델들(126)은 특정 뷰포트에 대해 중요한 메시지 특성들의 최초 예측 모델을 수립하는데 기계 학습을 이용한다. 그 다음 이러한 모델은 특정 메시지에 대해 중요도 스코어를 계산하기 위해 메시지들의 세트 내의 각 메시지에 적용된다. 메시지들의 세트는 그 후 검색 결과 랭커(124)를 이용하여 정렬, 즉 특정 뷰포트에 대해 소트된다. 예를 들어, 검색 결과 랭커(124)는 중요도 스코어가 감소하는 순서로 메시지들을 정렬할 수 있다.
중요도 예측 모델들의 선택은 클라이언트에서 특정 뷰포트의 선택에 의존한다. 몇몇 실시예들에서 뷰포트는, 사용자의 전체 메시지 인박스(inbox)를 볼 때 디스플레이될 것처럼, 사용자 계정의 모든 메시지들을 디스플레이할 수 있다. 다른 실시예들에서, 뷰포트는 특정 폴더 또는 서브폴더 내의 모든 메시지들과 같은 사용자 계정 내의 메시지들의 서브세트를 디스플레이할 수 있다. 또 다른 실시예들에서, 뷰포트는 특정 라벨이 부가된 모든 메시지들과 같은 사용자 계정 내의 메시지들의 서브세트를 디스플레이할 수 있다. 추가적인 실시예들에서, 뷰포트는 사용자가 명시적으로 선택한 메시지들에 기초하여 메시지들의 커스텀 서브세트를 디스플레이할 수 있다. 뷰포트의 선택은 중요도 예측 모델(126)에 상기 뷰포트와 연관된 메시지들을 제공한다.
하나의 사용자 계정은 메시지들의 정렬된 목록들을 디스플레이하거나 또는 제시하기 위한 둘 이상의 뷰포트를 생성하기 위해 둘 이상의 중요도 예측 모델(126)을 포함할 수 있다. 각 중요도 예측 모델은 상이한 메시지 품질 신호들을 이용함으로써 또는 하나 이상의 메시지 품질 신호들에 대한 상이한 가중치들에 의해서 특정 메시지에 대해 별개의 중요도 스코어들을 계산하는데 이용될 수 있다. 예를 들어, 하나의 중요도 예측 모델은 사용자가 메시지를 포워딩하는지 여부를 식별하는 신호와 사용자가 메시지에 응답하는지 여부를 식별하는 신호의 조합에 기초할 수 있다. 동일한 사용자 계정은 사용자가 메시지를 판독한 횟수를 나타내는 신호들 및 메시지를 판독하는데 소요된 총 시간을 나타내는 신호의 조합에 기초한 중요도 예측 모델을 포함할 수 있다. 사용자가 동일한 메시지들의 세트(폴더, 검색 결과, 라벨 등)에 각각의 뷰포트 모델을 적용하는 경우, 2개의 뷰포트 모델들은 각 모델에 의해 독립적으로 계산되는 중요도 스코어들에 기초하여 동일한 메시지들의 세트를 다르게 정렬할 수 있다.
몇몇 실시예들에서, 이하 기술되는 메시지들을 정렬하기 위한 메커니즘들은 대화 목록들 내의 대화들에 적용되고, 여기서 각 대화는 미리규정된 기준들에 따라 함께 그룹화된 메시지들의 그룹이다. 예를 들어, 각 대화는 최초 메시지뿐만 아니라 대화 내의 다른 메시지들에 대한 응답들인 하나 이상의 메시지들, 및 메시지들을 포워딩하는 0개 이상의 메시지들 또는 대화 내의 메시지들로부터의 정보를 포함할 수 있다. 몇몇 대화들이 단지 하나의 메시지를 포함할 수 있는 한편, 사용자 계정 내의 대화들의 목록은 전형적으로 각각이 둘 이상의 메시지들을 포함하는 다수의 대화들일 것이다. 몇몇 실시예들에서, 아래에서 기술되는 중요도 예측 모델들 및 뷰포트 기능들은 각 대화 내의 각 메시지에 이러한 메커니즘들을 적용하고 하나 이상의 조합된 중요도 스코어들을 생성함으로써 대화들의 목록 내의 대화들에 적용되고, 이러한 중요도 스코어들은 대화들을 정렬시키는데 이용된다. 대안적으로, 메시지 정렬에 관해 이하 기술되는 메커니즘들은 미리규정된 기준들에 따라(예를 들어, 대화가 N개 이하의 메시지들을 포함할 때 대화 내의 모든 메시지들, 그렇지 않은 경우 대화 내의 마지막 N개의 메시지들, 또는 대화 내의 마지막 메시지 플러스 N-1개의 최장 메시지들 ― 여기서 N은 미리규정된 값(예를 들어, 5)임 ―) 각 대화 내의 메시지들의 서브세트에 적용된다. 대화 목록들을 저장하고 디스플레이하는 이메일 애플리케이션에 관한 추가적인 정보는 미국 특허 출원 공개 2005-0222985 A1에서 찾을 수 있고, 이러한 내용은 참조에 의해 배경 정보로서 본원에 통합된다.
도 2는 중요도 스코어에 의해 정렬되는 메시지들을 생성하고 디스플레이하는 것에 관한 클라이언트 및 서버 간의 상호작용에 대한 흐름도이다. 뷰포트의 선택은 중요도 스코어에 기초하여 메시지들을 정렬하기 위한 사용자 요청(202)을 트리거링한다. 사용자 요청(202)은 중요도 예측 모델들(126)(도 1)에 선택된 뷰포트에 대한 정보를 제공하고 사용자가 보기를 원하는 메시지 데이터 베이스(128) 내의 메시지들의 세트 또는 서브세트들을 규정한다. 예를 들어, 선택된 뷰포트가 사용자 계정 내의 폴더일 때, 사용자 요청(202)은 이러한 폴더에 속하는 메시지들의 서브세트를 식별하는 정보를 포함한다.
몇몇 실시예들에서 뷰포트 선택은, 뷰잉을 위한 메시징 애플리케이션에서 메시지들의 폴더를 선택하는 것과 같이 사용자에 의해 명시적으로 이루어질 수 있다. 다른 실시예들에서 뷰포트 선택은, 메시지 메시지 뷰잉 애플리케이션의 시작 시에 디스플레이하기 위해 중요도-기반 뷰포트를 자동으로 선택하는 클라이언트 디바이스에 의해 자동으로 트리거링될 수 있다.
도 2를 또 참조하면, 서버는 사용자 요청을 수신하고 선택된 뷰포트와 연관된 메시지들의 세트를 식별한다. 서버는 선택된 뷰포트에서 각 메시지에 대한 중요도 스코어를 계산하고(204) 중요도 스코어들에 기초하여 정렬된 메시지 목록을 생성한다(204). 서버는 그 후 클라이언트로 생성된 메시지 목록을 다시 전송하고(206), 이러한 클라이언트는 선택된 뷰포트에서 정렬된 목록을 디스플레이한다(208).
일 실시예에서, 제 2 별개의 클라이언트 디바이스가 중요도 스코어에 의해 정렬되는 메시지 목록에 대한 사용자 요청(210)을 트리거링할 수 있다. 제 2 요청은 제 1 요청(202)과는 별개인 메시지들의 세트에 대한 것이지만 동일한 사용자 계정으로부터의 것일 수 있다. 대안적으로, 제 2 요청은 제 1 요청과 정확히 동일한 메시지들에 대한 것이지만, 제 2 클라이언트로부터 올 수도 있다. 또한, 서버는 선택된 뷰포트에서 각 메시지에 대해 중요도 예측 모델에 따라 중요도 스코어를 계산하고(212) 중요도 스코어들에 기초하여 정렬된 메시지 목록을 생성한다(212). 서버는 204에서와 같이 동일한 중요도 예측 모델을 이용할 수 있거나 제 2 클라이언트 상에서 선택된 클라이언트 뷰포트에 따라 별개의 중요도 예측 모델을 이용할 수 있다. 서버가 정렬된 메시지 목록을 생성한 후(212), 메시지 목록은 요청하는 제 2 클라이언트로 다시 전송된다(214). 제 2 클라이언트는 이후 제 2 클라이언트 상에서 선택된 뷰포트에서 생성된 메시지 목록을 디스플레이한다(216).
사용자 요청들은 사용자에 의한 뷰포트의 수동 선택에 기초할 수 있거나 자동으로 트리거링된 뷰포트 선택에 기초하여 선택될 수 있다. 몇몇 실시예들에서 사용자가 개인용 컴퓨터와 같은 클라이언트 디바이스인 경우, 사용자는 연관된 뷰포트들을 가진 폴더들을 명시적으로 선택하거나 사용자 계정의 임의의 특정 폴더 또는 인박스에 적용될 미리규정된 또는 커스텀 뷰포트를 선택할 수도 있다. 몇몇 실시예들에서, 클라이언트가 PDA 또는 셀 폰을 이용하여 그 또는 그녀의 사용자 계정 내의 메시지들에 액세스하고 있는 경우, 사용자가 메시지들을 보려고 시도할 때 특정 뷰포트가 상기 디바이스와 함께 이용되기 위해 자동으로 선택될 수 있다. 예를 들어, 사용자는 시작 시 자동적으로 특정 뷰포트(예를 들어, 사용자에게 예측된 중요도에 따라 정렬된 메시지들을 디스플레이하는 뷰포트)를 선택하는 셀 폰 또는 모바일 디바이스 상의 클라이언트 애플리케이션을 가질 수 있다.
주기적으로, 각 사용자에 대한 중요도 예측 모델들은 중요도 예측 모델들과 연관된 뷰포트들을 통한(즉, 이를 이용하는 동안) 메시지들과의 최근 사용자 상호작용들에 기초하여 업데이트된다(220). 일 실시예에서, 메시지 상태 데이터베이스(416)는 이하 더 기술되는 것처럼 메시지들과의 사용자 상호작용들을 저장한다. 각 모델은 메시지들에 대한 중요도 스코어들을 계산하기 위해 메시지 품질 신호들의 세트를 적용하기 때문에, 모델들을 업데이트하는 것은 메시지 상태 데이터베이스(416)(이하 기술되는 도 4 참조)로부터 관련 상호작용 신호들을 리트리빙하고 이에 따라 모델에 이러한 신호들을 적용하는 것을 포함한다. 몇몇 실시예들에서, 이러한 프로세스는 정기적인 시간 간격들로, 예를 들어 매일 밤 한 번씩 발생할 수 있는 한편, 다른 실시예들에서 이러한 프로세스는 다소 빈번하게 발생할 수 있다. 몇몇 실시예들에서, 각 모델은 동일한 사용자 계정 내의 다른 모델들이 업데이트되는 시기와 독립적인 시간에 업데이트될 수 있다(각 모델과 연관된 뷰포트를 통한(즉, 이를 이용하는 동안) 메시지들과의 사용자 상호작용들에 기초하여).
몇몇 실시예들에서, 중요도 예측 모델들(126)은 다수의 사용자 계정들로부터 메시지 상호작용 신호들을 수집할 수 있다. 모델들은 개별 사용자들에 대해 메시지 중요도의 가장 강한 지시자(indicator)들을 결정하도록 시간에 걸쳐 적응한다. 다수의 사용자들로부터 사용자 상호작용 신호들을 수집하는 것은 중요도 예측 모델(126)을 설립하는 또 다른 수단을 제공한다. 모델은 다수의 사용자들에 대해 메시지 상태 데이터베이스(416)에 저장된 관련 상호작용 신호들을 리트리빙하고 이에 따라 모델에 이러한 신호들을 적용함으로써 스스로 업데이트할 수 있다.
도 3은 뷰포트들에서 중요 메시지들의 생성 및 디스플레이에 관한 클라이언트 및 서버 간의 상호작용들에 대한 또 다른 실시예의 흐름도이다. 제 1 클라이언트 디바이스에서의 사용자 동작은 중요도 스코어 기반 메시지 목록에 대한 사용자 요청(302)을 트리거링한다. 서버는 304에서 제 1 요청을 수신하고, 예측 모델에 따라 각 메시지에 대해 중요도 스코어들을 계산하며, 정렬된 메시지 목록을 생성한다. 그 후 서버는 클라이언트로 생성된 메시지 목록을 다시 전송하고(306), 이러한 클라이언트는 선택된 메시지 뷰포트에서 상기 목록을 디스플레이한다(308).
일 실시예에서, 별개의 중요도 예측 모델을 이용하는, 이전 단계에서 이용되는 것과는 상이한 뷰포트에 대한 제 2 요청을 동일한 클라이언트가 트리거링할 수 있다(310). 제 2 요청은 또한 제 1 요청(302)에 의해 요청되는 것들과는 상이한 메시지들의 세트에 대한 것일 수 있다. 예를 들어, 제 2 요청(310)은 제 1 요청(302)에서 선택된 것과는 상이한 메시지 폴더에 대한 것일 수 있다.
서버는 312에서 제 2 요청을 수신하고, 예측 모델에 따라 각 메시지에 대한 중요도 스코어들을 계산하며, 정렬된 메시지를 생성한다. 그러나 여기서 서버는 선택된 클라이언트 뷰포트와 연관된 중요도 예측 모델을 이용한다. 이러한 모델은 단계(304)에서와 동일한 중요도 예측 모델일 수 있거나 모델은 이전의 중요도 예측 모델과는 상이할 수 있다. 몇몇 실시예들에서, 사용자는 다수의 폴더들에 동일한 중요도 예측 모델을 연관시킬 수 있다. 그러한 시나리오에서, 서버는 제 1 요청(302) 및 제 2 요청(310)과 연관된 상이한 메시지 목록들에 동일한 중요도 예측 모델을 적용할 것이다.
서버가 312에서 현재 메시지 목록을 생성한 후, 서버는 정렬된 메시지 목록을 요청하는 클라이언트로 다시 전송한다. 요청하는 클라이언트는 이후 클라이언트에서의 각 메시지 뷰포트에서 이러한 정렬된 메시지 목록(316)을 디스플레이한다.
몇몇 실시예들에서, 사용자는 상이한 클라이언트들 상의 유사한 뷰포트에서 동일한 세트 메시지들에 상이한 중요도 예측 모델들을 적용하기를 원할 수 있다. 예를 들어, 사용자는 집 또는 직장에 있는 동안 그의 계정에서 특정 폴더 내의 중요 메시지들을 보기를 원할 수 있다. 예를 들어 직장에 있는 동안 사용자에게 중요한 메시지들은 집에 있는 동안 사용자에게 중요한 메시지들과 다를 수 있다. 이러한 시나리오에서, 상이한 클라이언트들 상의 유사한 뷰포트들로부터 동일한 폴더를 선택하는 것은 동일한 메시지들 중 적어도 일부에 상이한 중요도 예측 모델들을 적용함으로써 메시지들을 다르게 정렬할 것이다.
몇몇 실시예들에서, 사용자 위치 컨택스트 정보는 사용자의 물리적 위치(예를 들어, 집, 직장, 차량 등)를 기술할 수 있고, 추가적으로 현재 시각을 기술할 수 있다. 이러한 물리적 위치 정보는 사용자에 의해 직접 규정되고 선택될 수 있다. 예를 들어, 사용자는 각 위치 또는 시각에 대해 상이한 프로파일들을 생성할 수 있다. 그 다음 각 프로파일은 상이한 뷰포트, 따라서 중요도 예측 모델들과 연관된다. 클라이언트의 물리적 위치는 주지의 위치정보(positioning) 기술들, 예를 들어 지구 위치정보 시스템(GPS)을 이용하여 자동으로 결정될 수 있다. 예를 들어, 사용자의 셀룰러-폰은 사용자의 현재 위치정보 위치에 기초하여 사용자가 집에 있는 시기를 알 수 있고, 그 후 사용자의 메시지들에 적절한 뷰포트 및 중요도 예측 모델을 연관시킬 수 있다.
다시 도 3을 참조하면, 제 2 사용자 요청(310)은 또한 사용자 위치를 서버에 제공할 수 있다. 서버는 제 2 요청(310)의 수신 시에 적절한 중요도 예측 모델을 선택하기 위해 이러한 위치 정보를 이용한다. 위에서 기술된 것처럼 서버는 그 후 계속하여 메시지 목록을 생성한다(312). 사용자 위치가 중요도 예측 모델을 선택하는데 도움이 될 수 있게 함으로써 사용자는 동일한 메시지 세트와 다수의 중요도 예측 모델들을 연관시킬 수 있다.
도 4는 중요도 정렬된 메시지 목록을 생성하기 위한 프로세스의 흐름도이다. 402에서 중요도 정렬된 메시지 목록을 생성하기 위한 사용자 질의가 서버에 의해 수신된다. 404에서 사용자 질의는 전문 인덱스에 대해 이루어진다. 그 후 메시지 목록은 사용자 질의에 응답하여 404에서 리트리빙된다. 결과적인 메시지 목록은 개별 메시지 중요도 스코어들을 결정하는 뷰포트 기능(408)으로 입력되고 410에서 정렬된 메시지 목록을 생성한다.
몇몇 실시예들에서, 클라이언트가 뷰포트에 관한 메시지들의 특정 세트를 식별할 수 있기 때문에 프로세스는 메시지 목록(406)에서 시작할 수 있다. 이러한 경우 질의(402) 및 전문 인덱스(404)는 뷰포트 기능(408)으로의 입력을 위해 메시지 목록(406)을 결정하는데 요구되지 않을 수 있다. 예를 들어, 사용자가 사용자 계정에서 폴더와 연관된 뷰포트를 선택하는 경우, 이러한 폴더에 대한 메시지들은 메시지 데이터베이스(128)에 저장된 정보를 이용하여 결정될 수 있고, 이러한 경우 메시지 목록(406)을 생성하기 위해 전문 인덱스 검색이 요구되지 않는다.
몇몇 실시예들에서, 뷰포트 기능(408)은 하나 이상의 중요도 예측 모델들, 컨택 목록(412), 메시지 데이터베이스(128), 및 메시지 상태 데이터베이스(416)의 이용을 통해 메시지 목록(406) 내의 각 메시지에 대해 중요도 스코어를 결정한다. 메시지 상태 데이터베이스(416)는 메시지가 판독되었는지 아닌지를 나타내는 정보를 포함하는 상태 정보를 저장한다. 메시지 상태 데이터베이스(416)는 또한 다음 중 하나 이상과 같은 다른 상태 정보를 저장할 수 있다: 각 메시지를 열어보거나 판독한 횟수, 사용자가 판독을 위해 메시지를 열린 상태로 유지하는 시간의 양, 사용자가 메시지에 응답한 횟수, 사용자가 메시지를 포워딩한 횟수 등. 모델들은 각 메시지들에 대해 중요도 스코어를 계산하기 위해 컨택 목록(412)과 협력하여 이용될 수 있다. 컨택 목록(412)은 이후 기술될 것처럼 중요한 사용자들을 식별하는데 도움이 되는 다른 메시지 참가자들에 대한 친화도(affinity) 스코어들을 유지한다. 친화도 스코어들은 사용자의 컨택 목록(412) 내의 컨택들(예를 들어, 사람들, 회사들 등)에 의해 전송되는 메시지들의 중요도 스코어들을 부스트(boost)시키기 위해 각 중요도 예측 모델에 의해 이용될 수 있다. 예를 들어, 사용자의 컨택 목록에서 높은 친화도 스코어들을 가진 컨택들로부터의 메시지들은 보다 낮은 친화도 스코어를 가진 컨택들로부터의 메시지들 및 사용자의 컨택 목록에 나열되지 않은 사람들 또는 엔티티들로부터의 메시지들보다 더 큰 중요도 스코어 부스트를 수신할 수 있다. 이러한 정보는 뷰포트 기능에 의해 이용되는 중요도 예측 모델에 의해 수행되는 중요도 스코어 계산의 다른 부분들과 뷰포트 기능(408)에서 결합될 수 있다.
도 5a는 몇몇 양상들에 따라 사용자 계정 데이터베이스(130)(도 1)에서의 예시적인 사용자 계정 레코드(502)를 도시한다. 사용자 계정 레코드(502)와 연관될 수 있는 정보의 일부는 메시지 데이터베이스(128)(도 1), 메시지 상태 데이터베이스(416)(도 4), 전문 인덱스(404)(도 4), 및 컨택 목록(412)(도 4)을 포함한다. 이러한 정보의 일부는 별개의 사용자 데이터베이스들에 저장될 수 있거나, 몇몇 실시예들에서 모든 사용자들에 대해 단일한 데이터베이스에 저장될 수 있다.
도 5b는 몇몇 양상들에 따라 메시지 데이터베이스(128)에서의 예시적인 메시지 레코드(510)를 도시한다. 메시지 레코드(510)는 메시지를 고유하게 식별하는 메시지 식별자(512)를 포함한다. 몇몇 실시예들에서, 메시지 식별자(512)는 하나의 메시지와 연관된다. 몇몇 실시예들에서, 메시지 식별자(512)는 대화를 포함하는 메시지들의 그룹과 연관된다. 메시지(510)와 연관될 수 있는 정보 중 일부는 메타데이터(514), 헤더 정보(520), 및 컨텐츠(530)를 포함한다.
몇몇 실시예들에서, 메타데이터(514)는 라벨 또는 폴더(516) 할당들 및 타임스탬프(518)와 같은 메시지와 관련된 정보를 포함한다. 메시지 데이터베이스(128) 내의 각 메시지는 사용자 계정에서 폴더에 할당될 수 있다. 부가적으로, 사용자는 사용자 계정 내의 임의의 메시지에 하나 이상의 라벨들(128)을 적용할 수 있다. 타임스탬프(518)는 사용자 계정에 의해 메시지가 수신된 시간을 나타내는 정보를 제공한다. 타임스탬프(518)는 이러한 메시지와 상호작용하는데 소요되는 사용자의 시간을 계산하는데 가치가 있을 수 있다.
헤더 정보(520)는 예를 들어 발신자(524) 및 수신자들(522), 메시지의 메시지 수신 날짜 및 시간 값(때때로 날짜 값 또는 시간 값이라 지칭됨), 및 제목(528)을 식별하는 정보를 포함하는 메시지의 헤더 정보를 포함할 수 있다. 다른 정보는 또한 참조에 의해 본원에 통합되는 RFC 2822에 기술된 것과 같이 헤더 정보에 포함될 수 있다. 메시지 컨텐츠(530)는 메시지의 컨텐츠를 포함할 수 있다. 컨텐츠(530)는 텍스트, 이미지들, 및 첨부들을 포함할 수 있다. 당업자는 메시지 정보를 저장하기 위한 다른 방법들을 인식할 것이다. 예를 들어, 첨부는 또 다른 저장 구조에 저장될 수 있고 그것에 대한 참조가 메시지(510) 내에 위치될 수 있다.
도 5c는 몇몇 실시예들에 따라 메시지 상태 데이터베이스(416)에서의 예시적인 메시지 상태 레코드(534)를 도시한다. 각 메시지 상태 레코드(534)는 메시지 또는 대화 식별자 및 메시지 데이터베이스(128) 내의 단일 메시지에 대한 상태 정보의 세트를 포함한다. 몇몇 실시예들에서, 상태 정보는 하나 이상의 타임스탬프들(536) 및 대표적인 메시지에 대해 트랙킹되는 다양한 사용자 상호작용들을 나타내는 필드들의 세트를 포함한다. 하나 이상의 타임스탬프들(536)이 다양한 메시지 상호작용들을 수행하는데 사용자에 의해 소비되는 시간의 길이를 나타내는 메시지 품질 신호들을 계산하는데 이용될 수 있다. 예를 들어, 하나의 타임스탬프는 사용자가 메시지를 판독한 최초 시간을 식별할 수 있는 한편 또 다른 타임스탬프는 사용자가 메시지를 판독한 가장 최근의 시간을 식별할 수 있다. 제 1 타임스탬프는 메시지의 수신과 사용자의 메시지 판독 간의 지연을 결정하는데 이용될 수 있다. 제 2 타임스탬프는 사용자에 의한 메시지의 판독들 간의 시간 길이를 결정하는데 이용될 수 있다.
메시지 상태 레코드(534) 내의 레코드 필드들의 세트는 중요도 예측 모델들(126)에 의해 이용되는 메시지 품질 신호들에 상호연관된다. 예를 들어, 이러한 필드들의 세트는 특정 메시지가 판독되었는지에 대한 상태, 메시지가 판독된 횟수의 카운트, 및 사용자가 메시지를 판독하는데 걸린 총 시간 값을 포함할 수 있다. 이러한 필드들의 세트는 또한 메시지가 포워딩되었는지 여부 또는 메시지에 응답했는지 여부와 같은 다른 메시지 품질 신호 지시자들을 포함할 수 있다.
도 5d는 몇몇 실시예들에 따라 컨택 목록(412)(도 4)에서의 예시적인 컨택 엔트리(564)를 도시한다. 각 컨택 엔트리(564)는 사용자가 위에서 규정된 것과 같은 메시지들을 이용하여 통신하거나 통신할 수 있는 하나의 컨택을 나타낼 수 있다. 각 컨택 엔트리(564)는 컨택(566)의 명칭에 관한 정보, 컨택(568)의 이메일 컨택 정보, 전화 컨택 정보(570), 및 컨택에 대한 하나 이상의 친화도 스코어들(572)을 포함한다. 하나 이상의 친화도 스코어들(572)은 메시지들에 대한 중요도 스코어들을 계산하는 것과 관련하여 특정 컨택에 대한 사용자 친화도의 수치적(numerical) 표현을 제공한다. 일 실시예에서, 친화도 스코어들은 사용자의 컨택 목록에 나열된 컨택(예를 들어, 사람, 회사 또는 다른 엔티티)로부터 수신된 메시지에 할당된 중요도 스코어에 영향을 미칠 수 있다. 몇몇 실시예들에서, 각 친화도 스코어(572)는 컨택과 사용자 간의 통신 활동의 양을 나타낸다. 친화도 스코어에 대한 공헌들은(예를 들어, 각 컨택으로 전송되거나 각 컨택에 의해 전송된 통신들은) 시간 가중될 수 있어, 보다 최근의 공헌들이 더 오래된 공헌들보다 더 크게 가중된다.
몇몇 양상들에서, 클라이언트 디바이스의 유형 및 시각은 친화도 스코어(572)와 연관된 가중치에 영향을 미칠 수 있는데 이는 그것이 하나 이상의 중요도 예측 모델들에 의해 적용되기 때문이다. 예를 들어, 사용자가 업무 시간 동안 그의 업무 PDA 상에서 메시지들을 보고 있는 경우, 관리자를 나타내는 컨택 엔트리(564)에 대한 친화도 스코어(572)는 사용자가 주말에 그의 집 개인용 컴퓨터에서 메시지들을 보고 있는 경우보다 더 큰 가중치를 할당받을 수 있다. 대안적으로 말하여, 이러한 2개의 컨택스트들에 이용되는 뷰포트들은 각각의 친화도 스코어(572)에 상이한 가중치들을 할당할 수 있다.
도 6은 클라이언트 디바이스(600)의 블록도이다. 몇몇 실시예들에서, 디바이스(600)는 하나 이상의 처리 장치들(CPU들)(602); 하나 이상의 네트워크 또는 다른 통신 인터페이스들(604); 메모리(606); 사용자 인터페이스(610)(이는 디스플레이(612) 및 사용자 입력 디바이스(614)를 포함할 수 있음) 및 이러한 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(608)을 포함한다. 통신 버스들(608)은 시스템 컴포넌트들 간에서 상호연결하고 이들 간의 통신들을 제어하는 회로부(때때로 칩셋이라 지칭됨)를 포함할 수 있다. 메모리(606)는 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스들과 같은 고속 랜덤 액세스 메모리를 포함하고, 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비-휘발성 솔리드 스테이트 저장 디바이스들과 같은 비-휘발성 메모리를 포함할 수도 있다. 메모리(606), 또는 대안적으로 메모리(606) 내의 비-휘발성 메모리 디바이스(들)는 컴퓨터 판독가능 저장 매체를 포함한다. 몇몇 실시예들에서, 메모리(606)는 중앙 처리장치(들)(602)로부터 원격으로 위치되는 대용량 저장소를 포함한다. 몇몇 실시예들에서 또한 메모리(606)는 다음의 프로그램들, 모듈들, 및 데이터 구조들, 또는 이들의 서브세트를 저장한다:
다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 프로시저들을 포함하는 운영 체제(616);
인터넷, 다른 광역 네트워크들, 로컬 영역 네트워크들, 대도시 영역 네트워크들 등과 같은 하나 이상의 통신 네트워크들(104)(도 1) 및 하나 이상의 통신 네트워크 인터페이스들(604)(유선 또는 무선)을 통해 다른 컴퓨터들로 클라이언트 디바이스(600)를 연결시키기 위해 이용되는 통신 모듈(618);
중요도 스코어-기반 메시지 목록(622)의 디스플레이를 포함하여, 뷰포트들에서 메시지들을 보고 메시지들과 상호작용하기 위한 클라이언트 애플리케이션(620); 및
다른 선택적인 클라이언트 애플리케이션들(624).
도 7은 본원 발명의 일 실시예에 따른 메시지 서버(700)를 도시하는 블록도이다. 몇몇 실시예들에서, 메시지 서버(700)는 하나 이상의 처리 장치들(CPU들)(702); 하나 이상의 네트워크 또는 다른 통신 인터페이스들(704); 메모리(706); 이러한 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(708)을 포함한다. 메모리(706)는 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스들과 같은 고속 랜덤 액세스 메모리를 포함하고, 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비-휘발성 솔리드 스테이트 저장 디바이스들과 같은 비-휘발성 메모리를 포함할 수도 있다. 메모리(706), 또는 대안적으로 메모리(706) 내의 비-휘발성 메모리 디바이스(들)는 컴퓨터 판독가능 저장 매체를 포함한다. 몇몇 실시예들에서, 메모리(706)는 중앙 처리장치(들)(702)로부터 원격으로 위치되는 대용량 저장소를 포함한다. 몇몇 실시예들에서 또한 메모리(706)는 다음의 프로그램들, 모듈들, 및 데이터 구조들, 또는 이들의 서브세트를 저장한다:
다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 프로시저들을 포함하는 운영 체제(716);
인터넷, 다른 광역 네트워크들, 로컬 영역 네트워크들, 대도시 영역 네트워크들 등과 같은 하나 이상의 통신 네트워크들(104)(도 1) 및 하나 이상의 통신 네트워크 인터페이스들(704)(유선 또는 무선)을 통해 다른 컴퓨터들로 메시지 서버(700)를 연결시키기 위해 이용되는 네트워크 통신 모듈(712);
사용자 계정 정보; 메시지 데이터베이스(130), 메시지 상태 데이터베이스(416), 전문 인덱스(406), 및 사용자 컨택 목록(412)을 포함하는 사용자 계정 데이터베이스(130);
사용자 질의들(예를 들어, 하나 이상의 메시지들의 컨텐츠 내에 위치될 수 있는 워드들 또는 용어들을 특정하는 질의들 및/또는 하나 이상의 메시지들과 연관될 수 있는 메타데이터 값들(예를 들어, 날짜, 폴더, 라벨, 발신자 명칭, 참가자 명칭 등)을 특정하는 하나 이상의 질의들)에 기초하여 메시지 목록 결과들을 제공하는데 이용되는 검색 엔진(122);
메시지들과 연관되는 중요도 스코어들에 기초하여 메시지들을 정렬하기 위한 기능을 제공하는 검색 결과 랭커(124);
메시지들에 대해 중요도 스코어들을 생성하는데 이용되는 하나 이상의 중요도 예측 모델들(126);
정렬의 목적 및 클라이언트들로 전송의 목적을 위해 서버에서 생성되는 메시지 목록들(730); 및
메시지 품질 신호들을 처리하고 이에 따라 모델들을 업데이트하는 중요도 예측 모델들에 대한 업데이터 모듈(732).
상기 엘리먼트들 각각은 이전에 언급된 메모리 디바이스들 중 하나 이상에 저장될 수 있고 상기 기능을 수행하는 명령들의 세트에 대응한다. 상기 모듈들 또는 프로그램들(즉, 명령들의 세트들)은 별개 소프트웨어 프로그램들, 프로시저들 또는 모듈들로서 구현될 필요가 없고, 따라서 이러한 모듈들의 다양한 서브세트들은 다양한 실시예들에서 결합되거나 그렇지 않으면 재배열될 수 있다. 몇몇 실시예들에서, 메모리(706)는 상기 모듈들 및 데이터 구조들의 서브세트를 저장할 수 있다. 또한 메모리(706)는 위에서 기술되지 않은 추가적인 모듈들 및 데이터 구조들을 저장할 수 있다.
도 7은 "메시지 서버"를 도시하지만, 도 7은 본원에서 기술되는 실시예들의 구조적 개략도라기보다는 서버들의 세트에서 존재할 수 있는 다양한 특징들에 대한 기능적 설명으로서 의도된다. 실질적으로, 그리고 당업자에 의해 인식될 것처럼, 분리되어 도시된 아이템들은 결합될 수 있고 몇몇 아이템들은 분리될 수 있다. 예를 들어, 도 7에서 분리되어 도시된 몇몇 아이템들은 단일 서버들 상에서 구현될 수 있고 단일 아이템들이 하나 이상의 서버들에 의해 구현될 수 있다. 메시지 서버를 구현하는데 이용되는 서버들의 실제 수 및 그들 사이에서 특징들이 어떻게 할당되는지는 실시예마다 달라질 것이고, 평균 사용량 기간들 동안뿐만 아니라 피크 사용량 기간들 동안 시스템이 처리해야 하는 데이터 트래픽의 양에 부분적으로 의존할 수 있다.
설명의 목적을 위해 상기 설명은 특정 실시예들을 참조하여 기술되었다. 그러나 상기 예시적인 논의들은 빠짐 없거나(exhaustive) 개시되는 정확한 형태들로 본 발명을 제한하도록 의도되지는 않는다. 많은 수정들 및 변형들이 상기 교시들의 관점에서 가능하다. 실시예들은 본 발명의 원칙들 및 이들의 실제적인 응용들을 가장 잘 설명하도록 선택되고 기술되었으며, 이에 의해 당업자는 예상되는 특정 용도에 적합한 다양한 수정들을 이용하여 본 발명 및 다양한 실시예들을 최상으로 이용할 수 있을 것이다.

Claims (24)

  1. 메시지들을 디스플레이하기 위한 방법으로서,
    제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 상기 제 1 클라이언트 디바이스에서 디스플레이하는 단계 ― 상기 제 1 서브세트는 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
    제 2 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 상기 제 2 클라이언트 디바이스에서 디스플레이하는 단계 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―
    를 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 포함하고,
    상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
    메시지들을 디스플레이하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 제 1 사용자 동작은 상기 제 1 클라이언트 디바이스에서 제 1 뷰포트(viewport)의 사용자 선택인,
    메시지들을 디스플레이하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 제 1 사용자 동작은 상기 제 1 클라이언트 디바이스에서 메시징 애플리케이션의 사용자 선택인,
    메시지들을 디스플레이하기 위한 방법.
  4. 제 1 항에 있어서,
    메시지 품질 신호들의 제 1 세트에 기초하여 상기 제 1 다수의 메시지들의 상기 제 1 서브세트 내의 각 메시지에 대해 상기 제 1 중요도 스코어를 계산하는 단계; 및
    메시지 품질 신호들의 제 2 세트에 기초하여 상기 제 2 다수의 메시지들의 상기 제 2 서브세트 내의 각 메시지에 대해 제 2 각각의 메시지 중요도 스코어를 계산하는 단계
    를 포함하는, 메시지들을 디스플레이하기 위한 방법.
  5. 제 4 항에 있어서,
    상기 계산하는 동작들은 상기 제 1 및 제 2 클라이언트 디바이스들로부터 원격인 서버에서 수행되는,
    메시지들을 디스플레이하기 위한 방법.
  6. 제 4 항에 있어서,
    각 메시지에 대해, 상기 메시지 품질 신호들의 제 1 및 제 2 세트들은 각각:
    상기 사용자가 상기 메시지를 판독했는지 여부를 식별하는 신호;
    상기 메시지의 수신시로부터 상기 사용자가 상기 메시지를 판독한 최초 시간까지의 지연 시간을 식별하는 신호;
    상기 사용자가 상기 메시지에 응답했는지 여부를 식별하는 신호;
    상기 사용자가 상기 메시지를 포워딩했는지 여부를 식별하는 신호;
    상기 사용자가 상기 메시지를 순서에 맞지 않게(out of order) 판독하는지 여부를 식별하는 신호;
    상기 사용자가 상기 메시지를 판독하는데 걸린 총 시간을 나타내는 신호;
    상기 사용자가 상기 메시지에 대한 탐색을 수행했는지 여부를 식별하는 신호;
    상기 사용자가 상기 메시지를 판독한 횟수를 나타내는 신호; 및
    상기 메시지의 또 다른 참가자(participant)에 대한 상기 사용자의 친화도(affinity)를 나타내는 신호
    중 하나 이상을 포함하는, 메시지들을 디스플레이하기 위한 방법.
  7. 제 6 항에 있어서,
    상기 제 1 중요도 예측 모델과 연관되는 뷰포트를 이용하면서 상기 사용자 계정에서 메시지들과의 사용자 상호작용들에 따라 상기 메시지 품질 신호들의 제 1 세트 내의 메시지 품질 신호들의 멤버십 및 가중치(weight)들을 결정하기 위해 기계 학습(machine learning)을 이용하여 상기 제 1 중요도 예측 모델을 업데이트하는 단계를 포함하는,
    메시지들을 디스플레이하기 위한 방법.
  8. 제 7 항에 있어서,
    상기 제 2 중요도 예측 모델과 연관되는 뷰포트를 이용하면서 상기 사용자 계정에서 메시지들과의 사용자 상호작용들에 따라 상기 메시지 품질 신호들의 제 2 세트 내의 메시지 품질 신호들의 멤버십 및 가중치들을 결정하기 위해 기계 학습을 이용하여 상기 제 2 중요도 예측 모델을 업데이트하는 단계를 포함하는,
    메시지들을 디스플레이하기 위한 방법.
  9. 제 6 항에 있어서,
    상기 제 1 중요도 예측 모델과 연관되는 뷰포트를 이용하면서 다수의 사용자 계정들에서 메시지들과의 사용자 상호작용들에 따라 상기 메시지 품질 신호들의 제 1 세트 내의 메시지 품질 신호들의 멤버십 및 가중치들을 결정하기 위해 기계 학습을 이용하여 상기 제 1 중요도 예측 모델을 업데이트하는 단계를 포함하는,
    메시지들을 디스플레이하기 위한 방법.
  10. 제 9 항에 있어서,
    상기 제 2 중요도 예측 모델과 연관되는 뷰포트를 이용하면서 상기 다수의 사용자 계정들에서 메시지들과의 사용자 상호작용들에 따라 상기 메시지 품질 신호들의 제 2 세트 내의 메시지 품질 신호들의 멤버십 및 가중치들을 결정하기 위해 기계 학습을 이용하여 상기 제 2 중요도 예측 모델을 업데이트하는 단계를 포함하는,
    메시지들을 디스플레이하기 위한 방법.
  11. 제 4 항에 있어서,
    상기 메시지 품질 신호들의 제 1 세트는 날짜 및 시간 신호 이외에 적어도 하나의 신호를 포함하는,
    메시지들을 디스플레이하기 위한 방법.
  12. 제 4 항에 있어서,
    상기 메시지 품질 신호들의 제 2 세트는 날짜 및 시간 신호 이외에 적어도 하나의 신호를 포함하는,
    메시지들을 디스플레이하기 위한 방법.
  13. 제 1 항에 있어서,
    상기 제 2 다수의 메시지들은 상기 제 1 다수의 메시지들 내의 메시지들의 서브세트를 적어도 포함하는,
    메시지들을 디스플레이하기 위한 방법.
  14. 제 1 항에 있어서,
    상기 제 1 다수의 메시지들은 (A) 상기 사용자 계정의 제 1 미리규정된 폴더 내의 메시지들, 및 (B) 제 1 라벨로 라벨링되는 메시지들로 이루어진 그룹에서 선택되는 메시지들을 포함하고; 그리고
    상기 제 2 다수의 메시지들은 (A) 상기 사용자 계정의 제 2 미리규정된 폴더 내의 메시지들, 및 (B) 제 2 라벨로 라벨링되는 메시지들로 이루어진 그룹에서 선택되는 메시지들을 포함하는,
    메시지들을 디스플레이하기 위한 방법.
  15. 메시지들을 디스플레이하기 위한 방법으로서,
    클라이언트 디바이스에서:
    상기 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 제 1 클라이언트 디바이스에서 디스플레이하는 단계 ― 상기 제 1 서브세트는 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
    상기 제 1 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 상기 제 1 클라이언트 디바이스에서 디스플레이하는 단계 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―
    를 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각각 단일 사용자 계정에서의 메시지들을 포함하며,
    상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
    메시지들을 디스플레이하기 위한 방법.
  16. 메시지들을 디스플레이하기 위한 방법으로서,
    제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하는 단계 ― 상기 제 1 서브세트의 목록은 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
    제 2 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 나열하는 정보를 상기 제 2 클라이언트 디바이스로 전송하는 단계 ― 상기 제 2 서브세트의 목록은 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―;
    를 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
    상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
    메시지들을 디스플레이하기 위한 방법.
  17. 메시지들을 디스플레이하기 위한 방법으로서,
    제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하는 단계 ― 상기 제 1 서브세트의 목록은 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
    상기 제 1 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하는 단계 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―;
    를 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
    상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
    메시지들을 디스플레이하기 위한 방법.
  18. 하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 프로그램들은:
    제 1 클라이언트 디바이스에서,
    상기 제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 상기 제 1 클라이언트 디바이스에서 디스플레이하고 ― 상기 제 1 서브세트는 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 그리고
    상기 제 1 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 상기 제 1 클라이언트 디바이스에서 디스플레이하기 위한 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―
    명령들을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각각 단일 사용자 계정에서의 메시지들을 포함하며,
    상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
    하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체.
  19. 하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 프로그램들은:
    제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하고 ― 상기 제 1 서브세트의 목록은 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 그리고
    제 2 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 나열하는 정보를 상기 제 2 클라이언트 디바이스로 전송하기 위한 ― 상기 제 2 서브세트의 목록은 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―;
    명령들을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
    상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
    하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체.
  20. 하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 프로그램들은:
    제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하고 ― 상기 제 1 서브세트의 목록은 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 그리고
    상기 제 1 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하기 위한 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―;
    명령들을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
    상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
    하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체.
  21. 메시지들을 디스플레이하기 위한 시스템으로서,
    메모리;
    하나 이상의 프로세서들; 및
    상기 메모리에 저장되고 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되는 하나 이상의 모듈들
    을 포함하고, 상기 모듈들은:
    제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 상기 제 1 클라이언트 디바이스에서 디스플레이하고 ― 상기 제 1 서브세트는 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 그리고
    제 2 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 상기 제 2 클라이언트 디바이스에서 디스플레이하기 위한 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―
    명령들을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
    상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
    메시지들을 디스플레이하기 위한 시스템.
  22. 클라이언트 디바이스로서,
    메모리;
    하나 이상의 프로세서들; 및
    상기 메모리에 저장되고 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되는 하나 이상의 모듈들
    을 포함하고, 상기 하나 이상의 모듈들은:
    상기 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 상기 클라이언트 디바이스에서 디스플레이하기 위한 명령들 ― 상기 제 1 서브세트는 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
    상기 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 상기 클라이언트 디바이스에서 디스플레이하기 위한 명령들 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―
    을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각각 단일 사용자 계정에서의 메시지들을 포함하며,
    상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
    클라이언트 디바이스.
  23. 서버 시스템으로서,
    메모리;
    하나 이상의 프로세서들; 및
    상기 메모리에 저장되고 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되는 하나 이상의 모듈들
    을 포함하고, 상기 하나 이상의 모듈들은:
    제 1 클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 나열하는 정보를 상기 제 1 클라이언트 디바이스로 전송하기 위한 명령들 ― 상기 제 1 서브세트의 목록은 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
    제 2 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 나열하는 정보를 상기 제 2 클라이언트 디바이스로 전송하기 위한 명령들 ― 상기 제 2 서브세트의 목록은 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―;
    을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
    상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
    서버 시스템.
  24. 서버 시스템으로서,
    메모리;
    하나 이상의 프로세서들; 및
    상기 메모리에 저장되고 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되는 하나 이상의 모듈들
    을 포함하고, 상기 하나 이상의 모듈들은:
    클라이언트 디바이스에서의 제 1 사용자 동작에 응답하여, 제 1 다수의 메시지들의 제 1 서브세트를 나열하는 정보를 상기 클라이언트 디바이스로 전송하기 위한 명령들 ― 상기 제 1 서브세트의 목록은 제 1 중요도 예측 모델을 이용하여 계산되는 제 1 중요도 스코어에 의해 정렬됨 ―; 및
    상기 클라이언트 디바이스에서의 제 2 사용자 동작에 응답하여, 제 2 다수의 메시지들의 제 2 서브세트를 나열하는 정보를 상기 클라이언트 디바이스로 전송하기 위한 명령들 ― 상기 제 2 서브세트는 제 2 중요도 예측 모델을 이용하여 계산되는 제 2 중요도 스코어에 의해 정렬됨 ―;
    을 포함하고, 상기 제 1 및 제 2 다수의 메시지들은 각 사용자의 단일 사용자 계정에서의 메시지들을 각각 포함하며,
    상기 제 1 및 제 2 중요도 예측 모델들은 상이한,
    서버 시스템.
KR1020117005897A 2008-08-14 2009-08-07 상이한 순서들로 메시지들을 제시하기 위한 다수의 뷰포트들을 가진 메시징 애플리케이션 KR101413700B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/192,055 2008-08-14
US12/192,055 US8185492B2 (en) 2008-08-14 2008-08-14 Messaging application with multiple viewports for presenting messages in different orders
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 (ko) 2011-05-25
KR101413700B1 KR101413700B1 (ko) 2014-06-30

Family

ID=41669591

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117005897A KR101413700B1 (ko) 2008-08-14 2009-08-07 상이한 순서들로 메시지들을 제시하기 위한 다수의 뷰포트들을 가진 메시징 애플리케이션

Country Status (6)

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

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 (ko) * 2015-07-29 2019-11-22 구글 엘엘씨 개인적 엔티티들을 모델링

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
CN1221912C (zh) * 2000-03-16 2005-10-05 微软公司 优先权的产生与管理
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
WO2004030296A1 (en) * 2002-09-30 2004-04-08 Corposoft Ltd. Method and devices for prioritizing electronic messages
US20050076110A1 (en) * 2003-07-11 2005-04-07 Boban Mathew Generic inbox system and method
US7814545B2 (en) * 2003-07-22 2010-10-12 Sonicwall, Inc. Message classification using classifiers
US20050204009A1 (en) * 2004-03-09 2005-09-15 Devapratim Hazarika System, method and computer program product for prioritizing messages
US20050203929A1 (en) * 2004-03-09 2005-09-15 Devapratim Hazarika System, method and computer program product for prioritizing contacts
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 (ko) * 2015-07-29 2019-11-22 구글 엘엘씨 개인적 엔티티들을 모델링

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101413700B1 (ko) 상이한 순서들로 메시지들을 제시하기 위한 다수의 뷰포트들을 가진 메시징 애플리케이션
US11190474B2 (en) Method and system for collecting and presenting historical communication data for a mobile device
KR101031942B1 (ko) 접속 소스들로부터 수집된 접속 정보를 찾아내는 시스템 및방법
US10963524B2 (en) Self populating address book
JP5960215B2 (ja) モバイルメッセージングアプリケーションの優先受信箱通知及び同期
JP5204774B2 (ja) ソーシャルネットワーク環境において動的に選択されたメディアコンテンツを電子デバイスのユーザに提供するシステムおよび方法
KR20060094853A (ko) 복수의 접속 소스들로부터 접속 정보를 통합하는 시스템 및방법
US7543032B2 (en) Method and apparatus for associating messages with data elements
JP2012502385A (ja) アフィニティ基準に基づくサーチ結果のランク付
CN102385615A (zh) 收集和呈现信息
JP2005514705A (ja) 強化された電子メール管理システム
JP2008052422A (ja) プレゼンス検索装置、メッセージ送信システム
US9105045B1 (en) System, method, and computer program product for altering an experience of a user, based on information associated with a party to a communication associated with the user
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