KR20180043392A - 어플리케이션들을 추천하는 방법 - Google Patents

어플리케이션들을 추천하는 방법 Download PDF

Info

Publication number
KR20180043392A
KR20180043392A KR1020187010832A KR20187010832A KR20180043392A KR 20180043392 A KR20180043392 A KR 20180043392A KR 1020187010832 A KR1020187010832 A KR 1020187010832A KR 20187010832 A KR20187010832 A KR 20187010832A KR 20180043392 A KR20180043392 A KR 20180043392A
Authority
KR
South Korea
Prior art keywords
application
user
applications
notification
data
Prior art date
Application number
KR1020187010832A
Other languages
English (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 KR20180043392A publication Critical patent/KR20180043392A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F17/30
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/224Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
    • 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/42Mailbox-related aspects, e.g. synchronisation of mailboxes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

방법은 데이터 프로세싱 하드웨어에서, 어플리케이션에 상응하고, 사용자와 연관되는 통지를 수신하는 과정을 포함한다. 상기 방법은 상기 데이터 프로세싱 하드웨어가 상기 통지와 연관되는 통지 데이터를 결정하는 과정을 포함한다. 상기 통지 데이터는 송신기 데이터, 수신기 데이터, 주제 데이터, 메시지 데이터 중 하나 혹은 그 이상을 포함한다. 상기 방법은 또한 상기 통지 데이터를 기반으로 상기 데이터 프로세싱 하드웨어는 상기 사용자와 연관되는 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들을 사용자 선택을 위한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 과정을 포함한다. 추가적으로, 상기 방법은 상기 데이터 프로세싱 하드웨어와 통신하는 스크린 상에 각 추천 어플리케이션에 대한 사용자 선택 가능 링크를 디스플레이하는 과정을 포함한다. 각 사용자 선택 가능 링크는 상기 상응하는 추천 어플리케이션을 참조하고 상기 상응하는 추천 어플리케이션에 대한 수행 가능 동작을 지시하는 어플리케이션 억세스 메카니즘(application access mechanism)과 연관된다.

Description

어플리케이션들을 추천하는 방법
본 개시는 하나 혹은 그 이상의 수신된 통지들을 기반으로 사용자 디바이스에서 어플리케이션들을 추천하는 시스템에 관한 것이다.
최근 몇 년간, 컴퓨터들, 스마트폰들 및 다른 인터넷-연결 디바이스들의 사용이 기하급속적으로 증가되고 있다. 따라서, 상기와 같은 디바이스들에 대해 유용한 소프트웨어 어플리케이션들의 개수 역시 증가되고 있다. 오늘날, 많은 다양한 네이티브(native) 및 웹 소프트웨어 어플리케이션들이 스마트폰들과, 개인용 컴퓨터들과, 자동차들 및 텔레비젼들을 포함하는, 그렇다고 이에 한정되는 것은 아닌, 임의의 개수의 다른 디바이스들에서 억세스될 수 있다. 이런 다양한 어플리케이션들은 비지니스 중심 어플리케이션들, 게임들, 교육 어플리케이션들, 뉴스 어플리케이션들, 쇼핑 어플리케이션들, 메시징 어플리케이션들, 미디어 스트리밍 어플리케이션들, 소셜 네트워킹 어플리케이션들 및 더 많은 것들을 포함할 수 있다. 또한, 어플리케이션 개발자들은 각 장르 내에서 매우 많은 양의 어플리케이션들을 개발하고 있으며, 각 어플리케이션은 많은 에디션(edition)들을 가질 수 있다.
상기 방법은 데이터 프로세싱 하드웨어(일 예로, 사용자 디바이스 혹은 추천 시스템)에서, 어플리케이션에 상응하고, 사용자와 연관되는 통지를 수신하는 과정을 포함한다. 상기 방법은 상기 데이터 프로세싱 하드웨어가 상기 통지와 연관되는 통지 데이터를 결정하는 과정을 포함한다. 상기 통지 데이터는 송신기 데이터, 수신기 데이터, 주제 데이터, 메시지 데이터 중 하나 혹은 그 이상을 포함할 수 있다. 상기 방법은 또한 상기 통지 데이터를 기반으로 상기 데이터 프로세싱 하드웨어는 상기 사용자와 연관되는 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들을 사용자 선택을 위한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 과정을 포함한다. 상기 방법은 또한 상기 데이터 프로세싱 하드웨어와 통신하는 스크린 상에 각 추천 어플리케이션에 대한 사용자 선택 가능 링크를 디스플레이하는 과정을 포함한다. 각 사용자 선택 가능 링크는 상기 상응하는 추천 어플리케이션을 참조하고 상기 상응하는 추천 어플리케이션에 대한 수행 가능 동작을 지시하는 어플리케이션 억세스 메카니즘(application access mechanism)과 연관된다.
본 개시의 구현들은 다음과 같은 선택적인 특징들 중 하나 혹은 그 이상을 포함할 수 있다. 몇몇 구현들에서, 상기 통지는 이메일 통지, 텍스트 메시지 통지, 달력 통지, 어플리케이션 통지 중 하나 혹은 그 이상을 포함한다.
몇몇 예제들에서, 상기 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들을 상기 사용자 선택을 위한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 과정은 상기 데이터 프로세싱 하드웨어가 상기 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들과 연관되는 하나 혹은 그 이상의 키워드(keyword)들을 식별하는 과정을 포함한다. 추가적으로, 상기 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들을 상기 사용자 선택을 위한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 과정은 상기 데이터 프로세싱 하드웨어가 상기 통지 데이터가 상기 하나 혹은 그 이상의 키워드들을 포함하는지 여부를 결정하는 과정과, 상기 통지 데이터가 상기 하나 혹은 그 이상의 키워드들을 포함할 때 상기 데이터 프로세싱 하드웨어는 상기 하나 혹은 그 이상의 어플리케이션들을 상기 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 과정을 포함한다.
상기 사용자 선택을 위한 기준들은 상기 통지를 수신한 후 시간 임계 주기 내에 상기 사용자 선택의 임계 확률을 가지는 것을 포함할 수 있다. 몇몇 예제들에서, 상기 어플리케이션들의 집합의 각 어플리케이션에 대해서: 상기 방법은 상기 데이터 프로세싱 하드웨어가 상기 통지를 수신한 후 상기 시간 임계 주기 내의 상기 어플리케이션의 사용자 선택의 확률을 결정하는 과정과, 상기 어플리케이션의 사용자 선택의 확률이 상기 임계 확률을 만족할 때 상기 어플리케이션을 추천 어플리케이션으로 식별하는 과정을 포함한다.
몇몇 구현들에서, 상기 사용자 선택을 위한 기준들은 시각, 요일, 위치, 사용자 디바이스 서비스 상태, 사용자 디바이스 이동 상태, 디바이스 플랫폼(platform), 혹은 컨텍스트 정보(contextual information) 중 적어도 하나를 포함한다. 상기 방법은 또한 상기 데이터 프로세싱 하드웨어가 상기 기준들을 기반으로 상기 어플리케이션들의 집합에 관한 사용자 행동 패턴들을 결정하는 과정을 포함할 수 있다. 상기 어플리케이션들의 집합의 각 어플리케이션에 대해: 상기 방법은 상기 데이터 프로세싱 하드웨어가 상기 사용자 행동 패턴들을 기반으로 상기 통지를 수신한 후 상기 어플리케이션의 사용자 선택의 확률을 결정하는 과정과, 상기 데이터 프로세싱 하드웨어는 상기 어플리케이션의 사용자 선택의 확률이 확률 기준을 만족할 때 상기 어플리케이션을 추천 어플리케이션으로 식별하는 과정을 포함할 수 있다. 몇몇 예제들에서, 상기 방법은 다른 사용자의 사용자 행동 패턴들을 기반으로 상기 어플리케이션의 사용자 선택의 확률을 결정하는 과정을 더 포함한다. 상기 사용자 행동 패턴들은 상기 어플리케이션들의 집합의 어플리케이션을 선택하는 것 혹은 상기 어플리케이션들의 집합의 어플리케이션에 대해 하나 혹은 그 이상의 동작들을 수행하는 것 중 적어도 하나를 포함한다.
상기 방법은 또한 상기 데이터 프로세싱 하드웨어에서 상기 하나 혹은 그 이상의 사용자 선택 가능 링크들 중 하나의 사용자 선택의 지시를 수신하는 과정과, 상기 데이터 프로세싱 하드웨어에서 상기 선택된 사용자 선택 가능 링크와 연관되는 어플리케이션 억세스 메카니즘을 실행하는 과정을 포함할 수 있다. 상기 선택된 사용자 선택 가능 링크와 연관되는, 상기 실행되는 어플리케이션 억세스 메카니즘은 상기 상응하는 추천 어플리케이션을 시작하고, 상기 추천 어플리케이션을 상기 어플리케이션 억세스 메카니즘에 의해 명시되는 어플리케이션 스테이트로 설정한다.
본 개시의 다른 측면은 사용자 디바이스에서 어플리케이션들을 추천하는 시스템을 제공한다. 상기 시스템은 데이터 프로세싱 하드웨어(일 예로, 사용자 디바이스 혹은 추천 시스템)와 상기 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 상기 메모리 하드웨어는 상기 데이터 프로세싱 하드웨어에서 실행될 때 상기 데이터 프로세싱 하드웨어가 동작들을 수행하도록 하는 명령어들을 저장한다. 상기 동작들은 어플리케이션에 상응하고, 사용자와 연관되는 통지를 수신하는 것과 상기 통지와 연관되는 통지 데이터를 결정하는 것을 포함한다. 상기 통지 데이터는 송신기 데이터, 수신기 데이터, 주제 데이터, 메시지 데이터 중 하나 혹은 그 이상을 포함할 수 있다. 상기 동작들은 또한 상기 통지 데이터를 기반으로 상기 사용자와 연관되는 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들을 사용자 선택을 위한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 것과, 상기 데이터 프로세싱 하드웨어와 통신하는 스크린 상에 각 추천 어플리케이션에 대한 사용자 선택 가능 링크를 디스플레이하는 것을 포함한다. 어플리케이션 억세스 메카니즘(application access mechanism)과 연관되는 각 사용자 선택 가능 링크는 상기 상응하는 추천 어플리케이션을 참조하고 상기 상응하는 추천 어플리케이션에 대한 수행 가능 동작을 지시한다.
이 측면은 다음과 같은 선택적인 특징들 중 하나 혹은 그 이상을 포함할 수 있다. 상기 통지는 이메일 통지, 텍스트 메시지 통지, 달력 통지, 어플리케이션 통지 중 하나 혹은 그 이상을 포함할 수 있다. 상기 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들을 상기 사용자 선택을 위한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 것은 상기 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들과 연관되는 하나 혹은 그 이상의 키워드(keyword)들을 식별하는 것과, 상기 통지 데이터가 상기 하나 혹은 그 이상의 키워드들을 포함하는지 여부를 결정하는 것과, 상기 통지 데이터가 상기 하나 혹은 그 이상의 키워드들을 포함할 때 상기 하나 혹은 그 이상의 어플리케이션들을 상기 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 것을 포함할 수 있다.
몇몇 구현들에서, 상기 사용자 선택을 위한 기준들은 상기 통지를 수신한 후 시간 임계 주기 내에 상기 사용자 선택의 임계 확률을 가지는 것을 포함한다. 상기 동작들은 상기 어플리케이션들의 집합의 각 어플리케이션에 대해서, 상기 통지를 수신한 후 상기 시간 임계 주기 내의 상기 어플리케이션의 사용자 선택의 확률을 결정하는 것과, 상기 어플리케이션의 사용자 선택의 확률이 상기 임계 확률을 만족할 때 상기 어플리케이션을 추천 어플리케이션으로 식별하는 것을 더 포함할 수 있다. 상기 사용자 선택을 위한 기준들은 시각, 요일, 위치, 사용자 디바이스 서비스 상태, 사용자 디바이스 이동 상태, 디바이스 플랫폼(platform), 혹은 컨텍스트 정보(contextual information) 중 적어도 하나를 포함할 수 있다.
몇몇 예제들에서, 상기 동작들은 상기 기준들을 기반으로 상기 어플리케이션들의 집합에 관한 사용자 행동 패턴들을 결정하는 것을 더 포함한다. 상기 어플리케이션들의 집합의 각 어플리케이션에 대해, 상기 동작들은 상기 사용자 행동 패턴들을 기반으로 상기 통지를 수신한 후 상기 어플리케이션의 사용자 선택의 확률을 결정하는 것과, 상기 어플리케이션의 사용자 선택의 확률이 확률 기준을 만족할 때 상기 어플리케이션을 추천 어플리케이션으로 식별하는 것을 포함할 수 있다. 상기 동작들은 다른 사용자의 사용자 행동 패턴들을 기반으로 상기 어플리케이션의 사용자 선택의 확률을 결정하는 것을 더 포함할 수 있다. 몇몇 예제들에서, 상기 사용자 행동 패턴들은 상기 어플리케이션들의 집합의 어플리케이션을 선택하는 것 혹은 상기 어플리케이션들의 집합의 어플리케이션에 대해 하나 혹은 그 이상의 동작들을 수행하는 것 중 적어도 하나를 포함한다.
상기 동작들은 상기 하나 혹은 그 이상의 사용자 선택 가능 링크들 중 하나의 사용자 선택의 지시를 수신하는 것과, 상기 선택된 사용자 선택 가능 링크와 연관되는 어플리케이션 억세스 메카니즘을 실행하는 것을 더 포함할 수 있다. 상기 선택된 사용자 선택 가능 링크와 연관되는, 상기 실행되는 어플리케이션 억세스 메카니즘은 상기 상응하는 추천 어플리케이션을 시작하고, 상기 추천 어플리케이션을 상기 어플리케이션 억세스 메카니즘에 의해 명시되는 어플리케이션 스테이트로 설정한다.
본 개시의 하나 혹은 그 이상의 구현들의 구체적인 사항들은 첨부 도면들 및 하기의 상세한 설명에서 설명된다. 다른 측면들, 특징들, 이점들은 상세한 설명, 도면들, 및 청구항들로부터 명백해질 것이다.
도 1은 추천 시스템과 통신하는 사용자 디바이스를 포함하는 예제 환경의 개략도이다.
도 2는 상기 사용자 디바이스 및 데이터 소스들과 상호 작용하는 추천 시스템을 가지는 예제 시스템의 기능 블록 다이아그램이다.
도 3A 내지 도 3D는 추천 바를 디스플레이하는 예제 사용자 디바이스들의 개략도들이다.
도 4는 예제 사용자 디바이스의 개략도이다.
도 5는 사용자 디스플레이의 추천 바에서 디스플레이를 위한 어플리케이션들을 추천하는 방법에 대한 동작들의 예제 배열이다.
도 6은 본 명세서에서 설명되는 시스템들 및 방법들을 실행하는 예제 컴퓨팅 디바이스의 개략도이다.
다양한 도면들에서 유사한 참조 기호들은 유사한 엘리먼트들을 나타낸다.
본 개시는 사용자와 연관되는 사용자 디바이스에 의해 수신되는 통지(notification)들을 기반으로 상기 사용자에게 하나 혹은 그 이상의 어플리케이션(application)들을 추천하는 시스템 및 방법을 제공한다. 본 개시는 사용자와 연관되는 사용자 디바이스에 의해 수신되는 통지(notification)들을 기반으로 상기 사용자에게 하나 혹은 그 이상의 어플리케이션(application)들을 추천하는 시스템 및 방법을 제공한다. 추천 시스템은 상기 사용자와 연관되는 어플리케이션들의 집합으로부터 하나 혹은 그 이상의 추천 어플리케이션들을 선택할 수 있다. 일 예로, 상기 어플리케이션들의 집합은 상기 사용자 디바이스에 인스톨(install) 될 수 있다. 상기 추천 시스템은 상기 사용자 디바이스에 인스톨된 어플리케이션들 중 하나의 일부 혹은 상기 사용자 디바이스와 통신하는 원격 시스템의 일부가 될 수 있다. 상기 추천 시스템은 하나 혹은 그 이상의 통지들을 수신하고, 상기 통지와 연관되는 통지 데이터를 기반으로 상기 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들을 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션들로 식별한다. 상기 추천 시스템은 상기 사용자 디바이스가 상기 사용자 디바이스의 디스플레이 상에 추천 바(bar)로 상기 하나 혹은 그 이상의 추천 어플리케이션들을 디스플레이하도록 할 수 있다.
상기 통지들은 텍스트 메시지(text message)들, 어플리케이션 통지들(어플리케이션들, RSS 피드(feed)들, 혹은 다른 소스들로부터의), 리마인더(reminder) 통지들 및 이메일 메시지들을 포함할 수 있으며, 그렇다고 이에 한정되지는 않는다. 몇몇 구현들에서, 상기 사용자 디바이스는 디스플레이를 포함한다. 상기 사용자 디바이스의 그래픽 사용자 인터페이스(graphical user interface: GUI)는 추천 부분을 추천 바로서 상기 디스플레이에 제공한다. 상기 추천 바는 상기 추천 시스템이 디스플레이를 위해 추천하는 하나 혹은 그 이상의 추천 어플리케이션들을 포함할 수 있다. 상기 추천 어플리케이션들은 상기 수신된 통지들을 기반으로 하고; 따라서, 상기 추천 바의 추천 어플리케이션들은 상기 수신된 통지들을 기반으로 업데이트된다. 추가적으로, 그리고 몇몇 예제들에서, 상기 추천 시스템은 시각(time of day: TOD), 요일(day of week: DOW) 및 위치와 같은 상기 사용자의 컨텍스트(context) 데이터를 기반으로 어플리케이션들을 추천하며, 그렇다고 이에 한정되지는 않는다.
도 1 및 도 2를 참조하면, 몇몇 구현들에서, 시스템(100)은 네트워크(120)를 통해 원격 시스템(110)과 통신하는 사용자(10)와 연관되는 사용자 디바이스(200)를 포함한다. 상기 원격 시스템(110)은 스케일러블(scalable)/엘라스틱(elastic) 컴퓨팅 자원들(112) 및/혹은 저장 자원들(114)을 가지는 분산 시스템(일 예로, 클라우드(cloud) 환경)이 될 수 있다. 상기 사용자 디바이스(200) 및/혹은 원격 시스템(110)은 하나 혹은 그 이상의 데이터 소스들(130) 혹은 하나 혹은 그 이상의 다른 사용자 디바이스들(200)로부터 데이터를 선택적으로 수신하는 추천 시스템(300)을 구현할 수 있다. 몇몇 구현들에서, 상기 추천 시스템(300)은 상기 네트워크(120)를 통해 상기 하나 혹은 그 이상의 사용자 디바이스들(200) 및 데이터 소스(들)와 통신한다. 상기 네트워크(120)는 근거리 네트워크(local area network: LAN), 광역 네트워크(wide area network: WAN) 및/혹은 인터넷과 같은 다양한 타입들의 네트워크들을 포함할 수 있다. 도시된 바와 같은, 몇몇 구현들에서, 상기 추천 시스템(300)은 상기 사용자 디바이스(200)와 분리되며; 이에 반해 다른 구현들에서, 상기 추천 시스템(300)은 도 4를 참조하여 설명되는 바와 같이 상기 사용자 디바이스(200)에서 실행한다.
상기 데이터 소스들(130)은 다양한 다른 데이터 제공자들을 포함할 수 있다. 상기 데이터 소스들(130)은 어플리케이션 개발자의 웹사이트들 및 개발자들에 의해 제공되는 데이터 피드(data feed)들과 같은 어플리케이션 개발자들(130a)로부터의 데이터를 포함할 수 있다. 상기 데이터 소스들(130)은 네이티브 어플리케이션(native application)들(210)을 사용자 디바이스들(200)로 분산하도록 구성되는 디지털 분산 플랫폼(platform)들의 운영자들을 포함할 수 있다. 예제 디지털 분산 플랫폼들(130b)은 구글 사의 구글 플레이(GOOGLE PLAY®) 디지털 분산 플랫폼, 애플사의 앱 스토어(APP STORE®) 디지털 분산 플랫폼 및 마이크로소프트 사에 의해 개발된 윈도우 폰(WINDOWS PHONE®) 스토어를 포함하며, 그렇다고 이에 한정되지는 않는다.
상기 데이터 소스들(130)은 또한 웹 로그(web log)들(130c)(즉, 블로그들), 어플리케이션 리뷰 웹사이트들(130d), 혹은 어플리케이션들(210)에 관련되는 데이터를 포함하는 다른 웹 사이트들과 같은 다른 웹사이트들을 포함할 수 있다. 추가적으로, 상기 데이터 소스들(130)은 페이스북 사의 "페이스북(FACEBOOK®)" (일 예로, 페이스북 포스트(post)들) 및 트위터 사의 "트위터(TWITTER®)"(트워터들로부터의 텍스트)와 같은 소셜 네트워킹 사이트(social networking site)들(130e)을 포함할 수 있다. 데이터 소스들(130)은 또한 영화들, 텔레비젼 프로그램들, 음악 및 레스토랑들에 관련되는 데이터를 포함하지만, 그렇다고 그에 한정되지는 않는 온라인 데이터베이스(online database)들(130f)을 포함할 수 있다. 데이터 소스들(130)은 또한 상기에서 설명한 바와 같은 데이터 소스들 뿐만 아니라 다른 타입들의 데이터 소스들을 포함할 수 있다. 다른 데이터 소스들(130)은 그 고유 컨텐트를 가질 수 있고, 레이트를 업데이트할 수 있다.
소프트웨어 어플리케이션(210)은 컴퓨팅 디바이스(computing device)에 의해 실행될 때 상기 컴퓨팅 디바이스가 태스크를 수행하도록 하는 컴퓨터 소프트웨어를 나타낼 수 있다. 몇몇 예제들에서, 소프트웨어 어플리케이션(210)은 "어플리케이션", "앱", 혹은 "프로그램"이라 칭해진다. 예제 소프트웨어 어플리케이션들(210)은 워드 프로세싱(word processing) 어플리케이션들, 스프레드 시트(spreadsheet) 어플리케이션들, 메시징 어플리케이션들, 미디어 스트리밍(media streaming) 어플리케이션들, 소셜 네트워킹(social networking) 어플리케이션들 및 게임들을 포함하며, 그렇다고 이에 한정되는 것은 아니다.
상기 사용자 디바이스(200)는 상기 GUI(204)를 통해 디바이스 디스플레이(202)에 상기 사용자 디바이스(200)에 인스톨되어 있는 하나 혹은 그 이상의 어프리케이션들(210)과 연관되는 하나 혹은 그 이상의 아이콘들/단축키들(232)을 디스플레이할 수 있는 어떤 컴퓨팅 디바이스라도 될 수 있다. 또한, 상기 컴퓨팅 디바이스는 상기 하나 혹은 그 이상의 인스톨되어 있는 어플리케이션들(210)을 실행할 수 있다. 사용자 디바이스(200)는 랩탑들(200a), 태블릿들(200b), 스마트 폰들(200c), 웨어러블 컴퓨팅 디바이스들(200d)(일 예로, 헤드셋(headset)들 및/혹은 워치(watch)들)을 포함하지만, 그렇다고 이에 한정되지는 않는다. 사용자 디바이스들(200)은 또한 데스크탑 컴퓨터들(200e)에 포함되어 있는 컴퓨팅 디바이스들, 차량들, 게임 디바이스들, 텔레비젼들, 혹은 다른 기기들(일 예로, 네트워크된 홈 자동 디바이스들 및 가정용 기기들)과 같은 다른 형태 팩터(factor)들을 가지는 다른 컴퓨팅 디바이스들을 포함할 수 있다.
상기 사용자 디바이스들(200)은 다양한 다른 운영 시스템들(216)을 사용할 수 있다. 사용자 디바이스(200)가 이동 디바이스인 예제들에서, 상기 사용자 디바이스(200)는 구글 사에 의해 개발된 안드로이드(ANDROID®), 애플 사에 의해 개발된 아이오에스(IOS®), 혹은 마이크로소프트 사에 의해 개발된 윈도우 폰(WINDOWS PHONE®)을 포함하는, 그렇다고 이에 한정되지는 않는 운영 시스템을 실행할 수 있다. 따라서, 상기 사용자 디바이스(200)에서 실행되는 상기 운영 시스템(216)은 안드로이드, 아이오에스, 혹은 윈도우 폰 중 하나를 포함할 수 있으며, 그렇다고 이에 한정되지는 않는다. 사용자 디바이스(200)가 랩탑 혹은 데스크탑 컴퓨팅 디바이스인 예제에서, 상기 사용자 디바이스(200)는 마이크로 소프트 사의 마이크로 소프트 윈도우(MICROSOFT WINDOWS®) 혹은 애플 사의 맥 오에스(MAC OS®) 혹은 리눅스(Linux)를 포함하지만, 그렇다고 이에 한정되지는 않는 운영 시스템을 실행할 수 있다. 사용자 디바이스들(200)은 또한 상기에서 설명한 바와 같은, 현재 유용한지 혹은 향후에 개발되던지 간에, 운영 시스템들(216) 이외의 운영 시스템들(216)을 운영하는 동안 상기 추천 시스템(300)에 억세스할 수 있다.
어플리케이션들(210)은 다양한 다른 사용자 디바이스들(200)에서 실행될 수 있다. 몇몇 예제들에서, 네이티브 어플리케이션(210a)은 사용자가 사용자 디바이스(200)를 구매하기 전에 상기 사용자 디바이스(200) 상에 인스톨된다. 다른 예제들에서, 상기 사용자(10)는 상기 사용자 디바이스(200)에 네이티브 어플리케이션들(210a)을 다운로드 및 인스톨 할 수 있다.
상기 어플리케이션(210)의 기능은 상기 어플리케이션(210)이 인스톨되는 컴퓨팅 디바이스(200)에서 억세스될 수 있다. 추가적으로 혹은 이와는 달리, 상기 어플리케이션(210)의 기능은 원격 컴퓨팅 디바이스(112)를 통해 억세스될 수 있다. 몇몇 예제들에서, 어플리케이션의 기능 모두는 상기 어플리케이션(210)이 인스톨되어 있는 컴퓨팅 디바이스(112, 200)에 포함된다. 이런 어플리케이션들(210)은 (일 예로, 상기 인터넷을 통해) 다른 컴퓨팅 디바이스들(112, 200)과의 통신 없이 기능할 수 있다. 다른 예제들에서, 컴퓨팅 디바이스(200)에 인스톨되는 어플리케이션(210)은 동작 동안 다른 원격 컴퓨팅 디바이스들(112)로부터의 정보에 억세스할 수 있다. 일 예로, 컴퓨팅 디바이스(200)에 인스톨되는 날씨 어플리케이션은 상기 인터넷을 통해 최신 날씨 정보에 억세스할 수 있고, 상기 인스톨된 날씨 어플리케이션을 통해 상기 사용자(10)에게 상기 억세스된 날씨 정보를 디스플레이할 수 있다. 또 다른 예제들에서, 웹-기반 어플리케이션(210b)(여기서는 웹 어플리케이션이라고도 칭해지는)은 상기 사용자의 컴퓨팅 디바이스(200)에 의해 부분적으로 실행될 수 있고 원격 컴퓨팅 디바이스(112)에 의해 부분적으로 실행될 수 있다. 일 예로, 웹 어플리케이션(210b)은 웹 서버에 의해 적어도 일부에서 실행되고 상기 사용자의 컴퓨팅 디바이스(200)의 웹 브라우저(일 예로, 네이티브 어플리케이션(210a))에 의해 억세스되는 어플리케이션(210)이 될 수 있다. 예제 웹 어플리케이션들(210b)은 웹-기반 이메일, 온라인 경매들 및 온라인 소매 사이트들을 포함할 수 있지만, 그렇다고 이에 한정되는 것은 아니다.
사용자(10)는 그/그녀의 사용자 디바이스(200)에 다수의 어플리케이션들(210)을 인스톨할 수 있고, 주어진 시간에서 특정 어플리케이션(210)을 위치시키는 것이 어렵다는 것을 알게 수 있다. 따라서, 상기 사용자 디바이스(200)에서 상기 수신된 통지들을 모니터하고, 및/혹은 상기 사용자(10)와 연관되는 어플리케이션들(210)(일 예로, 상기 사용자 디바이스(200)에 인스톨되어 있는 어플리케이션들(210))의 사용을 알아내고, 상기 수신된 통지들과 연관되는 통지 데이터, 시각, 상기 사용자 디바이스(200)의 위치, 혹은 다른 사용 데이터와 같은, 그렇다고 이에 한정되지는 않는, 하나 혹은 그 이상의 팩터들 혹은 기준들을 기반으로 상기 사용자(10)에게 하나 혹은 그 이상의 어플리케이션들(210)을 동적으로 제안하는 것이 바람직하다. 따라서, 상기 명시되는 기준들을 기반으로 어플리케이션들(210)을 추천하는 것은 상기 사용자(10)가 어플리케이션(210)을 오픈(open)하도록 하는 단계들의 수를 감소시킬 수 있다. 상기 추천 시스템(300)은 그래픽 사용자 인터페이스(graphical user interface: GUI)(204)의 추천 바(210)에서의 디스플레이를 위한 추천 어플리케이션들을 제안할 수 있다.
일반적으로, 상기 사용자 디바이스(200)는 사용자의 수신된 통지들(206)을 모니터 및 해석하고 상기 사용자(10)에게 추천 어플리케이션들(210, 222)을 제공하는, 추천 론처(launcher)(214)와 같은, 소프트웨어 어플리케이션(210)을 사용하여 상기 추천 시스템(300)과 통신할 수 있다. 사용자 통지들(206)은 텍스트 메시지들, 어플리케이션 통지들(어플리케이션들, RSS 피드들, 혹은 다른 소스들로부터의), 리마인더 통지들 및 이메일 메시지들을 포함할 수 있으며, 그렇다고 이에 한정되지는 않는다. 몇몇 예제들에서, 상기 통지(206)는 텍스트, 오디오, 사진, 비디오, 혹은 위치(일 예로, 좌표 위치 혹은 전세계 측위 시스템(global positioning system: GPS) 위치)를 포함하는, 그렇다고 이에 한정되지는 않는 엔터티 타입과 연관될 수 있다. 추가적으로, 상기 추천 론처(214)는 또한 상기 사용자(10)에게 상기 추천 어플리케이션들(210, 222)을 제공하기 위해 상기 사용자의 사용 데이터(322)를 고려할 수 있다. 사용 데이터(322)는 사용자의 어플리케이션(210)과의 상호 작용, 사용자(10)가 어플리케이션(210)을 오픈하는 시간/날짜, 어플리케이션(210)을 사용하는 구간, 상기 어플리케이션(210)을 종료하는 시간/날짜, 상기 어플리케이션(210)을 사용하는 빈도, 혹은 상기 사용자의 GUI(204)를 통한 상기 어플리케이션(210)과의 상호 작용을 나타내는 다른 관련 데이터를 포함할 수 있으며, 그렇다고 이에 한정되지는 않는다. 상기 추천 론처(214)는 기본 홈 스크린(native home screen)을 상기 GUI(204)가 추천 어플리케이션들(222)을 디스플레이하는 것에 대해 전용인 추천 바(220)를 디스플레이하는 것을 허락하는 고객 맞춤형 인터페이스(customizable interface)로 대체하는 사용자 디바이스(200)에 인스톨되는 어플리케이션 사용자 인터페이스 프로그램일 수 있다. 상기 추천 론처(214)는 상기 사용자(10) 혹은 사용자 디바이스(200)(일 예로, 상기 추천 시스템(300))가 상기 사용자 디바이스(200)의 GUI(204)의 홈 스크린을 퍼스널라이즈(personalize)하는 것을 허락한다. 몇몇 구현들에서, 상기 추천 론처(214)는 또한 홈 스크린, 바탕 화면(들), 론처 바, 어플리케이션 인스톨, 단축키들, 위젯들을 관리한다.
몇몇 예제들에서, 상기 사용자 디바이스(200)는 상기 추천 시스템(300)(상기 사용자 디바이스(200)에서 혹은 원격으로 실행하는)과 인터페이스하는 것에 대해 전용인 추천 론처(214)를 실행한다. 상기 사용자 디바이스(200)는 웹 브라우저 네이티브 어플리케이션(210a)을 사용하여 억세스되는 웹-브라우저 어플리케이션(210b)와 같은, 보다 일반적인 어플리케이션(210)을 사용하여 상기 추천 시스템(300)과 통신할 수 있다. 상기 사용자 디바이스(200)가 상기 추천 론처(214) 및/혹은 웹-브라우저 어플리케이션(210b)를 사용하여 상기 추천 시스템(300)과 통신할 수 있을 지라도, 상기 사용자 디바이스(200)는 하기에서 상기 추천 시스템(300)과 통신하기 위해 추천 론처(214)를 사용하는 것으로 설명될 수 있다. 몇몇 구현들에서, 상기 추천 론처(214)로 인한 기능은 추가적인 기능을 가지는 더 큰 어플리케이션(210)의 추천 컴포넌트(component)로서 포함된다. 일 예로, 상기 추천 론처(214)로 인한 기능은 네이티브 어플리케이션(210a)의 일부로 혹은 추천 어플리케이션들(210)에 대한 모니터링 능력들을 제공하는 기능인 웹 어플리케이션(210b)으로 포함될 수 있다.
몇몇 구현들에서, 도 2에 도시되어 있는 바와 같이, 상기 추천 시스템(300)은 추천 데이터 스토어(store)(320)와 통신하는 추천 모듈(310)을 포함한다. 상기 추천 시스템(300)은 상기 사용자(10)의 사용자 디바이스(200)를 통해 수신되는 통지들(206)을 수신한다. 몇몇 구현들에서, 상기 추천 시스템(300)은 다수의 사용자들(10)과 연관되는 다수의 사용자 디바이스들(200)에 의해 수신되는 통지들(206)을 수신한다. 상기 추천 시스템(300)은 또한 하나 혹은 그 이상의 사용자들(10)의 사용 데이터(322)를 수신할 수 있다. 몇몇 예제들에서, 상기 추천 시스템(300)은 특정 사용자(10)와 연관되는 사용자 디바이스(200)에 의해 수신되는 통지들(206)을 기반으로 상기 특정 사용자(10)에 대한 어플리케이션들(210, 222)을 추천한다. 다른 예제들에서, 한 명의 사용자(10)는 적어도 두 개 혹은 그 이상의 사용자 디바이스들(200)(일 예로, 랩탑들(200a), 태블릿들(200b), 스마트 폰들(200c), 웨어러블 컴퓨팅 디바이스들(200d)(일 예로, 헤드셋들 및/혹은 워치들), 테스크탑 컴퓨터(200e))을 소유할 수 있다. 따라서, 상기 추천 시스템(300)은 상기 한 명의 사용자(10)와 연관되는 하나 혹은 그 이상의 사용자 디바이스들(200)에서 수신되는 통지들(206)을 모니터할 수 있다. 상기와 같은 경우에서, 각 사용자 디바이스(200)는 상기 추천 시스템(300)과 인터페이스하는 것에 전용인 추천 론처(214)를 실행한다. 상기 추천 시스템(300)은 모든 수신된 메시지들을 기반으로 어플리케이션들(210, 222)을 추천할 수 있다. 추가적으로, 한 개의 사용자 디바이스(200)에 대해 이루어지는 추천은 다른 사용자 디바이스(200)에 대해 이루어지는 추천과는 다를 수 있다. 일 예로, 사용자(10)가 아이패드(IPAD®)와 아이폰(IPHONE®)을 가지고 있을 경우, 상기 사용자(10)는 주로 독서를 위해 상기 아이패드를 사용할 수 있고 이에 반해 상기 아이폰은 이메일을 확인하고 사진을 찍기 위해 주로 사용된다. 따라서, 사용자(10)가 새로운 책이 발행된다는 이메일 혹은 아이폰 메시지를 수신하였을 경우, 상기 사용자 디바이스(200)에서의 추천 어플리케이션(210, 222)은 상기 사용자(10)가 상기 책을 구매 및 다운로드하는 것을 허락하는 다운로드 어플리케이션(210)이 될 수 있고, 이에 반해 상기 아이폰에서의 추천 어플리케이션들(210, 222)은 상기 책의 리뷰를 읽거나 혹은 상기 책을 구매하기 위한 것이 될 수 있다. 또 다른 예에서, 상기 추천 시스템(300)은 다수의 사용자들(10)로부터 통지들(206)을 수신하고, 유사한 인스톨된 어플리케이션들(210) 및/혹은 어트리뷰트(attribute)들(일 예로, 사용자 디바이스(200), 위치, 연령, 성별 등)을 가지는 사용자들(10)을 기반으로 추천 어플리케이션들(210)을 생성한다.
도 2 내지 도 3D를 참조하면, 상기 추천 모듈(310)은 상기 통지(들)(206)을 수신하고, 상기 통지(들)(206)을 분석하여 상기 사용자(10)에게 추천하는 하나 혹은 그 이상의 추천 어플리케이션들(210, 222)을 결정할 수 있다. 텍스트 메시지 통지 혹은 이메일 통지와 같은 몇몇 통지들(206)은 통지 데이터(207)와 연관될 수 있다. 상기 통지 데이터(207)는 송신기 데이터(12), 수신측 데이터(상기 사용자(10)), 주제 데이터(208a), 메시지 바디(message body)(208b) 중 하나 혹은 그 이상을 포함할 수 있다. 상기 송신기(12)는 알려진 송신기(12), 즉 상기 사용자 디바이스(200)에 저장되어 있는 연락처 혹은 알려지지 않은 송신기(12)가 될 수 있다. 상기 알려지지 않은 송신기(12)는 상기 사용자(10)로 자동으로 통지들(206)을 송신하는 인스톨되는 어플리케이션(210)과 연관되는 시스템이 될 수 있다. 일 예로, 상기 사용자(10)가 그/그녀의 사용자 디바이스(200)에 캔디 크러쉬 사가(CANDY CRUSH SAGA®) 어플리케이션(매치-3 퍼즐 게임(match-three puzzle game))을 인스톨할 경우, 상기 캔디 크러쉬 사가 어플리케이션은 상기 사용자(10)에게 새롭게 추가된 레벨들 및/혹은 상기 사용자(10)가 상기 게임을 계속 하기 위해 더 많은 생명들을 가지는지를 알려주는 상기 사용자(10) 통지들(206)을 송신할 수 있다. 이 경우에서, 상기 알려지지 않은 송신기는 상기 캔디 크러쉬 사가 어플리케이션이다. 상기 추천 모듈(310)은 상기 송신기(12)를 상기 사용자 디바이스(200)에 인스톨되어 있는 어플리케이션(210)과 연관되는 것으로 식별하고, 따라서 상기 캔디 크러쉬 사가 어플리케이션을 상기 사용자(10)에 대한 추천 어플리케이션(222)으로 추천한다. 몇몇 예제들에서, 상기 추천 모듈(310)은 상기 캔디 크러쉬 사가 어플리케이션과 유사한 추가적인 게임들, 일 예로, 캔디 크러쉬 소다(CANDY CRUSH SODA®), 펫 레스큐 사가(PET RESCUE SAGA®), 혹은 상기 사용자 디바이스(200)에 인스톨 되어 있는 다른 게임들과 같은 동일한 개발자(일 예로, 킹 디지털 엔터테인먼트(King Digital Entertainment))에 의한 게임들을 추천한다.
다른 예제에서, 상기 사용자(10)가 처방전을 제출할 때 그/그녀의 번호를 약국에 제공할 경우, 상기 약국은 상기 사용자(10)에게 통지(206), 일 예로, 상기 사용자(10)에게 그/그녀의 처방전이 픽업을 위해 준비되어 있다는 것을 알려주는 이메일 혹은 텍스트 메시지를 송신할 수 있다. 상기 이메일 혹은 텍스트 메시지는 상기 약국의 이름 및 위치를 포함할 수 있다. 상기 추천 모듈(310)은 상기 통지(206)를 수신하고 상기 통지 데이터(207)를 분석한다. 이 경우에서, 상기 통지 데이터(207)가 주소를 포함하기 때문에, 상기 추천 모듈(310)은 상기 사용자(10)에게 지도 어플리케이션(222)을 추천할 수 있다. 상기 약국이 상기 사용자 디바이스(200)에 다운로드되는 연관 어플리케이션(210)을 가지고 있을 경우, 상기 추천 모듈(310)은 상기 약국과 연관되는 어플리케이션(210)을 추천 어플리케이션(222)으로 추천할 수 있다.
몇몇 구현들에서, 상기 통지(206)는 그 연락처 정보가 상기 사용자 디바이스(200)에 저장되어 있는 송신기(12)와 같은 알려진 사용자(12)로부터 존재한다. 상기 메시지 주제(208a) 및/혹은 메시지 바디(208b)는 "레스토랑에서 만나자" 혹은 "[지역명/주소]에서 만나자"를 포함할 수 있다. 이 경우에서, 상기 추천 모듈(310)은 상기 통지 데이터(207)(일 예로, 메시지 바디(208b))가 위치를 포함한다는 것을 결정하고, 상기 사용자(10)가 지도 어플리케이션(210)을 쉽게 찾을 수 있고, 따라서 상기 통지 데이터(207)에 포함되어 있는 특정 위치에 대한 경로 및 추정 도착 시간을 쉽게 결정할 수 있도록 상기 지도 어플리케이션(210)을 상기 추천 어플리케이션(222)으로 추천할 수 있다. 이 예제에서, 상기 사용자(10)가 상기 추천 지도 어플리케이션(222)을 선택할 때, 상기 추천 지도 어플리케이션(222)은 상기 사용자의 현재 위치로부터 상기 통지 데이터(207)에서 명시된 위치까지의 지도를 디스플레이하는 스테이트로 설정될 수 있다. 추가적으로, 상기 추천 모듈(310)은 또한 상기 사용자(10)가 상기 명시된 위치에서 만나는 것이 가능한지에 대해 그/그녀의 달력을 확인할 수 있도록 달력 추천 어플리케이션(222)을 추천할 수 있다. 설명된 바와 같이, 각 통지(206)는 상기 추천 시스템(300)을 트리거(trigger)하여 하나 혹은 그 이상의 추천 어플리케이션들(222)을 추천할 수 있다. 몇몇 예제들에서, 날씨 통지는 상기 추천 시스템(300)를 트리거하여 날씨 추천 어플리케이션(222)을 추천할 수 있다. 항공편 번호를 포함하는 통지 데이터(207)를 가지는 통지(206)는 상기 통지 모듈(310)을 트리거하여 그/그녀의 항공편에 관련되는 더 많은 정보를 상기 사용자(10)에게 제공하는 항공편 어플리케이션(210)을 추천할 수 있다.
상기 추천 시스템(300)은 통지(206)의 수신에 따라 혹은 임계 개수의 통지들(206)에 따라 추천 어플리케이션(들)(222)을 제공할 수 있다. 몇몇 예제들에서, 상기 추천 시스템(300)은 매 시간 임계 주기, 일 예로 시간마다 추천 어플리케이션(들)(210, 222)을 제공한다. 다른 예제들에서, 상기 추천 시스템(300)은 이전의 추천이 이루어진 것으로부터 시간 임계 주기 후에 추천 어플리케이션(들)(210,222)을 제공한다.
몇몇 구현들에서, 상기 추천 시스템(300)은 상기 시각(time of day: TOD), 요일(day of week: DOW), 위치, 홈/로밍(home/roaming)(불린(Boolean)), 드라이빙(고속 이동)/정지(저속 이동)(Boolean), 디바이스(즉, 아이폰, 안드로이드(ANDROID®))와 같은, 그렇다고 이에 한정되지는 않는, 사용자의 컨텍스트 정보(324)를 고려한다. 상기 추천 시스템(300)은 상기 사용자 디바이스(200)에 인스톨되어 있는 어플리케이션들(210)의 사용자의 사용을 모니터하고 각 어플리케이션(210)의 사용 행동의 패턴을 결정할 수 있다. 일 예로, 사용자(10)는 매일 오전 11시 경에 위치 B에서 특정 어플리케이션(APP A)을 사용할 수 있다. 따라서, 상기 추천 시스템(300)은 상기 특정 어플리케이션(APP A)을 매일 오전 11시 혹은 그 전에 상기 추천 바(220)에서 보여질 추천 어플리케이션(222)으로 추천할 수 있다. 몇몇 예제들에서, 상기 사용자(10)는 상기 사용자 디바이스(200)가 차량의 블루투스(BLUETOOTH®)에 연결되어 있을 때, 상기 사용자 디바이스(200)가 차량에서 이동 중일 때, 및/혹은 매일 특정 시간에(일 예로, 오전 8시 및 오후 5시) 상기 구글(GOOGLE®) 지도 어플리케이션을 시작한다. 상기와 같은 예제에서 상기 추천 시스템(300)은 상기 리스트되어 있는 조건들 중 하나 혹은 그 이상이 만족될 때 상기 추천 바(220)에 포함될 상기 구글 지도 어플리케이션(222)을 추천한다. 상기 추천 시스템(300)은 하나 혹은 그 이상의 사용자들(10)의 컨텍스트 정보(324)를 사용하여 특정 사용자(10)에 대한 추천 어플리케이션들(222)을 결정할 수 있다.
몇몇 구현들에서, 상기 추천 시스템(300)은 상기 수신된 구현(206)의 엔터티(entity) 타입을 기반으로 상기 사용자(10)에게 추천 어플리케이션(210, 222)을 추천한다. 상기 엔터티 타입은 상기 통지(206)의 컨텐트의 타입을 정의한다. 이전에 설명된 바와 같이, 상기 통지(206)는 엔터티 타입, 일 예로, 텍스트, 오디오, 사진, 비디오, 혹은 위치(일 예로, 좌표 위치 혹은 전세계 측위 시스템(global positioning system: GPS) 위치)와 연관될 수 있다. 몇몇 예제들에서, 상기 추천 시스템(300)이 상기 통지(206)가 비디오 혹은 비디오에 대한 링크(일 예로, 유튜브(YOUTUBE®) 링크)를 포함한다고 결정할 경우, 상기 추천 시스템(300)은 상기 추천 바(220)에 포함될, 상기 비디오 혹은 유튜브 어플리케이션(222)을 재생할 수 있는 어플리케이션(222)을 추천할 수 있다. 몇몇 예제들에서, 상기 통지(206)는 GPS 좌표들을 포함하는 위치를 포함할 수 있다. 이 경우에서, 상기 추천 시스템(300)은 상기 추천 바(220)에 포함될, 상기 구글 지도 어플리케이션(222)과 같은 지도 디스플레이 어플리케이션(222)을 추천한다.
상기 추천 시스템(300)은 수신된 통지들(206) 및/혹은 어플리케이션 공존(즉, 어플리케이션들(210)을 그 이후에 혹은 순차적으로 사용하는 사용자(10)의 사용 데이터) 및/혹은 컨텍스트 정보를 기반으로 상기 사용자(10)에게 추천 어플리케이션(210, 222)을 추천할 수 있다. 상기 추천 시스템(300)은 사용 데이터(322) 및 컨텍스트 정보(324)를 검출/수신하고, 행동 패턴(일 예로, 컨텍스트 정보(324))를 결정한다. 어플리케이션들(210)의 공존을 기반으로 하는 추천 어플리케이션들(222)의 추천은 특정 어플리케이션(210) 후의 임계 시간(T) 내에 사용되는 어플리케이션(210)을 모니터링하는 것을 기반으로 할 수 있다. 컨텍스트 정보(324)를 기반으로 하는 추천들은 컨텍스트 변경(contextual change)을 기반으로 할 수 있다. 일 예로, 상기 사용자(10)가 상기 우버(UBER®) 어플리케이션을 사용하여 집으로 간 후 상기 그룹허브(GRUBHUB®) 어플리케이션을 사용하는 습관 혹은 패턴을 가지고 있을 경우, 상기 추천 시스템(300)은 직장에서 집으로 이동하는 우버 어플리케이션을 사용한 후 음식을 주문하는 그룹허브 어플리케이션을 사용하는 사용자(10)의 어플리케이션 공존을 기반으로 상기 그룹 허브 어플리케이션을 제안할 수 있다. 따라서, 상기 추천 시스템(300)은 상기 사용자(10)가 상기 우버 어플리케이션을 선택할 때 상기 그룹 허브 어플리케이션을 상기 추천 바(220)에서 추천 어플리케이션(222)으로 보여준다. 상기 추천 시스템(300)은 시간 임계 주기 동안 상기 그룹 허브 어플리케이션(즉, 공존 추천)을 보여주고, 컨텍스트 정보(324)를 기반으로 상기 그룹 허브 어플리케이션을 컨텍스트 추천 어플리케이션들(222)로 대체할 수 있다.
몇몇 구현들에서, 상기 추천 시스템(300)은 상기 어플리케이션들(210)을 추천하기 위해 다수의 사용자들(10)의 사용 데이터(322) 및/혹은 컨텍스트 데이터(324)를 사용한다. 상기 사용자(10)가 어플리케이션(210)을 그/그녀의 디바이스(200)에 처음 인스톨할 때, 상기 추천 시스템(300)은 최근에 인스톨된 어플리케이션(210) 다음의 사용을 위해 어떤 어플리케이션들(210)을 추천할지를 결정하기에 충분한 사용 데이터(322)를 가지고 있지 않을 수도 있다. 상기와 같은 상황에서, 상기 추천 시스템(300)은 상기 최근에 인스톨된 어플리케이션(210)을 사용하고 있는 다른 사용자들(10)의 사용 데이터(322)를 사용할 수 있다. 몇몇 예제들에서, 상기 추천 시스템(300)은 다수의 유사한 어트리뷰트들(일 예로, 어플리케이션들(210))을 가지는 사용자들(10)을 상기 사용자(10)로 그룹화하고(cluster), 상기 유사한 어트리뷰트들을 가지는 사용자들(10)을 기반으로 상기 추천 어플리케이션들(222)을 결정한다. 상기 추천 시스템(300)이 상기 사용자(10)의 충분한 사용 데이터(322)를 수집할 때, 상기 추천 시스템(300)은 상기 유사한 어트리뷰트들을 가지는 사용자들(10)의 그룹이 아닌, 상기 사용자(10)의 사용 데이터(322)만을 고려할 수 있다. 추가적으로, 상기 그룹 사용 데이터는 그/그녀가 상기 사용자 디바이스(200)에 인스톨하지 않은 상기 사용자(10)의 어플리케이션들(210)을 추천하기 위해 사용될 수 있다. 몇몇 예제들에서, 상기 사용자 디바이스(200)는 상기 어플리케이션(210)이 상기 사용자 디바이스(200)에 인스톨되어 있지 않음을 지시하는 작은 아이콘을 디스플레이한다.
도 3A 내지 도 3D는 예제 사용자 디바이스들(200)에 의해 디스플레이되는 예제 추천 바들(220)을 도시하고 있다. 몇몇 구현들에서, 상기 사용자 디바이스(200)의 디스플레이(202)는 홈 스크린(230)을 포함한다. 상기 홈 스크린(230)은 상기 사용자 디바이스(200)에 인스톨되어 있는 어플리케이션들(210)과 연관되는 아이콘들(232)로서 디스플레이되는 링크들(224, 234)을 포함한다. 각 링크(224, 234)는 상기 사용자(10)에 의해 선택 가능할 수 있으며, 상기 상응하는 어플리케이션(210)을 참조하고 상기 상응하는 추천 어플리케이션(222)에 대한 수행 가능 동작을 지시하는 억세스 메카니즘을 가진다.
억세스 메카니즘들은 네이티브 어플리케이션 억세스 메카니즘(이하, "어플리케이션 억세스 메카니즘"), 웹 억세스 메카니즘 및 어플리케이션 다운로드 메카니즘 중 적어도 하나를 포함할 수 있다. 상기 사용자 디바이스(200)는 상기 어플리케이션들(210)의 기능에 억세스하는 억세스 메카니즘들을 사용할 수 있다. 일 예로, 상기 사용자(10)는 사용자 선택 가능 링크(224, 234)에서 지시되는 어플리케이션(210)의 기능에 억세스하기 위해 상기 홈 스크린(230) 혹은 억세스 메카니즘을 포함하는 다른 스크린들에서 상기 사용자 선택 가능 링크(224, 234)를 선택할 수 있다.
어플리케이션 억세스 메카니즘은 네이티브 어플리케이션에 대한 참조를 포함하고, 상기 사용자 디바이스(200)가 수행하는 하나 혹은 그 이상의 동작들을 지시하는 스트링(string)이 될 수 있다. 사용자(10)가 어플리케이션 억세스 메카니즘을 포함하는 사용자 선택 가능 링크(224, 234)를 선택할 경우, 상기 사용자 디바이스(200)는 상기 어플리케이션 억세스 메카니즘에서 참조되는 네이티브 어플리케이션(210)을 시작하고 상기 어플리케이션 억세스 메카니즘에서 지시되는 하나 혹은 그 이상의 동작들을 수행할 수 있다.
어플리케이션 억세스 메카니즘은 상기 사용자 디바이스(200)가 네이티브 어플리케이션(210)에 의해 제공되는 기능에 억세스하기 위해 사용할 수 있는 데이터를 포함한다. 일 예로, 어플리케이션 억세스 메카니즘은 상기 사용자 디바이스(200)가 네이티브 어플리케이션(210)을 시작하고, 상기 네이티브 어플리케이션(210)과 연관되는 기능을 수행하도록 하는 데이터를 포함할 수 있다. 상기 억세스 메카니즘에 따른 기능의 수행은 상기 네이티브 어플리케이션(210)을 명시된 스테이트로 설정할 수 있다. 따라서, 상기 네이티브 어플리케이션(210)을 시작하고 어플리케이션 억세스 메카니즘에 따른 기능을 수행하는 프로세스는 여기에서 상기 네이티브 어플리케이션(210)을 시작하고 상기 네이티브 어플리케이션(210)을 상기 어플리케이션 억세스 메카니즘에 의해 명시되는 스테이트로 설정하는 것으로 칭해질 수 있다. 몇몇 예제들에서, 레스토랑 예약 어플리케이션에 대한 어플리케이션 억세스 메카니즘은 상기 사용자 디바이스(200)가 상기 레스토랑 예약 어플리케이션을 시작하여 레스토랑에 예약하는 것을 도와주도록 하는 데이터를 포함할 수 있다. 상기와 같은 예제들에서, 상기 레스토랑 예약 어플리케이션은 예약 시간, 상기 레스토랑에 대한 설명, 사용자 리뷰(review)들과 같은 예약 정보를 상기 사용자(10)에게 디스플레이하는 스테이트로 설정될 수 있다. 추가적인 예제들에서, 인터넷 미디어 재생 어플리케이션에 대한 어플리케이션 억세스 메카니즘은 상기 사용자 디바이스(200)가 상기 인터넷 미디어 재생 어플리케이션을 시작하여 상기 인터넷으로부터 미디어를 스트림하도록 하는 데이터를 포함할 수 있다. 상기와 같은 예제들에서, 상기 인터넷 미디어 재생 어플리케이션은 곡명, 아티스트, 앨범 명과 같은 상기 스트림되는 미디어(일 예로, 음악)에 관한 정보를 디스플레이하는 스테이트로 설정될 수 있다.
어플리케이션 억세스 메카니즘들은 다양한 다른 포맷들 및 컨텐트를 가질 수 있다. 상기 어플리케이션 억세스 메카니즘의 포맷 및 컨텐트는 상기 어플리케이션 억세스 메카니즘이 연관되는 네이티브 어플리케이션(210) 및 상기 어플리케이션 억세스 메카니즘의 선택에 대한 응답으로 상기 네이티브 어플리케이션(210)에 의해 수행될 동작들을 기반으로 할 수 있다. 일 예로, 인터넷 음악 재생 어플리케이션에 대한 어플리케이션 억세스 메카니즘은 쇼핑 어플리케이션에 대한 어플리케이션 억세스 메카니즘과 다를 수 있다. 인터넷 음악 재생 어플리케이션에 대한 어플리케이션 억세스 메카니즘은 일 예로, 음악 아티스트들, 노래들, 앨범들에 대한 참조들을 포함할 수 있다. 상기 인터넷 음악 재생 어플리케이션에 대한 어플리케이션 억세스 메카니즘은 또한 노래들의 리스트를 랜덤화하고 노래 혹은 앨범을 재생하는 것과 같은 동작들을 참조할 수 있다. 쇼핑 어플리케이션에 대한 어플리케이션 억세스 메카니즘은 세일중인 다른 제품들에 대한 참조들을 포함할 수 있다. 상기 쇼핑 어플리케이션에 대한 어플리케이션 억세스 메카니즘은 또한 쇼핑 카트에 제품들을 추가하고, 체크 아웃을 진행하는 것과 같은 하나 혹은 그 이상의 동작들에 대한 참조들을 포함할 수 있다.
도 3A 및 도 3B에 도시되어 있는 바와 같이, 몇몇 구현들에서, 상기 추천 바(220)는 상기 스크린(202)의 맨 아래 부분에 디스플레이된다. 하지만, 상기 추천 바(220)는 상기 스크린(202)의 어느 부분에라도 디스플레이될 수 있다. 도 3A에 도시되어 있는 바와 같이, 상기 추천 어플리케이션들(222a-222d)이 디스플레이되어 있다. 이메일 통지(206), 일 예로, G메일(GMAIL®)을 수신한 것으로 인해, 상기 추천 시스템(300)은 상기 추천 바(220)가 도 3B에 도시되어 있는 바와 같이 상기 G메일 어플리케이션을 포함하도록 업데이트한다. 도 3B는 도 3A의 추천 어플리케이션을 대체하는 추천 어플리케이션(222e)을 가지는 업데이트된 추천 바(220)를 도시하고 있다. 다른 구현에서, 도 3C에 도시되어 있는 바와 같이, 상기 추천 바(220)는 숨겨질 수 있고, 상기 사용자(10)는 도 3D에 도시되어 있는 바와 같이, 상기 추천 어플리케이션들(222)(즉, 각 아이콘들)을 보기 위해 그/그녀의 손가락을 제1 위치 P1으로부터 제2 위치 P2로 움직여야만 한다. 상기 추천 시스템(300)이 상기 통지 데이터(207), 즉 이메일 컨텐트가 상기 추천 시스템(300)을 트리거하여 추천되는 다른 어플리케이션(210)을 트리거 할 수 있는 데이터를 포함할 경우, 상기 추천 시스템(300)은 한 개를 초과하는 어플리케이션(210)(상기 G메일 어플리케이션(222e))을 추천할 수 있다.
도 4는 메모리 하드웨어(50), 네트워크 인터페이스 디바이스(252), 사용자 인터페이스 디바이스(254)(일 예로, 스크린)와 통신하는 데이터 프로세싱 하드웨어(240)을 포함하는 예제 사용자 디바이스(200)를 도시하고 있다. 상기 사용자 디바이스(200)는 뿐만 아니라 다른 컴포넌트들도 포함할 수 있다. 상기 데이터 프로세싱 하드웨어(240)는 상기 데이터 프로세싱 하드웨어(240)에서 실행될 때 상기 데이터 프로세싱 하드웨어(240)가 동작들을 수행하도록 하는, 상기 메모리 하드웨어(250)에 저장되어 있는 명령어들을 실행하도록 구성된다. 몇몇 예제들에서, 상기 데이터 프로세싱 하드웨어(240)는 네이티브 어플리케이션(210a), 웹 브라우저(210b), 동작 시스템(216) 중 하나 혹은 그 이상을 실행하며, 상기 네이티브 어플리케이션(210a), 웹 브라우저(210b), 운영 시스템(216) 모두는 컴퓨터 리드가능 명령어들로 구현될 수 있다. 상기 운영 시스템(216)은 상기 데이터 프로세싱 하드웨어(240)와 어플리케이션들(210)간의 인터페이스로 동작할 수 있다.
몇몇 구현들에서, 상기 데이터 프로세싱 하드웨어(240)는 상기 론처 모듈(217)과 함께 구성되는 추천 론처(214)를 실행한다. 상기 론처 모듈(217)은 네이티브 어플리케이션(210a), 즉 상기 추천 론처(214)에 삽입되는 컴퓨터 리드 가능 명령어들의 집합이다. 상기 도시되어 있는 예제에서, 상기 데이터 프로세싱 하드웨어(240)는 상기 추천 모듈(310)을 실행하고, 상기 저장 디바이스(250)는 상기 추천 데이터 스토어(320)를 포함한다. 다른 예제들에서, 상기 추천 데이터 스토어(320)는 상기 사용자 디바이스(200)로부터 원격에 위치된다.
상기 메모리 하드웨어(250)는 컴퓨팅 디바이스에 의해 사용되는 비-일시적 메모리인 프로그램들(일 예로, 일련의 명령어들) 혹은 데이터(일 예로, 프로그램 스테이트 정보)를 임시 혹은 영구 기반으로 저장하는데 사용되는 물리 디바이스들이 될 수 있다. 일 예로, 상기 메모리 하드웨어(250)는 상기 네이티브 어플리케이션들(210a), 웹 브라우저(210b), 추천 론처(214), 및/혹은 추천 모듈(310)을 구성하는 컴퓨터 리드 가능 명령어들을 저장할 수 있다. 상기 비-일시적 메모리는 휘발성 및/혹은 비휘발성 주소화 반도체 메모리(non-volatile addressable semiconductor memory)가 될 수 있다. 상기 비휘발성 메모리의 예들은 플래쉬 메모리 및 리드-온니 메모리(read-only memory: ROM)/프로그램 가능 리드-온니 메모리(programmable read-only memory: PROM)/삭제 가능 프로그램 가능 리드-온니 메모리(erasable programmable read-only memory: EPROM)/전기적 삭제 가능 프로그램 가능 리드-온니 메모리(electronically erasable programmable read-only memory: EEPROM)(일 예로, 일반적으로 부트 프로그램(boot program)들과 같은 펌웨어(firmware)를 위해 사용되는)를 포함할 수 있으며, 그렇다고 이에 한정되는 것은 아니다. 휘발성 메모리의 예들은 랜덤 억세스 메모리(random access memory: RAM), 다이나믹 랜덤 억세스 메모리(dynamic random access memory: DRAM), 정적 랜덤 억세스 메모리(static random access memory: SRAM), 상변화 메모리(phase change memory: PCM)를 포함할 수 있으며, 그렇다고 이에 한정되는 것은 아니다. 상기 네트워크 인터페이스 디바이스(252)는 상기 네트워크(120)와 통신하도록 구성되는 하나 혹은 그 이상의 디바이스들을 포함한다.
상기 네트워크 인터페이스(252)는 유선 혹은 무선 통신을 수행하는 하나 혹은 그 이상의 송수신기들을 포함할 수 있다. 상기 네트워크 인터페이스(252)의 예제들은 상기 IEEE 802.11 무선 스탠다드, 이더넷 포트, 무선 송신기, 범용 직렬 버스(universal serial bus: USB) 포트를 사용하여 통신을 수행하도록 구성되는 송수신기를 포함하며, 그렇다고 이에 한정되지는 않는다. 상기 사용자 인터페이스(254)는 사용자(10)로부터 입력을 수신하고, 및/혹은 상기 사용자(10)로 출력을 제공하는 하나 혹은 그 이상의 디바이스들을 포함한다. 상기 사용자 인터페이스(254)는 터치스크린, 디스플레이, 쿼티(QWERTY) 키보드, 뉴메릭(numeric) 키패드, 터치패드, 마이크로폰, 및/혹은 스피커들을 포함할 수 있으며, 그렇다고 이에 한정되지는 않는다.
도 5는 사용자 디바이스 디스플레이(202)의 추천 바(220)에 디스플레이되는 어플리케이션들(210,222)(일 예로, 추천 어플리케이션들(222))을 추천하는 방법(500)에 대한 동작들의 예제 배열을 제공한다. 상기 방법(500)은 도 1 내지 도 4에 도시되어 있는 바와 같은 사용자 디바이스(200) 및 추천 시스템(300)을 참조하여 설명된다.
블록 502에서, 상기 방법(500)은 데이터 프로세싱 하드웨어(일 예로, 사용자 디바이스(200) 혹은 추천 시스템(300))에서, 어플리케이션(210)에 상응하고, 사용자(10)와 연관되는 통지를 수신하는 것을 포함한다. 블록 504에서, 상기 방법(500)은 상기 데이터 프로세싱 하드웨어가 상기 통지(206)와 연관되는 통지 데이터(207)를 결정하는 것을 포함한다. 상기 통지 데이터(207)는 송신기 데이터, 수신기 데이터, 주제 데이터, 메시지 데이터 중 하나 혹은 그 이상을 포함할 수 있다. 블록 506에서, 상기 방법(500)은 또한 상기 데이터 프로세싱 하드웨어가 상기 통지 데이터(207)를 기반으로 상기 사용자(10)와 연관되는 어플리케이션들(210)의 집합의 하나 혹은 그 이상의 어플리케이션들(210)을 사용자(10) 선택을 위한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션(222)으로 식별하는 것을 포함한다. 블록 508에서, 상기 방법(500)은 또한 상기 데이터 프로세싱 하드웨어와 통신하는 스크린(202)에 각 추천 어플리케이션(222)에 대한 사용자 선택 가능 링크(224)를 디스플레이하는 것을 포함한다. 각 사용자 선택 가능 링크(224)는 상기 상응하는 추천 어플리케이션(222)를 참조하고, 상기 상응하는 추천 어플리케이션(222)에 대한 수행 가능 동작을 나타내는 어플리케이션 억세스 메카니즘과 연관된다. 몇몇 구현들에서, 상기 통지(206)는 이메일 통지(206), 텍스트 메시지 통지(206), 달력 통지(206) 및 어플리케이션 통지(206) 중 하나 혹은 그 이상을 포함한다.
몇몇 예제들에서, 상기 어플리케이션들(210)의 집합의 하나 혹은 그 이상의 어플리케이션들을 상기 사용자(10) 선택에 대한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션(222)으로 식별하는 것은 상기 데이터 프로세싱 하드웨어가 상기 어플리케이션들(210)의 집합의 하나 혹은 그 이상의 어플리케이션들과 연관되는 하나 혹은 그 이상의 키워드들을 식별하는 것을 포함한다. 추가적으로, 상기 어플리케이션들(210)의 집합의 하나 혹은 그 이상의 어플리케이션들을 상기 사용자(10) 선택에 대한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션(222e)으로 식별하는 것은 상기 데이터 프로세싱 하드웨어가 상기 통지 데이터(207)가 하나 혹은 그 이상의 키워드들을 포함하는지 여부를 결정하는 것과, 상기 통지 데이터(207)가 하나 혹은 그 이상의 키워드들을 포함할 때 상기 하나 혹은 그 이상의 어플리케이션들(210)을 상기 하나 혹은 그 이상의 추천 어플리케이션(222e)으로 식별하는 것을 포함한다.
상기 사용자 선택을 위한 기준들은 상기 통지(206)를 수신한 후 시간 임계 주기 내에서 상기 사용자 선택의 임계 확률을 가지는 것을 포함할 수 있다. 몇몇 예제들에서, 상기 어플리케이션들(210)의 집합의 각 어플리케이션(210)에 대해, 상기 방법(500)은 상기 데이터 프로세싱 하드웨어가 상기 통지(206)을 수신한 후 상기 시간 임계 주기(T) 내에서 상기 어플리케이션(210)의 사용자 선택의 확률을 결정하는 것과, 상기 어플리케이션(210)의 사용자 선택의 확률이 상기 임계 확률을 만족할 때 상기 어플리케이션(210)을 추천 어플리케이션(222)으로 식별하는 것을 포함한다.
몇몇 구현들에서, 상기 사용자 선택을 위한 기준들은 시각, 요일, 위치, 사용자 디바이스 서비스 상태, 사용자 디바이스 이동 상태, 디바이스 플랫폼, 혹은 컨텍스트 정보 중 적어도 하나를 포함한다. 상기 방법(500)은 또한 상기 프로세싱 하드웨어가 상기 기준들을 기반으로 어플리케이션들(210)의 집합에 관해 사용자 행동 패턴들을 결정하는 것을 포함할 수 있다. 상기 어플리케이션들(210)의 집합의 각 어플리케이션(210)에 대해, 상기 방법(500)은 상기 프로세싱 하드웨어가 상기 사용자 행동 패턴들을 기반으로 상기 통지(206)를 수신한 후 상기 어플리케이션(210)의 사용자 선택의 확률을 결정하는 것과, 상기 어플리케이션(210)의 사용자 선택의 확률이 확률 기준을 만족할 때 상기 데이터 프로세싱 하드웨어가 상기 어플리케이션(210)을 추천 어플리케이션(222)으로 식별하는 것을 포함할 수 있다. 몇몇 예제들에서, 상기 방법(500)은 다른 사용자(10)의 사용자 행동 패턴들을 기반으로 상기 어플리케이션(210)의 사용자 선택의 확률을 결정하는 것을 더 포함한다. 상기 사용자 행동 패턴들은 상기 어플리케이션들(210)의 집합의 어플리케이션(210)을 선택하는 것과 상기 어플리케이션들(210)의 집합의 어플리케이션(210)에 대해 하나 혹은 그 이상의 동작들을 수행하는 것 중 적어도 하나를 포함한다.
상기 방법(500)은 또한 상기 데이터 프로세싱 하드웨어에서 상기 하나 혹은 그 이상의 사용자 선택 가능 링크(224) 중 하나에 대한 사용자 선택의 지시를 수신하는 것과, 상기 데이터 프로세싱 하드웨어에서 상기 선택된 사용자 선택 가능 링크(224)과 연관되는 어플리케이션 억세스 메카니즘을 실행하는 것을 포함할 수 있다. 상기 실행되는, 상기 선택된 사용자 선택 가능 링크(224)과 연관되는 어플리케이션 억세스 메카니즘은 상기 상응하는 추천 어플리케이션(222)을 시작하고, 상기 추천 어플리케이션(222)을 상기 어플리케이션 억세스 메카니즘에 의해 명시되는 어플리케이션 스테이트로 설정한다.
도 6은 본 문서에서 설명되고 있는 시스템들 및 방법들을 구현하기 위해 사용될 수 있는 예제 컴퓨팅 디바이스(600)의 개략도이다. 상기 컴퓨팅 디바이스(600)는 랩탑들, 데스크탑들, 워크스테이션들, 개인용 정보 단말기들, 서버들, 블레이드 서버(blade server)들, 메인 프레임(mainframe)들 및 다른 적합한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 나타내도록 의도된다. 여기에 도시되어 있는 컴포넌트(component)들, 그 연결들 및 관계들 및 그 기능들은 예제가 될 뿐이라는 것을 의미하며, 이 문서에서 설명되고, 및/혹은 청구되는 발명들의 구현들을 한정하는 것을 의미하는 것은 아니다.
상기 컴퓨팅 디바이스(600)는 프로세서(112, 240, 610), 메모리(620), 저장 디바이스(114, 250, 320, 630), 메모리(620) 및 고속 확장 포트들(650)에 연결되는 고속 인터페이스/제어기(640) 및 저속 버스(670) 및 저장 디바이스(630)에 연결되는 저속 인터페이스/제어기(660)를 포함한다. 상기 컴포넌트들(610, 620, 630, 640, 650, 660) 각각은 다양한 버스들을 사용하여 상호 연결되고, 공통 마더보드에 실장되거나 혹은 적합한 다른 방식들로 실장될 수 있다. 상기 프로세서(610)는 상기 메모리(620)에 저장되어 있거나 혹은 상기 저장 디바이스(630)에 저장되어 있는 명령어들을 포함하는, 상기 컴퓨팅 디바이스(630) 내에서의 실행을 위한 명령어들을 프로세싱하여 상기 고속 인터페이스(640)에 연결되는 디스플레이(680)와 같은 외부 입/출력 디바이스 상의 그래픽 사용자 인터페이스(graphical user interface: GUI)에 대한 그래픽 정보를 디스플레이할 수 있다. 다른 구현들에서, 다수의 프로세서들 및/혹은 다수의 버스들은 다수의 메모리들 및 다수의 타입들의 메모리와 함께 적합하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(600)은 상기 필요한 동작들의 부분들을 제공하는 각 디바이스(일 예로, 서버 뱅크, 블레이드 서버들의 그룹, 혹은 멀티-프로세서 시스템으로서)와 연결될 수 있다.
상기 메모리(620)는 상기 컴퓨팅 디바이스(600) 내에서 정보를 비일시적으로 저장한다. 상기 메모리(620)는 컴퓨터-리드 가능 매체, 휘발성 메모리 유닛(들), 혹은 비휘발성 메모리 유닛(들)이 될 수 있다. 상기 비-일시적 메모리(620)는 상기 컴퓨팅 디바이스(600)에 의한 사용을 위해 임시 기반으로 혹은 영구 기반으로 프로그램들(일 예로, 명령어들의 시퀀스들) 혹은 데이터(일 예로, 프로그램 스테이트 정보)를 저장하기 위해 사용되는 물리 디바이스들일 수 있다. 상기 비휘발성 메모리의 예들은 플래쉬 메모리, 리드-온니 메모리(read-only memory: ROM)/프로그램 가능 리드-온니 메모리(programmable read-only memory: PROM)/삭제 가능 프로그램 가능 리드-온니 메모리(erasable programmable read-only memory: EPROM), 전기적 삭제 가능 프로그램 가능 리드-온니 메모리(electronically erasable programmable read-only memory: EEPROM)(일 예로, 일반적으로 부트 프로그램(boot program)들과 같은 펌웨어(firmware)를 위해 사용되는)를 포함할 수 있으며, 그렇다고 이에 한정되는 것은 아니다. 휘발성 메모리의 예들은 랜덤 억세스 메모리(random access memory: RAM), 다이나믹 랜덤 억세스 메모리(dynamic random access memory: DRAM), 정적 랜덤 억세스 메모리(static random access memory: SRAM), 상변화 메모리(phase change memory: PCM)를 포함할 수 있으며, 그렇다고 이에 한정되는 것은 아니다.
상기 저장 디바이스(630)는 상기 컴퓨팅 디바이스(600)에 대한 대용량 저장을 제공할 수 있다. 몇몇 구현들에서, 상기 저장 디바이스(630)는 컴퓨터-리드 가능 매체이다. 다양한 다른 구현들에서, 상기 저장 디바이스(630)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스, 혹은 테이프 디바이스, 플래쉬 메모리, 혹은 다른 유사한 솔리드 스테이트(solid state) 메모리 디바이스, 혹은 저장 영역 네트워크 혹은 다른 구성들에 포함되는 디바이스들을 포함하는 디바이스들의 어레이가 될 수 있다. 추가적인 구현들에서, 컴퓨터 프로그램 제품은 정보 캐리어 방식으로 현실적으로(tangibly) 실시된다. 상기 컴퓨터 프로그램 제품은 실행될 때 상기에서 설명한 바와 같은 하나 혹은 그 이상의 방법들을 수행하는 명령어들을 포함한다. 상기 정보 캐리어는 상기 메모리(620), 저장 디바이스(630), 혹은 프로세서(610)상의 메모리와 같은, 컴퓨터-혹은 머신(machine)-리드 가능 매체이다.
상기 고속 제어기(640)는 상기 컴퓨팅 디바이스(600)에 대해 대역폭-집약적(bandwidth-intensive) 동작들을 관리하며, 이에 반해 상기 저속 제어기(660)는 더 낮은 대역폭-집중적 동작들을 관리한다. 상기와 같은 역할 할당은 오직 예시적일 뿐이다. 몇몇 구현들에서, 상기 고속 제어기(640)는 상기 메모리(620), 디스플레이(680)(일 예로, 그래픽 프로세서 혹은 가속기를 통해)에 연결되며, 그리고 다양한 확장 카드들(도시되지 않은)을 수용할 수 있는 고속 확장 포트들(650)에 연결된다. 몇몇 구현들에서, 저속 제어기(660)는 저장 디바이스(630) 및 저속 확장 포트(670)에 연결된다. 다양한 통신 포트들(일 예로, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 상기 저속 확장 포트(670)는 일 예로 네트워크 어댑터를 통해 키보드, 포인팅 디바이스(pointing device), 스캐너, 혹은 스위치 혹은 라우터와 같은 네트워킹 디바이스와 같은 하나 혹은 그 이상의 입/출력 디바이스들에 연결될 수 있다.
상기 컴퓨팅 디바이스(600)는 상기 도면에 도시되어 있는 바와 같이 다수의 다른 형태들로 구현될 수 있다. 일 예로, 상기 컴퓨팅 디바이스(600)는 표준 서버(600a)로서 구현되거나, 또는 상기 서버들(600a)의 그룹에서 다수 번 구현되거나, 혹은 랩탑 컴퓨터(600b)로서 구현되거나, 혹은 랙 서버 시스템(rack server system)(600c)의 일부로서 구현될 수 있다.
여기에서 설명되는 시스템들 및 기술들의 다양한 구현들은 디지털 전자 및/혹은 광 회로, 집적 회로, 특별히 설계된 주문형 반도체(application specific integrated circuit: ASIC)들, 컴퓨터 하드웨어, 펌웨어(firmware), 소프트웨어, 및/혹은 그 조합들로 실현될 수 있다. 이런 다양한 구현들은 적어도 하나의 입력 디바이스에서 그리고 적어도 하나의 출력 디바이스에서, 저장 시스템으로부터 데이터 및 명령어들을 수신하고, 상기 저장 시스템으로 데이터 및 명령어들을 송신하도록 연결되는, 특수한 혹은 범용이 될 수 있는, 적어도 하나의 프로그램 가능 프로세서를 포함하는 프로그램 가능 시스템에서 실행 가능 및/혹은 해석 가능한 하나 혹은 그 이상의 컴퓨터 프로그램들에서의 구현을 포함할 수 있다.
이런 컴퓨터 프로그램들(프로그램들, 소프트웨어, 소프트웨어 어플리케이션 혹은 코드로도 알려져 있는)은 프로그램 가능 프로세서에 대한 머신 명령어들을 포함하고, 또한 상위 레벨 절차의, 및/혹은 객체 지향(object-oriented) 프로그래밍 언어, 및/혹은 어셈블리(assembly)/머신 언어로 구현될 수 있다. 여기에서 사용되는 바와 같이, 용어들 "머신 리드 가능 매체" 및 "컴퓨터 리드 가능 매체"는 머신 명령어들을 머신 리드 가능 신호로서 수신하는 머신 리드 가능 매체를 포함하는 프로그램 가능 프로세서로 머신 명령어들 및/혹은 데이터를 제공하기 위해 사용되는 컴퓨터 프로그램 제품, 비-일시적(non-transitory) 컴퓨터 리드 가능 매체, 장치 및/혹은 디바이스(일 예로, 마그네틱 디스크들, 광 디스크들, 메모리, 프로그램 가능 논리 디바이스(Programmable Logic Device: PLD))를 나타낸다. 용어 "머신 리드 가능 신호"는 머신 명령어들 및/혹은 데이터를 프로그램 가능 프로세서로 제공하기 위해 사용되는 신호를 나타낸다.
본 명세서에서 설명되는 주제 및 기능 동작들의 구현들은 디지털 전자 회로로, 혹은 컴퓨터 소프트웨어, 펌웨어, 혹은 본 명세서에 개시되어 있는 구조들 및 그 구조적 균등물들을 포함하는 하드웨어로, 혹은 그들 중 하나 혹은 그 이상의 결합들로 구현될 수 있다. 또한, 본 명세서에서 설명되는 주제는 하나 혹은 그 이상의 컴퓨터 프로그램 제품들, 즉 데이터 프로세싱 장치의 동작을 제어하는 것에 의한 혹은 제어하는 것을 위한 실행에 대해 컴퓨터 리드가능 매체에서 인코딩되는 컴퓨터 프로그램 명령어들의 하나 혹은 그 이상의 모듈(module)들로서 구현될 수 있다. 상기 컴퓨터 리드 가능 매체는 머신 리드 가능 저장 디바이스, 머신 리드 가능 저장 서브스트레이트(substrate), 메모리 디바이스, 머신 리드 가능 전파 신호에 영향을 주는 물질의 성분, 혹은 그들 중 하나 혹은 그 이상의 조합이 될 수 있다. 용어들 "데이터 프로세싱 장치", "컴퓨팅 디바이스" 및 "컴퓨팅 프로세서"는 일 예로 프로그램 가능 프로세서, 컴퓨터, 혹은 다수의 프로세서들 혹은 컴퓨터들을 포함하는 모든 장치들, 디바이스들, 데이터를 프로세싱하는 머신들을 포함한다. 상기 장치는, 하드웨어 뿐만 아니라, 논의가 되고 있는 상기 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 일 예로, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 혹은 그들 중 하나 혹은 그 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 적합한 수신기 장치로의 송신을 위한 정보를 인코딩하기 위해 생성되는 인위적으로 생성된 신호, 일 예로, 머신-생성 전자, 광, 혹은 전기장 신호이다.
컴퓨터 프로그램(또한 어플리케이션, 프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트(script), 혹은 코드로 알려진)은 컴파일된(compiled) 혹은 해석된 언어들을 포함하는 프로그래밍 언어의 어떤 형태로라도 쓰여질 수 있으며, 상기 컴퓨터 프로그램은 스탠드-얼론(stand-alone) 프로그램으로, 혹은 모듈, 컴포넌트, 서브루틴, 혹은 컴퓨팅 환경에서 사용되는 것에 적합한 다른 유닛으로 포함하는 어떤 형태로도 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템에서 파일에 필수적으로 상응하지는 않는다. 프로그램은 다른 프로그램들 혹은 데이터(일 예로, 마크업(markup) 언어 문서에 저장되어 있는 하나 혹은 그 이상의 스크립트들)을 유지하는 파일의 일부에, 논의되고 있는 프로그램에 전용인 단일 파일에, 혹은 다수의 협력 파일들(일 예로, 하나 혹은 그 이상의 모듈들, 서브 프로그램들, 혹은 코드의 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 한 개의 컴퓨터에서 혹은 한 사이트 혹은 다수의 사이트들에 걸쳐 분산되어 위치하고 통신 네트워크에 의해 서로 연결되는 다수의 컴퓨터들에서 실행되도록 배치될 수 있다.
본 명세서에서 설명되는 프로세스들 및 논리 플로우들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하는 하나 혹은 그 이상의 컴퓨터 프로그램들을 실행하는 하나 혹은 그 이상의 프로그램 가능 프로세서들에 의해 수행될 수 있다. 상기 프로세스들 및 논리 플로우들은 또한 특수 목적 논리 회로, 일 예로 필드 프로그램 가능 게이트 어레이(field programmable gate array: FPGA) 혹은 주문형 반도체(application specific integrated circuit: ASIC)에 의해 수행될 수 있고, 또한 장치는 상기 특수 목적 논리 회로, FPGA 혹은 ASIC로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은 일 예로 일반 및 특수 목적 마이크로프로세서들 둘 다 및 임의의 종류의 디지털 컴퓨터의 하나 혹은 그 이상의 프로세서들을 포함할 수 있다. 일반적으로, 프로세서는 리드 온니 메모리 혹은 랜덤 억세스 메모리 혹은 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령어들을 수행하는 프로세서와 명령어들 및 데이터를 저장하는 하나 혹은 그 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 혹은 그 이상의 대용량 저장 디바이스들, 일 예로, 마그네틱, 마그네토(magneto) 광 디스크들, 혹은 광 디스크들을 포함하거나 혹은 상기 하나 혹은 그 이상의 대용량 저장 디바이스들로부터 데이터를 수신하거나 혹은 데이터를 전달하도록 효율적으로 연결되거나, 혹은 그 둘 다일 것이다. 하지만, 컴퓨터는 상기와 같은 디바이스들을 반드시 가질 필요는 없다. 또한, 컴퓨터는 몇 가지로 예로 다른 디바이스, 일 예로 이동 전화기, 개인용 정보 단말기(personal digital assistant: PDA), 이동 오디오 플레이어, 전세계 측위 시스템(Global Positioning System: GPS) 수신기에 내장될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하는데 적합한 컴퓨터 리드 가능 미디어는 모든 형태들의 비휘발성 메모리, 일 예로 반도체 메모리 디바이스들, 일 예로, EPROM, EEPROM 및 플래쉬 메모리 디바이스들을 포함하는 미디어 및 메모리 디바이스들; 마그네틱 디스크들, 일 예로 내부 하드 디스크들 혹은 제거 가능 디스크들; 마그네토 광 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함한다. 상기 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 혹은 특수 목적 논리 회로로 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 개시의 하나 혹은 그 이상의 측면들은 사용자에게 정보를 디스플레이 하기 위한 디스플레이 디바이스, 일 예로 음극선관(cathode ray tube: CRT), 액정 디스플레이(liquid crystal display: LCD) 모니터, 혹은 터치 스크린, 그리고 선택적으로 상기 사용자가 상기 컴퓨터로 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 일 예로 마우스 혹은 트랙볼(trackball)을 가지는 컴퓨터에서 구현될 수 있다. 다른 종류들의 디바이스들이 사용자와의 상호 작용을 제공하기 위해 사용될 수 있다; 일 예로, 상기 사용자로 제공되는 피드백은 어떤 형태의 감각적 피드백, 일 예로, 시각적 피드백, 청각적 피드백, 혹은 촉각적 피드백이라도 될 수 있고; 상기 사용자로부터의 입력은 음향적, 언어, 혹은 촉각적 입력을 포함하는 어떤 형태로도 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서들을 송신함으로써, 그리고 상기 사용자에 의해 사용되는 디바이스로부터 문서들을 수신함으로써 상기 사용자와 상호 작용할 수 있다; 일 예로, 웹 브라우저로부터 수신되는 요청들에 대한 응답으로 사용자의 클라이언트 디바이스에서 상기 웹 브라우저로 웹 페이지들을 송신함으로써.
본 개시의 하나 혹은 그 이상의 측면들은 백엔드(backend) 컴포넌트, 일 예로, 데이터 서버를 포함하거나, 혹은 미들웨어(middleware), 일 예로, 어플리케이션 서버를 포함하거나, 혹은 프론트엔드(frontend), 일 예로 그래픽 사용자 인터페이스 혹은 사용자가 본 개시에서 설명된 바와 같은 주제의 구현과 상호 작용할 수 있는 웹 브라우저, 혹은 하나 혹은 그 이상의 상기와 같은 백엔드, 미들웨어, 혹은 프론트엔드 컴포넌트들의 조합을 포함하는 컴퓨팅 시스템으로 구현될 수 있다. 상기 시스템의 컴포넌트들은 디지털 데이터 통신의 어떤 형태 혹은 매체, 일 예로 통신 네트워크에 의해 서로 연결될 수 있다. 통신 네트워크들의 예제들은 근거리 네트워크(local area network: LAN), 광역 네트워크(wide area network: WAN), 인터-네트워크(inter-network)(일 예로, 인터넷) 및 피어-투-피어 네트워크(peer-to-peer network)들(일 예로, 애드 혹(ad hoc) 피어-투-피어 네트워크들)을 포함한다.
상기 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 이격되어 있으며, 일반적으로 통신 네트워크를 통해서 상호 작용한다. 상기 클라이언트 및 서버의 관계는 각 컴퓨터들에서 실행중이고 서로 클라이언트-서버 관계를 가지는 컴퓨터 프로그램들로 인해 발생한다. 몇몇 구현들에서, 서버는 데이터(일 예로, HTML 페이지)를 클라이언트 디바이스로 (일 예로, 상기 클라이언트 디바이스와 상호 작용하는 사용자로 데이터를 디스플레이하고 상기 사용자로부터 사용자 입력을 수신하기 위한 목적들을 위해) 송신한다. 상기 클라이언트 디바이스에서 생성된 데이터(일 예로, 상기 사용자 상호 작용의 결과)는 상기 서버에서 상기 클라이언트 디바이스로부터 수신될 수 있다.
본 명세서가 많은 구체적인 사항들을 포함하고 있을 지라도, 이들은 본 개시의 혹은 청구하고자 하는 것의 범위에 대한 제한들로서 이해되어서는 안 될 것이며, 이보다는 본 개시의 특정 구현들에 대해 특정한 설명들 혹은 특징들로서 이해되어야만 할 것이다. 개별 구현들의 컨텍스트에서 본 명세서에서 설명되는 특정 기능들은 또한 단일 구현의 조합에서 구현될 수 있다. 이와는 반대로, 단일 구현의 컨텍스트에서 설명되는 다양한 특징들은 또한 다수의 구현들에서 별도로 혹은 적합한 서브-조합에서 구현될 수 있다. 또한, 특징들이 특정 조합들로 동작하고, 혹은 그 자체로 최초에 청구되는 바와 같이 상기에서 설명될 수 있다고 할지라도, 청구된 조합으로부터의 하나 혹은 그 이상의 특징들은 일부의 경우들에서는 상기 조합에서 배제될 수 있고, 상기 청구된 조합은 서브-조합 혹은 서브-조합의 변경으로 직결될 수 있다.
유사하게, 동작들이 도면들에서 특정 순서로 도시되어 있다고 할지라도, 이는 상기와 같은 동작들이 상기 도시되어 있는 특정한 순서 혹은 일련의 순서로 수행된다는 것 혹은 바람직한 결과들을 획득하기 위해 도시된 바와 같은 모든 동작들이 수행된다는 것을 필요로 한다고 이해되어서는 안 될 것이다. 특정 실시 예들에서, 멀티-태스킹(multi-tasking) 및 병렬 프로세싱이 유리할 수 있다. 또한, 상기에서 설명한 바와 같은 실시 예들에서의 다양한 시스템 컴포넌트들의 분할이 모든 실시 예들에서의 상기와 같은 분할을 필요로 하는 것으로 이해되어서는 안되며, 상기 설명한 바와 같은 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 혹은 다수의 소프트웨어 제품들로 패키지화될 수 있다는 것이 이해되어야만 할 것이다.
다수의 구현들이 설명된 바 있다. 그럼에도 불구하고, 다양한 수정들이 본 개시의 사상 및 범위로부터 벗어남이 없이 이루어질 수 있다는 것이 이해될 수 있을 것이다. 따라서, 다른 구현들은 다음과 같은 청구항들의 범위 내에 존재한다. 일 예로, 청구항들에서 설명되는 동작들은 다른 순서로 수행될 수 있고 또한 바람직한 결과들을 성취할 수 있다.

Claims (20)

  1. 방법에 있어서,
    데이터 프로세싱 하드웨어에서, 어플리케이션에 상응하고, 사용자와 연관되는 통지를 수신하는 과정과;
    상기 데이터 프로세싱 하드웨어가 상기 통지와 연관되는 통지 데이터를 결정하는 과정과, 상기 통지 데이터는 송신기 데이터, 수신기 데이터, 주제 데이터, 메시지 데이터 중 하나 혹은 그 이상을 포함하며;
    상기 통지 데이터를 기반으로 상기 데이터 프로세싱 하드웨어는 상기 사용자와 연관되는 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들을 사용자 선택을 위한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 과정과;
    상기 데이터 프로세싱 하드웨어와 통신하는 스크린 상에 각 추천 어플리케이션에 대한 사용자 선택 가능 링크를 디스플레이하는 과정을 포함하며, 어플리케이션 억세스 메카니즘(application access mechanism)과 연관되는 각 사용자 선택 가능 링크는 상기 상응하는 추천 어플리케이션을 참조하고 상기 상응하는 추천 어플리케이션에 대한 수행 가능 동작을 지시함을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 통지는 이메일 통지, 텍스트 메시지 통지, 달력 통지, 어플리케이션 통지 중 하나 혹은 그 이상을 포함함을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들을 상기 사용자 선택을 위한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 과정은:
    상기 데이터 프로세싱 하드웨어가 상기 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들과 연관되는 하나 혹은 그 이상의 키워드(keyword)들을 식별하는 과정과;
    상기 데이터 프로세싱 하드웨어가 상기 통지 데이터가 상기 하나 혹은 그 이상의 키워드들을 포함하는지 여부를 결정하는 과정과;
    상기 통지 데이터가 상기 하나 혹은 그 이상의 키워드들을 포함할 때 상기 데이터 프로세싱 하드웨어는 상기 하나 혹은 그 이상의 어플리케이션들을 상기 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 과정을 포함함을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 사용자 선택을 위한 기준들은 상기 통지를 수신한 후 시간 임계 주기 내에 상기 사용자 선택의 임계 확률을 가지는 것을 포함함을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 어플리케이션들의 집합의 각 어플리케이션에 대해서:
    상기 데이터 프로세싱 하드웨어가 상기 통지를 수신한 후 상기 시간 임계 주기 내의 상기 어플리케이션의 사용자 선택의 확률을 결정하는 과정과;
    상기 데이터 프로세싱 하드웨어는 상기 어플리케이션의 사용자 선택의 확률이 상기 임계 확률을 만족할 때 상기 어플리케이션을 추천 어플리케이션으로 식별하는 과정을 더 포함함을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 사용자 선택을 위한 기준들은 시각, 요일, 위치, 사용자 디바이스 서비스 상태, 사용자 디바이스 이동 상태, 디바이스 플랫폼(platform), 혹은 컨텍스트 정보(contextual information) 중 적어도 하나를 포함함을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 데이터 프로세싱 하드웨어가 상기 기준들을 기반으로 상기 어플리케이션들의 집합에 관한 사용자 행동 패턴들을 결정하는 과정과;
    상기 어플리케이션들의 집합의 각 어플리케이션에 대해:
    상기 데이터 프로세싱 하드웨어가 상기 사용자 행동 패턴들을 기반으로 상기 통지를 수신한 후 상기 어플리케이션의 사용자 선택의 확률을 결정하는 과정과;
    상기 데이터 프로세싱 하드웨어는 상기 어플리케이션의 사용자 선택의 확률이 확률 기준을 만족할 때 상기 어플리케이션을 추천 어플리케이션으로 식별하는 과정을 더 포함함을 특징으로 하는 방법.
  8. 제7항에 있어서,
    다른 사용자의 사용자 행동 패턴들을 기반으로 상기 어플리케이션의 사용자 선택의 확률을 결정하는 과정을 더 포함함을 특징으로 하는 방법.
  9. 제6항에 있어서,
    상기 사용자 행동 패턴들은 상기 어플리케이션들의 집합의 어플리케이션을 선택하는 것 혹은 상기 어플리케이션들의 집합의 어플리케이션에 대해 하나 혹은 그 이상의 동작들을 수행하는 것 중 적어도 하나를 포함함을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 데이터 프로세싱 하드웨어에서 상기 하나 혹은 그 이상의 사용자 선택 가능 링크들 중 하나의 사용자 선택의 지시를 수신하는 과정과;
    상기 데이터 프로세싱 하드웨어에서 상기 선택된 사용자 선택 가능 링크와 연관되는 어플리케이션 억세스 메카니즘을 실행하는 과정을 더 포함하며,
    상기 선택된 사용자 선택 가능 링크와 연관되는, 상기 실행되는 어플리케이션 억세스 메카니즘은 상기 상응하는 추천 어플리케이션을 시작하고, 상기 추천 어플리케이션을 상기 어플리케이션 억세스 메카니즘에 의해 명시되는 어플리케이션 스테이트로 설정함을 특징으로 하는 방법.
  11. 시스템에 있어서,
    데이터 프로세싱 하드웨어와;
    상기 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함하며, 상기 메모리 하드웨어는 상기 데이터 프로세싱 하드웨어에서 실행될 때 상기 데이터 프로세싱 하드웨어가:
    어플리케이션에 상응하고, 사용자와 연관되는 통지를 수신하는 것과;
    상기 통지와 연관되는 통지 데이터를 결정하는 것과, 상기 통지 데이터는 송신기 데이터, 수신기 데이터, 주제 데이터, 메시지 데이터 중 하나 혹은 그 이상을 포함하며;
    상기 통지 데이터를 기반으로 상기 사용자와 연관되는 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들을 사용자 선택을 위한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 것과;
    상기 데이터 프로세싱 하드웨어와 통신하는 스크린 상에 각 추천 어플리케이션에 대한 사용자 선택 가능 링크를 디스플레이하는 것을 포함하는 동작들을 수행하도록 하는 명령어들을 저장하며, 어플리케이션 억세스 메카니즘(application access mechanism)과 연관되는 각 사용자 선택 가능 링크는 상기 상응하는 추천 어플리케이션을 참조하고 상기 상응하는 추천 어플리케이션에 대한 수행 가능 동작을 지시함을 특징으로 하는 시스템.
  12. 제11항에 있어서,
    상기 통지는 이메일 통지, 텍스트 메시지 통지, 달력 통지, 어플리케이션 통지 중 하나 혹은 그 이상을 포함함을 특징으로 하는 시스템.
  13. 제11항에 있어서,
    상기 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들을 상기 사용자 선택을 위한 기준들을 만족하는 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 것은:
    상기 어플리케이션들의 집합의 하나 혹은 그 이상의 어플리케이션들과 연관되는 하나 혹은 그 이상의 키워드(keyword)들을 식별하는 것과;
    상기 통지 데이터가 상기 하나 혹은 그 이상의 키워드들을 포함하는지 여부를 결정하는 것과;
    상기 통지 데이터가 상기 하나 혹은 그 이상의 키워드들을 포함할 때 상기 하나 혹은 그 이상의 어플리케이션들을 상기 하나 혹은 그 이상의 추천 어플리케이션들로 식별하는 것을 포함함을 특징으로 하는 시스템.
  14. 제11항에 있어서,
    상기 사용자 선택을 위한 기준들은 상기 통지를 수신한 후 시간 임계 주기 내에 상기 사용자 선택의 임계 확률을 가지는 것을 포함함을 특징으로 하는 시스템.
  15. 제14항에 있어서,
    상기 동작들은 상기 어플리케이션들의 집합의 각 어플리케이션에 대해서:
    상기 통지를 수신한 후 상기 시간 임계 주기 내의 상기 어플리케이션의 사용자 선택의 확률을 결정하는 것과;
    상기 어플리케이션의 사용자 선택의 확률이 상기 임계 확률을 만족할 때 상기 어플리케이션을 추천 어플리케이션으로 식별하는 것을 더 포함함을 특징으로 하는 시스템.
  16. 제11항에 있어서,
    상기 사용자 선택을 위한 기준들은 시각, 요일, 위치, 사용자 디바이스 서비스 상태, 사용자 디바이스 이동 상태, 디바이스 플랫폼(platform), 혹은 컨텍스트 정보(contextual information) 중 적어도 하나를 포함함을 특징으로 하는 시스템.
  17. 제11항에 있어서,
    상기 동작들은:
    상기 기준들을 기반으로 상기 어플리케이션들의 집합에 관한 사용자 행동 패턴들을 결정하는 것과;
    상기 어플리케이션들의 집합의 각 어플리케이션에 대해:
    상기 사용자 행동 패턴들을 기반으로 상기 통지를 수신한 후 상기 어플리케이션의 사용자 선택의 확률을 결정하는 것과;
    상기 어플리케이션의 사용자 선택의 확률이 확률 기준을 만족할 때 상기 어플리케이션을 추천 어플리케이션으로 식별하는 것을 더 포함함을 특징으로 하는 시스템.
  18. 제17항에 있어서,
    상기 동작들은 다른 사용자의 사용자 행동 패턴들을 기반으로 상기 어플리케이션의 사용자 선택의 확률을 결정하는 것을 더 포함함을 특징으로 하는 시스템.
  19. 제16항에 있어서,
    상기 사용자 행동 패턴들은 상기 어플리케이션들의 집합의 어플리케이션을 선택하는 것 혹은 상기 어플리케이션들의 집합의 어플리케이션에 대해 하나 혹은 그 이상의 동작들을 수행하는 것 중 적어도 하나를 포함함을 특징으로 하는 시스템.
  20. 제11항에 있어서,
    상기 동작들은:
    상기 하나 혹은 그 이상의 사용자 선택 가능 링크들 중 하나의 사용자 선택의 지시를 수신하는 것과;
    상기 선택된 사용자 선택 가능 링크와 연관되는 어플리케이션 억세스 메카니즘을 실행하는 것을 더 포함하며,
    상기 선택된 사용자 선택 가능 링크와 연관되는, 상기 실행되는 어플리케이션 억세스 메카니즘은 상기 상응하는 추천 어플리케이션을 시작하고, 상기 추천 어플리케이션을 상기 어플리케이션 억세스 메카니즘에 의해 명시되는 어플리케이션 스테이트로 설정함을 특징으로 하는 시스템.
KR1020187010832A 2015-09-18 2016-09-19 어플리케이션들을 추천하는 방법 KR20180043392A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/858,365 2015-09-18
US14/858,365 US20170085677A1 (en) 2015-09-18 2015-09-18 Recommending Applications
PCT/IB2016/055583 WO2017046780A1 (en) 2015-09-18 2016-09-19 Recommending applications

Publications (1)

Publication Number Publication Date
KR20180043392A true KR20180043392A (ko) 2018-04-27

Family

ID=58283538

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187010832A KR20180043392A (ko) 2015-09-18 2016-09-19 어플리케이션들을 추천하는 방법

Country Status (4)

Country Link
US (2) US20170085677A1 (ko)
EP (1) EP3350727A4 (ko)
KR (1) KR20180043392A (ko)
WO (1) WO2017046780A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200012229A (ko) 2018-07-26 2020-02-05 주식회사 인카코커뮤니케이션즈 리워드 서비스 제공을 위한 사용자 적합 어플리케이션 추천 시스템 및 방법

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9916059B2 (en) * 2014-07-31 2018-03-13 Microsoft Technology Licensing, Llc Application launcher sizing
US20170085677A1 (en) 2015-09-18 2017-03-23 Quixey, Inc. Recommending Applications
KR20170077714A (ko) * 2015-12-28 2017-07-06 삼성전자주식회사 어플리케이션 실행 방법 및 이를 지원하는 전자 장치
US9928230B1 (en) 2016-09-29 2018-03-27 Vignet Incorporated Variable and dynamic adjustments to electronic forms
US9858063B2 (en) 2016-02-10 2018-01-02 Vignet Incorporated Publishing customized application modules
CN107278367B (zh) * 2016-02-29 2020-02-21 华为技术有限公司 一种移动终端、可穿戴设备和消息传送方法
US10282165B2 (en) * 2016-04-06 2019-05-07 International Business Machines Corporation Selective displaying of push notifications
KR102521343B1 (ko) * 2016-04-25 2023-04-13 엘지전자 주식회사 디스플레이 장치 및 그의 동작 방법
US20180232442A1 (en) * 2017-02-16 2018-08-16 International Business Machines Corporation Web api recommendations
WO2018227333A1 (zh) * 2017-06-12 2018-12-20 深圳市乃斯网络科技有限公司 基于定位的终端app推荐方法及***
KR102348693B1 (ko) 2017-10-24 2022-01-10 삼성전자주식회사 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법
WO2019106867A1 (ja) * 2017-11-30 2019-06-06 パナソニックIpマネジメント株式会社 画像出力装置、画像出力装置の制御方法、及びテレビ
US10580407B1 (en) * 2017-12-08 2020-03-03 Amazon Technologies, Inc. State detection and responses for electronic devices
CN108076154B (zh) * 2017-12-21 2019-12-31 Oppo广东移动通信有限公司 应用信息推荐方法、装置及存储介质和服务器
US11621994B2 (en) 2018-01-08 2023-04-04 Hewlett-Packard Development Company, L.P. Brokering servers based on remote access performance
CN111557089A (zh) * 2018-03-15 2020-08-18 三星电子株式会社 用于使能上下文交互的方法和电子设备
US10775974B2 (en) 2018-08-10 2020-09-15 Vignet Incorporated User responsive dynamic architecture
US11093510B2 (en) 2018-09-21 2021-08-17 Microsoft Technology Licensing, Llc Relevance ranking of productivity features for determined context
US11163617B2 (en) * 2018-09-21 2021-11-02 Microsoft Technology Licensing, Llc Proactive notification of relevant feature suggestions based on contextual analysis
US11233706B2 (en) * 2019-05-06 2022-01-25 Bank Of America Corporation System for multichannel aggregation of electronic data via a centralized integration hub
US10922101B2 (en) * 2019-06-26 2021-02-16 International Business Machines Corporation User interface widget recommendation
US11632346B1 (en) * 2019-09-25 2023-04-18 Amazon Technologies, Inc. System for selective presentation of notifications
WO2021159276A1 (en) * 2020-02-11 2021-08-19 Citrix Systems, Inc. Systems and methods for expedited access to applications
US11763919B1 (en) 2020-10-13 2023-09-19 Vignet Incorporated Platform to increase patient engagement in clinical trials through surveys presented on mobile devices
US11417418B1 (en) 2021-01-11 2022-08-16 Vignet Incorporated Recruiting for clinical trial cohorts to achieve high participant compliance and retention
US11240329B1 (en) 2021-01-29 2022-02-01 Vignet Incorporated Personalizing selection of digital programs for patients in decentralized clinical trials and other health research
CN113077304B (zh) * 2021-03-22 2023-01-13 海南太美航空股份有限公司 一种航班信息的推荐方法、***和电子设备
US11636500B1 (en) 2021-04-07 2023-04-25 Vignet Incorporated Adaptive server architecture for controlling allocation of programs among networked devices
CN113407844B (zh) * 2021-07-13 2023-09-29 北京百度网讯科技有限公司 小程序框架的版本推荐方法、装置、设备以及存储介质
US11705230B1 (en) 2021-11-30 2023-07-18 Vignet Incorporated Assessing health risks using genetic, epigenetic, and phenotypic data sources
CN115016713B (zh) * 2021-11-30 2023-11-24 荣耀终端有限公司 出行事件订阅方法及电子设备
US11901083B1 (en) 2021-11-30 2024-02-13 Vignet Incorporated Using genetic and phenotypic data sets for drug discovery clinical trials
CN116095230B (zh) * 2022-08-17 2023-10-20 荣耀终端有限公司 应用程序推荐方法和终端设备、可读存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8000686B2 (en) * 2002-10-21 2011-08-16 Microsoft Corporation Extensible phone application
US8065254B1 (en) * 2007-02-19 2011-11-22 Google Inc. Presenting a diversity of recommendations
US20110307354A1 (en) 2010-06-09 2011-12-15 Bilgehan Erman Method and apparatus for recommending applications to mobile users
US9936333B2 (en) 2010-08-10 2018-04-03 Microsoft Technology Licensing, Llc Location and contextual-based mobile application promotion and delivery
US8723823B2 (en) * 2011-02-07 2014-05-13 Qualcomm Incorporated System and method for providing notifications on a mobile computing device
WO2013010007A2 (en) * 2011-07-13 2013-01-17 Riverside Research Institute Methods and systems for satellite integrated communications
CN102956009B (zh) * 2011-08-16 2017-03-01 阿里巴巴集团控股有限公司 一种基于用户行为的电子商务信息推荐方法与装置
KR20130054074A (ko) * 2011-11-16 2013-05-24 삼성전자주식회사 이벤트 처리뷰를 분할된 화면에 표시하는 이동통신단말기 및 그 제어 방법
US9213729B2 (en) 2012-01-04 2015-12-15 Trustgo Mobile, Inc. Application recommendation system
US8950220B2 (en) * 2012-01-10 2015-02-10 Ronald Burgess System for dispensing substances into a washing machine
EP2829086A4 (en) 2012-03-24 2015-10-28 Intel Corp LOCATION BASED APPLICATION RECOMMENDATION
US9195721B2 (en) * 2012-06-04 2015-11-24 Apple Inc. Mobile device with localized app recommendations
US8751500B2 (en) * 2012-06-26 2014-06-10 Google Inc. Notification classification and display
US8612470B1 (en) * 2012-12-28 2013-12-17 Dropbox, Inc. Application recommendation using stored files
KR102136602B1 (ko) 2013-07-10 2020-07-22 삼성전자 주식회사 휴대단말기의 컨텐츠 처리 장치 및 방법
US9336278B2 (en) * 2013-09-30 2016-05-10 Google Inc. User experience and user flows for third-party application recommendation in cloud storage systems
US10055398B2 (en) 2013-11-18 2018-08-21 Samsung Electronics Co., Ltd. Method and system for providing recommendations and performing actions based on social updates in social networks
US20160037481A1 (en) * 2014-07-30 2016-02-04 Microsoft Technology Licensing, Llc Rich Notifications
US10146559B2 (en) * 2014-08-08 2018-12-04 Samsung Electronics Co., Ltd. In-application recommendation of deep states of native applications
US20160299977A1 (en) * 2015-04-13 2016-10-13 Quixey, Inc. Action-Based App Recommendation Engine
US20170085677A1 (en) 2015-09-18 2017-03-23 Quixey, Inc. Recommending Applications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200012229A (ko) 2018-07-26 2020-02-05 주식회사 인카코커뮤니케이션즈 리워드 서비스 제공을 위한 사용자 적합 어플리케이션 추천 시스템 및 방법

Also Published As

Publication number Publication date
US20170085677A1 (en) 2017-03-23
US9942358B2 (en) 2018-04-10
EP3350727A4 (en) 2018-09-26
US20170085678A1 (en) 2017-03-23
WO2017046780A1 (en) 2017-03-23
EP3350727A1 (en) 2018-07-25

Similar Documents

Publication Publication Date Title
US9942358B2 (en) Recommending applications
US20170097743A1 (en) Recommending Applications
US10338898B2 (en) State-specific external functionality for software developers
US10310834B2 (en) Searching and accessing application functionality
US11341153B2 (en) Computerized system and method for determining applications on a device for serving media
US11750683B2 (en) Computer application promotion
US10963293B2 (en) Interactions with contextual and task-based computing environments
US9733802B2 (en) Automatic deep view card stacking
US20130110992A1 (en) Electronic device management using interdomain profile-based inferences
CN107924413B (zh) 分叉搜索
US20160085515A1 (en) Entity-Based External Functionality for Software Developers
US20160179956A1 (en) Techniques For Efficient Access Of Software Application Functionality In Search
US20160188130A1 (en) Automatic Conditional Application Downloading
US20160188684A1 (en) Consolidating Search Results
US9946794B2 (en) Accessing special purpose search systems
WO2023202460A1 (zh) 页面显示方法、装置、电子设备、存储介质和程序产品
Collins et al. Mobile devices: Tools and technologies
CN103891245A (zh) 位置知晓的内容检测
US20160188543A1 (en) Accessing Related Application States From A Current Application State
US10791084B2 (en) Automatic electronic message content rating method and apparatus
US20170374489A1 (en) Mobile ghosting

Legal Events

Date Code Title Description
A201 Request for examination
WITB Written withdrawal of application