KR20180093107A - 위치-기반 서비스를 사용한 모바일 클라이언트의 전력 관리 - Google Patents

위치-기반 서비스를 사용한 모바일 클라이언트의 전력 관리 Download PDF

Info

Publication number
KR20180093107A
KR20180093107A KR1020187023003A KR20187023003A KR20180093107A KR 20180093107 A KR20180093107 A KR 20180093107A KR 1020187023003 A KR1020187023003 A KR 1020187023003A KR 20187023003 A KR20187023003 A KR 20187023003A KR 20180093107 A KR20180093107 A KR 20180093107A
Authority
KR
South Korea
Prior art keywords
user
location
social networking
mobile
networking system
Prior art date
Application number
KR1020187023003A
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 KR20180093107A publication Critical patent/KR20180093107A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/387Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/30Scenes; Scene-specific elements in albums, collections or shared content, e.g. social network photos or video
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • H04L51/32
    • 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/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/22
    • H04L67/26
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/023Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters
    • H04W4/027Services making use of location information using location based information parameters using movement velocity, acceleration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • H04W4/08User group management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/20Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/20Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
    • H04W4/21Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel for social networking applications
    • 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
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/10Recognition assisted with metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • H04W4/14Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]

Abstract

일실시예로, 모바일-클라이언트 시스템은 제1 시간 구간 동안 모바일-클라이언트 시스템의 메모리에 위치 이력 데이터를 저장할 수 있는데, 위치 이력 데이터는: 제1 시간 구간 동안의 복수의 지리적 위치; 및 지리적 위치와 각각 대응하는 하나 이상의 시간 스탬프를 포함한다. 모바일-클라이언트 시스템은 모바일-클라이언트 시스템이 온라인 소셜 네트워크와 현재 네트워크 연결을 가지는지 여부를 감지할 수 있다. 모바일-클라이언트 시스템은 온라인 소셜 네트워크의 위치 서버로 저장된 위치 이력 데이터를 전송할지를 결정할 수 있으며, 이때 모바일-클라이언트 시스템이 온라인 소셜 네트워크와 현재 연결되어 있다면, 모바일-클라이언트 시스템은 현재 네트워크 연결을 사용하여 온라인 소셜 네트워크의 위치 서버로 위치 이력 데이터를 전송하고, 모바일-클라이언트 시스템이 온라인 소셜 네트워크와 현재 연결되어 있지 않다면, 모바일-클라이언트 시스템은 위치 서버로 위치 이력 데이터를 전송하지 않는다.

Description

