KR102004453B1 - 루트 제안들의 제공 - Google Patents

루트 제안들의 제공 Download PDF

Info

Publication number
KR102004453B1
KR102004453B1 KR1020157001808A KR20157001808A KR102004453B1 KR 102004453 B1 KR102004453 B1 KR 102004453B1 KR 1020157001808 A KR1020157001808 A KR 1020157001808A KR 20157001808 A KR20157001808 A KR 20157001808A KR 102004453 B1 KR102004453 B1 KR 102004453B1
Authority
KR
South Korea
Prior art keywords
user
computing device
mobile computing
route
information
Prior art date
Application number
KR1020157001808A
Other languages
English (en)
Other versions
KR20150036170A (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 KR20150036170A publication Critical patent/KR20150036170A/ko
Application granted granted Critical
Publication of KR102004453B1 publication Critical patent/KR102004453B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3605Destination input or retrieval
    • G01C21/3617Destination input or retrieval using user history, behaviour, conditions or preferences, e.g. predicted or inferred from previous use or current movement

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Social Psychology (AREA)
  • Navigation (AREA)
  • Traffic Control Systems (AREA)

Abstract

일 구현예에서, 컴퓨터로 구현되는 방법은, 사용자와 관련된 모바일 컴퓨팅 디바이스에 대한 이동 패턴들을 나타내는 이동 정보를 획득하는 단계; 상기 모바일 컴퓨팅 디바이스와 사용자에 대한 현재 상황(current context)을 식별하는 단계; 상기 사용자가 상기 모바일 컴퓨팅 디바이스와 함께 이동할 최소한의 임계 가능성을 갖는 하나 이상의 목적지 위치들을, 상기 현재 상황 및 상기 획득된 이동 정보에 기초하여 식별하는 단계; 현재의 지리적 위치로부터 상기 식별된 하나 이상의 목적지 위치들로 이동하기 위한 복수의 루트들 중 하나 이상의 루트들을 따라 발생할 최소한의 임계 확률을 갖는 하나 이상의 이벤트들에 대한 예측을 생성하는 단계; 상기 현재 상황 및 하나 이상의 이벤트들에 대한 상기 예측에 기초하여 사용자에게 제안하도록, 상기 복수의 루트들 중 특정 루트를 선택하는 단계; 및 상기 선택된 특정 루트를 식별하는 루트 정보를 제공하는 단계를 포함한다.

Description

루트 제안들의 제공{PROVIDING ROUTE RECOMMENDATIONS}
관련 출원의 상호-참조
본 출원은 2012년 6월 25일자로 미국에 출원된 "PROVIDING ROUTE RECOMMENDATIONS" 라는 명칭의 미국특허출원(출원번호: 13/532,259)의 우선권을 주장하며, 상기 미국특허출원은 본 발명에 대한 참조로서, 본 명세서에 그 전체 내용이 통합된다.
일반적으로, 본 문서는 모바일 컴퓨팅 디바이스 상에서 루트 제안들을 제공하는 것을 서술한다.
모바일 컴퓨팅 디바이스들(예컨대, 스마트폰, 테블릿 컴퓨터, 퍼스널 디지털 어시스턴트(PDA))은 사용자에게 네비게이션 정보를 제공하도록 구성되어 왔다. 예를 들어, 모바일 컴퓨팅 디바이스는 제 1 지리적 주소로부터 제 2 지리적 주소로의 운전 경로들(driving directions)을 제공하도록 구성될 수 있다. 이러한 디바이스들은 가령, 위도 및 경도 등의 글로벌 위치 정보를 제공하는 글로버 포지셔닝 시스템(GPS)을 포함할 수 있으며, 이는 모바일 컴퓨팅 디바이스에 대한 현재의 지리적 위치를 나타낼 수 있다. 모바일 컴퓨팅 디바이스에 대한 글로벌 포지셔닝 정보는, 모바일 컴퓨팅 디바이스의 현재의 지리적 위치로부터 원하는 목적지 위치로의 운전 경로들을 제공하도록, 모바일 컴퓨팅 디바이스에 의해서 및/또는 백-엔드(back-end) 컴퓨터 시스템(예컨대, 클라우드 컴퓨팅 시스템)에 의해서 이용될 수 있다.
본 문서는 모바일 컴퓨팅 디바이스들(예컨대, 셀룰러 전화기, 스마트폰, 테블릿 컴퓨터, PDA, 휴대용 매체 재생기 등) 상에 루트 제안들을 제공하는 법을 기술한다. 루트 제안들은 출발지 지리적 위치로부터 하나 이상의 목적지 지리적 위치들로 이동하기 위한 경로들을 포함할 수 있다. 루트 제안들은 가령, 모바일 컴퓨팅 디바이스의 현재 상황(context)(예컨대, 현재의 지리적 위치, 시각, 요일) 및/또는 모바일 컴퓨팅 디바이스의 외적 요인인 여러 이벤트들(가령, 교통 정체) 등의 다양한 인자들에 기초하여 제공될 수 있다.
예를 들어, 모바일 컴퓨팅 디바이스가 근로일(월요일~금요일)의 아침에 사용자의 집에 위치하고 있는 것으로 식별된다면, 사용자가 조만간 그/그녀의 직장으로 이동할 것이라고 판별될 수 있다. 이러한 직장 위치는, 사용자와 그의 모바일 컴퓨팅 디바이스가 조만간 이동하게될 가능성 있는 목적지 위치로 간주될 수 있다. 사용자의 집으로부터 사용자의 직장으로 이동하기 위한 다양한 후보 루트들이 식별될 수 있으며 그리고 다양한 인자들, 가령, 하나 이상의 외부 이벤트들이 하나 이상의 후보 루트들을 따라 미래에 발생할 것인지에 관하여 수행된 예측들 등에 기초하여, 하나 이상의 후보 루트들이 사용자에게 추천될 수 있다. 예를 들어, 하나 이상의 외부 이벤트들(예컨대, 혼잡시간대 정체, 많은 수의 사람들이 특정 영역을 떠나가게 할 수 있는 이벤트들의 종료(예컨대, 스포츠 경기, 콘서트 등의 종료), 및/또는 가혹한 날씨(예컨대, 폭풍우, 눈보라 등등))이 하나 이상의 후보 루트들을 따라 발생할 가능성을 나타내는 예측들이 수행될 수 있다. 사용자들에게 알려지지 않을 수도 있거나 혹은 확실하지 않을 수도 있는 이러한 이벤트들에 관한 통찰력(insight)은, 컴퓨터 시스템에 의해서 제공될 수 있으며, 상기 컴퓨터 시스템은 이러한 이벤트들을 검출 및/또는 추정할 수 있다(가령, 구름이 덮힌 정도, 하루 중 시각, 연중 시각(time of year), 및/또는 도로의 시선(sightline) 등에 기초하여 석양의 눈부심이 교통 속도에 언제 영향을 미칠지를 예측하는 것).
일 구현예에서, 컴퓨터로 구현되는 방법은, 컴퓨터 시스템에서, 사용자와 관련된 모바일 컴퓨팅 디바이스에 대한 이동 패턴들을 나타내는 이동 정보를 획득하는 단계, 상기 모바일 컴퓨팅 디바이스와 사용자에 대한 현재 상황(current context)을 식별하는 단계, 상기 현재 상황은 상기 모바일 컴퓨팅 디바이스가 현재 위치하고 있는 현재의 지리적 위치를 적어도 포함하며, 상기 컴퓨터 시스템에 의해서, 상기 사용자가 상기 모바일 컴퓨팅 디바이스와 함께 이동할 최소한의 임계 가능성을 갖는 하나 이상의 목적지 위치들을, 상기 현재 상황 및 상기 획득된 이동 정보에 기초하여, 식별하는 단계, 현재의 지리적 위치로부터 상기 식별된 하나 이상의 목적지 위치들로 이동하기 위한 복수의 루트들 중 하나 이상의 루트들을 따라 발생할 최소한의 임계 확률을 갖는 하나 이상의 이벤트들에 대한 예측을 생성하는 단계, 상기 컴퓨터 시스템에 의해서, 상기 현재 상황 및 하나 이상의 이벤트들에 대한 상기 예측에 기초하여 사용자에게 제안하도록, 상기 복수의 루트들 중 특정 루트를 선택하는 단계, 및 상기 컴퓨터 시스템에 의해서, 상기 선택된 특정 루트를 식별하는 루트 정보를 제공하는 단계를 포함한다.
컴퓨터로 구현되는 이러한 방법은 다음과 같은 하나 이상의 피처들을 포함할 수 있다. 상기 현재 상황은, 현재 시간, 현재 날짜, 및 사용자를 위한 하나 이상의 칼렌다 이벤트들을 포함할 수 있다. 상기 현재 상황은, 상기 모바일 컴퓨팅 디바이스 상에 설치된 하나 이상의 어플리케이션들에 대한 최근의 사용자 행위를 포함할 수 있다. 상기 하나 이상의 어플리케이션들은, 이메일 어플리케이션, 칼렌다 어플리케이션, 문자(texting) 어플리케이션, 음성메일 어플리케이션, 전화 어플리케이션, 및 소셜 네트워킹 어플리케이션으로 구성된 그룹으로부터 선택될 수 있다. 상기 현재 상황은, 상기 사용자와 관련되며 그리고 발생했거나 혹은 현재 시간으로부터 임계 기간 내에 발생할 것으로 스케줄링된, 하나 이상의 이벤트들을 포함할 수 있다. 상기 하나 이상의 이벤트들은, 상기 사용자와 관련된 전자 칼렌다로부터 식별되거나 또는 상기 모바일 컴퓨팅 디바이스의 하나 이상의 통신 모드들을 이용하는 상기 사용자와 다른 사용자들 사이의 통신(correspondence)으로부터 식별될 수 있다. 상기 사용자에 대한 이동 패턴들을 나타내는 이동 정보는 상기 사용자와 관련된 사용자 모델로부터 획득될 수 있다. 상기 하나 이상의 루트들을 따른 이동에 적어도 임계 시간 분량 만큼 영향을 미칠 것이라고 예측된 하나 이상의 이벤트들에 기초하여, 상기 특정 루트가 복수의 루트들로부터 선택될 수 있다. 상기 특정 루트를 식별하는 루트 정보는, 사용자에 의한 촉구(prompting)가 없이도 제공될 수 있다. 루트 제안에 대한 요청을 나타내는 사용자 입력에 응답하여, 상기 루트 정보가 상기 사용자에게 제공될 수 있다. 상기 컴퓨터 시스템은 모바일 컴퓨팅 디바이스가 될 수 있으며, 그리고 상기 루트 정보를 제공하는 단계는, 상기 루트 정보를 상기 모바일 컴퓨팅 디바이스 상에 출력하는 단계를 포함할 수 있다. 상기 루트 정보를 상기 모바일 컴퓨팅 디바이스 상에 출력하는 단계는, 상기 모바일 컴퓨팅 디바이스의 디스플레이 상에 상기 특정 루트를 도시하는 맵을 디스플레이하거나 또는 상기 특정 루트를 따라 이동하기 위한 텍스트 안내를 디스플레이하는 단계를 포함할 수 있다. 상기 루트 정보를 출력하는 단계는, 상기 모바일 컴퓨팅 디바이스의 하나 이상의 스피커들을 이용하여, 상기 특정 루트를 따라 이동하기 위한 안내를 청각적으로 출력하는 단계를 포함할 수 있다. 상기 컴퓨터 시스템은 상기 모바일 컴퓨팅 디바이스와 별개일 수 있다. 그리고 상기 방법은, 상기 모바일 컴퓨팅 디바이스의 사용자에게 루트 제안을 제공하라는 요청을 상기 컴퓨터 시스템에서 상기 모바일 컴퓨팅 디바이스로부터 수신하는 단계를 더 포함하고, 상기 요청은 상기 모바일 컴퓨팅 디바이스를 식별하는 정보 및 상기 모바일 컴퓨팅 디바이스 혹은 상기 사용자에 대한 현재 상황의 적어도 일부를 포함하며, 상기 루트 정보는 상기 컴퓨터 시스템에 의해서 상기 모바일 컴퓨팅 디바이스로 제공되며, 그리고 상기 모바일 컴퓨팅 디바이스로 하여금 상기 특정 루트를 서술하는 정보를 출력하게 한다.
다른 구현예에서, 모바일 컴퓨팅 디바이스가 제공되며, 상기 모바일 컴퓨팅 디바이스는 상기 모바일 컴퓨팅 디바이스와 상기 모바일 컴퓨팅 디바이스의 사용자에 대한 현재 상황을 검출하도록 프로그래밍된 입력 서브시스템, 상기 현재 상황은 상기 모바일 컴퓨팅 디바이스가 현재 위치하고 있는 현재의 지리적 위치를 적어도 포함하며, 상기 모바일 컴퓨팅 디바이스에 대한 이동 패턴들을 나타내는 이동 정보를 획득하도록 프로그래밍된 이동 모니터 유닛, 상기 사용자가 상기 모바일 컴퓨팅 디바이스와 함께 이동할 최소한의 임계 가능성을 갖는 하나 이상의 목적지 위치들을, 상기 현재 상황 및 상기 이동 정보에 기초하여 식별하도록 프로그래밍된 목적지 유닛, 현재의 지리적 위치로부터 상기 식별된 하나 이상의 목적지 위치들로 이동하기 위한 복수의 루트들 중 하나 이상의 루트들을 따라 발생할 최소한의 임계 확률을 갖는 하나 이상의 이벤트들에 대한 예측들을 생성하도록 프로그래밍된 이벤트 예측 유닛, 상기 현재 상황 및 하나 이상의 이벤트들에 대한 상기 예측에 기초하여 사용자에게 제안하기 위해서, 상기 복수의 루트들 중 특정 루트를 선택하도록 프로그래밍된 제안 유닛, 및 상기 선택된 특정 루트를 식별하는 루트 정보를 상기 모바일 컴퓨팅 시스템의 사용자에게 출력하도록 프로그래밍된 상기 모바일 컴퓨팅 디바이스의 출력 서브시스템을 포함한다.
이러한 모바일 컴퓨팅 디바이스 다음과 같은 하나 이상의 피처들을 포함할 수 있다. 상기 모바일 컴퓨팅 디바이스는 상기 목적지 유닛에 의해서 식별된 하나 이상의 목적지 위치들에 적어도 일부 기초하여, 상기 복수의 루트들을 식별하도록 프로그래밍된 루트 유닛을 더 포함할 수 있다. 상기 출력 서브시스템은, 상기 루트 정보를 시각적으로 출력하도록 된 상기 모바일 컴퓨팅 디바이스의 디스플레이를 포함할 수 있다. 상기 출력 서브시스템은, 상기 루트 정보를 청각적으로 출력하도록 된 상기 모바일 컴퓨팅 디바이스의 스피커 시스템을 포함할 수 있다. 상기 사용자에 대한 이동 패턴들을 나타내는 상기 이동 정보는 상기 사용자와 관련된 사용자 모델로부터 획득될 수 있다.
다른 구현예에서는, 명령들을 저장하는 컴퓨터 판독가능한 저장 디바이스에 구현된 컴퓨터 프로그램 제품이 제공되며, 상기 명령들은 실행되는 때에, 하나 이상의 프로세서스들을 갖는 컴퓨팅 시스템으로 하여금, 사용자와 관련된 모바일 컴퓨팅 디바이스에 대한 이동 패턴들을 나타내는 이동 정보를 획득하게 하고, 상기 모바일 컴퓨팅 디바이스와 사용자에 대한 현재 상황(current context)을 식별하게 하고, 상기 현재 상황은 상기 모바일 컴퓨팅 디바이스가 현재 위치하고 있는 현재의 지리적 위치를 적어도 포함하며, 상기 사용자가 상기 모바일 컴퓨팅 디바이스와 함께 이동할 최소한의 임계 가능성을 갖는 하나 이상의 목적지 위치들을, 상기 현재 상황 및 상기 획득된 이동 정보에 기초하여 식별하게 하고, 현재의 지리적 위치로부터 상기 식별된 하나 이상의 목적지 위치들로 이동하기 위한 복수의 루트들 중 하나 이상의 루트들을 따라 발생할 최소한의 임계 확률을 갖는 하나 이상의 이벤트들에 대한 예측을 생성하게 하고, 상기 현재 상황 및 하나 이상의 이벤트들에 대한 상기 예측에 기초하여 사용자에게 제안하도록, 상기 복수의 루트들 중 특정 루트를 선택하게 하고, 그리고 상기 선택된 특정 루트를 식별하는 루트 정보를 제공하게 하는 것을 포함하는 동작들을 수행하게 한다.
하나 이상의 실시예들의 세부 내용은 첨부된 도면들 및 아래의 상세한 설명에 서술된다. 소정 구현예들을 이용하여 다양한 장점들이 구체화될 수 있다. 예를 들어, 유용한 정보가 사용자들이 이러한 정보를 요청할 필요 없이, 사용자들에게 선행적으로(proactively) 제공될 수 있다. 이는, 사용자가 이러한 정보를 요청해야만 하는 시간을 절약할 수 있으며, 그리고 행동을 취하기 전에 사용자가 더 현명한(more informed) 결정을 내릴 수 있게 도와줄 수 있다. 예를 들어, 사용자의 이동에 영향을 미칠 수도 있는 외부 이벤트들의 발생 가능성에 관한 정보가 최적의 시간에 사용자에게 제공될 수 있다(예컨대, 사용자가 이동 루트에 대한 결정을 내리고 그리고 이러한 루트를 따라 이동하기 위한 조치들을 취하기 전에). 다수의 소스들로부터 취합된 정보에 기초하여, 통찰력(insight)과 안내(direction)가 제공될 수 있으며, 이는 사용자와 디바이스 간의 상호작용을 감소시킬 수 있으며, 그리고 결정을 내리는 동안에 사용자가 고려해야만 하는 정보의 양을 감소시킬 수 있다. 또한, 사용자가 이러한 정보에 관심이 있을 가능성이 매우 높다라고 판별되는 때에 정보가 제공될 수 있는바, 이는 사용자 개입(user interruption)을 감소시키고 그리고 이러한 정보를 사용자가 공들여서 요청할 필요성을 감소시킨다(예컨대, 어플리케이션을 개시하고 그리고 검색을 위한 파라미터들을 상기 어플리케이션에 입력하는 등의 수고로움). 또한, 이러한 루트들이 사용자들에게 알려지지 않았다 해도, 사용자들이 선호할 것 같은 이러한 루트들에 대한 정보가 사용자들에게 제공될 수 있다(가령, 휴가 동안에 사용자가 즐길 수도 있는 경치좋은 루트들).
다른 일례에서는, 촉구되지 않은(unprompted) 이동 제안들을 사용자에게 제공함으로써, 다른 일(예컨대, 차량 운전, 요리)에 정신이 팔린 사용자들이, 입력(예컨대, 음성 입력)을 제공할 필요 없이, 제안들을 수신할 수 있는데, 입력을 제공하는 것은 정신을 분산시키는 일이며 그리고 사용자에게 잠재적으로 위험할 수도 있는 일이다. 예를 들어, 자동차를 운전하고 있는 사용자는 이러한 제안들을 요청할 필요 없이도 이동 제안들을 수신할 수 있는바, 따라서 사용자는 운전에만 정신을 집중할 수 있다.
다른 일례에서, 일부 제안들은 충분히 미리 앞서서 판별될 수도 있는바, 따라서 사용자들은 제안 정보에 기초하여 계획을 변경할 수 있는 충분한 시간을 확보할 수 있다. 이러한 것은, 사용자들이 사용자들의 행위들 및 시간을 좀더 효율적으로 스케줄링할 수 있게 하는 것을 포함하여, 사용자들에게 다양한 이득을 제공할 수 있다. 예를 들어, 데이터 피드(data feed)로부터의 점수(score)에 기초하여 스포츠 경기가 종료될 것 같다라고 판별된다면, 종료된 스포츠 경기로 인해 영향을 받을 수 있는 결과적인 교통상황에 대한 예측이 수행될 수 있다. 이러한 예측에 기초하여, 가령, 체육관에 가던가 혹은 심부름을 하는 등의 대안적인 일(alternate task)을 하도록, 교통상황에 영향을 받을 것 같은 사용자에게 제안이 제공될 수 있는바, 따라서 이들 사용자들은 교통 정체를 회피하거나/교통 정체가 나중에 끝나기를 기다릴 수 있다.
다른 피처들, 목적들, 및 장점들은 발명의 상세한 설명, 도면들 및 청구항들로부터 명백해질 것이다.
도1은 사용자에게 루트 제안들을 제공하기 위한 모바일 컴퓨팅 디바이스의 일례를 도시한 블록도이다.
도2a 및 도2b는 모바일 컴퓨팅 디바이스 상에 루트 제안들을 제공하기 위한 예시적인 시스템을 도시한 블록도이다.
도3a 및 도3b는 모바일 컴퓨팅 디바이스 상에 루트 제안들을 제공하기 위한 예시적인 기법들의 순서도이다.
도4는 본 명세서에 서술된 기법들, 시스템들, 매커니즘들, 및 방법들을 구현하는데 이용될 수 있는 시스템의 개념적인 블록도이다.
도5는 클라이언트로서 혹은 서버로서 혹은 복수의 서버들로서, 본 명세서에 서술된 시스템들 및 방법들을 구현하는데 이용될 수 있는 컴퓨팅 디바이스들의 블록도이다.
도면들에서 유사한 참조번호들은 유사한 구성요소들을 나타낸다.
본 문서는 사용자의 이동(travel)에 대한 콘텍스트-기반의 제안들을 사용자들에게 제공하는 법을 서술한다. 이동 제안들은, 사용자의 모바일 디바이스(모바일 폰, 스마트폰, PDA, 휴대용 매체 재생기, 테블릿 컴퓨터, 혹은 다른 적절한 종류의 모바일 디바이스)의 현재의 상황(시각, 지리적 위치, 달력 약속들) 및/또는 사용자의 행동 패턴들(예컨대, 정기적인 통근 시간대들 및 루트들, 정기적인 식사 시간들, 역사적인 미팅 참여(historical meeting attendance), 기타 등등)에 기초하여, 적절한 시간들에서 자동으로 사용자에게 제공될 수 있다. 어플리케이션을 수동으로 개시하고, 원하는 정보를 검색하고, 그리고 검색 결과들을 추적하는 것과는 반대로, 사용자들은, 사용자와 관련될 가능성이 있다라고 판별된 정보를 포함하는 자동화된 통지를, 사용자가 상기 정보에 대해서 반응을 할 수도 있는 시간에서, 수신할 수 있다
다수의 소스들로부터의 상황 정보(contextual information)는 취합될 수도 있으며 그리고 통찰력 및 제안된 조치들(actions)을 제공하는데 이용될 수 있다(상황 정보를 사용자에게 단지 제공하는 것과는 달리). 예를 들어, 특정 사용자가 자동차를 이용하여 직장에 정기적으로 출근하고 그리고 매일 아침 8시에 정기적으로 도착한다면, 사용자의 모바일 디바이스는, 사용자가 그의 아침 일상(routine)을 완료하는데 통상적으로 걸리는 시간에 기초하여, 그리고 사용자의 출근에 영향을 미칠 수도 있다라고 판별된 외부 조건들(가령, 교통 상황, 날씨, 도로 봉쇄)에 기초하여, 사용자를 최적의 시간에 깨울 수 있다. 다른 일례에서, 예컨대, 비가 오고 있거나 혹은 비가 올 것이라고 예상된다면, 날씨 정보를 사용자에게 단순히 제공하는 대신에, 모바일 디바이스는 날씨가 교통에 미치는 잠재적인 영향을 결정할 수 있으며, 사용자를 평상시 보다 더 일찍 깨울 수 있으며, 사용자가 직장으로 출발할 시간을 추천할 수 있으며, 그리고 사용자가 우산을 가져가기를 추천할 수 있다. 따라서, 사용자의 통상적인 일상에 영향을 미칠 수도 있는 외부 이벤트들이 식별될 수 있으며 그리고 사용자가 통상적인 일상으로부터 벗어나야함을 데이터가 나타내는 경우, 경고가 사용자에게 제공될 수 있는바, 이는 이러한 외부 이벤트들의 부정적인 결과(가령, 시간 지연)를 회피하기 위한 것이다.
사용자들이 관심을 가질 수도 있다고 판별된 정보가 적절한 시간들에서 제공될 수 있다. 예를 들어, 사용자가 현재 차량을 운전하고 있고 그리고 경로를 따라 사고가 발생한다면, 사용자의 모바일 디바이스는 상기 사고가 사용자의 이동 시간에 영향을 미칠 것이라고 예측할 수 있다. 이러한 일례에서, 사용자의 모바일 디바이스는, 이러한 정보는 사용자가 현 시점에서 관심을 가질 가능성이 높은 정보라고 판별할 수 있으며, 따라서 상기 디바이스는 차선(lane)을 변경하라는 제안을 사용자에게 제공할 수 있으며 혹은 사용자가 사고 지점에 도착하기 전에 대안적인 경로를 사용자에게 제공할 수도 있다. 운전중인 사용자가 관심이 없을 수도 있는 외부 이벤트들(가령, 사용자의 경로를 따르지 않는 도로에서의 사고)에 관한 정보는 사용자가 운전 중인 동안에는 억제될 수 있으며, 그리고 이후에 사용자와 관련될 가능성이 있는 경우에는 사용자에게 제공될 수 있다(가령, 사고가 난 도로를 포함하도록 사용자의 운전 경로가 변경된 경우).
사용자의 현재 상황에 적합한 방식으로, 사용자에게 정보가 제공될 수 잇다. 예를 들어, 사용자가 운전 중인 동안에는, 사용자의 모바일 디바이스는 가령, 턴-바이-턴 지시(turn-by-turn direction)와 같은 청취가능한(가령, 음성) 제안들을 제공할 수 있다. 사용자가 정지하고 있는 동안에는, 예를 들어 사용자의 모바일 디바이스는 제안들을 시각적으로 제공할 수 있다(가령, 텍스트, 그래픽, 맵(map, 이하, '맵' 혹은 '지도' 라함) 등을 통해). 따라서, 정보는 적절한 방식으로, 그리고 필요한 사용자 상호작용을 최소화시키는 방식으로 제공될 수 있다.
본 명세서에서 논의되는 시스템은 사용자-정의된 프라이버시 파라미터들의 범위 내에서 사용자들에 관한 정보를 이용할 수도 있다. 예를 들어, 사용자들은, 개인화된 정보(예컨대, 사용자 위치 정보)를 이용할 수 있는 프로그램에 동의하거나 동의하지 않을(opt in/out) 기회를 제공받을 수 있다. 또한, 소정 데이터는 그것이 저장되거나 및/또는 이용되기 전에 익명화될 수도 있으며, 따라서 개인을 식별할 수 있는 정보는 제거된다.
도1은 사용자에게 루트 제안들을 제공하기 위한 모바일 컴퓨팅 디바이스(102)의 일례를 도시한 개념적인 블록도(100)이다. 상기 예시적인 블록도(100)는 모바일 컴퓨팅 디바이스(102)의 예시적인 일례를 제공하는데, 모바일 컴퓨팅 디바이스(102)는 사용자 모델을 판별하고, 사용자에 대한 현재 상황을 판별하고, 사용자가 이동할 위치들을 식별하고, 사용자의 이동에 영향을 미칠 수도 있는 이벤트들을 예측하고, 그리고 사용자에게 제안들을 제공한다.
모바일 컴퓨팅 디바이스(102)는 디바이스 사용자(110)와 관련된 사용자 모델을 판별할 수 있다. 사용자 모델은 예컨대, 다양한 데이터 소스들(가령, 위치 히스토리, 검색 히스토리, 칼렌다 아이템들, 이메일, 문자 메시지, 소셜 네트워크 정보 등등)을 이용하여 생성될 수 있으며, 그리고 사용자 행위(activity) 및 이동 패턴들을 포함할 수 있다. 일부 구현예들에서는, 사용자 모델을 생성하는 때, 하나의 소스로부터의 데이터는 다른 하나의 소스로부터의 잡음을 필터링하는데 이용될 수 있다. 예를 들어, 사용자 위치 데이터는, 사용자가 거의 참석하지 않거나 및/또는 자주 참석하는 정기적으로 스케줄링된 미팅들을 식별하도록, 칼렌다 데이터를 체크하는데 이용될 수 있다. 또 다른 일례로서, 사용자 위치 데이터는 사용자가 그러한 장소들을 방문하게 하는, 사용자가 관심있어 하는 장소들을 식별하도록 검색 히스토리 데이터와 결합하여 이용될 수도 있다(예컨대, 음식점에 대한 사용자의 빈번한 검색은 결국 봐왔던 음식점들을 사용자가 방문하게 한다). 사용자 모델들은 예를 들어, 배치 모드(batch mode)로 및/또는 실시간으로 생성 및 보유될 수 있으며, 그리고 하나 이상의 컴퓨팅 디바이스들(102) 상에 보유되거나, 상기 디바이스(102)와 통신하는 하나 이상의 서버들 상에 보유되거나, 혹은 이들의 임의의 조합 상에 보유될 수 있다.
모바일 컴퓨팅 디바이스(102)는, 디바이스(102) 및/또는 디바이스(102)의 사용자에 대한 현재 상황을 판별할 수 있다. 현재 상황은 모바일 컴퓨팅 디바이스(102) 및/또는 모바일 컴퓨팅 디바이스의 사용자의 현재 상태 및/또는 주변환경들(surroundings)을 서술하는 정보를 포함할 수 있다. 예컨대, 현재 상황은, 가령, 주위의 물리적 환경(예컨대, 지리적 위치, 날씨 조건들, 인근의 사업장, 주변 소음의 크기(volume of ambient noise), 주변의 빛의 레벨, 모바일 디바이스의 카메라에 캡춰된 이미지, 기타 등등), 모바일 컴퓨팅 디바이스(102)의 현재 상태(속도, 터치스크린 입력 활성화, 오디오 입력 활성화, 링거 온/오프, 등등), 시간 및 날짜 정보(예컨대, 하루 중 시각, 날짜, 칼렌다 약속, 요일, 등등), 사용자 행위(예컨대, 최근의 사용자 행위, 습관적인 사용자 행위), 등등에 관한 정보와 같은, 모바일 컴퓨팅 디바이스(102)와 사용자에 관련된 다양한 정보를 포함할 수 있다. 현재 상황은, 데이터와 모바일 컴퓨팅 디바이스(102)에 로컬 및/또는 원격인 센서들을 이용하여, 모바일 컴퓨팅 디바이스(102)에 의해서 판별될 수 있다. 현재 상황의 적어도 일부는, 가령, 날씨 정보를 제공하는 원격 컴퓨터 시스템 및/또는 교통 정보를 제공하는 원격 컴퓨터 시스템 등과 같은, 컴퓨팅 디바이스(102)로부터 원격인 하나 이상의 다른 컴퓨팅 디바이스들로부터 획득될 수 있다.
모바일 디바이스에 대한 예시적인 상황(120)에 의해서 표시되는 바와 같이, 모바일 컴퓨팅 디바이스(102)에 대한 현재 상황은 시간/날짜 정보(122a), 지리적 위치 정보(122b), 칼렌다 정보(122c), 속도 정보(122d), 및 이동 패턴 정보(122e)를 포함한다. 도시된 일례에서, 시간/날짜 정보(122a)는 월요일 아침 7시 30분이라는 시간을 나타내며, 지리적 위치 정보(122b)는 모바일 컴퓨팅 디바이스가 현재 사용자의 집에 위치함을 나타낸다. 칼렌다 정보(122c)는 그 날짜에 아무런 약속이 잡혀있지 않음을 나타내며, 속도 정보(122d)는 모바일 컴퓨팅 디바이스(102)가 현재 정지하고 있음을 나타낸다(시속 0 마일로 이동중). 이동 패턴 정보(122e)는 디바이스의 사용자가 통상적으로 월요일 아침 8시에 직장에 도착함을 나타낸다.
이러한 예시적인 상황(120)에 기초하여, 모바일 컴퓨팅 디바이스(102)는 사용자가 최소한의 임계 이동 가능성을 갖고 있는(at least a threshold likelihood of travelling), 하나 이상의 위치들을 식별할 수 있다. 본 일례에서는, 시간/날짜 정보(122a)(즉, 현재 시각 아침 7시 30분), 지리적 위치 정보(122b)(즉, 디바이스 102는 현재 사용자의 집에 위치함), 및 이동 패턴 정보(122e)(즉, 디바이스의 사용자는 통상적으로 월요일 아침 8시에 직장에 도착함)에 기초하여, 모바일 컴퓨팅 디바이스(102)는, 가까운 미래에(예컨대, 5분, 10분, 30분, 60분 이내에) 사용자가 그의 직장으로 이동할 가능성이 높다(최소한의 임계 가능성)라고 결정할 수 있다. 칼렌다 정보(122c)(즉, 약속이 없음)에 기초하여, 모바일 컴퓨팅 디바이스(102)는 사용자가 직장으로 이동하고자하는 가능성을 증가시킬 수 있다. 또 다른 가능성으로서, 만일 칼렌다 정보(122c)가 월요일 아침 8시의 치과 예약을 포함한다면, 모바일 컴퓨팅 디바이스(102)는 사용자가 이러한 약속들을 거의 놓치지 않는다라고 판별하며(예컨대, 치과 예약이 사용자의 칼렌다에 포함되었을 때의 역사적인 이동 패턴들에 기초하여), 상기 디바이스(102)는 사용자가 치과 예약 장소로 이동할 가능성이 높다라고 결정할 수 있다. 본 일례에서, 모바일 컴퓨팅 디바이스(102)는 사용자가 그의 직장으로 이동할 가능성이 높다(예컨대, 50%, 75%, 90%, 95%, 99%, 혹은 다른 적절한 임계값)라고 결정할 수 있다.
최소한의 임계 이동 가능성을 가지고 있다라고 모바일 컴퓨팅 디바이스(102)에 의해서 판별된 하나 이상의 목적지 위치들로의 예시적인 이동 루트들(140)로 표시된 바와 같이, 모바일 컴퓨팅 디바이스(102)는 사용자의 현재 위치(예컨대, 집)로부터 하나 이상의 식별된 후보 목적지들(예컨대, 직장, 치과 등등)까지 사용자가 취할 수 있는 다양한 루트들(142a, 142b, 등등)을 식별할 수 있다. 일부 구현예들에서, 식별된 루트들은 현재 위치와 목적지 사이를 이동하는데 사용자가 역사적으로 이용했던 루트들을 포함할 수도 있다. 예를 들어, 루트(142a)는 정규 이동 루트가 될 수 있으며, 루트(142b)는 가끔씩 이용되는 대안적인 루트가 될 수 있다. 일부 구현예들에서, 식별된 루트들은 루트 플랜닝 알고리즘에 의해서 결정되는 하나 이상의 루트들을 포함할 수 있다. 예를 들어, 만일 사용자가 낯선(unfamiliar) 영역에 있거나 혹은 사용자의 현재 위치 및/또는 목적지 위치가 낯선 곳이라면, 컴퓨팅 디바이스(102) 및/또는 백엔드 시스템은 사용자를 위한 잠재적인 루트들을 생성할 수도 있다.
모바일 컴퓨팅 디바이스(102)는 식별된 목적지 위치들로의 사용자의 이동에 영향을 미칠 수도 있는 하나 이상의 외부 이벤트들(132)을 예측할 수 있으며, 그리고 이러한 이벤트들이 사용자의 이동에 미칠 수도 있는 영향(예를 들어, 시간 손실, 불편함, 이동 시간이 증가할 퍼센트)을 예측할 수 있다. 예를 들어, 루트들(142a 및 142b)은 사용자가 그의 자동차로 이동하는 루트들이 될 수 있다. 본 일례에서, 모바일 컴퓨팅 디바이스(102)는 루트(142a)를 따라 공사(construction)가 현재 진행중이거나 혹은 진행될 예정임을 판별할 수 있으며, 그리고 상기 공사는 사용자의 이동 시간에 부정적인 영향(예컨대, 15분 출근 시간에 5분 추가)을 미치는 교통 지연을 유발할 것 같다라고 판별할 수 있다. 하지만, 모바일 컴퓨팅 디바이스(102)는, 사용자의 목적지로 이동하는 동안 사용자를 지연시킬 수 있는 정황들이 루트(142b)에는 상대적으로 없다라고 판별할 수 있다.
모바일 컴퓨팅 디바이스(102)는, 최소한의 임계 이동 가능성을 사용자가 갖고 있는 하나 이상의 목적지들, 하나 이상의 목적지들로 이동하기 위한 루트들 및/또는 하나 이상의 루트들에 따른 이동에 영향을 미칠 것이라고 예상되는 외부 이벤트들에 기초하여, 하나 이상의 루트 제안들(150)을 디바이스 사용자에게 제공할 수 있다. 예를 들어, 사용자가 직장으로 출발함에 따라, 모바일 컴퓨팅 디바이스(102)는 각각의 루트들(142a, 142b, 등등)에 따른 이동에 대한 추정 이동 시간을 계산할 수 있으며, 그리고 가장 짧은 시간 추정치와 관련된 루트를 사용자가 선택할 수 있도록 제안들을 제공할 수 있다. 또 다른 가능성으로서, 모바일 컴퓨팅 디바이스(102)는 각각의 루트에 대한 예상된 목적지 도착 시간들에 따른, 가능한 이동 루트들의 리스트를 제공할 수 있는바, 사용자는 그 혹은 그녀가 선호하는 루트를 선택할 수 있다. 또 다른 가능성으로서, 만일 사용자가 직장으로 향하는 동일한 루트를 매일 습관적으로 선택한다면, 모바일 컴퓨팅 디바이스(102)는 그 루트에 따른 이동 시간을 추정할 수 있으며, 그리고 바람직한 시간에 사용자의 목적지에 도달하도록 소정시간에 사용자가 출발하라는 제안을 제공할 수 있다(예컨대, "이곳에서 아침 7시 35분에 출발하며 주요 도로를 따라 가면 8시에 직장에 도착함").
도면(100)에 도시된 바와 같이, 예시적인 루트 제안(152)이 모바일 컴퓨팅 디바이스(102)의 디스플레이 상에 출력된다. 예시적인 루트 제안(152)은 후보 루트들(142a, 142b) 및 루트 A(142a)에 따른 이동에 영향을 미칠 수도 있는 외부 이벤트(교통 상황)에 관한 텍스트 정보와 그래픽 정보 둘다를 포함한다. 전술한 바와 같이, 루트 제안들은 매우 다양한 적절한 방식들 중 임의의 것을 이용하여 모바일 컴퓨팅 디바이스(102)에 의해서 제공될 수 있는바, 가령, 모바일 컴퓨팅 디바이스(102)의 디스플레이(예컨대, 터치스크린 디스플레이) 상에 시각적으로 제공되거나, 모바일 컴퓨팅 디바이스(102)의 하나 이상의 스피커들을 이용하여 청각적으로 제공되거나, 및/또는 모바일 컴퓨팅 디바이스(102)와 통신하는 다른 컴퓨팅 디바이스의 출력 매커니즘을 통하여 제공될 수 있다(예컨대, 자동차 GPS 유닛 및/또는 오디오 시스템 상에 출력되거나 텔레비젼 상에 출력됨).
도2a 내지 도2b는 예시적인 모바일 컴퓨팅 디바이스(202) 상에 루트 제안들을 제공하기 위한 시스템(200)을 예시한 도면들이다. 도1에 관하여 앞서 설명된 모바일 컴퓨팅 디바이스(102)와 유사하게, 모바일 컴퓨팅 디바이스(202)는 모바일 컴퓨팅 디바이스(202) 및/또는 모바일 컴퓨팅 디바이스의 사용자에 관련된 현재 상황에 기초하여, 루트 제안들을 제공하도록 구성될 수 있다.
모바일 컴퓨팅 디바이스(202)는 스마트폰, 셀 폰, 테블릿 컴퓨팅 디바이스, 퍼스널 디지털 어시스턴트(PDA), 랩탑 컴퓨터, 넷북, 및/또는 GPS 컴퓨팅 디바이스 등과 같은 임의의 적절한 컴퓨팅 디바이스들 중 임의의 것일 수 있다.
모바일 컴퓨팅 디바이스(202)는 입력 서브시스템(204)을 포함하는 것으로 도시되는데, 입력 서브시스템(204)을 통하여 모바일 컴퓨팅 디바이스(202)의 사용자는 다양한 어플리케이션들에 대한 입력을 제공할 수 있다(예컨대, 웹 브라우저들, 검색 엔진들, 맵핑 어플리케이션들, 칼렌다 어플리케이션들, 이메일 시스템들, 기타 등등에 대한 입력들). 도2b를 참조하면, 입력 서브시스템(204)은, 마이크로폰(206a)(오디오-기반의 입력을 수신하도록 구성됨), 키보드(206b)(키-기반의 입력을 수신하도록 구성됨), 터치스크린(206c)(스크린 터치-기반의 입력을 수신하도록 구성됨), 가속도계(206d)(모션-기반의 입력을 수신하도록 구성됨), 트랙볼(206e)(GUI 포인터-기반의 입력을 수신하도록 구성됨), 카메라(206f)(시각적인 입력을 수신하도록 구성됨), 및 광 센서(206g)(빛의 세기에 기초하는 입력을 수신하도록 구성됨)를 포함하는 것으로 도시된다. 또한, 입력 서브시스템(204)은, 예컨대, 무선 네트워크 인터페이스, 범용 직렬 버스(USB) 인터페이스, 블루투스 인터페이스, 공중 전화 교환망(Public Switched Telephone Network: PSTN) 인터페이스, 이더넷 인터페이스, 셀룰러 네트워크 인터페이스, 3G 및/또는 4G 네트워크 인터페이스 등의, 네트워크-기반의 입력 및 출력을 수신하도록 구성된 네트워크 인터페이스(208)를 포함한다. 언급되지 않은 다른 유형들의 입력 디바이스들도 역시 입력 서브시스템(204)의 일부가 될 수 있다.
모바일 디바이스 상황 판별 유닛(214)은 모바일 컴퓨팅 디바이스(202)의 다양한 상황 모니터링 유닛들을 이용하여 모바일 컴퓨팅 디바이스(202)에 대한 현재 상황을 판별할 수 있다. 예를 들어, 글로벌 포지셔닝 시스템(GPS) 유닛(216)은 지리적 위치 정보를 모바일 디바이스 상황 판별 유닛(214)에게 제공할 수 있으며 그리고 이동 모니터 유닛(218)은 이동 데이터 저장소 220와 연계하여, 현재 이동 중인 루트에 관한 정보 및 모바일 컴퓨팅 디바이스(202)에 의해서 습관적으로 이동되었던 루트들에 관한 정보를 제공할 수 있다. 활동(activity) 모니터 유닛(222)은 활동 데이터 저장소 224와 연계하여, 사용자의 현재 활동 및 습관적인 활동(예컨대, 사용된 어플리케이션들, 다양한 시간들에서 액세스된 특정 정보, 기타 등등)에 관한 정보를 모바일 디바이스(202) 상에 제공할 수 있다. 위치 모니터 유닛(226)은 모바일 디바이스(202)의 현재 지리적 위치 근처에 지리적으로 가깝게 위치한 엔티티들(예컨대, 사업장들, 공원들, 페스티벌들, 공공 수송수단들, 등)에 관한 정보를 제공할 수 있다. 시간 및 날짜 유닛(228)은 현재 시간 및 날짜 정보를 제공할 수 있으며 그리고 칼렌다 유닛(230)은 칼렌다 데이터 저장소(232)와 연계하여 사용자의 약속들에 관한 정보를 제공할 수 있다. 이메일 유닛(234)은 이메일 데이터 저장소(236)와 연계하여 이메일-관련 정보(예컨대, 최근에 수신된/송부한 이메일들)를 제공할 수 있다. 모바일 상황 판별 유닛(214)은 언급되지 않거나 도시되지 않은 다른 상황 모니터링 유닛들로부터 정보를 수신할 수 있다.
일부 구현예들에서, 모바일 디바이스 상황 판별 유닛(214) 및/또는 상황 모니터 유닛들(216-236)은 부분적으로 혹은 그 전체가 모바일 컴퓨팅 디바이스(202)로부터 원격으로 구현될 수도 있다. 예를 들어, 이메일 유닛(234)은, 원격 서버 시스템에 의해서 유지 및 제공되는 이메일-관련 데이터를 디스플레이하는 신-클라이언트(thin-client)일 수도 있다. 이러한 일례에서, 이메일 유닛(234)은 모바일 디바이스 상황 판별 유닛(214)에게 제공하기 위한 이메일 관련 정보를 획득하기 위해 원격 서버 시스템과 상호작용할 수 있다.
가령, 사용자 이동 패턴들, 사용자의 이동에 영향을 미칠 수도 있는 가능한 외부 이벤트들 등의 다양한 인자들에 기초하여, 모바일 컴퓨팅 디바이스(202)의 사용자에게 제안하기 위한 루트들을 식별하기 위하여 예측 유닛(238)은 모바일 디바이스 상황 판별 유닛(214)에 의해서 판별된 바와 같은, 모바일 디바이스(202)에 대한 현재 상황을 이용할 수 있다. 예측 유닛은 목적지 유닛(239), 루트 유닛(241), 및 외부 이벤트 예측 유닛(243)을 포함한다. 목적지 유닛(239)은 후보 목적지 위치들을 식별하도록 프로그래밍되는바, 후보 목적지 위치들은 사용자가 소정 시간 내(예컨대, 다음 15분, 30분, 60분 이내에)에 최소한의 이동 가능성을 갖는 위치들이다. 루트 유닛(241)은 모바일 컴퓨팅 디바이스(202)의 현재의 지리적 위치로부터 후보 목적지 위치들로 이동하기 위한 가능 루트들을 식별하도록 프로그래밍된다. 외부 이벤트 예측 유닛(243)은 상기 루트 유닛(241)에 의해서 식별된 하나 이상의 루트들에 따라 발생할 수도 있는 최소한의 임계 가능성을 갖고 있는 하나 이상의 외부 이벤트들을 식별하도록 프로그래밍된다. 이와 함께, 목적지 유닛(239)과 루트 유닛(241)은 사용자에 의한 잠재적인(Potential) 이동을 예측할 수 있으며, 그리고 외부 이벤트 예측 유닛(243)은 가능한 이동 루트들을 따라 사용자에게 영향을 미칠 수도 있는 이벤트들(모바일 컴퓨팅 디바이스 202 외부의 이벤트들)을 예측할 수 있다. 예측 유닛(238)은 사용자 이동 및 외부 이벤트들에 대한 이러한 예측들을 제공하도록, 상황 판별 유닛(214)에 의해서 제공되는 상황 정보 이외에도 다양한 정보를 이용할 수 있는바, 가령 환경 정보(예컨대, 날씨 정보), 이동 정보(예컨대, 교통 정보, 운전 방향, 교통수단 스케줄 정보, 지도 정보), 지리적 근접성 정보(예컨대, 근처의 사업장 정보), 최근에 업데이트된 정보(예컨대, 실시간 뉴스 업데이트, 블로그 업데이트, 이메일/텍스트 대화 업데이트) 및 개인적인 정보(예컨대, 사용자를 위한 칼렌다 약속들, 사용자의 지인들(acquaintances)에 대한 연락처 정보, 사용자의 소셜 네트워크에 관한 정보)를 이용할 수 있다. 언급되지 않은 다른 카테고리들의 정보들도 예측 유닛(238)에 의해서 이용 및 식별될 수 있다.
목적지 유닛(239)은 상황 판별 유닛(214)으로부터의 상황 정보 및 모바일 컴퓨팅 디바이스(202)의 사용자에 대한 이동 패턴들을 이용하여 후보 목적지 위치들을 식별할 수 있는바, 상기 이동 패턴들은 패턴 데이터 저장소(240)에 저장되며, 이는 정보를 정의할 수 있으며 그리고 사용자의 과거 이동에 영향을 미치거나 충격을 가한 다양한 상황적 인자들을 제공할 수 있다(에컨대, 규칙들, 점수 기법들 등등을 통하여). 패턴 데이터 저장소(240)는 미리 정의된 데이터 및/또는 사용자 정의 데이터를 포함할 수 있다. 패턴 데이터 저장소(240)에 저장된 데이터는 시간이 경과함에 따라 변할 수도 있다(예를 들어, 모바일 컴퓨팅 디바이스 202는 다양한 상황들하에서의 사용자의 이동 패턴들을 "학습"할 수 있으며 그리고 패턴 데이터 저장소 240에 저장된 데이터를 시간이 경과함에 따라 조절할 수 있다).
또한, 목적지 유닛(239)은 사용자 행동(behavior) 데이터 저장소(242)에 저장된 데이터를 이용하여, 컴퓨팅 디바이스(202)(혹은 다른 컴퓨팅 디바이스들)에 대한 사용자 행위(activity)와 이동 패턴들 사이의 상관관계(correlations)를 식별할 수 있다. 이러한 정보는 사용자 행동과 이동 패턴들을 상관시키는 사용자 모델을 생성 및 유지하는데 이용될 수 있다. 가령, 사용자 위치 히스토리, 사용자 검색 히스토리, 사용자 칼렌다 아이템들, 및 다른 적절한 소스들 등과 같은, 다양한 데이터 소스들이 사용자 모델들을 생성 및 유지하는데 이용될 수 있다. 예를 들어, 사용자 모델을 생성 및 유지하기 위하여, 사용자 행동 데이터 저장소(242)는 과거의 사용자 이동 발생들(occurrences)(예컨대, 통근 루트들, 심부름 가는 길들(errand trips) 등등), 이동하는 동안의 모바일 디바이스(202)에 대한 상황, 및 모바일 디바이스(202)에 의해서 제공되는 정보에 대한 이동 전후의 사용자의 행동(예컨대, 이동에 선행하는 행위, 이전의 제안에 후속하는 모바일 컴퓨팅 디바이스 202의 물리적인 이동)에 로그(log)할 수 있다.
사용자 행동 데이터 저장소(242)에 저장된 사용자 행동 데이터는, 제공된 제안과 모바일 디바이스(202)의 주어진 상황이 서로 관련이 있는지를 사용자가 알게되었음을 나타낼 수 있다. 예를 들어, 만일 사용자가 집에서 멀리 떨어진 시내에 있으며 그리고 사용자의 통상적인 저녁 식사 시간임을 식별한 직후에, 인근에 위치한 엔티티들(예컨대, 디바이스의 현재의 지리적 위치에 가깝게 위치한 음식점들)의 리스트가 사용자에게 제공되고, 그리고 모바일 디바이스가 상기 음식점들 중 하나로 이동한다면, 관련된 사용자 행위 데이터는, 상기 제안과 디바이스의 주어진 상황이 서로 관련이 있다는 것을 사용자가 알게 되었음을 나타낼 수 있다. 또 다른 일례로서, 만일 사용자에게 근처 음식점들의 리스트가 제공되었으나 사용자가 다가올 미팅에 대한 정보를 검색하기 위해 칼렌다 어플리케이션을 즉시 오픈한다면, 관련된 사용자 행위 데이터는, 상기 제안이 관련이 없음을 사용자가 알게 되었음을 나타낼 수 있다(예컨대, 사용자는 음식점에 관한 정보 대신에 미팅에 관련된 정보를 요구함).
목적지 유닛(239)은 사용자 행동 데이터 저장소(242)에 저장된 사용자 행동 데이터를 이용하여, 잠재적인 사용자 행위들 및 목적지들에 관한 정보 및 목적지들 향하는 다양한 루트들에 따른 사용자 이동과 관련이 있을 수도 있는 정보를 식별할 수 있다. 예를 들어, 목적지 유닛(239)은 모바일 디바이스(202)의 현재 상황과 유사한 과거의 상황들을 고려하여, 소정 시간 내에(예컨대, 다음 10분 이내에, 다음 1시간 이내에) 컴퓨팅 디바이스(202)의 사용자와 관련이 있을 수 있는 최소한의 임계 가능성을 갖는 후보 목적지들을 식별할 수 있다.
루트 유닛(241)은 목적지 유닛(239)에 의해서 식별된 후보 목적지들로 이동하기 위한 하나 이상의 루트들을 식별할 수 있다. 루트 유닛(241)은 패턴 데이터(240), 사용자 행동 데이터(242), 및/또는 외부 소스(예컨대, 루트 입안(planning) 컴퓨터 시스템)로부터의 정보를 이용하여, 하나 이상의 루트들을 식별할 수 있다.
외부 이벤트 예측 유닛(243)은, 가까운 미래에 루트 유닛(241)에 의해서 식별된 하나 이상의 루트들에 따른 이동에 영향을 미칠 수도 있는 임의의 외부 이벤트들이 존재하는지를 결정할 수 있다. 가령, 교통상황, 날씨-관련 서행(slowdown)(가령, 폭풍, 눈, 비), 도로 공사 및/또는 공연 이벤트들(가령, 스포츠 경기, 콘서트) 기타 등등과 같은 다양한 외부 이벤트들의 발생 가능성이 외부 이벤트 예측 유닛(243)에 의해서 분석될 수 있다. 외부 이벤트 예측 유닛(243)은 현 시점으로부터 소정 기간(예컨대, 다음 15분 동안, 다음 1시간 동안, 다음 6시간 동안, 등등) 내에 외부 이벤트들이 발생할지를 예측할 수 있다. 최소한의 임계 시간 분량 만큼(가령, 이동 시간에 적어도 5분, 10분, 혹은 15분을 추가함, 이동 시간을 적어도 20%, 25%, 혹은 50% 증가시킴), 루트 유닛(241)에 의해서 식별된 루트들에 따른 이동에 영향을 미칠 것이라고 판별된 외부 이벤트들이, 외부 이벤트 예측 유닛(243)에 의해서 식별될 수 있다.
예측 유닛(238) 및/또는 사용자 행동 데이터(242)에 의해서 식별된 정보를 이용하여, 제안 유닛(244)은 하나 이상의 루트 제안들을 제공할 수 있다. 예를 들어, 예측 유닛(238)은 임계 시간 기간 내에 사용자가 이동할 가능성이 있다라고 판별된 하나 이상의 목적지들로 향하는 하나 이상의 루트들을 식별하는 정보 및 상기 루트들을 따라 미래에 발생할 가능성이 있는 하나 이상의 잠재 이벤트들을 식별하는 정보를 제공할 수 있으며, 그리고 제안 유닛(244)은 사용자 행동 데이터(242)로부터의 데이터와 함께 상기 정보를 이용하여 컴퓨팅 디바이스(202)의 사용자에게 제안을 제공할 수 있다. 제안 유닛(244)은 사용자 행동 데이터(242)를 이용하여, 특정 제안이 다른 제안들에 비하여 관련성이 있음을 컴퓨팅 디바이스(202)의 사용자가 알아낼 가능성이 있는지의 여부를 판별할 수 있으며(예컨대, 다른 제안들에 대한 사용자의 과거 행동에 기초하여), 그리고 제공될 하나 이상의 루트 제안들을 식별하도록 이러한 판별을 이용할 수 있다. 또한, 제안 유닛(244)은 사용자 행동 데이터(242)로부터의 데이터를 이용하여 목적지 위치로 가기 위해 사용자가 취했던 다양한 루트들을 식별할 수 있다. 예를 들어, 사용자는 반복되는(예컨대, 매주 마다, 매달 마다, 등등) 미팅을 위해 특정한 목적지 위치로 이동할 수 있지만, 가끔씩(occasionally) 대중 교통 수단(public transportation)을 이용할 수도 있다. 만일, 예측 유닛(238)이, 사용자의 정기적인 루트에 따른 교통 상황이 혼잡할 가능성이 있다라고 판별한다면(예컨대, 예측된 러시아워 교통, 날씨 조건들, 공사들, 혹은 이러한 다른 주변 상황들에 기초하여), 제안 유닛(244)은 대신에 미팅 장소까지 대중 교통을 이용하라고 사용자에게 제안할 수 있다.
프로세싱은 모바일 컴퓨팅 디바이스(202)에 대해서 로컬적으로 혹은 원격적으로 수행될 수 있다. 예를 들어, 칼렌다 어플리케이션이 모바일 컴퓨팅 디바이스(202) 상에 로컬적으로(locally) 구현되는 구현예의 경우, 예측 및 제안하는 프로세싱은 모바일 컴퓨팅 디바이스(202) 상에서 로컬적으로 수행될 수 있다. 다른 일례로서, 칼렌다 어플리케이션을 위한 칼렌다 데이터가 원격 서버 시스템 상에 제공되는 구현예들의 경우, 모바일 컴퓨팅 디바이스(202)는 원격 서버 시스템과 상호작용하여 관련 칼렌다 정보에 액세스할 수 있다. 또 다른 일례로서, 예측 및 제안 유닛(244)이 원격 서버 시스템에 의해서 실행되는 구현예들의 경우, 예측 및 제안 유닛(244)은 관련 칼렌다 정보에 액세스하고 그리고 이러한 정보에 적어도 일부 기초하여 예측들 및 제안들을 수행하도록, 칼렌다 어플리케이션(예컨대, 로컬 혹은 원격)과 상호작용할 수 있다. 다양한 유닛들(214-244)은, 하드웨어(예컨대, ASIC), 소프트웨어, 펌웨어, 혹은 이들의 임의의 조합 등과 같은, 적절한 다양한 방식들 중 임의의 방식으로 구현될 수 있다.
모바일 컴퓨팅 디바이스(202)의 출력 서브시스템(246)은, 제안 유닛(244)에 의해서 획득된 결과들을 모바일 컴퓨팅 디바이스(202)의 사용자에게 제공할 수 있다. 출력 서브시스템(246)은 가령, 디스플레이(248a)(예컨대, LCD, 터치스크린), 프로젝터(248b)(예컨대, 이미지를 디바이스 202의 외부로 투영할 수 있는 이미지 프로젝터), 스피커(248c), 헤드폰 잭(248d) 등과 같은 다양한 출력 디바이스들을 포함할 수 있다. 또한, 네트워크 인터페이스(208)는 출력 서브시스템(246)의 일부가 될 수 있으며 그리고 제안 유닛(244)에 의해서 획득된 결과들을 또 다른 컴퓨팅 혹은 출력 디바이스에게 제공하도록 구성될 수 있다(예를 들어, 블루투스 헤드셋으로 결과들을 송신하거나, 다른 컴퓨팅 디바이스에게 결과들을 송신하는 것).
도2a를 참조하면, 모바일 컴퓨팅 디바이스(202)는 무선 송신기(250)(예컨대, 셀룰러 네트워크 송수신기, 무선 네트워크 라우터, 등등))와 무선으로 통신할 수 있으며 그리고 네트워크(252)(예컨대, 인터넷, PSTN, 셀룰러 네트워크, LAN, 가상 사설 네트워크(VPN), 등등)로의 액세스를 획득할 수 있다. 네트워크(252)를 통하여, 모바일 컴퓨팅 디바이스(202)는 모바일 디바이스 서버 시스템(254)(하나 이상의 네트워크화된 서버 컴퓨터들)과 통신할 수 있으며, 모바일 디바이스 서버 시스템(254)은, 모바일 디바이스 관련 서비스들 및 데이터를 모바일 컴퓨팅 디바이스(202)에게 제공하도록 구성될 수 있다(칼렌다 데이터, 이메일 데이터 등을 제공하거나, 다른 전화기로의 전화 통화들을 연결하는 것, 등등).
또한, 모바일 컴퓨팅 디바이스(202)는 네트워크(252)를 통하여 하나 이상의 정보 서버 시스템(256)과 통신할 수 있다. 정보 서버 시스템(256)은 사용자의 이동에 관련될 수도 있는 정보를 제공하는 서버 시스템이 될 수 있다. 예를 들어, 정보 서버 시스템(256)은 현재의 교통 상황들, 날씨 예보, 그리고 모바일 컴퓨팅 디바이스(202)의 현재의 지리적 위치에 가깝게 위치한 사업장들에 관한 정보를 제공할 수 있다.
도3a 및 도3b는 모바일 컴퓨팅 디바이스 상에 루트 제안들을 제공하기 위한 예시적인 기법들(300, 350)의 순서도들이다. 도3a를 참조하면, 예시적인 기법(300)은 가령, 도1에 관하여 앞서 서술된 모바일 컴퓨팅 디바이스(102) 및/또는 도2-도2b에 관하여 앞서 서술된 모바일 컴퓨팅 디바이스(202) 등과 같은 다양한 적절한 컴퓨팅 디바이스들 중 임의의 것에 의해서 수행될 수 있다. 예시적인 기법(300)의 일부분들은 다른 컴퓨팅 디바이스들에 의해서 수행될 수도 있다. 예를 들어, 예시적인 기법(300)의 일부분은 모바일 컴퓨팅 디바이스(202)에 의해서 수행될 수도 있으며, 그리고 상기 기법(300)의 일부는 모바일 디바이스 서버 시스템(254)에 의해서 수행될 수도 있다.
상기 기법(300)은 액세스되는 사용자에 대한 이동 패턴들을 식별하는 이동 패턴 정보로 시작된다(304). 일부 구현예들에서, 이동 패턴 정보는 사용자와 관련된 사용자 모델로부터 획득될 수 있다. 예를 들어, 도2a-도2b에 관하여 앞서 서술된 모바일 컴퓨팅 디바이스(202)는 사용자 행위 및 이동에 관한 데이터를 사용자 행동 데이터 저장소(242)에 저장, 유지, 및 검색할 수 있다. 이러한 사용자 행위 및 이동 데이터는, 통근 루트들, 심부름 가는 길들(errand trips), 휴가, 및 다른 종류의 사용자 행위들 및 이동에 관련된 데이터를 포함할 수 있으며 그리고 모바일 컴퓨팅 디바이스(202)의 사용자에 대한 모델을 생성 및 유지하는데 이용될 수 있다. 또한, 검색 히스토리 데이터, 칼렌다 데이터, 통신 데이터(예컨대, 이메일, 메시징, 전화 통화 등등), 소셜 네트워킹 데이터, 및 다른 적절한 데이터 등과 같은 데이터도 사용자 모델을 생성 및 유지하는데 이용될 수 있다. 본 일례에서, 모바일 컴퓨팅 디바이스(202)는 사용자 모델에 포함된 데이터로부터 사용자 이동 패턴들을 식별할 수 있으며, 그리고 향후 참조를 위해 이러한 패턴 데이터를 페턴 데이터 저장소(240)에 저장, 유지, 검색할 수 있다.
모바일 컴퓨팅 디바이스 및/또는 모바일 컴퓨팅 디바이스의 사용자에 대한 현재 상황이 판별될 수 있다(306). 현재 상황은 모바일 컴퓨팅 디바이스 및/또는 관련 사용자가 현재 위치하고 있는 곳인 현재의 지리적 위치를 적어도 포함한다. 예를 들면, 글로벌 포지셔닝 서비스(GPS) 기술 혹은 몇몇 다른 위치 식별 기술을 이용하여 모바일 컴퓨팅 디바이스(202)가 사용자의 현재 지리적 위치를 식별할 수 있게 하는 서비스에 사용자가 동의할 수도 있다. 본 일례에서, GPS 유닛(216)은 사용자의 현재 위치에 관한 사용자 위치 정보를 모바일 디바이스 상황 판별 유닛(214)에게 제공할 수 있다. 예를 들어, 상기 사용자는 현재 사용자의 직장에 위치하고 있다라고 식별될 수 있다.
사용자에 대한 현재 상황은 현재 시각, 현재 날짜, 그리고 사용자를 위한 하나 이상의 칼렌다 이벤트들을 포함할 수 있다. 예를 들어, 모바일 디바이스 상황 판별 유닛(214)은 사용자에 대한 현재 상황을 판별하는 것의 일부로서, 시간 및 날짜 유닛(228)과 칼렌다 유닛(230)에 액세스할 수 있다. 본 일례에서, 모바일 컴퓨팅 디바이스(202)는 현재 시간이 금요일 오후 5시라고 판별할 수 있으며, 금요일 오후 5시 이후에는 사용자의 칼렌다 상에 칼렌다 이벤트들이 없다라고 판별할 수 있다.
사용자에 대한 현재 상황은 하나 이상의 칼렌다 어플리케이션, 이메일 어플리케이션, 및 소셜 네트워킹 어플리케이션으로부터 도출될 수도 있다. 예를 들어, 사용자의 칼렌다에 액세스할 수 있을 뿐만 아니라, 모바일 컴퓨팅 디바이스(202)는 사용자의 이메일 및 소셜 네트워킹 계정에 액세스할 수 있다. 본 일례에서, 사용자의 소셜 네트워킹 계정은 사용자와 그의 친구들 간의 일련의 통신들을 포함할 수 있으며, 상기 통신들은 시내 건너편에 있는 특정 식당(예컨대, "Joe's 식당" )에 관한 언급 및 특정 시간(예컨대, 저녁 6시)에 관한 언급을 포함할 수 있다.
이동 패턴 정보 및 현재 상황에 적어도 일부 기초하여, 하나 이상의 후보 목적지 위치들이 식별될 수 있다(308). 가까운 미래에(예컨대, 다음 15분 이내에) 현재의 지리적 위치로부터 후보 목적지 위치들로 이동할 최소한의 임계 이동 가능성을 사용자가 갖는다라고 판별되는 것에 기초하여, 후보 목적지 위치가 식별될 수 있다. 예를 들어, 사용자의 과거 행위 및 이동 패턴들에 기초하여 그리고 현재 상황에 기초하여, 예측 유닛(238) 및/또는 제안 유닛(244)은, 사용자가 다양한 위치들로 이동할 확률들을 판별할 수 있으며, 그리고 사용자가 이러한 위치들에 도달하고자 하는 시간들을 판별할 수 있다. 사용자가 이동할 가능성이 있는 위치들을 식별하기 위한 임계 레벨들은 기결정된 값을 포함할 수도 있다. 예를 들어, 임계 레벨에 대한 기결정된 값은 가령, 50%, 75%, 90%, 95%, 99% 등의 확률 퍼센트 및/또는 다른 적절한 값들로 표현될 수 있다. 일부 구현예들에서, 임계 레벨들은 사용자에 의해서 설정될 수도 있다. 임계 레벨을 조절함으로써, 예컨대, 사용자는 자동적으로 제공되는 제안들의 빈도를 제어할 수도 있으며, 그리고 이러한 제안들이 사용자의 현재 상황에 적용될 가능성을 제어할 수도 있다.
다양한 상황 인자들에 기초하여, 사용자가 다양한 위치들로 이동할 확률들을 증가 혹은 감소시키기 위해, 순위결정(ranking) 혹은 스코어링(scoring) 기법들이 이용될 수도 있다. 예를 들어, 예측 유닛(238)은 사용자 모델 및 패턴 데이터(240)를 참조하여, 일반적으로, 사용자는 보통 퇴근후 곧 바로 집으로 가지만(예컨대, 90%의 확률로), 때때로 다른 다양한 위치들로 이동한다(예컨대, 10%의 확률로)라고 판별할 수 있다. 하지만, 오늘은 금요일에 해당하고, 금요일들에 사용자는 퇴근후 곧 바로 집으로 갈 가능성이 더 적으며(예컨대, 70%의 확률), 소정 확률(예컨대, 20%의 확률)로 쇼핑몰로 가거나 혹은 소정 확률(예컨대, 10%의 확률)로 몇몇 다른 장소로 간다. 또한, 오늘 사용자는 공교롭게도 대중 교통을 이용하여 직장에 갔으며, 그리고 이러한 금요일들에 사용자가 대중 교통을 이용하여 직장에 가는 경우, 사용자가 곧 바로 집으로 퇴근할 확률은 더 적으며(예컨대, 50%의 확률), 그리고 전 처럼 식당 혹은 술집으로 갈 가능성(예컨대, 50%의 확률)이 있다. 또한, 사용자가 대중 교통을 이용하여 출근하는 금요일들이며, 그리고 사용자가 "Joe's 식당으로 가는 것"에 대해서 그의 친구들과 통신하는 경우, 사용자가 집으로 먼저 퇴근할 확률은 매우 적으며(예컨대, 5%의 확률), 그리고 시내 건너편의 Joe's 식당으로 향하는 버스를 탈 확률은 매우 높을 것이다(예컨대, 95%의 확률). 따라서, 사용자가 하나 이상의 위치들로 이동하고자 할 확률들을 결정하도록, 다양한 현재의 상황 인자들이 함께 고려될 수 있으며 그리고 사용자의 과거 행위 및 행동에 대해서 고려될 수 있다.
하나 이상의 식별된 목적지 위치들에 대해서, 예를 들어, 모바일 컴퓨팅 디바이스(202)는 사용자가 이들 위치들에 도착하기를 원할 수도 있는 시간들을 식별할 수 있다. 본 일례에서, 모바일 컴퓨팅 디바이스(202)는 사용자가 Joe's 식당에 갈 가능성이 있다라고 판별할 수 있다. Joe's 식당에서 만나기 위한 특정 시간(예컨대, 저녁 6시)을 언급하고 있는 사용자와 그의 친구들 간의 소셜 네트워킹 대화들을 포함하는 상황 정보에 기초하여 그리고 이러한 만남의 경우 사용자는 통상적으로 시간을 어기지 않고 참석하는 것을 선호함을 나타내는 히스토리컬(historical) 사용자 행동 데이터에 기초하여, 예측 유닛(238)은 저녁 6시에 Joe's 식당에 도착하도록 사용자는 제 시간에 퇴근하기를 선호할 것이라고 판별할 수 있다. 본 일례에서, 모바일 컴퓨팅 디바이스(202)는 정보 서버 시스템(256)(예컨대, 대중 교통 정보를 호스팅하는 서버)에 액세스하여, 사용자의 직장과 Joe's 식당 사이의 사용자 이동과 관련이 있는 대중 교통 스케줄들을 식별할 수 있다.
식별된 후보 목적지 위치들로 이동하기 위한 루트들이 식별될 수 있다(309). 예를 들어, 도1을 참조하여 전술한 바와 같이, 특정한 목적지 위치로 이동하기 위한 잠재 루트들로서, 루트들(142a, 142b)이 식별된다. 상기 루트들은, 가령, 사용자에 의해서 취해진 히스토릭 이동 패턴들/루트들(예컨대, 사용자는 고속도로를 이용하여 종종 출근함) 및/또는 루트 제안 시스템에 의해서 제안된 루트들(루트 제안 시스템은 모바일 컴퓨팅 디바이스에 대해 로컬이거나 및/또는 원격일 수 있음), 등과 같은 다양한 소스들로부터 식별될 수 있다.
식별된 루트들에 따라 발생할 수도 있는 하나 이상의 외부 이벤트들(즉, 이들 외부 이벤트들은 최소한의 임계 발생 확률을 갖는다)에 관한 예측들이 생성될 수 있다(310). 본 일례에서, 모바일 컴퓨팅 디바이스(202)는 추가적인 정보 서버 시스템(256)에 액세스할 수도 있는데, 상기 정보 서버 시스템(256)은 현재의 교통 상황, 날씨 예보, 이벤트(가령, 스포츠 경기, 콘서트, 극장 등등) 스케줄에 관한 정보, 및 다른 잠재적인 관련 정보를 제공할 수 있다. 예를 들어, 이러한 정보에 기초하여, 예측 유닛(238)은 특정 이벤트(예컨대, 야구 경기)가 곧 종료할 것이며 그리고 오후 5시 10분에서 5시 20분 사이에 종료할 확률이 80% 이다라고 판별할 수 있다. 또한, 예측 유닛(238)은 유사한 이벤트들이 금요일의 해당 시간대에 종료하는 경우, 사용자의 직장과 Joe's 식당 사이의 주요 버스 노선에 대한 버스 스케쥴에 부정적인 영향이 역사적으로(historically) 있어왔다고 판별할 수 있다.
이벤트 예측들을 이용하여 하나 이상의 특정 루트들이 선택될 수 있다(311). 상기 하나 이상의 특정 루트들은, 다양한 인자들, 가령, 사용자가 후보 목적지 위치들로 이동할 가능성, 이러한 제안이 도움이 될 것이라는 점을 사용자가 알게될 가능성(예컨대, 이러한 제안들에 사용자가 과거에 어떻게 반응했는지를 검사함으로써), 및/또는 하나 이상의 예측된 이벤트들에 의해서 야기되는 지연 등등에 기초하여 선택될 수 있다.
일부 구현예들에서, 특정 루트는, 하나 이상의 이벤트들이 최소한의 임계 시간 분량 만큼(예컨대, 5분, 10분, 15분, 혹은 다른 적절한 기결정된 및/또는 사용자 설정가능한 임계값) 하나 이상의 루트들에 따른 이동에 영향을 미칠 것이라는 최소한의 임계 레벨의 신뢰성이 존재하는 경우, 제안으로서 사용자에게 제공되도록 선택될 수 있다. 본 일례에서, 예측 유닛(238) 및/또는 제안 유닛(244)은, 야구 경기가 종료한 직후 및 경기 종료 후 1시간 동안, 사용자의 직장과 Joe's 식당 사이의 버스 노선을 따른 이동 시간이 15분 가량 지연될 가능성이 있다라고 판별할 수 있다. 따라서, 제안 유닛(244)은 예측된 지연을 보상할 수 있는 적절한 시간에 사용자의 현재 위치로부터 출발할 것을 모바일 컴퓨팅 디바이스(202)의 사용자에게 제안할 수 있는바(예컨대, 사용자의 히스토리컬 이동 패턴들에 기초하여), 따라서, 사용자는 선호하는 시간에 목적지 위치에 도달할 수 있을 것이다. 예를 들어, 제안 유닛(244)은, Joe's 식당에 저녁 6시에 도착하기 위해서 사용자는 그의 정기적인(regular) 정류장에서 저녁 5시 15분에 버스를 타야만 한다라고 판별할 수 있으며, 사용자가 상기 정류장까지 걸어가는데 통상적으로 5분이 걸린다라고 판별할 수 있으며, 그리고 사용자가 퇴근 준비를 하는데 통상적으로 5분이 걸린다라고 판별할 수 있는바, 모바일 컴퓨팅 디바이스(202)는, 사용자가 직장을 떠나서 Joe's 식당으로 가는 버스를 타라는 제안을 저녁 5시 5분에 제공할 수 있다.
선택된 특정 루트에 관하여 제안이 사용자에게 제공될 수 있다(312). 상기 제안은 다양한 방식으로 제공될 수 있는바, 가령 디스플레이 상에 시각적으로 제공될 수도 있으며 및/또는 스피커 시스템을 이용하여 청각적으로 제공될 수도 있다. 일부 구현예에서는, 사용자에 의한 촉구(prompting)가 없이도, 상기 제안이 제공될 수 있다. 예를 들어, 만일, 예측 유닛(238)이, 사용자가 Joe's 식당으로 가고자 의도하는 임계 가능성 보다 큰 가능성이 존재한다라고 판별하고, 하나 이상의 이벤트들이 Joe's 식당으로 향하는 상기 루트에 따른 사용자의 이동에 영향을 미칠 임계 가능성 보다 큰 가능성이 존재한다라고 판별하고, 그리고 이러한 이벤트들이 상기 루트를 따른 이동에 임계 시간 분량보다 더 많이 영향을 미칠 수도 있다라고 판별한다면, 모바일 컴퓨팅 디바이스(202)는 최적의 시간에서 행동을 취할 것을 사용자에게 자동으로 경고할 수 있다. 예를 들어, 모바일 컴퓨팅 디바이스(202)는, 행동에 대한 콜(call)을 포함하는 제안(예컨대, "Joe's 식당에 저녁 6시에 도착하도록 123번 버스를 5시 15분에 타라, 혹은 택시를 불러라!")과 함께, 촉각적인 경고(가령, 진동), 청각적인 경고(가령, 벨 소리) 및/또는 시각적인 경고(가령, 플래시)를 제공할 수 있다. 따라서, 사용자의 정규 루틴 혹은 스케쥴에 영향을 미칠 수도 있는 이벤트들이 발생하는 경우, 사용자는 정보를 제공받을 수 있는바, 사용자가 이러한 정보에 반응할 수 있는 시간에서, 상기 정보를 제공받을 수 있다.
일부 구현예들에서는, 사용자의 이동이 영향을 받을 가능성이 임계 레벨의 신뢰성보다 낮은 경우, 제안을 요청하는 사용자 입력에 응답하여 사용자에게 제안이 제공될 수도 있다. 예를 들어, 사용자가 Joe's 식당에 가기로 결정했을 수도 있다라고 예측 유닛(238)이 판별하였지만, 사용자의 정규 버스 노선에 따른 정상적인 혹은 예상되는 이동 패턴들에 영향을 미칠 임계 가능성보다 큰 가능성을 갖는 외부 이벤트들이 존재하지 않는 경우, 모바일 컴퓨팅 디바이스(202)는 사용자 요청이 있으면 하나 이상의 제안들을 제공할 수 있다. 예를 들어, 사용자는 모바일 컴퓨팅 디바이스(202)의 입력 제어부와 상호작용하여 제안들을 요청할 수 있으며, 그리고 모바일 컴퓨팅 디바이스(202)는 시각적인 및/또는 청각적인 출력 디바이스를 통하여 제안들을 제공할 수 있다. 모바일 컴퓨팅 디바이스(202)는 사용자의 정규 버스 노선 및 하나 이상의 대안 노선들에 관련된 정보를 예를 들어, 출발 시간, 도착 시간, 총 이동 시간과 함께 제공할 수 있다.
일부 구현예들에서, 만일 사용자의 의도가 애매모호하다면, 사용자가 잠재적으로 관심있어할 수도 있는 하나 이상의 목적지들에 관한 정보가 사용자에게 제공될 수 있다. 예를 들어, 만일 사용자가 소정 정도의 확실성(즉, 임계값에 도달하지 않음)으로 임의의 특정 목적지로 이동하고자 하는지를 예측 유닛(238)이 판별할 수 없다면, 다수의 잠재적인 사용자 목적지들에 관한 정보가 요청에 있으면 사용자에게 제공될 수 있다. 만일, 예측 유닛(238)이 사용자가 예컨대, 집으로 갈지, 쇼핑 몰로 갈지 혹은 식당으로 갈지를 판별할 수 없다면, 모바일 디바이스(202)에 의해서 3개의 가능성들 모두에 관한 요약 정보가 사용자에게 제공될 수 있으며(예컨대, 관심있는 가능성 순서대로 순위정렬된 리스트로서), 그리고 사용자는 선호하는 목적지를 선택하여 그 목적지에 관한 추가적인 이동 정보를 수신할 수 있다(예컨대, 루트들, 맵들, 예측된 출발/도착 시간들, 연락처 정보, 영업 시간 등등).
확률 임계값이 교차되는(crossed) 때에, 사용자에 의한 촉구가 없이도 소정의 정보를 제공하고 그리고 사용자의 요청에 따라 다른 정보를 제공함으로써, 예컨대, 적시에 그리고 사용자에게 유용할 것 같은 때에, 정보가 사용자에게 자동으로 제공될 수 있다. 오류있는(false) 포지티브들(즉, 관련 없는 정보)이 감소될 수 있으며, 따라서 불필요한 사용자 주의산만(distractions)을 감소시킬 수 있다. 또한, 사용자와 어느정도 관련이 있을 수도 있는 정보가 용이하게 이용가능하다(사용자가 그 정보에 액세스하고자 한다면).
도3b를 참조하면, 모바일 컴퓨팅 디바이스(352), 제안 컴퓨터 시스템(354), 및 정보 컴퓨터 시스템(356)에 의해서 부분적으로 기법(350)이 수행될 수 있다. 모바일 컴퓨팅 디바이스(352)는, 가령, 모바일 컴퓨팅 시스템(102) 및/또는 모바일 컴퓨팅 시스템(202) 등과 같은 다양한 적절한 모바일 컴퓨팅 디바이스들 중 임의의 것이 될 수 있다. 제안 컴퓨터 시스템(354)은 가령, 모바일 디바이스 서버 시스템(254) 등과 같은 다양한 적절한 컴퓨터 시스템들 중 임의의 것이 될 수 있다. 정보 컴퓨터 시스템(356)은 가령, 정보 서버 시스템(256) 등과 같은 다양한 적절한 컴퓨터 시스템들 중 임의의 것이 될 수 있다.
예시적인 기법(350)은 사용자 모델을 모바일 컴퓨팅 디바이스(352)에게 제공하는 제안 컴퓨터 시스템(354)과 함께 시작할 수 있다(358). 도2a 내지 도2b를 참조하여 전술한 바와 같이, 사용자 모델은 가령, 사용자의 히스토릭 이동 패턴들 및 행위(activity)와 이동 간의 연관성들(cerrelations)(예컨대, 맵-기반의 검색 질의들과 후속 이동 사이의 연관성들) 등과 같은, 모바일 컴퓨팅 디바이스(352)의 사용자의 행동을 나타낼 수 있는 다양한 정보를 포함할 수 있다. 사용자 모델은 참여 매커니즘(opt-in mechanism)을 통한 사용자의 허락을 이용하여, 제안 컴퓨터 시스템(354)에 의해서 유지될 수 있다.
모바일 컴퓨팅 디바이스(352)는 사용자 모델을 액세스할 수 있으며(360) 그리고 사용자가 다른 지리적 위치로 이동할 수도 있는 상황들을 사용자 모델을 이용하여 모니터링할 수 있다. 이러한 모니터링의 일부로서, 모바일 컴퓨팅 디바이스(352)는 모바일 컴퓨팅 디바이스의 현재 상황을 주기적으로(예컨대, 10초 마다, 1분 마다, 5분 마다, 30분 마다, 1시간 마다, 하루 마다 등등) 식별할 수 있으며(362) 그리고 현재 상황과 사용자 모델을 비교하여 사용자가 가까운 미래에 다른 위치로 이동할 가능성을 판별할 수 있다(364). 만일, 최소한의 임계 가능성이 판별된다면(예컨대, 사용자가 다른 위치로 이동할 최소한 25%, 50%, 75%, 90%의 가능성), 모바일 컴퓨팅 디바이스(352)는 사용자가 이동할 수도 있음을 나타내는 표시 및 현재 상황 중 적어도 일부를 제안 컴퓨터 시스템(354)에 제공함으로써, 루트 제안을 요청할 수 있다(366).
모바일 컴퓨팅 디바이스(352)로부터 이동 표시(travel indication)를 수신하는 것에 응답하여, 제안 컴퓨터 시스템(354)은 현재 상황을 분석할 수 있으며(368) 그리고 현재 상황과 관련이 있을 수도 있는 추가 정보를 하나 이상의 제3의 정보 소스들(가령, 정보 컴퓨터 시스템 356)로부터 획득할 수 있다(370). 예를 들어, 제안 컴퓨터 시스템(354)은 모바일 컴퓨팅 디바이스(352)의 현재 지리적 위치 주변의 영역에 관한 교통 정보 혹은 날씨 정보와 같은 관련 정보를 정보 컴퓨터 시스템(356)으로부터 요청할 수 있으며 그리고 정보 컴퓨터 시스템(356)은 요청된 정보를 제안 컴퓨터 시스템(354)에게 제공할 수 있다(372). 현재 상황 및 추가적인 정보를 이용하여, 제안 컴퓨터 시스템(354)은 후보 목적지들 및 후보 목적지들로 이동하기 위한 루트들을 식별할 수 있는바(374) 이는, 전술한 기법들과 유사하다.
제안 컴퓨터 시스템(354)은 컴퓨팅 디바이스의 사용자가 식별된 루트를 따라 이동할 가능성을 다양한 정보(가령, 현재 상황에 대한 과거의 사용자 행동 및/또는 루트 제안들에 대한 과거의 사용자 행동 등)에 근거하여 판별할 수 있다(376). 또한, 제안 컴퓨터 시스템(354)은 하나 이상의 식별된 루트들에 따라 사용자가 이동할 것인지에 대한 최소한의 임계 가능성이 있는지의 여부를 판별할 수 있다(378). 만일, 가능한 루트들 중 임의의 것이 도움이 된다라거나 혹은 주어진 현재 상황에 관련이 있음을 사용자가 발견할 것 같지 않다면, 제안 컴퓨터 시스템(354)은 제안이 제공되지 않아야 한다라고 결정할 수 있으며 그리고 그 어떤 제안도 제공되지 않는다라는 표시를 모바일 컴퓨팅 디바이스(352)에 제공할 수 있다. 이에 응답하여, 모바일 컴퓨팅 디바이스(352)는 루트 제안을 출력하지 않을 것이다(380).
하지만, 하나 이상의 식별된 루트들을 따라 사용자가 이동할 최소한의 임계 가능성이 있다라고 판별된다면, 제안 컴퓨터 시스템(354)은 하나 이상의 루트들을 따라 미래에 발생할 수도 있는 하나 이상의 잠재 이벤트들에 대한 예측들을 생성할 수 있다(382). 과거의 사용자 행동, 현재 상황, 및/또는 하나 이상의 루트들을 따라 발생할 것이라고 예측된 외부 이벤트들을 포함하는, 다양한 인자들에 기초하여 특정 루트가 선택될 수 있다(384). 선택된 특정 루트를 이용하여, 제안 컴퓨터 시스템(354)은 루트 제안을 모바일 컴퓨팅 디바이스(352)에 제공할 수 있으며(386), 이어서 모바일 컴퓨팅 디바이스(352)는 제안된 루트를 식별하는 정보를 사용자에게 출력할 수 있다(388). 전술한 바와 같이, 모바일 컴퓨팅 디바이스(352)는 이러한 정보를 다양한 방식으로 출력할 수 있다(가령, 시각적으로 및/또는 청각적으로).
루트 제안을 출력한 이후에, 모바일 컴퓨팅 디바이스(352)는 최소한의 임계 시간 기간 동안 이동을 모니터링할 수 있다(390). 이러한 모니터링은 사용자의 옵트-인 동의(opt-in consent)를 통한 사용자의 허락하에서 수행될 수 있다. 특정한 루트 제안이 도움이 된다거나 및/또는 주어진 상황에 관련이 있음을 사용자가 발견했는지의 여부를 나타내는 정보는 보다 관련성이 있으며 도움이 되는 제안들을 미래에 제공하는데 도움을 줄 수 있다. 모바일 컴퓨팅 디바이스(352)은 루트 제안을 출력하는 것에 후속되는 이동에 관한 정보를 제안 컴퓨터 시스템(354)에 제공할 수 있으며(392), 제안 컴퓨터 시스템(354)은 이동 정보를 저장할 수 있으며 그리고 이를 이용하여 루트 제안들을 후속 시점에서 사용자에게 제공할 수 있다(394). 또한, 이러한 이동 정보는, 주어진 현재 상황에서의 이동에 대하여 사용자가 어떻게 행동했는지를 반영하도록 사용자 모델을 업데이트하는데 이용될 수 있다(394).
비록, 모바일 컴퓨팅 디바이스(352), 제안 컴퓨터 시스템(354), 및 정보 컴퓨터 시스템(356)에 걸쳐서 상기 기법(350)의 분산이 특정 구성으로 도시되었지만, 상기 기법(350)의 일부분들은 기법(350)에 도시된 것과는 다른 디바이스 혹은 시스템에 의해서 수행될 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 현재의 상황 정보를 제안 컴퓨터 시스템(354)에게 주기적으로 제공할 수도 있으며 그리고 제안 컴퓨터 시스템(354)은 모바일 컴퓨팅 디바이스(352)로부터의 현재의 상황 정보를 이용하여 이동 가능성을 판별할 수 있다(364).
도4는 본 명세서에 서술된 기법들, 시스템들, 매커니즘들 및 방법들을 구현하는데 이용될 수 있는 시스템에 대한 개념도이다. 모바일 컴퓨팅 디바이스(410)는 기지국(440)과 무선으로 통신할 수 있으며, 기지국(440)은 네트워크(450)를 통해 다양한 서비스들(460)에 대한 무선 액세스를 모바일 컴퓨팅 디바이스에게 제공할 수 있다.
이러한 예시에서, 모바일 컴퓨팅 디바이스(410)는, 모바일 컴퓨팅 디바이스(410)의 사용자에게 콘텐트를 제공하기 위한 터치스크린 디스플레이 디바이스(412)를 포함하는 휴대용 모바일 텔레폰(예컨대, 스마트폰 혹은 어플리케이션 텔레폰)으로 도시된다. 모바일 컴퓨팅 디바이스(410)는 모바일 컴퓨팅 디바이스(410)의 동작에 영향을 미치는 사용자-입력을 수신하기 위한 다양한 입력 디바이스들(예컨대, 키보드 414, 터치스크린 디스플레이 디바이스 412)을 포함한다. 추가 구현예들에서, 모바일 컴퓨팅 디바이스(410)는 랩탑 컴퓨터, 테블릿 컴퓨터, PDA, 내장 시스템(예컨대, 자동차 네비게이션 시스템), 데스크탑 컴퓨터, 혹은 컴퓨터화된 워크스테이션 등이 될 수 있다.
모바일 컴퓨팅 디바이스(410)는 다양한 시각적인, 청각적인, 및 촉각적인 사용자-출력 매커니즘들을 포함할 수 있다. 예시적인 시각적인 출력 매커니즘은 디스플레이 디바이스(412)이며, 이는 보여질 수 있는 사용자 인터페이스를 제공하도록 비디오, 그래픽들, 이미지들 및 텍스트를 시각적으로 디스플레이할 수 있다. 예를 들어, 디스플레이 디바이스(412)는 3.7 인치 아몰레드(AMOLED) 스크린이 될 수 있다. 다른 시각적인 출력 매커니즘들은 LED 상태 표시 라이트((예컨대, 음성 메일이 수신되었을 때 빛이 깜빡거리는 라이트)를 포함할 수 있다.
예시적인 촉각 출력 매커니즘은 불균형한 추에 연결되어 진동 알람을 제공하는 작은 전기 모터이다(예컨대, 전화가 왔음을 사용자에게 알리기 위해서 또는 터치스크린 412과의 사용자 접촉을 확인하기 위하여 진동한다). 또한, 모바일 컴퓨팅 디바이스(410)는, 전기 신호를 예컨대, 소리(음악, 오디오 알람, 전화 통화에서의 개인 목소리 등)로 변환하는 하나 이상의 스피커들(420)을 포함할 수 있다.
사용자 입력을 수신하는 예시적인 매커니즘은 키보드(414)를 포함하며, 이는 풀 쿼티(full qwerty) 키보드 또는 디지트들 '0-9', '*' , '#'에 대한 키들을 포함하는 통상적인 키보드일 수 있다. 키보드(414)는 사용자가 키보드 키에 물리적으로 접촉하거나 이를 누를 때에 입력을 수신한다. 트랙볼(416)에 대한 사용자 조작 혹은 트랙패드와의 상호작용은, 회전 정보의 방향 및 속도를 사용자가 모바일 컴퓨팅 디바이스(410)에게 제공할 수 있게 한다(예컨대, 디스플레이 디바이스 412 상의 커서의 위치를 조작함으로써).
모바일 컴퓨팅 디바이스(410)는 터치스크린 디스플레이 디바이스(412)와의 물리적 접촉의 위치를 판별할 수 있다(예컨대, 손가락 혹은 스타일러스에 의한 콘택의 위치). 터치스크린(412)을 이용하면, 다양한 "가상(virtual)" 입력 매커니즘들이 제공될 수 있는바, 가상 입력 매커니즘에서 사용자는 그래픽 사용자 인터페이스 요소를 콘택함으로써 터치스크린(412) 상에 표시된 그래픽 사용자 인터페이스 요소와 상호작용할 수 있다. 가상 입력 매커니즘의 일례는 "소프트웨어 키보드" 이며, 소프트웨어 키보드에서는 키보드가 터치스크린 상에 디스플레이되며 그리고 각각의 키에 대응하는 터치스크린(412)의 영역을 누름으로써 사용자는 키를 선택할 수 있다.
모바일 컴퓨팅 디바이스(410)는 기계적인 혹은 터치 민감형 버튼들(418a-418d)을 포함할 수 있다. 또한, 모바일 컴퓨팅 디바이스(410)는 하나 이상의 스피커(420)에 의해서 출력되는 볼륨을 조절하기 위한 버튼들 및 모바일 컴퓨팅 디바이스를 턴온 혹은 턴오프하기 위한 버튼들을 포함할 수 있다. 마이크로폰(422)은 모바일 컴퓨팅 디바이스(410)가 청각 사운드를 전기 신호로 변환할 수 있게 하며, 이러한 전기 신호는 디지털적으로 인코딩되거나, 컴퓨터-판독가능한 메모리에 저장되거나, 혹은 다른 컴퓨팅 디바이스로 전송될 수 있다. 또한, 모바일 컴퓨팅 디바이스(410)는 디지털 컴퍼스, 가속도계, 근접 센서, 및 주변 광 센서를 포함할 수 있다.
운영 시스템은 모바일 컴퓨팅 디바이스의 하드웨어(예컨대, 입/출력 매커니즘 및 컴퓨터 판독가능한 매체로부터 검색된 명령들을 실행하는 프로세서)와 소프트웨어 사이의 인터페이스를 제공할 수 있다. 예시적인 운영 시스템들은 안드로이드(ANDROID) 모바일 컴퓨팅 디바이스 플랫폼, APPLE IPHONE/MAC OS X 운영 시스템들, 마이크로소프트 윈도우 7/윈도우 모바일 운영 시스템들, 심비안(SYMBIAN) 운영 시스템, RIM 블랙베리 운영 시스템, PALM WEB 운영 시스템, 다양한 UNIX-계열 운영 시스템들, 혹은 컴퓨터화된 디바이스들을 위한 독점적인 운영 시스템을 포함할 수 있다. 운영 시스템은, 컴퓨팅 디바이스와 사용자 간의 상호작용을 용이하게 하는 어플리케이션 프로그램들의 실행을 위한 플랫폼을 제공할 수 있다.
모바일 컴퓨팅 디바이스(410)는 터치스크린(412)과의 그래픽 사용자 인터페이스를 제공할 수 있다. 그래픽 사용자 인터페이스는 하나 이상의 그래픽 인터페이스 요소들의 집합이며, 그리고 정적일 수도 있고(예컨대, 디스플레이는 시간이 경과해도 동일하게 유지되는 것처럼 보임) 혹은 동적일 수도 있다(예컨대, 그래픽 사용자 인터페이스는 사용자의 입력 없이도 움직이는(animate) 그래픽 인터페이스 요소들을 포함한다).
그래픽 인터페이스 요소는 텍스트, 라인들, 형상들, 이미지들, 혹은 이들의 조합일 수 있다. 예를 들어, 그래픽 인터페이스 요소는 데스크탑 상에 디스플레이되는 아이콘 및 상기 아이콘의 관련 텍스트일 수 있다. 일부 구현예들에서, 그래픽 인터페이스 요소는 사용자 입력으로 선택가능하다. 예를 들어, 사용자는 그래픽 인터페이스 요소의 디스플레이에 대응하는 터치스크린의 영역을 누름으로써 그래픽 인터페이스 요소를 선택할 수 있다. 일부 구현예들에서, 사용자는 관심이 있는 것으로서 하나의 그래픽 인터페이스 요소를 하이라이트하도록 트랙볼을 조작할 수 있다. 그래픽 인터페이스 요소에 대한 사용자-선택은 모바일 컴퓨팅 디바이스에 의한 미리-정의된 행동을 호출할 수 있다. 일부 구현예들에서, 선택가능한 그래픽 인터페이스 요소들은 키보드(404) 상의 버튼에 추가적으로 혹은 대안적으로 대응한다. 버튼에 대한 사용자-선택은 미리-정의된 행동을 호출할 수 있다.
일부 구현예들에서, 운영 시스템은 모바일 컴퓨팅 디바이스(410)를 턴온시키거나, 수면 상태로부터 모바일 컴퓨팅 디바이스(410)를 활성화시키거나, 모바일 컴퓨팅 디바이스(410)를 잠금해제(unlocking)하거나 혹은 "홈(Home)" 버튼(418c)에 대한 사용자 선택을 수신하면 디스플레이되는 "데스크탑" 사용자 인터페이스를 제공한다. 데스크탑 그래픽 인터페이스는 여러 아이콘들을 디스플레이할 수 있으며, 이들 아이콘들은 사용자-입력으로 선택되는 경우, 해당하는 어플리케이션 프로그램들을 호출한다. 호출된 어플리케이션 프로그램은, 어플리케이션 프로그램이 종료되거나 혹은 시야에서 숨겨질 때까지, 데스크탑 그래픽 인터페이스를 대체하는 그래픽 인터페이스를 제공할 수 있다.
사용자 입력은 모바일 컴퓨팅 디바이스(410) 동작들의 시퀀스를 조작할 수 있다. 예를 들어, 싱글-액션(single-action) 사용자 입력(예컨대, 터치스크린를 한번 두르림, 터치스크린를 가로질러 밀기(swipe), 버튼 누름 혹은 이들을 동시에 조합하는 것)은, 사용자 인터페이스의 디스플레이를 변경하는 동작을 호출할 수 있다. 사용자-입력 없이, 사용자 인터페이스는 특정 시간에서 변경되지 않을 수도 있다. 예를 들어, 터치스크린(412)과의 멀티-터치(multi-touch) 사용자 입력은 소정 위치를 줌-인(zoom-in)하는 맵핑 어플리케이션을 호출할 수도 있다(비록, 상기 맵핑 어플리케이션이 수 초 후에 디폴트로 줌-인하더라도).
또한, 데스크탑 그래픽 인터페이스는 위젯(widget)을 디스플레이할 수 있다. 위젯은 실행되었던 어플리케이션 프로그램과 관련된 하나 이상의 그래픽 인터페이스 요소들이며, 그리고 실행 어플리케이션 프로그램에 의해서 제어되는 컨텐트를 데스크탑 상에 디스플레이한다. 사용자가 해당 아이콘을 선택할 때까지 호출되지 않을 수 있는 어플리케이션 프로그램과 달리, 위젯의 어플리케이션 프로그램은 모바일 전화기와 함께 시작할 수 있다. 또한, 위젯은 전체 디스플레이에 초점을 맞추지 않을 수도 있다. 대신에, 위젯은 데스크탑의 오직 작은 부분만을 점유할 수 있으며, 데스크탑의 그 부분 내에서 콘텐트를 디스플레이하고 그리고 터치스크린 사용자 입력을 수신한다.
모바일 컴퓨팅 디바이스(410)는 하나 이상의 위치-식별 매커니즘들을 포함할 수 있다. 위치-식별 매커니즘은 운영 시스템 및 어플리케이션 프로그램들에게 모바일 전화기의 지리적 위치에 대한 추정치를 제공하는 하드웨어와 소프트웨어의 집합을 포함한다. 위치-식별 매커니즘은 위성-기반의 포지셔닝 기법들, 기지국 송신 안테나 식별법, 다중 기지국 삼각 측량법, 인터넷 액세스 포인트 IP 위치 판별법, 검색 엔진 질문들에 기초하는 사용자 위치에 대한 추론적 식별법, 사용자-제공 위치 식별(예컨대, 소정 장소에 체킹 인(checking in)함으로써)을 채용할 수 있다.
모바일 컴퓨팅 디바이스(410)는 다른 어플리케이션 모듈들 및 하드웨어를 포함할 수 있다. 콜 핸들링 유닛(call handling unit)은 착신 전화(incoming telephone call)에 대한 표시를 수신할 수 있으며 그리고 착신 전화에 대답할 수 있는 능력들을 사용자에게 제공할 수 있다(에컨대, 그래픽 사용자 인터페이스를 제공하거나, 오디오 사용자 인터페이스를 제공함). 매체 재생기는 사용자가 음악을 듣거나 혹은 모바일 컴퓨팅 디바이스(410)의 로컬 메모리에 저장된 영화를 감상하게 할 수 있다. 모바일 컴퓨팅 디바이스(410)는 디지털 카메라 센서 및 이에 대응하는 이미지 및 비디오 캡춰 및 편집 소프트웨어를 포함할 수 있다. 인터넷 브라우저는, 사용자가 웹 페이지에 대응하는 주소를 타이핑하거나 또는 웹 페이지로의 링크를 선택함으로써 웹 페이지로부터의 콘텐트를 볼수 있게 한다.
모바일 컴퓨팅 디바이스(410)는 기지국(440)과 정보를 무선으로 통신하기 위한 안테나를 포함할 수 있다. 기지국(440)은, 모바일 컴퓨팅 디바이스가 지리적으로 이동함에 따라 네트워크(450)와의 통신을 모바일 컴퓨팅 디바이스(410)가 유지할 수 있게 하는 기지국들의 집합(예컨대, 모바일 텔레폰 셀룰러 네트워크)에 있는 수 많은 기지국들 중 하나일 수 있다. 대안적으로 혹은 추가적으로, 모바일 컴퓨팅 디바이스(410)는 와이-파이(Wi-Fi) 라우터 혹은 유선 연결(가령, 이더넷, USB, 혹은 FIREWIRE)을 통하여 네트워크(450)와 통신할 수 있다. 또한, 모바일 컴퓨팅 디바이스(410)는 블루투스 프로토콜을 이용하여 다른 컴퓨팅 디바이스와 무선으로 통신할 수 있으며 또는 애드-혹(ad-hoc) 무선 네트워크를 채용할 수도 있다.
기지국들의 네트워크를 운영하는 서비스 제공자는, 서비스들(460)을 제공하는 다른 컴퓨터화된 디바이스들과 모바일 컴퓨팅 디바이스(410) 사이에서 통신이 가능해지도록, 모바일 컴퓨팅 디바이스(410)를 네트워크(450)에 연결할 수 있다. 비록, 상기 서비스들(460)이 다른 네트워크들(예컨대, 서비스 제공자의 내부 네트워크, 공중 전화 교환망(Public Switched Telephone Network), 및 인터넷)을 통해 제공될 수도 있지만, 네트워크(450)는 단일 네트워크로 예시되었다. 서비스 제공자는 서버 시스템(452)을 운영할 수 있는바, 서버 시스템(452)은 서비스들(460)에 관련된 컴퓨팅 디바이스들과 모바일 컴퓨팅 디바이스(410) 사이에서 정보 패킷들과 음성 데이터를 라우팅한다.
네트워크(450)는 모바일 컴퓨팅 디바이스(410)를 공중 전화 교환망(Public Switched Telephone Network: PSTN)(462)에 연결할 수 있는데, 이는 모바일 컴퓨팅 디바이스(410)와 또 다른 컴퓨팅 디바이스 사이에서 음성 혹은 팩스 통신을 확립하기 위함이다. 예를 들어, 서비스 제공자 서버 시스템(452)은 모바일 컴퓨팅 디바이스(410)에 대한 착신 전화의 표시를 PSTN(462)으로부터 수신할 수 있다. 이와 반대로, 모바일 컴퓨팅 디바이스(410)는 PSTN(462)을 통해 액세스가능한 디바이스에 관련된 전화번호를 이용한 전화통화를 개시하도록, 서비스 제공자 서버 시스템(452)으로 통신을 전송할 수 있다.
네트워크(450)는 모바일 컴퓨팅 디바이스(410)를 보이스 오버 인터넷 프로토콜(VoIP) 서비스(464)에 연결할 수 있는데, 이는 PSTN과는 달리, IP 네트워크를 통해 음성 통신들을 라우팅한다. 예를 들어, 모바일 컴퓨팅 디바이스(410)의 사용자는 VoIP 어플리케이션을 호출하여 상기 프로그램을 이용한 통화를 개시할 수 있다. 서비스 제공자 서버 시스템(452)은 상기 통화(call)로부터의 음성 데이터를 VoIP 서비스로 포워딩하며, 이는 인터넷을 통해 상기 통화를 해당 컴퓨팅 디바이스(연결의 최종 여정을 위하여 아마도 PSTN을 이용하는)로 라우팅할 수 있다.
어플리케이션 스토어(466)는 원격으로 저장된 어플리케이션 프로그램들의 리스트를 브라우징할 수 있는 능력을 모바일 컴퓨팅 디바이스(410)의 사용자에게 제공하는바, 사용자는 네트워크(450)를 통해 이러한 프로그램들을 다운로드할 수 있으며 그리고 모바일 컴퓨팅 디바이스(410) 상에 설치할 수 있다. 어플리케이션 스토어(466)는 제3자인 어플리케이션 개발자들에 의해서 개발된 어플리케이션들의 저장소로서 역할을 할 수 있다. 모바일 컴퓨팅 디바이스(410) 상에 설치된 어플리케이션 프로그램은, 상기 어플리케이션 프로그램에 전용인 서버 시스템들과 네트워크(450)를 통해 통신할 수 있다. 예를 들어,VoIP 어플리케이션 프로그램은 어플리케이션 스토어(466)으로부터 다운로드될 수 있으며, 사용자는 VoIP 서비스(464)를 이용하여 통신할 수 있다.
모바일 컴퓨팅 디바이스(410)는 네트워크(450)를 통해 인터넷(468) 상의 컨텐트에 액세스할 수 있다. 예를 들어, 모바일 컴퓨팅 디바이스(410)의 사용자는 원격 컴퓨팅 디바이스들로부터 데이터를 요청하는 웹 브라우저 어플리케이션을 호출할 수 있는바, 원격 컴퓨팅 디바이스들은 지정된 URL(Universal Resource Locations)에서 액세스가능하다. 다양한 일례들에서, 서비스들(460)의 일부는 인터넷을 통해 액세스가능하다.
모바일 컴퓨팅 디바이스는 퍼스널 컴퓨터(470)와 통신할 수 있다. 예를 들어, 퍼스널 컴퓨터(470)는 모바일 컴퓨팅 디바이스(410)의 사용자를 위한 홈 컴퓨터일 수 있다. 따라서, 사용자는 그의 퍼스널 컴퓨터(470)로부터 매체를 스트리밍할 수 있다. 또한, 사용자는 그의 퍼스널 컴퓨터(470)의 파일 구조를 살펴볼 수 있으며, 그리고 선택된 문서들을 컴퓨터화된 디바이스들 사이에서 전송할 수 있다.
음성 인식 서비스(472)는 모바일 컴퓨팅 디바이스의 마이크로폰(422)으로 녹음된 음성 통신 데이터를 수신할 수 있으며, 그리고 상기 음성 통신을 텍스트 데이터로 변환할 수 있다. 일부 실시예들에서, 변환된 텍스트는 웹 질의로서 검색 엔진에 제공되며, 이에 응답하여 검색 엔진의 검색 결과들이 모바일 컴퓨팅 디바이스(410)로 전송될 수 있다.
모바일 컴퓨팅 디바이스(410)는 소셜 네트워크(474)와 통신할 수 있다. 소셜 네트워크는 다양한 멤버들을 포함할 수 있으며, 이들 멤버들 중 일부는 지인들(acquaintances)로서 연관될 것에 동의하였다. 모바일 컴퓨팅 디바이스(410) 상의 어플리케이션 프로그램들은 소셜 네트워크(474)에 액세스하여, 모바일 컴퓨팅 디바이스의 사용자의 지인들에 기초한 정보를 검색할 수 있다. 예를 들어, "어드레스 북(address book)" 어플리케이션 프로그램은 사용자의 지인들에 대한 전화번호들을 검색할 수 있다. 다양한 일례들에서는, 사용자와 다른 멤버들 간의 소셜 네트워크 거리에 기초하여, 콘텐트가 모바일 컴퓨팅 디바이스(410)로 전달될 수 있다. 예를 들어, 광고 및 뉴스 기사 콘텐트가 사용자를 위해 선택될 수 있는바, 사용자와 친한 멤버들(예컨대, "친구들" 혹은 "친구들의 친구들"인 멤버)에 의한 이러한 콘텐트와의 상호작용 레벨에 기초하여, 광고 및 뉴스 기사 콘텐트가 선택될 수 있다.
모바일 컴퓨팅 디바이스(410)는 네트워크(450)를 통해 연락처들(476)의 개인적인 세트를 액세스할 수 있다. 각각의 연락처는 개인을 식별하며 그리고 그 개인에 대한 정보(예컨대, 전화번호, 이메일 주소, 및 생일)를 포함할 수 있다. 연락처들의 상기 세트가 원격으로 모바일 컴퓨팅 디바이스(410)에 호스트되기 때문에, 사용자는 여러 디바이스들에 걸쳐서 상기 연락처(476)를 연락처들의 공통 세트로서 액세스 및 유지할 수 있다.
모바일 컴퓨팅 디바이스(410)는 클라우드-기반의 어플리케이션 프로그램(478)에 액세스할 수 있다. 클라우드 컴퓨팅은 모바일 컴퓨팅 디바이스(410)로부터 원격으로 호스트되는 어플리케이션 프로그램들(예컨대, 워드 프로세서 혹은 이메이 프로그램)을 제공하며, 이들 어플리케이션 프로그램들은 웹 브라우저 혹은 전용 프로그램을 이용하여 디바이스(410)에 의해서 액세스될 수 있다. 예시적인 클라우드-기반의 어플리케이션 프로그램들은 GOOGLE DOCS 워드 프로세서 및 스프레드시트 서비스, GOOGLE GMAIL 웹메일 서비스 및 PICASA 픽처 매니저를 포함한다.
맵핑 서비스(480)는 모바일 컴퓨팅 디바이스(410)에게 거리 맵, 루트 플랜 정보, 및 위성 이미지들을 제공할 수 있다. 예시적인 맵핑 서비스는 GOOGLE MAPS 이다. 맵핑 서비스(480)는 또한 질의들을 수신하며 그리고 위치-특정 결과들을 반환한다. 예를 들어, 모바일 컴퓨팅 디바이스(410)는 모바일 컴퓨팅 디바이스의 추정된 위치 및 "피자 가게들"에 대한 사용자가 입력한 질의를 맵핑 서비스(480)로 전송할 수 있다. 맵핑 서비스(480)는, 인근의 "피자 가게들"의 지리적 위치들을 식별하는 마커(maker)들이 맵 상에 중첩되어 있는 거리 맵을 반환할 수 있다.
턴-바이-턴 서비스(482)는 사용자가 제시한 목적지로의 턴-바이-턴 지시(direction)를 모바일 컴퓨팅 디바이스(410)에게 제공할 수 있다. 예를 들어, 턴-바이-턴 서비스(482)는 디바이스의 추정된 위치에 대한 스트리트-레벨 뷰(street-level view)를 디바이스(410)에게 스트리밍할 수 있으며, 음성 지시들을 제공하고 그리고 디바이스(410)의 사용자를 목적지로 안내하는 화살표들을 중첩시키기 위한 데이터를 이와 함께 제공할 수 있다.
다양한 형태의 스트리밍 매체(484)가 모바일 컴퓨팅 디바이스(410)에 의해서 요청될 수 있다. 예를 들어, 모바일 컴퓨팅 디바이스(410)는 미리-기록된 비디오 파일(pre-recorded video file), 라이브 텔레비젼 프로그램, 라이브 라디오 프로그램 등에 대한 스트리밍을 요청할 수 있다. 스트리밍 매체를 제공하는 예시적인 서비스들은 유투브(YOUTUBE) 및 판도라(PANDORA)를 포함한다.
마이크로-블로깅 서비스(486)는 모바일 컴퓨팅 디바이스(410)로부터 사용자-입력 포스트(user-input post)를 수신할 수 있는데, 사용자-입력 포스트는 상기 포스트의 수령인들(recipients)을 식별하지 않는다. 마이크로-블로깅 서비스(486)는 상기 포스트를 마이크로-블로깅 서비스(486)의 다른 멤버들(사용자에게 가입을 동의한)에게 전파(disseminate)시킬 수 있다.
검색 엔진(488)은 사용자가 입력한 텍스트 질의 혹은 구두(verbal) 질의를 모바일 컴퓨팅 디바이스(410)로부터 수신할 수 있으며, 상기 질의에 대응하는 인터넷-액세스가능한 문서들의 세트를 판별하고, 그리고 대응하는 문서들에 대한 검색 결과들의 리스트를 디스플레이하도록 디바이스(410)에 정보를 제공한다. 구두 질의가 수신되는 일례들에서, 음성 인식 서비스(472)는 수신된 오디오를 텍스트 질의로 변환할 수 있으며, 이는 검색 엔진으로 전송된다.
이들 서비스들 및 다른 서비스들은 서버 시스템(490)에서 구현될 수도 있다. 서버 시스템은 서비스 혹은 서비스들의 세트를 제공하는 하드웨어와 소프트웨어의 조합일 수 있다. 예를 들어, 물리적으로 서로 구별되며 네트워킹된 컴퓨터화된 디바이스들의 세트는 논리 서버 시스템 유닛으로 함께 동작하여, 수백개의 개별 컴퓨팅 디바이스들에게 서비스를 제공하는데 필요한 동작들을 처리할 수 있다.
다양한 구현예들에서, 다른 하나의 동작(예컨대, 판별 혹은 식별)에 "응답하여" 수행되는 동작들은, 이전 동작이 성공적이지 않다면(예컨대, 판별이 수행되지 않았다면), 수행되지 않는다. 조건부 언어로 서술된 본 문서의 피처들은, 선택적인(optional) 구현예들을 서술할 수도 있다. 일부 실시예들에서, 제 1 디바이스로부터 제 2 디바이스로 "전송하는 것(transmitting)"은, 제 1 디바이스가 데이터를 네트워크 내에 놓아두는 것을 포함하지만, 제 2 디바이스가 상기 데이터를 수신하는 것은 포함하지 않을 수도 있다. 반대로, 제 1 디바이스로부터 "수신하는 것(receiving)"은, 네트워크로부터 데이터를 수신하는 것을 포함할 수 있지만, 제 1 디바이스가 상기 데이터를 전송하는 것은 포함하지 않을 수도 있다.
도5는 클라이언트로서 혹은 복수의 서버들 중 서버로서, 본 명세서에 기술된 시스템들 및 방법들을 구현하는데 사용될 수 있는 컴퓨팅 디바이스들(500, 550)에 대한 블록도이다. 컴퓨팅 디바이스(500)는 랩탑, 데스크탑, 워크스테이션, PDA(personal digital assistant), 서버, 블레이드 서버, 메인프레임, 및 다른 적절한 컴퓨터와 같은 여러 형태의 디지털 컴퓨터들을 나타내도록 의도된다. 컴퓨팅 디바이스(550)는 PDA, 셀룰러 전화, 스마트폰, 및 다른 유사한 컴퓨팅 디바이스와 같은 여러 형태의 모바일 디바이스를 나타내도록 의도된다. 또한, 컴퓨팅 디바이스(500 혹은 550)는 범용직렬버스(USB) 플래시 드라이브를 포함할 수 있다. USB 플래시 드라이브는 운영 시스템들 및 다른 어플리케이션들을 저장할 수도 있다. USB 플래시 드라이브는 입력/출력 구성요소들, 가령, 무선 송신기 혹은 다른 컴퓨팅 디바이스의 USB 포트에 삽입될 수도 있는 USB 커넥터를 포함할 수도 있다. 본 명세서에 도시된 구성요소들, 그 연결 및 관계, 및 그 기능은 단지 예시를 위한 것일 뿐, 본 명세서에 기술된 및/또는 청구된 구현예들을 한정하려고 의도된 것이 전혀 아니다.
컴퓨팅 디바이스(500)는 프로세서(502), 메모리(504), 저장 디바이스(506), 메모리(504) 및 고속 확장 포트(510)에 연결된 고속 인터페이스(508), 및 저속 버스(514) 및 저장 디바이스(506)에 연결된 저속 인터페이스(512)를 포함한다. 구성요소들(502, 504, 506, 508, 510, 및 512) 각각은 여러 버스를 사용하여 상호연결되고, 공통 마더보드에 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(502)는 메모리(504) 또는 저장 디바이스(506)에 저장된 명령을 포함하는, 컴퓨팅 디바이스(500) 내에서 실행되는 명령을 처리하여 고속 인터페이스(508)에 연결된 디스플레이(516)와 같은 외부 입력/출력 디바이스에 GUI를 위한 그래픽 정보를 디스플레이할 수 있다. 다른 구현예에서, 다수의 프로세서들 및/또는 다수의 버스들은 다수의 메모리들 및 메모리의 유형과 함께 적절하게 사용될 수 있다. 또한, 그 각각의 디바이스가 필요한 동작 부분을 제공하는 다수의 컴퓨팅 디바이스(500)들이 연결될 수 있다(예를 들어, 서버 뱅크, 블레이드 서버 그룹, 또는 멀티-프로세서 시스템으로서).
메모리(504)는 컴퓨팅 디바이스(500) 내에 정보를 저장한다. 일 구현예에서, 메모리(504)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현예에서, 메모리(504)는 비휘발성 메모리 유닛 또는 유닛들이다. 메모리(504)는 또한 자기 디스크 또는 광 디스크와 같은 컴퓨터-판독가능한 매체의 다른 형태일 수 있다.
저장 디바이스(506)는 컴퓨팅 디바이스(500)를 위한 대용량 저장매체를 제공할 수 있다. 일 구현예에서, 저장 디바이스(506)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 디스크 디바이스, 테이프 디바이스, 플래쉬 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성의 디바이스를 포함하는 디바이스 어레이와 같은 컴퓨터-판독가능한 매체이거나 이런 매체를 포함할 수 있다. 컴퓨터 프로그램 제품은 유형적으로 정보 캐리어에 구현될 수 있다. 컴퓨터 프로그램 제품은 명령들을 포함할 수 있는바, 명령들은, 실행될 때, 위에서 설명된 바와 같은 하나 이상의 방법을 수행한다. 정보 캐리어는 메모리(504), 저장 디바이스(506), 또는 프로세서(502) 상의 메모리 등과 같은 컴퓨터-판독가능한 또는 머신-판독가능한 매체이다.
고속 제어기(508)는 컴퓨팅 디바이스(500)를 위한 대역폭-집약적인(bandwidth-intensive) 동작을 관리하는 반면, 저속 제어기(512)는 보다 하위의 대역폭-집약적인 동작을 관리한다. 이러한 기능의 할당은 단지 예시적인 것이다. 일 구현예에서, 고속 제어기(508)는 메모리(504), 디스플레이(516)(예를 들어, 그래픽 프로세서 또는 가속기를 통해), 및 여러 확장 카드(미도시)를 수용할 수 있는 고속 확장 포트(510)에 연결된다. 일 구현예에서, 저속 제어기(512)는 저장 디바이스(506) 및 저속 확장 포트(514)에 연결된다. 여러 통신 포트(예를 들어, USB, 블루투스, 이더넷(Ethernet), 무선 이더넷)를 포함할 수 있는 저속 확장 포트는, 키보드, 포인팅 디바이스, 스캐너와 같은, 하나 이상의 입력/출력 디바이스 또는 예를 들어, 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 연결될 수 있다.
컴퓨팅 디바이스(500)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 이 디바이스는 표준 서버(520)로 구현되거나, 또는 이런 서버들의 그룹으로 다수 번 구현될 수 있다. 이 디바이스는 또한 랙(rack) 서버 시스템(524)의 일부로 구현될 수 있다. 게다가, 이 디바이스는 랩탑 컴퓨터(522)와 같은 퍼스널 컴퓨터로 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(500)에 있는 구성요소는 디바이스(550)와 같은 모바일 디바이스(미도시)에 있는 다른 구성요소와 조합될 수 있다. 이러한 디바이스들 각각은 하나 이상의 컴퓨팅 디바이스(500, 550)를 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스(500, 550)들로 구성될 수 있다.
컴퓨팅 디바이스(550)는 다른 구성요소들 중에서도 특히, 프로세서(552), 메모리(564), 디스플레이(554)와 같은 입력/출력 디바이스, 통신 인터페이스(566), 및 트랜시버(568)를 포함할 수 있다. 디바이스(550)는 또한 마이크로드라이브 또는 다른 디바이스와 같은 저장 디바이스를 구비하여, 추가적인 저장매체를 제공할 수 있다. 각각의 구성요소들(550, 552, 564, 554, 566, 및 568)은 여러 버스를 사용하여 상호연결되고, 구성요소들 중 일부는 공통 마더보드에 또는 적절한 다른 방식으로 장착될 수 있다.
프로세서(552)는 메모리(564)에 저장된 명령을 포함하여, 컴퓨팅 디바이스(550) 내의 명령들을 실행할 수 있다. 프로세서는 개별적인 다수 개의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋(chipset)으로 구현될 수 있다. 또한, 프로세서는 여러 개의 아키텍처들 중 임의의 것을 이용하여 구현될 수 있다. 예를 들어, 프로세서는 CISC(Complex Instruction Set Computer) 프로세서, RISC(Reduced Instruction Set Computer) 프로세서, 혹은 MISC(Minimal Instruction Set Computer) 프로세서일 수 있다. 프로세서는 예를 들어, 가령, 사용자 인터페이스, 디바이스(550)에 의해 구동되는 애플리케이션들, 및 디바이스(550)에 의한 무선 통신에 대한 제어 등과 같은 디바이스(550)의 다른 구성요소들의 조정을 제공할 수 있다.
프로세서(552)는 제어 인터페이스(558) 및 디스플레이(554)에 연결된 디스플레이 인터페이스(556)를 통해 사용자와 통신할 수 있다. 디스플레이(554)는 예를 들어, TFT LCD(Thin-Film-Transistor Liquid Crystal Display) 디스플레이 또는 OLED(Organic Light Emitting Diode) 디스플레이, 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(556)는 디스플레이(554)를 구동하여 그래픽 및 다른 정보를 사용자에게 제공하는 적절한 회로부를 포함할 수 있다. 제어 인터페이스(558)는 사용자로부터 커맨드를 수신하고 이 커맨드를 변환하여 프로세서(552)에 제출할 수 있다. 게다가, 디바이스(550)를 다른 디바이스와 근거리(near area) 통신할 수 있도록 하기 위하여 프로세서(552)와 통신하는 외부 인터페이스(562)가 제공될 수 있다. 외부 인터페이스(562)는 예를 들어, 일부 구현에서 유선 통신을 제공하고, 또는 다른 구현에서 무선 통신을 제공할 수 있으며, 다수의 인터페이스가 또한 사용될 수 있다.
메모리(564)는 컴퓨팅 디바이스(550) 내에 정보를 저장한다. 메모리(564)는 컴퓨터-판독가능한 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 또는 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로 구현될 수 있다. 확장 메모리(574)는 또한 예를 들어, SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는, 확장 인터페이스(572)를 통해 디바이스(550)에 제공되고 연결될 수 있다. 이러한 확장 메모리(574)는 디바이스(550)를 위한 여분의 저장 공간을 제공할 수 있거나, 또는 디바이스(550)를 위한 애플리케이션 또는 다른 정보를 더 저장할 수 있다. 구체적으로, 확장 메모리(574)는 전술된 프로세스를 수행하거나 보충하는 명령을 포함할 수 있고, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들어, 확장 메모리(574)는 디바이스(550)를 위한 보안 모듈로 제공될 수 있고, 디바이스(550)의 보안 사용을 가능하게 하는 명령으로 프로그래밍될 수 있다. 게다가, 보안 애플리케이션은 해킹 가능하지 않은 방식으로 SIMM 카드에 식별 정보를 배치하는 것과 같은 추가적인 정보와 함께 SIMM 카드를 통해 제공될 수 있다.
메모리는 아래에 논의되는 바와 같이 예를 들어, 플래쉬 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현에서, 컴퓨터 프로그램 제품은 유형적으로 정보 캐리어에 구현된다. 컴퓨터 프로그램 제품은, 실행될 때, 위에서 설명된 바와 같은 하나 이상의 방법을 수행하는 명령을 포함한다. 정보 캐리어는 메모리(564), 확장 메모리(574), 또는 프로세서(552) 상의 메모리와 같은 컴퓨터-판독가능한 또는 머신-판독가능한 매체이며, 이는 예를 들어 송수신기(568) 혹은 외부 인터페이스(562)를 통해 수신될 수 있다.
디바이스(550)는 통신 인터페이스(566)를 통해 무선으로 통신할 수 있으며, 이는 필요한 경우 디지털 신호 처리 회로부를 포함할 수 있다. 통신 인터페이스(566)는 특히 GSM 음성 호(voice call), SMS, EMS, 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000, 또는 GPRS와 같은 여러 모드 또는 프로토콜 하에서 통신을 제공할 수 있다. 이러한 통신은 예를 들어, 무선-주파수 트랜시버(568)를 통해 수행될 수 있다. 게다가, 단거리 통신은 블루투스, Wi-Fi, 또는 다른 이러한 트랜시버(미도시)를 사용하여 수행될 수 있다. 게다가, GPS(Global Positioning System) 수신기 모듈(570)은 추가적인 네비게이션-관련된 및 위치-관련된 무선 데이터를 디바이스(550)에 제공할 수 있고, 이 데이터는 디바이스(550)에서 실행되는 애플리케이션에 의해 적절하게 사용될 수 있다.
디바이스(550)는 또한, 사용자로부터 발화 정보(spoken information)를 수신하고 이 발화 정보를 사용가능한 디지털 정보로 변환할 수 있는 오디오 코덱(560)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(560)은 예를 들어, 디바이스(550)의 핸드셋에 있는 스피커를 통해 사용자에 가청 사운드(audible sound)를 생성할 수 있다. 이러한 사운드는 음성 전화 호로부터 오는 사운드를 포함하거나, 녹음된 사운드(예를 들어, 음성 메시지, 음악 파일 등)를 포함하거나 또한 디바이스(550)에서 동작하는 애플리케이션에 의해 생성된 사운드를 포함할 수 있다.
컴퓨팅 디바이스(550)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 이 디바이스는 셀룰러 전화(580)로 구현될 수 있다. 이 디바이스는 또한 스마트폰(582), PDA, 또는 다른 유사한 모바일 디바이스의 일부로 구현될 수 있다.
본 명세서에 기술된 시스템 및 기법의 여러 구현예들은 디지털 전자 회로부, 집적 회로부, 특별히 설계된 ASIC(Application Specific Integrated Circuit), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 그 조합으로 구현될 수 있다. 이러한 여러 구현예들은 하나 이상의 컴퓨터 프로그램들로 구현되는 것을 포함할 수 있는 바, 이들 컴퓨터 프로그램들은 적어도 하나의 프로그래밍가능한 프로세서를 포함하는 프로그래밍가능한 시스템 상에서 실행 및/또는 해석가능하며, 적어도 하나의 프로그래밍가능한 프로세서는 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령을 수신하고 이들로 데이터 및 명령을 송신하도록 연결된, 특수 목적 또는 일반 목적 프로세서가 될 수 있다.
이들 컴퓨터 프로그램(또한 프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로 알려진)은 프로그래밍가능한 프로세서를 위한 머신 명령을 포함하고, 하이-레벨 프로시저 및/또는 객체 지향 프로그래밍 언어로, 및/또는 어셈블리/머신 언어로 구현될 수 있다. 본 명세서에 사용된 바와 같이, "머신-판독가능한 매체" 및 "컴퓨터-판독가능한 매체"라는 용어는, 머신 명령 및/또는 데이터를 프로그래밍가능한 프로세서에 제공하는데 사용되는, 임의의 컴퓨터 프로그램 제품, 장치 및/또는 디바이스(예를 들어, 자기 디스크, 광 디스크, 메모리, PLD(Programmable Logic Device))를 지칭하며, 머신 명령들을 머신-판독가능한 신호로서 수신하는 머신-판독가능한 매체를 포함한다. "머신-판독가능한 신호" 라는 용어는, 머신 명령들 및/또는 데이터를 프로그램가능한 프로세서에 제공하는데 사용되는 임의의 신호를 지칭한다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에 기술된 시스템 및 기법은 컴퓨터 상에서 구현될 수 있는 바, 상기 컴퓨터는 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스(예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터)와 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 구비한다. 또한, 다른 종류의 디바이스가 사용자와의 상호작용을 제공하는데 사용될 수 있는 바, 예를 들면, 사용자에게 제공된 피드백은 임의의 형태의 지각 피드백(sensory feedback)(예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백)일 수 있고, 사용자로부터의 입력은 음향적, 음성, 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서에 기술된 시스템 및 기법은 백엔드(backend) 컴포넌트(예를 들어, 데이터 서버)를 포함하거나, 또는 미들웨어(middleware) 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하거나, 또는 프런트엔드 컴포넌트(예를 들어, 사용자가 본 명세서에 기술된 시스템 및 기법의 구현과 상호작용할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹 브라우저를 구비하는 클라이언트 컴퓨터)를 포함하거나, 또는 이러한 백엔드, 미들웨어, 또는 프런트엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 임의의 디지털 데이터 통신 형태 또는 매체(예를 들어, 통신 네트워크)에 의해 상호연결될 수 있다. 통신 네트워크의 예로는 "LAN"(local area network), "WAN"(wide area network), 피어-투-피어(peer-to-peer) 네트워크(애드-혹 혹은 정적 멤버들을 갖는), 그리드 컴퓨팅 인프라스트럭처, 및 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 원격에 있고 일반적으로 통신 네트워크를 통해 상호작용한다. 클라이언트 및 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 가지는 컴퓨터 프로그램에 의하여 발생한다.
일부 구현예들이 위에서 상세히 설명되었으나, 다른 변형들도 가능하다. 더욱이, 본 문서에 기술된 시스템 및 방법을 수행하는 다른 메커니즘이 사용될 수 있다. 게다가, 도면에 도시된 논리 흐름은 원하는 결과를 달성하는데 도시된 특정 순서 또는 순차 순서를 반드시 요구하는 것은 아니다. 전술된 흐름에 다른 단계들이 제공될 수 있고, 또는 전술된 흐름으로부터 단계들이 제거될 수 있고, 다른 컴포넌트들이 설명된 시스템에 추가되거나 이로부터 제거될 수 있다. 따라서, 다른 구현들은 이하 청구범위 내에 속한다.

Claims (20)

  1. 컴퓨터로 구현되는 방법으로서,
    컴퓨터 시스템에서, 모바일 컴퓨팅 디바이스가 과거에 이동하였던 히스토릭 루트들(historic routes)을 나타내는 정보를 획득하는 단계, 상기 모바일 컴퓨팅 디바이스는 사용자와 관련되며;
    상기 컴퓨터 시스템에 의해서, 상기 모바일 컴퓨팅 디바이스가 현재 위치하고 있는 현재 지리적 위치를 식별하는 단계;
    상기 컴퓨터 시스템에 의해서, 상기 현재 지리적 위치 및 상기 모바일 컴퓨팅 디바이스가 이동하였던 히스토릭 루트들을 나타내는 정보에 기초하여, 상기 모바일 컴퓨팅 디바이스가 이동할 가능성이 임계값 이상인 예측 위치를 식별하는 단계;
    상기 컴퓨터 시스템에 의해서, 상기 예측 위치 및 상기 현재 지리적 위치에 기초하여, 상기 현재 지리적 위치로부터 상기 예측 위치로 이동하기 위한 복수의 예측된 루트들을 식별하는 단계;
    상기 컴퓨터 시스템에 의해서, 아직 발생하지 않은 미래 이벤트가 상기 현재 지리적 위치로부터 상기 예측 위치로 이동하기 위한 상기 복수의 예측된 루트들 중 제 1 예측된 루트를 따라 발생할 확률이 임계값 이상이라는 예측을 생성하는 단계;
    상기 컴퓨터 시스템에 의해서, 상기 미래 이벤트가 발생할 확률이 임계값 이상이라는 상기 생성된 예측에 기초하여, 상기 복수의 예측된 루트들 중 특정한 예측된 루트를 사용자에게 제안하도록 선택하는 단계; 및
    상기 컴퓨터 시스템에 의해서, 상기 모바일 컴퓨팅 디바이스로 하여금 상기 선택된 특정한 예측된 루트를 따라 사용자가 이동하게 하는 표시를 제공하도록, 상기 선택된 특정한 예측된 루트를 식별하는 루트 정보를 제공하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서,
    상기 모바일 컴퓨팅 디바이스가 이동할 가능성이 임계값 이상인 예측 위치를 식별하는 단계는 또한, 현재 시간, 현재 날짜, 및 사용자를 위한 하나 이상의 칼렌다 이벤트들 중 적어도 하나에 기초하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  3. 제1항에 있어서,
    상기 모바일 컴퓨팅 디바이스가 이동할 가능성이 임계값 이상인 예측 위치를 식별하는 단계는 또한, 상기 모바일 컴퓨팅 디바이스 상에 설치된 하나 이상의 어플리케이션들에 대한 최근의 사용자 행위에 기초하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  4. 제3항에 있어서,
    상기 하나 이상의 어플리케이션들은, 이메일 어플리케이션, 칼렌다 어플리케이션, 문자(texting) 어플리케이션, 음성메일 어플리케이션, 전화 어플리케이션, 및 소셜 네트워킹 어플리케이션으로 구성된 그룹으로부터 선택되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  5. 삭제
  6. 삭제
  7. 제1항에 있어서,
    상기 모바일 컴퓨팅 디바이스가 과거에 이동하였던 히스토릭 루트들을 나타내는 상기 정보는, 상기 사용자와 관련된 사용자 모델로부터 획득되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  8. 제1항에 있어서,
    상기 복수의 예측된 루트들 중 다른 하나의 루트를 따라 이동하는 동안 요구되는 추정된 시간 분량을 적어도 임계 시간 분량만큼 증가시킬 것이라 예측되는 미래 이벤트에 기초하여, 상기 특정한 예측된 루트가 상기 복수의 예측된 루트들로부터 선택되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  9. 제1항에 있어서,
    상기 특정한 예측된 루트를 식별하는 루트 정보는, 사용자에 의한 촉구(prompt)가 없이도 제공되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  10. 제1항에 있어서,
    루트 제안에 대한 요청을 나타내는 사용자 입력에 응답하여, 상기 루트 정보가 제공되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  11. 제1항에 있어서,
    상기 컴퓨터 시스템은 상기 모바일 컴퓨팅 디바이스를 포함하고; 그리고
    상기 루트 정보를 제공하는 단계는, 상기 루트 정보를 상기 모바일 컴퓨팅 디바이스 상에 출력하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  12. 제1항에 있어서,
    상기 모바일 컴퓨팅 디바이스는, 상기 모바일 컴퓨팅 디바이스의 디스플레이 상에 상기 특정한 예측된 루트를 도시하는 맵을 디스플레이함으로써 또는 상기 특정한 예측된 루트를 따라 이동하기 위한 텍스트 안내를 디스플레이함으로써, 상기 모바일 컴퓨팅 디바이스의 사용자가 상기 선택된 특정한 예측된 루트를 따라 이동하고 있음을 나타내는 표시를 제공하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  13. 제1항에 있어서,
    상기 모바일 컴퓨팅 디바이스는, 상기 모바일 컴퓨팅 디바이스의 하나 이상의 스피커들을 이용하여 상기 특정한 예측된 루트를 따라 이동하기 위한 안내를 청각적으로 출력함으로써, 상기 모바일 컴퓨팅 디바이스의 사용자가 상기 선택된 특정한 예측된 루트를 따라 이동하고 있음을 나타내는 표시를 제공하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  14. 제1항에 있어서,
    상기 컴퓨터 시스템은 상기 모바일 컴퓨팅 디바이스와 별개이며;
    상기 방법은,
    상기 모바일 컴퓨팅 디바이스의 사용자에게 루트 제안을 제공하라는 요청을 상기 컴퓨터 시스템에서 상기 모바일 컴퓨팅 디바이스로부터 수신하는 단계를 더 포함하고,
    상기 요청은 상기 모바일 컴퓨팅 디바이스를 식별하는 정보를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  15. 컴퓨팅 시스템으로서,
    모바일 컴퓨팅 디바이스가 현재 위치하고 있는 현재의 지리적 위치를 식별하도록 프로그래밍된 입력 서브시스템;
    상기 모바일 컴퓨팅 디바이스가 과거에 이동하였던 히스토릭 루트들(historic routes)을 나타내는 정보를 획득하도록 프로그래밍된 프로그래밍된 이동 모니터 유닛;
    상기 현재 지리적 위치 및 상기 모바일 컴퓨팅 디바이스가 이동하였던 히스토릭 루트들을 나타내는 상기 획득된 정보에 기초하여, 상기 모바일 컴퓨팅 디바이스가 이동할 가능성이 임계값 이상인 예측 위치를 식별하도록 프로그래밍된 목적지 유닛;
    상기 현재 지리적 위치를 식별한 상기 입력 서브시스템 및 상기 예측 위치를 식별한 상기 목적지 유닛에 기초하여, 상기 현재 지리적 위치로부터 상기 예측 위치로 이동하기 위한 복수의 예측된 루트들을 식별하도록 프로그래밍된 루트 유닛;
    아직 발생하지 않은 미래 이벤트가 상기 현재 지리적 위치로부터 상기 예측 위치로 이동하기 위한 상기 복수의 예측된 루트들 중 제 1 예측된 루트를 따라 발생할 확률이 임계값 이상이라는 예측을 생성하도록 프로그래밍된 이벤트 예측 유닛;
    상기 미래 이벤트가 상기 제 1 예측된 루트를 따라 발생할 확률이 임계값 이상이라는 예측을 상기 이벤트 예측 유닛이 생성함에 기초하여 사용자에게 제안하기 위하여 상기 복수의 예측된 루트들 중 특정한 예측된 루트를 선택하도록 프로그래밍된 제안 유닛; 및
    상기 모바일 컴퓨팅 디바이스로 하여금 상기 선택된 특정한 예측된 루트를 따라 상기 모바일 컴퓨팅 디바이스의 사용자가 이동하게 하는 표시를 제공하도록, 상기 선택된 특정한 예측된 루트를 식별하는 루트 정보를 출력하도록 프로그래밍된 상기 모바일 컴퓨팅 디바이스의 출력 서브시스템
    을 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  16. 삭제
  17. 제15항에 있어서,
    상기 출력 서브시스템은,
    상기 루트 정보를 시각적으로 출력하도록 된 상기 모바일 컴퓨팅 디바이스의 디스플레이를 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  18. 제15항에 있어서,
    상기 출력 서브시스템은,
    상기 루트 정보를 청각적으로 출력하도록 된 상기 모바일 컴퓨팅 디바이스의 스피커 시스템을 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  19. 삭제
  20. 명령들을 저장하는 컴퓨터 판독가능한 저장매체로서, 상기 명령들은 실행되는 때에, 하나 이상의 프로세서스들을 갖는 컴퓨팅 시스템으로 하여금, 제1항에 따른 방법을 수행하게 하는 것을 특징으로 하는 컴퓨터 판독가능한 저장매체.
KR1020157001808A 2012-06-25 2013-06-18 루트 제안들의 제공 KR102004453B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/532,259 US8855901B2 (en) 2012-06-25 2012-06-25 Providing route recommendations
US13/532,259 2012-06-25
PCT/US2013/046388 WO2014004183A2 (en) 2012-06-25 2013-06-18 Providing route recommendations

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020197021106A Division KR102087920B1 (ko) 2012-06-25 2013-06-18 루트 제안들의 제공

Publications (2)

Publication Number Publication Date
KR20150036170A KR20150036170A (ko) 2015-04-07
KR102004453B1 true KR102004453B1 (ko) 2019-10-01

Family

ID=48790575

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157001808A KR102004453B1 (ko) 2012-06-25 2013-06-18 루트 제안들의 제공
KR1020197021106A KR102087920B1 (ko) 2012-06-25 2013-06-18 루트 제안들의 제공

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020197021106A KR102087920B1 (ko) 2012-06-25 2013-06-18 루트 제안들의 제공

Country Status (5)

Country Link
US (2) US8855901B2 (ko)
KR (2) KR102004453B1 (ko)
CN (2) CN104838673B (ko)
AU (1) AU2013280830B2 (ko)
WO (1) WO2014004183A2 (ko)

Families Citing this family (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9574894B1 (en) * 2010-11-19 2017-02-21 Amazon Technologies, Inc. Behavior-based inferences and actions
US20140309913A1 (en) * 2013-04-15 2014-10-16 Flextronics Ap, Llc Relay and Exchange Protocol in an Automated Zone-Based Vehicular Traffic Control Environment
US8855901B2 (en) * 2012-06-25 2014-10-07 Google Inc. Providing route recommendations
US9146127B2 (en) * 2012-06-27 2015-09-29 International Business Machines Corporation Navigation system providing lane guidance to driver based on driver's driving habits and preferences
US9182240B2 (en) * 2012-09-26 2015-11-10 Intel Corporation Method, apparatus and system for mapping a course of a mobile device
AU2013100243B4 (en) 2012-12-28 2013-09-26 Uniloc Usa, Inc. Pedestrian traffic monitoring and analysis
US20140222912A1 (en) * 2013-02-05 2014-08-07 Luke St. Clair Varying User Interface Based on Location or Speed
US20140229449A1 (en) * 2013-02-11 2014-08-14 Abu Shaher Sanaullah Realtime identification of context mismatch
US9377319B2 (en) * 2013-03-12 2016-06-28 Yahoo! Inc. Estimating times to leave and to travel
WO2014142819A1 (en) * 2013-03-13 2014-09-18 Intel Corporation Device resource management based on contextual planning
US9317813B2 (en) 2013-03-15 2016-04-19 Apple Inc. Mobile device with predictive routing engine
US9200915B2 (en) 2013-06-08 2015-12-01 Apple Inc. Mapping application with several user interfaces
US9558210B1 (en) * 2013-03-15 2017-01-31 Google Inc. Determining the quality of locations based on travel time investment
US9303997B2 (en) 2013-03-15 2016-04-05 Apple Inc. Prediction engine
US9973565B2 (en) * 2013-05-06 2018-05-15 Samsung Electronics Co., Ltd. Temporary applications for mobile devices
US20140365459A1 (en) 2013-06-08 2014-12-11 Apple Inc. Harvesting Addresses
JP6160399B2 (ja) * 2013-09-20 2017-07-12 富士通株式会社 行先情報提供プログラム、行先情報提供装置および行先情報提供方法
US20150106006A1 (en) * 2013-10-11 2015-04-16 Kevin NAJAFI Method of route scheduling and devices thereof
US9618343B2 (en) 2013-12-12 2017-04-11 Microsoft Technology Licensing, Llc Predicted travel intent
US9891064B2 (en) * 2014-01-31 2018-02-13 Aruba Networks, Inc. Selection of a route based on prior user behavior or commercial interests
US11030708B2 (en) 2014-02-28 2021-06-08 Christine E. Akutagawa Method of and device for implementing contagious illness analysis and tracking
US9704205B2 (en) 2014-02-28 2017-07-11 Christine E. Akutagawa Device for implementing body fluid analysis and social networking event planning
US10113879B2 (en) * 2014-03-03 2018-10-30 Apple Inc. Hierarchy of tools for navigation
CN104915345B (zh) * 2014-03-11 2018-08-21 华为技术有限公司 一种推荐服务信息的方法和终端
CN105091890B (zh) * 2014-04-25 2018-01-12 国际商业机器公司 用于推荐候选路径的方法和装置
US9483763B2 (en) 2014-05-29 2016-11-01 Apple Inc. User interface for payments
US9857195B2 (en) 2014-05-30 2018-01-02 Google Inc. Selection and presentation of geographic content in an automotive environment
SG10201403598SA (en) * 2014-06-25 2016-01-28 Seow Loong Tan Transport management method
GB2528075A (en) * 2014-07-08 2016-01-13 Jaguar Land Rover Ltd Navigation system for a vehicle
US20160033678A1 (en) * 2014-08-01 2016-02-04 Htc Corporation Mobile device with weather forecast
DE102014215266A1 (de) 2014-08-04 2016-02-04 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Bereitstellen einer für einen Nutzer eines Persönlichen Digitalen Assistenten relevanten Sachinformation, Persönlicher Digitaler Assistent und Speichermedium
WO2016036552A1 (en) * 2014-09-02 2016-03-10 Apple Inc. User interactions for a mapping application
CN107076563B (zh) * 2014-12-09 2020-09-25 索尼公司 信息处理设备、控制方法和程序
US11162806B2 (en) * 2015-01-05 2021-11-02 Harman International Industries, Incorporated Learning and predictive navigation system
EP3045867B1 (en) * 2015-01-16 2018-05-30 Volvo Car Corporation A navigation unit and method for providing navigation instructions for an autonomous vehicle
AU2016212530A1 (en) 2015-01-27 2017-08-17 Beijing Didi Infinity Technology And Development Co., Ltd. Methods and systems for providing information for an on-demand service
CN106919996A (zh) * 2015-12-25 2017-07-04 滴滴(中国)科技有限公司 一种目的地预测方法及装置
CN106919993A (zh) * 2015-12-25 2017-07-04 滴滴(中国)科技有限公司 一种基于历史数据的高准确性默认目的地预测方法及装置
BR112017016820A2 (pt) 2015-02-05 2018-04-03 Uber Technologies Inc determinação de modo programático de informações de localização em conexão com um serviço de transporte
US20160232451A1 (en) * 2015-02-09 2016-08-11 Velocee Ltd. Systems and methods for managing audio content
US9506772B2 (en) 2015-03-04 2016-11-29 United Parcel Service Of America, Inc. Viewing, modifying, and/or creating routes
DE102015206518A1 (de) 2015-04-13 2016-10-13 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Betreiben eines Navigationssystems für ein Kraftfahrzeug und Navigationssystem für ein Kraftfahrzeug
US10796248B2 (en) 2015-04-29 2020-10-06 Ford Global Technologies, Llc Ride-sharing joint rental groups
US20160320198A1 (en) * 2015-04-29 2016-11-03 Ford Global Technologies, Llc Ride-sharing routing using contextual constraints
US10909464B2 (en) * 2015-04-29 2021-02-02 Microsoft Technology Licensing, Llc Semantic locations prediction
US9602975B2 (en) * 2015-05-22 2017-03-21 Microsoft Technology Licensing, Llc Intelligent surfacing of reminders
US9940637B2 (en) 2015-06-05 2018-04-10 Apple Inc. User interface for loyalty accounts and private label accounts
US20160358133A1 (en) 2015-06-05 2016-12-08 Apple Inc. User interface for loyalty accounts and private label accounts for a wearable device
US9904900B2 (en) 2015-06-11 2018-02-27 Bao Tran Systems and methods for on-demand transportation
CN105159933B (zh) * 2015-08-06 2019-04-30 北京百度网讯科技有限公司 旅游信息推荐方法及装置
US10001379B2 (en) * 2015-09-01 2018-06-19 Inrix Inc. Itinerary generation and adjustment system
CN105184612B (zh) * 2015-09-07 2018-03-27 广东欧珀移动通信有限公司 一种路线推荐方法及用户终端
US10650317B2 (en) * 2015-09-21 2020-05-12 Google Llc Detecting and correcting potential errors in user behavior
CN105354214B (zh) * 2015-09-25 2018-11-09 百度在线网络技术(北京)有限公司 一种备忘信息的生成方法及装置
CN105185117A (zh) * 2015-10-09 2015-12-23 山东高速信息工程有限公司 一种公路旅行时间预测方法、系统及装置
KR102545768B1 (ko) * 2015-11-11 2023-06-21 삼성전자주식회사 메타 데이터를 처리하기 위한 장치 및 방법
US10685297B2 (en) 2015-11-23 2020-06-16 Google Llc Automatic booking of transportation based on context of a user of a computing device
US10762591B2 (en) * 2015-12-08 2020-09-01 Gt Gettaxi Limited Engagement-based routing in geographic routing systems
CN105547311A (zh) * 2015-12-08 2016-05-04 深圳天珑无线科技有限公司 一种路线规划方法、移动终端及系统
US20170193458A1 (en) * 2015-12-31 2017-07-06 Juno Lab, Inc. System for providing future transportation request reservations
CN105701560B (zh) * 2015-12-31 2021-12-14 百度在线网络技术(北京)有限公司 一种通勤路线信息的确定方法及装置
US20170191838A1 (en) * 2016-01-04 2017-07-06 Delphi Technologies, Inc. Automated vehicle route selection based on occupant interest
US10137848B2 (en) 2016-01-13 2018-11-27 Ford Global Technologies, Llc System identifying a driver before they approach the vehicle using wireless communication protocols
WO2017124561A1 (zh) * 2016-01-24 2017-07-27 邓娟 根据自动推荐路线时的信息推送方法以及路线系统
CN105635314A (zh) * 2016-01-27 2016-06-01 深圳市凯立德科技股份有限公司 一种行车交友的实现方法、装置及系统
US10469997B2 (en) 2016-02-26 2019-11-05 Microsoft Technology Licensing, Llc Detecting a wireless signal based on context
US10475144B2 (en) * 2016-02-26 2019-11-12 Microsoft Technology Licensing, Llc Presenting context-based guidance using electronic signs
CN107179087A (zh) * 2016-03-11 2017-09-19 百度在线网络技术(北京)有限公司 用于推荐路线的方法和装置
CN105890611A (zh) * 2016-03-29 2016-08-24 乐视控股(北京)有限公司 一种导航路线的生成方法和装置、设备
US10730626B2 (en) 2016-04-29 2020-08-04 United Parcel Service Of America, Inc. Methods of photo matching and photo confirmation for parcel pickup and delivery
CN109071015B (zh) 2016-04-29 2021-11-30 美国联合包裹服务公司 无人机拾取及递送系统
US20170347237A1 (en) * 2016-05-25 2017-11-30 Google Inc. Determining Semantic Travel Modes
DK201770423A1 (en) 2016-06-11 2018-01-15 Apple Inc Activity and workout updates
US10672198B2 (en) 2016-06-14 2020-06-02 Uber Technologies, Inc. Trip termination determination for on-demand transport
US10412178B2 (en) * 2016-06-30 2019-09-10 Rovi Guides, Inc. Systems and methods for ensuring continued access to media of a playlist despite geographic content restrictions
US10621515B2 (en) 2016-06-30 2020-04-14 At&T Intellectual Property I, L.P. Optimized traffic management via an electronic driving pass
US10129221B1 (en) 2016-07-05 2018-11-13 Uber Technologies, Inc. Transport facilitation system implementing dual content encryption
JP6365602B2 (ja) * 2016-07-14 2018-08-01 トヨタ自動車株式会社 スケジュール管理装置
TWI618017B (zh) * 2016-07-15 2018-03-11 Chunghwa Telecom Co Ltd 結合生活行為分析與社群之地標推薦方法及其電腦程式產品
CN106202488B (zh) * 2016-07-19 2019-04-19 西北工业大学 估算用户到物理事件距离的方法
US11200517B2 (en) * 2016-08-01 2021-12-14 International Business Machines Corporation Redistribution based on real time presence data
US20180038703A1 (en) * 2016-08-08 2018-02-08 Wipro Limited System and method for recommending an optimal route
US10664899B2 (en) * 2016-08-15 2020-05-26 Google Llc Systems and methods for detection of navigation to physical venue and suggestion of alternative actions
US11119502B2 (en) * 2016-08-31 2021-09-14 Nissan North America, Inc. Vehicle control system based on social place detection
CN107798412B (zh) * 2016-09-07 2020-12-04 滴图(北京)科技有限公司 一种路线推荐方法和装置
CN107846432A (zh) * 2016-09-19 2018-03-27 北京智驾互联信息服务有限公司 数据处理装置及系统
GB2560487A (en) * 2016-11-09 2018-09-19 Inventive Cogs Campbell Ltd Vehicle route guidance
JP6664317B2 (ja) * 2016-12-28 2020-03-13 本田技研工業株式会社 情報処理システム、および情報処理方法
US10788330B2 (en) 2017-01-04 2020-09-29 International Business Machines Corporation Route generation based on aggregated path data
US10795952B2 (en) * 2017-01-05 2020-10-06 Microsoft Technology Licensing, Llc Identification of documents based on location, usage patterns and content
US10043387B1 (en) 2017-01-25 2018-08-07 International Business Machines Corporation Map display with directions generating and download facility
US10371542B2 (en) 2017-02-17 2019-08-06 Uber Technologies, Inc. System and methods for performing multivariate optimizations based on location data
CN108536703A (zh) * 2017-03-02 2018-09-14 北京嘀嘀无限科技发展有限公司 基于用户数据的目的地确定方法及装置
US10402771B1 (en) 2017-03-27 2019-09-03 Uber Technologies, Inc. System and method for evaluating drivers using sensor data from mobile computing devices
US10445950B1 (en) 2017-03-27 2019-10-15 Uber Technologies, Inc. Vehicle monitoring system
US10451436B2 (en) * 2017-04-12 2019-10-22 Microsoft Technology Licensing, Llc Generating routes using events
US10839695B2 (en) 2017-05-11 2020-11-17 Uber Technologies, Inc. Network computer system to position service providers using provisioning level determinations
CN107274070A (zh) * 2017-05-23 2017-10-20 中标软件有限公司 一种自驾游服务的提供方法、装置及系统
US11231291B2 (en) 2017-06-02 2022-01-25 Apple Inc. Presenting non-recommended routes
US10775792B2 (en) 2017-06-13 2020-09-15 United Parcel Service Of America, Inc. Autonomously delivering items to corresponding delivery locations proximate a delivery route
CN107356261B (zh) * 2017-06-14 2019-09-06 Oppo广东移动通信有限公司 导航方法及相关产品
CN110785626B (zh) * 2017-06-30 2023-05-30 Oppo广东移动通信有限公司 出行方式推荐方法、装置、存储介质及终端
WO2019015600A1 (en) 2017-07-20 2019-01-24 Beijing Didi Infinity Technology And Development Co., Ltd. SYSTEMS AND METHODS FOR RECOMMENDING A DESTINATION
CN109947871B (zh) * 2017-07-26 2021-07-06 北京嘀嘀无限科技发展有限公司 个性化线路信息推送方法及装置
US11132612B2 (en) * 2017-09-30 2021-09-28 Oracle International Corporation Event recommendation system
US11067406B2 (en) * 2017-12-20 2021-07-20 Trafi Limited Navigation method using historical navigation data to provide geographical- and user-optimised route suggestions
CN107967358A (zh) * 2017-12-21 2018-04-27 广东欧珀移动通信有限公司 目标地点的推荐方法、装置、存储介质及移动终端
CN110285820A (zh) * 2018-03-19 2019-09-27 上海博泰悦臻网络技术服务有限公司 一种用于车机的出行路况预测方法及系统
US10176379B1 (en) * 2018-06-01 2019-01-08 Cisco Technology, Inc. Integrating computer vision and wireless data to provide identification
JP7351836B2 (ja) * 2018-07-24 2023-09-27 フォルシアクラリオン・エレクトロニクス株式会社 情報収集装置、及び制御方法
US20200041303A1 (en) * 2018-08-06 2020-02-06 Toyota Motor Engineering & Manufacturing North America, Inc. Method and apparatus for weather support for an autonomous vehicle
CN110954118A (zh) * 2018-09-27 2020-04-03 上海博泰悦臻电子设备制造有限公司 一种用于车机的服务推荐方法及系统
JP7265334B2 (ja) * 2018-10-16 2023-04-26 株式会社デンソーテン データ収集装置、データ収集システムおよびデータ収集方法
FR3088113B1 (fr) 2018-11-05 2021-05-14 Roofstreet Procede de prediction du prochain trajet d’une personne
CN109596134A (zh) * 2018-11-13 2019-04-09 平安科技(深圳)有限公司 汽车导航方法、装置、计算机设备及存储介质
EP3654310B1 (en) * 2018-11-19 2022-01-26 Ningbo Geely Automobile Research & Development Co. Ltd. Departure time duration for a vehicle
CN113039818A (zh) * 2018-11-19 2021-06-25 微软技术许可有限责任公司 使用推测的位置来节省电池寿命
KR20200072022A (ko) * 2018-12-12 2020-06-22 현대자동차주식회사 사용자 관심정보 제공장치 및 방법
US11032670B1 (en) 2019-01-14 2021-06-08 Snap Inc. Destination sharing in location sharing system
CN109788438A (zh) * 2019-02-11 2019-05-21 胡金星 一种基于大数据的智能导航车联网系统
US11863700B2 (en) 2019-05-06 2024-01-02 Apple Inc. Providing user interfaces based on use contexts and managing playback of media
CN110289073A (zh) * 2019-06-25 2019-09-27 暨南大学 一种移动运动应用中的运动路线推荐方法
EP4031836A4 (en) * 2019-09-19 2023-06-21 Telefonaktiebolaget LM Ericsson (publ) PERSONALIZED NAVIGATION METHOD AND DEVICE
US11853910B2 (en) 2019-10-17 2023-12-26 International Business Machines Corportion Ranking action sets comprised of actions for an event to optimize action set selection
CN112815955A (zh) * 2019-10-31 2021-05-18 荣耀终端有限公司 一种提示出行方案的方法及电子设备
US11496678B1 (en) 2019-11-26 2022-11-08 ShotSpotz LLC Systems and methods for processing photos with geographical segmentation
US11436290B1 (en) 2019-11-26 2022-09-06 ShotSpotz LLC Systems and methods for processing media with geographical segmentation
US11816146B1 (en) 2019-11-26 2023-11-14 ShotSpotz LLC Systems and methods for processing media to provide notifications
US11868395B1 (en) 2019-11-26 2024-01-09 ShotSpotz LLC Systems and methods for linking geographic segmented areas to tokens using artwork
US11494517B2 (en) 2020-02-12 2022-11-08 Uber Technologies, Inc. Computer system and device for controlling use of secure media recordings
US20210262811A1 (en) * 2020-02-25 2021-08-26 At&T Intellectual Property I, L.P. Apparatuses and methods for enhancing navigation
US11297466B1 (en) 2020-04-24 2022-04-05 Allstate Insurance Company Systems for predicting and classifying location data based on machine learning
US11637911B1 (en) * 2020-05-26 2023-04-25 Meta Platforms, Inc. Location and behavior based prefetch and caching of remote data
CN111750888B (zh) * 2020-06-17 2021-05-04 北京嘀嘀无限科技发展有限公司 信息交互方法、装置、电子设备和计算机可读存储介质
US20220205797A1 (en) * 2020-12-31 2022-06-30 The Nielsen Company (Us), Llc Geographic route based communication method and system
CN112883291B (zh) * 2021-02-05 2023-04-07 上海钧正网络科技有限公司 目的地位置的推荐方法、装置和服务器
US20220282980A1 (en) * 2021-03-03 2022-09-08 International Business Machines Corporation Pedestrian route guidance that provides a space buffer

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100106603A1 (en) * 2008-10-20 2010-04-29 Carnegie Mellon University System, method and device for predicting navigational decision-making behavior
US20110246404A1 (en) * 2010-03-30 2011-10-06 Sap Ag Method for Allocating Trip Sharing

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1095061B (it) * 1978-05-19 1985-08-10 Conte Raffaele Apparecchiatura per la registrazione magnetica di eventi casuali relativi a mezzi mobili
JPS62137276A (ja) * 1985-12-09 1987-06-20 Nissan Motor Co Ltd 車両用操舵系制御装置
US5140436A (en) * 1989-11-02 1992-08-18 Eastman Kodak Company Pre-event/post-event recording in a solid state fast frame recorder
US5164904A (en) 1990-07-26 1992-11-17 Farradyne Systems, Inc. In-vehicle traffic congestion information system
US5845227A (en) 1991-02-01 1998-12-01 Peterson; Thomas D. Method and apparatus for providing shortest elapsed time route and tracking information to users
US5933100A (en) 1995-12-27 1999-08-03 Mitsubishi Electric Information Technology Center America, Inc. Automobile navigation system with dynamic traffic data
US5835881A (en) 1996-01-16 1998-11-10 Philips Electronics North America Corporation Portable system for providing voice driving directions
DE19724919A1 (de) 1997-06-12 1999-01-07 Adolph Michael Dr Verfahren zum Erzeugen, Verschmelzen und Aktualisieren von in einem Zielführungssystem nutzbaren Daten
US6680694B1 (en) 1997-08-19 2004-01-20 Siemens Vdo Automotive Corporation Vehicle information system
DE19737256B4 (de) 1997-08-27 2005-02-24 Robert Bosch Gmbh Fahrzeugleit- und Zielführungssystem
JPH11311533A (ja) 1998-04-28 1999-11-09 Xanavi Informatics Corp 経路探索装置
US6150961A (en) 1998-11-24 2000-11-21 International Business Machines Corporation Automated traffic mapping
US6292743B1 (en) 1999-01-06 2001-09-18 Infogation Corporation Mobile navigation system
CA2266208C (en) 1999-03-19 2008-07-08 Wenking Corp. Remote road traffic data exchange and intelligent vehicle highway system
US6266615B1 (en) 1999-09-27 2001-07-24 Televigation, Inc. Method and system for an interactive and real-time distributed navigation system
US6341255B1 (en) 1999-09-27 2002-01-22 Decell, Inc. Apparatus and methods for providing route guidance to vehicles
US6405123B1 (en) 1999-12-21 2002-06-11 Televigation, Inc. Method and system for an efficient operating environment in a real-time navigation system
US6615131B1 (en) 1999-12-21 2003-09-02 Televigation, Inc. Method and system for an efficient operating environment in a real-time navigation system
US6560535B2 (en) 2000-01-05 2003-05-06 The Johns Hopkins University Global positioning system roadside integrated precision positioning system
EP2261607A3 (en) 2000-02-16 2013-08-07 TeleNav, Inc. Method and system for determining a preferred path in a navigation system
US10684350B2 (en) * 2000-06-02 2020-06-16 Tracbeam Llc Services and applications for a communications network
US6871137B2 (en) * 2003-02-05 2005-03-22 Gannett Fleming, Inc. Intelligent road and rail information systems and methods
JP4317000B2 (ja) * 2003-12-10 2009-08-19 パイオニア株式会社 案内誘導装置、そのシステム、その方法、そのプログラム、および、そのプログラムを記録した記録媒体
US7835859B2 (en) * 2004-10-29 2010-11-16 Aol Inc. Determining a route to a destination based on partially completed route
US7831384B2 (en) * 2004-10-29 2010-11-09 Aol Inc. Determining a route to destination based on partially completed route
US7908080B2 (en) 2004-12-31 2011-03-15 Google Inc. Transportation routing
US8024112B2 (en) * 2005-09-29 2011-09-20 Microsoft Corporation Methods for predicting destinations from partial trajectories employing open-and closed-world modeling methods
US8700296B2 (en) * 2006-03-03 2014-04-15 Inrix, Inc. Dynamic prediction of road traffic conditions
US20070208498A1 (en) * 2006-03-03 2007-09-06 Inrix, Inc. Displaying road traffic condition information and user controls
US7912628B2 (en) * 2006-03-03 2011-03-22 Inrix, Inc. Determining road traffic conditions using data from multiple data sources
US7813870B2 (en) * 2006-03-03 2010-10-12 Inrix, Inc. Dynamic time series prediction of future traffic conditions
US7630828B2 (en) * 2006-04-14 2009-12-08 Panasonic Corporation Destination prediction device and destination prediction method
US7659827B2 (en) * 2006-05-08 2010-02-09 Drivecam, Inc. System and method for taking risk out of driving
US8849501B2 (en) * 2009-01-26 2014-09-30 Lytx, Inc. Driver risk assessment system and method employing selectively automatic event scoring
US20090105947A1 (en) * 2006-06-27 2009-04-23 Anna Nachesa Computer System and Method for Providing Warnings to a User for Completing Tasks From the Task List
US8068977B2 (en) * 2006-09-28 2011-11-29 Panasonic Corporation Destination prediction apparatus and method thereof
US20090105940A1 (en) * 2007-10-23 2009-04-23 Destinator Technologies, Inc. Route calculation based on traffic events
US20100036599A1 (en) * 2008-08-11 2010-02-11 RM Acquisition, LLC d/b/a/ Rand McNally Safest transportation routing
US8219316B2 (en) * 2008-11-14 2012-07-10 Google Inc. System and method for storing and providing routes
US8271413B2 (en) * 2008-11-25 2012-09-18 Google Inc. Providing digital content based on expected user behavior
US8762049B2 (en) * 2009-10-13 2014-06-24 Telenav, Inc. Navigation system with event of interest routing mechanism and method of operation thereof
US20110161119A1 (en) * 2009-12-24 2011-06-30 The Travelers Companies, Inc. Risk assessment and control, insurance premium determinations, and other applications using busyness
US8392116B2 (en) * 2010-03-24 2013-03-05 Sap Ag Navigation device and method for predicting the destination of a trip
US20110320113A1 (en) * 2010-06-25 2011-12-29 Gm Global Technology Operations, Inc. Generating driving route traces in a navigation system using a probability model
US9134137B2 (en) * 2010-12-17 2015-09-15 Microsoft Technology Licensing, Llc Mobile search based on predicted location
CN102413231A (zh) * 2011-10-10 2012-04-11 宇龙计算机通信科技(深圳)有限公司 移动终端和日程提醒方法
US8855901B2 (en) * 2012-06-25 2014-10-07 Google Inc. Providing route recommendations
US9437107B2 (en) * 2013-03-15 2016-09-06 Inrix, Inc. Event-based traffic routing
US20140278032A1 (en) * 2013-03-15 2014-09-18 Inrix, Inc. Traffic causality
US20150253144A1 (en) * 2014-03-10 2015-09-10 Sackett Solutions & Innovations Llc Methods and route planning systems for dynamic trip modifications and quick and easy alternative routes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100106603A1 (en) * 2008-10-20 2010-04-29 Carnegie Mellon University System, method and device for predicting navigational decision-making behavior
US20110246404A1 (en) * 2010-03-30 2011-10-06 Sap Ag Method for Allocating Trip Sharing

Also Published As

Publication number Publication date
US9417074B2 (en) 2016-08-16
CN109612497B (zh) 2020-05-08
KR20150036170A (ko) 2015-04-07
CN104838673B (zh) 2019-01-29
WO2014004183A3 (en) 2015-05-14
CN104838673A (zh) 2015-08-12
WO2014004183A2 (en) 2014-01-03
US20130345961A1 (en) 2013-12-26
US20140372030A1 (en) 2014-12-18
AU2013280830B2 (en) 2017-03-30
US8855901B2 (en) 2014-10-07
CN109612497A (zh) 2019-04-12
KR102087920B1 (ko) 2020-03-11
KR20190087675A (ko) 2019-07-24
AU2013280830A1 (en) 2015-01-22

Similar Documents

Publication Publication Date Title
KR102004453B1 (ko) 루트 제안들의 제공
US11675794B2 (en) Providing results to parameterless search queries
US8195203B1 (en) Location-based mobile device alarm
KR102132146B1 (ko) 수행할 작업들을 나타내는 작업 항목들의 생성 및 프로세싱
AU2011285618B2 (en) Disambiguating input based on context
US20150121247A1 (en) Self-Aware Profile Switching on a Mobile Computing Device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant