이하, 본 발명은, 그 일부를 형성하고 본 발명이 실시될 수 있는 특정 실시예들을 예시적으로 보여주는 첨부 도면들을 참조하여 보다 충분히 설명될 것이다. 그러나, 본 발명은 많은 상이한 형태로 구현될 수 있으며, 여기에 설명되는 실시예들로 한정되는 것으로 해석되지 않아야 하고, 오히려 이러한 실시예들은 본 개시를 충분하고 완전하게 하며 이 분야의 전문가들에게 본 발명의 범위를 충분히 전달하기 위해 제공된다. 특히, 본 발명은 방법 또는 장치로서 구현될 수 있다. 따라서, 본 발명은 완전한 하드웨어 구현, 완전한 소프트웨어 구현 또는 소프트웨어와 하드웨어를 결합한 구현의 형태를 가질 수 있다. 따라서, 아래의 상세한 설명은 제한적인 의미로 간주되지 않아야 한다.
명세서 및 청구범위 전반에서, 다음의 용어들은 문맥이 달리 명확히 지시하지 않는 한, 본 명세서에서 명시적으로 연관된 의미들을 갖는다. 본 명세서에서 사용될 때, "일 실시예에서"라는 표현은 동일 실시예를 지칭할 수도 있지만, 반드시 그러한 것은 아니다. 더욱이, 본 명세서에서 사용될 때, "다른 실시예에서"라는 표현은 상이한 실시예를 지칭할 수도 있지만, 반드시 그러한 것은 아니다. 따라서, 후술하는 바와 같이, 본 발명의 다양한 실시예들은 본 발명의 범위 또는 사 상을 벗어나지 않고 쉽게 결합될 수 있다.
또한, 본 명세서에서 사용될 때, "또는"이라는 용어는 포괄적인 "or" 연산자이며, 문맥이 달리 명확히 지시하지 않는 한, "및/또는"이라는 용어와 등가이다. "기초하여"라는 용어는 배타적이 아니며, 문맥이 달리 명확히 지시하지 않는 한, 설명되지 않은 추가 팩터들에 기초하는 것을 허용한다. 또한, 명세서 전반에서, 단수 표현("a", "an", "the")의 의미는 복수의 참조를 포함한다. "내에서"의 의미는 "내에서" 및 "상에서"를 포함한다.
본 명세서에서 사용될 때, "소셜 네트워크"라는 용어는 개인의 친구들, 가족 동료들, 협력자들의 개인 네트워크 및 그러한 네트워크들 내의 관련 접속들이 데이팅, 잡 네트워킹, 서비스 의뢰, 활동 파트너 등을 포함하지만 이에 한정되지 않는 다양한 활동을 위한 더 많은 관련 접속을 발견하는 데 사용될 수 있다는 개념을 나타낸다.
통상적으로, 소셜 네트워크는 개인의 직접 및/또는 간접 개인 관계들의 세트를 포함한다. 직접 개인 관계는 일반적으로 가족 멤버들, 친구들, 동료들, 협력자들, 및 그 개인이 개인 접촉, 전화, 이메일, 인스턴트 메시지, 편지 등에 의한 접촉과 같은 소정 형태의 직접 접촉을 가져왔던 다른 사람들과의 관계를 포함한다. 이러한 직접 개인 관계는 때때로 1차 관계로 지칭된다. 1차 관계는 다양한 등급의 친밀성, 신뢰성 및 기타 특성들을 가질 수 있다.
통상적으로, 간접 개인 관계는 개인이 소정 형태의 직접 접촉을 갖지 않아왔던 사람들에 대한 1차 관계를 통한 관계를 포함한다. 예를 들어, 친구의 친구는 간접 개인 관계를 나타낸다. 더 확장된 간접 관계는 친구의 친구의 친구일 수 있다. 이러한 간접 관계는 때때로 사람들 사이의 분리도에 의해 특성화된다. 예를 들어, 친구의 친구는 2 단계의 분리 또는 2차 관계로서 특성화될 수 있다. 마찬가지로, 친구의 친구의 친구는 3 단계의 분리 또는 3차 관계로서 특성화될 수 있다.
본 명세서에서 사용될 때, "GPS 좌표"라는 용어는 물리적 위치, 속도 및/또는 시간 정보를 제공하는 위성 기반 무선 포지셔닝 시스템들에 의해 제공되는 지리 좌표 시스템에 기초하는 임의의 값을 나타낸다. 미국 국방부에 의해 운영되는 NAVSTAR 시스템은 그러한 시스템의 일례이다. GPS 좌표는 경도 값, 위도 값 및/또는 고도 값(예를 들어, 해발 기준)을 포함할 수 있다. 지리 좌표 시스템은 예를 들어 도/분, 도/분/초, 소수점 등으로 GPS 좌표들을 표현할 수 있다.
본 명세서에서 사용될 때, "지리 좌표"라는 용어는 룩업 메커니즘, 삼각법 메커니즘, 또는 임의의 다른 위치 식별 시스템에 의해 제공되는 지리 좌표 시스템에 기초하는 임의의 값을 나타낸다. 룩업 메커니즘은 IP 어드레스 대 지리 위치 맵핑, MAC 어드레스 대 지리 위치 맵핑 등을 포함한다. 삼각법 메커니즘은 WiFi 삼각법, 또는 임의의 다른 무선 및/또는 라디오 삼각법을 포함한다.
본 명세서에서 사용될 때, "위치명"이라는 용어는 지리 위치를 식별하는 임의의 정보를 나타낸다. 하나 이상의 위치명이 GPS 좌표 또는 범위 또는 GPS 좌표들과 연관될 수 있다. "위치 명세"라는 용어는 태그, 코멘트, 리마크(remark) 또는 지리 위치에 대한 레이팅, 지리 위치와 관련된 시간 등을 포함하는 지리 위치에 관한 임의의 정보를 지칭한다. 하나 이상의 위치 명세가 위치명과 연관될 수 있 다. "위치 정보"라는 용어는 위치와 연관된 위치명, 위치 명세 또는 임의의 다른 정보를 나타낸다. 위치 정보, 위치명 및 위치 명세는 워드, 워드들의 세트, 사진, 사운드 바이트(sound bite), 비디오 풋티지(video footage) 등을 포함하는 임의의 데이터일 수 있다.
본 명세서에서 사용될 때, "부근"이라는 용어는 2개의 위치가 서로 가까이 있는 것을 나타내며, 가까움의 기준은 측정의 스케일에 기초하는 비교적 작은 거리일 수 있다. 따라서, 도시들 간의 거리와 같은 큰 스케일에 대해, 가까움의 기준은 더 클 수 있지만, 거리 레벨 등에 대해서는 기준이 더 작을 수 있다. 가까움의 기준은 위치들 사이의 직선, 위치들 사이의 맨해튼 거리를 포함하는 기하학적 기준에 의해 결정되거나, 사용자 등에 의해서도 결정될 수 있다. 다른 실시예에서, "부근"은 스케일링 디스플레이 값에 기초하는 사전 결정 값이다.
본 명세서에서 사용될 때, "포인트"라는 용어는 텍스트, 그래픽, 오디오 또는 임의의 다른 매체 객체에서의 지리 위치의 표현을 나타낸다.
본 명세서에서 사용될 때, "관련성 스코어"라는 용어는 위치명이 관련 명칭인지, 또는 소셜 네트워크의 멤버 및/또는 공동체에 관하여 GPS 좌표에 대해 일반적으로 사용되는 명칭인지를 나타내는 정보를 지칭한다.
간단히 설명하면, 본 발명은 소셜 네트워크에 대한 위치 정보의 갱신 및/또는 소셜 네트워크로부터의 위치 정보의 제공에 관한 것이다. GPS 좌표와 연관된 위치 정보에 대한 요청이 소셜 네트워크의 멤버와 연관된 클라이언트 장치로부터 수신된다. 요청에 응답하여, 소셜 네트워크의 다른 멤버와 연관된 위치명이 GPS 좌표에 기초하여 클라이언트 장치에 제공된다. 다른 위치명이 클라이언트 장치로부터 수신될 수 있다. 다른 위치명은 GPS 좌표 및 소셜 네트워크 내의 멤버와 연관될 수 있다. 따라서, GPS 좌표 및/또는 멤버는 복수의 위치명과 연관될 수 있다. 위치 명세가 또한 수신되고, 위치명 및 소셜 네트워크 내의 멤버와 연관될 수 있다.
GPS 좌표 및 탐색 기준이 소셜 네트워크의 멤버와 연관된 클라이언트 장치로부터 수신된다. 소셜 네트워크는 GPS 좌표 및 탐색 기준에 기초하여 위치명과 연관된 다른 멤버에 대해 탐색된다. 위치명은 후원형 광고일 수 있다. 위치명은 클라이언트 장치에 제공된다. 멤버와 다른 멤버 사이에 통신이 가능할 수 있다.
더욱이, 시작 위치 및 종료 위치도 수신될 수 있다. GPS 좌표 및/또는 탐색 기준은 시작 위치 또는 종료 위치와 연관될 수 있다. 탐색된 위치명은 해당 위치를 결정하는 데 사용된다. 시작 위치와 종료 위치 사이에, 해당 위치를 통해 경로가 결정된다. 경로는 클라이언트 장치에 제공된다.
본 발명의 일부 실시예들의 일부 방법, 시스템, 장치, 사용자 인터페이스 및 데이터 모델이 GPS 좌표들에 기초하여 동작하는 것으로 후술되지만, 대안 실시예에서 이러한 방법, 시스템, 장치, 사용자 인터페이스 및 데이터 모델들은 본 발명의 범위를 벗어나지 않고 지리 좌표들을 구하는 데 이용될 수 있는 임의의 다른 메커니즘에 기초하여 거의 유사하게 동작하도록 변경될 수 있다.
예시적인 동작 환경
도 1은 본 발명이 실시될 수 있는 환경의 일 실시예의 컴포넌트들을 나타낸 다. 모든 컴포넌트가 본 발명을 실시하는 데 필요하지는 않을 수 있으며, 컴포넌트들의 배열 및 타입의 변화가 본 발명의 사상 또는 범위로부터 벗어나지 않고 이루어질 수 있다. 도시된 바와 같이, 도 1의 시스템(100)은 네트워크(145), 무선 네트워크(110), 지리 위치 탐색 서버(GSS; 106), 이동 장치들(클라이언트 장치들)(102-103), 클라이언트 장치(101), GPS 소스(105), 레이팅 및 리뷰 서버(133), 메신저 서버(132) 및 후원형 탐색/광고 서버(131)를 포함한다.
이하, 이동 장치들(102-103)의 일 실시예가 도 2를 참조하여 설명된다. 그러나, 일반적으로, 이동 장치들(102-103)은 네트워크(145), 무선 네트워크(110) 등과 같은 네트워크를 통해 메시지를 송수신할 수 있는 사실상 모든 휴대용 컴퓨팅 장치를 포함할 수 있다. 이동 장치들(102-103)은 일반적으로 휴대용으로 구성되는 클라이언트 장치들로서도 기술될 수 있다. 따라서, 이동 장치들(102-103)은 다른 컴퓨팅 장치에 접속되어 정보를 수신할 수 있는 사실상 모든 휴대용 컴퓨팅 장치를 포함할 수 있다. 이러한 장치들은 셀룰러 전화, 스마트 폰, 디스플레이 페이저, 무선 주파수(RF) 장치, 적외선 장치, 개인 휴대 단말기(PDA), 핸드헬드 컴퓨터, 랩톱 컴퓨터, 착용식 컴퓨터, 타블렛 컴퓨터, 전술한 장치들 중 하나 이상을 결합한 통합 장치 등과 같은 휴대용 장치들을 포함한다. 따라서, 이동 장치들(102-103)은 통상적으로 능력 및 기능 면에서 넓은 범위를 갖는다. 예를 들어, 셀 폰은 숫자 키패드 및 텍스트만이 표시될 수 있는 소수 라인의 단색 LCD 디스플레이를 구비할 수 있다. 다른 예에서, 웹 가능 이동 장치는 터치 감지 스크린, 스타일러스, 및 텍스트 및 그래픽 양자가 표시될 수 있는 여러 라인의 칼라 LCD 디스플레이를 구비 할 수 있다.
웹 가능 이동 장치는 웹페이지, 웹 기반 메시지 등을 송수신하도록 구성되는 브라우저 애플리케이션을 포함할 수 있다. 브라우저 애플리케이션은 무선 애플리케이션 프로토콜 메시지(WAP) 등을 포함하는 사실상 모든 웹 기반 언어들을 이용하여 그래픽, 텍스트, 멀티미디어 등을 수신하고 표시하도록 구성될 수 있다. 일 실시예에서, 브라우저 애플리케이션은 HDML(Handheld Device Markup Language), WML(Wireless Markup Language), WML 스크립트, 자바 스크립트, SGML(Standard Generalized Markup Language), HTML(HyperText Markup Language), XML(eXtensible Markup Language) 등을 이용하여 메시지를 표시하고 전송할 수 있다.
이동 장치들(102-103)은 또한 다른 컴퓨팅 장치로부터 콘텐츠를 수신하도록 구성되는 적어도 하나의 다른 클라이언트 애플리케이션을 포함할 수 있다. 클라이언트 애플리케이션은 텍스트 콘텐츠, 멀티미디어 정보 등을 제공하고 수신하는 능력을 포함할 수 있다. 클라이언트 애플리케이션은 타입, 능력, 명칭 등을 포함하는 그 자신을 식별하는 정보를 더 제공할 수 있다. 일 실시예에서, 이동 장치들(102-103)은 전화 번호, MIN(Mobile Identificatin Number), ESN(electronic serial number) 또는 기타 이동 장치 식별자를 포함하는 임의의 다양한 메커니즘을 통해 그들 자신을 고유하게 식별할 수 있다. 정보는 또한 이동 장치가 이용할 수 있는 콘텐츠 포맷을 지시할 수 있다. 그러한 정보는 GSS(106), 클라이언트 장치(101) 또는 기타 컴퓨팅 장치들로 전송되는 메시지 등 내에 제공될 수 있다.
이동 장치들(102-103)은 또한, GSS(106), 클라이언트 장치(101) 등과 같은 다른 컴퓨팅 장치와의 사이에서 SMS(Short Message Service), MMS(Multimedia Message Service), IM(Instant Message), IRC(internet relay chat), mIRC(Mardam-Bey's IRC), 재버(Jabber) 등을 통해 메시지를 통신하도록 구성될 수 있다. 그러나, 본 발명은 이러한 메시징 프로토콜들로 한정되지 않으며, 사실상 모든 다른 메시지 프로토콜을 이용할 수 있다.
이동 장치들(102-103)은 사용자가 IM 세션과 같은 통신 세션에 참여하는 것을 가능하게 하도록 더 구성될 수 있다. 따라서, 이동 장치들(102-103)은 클라이언트 장치를 대신하여 다양한 액션들을 관리하도록 구성되는 클라이언트 애플리케이션을 포함할 수 있다. 예를 들어, 클라이언트 애플리케이션은 사용자가 브라우저 애플리케이션, 이메일 애플리케이션, IM 애플리케이션, SMS 애플리케이션 등과 상호작용하는 것을 가능하게 할 수 있다.
이동 장치들(102-103)은 최종 사용자가 GSS(106)와 같은 다른 컴퓨팅 장치에 의해 관리될 수 있는 최종 사용자 계정에 로그인하는 것을 가능하게 하는 클라이언트 애플리케이션을 포함하도록 더 구성될 수 있다. 예를 들어, 그러한 최종 사용자 계정은 최종 사용자가 이메일을 수신하고, IM 메시지, SMS 메시지를 송신/수신하고, 선택된 웹페이지에 액세스하고, 소셜 네트워킹 활동에 참여하는 것 등을 행하는 것을 가능하게 하도록 구성될 수 있다. 다양한 소셜 네트워킹 활동에 대한 참여는 최종 사용자 계정에 로그인하거나 로그인하지 않고도 수행될 수 있다.
이동 장치들(102-103)은 또한 클라이언트 장치(101) 등과 같은 비이동 클라이언트 장치들과 통신할 수도 있다. 일 실시예에서, 그러한 통신은 멀티미디어 정 보의 공유, 위치 정보의 공유 등을 포함하는 소셜 네트워킹 활동들에 대한 참여를 포함할 수 있다.
클라이언트 장치(101)는 소셜 네트워킹 정보 등을 포함하는 정보를 송신하고 수신하기 위해 네트워크를 통해 통신할 수 있는 사실상 모든 컴퓨팅 장치를 포함할 수 있다. 그러한 장치들의 세트는 개인용 컴퓨터, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능 소비자 전자 장치, 네트워크 PC 등과 같이 통상적으로 유선 및 무선 통신 매체를 이용하여 접속하는 장치들을 포함할 수 있다. 클라이언트 장치(101)는 이동 장치들(102-103)과 동일한 동작들 중 적어도 일부를 수행하도록 구성될 수 있다.
또한, 클라이언트 장치들(101-103)은 소셜 네트워크 및/또는 GPS 좌표에 기초하여 위치 정보를 탐색하도록 구성되는 다른 애플리케이션을 포함할 수 있다. 클라이언트 장치들(101-103)은 클라이언트 장치들(101-103)의 사용자로부터 GPS 좌표 및/또는 탐색 기준들을 수신할 수 있다. 클라이언트 장치들(101-103)은 사용자가 예를 들어 도 11의 디스플레이(1100)를 이용하여 GPS 좌표 및/또는 탐색 기준들을 입력하는 것을 가능하게 할 수 있다. 클라이언트 장치들(101-103)은 추가 처리를 위해 네트워크들(110/145)을 통해 GPS 좌표 및/또는 탐색 기준들을 GSS(106)로 전송할 수 있다. 클라이언트 장치들(101-103)은 예를 들어 도 12의 디스플레이(1200) 및 도 13의 디스플레이(1300)를 이용하여 GPS 좌표에 또는 그 근처에 있는 위치들에 대한 탐색 결과들을 표시할 수 있다. 클라이언트 장치들(101-103)은 또한 사용자가 예를 들어 도 10의 디스플레이(1000)를 이용하여 소셜 네트워크에서 위치 명세(예를 들어, 위치명, 태그, GPS 좌표, 위치와 관련된 시간)를 갱신 및/또는 상세화하는 것을 가능하게 할 수 있다. 클라이언트 장치들(101-103)은 추가 처리를 위해 네트워크(110/145)를 통해 갱신된 위치 명세를 GSS(106)로 전송할 수 있다.
클라이언트 장치들(101-103)은 클라이언트 장치들(101-103) 상의 GPS 인터페이스를 통해 직접, 또는 GPS 소스(105)와 같은 다른 장치와의 통신을 통해 GPS 좌표(들)를 검색할 수 있다. 예를 들어, 클라이언트 장치(이동 장치)(102)는 GPS 좌표(들)를 검색하기 위한 통합 GPS 인터페이스를 구비할 수 있다. 클라이언트 장치(이동 장치)(102)는 통합 GPS 기능을 구비한 노키아 N95 핸드셋일 수 있다. 도시된 바와 같이, 클라이언트 장치(이동 장치)(103)는 외부 GPS 소스(105)와 통신하도록 구성되는 GPS 인터페이스를 구비한다.
GPS 소스(105)는 네트워크 등을 통해 GPS 좌표를 무선으로 수신할 수 있는 사실상 모든 컴퓨팅 장치를 포함할 수 있다. GPS 소스(105)는 하나 이상의 GPS 가능 위성으로부터 GPS 좌표를 수신할 수 있다. 도시된 바와 같이, 이동 장치(103)는 GPS 소스(105)와 통신한다. 통신은 블루투스, WiFi, IR 등과 같은 무선 통신을 포함할 수 있다. 일 실시예에서, GPS 소스(105)는 USB 포트, 직렬 포트 등을 통해 이동 장치에 물리적으로 결합될 수 있다. 어느 경우에나, GPS 좌표는 추가 처리를 위해 GPS 소스(105)에서 이동 장치(103)로 전송된다.
무선 네트워크(110)는 이동 장치들(102-103) 및 그의 컴포넌트들을 네트워크(145)와 결합하도록 구성될 수 있다. 무선 네트워크(110)는 이동 장치들(102- 103)에 대한 기반구조 지향 접속을 제공하기 위해 독립형 임시 네트워크 등을 더 오버레이할 수 있는 임의의 다양한 무선 서브 네트워크들을 포함할 수 있다. 그러한 서브 네트워크들은 메쉬 네트워크, 무선 LAN(WLAN) 네트워크, 셀룰러 네트워크 등을 포함할 수 있다.
무선 네트워크(110)는 무선 라디오 링크 등에 의해 접속되는 단말기들, 게이트웨이들, 라우터들 등의 자율 시스템을 더 포함할 수 있다. 이러한 커넥터들은 자유롭게, 임의로 이동하고, 그들 자신을 임의로 체계화하도록 구성될 수 있으며, 따라서 무선 네트워크(110)의 토폴로지는 빠르게 변경될 수 있다.
무선 네트워크(110)는 셀룰러 시스템, WLAN, 무선 라우터(WR) 메쉬 등에 대한 2 세대(2G), 3 세대(3G) 무선 액세스를 포함하는 복수의 액세스 기술을 더 이용할 수 있다. 2G, 3G 및 미래의 액세스 네트워크들과 같은 액세스 기술들은 다양한 이동도를 갖는 이동 장치들(102-103)과 같은 이동 장치들에 대한 광역 커버리지를 가능하게 할 수 있다. 예를 들어, 무선 네트워크(110)는 GSM(Global System for Mobile communication), GPRS(General Packet Radio Service), EDGE(Enhanced Data GSM Environment), WCDMA(Wideband Code Division Multiple Access) 등과 같은 무선 네트워크 액세스를 통해 무선 접속을 가능하게 할 수 있다. 본질적으로, 무선 네트워크(110)는 이동 장치들(102-103)과 다른 컴퓨팅 장치, 네트워크 등 사이에서 정보를 전달할 수 있는 사실상 모든 무선 통신 메커니즘을 포함할 수 있다.
네트워크(145)는 GSS(106), GLT 서버(134), 레이팅 및 리뷰 서버(133), 메신저 서버(132), 후원형 탐색/광고 서버(131) 및 클라이언트 장치(101)를 포함하는 시스템(100)의 적어도 일부 컴포넌트를 서로, 그리고 무선 네트워크(110)를 통해 이동 장치들(102-103)에 결합하도록 구성된다. 네트워크(145)는 하나의 전자 장치에서 다른 전자 장치로 정보를 전송하기 위해 임의 형태의 컴퓨터 판독 가능 매체를 이용할 수 있다. 또한, 네트워크(145)는 LAN(local area network), WAN(wide area network), USB(universal serial bus) 포트와 같은 직접 접속, 다른 형태의 컴퓨터 판독 가능 매체, 또는 이들의 임의 조합 외에 인터넷을 포함할 수 있다. 상이한 아키텍처들 및 프로토콜들에 기초하는 것들을 포함하는 상호접속된 LAN들의 세트 상에서, 라우터는 LAN들 간의 링크로서 작용하여, 메시지가 서로에 대해 전송되게 할 수 있다. 또한, LAN들 내의 통신 링크들은 통상적으로 트위스트 와이어 쌍 또는 동축 케이블을 포함하는 반면, 네트워크들 사이의 통신 링크들은 아날로그 전화선, T1, T2, T3 및 T4를 포함하는 완전 또는 부분 전용 디지털 회선, ISDN(Integrated Service Digital Network), DSL(Digital Subscriber Line), 위성 링크를 포함하는 무선 링크, 또는 이 분야의 전문가들에게 공지된 다른 통신 링크들을 이용할 수 있다. 더욱이, 원격 컴퓨터들 및 다른 관련 전자 장치들은 모뎀 및 임시 전화 링크를 통해 LAN들 또는 WAN들에 원격 접속될 수 있다. 본질적으로, 네트워크(145)는 GSS(106), 클라이언트 장치들(101-103) 및 다른 컴퓨팅 장치들 사이에서 정보를 전달할 수 있는 임의의 통신 방법을 포함한다.
또한, 통상적으로 통신 매체는 반송파, 데이터 신호 또는 기타 전송 메커니즘과 같은 피변조 데이터 신호 내에 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "피 변조 데이터 신호" 및 "반송파 신호"라는 용어는 신호 내에 정보, 명령어, 데이터 등을 인코딩하는 방식으로 신호의 특성들 중 하나 이상이 설정 또는 변경된 신호를 포함한다. 예를 들어, 통신 매체는 트위스트 쌍, 동축 케이블, 광섬유, 도파관 및 기타 유선 매체와 같은 유선 매체, 및 음향, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함한다.
GSS(106), GLT 서버(134), 레이팅 및 리뷰 서버(133), 메신저 서버(132) 및 후원형 탐색/광고 서버(131)로서 동작할 수 있는 장치들은 개인용 컴퓨터, 데스크톱 컴퓨터, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능 소비자 전자 장치, 네트워크 PC, 서버 등을 포함한다. GSS(106), GLT 서버(134), 레이팅 및 리뷰 서버(133), 메신저 서버(132) 및 후원형 탐색/광고 서버(131)는 그들의 동작들의 적어도 일부를 수행하기 위해 도 8 및 9의 신호 흐름들(800, 900)을 각각 이용할 수 있다.
GSS(106)의 일 실시예는 도 3과 관련하여 아래에 더 상세히 설명된다. 그러나, 간단하게 설명하면, GSS(106)는 클라이언트 장치들(101-103)의 사용자들이 소셜 네트워크, GPS 좌표(들) 및/또는 탐색 기준들에 기초하여 위치 정보를 탐색할 수 있도록 하기 위해 네트워크(145)에 접속할 수 있는 임의의 컴퓨팅 장치를 포함할 수 있다. GSS(106)는 탐색 결과(들)로서 위치 명세(예를 들어, 맵, 리스트), GPS 좌표(들)와 연관된 경로, GPS 좌표(들)와 연관된 후원형 광고 등을 제공할 수 있다.
또한, GSS(106)는 클라이언트 장치들(101-103)의 사용자들이 위치 명세를 입 력/갱신하는 것을 가능하게 할 수도 있다. GSS(106)는 소셜 네트워크를 관리할 수도 있다. 일 실시예에서, GLT 서버(134)는 (예를 들어, 멤버들을 공동체에 추가함으로써, 공동체의 최대 크기, 공동체의 멤버들 간의 최대 분리도 등을 정의함으로써) 멤버들이 그들의 공동체들을 정의하는 것을 가능하게 할 수 있다.
더욱이, GSS(106)는 GLT 서버(134), 레이팅 및 리뷰 서버(133), 메신저 서버(132) 및/또는 후원형 탐색/광고 서버(131)에 의해 제공되는 서비스들을 이용하여, 그의 동작의 적어도 일부를 수행할 수 있다. 예를 들어, GSS(106)는 레이팅 및 리뷰 서버(133)로부터의 위치의 레이팅/리뷰를 요청할 수 있다. GSS(106)는 메신저 서버(132)를 통해 통신들을 라우팅함으로써 소셜 네트워크의 멤버들 간의 통신을 가능하게 할 수 있다. GSS(106)는 후원형 탐색/광고 서버(131)로부터 GPS 좌표에 대한 후원형 광고들을 수신할 수 있다.
GSS(106)는 클라이언트 장치들(101-103)로부터 전송된 GPS 좌표들, 클라이언트 장치들(101-103)의 IP 어드레스들, MAC 어드레스들 등, 또는 사용자가 입력한 지리적 위치를 통해 클라이언트 장치들(101-103) 각각의 지리적 위치를 식별할 수도 있다. GSS(106)는 지리적 위치(들)를 이용하여, 클라이언트 장치들(101-103) 중 둘 이상이 서로의 부근에 있는지를 결정할 수 있다. 서로의 부근에 있는 것으로 결정된 장치들은 메신저 서버(132) 등을 통해 서로 통신할 수 있다. GSS(106)는 도 4, 5, 6 및 7의 프로세스들(400, 500, 600, 700)의 적어도 일부 단계들을 각각 이용하여, 그의 동작들 중 적어도 일부를 수행할 수 있다.
GLT 서버(134)는 GPS 좌표(들)와 위치 정보를 연관시키도록 구성된다. 일 실시예에서, GLT 서버(134)는 소셜 네트워크의 멤버들이 위치 정보를 탐색, 검색 및 갱신/입력하는 것을 가능하게 할 수 있다. 일 실시예에서, GLT 서버(134)는 소셜 네트워크 데이터 구조, 데이터베이스 등에서 위치 정보와 GPS 좌표(들) 및 멤버들을 연관시킬 수 있다. GLT 서버(134)에 의해 관리되는 소셜 네트워크 데이터 구조의 일례는 도 14의 소셜 네트워크(1400)이다. 위치 정보의 데이터베이스 내의 테이블의 일례는 도 15의 테이블(1500)이다. 일 실시예에서, 데이터베이스는 소셜 네트워크에서 정보가 발견되지 않는 경우에 위치 정보를 제공하는 데 사용되는 디폴트 데이터베이스일 수 있다. 일 실시예에서, GLT 서버(134)는 소셜 네트워크, 데이터베이스 등에서 위치명들과 위치 정보 간의 관련성들의 적어도 일부를 관리할 수도 있다. GLT 서버(134)는 GSS(106)가 위치 정보를 탐색, 검색 및 갱신/입력하는 것을 가능하게 할 수도 있다.
레이팅 및 리뷰 서버(133)는 지리 위치와 연관된 레이팅 및/또는 리뷰들을 관리하도록 구성된다. 레이팅 및 리뷰 서버(133)는 GSS(106)가 레이팅/리뷰를 갱신하기 위한 지리 위치에 대한 레이팅/리뷰를 네트워크(145) 등을 통해 전송하는 것을 가능하게 할 수 있다. 레이팅 및 리뷰 서버(133)는 GSS(106)가 지리 위치에 대한 레이팅/리뷰를 검색하기 위한 요청을 전송하는 것을 가능하게 할 수 있다.
메신저 서버(132)는 클라이언트 장치들(101-103) 중 둘 이상의 클라이언트 장치 사이에서 메시지들을 중계하도록 구성된다. 메신저 서버(132)는 IM, SMS, 이메일 및/또는 VOIP 메시지들을 중계하거나, 둘 이상의 클라이언트 장치들(101-103) 사이의 통신을 가능하게 할 수 있다. 일 실시예에서, 메신저 서버(132)는 둘 이상 의 클라이언트 장치들(101-103) 사이에서 메시지를 전송할 수 있다. 일 실시예에서, 메신저 서버(132)는 통신의 개시를 가능하게 할 수 있으며, 이어서 클라이언트 장치들(101-103)은 서로 직접 메시지들을 통신할 수 있다. 예를 들어, 메신저 서버(132)는 둘 이상의 클라이언트 장치들(101-103)의 전화 번호들을 클라이언트 장치들(101-103)로 전송하여, 클라이언트 장치들(101-103)의 사용자들이 서로 호출하는 것을 가능하게 할 수 있다. 메신저 서버(132)는 도 7의 프로세스(700)의 적어도 일부 단계를 이용하여 그의 동작들의 적어도 일부를 수행할 수 있다.
후원형 탐색/광고 서버(131)는 후원형 탐색 결과들의 저장, 탐색 및 제공을 가능하게 하기 위한 후원자로부터의 지불을 수신하도록 구성된다. 후원형 탐색 결과들은 위치 정보일 수 있다. 일 실시예에서, 후원자는 소셜 네트워크의 멤버일 수 있다. 후원형 탐색/광고 서버(131)는 하나 이상의 키 워드와 탐색 결과, 지리 위치, GPS 위치, 위치명 등을 연관시키도록 구성될 수 있다. 후원형 탐색/광고 서버(131)는 후원자들의 사용자 계정들을 관리하거나, 후원형 탐색 결과들의 유효성을 추적하는 것 등을 행할 수 있다. 후원형 탐색/광고 서버(131)는 하나 이상의 키워드에 응답하여 후원형 탐색 결과들/광고들을 네트워크(145)를 통해 GSS(106)에 제공하도록 구성될 수도 있다. 예를 들어, 일 실시예에서, 키워드들은 클라이언트 장치들(101-103) 중 하나의 사용자에 의해 제출되는 탐색 기준들의 일부일 수 있다. GSS(106)는 사용자의 소셜 네트워크를 통해 키워드들을 탐색하거나, 네트워크(145)를 통해 후원형 탐색/광고 서버(131)에게 키워드들과 연관된 후원형 탐색 결과/광고를 반환하도록 요청할 수 있다. 클라이언트 장치들(101-103) 중 하나에 제공되는 복수의 탐색 결과는 후원형 탐색 결과들 및 다른 탐색 결과들의 조합일 수 있다. 후원형 탐색/광고 서버(131)는 도 4의 프로세스(400)의 적어도 일부 단계를 이용하여, 그의 동작들 중 적어도 일부를 수행할 수 있다.
도 1은 GSS(106), GLT 서버(134), 레이팅 및 리뷰 서버(133), 메신저 서버(132) 및 후원형 탐색/광고 서버(131)를 개별 장치들로서 도시하고 있지만, 본 발명은 그에 한정되지 않는다. 예를 들어, 이러한 서버들의 일부 또는 모두의 기능들은 본 발명의 범위를 벗어나지 않고 단일 컴포넌트, 또는 단일 컴퓨팅 장치에 포함된 복수의 컴포넌트 내에 결합될 수 있다. 따라서, GSS(106), GLT 서버(134), 레이팅 및 리뷰 서버(133), 메신저 서버(132) 및 후원형 탐색/광고 서버(131)는 하나의 장치의 컴포넌트들(예를 들어, GSS 컴포넌트, GLT 컴포넌트, 레이팅 및 리뷰 컴포넌트 등)을 나타낼 수 있다.
마찬가지로, GSS(106)는 단일 컴퓨팅 장치로서 도시되지만, 본 발명은 그에 한정되지 않는다. 예를 들어, GSS(106)의 하나 이상의 기능은 하나 이상의 개별 컴퓨팅 장치에 분산될 수 있다. 예를 들어, 멤버들을 소셜 네트워크에 추가하거나, 소셜 네트워크의 멤버들과 정보를 공유하거나, 인스턴트 메시징(IM) 세션, SMS 메시지, 이메일 메시지를 관리하거나, 연락 정보를 공유하거나, 소셜 네트워킹 정보를 수집 및/또는 저장하는 것 등을 포함하는 다양한 소셜 네트워크 활동들의 관리는 본 발명의 범위 또는 사상을 벗어나지 않고 복수의 컴퓨팅 장치에 의해 수행될 수 있다.
예시적인 클라이언트 환경
도 2는 본 발명을 구현하는 시스템에 포함될 수 있는 클라이언트 장치(200)의 일 실시예를 나타낸다. 클라이언트 장치(200)는 도 2에 도시된 것보다 많거나 적은 컴포넌트를 포함할 수 있다. 그러나, 도시된 컴포넌트들은 본 발명을 실시하기 위한 일 실시예를 개시하기에 충분하다. 도면에 도시된 바와 같이, 클라이언트 장치(200)는 버스(224)를 통해 대용량 메모리(233)와 통신하는 처리 유닛(222)을 포함한다.
클라이언트 장치(200)는 또한 전원(226), 하나 이상의 네트워크 인터페이스(250), 오디오 인터페이스(252), 디스플레이(254), 키패드(256), 조명기(258), 입출력 인터페이스(260), 햅틱 인터페이스(262) 및 글로벌 포지셔닝 시스템(GPS) 인터페이스(264)를 포함한다. 전원(226)은 클라이언트 장치(200)에 전력을 공급한다. 재충전 가능하거나 재충전 가능하지 않은 배터리가 전력을 공급하는 데 사용될 수 있다. 전력은 AC 어댑터, 또는 배터리를 보조 및/또는 재충전하는 급전식 거치대와 같은 외부 전원에 의해 공급될 수도 있다.
클라이언트 장치(200)는 옵션으로 기지국(도시되지 않음)과 통신하거나, 다른 컴퓨팅 장치와 직접 통신할 수 있다. 네트워크 인터페이스(250)는 클라이언트 장치(200)를 하나 이상의 네트워크에 결합하기 위한 회로를 포함하며, GSM(global system for mobile communication), CDMA(code division multiple access), TDMA(time division multiple access), UDP(user datagram protocol), TCP/IP(transmission control protocol/Internet protocol), SMS, GPRS(general packet radio service), WAP, UWB(ultra wide band), IEEE 802.16 WiMax(Worldwide Interoperability for Microwave Access), SIP/RIP 등을 포함하지만 이에 한정되지 않는 하나 이상의 통신 프로토콜 및 기술과 함께 사용하도록 구성된다.
오디오 인터페이스(252)는 사람의 음성, 음악 등의 사운드와 같은 오디오 신호들을 생성하고 수신하도록 배열된다. 예를 들어, 오디오 인터페이스(252)는 스피커 및 마이크로폰(도시되지 않음)에 결합되어, 다른 것들과의 통신을 가능하게 하고, 그리고/또는 소정의 액션에 대한 오디오 확인을 생성할 수 있다. 디스플레이(254)는 액정 디스플레이(LCD), 가스 플라즈마, 발광 다이오드(LED), 또는 컴퓨팅 장치와 함께 사용되는 임의의 다른 타입의 디스플레이일 수 있다. 디스플레이(254)는 또한 스타일러스와 같은 물체 또는 사람의 손가락으로부터 입력을 수신하도록 배열된 터치 감지 스크린을 포함할 수 있다.
클라이언트 장치(200)는 CD-ROM/DVD-ROM 드라이브(228) 및 하드 디스크 드라이브(227)와 같은 추가적인 대용량 저장 설비를 더 포함할 수 있다. 하드 디스크 드라이브(227)는 클라이언트 장치(200)에 의해 특히, 애플리케이션 프로그램, 데이터베이스 등을 저장하는 데 사용된다. 또한, CD-ROM/DVD-ROM 드라이브(228) 및 하드 디스크 드라이브(227)는 쿠키, 데이터, 이미지 등을 저장할 수 있다.
키패드(256)는 사용자(예를 들어, 송신자)로부터 입력을 수신하도록 배열된 임의의 입력 장치를 포함할 수 있다. 예를 들어, 키패드(256)는 푸시 버튼 숫자 다이얼 또는 키보드를 포함할 수 있다. 키패드(256)는 또한 이미지의 선택 및 전송과 연관된 명령 버튼들을 포함할 수 있다. 조명기(258)는 상태 지시를 제공하고, 그리고/또는 광을 제공할 수 있다. 조명기(258)는 특정 기간 동안 또는 이벤 트들에 응답하여 활성 상태를 유지할 수 있다. 예를 들어, 조명기(258)가 활성 상태일 때, 조명기는 키패드(256) 상의 버튼들을 배면 조명하고, 클라이언트 장치가 급전되는 동안 온 상태를 유지할 수 있다. 또한, 조명기(258)는 다른 클라이언트 장치의 다이얼링과 같은 특정 액션들이 수행될 때 그러한 버튼들을 다양한 패턴으로 배면 조명할 수 있다. 조명기(258)는 또한 클라이언트 장치의 투명 또는 반투명 케이스 내에 위치하는 광원들이 액션들에 응답하여 조명하게 할 수 있다.
클라이언트 장치(200)는 또한 헤드셋, 또는 도 2에 도시되지 않은 다른 입출력 장치들과 같은 외부 장치들과 통신하기 위한 입출력 인터페이스(260)를 포함한다. 입출력 인터페이스(260)는 USB, 적외선, 블루투스(상표명) 등과 같은 하나 이상의 통신 기술을 이용할 수 있다. 햅틱 인터페이스(262)는 클라이언트 장치의 사용자(예를 들어, 송신자)에게 촉각 피드백을 제공하도록 배열된다. 예를 들어, 햅틱 인터페이스는 컴퓨팅 장치의 다른 사용자가 호출하고 있을 때 클라이언트 장치(200)를 특정 방식으로 진동시키는 데 사용될 수 있다.
일 실시예에서, GPS 인터페이스(264)는 GPS 좌표(들)를 수신하기 위한 GPS 송수신기일 수 있다. 따라서, GPS 인터페이스(264)는 지표 상에서 클라이언트 장치(200)의 물리적 좌표들을 결정할 수 있다. GPS 인터페이스(264)는 (WiFi) 삼각법, 지원형 GPS(AGPS), E-OTD(Enhanced Observed Time Difference), CI(Cell Identity), SAI(Service Area Identity), ETA, BSS 등을 포함하지만 이에 한정되지 않는 다른 지리 측정 메커니즘들을 이용하여, 지표 상에서 클라이언트 장치(200)의 물리적 위치를 더 결정할 수도 있다. 대안 실시예에서, GPS 인터페이스(264)는 GPS 좌표(들) 외에 지리 좌표(들), 예를 들어 WiFi 삼각법 등에 의해 제공되는 좌표들을 제공하도록 구성될 수 있다. 상이한 조건들 하에서, GPS 인터페이스(264)는 클라이언트 장치(200)에 대해 밀리미터 내의 물리적 위치를 결정할 수 있으며, 다른 사례들에서, 결정된 물리적 위치는 미터 또는 훨씬 더 큰 거리 내와 같이 덜 정확할 수 있다는 것을 이해한다.
대안 실시예에서, GPS 인터페이스(264)는 다른 장치로부터 GPS 좌표(들)를 수신하기 위한 블루투스 송수신기일 수 있다. 다른 장치는 도 1의 GPS 소스(105)와 같은 GPS 소스일 수 있다. 다른 장치는 GPS 가능 위성으로부터 GPS 좌표(들)를 수신하기 위한 다른 GPS 송수신기를 포함할 수 있으며, GPS 좌표(들)를 클라이언트 장치(200)로 전송할 수 있다. GPS 좌표(들)는 클라이언트 장치(200)로 인입(push)되거나, 클라이언트 장치(200)로부터 인출(pull)(그에 의해 요청)될 수 있다.
대용량 메모리(230)는 RAM(232), ROM(234) 및 기타 저장 수단을 포함한다. 대용량 메모리(230)는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 컴퓨터 저장 매체의 다른 예를 나타낸다. 대용량 메모리(230)는 클라이언트 장치(200)의 저레벨 동작을 제어하기 위한 기본 입출력 시스템("BIOS")(240)을 저장한다. 대용량 메모리는 또한 클라이언트 장치(200)의 동작을 제어하기 위한 운영 체제(241)를 저장한다. 이 컴포넌트는 UNIX 또는 LINUX(상표명)의 일 버전과 같은 범용 운영 체제, 또는 Windows Mobile(상표명) 또는 Symbian(등록 상표) 운영 체제와 같은 특수용 클라이언트 통신 운영 체제를 포함할 수 있다는 것을 알 것이다. 운영 체제는 자바 애플리케이션 프로그램들 을 통해 하드웨어 컴포넌트들 및/또는 운영 체제 동작들의 제어를 가능하게 하는 자바 가상 머신 모듈과의 인터페이스를 포함할 수 있다.
클라이언트 장치(200)는 클라이언트 장치(200)의 한 사용자에 대한 활동들 및 데이터를 다른 사용자에 대한 활동들 및 데이터와 다르게 관리하도록 구성될 수도 있다. 예를 들어, 일 실시예에서, 운영 체제(241)는 다수의 사용자 계정을 관리하도록 구성될 수 있다. 예를 들어, 클라이언트 장치(200)는 사용자에게 사용자 이름/패스워드, 스마트 카드, s/키 등과 같은 계정 정보를 제공할 것을 요청하도록 운영 체제를 이용할 수 있다. 사용자가 관련 계정에 로그인할 때, 운영 체제(241)는 그 사용자에 대한 데이터, 활동 등을 다른 사용자에 대한 데이터, 활동 등의 적어도 일부와 별개로 관리할 수 있다. 따라서, 일 실시예에서, 운영 체제(241)는 클라이언트 장치 계정에 기초하여 클라이언트 장치 데이터, 쿠키, 소셜 네트워킹 데이터, 위치 정보 데이터 등을 저장하도록 구성될 수 있다. 더욱이, 브라우저(246), 메신저(272) 등의 설정, 구성 등은 사용자 계정에 기초할 수 있다. 따라서, 사용자 A가 그의 클라이언트 사용자 계정에 로그인할 때, 브라우저(246)는 사용자 A에 대한 쿠키들을 클라이언트 장치(200) 상의 다른 사용자 계정과 연관된 쿠키들과 다르게 수신, 저장 및/또는 검색할 수 있다.
메모리(230)는 클라이언트 장치(200)에 의해 특히 프로그램(244) 및/또는 다른 데이터를 저장하는 데 사용될 수 있는 하나 이상의 데이터 저장소(242)를 더 포함한다. 예를 들어, 데이터 저장소(242)는 클라이언트 장치(200)의 다양한 능력을 기술하는 정보를 저장하는 데 사용될 수도 있다. 이어서, 정보는 통신 중에 헤더 의 일부로서 전송되고, 요청시에 전송되는 것 등을 포함하는 임의의 다양한 이벤트에 기초하여 다른 장치에 제공될 수 있다. 더욱이, 데이터 저장소(242)는 다른 컴퓨팅 장치로부터 네트워크를 통해 수신되는 데이터, 클라이언트 장치(200) 상의 클라이언트 애플리케이션에 의해 출력되는 데이터, 클라이언트 장치(200)의 사용자에 의해 입력되는 데이터 등과 같은 정보를 저장하는 데 사용될 수 있다. 예를 들어, 데이터 저장소(242)는 쿠키들을 포함하는 데이터, 및/또는 네트워크 장치에 의해 전송되는 다른 클라이언트 장치 데이터를 포함할 수 있다. 데이터 저장소(242)는 다양한 애플리케이션을 통한 디스플레이 및/또는 사용을 위해 이미지 파일, 소셜 네트워킹 데이터, 위치 정보 데이터 등을 포함할 수도 있다. 더욱이, 데이터 저장소(242)가 메모리(230) 내에 있는 것으로 도시되지만, 데이터 저장소(242)는 CD-ROM/DVD-ROM 드라이브(228), 하드 디스크 드라이브(227) 등을 포함하지만 이에 한정되지 않는 다른 저장 매체들 내에 위치할 수도 있다.
프로그램(244)은 또한, 클라이언트 장치(200)에 의해 실행될 때, 메시지들을 송신, 수신 및/또는 처리하고, 다른 클라이언트 장치의 다른 사용자와의 통신을 가능하게 하는 컴퓨터 판독 가능 명령어들을 포함할 수 있다. 애플리케이션 프로그램들의 다른 예는 캘린더, 연락처 관리자, 태스크 관리자, 트랜스코더, 데이터베이스 프로그램, 워드 프로세싱 프로그램, 스프레드시트 프로그램, 게임, CODEC 프로그램 등을 포함한다. 또한, 대용량 메모리(230)는 브라우저(264) 및 메신저(272)를 저장한다.
브라우저(246)는 웹페이지, 서식, 웹 기반 메시지 등을 수신하고 전송하도록 구성될 수 있다. 브라우저(246)는 예를 들어, HTML(HyperText Markup Language)과 같은 SGML(Standard Generalized Markup Language), WAP(wireless application protocol), WML(Wireless Markup Language), WML 스크립트, 자바 스크립트와 같은 HDML(Handheld Device Markup Language) 등을 포함하지만 이에 한정되지 않는 사실상 모든 웹 기반 언어를 이용하여, 그래픽, 텍스트, 멀티미디어, 오디오 데이터 등을 수신하고 디스플레이(및/또는 플레이)할 수 있다. 브라우저(264)는 데이터를 수신, 저장 및/또는 제공하도록 구성될 수도 있다. 예를 들어, 일 실시예에서, 브라우저(246)는 클라이언트 장치 데이터를 쿠키 등의 형태로 수신 및 저장할 수 있다.
메신저(272)는 이메일, SMS(Short Message Service), IM(Instant Message), MMS(Multimedia Message Service), IRC(internet relay chat), mIRC 등을 포함하지만 이에 한정되지 않는 임의의 다양한 메시징 통신을 이용하여 메시징 세션을 개시하고 관리하도록 구성될 수 있다. 예를 들어, 일 실시예에서, 메신저(272)는 AOL 인스턴트 메신저, 야후 메신저, .NET 메신저 서버, ICQ 등과 같은 IM 애플리케이션으로서 구성될 수 있다. 다른 실시예에서, 메신저(272)는 다양한 메시징 프로토콜을 통합하고 이용하도록 구성되는 클라이언트 애플리케이션일 수 있다.
위치 관리자(280)는 클라이언트 장치(200)의 사용자가 소셜 네트워크 내의 사용자의 멤버쉽, 클라이언트 장치(200)와 연관된 GPS 좌표 및/또는 기타 탐색 기준들에 기초하여 위치 정보를 탐색하는 것을 가능하게 하도록 구성될 수 있다. LM(280)은 네트워크 인터페이스(250)를 통해 도 1의 GSS(106)와 같은 지리 위치 탐 색 서버와 통신하여, 탐색 결과 등을 요청할 수 있다. 도 11의 디스플레이(1100)는 LM(280)이 탐색 기준들의 입력을 가능하게 하기 위해 사용자에게 제공할 수 있는 인터페이스의 일례를 나타낸다. 도 12 및 13의 디스플레이(1200, 1300) 각각은 LM(280)이 사용자에게 탐색 결과를 제공하는 예들을 보여준다. LM(280)은 전용 디스플레이 프로그램, 브라우저(246)의 사용 등을 통해 탐색 결과를 제공할 수 있다.
더욱이, LM(280)은 사용자가 소셜 네트워크에서 사용자와 연관된 GPS 좌표와 연관된 위치 정보를 입력/갱신하는 것을 가능하게 하도록 구성될 수 있다. LM(280)은 도 10의 디스플레이(1000)를 이용하여, 사용자가 위치 정보를 입력/갱신하는 것을 가능하게 할 수 있다. 도시된 바와 같이, LM(280)은 옵션이며, LM(280)의 기능의 적어도 일부는 브라우저(246) 및/또는 네트워크 인터페이스(들)(250)를 통해 장치(200)와 통신하는 서버측 서비스들(예를 들어, 웹페이지들)을 통해 직접 제공될 수 있다.
경보 관리자(282)는 소셜 네트워크 내의 사용자의 멤버쉽, 클라이언트 장치(200)와 연관된 GPS 좌표 및/또는 탐색 기준들에 기초하여 탐색 결과(들)를 자동으로 수신하도록 구성될 수 있다. 경보 관리자(282)는 네트워크 인터페이스(250) 등을 통해 탐색 결과(들)의 인입을 수신할 수 있다. 경보 관리자(282)는 인입된 탐색 결과(들)를 수신, 차단 또는 무시하도록 사용자 선호들(preferences)에 의해 구성될 수 있다. 경보 관리자(282)는 인입된 탐색 결과(들)를 디스플레이를 위해 LM(280) 및/또는 브라우저(246)로 전송할 수 있다. 도시된 바와 같이, 경보 관리자(282)는 옵션이며, 경보 관리자(282)의 기능의 적어도 일부는 브라우저(246) 및/ 또는 네트워크 인터페이스(들)(250)를 통해 장치(200)와 통신하는 서버측 서비스들(예를 들어, 웹페이지들)을 통해 직접 제공될 수 있다.
LM(280) 및 경보 관리자(282)는 GPS 좌표들에 기초하여 동작하는 것으로서 설명되지만, 대안 실시예에서 이러한 컴포넌트들은 본 발명의 범위를 벗어나지 않고 임의의 다양한 다른 메커니즘을 이용하여 임의의 지리 좌표들과 관련하여 거의 유사하게 동작하도록 변경될 수 있다. 예를 들어, LM(280)은 지리 좌표들의 소셜 네트워크로의 입력/갱신을 관리할 수 있으며, 경보 관리자(282)는 지리 좌표들을 수신하고 제공하도록 구성될 수 있다.
예시적인 서버 환경
도 3은 본 발명의 일 실시예에 따른 네트워크 장치의 일 실시예를 나타낸다. 네트워크 장치(300)는 도시된 것보다 많은 컴포넌트를 포함할 수 있다. 그러나, 도시된 컴포넌트들은 본 발명을 실시하기 위한 일 실시예를 개시하기에 충분하다. 네트워크 장치(300)는 예를 들어 도 1의 GSS(106)를 나타낼 수 있다.
네트워크 장치(300)는 처리 유닛(312), 비디오 디스플레이 어댑터(314) 및 대용량 메모리를 포함하며, 이들은 모두 버스(322)를 통해 서로 통신한다. 대용량 메모리는 일반적으로 RAM(316), ROM(332), 및 하드 디스크 드라이브(328), 테이프 드라이브, 광학 드라이브 및/또는 플로피 디스크 드라이브와 같은 하나 이상의 영구적 대용량 저장 장치를 포함한다. 대용량 메모리는 네트워크 장치(300)의 동작을 제어하기 위한 운영 체제(320)를 저장한다. 임의의 범용 운영 체제가 사용될 수 있다. 네트워크 장치(300)의 저레벨 동작을 제어하기 위한 기본 입출력 시스 템("BIOS")(318)도 제공된다. 도 3에 도시된 바와 같이, 네트워크 장치(300)는 TCP/IP 프로토콜을 포함하는 다양한 통신 프로토콜과 함께 사용하도록 구성되는 네트워크 인터페이스 유닛(310)을 통해 인터넷 또는 소정의 다른 통신 네트워크와 통신할 수도 있다. 네트워크 인터페이스 유닛(310)은 때때로 송수신기, 송수신 장치 또는 네트워크 인터페이스 카드(NIC)로 알려진다.
전술한 바와 같은 대용량 메모리는 다른 타입의 컴퓨터 판독 가능 매체, 즉 컴퓨터 저장 매체를 나타낸다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성, 비휘발성, 이동식 및 비이동식 매체를 포함할 수 있다. 컴퓨터 저장 매체의 예는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 또는 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 장치에 의해 액세스될 수 있는 임의의 다른 매체를 포함한다.
대용량 메모리는 또한 프로그램 및 데이터를 저장한다. 하나 이상의 애플리케이션(350)이 대용량 메모리에 로딩되어, 운영 체제(320) 상에서 실행된다. 애플리케이션 프로그램들의 예는 트랜스코더, 스케쥴러, 캘린더, 데이터베이스 프로그램, 워드 프로세싱 프로그램, HTTP 프로그램, 주문형 사용자 인터페이스 프로그램, IPSec 애플리케이션, 암호화 프로그램, 보안 프로그램, VPN 프로그램, SMS 메시지 서버, IM 메시지 서버, 이메일 서버, 계정 관리 등을 포함할 수 있다.
위치 정보 서비스(LIS)(354)는 GPS 좌표들, 및/또는 소셜 네트워크에서 GPS 좌표들 및 멤버들과 연관된 다른 위치 정보를 포함하는 위치 정보를 탐색, 제공, 갱신, 입력 또는 관리하도록 구성되는 임의의 컴포넌트를 포함할 수 있다. LIS(354)는 네트워크 인터페이스(310) 등을 통해 위치 정보를 수신할 수 있다. 일 실시예에서, LIS(354)는 도 14의 소셜 네트워크(1400)와 같은 소셜 네트워크 데이터 구조, 도 15의 테이블(1500)과 같은 데이터베이스 테이블(들) 등에서 위치 정보와 GPS 좌표(들) 및 멤버들을 연관시킬 수 있다. 소셜 네트워크 데이터 구조 또는 데이터베이스는 예를 들어 하드 디스크 드라이브(328) 등에 저장될 수 있다.
LIS(354)는 소셜 네트워크를 통해 탐색하거나, 소셜 네트워크 관리자(SNM)(356)에게 요청하여 요청된 위치 정보와 연관된 멤버들에 대한 소셜 네트워크를 통해 탐색할 수 있다. 일 실시예에서, LIS(354)는 도 1의 GLT 서버(133), 레이팅 및 리뷰 서버(133) 및 후원형 탐색/광고 서버(131)와 같은 위치 정보 서비스와 통신함으로써 네트워크 인터페이스(310)를 통해 원격으로 위치 정보를 관리할 수 있다. LIS(354)는 도 4 및 6과 관련하여 후술하는 바와 같은 프로세스를 이용하여, 그의 액션들 중 적어도 일부를 수행할 수 있다.
SNM(356)은 네트워크를 통해 소셜 네트워크를 관리하기 위한 임의의 컴포넌트를 포함한다. SNM(356)은 네트워크 인터페이스 유닛(310)을 통해 소셜 네트워크를 생성, 갱신, 탐색 또는 관리하도록 구성될 수 있다. SNM(356)은 도 4 및 6과 관련하여 후술하는 바와 같은 프로세스를 이용하여, 그의 액션들 중 적어도 일부를 수행할 수 있다.
SNM(356)은 하드 디스크 드라이브(328) 등을 포함하는 데이터 저장소 내에 소셜 네트워크를 저장할 수 있다. 소셜 네트워크의 표현의 일 실시예는 예를 들어 도 14의 소셜 네트워크(1400), 도 15의 테이블(1500) 및/또는 도 16의 테이블(1600)과 관련하여 더 상세히 설명된다. 그러나, 간단히 설명하면, 소셜 네트워크는 그래프, 트리, 데이터베이스 또는 임의의 다른 데이터 구조로서 저장될 수 있다. 소셜 네트워크의 멤버들은 빠른 갱신, 탐색 등을 위해 그들의 고유한 멤버 ID에 의해 인덱스될 수 있다.
소셜 네트워크는 특정 멤버에 대한 공동체의 크기와 같은 특성들을 가질 수도 있다. 한 멤버의 공동체는 그 멤버로부터의 분리도 내의 다른 멤버들의 세트, 그 멤버와 특정 강도의 관련성을 갖는 다른 멤버들의 세트, 공동체 내의 최대 수의 멤버들 등으로서 정의될 수 있다. 도 14의 소셜 네트워크(1400)를 간단히 참고하면, 멤버(1401)의 공동체는 공동체의 일례를 보여준다.
멤버들의 소셜 네트워크는 그래프 및/또는 트리 구조에 대한 깊이 우선 탐색, 폭 우선 탐색, A* 탐색 또는 임의 타입의 탐색 알고리즘에 의해 멤버들과 관련된 위치 정보를 위해 탐색될 수 있다. 도 14의 소셜 네트워크(1400)를 간단히 참조하면, 멤버(1401)의 깊이 우선 탐색은 멤버(1401)에서 시작하고, 멤버(1402), 이어서 멤버(1404) 및 멤버(1405)로 계속될 수 있으며, 멤버(1405)에서 중지 조건이 발생한다. 이어서, 탐색은 멤버(1403)로 계속된다. 깊이 우선 탐색은 이미 방문한 멤버들을 고려할 수 있으며, 멤버(1402)로 계속되지 않을 수도 있다.
A* 탐색은 중지 조건이 탐색될 다음 멤버의 관련성의 강도, 탐색될 다음 멤 버의 활동의 양 또는 최종 갱신 등과 같은 발견적 방법(heuristic)에 기초할 수 있다는 점 외에는 깊이 우선 탐색과 유사할 수 있다. 이러한 방식으로, 탐색은 서로에 대해 높은 관련성을 갖는 멤버들에 집중될 수 있다.
폭 우선 탐색은 멤버(1401)에서 시작하여, 멤버(1402)로 계속되고, 이어서 동일 분리도의 다른 멤버, 예를 들어 멤버(1403)로 계속되며, 이어서 다음 분리도의 멤버들, 예를 들어 멤버(1404)로 계속되는 등, 중지 조건이 발생할 때까지 계속될 수 있다.
소셜 네트워크(1400) 내에 그래프 구조로서 도시되지만, 소셜 네트워크는 그래프 구조에 저장될 필요는 없다. 예를 들어, 도 15의 테이블(1500)을 간단히 참조하면, 테이블의 행들은 소셜 네트워크의 위치 정보와 멤버들 간의 관련성을 나타낼 수 있다. 멤버 ID들(1512-1515)로 인덱스된 멤버들은 테이블(1500)의 모든 행들, 또는 특정 공동체, 예를 들어 공동체들(1532-1535) 중 하나에 속하는 멤버들에 대한 모든 행들을 탐색함으로써 탐색될 수 있다. GPS 좌표(들)(a,b) 부근에 있고 멤버 ID들에 기초하는 테이블(1500)로부터의 위치 정보를 선택하기 위한 가능한 SQL 문장의 일례는 다음과 같다.
이 예에서, GPS_COORDINATE_X는 경도 값을 나타낼 수 있고, GPS_COORDINATE_Y는 위도 값을 나타낼 수 있다. "부근"의 기준은 위도(또는 경도) 의 1도 변화가 X 미터(예를 들어, 1 미터=1/x 도 변화)와 동일한 경우에 파라미터 "search_distance"에 기초한다. 따라서, 위의 문장은 (a,b)까지의 "search_distance" 내의 GPS 좌표(들)와 연관된 위치 정보를 발견한다.
일반적으로, 임의의 GPS 좌표(들) (x1,y1)에 대해, (x1,y1)과 다른 GPS 좌표(들) (x2,y2) 사이의 거리 d가 "search_distance" 이하가 되는 상기 다른 GPS 좌표(들) (x2,y2)를 발견하도록 어떻게 상기 SQL 문장을 쉽게 수정할지는 이 분야의 전문가에게 명확할 것이다. (x1, y1)과 (x2,y2) 사이의 거리 d는 다음 공식으로 주어질 수 있다.
지구의 곡률을 고려하기 위해, Haversine 공식 등과 같은 다른 공식들도 이용될 수 있다. 간단히 설명하면, Haversine 공식은 다음과 같이 동작한다.
R=지구 반경(평균 반경=6,371km)
Δlat=y2-y1
Δlong=x2-x1
a=sin2(Δlat/2)+cos(lat1)*cos(lat2)*sin2(Δlong/2)
c=2*atan2(√a,√(1-a))
d=R*c
따라서, 지구의 곡률을 고려하면서, 임의의 GPS 좌표(들) (x1,y1)에 대해, (x1,y1)과 다른 GPS 좌표(들) (x2,y2) 사이의 거리 d가 "search_distance" 이하가 되는 상기 다른 GPS 좌표(들) (x2,y2)를 발견하도록 어떻게 상기 SQL 문장을 쉽게 수정할지는 이 분야의 전문가에게 명확할 것이다.
네트워크 장치(300)를 다시 참조하면, 경로 맵퍼(RM)(357)는 하나의 지리 위치에서 다른 지리 위치로의 경로를 맵핑하기 위한 임의의 컴포넌트를 포함할 수 있다. RM(357)은 하드 디스크 드라이브(328) 등을 포함하는 데이터 저장소에 저장된 거리 맵 또는 다른 토폴로지 맵에 액세스할 수 있다. 시작 위치 및 종료 위치가 주어지면, RM(357)은 Moore 알고리즘, 최단 경로 알고리즘, 최저 교통 시간 알고리즘, Frank-Wolfe 알고리즘, Wardrop 평형 알고리즘 등을 포함하는 임의의 경로 맵핑 알고리즘을 이용하여 위치들 간의 경로를 찾을 수 있다. 이러한 알고리즘들의 이용은 중간 위치들을 통과하는 경로의 발견을 고려할 수도 있다. 일 실시예에서, 시작 위치, 종료 위치 및/또는 중간 위치들은 GPS 좌표들에 의해 식별될 수 있다. RM(357)은 LIS(354)로부터 경로 내의 위치의 GPS 좌표와 연관된 위치명들과 같은 적어도 일부 위치 명세를 요청할 수 있다. RM(357)은 도 5와 관련하여 후술하는 것과 같은 프로세스를 이용하여 그의 액션들 중 적어도 일부를 수행할 수 있다.
메신저 서비스(352)는 복수의 장치 사이의 통신을 가능하게 하기 위한 임의의 컴포넌트를 포함한다. 메신저 서비스(352)는 예를 들어 도 1의 클라이언트 장치들(101-103) 중 둘 이상의 사이에서 메시지들을 중계하도록 구성될 수 있다. 메신저 서비스(352)는 IM, SMS, 이메일 및/또는 VOIP 메시지들을 중계하건, 복수의 장치 사이의 통신을 가능하게 할 수 있다. 일 실시예에서, 메신저 서비스(352)는 도 1의 메신저 서버(132) 등과 같은 중간 메신저 서버를 통해 메시지들을 라우팅할 수 있다. 일 실시예에서, 메신저 서비스(352)는 소셜 네트워크의 한 멤버와 GPS 좌표와 연관된 소셜 네트워크의 다른 멤버 간의 통신을 가능하게 할 수 있다. 메신저 서비스(352)는 도 7과 관련하여 후술하는 것과 같은 프로세스를 이용하여, 그의 액션들 중 적어도 일부를 수행할 수 있다.
LIS(354), SNM(356) 및 RM(357)이 GPS 좌표들에 기초하여 동작하는 것으로 설명되지만, 다른 실시예에서 이들 컴포넌트는 본 발명의 범위로부터 벗어나지 않고 임의의 다양한 다른 메커니즘을 이용하여 임의의 지리 좌표들과 관련하여 거의 유사하게 동작하도록 변경될 수 있다. 예를 들어, LIS(354)는 지리 좌표들을 관리할 수 있고, SNM(356)은 소셜 네트워크 내의 지리 좌표들을 관리할 수 있으며, RM(357)은 지리 좌표들과 연관된 적어도 일부 포인트들 사이의 경로들 및/또는 그들을 통하는 경로들을 관리할 수 있다.
일반 동작
이제, 본 발명의 소정 양태들의 동작이 도 4-7을 참조하여 설명될 것이다. 도 4는 소셜 네트워크에 부분적으로 기초하여 위치 정보를 제공하는 일 실시예를 일반적으로 나타내는 논리 흐름도를 도시한다. 도 4의 프로세스(400)는 도 1의 GSS(106), GLT 서버(134), 레이팅 및 리뷰 서버(133), 메신저 서버(132) 및/또는 후원형 탐색/광고 서버(131) 내에서 구현될 수 있다.
도 4의 프로세스(400)는 블록 402에서 시작하며, 여기서 소셜 네트워크의 한 멤버와 연관된 클라이언트 장치로부터 GPS 좌표가 수신된다. 일 실시예에서, GPS 좌표는 클라이언트 장치의 지리 위치를 식별할 수 있다. 일 실시예에서, 클라이언 트 장치는 도 1의 이동 장치들(102-103) 등과 같은 이동 장치일 수 있다. 일 실시예에서는, 클라이언트 장치로부터 탐색 기준들/기준도 수신될 수 있다. 일 실시예에서, 멤버에 관한 또는 멤버를 식별하는 정보가 GPS 좌표/탐색 기준들과 함께 수신되거나, 클라이언트 장치에 의해 (예를 들어, 로그인 프로세스에서) 초기에 전송되었거나, (클라이언트 장치의 MAC 어드레스, IP 어드레스 또는 다른 어드레스를 통해) 클라이언트 장치와 연관되는 것 등이 이루어질 수 있다. 다른 실시예에서, GPS 좌표, 탐색 기준들 및/또는 멤버에 관한 또는 멤버를 식별하는 정보는 다른 프로세스 또는 장치로부터 수신될 수 있다.
이어서, 처리는 블록 404로 계속되며, 여기서 소셜 네트워크는 GPS 좌표 및/또는 탐색 기준들에 기초하여 위치명과 연관된 다른 멤버에 대해 탐색된다. 소셜 네트워크의 탐색은 그 멤버에서 시작될 수 있다. 일 실시예에서, 탐색은 도 3과 관련하여 전술한 바와 같이 그 멤버에서 소셜 네트워크의 다른 관련 멤버들까지의 폭 우선 탐색, 깊이 우선 탐색, A* 탐색 등일 수 있다. 탐색은 위치명과 연관된 적어도 하나의 멤버가 발견되거나, 위치명들과 연관된 소정 수의 멤버들이 발견되거나, 탐색의 깊이에 도달하였거나, 소정의 다른 탐색 중지 기준들에 도달한 때까지 계속될 수 있다.
일 실시예에서는, 위치명 및 다른 멤버와 연관된 이전에 저장된 GPS 좌표가 클라이언트 장치로부터 수신된 GPS 좌표 부근에 있는 경우에 다른 멤버가 발견된다. 일 실시예에서, 부근을 정의하는 탐색 거리는 탐색 기준들에서 제공될 수 있다. 위치명 및 GPS 좌표는 다른 멤버와 직접 연관(소셜 네트워크에서 링크)되거 나, 다른 멤버의 공동체와 연관될 수 있다. 소셜 네트워크(1400)를 간단히 참조하면, 탐색은 멤버(1401)에서 시작될 수 있다. 클라이언트 장치에 의해 제공되는 GPS 좌표가 GPS 좌표(1400) 부근에 있는 경우, 멤버(1401)가 발견되고, 추가 처리를 위해 위치명들(1450-1451)이 제공된다. 대안으로, 클라이언트 장치에 의해 제공되는 GPS 좌표가 GPS 좌표(1441) 부근에 있는 경우, 멤버(1401)의 공동체와 연관된 (따라서, 멤버(1401)와 연관된) 위치명(1452)이 추가 처리를 위해 제공된다.
일 실시예에서, 클라이언트 장치로부터 수신되는 GPS 좌표에 기초하는 것 외에, 탐색은 지방시에 기초할 수도 있다. 이 실시예에서, 지방시는 GPS 좌표에 그리고 GPS 좌표 및/또는 탐색 기준들을 수신하는 시간에 기초하여 결정된다. 일 실시예에서, 지방시는 UTC(Universal Coordinate Time) 또는 다른 글로벌 시간 기준에 기초하여 그리고 GPS 좌표의 지방시 구역을 고려하여 GPS 좌표로부터 결정될 수 있다. 다른 실시예에서, 글로벌 시간 기준은 GPS 소스(예를 들어, GPS 좌표에 대한 소스)로부터 수신될 수 있다. 다른 실시예에서, 지방시는 GPS 결정 지방시에 기초하는 그 주의 하루, 그달의 하루, 휴일 등일 수 있다. 예를 들어, 멤버 A는 레스토랑에 또는 그 근처에 있을 때 17:00의 지방시에 GPS 좌표에 대해 위치명 "Restaurant"를 입력했을 수 있다. 지방시는 위치명, GPS 좌표 및 소셜 네트워크 내의 멤버 A에도 연관된다. 멤버 B가 GPS 좌표에서 또는 그 근처에서 그리고 시간 17:30에 임의의 위치를 탐색하는 경우, 위치명 "Restaurant"가 반환될 수 있는데, 이는 시간 17:30이 시간 17:00의 범위 내에 있기 때문이다. 어느 경우에나, 지방시가 위치명과 연관된 시간의 범위 내에 있는 경우, 추가 처리를 위해 위치명이 제 공된다. 범위는 관리자에 의해 시간적 가까움을 나타내는 시간 값들의 세트로서, 또는 탐색 멤버 등에 의해 결정될 수 있다.
대안 실시예에서, 도 4의 블록 404에서, 지리 정보 데이터베이스 등의 디폴트/미리 채워진 데이터베이스에 대해 옵션 탐색이 수행될 수 있다. 일 실시예에서, 데이터베이스는 위치명들이 소셜 네트워크에서 발견되지 않을 경우에 탐색될 수 있다. 다른 실시예에서, 데이터베이스로부터의 위치 정보는 소셜 네트워크에서 발견된 위치 정보를 증대시킬 수 있다. 어느 경우에나, 클라이언트 장치에 의해 제공되는 GPS 좌표는 b-트리 탐색, 선형 탐색 등을 포함하는 임의의 다양한 데이터베이스 탐색에 기초하여 데이터베이스 내의 GPS 좌표들에 대해 매칭될 수 있다. 데이터베이스에서 발견된 위치명들 및/또는 다른 위치 정보도 추가 처리를 위해 제공될 수 있다.
이어서, 처리는 블록 406으로 계속되며, 여기서 각각의 발견된 위치명들은 복수의 탐색 결과 내에 탐색 결과로서 포함된다. 탐색 결과는 레코드, 객체 또는 임의의 다른 데이터 구조일 수 있다. 일 실시예에서, 발견된 적절한 위치명과 연관된 하나 이상의 위치 명세도 탐색 결과에 포함될 수 있다. 위치 명세들은 태그, 리마크, 코멘트, 지방시, 레이팅, GPS 좌표 등을 포함한다. 탐색 결과의 일례는 예를 들어 도 14의 소셜 네트워크(1400)의 위치명(1451)을 포함할 수 있다. 위치 명세(1470-1472)는 동일 탐색 결과 내에 위치명(1451)으로서 포함될 수도 있다. 일반적으로, 탐색 결과들은 검색, 순서화, 필터링 및 탐색을 위해 구성되는 임의의 포맷으로 저장될 수 있다.
일 실시예에서, 복수의 탐색 결과는 리스트, 탐색 결과 내의 위치명들의 GPS 좌표들에 대응하는 포인트들(위치들의 표현들)의 2차원 어레이 등을 포함할 수 있다. 도 12의 디스플레이(1200) 및 도 13의 디스플레이(1300)는 2차원 어레이의 디스플레이의 예들을 보여준다. 다른 실시예에서, 복수의 탐색 결과는 3차원 이상으로 저장 및/또는 표현될 수 있는데, 2차원보다 높은 다른 차원들은 위치명의 관련성, 위치명이 관련된 시간, 위치명에 의해 식별되는 랜드마크의 깊이 및 높이 등을 표현할 수 있다.
이어서, 처리는 판정 블록 408로 계속되며, 여기서 복수의 탐색 결과 내의 탐색 결과(레코드)가 후원형 광고인지가 판정된다. 후원형 광고는 소셜 네트워크의 임의 멤버 또는 임의의 제삼자가 복수의 탐색 결과에 포함될 위치 명세에 대해 지불한 (예를 들어, 탐색 결과 레코드에 포함된) 임의의 위치 정보를 포함한다. 일 실시예에서, 다른 멤버/제삼자는 위치 정보와 GPS 좌표 간의 관련성, 한 세트의 탐색 워드들 등을 구매할 수 있다. 따라서, 일 실시예에서, 지불은 GPS 좌표 부근에 있는 다른 GPS 좌표와 소셜 네트워크 내의 위치명을 연관시키기 위해 다른 멤버로부터 수신될 수 있다. 위치 정보/탐색 결과가 후원형 광고인 것으로 판정되는 경우, 처리는 블록 410으로 계속된다. 그렇지 않은 경우, 처리는 블록 412로 계속된다.
블록 410에서, 탐색 결과(예를 들어, 탐색 결과와 연관된 위치명 또는 다른 위치 정보)는 복수의 탐색 결과 내에 후원형 광고로서 지시된다. 일 실시예에서, 탐색 결과와 연관된 필드가 후원형 광고로서 표시될 수 있고, 그리고/또는 그 필드 는 탐색 결과를 후원형 광고로서 표시하는 데 사용될 수 있다. 예를 들어, 도 12의 디스플레이(1200)는 포인트(1205)를 후원형 광고로서 지시하기 위해 포인트(1205)를 상이한 칼라, 형상, 크기 등으로 표시할 수 있다. 이어서, 처리는 블록 412로 계속된다.
블록 412에서, 복수의 탐색 결과는 클라이언트 장치로부터 수신되는 탐색 기준들 및/또는 소셜 네트워크에 대한 정보에 기초하여 필터링된다. 일 실시예에서, 탐색 기준들은 쿼리 스트링, 탐색 거리, 탐색 시간, 레이팅 레벨, 소셜 네트워크에 대한 공동체 필터 또는 위치 정보(예를 들어, 최근 기간, 예를 들어 최종 'N'일 내에 갱신된 정보)의 최종 갱신 시간을 포함할 수 있다. 탐색 기준들의 예는 '여기'(예를 들어, 내가 현재 위치하는 곳)로부터의 거리, 태그(예를 들어, "great restaurant" 또는 "cinema"), 시간(예를 들어, 지금으로부터 1시간) 및 레이팅(예를 들어, 별 4개) 등을 포함할 수 있다. "where I am" 기준 및 시간 정보는 클라이언트 장치로부터 전송된 GPS 좌표들에 기초할 수 있다.
어느 경우에나, 탐색 기준들 각각은 위치 정보의 타입과 연관될 수 있다. 따라서, 위치 정보의 타입(예를 들어, 스트링 타입, 시간 타입, 레이팅 타입, 위치 타입(GPS 좌표))에 기초하여, 적절한 탐색 기준이 특정 위치 정보에 대해 매칭된다. 복수의 탐색 결과 내의 탐색 결과가 탐색 기준들 중 적어도 하나와 매칭되지 않는 경우, 탐색 결과는 복수의 탐색 결과로부터 필터링된다. 일 실시예에서, 탐색 결과는 모든 탐색 기준과 매칭되지 않는 경우에도 필터링될 수 있다.
스트링 타입의 탐색 기준에 대해, 탐색 기준은 위치 정보의 스트링의 적어도 일부가 탐색 기준과 매칭되는 경우에 특정 탐색 결과 내의 위치 정보(예를 들어, 위치 명세 또는 위치명)와 매칭될 수 있다. 매칭은 정규 표현 매칭, 부분 스트링 매칭, 퍼지 스트링 매칭, 정보 검색 탐색, 레이턴트 시맨틱 인덱싱 등과 같은 임의의 스트링 기반 탐색 기술들에 기초할 수 있다. 이러한 스트링 기반 탐색 기준은 탐색 쿼리, 부울 쿼리, 탐색 스트링, 워드, 한 세트의 워드, 시간 범위, 레이팅 범위 등을 포함할 수 있다. 탐색은 또한 중지 워드들의 제거, 스트링들의 스테밍(stemming), 워드의 역 인덱스 룩업의 수행, 부울 매칭의 수행 등을 포함할 수 있다. 도 15를 간단히 참조하면, 쿼리 스트링 "restaurants"를 포함하는 탐색 기준들은 워드 "reataurants"의 "레스토랑"으로의 스테밍에 기초하여, 그리고 스트링 "Best Restaurant"의 부분/서브스트링 매칭에 기초하여 레코드 ID(1452)에 의해 식별되는 행과 매칭될 수 있다.
비 스트링 기반 기준들에 대해, 적절한 타입 기반 매칭(예를 들어, 시간들의 범위 내의 시간의 매칭, 레이팅들의 범위 내의 레이팅의 매칭 등)이 수행될 수 있다. 시간 매칭에 대해, 범위는 관리자에 의해 시간적 가까움을 표현하는 시간 값들의 세트로서, 또는 탐색 멤버 등에 의해 결정될 수 있다. 도 15를 간단히 참조하면, 시간 16:00을 포함하는 탐색 기준이 레코드 ID(1452)에 의해 식별되는 행과 매칭될 수 있는데, 이는 시간 16:00이 시간(1554) (16:30)의 (가까운) 범위 내일 수 있기 때문이다.
일 실시예에서, 탐색 기준들은 소셜 네트워크에 대한 공동체 필터를 포함할 수 있으며, 따라서 필터링은 이러한 소셜 네트워크에 대한 정보에 기초할 수 있다. 공동체 필터는 소셜 네트워크의 멤버들 사이의 분리도, 또는 멤버의 공동체에 대한 임의의 다른 정보일 수 있다. 멤버의 공동체는 예를 들어, 관리자, 멤버 등에 의해 다양한 방식으로 정의될 수 있다. 멤버의 공동체는 멤버의 분리도 내의 다른 멤버들의 세트, 멤버와의 강도를 갖는 다른 멤버들의 세트, 공동체 내의 최대 수의 멤버들 등으로서 정의될 수 있다. 일 실시예에서는, 공동체 외부의 멤버들과 연관된 탐색 결과가 필터링될 수 있다. 도 15를 간단히 참조하면, 탐색 기준들은 공동체 필터(1401, 1402, 1403), 예를 들어 멤버(1401)의 공동체를 포함할 수 있다. 탐색 기준들은 레코드 ID들(1561-1563)에 의해 식별되는 행들과 매칭될 수 있고, (1401, 1402, 1403) 내에 없는 멤버 ID들을 갖는 임의의 행들을 필터링할 수 있다.
다른 실시예에서, 공동체 필터에서 정의되는 분리도 이하의 분리도를 갖는 제1 멤버가 탐색 결과 내에 유지되도록 선택되는 반면, 더 큰 분리도를 갖는 다른 멤버들은 필터링될 수 있다. 도 14를 간단히 참조하면, 멤버들(1402-1403)은 멤버(1401)의 공동체 내에 포함될 수 있지만, 멤버들(1404-1405)은 멤버들(1402-1403)보다 멤버(1401)로부터 더 큰 분리도를 가지므로 필터링될 수 있다.
프로세스(400)를 다시 참조하면, 이어서 프로세스는 블록 414로 계속되며, 여기서 탐색 결과들은 복수의 탐색 결과에 포함된 탐색 결과의 관련성 정보에 기초하여 순서화된다. 일 실시예에서, 관련성 정보는 한 멤버와 탐색 결과들과 연관된 다른 멤버들 간의 분리도, 탐색 기준들의 매칭의 양, 관련성 스코어, 탐색 결과의 상태(예를 들어, 후원형 광고), 탐색 결과의 출처(예를 들어, 소셜 네트워크 또는 디폴트 데이터베이스), 탐색 결과와 연관된 레이팅(예를 들어, 탐색 결과 내의 위 치 명세가 하나의 레이팅인 경우), 또는 사실상 모든 다른 관련성 정보를 포함할 수 있다.
일 실시예에서, 보다 큰 매칭 양을 가진 탐색 결과는 탐색 결과들 내에 더 높이 순서화될 수 있다(예를 들어, 다른 탐색 결과 앞에 순서화되거나, N차원 맵 상에 더 크게 지시되는 등). 도 15를 간단히 참조하면, 쿼리 스트링 "store" 및 시간 12:00을 포함하는 탐색 기준들은 레코드 ID들(1561-1562)에 의해 식별되는 행들에 매칭될 수 있는데, 이는 쿼리 스트링 "store"가 행들과 매칭되고, 시간 12:00이 행들과 부분적으로 매칭되기 때문이다. 이 예에서, 레코드 ID(1562)에 의해 식별되는 행은 복수의 탐색 결과 내에 더 높이 순서화될 것인데, 이는 탐색 기준들이 레코드 ID(1562)에 대해서는 위치명 및 시간 양자에 매칭되지만, 레코드 ID(1561)에 대해서는 위치명에만 매칭되기 때문이다.
다른 실시예에서, 관련성 정보는 소셜 네트워크 정보를 포함할 수 있다. 이 실시예에서, 소셜 네트워크의 제1 멤버가 클라이언트 장치와 연관된 멤버로부터 제2 멤버보다 낮은 분리도를 갖는 경우, 소셜 네트워크의 제1 멤버와 연관된 제1 탐색 결과는 탐색 결과들 내에서 제2 멤버와 연관된 제2 탐색 결과보다 더 높이 순서화될 수 있다. 도 14를 간단히 참조하면, 멤버(1401)에 의한 탐색에 대해, 멤버(1401)에 의해 제공되는 정보(예를 들어, 위치명들(1450-1451))를 포함하는 탐색 결과가 다른 탐색 결과들보다 높게 순서화될 수 있다.
또 다른 실시예에서, 관련성 스코어는 탐색 결과 내의 위치 정보 중 적어도 하나와 연관될 수 있다. 관련성 스코어는 (단독으로 또는 다른 관련성 정보와 연 계하여) 탐색 결과들을 순서화하는 데 사용될 수 있다. 도 15를 간단히 참조하면, 탐색 결과들은 레코드 ID들(1561-1562)에 의해 식별되는 행들을 포함할 수 있다. 레코드 ID(1562)에 의해 식별되는 행은 관련성 스코어(1542)(0.5)보다 높은 관련성 스코어(1543)(0.8)를 가지므로, 탐색 결과들 내에 더 높이 순서화될 수 있다. 일 실시예에서, 관련성 스코어들은 도 6의 블록 608에 의해 결정될 수 있다.
대안 실시예에서, 순서화는 전술한 관련성 정보의 종합, 또는 임의의 다른 관련성 정보에 기초할 수 있다. 일 실시예에서, 관련성 정보는 매칭의 양에 분리도의 역을 곱한 것 등일 수 있다.
이어서, 처리는 블록 416으로 진행하며, 여기서 탐색 결과들이 클라이언트 장치, 호출 프로세스 또는 다른 프로세스 또는 장치에 제공된다. 일 실시예에서, 탐색 결과는 리스트(예를 들어, 텍스트, XML 등), HTML 페이지, 이미지로서, 네트워크를 통해, 기타 등등에 의해 제공될 수 있다. 도 12의 디스플레이(1200)는 제공된 탐색 결과들의 일례를 나타낸다.
일 실시예에서, 탐색 결과들은 클라이언트 장치로 (예를 들어, 탐색 결과들을 제공하는 경보 등으로서) 인입될 수 있다. 다른 실시예에서, 클라이언트 장치는 (HTTP 요청 등을 통해) 탐색 결과들을 (예를 들어, 탐색 결과들 각각의 위치 명세를 포함하는 맵으로서) 인출할 수 있다. 일 실시예에서, 클라이언트 장치와 연관된 멤버는 (예를 들어, 인입 또는 인출되는 탐색 결과들로서) 탐색 결과들의 전달에 대한 선호를 지정할 수 있다. 일 실시예에서, 선호는 탐색 결과들이 인입/인출될 수 있는 시간(범위), 탐색 결과들이 인입/인출될 수 있는 지리 위치(범위) 등 을 지정할 수 있다. 일 실시예에서, 선호는 후원형 광고들이 멤버로부터 차단/필터링될 수 있도록 지정할 수도 있다. 다른 실시예에서, 선호는 공동체의 멤버들의 선호들의 집합에 기초할 수 있다. 이어서, 처리는 추가 처리를 위해 호출 프로세스로 복귀한다.
대안 실시예에서, 블록 412 및 414는 옵션일 수 있으며, 수행되지 않을 수 있다. 다른 대안 실시예에서, 블록 404, 412 및/또는 414는 동시에 수행될 수 있다. 이러한 실시예에서는, 소셜 네트워크가 위치명들과 연관된 멤버들에 대해 탐색되고 있는 동안, 적절한 위치명들 및/또는 태그들이 선택, 필터링 및/또는 순서화될 수 있다. 복수의 탐색 결과는 복수의 탐색 결과 중 적어도 하나의 탐색 결과와 클라이언트 장치로부터 수신되는 탐색 기준들의 매칭에 부분적으로 기초하여, 그리고 적어도 하나의 탐색 결과와 연관된 관련성 정보에 더 기초하여 수정될 수 있다.
도 5는 소셜 네트워크에 부분적으로 기초하여 경로를 제공하는 일 실시예를 일반적으로 나타내는 논리 흐름도를 도시한다. 도 5의 프로세스(500)는 도 1의 GSS(106), GLT 서버(134), 레이팅 및 리뷰 서버(133), 메신저 서버(132) 및/또는 후원형 탐색/광고 서버(131) 내에서 구현될 수 있다.
도 5의 프로세스(500)는 블록 502에서 시작되며, 여기서 네트워크 등을 통해 클라이언트 장치로부터 경로에 대한 시작 위치 및 종료 위치 중 적어도 하나가 수신된다. 적어도 하나의 위치는 클라이언트 장치를 이용하는 소셜 네트워크의 멤버로부터 수신될 수 있다. 적어도 하나의 위치는 GPS 좌표, 위치명 등을 포함하는 임의의 위치 정보를 포함할 수 있다. 일 실시예에서, 시작 위치 및 종료 위치 양자가 클라이언트 장치로부터 수신된다.
다른 실시예에서는, 시작 위치 및 종료 위치 중 하나만이 수신되며, 다른 위치는 소셜 네트워크 내의 멤버의 식별(identity)에 기초하여 결정된다. 예를 들어, 다른 위치는 멤버 또는 멤버의 공동체의 관심에 기초할 수 있다. 이러한 실시예에서, 다른 위치는 자주 탐색되는 위치, 멤버/공동체에 대해 높게 레이팅된 위치 등일 수 있다. 일 실시예에서, 다른 위치는 클라이언트 장치와 연관된 GPS 좌표 부근일 수 있다. 다른 위치와 연관된 시간도 클라이언트 장치 등과 연관된 현재 지방시의 (가까운) 범위 내일 수 있다. 다른 위치는 후원형 광고일 수도 있다. 대안 실시예에서, 블록 502는 옵션일 수 있으며, 시작 위치 및 종료 위치 양자는 멤버 또는 공동체의 관심에 기초하여 결정될 수 있다.
이어서, 처리는 블록 504로 계속되며, 여기서 시작 위치 및/또는 종료 위치와 연관된 GPS 좌표 및/또는 탐색 기준들이 결정된다. 일 실시예에서, GPS 좌표 및/또는 탐색 기준들은 클라이언트 장치에 의해 제공될 수 있다. 대안으로, GPS 좌표는 소셜 네트워크로부터 검색될 수 있는데, 예를 들어 GPS 좌표는 멤버 또는 멤버의 공동체의 관심 위치와 연관된다. 다른 실시예에서, GPS 좌표는 시작 위치와 연관된 최초 GPS 좌표와 종료 위치와 연관된 최종 GPS 좌표 사이의 포인트(예를 들어, 중간 포인트)일 수 있다. 또한, 대안 실시예에서, 탐색 기준들은 시작 및/또는 종료 위치와 연관된 위치 명세(예를 들어, 지방시, 태그 등)의 적어도 일부에 기초하여 결정될 수 있다. 예를 들어, 탐색 기준들은 시작 및/또는 종료 위치가 위치 명세 "music store"와 연관되는 경우에 쿼리 스트링 "music"을 포함할 수 있다. 따라서, 탐색 기준들 및 GPS 좌표는 특정 위치 부근의 유사한 위치들의 탐색을 정의할 수 있다.
이어서, 처리는 블록 506으로 계속되며, 다른 위치들(예를 들어, 위치 정보, 위치명 등)을 포함하는 복수의 탐색 결과가 GPS 좌표, 탐색 기준/기준들 및/또는 클라이언트 장치와 연관된 멤버에 대한 정보에 기초하여 수신된다. 일 실시예에서, 소셜 네트워크는 GPS 좌표 및 탐색 기준/기준들에 기초하여 다른 멤버 및 관심 위치에 대해 탐색되는데, 여기서 관심 위치는 소셜 네트워크에서 다른 멤버와 관련된 것으로서 식별되어 있다. 일 실시예에서, 탐색은 도 4의 프로세스(400) 및/또는 도 8의 신호 흐름(800)에 의해 수행될 수 있다.
이어서, 처리는 블록 508로 계속되며, 여기서 복수의 탐색 결과에 포함된 탐색 결과/위치가 적어도 하나의 관심 위치를 결정하는 데 사용될 수 있다. 일 실시예에서, 관심 위치는 시작 위치 또는 종료 위치를 포함할 수 있다(예를 들어, 시작 위치와 종료 위치 사이의 경로에는 어떠한 다른 위치도 존재하지 않는다). 일 실시예에서, 복수의 탐색 결과의 각각의 탐색 결과는 관심 위치일 수 있다. 일 실시예에서, 지리적으로 가장 가까운 위치가 관심 위치로서 결정될 수 있다. 다른 실시예에서, 복수의 탐색 결과에서 최고로 순서화된 탐색 결과가 관심 위치로서 결정될 수 있다.
이어서, 처리는 블록 510으로 계속되며, 여기서 시작 위치와 종료 위치 사이의 경로가 결정되는데, 이 경로는 적어도 하나의 관심 위치를 포함한다(예를 들어, 경로는 적어도 하나의 관심 위치를 통과한다). 위치들 사이의 경로는 전술한 것들을 포함하는 임의의 경로 맵핑 알고리즘을 이용하여 결정될 수 있다.
이어서, 처리는 블록 512로 계속되며, 여기서 경로가 클라이언트 장치로 제공된다. 일 실시예에서, 경로는 탐색 결과들 내에 포함되어 클라이언트 장치로 제공될 수 있다. 예를 들어, 경로는 HTML, 이미지 또는 다른 버전의 탐색 결과들 등 상에 오버레이될 수 있다. 다른 실시예에서, 경로는 탐색 결과 내의 개별 필드에 포함될 수 있다. 어느 경우에나, 경로를 포함하는 변경된 탐색 결과가 클라이언트 장치 또는 다른 프로세스 또는 장치로 제공된다. 일 실시예에서, 변경된 탐색 결과들은 도 4의 블록 416에서 설명된 프로세스와 거의 유사하게 클라이언트 장치로 인입되거나 클라이언트 장치로부터 인출된다. 도 13의 디스플레이(1300)는 경로를 포함하는 변경되어 제공된 탐색 결과들의 일례를 나타낸다. 이어서, 처리는 추가 처리를 위해 호출 프로세스로 복귀한다.
프로세스(500)의 일례로서, 하나의 멤버가 예를 들어 그 멤버의 클라이언트 장치와 연관된 GPS 좌표를 포인트 A로서, 그리고 다른 GPS 좌표를 포인트 B로서 입력하여 전송함으로써 지방시 10 A.M.에 또는 그 근처에 A에서 B로의 경로를 탐색한다. 버킹검 궁전의 근위병들이 10 A.M.에 또는 그 근처에 A에서 B로의 경로 근처에서 교대하는 경우, 제시되는 경로는 근위병들의 교대 위치를 A에서 B로의 경로를 따르는 관심 위치로서 포함할 수 있다. 그러나, 멤버가 12 A.M.에 여행하고 있고, 근위병들의 교대가 그 시간에 일어나지 않는 경우에, 이 관심 위치는 A에서 B로의 경로에 포함되지 않을 수 있다.
도 6은 소셜 네트워크 내의 멤버들과 연관된 위치 명세를 입력/갱신하는 일 실시예를 일반적으로 나타내는 논리 흐름도를 도시한다. 도 6의 프로세스(600)는 도 l의 GSS(106), GLT 서버(134), 레이팅 및 리뷰 서버(133), 메신저 서버(132) 및/또는 후원형 탐색/광고 서버(131) 내에서 구현될 수 있다.
도 6의 프로세스(600)는 블록 602에서 시작되며, 여기서 위치명들 및/또는 위치 명세들의 탐색 결과들이 GPS 좌표 및/또는 탐색 기준/기준들에 기초하여 수신된다. 일 실시예에서, 탐색 결과들은 클라이언트 장치를 통해 소셜 네트워크의 멤버에 의해 요청될 수 있으며, GPS 좌표는 클라이언트 장치의 지리적 위치와 연관될 수 있다. 일 실시예에서, GPS 좌표와 연관된 소셜 네트워크 내의 위치 정보에 대한 요청은 소셜 네트워크의 멤버와 연관된 클라이언트 장치로부터 수신될 수 있다. 위치 정보에 대한 요청에 응답하여, GPS 좌표에 기초하는 소셜 네트워크의 다른 멤버와 연관된 위치명이 클라이언트 장치로 제공될 수 있다. 일 실시예에서, 탐색/요청/제공은 도 4의 프로세스(400) 및/또는 도 8의 신호 흐름(800)에 의해 수행될 수 있다.
이어서, 처리는 블록 603으로 계속되며, 여기서 클라이언트 장치는 GPS 좌표와 연관된 다른 위치명을 갱신 및/또는 입력하기 위한 메커니즘을 제공받을 수 있다. 일 실시예에서, 메커니즘은 위치명의 텍스트를 입력 및/또는 갱신하기 위한 입력 박스일 수 있다. 다른 실시예에서, 메커니즘은 GPS 좌표 부근의 위치에서 그리고/또는 GPS 좌표와 연관된 지방시에 (가까운) 범위 내의 시간에 입력된 위치명들의 이력에 기초하여 가능한 위치명들의 선택 리스트를 제공할 수 있다. 멤버는 리스트에서 위치명들 중 하나를 선택할 수 있다.
이어서, 처리는 블록 604로 계속되며, 여기서 GPS 좌표와 연관된 다른 위치명이 클라이언트 장치로부터 수신되는지가 결정된다. 도 10의 디스플레이(1000)는 멤버가 GPS 좌표와 연관된 다른 위치명을 입력할 수 있게 하기 위해 클라이언트 장치에 의해 사용되는 가능한 디스플레이의 일례이다. 다른 위치명이 수신된 것으로 결정되면, 처리는 블록 608로 계속된다. 그렇지 않은 경우, 처리는 블록 606으로 계속된다.
블록 608에서, 다른 위치는 GPS 좌표와 연관되고, 그리고/또는 소셜 네트워크 내의 멤버와 연관될 수 있다. 다른 실시예에서, 다른 위치는 클라이언트 장치로부터 수신되는 GPS 좌표와 연관되는 대신에 블록 602에서 탐색 결과들 내에 제공된 위치명과 최초 연관된 다른 GPS 좌표와 연관될 수 있다. 대안으로, 위치명은 수신된 GPS 좌표와 다른 GPS 좌표 사이의 중간 GPS 좌표와 연관될 수 있다.
어느 경우에나, 위치명은 정형화(canonicalization)(예를 들어, 대문자화, 스테밍(stemming), 트랜스코딩)되거나, 아니면 위치명을 표준 포맷으로 변환하기 위해 사전 처리될 수 있다. 일 실시예에서, GPS 좌표와 연관된, 이전에 저장된 위치명이 (예를 들어, 부분 스트링 매칭, 중지 워드들의 제거, 워드들의 스테밍 등에 기초하여) 다른 위치명과 거의 유사한 경우, 다른 위치명은 이전에 저장된 위치명으로 변경될 수 있다. 예를 들어, 다른 위치명 "The Best Restaurant" 및 다른 이전에 저장된 위치명 "BEST RESTAURANT"가 주어지는 경우, 다른 위치명은 "BEST RESTAURANT"로 정형화될 수 있다.
일 실시예에서, 블록 608에서, 지방시(예를 들어, 일 타입의 위치 명세)가 또한 소셜 네트워크 내의 다른 위치명과 연관될 수 있다. 지방시는 GPS 좌표에 기초하여, 그리고 다른 위치명의 수신 시간에 기초하여 결정될 수 있다. 이러한 실시예에서, 서버의 현재 시간은 GPS 좌표와 연관된 시간 구역에 기초하여 클라이언트 장치의 지방시로 변환된다. 예를 들어, 소셜 네트워크(1400)에서, 위치 명세(1471)는 위치명(1451)이 멤버(1401)로부터 수신된 시간 또는 그 근처의 시간일 수 있다.
어느 경우에나, 다른 위치명 및/또는 결정된 지방시는 다른 위치명에 대한 소셜 네트워크의 추가 탐색을 가능하게 하기 위해, 적어도 상기 위치명 및 다른 위치명을 반환하도록 GPS 좌표와 연관된 위치 정보에 대한 다른 요청을 가능하게 하기 위해, 또는 기타 등등을 위해 소셜 네트워크에서 갱신된다(예를 들어, 멤버 및 GPS 좌표와 연관된다). 다른 위치명 및/또는 결정된 지방시는 예를 들어 도 14의 소셜 네트워크(1400)와 같은 소셜 네트워크 데이터 구조 또는 도 15 및 16 각각의 테이블들(1500, 1600)과 같은 데이터베이스 테이블에서 갱신될 수 있다.
일 실시예에서, 다른 위치명과 GPS 좌표 사이의 관련성에 대해 관련성 스코어가 갱신될 수 있다. 갱신은 멤버 및/또는 멤버의 공동체에 대해 발생할 수 있다. 예를 들어, 도 14의 소셜 네트워크(1400)에서, GPS 좌표(1440)와 위치명들(1450-1451) 사이의 관련성에 대한 관련성 스코어들은 GPS 좌표(1440)가 멤버(1401) 및/또는 멤버(1401)의 공동체에 대한 위치명들(1450-1451)에 의해 얼마나 근접하게 식별되는지를 나타낸다. 도시된 바와 같이, 위치명(1451)과 GPS 좌 표(1440) 사이의 관련성은 멤버(1401)에 대해 더 관련이 있다.
어느 경우에나, 일 실시예에서, 멤버에 대한 다른 위치명과 GPS 좌표 사이의 관련성에 대한 관련성 스코어는 다른 위치명의 수신 빈도에 기초하여 증가될 수 있으며, 증가된 관련성 스코어는 위치명들의 탐색 결과들을 순서화하기 위해 부분적으로 사용되도록 구성된다. 따라서, 공동체의 더 많은 멤버들이 특정 위치명과 GPS 좌표를 연관시킬 때, 관련성 스코어는 더 높아질 수 있다. 관련성 스코어는 부분적으로 탐색 결과를 순서화 또는 필터링하기 위해 도 4의 프로세스(400) 및/또는 도 8의 신호 흐름(800)에 의해 사용될 수 있다.
프로세스(600)를 다시 참조하면, 이어서 처리는 블록 605로 계속되며, 여기서 멤버는 (다른) 위치명과 연관된 태그, 레이팅, 코멘트, 지방시 또는 기타 위치 명세를 갱신 및/또는 입력하기 위한 메커니즘을 제공받을 수 있다. 일 실시예에서, 메커니즘은 위치 명세(예를 들어, 태그, 레이팅 등)의 텍스트를 입력 및/또는 갱신하기 위한 입력 박스일 수 있다. 다른 실시예에서, 메커니즘은 GPS 좌표 부근의 위치에서 그리고/또는 GPS 좌표와 연관된 지방시에 (가까운) 범위 내의 시간에 입력된 위치 명세의 이력에 기초하여 가능한 위치 명세의 선택 리스트를 제공할 수 있다. 멤버는 리스트 내의 위치 명세들 중 하나를 선택할 수 있다. 일 실시예에서, 블록 603의 다른 위치명을 입력하기 위한 메커니즘 및 위치 명세를 입력하기 위한 메커니즘은 동일 메커니즘일 수 있다. 도 10의 디스플레이(1000)는 소셜 네트워크 내의 멤버들과 연관된 위치 명세를 입력/갱신하기 위한 디스플레이의 일 실시예를 나타낸다.
이어서, 처리는 블록 606으로 계속되며, 여기서 클라이언트 장치로부터 위치 명세가 수신되는지가 결정된다. 일 실시예에서, 블록 602로부터의 위치 명세 및/또는 다른 위치명이 동시에 수신될 수 있다. 위치 명세가 수신된 것으로 결정되면, 처리는 블록 610으로 계속된다. 그렇지 않은 경우, 처리는 판정 블록 612로 계속된다.
블록 610에서, 위치 명세는 블록 602의 탐색 결과들의 일부로서 수신된 최초 위치명과 그리고/또는 블록 608로부터 수신된 다른 위치명과 연관될 수 있다. 일 실시예에서, 위치 명세는 위치 명세에 기초하거나 위치 명세를 이용하는 것 등에 의해 소셜 네트워크의 다른 탐색을 가능하게 하도록 연관될 수 있다. 위치 명세는 소셜 네트워크 내의 멤버 또는 멤버의 공동체와 연관될 수도 있다. 일 실시예에서, 위치명은 블록 608의 프로세스와 거의 유사하게 정형화될 수 있다. 일례로, 도 14의 소셜 네트워크(1400)는 위치명(1451)과 연관된 위치 명세(1470-1472)를 보여준다. 위치 명세(1470-1472)는 멤버(1401)에 의해 입력/갱신되었을 수 있다.
일 실시예에서, 위치 명세는 (내부 클럭 등을 통해) 클라이언트 장치에 의해 국지적으로 결정되어 갱신/입력을 위해 서버로 전송된 지방시일 수 있다. 대안 실시예에서, 다른 위치 명세는 코멘트일 수 있다. 코멘트는 멤버에 의해 입력된 위치명에 대한 것일 수 있으며, 다른 멤버에게 전송될 수 있다. 코멘트는 다른 멤버의 선호 통신 모드(예를 들어, IM, SMS, 이메일, 웹-포스트, 블로깅 등)를 통해 다른 멤버에게 전송될 수 있다.
이어서, 처리는 판정 블록 612로 계속되며, 여기서 위치명들 또는 위치 명세 의 더 많은 갱신/입력이 필요한지가 판정된다. 일 실시예에서, 멤버는 클라이언트 장치를 이용하여 더 많은 탐색 결과들을 계속 요청할 수 있다. 다른 실시예에서, 다른 멤버들은 다른 클라이언트 장치들을 이용하여 더 많은 탐색 결과들을 요청할 수 있다. 어느 경우에나, 후속 탐색들은 입력된 위치명 및 위치 명세를 고려하여 정밀화된다. 더 많은 갱신이 필요한 것으로 결정되는 경우, 처리는 블록 602로 루프백(loop back)한다. 그렇지 않은 경우, 처리는 추가 처리를 위해 호출 프로세스로 복귀한다.
프로세스(600)는 위치 정보(예를 들어, 위치명 및 위치 명세)를 멤버와 연관시키는 것으로 설명되지만, 프로세스(600)는 본 발명의 범위를 벗어나지 않고 위치 정보를 소셜 네트워크의 다른 멤버들 또는 심지어 모든 멤버와 연관시키도록 변경될 수 있다. 일 실시예에서, 위치 정보는 다른 멤버, 예를 들어 블록 602에서 탐색 결과들 내에 제공된 위치명을 최초로 입력한 최초 멤버와 연관될 수 있다. 다른 실시예에서, 위치 정보는 공동체와 연관될 수 있다. 공동체는 그 멤버 및 다른 멤버 양자를 포함할 수 있다. 예를 들어, 도 14를 참조하면, GPS 좌표(1441), 위치명(1452) 및 위치 명세(1473)는 멤버(1402)와 최초 연관될 수 있다. 멤버(1401)는 또한 위치 명세(1473)와 GPS 좌표(1441)를 연관시킬 수 있다. 결과적으로, GPS 좌표(1441), 위치명(1452) 및 위치 명세(1473)는 멤버(1401)의 공동체의 모든 멤버와 연관되도록 변경될 수 있다.
도 7은 위치 명세를 제공한 소셜 네트워크의 멤버들 간의 통신을 가능하게 하는 일 실시예를 나타낸다. 도 7의 프로세스(700)는 도 1의 GSS(106), GLT 서 버(134), 레이팅 및 리뷰 서버(133), 메신저 서버(132) 및/또는 후원형 탐색/광고 서버(131) 내에서 구현될 수 있다.
도 7의 프로세스(700)는 블록 702에서 시작되며, 여기서 위치명 및/또는 다른 위치 정보를 포함하는 탐색 결과가 GPS 좌표 및/또는 탐색 기준들에 기초하여 수신된다. 일 실시예에서, 탐색 결과는 클라이언트 장치를 통해 소셜 네트워크의 멤버에 의해 요청될 수 있으며, 위치명은 소셜 네트워크의 다른 멤버와 연관될 수 있다. GPS 좌표는 클라이언트 장치로부터 수신될 수 있다. 일 실시예에서, 탐색은 도 4의 프로세스(400) 및/또는 도 8의 신호 흐름에 의해 수행될 수 있다.
이어서, 처리는 블록 704로 계속되며, 여기서 멤버가 다른 멤버의 부근에 있는지가 판정된다. 일 실시예에서, GPS 좌표는 멤버의 지리적 위치를 결정하는 데 사용될 수 있다. 일 실시예에서, 다른 멤버의 GPS 좌표는 다른 멤버의 다른 클라이언트 장치로부터 수신될 수 있다. 또 다른 실시예에서, 다른 멤버의 지리적 위치는 데이터베이스 또는 다른 데이터 저장소에 저장되거나, 다른 멤버의 클라이언트 장치의 MAC 어드레스 또는 IP 어드레스에 기초하여 결정되는 것 등일 수 있다. 어느 경우에나, 멤버들의 지리적 위치들 간의 거리에 기초하여, 멤버들이 서로의 부근에 있는지가 결정된다. 멤버들이 서로의 부근에 있는 경우, 처리는 블록 708로 계속된다. 그렇지 않은 경우, 처리는 추가 처리를 위해 호출 프로세서로 복귀한다.
이어서, 처리는 블록 708로 계속되며, 여기서 그 멤버와 다른 멤버 사이의 통신이 가능하게 된다. 일 실시예에서, 통신은 그 멤버 및 다른 멤버 중 하나 또 는 양자의 선호(들)에 기초할 수 있다. 선호(들)는 특정 통신 모드, 정보를 수신하기 위한 지리 영역 또는 시간, 통신이 가능하기 전의 멤버들 간의 최소 분리도, 통신이 허용되지 않는 멤버들의 차단 리스트, 통신이 도대체 가능해야 하는지(예를 들어, 통신의 완전 차단) 등을 포함할 수 있다. 통신은 IM, SMS, 이메일, 웹-포스트, 블로깅 등을 포함하는 임의 형태의 통신일 수 있다. 일 실시예에서, 멤버들은 그들의 지리 위치들을 통신의 일부로서 서로에게 제공할 수도 있다. 다른 실시예에서, 지리 위치들은 통신이 가능하기 전에 제공될 수 있다. 대안 실시예에서, 통신은 그 멤버와 (탐색 결과들과 연관된) 복수의 다른 멤버 사이에서, 다른 멤버들이 그 멤버 부근에 있는지에 기초하여 가능할 수 있다.
프로세스(700)의 사용자 입장의 일례로서, 멤버는 한 도시에 도착하여, 그가 현재 위치하는 영역의 GPS 좌표 탐색을 수행한다. 탐색의 탐색 결과들 중 적어도 하나를 입력한, 현재 탐색 영역 내에서 활동하고 있는 다른 멤버가 존재하는 경우, 멤버는 다른 멤버(들)와 채팅할 수 있다. 어느 멤버나 메시지를 수신하기로 옵트-인(opt-in)할 수 있다. 채팅이 시작되고, 그리고/또는 멤버들이 그들의 실제 물리적 위치를 서로에게 노출하기로 결정한 후까지, 멤버들의 지리 위치는 서로에게 숨겨질 수 있다.
흐름도의 각각의 블록 및 흐름도 내의 블록들의 조합은 컴퓨터 프로그램 명령어들에 의해 구현될 수 있다는 것을 이해할 것이다. 이러한 프로그램 명령어들은 머신을 생성하도록 프로세서에 제공될 수 있으며, 따라서 프로세서 상에서 실행되는 명령어들은 흐름도 블록 또는 블록들에서 지정된 액션들을 구현하기 위한 수 단을 생성한다. 컴퓨터 프로그램 명령어들은 프로세스에 의해 수행될 일련의 동작 단계들이 컴퓨터 구현 프로세스를 생성하게 하도록 프로세서에 의해 실행될 수 있으며, 따라서 프로세서 상에서 실행되는 명령어들은 흐름도 블록 또는 블록들에서 지정되는 액션들을 구현하기 위한 단계들을 제공한다. 컴퓨터 프로그램 명령어들은 또한 흐름도의 블록들에 도시된 동작 단계들의 적어도 일부가 병렬로 수행되게 할 수 있다. 더욱이, 단계들 중 일부는 멀티프로세서 컴퓨터 시스템에서 발생할 수 있는 바와 같이 둘 이상의 프로세서에 걸쳐 수행될 수도 있다. 또한, 본 발명의 범위를 벗어나지 않고, 흐름도의 하나 이상의 블록 또는 블록들의 조합은 다른 블록들 또는 블록들의 조합들과 동시에, 또는 심지어 도시된 것과 다른 시퀀스로 수행될 수도 있다.
따라서, 흐름도의 블록들은 지정된 액션들을 수행하기 위한 수단들의 조합들, 지정된 액션들을 수행하기 위한 단계들의 조합들 및 지정된 액션들을 수행하기 위한 프로그램 명령어 수단을 지원한다. 또한, 흐름도의 각각의 블록 및 흐름도의 블록들의 조합들은 지정된 액션들 또는 단계들을 수행하는 특수 목적 하드웨어 기반 시스템들, 또는 특수 목적 하드웨어와 컴퓨터 명령어들의 조합들에 의해 구현될 수 있다는 것을 이해할 것이다.
예시적인 신호 흐름
도 8은 위치 명세에 대해 소셜 네트워크를 탐색하기 위한 신호 흐름의 일 실시예를 나타낸다. 도 8의 신호 흐름(800)은 도 4의 프로세스(400)와 거의 유사한 프로세스를 구현한다. 도시된 바와 같이, 소셜 네트워크의 멤버인 사용자(802)는 위치명, 태그, 레이팅 등과 연관될 수 있는 위치의 탐색을 개시한다. 일 실시예(도시되지 않음)에서, 사용자(802)는 사용자 ID를 이용하여 서명/로그인될 수 있다. 클라이언트(104)가 서명 프로세스를 관리하거나, 사용자(802)가 그의 사용자명 및 패스워드를 입력해야 할 수 있다.
사용자(802)는 (예를 들어, GPS 좌표와 연관된 태그, 위치명 또는 임의의 다른 텍스트 필드와 매칭되는) 탐색을 위한 텍스트, 탐색 거리, 탐색 시간, 레이팅 필터, 공동체 필터 등을 포함하는 여러 탐색 기준들을 입력한다. 탐색 거리는 (예를 들어, GPS 소스(105)로부터 수신되는 GPS 좌표(들)에 의해 식별되는) 클라이언트 장치(104)의 현재 위치로부터의 거리를 나타낼 수 있다. 탐색 시간은 시간이 입력되지 않은 경우 현재 지방시로 디폴트될 수 있다. 공동체 필터는 사용자(802)의 공동체로 디폴트될 수 있다.
도시된 바와 같이, 클라이언트 장치(104)는 GPS 소스(105)로부터 GPS 좌표(들)를 검색한다. 다른 실시예에서, 클라이언트 장치(104)는 GPS 소스(105)와 통신하지 않고 GPS 좌표(들)를 검색하도록 구성되는 GPS 수신기를 포함할 수 있다. 클라이언트 장치(104)는 또한 추가 처리를 위해 탐색 기준들 및 GPS 좌표(들)를 지리 위치 탐색 서버(GSS)(106)에 제출한다. 이에 응답하여, 클라이언트 장치(104)는 GSS(106)로부터 탐색 결과(들)를 수신한다. 클라이언트 장치(104)는 HTML 가능 브라우저 내의 디스플레이 상에, 전용 디스플레이 등에 탐색 결과(들)를 표시한다.
GPS 소스(105)는 클라이언트 장치(104)와 하나 이상의 GPS 좌표를 통신하도록 구성되는 블루투스 가능 GPS 장치일 수 있다. GPS 소스(105)는 GPS 좌표(들)에 대한 요청을 수신하고, GPS 소스(105)가 위치하는 장소의 GPS 좌표(들)를 반환한다. 일 실시예에서, GPS 소스(105)는 하나 이상의 GPS 좌표(들)(예를 들어, 경도, 위도, 그의 현재 지리 위치 근처의 경도들 및 위도들의 범위 등)를 반환하도록 구성될 수 있다.
GSS(106)는 탐색 기준들을 수신하고, GPS 좌표(들) 및 탐색 기준들에 기초하여 위치명에 대한 소셜 네트워크의 탐색을 수행한다. 일 실시예에서, 위치명이 소셜 네트워크에 없거나, 위치명과 연관된 소셜 네트워크 내의 멤버가 발견되지 않거나, 탐색이 탐색 결과를 반환하지 못하는 경우, GSS(106)는 GLT 서버(134)로부터 지리 좌표와 연관된 어드레스를 요청할 수 있으며, 이러한 어드레스를 위치명으로서 제공할 수 있다. 탐색 프로세스는 도 4의 프로세스(400)에서 더 상세히 설명된다. 도시된 실시예에서, GSS(106)는 위치명 및/또는 GSS 좌표(들)와 연관된 레이팅들을 탐색할 수도 있다. 일 실시예에서, GSS(106)는 탐색 기준들 내에 제공되는 레이팅 필터와 매칭되는 레이팅들을 갖는 탐색 결과들만을 반환할 수 있다. 어느 경우에나, GSS(106)는 탐색 결과들을 클라이언트 장치(104)로 반환한다.
레이팅 및 리뷰 서버(133)는 위치명 및/또는 GPS 좌표의 레이팅에 대한 요청을 수신할 수 있다. 요청은 탐색 기준들(예를 들어, 레이팅 필터)일 수 있다. 따라서, 레이팅 및 리뷰 서버(133)는 탐색 기준들에 매칭되는 레이팅만을 반환할 수 있다. 다른 실시예에서, 레이팅 및 리뷰 서버(133)는 위치명 및/또는 GPS 좌표와 연관된 모든 레이팅을 반환할 수 있다.
도 9는 소셜 네트워크 내의 멤버들과 연관된 위치 명세를 입력/갱신하기 위 한 신호 흐름의 일 실시예를 나타낸다. (도시되지 않은) 일 실시예에서, 사용자(802)는 사용자 ID를 이용하여 서명될 수 있다. 클라이언트(104)가 서명 프로세스를 관리하거나, 사용자(802)가 그의 사용자명 및 패스워드를 입력해야 할 수 있다. 도 9의 신호 흐름(900)은 도 6의 프로세스(600)와 거의 유사한 프로세스를 구현한다.
도시된 바와 같이, 사용자(902)는 탐색 또는 다른 형태의 검색 요청을 통해 위치를 요청한다. 클라이언트 장치(104)는 특히, GPS 소스(105)로부터 GPS 좌표(들)를 취득함으로써 위치에 대한 요청에 응답할 수 있다. 위치는 단일 GPS 좌표로서 지정될 수 있지만, GPS 좌표들의 부근 또는 범위(예를 들어, GPS 좌표로부터 2 미터 반경)로서 지정될 수도 있다. 신호 흐름(900)은 GPS 소스(105)가 GPS 좌표들을 클라이언트 장치(104)에 제공하는 것으로 도시하지만, 신호 흐름(900)은 GPS 소스(105)가 옵션이고 사용되지 않으며, GPS 좌표들이 클라이언트 장치(104)로부터 직접 검색될 수 있도록 변경될 수 있다. 일 실시예에서, 사용자(902)는 도 8의 프로세스(800)에 도시된 프로세스와 유사한 소셜 네트워크의 탐색을 수행할 수 있다.
클라이언트 장치(104)는 GPS 좌표(들)에 기초하는 위치명들(예를 들어, 명명된 위치들)에 대해 GLT 서버(134)에 요청할 수 있다. 일 실시예에서, GLT 서버(134)는 어드레스 상세들 및/또는 GPS 좌표(들)에 대한 위치명들로 응답할 수 있다. 멤버들의 갱신, 엔트리 또는 피드백에 기초하여, GPS 좌표에 대한 여러 위치명이 존재할 수 있다. 일 실시예에서, 거리 주소가 주요 위치로서 제공될 수 있다. 다른 실시예에서, 다른 멤버들에 의해 제공되는 위치명(들)이 제공될 수 있 다. 이어서, 클라이언트 장치(104)는 검색된 위치 정보를 표시할 수 있다.
이에 응답하여, 사용자(902)는 갱신을 위해 클라이언트 장치(104)에 의해, 제공된 위치명들(예를 들어, 명칭 또는 어드레스) 중 하나를 선택할 수 있다. 사용자(902)는 정보를 클라이언트 장치(104)에 입력함으로써 위치명 및/또는 다른 위치 명세를 갱신할 수 있다. 위치 명세는 태그, 레이팅, 사진, 리뷰 및/또는 위치명에 대한 다른 상세들을 포함한다. 위치명 및/또는 다른 위치 명세는 추가 처리를 위해 GSS(106)로 전송된다.
GSS(106)는 위치명을 GPS 좌표 및/또는 소셜 네트워크 내의 사용자(902)와 연관시킬 수 있거나, 연관시키기 위한 요청을 GLT 서버(134)로 전송할 수 있다. GSS(106)는 위치 명세를 소셜 네트워크 내의 위치명 및/또는 사용자(902)와 연관시킬 수도 있다. GSS(106)는 저장 및 추가 처리를 위해 클라이언트 장치(104)로부터 수신된 레이팅/리뷰 정보를 레이팅 및 리뷰 서버(133)로 전송할 수도 있다. 더욱이, GSS(106)는 소셜 네트워크 또는 다른 데이터베이스 또는 데이터 저장소에서의 갱신/연관을 위해 위치명 및/또는 GPS 좌표(예를 들어, 명명된 GPS 좌표)를 GLT 서버(134)로 제출/전송할 수 있다.
도시되지는 않았지만, 위치명/위치 명세의 갱신/연관은 GSS(106)가 수신된 GPS 좌표에 기초하여 소셜 네트워크에서 발견될 복수의 위치명에 대한 다른 요청을 수신하는 것을 가능하게 한다. GSS(106)는 다른 요청에 응답하여 복수의 위치명 중 적어도 그 위치명 및 다른 위치명을 제공할 수 있으며, 복수의 위치명은 그 위치명의 갱신의 빈도와 다른 위치명의 다른 갱신의 다른 빈도의 비교에 기초하여 순 서화된다.
신호 흐름들(800, 900)은 GPS 좌표들에 기초하여 동작하는 것으로 설명되지만, 대안 실시예에서 이러한 신호 흐름들은 본 발명의 범위를 벗어나지 않고 임의의 다양한 다른 메커니즘을 이용하여 임의의 지리 좌표들과 관련하여 거의 유사하게 동작하도록 변경될 수 있다. 예를 들어, 신호 흐름들(800, 900)에서, 클라이언트 장치(104)는 GPS 소스(105)로부터 지리 좌표를 검색하거나, 추가 처리를 위해 지리 좌표를 GSS(106)로 전송할 수 있다.
예시적인 사용자 인터페이스
도 10은 GPS 좌표(1005) 및 소셜 네트워크 내의 멤버와 연관된 위치 명세를 입력/갱신하기 위한 디스플레이의 일 실시예를 나타낸다. 위치 정보를 입력/갱신하기 위한 프로세스는 도 6의 프로세스(600) 및/또는 도 9의 신호 흐름(900)에 설명되어 있다. 도 10의 디스플레이(1000)는 예를 들어 클라이언트 장치들(101-103) 중 하나에 표시될 수 있다.
일 실시예에서, 소셜 네트워크의 멤버는 도 10의 디스플레이(1000)를 이용하여 위치 명세를 입력/갱신할 수 있다. 도시된 바와 같이, 라벨(1020)은 위치 명세를 입력한 다른 멤버의 이름을 지정할 수 있다. 다른 멤버는 정보를 입력/갱신한 최종 멤버, 또는 GPS 좌표(1005)에 대한 위치 명세를 최초 생성한 멤버일 수 있다.
도시된 바와 같이, GPS 좌표(1005)는 클라이언트 장치의 지리 위치에 의해 결정된 GPS 좌표들로 미리 채워진 2개의 텍스트 입력 박스를 포함한다. 멤버는 GPS 좌표(1005)를 갱신할 수 있다.
위치 풀-다운 리스트(1002)는 GPS 좌표(1005)와 현재 연관된 위치명을 표시할 수 있다. 위치 풀-다운 리스트(1002)는 GPS 좌표(1005) 부근의 위치에서 그리고/또는 GPS 좌표(1005)와 연관된 지방시에 (가까운) 범위 내의 시간에 입력된 위치명들의 이력에 기초하는 가능한 위치명들의 선택 리스트일 수 있다. 일 실시예에서, 선택 리스트는 입력된 가장 최근의 위치명에 기초하여 그리고/또는 GPS 좌표(1005)에 대해 선택된 특정 위치명의 빈도에 의해 분류될 수 있다. 따라서, 특정 위치/GPS 좌표에 대해 아마도 둘 이상의 어드레스 또는 위치명이 존재할 수 있다. 더욱이, 위치 엔트리(1004)도 멤버가 소셜 네트워크 내의 GPS 좌표(1005)와 연관될 상이한 위치명을 입력하는 것을 가능하게 할 수 있다. 도시된 바와 같이, 멤버는 "Best Restaurant"를 입력했다.
태그 엔트리(1007)는 멤버가 단일 태그 또는 한 세트의 태그를 포함하는 새로운 태그를 입력하는 것을 가능하게 한다(예를 들어, 사이에 공백을 갖는 워드들의 리스트로서 입력됨). 태그 리스트(1010)는 위치명에 대한 이전에 입력된 태그들을 표시한다. 일 실시예에서, 태그 리스트(1010) 내의 태그들은 예를 들어 멤버 "John Smith"에 의해, 또는 소셜 네트워크의 임의의 다른 멤버에 의해 미리 입력되었을 수 있다. 버튼(1008)을 누름으로써, 멤버는 태그 엔트리(1007) 내의 태그 또는 태그 엔트리(1007) 내에 태그가 입력되지 않은 경우에는 태그 리스트(1010)로부터 선택된 태그를 위치명과 연관시킬 수 있다.
시간(1011-1012)은 시 및 분으로서 입력되거나, 임의의 시간 기준으로서 지정될 수 있다. 시간(1011-1012)은 멤버에 의해 GPS 좌표(1005) 및 위치명과 연관 된 시간을 지정하는 데 사용될 수 있다. 시간(1011-1012)은 GPS 좌표(1005)에 대한 현재 지방시로 디폴트된다.
매체 추가 버튼(1020)은 멤버가 사진, 사운드 바이트 또는 비디오 풋티지 또는 다른 매체를 (예를 들어, 위치 풀다운 리스트(1002) 또는 위치 엔트리(1004)로부터의) 위치명과 연관시키는 것을 가능하게 할 수 있다. 일 실시예에서, 매체는 태그 또는 다른 위치 명세로서 저장될 수 있다.
레이팅 및 리뷰 추가 버튼(1014)은 멤버가 레이팅 및 리뷰를 위치명과 연관시키는 것을 허가하는 다른 디스플레이에 액세스하는 것을 가능하게 할 수 있다. 레이팅은 임의의 수치 값, 별 등급 또는 다른 정성 값일 수 있다.
위치 제출 버튼(1016)은 멤버가 소셜 네트워크 내의 갱신/입력을 위해 위치명, 또는 디스플레이(1000)로부터의 임의의 위치 명세를 제출하는 것을 가능하게 한다.
코멘트 전송 버튼(1022)은 멤버가 다른 디스플레이를 통해 위치명과 연관된 다른 멤버에게 코멘트를 전송하는 것을 가능하게 한다. 예를 들어, 멤버는 SMS, IM, 이메일, 전화 등을 포함하는 다양한 통신 모드를 통해 다른 멤버 "John Smith"에게 코멘트를 전송할 수 있다.
공동체에 추가 버튼(1024)은 멤버가 그의 공동체/소셜 네트워크에 다른 멤버를 추가하는 것을 가능하게 한다. 일 실시예에서, 그 멤버와 소셜 네트워크 내의 다른 멤버 사이에 링크가 생성될 수 있다.
도 11은 위치 정보에 대해 소셜 네트워크를 탐색하기 위한 디스플레이의 일 실시예를 나타낸다. 도 11의 디스플레이(1100)는 예를 들어 클라이언트 장치들(101-103) 중 하나에 표시될 수 있다. 일 실시예에서, 소셜 네트워크의 멤버가 디스플레이(1100)를 이용할 수 있다.
탐색은 GPS 좌표(1107)에 부분적으로 기초할 수 있다. 도시된 바와 같이, GPS 좌표(1107)는 클라이언트 장치의 위치에 의해 결정된 GPS 좌표들로 미리 채워진 2개의 텍스트 입력 박스를 포함한다. 멤버는 GPS 좌표(1107)를 갱신할 수 있다.
탐색은 탐색 드롭다운 리스트(1102) 및/또는 쿼리 박스(1104), 부근 리스트(1106), 시간(1109-1110) 및/또는 레이팅 드롭 리스트(1112)에 의해 결정된 탐색 스트링을 포함하는 다른 탐색 기준들에 기초할 수도 있다.
탐색 드롭다운 리스트(1102) 및/또는 쿼리 박스(1104)는 멤버가 위치명, 태그, 또는 소셜 네트워크 내의 멤버들과 연관된 다른 위치 명세에 대해 매칭될 탐색 스트링을 지정하는 것을 가능하게 한다.
시간(1109-1110)은 시 및 분으로 입력될 수 있지만, 임의의 시간 기준으로 지정될 수도 있다. 시간(1109-1110)은 멤버에 의해 GPS 좌표 및 위치명과 연관된 시간을 지정하는 데 사용될 수 있다. 시간(1109-1110)은 GPS 좌표(1107)에 대한 현재 지방시로 디폴트된다.
부근 리스트(1106)는 사용자가 탐색할 부근을 예를 들어 GPS 좌표(1107)로부터의 소정 거리 내로 지정하는 것을 가능하게 한다.
제출 버튼(1116)은 소셜 네트워크의 추가 탐색을 위해 디스플레이(1100) 상 에 지정된 GPS 좌표(1107) 및/또는 탐색 기준들을 서버로 전송한다. 도 4의 프로세스(400) 및/또는 도 8의 신호 흐름(800)은 예를 들어 소셜 네트워크를 탐색하는 데 사용될 수 있다.
고급 탐색 버튼(1114)을 누르면, 멤버로 하여금, 탐색된 위치 정보가 리뷰 또는 사진 또는 다른 형태의 매체와 연관되는지를 포함하는 다른 탐색 기준들에 의해 결정되는 탐색 결과들을 검색하는 것을 가능하게 하는 고급 탐색 디스플레이(도시되지 않음)가 제공된다. 일 실시예에서, 고급 탐색 디스플레이는 멤버가 지난 'X'일 내에 추가된 위치들만을 반환하도록 하기 위한 필터를 추가하는 것을 가능하게 한다.
도 12는 소셜 네트워크로부터의 위치 정보에 대한 탐색의 탐색 결과들을 제공하기 위한 디스플레이의 일 실시예를 나타낸다. 디스플레이(1200)의 사용자는 소셜 네트워크의 멤버일 수 있다.
도시된 바와 같이, 라벨 1202로 지정된 "Restaurants within 500 meters"의 탐색에 대한 탐색 결과들이 도 12의 디스플레이(1200)에 표시되어 있다. 일 실시예에서, 디스플레이(1200)는 도 11의 디스플레이(1100)로부터 제공된 탐색 기준들에 기초하여 탐색 결과들을 표시할 수 있다. 다른 실시예에서, 디스플레이(1200)는 기간, 위치(예를 들어, 후원자의 위치)에 대한 물리적 근접도 등을 포함하는 다양한 조건에 기초하여 클라이언트 장치로 인입될 수 있다. 어느 경우에나, 디스플레이(1200)는 탐색된 영역의 맵을 포함한다. 포인트들(1204-1208)의 각각은 반환된 탐색 결과들 중 상이한 하나에 대응하며, 상이한 위치를 나타낸다. 탐색 결과 들의 일부 또는 전부가 표시될 수 있다.
탐색 결과들은 소정의 포인트들이 다른 포인트들보다 디스플레이(1200)의 사용자/멤버와 더 관련되도록 순서화될 수 있다. 예를 들어, 포인트(1204)는 포인트(1208)보다 크며(더 관련됨), 포인트(1207)는 포인트(1207)보다 크다. 위치명들도 포인트들과 함께 표시될 수 있다(예를 들어, 포인트(1207)에 대한 "Best restaurant"). 더욱이, 태그와 같은 위치 명세도 표시될 수 있다(예를 들어, "drinks after work"). 후원형 광고인 것으로 결정된 위치명/포인트가 그 자체로 하이라이트될 수 있다. 예를 들어, 포인트(1205)가 상이한 칼라로 표시될 수 있으며, 용어 "Sponsor:"가 그의 위치명에 추가될 수 있다. 일반적으로, 후원의 소스를 지시하거나, 포인트가 후원 포인트임을 지시하기 위해 임의의 지시가 사용될 수 있다. 일 실시예에서, 멤버는 마케팅 메시지들(예를 들어, 포인트 1205)의 수신을 옵트-인 또는 옵트-아웃 했을 수 있다.
도시된 바와 같이, 디스플레이(1200)는 또한 사용자가 맵의 지정 영역을 줌인하는 것을 가능하게 하도록 구성된 줌 바(zoom bar)(1230)를 포함한다. 채팅 버튼(1220)은 멤버가 도시된 포인트들 중 적어도 하나와 연관되고 중간 부근에 있는 적어도 하나의 다른 멤버와 통신하는 것을 가능하게 할 수 있다.
도시되지는 않았지만, 멤버가 포인트를 선택하는 경우, 탐색 결과의 상세들을 포함하는 디스플레이가 표시될 수 있다. 디스플레이는 탐색 결과를 입력한 다른 멤버의 이름, 레이팅, 위치명, 하나 이상의 태그 등을 포함할 수 있다. 멤버는 포인트와 연관된 더 상세한 디스플레이를 더 선택할 수 있다. 상세한 디스플레이 는 도 10의 디스플레이(1000)와 유사할 수 있다. 상세한 뷰는 위치의 충분한 상세들, 예를 들어 사진 및 매체에 대한 액세스는 물론, 모든 태그의 리스트, 및 존재할 경우 리뷰(들)에 대한 액세스를 포함할 수 있다. 디스플레이로부터, 멤버는 도 10과 관련하여 설명된 바와 같이 위치에 포스트(post)한 다른 멤버를 그의 공동체에 추가하거나, 위치에 대한 코멘트를 다른 멤버에게 전송하기로 선택할 수 있다. 또한, 사용자는 위치 엔트리 상에 위치에 대한 코멘트를 남길 수 있다. 대안 실시예에서, 포인트의 선택은 디스플레이(1000)를 직접 표시할 수 있다.
도 13은 위치 명세에 대한 소셜 네트워크의 탐색의 탐색 결과들을 제공하기 위한 디스플레이의 다른 실시예를 나타낸다. 도시된 바와 같이, 도 13의 디스플레이(1300)는 도 12의 디스플레이(1200)와 거의 유사하다. 디스플레이들 간의 차이는 디스플레이(1300)가 2개의 포인트, 즉 포인트(1024)("A"로 표시됨)와 포인트(208) ("B"로 표시됨) 사이의 경로(1340)를 표시하고 있다는 점이다. 더욱이, 라벨(1302)은 경로를 식별하는 정보를 표시한다. 모든 다른 컴포넌트는 디스플레이(1200)의 대응 컴포넌트와 유사하다.
예시적인 데이터 모델
도 14-16은 본 발명의 적어도 일부 실시예에서 사용되는 데이터 모델들의 예들을 나타낸다. 도 14는 다수의 소셜 네트워크와 연관된 위치 명세의 상세 뷰를 갖는 소셜 네트워크의 일례를 도시한다. 소셜 네트워크(1400)는 도 14에 도시된 것보다 많거나 적은 객체들을 포함할 수 있다. 그러나, 도시된 객체들은 본 발명을 실시하기 위한 일 실시예를 개시하기에 충분하다.
도시된 바와 같이, 소셜 네트워크(1400)는 그래프일 수 있지만, 트리, 데이터베이스, 링크된 리스트 등을 포함하는, 네트워크 정보를 저장하도록 구성된 임의의 다른 구조일 수 있다.
소셜 네트워크(1400)는 멤버들(1401-1405)을 포함한다. 멤버들(1401-1405)은 하나 이상의 분리도에 의해 서로 관련될 수 있다. 예를 들어, 멤버(1401)는 1의 분리도로 멤버들(1402-1403)과 관련된다. 멤버(1401)는 2의 분리도로 멤버(1404)와 관련되며, 3의 분리도로 멤버(1405)와 관련된다.
멤버(1401)의 공동체는 멤버들(1401-1403) 주위의 경계로서 표시된다. 멤버(1401)의 공동체는 멤버(1401)와 공동체의 다른 멤버들 사이의 최대 분리도, 멤버(1401)에 밀접하게 관련된 다른 멤버들의 최대 수, 멤버(1401)와 다른 멤버들 간의 특정 관련성 강도 등을 포함하는, 멤버들을 그룹화하기 위한 임의의 메커니즘에 의해 결정될 수 있다.
멤버들(1401)과 관련된 다른 객체들의 상세 뷰도 표시된다. 다른 객체들은 멤버(1401)에 의해 제공되었거나, 소셜 네트워크(1400)의 다른 멤버들에 의해 제공되었거나, 심지어 예를 들어 시스템 관리자에 의해 디폴트 설정으로서 입력되었거나, 기타 등등에 의해 제공되었을 수 있다. 예를 들어, 도 6의 프로세스(600) 및/또는 도 9의 신호 흐름(900)이 다른 객체들을 제공하는 데 사용될 수 있다. 상세 뷰는 GPS 좌표(1440), 위치명들(1450-1451) 및 위치 명세(1470-1472)를 포함한다.
위치명(1450)은 0.5의 관련성 스코어에 의해 GPS 좌표(1440) 및 멤버(1401)와 연관된다. 위치명(1451)은 0.8의 관련성 스코어에 의해 GPS 좌표(1440) 및 멤 버(1401)와 연관된다. 따라서, 위치명(1451)은 위치명(1450)보다 GPS 좌표(1440) 및 멤버(1401)와 더 밀접하게 연관된다.
위치 명세들(1470-1472)은 위치명(1451)과 연관된다. 위치 명세(1470)가 레이팅으로 도시되고, 위치 명세(1471)가 시간으로 도시되며, 위치 명세(1472)가 태그로서 도시되지만, 위치 명세들(1470-1472)은 코멘트, 리뷰, 멀티미디어 등을 포함하는 임의 타입의 위치 명세를 포함할 수 있다.
GPS 좌표(1441), 위치명(1452) 및 위치 명세(1472)는 공동체의 모든 멤버와 연관된 정보의 예들이다. GPS 좌표(1441)는 멤버(1401)에 대한 공동체와 연관된다. GPS 좌표(1441)는 위치명(1452)과 연관된다. 위치명(1452)은 위치 명세(1472)와 연관된다. 일 실시예에서, GPS 좌표(1441), 위치명(1452) 및 위치 명세(1472)는 관리자에 의해 제공되거나 사전 로딩되거나, 기타 등등일 수 있다. 다른 실시예에서, 이러한 정보는 특정 멤버와 관련된 정보에서 공동체와 관련된 정보로 변경될 수 있다.
도 15는 위치 레코드들의 관계형 데이터 모델의 일례를 나타낸다. 도 15의 테이블(1500)은 위치 명세와 연관된 멤버들의 소셜 네트워크의 다른 뷰를 나타낸다. 테이블(1500)은 예를 들어 도 14의 소셜 네트워크(1400)로부터의 정보를 포함할 수 있다. 예를 들어, 도 6의 프로세스(600) 및/또는 도 9의 신호 흐름(900)이 테이블(1500)의 행들을 입력/갱신하는 데 사용될 수 있다.
도시된 바와 같이, 테이블(1500)은 레코드 ID, GPS 좌표, 멤버 ID, 위치명, 공동체, 관련성 스코어 및 시간에 대한 필드들을 가진 레코드들을 포함한다. 이러 한 필드들은 예로서 도시되며, 본 발명의 범위를 벗어나지 않고, 다른 필드들이 포함되거나, 일부 필드들이 생략될 수 있다.
레코드 ID들(1561-1564)은 행들을 식별하기 위한 고유 ID들이다. 레코드 ID들(1561-1564)에 대한 값들은 고유할 수 있지만, 임의로 할당될 수도 있다. GPS 좌표들(1502-1509)은 임의 타입의 GPS 좌표들을 포함한다. 도시된 바와 같이, GPS 좌표들(1502-1509)은 GPS 좌표 X 및 GPS 좌표 Y 필드들에 저장되는 것으로 도시되어 있다. GPS 좌표 X 및 GPS 좌표 Y 필드들은 각각 예를 들어 경도 및 위도 값들을 나타낸다. 다른 실시예에서, GPS 좌표 X 및 GPS 좌표 Y 값들은 동일 필드에 저장될 수 있다. 멤버 ID들(1512-1515)은 숫자 식별자들을 포함하는 소셜 네트워크의 멤버들에 대한 임의의 식별자일 수 있다. 위치명들(1522-1525)은 스트링 값들로서 도시되지만, 사진, 비디오 등을 포함하는 임의의 타입의 매체일 수 있다. 공동체들(1532-1535)은 멤버들의 리스트들이다. 관련성 스코어들(1542-1545)은 테이블(1500)의 위치 정보를 순서화 또는 순위화하는 데 사용되도록 구성되는 임의의 숫자 또는 정성 값일 수 있다. 시간들(1552-1555)은 임의의 시간 기준일 수 있다.
도시된 바와 같이, 테이블(1500)의 적어도 일부 레코드들은 일부 필드들에 대한 값들을 포함하지 않을 수 있다. 이러한 필드들은 임의 값에 매칭될 수 있다. 예를 들어, 시간(1552)은 임의 시간에 매칭될 수 있다. 마찬가지로, 레코드 ID(1452)에 의해 식별되는 행은 그의 멤버 ID에 대한 값을 갖지 않을 수 있으며, 따라서 공동체에 대한 위치 레코드를 나타낼 수 있다.
더욱이, 일부 행들은 GPS 좌표에 대한 디폴트 위치명들(예를 들어, 거리 주 소)을 나타낼 수 있다. 예를 들어, 레코드 ID(1565)에 의해 식별되는 행은 멤버 ID(1515), 공동체(1535), 관련성 스코어(1545) 및 시간(1555)에 대한 값들을 포함하지 않는다. 따라서, 이러한 행은 GPS 좌표들(1508-1509)에 대한 디폴트 데이터를 포함할 수 있다.
도 16은 위치명들과 연관된 위치 명세들의 예시적인 관계형 데이터 모델을 나타낸다. 예를 들어, 도 6의 프로세스(600) 및/또는 도 9의 신호 흐름(900)이 테이블(1600)의 행들을 제공하는 데 이용될 수 있다. 도시된 바와 같이, 테이블(1600)은 레코드 ID, 위치 명세 타입 및 위치 명세를 포함하는 여러 필드를 갖는 행들을 포함한다. 레코드 ID들(1661-1663)은 멤버에 의해 입력/갱신된 특정 위치명을 나타내는 임의의 값일 수 있다. 레코드 ID들(1661-1663)은 도 15의 테이블(1500)로부터의 레코드 ID들에 대응할 수 있다. 즉, 레코드 ID들(1661-1663)은 테이블(1500)의 행들과 관련된 외부 키일 수 있다.
위치 명세 타입들(1602-1604)은 태그, 코멘트, 레이팅, 리뷰, 시간 등을 포함하는 위치 명세들에 대한 임의 타입을 포함할 수 있다. 위치 명세들(1622-1624)은 위치 명세들에 대한 값들을 포함한다.
위의 명세서, 예들 및 데이터는 본 발명의 구성의 제조 및 이용에 대한 완전한 설명을 제공한다. 본 발명의 많은 실시예가 본 발명의 사상 및 범위를 벗어나지 않고 이루어질 수 있으므로, 본 발명은 아래에 첨부된 청구범위에 존재한다.