위치-기반 서비스를 사용한 모바일 클라이언트의 전력 관리{POWER MANAGEMENT OF MOBILE CLIENTS USING LOCATION-BASED SERVICES}
본 출원은, 2014년 4월 16일자로 출원된 미국 가특허출원 제61/980,453호에 대한 우선권을 주장하는, 미국연방법률(35 U.S.C. §120) 하에 2014년 7월 3일자로 출원된 미국특허출원 제14/323,923호의 계속출원으로서 본 명세서에 참조로 각각 통합된다.
본 명세서는 일반적으로 소셜 네트워킹 환경 내 모바일 장치, 소셜 그래프, 위치 서비스, 검색 및 알림의 송수신에 관한 것이다.
소셜 네트워킹 웹사이트를 포함할 수 있는 소셜 네트워킹 시스템은 사용자들(가령, 개인들 또는 단체들)이 소셜 네트워킹 시스템과 상호작용하고, 소셜 네트워킹 시스템을 통해 서로 상호작용할 수 있게 해줄 수 있다. 소셜 네트워킹 시스템은 사용자로부터의 입력으로 사용자와 연관된 사용자 프로필을 생성하고 소셜 네트워킹 시스템에 저장할 수 있다. 사용자 프로필은 사용자의 인구학적 정보, 통신-채널 정보 및 개인 관심사에 대한 정보를 포함할 수 있다. 또한, 소셜 네트워킹 시스템은 사용자로부터의 입력으로 소셜 네트워킹 시스템의 다른 사용자들과의 사용자의 관계에 대한 기록을 생성하고 저장할 수 있을 뿐만 아니라 서비스(예컨대, 담벼락 게시물, 사진-공유, 이벤트 조직, 메시징, 게임 또는 광고)를 제공하여 사용자들 사이의 소셜 상호작용을 용이하게 할 수 있다.
소셜 네트워킹 시스템은 그것의 서비스에 관한 컨텐츠 또는 메시지를 하나 이상의 네트워크를 통해 사용자의 모바일이나 다른 컴퓨팅 장치로 송신할 수 있다. 또한, 사용자는 소셜 네트워킹 시스템 내의 사용자의 사용자 프로필과 다른 데이터에 접근하기 위해 사용자의 모바일이나 다른 컴퓨팅 장치에 소프트웨어 애플리케이션을 설치할 수 있다. 소셜 네트워킹 시스템은 가령 사용자와 연결된 다른 사용자들의 통합된 소식의 뉴스피드와 같이 사용자에게 디스플레이하도록 개인화된 세트의 컨텐츠 객체를 생성할 수 있다.
가령 스마트폰, 태블릿 컴퓨터 또는 랩톱 컴퓨터와 같은 모바일 컴퓨팅 장치는 가령 GPS(Global Positioning System) 수신기, 나침반 또는 자이로스코프와 같이 그 위치, 방향 또는 방위를 결정하기 위한 기능을 포함할 수 있다. 또한, 이런 장치는 가령 BLUETOOTH 통신, NFC(near-field communication) 또는 적외선(IR) 통신이나 무선 근거리 네트워크(WLANs)나 셀룰러-전화 네트워크를 가진 통신과 같이 무선 통신을 위한 기능을 포함할 수 있다. 또한, 이런 장치는 하나 이상의 카메라, 스캐너, 터치스크린, 마이크로폰 또는 스피커를 포함할 수 있다. 또한, 모바일 컴퓨팅 장치는 가령 게임, 웹 브라우저 또는 소셜 네트워킹 애플리케이션과 같은 소프트웨어 애플리케이션을 실행할 수 있다. 소셜 네트워킹 애플리케이션으로 사용자는 그 소셜 네트워크의 다른 사용자들과 연결하고, 통신하며, 정보를 공유할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템은 온라인 소셜 네트워크의 제1 사용자의 모바일 장치로 알림을 푸시할 수 있다. 소셜 네트워킹 시스템은 제1 사용자의 제1 위치 및 한 명 이상의 제2 사용자의 제2 위치들을 결정할 수 있다. 소셜 네트워킹 시스템은 제1 사용자에 대한 제2 사용자의 소셜 친밀성 또는 소셜 근접성에 적어도 부분적으로 기반하여 제1 사용자에 대한 각각의 제2 사용자의 임계 거리를 결정할 수 있다. 제2 사용자가 제1 사용자의 각각의 임계 거리 내에 있다면, 소셜 네트워킹 시스템은 제2 사용자를 참조하는 제1 사용자에게 제2 사용자가 근처에 있다는 알림을 푸시할 수 있다. 제2 사용자의 정확한 위치가 제1 사용자에게 송신될 수 있다.
특정 실시예로, 사용자의 모바일 장치는 모바일 장치가 배터리-절약 방식으로 소셜 네트워킹 시스템에 그 위치를 업데이트하게 할 수 있는 한 세트의 조건을 결정할 수 있다. 소셜 네트워킹 시스템으로 송신되는 위치 업데이트의 빈도는 소셜 네트워킹 시스템의 서버에 의해 결정될 수 있거나, 사용자의 모바일 장치에 의해 결정될 수 있다.
특정 실시예로, 소셜 네트워킹 시스템은 특정 사용자가 과거의 어느 시점에 고정된 위치 또는 다른 사용자와 근접해 있었는지를 결정하기 위해 고정된 위치 또는 다른 사용자의 위치 이력에 대하여 특정 사용자의 위치 이력을 비교할 수 있다. 소셜 네트워킹 시스템은 임계 거리 및 최소 시간 요건을 결정할 수 있으며, 적어도 최소 시간 동안 특정 사용자의 임계 거리 내에 있는 다른 사용자들 또는 위치들은 근접해 있는 것으로 간주된다. 특정 실시예로, 소셜 네트워킹 시스템은 특정 사용자 및 다른 사용자나 다른 위치의 각 인스턴스에 대한 근접성 계수를 계산할 수 있으며, 근접성 계수(proximity coefficient)는 특정 사용자 및 다른 사용자나 위치 사이의 정량화된 거리 및 정량화된 거리에서 경과한 시간의 함수로서 계산된다.
특정 실시예로, 소셜 네트워킹 시스템은 소셜 네트워킹 시스템의 사용자에 의한 질의에 응답하여 검색 결과의 순위화를 향상시키도록 근접성 계수를 사용할 수 있다. 소셜 네트워킹 시스템은 검색 요청을 제출하는 사용자의 위치 이력을 검색 결과와 관련된 적어도 하나의 위치와 비교함으로써 2 이상의 검색 결과(예컨대, 동일한 이름의 2명의 사용자 또는 특정 사용자와 관련된 모든 사진) 사이의 차이를 명확하게 할 수 있다. 관련된 위치는 태그, 체크인 또는 위치 메타데이터, 또는 검색 결과와도 관련되는 다른 사용자의 위치 이력일 수 있다. 소셜 네트워킹 시스템은 검색중인 사용자가 검색 결과와 관련된 임의의 위치와 근접해있는지를 결정하고, 검색중인 사용자와 해당 위치 사이의 근접성 계수를 계산하며, 근접성 계수에 적어도 부분적으로 기반하여 검색 결과를 순위화할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템은 사용자와 관련성이 있는 위치에 관한 컨텐츠를 홍보함으로써 소셜 네트워킹 시스템의 사용자에 대한 컨텐츠의 제시를 향상시키도록 근접성 계수를 사용할 수 있다. 소셜 네트워킹 시스템은 사용자의 위치 이력을 컨텐츠 아이템과 관련된 임의의 위치와 비교하고, 사용자가 근접해있었던 임의의 컨텐츠 아이템에 대한 근접성 계수를 계산하며, 근접성 계수에 적어도 부분적으로 기반하여 사용자에게 제시하기 위한 컨텐츠 아이템을 순위화할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템은 근접성 계수를 사용하여 소셜 네트워킹 시스템에서 공유되는 이미지들에 대한 태그 제안을 향상시킬 수 있다. 소셜 네트워킹 시스템은 소셜 네트워킹 시스템에서 공유되도록 이미지를 수신할 수 있는데, 이때 이미지는 적어도 한 명의 사람을 묘사한다. 소셜 네트워킹 시스템은 이미지에서 묘사되는 사람을 식별하는 얼굴 인식 분석을 수행하고 이미지 내 식별된 사람을 태그하도록 제안할 수 있다. 태그-제안은 얼굴 인식 분석에 의해 결정되는 후보들에 관한 소셜 네트워킹 정보를 통해 적어도 부분적으로 향상될 수 있다. 태그-제안은 후보들의 위치 이력을 사진과 관련된 위치, 공유하는 사용자와 관련된 위치 또는 사진에서 묘사되는 다른 사용자와 관련된 위치와 비교함으로써 더 향상될 수 있다. 위치 이력의 비교는 하나 이상의 후보를 제거하거나 하나 이상의 후보에 대한 점수를 개선시켜서 이런 후보들이 태그를 위해 제안될 가능성을 더 높게 만드는데 사용될 수 있다.
본 발명의 내용 중에 포함되어 있다.
도 1은 소셜 네트워킹 시스템과 관련된 예시적인 네트워크 환경을 도시한다.
도 2는 예시적인 소셜 그래프를 도시한다.
도 3은 예시적인 모바일-클라이언트 시스템을 도시한다.
도 4는 배경 위치 업데이트를 획득하기 위한 예시적인 방법을 도시한다.
도 5는 또 다른 인접 사용자의 사용자에게 알림을 송신하기 위한 예시적인 방법을 도시한다.
도 6은 인접 사용자를 참조하는 예시적인 알림을 도시한다.
도 7은 위치로 그룹화되는 인접 사용자들의 사용자-목록을 열람하기 위한 예시적인 인터페이스를 도시한다.
도 8은 사용자의 활동 로그를 열람하는 사용자용 예시적인 인터페이스를 도시한다.
도 9는 소셜 네트워킹 시스템의 다른 사용자들에게 사용자의 정확한 위치를 공유하기 위한 예시적인 인터페이스를 도시한다.
도 10은 소셜 네트워킹 시스템의 다른 사용자의 정확한 위치를 열람하기 위한 예시적인 인터페이스를 도시한다.
도 11은 모바일 클라이언트 시스템으로부터 위치 업데이트의 빈도를 결정하기 위한 예시적인 흐름도를 도시한다.
도 12는 2명의 사용자 위치 이력의 예시적인 비교를 도시한다.
도 13은 위치 이력에 기반하여 2명의 사용자 사이의 근접성 계수를 계산하기 위한 예시적인 방법을 도시한다.
도 14는 위치 이력 비교에 적어도 부분적으로 기반하여 검색 결과의 세트를 결정하고 순위화하기 위한 예시적인 방법을 도시한다.
도 15는 위치 이력 비교에 적어도 부분적으로 기반하여 사용자에게 제시되는 컨텐츠 아이템을 선택하고 순위화하기 위한 예시적인 방법을 도시한다.
도 16은 비교를 위한 인자로서 위치 이력 비교로 얼굴 인식을 실행하기 위한 예시적인 방법을 도시한다.
도 17은 예시적인 컴퓨터 시스템을 도시한다.
시스템 개요
도 1은 소셜 네트워킹 시스템과 관련된 예시적인 네트워크 환경(100)을 도시한다. 네트워크 환경(100)은 네트워크(110)에 의해 서로 연결되는 모바일-클라이언트 시스템(130), 소셜 네트워킹 시스템(160) 및 검색-엔진 시스템(170)을 포함한다. 비록 도 1은 모바일-클라이언트 시스템(130), 소셜 네트워킹 시스템(160), 검색-엔진 시스템(170) 및 네트워크(110)의 특정 배열을 도시하고 있지만, 본 명세서는 모바일-클라이언트 시스템(130), 소셜 네트워킹 시스템(160), 검색-엔진 시스템(170) 및 네트워크(110)의 임의의 적절한 배열을 고려한다. 예로서 제한없이, 모바일-클라이언트 시스템(130), 소셜 네트워킹 시스템(160) 및 검색-엔진 시스템(170) 중 두 개 이상이 네트워크(110)를 우회하여 서로 직접 연결될 수 있다. 또 다른 예로서, 모바일-클라이언트 시스템(130), 소셜 네트워킹 시스템(160) 및 검색-엔진 시스템(170) 중 두 개 이상이 전체적으로 또는 부분적으로 서로 물리적 또는 논리적으로 함께 위치할 수 있다. 게다가, 비록 도 1은 특정 수의 모바일-클라이언트 시스템(130), 소셜 네트워킹 시스템(160), 검색-엔진 시스템(170) 및 네트워크(110)를 도시하고 있지만, 본 명세서는 임의의 적절한 수의 모바일-클라이언트 시스템(130), 소셜 네트워킹 시스템(160), 검색-엔진 시스템(170) 및 네트워크(110)를 고려한다. 예로서 제한없이, 네트워크 환경(100)은 다수의 모바일-클라이언트 시스템(130), 소셜 네트워킹 시스템(160), 검색-엔진 시스템(170) 및 네트워크(110)를 포함할 수 있다.
본 명세서는 임의의 적절한 네트워크(110)를 고려한다. 예로서 제한 없이, 네트워크(110)의 하나 이상의 부분은 애드혹 네트워크, 인트라넷, 익스트라넷, VPN(virtual private network), LAN(local area network), WLAN(wireless LAN), WAN(wide area network), WWAN(wireless WAN), MAN(metropolitan area network), 인터넷의 부분, PSTN(Public Switched Telephone Network)의 부분, 셀룰러 전화 네트워크 또는 이들 중 두 개 이상의 조합을 포함할 수 있다. 네트워크(110)는 하나 이상의 네트워크(110)를 포함할 수 있다.
링크(150)는 통신 네트워크(110)에 모바일-클라이언트 시스템(130), 소셜 네트워킹 시스템(160) 및 검색-엔진 시스템(170)을 연결하거나 서로 연결할 수 있다. 본 명세서는 임의의 적절한 링크(150)를 고려한다. 특정 실시예에서, 하나 이상의 링크(150)는 하나 이상의 유선(가령, DSL(Digital Subscriber Line) 또는 DOCSIS(Data Over Cable Service Interface Specification)), 무선(가령, Wi-Fi 또는 WiMax(Worldwide Interoperability for Microwave Access)), 광학(가령, SONET(Synchronous Optical Network) 또는 SDH(Synchronous Digital Hierarchy)) 링크를 포함한다. 특정 실시예에서, 하나 이상의 링크(150) 각각은 애드혹 네트워크, 인트라넷, 익스트라넷, VPN, LAN, WLAN, WAN, WWAN, MAN, 인터넷의 부분, PSTN의 부분, 셀룰러 기술-기반 네트워크, 위성 통신 기술-기반 네트워크, 다른 링크(150) 또는 이런 링크(150)의 2 이상의 조합을 포함한다. 링크(150)는 네트워크 환경(100) 전체에 걸쳐 반드시 동일할 필요는 없다. 하나 이상의 제1 링크(150)는 하나 이상의 면에서, 하나 이상의 제2 링크(150)와 다를 수 있다.
특정 실시예로, 모바일-클라이언트 시스템(130)은 하드웨어, 소프트웨어 또는 임베디드 로직 컴포넌트나 이들의 2 이상의 컴포넌트의 조합을 포함하고 모바일-클라이언트 시스템(130)에 의해 구현되거나 지원되는 적절한 기능을 수행할 수 있는 전자식 장치일 수 있다. 모바일-클라이언트 시스템(130)은 가령 랩톱 컴퓨터, 셀룰러 전화, 스마트폰 또는 태블릿 컴퓨터와 같은 임의의 모바일 컴퓨팅 장치일 수 있다. 본 명세서는 임의의 적절한 모바일-클라이언트 시스템(130)을 고려한다. 모바일-클라이언트 시스템(130)은 모바일-클라이언트 시스템(130)에서 네트워크 사용자가 네트워크(110)에 접근할 수 있게 할 수 있다. 특정 실시예로, 한 명 이상의 사용자(101)는 하나 이상의 모바일-클라이언트 시스템(130)을 사용하여 소셜 네트워킹 시스템(160) 또는 검색-엔진 시스템(170)으로부터 데이터를 액세스하고, 송신하며 수신할 수 있다. 모바일-클라이언트 시스템(130)은 직접적으로, 네트워크(110)를 통해 또는 제3자 시스템을 통해 소셜 네트워킹 시스템(160) 또는 검색-엔진 시스템(170)에 액세스할 수 있다. 예로서 제한 없이, 모바일-클라이언트 시스템(130)은 소셜 네트워킹 시스템(160)을 통해 검색-엔진 시스템(170)에 액세스할 수 있다. 모바일-클라이언트 시스템(130)은 그 사용자가 다른 클라이언트 시스템들에서 다른 사용자들과 통신하게 할 수 있다.
특정 실시예로, 모바일-클라이언트 시스템(130)은, 가령 MICROSOFT INTERNET EXPLORER(또는 INTERNET EXPLORER MOBILE), GOOGLE CHROME, GOOGLE ANDROID, APPLE SAFARI, OPERA(또는 OPERA MINI 또는 OPERA MOBILE), BITSTREAM BOLT 또는 MOZILLA FIREFOX(또는 FIREFOX MOBILE)와 같은 웹 브라우저를 포함할 수 있고, 하나 이상의 애드-온(add-ons), 플러그-인(plug-ins) 또는 다른 확장형(extensions)을 가질 수 있다. 웹페이지로의 액세스를 요청하기 위해, 모바일-클라이언트 시스템(130)은 웹 브라우저를 특정 서버(가령, 예컨대, 소셜 네트워킹 시스템(160)과 연관된 서버, 제3자 애플리케이션 서버, 웹 서버, 기업 서버, 장치-검출 시스템(170) 또는 다른 적절한 시스템)로 인도하는 URL(Uniform Resource Locator) 또는 다른 주소를 입력할 수 있고, 웹 브라우저는 하이퍼텍스트 전송 프로토콜(HTTP) 요청을 생성하고 HTTP 요청을 서버로 통신할 수 있다. 웹페이지에 대한 요청은 HTTP 거래의 운영 파라미터를 정의하는 하나 이상의 헤더 필드(header fields)를 포함하는 http-헤더를 포함할 수 있다. 서버는 HTTP 요청을 수락하고, HTTP 요청에 응답하여 하나 이상의 하이퍼텍스트 마크업 언어(HTML) 파일을 모바일-클라이언트 시스템(130)으로 통신할 수 있다. 모바일-클라이언트 시스템(130)은 사용자에게 표시하기 위해 서버로부터 HTML 파일에 기초한 웹페이지를 렌더링할 수 있다. 본 명세서는 임의의 적절한 웹페이지 파일을 고려한다. 예로서 제한 없이, 웹페이지는 특정한 필요에 따라 HTML 파일, 확장형 하이퍼텍스트 마크업 언어(XHTML) 파일 또는 확장형 마크업 언어(XML) 파일로부터 렌더링할 수 있다. 또한, 이런 페이지는, 예로서 제한 없이 JAVASCRIPT, JAVA, MICROSOFT SILVERLIGHT, 가령 AJAX(비동기식 JAVASCRIPT 및 XML)와 같은 마크업 언어와 스크립트의 조합 등과 같은 스크립트를 실행할 수 있다. 본 명세서에서, 웹페이지에 대한 레퍼런스는 (브라우저가 웹페이지를 렌더링하는데 사용할 수 있는) 하나 이상의 해당 웹페이지 파일을 포함하며, 적절한 경우, 그 역도 또한 같다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 온라인 소셜 네트워크를 호스팅할 수 있는 네트워크-주소화 컴퓨팅 시스템일 수 있다. 소셜 네트워킹 시스템(160)은 예컨대 사용자-프로필 데이터, 컨셉-프로필 데이터, 소셜-그래프 정보 또는 온라인 소셜 네트워크에 관한 다른 적절한 데이터와 같은 소셜 네트워킹 데이터를 생성, 저장, 수신 및 전송할 수 있다. 소셜 네트워킹 시스템(160)은 직접적으로 또는 네트워크(110)를 통해 네트워크 환경(100)의 다른 컴포넌트들에 의해 접근될 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 하나 이상의 서버(162)를 포함할 수 있다. 각 서버(162)는 일체형 서버(unitary server)일 수 있거나, 다수의 컴퓨터 또는 다수의 데이터센터에 걸쳐 있는 분산형 서버일 수 있다. 서버(162)는 예로서 제한 없이, 웹 서버, 뉴스 서버, 메일 서버, 메시지 서버, 광고 서버, 파일 서버, 애플리케이션 서버, 교환 서버, 데이터베이스 서버, 프록시 서버, 본 명세서에 기술된 기능이나 프로세스를 수행하는데 적절한 또 다른 서버 또는 이들의 임의의 조합과 같이, 다양한 타입일 수 있다. 특정 실시예로, 각 서버(162)는 서버(162)에 의해 구현되거나 지원되는 적절한 기능을 수행하기 위한 하드웨어, 소프트웨어 또는 임베디드 논리 소자 또는 2 이상의 이런 소자들의 조합을 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(164)은 하나 이상의 데이터 스토어(164)를 포함할 수 있다. 데이터 스토어(164)는 다양한 타입의 정보를 저장하는데 사용될 수 있다. 특정 실시예로, 데이터 스토어(164)에 저장된 정보는 특정한 데이터 구조에 따라 구조화될 수 있다. 특정 실시예로, 각 데이터 스토어(164)는 관계형 데이터베이스일 수 있다. 특정 실시예는 모바일-클라이언트 시스템(130), 소셜 네트워킹 시스템(160) 또는 검색-엔진 시스템(170)이 데이터 스토어(164)에 저장된 정보를 관리, 검색, 변경, 추가 또는 삭제할 수 있게 하는 인터페이스를 제공할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 하나 이상의 데이터 스토어(164)에 하나 이상의 소셜 그래프를 저장할 수 있다. 특정 실시예로, 소셜 그래프는 (특정 사용자에 각각 해당하는) 다수의 사용자 노드 또는 (특정 컨셉에 각각 해당하는) 다수의 컨셉 노드를 포함할 수 있는 다수의 노드 및 노드를 연결하는 다수의 에지를 포함할 수 있다. 소셜 네트워킹 시스템(160)은 다른 사용자와 통신하고 상호작용하는 능력을 온라인 소셜 네트워크의 사용자에게 제공할 수 있다. 특정 실시예로, 사용자는 소셜 네트워킹 시스템(160)을 통해 온라인 소셜 네트워크에 가입한 후 연결들(즉, 관계들)을 그들이 연결되고자 하는 소셜 네트워킹 시스템(160)의 다수의 다른 사용자에 추가할 수 있다. 본 명세서에서, "친구"란 용어는 사용자가 소셜 네트워킹 시스템(160)을 통해 연결, 유대 또는 관계를 형성했던 소셜 네트워킹 시스템(160)의 임의의 다른 사용자를 가리킬 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 소셜 네트워킹 시스템(160)에 의해 지원되는 다양한 유형의 아이템이나 객체에 대한 행위를 취할 수 있는 능력을 사용자에게 제공할 수 있다. 예로서 제한 없이, 아이템 및 객체는 소셜 네트워킹 시스템(160)의 사용자들이 속할 수 있는 그룹이나 소셜 네트워크, 사용자가 관심을 가질지도 모르는 이벤트 또는 캘린더 엔트리, 사용자가 사용할 수 있는 컴퓨터-기반 애플리케이션, 사용자가 서비스를 통해 아이템을 팔거나 구매할 수 있게 하는 거래, 사용자가 수행할 수 있는 광고와의 상호작용 또는 다른 적절한 아이템이나 객체를 포함할 수 있다. 사용자는 소셜 네트워킹 시스템(160) 또는 소셜 네트워킹 시스템(160)과 별개이거나 네트워크(110)를 통해 소셜 네트워킹 시스템(160)에 결합되는 검색-엔진 시스템(170)의 외부 시스템에서 표현될 수 있는 모든 것과 상호작용할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 다양한 엔티티를 링크할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 사용자가 서로 상호작용할 뿐 아니라 검색-엔진 시스템(170)이나 다른 엔티티로부터 컨텐츠를 수신할 수 있게 하거나, 사용자가 응용 프로그래밍 인터페이스(API)나 다른 통신 채널을 통해 이런 엔티티와 상호작용할 수 있게 해줄 수 있다.
특정 실시예로, 검색-엔진 시스템(170)은 온라인 검색 엔진을 호스트할 수 있는 네트워크-주소화 컴퓨팅 시스템일 수 있다. 검색-엔진 시스템(170)은 예컨대 검색 질의, 검색 결과 및 다른 적절한 검색-관련 데이터와 같은 검색-관련 데이터를 생성, 저장, 수신 및 송신할 수 있다. 예로서 제한 없이, 검색-엔진 시스템(170)은 검색-엔진 시스템(170)에서 수신된 검색 질의에 응답하여 네트워크 자원을 식별하는 하나 이상의 검색 알고리즘, 식별된 네트워크 자원을 점수화 및/또는 순위화하는 하나 이상의 점수화 알고리즘이나 순위화 알고리즘, 또는 식별된 네트워크 자원을 요약하는 하나 이상의 요약 알고리즘을 구현할 수 있다. 특정 실시예로, 검색-엔진 시스템(170)으로 구현되는 점수화 알고리즘은 적절한 경우 검색 질의 쌍들 및 선택된 URL들(Uniform Resource Locators)로부터 구성된 한 세트의 훈련 데이터로부터 점수화 알고리즘이 자동으로 획득할 수 있는 기계-학습 점수화 공식을 사용할 수 있다. 검색-엔진 시스템(170)은 직접적으로 또는 네트워크(110)를 통해 네트워크 환경(100)의 다른 컴포넌트들에 의해 액세스될 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 또한 소셜 네트워킹 시스템(160)과 사용자의 상호작용을 향상시킬 수 있는 사용자-생성된 컨텐츠 객체를 포함한다. 사용자-생성된 컨텐츠는 사용자가 소셜 네트워킹 시스템(160)에 추가, 업로드, 송신 또는 "게시"할 수 있는 어떤 것을 포함할 수 있다. 예로서 제한 없이, 사용자는 모바일-클라이언트 시스템(130)으로부터 소셜 네트워킹 시스템(160)으로 게시물을 통신할 수 있다. 게시물은 가령 상태 업데이트나 다른 텍스트형 데이터와 같은 데이터, 위치 정보, 사진, 비디오, 링크, 음악 또는 다른 유사한 데이터나 매체를 포함할 수 있다. 또한, 컨텐츠는 가령 뉴스피드 또는 스트림과 같이 "통신 채널"을 통해 제3자에 의해 소셜 네트워킹 시스템(160)에 추가될 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 다양한 서버, 서브-시스템, 프로그램, 모듈, 로그 및 데이터 스토어를 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 하나 이상의 다음의: 웹 서버, 행위 로거, API 요청 서버, 관련성 및 순위화 엔진, 컨텐츠 객체 분류기, 알림 제어기, 행위 로그, 제3자 컨텐츠 객체 노출 로그, 추론 모듈, 인증/개인정보 서버, 검색 모듈, 광고 타겟팅 모듈, 사용자 인터페이스 모듈, 사용자 프로필 스토어, 연결 스토어, 제3자 컨텐츠 스토어 또는 위치 스토어를 포함할 수 있다. 또한, 소셜 네트워킹 시스템(160)은 가령 네트워크 인터페이스, 보안 메커니즘, 부하 균형기, 장애 서버, 관리 및 네트워크 운영 콘솔, 다른 적절한 컴포넌트 또는 이들의 임의의 적절한 조합과 같이 적절한 컴포넌트들을 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 사용자 프로필을 저장하기 위한 하나 이상의 사용자 프로필 스토어를 포함할 수 있다. 사용자 프로필은 예컨대 인명정보, 인구학적 정보, 행동 정보, 소셜 정보 또는 가령 경력, 학력, 취미나 기호, 관심사, 친밀감, 위치와 같은 다른 유형의 설명적 정보를 포함할 수 있다. 관심사 정보는 하나 이상의 카테고리에 관한 관심사를 포함할 수 있다. 카테고리는 일반적이거나 구체적일 수 있다. 예로서 제한 없이, 사용자가 신발 브랜드에 관한 기사를 "좋아한다"면, 카테고리는 그 브랜드일 수 있거나 "신발" 또는 "옷"의 일반 카테고리일 수 있다. 연결 스토어는 사용자에 대한 연결 정보를 저장하는데 사용될 수 있다. 연결 정보는 유사하거나 공통의 경력, 그룹 맴버쉽, 취미, 학력을 가지거나 임의의 방식으로 관련되거나 공통 속성을 공유하는 사용자들을 표시할 수 있다. 또한, 연결 정보는 (내부와 외부 모두의) 다른 사용자들과 컨텐츠 사이의 사용자-정의된 연결들을 포함할 수 있다. 웹 서버는 네트워크(110)를 통해 하나 이상의 모바일-클라이언트 시스템(130)이나 하나 이상의 검색-엔진 시스템(170)과 소셜 네트워킹 시스템(160)을 링크하는데 사용될 수 있다. 웹 서버는 소셜 네트워킹 시스템(160)과 하나 이상의 모바일-클라이언트 시스템(130) 사이에서 메시지를 수신하고 라우팅하기 위한 메일 서버나 다른 메시징 기능을 포함할 수 있다. API 요청 서버는 검색-엔진 시스템(170)이 하나 이상의 API를 호출하여 소셜 네트워킹 시스템(160)으로부터의 정보에 접근할 수 있게 해줄 수 있다. 행위 로거는 소셜 네트워킹 시스템(160) 내부나 외부에서의 사용자의 행위에 대한 웹 서버로부터의 통신을 수신하는데 사용될 수 있다. 행위 로그와 함께, 제3자 컨텐츠 객체 로그에서는 제3자 컨텐츠 객체에 대한 사용자 노출이 관리될 수 있다. 알림 제어기는 컨텐츠 객체에 관한 정보를 모바일-클라이언트 시스템(130)에 제공할 수 있다. 정보는 알림으로서 모바일-클라이언트 시스템(130)으로 푸시(pushed)될 수 있거나, 정보는 모바일-클라이언트 시스템(130)으로부터 수신된 요청에 응답하여 클라이언트 시스템(130)으로부터 풀링(pulled)될 수 있다. 인증 서버는 소셜 네트워킹 시스템(160)의 사용자의 하나 이상의 개인정보 설정을 강제하는데 사용될 수 있다. 사용자의 개인정보 설정은 사용자와 관련된 특정 정보가 어떻게 공유될 수 있는지를 결정한다. 인증 서버는 예컨대 적절한 개인정보 설정을 설정함으로써, 사용자의 행위를 소셜 네트워킹 시스템(160)에 의해 로그되게 하거나 다른 시스템(예컨대, 검색-엔진 시스템(170))과 공유되게 하도록 사용자가 참여하거나 탈퇴할 수 있게 해줄 수 있다. 제3자 컨텐츠 객체 스토어는 가령 검색-엔진 시스템(170)과 같은 제3자로부터 수신된 컨텐츠 객체를 저장하는데 사용될 수 있다. 위치 스토어는 사용자와 관련된 모바일-클라이언트 시스템(130)으로부터 수신된 위치 정보를 저장하는데 사용될 수 있다. 광고 가격결정 모듈은 소셜 정보, 현재시간, 위치 정보 또는 다른 적절한 정보를 결합하여 알림의 형태로 사용자에게 관련 광고를 제공할 수 있다.
소셜 그래프
도 2는 예시적인 소셜 그래프(200)를 도시한다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 하나 이상의 데이터 스토어에 하나 이상의 소셜 그래프(200)를 저장할 수 있다. 특정 실시예로, 소셜 그래프(200)는 다수의 사용자 노드(202)나 다수의 컨셉 노드(204)를 포함할 수 있는 다수의 노드 및 노드를 연결하는 다수의 에지(206)를 포함할 수 있다. 도 2에 도시된 예시적인 소셜 그래프(200)는 훈시적 목적상 2차원 시각적 지도 표현으로 도시된다. 특정 실시예로, 소셜 네트워킹 시스템(160), 모바일-클라이언트 시스템(130) 또는 검색-엔진 시스템(170)은 소셜 그래프(200) 및 적절한 애플리케이션에 대한 관련 소셜-그래프 정보에 접근할 수 있다. 소셜 그래프(200)의 노드 및 에지는 예컨대 데이터 스토어(가령, 소셜-그래프 데이터베이스)에 데이터 객체로서 저장될 수 있다. 이런 데이터 스토어는 소셜 그래프(200)의 노드 또는 에지의 하나 이상의 검색가능하거나 질의가능한 인덱스를 포함할 수 있다.
특정 실시예로, 사용자 노드(202)는 소셜 네트워킹 시스템(160)의 사용자에 해당할 수 있다. 예로서 제한 없이, 사용자는 개인(사람인 사용자), 엔티티(예컨대, 기업, 사업체 또는 제3자 애플리케이션) 또는 소셜 네트워킹 시스템(160)과 상호작용하거나 소셜 네트워킹 시스템에서 통신하는 (예컨대, 개인 또는 엔티티의) 그룹일 수 있다. 특정 실시예로, 사용자가 소셜 네트워킹 시스템(160)에서 계정을 등록하면, 소셜 네트워킹 시스템(160)은 사용자에 해당하는 사용자 노드(202)를 생성할 수 있고, 하나 이상의 데이터 스토어에 사용자 노드(202)를 저장할 수 있다. 적절한 경우, 본 명세서에 기술되는 사용자들 및 사용자 노드들(202)은 등록 사용자들 및 등록 사용자들과 관련된 사용자 노드들(202)을 말할 수 있다. 추가로 또는 대안으로, 본 명세서에 기술되는 사용자들 및 사용자 노드들(202)은 적절한 경우 소셜 네트워킹 시스템(160)에 등록되지 않은 사용자들을 말할 수 있다. 특정 실시예로, 사용자 노드(202)는 사용자가 제공한 정보 및 소셜 네트워킹 시스템(160)을 포함하는 다양한 시스템이 수집한 정보와 관련될 수 있다. 예로서 제한 없이, 사용자는 그들의 이름, 프로필 사진, 연락 정보, 생일, 성별, 혼인 여부, 가족 관계, 직장, 학력, 기호, 관심사 또는 다른 신상 정보를 제공할 수 있다. 특정 실시예로, 사용자 노드(202)는 사용자와 관련된 정보에 해당하는 하나 이상의 데이터 객체와 관련될 수 있다. 특정 실시예로, 사용자 노드(202)는 하나 이상의 웹페이지에 해당할 수 있다.
특정 실시예로, 컨셉 노드(204)는 컨셉에 해당할 수 있다. 예로서 제한 없이, 컨셉은 장소(가령, 예컨대, 영화관, 레스토랑, 명소 또는 도시); 웹사이트(가령, 예컨대, 소셜 네트워크 시스템(160)과 연관된 웹사이트 또는 웹-애플리케이션 서버와 연관된 제3자 웹사이트); 엔티티(가령, 예컨대, 사람, 사업체, 그룹, 스포츠팀 또는 유명인사); 소셜 네트워킹 시스템(160) 또는 가령 웹-애플리케이션 서버와 같은 외부 서버에 위치할 수 있는 자원(가령, 예컨대, 오디오 파일, 비디오 파일, 디지털 사진, 텍스트 파일, 구조화된 문서 또는 애플리케이션); 물적 재산권 또는 지적 재산권(가령, 예컨대, 조각품, 미술품, 영화, 게임, 노래, 아이디어, 사진 또는 저서); 게임; 활동; 아이디어나 이론; 다른 적절한 컨셉; 또는 2 이상의 이런 컨셉들에 해당할 수 있다. 컨셉 노드(204)는 사용자에 의해 제공된 컨셉의 정보 또는 소셜 네트워킹 시스템(160)을 포함하는 다양한 시스템에 의해 수집된 정보와 연관될 수 있다. 예로서 제한 없이, 컨셉의 정보는 이름이나 제목; 하나 이상의 이미지(예컨대, 책의 커버 페이지의 이미지); 위치(예컨대, 주소 또는 지리적 위치); (URL과 연관될 수 있는) 웹사이트; 연락 정보(예컨대, 전화번호 또는 이메일 주소); 다른 적절한 컨셉 정보; 또는 이런 정보의 임의의 적절한 조합을 포함할 수 있다. 특정 실시예로, 각각의 컨셉 노드(204)는 컨셉 노드(204)와 연관된 정보에 해당하는 하나 이상의 데이터 객체와 연관될 수 있다. 특정 실시예로, 각각의 컨셉 노드(204)는 웹페이지에 해당할 수 있다.
특정 실시예로, 소셜 그래프(200)에서 노드는 ("프로필 페이지"라고 할 수 있는) 웹페이지를 표현하거나, 그 웹페이지에 의해 표현될 수 있다. 프로필 페이지는 소셜 네트워킹 시스템(160)에 의해 호스트 되거나, 접근될 수 있다. 또한, 프로필 페이지는 제3자 서버(170)와 연관된 제3자 웹사이트에 호스트될 수 있다. 예로서 제한 없이, 특정 외부 웹페이지에 해당하는 프로필 페이지는 특정 외부 웹페이지일 수 있고, 이런 프로필 페이지는 특정 컨셉 노드(204)에 해당할 수 있다. 프로필 페이지는 모든 또는 선택된 서브세트의 다른 사용자들에 의해 열람될 수 있다. 예로서 제한 없이, 사용자 노드(202)는 해당 사용자가 컨텐츠를 추가할 수 있고, 선언을 할 수 있으며, 그렇지 않으면 그들 자신을 표현할 수 있는 해당 사용자 프로필-페이지를 가질 수 있다. 또 다른 예로서 제한 없이, 컨셉 노드(204)는 특히 컨셉 노드(204)에 해당하는 컨셉과 관련하여 하나 이상의 사용자들이 컨텐츠를 추가할 수 있거나, 선언을 할 수 있거나, 그들 자신을 표현할 수 있는 해당 컨셉-프로필 페이지를 가질 수 있다.
특정 실시예로, 컨셉 노드(204)는 검색-엔진 시스템(170)에 의해 호스트되는 제3자 웹페이지 또는 자원을 표현할 수 있다. 제3자 웹페이지 또는 자원은 다른 요소들 중에서 행위 또는 활동을 표현하는 (예컨대, JavaScript, AJAX 또는 PHP 코드로 구현될 수 있는) 컨텐츠, 선택가능하거나 다른 아이콘 또는 다른 상호작용가능한 객체를 포함할 수 있다. 예로서 제한 없이, 제3자 웹페이지는 가령 "좋아요", "체크인", "식사하기(eat)", "추천하기" 또는 다른 적절한 행위나 활동과 같은 선택가능한 아이콘을 포함할 수 있다. 제3자 웹페이지를 열람하는 사용자는 아이콘들 중 하나(예컨대, "식사하기")를 선택하여 행위를 수행할 수 있고, 모바일-클라이언트 시스템(130)이 사용자의 행위를 표시하는 메시지를 소셜 네트워킹 시스템(160)으로 전송하게 할 수 있다. 그 메시지에 응답하여, 소셜 네트워킹 시스템(160)은 사용자에 해당하는 사용자 노드(202)와 제3자 웹페이지 또는 자원에 해당하는 컨셉 노드(204) 사이의 에지(예컨대, "식사하기" 에지)를 생성할 수 있고, 하나 이상의 데이터 스토어에 에지(206)를 저장할 수 있다.
특정 실시예로, 소셜 그래프(200)에서 노드 쌍은 하나 이상의 에지(206)에 의해 서로 연결될 수 있다. 노드 쌍을 연결하는 에지(206)는 노드 쌍 사이의 관계를 표현할 수 있다. 특정 실시예로, 에지(206)는 노드 쌍 사이의 관계에 해당하는 하나 이상의 데이터 객체나 속성을 포함하거나 표현할 수 있다. 예로서 제한 없이, 제1 사용자는 제2 사용자가 제1 사용자의 "친구"라고 표시할 수 있다. 이런 표시에 응답하여, 소셜 네트워킹 시스템(160)은 "친구 요청"을 제2 사용자에게 전송할 수 있다. 제2 사용자가 "친구 요청"을 확인하면, 소셜 네트워킹 시스템(160)은 소셜 그래프(200)에서 제1 사용자의 사용자 노드(202)와 제2 사용자의 사용자 노드(202)를 연결하는 에지(206)를 생성할 수 있고, 하나 이상의 데이터 스토어(24)에 소셜 그래프 정보로서 에지(206)를 저장할 수 있다. 도 2의 예에서, 소셜 그래프(200)는 사용자 "A"와 사용자 "B"의 사용자 노드(202)들 사이의 친구 관계를 표시하는 에지(206)를 그리고 사용자 "C"와 사용자 "B"의 사용자 노드(202) 사이의 친구 관계를 표시하는 에지를 포함한다. 비록 본 명세서는 특정 사용자 노드(202)를 연결하는 특정 속성을 가진 특정 에지(206)를 기술하거나 도시하지만, 본 명세서는 사용자 노드(202)를 연결하는 임의의 적절한 속성을 가진 임의의 적절한 에지(206)를 고려한다. 예로서 제한 없이, 에지(206)는 친구관계, 가족관계, 사업이나 고용 관계, 팬 관계, 팔로어 관계, 방문자 관계, 구독자 관계, 상위/하위 관계, 호혜 관계, 비-상호 관계, 또 다른 적절한 유형의 관계 또는 2 이상의 이런 관계들을 표현할 수 있다. 게다가, 비록 본 명세서는 일반적으로 노드들이 연결되는 것을 기술하지만, 본 명세서는 또한 사용자 또는 컨셉이 연결되는 것을 기술한다. 본 명세서에서, 사용자 또는 컨셉이 연결되는 것에 대한 언급은 적절한 경우 이들 사용자 또는 컨셉에 해당하는 노드가 하나 이상의 에지(206)에 의해 소셜 그래프(200)에서 연결되는 것을 의미할 수 있다.
특정 실시예로, 사용자 노드(202)와 컨셉 노드(204) 사이의 에지(206)는 컨셉 노드(204)와 연관된 컨셉에 대해 사용자 노드(202)와 연관된 사용자가 수행한 특정 행위 또는 활동을 표현할 수 있다. 예로서 제한 없이, 도 2에 도시된 바와 같이, 사용자는 컨셉을 "좋아요(like)", "참여했음(attended)", "실행했음(played)", "청취했음(listened)", "요리했음(cooked)", "근무했음(worked at)", 또는 "시청했음(watched)"을 할 수 있고, 이들 각각은 에지 타입이나 서브타입에 해당할 수 있다. 컨셉 노드(204)에 해당하는 컨셉-프로필 페이지는 예컨대 선택가능한 "체크인" 아이콘(가령, 예컨대, 클릭가능한 "체크인" 아이콘) 또는 선택가능한 "즐겨찾기에 추가" 아이콘을 포함할 수 있다. 유사하게, 사용자가 이런 아이콘을 클릭한 후, 소셜 네트워킹 시스템(160)은 각각의 행위에 해당하는 사용자의 행위에 응답하여 "즐겨찾기" 에지 또는 "체크인" 에지를 생성할 수 있다. 또 다른 예로서 제한 없이, 사용자(사용자 "C")는 특정 애플리케이션(온라인 음악 애플리케이션인 SPOTIFY)을 사용하여 특정 노래("Imagine")를 들을 수 있다. 이 경우, 소셜 네트워킹 시스템(160)은 사용자에 해당하는 사용자 노드(202)와 노래 및 애플리케이션에 해당하는 컨셉 노드(204) 사이에 "청취했음(listened)" 에지(206) 및 "사용했음(used)" 에지(도 2에 도시)를 생성하여, 사용자가 그 노래를 들었고 그 애플리케이션을 사용했음을 표시할 수 있다. 게다가, 소셜 네트워킹 시스템(160)은 노래와 애플리케이션에 해당하는 컨셉 노드(204) 사이에서 "재생했음(played)" 에지(206)(도 2에 도시)를 생성하여 특정 노래가 특정 애플리케이션에 의해 재생되었음을 표시할 수 있다. 이 경우, "재생했음(played)" 에지(206)는 외부 오디오 파일(노래 "Imagine")에 대해 외부 애플리케이션(SPOTIFY)에 의해 수행된 행위에 해당한다. 비록 본 명세서는 사용자 노드(202)와 컨셉 노드(204)를 연결하는 특정 속성을 가진 에지(206)를 기술하지만, 본 명세서는 사용자 노드(202)와 컨셉 노드(204)를 연결하는 임의의 적절한 속성을 가진 임의의 적절한 에지(206)를 고려한다. 게다가, 비록 본 명세서는 단일의 관계를 표현하는 사용자 노드(202)와 컨셉 노드(204) 사이의 에지를 기술하지만, 본 명세서는 하나 이상의 관계를 표현하는 사용자 노드(202)와 컨셉 노드(204) 사이의 에지를 고려한다. 예로서 제한 없이, 에지(206)는 사용자가 특정 컨셉에서 좋아요를 하고 사용했음을 모두 표현할 수 있다. 대안으로, 다른 에지(206)는 사용자 노드(202)와 컨셉 노드(204) 사이(도 2에 도시된 바와 같이, 사용자 "E"에 대한 사용자 노드(202)와 "SPOTIFY"에 대한 컨셉 노드(204) 사이)의 각 타입의 관계(또는 다수의 단일 관계)를 표현할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 소셜 그래프(200)에서 사용자 노드(202)와 컨셉 노드(204) 사이의 에지(206)를 생성할 수 있다. 예로서 제한 없이, (가령, 예컨대, 사용자의 모바일-클라이언트 시스템(130)에 의해 호스팅되는 웹 브라우저 또는 특수-목적 애플리케이션을 사용하여) 사용자가 컨셉-프로필 페이지를 열람하는 것은 사용자가 "좋아요" 아이콘을 클릭하거나 선택함으로써 컨셉 노드(204)가 표현한 컨셉을 좋아함을 나타낼 수 있는데, "좋아요" 아이콘은 사용자의 모바일-클라이언트 시스템(130)이 컨셉-프로필 페이지와 연관된 컨셉을 사용자가 좋아요 했다고 표시하는 메시지를 소셜 네트워킹 시스템(160)으로 전송하게 할 수 있다. 그 메시지에 응답하여, 소셜 네트워킹 시스템(160)은 사용자와 컨셉 노드(204) 사이의 "좋아요" 에지(206)로 도시된 바와 같이 사용자와 연관된 사용자 노드(202)와 컨셉 노드(204) 사이의 에지(206)를 생성할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 하나 이상의 데이터 스토어에 에지(206)를 저장할 수 있다. 특정 실시예로, 에지(206)는 특정 사용자 행위에 응답하여 소셜 네트워킹 시스템(160)에 의해 자동으로 형성될 수 있다. 예로서 제한 없이, 제1 사용자가 사진을 업로드하거나, 영화를 시청하거나, 노래를 듣는다면, 에지(206)가 제1 사용자에 해당하는 사용자 노드(202)와 이런 컨셉에 해당하는 컨셉 노드(204) 사이에 형성될 수 있다. 비록 본 명세서는 특정 방식으로 특정 에지(206)를 형성하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 임의의 적절한 에지(206)를 형성하는 것을 고려한다.
위치 정보
특정 실시예로, 소셜 네트워킹 시스템(160)은 객체(예컨대, 사용자, 컨셉, 또는 사용자나 컨셉과 관련된 모바일-클라이언트 시스템(130))의 지리적 위치(이하, 단지 "위치"라고도 함)를 결정할 수 있다. 객체의 위치는 거리 주소(예컨대, "1601 Willow Road"), 지리적 좌표의 세트(위도 및 경도), 다른 위치나 객체에 대한 레퍼런스(예컨대, "기차역 옆의 커피숍"), 맵 타일에 대한 레퍼런스(예컨대, "맵 타일(32)")로서, 또는 다른 적절한 식별자를 사용하여 식별되고 저장될 수 있다. 특정 실시예로, 객체의 위치는 온라인 소셜 네트워크의 사용자에 의해 제공될 수 있다. 예로서 제한 없이, 사용자는 위치에 체크인하거나 그의 위치의 표시를 제공함으로써 그의 위치를 입력할 수 있다. 또 다른 예로서 제한 없이, 사용자는 컨셉에 대한 프로필 페이지에 액세스하고 컨셉의 위치 정보(예컨대, 거리 주소)를 입력함으로써 컨셉의 위치(예컨대, 장소 또는 현장)를 입력할 수 있다. 특정 실시예로, 셀룰러, Wi-Fi, GPS 또는 다른 적절한 능력을 탑재한 모바일-클라이언트 시스템(130)의 위치는 지리적-위치결정 신호로 식별될 수 있다. 예로서 제한 없이, 모바일-클라이언트 시스템(130)은 시스템의 지리적 위치 기능을 용이하게 할 수 있는 하나 이상의 센서를 포함할 수 있다. 하나 이상의 센서 장치로 모바일-클라이언트 시스템(130)에 의한 센서 입력의 처리(예컨대, GPS 센서 신호를 처리하고 GPS 센서 신호에 대응하는 위치의 맵을 장치의 그래픽 사용자 인터페이스에서 디스플레이하는 것)는 하드웨어, 소프트웨어 및/또는 펌웨어(또는 장치 드라이버)의 조합으로 구현될 수 있다. 지리적-위치결정 신호는 셀타워 삼각측량, Wi-Fi 위치결정 또는 GPS 위치결정에 의해 획득될 수 있다. 특정 실시예로, 인터넷-연결 컴퓨터의 지리적 위치는 컴퓨터의 IP 주소에 의해 식별될 수 있다. 또한, 모바일-클라이언트 시스템(130)은 예컨대 이동 방향을 제공하거나, 현재 위치의 맵을 디스플레이하거나, 가령 레스토랑, 주유소 등과 같은 인근 관심 지점의 정보를 제공하는 것과 같이 장치의 지리적 위치 데이터를 통합하는 추가 기능을 가질 수 있다. 예로서 제한 없이, 모바일-클라이언트 시스템(130)의 웹 브라우저 애플리케이션은 GPS 센서로부터 GPS 신호를 해석하는 장치 드라이버에 의해 획득된 GPS 위치를 포함하는 맵을 생성하는 맵핑 라이브러리(mapping library)에 (예컨대, 함수 호출을 통해) 액세스하고, 웹 브라우저 애플리케이션의 그래픽 사용자 인터페이스에서 맵을 디스플레이할 수 있다. 특정 실시예로, 사용자의 위치는 사용자와 관련된 검색 이력으로부터 결정될 수 있다. 예로서 제한 없이, 특정 사용자가 특정 위치 내 객체에 대하여 이전에 질의했다면, 소셜 네트워킹 시스템(160)(또는 검색-엔진 시스템(170))은 사용자가 그 특정 위치에 여전히 있다고 추정할 수 있다. 비록 본 명세서는 특정 방식으로 객체의 위치를 결정하는 것을 설명하지만, 본 명세서는 임의의 적절한 방식으로 객체의 위치를 결정하는 것을 고려한다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 위치에 관한 정보의 데이터베이스를 관리할 수 있다. 또한, 소셜 네트워킹 시스템(160)은 예컨대 위치의 사진, 광고, 사용자 리뷰, 코멘트, "체크인" 활동 데이터, "좋아요" 활동 데이터, 운영 시간, 또는 위치에 관한 다른 적절한 정보와 같이 특정 위치에 대한 메타 정보를 관리할 수 있다. 특정 실시예로, 위치는 (예컨대, 상술한 바와 같이 또는 본 명세서에 참조로 통합되는 미국특허출원 제12/763171호에 기술된 바와 같이) 소셜 그래프(200) 내 컨셉 노드(204)에 대응할 수 있다. 소셜 네트워킹 시스템(160)은 사용자가 모바일-클라이언트 시스템(130)에 의해 호스트되는 클라이언트 애플리케이션(예컨대, 웹 브라우저 또는 다른 적절한 애플리케이션)을 사용하여 위치에 대한 정보에 액세스하게 할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 위치에 대한 정보를 요청하는 웹페이지(또는 다른 구조화된 문서)를 사용자에게 제공할 수 있다. 사용자 프로필 및 위치 정보 이외에, 시스템은 사용자에 대한 다른 정보를 추적하거나 관리할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 사용자의 위치를 기록하는 하나 이상의 위치-기반 서비스를 포함하는 지리적 소셜 네트워킹 기능을 지원할 수 있다. 예로서 제한 없이, 사용자는 사용자의 모바일-클라이언트 시스템(130)에 의해 호스트되는 특수목적용 클라이언트 애플리케이션(또는 브라우저 클라이언트를 사용한 웹-기반 또는 네트워크-기반 애플리케이션)을 사용하여 지리적 소셜 네트워킹 시스템에 액세스할 수 있다. 클라이언트 애플리케이션은 모바일-클라이언트 시스템(130)에 의해 지원된 GPS 또는 다른 지리적-위치 기능에 자동으로 액세스하고 지리적-소셜 네트워킹 시스템에 사용자의 현재 위치를 기록할 수 있다. 또한, 클라이언트 애플리케이션은 사용자가 다양한 위치로 "체크인"하고 이 위치를 다른 사용자들과 통신하게 하는 지리적-소셜 네트워킹 기능을 지원할 수 있다. 소정의 위치로의 체크인은 사용자가 위치에 물리적으로 위치할 때 발생할 수 있고, 모바일-클라이언트 시스템(130)을 사용하여, 사용자의 존재를 그 위치에 기록하도록 지리적-소셜 네트워킹 시스템에 액세스할 수 있다. 소셜 네트워킹 시스템(160)은 (예컨대, 본 명세서에 참조로 통합되는 미국특허출원 제13/042357호에 기술된 바와 같이) 사용자의 현재 위치 및 과거의 위치 데이터에 기반하여 사용자를 위치로 자동으로 체크인할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 사용자가 특정 위치에 대하여 가령 "좋아요(like)", "팬(fan)", "근무했음(worked at)", "추천했음(recommended)", "다녔음(attended)" 또는 관계의 다른 적절한 유형과 같은 관계의 다른 유형들을 표시하게 할 수 있다. 특정 실시예로, "체크인" 정보 및 다른 관계 정보는 사용자의 사용자 노드(202)를 위치의 컨셉 노드(204)와 연결하는 에지(206)로서 소셜 그래프(200)에 나타날 수 있다.
모바일 클라이언트
도 3은 예시적인 모바일 클라이언트 시스템(130)을 도시한다. 본 명세서는 임의의 적절한 물리적 형태를 취하는 모바일 클라이언트 시스템(130)을 고려한다. 특정 실시예로, 모바일 클라이언트 시스템(130)은 후술할 컴퓨팅 시스템일 수 있다. 예로서 제한 없이, 모바일 클라이언트 시스템(130)은 단일-보드 컴퓨터 시스템(SBC)(예컨대, 컴퓨터-온-모듈(COM) 또는 시스템-온-모듈(SOM)), 랩톱 또는 노트북 컴퓨터 시스템, 휴대 전화, 스마트폰, 개인 정보 단말기(PDA), 태블릿 컴퓨터 시스템 또는 이들의 2 이상의 조합일 수 있다. 특정 실시예로, 모바일 클라이언트 시스템(130)은 입력 컴포넌트로서 터치 센서(132)를 가질 수 있다. 도 3의 예에서, 터치 센서(132)는 모바일 클라이언트 시스템(130)의 전면에 통합된다. 정전용량식 터치 센서의 경우, 송신하고 수신하는 2개의 타입의 전극이 있을 수 있다. 이런 전극은 전기 펄스를 가진 송신 전극을 구동하고 터치나 인접 입력으로 유발된 수신 전극으로부터 정전용량의 변화를 측정하도록 설계된 제어기에 연결될 수 있다. 도 3의 예에서, 하나 이상의 안테나(134A-B)는 모바일 클라이언트 시스템(130)의 하나 이상의 측면에 통합될 수 있다. 안테나(134A-B)는 전류를 전파로 변환하고 그 역도 가능한 컴포넌트다. 신호의 송신 중에, 송신기는 발진하는 무선 주파수(RF) 전류를 안테나(134A-B)의 단자에 인가하고, 안테나(134A-B)는 전자기(EM) 파로서 인가된 전류의 에너지를 방사한다. 신호의 수신 중에, 안테나(134A-B)는 유입하는 EM 파의 전력을 안테나(134A-B)의 단자에서 전압으로 변환한다. 전압은 증폭을 위해 수신기로 송신될 수 있다.
특정 실시예로, 모바일 클라이언트 시스템(130)은 이더넷이나 다른 유선-기반 네트워크로 통신하기 위한 안테나(134A-B) 또는 무선 NIC(WNIC), 예컨대 WI-FI 네트워크와 같은 무선 네트워크와 통신하기 위한 무선 어댑터 또는 예컨대 3세대 모바일 통신(3G) 또는 LTE(Long Term Evolution) 네트워크와 같은 셀룰러 네트워크와 통신하기 위한 모뎀과 연결되는 통신 구성요소를 포함할 수 있다. 본 명세서는 임의의 적절한 네트워크 및 이에 대한 임의의 적절한 통신 구성요소(20)를 고려한다. 예로서 제한 없이, 모바일 클라이언트 시스템(130)은 애드 혹 네트워크(ad hoc network), 개인 영역 네트워크(PAN), 근거리 네트워크(LAN), 광역 네트워크(WAN), 대도시 네트워크(MAN), 인터넷의 하나 이상의 부분 또는 2 이상의 이런 네트워크들의 조합으로 통신할 수 있다. 하나 이상의 이런 네트워크의 하나 이상의 부분은 유선 또는 무선일 수 있다. 또 다른 예로서, 모바일 클라이언트 시스템(130)은 무선 PAN(WPAN)(가령, 예컨대 BLUETOOTH WPAN), WI-FI 네트워크, WI-MAX 네트워크, 셀룰러 전화 네트워크(가령, 예컨대 GSM(Global System for Mobile Communication) 네트워크, 3G 네트워크 또는 LTE(Long Term Evolution) 네트워크), 다른 적절한 무선 네트워크 또는 2 이상의 이런 네트워크들의 조합으로 통신할 수 있다. 적절한 경우, 모바일 클라이언트 시스템(130)은 임의의 이들 네트워크에 대한 임의의 적절한 통신 구성요소를 포함할 수 있다.
특정 실시예로, 모바일 클라이언트 시스템(130)의 안테나(134A-B)와 연결된 통신 구성요소는 GPS(global positioning system) 신호, 셀룰러 삼각화, 무선 핫스팟, 또는 위치 데이터를 결정하는 임의의 적절한 방법에 기초하여 위치 데이터를 결정하도록 구성될 수 있다. 특정 실시예로, 모바일 클라이언트 시스템(130)의 위치 서비스는, 가령, 예컨대, 하나 이상의 셀룰러 타워(cellular tower)의 위치, WI-FI 핫스팟과 연관된 크라우드-소싱된(crowd-sourced) 위치 정보, 또는 모바일 클라이언트 시스템(130)의 GPS 기능을 사용하는 하나 이상의 위치 결정 방법을 사용할 수 있다. 예로서 제한 없이, 애플리케이션은, 모바일 클라이언트 시스템(130)이 기결정된 시간 내에 GPS 데이터를 획득할 수 있는지에 적어도 부분적으로 의존하여 GPS 데이터를 위치 정보의 주요한 소스로 사용할 수 있다. 다른 예로서, 모바일 클라이언트 시스템(130)이 기결정된 샘플링 지속시간 내에 GPS 데이터를 획득할 수 없다면, 애플리케이션은 하나 이상의 셀룰러 타워 또는 WI-FI 핫스팟을 사용하여 결정된 위치를 사용할 수 있다. 비록 본 명세서는 위치 결정을 위한 특정 방법을 사용하는 위치 서비스를 기술하지만, 본 명세서는 위치 감지를 위한 임의의 적절한 방법 또는 방법들의 조합을 사용하는 위치 서비스를 고려한다.
배경 위치 업데이트
특정 실시예로, 소셜 네트워킹 시스템(160)은 자동으로 그리고 사용자로부터의 임의의 수동의 입력 없이 모바일 클라이언트 시스템(130)의 위치를 추적할 수 있다. 소셜 네트워킹 시스템(160)은 배경 모드에서 실행하는 모바일 클라이언트 시스템(130)의 애플리케이션을 통해 위치 정보를 획득하도록 기결정된 구간에 모바일 클라이언트 시스템(130)을 폴링(poll) 또는 "핑(ping)"할 수 있다. 핑에 응답하여, 모바일 클라이언트 시스템(130)의 애플리케이션은 모바일 클라이언트 시스템(130)의 위치 서비스를 활성화할 수 있다. 소셜 네트워킹 시스템(160)은 다양한 인자에 기반하여 폴링 주파수 또는 샘플링 지속시간을 조정할 수 있다.
도 4는 주변 위치 추적을 위한 예시적인 방법을 도시한다. 본 방법은 단계 410에서 시작할 수 있으며, 이때 활성 신호는 휴면 모드로부터 모바일 장치의 애플리케이션을 각성시키며 애플리케이션이 기결정된 샘플링 지속시간 동안 모바일 장치의 위치 서비스를 활성하게 하는 기결정된 폴링 주파수로 서버에 의해 송신된다. 특정 실시예로, 기결정된 폴링 주파수 및 기결정된 샘플링 지속시간은 모바일 장치의 이동 거리에 의해 적어도 부분적으로 결정된다. 다른 특정 실시예로, 기결정된 샘플링 지속시간은 모바일 장치가 정지되어 있는지 또는 움직이고 있는지 여부에 따라 적어도 부분적으로 조정될 수 있다. 단계 420에서, 서버는 기결정된 샘플링 지속시간 이후 모바일 장치로부터 위치 데이터를 수신하며, 이 시점에서 방법은 종료할 수 있다. 위치 데이터는 전송 신호에 응답한다. 특정 실시예로, 단계 410 내지 단계 420은 회귀적으로 반복된다. 비록 본 명세서는 특정 순서로 발생하는 것으로서 도 4의 방법의 특정 단계를 설명하고 도시하지만, 본 명세서는 임의의 적절한 순서로 발생하는 도 4의 방법의 임의의 적절한 단계를 고려한다. 게다가, 비록 본 명세서는 도 4의 방법의 특정 단계를 수행하는 특정 컴포넌트를 설명하고 도시하지만, 본 명세서는 도 4의 방법의 임의의 적절한 단계를 수행하는 임의의 적절한 컴포넌트의 임의의 적절한 조합을 고려한다. 배경 위치 업데이트는 본 명세서에 참조로 통합되고 2013년 2월 6일자로 출원된 미국특허출원공개 제2013/0331119호에서 더 설명된다.
인접 친구들(Nearby Friends)
특정 실시예로, 소셜 네트워킹 시스템(160)은 제1 사용자 및 한 명 이상의 제2 사용자의 위치를 결정할 수 있고, 이때 제1 사용자와 관련된 소셜 그래프(200)의 사용자 노드(202)는 제2 사용자와 관련된 사용자 노드(202)와 연결된다. 이후, 소셜 네트워킹 시스템(160)은 제1 사용자가 한 명 이상의 제2 사용자의 위치를 통보받는 것에 관심이 있는지를 결정할 수 있다. 온라인 소셜 네트워크의 사용자는 또 다른 사용자가 근처에 있을 때 통보받고자 할 수 있고, 이는 직접 만나거나, 함께 어울리는 등을 용이하게 할 수 있다. 이런 알림은 다양한 알림 규칙이 만족되면 사용자의 모바일 클라이언트 시스템(130)으로 푸시될 수 있다. 또한, 사용자는 예컨대 온라인 소셜 네트워크에 액세스하고 (예컨대, "Friends Nearby"를 참조하는 사용자-카드에서) 한 명 이상의 인접 사용자를 참조하는 페이지를 검토함으로써 인접 사용자의 목록에 액세스할 수 있다. 알림을 송신하는지 여부를 결정하고 페이지에서 참조하는 기준이 상이할 수 있다. 특정 실시예로, 제1 사용자가 관심이 있는지 여부의 결정은 제1 사용자와 제2 사용자의 지리적 근접성에 적어도 부분적으로 기반할 수 있다. 소셜 네트워킹 시스템(160)은 제1 사용자가 제1 사용자 근처의 한 명 이상의 제2 사용자에게 통보하면 제1 사용자는 한 명 이상의 제2 사용자와 연락하고 직접 만나고자 할 수 있다고 결정할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 제1 사용자가 한 명 이상의 제2 사용자와 만나도록 장려하기 위해 제1 사용자에게 알림을 송신할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 제1 사용자의 감지된 위치 및 한 명 이상의 제2 사용자의 감지된 위치 사이의 거리를 결정할 수 있다. 이런 거리는 직선 (절대) 거리, 이동 거리(예컨대, 보행 거리 또는 운행 거리), 다른 적절한 거리, 또는 이들의 임의의 조합일 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 제1 사용자의 위치와 관련된 장소 및 한 명 이상의 제2 사용자의 위치와 관련된 하나 이상의 장소를 결정할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 제1 사용자 및 제2 사용자가 사업체, 빌딩, 명소 또는 이웃의 동일한 장소에 있다고 결정할 수 있다. 또 다른 예로서, 소셜 네트워킹 시스템(160)은 제1 사요자 및 제2 사용자가 사업체, 빌딩, 명소 또는 이웃의 인접하거나 근접한 장소에 있다고 결정할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 제2 사용자가 제1 사용자에 대하여 "인접함(nearby)"으로 분류될 수 있는지를 결정하도록 거리를 계산할 수 있다. 제2 사용자가 제1 사용자의 임계 거리 내에 있다면, 소셜 네트워킹 시스템(160)은 제2 사용자를 "인접함"으로 분류할 수 있다. 특정 실시예로, 제2 사용자가 "인접"해있는지를 결정하기 위한 임계 거리는 다양한 인자에 기반할 수 있다. 예로서 제한 없이, 현재 위치가 그들의 거주지와 근접해있는 제2 사용자와 비교하여 거주지에서 멀리 떨어져 여행중인 제2 사용자에 대하여 임계 거리는 더 높을 수 있다. 예컨대, 제1 사용자가 현재 CA의 Menlo Park에 있다면, CA의 San Jose에 거주하는 제2 사용자에 대한 임계 거리는 1/2마일일 수 있는 한편, NY의 New York에 거주하는 제2 사용자에 대한 임계 거리는 2마일일 수 있으며, 임계 거리는 그 사용자가 그의 거주지에서 현재 더 멀리 있기 때문에 New York으로부터 제2 사용자에 대하여 더 크다. 또 다른 예로서, 제1 사용자와 제2 사용자가 모두 동일한 도시의 거주자라면, 임계 거리는 더 감소될 수 있다. 특정 실시예로, 임계 거리는 제1 사용자와 제2 사용자의 거주지들 사이의 거리로 스케일링할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 증가한 임계 거리를 설정하기 위해 제1 사용자와 제2 사용자의 거주지들 사이의 최소 거리를 결정할 수 있다. 예로서 제한 없이, 임계 거리는 제2 사용자가 제1 사용자로부터 150마일 이상 떨어져 거주한다면 1/2마일의 디폴트 임계 거리로부터 2마일로 증가할 수 있다.
특정 실시예로, 임계 거리는 소셜 그래프(200)에서 제1 사용자에 대하여 제2 사용자의 소셜 친밀성 또는 근접성에 기반하여 조정될 수 있다. 제1 사용자와 1차 연결관계인 2명의 제2 사용자(소셜 그래프(200)에서 제1 사용자에 대응하는 사용자 노드(202)와 하나의 에지(206)로 연결되는 사용자 노드들(202)에 대응하는 사용자들)는 (온라인 소셜 네트워크 내외 모두의 상호작용일 수 있는) 사용자들 사이의 상호작용에 기반하여 서로 다른 소셜 친밀성 또는 근접성을 가질 수 있다. 특정 실시예로, 소셜 그래프에서 더 큰 소셜 친밀성을 가지거나 제1 사용자와 더 근접한 제2 사용자는 증가한 임계 거리를 가질 수 있다. 이를 통해 제1 사용자는 근접한 친구가 그들의 현재 위치 근처 어디에 있는지를 통보받을 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 친구가 1/2마일 떨어져 있는지를 제1 사용자가 알고자 하지만, 근접한 친구가 1마일 떨어져 있는지를 알고자 한다고 결정할 수 있다. 제1 사용자는 이후 근접한 친구와 만나기 위해 1마일을 이동하고자 할 수 있는 반면, 제1 사용자는 "더 적은" 친구에 대하여 1/2마일 이상을 이동하고자 하지 않을 수 있다. 특정 실시예로, 제1 사용자에 대한 제2 사용자의 친밀성이 임계 친밀성 미만이라면, 소셜 네트워킹 시스템(160)은 물리적인 지리적 위치가 매우 가까울지라도 어떤 알림도 송신되지 않아야 한다고 결정할 수 있다.
특정 실시예로, 더 가까운 제2 사용자에 대한 임계 거리는 디폴트 임계 거리로부터 감소될 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 제1 사용자에 대해 가장 큰 친밀성을 가진 제2 사용자도 또한 소셜 네트워크로부터 제1 사용자의 가장 가까운 친구일 수 있다고 결정할 수 있다. 이 예에서, 제1 사용자는 정기적으로 제2 사용자와 상호작용할 수 있어서, 제2 사용자가 1/2마일 내에 있다면 제2 사용자에게 "뉴스거리(newsworthy)"가 아닐 수 있다. 그 대신, 소셜 네트워킹 시스템은 제2 사용자가 "인접"해있다고 결정하기 전에 제2 사용자가 제1 사용자와 동일한 빌딩 또는 동일한 도시 블록에 있다고 결정할 수 있다.
특정 실시예로, 2명 이상의 제2 사용자는 제1 사용자와 동일한 영역에서 함께 이동중일 수 있다. 소셜 네트워킹 시스템(160)은 개별적으로 고려되는 각각의 제2 사용자에 대하여 결정할 수 있는 것보다 2명의 제2 사용자의 조합에 대하여 다른 임계 거리를 결정할 수 있다. 예로서 제한 없이, Alice는 CA의 도시 Palo Alto 내 Umami Burger에 있을 수 있다. 소셜 네트워킹 시스템(160)은 Alice의 친구들 Bob 및 Carol이 각각 1/2마일의 임계 거리를 가진다고 결정했을 수 있다. 이후, Bob 및 Carol은 Umami Burger로부터 대략 1마일에 있는 Stanford Shoppping Center에 함께 도착할 수 있다. 비록 소셜 네트워킹 시스템(160)은 이 상황에서 Bob 또는 Carol 중 하나가 근처에 있었다는 알림을 Alice에게 송신하지 않았을지라도, 소셜 네트워킹 시스템(160)은 Alice에 대한 Bob 및 Carol의 임계 거리가 1마일이라고 결정할 수 있다. 이후, 소셜 네트워킹 시스템(160)은 Bob 및 Carol 모두가 근처에 있다는 알림을 Alice에게 송신할 수 있고, Alice에게 Bob 및 Carol 모두와 만나는 기회를 줄 수 있다. 특정 실시예로, 조정된 임계 거리는 Alice에 대하여 Bob 및 Carol 모두의 소셜 친밀성 또는 근접성을 사용하여 소셜 네트워킹 시스템(160)에 의해 계산될 수 있다. 특정 실시예로, 복수의 제2 사용자의 소셜 친밀성 또는 근접성은 조합된 임계 거리를 계산하도록 서로에 대하여 가중될 수 있다. 상술한 시나리오를 이용한 또 다른 예로서, Bob 및 Carol은 Stanford Shopping Center에 개별적으로 도착했을 수 있다. 어떤 알림도 Bob 또는 Carol 중 하나에 대하여 Alice에게 송신되지 않을 수 있고, 이들의 개별 임계 거리는 Alice와 Bob 또는 Alice와 Carol 사이의 현재 거리 미만이다. 그 대신, Bob은 Carol이 근처에 있다는 알림을 수신한 후 Carol을 만나도록 Carol과 연락할 수 있다. Bob 및 Carol이 Stanford Shopping Center에서 직접 만났다고 소셜 네트워킹 시스템이 결정하면, Alice에 대한 Bob 및 Carol 모두의 임계 거리는 증가할 것이다. Bob 및 Carol이 Alice의 1마일 내에 있다면, 알림은 이후 Alice에게 송신될 것이다.
도 5는 소셜 네트워킹 시스템(160)의 특정 사용자에 대하여 임의의 친구가 근처에 있는지를 결정하는 예시적인 방법을 도시한다. 단계 510에서, 특정 사용자의 현재 위치가 결정된다. 단계 520에서, 특정 사용자의 현재 위치에 기반하여, 임계 거리가 결정될 수 있다. 상술한 바와 같이, 예컨대 특정 사용자가 그들의 집 위치에서 멀리 떨어져 이동중이라면 임계 거리는 변할 수 있다. 단계 530에서, 소셜 네트워킹 시스템(160)은 위치가 소셜 네트워킹 시스템(160)에게도 공지되는 한 명 이상의 다른 사용자들을 결정할 수 있다. 소셜 네트워킹 시스템(160)은 특정 사용자로부터 임계 이격도 내에 있는 소셜 네트워킹 시스템(160)의 사용자들로 다른 사용자들을 제한할 수 있다. 단계 540에서, 소셜 네트워킹 시스템(160)은 현재 위치로부터 임계 거리 내에 있는 적어도 한 명의 다른 사용자가 있는지를 결정할 수 있다. 다른 사용자가 없다면, 프로세스는 종료할 수 있다. 임계 거리 내에 다른 사용자가 있다면, 이후 단계 550에서, 소셜 네트워킹 시스템(160)은 알림 규칙이 특정한 다른 사용자 및 특정 사용자에 대하여 만족되는지를 결정할 수 있다. 알림 규칙이 만족된다면, 이후 단계 560에서, 다른 사용자를 참조하는 알림이 특정 사용자에게 송신된다.
적절한 경우, 특정 실시예는 도 5의 방법의 하나 이상의 단계를 반복할 수 있다. 비록 본 명세서는 특정 순서로 발생하는 것으로서 도 5의 방법의 특정 단계를 설명하고 도시하지만, 본 명세서는 임의의 적절한 순서로 발생하는 도 5의 방법의 임의의 적절한 단계를 고려한다. 게다가, 비록 본 명세서는 도 5의 방법의 특정 단계를 수행하는 특정 컴포넌트, 장치 또는 시스템을 설명하고 도시하지만, 본 명세서는 도 5의 방법의 임의의 적절한 단계를 수행하는 임의의 적절한 컴포넌트, 장치, 장치 또는 시스템의 임의의 적절한 조합을 고려한다.
소셜 네트워킹 시스템(160)은 특정 제2 사용자가 근처에 있다고 알리는 푸시 알림을 제1 사용자의 모바일-클라이언트 시스템(130)으로 송신할 수 있다. 알림은 예컨대 SMS 메시지, MMS 메시지, 이메일 메시지, 배너 알림, 팝-업 알림, 인-앱 알림(예컨대, 주얼 알림(jewel notification)), 클라우드-투-디바이스 알림(예컨대, C2DM 알림), 또 다른 적절한 유형의 알림, 또는 이들의 임의의 조합일 수 있다. 특정 실시예로, 알림은 푸시 알림(push notification)일 수 있다. 푸시 기술은 다양한 상황에서 사용될 수 있다. 예컨대, 클라이언트-서버 환경에서, 서버는 통신을 클라이언트로 푸시할 수 있다. 알림은 푸시 채널을 통해 서버에서 클라이언트로 송신(푸시)될 수 있다. 클라이언트는 네트워크 통신이 가능한 임의의 유형의 전자 장치일 수 있다. 특정 실시예로, 클라이언트는 무선 통신이 가능한 모바일 장치(예컨대, 모바일 전화, 스마트폰, 태블릿 컴퓨터 등)일 수 있고, 서버는 모바일 네트워크 또는 무선 네트워크를 통해 송신되는 통신을 모바일 장치로 푸시할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 사용자의 모바일-클라이언트 시스템(130)과의 통신 거래를 초기화할 수 있고 수신중인 시스템으로부터 승인을 먼저 획득할 필요 없이 알림을 모바일-클라이언트 시스템(130)으로 송신할 수 있다. 즉, 수신중인 장치(또는 장치의 사용자)가 실제로 통신을 수신하고자 하는지 여부의 알림이 수신중인 장치로 "푸시"될 수 있다. 비록 본 명세서는 특정 방식으로 특정 알림을 송신하는 것을 설명하지만, 본 명세서는 임의의 적절한 방식으로 임의의 적절한 알림을 송신하는 것을 고려한다.
도 6은 제1 사용자의 모바일 클라이언트 시스템(130)으로 송신되고 특정 사용자가 근처에 있다고 제1 사용자에게 알리는 예시적인 알림을 도시한다. 특정 실시예로, 제1 사용자는 제1 사용자에게 송신되는 이전의 알림들을 목록화하는 소셜 네트워킹 시스템(160)의 알림 페이지(610)에 액세스할 수 있다. 알림 페이지(610)는 또 다른 사용자가 제1 사용자 근처에 있다는 더 오래된 알림(625)을 디스플레이할 수 있다. 알림(625)은 알림의 연령(age)의 표시를 포함할 수 있다. 특정 실시예로, 알림(625)은 상호작용형 요소(635)를 포함할 수 있다. 제1 사용자가 상호작용형 요소(635)와 상호작용하고, 특정 제2 사용자가 그의 정확한 위치를 제1 사용자와 공유했다면, 소셜 네트워킹 시스템(160)은 알림(625)과 관련된 특정 제2 사용자의 정확한 위치를 제1 사용자에게 제공할 수 있다. 특정 실시예로, 새로운 알림이 제1 사용자에게 송신될 때, 알림은 특정 제2 사용자를 참조하는 팝-업 알림(620)으로서 제1 사용자의 모바일 클라이언트 시스템(130)에 디스플레이될 수 있다. 또한, 팝-업 알림은 제1 사용자가 특정 제2 사용자의 정확한 위치를 열람하게 하도록 동작하는 상호작용형 요소(630)를 포함할 수 있다.
특정 실시예로, 제1 사용자는 한 명 이상의 제2 사용자의 목록을 열람하려는 요청을 소셜 네트워킹 시스템(160)으로 송신할 수 있는데, 이때 목록을 구성하는 제2 사용자들은 그들의 위치에 기반하여 선택된다. 요청은 모바일 클라이언트 시스템(130)의 애플리케이션을 통해 또는 모바일 클라이언트 시스템(130)의 브라우저에 의해 액세스되는 소셜 네트워킹 시스템의 웹페이지를 통해 송신될 수 있다. 소셜 네트워킹 시스템(160)은 디스플레이를 위해 제1 사용자의 모바일 클라이언트 시스템(130)으로 사용자-목록을 송신할 수 있는데, 이때 사용자-목록은 적어도 한 명의 제2 사용자를 각각 포함하는 하나 이상의 사용자-카드(user-cards)를 포함한다. 사용자-카드 및 각각의 사용자-카드를 구성하도록 사용자를 선택하는 결정이 참조로 통합되고 2014년 3월 31일자로 출원된 미국특허출원 제14/231,049호 및 2014년 3월 31일자로 출원된 미국특허출원 제14/231,201호에 더 상세히 기술된다.
도 7은 근처에 있는 한 명 이상의 제2 사용자를 제1 사용자에게 디스플레이하는 예시적인 사용자-목록 디스플레이를 도시한다. 도 7의 예에서, 현재 CA의 San Francisco의 Mission District에 있는 제1 사용자는 "인접 친구들(Nearby Friends)"이란 제목으로 모바일 장치의 소셜 네트워크의 애플리케이션에 디스플레이되는 요소를 선택할 수 있다. 특정 실시예로, 제1 사용자는 웹 브라우저를 통해 요소에 액세스할 수 있다. 요소의 선택에 응답하여, 애플리케이션은 한 명 이상의 제2 사용자의 사용자-목록(700)을 디스플레이할 수 있다. 제2 사용자들은 그들의 현재 위치에 기반하여 클러스터들(710, 720)로 그룹화될 수 있다. 도 7의 예에서, 제2 사용자들의 제1 클러스터(710)는 "인접"해있는 제2 사용자들이라고 일컫는다. 제2 사용자가 "Nearby" 클러스터에 위치할 수 있는지의 결정은 제1 사용자에 대하여 제2 사용자가 그들의 임계 거리 내에 있는지에 기반할 수 있다. 특정 실시예로, 다른 임계 거리는 알림이 송신되어야 하는지를 결정하는데 사용되는 임계 거리보다 제2 사용자가 "Nearby" 클러스터에 있는지를 결정하는데 사용될 수 있다. 각각의 제2 사용자의 현재 위치는 각각의 디스플레이된 제2 사용자 가까이에 디스플레이될 수 있다. 특정 실시예로, 디스플레이된 현재 위치는 특정 제2 사용자의 현재 위치와 관련된 이웃, 명소, 빌딩 또는 장소를 포함할 수 있다. 특정 실시예로, 디스플레이된 현재 위치는 제1 사용자와 특정 제2 사용자가 떨어져 있는 추정 지리적 거리를 포함할 수 있다. 특정 실시예로, 추정 지리적 거리는 제1 사용자 및 특정 제2 사용자의 감지된 현재 위치의 결정된 정확성에 기반할 수 있다. 특정 실시예로, 추정 지리적 거리는 다음의 거리 단위로 반올림될 수 있다. 예로서 제한 없이, 제1 사용자와 1/4마일 내지 1/2마일로 떨어져 있는 모든 제2 사용자는 1/2마일 떨어져 있는 것으로 디스플레이될 수 있다.
특정 실시예로, 제2 사용자의 클러스터(710, 720)는 모바일 장치의 디스플레이에서 쉽게 열람될 수 있는 것보다 더 많은 제2 사용자를 포함할 수 있다. 그래서, 사용자-목록(700)은 각 클러스터에 대한 제2 사용자의 서브세트만을 디스플레이하고, 제1 사용자가 클러스터 내 더 많은 제2 사용자를 열람하도록 선택할 수 있는 상호작용형 요소(750)를 디스플레이할 수 있다. 도 7의 예에서, 3명의 제2 사용자는 "Nearby" 클러스터(710)에 목록화되어 있다. 3번째로 디스플레이된 제2 사용자 아래에 사용자-목록이 "See More(더 보기)" 요소(750)를 디스플레이한다. 특정 실시예로, "See More" 요소(750)를 선택하는 것은 사용자-목록(700) 내 클러스터(710)의 디스플레이를 확장할 수 있다. 특정 실시예로, "See More" 요소(750)의 선택을 통해 애플리케이션 또는 웹 브라우저는 디스플레이하기 위해 더 많은 제2 사용자를 제시하는 새로운 인터페이스를 디스플레이할 수 있다. 새로운 인터페이스는 모바일 클라이언트 장치의 애플리케이션 내 새로운 웹페이지, 새로운 팝-업 윈도우 또는 새로운 사용자-인터페이스일 수 있다.
특정 실시예로, 제2 사용자의 사용자-목록(700)은 제1 사용자에 대한 각각의 제2 사용자의 거리에 기반하여 순서화될 수 있다. 예로서 제한 없이, 사용자-목록(700)은 제1 사용자로부터의 그들의 거리에 의해 제2 사용자들을 순위화할 수 있고, 사용자-목록(700)은 물리적으로 가장 가까운 제2 사용자가 먼저 목록화되고 다음으로 가장 가까운 제2 사용자가 두번째로 목록화되며 동일한 방식으로 계속되도록 제1 사용자에게 제시될 수 있다. 특정 실시예로, 제2 사용자의 위치는 특정 지역 또는 도시와 관련될 수 있다. 이후, 제2 사용자는 그들의 관련 도시에 따라 클러스터링될 수 있다. 이후, 사용자-목록(700)은 제1 사용자로부터 각각의 관련 도시의 거리에 기반하여 제2 사용자의 클러스터들(710, 720)을 순위화할 수 있다. 특정 실시예로, 제1 사용자와 동일하게 떨어져 있는 2개의 도시가 있는 경우, 더 많은 제2 사용자를 포함하는 도시 클러스터는 다른 클러스터보다 더 높게 순위화될 수 있다. 도 7의 예에서, 애플리케이션은 상술한 바와 같이 제2 사용자의 "Nearby" 클러스터(710)를 먼저 디스플레이한다. 그 클러스터 아래에 "In San Francisco, CA"란 제목의 클러스터(720)가 있다. 이런 클러스터(720)는 CA의 San Francisco라는 도시 제한에 대응하는 현재 위치의 제2 사용자들을 포함할 수 있다. 특정 실시예로, 제2 사용자는 "Nearby" 클러스터와 "San Francisco" 클러스터 모두에 배치될 수 있다. 특정 실시예로, 클러스터(710, 720)는 제시하기 위해 순위화될 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 제2 사용자에 대한 가장 높은 순위의 클러스터를 결정한 후, 그 제2 사용자가 임의의 다른 클러스터에 목록화되는 것을 배제할 수 있다. 특정 실시예로, 클러스터는 제1 사용자에 대하여 각각의 클러스터를 구성하는 제2 사용자들의 친밀성에 적어도 부분적으로 기반하여 순위화될 수 있다. 예로서 제한 없이, 10마일 떨어진 도시와 관련되고 제1 사용자에 대하여 높은 소셜 친밀성을 가진 3명의 제2 사용자를 포함하는 도시 클러스터는 단지 5마일 떨어진 도시와 관련되지만 제1 사용자에 대하여 훨씬 더 낮은 친밀성을 가진 제2 사용자를 포함하는 도시 클러스터 앞에 순위화될 수 있다.
알림 규칙
특정 실시예로, 제2 사용자가 제1 사용자에 대하여 "인접"해 있다고 소셜 네트워킹 시스템(160)이 결정하면, 소셜 네트워킹 시스템(160)은 이후 알림 규칙의 세트를 사용하여 제2 사용자가 인접해있다고 알리는 알림이 제1 사용자에게 송신되어야 하는지를 결정할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 특정 제2 사용자가 인접해있는지를 제1 사용자가 알고자 하며 알려진 후 특정 제2 사용자와 만날 가능성이 있다고 소셜 네트워킹 시스템(160)이 결정하는 경우에만 알림을 제1 사용자에게 송신할 수 있다. 이 예에서, 제1 사용자는 그들이 그다지 관심을 가지지 않은 알림을 송신받지 않을 수 있거나, 그들이 추후 제2 사용자와 만나지 않을 시간 및 장소에서 제2 사용자의 알림을 수신하지 않을 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)에 의해 사용되는 하나의 알림 규칙은 특정 제2 사용자의 현재 위치가 그 제2 사용자에 대해 결정된 "핫스팟(hotspot)"에 대응하는지를 결정하는 것일 수 있다. 예로서 제한 없이, 제2 사용자의 핫스팟은 그의 거주지, 그의 학교 및 그의 직장일 수 있다. 제2 사용자가 핫스팟에 있다면, 소셜 네트워킹 시스템(160)은 알림을 제1 사용자에게 송신하지 않기로 결정할 수 있다. 상기 예에서, 제2 사용자가 집, 학교 또는 직장에 있다면, 이는 다른 사용자들과 공유할 "뉴스거리" 이벤트가 아닐 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 제2 사용자가 상대적으로 예외적인 위치에 있을 때에만 알림을 송신할 수 있어서, 제2 사용자의 새로운 위치는 제1 사용자의 관심사일 수 있다. 또 다른 예로서, 제1 사용자는 제2 사용자의 동업자일 수 있다. 제2 사용자가 오전에 직장에 도착하면, 제1 사용자는 이런 이벤트를 통보받는데 관심이 없을 수 있다 - 제1 사용자는 제2 사용자가 근처에 있다고 예상할 수 있다. 반면에, 퇴근 후 제2 사용자가 평소에 가지 않는 장소에 가고 그 장소가 특정 제1 사용자에 대하여 특정 제2 사용자에 대한 임계 거리 내에 있다면, 제1 사용자는 그 시간 및 위치에 그의 동업자가 근처에 있다는 것을 인지하는데 관심이 있을 수 있고, 이후 직접 만나기 위해 제2 사용자에게 연락할 수 있다.
특정 실시예로, 하나의 알림 규칙은 제1 사용자의 현재 위치가 제1 사용자에 대해 결정된 핫스팟에 대응하는지를 결정하는 것일 수 있다. 제1 사용자에 대응하는 핫스팟은 다른 사용자들의 핫스팟들과 중첩하지 않을 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 제1 사용자가 집, 직장 또는 다른 핫스팟에 있을 때 알림이 제1 사용자에게 송신되어야 한다고 결정할 수 있다. 제1 사용자가 집 또는 직장에 있다면, 제1 사용자는 제2 사용자와 만나도록 그의 현재 위치를 떠나고 싶지 않을 수 있거나, 그때 그의 현재 위치를 떠날 수 없을 수 있다. 따라서, 소셜 네트워킹 시스템(160)은 제1 사용자가 핫스팟에 있는 동안 제1 사용자에게 알림을 송신하는 것을 방지할 수 있다.
특정 실시예로, 하나의 알림 규칙은 제1 사용자와 제2 사용자 모두가 정지되어 있다고 결정하는 것일 수 있다. 이는 "drive-by" 알림의 송신을 방지할 수 있는데, 이때 적어도 하나의 사용자는 다른 사용자를 지나가고 있으며 일시적으로 다른 사람과 "인접"해진다. 예로서 제한 없이, 제2 사용자는 예외적인 위치에 있을 수 있고, 제1 사용자에 대하여 1/2마일의 기결정된 임계값을 가질 수 있다. 직장에서 집으로 이동하는 제1 사용자는 그의 통근 중에 제2 사용자의 1/2마일 내에서 지나갈 수 있다. 비록 제2 사용자는 이후 제1 사용자에 "인접"해있더라도, 소셜 네트워킹 시스템(160)은 제1 사용자가 이런 사건을 통보받는데 관심이 없을 수 있다고 결정할 수 있다. 제1 사용자는 그의 목적지에 도착하는데 전념하고 제2 사용자와 만나는데 관심이 없을 수 있거나, 그가 임계 거리 외에 있을 때까지 알림을 보지 않을 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 제1 사용자와 제2 사용자 모두가 시간 구간 동안 각각의 현재 위치에 정지되어 있었다고 결정할 때까지 알림을 송신하지 않을 수 있다. 예로서 제한 없이, 제1 사용자가 제1 위치에 있고 제2 사용자가 추후 제1 사용자에 대하여 그 특정 제2 사용자에 대한 임계 거리 내 제2 위치에 도착하면, 소셜 네트워킹 시스템(160)은 알림을 제1 사용자에게 송신하기 전에 제2 사용자가 5분 동안 제2 위치에 있을 때까지 대기할 수 있다.
특정 실시예로, 제1 사용자에 대한 제2 사용자의 소셜 근접성은 알림 규칙을 결정하는데 사용될 수 있다. 근접성은 소셜 네트워킹 시스템 내외 모두에서 제2 사용자와 제1 사용자의 과거 상호작용에 기반할 수 있다. 예로서 제한 없이, 제2 사용자는 제1 사용자와 동일한 사업체의 장소에 있을 수 있다. 특정 제2 사용자에 대한 임계 거리는 제2 사용자가 제1 사용자에 대하여 "인접"해있다고 결정되도록 할 수 있다. 그러나, 소셜 네트워킹 시스템(160)은 제1 사용자가 보통 이런 특정 제2 사용자와 직접 만나지 않는다고 결정할 수 있다. 제1 사용자는 이런 특정 제2 사용자가 오직 "지인(acquaintance)"이며 "친구"가 아니라고 소셜 네트워킹 시스템(160)에게 표시했을 수 있다. 상기 상황들 중 하나에서, 소셜 네트워킹 시스템(160)은 특정 제2 사용자가 인접했을지라도 어떤 알림도 송신되어야 한다고 결정할 수 있다. 특정 실시예로, 임계 소셜 근접성 또는 친밀성은 알림을 송신하는데 필요할 수 있다. 이런 소셜 근접성 또는 친밀성은 제1 사용자와 제2 사용자 사이의 실제-세계 상호작용에 기반할 수 있다. 예로서 제한 없이, 제1 사용자 Alice는 제1 위치에 있고, 제2 사용자들 Bob 및 Carol은 제1 위치에 인접해있을 수 있다. Bob 및 Carol 모두는 Alice에 대하여 높은 소셜 친밀성을 가질 수 있지만, Bob은 직접 Alice와 더 많이 상호작용했을 수 있는 한편, Alice에 대한 Carol의 높은 친밀성은 소셜 네트워킹 시스템(160)을 통해 Alice와 Carol 사이의 빈번한 통신들의 결과이다. 소셜 네트워킹 시스템(160)은 Bob 및 Carol 모두가 Alice의 가까운 친구들일지라도 Alice는 Bob이 인접해있다고 통보받은 후 그와 직접 만나는데 더 관심이 있을 수 있는 반면, Alice는 Carol이 인접해있다고 통보받더라도 Carol과 직접 만날 가능성이 없을 수 있다고 결정할 수 있다. 이 예에서, 소셜 네트워킹 시스템(160)은 단지 Bob이 인접해있다는 알림만을 Alice로 송신할 수 있고, Carol에 관한 어떤 알림도 송신하지 않을 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 알림이 제1 사용자에 대해 동일한 제2 사용자에 대하여 이전의 시간 구간 내에 송신되었다면 새로운 알림이 송신되지 않을 것이라는 알림 규칙을 사용할 수 있다. 예로서 제한 없이, 알림이 특정 제2 사용자에 대해 최근 24시간 내에 송신되었다면, 이후 그 동일한 제2 사용자가 제1 사용자에 다시 인접해있다면, 새로운 알림은 송신되지 않을 것이다. 소셜 네트워킹 시스템(160)은 또 다른 알림이 최근 송신되었다면 제1 사용자가 알림에 관심이 더 적을 것이라고 결정할 수 있다. 특정 실시예로, 알림이 최근 송신되었지만 제1 사용자가 추후 제2 사용자와 만날 수 없었다면, 소셜 네트워킹 시스템(160)은 제2 알림이 송신되어야 한다고 결정하여 제1 사용자에게 제2 사용자와 만날 또 다른 기회를 제공할 수 있다.
특정 실시예로, 하나의 알림 규칙은 제1 사용자 및 인접한 제2 사용자가 최근 함께 있지 않았다는 것일 수 있다. 소셜 네트워킹 시스템(160)은 제1 사용자와 제2 사용자의 위치 이력을 사용하여 그들이 최근 동일한 위치에 있었는지 또는 소셜 네트워킹 시스템(160)에 의해 기록되었던 제1 사용자와 제2 사용자 사이의 임의의 상호작용이 있었는지를 결정하고 제1 사용자와 제2 사용자가 최근 만났음을 표시할 수 있다. 예로서 제한 없이, 제1 사용자와 제2 사용자 사이의 상호작용은 소셜 네트워크에 게시된 동일한 컨텐츠에 최근 태그되는 것, 동일한 이벤트에 참여했던 것 또는 동일한 시기에 동일한 위치에 체크인되는 것을 포함할 수 있다. 소셜 네트워킹 시스템(160)은 제1 사용자에 대하여 제2 사용자에 대한 임계 시간 구간을 결정할 수 있는데, 이때 시간 구간 내 최근 만남의 표시의 결과로 알림이 송신되지 않을 것이다. 특정 실시예로, 임계 시간 구간은 소셜 네트워킹 시스템에서 제1 사용자에 대한 제2 사용자의 친밀성, 제1 사용자와 제2 사용자 사이의 상호작용 이력, 또는 제1 사용자나 제2 사용자에 대한 다른 직접 만남의 빈도에 기반할 수 있다. 특정 실시예로, 제1 사용자 또는 제2 사용자가 (예컨대, 집으로부터 150마일 초과하여) 이동중이라면 또는 제1 사용자와 제2 사용자가 함께 이동중(예컨대, 두 사용자 모두 집으로부터 150마일 초과해있고, 그들의 위치 이력이 시간 구간 동안 매우 유사했었음)이라면, 다른 임계 시간 구간이 사용될 수 있다.
특정 실시예로, 하나의 알림 규칙은 제2 사용자가 인접해있음을 제1 사용자가 이미 알고 있다고 소셜 네트워킹 시스템(160)이 결정하면 제1 사용자에게 알림을 송신하지 않는 것을 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 제1 사용자와 제2 사용자가 함께 이동중이며 따라서 다른 사용자가 어디에 있는지 알려고 하는지를 고려할 수 있다. 또 다른 예로서, 소셜 네트워킹 시스템(160)은 가령 텍스트 메시지, 음성 호출, 이메일, 소셜 네트워킹 시스템(160)의 게시물이나 코멘트, 또는 소셜 네트워킹 시스템(160)에 의해 감지가능한 통신의 다른 수단과 같은 제1 사용자와 제2 사용자 사이의 이전의 상호작용을 인지할 수 있다. 제1 사용자와 제2 사용자 사이의 통신의 최근 증가는 그들의 현재 서로 간의 근접성이 의도적이었고 그들이 서로 근처에 있음을 인지하고 있다고 표시할 수 있다.
특정 실시예로, 하나의 알림 규칙은 제1 사용자 또는 제2 사용자에 대한 최근 위치 이력이 이용가능하지 않다면 알림을 송신하지 않는 것일 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 제1 사용자가 CA의 San Francisco의 Dolores Park에 있다고 인지할 수 있다. 소셜 네트워킹 시스템(160)은 제1 사용자가 그의 집으로부터 1시간 전에 Dolores Park에 도착했고 지난 한 시간 동안 계속 Dolores Park에 있었음을 표시하는 제1 사용자의 위치 이력을 가질 수 있다. 반면에, 소셜 네트워킹 시스템(160)은 지난 한 시간 동안 임의의 위치 이력 정보 없이 Dolores Park에서 또한 제2 사용자를 감지할 수 있다. 제2 사용자가 어디에 있었는지를 모르면, 소셜 네트워킹 시스템(160)은 제2 사용자가 단지 Dolores Park를 지나서 이동중이고 머무를 의도 없이 잠깐 멈춰 있는지 또는 현재 위치가 심지어 정확한지를 결정할 수 없을 수 있다. 현재 위치까지 이르는 제2 사용자의 과거 위치들의 몇몇 표시가 없다면, 소셜 네트워킹 시스템(160)은 제1 사용자에게 알림을 송신하는 것이 제1 사용자와 제2 사용자가 직접 만나게 할 가능성이 없다고 결정할 수 있다. 이런 결정이 이루어지면, 알림은 송신되지 않을 것이다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 위치 이력에 대한 임계 시간 구간을 결정할 수 있는데, 이때 제1 사용자 또는 제2 사용자 중 하나가 이전의 시간 구간 동안 일관된 위치 이력을 가지지 않는다면, 소셜 네트워킹 시스템(160)은 알림을 송신하지 않을 것이다.
특정 실시예로, 어떤 알림 규칙도 만족되지 않는다면, 소셜 네트워킹 시스템(160)은 알림을 송신하지 않기로 결정할 수 있다. 특정 실시예로, 알림 규칙 세트로 구성된 알림 규칙은 가중될 수 있고 가중된 점수는 각각의 알림 규칙과 관련된다. 소셜 네트워킹 시스템(160)은 제1 사용자에게 송신될 알림을 송신하기 위해 임계 점수를 초과해야 함을 요구할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 weak AND(WAND) 또는 strong OR(SOR) 기능을 사용하여 하나 이상의 알림 규칙이 만족되지 않더라도 알림이 송신되어야 하는지를 결정할 수 있다. 특정 실시예로, 제2 사용자가 제1 사용자의 임계 거리 내로 진입하는 경우, 소셜 네트워킹 시스템(160)은 알림 규칙의 세트를 한번 체크할 수 있다. 알림 규칙이 만족되지 않고 알림 규칙이 송신되지 않는다면, 소셜 네트워킹 시스템은 알림 규칙의 세트를 다시 체크하지 않을 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 알림이 그 시점에 송신되어야 하는지를 결정하기 위해 제1 및 제2 사용자들에 대한 알림 규칙의 세트를 주기적으로 업데이트할 수 있다. 또한, 소셜 네트워킹 시스템(160)은 제1 사용자 또는 제2 사용자에 대한 위치 업데이트의 수신에 응답하여 알림 규칙의 세트를 다시 체크할 수 있다. 비록 본 명세서는 알림이 수신되어야 하는지를 결정하는 특정 방법을 사용하는 알림 규칙을 설명하지만, 본 명세서는 사용자가 알림에 관심이 있고 추후 알림에 기반하여 행동할 것인지를 결정하는 임의의 적절한 방법이나 방법들의 조합을 사용하는 알림 규칙의 세트를 고려한다.
활동 로그
소셜 네트워킹 시스템(160)은 사용자와 관련된 위치 이력을 포함하는 데이터베이스를 포함할 수 있다. 데이터베이스는 각 사용자에 대한 별도의 위치 이력을 포함할 수 있다. 위치 이력은 하나 이상의 위치 업데이트를 포함할 수 있고, 각각의 위치 업데이트는 위치를 소셜 네트워킹 시스템(160)으로 송신하는 사용자의 모바일 클라이언트 시스템(130)의 각각의 인스턴스를 나타낸다. 위치 이력은 다른 소스들을 통해 결정되는 사용자의 위치를 포함할 수 있다. 예로서 제한 없이, 사용자의 모바일 클라이언트 시스템(130)이 특정 시점에 특정 위치를 보고하지 않았을지라도, 위치 이력은 그 시점에 그 위치에서 체크인하는 사용자로부터 도출된 위치 및 시간 엔트리를 포함할 수 있다. 시간 및 위치 정보를 제공하는 다른 예는 사용자가 사진이 찍힌 시간 및 위치에 관한 메타데이터를 포함하는 사진에 태그되는 것을 포함할 수 있다. 사용자는 사진 및 관련 메타데이터가 소셜 네트워킹 시스템(160)으로 업데이트된 시간보다 나중에 태그될 수 있고, 위치 이력은 적절한 시간 슬롯 내 태그에 기반하여 새로운 위치를 업데이트할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 사용자의 체크인 활동이나 태그를 통해 제공되는 위치 업데이트와 동일하게 배경 위치 서비스를 통해 결정되는 위치 업데이트에 가중치를 부여할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 배경 위치 업데이트보다 더 크게 사용자의 체크인 활동이나 태그에 가중치를 부여할 수 있다. 예로서 제한 없이, 사용자가 CA의 San Francisco의 4th St. 및 King St.의 Caltrain Station에 있지만 Caltrain Station에서 2블록 떨어진 AT&T Park로 체크인한다고 특정 사용자에 대한 위치 업데이트가 표시하면, 소셜 네트워킹 시스템(160)은 배경 위치 업데이트에 오류가 있다고 결정하며, 배경 위치 업데이트를 무시하고, 그 시점에 사용자의 위치가 실제로 AT&T Park라고 결정할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 위치 이력을 위치 업데이트의 세트로 저장할 수 있고, 각각의 위치 업데이트는 지리적 좌표 및 지리적 좌표와 관련된 시간 스탬프를 포함한다. 특정 실시예로, 위치 업데이트와 관련된 시간 스탬프는 위치 업데이트의 시간과 다음의 업데이트의 시간 사이의 시간 범위일 수 있다. 예로서 제한 없이, 사용자가 제1 위치로부터 오전 8:00의 제1 위치 업데이트를 송신한 후, 제2 위치로부터 오전 8:15의 위치 업데이트를 송신한다면, 소셜 네트워킹 시스템(160)은 제1 사용자가 오전 8:00에서 오전 8:15까지 제1 위치에 있다고 기록할 수 있다. 특정 실시예로, 제1 사용자가 다수의 위치 업데이트에 대하여 정지되어 있었다면, 소셜 네트워킹 시스템(160)은 사용자가 정지되어 있었던 시간 범위에 대하여 다수의 위치 업데이트를 하나의 위치 업데이트로 결합할 수 있다. 예로서 제한 없이, 사용자가 오전 8:15에서 오후 8:00까지 제2 위치로부터 15분마다 위치 업데이트를 계속 송신한다면, 소셜 네트워킹 시스템(160)은 다수의 엔트리를 오전 8:15 내지 오후 8:00의 시간 스탬프에서 제2 위치로부터 하나의 위치 업데이트로 통합할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 각각의 위치를 그 지리적 좌표로 기록할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 하나 이상의 지리적 좌표와 관련된 하나 이상의 장소를 결정할 수 있다. 예로서 제한 없이, 사용자의 위치 이력의 위치 업데이트의 세트에 대하여, 소셜 네트워킹 시스템(160)은 3개의 지리적 좌표 세트를 결정할 수 있다. 소셜 네트워킹 시스템(160)은 소셜 네트워킹 시스템(160)에 알려진 장소 맵핑 정보에 기반하여 제1 좌표 세트가 CA의 Palo Alto의 Stanford Shopping Center에 대응한다고 추가로 결정할 수 있다. 제2 좌표 세트에 대하여, 소셜 네트워킹 시스템(160)은 AT&T Park와 함께 동시에 태그되는 사진에 태그되는 사용자에 기반하여 사용자가 CA의 San Francisco의 AT&T Park에 있다고 결정할 수 있다. 제3 좌표 세트에 대하여, 소셜 네트워킹 시스템(160)은 공항으로 체크인하는 사용자에 기반하여 사용자가 San Francisco International Airport에 있다고 결정할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 사용자의 위치 이력에서 각각의 위치 업데이트에 대한 지리적 좌표와 해당 장소 모두를 저장할 수 있다. 특정 실시예로, 사용자가 소셜 네트워킹 시스템(160)을 통해 그 위치 이력을 열람하고자 한다면, 소셜 네트워킹 시스템(160)은 지리적 좌표 대신에 사용자가 있었던 장소를 사용자에게 제공할 수 있다.
특정 실시예로, 특정 사용자의 위치 이력은 사용자의 최근 위치 이력이 소셜 네트워킹 시스템(160)으로 공지되어 있는지를 결정하는데 사용될 수 있다. 상술한 바와 같이, 최근 위치 이력이 공지되어 있지 않다면, 알림 규칙은 사용자가 알림을 수신하지 않거나 그 사용자의 위치가 알림으로써 다른 사용자들에게 송신되지 않을 수 있다고 결정할 수 있다.
도 8은 활동 로그를 열람하는 소셜 네트워킹 시스템(160)의 사용자에 대한 예시적인 인터페이스를 도시한다. 특정 실시예로, 사용자는 소셜 네트워킹 시스템(160)에 의해 저장되는 그 사용자에 대한 위치 이력을 보고자 할 수 있다. 소셜 네트워킹 시스템(160)은 그 특정 사용자의 활동 로그를 디스플레이할 수 있다. 특정 실시예로, 활동 로그는 시간 구간에 의해 조직화될 수 있고, 제1 섹션(810)은 가장 최근의 시간 구간 내 사용자의 위치를 포함한다. 예로서 제한 없이, 활동 로그는 일, 주, 2주, 월 또는 년으로 분할될 수 있다. 각각의 시간 구간은 그 시간 구간 내 사용자의 위치가 표시되는 맵을 포함할 수 있다. 특정 실시예로, 사용자는 더 상세히 그들의 활동을 열람하도록 시간 구간(820)과 상호작용할 수 있다. 예컨대, 사용자가 지난주 동안 그들의 활동을 보여주는 시간 구간 세그먼트를 클릭한다면, 인터페이스는 각각의 날로 분할된 지난주의 사용자의 활동을 디스플레이하도록 변할 수 있다. 특정 실시예로, 사용자는 맵(830)의 표시와 상호작용할 수 있다. 이후, 맵은 사용자가 특정 표시에서 감지되었던 시간을 디스플레이할 수 있다.
특정 실시예로, 사용자는 그들의 활동 로그 내 하나 이상의 위치 이력 엔트리를 삭제할 수 있다. 활동 로그로부터 위치와 시간을 삭제하는 것은 또한 소셜 네트워킹 시스템(160)의 데이터베이스로부터 그 엔트리를 삭제할 수 있다. 특정 실시예로, 사용자는 특정 시간 또는 그들의 전체 활동 로그에 대한 그들의 위치 이력을 삭제하는 옵션을 제시받을 수 있다. 특정 실시예로, 사용자는 위치 이력 기능을 비활성화하는 옵션을 가질 수 있다. 이는 소셜 네트워킹 시스템(160)이 그들의 현재 위치에서 벗어난 사용자의 위치를 저장하지 않을 수 있음을 의미한다. 특정 실시예로, 위치 이력 및 활동 로그를 비활성화하는 것은 인접 친구 알림 기능을 비활성화할 수 있다. 예로서 제한 없이, 최근 위치 이력이 위치 알림을 수신하거나 송신하도록 만족되어야 하는 알림 규칙이라면, 활동 로그를 비활성화하는 것은 소셜 네트워킹 시스템(160)이 그 사용자에 대한 위치 이력을 저장하지 않을 수 있음을 의미할 것이다. 사용자의 최근 위치 이력은 공지되어 있지 않기 때문에, 알림 규칙은 만족되지 않고, 알림은 송신되거나 수신되지 않을 것이다.
정확한 위치 알림의 공유
특정 실시예로, 소셜 네트워킹 시스템(160)의 사용자는 특정 위치에 있을 수 있고, 다른 사용자들을 초대하여 그 위치에서 그를 만나고자 할 수 있다. 어떤 다른 사용자들을 초대할지를 스스로 결정하는 대신에, 사용자는 한 명 이상의 다른 사용자들의 그룹으로 알림을 송신하도록 적극적으로 선택할 수 있는데, 이때 다른 사용자들은 그들이 쉽게 직접 만날 정도로 충분히 가깝다고 소셜 네트워킹 시스템(160)이 결정한 경우에만 알림을 열람할 것이다.
특정 실시예로, 소셜 네트워킹 시스템(160)의 제2 사용자는 한 명 이상의 제2 사용자에게 그들의 정확한 현재 위치를 적극적으로 통보할 수 있다. 예로서 제한 없이, 제2 사용자는 예외적인 위치에 있을 수 있고 제1 사용자들이 제2 사용자와 합류할 수 있도록 그 사실을 제1 사용자들과 공유하고자 할 수 있다. 특정 실시예로, 제2 사용자는 제1 사용자들의 현재 위치들에 관계없이 모든 선택된 제1 사용자들에게 알림을 송신하도록 선택할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 특정한 선택된 제1 사용자가 특정한 선택된 제1 사용자에 대하여 제2 사용자에 대한 임계 거리 내에 있는지를 결정할 수 있다. 특정한 선택된 제1 사용자가 임계 거리 내에 있다면, 알림이 송신될 수 있다. 특정한 선택된 제1 사용자가 임계 거리 내에 있지 않다면, 소셜 네트워킹 시스템(160)은 알림이 현재 시간에 송신되지 않아야 한다고 결정할 수 있다. 그러나, 제1 사용자 또는 제2 사용자가 그들의 이격이 그들의 임계 거리 미만이도록 추후 이동하고, 알림이 만료되지 않았다면, 알림은 그때 송신될 수 있다. 특정 실시예로, 제2 사용자는 그녀가 현재 핫스팟에 있을지라도 그녀의 위치의 알림의 송신을 요청할 수 있다. 소셜 네트워킹 시스템(160)은 이 경우 제2 사용자의 핫스팟에 관한 알림 규칙을 무시하고 특정 알림 규칙을 만족하지 않더라도 알림을 송신할 수 있다.
특정 실시예로, 제2 사용자는 그들의 정확한 위치가 선택된 제1 사용자들에게 보이게 될 시간 구간을 선택할 수 있다. 예로서 제한 없이, 제2 사용자는 그들이 다음의 3시간 동안 현재 위치에 있을 것이라고 결정할 수 있고, 이후 다음의 3시간 동안 그들의 정확한 위치를 공유하도록 선택할 수 있다. 특정 실시예로, 이런 3시간 동안의 어떤 시점에 선택된 제1 사용자가 제2 사용자의 정확한 위치를 보고자 한다면, 그들은 제2 사용자의 가장 최근 공지된 위치인 제2 사용자의 정확한 위치를 디스플레이할 그들의 모바일 클라이언트 시스템(130)의 옵션을 선택할 수 있다. 특정 실시예로, 제2 사용자는 위치 알림에 컨텐츠를 첨부할 수 있다.
특정 실시예로, 제2 사용자는 알림에 컨텐츠를 첨부할 수 있다. 예로서 제한 없이, 컨텐츠는 텍스트 메시지, 상태 업데이트, 게시물, 사진, 비디오, 오디오 녹음, 또는 소셜 네트워킹 시스템(160)을 통해 송신될 수 있는 임의의 다른 유형의 컨텐츠일 수 있다.
특정 실시예로, 제2 사용자는 소셜 네트워킹 시스템(160)을 참조하는 웹 브라우저 또는 애플리케이션 인터페이스에서 상호작용형 요소를 선택함으로써 그의 정확한 위치를 송신할 수 있다. 예로서 제한 없이, 제2 사용자는 메신저 애플리케이션을 사용하여 제2 사용자와 복수의 제1 사용자 사이의 메시지를 송신할 수 있다. 제2 사용자는 제2 사용자의 정확한 위치를 제1 사용자들에게 알리는 메시지를 제1 사용자들에게 송신하는 메시징 애플리케이션의 버튼을 선택할 수 있다. 특정 실시예로, 정확한 위치는 맵을 묘사하는 이미지로서 제1 사용자들에게 송신될 수 있다. 특정 실시예로, 정확한 위치는 메신저 애플리케이션 내 다른 상호작용형 요소를 통해 송신될 수 있다. 제1 사용자들이 상호작용형 요소를 추후 선택한다면, 그들은 소셜 네트워킹 시스템(160)을 참조하는 웹페이지 또는 애플리케이션의 맵 인터페이스에서 제2 사용자의 정확한 위치를 열람할 수 있다.
도 9는 제2 사용자가 그들의 위치를 소셜 네트워킹 시스템(160)의 다른 사용자들과 공유하는 예시적인 인터페이스를 도시한다. 제2 사용자는 그의 정확한 위치를 공유하도록 그의 모바일 클라이언트 시스템(130)의 위치-공유 인터페이스(910)에 액세스할 수 있다. 위치-공유 인터페이스(910)는 소셜 네트워킹 시스템(160)의 한 명 이상의 다른 사용자들과 그의 정확한 위치를 공유하는 시간 구간을 특정하도록 제2 사용자에 대한 설정(920)을 포함할 수 있다. 또한, 도 9의 예에서, 위치-공유 인터페이스(910)는 제2 사용자가 예컨대 제2 사용자의 정확한 위치의 수신자에게 송신될 텍스트와 같은 컨텐츠를 그의 정확한 위치의 공유에 추가하는 상호작용형 요소(930)를 포함할 수 있다. 특정 실시예로, (도 9의 예에 도시되어 있지 않지만) 제2 사용자는 설정(920)에 의해 특정된 시간 구간 동안 제2 사용자의 정확한 위치에 액세스하도록 인증된 한 명의 사용자들을 특정할 수 있다.
위치 알림의 수신
특정 실시예로, 수신중인 사용자는 그에게 송신중인 사용자가 인접해있다고 알리는 알림을 그의 모바일 클라이언트 시스템(130)에서 소셜 네트워킹 시스템(160)으로부터 수신할 수 있다. 이후, 수신중인 사용자는 송신중인 사용자의 정확한 위치가 알려져 있는지 또는 송신중인 사용자의 적어도 하나의 위치를 더 결정하도록 알림과 상호작용할 수 있다. 또한, 수신중인 사용자는 수신중인 사용자가 그들의 위치를 열람하게 해주었던 모든 그의 친구들의 목록을 볼 수 있다. 친구들은 가장 가까운 친구들에 대한 근접성에 의해 그룹화될 수 있다; 다른 그룹들은 특정 도시 내 모든 친구들을 포함할 수 있는데, 이때 도시들은 사용자로부터의 현재 거리에 의한 순위 순서로 디스플레이될 수 있다.
특정 실시예로, 특정 제2 사용자의 알림을 수신하는 제1 사용자는 그들이 특정 알림에 관심이 없다고 표시할 수 있다. 예로서 제한 없이, 제1 사용자는 특정 제2 사용자에 대하여 통보받는 것, 또는 특정 시간이나 날짜에 통보받는 것, 또는 알림이 수신되었을 때 제1 사용자가 있었던 특정 위치에서 통보받는 것에 관심이 없을 수 있다. 특정 실시예로, 제1 사용자는 사용자-목록에서 알림이나 엔트리를 말소(x-out)할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 사용자의 입력을 기록하고 사용자 입력에 따라 알림 규칙을 조정할 수 있다. 예로서 제한 없이, 제1 사용자가 특정 제2 사용자에 대하여 통보받는 것에 관심이 없다고 표시하면, 소셜 네트워킹 시스템(160)은 그 특정 제2 사용자에 대한 임계 거리를 감소시키거나, 특정 제2 사용자가 완전히 제1 사용자에게 알려질 자격이 없도록 만들 수 있다.
도 10은 소셜 네트워킹 시스템(160)에서 또 다른 사용자의 정확한 위치를 열람하기 위한 예시적인 인터페이스를 도시한다. 특정 실시예로, 특정한 인접 제2 사용자의 알림(1030)을 수신하는 제1 사용자는 그 제2 사용자의 정확한 위치를 열람하도록 인증되었을 수 있다. 이후, 제1 사용자는 제2 사용자의 현재 위치(1020)의 맵(1010)을 열람하도록 알림(1030)과 상호작용할 수 있다. 특정 실시예로, 맵 뷰(1010)은 제1 사용자(1025)의 현재 위치를 더 포함할 수 있다. 특정 실시예로, 맵 뷰(map view)는 또한 최근 위치 업데이트의 시간을 표시하는 제2 사용자의 위치에 대한 시간 스탬프(1035)를 포함할 수 있다. 특정 실시예로, 제1 사용자는 맵 뷰(1010)로부터 메시지를 제2 사용자에게 다시 송신하도록 상호작용형 요소(1040)를 선택할 수 있다. 예로서 제한 없이, 제1 사용자는 제2 사용자에게 "On my way!(가는 중!)"이라는 메시지를 송신할 수 있다. 특정 실시예로, 제1 사용자는 제1 사용자가 인접해있다고 제2 사용자에게 알리도록 특정 제2 사용자의 알림(1030) 내 상호작용형 요소(1050)를 선택할 수 있다. 예로서 제한 없이, 제1 사용자는 제1 사용자가 그의 정확한 위치를 제2 사용자와 공유하게 할 수 있는 알림(1030)의 버튼(1050)을 선택할 수 있다. 이후, 제2 사용자는 제1 사용자의 정확한 위치를 공유하고 제1 사용자가 있는 곳으로 가도록 인증될 수 있다. 특정 실시예로, 제1 사용자는 초기의 알림이 제2 사용자의 정확한 위치를 포함하지 않았을지라도 그의 정ㅇ확한 위치를 공유할 수 있다.
전력 관리
특정 실시예로, 모바일 클라이언트 시스템(130)은 그의 정확한 위치를 소셜 네트워킹 시스템(160)으로 계속 보고중일 수 있다. 특정 실시예로, 모바일 클라이언트 시스템(130)은 위치 업데이트를 제공하도록 소셜 네트워킹 시스템(160)과의 연속적인 네트워크 연결을 관리할 수 있다. 이는 모바일 클라이언트 시스템(130)의 전원의 상당한 누수(drain)를 생성할 수 있다. 특정 실시예로, 모바일 클라이언트 시스템(130)은 위치 업데이트를 송신하도록 소셜 네트워킹 시스템(160)과의 새로운 연결을 확립한 후, 위치 업데이트가 송신되었다면 그 연결을 폐쇄할 수 있다. 또한, 소셜 네트워킹 시스템과의 빈번한 연결 및 차단은 모바일 클라이언트 시스템(130)에 대한 상당한 전력 누수를 생성할 수 있다.
특정 실시예로, 모바일 클라이언트 시스템(130)은 모바일 클라이언트 시스템(130)이 이동중이거나 정지되어 있는지를 결정하는 것에 기반하여 그의 현재 위치를 결정하기 위한 다른 방법들을 사용할 수 있다. 특정 실시예로, 모바일 클라이언트 시스템(130)은 모바일 클라이언트 시스템(130)이 그의 방위 및 동작을 감지하게 할 수 있는 하나 이상의 가속도계 또는 자이로스코프를 탑재할 수 있다. 예로서 제한 없이, 모바일 클라이언트 시스템(130)은 모바일 클라이언트 시스템이 정지되어 있거나, 예컨대 도보 속도로 매우 천천히 움직이고 있다고 결정할 수 있다. 이후, 모바일 클라이언트 시스템(130)은 가령 Wi-Fi 위치결정 또는 셀 타워 삼각측량과 같이 많은 전기를 소비하지 않는 위치 결정 방법에 의존할 수 있다. 반면에, 모바일 클라이언트 시스템(130)이 예컨대 고속도로 운행 속도와 같은 상대적으로 고속으로 이동중이라고 결정하면, Wi-Fi 위치결정이나 셀 타워 삼각측량과 같은 방법은 정확하지 않을 수 있다. 이 경우, 모바일 클라이언트 시스템(130)은 GPS 위치결정을 사용하여 추가의 전력 비용으로 그의 위치를 더 정확히 결정할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)의 사용자의 모바일 클라이언트 시스템(130)은 모바일 클라이언트 시스템(130)이 그의 현재 위치를 결정할 때마다 그의 현재 위치를 소셜 네트워킹 시스템(160)으로 송신할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)의 사용자들에 대한 모바일 클라이언트 시스템(130)은 그의 위치를 소셜 네트워킹 시스템(160)으로 송신하도록 결정하기 위한 하나 이상의 기준을 포함할 수 있다. 예로서 제한 없이, 모바일 클라이언트 시스템(130)은 모바일 클라이언트 시스템(130)이 그의 위치를 매분 결정하고 있을지라도 15분마다 그의 위치를 소셜 네트워킹 시스템(160)으로 송신할 수 있다. 위치 업데이트를 소셜 네트워킹 시스템(160)으로 송신하는 빈도를 감소시키는 것은 모바일 클라이언트 시스템(130)에 의해 사용되는 총 대역폭을 감소시킬 수 있다. 또한, 위치 업데이트의 빈도의 감소는 모바일 클라이언트 시스템(130)의 배터리 수명을 보존할 수 있다.
특정 실시예로, 모바일 장치의 사용자는 그의 현재 위치를 다른 사용자들과 공유하도록 선택했을 수 있다. 현재 위치는 다른 사용자들로의 알림으로서, 소셜 네트워킹 시스템을 참조하는 또 다른 애플리케이션 내에서, 또는 소셜 네트워킹 시스템(160)의 사용자 인터페이스를 통해 송신될 수 있다. 다른 사용자가 공유중인 사용자의 현재 위치를 열람하도록 요청하면, 소셜 네트워킹 시스템(160)은 공유중인 사용자로부터 마지막의 위치 업데이터의 연령을 볼 수 있다. 마지막 업데이트가 최근이라면, 소셜 네트워킹 시스템(160)은 마지막으로 업데이트된 위치를 다른 사용자에게 송신할 수 있다. 마지막으로 업데이트된 위치가 너무 오래된 것이라면, 다른 사용자의 요청에 의해 위치 서버가 공유중인 사용자의 모바일 장치를 핑하고 더 많은 현재 위치를 획득할 수 있다.
특정 실시예로, 모바일 클라이언트 시스템(130)은 오직 위치 업데이트를 송신할 목적으로 소셜 네트워킹 시스템(160)과의 연결을 확립하지 않을 수 있고 기존의 연결을 통해 위치 업데이트를 소셜 네트워킹 시스템(160)으로 송신하지 않을 수 있다. 예로서 제한 없이, 사용자는 매분 그의 위치를 체크하도록 설정된 그들의 모바일 장치를 가질 수 있다. 그러나, 모바일 장치는 그의 위치를 보고하도록 소셜 네트워크와의 새로운 연결을 오픈하지 않을 것이다. 사용자가 예컨대 소셜 네트워킹 시스템(160)에서 메시지를 송신하는 것과 같은 또 다른 목적으로 장치를 소셜 네트워크로 추후 연결한다면, 모바일 장치는 동일한 연결을 사용하여 위치 업데이트를 소셜 네트워킹 시스템(160)으로 송신할 수 있다.
특정 실시예로, 위치 업데이트가 언제 소셜 네트워킹 시스템(160)으로 송신되어야 하는지에 대한 결정은 소셜 네트워킹 시스템(1600의 위치 서버에 의해 실행될 수 있다. 예로서 제한 없이, 특정 사용자에 대한 위치 업데이트가 이루어져야 한다고 위치 서버가 결정하는 경우, 위치 서버는 그 특정 사용자의 모바일 클라이언트 시스템(130)과의 연결을 초기화할 수 있다. 위치 서버는 모바일 클라이언트 시스템(130)이 새로운 위치 업데이트가 요청되어야 하는지를 결정하는 위치 업데이트를 송신했던 최근 시간을 고려할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 위치 업데이트가 소셜 네트워킹 시스템(160)의 다른 사용자들의 행위에 기반하여 필요하다고 결정할 수 있다. 예로서 제한 없이, 제2 사용자는 1시간 동안 그의 정확한 위치를 제1 사용자와 공유했을 수 있다. 이후, 소셜 네트워킹 시스템(160)은 다음의 30분 동안 위치 업데이트를 요청하지 않을 수 있다. 30분 후, 제1 사용자가 제2 사용자의 현재 정확한 위치를 열람하도록 요청한다면, 소셜 네트워킹 시스템(160)은 이후 요청이 이루어진 시기에 제2 사용자에 대한 위치 업데이트를 요청할 수 있다. 특정 실시예로, 위치 업데이트를 송신하는 결정은 사용자의 모바일 클라이언트 시스템(130)에 의해 실행될 수 있다. 모바일 클라이언트 시스템(130)은 위치 업데이트가 송신되어야 하는지를 결정하도록 모바일 클라이언트 시스템(130)의 상태를 참작할 수 있다. 예로서 제한 없이, 모바일 클라이언트 시스템(130)은 마지막 위치 업데이트가 위치 서버로 송신된 이래로 시스템이 움직이지 않았다면 위치 업데이트를 송신하지 않을 수 있다. 일단 모바일 클라이언트 시스템(130)이 이동중이라고 감지하면, 모바일 클라이언트 시스템은 위치 업데이트를 송신할 수 있다. 또 다른 예로서, 모바일 클라이언트 시스템(130)은 사용자가 최근에 다른 목적으로 소셜 네트워킹 시스템(160)과 연결했는지를 고려할 수 있다. 사용자가 소셜 네트워킹 시스템(160)과의 연결을 적극적으로 확립했다면, 모바일 클라이언트 시스템(130)은 위치 업데이트가 기존의 연결을 사용하여 송신되어야 한다고 결정할 수 있다. 특정 실시예로, 모바일 클라이언트 시스템(130)이 예컨대 고속도로 속도와 같이 매우 빠르게 이동중이라고 결정하면, 모바일 클라이언트 시스템은 위치 업데이트가 그때에 송신되지 않아야 한다고 결정할 수 있다. 모바일 클라이언트 시스템(130)의 사용자가 이런 고속으로 이동중일 가능성이 있고 사용자의 위치의 즉각적인 업데이트가 불필요할 수 있기 때문에, 어떤 알림도 그 사용자에게 송신되지 않을 것이나, 사용자가 이동중이기 때문에 그 사용자를 참조하는 어떤 알림도 송신되지 않을 것이다. 그 대신, 모바일 클라이언트 시스템(130)은 사용자가 목적지에 도달했거나 정지되어 있다고 결정할 때까지 위치 업데이트를 수집할 수 있고, 이후 이동중에 감지되는 모든 위치 업데이트를 소셜 네트워킹 시스템(160)으로 송신할 수 있다.
모바일 클라이언트 시스템에 대한 위치 서비스의 최적화된 전력 이용의 다른 특징들은:
정확한 위치 대신 업데이트용 대략적인 위치에 집중하는 것;
완전히 정확한 위치 이력보다 더 많은 실시간 위치에 집중하는 것;
위치 서버가 모바일 클라이언트 시스템의 운영 시스템 및 모바일 클라이언트 시스템의 하드웨어 능력에 기반하여 다양한 네트워크/위치 조건을 사용할 수 있는 것;
위치 서버가 위치 서버로부터 일정 시간 구간 이후 모든 사용자 또는 사용자들 그룹에 대한 위치 업데이트 조건을 변경할 수 있는 것;
위치 서버가 상수들(constants)의 프로필을 모바일 클라이언트 시스템으로 송신하여 위치 업데이트를 제어할 수 있는 것;
위치 업데이트 요청이 위치 서버에 의해 이루어지는 가속도계/자이로스코프를 위치 업데이트 조건이 사용하지 않을 수 있는 것;
위치 서버가, 송신되는 각각의 메시지에 대한 이론상 실험-기반 전력 사용 수, 모바일 클라이언트 시스템의 각성의 비용, MQTT 킵얼라이브(keepalives)와 동조하는 것 및 모바일 클라이언트 시스템이 고속으로 이동하기를 멈춘 시간을 신속히 감지하는 것(이동중 지연 거리(delay dist)=0)을 포함하는, 위치 업데이트를 위치 서버로 송신하는 전력 사용에 대한 인자들을 고려할 수 있는 것을 포함할 수 있다.
위치 서버는 모바일 클라이언트 시스템의 운영 시스템에 기반하여 다양한 최적화를 사용할 수 있다. 예로서 제한 없이, iOS를 운영하는 모바일 장치는 TCP Nagle 및 Significant Location Change API를 통해 최적화될 수 있다. 또 다른 예로서, Android를 운영하는 모바일 장치는 지연된 네트워크 활동을 최적화하도록 지나간 위치 및 RadioPowerManager를 통해 최적화될 수 있다. 위치 서버는 모바일 클라이언트 시스템에 의해 제공된 전력 사용 정보 및 실제 데이터 품질을 수집할 수 있다. 특정 실시예로, 모바일 클라이언트 시스템(130)은 소셜 네트워킹 시스템(160)의 위치 서버로 위치 업데이트를 송신할 수 있고, 위치 업데이트는 위치 업데이트를 송신하도록 모바일 클라이언트 시스템(130)이 사용한 전력의 표시를 포함한다. 예로서 제한 없이, 모바일 클라이언트 시스템(130)은 위치 업데이트용으로 사용되는 방법 및 파라미터에 기반하여 위치 업데이트를 결정하기 위해 모바일 클라이언트 시스템(130)에 의해 소모된 전력, (새로운 연결이 필요했다면) 소셜 네트워킹 시스템(160)과 임의의 네트워크 연결을 확립하는데 모바일 클라이언트 시스템(130)에 의해 소모된 전력 또는 소셜 네트워킹 시스템(160)으로 위치 업데이트를 송신하는데 모바일 클라이언트 시스템(130)에 의해 소모된 전력을 표시할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160) 또는 모바일 클라이언트 시스템(130) 중 하나는 모바일 클라이언트 시스템(130)에 의해 보고된 전력 사용에 적어도 부분적으로 기반하여 위치 업데이트를 결정하고 송신하기 위한 방법 또는 파라미터를 조정할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은, 샘플링 지속시간을 감소시켜 전력 효율성의 증가가 이런 환경하에서 위치 정확성의 임의의 감지가능한 손실보다 우세하다고 결정할 때, 모바일 클라이언트 시스템(130)이 고속으로 이동중일 때 샘플링 지속시간을 감소시키도록 모바일 클라이언트 시스템(130)에게 지시할 수 있다. 또 다른 예로서 제한 없이, 모바일 클라이언트 시스템(130)은 그 배터리가 부족하고 사용자가 고속으로 이동중이 아닌 경우 GPS 위치 서비스를 턴오프하고 배경 위치 서비스에 대한 위치를 결정하는 다른 방법들에 의존할 수 있다고 결정할 수 있는데, 이때 위치 정확성의 손실은 배터리의 현재 전력 상태에 대하여 감소한 전력 누수에 의해 더 많이 상쇄된다.
도 11은 모바일 클라이언트 시스템에서 소셜 네트워킹 시스템으로의 위치 빈도 업데이트를 결정하는 예시적인 방법을 도시한다. 이 방법은 단계 1110에서 시작할 수 있으며, 모바일 클라이언트 시스템(130)은 그 위치를 결정한다. 상술한 바와 같이, 모바일 클라이언트 시스템(130)은 임의의 적절한 방법을 사용하여 그 위치를 결정할 수 있다. 단계 1120에서, 모바일 클라이언트 시스템(130)은 모바일 클라이언트 시스템(130)에 저장된 위치 이력에 단계 1110에서 결정된 위치를 저장할 수 있다. 단계 1130에서, 모바일 클라이언트 시스템(130)은 모바일 클라이언트 시스템(130)이 정지되어 있는지를 결정할 수 있다. 상술한 바와 같이, 모바일 클라이언트 시스템(130)은 보행 속도보다 빠르지 않은 임의의 속도를 정지되어 있는 것으로 정의할 수 있다. 예로서 제한 없이, 모바일 클라이언트 시스템(130)이 시간당 1마일로 이동중이고 최근 10분 이내에 초기 위치로부터 100야드 이상 움직이지 않았다고 감지하면, 모바일 클라이언트 시스템(130)은 이런 단계의 목적상 모바일 클라이언트 시스템이 정지되어 있다고 결정할 수 있다. 모바일 클라이언트 시스템(130)이 정지되어 있다면, 모바일 클라이언트 시스템(130)은 소셜 네트워킹 시스템(160)의 위치 서버로 위치 이력을 송신하는 것을 그만둘 수 있다. 이후, 모바일 클라이언트 시스템(130)은 새로운 위치가 모바일 클라이언트 시스템(130)에 대하여 결정될 때까지 대기할 수 있다. 특정 실시예로, 새로운 위치가 모바일 클라이언트 시스템(130)에 대하여 결정되는 시기는 모바일 클라이언트 시스템(130)에 의해 결정되거나 위치 서버에 의해 결정될 수 있다. 그러나, 모바일 클라이언트 시스템(130)이 예컨대 보행 속도보다 더 빠르게 이동중인 것과 같이 정지되어 있지 않다고 감지하면, 단계 1140에서, 모바일 클라이언트 시스템(130)은 모바일 클라이언트 시스템(130)에 저장된 위치 이력을 온라인 소셜 네트워크의 위치 서버로 송신할 수 있다.
적절한 경우, 특정 실시예는 도 11의 방법의 하나 이상의 단계를 반복할 수 있다. 비록 본 명세서는 특정 순서로 발생하는 것으로서 도 11의 방법의 특정 단계를 설명하고 도시하지만, 본 명세서는 임의의 적절한 순서로 발생하는 도 11의 방법의 임의의 적절한 단계를 고려한다. 게다가, 비록 본 명세서는 도 11의 방법의 특정 단계를 수행하는 특정 컴포넌트, 장치 또는 시스템을 설명하고 도시하지만, 본 명세서는 도 11의 방법의 임의의 적절한 단계를 수행하는 임의의 적절한 컴포넌트, 장치, 장치 또는 시스템의 임의의 적절한 조합을 고려한다.
푸시 알림, 의도 및 위치-기반 애플리케이션은, 본 명세서에 참조로 각각 통합되는, 2011년 4월 28일자로 출원된 미국특허출원 제13/096184호, 2011년 4월 28일자로 출원된 미국특허출원 제13/096197호, 2011년 4월 28일자로 출원된 미국특허출원 제13/096208호, 2012년 6월 6일자로 출원된 미국특허출원 제13/490394호, 2012년 10월 19일자로 출원된 미국특허출원 제13/656531호, 2012년 11월 20일자로 출원된 미국특허출원 제13/681843호, 2012년 11월 20일자로 출원된 미국특허출원 제13/681947호 및 2012년 12월 18일자로 출원된 미국특허출원 제13/718,273호에서 더 설명된다.
위치 이력의 비교
특정 실시예로, 소셜 네트워킹 시스템(160)은 특정 사용자와 관련된 위치 이력을 소셜 네트워킹 시스템(160)의 다른 사용자의 위치 이력이나 특정 위치와 비교할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 사용자가 특정 위치 근처에 있었는지를 결정하고(이로써 2명의 사용자가 직접 만났거나 서로 마주쳤는지를 추론함), 그렇다면 얼마나 오랫동안 있었는지를 결정하도록, 특정 사용자와 관련된 위치 이력을 특정 위치와 비교할 수 있다. 또 다른 예로서, 소셜 네트워킹 시스템(160)은 2명의 사용자가 임의의 시점에 서로 근처에 있었는지를 결정하도록 2명의 사용자의 위치 이력을 비교할 수 있고, 2명의 사용자가 특정 시점에 직접 만났다고 표시할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 사용자가 마주쳤거나 다른 사용자 근처에 갔는지를 결정하기 위한 기결정된 임계 거리 및 시간 요건을 가질 수 있다. 2명의 사용자가 적어도 필요한 시간 동안 임계 거리 내에 있다고 결정된다면, 소셜 네트워킹 시스템(160)은 2명의 사용자가 "근접(close proximity)"하여 있었다고 결정할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 2명의 사용자 Alice 및 Bob의 위치 이력을 비교할 수 있다. Alice는 그녀가 오후 1:00에서 오후 1:30까지 위치 A, 오후 1:30에서 오후 3:00까지 위치 B, 오후 3:00에서 오후 4:00까지 위치 C에 있다는 위치 이력을 가질 수 있다. Bob은 동일한 시간 구간 동안 위치 이력을 가질 수 있는데, 이때 그는 오후 1:00에서 오후 2:00까지 위치 D, 오후 2:00에서 오후 3:30까지 위치 B, 오후 3:30에서 오후 4:00까지 위치 E에 있다. 위치들 A 내지 E가 500야드 이상의 거리만큼 각각 이격되어 있고, 소셜 네트워킹 시스템(160)이 "근접"함을 결정하기 위해 100야드의 임계 거리를 설정했다면, 소셜 네트워킹 시스템(160)은 Alice와 Bob 모두 위치 B에 있었을 때 Alice와 Bob이 오후 2:00에서 오후 3:00까지 근접해있었다고 결정할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 2명의 사용자가 소셜 네트워킹 시스템(160)의 제1 사용자를 선택하여 근접해있었는지 여부의 결정을 초기화할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 다수의 제2 사용자를 열람하는 제1 사용자로부터의 요청을 응답하여 제1 사용자를 선택할 수 있다. 소셜 네트워킹 시스템(160)은 임의의 제2 사용자가 최근에 제1 사용자와 근접해있었는지 여부의 순서로 제1 사용자에 의해 요청되는 제2 사용자들을 순위화할 수 있다. 이 예에서, 소셜 네트워킹 시스템(160)은 먼저 제1 사용자가 열람하도록 요청한 한 명 이상의 제2 사용자를 결정한 후, 어느 제2 사용자가 제1 사용자와 근접해있었는지를 결정하도록 각각의 제2 사용자의 위치 이력과 제1 사용자의 위치 이력을 비교할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 위치 이력을 비교하도록 기결정된 시간 구간 동안 사용자의 위치 이력만을 볼 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 전월의 사용자 위치 이력만을 사용할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 2명의 사용자 사이의 정량화된 근접도로 근접성 계수를 계산할 수 있다. 예로서 제한 없이, 근접성 계수는 함수 f(d, t)에 의해 계산될 수 있는데, 이때 d는 2명의 사용자 사이의 거리이며, t는 2명의 사용자가 거리 d에 있었던 총 시간이다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 2명의 사용자가 임계 거리 내에 있을 때에만 근접성 계수를 계산할 수 있다. 특정 실시예로, 근접성 계수가 더 크다는 것은 서로 근처에서 보낸 시간이 더 많거나 2명의 사용자 사이의 물리적 이격 거리가 더 작다는 것을 나타낼 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 다수의 하위부분(subparts)의 조합으로서 근접성 계수를 계산할 수 있다. 예로서 제한 없이, 사용자들 Alice 및 Bob은 10분 동안 50야드 떨어져 있고; 이후 30분 동안 서로 10야드 내로 이동하며; 이후 15분 동안 20야드 떨어져 있고; 이후 임계 거리 밖으로 이동할 수 있다. 이후, 소셜 네트워킹 시스템(160)은 Alice와 Bob 사이의 만남에 대한 총 근접성 계수를 f(50, 10) + f(10, 30) + f(20, 15)로 계산할 수 있다. 소셜 네트워킹 시스템(160)은 만남의 하위부분에 대한 근접성 계수를 결합하는 임의의 적절한 방법을 사용할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 2명의 사용자가 근접해있다고 결정하는데 필요한 최소 시간에 대응하는 시간 세그먼트들로 2명의 사용자가 임계 거리 내에 있었던 총 시간을 분할할 수 있다. 예로서 제한 없이, 상기 예에서, 임계 거리가 100야드이고 필요한 최소 시간이 5분이라면, 소셜 네트워킹 시스템(160)은 Alice와 Bob 사이의 만남을 5분 세그먼트들로 분할할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 시간이 지남에 따라 계산된 근접성 계수를 감쇠시켜서, 2명의 사용자 사이의 더 오래된 만남이 더 새로운 만남에 비해 더 작은 근접성 계수를 가질 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 제2 사용자에 대하여 한 명의 사용자에 대한 하나의 근접성 계수를 결정할 수 있고, 근접성 계수는 사용자들 사이의 각각의 만남에 대해 계산되는 하위부분 근접성 계수들을 포함한다. 예로서 제한 없이, 사용자들 Alice 및 Bob은 첫째날(Day 1)에 근접해있었을 수 있고, 근접성 계수는 이런 만남에 기반하여 생성되었을 수 있다. 근접성 계수는 근접성 계수가 시간이 지남에 따라 감소하도록 감쇠 함수를 통해 매일 업데이트될 수 있다. Alice와 Bob이 다섯째날(Day 5)에 다시 만난다면, 총 근접성 계수는 Alice와 Bob에 대하여 결정될 수 있으며, 다섯째날에 새로운 만남에 대해 계산되는 근접성 계수 및 4일 만큼 감쇠되고 첫째날에 만남에 대해 계산되는 근접성 계수를 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 자동으로 또는 2명의 사용자가 최근 근접해있었는 표시에 응답하여 2명의 사용자에 대한 근접성 계수를 업데이트할 수 있다. 예로서 제한 없이, 상기 주어진 예에서, 소셜 네트워킹 시스템(160)은 새로운 만남 이후 다섯째날에 새로운 근접성 계수를 만들지 않고, Alice 또는 Bob 중 한 명이 소셜 네트워킹 시스템(160)으로 업데이트된 근접성 계수가 계산될 필요가 있다고 요청할 때까지 대기할 수 있다.
도 12는 2명의 사용자에 대한 맵 뷰(1200) 내 위치 이력의 예시적인 비교를 도시한다. 도 12의 예에서, 제1 사용자의 위치 이력은 지리적 위치(1210A-E)를 포함할 수 있고, 제2 사용자의 위치 이력은 지리적 위치(1220A-C)를 포함할 수 있다. 사용자의 위치 이력을 포함하는 각각의 지리적 위치에 대하여, 소셜 네트워킹 시스템(160)은 사용자가 특정 지리적 위치에 있었던 시간을 포함하는 시간 스탬프를 연관시킬 수 있다. 도 12의 예시적인 실시예에서, 제1 사용자는 오후 1:00에서 오후 2:00까지 위치(1210A)에, 오후 2:00에서 오후 3:30까지 위치(1210B)에, 오후 3:30에서 오후 4:00까지 위치(1210C)에, 오후 4:00에서 오후 5:00까지 위치(1210D)에, 그리고 오후 5:00에서 오후 7:00까지 위치(1210E)에 있었을 수 있다. 동일한 날에, 제2 사용자는 오후 12:30에서 오후 4:30까지 위치(1220A)에, 오후 4:30에서 오후 6:00까지 위치(1220B)에, 그리고 오후 6:00에서 오후 7:00까지 위치(1220C)에 있었을 수 있다. 소셜 네트워킹 시스템(160)은 위치들(1210D 및 1220B)이 제1 사용자와 제2 사용자에 대한 서로의 임계 거리 내에 있고, 위치들(1210E 및 1220A)도 또한 서로의 임계 거리 내에 있다고 결정할 수 있다. 그러나, 제2 사용자가 위치(1220A)에 있었을 임의의 시점에 제1 사용자가 위치(1210E)에 있지 않았기 때문에, 소셜 네트워킹 시스템(160)은 제1 사용자와 제2 사용자가 실제로 거기에 근접해있지 않았기 때문에 제1 사용자와 제2 사용자에 대한 이런 위치를 무시할 수 있다. 소셜 네트워킹 시스템(160)은 위치들(1210D 및 1220B)에서 제1 사용자와 제2 사용자 사이의 근접한 만남에 대한 근접성 계수를 계산할 수 있다. 근접성 계수는 f(d, t)로 나타낼 수 있는데, 이때 d는 1210D와 1220B 사이의 거리, t는 각각의 위치들에서 제1 사용자와 제2 사용자의 공유된 시간, 즉 오후 4:30 내지 오후 5:00 또는 30분이다.
특정 실시예로, 제1 사용자 또는 제2 사용자가 이동중이라면, 소셜 네트워킹 시스템(160)은 위치들(1210E 및 1220A)을 포함하도록 근접함의 결정을 조정할 수 있다. 이런 상황에서, 소셜 네트워킹 시스템(160)은 1210E와 1220A 사이의 근접한 만남에 대한 근접성 계수를 계산할 수 있다. 2개의 지리적 위치는 이런 각각의 위치에서 어떤 시간도 공유하지 않기 때문에, 소셜 네트워킹 시스템(160)은 그들의 소정의 위치에서 각각의 사용자에 대해 경과된 시간을 사용할 수 있으며, 따라서 근접성 계수는 f(d, t)로 나타낼 수 있고, 이때 d는 1210E와 1220A 사이의 거리이며, t는 1210E에 대한 시간 스탬프(오후 5:00 내지 오후 7:00)와 1220A에 대한 시간 스탬프(오후 3:30 내지 오후 4:30)의 조합이다.
특정 실시예로, 도 12의 예에서 제1 사용자와 제2 사용자에 대한 임계 거리는 상당히 클 수 있어서, 제1 사용자(1210A-E)의 모든 위치가 제2 사용자(1220A-C)의 모든 위치와 비교할 때 임계 거리 내에 있다. 소셜 네트워킹 시스템(160)은 제1 사용자 및 제2 사용자의 움직임의 위치 및 시간에 기반하여 제1 사용자 및 제2 사용자에 대한 하나의 근접성 계수를 계산할 수 있다. 상술한 예에서, 근접성 계수는 이후 f((d1, t1), (d2, t2) ... (di, ti))로 표현될 수 있고, di는 시간 ti 동안 제1 사용자와 제2 사용자 사이의 거리이다. 예컨대, d1은 1210A와 1220A 사이의 거리이고, t1은 제1 사용자와 제2 사용자가 각각의 위치에 있었던 시간(오후 1:00 - 오후 2:00)이며, d2는 1210B와 1220A 사이의 거리이고, t2는 오후 2:00 내지 오후 3:30, 기타등등이다. 이 예에서 결정된 마지막 di, ti는 오후 6:00 내지 오후 7:00의 시간 구간 동안 1210E와 1220C 사이의 거리일 것이다.
도 13은 또 다른 위치에 대하여 사용자에 대한 근접성 계수를 계산하기 위한 예시적인 방법을 도시한다. 단계 1310에서, 소셜 네트워킹 시스템(160)은 사용자의 위치 이력에 액세스할 수 있다. 단계 1320에서, 위치 이력을 포함하는 하나 이상의 지리적 위치에 기반하여, 임계 거리가 결정될 수 있다. 단계 1330에서, 임계 거리에 기반하여, 소셜 네트워킹 시스템(160)은 위치 이력의 임의의 지리적 위치가 또 다른 위치의 임계 거리 내에 있는지 여부 및 또 다른 위치가 또 다른 사용자의 위치 이력을 포함한다면 2명의 사용자가 소정의 시점에 근접해있을 수 있도록 시간상의 중첩이 있는지 여부를 체크할 수 있다. 위치 이력이 시간상에 중첩한 근접성의 적어도 하나의 인스턴스가 있다면, 단계 1340에서, 소셜 네트워킹 시스템(160)은 시간상의 중첩이 필요한 시간 구간을 초과하는지를 결정할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 고정된 위치와의 비교를 위해 사용자가 적어도 필요한 시간 동안 고정된 위치의 임계 거리 내에 있었는지를 결정할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 2명의 사용자가 적어도 10분 동안 서로 근접해 있어야 한다고 요구할 수 있다. 적어도 필요한 시간 구간 동안 위치 이력에서 중첩이 있다면, 단계 1350에서, 소셜 네트워킹 시스템(160)은 또 다른 위치와 관련된 컨텐츠, 사용자 또는 엔티티에 대하여 사용자에 대한 근접성 계수를 계산할 수 있으며, 근접성 계수는 f(d, t)로 표현될 수 있고, d는 위치 이력의 지리적 위치와 또 다른 위치 사이의 거리이며, t는 사용자가 또 다른 위치의 임계 거리 내 지리적 위치에 있었던 시간이다.
적절한 경우, 특정 실시예는 도 13의 방법의 하나 이상의 단계를 반복할 수 있다. 비록 본 명세서는 특정 순서로 발생하는 것으로서 도 13의 방법의 특정 단계를 설명하고 도시하지만, 본 명세서는 임의의 적절한 순서로 발생하는 도 13의 방법의 임의의 적절한 단계를 고려한다. 게다가, 비록 본 명세서는 도 13의 방법의 특정 단계를 수행하는 특정 컴포넌트, 장치 또는 시스템을 설명하고 도시하지만, 본 명세서는 도 13의 방법의 임의의 적절한 단계를 수행하는 임의의 적절한 컴포넌트, 장치, 장치 또는 시스템의 임의의 적절한 조합을 고려한다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 또한 고정된 위치에 대하여 사용자의 위치에 대한 근접성 계수를 계산할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 사용자가 장소, 특정 주소 또는 소셜 네트워킹 시스템(160)에서 공유된 컨텐츠와 관련된 위치 근처에 있었는지를 결정할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 한 명 이상의 사용자에 대한 위치 이력의 컨텍스트에 기반하여 "근접성(close proximity)"의 정의 또는 근접성 계수의 계산을 조정할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 특정 사용자가 그의 집으로부터의 그의 현재 위치의 거리에 기반하여 이동중이라고 결정할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 특정 사용자가 그의 집의 주/국가/지역으로부터 다른 주, 국가, 지역 또는 다른 지리적 영역에서 감지되면 특정 사용자가 이동중이라고 결정할 수 있다.
특정 실시예로, 사용자가 이동중이라면, 소셜 네트워킹 시스템(160)은 사용자가 대략 동일한 위치로 이동했던 다른 사용자들이 사용자로부터 디폴트 임계 거리 내에 있지 않거나 동시에 거기로 이동하지 않았을지라도 그 다른 사용자들에 대해 더 많이 알아내는데 관심이 있을 수 있다고 결정할 수 있다. 소셜 네트워킹 시스템(160)은 특정 사용자 및 다른 사용자들이 동일한 장소에 방문했다는 공통 관심사를 가질 수 있다고 결정할 수 있다. 예로서 제한 없이, 사용자 Alice는 CA의 San Francisco에 살고 있고 1주 동안 France의 Paris를 방문할 수 있다. 소셜 네트워킹 시스템(160)은 Alice가 Paris에 있었던 동안 Alice와 근접해있는 다른 사용자들을 결정하도록 그 파라미터를 조정할 수 있거나, Alice가 Paris에 있었던 동안 근접해있는 다른 사용자들에 대한 근접성 계수의 계산을 조정할 수 있다. CA의 San Jose에 살고 있는 사용자 Bob은 Alice의 1주 후에 Paris를 방문할 수 있다. 소셜 네트워킹 시스템(160)은 Alice와 Bob이 근접해있었다고 결정하는데 필요한 거리 요건 및 시간 요건 모두를 조정할 수 있고, 그들이 동시에 거기에 있지 않았더라도 Paris의 체류에 대하여 Alice와 Bob이 근접해있었다고 결정할 수 있다. 또 다른 예로서, 사용자 Carol은 Alice와 동시에 Paris를 방문할 수 있는데, 이때 Carol의 위치 이력은 Alice의 경로와 교차하지 않는다(예컨대, Carol과 Alice는 그들이 Paris에 있는 동안 서로 1/2마일 이내에 있지 않는다). 소셜 네트워킹 시스템(160)은 Alice와 Carol에 대한 임계 거리를 1마일로 증가시킬 수 있고, Alice와 Carol이 1마일 이내에 있었던 임의의 경우에 대한 근접성 계수를 계산할 수 있다.
특정 실시예로, 2명의 사용자에 대해 계산된 근접성 계수는 소셜 네트워킹 시스템(160)의 소셜 그래프(200)에서 다른 사람들에 대한 사용자들 중 한 명의 소셜 친밀성을 결정하는 신호로서 사용될 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 소셜 친밀성이 업데이트되고 있을 때 계산된 근접성 계수를 업데이트할 수 있다. 특정 실시예로, 근접성 계수는 2명의 사용자에 대한 소셜 친밀성과는 별도로 저장될 수 있다.
사람 검색
특정 실시예로, 소셜 네트워킹 시스템(160)은 위치 이력 비교 및 근접성 계수를 사용하여 사용자에게 제시될 하나 이상의 검색 결과를 결정할 수 있다. 위치 이력 비교 및 근접성 계수는 유사한 검색 결과들을 명확하게 하거나 사용자에게 제시하기 위해 검색 결과들을 순위화하는데 사용될 수 있다. 예로서 제한 없이, 위치 이력 비교 및 근접성 계수는 타이프어헤드 컨텍스트의 제안, 그래프 검색 컨텍스트의 질의를 명확히 하거나 검색 결과의 세트를 생성하고 순위화하는데 사용될 수 있다. 소셜 네트워킹 시스템(160)의 제1 사용자에 대하여, 소셜 네트워킹 시스템(160)은 제1 사용자가 (제2 사용자들이 공통 관심사를 공유할 수 있고, 동일한 유형의 장소를 다닐 수 있는 등을 표시하는) 제1 사용자와 비교하여 유사한 위치 이력을 가지는 제2 사용자들에 더 관심이 있거나 사용자가 이미 자주 가는 장소들 근처의 위치들(사용자의 직장 근처의 세탁소, 사용자가 가장 좋아하는 레스토랑에서 찍은 사진 등)에 더 관심이 있을 수 있다고 결정할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)의 제1 사용자는 질의를 소셜 네트워킹 시스템(160)으로 제출할 수 있고, 질의는 소셜 네트워킹 시스템(160)의 한 명 이상의 제2 사용자와 관련된다. 소셜 네트워킹 시스템(160)은 질의에 응답하여 한 명 이상의 제2 사용자의 세트를 생성하며, 가령 공통으로 태그된 컨텐츠, 소셜 네트워킹 시스템(160)의 상호 친구들, 공통의 좋아요, 또는 제1 사용자와 특정 제2 사용자 사이의 친밀성을 결정하기 위한 임의의 다른 적절한 수단과 같은 인자들에 기반하여 제시하기 위해 그들을 순위화할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 제1 사용자와 특정 제2 사용자의 위치 이력을 비교하고, 제1 사용자와 제2 사용자에 대한 근접성 계수를 결정하며, 각각의 근접성 계수에 기반하여 제2 사용자들을 순위화할 수 있다. 특정 실시예로, 근접성 계수는 또 다른 사용자에 대하여 한 사용자의 소셜 친밀성을 계산하는 신호로서 사용될 수 있다. 소셜 친밀성은 검색 결과 세트를 순위화하는데 사용될 수 있기 때문에, 근접성 계수는 검색 결과 세트를 순위화하는데 간접적으로 사용될 수 있고, 각각의 근접성 계수에 의해 직접적으로 검색 결과를 더 명확히 하는 것을 불필요할 수 있다.
예로서 제한 없이, 사용자 Alice는 "John Doe"란 이름의 사용자에 대한 소셜 네트워킹 시스템(160)의 검색 질의를 제출할 수 있다. 소셜 네트워킹 시스템(160)은 이런 질의에 응답하여 검색 결과 세트를 생성할 수 있고, 검색 결과 세트는 John Doe란 이름의 5명의 사용자: John Doe 1, John Doe 2, John Doe 3, John Doe 4 및 John Doe 5를 포함한다. 이후, 소셜 네트워킹 시스템(160)은 Alice에게 제시하기 위해 5명의 John Doe를 순위화할 수 있다. 순위화는 먼저 Alice에 대하여 John Doe들 중 임의의 소셜 친밀성을 고려할 수 있다. 이 예에서, John Doe 1은 소셜 네트워킹 시스템(160)의 Alice의 친구일 수 있는 한편, 다른 John Doe들은 친구들의 친구들이다. 그러므로, 소셜 네트워킹 시스템(160)은 맨 먼저 John Doe 1을 순위화할 수 있다. 나머지 John Doe들에 대하여, 소셜 네트워킹 시스템(160)은 4명의 사용자들 사이의 임의의 차이들을 구별하지 못할 수 있다. 이후, 소셜 네트워킹 시스템(160)은 Alice의 위치 이력을 각각의 John Doe의 위치 이력과 비교함으로써 위치 이력 비교를 사용하여 Alice와 특정한 John Doe 사이의 임의의 만남이 있었는지를 결정하고 근접성 계수를 계산할 수 있다. 위치 이력 비교에 기반하여, 소셜 네트워킹 시스템(160)은 Alice가 지난날 2시간 동안 John Doe 2와 동일한 위치에 있었고, Alice가 전날 30분 동안 John Doe 3의 20야드 내에 있었지만, Alice와 John Doe 4 및 5 사이에 만남이 없었다고 결정할 수 있다. 따라서, 소셜 네트워킹 시스템(160)은 위치 이력 비교에 기반하여 John Doe 4 및 5 위에 John Doe 2 및 3을 순위화할 수 있다. John Doe 2와 John Doe 3 사이의 추가적인 순위화에서, 소셜 네트워킹 시스템(160)은 Alice에 대하여 서로에 대한 근접성 계수를 계산할 수 있다. John Doe 2에 대한 근접성 계수가 만남이 한달 전이라서 감쇠했다면, 소셜 네트워킹 시스템(160)은 John Doe 3에 대한 근접성 계수가 더 높다고 결정하며, 따라서 John Doe 2에 앞서 John Doe 3을 순위화할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 또한 검색 요청과 매치하는 모든 사용자에 대한 근접성 계수를 업데이트하거나 생성할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 또한 John Doe 1을 순위화할 필요가 없었을지라도 John Doe 1에 대하여 Alice에 대한 근접성 계수를 업데이트하거나 생성할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 근접성 계수를 사용하여 하나의 위치와 관련된 검색 결과 세트를 생성하고 순위화할 수 있다. 예로서 제한 없이, 검색 결과는 고정된 위치를 가진 사업체의 장소와 관련된 엔티티 노드를 포함할 수 있거나, 가령 이미지가 찍힌 태그된 위치와 소셜 네트워킹 시스템(160)에서 공유된 이미지와 같이 관련된 위치를 가지는 컨텐츠를 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 근접성 계수를 사용하여 검색중인 사용자와 소셜 친밀성에서 유사한 검색 결과를 명확히 할 수 있다. 예로서 제한 없이, 사용자 Alice는 "The Starlight Restaurant"에 대한 검색 질의를 제출할 수 있다. SN은 US에서 그 이름을 가진 3개의 레스토랑이 있지만 사용자가 가령 레스토랑과 관련된 체크인이나 태그와 같이 레스토랑들 중 어느 것에 관한 소셜 네트워킹 시스템(160)에서의 어떤 활동도 가지지 않는다고 결정할 수 있다. 소셜 네트워킹 시스템(160)은 Alice가 검색을 제출한 시점에 Alice와 물리적 근접성에 기반하여 3개의 레스토랑을 순위화할 수 있지만, 3개의 레스토랑이 모두 너무 멀리 떨어져 있다면, 소셜 네트워킹 시스템(160)은 오로지 거리에 기반해서는 어느 것이 맨 먼저 순위화되어야 하는지를 결정하지 못할 수 있다. 소셜 네트워킹 시스템(160)은 위치 이력 비교를 사용하여 Alice가 3일 전 특정한 Starlight Restaurant의 50야드 내에 위치했고 Alice가 다른 2개의 레스토랑 근처에 간 적이 없다고 결정할 수 있다. 이후, 소셜 네트워킹 시스템(160)은 Alice가 근처에 있었던 Starlight Restaurant를 검색 결과 세트에서 맨 먼저 제시할 수 있다.
또 다른 예로서 제한 없이, Alice는 Bob과 태그되었던 소셜 네트워킹 시스템(160)에 공유된 이미지를 포함하는 검색 결과를 반환할 수 있는, "Bob의 사진"에 대한 검색 질의를 제출할 수 있다. 소셜 네트워킹 시스템(160)은 Bob의 각 사진과 Alice의 위치 이력 비교에 의해 Bob의 사진을 순위화할 수 있다. 이 예에서, 사진이 찍혔던 관련 위치(위치 A2, B2, C2, D2)를 각각 가지는 Bob의 4개의 사진이 있다면, 소셜 네트워킹 시스템(160)은 Alice가 임의의 위치들(A2-D2)에 있었다고 Alice의 위치 이력이 표시하는지를 결정할 수 있다. Alice의 위치 이력이 Alice가 위치 A2에 간 적이 없고, 오늘 오전 5분 동안 위치 B2에 있었고, 2주 전 오전에 위치 C2에 있었고, 2일 전 하루종일 위치 D2에 있었다면, 소셜 네트워킹 시스템(160)은 각각의 이미지: D1, B1, C1, A1에 대하여 Alice에 대해 계산된 근접성 계수에 기반하여 상술한 순서로 4개의 이미지를 순위화할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 특정 사용자와 동일한 지역에 거주하는 다른 사용자들에 대하여 특정 사용자에 대한 근접성 계수를 자동으로 업데이트할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 특정 사용자의 위치 이력에 매시간 마다, 매 12시간 마다 또는 매일 등으로 액세스하여 각 위치 업데이트에 대하여 특정 사용자에 근접한 임의의 다른 사용자들이 있었는지를 결정할 수 있고, 각각의 다른 사용자들에 대하여 특정 사용자에 대한 근접성 계수를 생성하거나 업데이트할 수 있다. 또 다른 예로서, 특정 사용자가 OR의 Portland에 거주하면, 소셜 네트워킹 시스템(160)은 특정 사용자와 다른 사용자 사이의 임의의 만남이 있었는지를 결정하도록 특정 사용자의 위치 이력을 Portland에 거주하는 모든 다른 사용자들의 위치 이력들과 직접 비교할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 근접성 계수를 업데이트할 필요가 있는 경우에만 근접성 계수를 업데이트할 수 있다. 근접성 계수가 소셜 친밀성을 결정하는 신호로서 사용된다면, 소셜 네트워킹 시스템(160)은 소셜 네트워킹 시스템(160)이 제2 사용자에 대하여 제1 사용자의 소셜 친밀성을 업데이트하고 있을 때 제2 사용자에 대하여 제1 사용자의 근접성 계수를 업데이트할 수 있다. 특정 실시예로, 근접성 계수가 단지 특정 검색 결과를 선택하고 순위화하는데에만 사용중이라면, 소셜 네트워킹 시스템(160)은 필요에 따라 근접성 계수를 업데이트할 수 있다. 예로서 제한 없이, 사용자 Alice가 John Doe를 검색하고 있는 상기 상황에서, 소셜 네트워킹 시스템(160)은 John Doe란 이름의 모든 사용자에 대하여 Alice에 대한 근접성 계수를 업데이트할 수 있지만, Alice가 업데이트된 근접성 계수를 필요로 하는 다른 사용자에 대해 요청할 때까지, 소셜 네트워킹 시스템(160)에서 모든 다른 사용자에 대한 근접성 계수를 업데이트하는 것을 억제할 수 있다.
특정 실시예로, 근접성 계수는 제2 사용자에 대한 제2 사용자 및 제1 사용자에 대한 제1 사용자에 대하여 동일할 수 있다. 소셜 네트워킹 시스템(160)이 제2 사용자에 대한 제1 사용자의 근접성 계수를 업데이트한다면, 소셜 네트워킹 시스템은 제1 사용자에 대한 제2 사용자의 근접성 계수를 자동 업데이트할 수 있다. 예로서 제한 없이, Alice가 John Doe만을 검색했던 상기 상황에서, 소셜 네트워킹 시스템(160)은 사용자 Jane Doe에 대한 Alice의 근접성 계수를 업데이트하지 않을 수 있다. 그러나, Jane Doe가 이후 Alice에 대한 검색 질의를 제출하면, 소셜 네트워킹 시스템(160)은 Alice에 대한 Jane Doe의 근접성 계수를 업데이트하고, Jane Doe에 대한 Alice의 근접성 계수를 자동 업데이트할 수 있다.
도 14는 검색 결과 세트를 결정하고 위치 이력 비교에 기반하여 검색 결과를 순위화하기 위한 예시적인 방법(1400)을 도시한다. 단계 1410에서, 소셜 네트워킹 시스템(160)은 소셜 네트워킹 시스템(160)의 소셜 그래프에 액세스할 수 있다. 단계 1420에서, 소셜 네트워킹 시스템(160)은 소셜 네트워킹 시스템(160)의 사용자로부터 질의를 수신할 수 있다. 예로서 제한 없이, 질의는 소셜 네트워킹 시스템(160)의 제1 사용자로부터의 검색 요청 또는 그래프 질의를 포함할 수 있다. 단계 1430에서, 소셜 네트워킹 시스템(160)은 검색 질의에 응답하여 하나 이상의 검색 결과의 세트를 생성할 수 있다. 단계 1440에서, 소셜 네트워킹 시스템(160)은 임의의 검색 결과가 검색 결과에 대한 제1 사용자의 근접성 계수를 가지는지를 결정할 수 있다. 예로서 제한 없이, 이는 제1 사용자의 위치 이력이 특정 검색 결과와 관련된 하나 이상의 위치와 제1 사용자 사이의 근접한 만남을 나타내는지를 결정하고, 제1 사용자와 이런 근접한 만남을 가지는 임의의 검색 결과에 대한 근접성 계수를 계산하는 단계들을 포함할 수 있다. 단계 1450에서, 검색 결과는 근접성 계수가 특정 검색 결과에 대해 존재하는지에 적어도 부분적으로 기반하여 점수화될 수 있다. 근접성 계수를 가지지 않는 검색 결과는 (즉, 제1 사용자의 위치 이력 및 검색 결과와 관련된 하나 이상의 위치 사이의 근접한 만남이 없었기 때문에) 제1 사용자에 대하여 관련 근접성 계수를 가지는 검색 결과와 비교하여 더 낮게 점수화될 수 있다. 단계 1460에서, 소셜 네트워킹 시스템(160)은 점수화된 바대로 검색 결과 세트를 제1 사용자에게 송신할 수 있다.
적절한 경우, 특정 실시예는 도 14의 방법의 하나 이상의 단계를 반복할 수 있다. 비록 본 명세서는 특정 순서로 발생하는 것으로서 도 14의 방법의 특정 단계를 설명하고 도시하지만, 본 명세서는 임의의 적절한 순서로 발생하는 도 14의 방법의 임의의 적절한 단계를 고려한다. 게다가, 비록 본 명세서는 도 14의 방법의 특정 단계를 수행하는 특정 컴포넌트, 장치 또는 시스템을 설명하고 도시하지만, 본 명세서는 도 14의 방법의 임의의 적절한 단계를 수행하는 임의의 적절한 컴포넌트, 장치, 장치 또는 시스템의 임의의 적절한 조합을 고려한다.
컨텐츠 홍보(Content Promotion)
특정 실시예로, 소셜 네트워킹 시스템(160)은 위치 이력 비교 및 근접성 계수를 사용하여 사용자에게 제시될 하나 이상의 컨텐츠 아이템을 결정할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 위치 이력 비교 및 근접성 계수를 이용하여 특정 사용자에 대해 유사한 소셜 친밀성 점수로 컨텐츠 아이템을 순위화할 수 있고, 높은 근접성 계수를 가진 컨텐츠 아이템을 특정 사용자의 뉴스피드에서 더 높게 제시할 수 있다. 또 다른 예로서, 소셜 네트워킹 시스템(160)은 위치 이력 비교 및 근접성 계수를 사용하여 컨텐츠 아이템에 대하여 사용자의 소셜 친밀성을 업데이트할 수 있고, 업데이트된 소셜 친밀성 점수에 기반하여 컨텐츠 아이템을 순위화할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 특정 사용자가 있었던 해당 위치를 가지는 컨텐츠 아이템을 겨정하고 이런 컨텐츠 아이템을 더 높게 순위화함으로써 특정 사용자에게 뉴스피드에서 제시되는 컨텐츠를 개선시킬 수 있다. 예로서 제한 없이, 컨텐츠 아이템에 대한 근접성 계수를 사용하는 것은 가령 특정 사용자 근처의 친구들에 의한 게시물이나 코멘트, 또는 근처에서 발생하고 특정 사용자가 참여할 수 있는 이벤트에 관한 컨텐츠와 같이 "로컬(local)" 컨텐츠를 특정 사용자에게 홍보할 수 있다. 특정 위치와 관련된 컨텐츠는 특정 위치에서 생성되거나 소셜 네트워킹 시스템(160)에서 공유될 때 특정 위치와 태그되는 이미지 또는 비디오일 수 있다. 비록 본 명세서는 소셜 네트워킹 시스템의 뉴스피드에서 제시하기 위한 컨텐츠 아이템을 결정하고 순위화하는 것을 논의하지만, 본 명세서는 하나 이상의 컨텐츠 아이템을 선택하고 사용자에게 순위화하기 위한 임의의 적절한 방법으로 위치 이력 비교 및 근접성 계수를 사용하는 것을 고려한다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 특정 사용자의 위치 이력에 기반하여 특정 사용자와 높게 관련되는 위치를 결정할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 사용자 Alice에 대한 위치 이력에 액세스할 수 있고, Alice가 위치 B에서 낮의 그녀의 대부분의 시간을 보내고 정오쯤 위치 C에 빈번히 가는 한편, 그녀가 위치 A에서 저녁 및 밤에 그녀의 대부분의 시간을 보낸다고 결정할 수 있다. 소셜 네트워킹 시스템(160)은 위치 A가 Alice의 집이고, 위치 B가 Alice의 직장이며, 위치 C는 Alice가 자주 방문하는 레스토랑(그리고 추가 추론에 의해 Alice가 좋아하는 레스토랑)인 이런 위치 이력에 기반하여 추론할 수 있다. 이후, 소셜 네트워킹 시스템(160)은 소셜 네트워킹 시스템(160)에서 다른 사용자들에 의해 공유된 컨텐츠와 위치 A, B 및 C를 비교하고, 임의의 컨텐츠가 위치 A, B 또는 C에서 또는 그 근처에서 관련 위치를 가지는지를 결정한 후, 이런 컨텐츠 아이템을 Alice로 제시할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 Alice에 대한 위치 업데이트의 패턴을 사용하지 않을 수 있고, 대신 그녀의 가장 최근의 위치 업데이트에 기반하여 Alice에게 제시될 컨텐츠를 업데이트할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 소셜 네트워킹 시스템(160)에서 공유된 각각의 컨텐츠 아이템에 대한 컨텐츠 점수를 계산할 수 있고, 각각의 열람중인 사용자에 대한 컨텐츠 점수는 열람중인 사용자에 대한 컨텐츠 아이템(예컨대, 친구가 찍은 사진, 친구를 묘사하지만 지인이 찍은 사진)의 소셜 친밀성뿐 아니라 컨텐츠 아이템에 대하여 열람중인 사용자에 대해 계산된 근접성 계수를 포함한다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 사용자가 이동중이라고 결정할 수 있고, 사용자가 이동중인 위치와 관련된 컨텐츠가 또한 사용자에게 높게 순위화되도록 컨텐츠 점수의 계산을 조정할 수 있다. 예로서 제한 없이, 사용자 Carol은 CA의 Palo Alto의 장기간 거주자이고 CA의 Menlo Park에서 근무할 수 있다. 보통의 사용으로, 소셜 네트워킹 시스템(160)은 Palo Alto 또는 Menlo Park 중 어느 하나와 관련되는 컨텐츠 아이템을 높게 순위화할 수 있다. Carol은 NY의 New York City에 거주하는 친구 Alice를 가질 수 있다. Alice가 멀리 살고 있고 그녀가 New York City에 있는 동안 그녀에 의해 공유된 임의의 컨텐츠 아이템이 Carol의 위치 이력의 임의의 지점에 근접해있지 않기 때문에, Carol의 뉴스피드는 뉴스피드 내에서 Alice에 의해 공유된 컨텐츠를 낮게 순위화할 수 있거나 뉴스피드로부터 그들을 함께 필터링할 수 있다. 그러나, Carol이 일주일 동안 New York City를 방문한다면, 그 주 동안 Alice에 의해 공유되고 New York City와 관련된 임의의 컨텐츠는 Carol과 더 관련될 수 있고, 그 컨텐츠는 Carol에 대하여 더 높게 순위화될 수 있다. 그 주 동안 공유된 컨텐츠는 Carol이 심지어 Palo Alto로 되돌아갈 때 더 높게 순위화될 수 있고, New York City로부터 Alice에 의해 공유된 추후 컨텐츠는 New York City로부터 공유된 컨텐츠에 대하여 Carol에 대한 증가한 근접성 계수에 기반하여 더 높게 순위화될 수 있다. 특정 실시예로, 이동 위치에 대한 근접성 계수는 사용자가 떠날 때 복원될 수 있다. 예로서 제한 없이, Carol이 New York City로 떠나고 Palo Alto로 돌아오면, Alice에 의해 공유된 임의의 뉴스 컨텐츠는 Carol이 New York City로 가기 전과 동일한 방식으로 Carol의 뉴스피드에서 더 낮게 순위화될 수 있다. 또 다른 예로서, Alice와 Carol 모두 IL의 Chicago로 이동할 수 있다. Alice가 관련 컨텐츠를 공유하면.
특정 실시예로, 소셜 네트워킹 시스템(160)은 특정 사용자가 열람중인 사용자로부터 이동할 때 그 특정 사용자에 의해 공유된 컨텐츠 아이템의 순위화를 감소시킬 수 있다. 예로서 제한 없이, 상술한 상황에서, Carol은 Palo Alto에 또한 거주하는 친구 Bob을 가질 수 있고, 그의 공유된 컨텐츠는 소셜 네트워킹 시스템(160)에 의해 Carol 뉴스피드에서 높게 순위화된다. Bob은 2주 동안 MA의 Boston을 방문하고 Boston으로부터 컨텐츠를 공유할 수 있다. 소셜 네트워킹 시스템(160)은 공유된 컨텐츠 아이템의 위치가 Carol의 위치 이력에 저장된 임의의 위치로부터 현재 매우 멀리 있기 때문에 Boston으로부터 Bob에 의해 공유된 컨텐츠가 Carol과 관련이 없고, Bob에 의해 공유된 Boston 컨텐츠에 대한 Carol의 근접성 계수는 매우 작다고 결정할 수 있다. 따라서, Boston으로부터 Bob의 공유된 컨텐츠는 Carol의 뉴스피드에 더 낮게 순위화될 것이다. 특정 실시예로, Bob이 Palo Alto로 돌아와서 Palo Alto와 관련된 컨텐츠를 공유하는 경우, 소셜 네트워킹 시스템(160)은 이 새로운 컨텐츠에 대한 Carol의 근접성 계수가 더 높고 따라서 Carol의 뉴스피드에서 이 컨텐츠를 더 높게 순위화한다고 결정할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 제1 사용자와 제2 사용자 사이의 근접성 계수의 변화를 사용하여 제1 사용자의 뉴스피드에서 제2 사용자에 의해 공유된 컨텐츠의 순위화를 조정할 수 있다. 제2 사용자에 대한 제1 사용자의 근접성 계수가 증가했다면, 소셜 네트워킹 시스템(160)은 제2 사용자에 의해 공유된 컨텐츠의 순위화를 증가시킬 수 있다. 예로서 제한 없이, 상기 상황에서, Carol은 소셜 네트워킹 시스템(160)에서 Carol의 친구이지만 Carol에 대한 높은 소셜 친밀성을 가지지 않는 또 다른 사용자 David와 직접 연결을 가질 수 있는데, 예컨대 Carol 및 David는 소셜 네트워킹 시스템(160)을 통해 빈번히 서로 통신하지 않으며 소셜 네트워킹 시스템(160)에서 공유된 임의의 컨텐츠에 함께 태그되지 않는다. 따라서, 소셜 네트워킹 시스템(160)은 Carol의 뉴스피드에서 David에 의해 공유된 컨텐츠를 매우 높게 순위화하지 않을 수 있다. 이후, 위치 이력의 비교에 기반하여, 소셜 네트워킹 시스템(160)은 Carol 및 David가 전날밤 동일한 이벤트에 있었고 수시간 동안 서로 근접해있었다고 결정할 수 있다. 이후, 소셜 네트워킹 시스템(160)은 David에 대한 Carol의 근접성 계수를 증가시킬 수 있다. 또한, 소셜 네트워킹 시스템(160)은 David에 의해 공유된 특정 컨텐츠에 대한 Carol의 근접성 계수의 임의의 변화에 관계없이 David에 대한 증가한 근접성 계수에 기반하여 Carol의 뉴스피드에서 David에 의해 공유된 컨텐츠에 대한 순위화를 증가시킬 수 있다. 특정 실시예로, 근접성 계수가 시간에 따라 감쇠할 때, David의 공유된 컨텐츠에 대한 순위화의 부스트(boost)도 또한 감쇠될 수 있어서, 순위화의 부스트는 일시적이다. Carol의 관점에서, David와 직접 만난 후, Carol은 그녀의 뉴스피드에서 David에 의해 공유된 컨텐츠의 증가를 볼 수 있고, 그녀가 David와 그녀의 소셜 친밀성을 증가시키도록 달리 어떤 것을 하지 않는다고 가정하면, 다음의 몇 주 동안, David에 의해 공유된 컨텐츠는 순위화가 베이스라인 순위화로 복원될 때까지 뉴스피드에서 덜 빈번히 또는 덜 눈에 띄게 나타날 것이다.
도 15는 소셜 네트워킹 시스템(160)의 특정 사용자에게 제시될 컨텐츠 아이템의 순위를 결정하기 위한 예시적인 방법을 도시한다. 단계 1510에서, 소셜 네트워킹 시스템(160)은 소셜 네트워킹 시스템(160)의 소셜 그래프(200)에 액세스할 수 있다. 단계 1520에서, 소셜 네트워킹 시스템(160)은 소셜 네트워킹 시스템(160)에서 공유된 컨텐츠 아이템에 각각 대응하는 하나 이상의 컨텐츠 점수를 계산할 수 있다. 특정 실시예로, 컨텐츠 점수는 소셜 네트워킹 시스템(160)의 제1 사용자의 위치 이력 및 컨텐츠 아이템과 관련된 위치 사이에서 계산된 근접성 계수를 포함할 수 있다. 특정 실시예로, 컨텐츠 아이템과 관련된 위치는 컨텐츠 아이템과 관련되는 제2 사용자의 위치 이력을 포함할 수 있다. 단계 1530에서, 소셜 네트워킹 시스템(160)은 각각의 컨텐츠 아이템에 대해 계산된 컨텐츠 점수에 적어도 부분적으로 기반하여 하나 이상의 컨텐츠 아이템을 제1 사용자에게 송신할 수 있다.
적절한 경우, 특정 실시예는 도 15의 방법의 하나 이상의 단계를 반복할 수 있다. 비록 본 명세서는 특정 순서로 발생하는 것으로서 도 15의 방법의 특정 단계를 설명하고 도시하지만, 본 명세서는 임의의 적절한 순서로 발생하는 도 15의 방법의 임의의 적절한 단계를 고려한다. 게다가, 비록 본 명세서는 도 15의 방법의 특정 단계를 수행하는 특정 컴포넌트, 장치 또는 시스템을 설명하고 도시하지만, 본 명세서는 도 15의 방법의 임의의 적절한 단계를 수행하는 임의의 적절한 컴포넌트, 장치, 장치 또는 시스템의 임의의 적절한 조합을 고려한다.
위치 비교를 사용한 얼굴 인식 제안
특정 실시예로, 소셜 네트워킹 시스템(160)은 얼굴 인식 프로세스를 사용하여 이미지에 대한 태그 제안을 생성할 수 있다. 소셜 네트워킹 시스템(160)은 이미지 내 사람의 묘사와 같은 이미지 정보를 비교하고, 이미지에 묘사된 사람이 소셜 네트워킹 시스템(160)의 임의의 사용자의 얼굴 서명에 매치하는지를 시도하고 예측하도록 그 이미지 정보를 얼굴 서명 세트와 비교할 수 있다. 이런 얼굴 서명은 예컨대 온라인 소셜 네트워크의 특정 사용자들이 태그되는 다른 이미지들을 분석함으로써 이런 사용자들에 대해 소셜 네트워킹 시스템에 의해 생성된 얼굴-표현(facial-representations)일 수 있다. 따라서, 표준 태그-제안 알고리즘은 f(n, i)의 형태일 수 있는데, n은 온라인 소셜 네트워크의 특정 사용자의 얼굴 서명이고, i는 이미지 정보이다. 그러나, 사용자들의 수천 또는 가능한 수백만의 얼굴 설명을 통한 분류는 효율적이지 않고 열악한 예측으로 이어질 수 있다. 태그-제안 알고리즘은 가령 소셜-그래프 정보, 타이프어헤드 정보 또는 온라인 소셜 네트워크에서 이용가능한 다른 적절한 정보와 같은 추가 정보를 사용하여 개선될 수 있다. 즉, 태그-제안 알고리즘은 함수가 f(n, i, s)이도록 수정될 수 있는데, 이때 s는 온라인 소셜 네트워크에서 이용가능한 추가 정보이다. 특정 실시예로, 추가 정보는 예컨대 소셜-그래프 친밀성 정보, 태그-이력 정보 또는 사용자 입력(예컨대, 타이프어헤드 필드 내 사용자가 입력한 문자열)을 포함할 수 있다. 또한, 시간-감쇠 인자는 태그-제안 알고리즘에서 사용되는 하나 이상의 인자에 적용될 수 있다. 예컨대, 시간-감쇠는 태그-이력 정보에 대하여 고려될 수 있어서, 더 최근의 태그는 태그-제안 알고리즘에서 더 많은 가중치가 부여된다. 이후, 예측은 사용자가 특정 사용자에 대한 이미지를 태그하기 위해 선택할 수 있는 태그 제안으로서 사용자에게 송신될 수 있다. 태그 제안은 사용자가 태그-라벨 필드로 문자를 입력할 때 제시될 수 있으며, 태그 제안은 사용자가 필드로 더 많은 문자를 입력할수록 타이프어헤드 기능을 사용하여 실시간으로 조정(refine)될 수 있다. 소셜 네트워크 정보를 사용하여 태그 제안을 개선하는 추가적인 논의는 본 명세서에서 참조로 통합되고 2013년 5월 30일자로 출원된 미국특허출원 제2013/0262588호에서 확인할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 위치 이력 비교 및 근접성 계수를 사용하여 소셜 네트워킹 시스템(160)으로 공유되는 이미지에 대한 태그 제안을 개선시킬 수 있다. 즉, 태그-제안 알고리즘은 함수가 f(n, i, s, l)이도록 수정될 수 있는데, l은 소셜 네트워킹 시스템(160)에 의해 액세스되는 위치-이력 정보이다. 특정 실시예로, 위치 이력 비교 및 근접성 계수는 알고리즘에 의해 분석되는 얼굴 인식 후보의 수를 감소시키는데 소셜 네트워킹 시스템(160)에 의해 사용될 수 있거나, 하나 이상의 후보의 점수를 개선하는데 사용될 수 있다.
특정 실시예로, 위치-이력 정보에 액세스하지 않는 태그-제안은 잠재적 후보를 좁혀서 2 또는 3개의 후보를 사용자에게 제안할 수 있지만, 소셜 네트워킹 시스템(160)은 다른 소셜 네트워킹 정보에 기반하여 나머지 후보들 사이에서 더 명확히 하지 못할 수 있다. 예로서 제한 없이, 사용자 Andy는 이미지를 캡처하고 소셜 네트워킹 시스템(160)에서 그 이미지를 공유할 수 있는데, 그 이미지는 Andy 및 다른 사용자 Betty 모두를 묘사한다. Betty는 일란성 쌍둥이 Christy를 가질 수 있고, Betty와 Christy는 Andy에 대하여 매우 유사한 소셜 친밀성을 가진다. 위치-이력 정보 구성요소가 없는 태그-제안 알고리즘을 사용하는 경우, 소셜 네트워킹 시스템(160)은 이미지가 Andy 및 Betty 또는 Christy 중 하나를 묘사한다고 결정할 수 있지만, 이 둘 사이를 더 구별하지 못할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 이후 위치-이력 정보에 액세스하여 Betty와 Christy 사이를 더 구별할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 태그-제안 알고리즘의 일환으로서 위치-이력 정보에 액세스하여 알고리즘의 실행 중에 Christy가 아닌 Betty가 사진에서 묘사되고 있다고 결정할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 위치-이력 정보를 사용하여 태그 제안에 대한 고려대상에서 하나 이상의 후보를 제거할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 특정 이미지와 관련되는 위치를 결정할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은: 이미지가 소셜 네트워킹 시스템(160)으로 공유될 때 이미지 내 이미지 메타데이터에 기반하여; 이미지 생성과 이미지 공유 사이의 시간 차가 매우 작다면, 이미지가 소셜 네트워킹 시스템(160)으로 공유될 때 업로드하는 사용자의 위치(예컨대, Andy의 위치)에 의해; 이미지 내 태그되는 다른 사용자의 위치 이력(예컨대, Andy의 위치 이력)에 기반하여; 또는 이미지와 관련한 사용자의 활동들의 체크인이나 태그에 의해(예컨대, Andy는 특정 장소로의 체크인의 일부로 사진을 공유하거나 이미지에 "at Dolores Park"란 코멘트를 게시하며, 소셜 네트워킹 시스템(160)은 그 태그에 기반하여 Dolores Park와 사진을 연관시킬 수 있음), 관련 위치를 결정할 수 있다. 이미지에 대한 위치 메타데이터가 이용가능하다면, 이미자가 공유되기 상당한 시간 전에 생성되었더라도, 소셜 네트워킹 시스템(160)은 비교를 위해 위치 메타데이터를 사용할 수 있다. 예로서 제한 없이, Andy가 사진을 찍은 한달 후 소셜 네트워킹 시스템(160)으로 이미지를 공유할지라도, 위치 메타데이터는 태그-제안 알고리즘을 개선시키는데 사용될 수 있다. 이미지의 생성과 소셜 네트워킹 시스템(160)으로의 업로드 사이에 임계 시간이 지난다면, 소셜 네트워킹 시스템(160)은 업로드하는 사용자의 위치가 이미지와 관련된다고 믿을 만한 위치가 아니라고 결정할 수 있다. 이 예에서, 소셜 네트워킹 시스템(160)은 비교를 위해 이미지가 촬영될 때 Andy의 위치 이력을 사용할 수 있다.
특정 실시예로, 이미지에 대한 관련 위치가 결정되면, 소셜 네트워킹 시스템(160)은 관련 위치를 하나 이상의 후보의 위치 이력과 비교하여 이미지가 가진 위치와 시간이 일치하는지를 결정할 수 있다. 상술한 예에서, Andy가 촬영하고 한달 후에 이미지를 공유한다면, 소셜 네트워킹 시스템(160)은 이미지가 촬영된 시점에서 한달 전으로부터 Betty 및 Christy의 위치 업데이트를 볼 수 있다. 이미지가 촬영된 시점에 Christy가 사진 위치로부터 매우 멀리 떨어져 있었다면, 소셜 네트워킹 시스템(160)은 얼굴 인식 후보로서 Christy를 제거할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)이 하나의 후보가 이미지의 위치 근처에 있었고 다른 후보들은 그렇지 않았다고 결정할 수 있다면, 소셜 네트워킹 시스템(160)은 근처의 후보가 사용자에게 제안해야 할 가능성이 가장 높은 후보라고 결정할 수 있다. 예로서 제한 없이, 이미지가 촬영된 시점에, Betty와 Christy가 모두 CA의 San Francisco에 있었지만 Betty는 이미지의 위치의 20야드 이내에 있었던 반면 Christy는 500야드 떨어져 있었다면, 소셜 네트워킹 시스템(160)은 태그 제안용 후보로서 Betty를 선택할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 이미지와 관련된 또 다른 사용자의 위치 이력을 사용하여 태그-제안 알고리즘을 개선시킬 수 있다. 소셜 네트워킹 시스템(160)은 한 후보의 위치 이력을, 이미지를 소셜 네트워킹 시스템(160)으로 공유하는 사용자 또는 이미지 내에 묘사되는 또 다른 사용자의 위치 이력과 비교할 수 있다. 상술한 예에서, Andy는 공유하는 사용자 및 이미지 내 묘사된 다른 사용자 모두이다. 따라서, 소셜 네트워킹 시스템(160)은 Andy의 위치 이력을 Betty 및 Christy의 위치 이력들과 비교하여 두 명 중 누가 이미지에 묘사된 사람일 가능성이 있는지를 결정할 수 있다.
특정 실시예로, 얼굴-인식 점수는 소셜 네트워킹 시스템(160)의 제1 이미지에 대하여 소셜 네트워킹 시스템(160)의 제2 이미지에 대한 얼굴-인식 점수를 결정하기 위한 입력으로서 계산된다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 추가 입력으로서 태그 제안의 소셜 네트워킹 시스템(160)의 한 명 이상의 사용자에 의한 확인을 사용할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)이 상기 예에서 Betty가 Andy에 의해 공유된 이미지에 묘사되는 사람이라고 결정했다면, 소셜 네트워킹 시스템(160)은 이미지에서 Betty를 태그하도록 제안할 수 있고, Andy는 수용할 수 있다. Andy가 이후 그 자신 및 Betty 또는 Christy 중 하나일 수 있는 또 다른 사람을 묘사하는 제2 이미지를 공유하고, 소셜 네트워킹 시스템(160)이 제2 이미지가 제1 이미지와 매우 유사한 위치 및 시간 메타데이터를 가진다고 결정하면, 소셜 네트워킹 시스템(160)은 제2 이미지의 위치에 대한 Betty 및 Christy의 위치 이력 비교에 기반하여 새로운 얼굴-인식 점수를 계산하지 않고 Betty가 제2 이미지에서도 또한 묘사된다고 결정할 수 있다.
도 16은 소셜 네트워킹 시스템(160)의 특정 사용자에게 제시될 컨텐츠 아이템의 순위화를 결정하기 위한 예시적인 방법을 도시한다. 단계 1610에서, 소셜 네트워킹 시스템(160)은 소셜 네트워킹 시스템(160)과 관련되고 적어도 하나의 사람을 묘사하는 이미지에 액세스할 수 있다. 단계 1620에서, 소셜 네트워킹 시스템(160)은 태그 제안용으로 제1 사용자 세트의 사용자에 각각 대응하는 하나 이상의 얼굴-인식 점수를 결정할 수 있다. 특정 실시예로, 얼굴-인식 점수는 이미지와 관련된 소셜 그래프의 하나 이상의 노드에 대한 사용자의 소셜 친밀성에 기반하여 이미지에 대하여 특정 사용자에 대해 계산된 친밀성 계수를 포함할 수 있다. 단계 1630에서, 소셜 네트워킹 시스템(160)은 이미지와 관련된 위치와 사용자의 위치 이력의 비교에 적어도 부분적으로 기반하여 얼굴-인식 점수를 조정할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(160)은 이미지가 생성된 위치 또는 이미지와 관련된 또 다른 사용자의 위치 이력과 제1 사용자 세트의 사용자의 위치 이력을 비교할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 얼굴-인식 점수를 0으로 조정함으로써 이미지와 관련된 위치과 공통의 위치 이력을 가지지 않는 사용자에 대한 얼굴-인식 점수를 조정할 수 있고, 효과적으로 사용자를 태그 제안에서 제거할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 특정 얼굴-인식 점수와 관련된 특정 사용자의 위치 이력 및 이미지와 관련된 위치 사이의 근접한 만남에 기반하여 특정 얼굴-인식 점수를 상향으로 조정할 수 있다. 단계 1640에서, 소셜 네트워킹 시스템(160)은 이미지에 묘사된 사람에 대한 하나 이상의 태그 제안을 생성하고, 태그 제안을 한 명 이상의 사용자에게 제시할 수 있다.
적절한 경우, 특정 실시예는 도 16의 방법의 하나 이상의 단계를 반복할 수 있다. 비록 본 명세서는 특정 순서로 발생하는 것으로서 도 16의 방법의 특정 단계를 설명하고 도시하지만, 본 명세서는 임의의 적절한 순서로 발생하는 도 16의 방법의 임의의 적절한 단계를 고려한다. 게다가, 비록 본 명세서는 도 16의 방법의 특정 단계를 수행하는 특정 컴포넌트, 장치 또는 시스템을 설명하고 도시하지만, 본 명세서는 도 16의 방법의 임의의 적절한 단계를 수행하는 임의의 적절한 컴포넌트, 장치, 장치 또는 시스템의 임의의 적절한 조합을 고려한다.
소셜 그래프 친밀성 및 계수
특정 실시예로, 소셜 네트워킹 시스템(160)은 다양한 소셜 그래프 엔티티들의 서로에 대한 소셜 그래프 친밀성(이하 "친밀성"이라고도 함)을 결정할 수 있다. 친밀성은 사용자, 컨셉, 컨텐츠, 행위, 광고, 온라인 소셜 네트워크와 연관된 다른 객체, 또는 이들의 임의의 적절한 조합과 같이 온라인 소셜 네트워크와 연관된 특정 객체들 사이의 관계의 강도 또는 관심의 정도를 표현할 수 있다. 친밀성은 또한, 제3자 시스템(170) 또는 다른 적절한 시스템과 연관된 객체에 관련하여 결정될 수 있다. 각각의 사용자, 주제, 또는 컨텐츠의 타입에 대한 소셜 그래프 엔티티의 전체 친밀성이 확립될 수 있다. 전체 친밀성은 소셜 그래프 엔티티와 연관된 행위 또는 관계에 대한 지속적인 모니터링에 기초하여 변경될 수 있다. 비록 본 명세서는 특정 방식으로 특정 친밀성을 결정하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 임의의 적절한 친밀성을 결정하는 것을 고려한다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 친밀성 계수(이하 "계수"라고도 함)를 사용하여 소셜 그래프 친밀성을 측정하거나 수량화할 수 있다. 계수는 온라인 소셜 네트워크와 연관된 특정 객체 사이의 관계의 강도를 표현하거나 수량화할 수 있다. 계수는 또한, 행위에 대한 사용자의 관심에 기초하여 사용자가 특정 행위를 수행할 예측된 확률을 측정하는 확률 또는 함수를 표현할 수 있다. 이러한 방식으로, 사용자의 미래의 행위는 사용자의 과거의 행위에 기초하여 예측될 수 있고, 여기서 계수는 사용자의 행위의 이력에 적어도 부분적으로 기초하여 계산될 수 있다. 계수는 온라인 소셜 네트워크 내부 또는 외부일 수 있는 임의의 개수의 행위를 예측하는데 사용될 수 있다. 예로서 제한 없이, 이러한 행위는 메시지 전송, 컨텐츠 게시 또는 컨텐츠에 대해 코멘트하기와 같은 다양한 타입의 통신; 프로필 페이지, 미디어 또는 다른 적절한 컨텐츠에 액세스하거나 열람하는 것과 같은 다양한 타입의 관찰 행위; 동일한 그룹에 있거나, 동일한 사진에 태그되거나, 동일한 위치에 체크인되거나, 동일한 이벤트에 참석하는 것과 같은 둘 이상의 소셜 그래프 엔티티들에 관한 다양한 타입의 일치 정보(coincidence information); 또는 다른 적절한 행위를 포함할 수 있다. 비록 본 명세서는 특정 방식으로 친밀성을 측정하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 친밀성을 측정하는 것을 고려한다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 계수를 계산하기 위해 다양한 인자를 사용할 수 있다. 이러한 인자는 예컨대, 사용자 행위, 객체, 위치 정보, 다른 적절한 인자, 또는 이들의 임의의 조합을 포함할 수 있다. 특정 실시예로, 상이한 인자는 계수를 계산할 때 다른 가중치가 적용될 수 있다. 각각의 인자에 대한 가중치는 일정하거나, 또는 가중치는 예컨대, 사용자, 관계의 타입, 행위의 타입, 사용자의 위치 등에 따라 변경될 수 있다. 인자에 대한 등급(rating)은 사용자를 위한 전체 계수를 결정하기 위해 그들의 가중치에 따라 조합될 수 있다. 예로서 제한 없이, 특정 사용자 행위에는 등급 및 가중치 모두가 할당되는 한편, 특정 사용자 행위와 연관된 관계에는 등급 및 상관 가중치(예컨대, 가중치가 총 100%가 됨)가 할당된다. 특정 객체를 향하는 사용자의 계수를 계산하기 위해, 사용자의 행위에 할당된 등급은 예컨대, 전체 계수의 60%를 포함할 수 있는 한편, 사용자 및 객체 사이의 관계는 전체 계수의 40%를 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 계수를 계산하는데 사용되는 다양한 인자에 대한 가중치를 결정할 때, 가령 예컨대, 정보가 액세스된 이후의 시간, 붕괴 인자(decay factor), 액세스의 빈도, 정보에 대한 관계, 또는 정보가 액세스된 객체에 대한 관계, 객체에 연결된 소셜 그래프 엔티티에 대한 관계, 사용자 행위의 단기 또는 장기 평균, 사용자 피드백, 다른 적절한 변수, 또는 이들의 임의의 조합과 같은 다양한 변수를 고려할 수 있다. 예로서 제한 없이, 계수는 특정 행위에 의해 제공된 신호의 강도가 시간에 따라 붕괴되도록 야기하는 붕괴 인자를 포함할 수 있어서, 더 최근의 행위가 계수를 계산할 때보다 관련이 있도록 한다. 등급 및 가중치는 계수가 기초로 하는 행위에 대한 지속적인 추적에 기초하여 연속으로 업데이트될 수 있다. 임의의 타입의 프로세스 또는 알고리즘은 각각의 인자에 대한 등급 및 인자에 할당되는 가중치를 할당하고, 조합하며, 평균을 내는 등에 이용될 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 과거의 행위 및 과거의 사용자 응답에 대해 훈련된 기계-습득 알고리즘, 또는 데이터를 다양한 옵션 및 측정 응답에 노출함으로써 사용자로부터 획득(farm)되는 데이터를 사용하여 계수를 결정할 수 있다. 비록 본 명세서는 특정 방식으로 계수를 계산하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 계수를 계산하는 것을 고려한다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 사용자의 행위에 기초하여 계수를 계산할 수 있다. 소셜 네트워킹 시스템(160)은 온라인 소셜 네트워크에서, 제3자 시스템(170)에서, 다른 적절한 시스템에서, 또는 이들의 임의의 조합에서 이러한 행위를 모니터링할 수 있다. 임의의 타입의 사용자 행위가 추적되거나 모니터링될 수 있다. 전형적인 사용자 행위는 프로필 페이지 보기, 컨텐츠 생성 또는 게시, 컨텐츠와 상호작용, 그룹에 가입, 이벤트의 참석을 리스팅하고 확인하기, 위치에 체크인하기, 특정 페이지를 좋아하기, 페이지를 생성하기, 및 소셜 행위를 용이하게 하는 다른 작업을 수행하기를 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 특정 타입의 컨텐츠를 갖는 사용자의 행위에 기초하여 계수를 계산할 수 있다. 컨텐츠는 온라인 소셜 네트워크, 제3자 시스템(170), 또는 다른 적절한 시스템과 연관될 수 있다. 컨텐츠는 사용자, 프로필 페이지, 게시물, 뉴스 소식, 헤드라인, 인스턴트 메시지, 채팅방 대화, 이메일, 광고, 사진, 비디오, 음악, 다른 적절한 객체, 또는 이들의 임의의 조합을 포함할 수 있다. 소셜 네트워킹 시스템(160)은 하나 이상의 행위가 주제, 컨텐츠, 다른 사용자 등에 대한 친밀성을 표시하는지 여부를 결정하기 위해 사용자의 행위를 분석할 수 있다. 예로서 제한 없이, 사용자가 "커피" 또는 그것의 변형품과 관련된 컨텐츠를 자주 게시한다면, 소셜 네트워킹 시스템(160)은 사용자가 컨셉 "커피"에 관해 높은 계수를 가진다고 결정할 수 있다. 특정 행위 또는 특정 타입의 행위에 다른 행위보다 더 높은 가중치 및/또는 등급이 할당될 수 있고, 이는 전체 계산된 계수에 영향을 줄 수 있다. 예로서 제한 없이, 제1 사용자가 제2 사용자에게 이메일을 보낸다면, 행위에 대한 가중치 또는 등급은 사용자가 제2 사용자를 위한 사용자-프로필 페이지를 단순히 보는 것보다 더 높을 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 특정 객체들 사이의 관계의 타입에 기초하여 계수를 계산할 수 있다. 소셜 그래프(200)를 참조하면, 소셜 네트워킹 시스템(160)은 계수를 계산할 때, 특정 사용자 노드(202) 및 컨셉 노드(204)를 연결하는 에지(206)의 개수 및/또는 타입을 분석할 수 있다. 예로서 제한 없이, 배우자-타입 에지 (두 명의 사용자가 혼인관계임을 표현함)에 의해 연결된 사용자 노드(202)는 친구-타입 에지에 의해 연결된 사용자 노드(202)보다 높은 계수가 할당될 수 있다. 즉, 특정 사용자에 대한 행위 및 관계에 할당된 가중치에 의존하여, 전체 친밀성은 사용자의 배우자에 관한 컨텐츠에 대해 사용자의 친구에 관한 컨텐츠보다 높게 결정될 수 있다. 특정 실시예로, 다른 객체에 대해 사용자가 갖는 관계는 그 객체에 대한 계수를 계산하는데 있어서 사용자의 행위의 가중치 및/또는 등급에 영향을 줄 수 있다. 예로서 제한 없이, 사용자가 제1 사진에서 태그되지만, 제2 사진은 오로지 좋아하기만 한다면, 소셜 네트워킹 시스템(160)은, 컨텐츠와 태그-인 타입 관계를 가지는 것에 컨텐츠와 좋아요-타입 관계를 가지는 것보다 높은 가중치 및/또는 등급이 할당되기 때문에 사용자가 제2 사진보다 제1 사진에 대해 더 높은 계수를 가진다고 결정할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 특정 객체에 대해 하나 이상의 제2 사용자가 갖는 관계에 기초하여 제1 사용자에 대한 계수를 계산할 수 있다. 즉, 다른 사용자가 객체에 대해 갖는 연결 및 계수는 제1 사용자의 객체에 대한 계수에 영향을 줄 수 있다. 예로서 제한 없이, 제1 사용자가 하나 이상의 제2 사용자에게 연결되거나 제2 사용자에 대해 높은 계수를 가지며 이러한 제2 사용자가 특정 객체에 연결되거나 특정 객체에 대해 높은 계수를 가진다면, 소셜 네트워킹 시스템(160)은 제1 사용자 또한 특정 객체에 대해 상대적으로 높은 계수를 가진다고 결정할 수 있다. 특정 실시예로, 계수는 특정 객체 사이의 이격도에 기초할 수 있다. 낮은 계수는 소셜 그래프(200)에서 제1 사용자에게 간접적으로 연결된 사용자의 컨텐츠 객체에 대한 관심을 제1 사용자가 공유할 가능성이 감소함을 표현할 수 있다. 예로서 제한 없이, 소셜 그래프(200)에서 더 가까운 (즉, 더 낮은 이격도의) 소셜 그래프 엔티티들은 소셜 그래프(200)에서 더 멀리 떨어진 엔티티들보다 높은 계수를 가질 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 위치 정보에 기초하여 계수를 계산할 수 있다. 서로 지리적으로 가까운 객체들은 더 떨어진 객체들보다 서로 더욱 관련되거나 서로에 대해 더 관심이 있는 것으로 여겨질 수 있다. 특정 실시예로, 특정 객체에 대한 사용자의 계수는 사용자 (또는 사용자의 클라이언트 시스템(130)의 위치)와 연관된 현재 위치에 대한 객체의 위치의 인접도에 기초할 수 있다. 제1 사용자는 제1 사용자에게 더 가까운 다른 사용자들 또는 컨셉들에 더 관심이 있을 수 있다. 예로서 제한 없이, 사용자가 공항으로부터 1마일 떨어져 있고, 주유소로부터 2마일 떨어져 있다면, 소셜 네트워킹 시스템(160)은 공항의 사용자에 대한 인접도에 기초하여 사용자가 주유소보다 공항에 대해 더 높은 계수를 가진다고 결정할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은 계수 정보에 기초하여 사용자에 대해 특정 행위를 수행할 수 있다. 계수는 사용자의 행위에 대한 관심에 기초하여 사용자가 특정 행위를 수행할 것인지 여부를 예측하는데 사용될 수 있다. 계수는, 사용자에 대해 임의의 타입의 객체 가령, 광고, 검색 결과, 뉴스 소식, 미디어, 메시지, 알림, 또는 다른 적절한 객체들을 생성 또는 제시할 때 사용될 수 있다. 계수는 또한, 적절한 경우 이러한 객체들을 순위화하고 정렬하는데 이용될 수 있다. 이러한 방식으로, 소셜 네트워킹 시스템(160)은 사용자의 관심 및 현재 상황에 관련된 정보를 제공할 수 있고, 사용자가 이러한 관심이 있는 정보를 찾을 가능성을 증가시킨다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 계수 정보에 기초하여 컨텐츠를 생성할 수 있다. 컨텐츠 객체는 사용자 고유의 계수에 기초하여 제공되거나 선택될 수 있다. 예로서 제한 없이, 계수는 사용자를 위한 미디어를 생성하는데 사용될 수 있으며, 여기서 사용자에게는, 사용자가 미디어 객체에 관해 높은 전체 계수를 갖는 미디어가 제시될 수 있다. 다른 예로서 제한 없이, 계수는 사용자를 위한 광고를 생성하는데 사용될 수 있으며, 여기서 사용자에게는, 사용자가 광고되는 객체에 관해 높은 전체 계수를 가지는 광고가 제시될 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 계수 정보에 기초하여 검색 결과를 생성할 수 있다. 특정 사용자를 위한 검색 결과는 질의하는 사용자와 관련하여 검색 결과와 연관되는 계수에 기초하여 점수화 또는 순위화될 수 있다. 예로서 제한 없이, 더 높은 계수를 갖는 객체에 대응하는 검색 결과는 더 낮은 계수를 갖는 객체에 대응하는 결과보다 검색-결과 페이지에서 더 높게 순위화될 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(160)은, 특정 시스템 또는 프로세스로부터의 계수의 대한 요청에 응답하여 계수를 계산할 수 있다. 주어진 상황에서 사용자가 행하거나 (또는 그 대상이 될) 가능성이 높은 행위를 예측하기 위해, 임의의 프로세스는 사용자를 위해 계산된 계수를 요청할 수 있다. 요청은 또한, 계수를 계산하는데 사용되는 다양한 인자를 위해 사용할 가중치의 세트를 포함할 수 있다. 이러한 요청은 온라인 소셜 네트워크에서 실행되는 프로세스로부터, 제3자 시스템(170)으로부터 (예컨대, API 또는 다른 통신 채널을 통해), 또는 다른 적절한 시스템으로부터 올 수 있다. 요청에 응답하여, 소셜 네트워킹 시스템(160)은 계수를 계산하거나 (계수가 이미 계산되고 저장되었다면 계수 정보에 액세스)할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(160)은 특정 프로세스에 관한 친밀성을 측정할 수 있다. (온라인 소셜 네트워크의 내부 및 외부 모두에서의) 상이한 프로세스는 특정 객체 또는 객체들의 세트에 대한 계수를 요청할 수 있다. 소셜 네트워킹 시스템(160)은 친밀성의 측정을 요청한 특정 프로세스에 관련되는 친밀성의 측정을 제공할 수 있다. 이러한 방식으로, 각각의 프로세스는, 프로세스가 친밀성의 측정을 사용하는 상이한 컨텍스트를 위해 맞춰진(tailored) 친밀성의 측정을 수신한다.
소셜 그래프 친밀성 및 친밀성 계수와 관련하여, 특정 실시예는, 각각이 참조로 통합되는, 2006년 8월 11일자 출원된 미국 특허출원 번호 제11/503093호, 2010년 12월 22일자 출원된 미국 특허출원 번호 제12/977027호, 2010년 12월 23일자 출원된 미국 특허출원 번호 제12/978265호, 및 2012년 10월 1일자 출원된 미국 특허출원 번호 제13/632869호에 개시된 하나 이상의 시스템, 컴포넌트, 구성요소, 기능, 방법, 동작, 또는 단계를 이용할 수 있다.
프라이버시
특정 실시예로, 온라인 소셜 네트워크의 하나 이상의 컨텐츠 객체는 프라이버시 설정(privacy setting)과 관련될 수 있다. 객체에 대한 프라이버시 설정(또는 "접근 설정")은 예컨대 객체와 관련하여, 인증 서버의 인덱스에서, 다른 적절한 방식으로 또는 이들의 임의의 조합과 같이 임의의 적절한 방식으로 저장될 수 있다. 객체의 프라이버시 설정은 객체(또는 객체와 관련된 특정 정보)가 온라인 소셜 네트워크를 사용하여 어떻게 접근(예컨대, 열람 또는 공유)될 수 있는지를 명시할 수 있다. 객체에 대한 프라이버시 설정이 특정 사용자가 그 객체에 접근할 수 있게 하는 경우, 객체는 그 사용자에 대하여 "보이는 것(visible)"으로 기술될 수 있다. 예로서 제한 없이, 온라인 소셜 네트워크의 사용자는 사용자 프로필 페이지에서 경력 정보에 접근할 수 있는 사용자 세트를 식별하는 사용자 프로필 페이지에 대한 프라이버시 설정을 특정할 수 있고, 따라서 다른 사용자들이 정보에 접근하는 것을 배제할 수 있다. 특정 실시예로, 프라이버시 설정은 객체와 관련된 임의의 정보를 접근하도록 허용되지 않아야 하는 사용자의 "차단 리스트(blocked list)"를 명시할 수 있다. 즉, 차단 리스트는 객체가 보이지 않는 하나 이상의 사용자 또는 엔티티를 명시할 수 있다. 예로서 제한 없이, 사용자는 사용자와 관련된 사진 앨범에 접근하지 않을 수 있는 사용자 세트를 명시할 수 있고, 따라서 이런 사용자들이 사진 앨범에 접근하는 것을 배제할 수 있다(또한, 가능하게는 사용자 세트 내에 있지 않은 임의의 사용자가 사진 앨범에 접근할 수 있게 할 수 있다). 특정 실시예로, 프라이버시 설정은 특정 소셜 그래프 요소와 관련될 수 있다. 가령 노드 또는 에지와 같은 소셜 그래프 요소의 프라이버시 설정은 소셜 그래프 요소, 소셜 그래프 요소와 관련된 정보 또는 소셜 그래프 요소와 관련된 컨텐츠 객체가 온라인 소셜 네트워크를 사용하여 어떻게 접근될 수 있는지를 명시할 수 있다. 예로서 제한 없이, 특정 사진에 대응하는 특정 컨셉 노드(204)는 사진이 사진에 태드된 사용자들 및 그의 친구들에 의해서만 접근될 수 있다고 명시하는 프라이버시 설정을 가질 수 있다. 특정 실시예로, 인증 서버를 통해, 예컨대 적절한 개인정보 설정을 설정함으로써, 사용자는 사용자의 행위를 소셜 네트워킹 시스템(160)에 의해 로그되게 하거나 다른 시스템(예컨대, 제3자 시스템(170))과 공유되게 하도록 사용자가 참여하거나 탈퇴할 수 있다. 특정 실시예로, 객체와 관련된 프라이버시 설정은 임의의 적절하게 세분화된 접근 허용 또는 접근 거절을 명시할 수 있다. 예로서 제한 없이, 접근 또는 접근의 거절은 특정 사용자들(예컨대, 오직 자신만, 나의 동거인 및 나의 상사), 특정 이격도 내의 사용자들(예컨대, 친구 또는 친구의 친구), 사용자 그룹(예컨대, 게임 그룹, 나의 가족), 사용자 네트워크(예컨대, 특정 회사의 사원들, 특정 대학의 학생들이나 동창생들), 모든 사용자("공개(public)"), 사용자 없음("비밀(private)"), 제3자 시스템(170)의 사용자, 특정 애플리케이션(예컨대, 제3자 애플리케이션, 외부 웹사이트), 다른 적절한 사용자나 엔티티 또는 이들의 임의의 조합에 대해 명시될 수 있다. 비록 본 명세서는 특정 방식으로 특정 프라이버시 설정을 사용하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 임의의 적절한 프라이버시 설정을 사용하는 것을 고려한다.
특정 실시예로, 하나 이상의 서버(162)는 프라이버시 설정을 강제하기 위한 인증/프라이버시 서버일 수 있다. 데이터 스토어(164)에 저장된 특정 객체에 대한 사용자(또는 다른 엔티티)로부터의 요청에 응답하여, 소셜 네트워킹 시스템(160)은 객체에 대한 요청을 데이터 스토어(164)로 송신할 수 있다. 사용자가 객체와 관련된 프라이버시 설정에 기반하여 객체에 접근하도록 인증된다고 인증 서버가 결정한다면, 요청은 그 요청과 관련된 사용자를 식별할 수 있고 사용자(또는 사용자의 클라이언트 시스템(130))에게만 단지 송신될 수 있다. 요청중인 사용자가 객체에 접근하도록 인증되지 않는다면, 인증 서버는 요청된 객체가 데이터 스토어(164)로부터 검색되는 것을 차단하거나, 요청된 객체가 사용자에게 송신되는 것을 차단할 수 있다. 검색 질의 문맥에서, 질의중인 사용자가 객체를 접근하도록 인증된다면 객체는 검색 결과로서 단지 생성될 수 있다. 즉, 객체는 질의중인 사용자에게 보이는 가시성을 가져야 한다. 객체가 사용자에게 보이지 않는 가시성을 가진다면, 객체는 검색 결과로부터 배제될 수 있다. 비록 본 명세서는 특정 방식으로 프라이버시 설정을 강제하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 프라이버시 설정을 강제하는 것을 고려한다.
시스템 및 방법
도 17은 예시적인 컴퓨터 시스템(1700)을 도시한다. 특정 실시예로, 하나 이상의 컴퓨터 시스템들(1700)은 본 명세서에 기술되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 수행한다. 특정 실시예로, 하나 이상의 컴퓨터 시스템들(1700)은 본 명세서에 기술되거나 도시된 기능을 제공한다. 특정 실시예로, 하나 이상의 컴퓨터 시스템들(1700)을 실행하는 소프트웨어는 본 명세서에 기술되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 수행하거나, 본 명세서에 기술되거나 도시된 기능을 제공한다. 특정 실시예는 하나 이상의 컴퓨터 시스템들(1700)의 하나 이상의 부분들을 포함한다. 본 명세서에서, 적절한 경우 컴퓨터 시스템에 대한 언급은 컴퓨팅 장치를 포함할 수 있고 그 역도 또한 동일하다. 게다가, 컴퓨터 시스템에 대한 언급은 적절한 경우 하나 이상의 컴퓨터 시스템을 포함할 수 있다.
본 명세서는 임의의 적절한 수의 컴퓨터 시스템(1700)을 고려한다. 본 명세서는 임의의 적절한 물리적 형태를 취하는 컴퓨터 시스템(1700)을 고려한다. 예로서 제한 없이, 컴퓨터 시스템(1700)은 임베디드 컴퓨터 시스템, 시스템-온-칩(SOC), 단일-보드 컴퓨터 시스템(SBC)(예컨대, 컴퓨터-온-모듈(COM) 또는 시스템-온-모듈(SOM)), 데스크톱 컴퓨터 시스템, 랩톱 또는 노트북 컴퓨터 시스템, 상호작용형 키오스크(kiosk), 메인 프레임, 컴퓨터 시스템 메쉬(mesh), 모바일 전화, 개인 정보 단말기(PDA), 서버, 태블릿 컴퓨터 시스템 또는 이들의 2 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(1700)은 하나 이상의 컴퓨터 시스템(1700)들을 포함할 수 있거나; 일체형 또는 분산형일 수 있거나; 다수의 위치에 걸쳐 있거나, 다수의 기계에 걸쳐 있거나; 다수의 데이터 센터에 걸쳐 있거나; 하나 이상의 네트워크에 하나 이상의 클라우드 성분을 포함할 수 있는 클라우드에 상주할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템(1700)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 실질적으로 공간적 또는 시간적 제한 없이 실행할 수 있다. 예로서 제한 없이, 하나 이상의 컴퓨터 시스템(1700)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 실시간으로 또는 일괄 모드로 실행할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템(1700)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 다른 시기에 또는 다른 위치에서 실행할 수 있다.
특정 실시예로, 컴퓨터 시스템(1700)은 프로세서(1702), 메모리(1704), 저장소(1706), 입력/출력(I/O) 인터페이스(1708), 통신 인터페이스(1710) 및 버스(1712)를 포함한다. 본 명세서가 특정 배열로 특정한 수의 특정 구성요소를 갖는 특정 컴퓨터 시스템을 기술하고 도시하지만, 본 명세서는 임의의 적절한 배열로 임의의 적절한 수의 임의의 적절한 구성요소를 갖는 임의의 적절한 컴퓨터 시스템을 고려한다.
특정 실시예로, 프로세서(1702)는 가령 컴퓨터 프로그램을 구성하는 명령어와 같은 명령어를 실행하기 위한 하드웨어를 포함한다. 예로서 제한 없이, 명령어를 실행하기 위해, 프로세서(1702)는 내부 레지스터, 내부 캐시, 메모리(1704) 또는 저장소(1706)로부터 명령어를 검색(또는 페치(fetch))할 수 있고; 명령어를 디코딩하고 실행한 후; 하나 이상의 결과를 내부 레지스터, 내부 캐시, 메모리(1704) 또는 저장소(1706)에 기록할 수 있다. 특정 실시예로, 프로세서(1702)는 데이터용, 명령어용 또는 주소용 하나 이상의 내부 캐시를 포함할 수 있다. 본 명세서는 적절한 경우 임의의 적절한 수의 임의의 적절한 내부 캐시들을 포함하는 프로세서(1702)를 고려한다. 예로서 제한 없이, 프로세서(1702)는 하나 이상의 명령어 캐시들, 하나 이상의 데이터 캐시들 및 하나 이상의 변환 색인 버퍼(translation lookaside buffers, TLBs)를 포함할 수 있다. 명령어 캐시에 저장된 명령어들은 메모리(1704)나 저장소(1706) 내 명령어들의 사본일 수 있고, 명령어 캐시는 프로세서(1702)에 의한 이런 명령어들의 검색 속도를 높일 수 있다. 데이터 캐시 내의 데이터는 프로세서(1702)에서 실행하는 다음 명령들에 의해 접근하거나 메모리(1704)나 저장소(1706)로 기록하기 위해 프로세서(1702)에서 실행되는 이전 명령들의 결과; 또는 다른 적절한 데이터를 동작하는데 프로세서(1702)에서 실행하는 명령어를 위한 메모리(1704)나 저장소(1706) 내의 데이터의 사본일 수 있다. 데이터 캐시는 프로세서(1702)에 의한 판독 또는 기록 동작의 속도를 높일 수 있다. TLB들은 프로세서(1702)에 의한 가상 주소 변환의 속도를 높일 수 있다. 특정 실시예로, 프로세서(1702)는 데이터용, 명령어용 또는 주소용 하나 이상의 내부 레지스터를 포함할 수 있다. 본 명세서는 적절한 경우 임의의 적절한 수의 임의의 적절한 내부 레지스터들을 포함하는 프로세서(1702)를 고려한다. 적절한 경우, 프로세서(1702)는 하나 이상의 산술 논리 유닛(ALUs)을 포함할 수 있거나; 멀티-코어 프로세서일 수 있거나; 하나 이상이 프로세서들(1702)을 포함할 수 있다. 본 명세서가 특정 프로세서를 기술하고 도시하지만, 본 명세서는 임의의 적절한 프로세서를 고려한다.
특정 실시예로, 메모리(1704)는 프로세서(1702)가 실행하는 명령어 또는 프로세서(1702)가 운영하는 데이터를 저장하기 위한 메인 메모리를 포함한다. 예로서 제한 없이, 컴퓨터 시스템(1700)은 저장소(1706)나 또 다른 소스(가령, 예컨대 또 다른 컴퓨터 시스템(1700))에서 메모리(1704)로 명령어를 로딩할 수 있다. 이후, 프로세서(1702)는 메모리(1704)에서 내부 레지스터나 내부 캐시로 명령어를 로딩할 수 있다. 명령어를 실행하기 위해, 프로세서(1702)는 내부 레지스터나 내부 캐시로부터 명령어를 검색하고 이들을 디코딩할 수 있다. 명령어의 실행 중 또는 실행 후, 프로세서(1702)는 (중간 결과 또는 최종 결과일 수 있는) 하나 이상의 결과를 내부 레지스터나 내부 캐시로 기록할 수 있다. 이후, 프로세서(1702)는 하나 이상의 이런 결과를 메모리(1704)에 기록할 수 있다. 특정 실시예로, 프로세서(1702)는 (저장소(1706) 또는 다른 곳과는 대조적으로) 하나 이상의 내부 레지스터나 내부 캐시에서 또는 메모리(1704)에서 단지 명령어만을 실행하며, (저장소(1706) 또는 다른 곳과는 대조적으로) 하나 이상의 내부 레지스터나 내부 캐시에서 또는 메모리(1704)에서 단지 데이터만을 운영한다. (주소 버스 및 데이터 버스를 각각 포함할 수 있는) 하나 이상의 메모리 버스는 프로세서(1702)를 메모리(1704)로 연결할 수 있다. 하기에 기술되는 바와 같이, 버스(1712)는 하나 이상의 메모리 버스를 포함할 수 있다. 특정 실시예로, 하나 이상의 메모리 관리 유닛(MMUs)은 프로세서(1702)와 메모리(1704) 사이에 상주하며, 프로세서(1702)에 의해 요청되는 메모리(1704)로의 접근을 용이하게 한다. 특정 실시예로, 메모리(1704)는 랜덤 액세스 메모리(RAM)를 포함한다. 적절한 경우, 이런 RAM은 휘발성 메모리일 수 있다. 적절한 경우, 이런 RAM은 동적 RAM(DRAM) 또는 정적 RAM(SRAM)일 수 있다. 게다가, 적절한 경우, 이런 RAM은 단일 포트형 또는 다중-포트형 RAM일 수 있다. 본 명세서는 임의의 적절한 RAM을 고려한다. 적절한 경우, 메모리(1704)는 하나 이상의 메모리(1704)를 포함할 수 있다. 본 명세서가 특정 메모리를 기술하고 도시하지만, 본 명세서는 임의의 적절한 메모리를 고려한다.
특정 실시예로, 저장소(1706)는 데이터용 또는 명령어용 대용량 저장소를 포함한다. 예로서 제한 없이, 저장소(1706)는 하드 디스크 드라이브(HDD), 플로피 디스크 드라이브, 플래시 메모리, 광디스크, 자기-광학 디스크, 자기 테이프, 범용 직렬 버스(USB) 드라이브 또는 이들의 2 이상의 조합을 포함할 수 있다. 적절한 경우, 저장소(1706)는 착탈식 또는 비-착탈식(또는 고정) 매체를 포함할 수 있다. 적절한 경우, 저장소(1706)는 컴퓨터 시스템(1700)의 내부 또는 외부에 있을 수 있다. 특정 실시예로, 저장소(1706)는 비휘발성, 고체-상태(solid-state) 메모리이다. 특정 실시예로, 저장소(1706)는 읽기 전용 메모리(ROM)를 포함한다. 적절한 경우, 이런 ROM은 마스크-프로그램화된 ROM, 프로그램가능 ROM(PROM), 소거가능 PROM(EPROM), 전기적 소거가능 PROM(EEPROM), 전기적 변경가능 ROM(EAROM), 플래시 메모리 또는 이들의 2 이상의 조합일 수 있다. 본 명세서는 임의의 적절한 물리적 형태를 취하는 대용량 저장소(1706)를 고려한다. 적절한 경우, 저장소(1706)는 프로세서(1702)와 저장소(1706) 사이의 통신을 용이하게 하는 하나 이상의 저장소 제어 유닛을 포함할 수 있다. 적절한 경우, 저장소(1706)는 하나 이상의 저장소(1706)를 포함할 수 있다. 본 명세서가 특정 저장소를 기술하고 도시하지만, 본 명세서는 임의의 적절한 저장소를 고려한다.
특정 실시예로, I/O 인터페이스(1708)는 컴퓨터 시스템(1700)과 하나 이상의 I/O 장치 사이의 통신을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어 또는 이들 모두를 포함한다. 적절한 경우, 컴퓨터 시스템(1700)은 하나 이상의 이들 I/O 장치를 포함할 수 있다. 하나 이상의 이들 I/O 장치는 사람과 컴퓨터 시스템(1700) 사이의 통신을 가능하게 할 수 있다. 예로서 제한 없이, I/O 장치는 키보드, 키패드, 마이크로폰, 모니터, 마우스, 프린터, 스캐너, 스피커, 스틸 카메라(still camera), 스타일러스(stylus), 태블릿, 터치 스크린, 트랙볼(trackball), 비디오 카메라, 다른 적절한 I/O 장치 또는 이들의 2 이상의 조합을 포함할 수 있다. I/O 장치는 하나 이상의 센서를 포함할 수 있다. 본 명세서는 임의의 적절한 I/O 장치 및 이에 대한 적절한 I/O 인터페이스(1708)를 고려한다. 적절한 경우, I/O 인터페이스(1708)는 프로세서(1702)가 하나 이상의 이들 I/O 장치를 구동할 수 있도록 하는 하나 이상의 장치 또는 소프트웨어 드라이버를 포함할 수 있다. 적절한 경우, I/O 인터페이스(1708)는 하나 이상의 I/O 인터페이스(1708)를 포함할 수 있다. 본 명세서가 특정 I/O 인터페이스를 기술하고 도시하지만, 본 명세서는 임의의 적절한 I/O 인터페이스를 고려한다.
특정 실시예로, 통신 인터페이스(1710)는 컴퓨터 시스템(1700)과 하나 이상의 다른 컴퓨터 시스템(1700)이나 하나 이상의 네트워크 사이의 통신(가령, 예컨대 패킷-기반 통신)을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어 또는 이들 모두를 포함한다. 예로서 제한 없이, 통신 인터페이스(1710)는 이더넷이나 다른 유선-기반 네트워크로 통신하기 위한 네트워크 인터페이스 제어장치(NIC)나 네트워크 어댑터 또는 가령 WI-FI 네트워크와 같이 무선 네트워크로 통신하기 위한 무선 NIC(WNIC)나 무선 어댑터를 포함할 수 있다. 본 명세서는 임의의 적절한 네트워크 및 이에 대한 임의의 적절한 통신 인터페이스(1710)를 고려한다. 예로서 제한 없이, 컴퓨터 시스템(1700)은 애드 혹 네트워크(ad hoc network), 개인 영역 네트워크(PAN), 근거리 네트워크(LAN), 광역 네트워크(WAN), 대도시 네트워크(MAN), 인터넷의 하나 이상의 부분 또는 2 이상의 이런 네트워크들의 조합으로 통신할 수 있다. 하나 이상의 이런 네트워크의 하나 이상의 부분은 유선 또는 무선일 수 있다. 예로서, 컴퓨터 시스템(1700)은 무선 PAN(WPAN)(가령, 예컨대 BLUETOOTH WPAN), WI-FI 네트워크, WI-MAX 네트워크, 셀룰러 전화 네트워크(가령, 예컨대 GSM(Global System for Mobile Communication) 네트워크), 다른 적절한 무선 네트워크 또는 2 이상의 이런 네트워크들의 조합으로 통신할 수 있다. 적절한 경우, 컴퓨터 시스템(1700)은 임의의 이들 네트워크에 대한 임의의 적절한 통신 인터페이스(1710)를 포함할 수 있다. 적절한 경우, 통신 인터페이스(1710)는 하나 이상의 통신 인터페이스(1710)를 포함할 수 있다. 본 명세서가 특정 통신 인터페이스를 기술하고 도시하지만, 본 명세서는 임의의 적절한 통신 인터페이스를 고려한다.
특정 실시예로, 버스(1712)는 컴퓨터 시스템(1700)의 구성요소를 서로 연결하는 하드웨어, 소프트웨어 또는 이들 모두를 포함한다. 예로서 제한 없이, 버스(1712)는 AGP(Accelerated Graphics Port)이나 다른 그래픽 버스, EISA(Enhanced Industry Standard Architecture) 버스, FSB(front-side bus), HT(HYPERTRANSPORT) 인터커넥트, ISA(Industry Standard Architecture) 버스, INFINIBAND 인터커넥트, LPC(low-pin-count) 버스, 메모리 버스, MCA(Micro Channel Architecture) 버스, PCI(Peripheral Component Interconnect) 버스, PCIe(PCI-Express) 버스, SATA(serial advanced technology attachment) 버스, VLB(Video Electronics Standard Association local) 버스, 다른 적절한 버스 또는 2 이상의 이런 버스의 조합을 포함할 수 있다. 적절한 경우, 버스(1712)는 하나 이상의 버스(1712)를 포함할 수 있다. 본 명세서가 특정 버스를 기술하고 도시하지만, 본 명세서는 임의의 적절한 버스나 인터커넥트를 고려한다.
본 명세서에서, 컴퓨터-판독가능한 비-일시적 저장매체 또는 저장매체들은 하나 이상의 반도체 기반 또는 다른 집적회로(ICs)(가령, 예컨대 FPGAs(field-programmable gate arrays) 또는 ASICs(application-specific ICs)), 하드 디스크 드라이브(HDDs), 하이브리드 하드 디스크(HHDs), 광학 디스크, 광학 디스크 드라이브(ODDs), 자기-광학 디스크, 자기-광학 드라이브, 플로피 디스크, 플로피 디스크 드라이브(FDDs), 자기 테이프, 고체-상태 드라이브(SSDs), RAM-드라이브, SECURE DIGITAL 카드나 드라이브, 임의의 다른 적절한 컴퓨터-판독가능한 비-일시적 저장매체 또는, 적절한 경우, 2 이상의 이들의 임의의 적절한 조합을 포함할 수 있다. 적절한 경우, 컴퓨터-판독가능한 비-일시적 저장매체는 휘발성, 비휘발성 또는 휘발성과 비휘발성의 조합일 수 있다.
기타 등등
본 명세서에서, "또는"은 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, 포괄적인 것이며 배타적인 것이 아니다. 따라서, 본 명세서에서 "A 또는 B"는 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, "A, B 또는 둘 모두"를 의미한다. 게다가, "및"은 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, 공동 및 별개 모두이다. 따라서, 본 명세서에서 "A 및 B"는 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, "A 및 B가 공동이든 별개이든 상관없이 모두"를 의미한다.
본 명세서의 범위는 당업자가 이해할 수 있는 본 명세서에 기술되거나 도시된 예시적인 실시예들에 대한 모든 변화, 치환, 변형, 대체 및 변경을 포함한다. 본 명세서의 범위는 본 명세서에 기술되거나 도시된 예시적인 실시예들로 국한되지 않는다. 게다가, 본 명세서는 특정 컴포넌트, 구성요소, 기능, 동작 또는 단계를 포함하는 것으로 본 명세서의 각각의 실시예들을 기술하고 도시하지만, 임의의 이런 실시예들은 당업자가 이해할 수 있는 본 명세서에 어디든 기술되거나 도시되는 임의의 컴포넌트, 구성요소, 기능, 동작 또는 단계의 임의의 조합이나 치환을 포함할 수 있다. 게다가, 첨부된 청구범위에서 특정 기능을 수행하도록 설계되거나, 배치되거나, 할 수 있거나, 구성되거나, 할 수 있게 하거나, 동작할 수 있거나, 동작하는 장치나 시스템 또는 장치나 시스템의 구성요소에 대한 언급은 장치, 시스템 또는 구성요소가 그렇게 설계되거나, 배치되거나, 할 수 있거나, 구성되거나, 가능하거나, 동작할 수 있거나 동작하는 한, 장치, 시스템, 구성요소, 그 또는 그러한 특정 기능이 활성화되었는지, 턴온 되었는지, 잠금 해제되었는지 여부를 포함한다.

Claims (20)

  1. 모바일-클라이언트 시스템에 의해:
    제1 시간 구간 동안 모바일-클라이언트 시스템의 메모리에 모바일-클라이언트 시스템의 위치 이력 데이터를 저장하는 단계;
    모바일-클라이언트 시스템이 온라인 소셜 네트워크와 현재 네트워크 연결을 가지는지 여부를 감지하는 단계;
    온라인 소셜 네트워크의 위치 서버로 저장된 위치 이력 데이터를 전송할지를 결정하는 단계;
    모바일-클라이언트 시스템이 온라인 소셜 네트워크와 현재 연결되어 있다면, 현재 네트워크 연결을 사용하여 온라인 소셜 네트워크의 위치 서버로 위치 이력 데이터를 전송하는 단계; 및
    모바일-클라이언트 시스템이 온라인 소셜 네트워크와 현재 연결되어 있지 않다면, 위치 서버로 위치 이력 데이터를 전송하지 않는 단계를 포함하며,
    상기 위치 이력 데이터는: 제1 시간 구간 동안 모바일-클라이언트 시스템과 관련된 복수의 지리적 위치; 및 지리적 위치와 각각 대응하는 하나 이상의 시간 스탬프(time stamp)를 포함하는 방법.
  2. 제 1 항에 있어서,
    모바일-클라이언트 시스템은 모바일-클라이언트 시스템의 제1 사용자에 의해 소셜 네트워크 활동을 수행하기 위해 온라인 소셜 네트워크와 이전에 확립된 네트워크 연결을 가지는 방법.
  3. 제 2 항에 있어서,
    소셜 네트워크 활동을 수행하기 위해 온라인 소셜 네트워크와 이전에 확립된 네트워크 연결은 온라인 소셜 네트워크의 위치 서버로 위치 이력 데이터를 전송하는데 사용되는 현재 네트워크 연결인 방법.
  4. 제 2 항에 있어서,
    제1 사용자에 의한 소셜 네트워크 활동은 온라인 소셜 네트워크에서 한 명 이상의 제2 사용자에게 메시지를 송신하는 것을 포함하는 방법.
  5. 제 1 항에 있어서,
    모바일-클라이언트 시스템의 하나 이상의 센서에 의해, 현재 시간 스탬프에서 모바일-클라이언트 시스템과 관련된 현재 지리적 위치를 감지하는 단계; 및
    현재 지리적 위치 및 현재 시간 스탬프를 포함하도록 모바일-클라이언트 시스템의 위치 이력 데이터를 업데이트하는 단계를 더 포함하는 방법.
  6. 제 5 항에 있어서,
    현재 시간 스탬프는 제1 시간 구간 동안의 시간에 대응하는 방법.
  7. 제 1 항에 있어서,
    위치 이력 데이터는 모바일-클라이언트 시스템의 제1 사용자의 체크인 활동을 더 포함하는 방법.
  8. 제 1 항에 있어서,
    위치 이력 데이터는 모바일-클라이언트 시스템의 제1 사용자에 의해 태그된 위치를 더 포함하는 방법.
  9. 제 1 항에 있어서,
    온라인 소셜 네트워크의 위치 서버로 저장된 위치 이력 데이터를 전송할지를 결정하는 단계는 모바일-클라이언트 시스템의 현재 상태를 기초로 하는 방법.
  10. 제 9 항에 있어서,
    모바일-클라이언트 시스템의 현재 상태는:
    모바일-클라이언트 시스템의 현재 속도; 및
    모바일-클라이언트 시스템의 현재 배터리 레벨에 적어도 부분적으로 기초하며,
    현재 속도가 이동중이고 현재 배터리 레벨이 임계 배터리 레벨보다 크다면, 현재 네트워크 연결을 사용하여 온라인 소셜 네트워크의 위치 서버로 위치 이력 데이터를 전송하고,
    현재 속도가 정지되어 있고 현재 배터리 레벨이 임계 배터리 레벨 미만이라면, 위치 서버로 위치 이력 데이터를 전송하지 않는 방법.
  11. 제 1 항에 있어서,
    온라인 소셜 네트워크의 위치 서버로 저장된 위치 이력 데이터를 전송할지를 결정하는 단계는 온라인 소셜 네트워크의 위치 서버로 위치 이력 데이터를 송신하기 위한 전력 사용량을 기초로 하며,
    전력 사용량이 임계 전력 사용량 이하라면, 현재 네트워크 연결을 사용하여 온라인 소셜 네트워크의 위치 서버로 위치 이력 데이터를 전송하고,
    전력 사용량이 임계 전력 사용량보다 크다면, 위치 서버로 위치 이력 데이터를 전송하지 않는 방법.
  12. 제 11 항에 있어서,
    위치 서버로 위치 이력 데이터를 송신하기 위한 전력 사용량은 모바일-클라이언트 시스템을 각성시키는 전력 사용량에 적어도 부분적으로 기초하는 방법.
  13. 제 11 항에 있어서,
    위치 서버로 위치 이력 데이터를 송신하기 위한 전력 사용량은 모바일-클라이언트 시스템이 온라인 소셜 네트워크와의 현재 네트워크 연결을 감지했는지 여부에 적어도 부분적으로 기초하는 방법.
  14. 제 1 항에 있어서,
    온라인 소셜 네트워크의 위치 서버로 저장된 위치 이력 데이터를 전송할지를 결정하는 단계는 모바일-클라이언트 시스템이 위치 서버로부터 위치 이력 데이터에 대한 요청을 수신했는지 여부를 기초로 하는 방법.
  15. 제 14 항에 있어서,
    모바일-클라이언트 시스템으로부터의 위치 이력 데이터에 대한 요청을 위치 서버로부터 수신하는 단계를 더 포함하며,
    위치 이력 데이터에 대한 요청은: 모바일-클라이언트 시스템으로부터의 하나 이상의 위치 업데이트의 이력; 또는 모바일-클라이언트 시스템과 관련된 제1 사용자의 지리적 위치에 대한 온라인 소셜 네트워크의 제2 사용자로부터의 요청에 응답하여 송신되는 방법.
  16. 제 1 항에 있어서,
    모바일-클라이언트 시스템은 기결정된 시간 간격으로 위치 이력 데이터를 저장하는 방법.
  17. 제 16 항에 있어서,
    기결정된 시간 간격은 온라인 소셜 네트워크의 위치 서버에 의해 특정되는 방법.
  18. 제 16 항에 있어서,
    기결정된 시간 간격은 모바일-클라이언트 시스템에 의해 특정되는 방법.
  19. 제1 시간 구간 동안 모바일-클라이언트 시스템의 메모리에 모바일-클라이언트 시스템의 위치 이력 데이터를 저장하고;
    모바일-클라이언트 시스템이 온라인 소셜 네트워크와 현재 네트워크 연결을 가지는지 여부를 감지하며;
    온라인 소셜 네트워크의 위치 서버로 저장된 위치 이력 데이터를 전송할지를 결정하고;
    모바일-클라이언트 시스템이 온라인 소셜 네트워크와 현재 연결되어 있다면, 현재 네트워크 연결을 사용하여 온라인 소셜 네트워크의 위치 서버로 위치 이력 데이터를 전송하며;
    모바일-클라이언트 시스템이 온라인 소셜 네트워크와 현재 연결되어 있지 않다면, 위치 서버로 위치 이력 데이터를 전송하지 않도록 실행시 동작하는 소프트웨어를 수록한 하나 이상의 컴퓨터-판독가능한 비-일시적 저장매체로서,
    상기 위치 이력 데이터는: 제1 시간 구간 동안 모바일-클라이언트 시스템과 관련된 복수의 지리적 위치; 및 지리적 위치와 각각 대응하는 하나 이상의 시간 스탬프(time stamp)를 포함하는 컴퓨터-판독가능한 비-일시적 저장매체.
  20. 하나 이상의 프로세서; 및
    프로세서와 연결되고 프로세서에 의해 실행가능한 명령어를 포함하는 메모리를 포함하는 시스템으로서,
    상기 프로세서는:
    제1 시간 구간 동안 모바일-클라이언트 시스템의 메모리에 모바일-클라이언트 시스템의 위치 이력 데이터를 저장하고;
    모바일-클라이언트 시스템이 온라인 소셜 네트워크와 현재 네트워크 연결을 가지는지 여부를 감지하며;
    온라인 소셜 네트워크의 위치 서버로 저장된 위치 이력 데이터를 전송할지를 결정하고;
    모바일-클라이언트 시스템이 온라인 소셜 네트워크와 현재 연결되어 있다면, 현재 네트워크 연결을 사용하여 온라인 소셜 네트워크의 위치 서버로 위치 이력 데이터를 전송하며;
    모바일-클라이언트 시스템이 온라인 소셜 네트워크와 현재 연결되어 있지 않다면, 위치 서버로 위치 이력 데이터를 전송하지 않는 명령어를 실행할 때 동작하며,
    상기 위치 이력 데이터는: 제1 시간 구간 동안 모바일-클라이언트 시스템과 관련된 복수의 지리적 위치; 및 지리적 위치와 각각 대응하는 하나 이상의 시간 스탬프(time stamp)를 포함하는 시스템.
KR1020187023003A 2014-04-16 2014-07-15 위치-기반 서비스를 사용한 모바일 클라이언트의 전력 관리 KR20180093107A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461980453P 2014-04-16 2014-04-16
US61/980,453 2014-04-16
US14/323,923 2014-07-03
US14/323,923 US9823724B2 (en) 2014-04-16 2014-07-03 Power management of mobile clients using location-based services
PCT/US2014/046604 WO2015160375A1 (en) 2014-04-16 2014-07-15 Power management of mobile clients using location-based services

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167031894A Division KR101889415B1 (ko) 2014-04-16 2014-07-15 위치-기반 서비스를 사용한 모바일 클라이언트의 전력 관리

Publications (1)

Publication Number Publication Date
KR20180093107A true KR20180093107A (ko) 2018-08-20

Family

ID=54322003

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167031894A KR101889415B1 (ko) 2014-04-16 2014-07-15 위치-기반 서비스를 사용한 모바일 클라이언트의 전력 관리
KR1020187023003A KR20180093107A (ko) 2014-04-16 2014-07-15 위치-기반 서비스를 사용한 모바일 클라이언트의 전력 관리

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167031894A KR101889415B1 (ko) 2014-04-16 2014-07-15 위치-기반 서비스를 사용한 모바일 클라이언트의 전력 관리

Country Status (10)

Country Link
US (11) US9910479B2 (ko)
JP (2) JP6450398B2 (ko)
KR (2) KR101889415B1 (ko)
CN (1) CN106605418B (ko)
AU (1) AU2014391126B2 (ko)
BR (1) BR112016023962A2 (ko)
CA (2) CA2945009C (ko)
IL (2) IL248147B (ko)
MX (1) MX358110B (ko)
WO (1) WO2015160375A1 (ko)

Families Citing this family (184)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11386139B2 (en) * 2005-10-26 2022-07-12 Cortica Ltd. System and method for generating analytics for entities depicted in multimedia content
US9715112B2 (en) 2014-01-21 2017-07-25 Osterhout Group, Inc. Suppression of stray light in head worn computing
US9400390B2 (en) 2014-01-24 2016-07-26 Osterhout Group, Inc. Peripheral lighting for head worn computing
US9952664B2 (en) 2014-01-21 2018-04-24 Osterhout Group, Inc. Eye imaging in head worn computing
US9298007B2 (en) 2014-01-21 2016-03-29 Osterhout Group, Inc. Eye imaging in head worn computing
US9229233B2 (en) 2014-02-11 2016-01-05 Osterhout Group, Inc. Micro Doppler presentations in head worn computing
US9965681B2 (en) 2008-12-16 2018-05-08 Osterhout Group, Inc. Eye imaging in head worn computing
US9703895B2 (en) * 2010-06-11 2017-07-11 Microsoft Technology Licensing, Llc Organizing search results based upon clustered content
US11152118B2 (en) * 2010-07-20 2021-10-19 Interfaced Solutions, Inc. Electronic medical record interactive interface system
US9894116B2 (en) * 2012-04-12 2018-02-13 Intel Corporation Techniques for augmented social networking
US9300835B2 (en) * 2012-04-12 2016-03-29 Thinglink Oy Image based interaction
WO2015035185A1 (en) 2013-09-06 2015-03-12 Apple Inc. Providing transit information
US9414219B2 (en) * 2013-06-19 2016-08-09 Facebook, Inc. Detecting carriers for mobile devices
US10191279B2 (en) 2014-03-17 2019-01-29 Osterhout Group, Inc. Eye imaging in head worn computing
US9829707B2 (en) 2014-08-12 2017-11-28 Osterhout Group, Inc. Measuring content brightness in head worn computing
US9841599B2 (en) 2014-06-05 2017-12-12 Osterhout Group, Inc. Optical configurations for head-worn see-through displays
US20160019715A1 (en) 2014-07-15 2016-01-21 Osterhout Group, Inc. Content presentation in head worn computing
US9810906B2 (en) 2014-06-17 2017-11-07 Osterhout Group, Inc. External user interface for head worn computing
US10684687B2 (en) 2014-12-03 2020-06-16 Mentor Acquisition One, Llc See-through computer display systems
US9594246B2 (en) 2014-01-21 2017-03-14 Osterhout Group, Inc. See-through computer display systems
US9299194B2 (en) 2014-02-14 2016-03-29 Osterhout Group, Inc. Secure sharing in head worn computing
US9746686B2 (en) 2014-05-19 2017-08-29 Osterhout Group, Inc. Content position calibration in head worn computing
US20150228119A1 (en) 2014-02-11 2015-08-13 Osterhout Group, Inc. Spatial location presentation in head worn computing
US9939934B2 (en) 2014-01-17 2018-04-10 Osterhout Group, Inc. External user interface for head worn computing
US11103122B2 (en) 2014-07-15 2021-08-31 Mentor Acquisition One, Llc Content presentation in head worn computing
US9575321B2 (en) 2014-06-09 2017-02-21 Osterhout Group, Inc. Content presentation in head worn computing
US10649220B2 (en) 2014-06-09 2020-05-12 Mentor Acquisition One, Llc Content presentation in head worn computing
US10254856B2 (en) 2014-01-17 2019-04-09 Osterhout Group, Inc. External user interface for head worn computing
US9753288B2 (en) 2014-01-21 2017-09-05 Osterhout Group, Inc. See-through computer display systems
US20150205135A1 (en) 2014-01-21 2015-07-23 Osterhout Group, Inc. See-through computer display systems
US9766463B2 (en) 2014-01-21 2017-09-19 Osterhout Group, Inc. See-through computer display systems
US11737666B2 (en) 2014-01-21 2023-08-29 Mentor Acquisition One, Llc Eye imaging in head worn computing
US9836122B2 (en) 2014-01-21 2017-12-05 Osterhout Group, Inc. Eye glint imaging in see-through computer display systems
US9740280B2 (en) 2014-01-21 2017-08-22 Osterhout Group, Inc. Eye imaging in head worn computing
US9523856B2 (en) 2014-01-21 2016-12-20 Osterhout Group, Inc. See-through computer display systems
US11669163B2 (en) 2014-01-21 2023-06-06 Mentor Acquisition One, Llc Eye glint imaging in see-through computer display systems
US9494800B2 (en) 2014-01-21 2016-11-15 Osterhout Group, Inc. See-through computer display systems
US9532714B2 (en) 2014-01-21 2017-01-03 Osterhout Group, Inc. Eye imaging in head worn computing
US9651784B2 (en) 2014-01-21 2017-05-16 Osterhout Group, Inc. See-through computer display systems
US11892644B2 (en) 2014-01-21 2024-02-06 Mentor Acquisition One, Llc See-through computer display systems
US11487110B2 (en) 2014-01-21 2022-11-01 Mentor Acquisition One, Llc Eye imaging in head worn computing
US9852545B2 (en) * 2014-02-11 2017-12-26 Osterhout Group, Inc. Spatial location presentation in head worn computing
US9401540B2 (en) 2014-02-11 2016-07-26 Osterhout Group, Inc. Spatial location presentation in head worn computing
US20150241963A1 (en) 2014-02-11 2015-08-27 Osterhout Group, Inc. Eye imaging in head worn computing
USD755198S1 (en) * 2014-02-24 2016-05-03 Kennedy-Wilson, Inc. Display screen or portion thereof with graphical user interface
US20160187651A1 (en) 2014-03-28 2016-06-30 Osterhout Group, Inc. Safety for a vehicle operator with an hmd
US10482490B2 (en) 2014-04-09 2019-11-19 Sailthru, Inc. Behavioral tracking system and method in support of high-engagement communications
US9910479B2 (en) 2014-04-16 2018-03-06 Facebook, Inc. Location based content promotion on online social networks
US11074293B2 (en) * 2014-04-22 2021-07-27 Microsoft Technology Licensing, Llc Generating probabilistic transition data
TW201541389A (zh) * 2014-04-23 2015-11-01 Lbstek Inc 應用於手持式裝置自動接收通知的方法及其相關系統
US10853589B2 (en) 2014-04-25 2020-12-01 Mentor Acquisition One, Llc Language translation with head-worn computing
US9651787B2 (en) 2014-04-25 2017-05-16 Osterhout Group, Inc. Speaker assembly for headworn computer
US9672210B2 (en) 2014-04-25 2017-06-06 Osterhout Group, Inc. Language translation with head-worn computing
US20150316577A1 (en) * 2014-05-02 2015-11-05 Qualcomm Incorporated Motion direction determination and application
US9983224B2 (en) 2014-05-02 2018-05-29 Qualcomm Incorporated Motion direction determination and application
US20150316579A1 (en) * 2014-05-02 2015-11-05 Qualcomm Incorporated Motion direction determination and application
US10281484B2 (en) 2014-05-02 2019-05-07 Qualcomm Incorporated Motion direction determination and application
US9989649B2 (en) * 2014-05-06 2018-06-05 Bi Incorporated Systems and methods for power efficient tracking
US9843894B2 (en) 2014-05-30 2017-12-12 Apple Inc. Determining a size of a significant user location
US10663740B2 (en) 2014-06-09 2020-05-26 Mentor Acquisition One, Llc Content presentation in head worn computing
JP6373087B2 (ja) * 2014-06-20 2018-08-15 キヤノン株式会社 情報処理装置と、その制御方法及びプログラム
US9801024B2 (en) * 2014-07-17 2017-10-24 Kashif SALEEM Method and system for managing people by detection and tracking
EP3183673A4 (en) * 2014-08-21 2018-03-21 Arc10 Technologies Inc. Systems and methods for connecting and communicating with others in a mobile device environment
US10824654B2 (en) 2014-09-18 2020-11-03 Snap Inc. Geolocation-based pictographs
US11216869B2 (en) 2014-09-23 2022-01-04 Snap Inc. User interface to augment an image using geolocation
US9426730B2 (en) * 2014-10-17 2016-08-23 Blackberry Limited GNSS-assisted cellular network selection
KR20160047889A (ko) * 2014-10-23 2016-05-03 삼성전자주식회사 전자 장치 및 피공유자 추천 서비스 운용 방법
US9015285B1 (en) * 2014-11-12 2015-04-21 Snapchat, Inc. User interface for accessing media at a geographic location
US9684172B2 (en) 2014-12-03 2017-06-20 Osterhout Group, Inc. Head worn computer display systems
US9692838B2 (en) 2014-12-09 2017-06-27 Facebook, Inc. Generating business insights using beacons on online social networks
US9729667B2 (en) 2014-12-09 2017-08-08 Facebook, Inc. Generating user notifications using beacons on online social networks
US9729643B2 (en) * 2014-12-09 2017-08-08 Facebook, Inc. Customizing third-party content using beacons on online social networks
USD751552S1 (en) 2014-12-31 2016-03-15 Osterhout Group, Inc. Computer glasses
USD753114S1 (en) 2015-01-05 2016-04-05 Osterhout Group, Inc. Air mouse
US10242107B2 (en) 2015-01-11 2019-03-26 Microsoft Technology Licensing, Llc Extraction of quantitative data from online content
US10084867B1 (en) * 2015-02-10 2018-09-25 Open Invention Network, Llc Location awareness assistant for switching between a business profile mode and a personal profile mode
US10389830B2 (en) * 2015-02-13 2019-08-20 International Business Machines Corporation Device delegation of push notification distribution
US11223671B2 (en) * 2015-02-15 2022-01-11 Huawei Technologies Co., Ltd. Information sharing method and apparatus
US20160239985A1 (en) 2015-02-17 2016-08-18 Osterhout Group, Inc. See-through computer display systems
US9269103B1 (en) * 2015-02-19 2016-02-23 Square, Inc. Combining orders for delivery
US20160248825A1 (en) * 2015-02-25 2016-08-25 Chian Chiu Li Registration-Free Location-Based Social Networks
US20160253721A1 (en) * 2015-02-26 2016-09-01 Mark C. Munro Photographic evaluation, rating system, and assessment tool
KR101725343B1 (ko) * 2015-03-12 2017-04-26 네이버 주식회사 콜택시 서비스 제공 방법 및 이를 제공하는 콜택시 서비스 서버
US10616239B2 (en) 2015-03-18 2020-04-07 Snap Inc. Geo-fence authorization provisioning
US9892167B2 (en) * 2015-03-31 2018-02-13 Rovi Guides, Inc. Methods and systems for generating cluster-based search results
US10395045B2 (en) 2015-04-17 2019-08-27 Dropbox, Inc. Collection folder for collecting file submissions and scanning for plagiarism
US10417799B2 (en) * 2015-05-07 2019-09-17 Facebook, Inc. Systems and methods for generating and presenting publishable collections of related media content items
US10216800B2 (en) * 2015-06-18 2019-02-26 Rocket Apps, Inc. Self expiring social media
DE102015211627B4 (de) * 2015-06-23 2019-12-05 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zur Information eines Anwenders bei der Annäherung an einen Zielort
US20160380955A1 (en) * 2015-06-23 2016-12-29 Alec Kremins Web-based social network
CN108701207B (zh) 2015-07-15 2022-10-04 15秒誉股份有限公司 用于面部识别和视频分析以识别上下文视频流中的个人的装置和方法
US9628419B2 (en) * 2015-07-29 2017-04-18 Mimecast North America, Inc. System for annotation of electronic messages with contextual information
US20170064512A1 (en) * 2015-08-24 2017-03-02 Perry Street Software, Inc. System and method for facilitating user connections in travel locations
US10319053B1 (en) 2015-08-28 2019-06-11 Square, Inc. Item selection for fast deliveries
US10862847B2 (en) * 2015-08-31 2020-12-08 Google Llc Selective delay of social content sharing
US10863003B2 (en) 2015-09-10 2020-12-08 Elliot Berookhim Methods, devices, and systems for determining a subset for autonomous sharing of digital media
US10043149B1 (en) 2015-09-30 2018-08-07 Square, Inc. Add-on orders for delivery
KR20180105636A (ko) 2015-10-21 2018-09-28 15 세컨즈 오브 페임, 인크. 얼굴 인식 애플리케이션들에서 긍정 오류를 최소화하기 위한 방법들 및 장치
US9602965B1 (en) * 2015-11-06 2017-03-21 Facebook, Inc. Location-based place determination using online social networks
US9635079B1 (en) * 2015-11-12 2017-04-25 International Business Machines Corporation Social media sharing based on video content
USD776147S1 (en) * 2015-12-05 2017-01-10 Velvet Ropes, Inc. Mobile device having graphical user interface
US10142396B2 (en) * 2015-12-15 2018-11-27 Oath Inc. Computerized system and method for determining and communicating media content to a user based on a physical location of the user
US10176448B1 (en) 2015-12-30 2019-01-08 Square, Inc. Generation of dynamic delivery zones for merchants
US10713966B2 (en) 2015-12-31 2020-07-14 Dropbox, Inc. Assignments for classrooms
US10262039B1 (en) * 2016-01-15 2019-04-16 Facebook, Inc. Proximity-based searching on online social networks
US9813874B2 (en) * 2016-02-03 2017-11-07 Twosense, Inc. System and method for maximizing mobile device power using intelligent geo-location selection
US10591728B2 (en) 2016-03-02 2020-03-17 Mentor Acquisition One, Llc Optical systems for head-worn computers
US10667981B2 (en) 2016-02-29 2020-06-02 Mentor Acquisition One, Llc Reading assistance system for visually impaired
US10091318B2 (en) * 2016-03-30 2018-10-02 Facebook, Inc. Content-based notification delivery
US10097657B2 (en) * 2016-04-19 2018-10-09 International Business Machines Corporation Providing push notifications to a device based on nearby devices
CN106095780B (zh) * 2016-05-26 2019-12-03 达而观信息科技(上海)有限公司 一种基于位置特征的检索方法
US10643185B2 (en) 2016-06-10 2020-05-05 Apple Inc. Suggested locations for calendar events
CN105871921B (zh) * 2016-06-12 2019-07-05 腾讯科技(深圳)有限公司 一种数据处理方法及装置
US10606821B1 (en) 2016-08-23 2020-03-31 Microsoft Technology Licensing, Llc Applicant tracking system integration
US10387811B2 (en) * 2016-08-29 2019-08-20 International Business Machines Corporation Optimally rearranging team members in an agile environment
US10185738B1 (en) 2016-08-31 2019-01-22 Microsoft Technology Licensing, Llc Deduplication and disambiguation
US10986146B2 (en) * 2016-09-20 2021-04-20 Narinder Pal Mann Apparatuses, systems, and methods for a speaker pool
US10764380B2 (en) * 2016-10-20 2020-09-01 Facebook, Inc. Clustering content items based on a social affinity between users associated with the content items
US10291949B2 (en) * 2016-10-26 2019-05-14 Orcam Technologies Ltd. Wearable device and methods for identifying a verbal contract
GB2555580A (en) * 2016-10-28 2018-05-09 Egress Software Tech Ltd Controlling data transmission
US10506380B2 (en) 2016-12-22 2019-12-10 Nokia Solutions And Networks Oy User motion profiling based on user equipment cell location
JP7082361B2 (ja) * 2017-01-12 2022-06-08 国立大学法人東京工業大学 地域内共助巡回支援システム、地域内共助巡回支援装置、地域内共助巡回支援方法及びプログラム
US10395016B2 (en) * 2017-01-24 2019-08-27 International Business Machines Corporation Communication pattern recognition
US10977345B2 (en) 2017-02-17 2021-04-13 TwoSesnse, Inc. Authentication session extension using ephemeral behavior detection
US11295230B2 (en) * 2017-03-31 2022-04-05 International Business Machines Corporation Learning personalized actionable domain models
KR102515132B1 (ko) * 2017-04-27 2023-03-28 스냅 인코포레이티드 소셜 미디어 플랫폼상의 사용자 위치의 지역적 레벨 표현
US10628959B2 (en) * 2017-05-03 2020-04-21 International Business Machines Corporation Location determination using street view images
US10117054B1 (en) * 2017-06-14 2018-10-30 Microsoft Technology Licensing, Llc Undesirable encounter avoidance
US10728701B1 (en) * 2017-06-20 2020-07-28 Roblox Corporation Proximity friending
US11140232B2 (en) * 2017-06-26 2021-10-05 Facebook, Inc. Analyzing geo-spatial data in layers
US20200177643A1 (en) * 2017-07-07 2020-06-04 Fani Bhushan System and method for establishing a communication session
US20210150418A1 (en) * 2017-07-14 2021-05-20 Solutions B-Citi Inc. System and Method for Managing Parking Queries
US20190026671A1 (en) * 2017-07-20 2019-01-24 DTA International FZCO Device, System, and Method for Optimizing Taxi Dispatch Requests
JP6383059B1 (ja) * 2017-07-21 2018-08-29 テイク エイト インコーポレイテッド プログラム、表示方法及び端末
EP3676726A4 (en) 2017-09-01 2021-01-06 Bynfor, Inc. LOCATION-BASED VERIFICATION TO PREDICT USER CONFIDENTIALITY
US10212555B1 (en) * 2017-09-13 2019-02-19 Microsoft Technology Licensing, Llc Enabling and disabling location sharing based on environmental signals
JP7010637B2 (ja) * 2017-09-22 2022-01-26 トヨタ自動車株式会社 情報処理システム、情報処理装置、方法、及びプログラム
US10339931B2 (en) 2017-10-04 2019-07-02 The Toronto-Dominion Bank Persona-based conversational interface personalization using social network preferences
US10051415B1 (en) 2017-10-04 2018-08-14 The Toronto-Dominion Bank Contextual geo-location idling
US10460748B2 (en) 2017-10-04 2019-10-29 The Toronto-Dominion Bank Conversational interface determining lexical personality score for response generation with synonym replacement
US11061975B2 (en) * 2017-10-25 2021-07-13 International Business Machines Corporation Cognitive content suggestive sharing and display decay
CN108012237B (zh) * 2017-12-13 2020-02-14 Oppo广东移动通信有限公司 定位控制方法、装置、存储介质及终端设备
USD883995S1 (en) * 2018-01-08 2020-05-12 PowerMyLearning Inc. Display screen or portion thereof with graphical user interface
USD883996S1 (en) * 2018-01-08 2020-05-12 PowerMyLearning Inc. Display screen or portion thereof with graphical user interface
US11777785B2 (en) * 2018-01-21 2023-10-03 Cisco Technology, Inc. Alert throttling
WO2019191914A1 (en) * 2018-04-04 2019-10-10 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for on-demand services
US10671142B2 (en) 2018-04-19 2020-06-02 International Business Machines Corporation Social-geofenced-based application management for battery maximization
US11039277B2 (en) * 2018-04-23 2021-06-15 Uber Technologies, Inc Location data transmission scheduling for a mobile computing device
CN108900999B (zh) * 2018-05-25 2021-05-18 北京星网锐捷网络技术有限公司 一种提高无线接入可靠性的方法和接入管理服务器
CN112352256A (zh) * 2018-05-30 2021-02-09 谷歌有限责任公司 优化地理区域选择
US20200005351A1 (en) * 2018-06-28 2020-01-02 Mastercard International Incorporated Systems and Methods for Providing Offers Based on User Location Profiles
US10783522B2 (en) * 2018-07-23 2020-09-22 Capital One Services, Llc Pre-designated fraud safe zones
US10893384B2 (en) * 2018-08-08 2021-01-12 Verizon Patent And Licensing Inc. Methods and systems for managing historical geolocation data for a plurality of mobile devices
US11039278B1 (en) * 2018-08-31 2021-06-15 Facebook, Inc. Dynamic location collection
US10936856B2 (en) 2018-08-31 2021-03-02 15 Seconds of Fame, Inc. Methods and apparatus for reducing false positives in facial recognition
EP3985358A1 (en) * 2018-09-06 2022-04-20 Google LLC Annotating search suggestions based on familiarity to a user
US20200098010A1 (en) * 2018-09-20 2020-03-26 PAG Financial International LLC System and method for providing recommendations based on consumer location
US10855834B2 (en) * 2018-09-26 2020-12-01 Rovi Guides, Inc. Systems and methods for curation and delivery of content for use in electronic calls
US10880433B2 (en) 2018-09-26 2020-12-29 Rovi Guides, Inc. Systems and methods for curation and delivery of content for use in electronic calls
US20220237637A1 (en) * 2018-12-18 2022-07-28 Meta Platforms, Inc. Systems and methods for real time crowdsourcing
US11106324B2 (en) * 2018-12-21 2021-08-31 Microsoft Technology Licensing, Llc Dynamic rendering of items in space-constrained container in user interface
US11010596B2 (en) 2019-03-07 2021-05-18 15 Seconds of Fame, Inc. Apparatus and methods for facial recognition systems to identify proximity-based connections
US11868414B1 (en) * 2019-03-14 2024-01-09 Snap Inc. Graph-based prediction for contact suggestion in a location sharing system
CN110401702B (zh) * 2019-07-09 2022-03-25 北京达佳互联信息技术有限公司 一种离线包下载方法、装置、电子设备和存储介质
US20210037071A1 (en) * 2019-07-29 2021-02-04 Steven Thomas Schoenwald Efficient distribution and display of media
US11821742B2 (en) * 2019-09-26 2023-11-21 Snap Inc. Travel based notifications
US20210097429A1 (en) * 2019-09-30 2021-04-01 Facebook, Inc. Machine learning training resource management
CN110850955B (zh) * 2019-10-30 2023-06-02 腾讯科技(深圳)有限公司 终端的位置信息处理方法、装置及计算设备、存储介质
CN111148042B (zh) * 2019-12-30 2021-07-06 合肥移顺信息技术有限公司 消息提醒方法、装置、控制设备及存储介质
US11140515B1 (en) * 2019-12-30 2021-10-05 Snap Inc. Interfaces for relative device positioning
US11341351B2 (en) 2020-01-03 2022-05-24 15 Seconds of Fame, Inc. Methods and apparatus for facial recognition on a user device
CN111368211B (zh) * 2020-02-20 2023-05-16 腾讯科技(深圳)有限公司 关系链确定方法、装置及存储介质
US11477606B2 (en) 2020-03-25 2022-10-18 William I. Renkis Location-based social networking
TWI800732B (zh) * 2020-04-08 2023-05-01 開曼群島商粉迷科技股份有限公司 適地性個人化內容提供方法與系統
US11586691B2 (en) * 2020-05-21 2023-02-21 Meta Platforms, Inc. Updating a profile of an online system user to include an affinity for an item based on an image of the item included in content received from the user and/or content with which the user interacted
US11314776B2 (en) 2020-06-15 2022-04-26 Snap Inc. Location sharing using friend list versions
US11483267B2 (en) 2020-06-15 2022-10-25 Snap Inc. Location sharing using different rate-limited links
US11290851B2 (en) * 2020-06-15 2022-03-29 Snap Inc. Location sharing using offline and online objects
US11503432B2 (en) 2020-06-15 2022-11-15 Snap Inc. Scalable real-time location sharing framework
US20220318250A1 (en) * 2020-08-18 2022-10-06 Google Llc Systems and methods for identifying events that share a characteristic
US11290563B2 (en) * 2020-08-28 2022-03-29 Meta Platforms, Inc. Social network maps
TWI753674B (zh) * 2020-11-26 2022-01-21 國立清華大學 基於時間之社群網路中傳播機率之計算方法及其系統
US11444906B1 (en) * 2021-07-22 2022-09-13 Slack Technologies, Llc Updating a user interface based on proximity data of users of a communication platform
US11924706B2 (en) * 2021-09-09 2024-03-05 International Business Machines Corporation Notification management in physical surroundings

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7242920B2 (en) 2005-05-31 2007-07-10 Scenera Technologies, Llc Methods, systems, and computer program products for controlling data transmission based on power cost
US20080214148A1 (en) * 2005-11-05 2008-09-04 Jorey Ramer Targeting mobile sponsored content within a social network
US8270933B2 (en) * 2005-09-26 2012-09-18 Zoomsafer, Inc. Safety features for portable electronic device
JP4571069B2 (ja) 2005-11-28 2010-10-27 三菱電機株式会社 動画像符号化装置
US8600347B2 (en) * 2006-09-14 2013-12-03 Futurewei Technologies, Inc. Idle mode notification
CN101374116B (zh) * 2007-08-23 2011-05-18 华为技术有限公司 一种实现在线业务的方法及装置
JP5337449B2 (ja) 2007-11-02 2013-11-06 株式会社エヌ・ティ・ティ・ドコモ 移動局、配信システム及び配信方法
US20090131081A1 (en) * 2007-11-19 2009-05-21 Research In Motion Limited Adjusting wlan scanning parameters based on rate of change of location of mobile device
WO2009075043A1 (ja) * 2007-12-13 2009-06-18 Dai Nippon Printing Co., Ltd. 情報提供システム
US9639740B2 (en) * 2007-12-31 2017-05-02 Applied Recognition Inc. Face detection and recognition
GB0803931D0 (en) 2008-03-03 2008-04-09 Mobile Tracking Ltd Free tracking
JP4523654B2 (ja) 2008-04-15 2010-08-11 株式会社エヌ・ティ・ティ・ドコモ 無線端末、無線通信システム及び無線通信方法
US8447332B2 (en) 2008-05-02 2013-05-21 Xtify, Inc. Location-based services platform
US8284990B2 (en) 2008-05-21 2012-10-09 Honeywell International Inc. Social network construction based on data association
US8369867B2 (en) * 2008-06-30 2013-02-05 Apple Inc. Location sharing
US8325088B2 (en) * 2009-02-04 2012-12-04 Google Inc. Mobile device battery management
US8750906B2 (en) * 2009-02-20 2014-06-10 T-Mobile Usa, Inc. Dynamic elements on a map within a mobile device, such as elements that facilitate communication between users
US20100279713A1 (en) * 2009-04-29 2010-11-04 Research In Motion Limited Method and apparatus for location sharing as a function of time and location
US8670597B2 (en) * 2009-08-07 2014-03-11 Google Inc. Facial recognition with social network aiding
US8326751B2 (en) 2009-09-30 2012-12-04 Zynga Inc. Apparatuses,methods and systems for a trackable virtual currencies platform
US20110191352A1 (en) 2009-12-03 2011-08-04 New Jersey Institute Of Technology Socially- And Context-Aware People-Matching Systems and Methods Relating Thereto
US8606792B1 (en) * 2010-02-08 2013-12-10 Google Inc. Scoring authors of posts
US8825759B1 (en) * 2010-02-08 2014-09-02 Google Inc. Recommending posts to non-subscribing users
US20110238755A1 (en) * 2010-03-24 2011-09-29 Hameed Khan Proximity-based social networking
US8832566B2 (en) * 2010-09-11 2014-09-09 Anurag Wakhlu Graphical user interface for social and professional networking and business transactions
US8824748B2 (en) * 2010-09-24 2014-09-02 Facebook, Inc. Auto tagging in geo-social networking system
US8627391B2 (en) * 2010-10-28 2014-01-07 Intellectual Ventures Fund 83 Llc Method of locating nearby picture hotspots
US8930452B2 (en) * 2010-12-20 2015-01-06 Harman International Industries, Incorporated System and method for automatically posting user-location information to a social network
US10304066B2 (en) * 2010-12-22 2019-05-28 Facebook, Inc. Providing relevant notifications for a user based on location and social information
KR101534995B1 (ko) * 2011-02-05 2015-07-07 애플 인크. 모바일 로케이션 결정을 위한 방법 및 장치
US8392526B2 (en) 2011-03-23 2013-03-05 Color Labs, Inc. Sharing content among multiple devices
WO2012129771A1 (en) * 2011-03-29 2012-10-04 Nokia Corporation Method and apparatus for creating an ephemeral social network
US8661121B1 (en) * 2011-04-11 2014-02-25 Google Inc. System and method for providing location reporting services
US8631084B2 (en) * 2011-04-29 2014-01-14 Facebook, Inc. Dynamic tagging recommendation
US8543135B2 (en) 2011-05-12 2013-09-24 Amit Goyal Contextually aware mobile device
US8843573B2 (en) 2011-05-20 2014-09-23 Facebook, Inc. Lightweight messaging with location between users of a social networking system
US9389299B2 (en) 2011-06-20 2016-07-12 Microsoft Technology Licensing, Llc Mobile communication device maintaining lifetrails in a battery efficient manner
US8601027B2 (en) * 2011-06-20 2013-12-03 Google Inc. Query-based user groups in social networks
US9148399B1 (en) * 2011-06-21 2015-09-29 Google Inc. Automatic publication of a user's application installation events
US9015245B1 (en) * 2011-07-20 2015-04-21 Google Inc. Experience sharing with commenting
US20130185355A1 (en) * 2011-08-04 2013-07-18 Erick Tseng Recommendations Based On Geolocation
US9001720B2 (en) * 2011-08-31 2015-04-07 Maarten Menzo Wentink Power save with data fetch time, with end of data indication, and with more data acknowledgement
CA2850733C (en) * 2011-10-03 2020-03-10 Zoosk, Inc. System and method for validating users using social network or other information from a web site
US20130090117A1 (en) 2011-10-06 2013-04-11 Qualcomm Incorporated Method and apparatus for optimized reacquisition of wireless communications systems
US8725168B2 (en) * 2011-10-17 2014-05-13 Facebook, Inc. Content surfacing based on geo-social factors
US9098720B2 (en) * 2011-11-21 2015-08-04 Facebook, Inc. Location aware shared spaces
US9183259B1 (en) * 2012-01-13 2015-11-10 Google Inc. Selecting content based on social significance
US9119153B2 (en) 2012-02-10 2015-08-25 Apple Inc. Methods and apparatus for improving power consumption in a wireless network
US9131462B1 (en) * 2012-02-14 2015-09-08 Google Inc. Determining a geographic location of a mobile device
US8761797B1 (en) 2012-02-14 2014-06-24 Google Inc. Location accuracy based on map viewport
US10004056B2 (en) 2012-03-01 2018-06-19 Microsoft Technology Licensing, Llc Requesting a location of a user
CN103297487B (zh) * 2012-03-05 2018-05-01 北京千橡网景科技发展有限公司 定位辅助方法和装置
US8924493B1 (en) * 2012-03-09 2014-12-30 Google Inc. Prioritized notifications in a social network
JP5679585B2 (ja) * 2012-03-22 2015-03-04 株式会社Nttドコモ 移動通信システムにおける移動機及びバッテリセービング方法
US20130281112A1 (en) * 2012-04-20 2013-10-24 Apple Inc. Excluding Locations from Location Sharing
US20130282438A1 (en) * 2012-04-24 2013-10-24 Qualcomm Incorporated System for delivering relevant user information based on proximity and privacy controls
US9173074B2 (en) * 2012-05-27 2015-10-27 Qualcomm Incorporated Personal hub presence and response
JP2013251715A (ja) 2012-05-31 2013-12-12 Toshiba Corp ルータ及びメニーコアシステム
US9088865B2 (en) 2012-06-06 2015-07-21 Facebook, Inc. Global-positioning system (GPS) update interval based on sensor
CN104541527B (zh) * 2012-06-22 2019-01-29 谷歌有限责任公司 用于推断用户的兴趣的方法及计算设备
US9196008B2 (en) * 2012-08-13 2015-11-24 Facebook, Inc. Generating guest suggestions for events in a social networking system
US9204247B2 (en) * 2012-08-13 2015-12-01 Google Inc. Proximity-based notifications for photos
US9154575B2 (en) * 2012-08-28 2015-10-06 Facebook, Inc. Soft matching user identifiers
US9117197B1 (en) * 2012-10-19 2015-08-25 Google Inc. Alert system for social network users
US10028101B2 (en) 2012-11-20 2018-07-17 Facebook, Inc. Predicted-location notification
US10242412B2 (en) 2012-11-20 2019-03-26 Facebook, Inc. Ambient-location-push notification
US9432916B2 (en) * 2012-12-27 2016-08-30 Intel Corporation Situation aware sensor power management
US20140189888A1 (en) * 2012-12-29 2014-07-03 Cloudcar, Inc. Secure data container for an ambient intelligent environment
US8862589B2 (en) * 2013-03-15 2014-10-14 Geofeedia, Inc. System and method for predicting a geographic origin of content and accuracy of geotags related to content obtained from social media and other content providers
US20140289140A1 (en) * 2013-03-21 2014-09-25 Salesforce.Com, Inc. Systems and methods of opportunistically identifying networking prospects
US20150121535A1 (en) * 2013-10-30 2015-04-30 Microsoft Corporation Managing geographical location information for digital photos
US9618343B2 (en) * 2013-12-12 2017-04-11 Microsoft Technology Licensing, Llc Predicted travel intent
US9225522B2 (en) * 2013-12-27 2015-12-29 Linkedin Corporation Techniques for populating a content stream on a mobile device
US9756458B1 (en) * 2014-03-19 2017-09-05 Amazon Technologies, Inc. Determining user commonalities and differences
US9465811B2 (en) * 2014-03-20 2016-10-11 Facebook, Inc. Polygon-based indexing of places
US9910479B2 (en) 2014-04-16 2018-03-06 Facebook, Inc. Location based content promotion on online social networks

Also Published As

Publication number Publication date
US11449118B2 (en) 2022-09-20
MX2016013472A (es) 2017-03-23
US20150304437A1 (en) 2015-10-22
US9910479B2 (en) 2018-03-06
CN106605418A (zh) 2017-04-26
KR101889415B1 (ko) 2018-08-17
US20220382357A1 (en) 2022-12-01
KR20160145153A (ko) 2016-12-19
WO2015160375A1 (en) 2015-10-22
AU2014391126A1 (en) 2016-12-01
US20180196492A1 (en) 2018-07-12
AU2014391126B2 (en) 2018-03-15
US9946324B2 (en) 2018-04-17
US20180188793A1 (en) 2018-07-05
US20150302030A1 (en) 2015-10-22
CA2945009C (en) 2018-10-16
IL261760A (en) 2018-10-31
CA2945009A1 (en) 2015-10-22
US20150304368A1 (en) 2015-10-22
US20200356155A1 (en) 2020-11-12
JP2017514226A (ja) 2017-06-01
US20150301579A1 (en) 2015-10-22
BR112016023962A2 (pt) 2017-08-15
MX358110B (es) 2018-08-06
US10775866B2 (en) 2020-09-15
CA3016054A1 (en) 2015-10-22
CN106605418B (zh) 2021-02-26
US20150304436A1 (en) 2015-10-22
US20180059767A1 (en) 2018-03-01
US10275009B2 (en) 2019-04-30
US20150302092A1 (en) 2015-10-22
IL248147B (en) 2018-10-31
JP6450398B2 (ja) 2019-01-09
US10394303B2 (en) 2019-08-27
US9823724B2 (en) 2017-11-21
JP2019046502A (ja) 2019-03-22

Similar Documents

Publication Publication Date Title
KR101889415B1 (ko) 위치-기반 서비스를 사용한 모바일 클라이언트의 전력 관리
KR101627700B1 (ko) 제안된 검색 질의의 모바일 장치로의 푸쉬
US20150350351A1 (en) Location-Based Ephemerality of Shared Content
US10686896B2 (en) Two-way meet-up notifications
EP2933773A1 (en) Power management of mobile clients using location-based services

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application