KR20220062661A - 제 3 자 시스템들로부터의 증강 현실 데이터의 효과적인 스트리밍 - Google Patents

제 3 자 시스템들로부터의 증강 현실 데이터의 효과적인 스트리밍 Download PDF

Info

Publication number
KR20220062661A
KR20220062661A KR1020227013835A KR20227013835A KR20220062661A KR 20220062661 A KR20220062661 A KR 20220062661A KR 1020227013835 A KR1020227013835 A KR 1020227013835A KR 20227013835 A KR20227013835 A KR 20227013835A KR 20220062661 A KR20220062661 A KR 20220062661A
Authority
KR
South Korea
Prior art keywords
user
augmented reality
party
environment
client system
Prior art date
Application number
KR1020227013835A
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 KR20220062661A publication Critical patent/KR20220062661A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • 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/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Data Mining & Analysis (AREA)
  • Game Theory and Decision Science (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Processing Or Creating Images (AREA)

Abstract

하나의 실시예에서, 방법은 복수의 제 3 자 시스템들의 각각으로부터 증강 현실 객체 및 연관된 디스플레이 규칙을 수신하는 단계, 제 1 사용자와 연관된 클라이언트 시스템으로부터 제 1 사용자의 환경의 현재 뷰와 연관된 하나 이상의 신호들을 수신하는 단계, 선택된 증강 현실 객체와 연관된 디스플레이 규칙 및 하나 이상의 신호들에 기초하여 복수의 제 3 자 시스템들로부터 수신된 증강 현실 객체들 중 적어도 하나를 선택하는 단계, 및 선택된 증강 현실 객체에게 환경의 현재 뷰를 제공하기 위한 명령들을 클라이언트 시스템으로 전송하는 단계를 포함한다.

Description

제 3 자 시스템들로부터의 증강 현실 데이터의 효과적인 스트리밍
본 발명은 일반적으로, 가상 현실 및 증강 현실에 관한 것이다.
가상 현실(VR)은 몰입형 환경들의 컴퓨터 생성 현실 내에서 일어나는 경험이 실세계와 유사하거나 그로부터 완전히 상이할 수 있다. 가상 현실의 애플리케이션들은 엔터테인먼트(즉, 게이밍) 및 교육 목적들(즉, 의료 또는 군사 훈련)을 포함할 수 있다. 다른 별개의 유형들의 VR 스타일 기술은 증강 현실 및 혼합 현실을 포함한다. 현재 표준 가상 현실 시스템들은 가상 현실 헤드셋들 또는 다중 투영 환경들을 사용하여 가상 환경에서 사용자의 물리적 존재를 시뮬레이팅하는 사실적인 이미지들, 사운드들 및 다른 느낌들을 생성한다. 가상 현실은 전형적으로, 청각 및 비디오 피드백을 통합하지만 또한, 햅틱 기술을 통해 다른 유형들의 감각 및 힘 피드백을 허용할 수 있다.
증강 현실(AR)은 실세계에 상주하는 객체들이 때로는 시각, 청각, 햅틱, 체성 감각, 및 후각을 포함하는 다수의 감각의 종류들에 걸친 컴퓨터 생성 지각 정보에 의해 향상되는 실세계 환경의 대화형 경험이다. 오버레이된 감각 정보는 건설적(constructive)(즉, 자연 환경에 대해 부가적임) 또는 파괴적(destructive)(즉, 자연 환경의 마스킹)일 수 있으며 그것이 실제 환경의 몰입형 양태로서 인지되도록 물리적 세계와 매끄럽게 엮여 있다. 증강 현실은 자연 환경들이나 상황들을 향상시키고 지각적으로 풍부한 경험들을 제공하기 위해 사용된다. 향상된 AR 기술들의 도움으로(즉, 컴퓨터 비전 및 객체 인식을 부가함), 사용자의 주변 실세계에 관한 정보는 대화형이 되고 디지털 방식으로 조작 가능하다.
본 발명은 청구항 제 1 항에 따른 방법, 청구항 제 10 항에 따른 대응하는 컴퓨터 판독가능한 비일시적 저장 매체 및 청구항 제 11 항에 따른 대응 시스템에 관한 것이다. 유리한 실시예들은 종속 청구항들의 특징들을 포함할 수 있다.
따라서, 본 발명에 따른 방법은 하나 이상의 컴퓨터 시스템들에 의해 수행된 다음 단계들을 포함한다: 복수의 제 3 자 시스템들의 각각으로부터 증강 현실 객체 및 연관된 디스플레이 규칙을 수신하는 단계, 제 1 사용자와 연관된 클라이언트 시스템으로부터 제 1 사용자의 환경의 현재 뷰와 연관된 하나 이상의 신호들을 수신하는 단계, 선택된 증강 현실 객체와 연관된 디스플레이 규칙 및 하나 이상의 신호들에 기초하여 복수의 제 3 자 시스템들로부터 수신된 증강 현실 객체들 중 적어도 하나를 선택하는 단계 및 선택된 증강 현실 객체에게 환경의 현재 뷰를 제공하기 위한 명령들을 클라이언트 시스템으로 전송하는 단계를 포함한다.
하나의 실시예에서, 하나 이상의 신호들은 환경의 위치 정보, 환경과 연관된 소셜 그래프 정보, 제 1 사용자와 연관된 소셜 그래프 정보, 환경과 연관된 컨텍스트 정보 또는 시간 정보 중 하나 이상을 포함할 수 있다.
또 다른 실시예에서, 복수의 제 3 자 시스템들의 각각은 제 3 자 콘텐트 제공자와 연관될 수 있다. 선택적으로, 각각의 제 3 자 콘텐트 제공자는 하나 이상의 컴퓨팅 시스템들에 등록될 수 있다.
하나의 실시예에 따르면, 방법은 복수의 제 3 자 시스템들의 각각에 대해 선언적 모델(declarative model)을 생성하는 단계 및 대응하는 제 3 자 시스템으로부터의 선언적 모델을 통해 하나 이상의 유형들의 증강 현실 객체들에 대한 하나 이상의 선호도들을 수신하는 단계를 더 포함할 수 있다. 선택적으로, 복수의 제 3 자 시스템들로부터 수신된 증강 현실 객체들 중 적어도 하나를 선택하는 단계는 또한, 각각의 제 3 자 시스템으로부터 수신된 하나 이상의 선호도들에 기초할 수 있다.
또 다른 실시예에서, 방법은 부가적으로, 복수의 제 3 자 시스템들 중 적어도 하나에 대해 발견 모델(discovery model)을 생성하는 단계 및 발견 모델을 통해 프롬프트를 클라이언트 시스템으로 전송하는 단계를 포함할 수 있으며, 프롬프트는 적어도 하나의 제 3 자 시스템과 연관된 제 3 자 애플리케이션을 설치하기 위한 실행가능한 링크를 포함한다.
또 다른 실시예에 따르면, 방법은 부가적으로, 클라이언트 시스템으로부터 제 1 사용자로부터의 선택된 증강 현실 객체와의 하나 이상의 사용자 상호작용들을 수신하는 단계를 포함할 수 있다.
또 다른 실시예에서, 증강 현실 객체는 대화형 디지털 요소, 시각적 오버레이, 또는 감각 투영 중 하나 이상을 포함할 수 있다.
본 발명의 또 다른 양태에 따르면, 하나 이상의 컴퓨터 판독가능한 비일시적 저장 매체는 실행될 때, 상기 설명된 실시예들에 따른 방법을 수행하도록 동작가능한 소프트웨어를 구현한다.
따라서, 소프트웨어는 실행될 때, 복수의 제 3 자 시스템들의 각각으로부터 증강 현실 객체 및 연관된 디스플레이 규칙을 수신하고, 제 1 사용자와 연관된 클라이언트 시스템으로부터 제 1 사용자의 환경의 현재 뷰와 연관된 하나 이상의 신호들을 수신하고, 선택된 증강 현실 객체와 연관된 디스플레이 규칙 및 하나 이상의 신호들에 기초하여 복수의 제 3 자 시스템들로부터 수신된 증강 현실 객체들 중 적어도 하나를 선택하며, 선택된 증강 현실 객체에게 환경의 현재 뷰를 제공하기 위한 명령들을 클라이언트 시스템으로 전송하도록 동작가능하다.
하나의 실시예에서, 하나 이상의 신호들은 환경의 위치 정보, 환경과 연관된 소셜 그래프 정보, 제 1 사용자와 연관된 소셜 그래프 정보, 환경과 연관된 컨텍스트 정보 또는 시간 정보 중 하나 이상을 포함할 수 있다.
또 다른 실시예에서, 복수의 제 3 자 시스템들의 각각은 제 3 자 콘텐트 제공자와 연관될 수 있다. 선택적으로, 각각의 제 3 자 콘텐트 제공자는 하나 이상의 컴퓨팅 시스템들에 등록될 수 있다.
하나의 실시예에 따르면, 소프트웨어는 실행될 때, 복수의 제 3 자 시스템들의 각각에 대해 선언적 모델을 생성하고 대응하는 제 3 자 시스템으로부터의 선언적 모델을 통해 하나 이상의 유형들의 증강 현실 객체들에 대한 하나 이상의 선호도들을 수신하도록 또한 동작가능할 수 있다. 선택적으로, 복수의 제 3 자 시스템들로부터 수신된 증강 현실 객체들 중 적어도 하나를 선택하는 것은 또한, 각각의 제 3 자 시스템으로부터 수신된 하나 이상의 선호도들에 기초할 수 있다.
또 다른 실시예에서, 소프트웨어는 실행될 때, 복수의 제 3 자 시스템들 중 적어도 하나에 대해 발견 모델을 생성하고 발견 모델을 통해 프롬프트를 클라이언트 시스템으로 전송하도록 또한 동작가능할 수 있고, 프롬프트는 적어도 하나의 제 3 자 시스템과 연관된 제 3 자 애플리케이션을 설치하기 위한 실행가능한 링크를 포함한다.
또 다른 실시예에 따르면, 소프트웨어는 실행될 때, 클라이언트 시스템으로부터 제 1 사용자로부터의 선택된 증강 현실 객체와의 하나 이상의 사용자 상호작용들을 수신하도록 또한 동작가능할 수 있다.
또 다른 실시예에서, 증강 현실 객체는 대화형 디지털 요소, 시각적 오버레이, 또는 감각 투영 중 하나 이상을 포함할 수 있다.
본 발명의 다른 양태에 따르면, 시스템은 하나 이상의 프로세서들, 및 프로세서들에 의해 실행가능한 명령들을 포함하는 프로세서들에 결합된 비일시적 메모리를 포함하고, 프로세서들은 명령들을 실행할 때 상기 설명된 실시예들에 따른 방법을 수행하도록 동작가능하다.
따라서, 프로세서들은 명령들을 실행할 때, 복수의 제 3 자 시스템들의 각각으로부터 증강 현실 객체 및 연관된 디스플레이 규칙을 수신하고, 제 1 사용자와 연관된 클라이언트 시스템으로부터 제 1 사용자의 환경의 현재 뷰와 연관된 하나 이상의 신호들을 수신하고, 선택된 증강 현실 객체와 연관된 디스플레이 규칙 및 하나 이상의 신호들에 기초하여 복수의 제 3 자 시스템들로부터 수신된 증강 현실 객체들 중 적어도 하나를 선택하며, 선택된 증강 현실 객체에게 환경의 현재 뷰를 제공하기 위한 명령들을 클라이언트 시스템으로 전송하도록 동작가능하다.
하나의 실시예에서, 하나 이상의 신호들은 환경의 위치 정보, 환경과 연관된 소셜 그래프 정보, 제 1 사용자와 연관된 소셜 그래프 정보, 환경과 연관된 컨텍스트 정보 또는 시간 정보 중 하나 이상을 포함한다.
또 다른 실시예에서, 복수의 제 3 자 시스템들의 각각은 제 3 자 콘텐트 제공자와 연관될 수 있다. 선택적으로, 각각의 제 3 자 콘텐트 제공자는 하나 이상의 컴퓨팅 시스템들에 등록될 수 있다.
하나의 실시예에 따르면, 프로세서들은 명령들을 실행할 때, 복수의 제 3 자 시스템들의 각각에 대해 선언적 모델을 생성하고 대응하는 제 3 자 시스템으로부터의 선언적 모델을 통해 하나 이상의 유형들의 증강 현실 객체들에 대한 하나 이상의 선호도들을 수신하도록 동작가능할 수 있다. 선택적으로, 복수의 제 3 자 시스템들로부터 수신된 증강 현실 객체들 중 적어도 하나를 선택하는 것은 또한, 각각의 제 3 자 시스템으로부터 수신된 하나 이상의 선호도들에 기초할 수 있다.
또 다른 실시예에서, 프로세서들은 실행될 때, 복수의 제 3 자 시스템들 중 적어도 하나에 대해 발견 모델을 생성하고 발견 모델을 통해 프롬프트를 클라이언트 시스템으로 전송하도록 또한 동작가능할 수 있고, 프롬프트는 적어도 하나의 제 3 자 시스템과 연관된 제 3 자 애플리케이션을 설치하기 위한 실행가능한 링크를 포함한다.
또 다른 실시예에 따르면, 프로세서들은 실행될 때, 클라이언트 시스템으로부터 제 1 사용자로부터의 선택된 증강 현실 객체와의 하나 이상의 사용자 상호작용들을 수신하도록 또한 동작가능할 수 있다.
또 다른 실시예에서, 증강 현실 객체는 대화형 디지털 요소, 시각적 오버레이, 또는 감각 투영 중 하나 이상을 포함할 수 있다.
특정한 실시예들에서, 현실 스트림 서버는 현실 스트림을 사용하여 상이한 애플리케이션들을 위한 AR 안경과 같은 클라이언트 시스템에 증강 현실 데이터를 효율적으로 스트리밍할 수 있다. 증강 현실 데이터의 생성은 클라이언트 시스템과 연관된 컨텍스트 정보에 기초할 수 있다. 특정한 실시예들에서, 상이한 애플리케이션들은 사용자가 자신의 환경을 탐색하기 위해 유용할 수 있다. 그러나, AR 안경과 같은 클라이언트 시스템에 많은 애플리케이션들을 설치하는 것은 이들 클라이언트 시스템들이 제한된 컴퓨팅 능력에 따라 동작할 수 있기 때문에 비현실적일 수 있고, 이는 그들에서 실행되는 많은 애플리케이션들을 제공할 수 없다. 상기 문제를 해결하기 위해, 본 명세서에 개시된 실시예들은 애플리케이션 제공자들, 즉 제 3 자 콘텐트 제공자들이 스트리밍 서비스들을 위해 현실 스트림 서버에 등록하는 것을 가능하게 할 수 있으며, 이는 또한, 클라이언트 시스템 예컨대, AR 안경을 통한 사용자 경험을 풍부하게 할 수 있다. 사용자는 그들 애플리케이션들을 설치할 필요가 없을 수 있다. 대신에, 현실 스트림 서버가 AR 안경을 통해 위치 및 컨텍스트와 같은 정보를 얻을 때, 서버는 애플리케이션들과 연관된 어떤 정보가 사용자를 위해 유용할 수 있는지를 결정하고 그 다음, 이러한 정보에 기초하여 증강 현실 데이터를 사용자에게 스트리밍할 수 있다. 결과적으로, 사용자는 클라이언트 시스템에서 증가된 컴퓨팅 능력의 부담 없이 상이한 애플리케이션들과 연관된 증강 현실 데이터를 즐길 수 있다. 본 발명이 특정한 방식으로 특정한 시스템을 통해 특정한 데이터를 스트리밍하는 것을 설명할지라도, 본 발명은 임의의 적합한 방식으로 임의의 적합한 시스템을 통해 임의의 적합한 데이터를 스트리밍하는 것을 고려한다.
특정한 실시예들에서, 현실 스트림 서버는 복수의 제 3 자 시스템들의 각각으로부터 증강 현실 객체 및 연관된 디스플레이 규칙을 수신할 수 있다. 현실 스트림 서버는 그 다음, 제 1 사용자와 연관된 클라이언트 시스템으로부터, 제 1 사용자의 환경의 현재 뷰와 연관된 하나 이상의 신호들을 수신할 수 있다. 특정한 실시예들에서, 현실 스트림 서버는 선택된 증강 현실 객체와 연관된 디스플레이 규칙 및 하나 이상의 신호들에 기초하여 복수의 제 3 자 시스템들로부터 수신된 증강 현실 객체들 중 적어도 하나를 선택할 수 있다. 현실 스트림 서버는 또한, 선택된 증강 현실 객체에게 환경의 현재 뷰를 제공하기 위한 명령들을 클라이언트 시스템으로 전송할 수 있다.
본 발명의 실시예들은 인공 현실 시스템을 포함하거나 이와 결부하여 구현될 수 있다. 인공 현실은 예컨대, 가상 현실(VR), 증강 현실(AR), 혼합 현실(MR), 하이브리드 현실, 또는 그들의 일부 조합 및/또는 파생물들을 포함할 수 있는, 사용자에게 제공되기 전에 일부 방식으로 조정된 현실의 일 형태이다. 인공 현실 콘텐트는 캡쳐된 콘텐트(예컨대, 실세계 사진들)와 조합된 생성된 콘텐트 또는 완전히 생성된 콘텐트를 포함할 수 있다. 인공 현실 콘텐트는 비디오, 오디오, 햅틱 피드백, 또는 그들의 일부 조합을 포함할 수 있으며, 그들 중 임의의 것은 단일 채널로 또는 다수의 채널들(예컨대, 뷰어에게 3차원 효과를 생성하는 스테레오 비디오와 같음)로 제공될 수 있다. 부가적으로, 일부 실시예들에서, 인공 현실은 예컨대, 인공 현실에서 콘텐트를 생성하기 위해 사용되고/거나 인공 현실에서 사용되는(예컨대, 인공 현실에서 활동들을 수행하는) 애플리케이션들, 제품들, 액세서리들, 서비스들, 또는 그들의 일부 조합과 연관될 수 있다. 인공 현실 콘텐트를 제공하는 인공 현실 시스템은 호스트 컴퓨터 시스템에 연결된 머리 장착 디스플레이(HMD), 독립형 HMD, 모바일 디바이스 또는 컴퓨팅 시스템, 또는 인공 현실 콘텐트를 한명 이상의 뷰어들에게 제공할 수 있는 임의의 다른 하드웨어 플랫폼을 포함하는 다양한 플랫폼들에서 구현될 수 있다.
본 명세서에서 개시된 실시예들은 단지 예들이고, 본 발명의 범위는 그들로 제한되지 않는다. 특정한 실시예들은 상기 개시된 실시예들의 구성요소들, 요소들, 특징들, 기능들, 동작들, 또는 단계들 중 전부, 일부를 포함할 수 있거나, 그들 중 어느 것도 포함하지 않을 수 있다. 본 발명에 따른 실시예들은 특히, 방법, 저장 매체, 시스템 및 컴퓨터 프로그램 제품에 관한 첨부된 청구항들에 개시되고, 하나의 청구항 범주 예컨대, 방법에 언급된 임의의 특징은 또 다른 청구항 범주 예컨대, 시스템에서 또한 청구될 수 있다. 첨부된 청구항들의 종속성들 또는 역 참조들은 단지 공식적인 이유들로 인해 선택된다. 그러나, 임의의 이전 청구항들(특히 다중 종속성들)에 대한 고의적인 역 참조로부터 발생하는 임의의 주제가 또한 청구될 수 있어서, 청구항들과 그들의 특징들의 임의의 조합이 개시되게 하고 첨부된 청구항들에서 선택된 종속성들에 관계없이 청구될 수 있게 한다. 청구될 수 있는 주제는 첨부된 청구항들에 제시된 바와 같이 특징들의 조합들 뿐만 아니라 청구항들의 특징들의 임의의 다른 조합을 포함하고, 청구항들에 언급된 각각의 특징은 청구항들의 임의의 다른 특징 또는 다른 특징들의 조합과 조합될 수 있다. 또한, 본 명세서에서 설명되거나 묘사된 실시예들 및 특징들 중 임의의 것은 별개의 청구항에서 및/또는 본 명세서에서 설명되거나 묘사된 임의의 실시예 또는 특징과 또는 첨부된 청구항들의 특징들 중 임의의 것과의 임의의 조합으로 청구될 수 있다.
도 1은 사용자에 대한 증강 현실 데이터를 스트리밍하는 일 예시적인 다이어그램 흐름을 도시한 도면.
도 2는 증강 현실 데이터를 스트리밍하기 위한 일 예시적인 방법을 도시한 도면.
도 3은 일 예시적인 소셜 그래프를 도시한 도면.
도 4는 일 예시적인 컴퓨터 시스템을 도시한 도면.
제 3 자 시스템들로부터의 증강 현실 데이터의 효과적인 스트리밍
특정한 실시예들에서, 현실 스트림 서버는 현실 스트림을 사용하여 상이한 애플리케이션들을 위한 AR 안경과 같은 클라이언트 시스템에 증강 현실 데이터를 효율적으로 스트리밍할 수 있다. 증강 현실 데이터의 생성은 클라이언트 시스템과 연관된 컨텍스트 정보에 기초할 수 있다. 특정한 실시예들에서, 상이한 애플리케이션들은 사용자가 자신의 환경을 탐색하기 위해 유용할 수 있다. 그러나, AR 안경과 같은 클라이언트 시스템에 많은 애플리케이션들을 설치하는 것은 이들 클라이언트 시스템들이 제한된 컴퓨팅 능력에 따라 동작할 수 있기 때문에 비현실적일 수 있고, 이는 그들에서 실행되는 많은 애플리케이션들을 제공할 수 없다. 상기 문제를 해결하기 위해, 본 명세서에 개시된 실시예들은 애플리케이션 제공자들, 즉 제 3 자 콘텐트 제공자들이 스트리밍 서비스들을 위해 현실 스트림 서버에 등록하는 것을 가능하게 할 수 있으며, 이는 또한, 클라이언트 시스템 예컨대, AR 안경을 통한 사용자 경험을 풍부하게 할 수 있다. 사용자는 그들 애플리케이션들을 설치할 필요가 없을 수 있다. 대신에, 현실 스트림 서버가 AR 안경을 통해 위치 및 컨텍스트와 같은 정보를 얻을 때, 서버는 애플리케이션들과 연관된 어떤 정보가 사용자를 위해 유용할 수 있는지를 결정하고 그 다음, 이러한 정보에 기초하여 증강 현실 데이터를 사용자에게 스트리밍할 수 있다. 결과적으로, 사용자는 클라이언트 시스템에서 증가된 컴퓨팅 능력의 부담 없이 상이한 애플리케이션들과 연관된 증강 현실 데이터를 즐길 수 있다. 본 발명이 특정한 방식으로 특정한 시스템을 통해 특정한 데이터를 스트리밍하는 것을 설명할지라도, 본 발명은 임의의 적합한 방식으로 임의의 적합한 시스템을 통해 임의의 적합한 데이터를 스트리밍하는 것을 고려한다.
특정한 실시예들에서, 현실 스트림 서버는 복수의 제 3 자 시스템들의 각각으로부터 증강 현실 객체 및 연관된 디스플레이 규칙을 수신할 수 있다. 현실 스트림 서버는 그 다음, 제 1 사용자와 연관된 클라이언트 시스템으로부터, 제 1 사용자의 환경의 현재 뷰와 연관된 하나 이상의 신호들을 수신할 수 있다. 특정한 실시예들에서, 현실 스트림 서버는 선택된 증강 현실 객체와 연관된 디스플레이 규칙 및 하나 이상의 신호들에 기초하여 복수의 제 3 자 시스템들로부터 수신된 증강 현실 객체들 중 적어도 하나를 선택할 수 있다. 현실 스트림 서버는 또한, 선택된 증강 현실 객체에게 환경의 현재 뷰를 제공하기 위한 명령들을 클라이언트 시스템으로 전송할 수 있다.
도 1은 사용자에 대한 증강 현실 데이터를 스트리밍하는 일 예시적인 다이어그램 흐름(100)을 도시한다. 특정한 실시예들에서, 사용자는 유용한 데이터를 얻기 위해 스마트 클라이언트 시스템으로서 AR/VR 안경(105)을 착용할 수 있다. AR/VR 안경(105)은 하나 이상의 센서들에 기초하여 하나 이상의 신호들, 즉 센서 스트림(110)(예컨대, 사진들, 비디오들, 또는 오디오)을 캡쳐할 수 있다. 센서 스트림(110)은 이벤트 프로세싱 모듈(115)로 전송될 수 있다. 이벤트 프로세싱 모듈(115)은 어떤 이벤트들 예컨대, 레스토랑에 도착하는 것이 센서 스트림(110)과 연관되는지를 분석할 수 있다. 이벤트 프로세싱 모듈(115)은 부가적으로, 센서 스트림(110)과 연관되는 위치, 객체들, 사람, 얼굴들, 등과 같은 주요 정보를 추출하기 위해 센서 스트림을 필터링하거나 전환할 수 있다. 이벤트 프로세싱 모듈(115)은 또한, 필터링된/전환된 센서 스트림(120)을 스트림 프로세싱 모듈(125)로 전송할 수 있다. 이벤트 프로세싱 동안, 현실 스트림 생성의 현재 상태는 스테이지 유닛(130)에 저장될 수 있다. 스트림 프로세싱 서비스 모듈(125)은 사용자에 대한 관련 스트리밍 데이터, 즉 증강 현실 객체들을 검색하기 위해 클라우드 컴퓨팅 플랫폼(135)과 통신할 수 있다. 증강 현실 객체들은 복수의 제 3 자 시스템들에 의해 제공될 수 있다. 특정한 실시예들에서, 복수의 제 3 자 시스템들의 각각은 제 3 자 콘텐트 제공자와 연관될 수 있다. 각각의 제 3 자 콘텐트 제공자는 하나 이상의 컴퓨팅 시스템들, 즉 본 명세서에 개시된 현실 스트림 서버에 등록될 수 있다. 클라우드 컴퓨팅 플랫폼(135)은 제 3 자 콘텐트 제공자들이 최종 사용자들에게 그들의 증강 현실 데이터를 스트리밍하기 위해 현실 스트림 서버에 등록한 정보를 가질 수 있다. 클라우드 컴퓨팅 플랫폼(135)은 또한, 어떤 이벤트 스트림 데이터가 사용자로 전송되어야 하는지를 결정하기 위해 유용할 수 있는 소셜 그래프들과 같은 다른 정보를 가질 수 있다. 클라우드 컴퓨팅 플랫폼(135)으로부터의 액세스된 정보에 기초하여, 스트림 프로세싱 서비스 모듈(125)은 현실 증강 및 사람 정보를 포함할 수 있는 이벤트 스트림(140)을 생성할 수 있다. 이러한 이벤트 스트림(140)은 이벤트 프로세싱 모듈(115)로 다시 전송될 수 있다. 이벤트 스트림(140)의 수신 시에, 이벤트 프로세싱 모듈(115)은 이벤트 스트림을 프로세싱할 수 있어서, 이벤트 스트림(115)이 AR/VR 안경(105)을 통해 사용자에게 효과적으로 디스플레이될 수 있게 한다.
특정한 실시예들에서, 현실 스트림 서버는 위치, 시간, 소셜 그래프, 이용가능한 콘텐트, 사용자가 증강 현실 데이터와 상호작용할 수 있는 방식, 등을 포함하는 하나 이상의 신호들에 기초하여 사용자에게 가장 관련될 수 있는 증강 현실 데이터를 결정할 수 있다. 결과적으로, 그것은 효율성을 갖고 사용자 경험을 풍부하게 하기 위해 사용자에게 가장 관련되는 데이터를 단지 보여줌으로써 사용자를 압도하지 않고 사용자를 위해 증강 현실 데이터를 AR 안경으로 스트리밍할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, AR 안경을 착용한 사용자가 식당에 가까워질 때, 현실 스트림 서버는 이 식당의 유명 요리와 같은 증강 현실 객체를 AR 안경으로 스트리밍할 수 있다. 요리의 증강 현실 객체는 제 3 자 콘텐트 제공자와 연관된 제 3 자 시스템에 의해 제공될 수 있다. 고가의 계산들로 클라이언트 시스템에서 실행되는 대응하는 제 3 자 애플리케이션을 갖는 대신에, 제 3 자 콘텐트 제공자가 서버에 등록되어 있는 한, 현실 스트림 서버는 AR 안경을 통해 증강을 보여줄 수 있다. 또 다른 예로서 그리고 제한에 의한 것이 아닌 것으로서, 현실 스트림 서버는 소셜 컨텍스트 예컨대, 사용자의 친구가 공유한 요리를 활용하여, 공유된 요리의 증강 현실 객체를 사용자의 VR 안경으로 스트리밍할 수 있다.
특정한 실시예들에서, 하나 이상의 신호들은 환경의 위치 정보, 환경과 연관된 소셜 그래프 정보, 제 1 사용자와 연관된 소셜 그래프 정보, 환경과 연관된 컨텍스트 정보, 또는 시간 정보 중 하나 이상을 포함할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 환경의 위치 정보는 사용자가 영화관에 있다는 것을 나타낼 수 있으며, 이에 기초하여 서버는 증강 현실 객체로서 현재 재생 중인 영화의 예고편을 선택할 수 있다. 또 다른 예로서 그리고 제한에 의한 것이 아닌 것으로서, 환경은 타임 스퀘어일 수 있고 환경과 연관된 소셜 그래프 정보는 대부분의 사람들이 타임 스퀘어의 사진들을 찍었음을 나타낼 수 있다. 그에 따라, 서버는 타임스퀘어의 사진을 증강 현실 객체로서 선택할 수 있다. 또 다른 예로서 그리고 제한에 의한 것이 아닌 것으로서, 사용자는 많은 판매자들이 있는 쇼핑몰에 있을 수 있지만, 사용자와 연관된 소셜 그래프 정보는 사용자가 이전에 특정한 빵집에 여러 번 체크인했음을 나타낸다. 결과적으로, 서버는 쇼핑몰의 모든 판매자들에 의해 제공된 증강 현실 객체들로부터 이 빵집에 의해 제공된 새로운 케이크의 사진과 같은 증강 현실 객체를 선택할 수 있다. 또 다른 예로서 그리고 제한에 의한 것이 아닌 것으로서, 사용자는 스탠포드 대학교에 있을 수 있다. 사용자와 연관된 소셜 그래프 정보는 사용자가 스탠포드 법대(예컨대, 사용자가 법대에 다녔음)와 높은 소셜 그래프 친화도를 가지고 있음을 나타낼 수 있다. 결과적으로, 서버는 스탠포드 법대에 의해 새롭게 출판된 책의 사진과 같은 증강 현실 객체를 선택할 수 있다. 또 다른 예로서 그리고 제한에 의한 것이 아닌 것으로서, 사용자는 박물관에 있을 수 있고 환경과 연관된 컨텍스트 정보는 박물관이 임시 전시를 하고 있음을 나타낼 수 있다. 그에 따라, 서버는 임시 전시회의 가상 투어와 같은 증강 현실 객체들을 선택할 수 있다. 또 다른 예로서 그리고 제한에 의한 것이 아닌 것으로서, 사용자는 사무실에 있을 수 있고 시간 정보는 이른 아침임을 나타낼 수 있다. 이에 대응하여, 서버는 달력 정보 및 작업 일정과 같은 증강 현실 객체들을 선택할 수 있다.
특정한 실시예들에서, 증강 현실 객체는 대화형 디지털 요소, 시각적 오버레이, 또는 감각 투영 중 하나 이상을 포함할 수 있다. 증강 현실 객체는 2차원(2D) 또는 3차원(3D)일 수 있다. 증강 현실 객체는 심지어 애니메이션 객체들을 포함할 수 있다. 특정한 실시예들에서, 증강 현실 객체는 실제 물리적 객체들에서 증강될 수 있다. 현실 스트림 서버는 또한, 클라이언트 시스템으로부터, 제 1 사용자로부터의 선택된 증강 현실 객체와의 하나 이상의 사용자 상호작용들을 수신할 수 있다.
특정한 실시예들에서, AR 안경과 같은 클라이언트 시스템은 일반적으로, 다수의 애플리케이션들이 증강 현실 데이터를 효율적으로 생성하는 작업들을 실행하기에 충분한 계산 능력을 갖고 있지 않다. 그러나, 양호한 사용자 경험을 위해 사용자의 클라이언트 시스템에 증강 현실 데이터를 빠르게 제공하는 것이 중요하다. 사용자의 AR 안경에 의해 캡쳐된 위치 및 컨텍스트(즉, 소셜 컨텍스트)에 기초하여 현실 스트림 서버를 사용하여 AR 안경을 향해 증강 현실 데이터를 스트리밍하는 것은 상기 언급된 제한을 잘 해결할 수 있는데, 이는 어떠한 애플리케이션들도 AR 안경에서 실행되도록 요구되지 않기 때문이다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 사용자는 방향을 향해 걷고 있을 수 있다. 현실 스트림 서버를 사용함으로써, 사용자 주위의 반경에 증강 현실 데이터가 미리 로드될 수 있어서 사용자가 물리적으로, 특정 장소에 도착할 때, 증강 현실 데이터가 임의의 지연 없이 즉시 사용자에게 AR 안경을 통해 디스플레이될 수 있게 한다.
특정한 실시예들에서, 현실 스트림 서버는 복수의 제 3 자 시스템들의 각각에 대해 선언적 모델을 생성할 수 있다. 현실 스트림 서버는 그 다음, 대응하는 제 3 자 시스템으로부터 선언적 모델을 통해, 하나 이상의 유형들의 증강 현실 객체들에 대한 하나 이상의 선호도들을 수신할 수 있다. 특정한 실시예들에서, 복수의 제 3 자 시스템들로부터 수신된 증강 현실 객체들 중 적어도 하나를 선택하는 것은 또한, 각각의 제 3 자 시스템으로부터 수신된 하나 이상의 선호도들에 기초할 수 있다. 결과적으로, 현실 스트림 서버는 제 3 자 시스템이 사용자에게 선언한 데이터를 단지 스트리밍할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 인스타그램은 사용자의 친구가 게시한 사진/비디오에 사용자가 태그된 경우 증강 현실 데이터를 스트리밍할 것을 선언할 수 있다.
특정한 실시예들에서, 현실 스트림 서버는 복수의 제 3 자 시스템들 중 적어도 하나에 대해 발견 모델을 생성할 수 있다. 현실 스트림 서버는 그 다음, 발견 모델을 통해 프롬프트를 클라이언트 시스템으로 전송할 수 있다. 프롬프트는 적어도 하나의 제 3 자 시스템과 연관된 제 3 자 애플리케이션을 설치하기 위한 실행가능한 링크를 포함할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 특정한 게이밍 애플리케이션을 설치하지 않고, 사용자는 증강 현실에서 게임으로부터의 만화 캐릭터를 보지 못할 수 있다. 발견 모델은 사용자가 애플리케이션을 설치하지 않은 경우에도 자신의 친구가 이 게임을 하고 있을 때 사용자가 AR 안경을 통해 이러한 만화 캐릭터를 보는 것을 가능하게 할 수 있다. 사용자는 자신이 게임을 플레이하려면 애플리케이션을 다운로드하고 설치하도록 프롬프팅될 수 있다. 결과적으로, 발견 모델은 사용자에게 콘텐트 및 애플리케이션들을 발견하는 완전히 상이한 방식을 제공할 수 있다.
도 2는 증강 현실 데이터를 스트리밍하기 위한 일 예시적인 방법(200)을 도시한다. 방법은 현실 스트림 서버가 복수의 제 3 자 시스템들의 각각으로부터 증강 현실 객체 및 연관된 디스플레이 규칙을 수신할 수 있는 단계(210)에서 시작할 수 있다. 단계(220)에서, 현실 스트림 서버는 제 1 사용자와 연관된 클라이언트 시스템으로부터 제 1 사용자의 환경의 현재 뷰와 연관된 하나 이상의 신호들을 수신할 수 있다. 단계(230)에서, 현실 스트림 서버는 선택된 증강 현실 객체와 연관된 디스플레이 규칙 및 하나 이상의 신호들에 기초하여 복수의 제 3 자 시스템들로부터 수신된 증강 현실 객체들 중 적어도 하나를 선택할 수 있다. 단계(240)에서, 현실 스트림 서버는 선택된 증강 현실 객체에게 환경의 현재 뷰를 제공하기 위한 명령들을 클라이언트 시스템으로 전송할 수 있다. 특정한 실시예들은 적절한 경우, 도 2의 방법의 하나 이상의 단계들을 반복할 수 있다. 본 발명이 도 2의 방법의 특정한 단계들을 특정한 순서로 발생하는 것으로서 설명하고 도시할지라도, 본 발명은 임의의 적합한 순서로 발생하는 도 2의 방법의 임의의 적합한 단계들을 고려한다. 게다가, 본 발명이 도 2의 방법의 특정한 단계들을 포함하는 증강 현실 데이터를 스트리밍하기 위한 일 예시적인 방법을 설명하고 도시할지라도, 이 발명은 적절한 경우, 도 2의 방법의 단계들 중 전부, 일부를 포함하거나, 그들을 전혀 포함하지 않을 수 있는 임의의 적합한 단계를 포함하는 증강 현실 데이터를 스트리밍하기 위한 임의의 적합한 방법을 고려한다. 또한, 본 발명이 도 2의 방법의 특정한 단계들을 수행하는 특정한 구성요소들, 디바이스들, 또는 시스템들을 설명하고 도시할지라도, 이 발명은 도 2의 방법의 임의의 적합한 단계들을 수행하는 임의의 적합한 구성요소들, 디바이스들, 또는 시스템들의 임의의 적합한 조합을 고려한다.
본 발명의 실시예들은 인공 현실 시스템을 포함하거나 이와 결부하여 구현될 수 있다. 인공 현실은 예컨대, 가상 현실(VR), 증강 현실(AR), 혼합 현실(MR), 하이브리드 현실, 또는 그들의 일부 조합 및/또는 파생물들을 포함할 수 있는, 사용자에게 제공되기 전에 일부 방식으로 조정된 현실의 일 형태이다. 인공 현실 콘텐트는 캡쳐된 콘텐트(예컨대, 실세계 사진들)와 조합된 생성된 콘텐트 또는 완전히 생성된 콘텐트를 포함할 수 있다. 인공 현실 콘텐트는 비디오, 오디오, 햅틱 피드백, 또는 그들의 일부 조합을 포함할 수 있으며, 그들 중 임의의 것은 단일 채널로 또는 다수의 채널들(예컨대, 뷰어에게 3차원 효과를 생성하는 스테레오 비디오와 같음)로 제공될 수 있다. 부가적으로, 일부 실시예들에서, 인공 현실은 예컨대, 인공 현실에서 콘텐트를 생성하기 위해 사용되고/거나 인공 현실에서 사용되는(예컨대, 인공 현실에서 활동들을 수행하는) 애플리케이션들, 제품들, 액세서리들, 서비스들, 또는 그들의 일부 조합과 연관될 수 있다. 인공 현실 콘텐트를 제공하는 인공 현실 시스템은 호스트 컴퓨터 시스템에 연결된 머리 장착 디스플레이(HMD), 독립형 HMD, 모바일 디바이스 또는 컴퓨팅 시스템, 또는 인공 현실 콘텐트를 한명 이상의 뷰어들에게 제공할 수 있는 임의의 다른 하드웨어 플랫폼을 포함하는 다양한 플랫폼들에서 구현될 수 있다.
소셜 그래프들
도 3은 예시적인 소셜 그래프(300)를 도시한다. 특정한 실시예들에서, 하나 이상의 데이터 저장장치들에 저장된 하나 이상의 소셜 그래프들(300)이 존재할 수 있다. 특정한 실시예들에서, 소셜 그래프(300)는 - 다수의 사용자 노드들(302) 또는 다수의 개념 노드들(304)을 포함할 수 있는 다수의 노드들 및 노드들을 연결하는 다수의 에지들(306)을 포함할 수 있다. 각각의 노드는 고유 개체(즉, 사용자 또는 개념)와 연관될 수 있고, 그의 각각은 고유 번호 또는 사용자이름과 같은, 고유 식별자(ID)를 가질 수 있다. 도 3에 도시된 예시적인 소셜 그래프(300)는 교훈적인 목적들을 위해 2차원 시각적 맵 표현으로 도시된다. 특정한 실시예들에서, 현실 스트림 서버, 클라이언트 시스템, 또는 제 3 자 시스템은 적합한 애플리케이션들에 대한 관련된 소셜 그래프 정보 및 소셜 그래프(300)에 액세스할 수 있다. 소셜 그래프(300)의 노드들 및 에지들은 예를 들면, 데이터 저장장치(소셜 그래프 데이터베이스와 같은)에 데이터 객체들로서 저장될 수 있다. 이러한 데이터 저장장치는 소셜 그래프(300)의 에지들 또는 노드들의 하나 이상의 검색가능하거나 질의가능한 인덱스들을 포함할 수 있다.
특정한 실시예들에서, 사용자 노드(302)는 온라인 소셜 네트워크의 사용자에 대응할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 사용자는 개인(인간 사용자), 개체(예로서, 기업, 사업체, 또는 제 3 자 애플리케이션), 또는 온라인 소셜 네트워크와 상호작용하거나 그것과 또는 그것을 통해 통신하는 그룹(예로서, 개인들 또는 개체들의)일 수 있다. 특정한 실시예들에서, 사용자가 온라인 소셜 네트워크에 계정을 등록할 때, 소셜 네트워킹 시스템은 사용자에 대응하는 사용자 노드(302)를 생성하고, 하나 이상의 데이터 저장장치들에 사용자 노드(302)를 저장할 수 있다. 본 명세서에서 설명된 사용자들 및 사용자 노드들(302)은 적절한 경우, 등록된 사용자들 및 등록된 사용자들과 연관된 사용자 노드들(302)을 언급할 수 있다. 게다가 또는 일 대안으로서, 본 명세서에서 설명된 사용자들 및 사용자 노드들(302)은 적절한 경우, 소셜 네트워킹 시스템에 등록되지 않은 사용자들을 언급할 수 있다. 특정한 실시예들에서, 사용자 노드(302)는 사용자에 의해 제공된 정보 또는 소셜 네트워킹 시스템을 포함하는 다양한 시스템들에 의해 수집된 정보와 연관될 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 사용자는 자신의 이름, 프로파일 사진, 연락처 정보, 생년월일, 성별, 결혼 상태, 가족 상태, 직장, 교육 배경, 선호도들, 관심사들, 또는 다른 인구 통계학적 정보를 제공할 수 있다. 특정한 실시예들에서, 사용자 노드(302)는 사용자와 연관된 정보에 대응하는 하나 이상의 데이터 객체들과 연관될 수 있다. 특정한 실시예들에서, 사용자 노드(302)는 하나 이상의 웹페이지들에 대응할 수 있다.
특정한 실시예들에서, 개념 노드(304)는 개념에 대응할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 개념은 장소(예를 들면, 영화관, 식당, 랜드마크, 또는 도시와 같은); 웹사이트(예를 들면, 소셜 네트워크 시스템과 연관된 웹사이트 또는 웹 애플리케이션 서버와 연관된 제 3 자 웹사이트와 같은); 개체(예를 들면, 사람, 사업체, 그룹, 스포츠 팀, 또는 유명인과 같은); 소셜 네트워킹 시스템 내에 또는 웹 애플리케이션 서버와 같은, 외부 서버에 위치될 수 있는 리소스(예컨대, 오디오 파일, 비디오 파일, 디지털 사진, 텍스트 파일, 구조화된 문서, 또는 애플리케이션과 같은); 실제 또는 지적 재산(예를 들면, 조각, 그림, 영화, 게임, 노래, 아이디어, 사진, 또는 서면 저작물과 같은); 게임; 활동; 아이디어나 이론; 증강/가상 현실 환경에서의 객체; 또 다른 적합한 개념; 또는 2개 이상의 이러한 개념들에 대응할 수 있다. 개념 노드(304)는 사용자에 의해 제공된 개념의 정보 또는 소셜 네트워킹 시스템을 포함하는, 다양한 시스템들에 의해 수집된 정보와 연관될 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 개념의 정보는 이름 또는 타이틀; 하나 이상의 이미지들(예로서, 책의 커버 페이지의 이미지); 위치(예로서, 주소 또는 지리적 위치); 웹사이트(URL과 연관될 수 있음); 연락처 정보(예로서, 전화 번호 또는 이메일 주소); 다른 적합한 개념 정보; 또는 이러한 정보의 임의의 적합한 조합을 포함할 수 있다. 특정한 실시예들에서, 개념 노드들(304)는 개념 노드(304)와 연관된 정보에 대응하는 하나 이상의 데이터 객체들과 연관될 수 있다. 특정한 실시예들에서, 개념 노드(304)는 하나 이상의 웹페이지들에 대응할 수 있다.
특정한 실시예들에서, 소셜 그래프(300)에서의 노드는 웹페이지("프로파일 페이지"로서 언급될 수 있음)를 표현하거나 그것에 의해 표현될 수 있다. 프로파일 페이지들은 소셜 네트워킹 시스템에 의해 호스팅되거나 그것에 액세스가능할 수 있다. 프로파일 페이지들은 또한, 제 3 자 시스템과 연관된 제 3 자 웹사이트들에서 호스팅될 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 특정한 외부 웹페이지에 대응하는 프로파일 페이지는 특정한 외부 웹페이지일 수 있고 프로파일 페이지는 특정한 개념 노드(304)에 대응할 수 있다. 프로파일 페이지들은 다른 사용자들의 전부 또는 선택된 서브세트에 의해 뷰잉가능할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 사용자 노드(302)는 대응하는 사용자가 콘텐트를 부가하거나, 선언하거나, 그렇지 않으면 자신을 표현할 수 있는 대응하는 사용자 프로파일 페이지를 가질 수 있다. 또 다른 예로서 그리고 제한에 의한 것이 아닌 것으로서, 개념 노드(304)는 특히, 개념 노드(304)에 대응하는 개념과 관련하여, 한명 이상의 사용자들이 콘텐트를 부가하거나, 선언하거나, 자신을 표현할 수 있는 대응하는 개념 프로파일 페이지를 가질 수 있다.
특정한 실시예들에서, 개념 노드(304)는 제 3 자 시스템에 의해 호스팅된 제 3 자 웹페이지 또는 리소스를 표현할 수 있다. 제 3 자 웹페이지 또는 리소스는 다른 요소들 중에서도, 콘텐트, 선택가능하거나 다른 아이콘, 또는 동작 또는 활동을 표현하는 다른 상호작용가능한 객체(예컨대, 자바스크립트, AJAX, 또는 PHP 코드들로 구현될 수 있음)를 포함할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 제 3 자 웹페이지는 "좋아하다(like)", "체크인하다(check-in)", "먹다(eat)", "권고하다(recommend)", 또는 또 다른 적합한 동작 또는 활동과 같은 선택가능한 아이콘을 포함할 수 있다. 제 3 자 웹페이지를 뷰잉하는 사용자는 아이콘들 중 하나(예로서, "체크인하다")를 선택함으로써 동작을 수행할 수 있어서, 클라이언트 시스템으로 하여금 사용자의 동작을 나타내는 메시지를 소셜 네트워킹 시스템으로 전송하게 한다. 메시지에 응답하여, 소셜 네트워킹 시스템은 사용자에 대응하는 사용자 노드(302)와 제 3 자 웹페이지 또는 리소스에 대응하는 개념 노드(304) 사이에 에지(예로서, 체크인 유형 에지)를 생성하고 에지(306)를 하나 이상의 데이터 저장장치들에 저장할 수 있다.
특정한 실시예들에서, 소셜 그래프(300)에서의 한 쌍의 노드들은 하나 이상의 에지들(306)에 의해 서로 연결될 수 있다. 한 쌍의 노드들을 연결하는 에지(306)는 한 쌍의 노드들 사이의 관계를 표현할 수 있다. 특정한 실시예들에서, 에지(306)는 한 쌍의 노드들 사이의 관계에 대응하는 하나 이상의 데이터 객체들 또는 속성들을 포함하거나 그들을 표현할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 제 1 사용자는 제 2 사용자가 제 1 사용자의 "친구"임을 나타낼 수 있다. 이 표시에 대응하여, 소셜 네트워킹 시스템은 "친구 요청"을 제 2 사용자로 전송할 수 있다. 제 2 사용자가 "친구 요청"을 확인하면, 소셜 네트워킹 시스템은 소셜 그래프(300)에서 제 1 사용자의 사용자 노드(302)를 제 2 사용자의 사용자 노드(302)에 연결하는 에지(306)를 생성하고 에지(306)를 데이터 저장장치들(&64) 중 하나 이상에 소셜 그래프 정보로서 저장할 수 있다. 도 3의 예에서, 소셜 그래프(300)는 사용자 "A" 및 사용자 "B"의 사용자 노드들(302) 사이의 친구 관계를 나타내는 에지(306)와 사용자 "C" 및 사용자 "B"의 사용자 노드들(302) 사이의 친구 관계를 나타내는 에지를 포함한다. 본 발명이 특정한 사용자 노드들(302)을 연결하는 특정한 속성들을 갖는 특정한 에지들(306)을 설명하거나 도시할지라도, 본 발명은 사용자 노드들(302)을 연결하는 임의의 적합한 속성들을 갖는 임의의 적합한 에지들(306)을 고려한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 에지(306)는 우정, 가족 관계, 비즈니스 또는 고용 관계, 팬 관계(예로서, 좋아요, 등 포함함), 팔로어 관계, 방문자 관계(예로서, 액세스함, 뷰잉함, 체크인함, 공유함, 등 포함함), 가입자 관계, 상위/종속 관계, 상호 관계, 비 상호 관계, 또 다른 적합한 유형의 관계, 또는 2개 이상의 이러한 관계들을 표현할 수 있다. 게다가, 본 발명이 일반적으로, 연결되는 것으로서 노드들을 설명할지라도, 본 발명은 또한, 연결되는 것으로서 사용자들 및 개념들을 설명한다. 본 명세서에서, 연결되는 사용자들 또는 개념들에 대한 참조들은 적절한 경우, 하나 이상의 에지들(306)에 의해 소셜 그래프(300)에서 연결되는 그들 사용자들 또는 개념들에 대응하는 노드들을 언급할 수 있다. 2개의 노드들의 각각에 의해 표현된 2개의 객체들 사이의 분리도는 소셜 그래프(300)에서 2개의 노드들을 연결하는 최단 경로에 있는 에지들의 수이다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 소셜 그래프(300)에서, 사용자 "C"의 사용자 노드(302)는 예를 들면, 사용자 "B"의 사용자 노드(302)를 직접적으로 통과하는 제 1 경로, 회사 "애크메"의 개념 노드(304) 및 사용자 "D"의 사용자 노드(302)를 통과하는 제 2 경로, 및 학교 "스탠포드", 사용자 "G", 회사 "애크메", 및 사용자 "D"를 표현하는 개념 노드들(304) 및 사용자 노드들(302)을 통과하는 제 3 경로를 포함하는 다중 경로들을 통해 사용자 "A"의 사용자 노드(302)에 연결된다. 사용자 "C" 및 사용자 "A"는 그들의 대응하는 노드들을 연결하는 최단 경로(즉, 제 1 경로)가 2개의 에지들(306)을 포함하기 때문에 2개의 분리도를 갖는다.
특정한 실시예들에서, 사용자 노드(302)와 개념 노드(304) 사이의 에지(306)는 개념 노드(304)와 연관된 개념을 향해 사용자 노드(302)와 연관된 사용자에 의해 수행된 특정한 동작 또는 활동을 표현할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 도 3에 도시된 바와 같이, 사용자는 개념을 "좋아하거나", 개념에 "참석했거나", 개념을 "재생했거나", 개념을 "청취했거나", 개념을 "요리했거나", 개념 "에서 일했거나", 개념을 "시청"할 수 있으며, 그들의 각각은 에지 유형 또는 서브유형에 대응할 수 있다. 개념 노드(304)에 대응하는 개념 프로파일 페이지는 예를 들면, 선택가능한 "체크인" 아이콘(예를 들면, 클릭가능한 "체크인" 아이콘과 같은) 또는 선택가능한 "즐겨찾기들에 부가" 아이콘을 포함할 수 있다. 유사하게, 사용자가 이들 아이콘들을 클릭한 후에, 소셜 네트워킹 시스템은 각각의 동작에 대응하는 사용자의 동작에 응답하여 "즐겨찾기" 에지 또는 "체크인" 에지를 생성할 수 있다. 또 다른 예로서 그리고 제한에 의한 것이 아닌 것으로서, 사용자(사용자 "C")는 특정한 애플리케이션(예컨대, 온라인 음악 애플리케이션)을 사용하여 특정한 노래를 청취할 수 있다. 이 경우에, 소셜 네트워킹 시스템은 사용자가 노래를 청취했고 애플리케이션을 사용했음을 나타내기 위해 사용자에 대응하는 사용자 노드들(302)과 노래 및 애플리케이션에 대응하는 개념 노드들(304) 사이에 "청취된" 에지(306) 및 "사용된" 에지(도 3에 도시된 바와 같이)를 생성할 수 있다. 게다가, 소셜 네트워킹 시스템은 특정한 노래가 특정한 애플리케이션에 의해 재생되었음을 나타내기 위해 노래 및 애플리케이션에 대응하는 개념 노드들(304) 사이에 "재생된" 에지(306)를 생성할 수 있다(도 3에 도시된 바와 같이). 이 경우에, "재생된" 에지(306)는 외부 오디오 파일(노래)에 대해 외부 애플리케이션(온라인 음악 애플리케이션)에 의해 수행된 동작에 대응한다. 본 발명이 사용자 노드들(302) 및 개념 노드들(304)을 연결하는 특정한 속성들을 갖는 특정한 에지들(306)을 설명할지라도, 본 발명은 사용자 노드들(302) 및 개념 노드들(304)을 연결하는 임의의 적합한 속성들을 갖는 임의의 적합한 에지들(306)을 고려한다. 게다가, 본 발명이 사용자 노드(302)와 단일 관계를 표현하는 개념 노드(304) 사이의 에지들을 설명할지라도, 본 발명은 사용자 노드(302)와 하나 이상의 관계들을 표현하는 개념 노드(304) 사이의 에지들을 고려한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 에지(306)는 사용자가 특정한 개념을 좋아하고 특정한 개념에서 사용했음을 표현할 수 있다. 대안적으로, 또 다른 에지(306)는 사용자 노드(302)와 개념 노드(304) 사이의 각각의 유형의 관계(또는 단일 관계의 배수들)를 표현할 수 있다(사용자 "E"에 대한 사용자 노드(302)와 "온라인 음악 앱"에 대한 개념 노드(304) 사이에서 도 3에 도시된 바와 같이).
특정한 실시예들에서, 소셜 네트워킹 시스템은 소셜 그래프(300)에서의 사용자 노드(302)와 개념 노드(304) 사이에 에지(306)를 생성할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, (예를 들면, 사용자의 클라이언트 시스템에 의해 호스팅된 특수 목적 애플리케이션 또는 웹 브라우저를 사용함으로써와 같은) 개념 프로파일 페이지를 뷰잉하는 사용자는 그 자신이 "좋아함" 아이콘을 클릭하거나 선택함으로써 개념 노드(304)에 의해 표현된 개념을 좋아함을 나타낼 수 있고, 이는 사용자의 클라이언트 시스템으로 하여금 개념 프로파일 페이지와 연관된 개념의 사용자의 기호를 나타내는 메시지를 소셜 네트워킹 시스템으로 전송하게 할 수 있다. 메시지에 응답하여, 소셜 네트워킹 시스템은 사용자와 개념 노드(304) 사이의 "좋아함" 에지(306)에 의해 도시된 바와 같이, 사용자와 연관된 사용자 노드(302)와 개념 노드(304) 사이에 에지(306)를 생성할 수 있다. 특정한 실시예들에서, 소셜 네트워킹 시스템은 하나 이상의 데이터 저장장치들에 에지(306)를 저장할 수 있다. 특정한 실시예들에서, 에지(306)는 특정한 사용자 동작에 응답하여 소셜 네트워킹 시스템에 의해 자동으로 형성될 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 제 1 사용자가 사진을 업로드하거나, 영화를 시청하거나, 노래를 청취하면, 에지(306)는 제 1 사용자에 대응하는 사용자 노드(302)와 그들의 개념들에 대응하는 개념 노드들(304) 사이에 형성될 수 있다. 본 발명이 특정한 방식들로 특정한 에지들(306)을 형성하는 것을 설명할지라도, 본 발명은 임의의 적합한 방식으로 임의의 적합한 에지들(306)을 형성하는 것을 고려한다.
소셜 그래프 친화도 및 계수
특정한 실시예들에서, 소셜 네트워킹 시스템은 서로에 대한 다양한 소셜 그래프 개체들의 소셜 그래프 친화도(본 명세서에서 "친화도"로서 언급될 수 있음)를 결정할 수 있다. 친화도는 사용자들, 개념들, 콘텐트, 동작들, 광고들, 온라인 소셜 네트워크와 연관된 다른 객체들, 또는 그들의 임의의 적합한 조합과 같은, 온라인 소셜 네트워크와 연관된 특정한 객체들 사이의 관심 있는 레벨 또는 관계의 세기를 표현할 수 있다. 친화도는 또한, 제 3 자 시스템들 또는 다른 적합한 시스템들과 연관된 객체들에 대해 결정될 수 있다. 각각의 사용자, 주제, 또는 콘텐트의 유형에 대한 소셜 그래프 개체에 대한 전체적인 친화도가 확립될 수 있다. 전체적인 친화도는 소셜 그래프 개체와 연관된 동작들 또는 관계들의 지속된 모니터링에 기초하여 변경될 수 있다. 본 발명이 특정한 방식으로 특정한 친화도들을 결정하는 것을 설명할지라도, 본 발명은 임의의 적합한 방식으로 임의의 적합한 친화도들을 결정하는 것을 고려한다.
특정한 실시예들에서, 소셜 네트워킹 시스템은 친화도 계수(본 명세서에서 "계수"로서 언급될 수 있음)를 사용하여 소셜 그래프 친화도를 측정하거나 정량화할 수 있다. 계수는 온라인 소셜 네트워크와 연관된 특정한 객체들 사이의 관계의 세기를 표현하거나 정량화할 수 있다. 계수는 또한, 사용자가 동작에 대한 사용자의 관심사에 기초하여 특정한 동작을 수행할 확률 또는 예측된 확률을 측정하는 함수를 표현할 수 있다. 이러한 방식으로, 사용자의 미래 동작들은 사용자의 이전 동작들에 기초하여 예측될 수 있으며, 여기서 계수는 사용자의 동작들의 이력에 대해 적어도 부분적으로 산출될 수 있다. 계수들은 온라인 소셜 네트워크 내에 또는 외부에 있을 수 있는 임의의 수의 동작들을 예측하기 위해 사용될 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 이들 동작들은 메시지들의 전송, 콘텐트 게시, 또는 콘텐트에 대한 댓글 달기와 같은, 다양한 유형들의 통신들; 프로파일 페이지들, 매체들, 또는 다른 적합한 콘텐트에 액세스하거나 그들을 뷰잉하는 것과 같은, 다양한 유형들의 관측 동작들; 동일한 그룹에 있거나, 동일한 사진에 태그되거나, 동일한 위치에 체크인되거나, 동일한 이벤트에 참석하는 것과 같은, 2개 이상의 소셜 그래프 개체들에 관한 다양한 유형들의 부합 정보; 또는 다른 적합한 동작들을 포함할 수 있다. 본 발명이 특정한 방식으로 친화도를 측정하는 것을 설명할지라도, 본 발명은 임의의 적합한 방식으로 친화도를 측정하는 것을 고려한다.
특정한 실시예들에서, 소셜 네트워킹 시스템은 계수를 산출하기 위해 다양한 인자들을 사용할 수 있다. 이러한 인자들은 예를 들면, 사용자 동작들, 객체들 사이의 관계들의 유형들, 위치 정보, 다른 적합한 인자들, 또는 그들의 임의의 조합을 포함할 수 있다. 특정한 실시예들에서, 상이한 인자들은 계수를 산출할 때 상이하게 가중될 수 있다. 각각의 인자에 대한 가중치들은 정적일 수 있거나 가중치들은 예를 들면, 사용자, 관계의 유형, 동작의 유형, 사용자의 위치, 등에 따라 변경될 수 있다. 인자들에 대한 등급들은 사용자에 대한 전체 계수를 결정하기 위해 그들의 가중치들에 따라 조합될 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 특정한 사용자 동작들에는 등급 및 가중치 둘 모두가 할당될 수 있고 특정한 사용자 동작과 연관된 관계에는 등급 및 상관 가중치가 할당된다(예로서, 따라서 가중치들은 총 100%). 특정한 객체를 향한 사용자의 계수를 산출하기 위해, 사용자의 동작들에 할당된 등급은 예를 들면, 전체 계수의 60%를 포함할 수 있고, 사용자와 객체 사이의 관계는 전체 계수의 40%를 포함할 수 있다. 특정한 실시예들에서, 소셜 네트워킹 시스템은 예를 들면, 정보가 액세스된 이후의 시간, 붕괴 인자들, 액세스의 빈도, 정보에 대한 관계 또는 정보에 액세스한 객체에 대한 관계, 객체에 연결된 소셜 그래프 개체들에 대한 관계, 사용자 동작들의 단기 또는 장기 평균들, 사용자 피드백, 다른 적합한 변수들, 또는 그들의 임의의 조합과 같은, 계수를 산출하기 위해 사용된 다양한 인자들에 대한 가중치들을 결정할 때 다양한 변수들을 고려할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 계수는 더 최근 동작들이 계수를 산출할 때 더 관련성이 있도록, 특정한 동작들에 의해 제공된 신호의 세기로 하여금 시간에 따라 붕괴하게 하는 붕괴 인자를 포함할 수 있다. 등급들 및 가중치들은 계수가 기초하는 동작들의 지속된 추적에 기초하여 지속적으로 업데이트될 수 있다. 각각의 인자에 대한 등급들 및 인자들에 할당된 가중치들을 할당, 조합, 평균화, 등을 하기 위해 임의의 유형의 프로세스 또는 알고리즘이 이용될 수 있다. 특정한 실시예들에서, 소셜 네트워킹 시스템은 이력 동작들 및 과거 사용자 응답들에 대해 트레이닝된 기계 학습 알고리즘들, 또는 다양한 옵션들에 사용자들을 노출시키고 응답들을 측정함으로써 사용자들로부터 파밍(farming)된 데이터를 사용하여 계수들을 결정할 수 있다. 본 발명이 특정한 방식으로 계수들을 산출하는 것을 설명할지라도, 본 발명은 임의의 적합한 방식으로 계수들을 산출하는 것을 고려한다.
특정한 실시예들에서, 소셜 네트워킹 시스템은 사용자의 동작들에 기초하여 계수를 산출할 수 있다. 소셜 네트워킹 시스템은 온라인 소셜 네트워크에서, 제 3 자 시스템에서, 다른 적합한 시스템들에서, 또는 그들의 임의의 조합에서 이러한 동작들을 모니터링할 수 있다. 임의의 적합한 유형의 사용자 동작들이 추적되거나 모니터링될 수 있다. 전형적인 사용자 동작들은 프로파일 페이지들의 뷰잉, 콘텐트의 생성 또는 게시, 콘텐트와의 상호작용, 이미지들에 태그 또는 이미지들에 태그되는 것, 그룹들로의 참여, 이벤트들에서의 참석 언급 및 확인, 위치들에서의 체크인, 특정한 페이지들 좋아하기, 페이지들의 생성, 및 소셜 동작을 용이하게 하는 다른 동작들의 수행을 포함한다. 특정한 실시예들에서, 소셜 네트워킹 시스템은 특정한 유형들의 콘텐트에 대한 사용자의 동작들에 기초하여 계수를 산출할 수 있다. 콘텐트는 온라인 소셜 네트워크, 제 3 자 시스템, 또는 또 다른 적합한 시스템과 연관될 수 있다. 콘텐트는 사용자들, 프로파일 페이지들, 게시물들, 뉴스 스토리들, 헤드라인들, 인스턴트 메시지들, 대화방 대화들, 이메일들, 광고들, 사진들, 비디오, 음악, 다른 적합한 객체들, 또는 그들의 임의의 조합을 포함할 수 있다. 소셜 네트워킹 시스템은 동작들 중 하나 이상이 주제, 콘텐트, 다른 사용자들, 등에 대한 친화도를 나타내는지의 여부를 결정하기 위해 사용자의 동작들을 분석할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 사용자가 "커피" 또는 그것의 변형들과 관련된 콘텐트를 빈번하게 게시하면, 소셜 네트워킹 시스템은 사용자가 개념("커피")에 대해 높은 계수를 갖는다고 결정할 수 있다. 특정한 동작들 또는 유형들의 동작들에는 다른 동작들보다 높은 가중치 및/또는 등급이 할당될 수 있으며, 이는 전체 산출된 계수에 영향을 줄 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 제 1 사용자가 제 2 사용자에게 이메일을 보내면, 동작에 대한 가중치 또는 등급은 제 1 사용자가 단순히, 제 2 사용자에 대한 사용자 프로파일 페이지를 뷰잉하는 경우보다 높을 수 있다.
특정한 실시예들에서, 소셜 네트워킹 시스템은 특정한 객체들 사이의 관계의 유형에 기초하여 계수를 산출할 수 있다. 소셜 그래프(300)를 참조하면, 소셜 네트워킹 시스템은 계수를 산출할 때 특정한 사용자 노드들(302) 및 개념 노드들(304)을 연결하는 에지들(306)의 수 및/또는 유형을 분석할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 배우자 형 에지에 의해 연결되는 사용자 노드들(302)(2명의 사용자들이 결혼한 것을 표현함)에는 친구 유형 에지에 의해 연결되는 사용자 노드들(302)보다 높은 계수가 할당될 수 있다. 즉, 특정한 사용자에 대한 동작들 및 관계들에 할당된 가중치들에 의존하여, 전체 친화도는 사용자의 친구에 관한 콘텐트에 대한 것보다 사용자의 배우자에 관한 콘텐트에 대해 더 높은 것으로 결정될 수 있다. 특정한 실시예들에서, 사용자가 또 다른 객체와 갖는 관계들은 그 객체에 대한 계수를 산출하는 것에 대해 사용자의 동작들의 가중치들 및/또는 등급들에 영향을 줄 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 사용자가 제 1 사진에 태그되지만, 단지 제 2 사진을 좋아한다면, 소셜 네트워킹 시스템은 사용자가 제 2 사진보다 제 1 사진에 대해 더 높은 계수를 갖는다고 결정할 수 있는데, 이는 콘텐트와 태깅된 유형 관계를 갖는 것에 콘텐트와 호감형 관계를 갖는 것보다 높은 가중치 및/또는 등급이 할당될 수 있기 때문이다. 특정한 실시예들에서, 소셜 네트워킹 시스템은 하나 이상의 제 2 사용자들이 특정한 객체와 갖는 관계에 기초하여 제 1 사용자에 대한 계수를 산출할 수 있다. 즉, 다른 사용자들이 객체와 갖는 연결들 및 계수들은 객체에 대한 제 1 사용자의 계수에 영향을 줄 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 제 1 사용자가 하나 이상의 제 2 사용자들에 연결되거나 그들에 대한 높은 계수를 갖고, 그들 제 2 사용자들이 특정한 객체에 연결되거나 그것에 대한 높은 계수를 가지면, 소셜 네트워킹 시스템은 제 1 사용자가 또한, 특정한 객체에 대해 상대적으로 높은 계수를 가져야 한다고 결정할 수 있다. 특정한 실시예들에서, 계수는 특정한 객체들 사이의 분리도에 기초할 수 있다. 더 낮은 계수는 제 1 사용자가 소셜 그래프(300)에서 제 1 사용자에 간접적으로 연결되는 사용자의 콘텐트 객체들에 대한 관심사를 공유할 가능성을 감소시키는 것을 표현할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 소셜 그래프(300)에서 더 가까운(즉, 더 적은 분리도들) 소셜 그래프 개체들은 소셜 그래프(300)에서 더 떨어져 있는 개체들보다 더 높은 계수를 가질 수 있다.
특정한 실시예들에서, 소셜 네트워킹 시스템은 위치 정보에 기초하여 계수를 산출할 수 있다. 지리적으로 서로 더 가까운 객체들은 더 먼 객체들보다 서로 더 관련되거나 더 관심이 있는 것으로 간주될 수 있다. 특정한 실시예들에서, 특정한 객체를 향한 사용자의 계수는 사용자와 연관된 현재 위치(또는 사용자의 클라이언트 시스템의 위치)에 대한 객체의 위치의 근접성에 기초할 수 있다. 제 1 사용자는 제 1 사용자에 더 가까운 다른 사용자들 또는 개념들에 더 관심이 있을 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 사용자가 공항으로부터 1마일이고 주유소로부터 2마일이면, 소셜 네트워킹 시스템은 사용자에 대한 공항의 근접성에 기초하여 사용자가 주유소보다 공항에 대해 더 높은 계수를 갖는다고 결정할 수 있다.
특정한 실시예들에서, 소셜 네트워킹 시스템은 계수 정보에 기초하여 사용자에 대한 특정한 동작들을 수행할 수 있다. 계수들은 사용자가 동작에 대한 사용자의 관심사에 기초하여 특정한 동작을 수행할 것인지의 여부를 예측하기 위해 사용될 수 있다. 계수는 광고들, 검색 결과들, 뉴스 스토리들, 매체들, 메시지들, 통보들, 또는 다른 적합한 객체들과 같은, 임의의 유형의 객체들을 생성하거나 그들을 사용자에 제공할 때 사용될 수 있다. 계수는 또한, 적절한 경우, 이러한 객체들의 순위를 정하고 순서를 정하기 위해 활용될 수 있다. 이러한 방식으로, 소셜 네트워킹 시스템은 사용자의 관심사들 및 현재 상황들과 관련되는 정보를 제공할 수 있어서, 그들이 관심 있는 이러한 정보를 찾을 가능성을 증가시킨다. 특정한 실시예들에서, 소셜 네트워킹 시스템은 계수 정보에 기초하여 콘텐트를 생성할 수 있다. 콘텐트 객체들은 사용자에 특정한 계수들에 기초하여 제공되거나 선택될 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 계수는 사용자를 위한 매체들을 생성하기 위해 사용될 수 있고, 여기서 사용자는 사용자가 매체 객체에 대해 높은 전체 계수를 갖는 매체들을 제공받을 수 있다. 또 다른 예로서 그리고 제한에 의한 것이 아닌 것으로서, 계수는 사용자에 대한 광고들을 생성하기 위해 사용될 수 있으며, 여기서 사용자는 사용자가 광고된 객체에 대해 높은 전체 계수를 갖는 광고들을 제공받을 수 있다. 특정한 실시예들에서, 소셜 네트워킹 시스템은 계수 정보에 기초하여 검색 결과들을 생성할 수 있다. 특정한 사용자에 대한 검색 결과들은 질의하는 사용자에 대한 검색 결과들과 연관된 계수에 기초하여 점수가 매겨지거나 순위가 정해질 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 더 높은 계수들을 갖는 객체들에 대응하는 검색 결과들은 더 낮은 계수들을 가지는 객체들에 대응하는 결과들보다 검색 결과 페이지에서 더 높은 순위가 정해질 수 있다.
특정한 실시예들에서, 소셜 네트워킹 시스템은 특정한 시스템 또는 프로세스로부터의 계수에 대한 요청에 응답하여 계수를 산출할 수 있다. 주어진 상황에서 사용자가 취할 수 있는 (또는 그 주체일 수 있는) 가능한 동작들을 예측하기 위해, 임의의 프로세스는 사용자에 대해 산출된 계수를 요청할 수 있다. 요청은 또한, 계수를 산출하기 위해 사용된 다양한 인자들을 위해 사용하기 위한 한 세트의 가중치들을 포함할 수 있다. 이 요청은 온라인 소셜 네트워크에서 실행되는 프로세스로부터, 제 3 자 시스템(예로서, API 또는 다른 통신 채널을 통해)으로부터, 또는 또 다른 적합한 시스템으로부터 발생할 수 있다. 요청에 응답하여, 소셜 네트워킹 시스템은 계수를 산출할 수 있다(또는 계수가 이전에 산출되고 저장되었다면 계수 정보에 액세스할 수 있음). 특정한 실시예들에서, 소셜 네트워킹 시스템은 특정한 프로세스에 대한 친화도를 측정할 수 있다. 상이한 프로세스들(온라인 소셜 네트워크의 내부 및 외부 둘 모두)은 특정한 객체 또는 객체들의 세트에 대한 계수를 요청할 수 있다. 소셜 네트워킹 시스템은 친화도의 측정치를 요청한 특정한 프로세스와 관련되는 친화도의 측정치를 제공할 수 있다. 이러한 방식으로, 각각의 프로세스는 프로세스가 친화도의 측정치를 사용할 상이한 콘텍스트에 맞춰지는 친화도의 측정치를 수신한다.
소셜 그래프 친화도 및 친화도 계수들과 관련하여, 특정한 실시예들은 2006년 8월 11일에 출원된 미국 특허 출원 번호 제 11/503093 호, 2010년 12월 22일에 출원된 미국 특허 출원 번호 제 12/977027 호, 2010년 12월 23일에 출원된 미국 특허 출원 번호 제 12/978265 호, 및 2012년 10월 1일에 출원된 미국 특허 출원 번호 제 13/632869 호에 개시된 하나 이상의 시스템들, 구성요소들, 요소들, 기능들, 방법들, 동작들, 또는 단계들을 활용할 수 있고, 그들의 각각은 참조로서 통합된다.
시스템들 및 방법들
도 4는 일 예시적인 컴퓨터 시스템(400)을 도시한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(400)은 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 수행한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(400)은 본 명세서에서 설명되거나 도시된 기능을 제공한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(400)에서 실행되는 소프트웨어는 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 수행하거나 본 명세서에서 설명되거나 도시된 기능을 제공한다. 특정한 실시예들은 하나 이상의 컴퓨터 시스템들(400)의 하나 이상의 부분들을 포함한다. 본 명세서에서, 컴퓨터 시스템에 대한 참조는 적절한 경우, 컴퓨팅 디바이스를 포함할 수 있으며, 그 반대도 마찬가지이다. 게다가, 컴퓨터 시스템에 대한 참조는 적절한 경우, 하나 이상의 컴퓨터 시스템들을 포함할 수 있다.
본 발명은 임의의 적합한 수의 컴퓨터 시스템들(400)을 고려한다. 본 발명은 임의의 적합한 물리적 형태를 취하는 컴퓨터 시스템(400)을 고려한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 컴퓨터 시스템(400)은 내장된 컴퓨터 시스템, 시스템 온 칩(SOC), 단일 보드 컴퓨터 시스템(SBC)(예를 들면, 컴퓨터 온 모듈(COM) 또는 시스템 온 모듈(SOM)과 같음), 데스크탑 컴퓨터 시스템, 랩탑 또는 노트북 컴퓨터 시스템, 대화형 키오스크, 메인프레임, 컴퓨터 시스템들의 메시, 모바일 전화, 개인 휴대용 정보 단말기(PDA), 서버, 태블릿 컴퓨터 시스템, 증강/가상 현실 디바이스, 또는 그들 중 2개 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(400)은 하나 이상의 컴퓨터 시스템들(400)을 포함할 수 있거나; 단일 또는 분산될 수 있거나; 다수의 위치들에 걸쳐 있을 수 있거나; 다수의 기계들에 걸쳐 있을 수 있거나; 다수의 데이터 센터들에 걸쳐 있을 수 있거나; 하나 이상의 네트워크들에 하나 이상의 클라우드 구성요소들을 포함시킬 수 있는 클라우드에 상주할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템들(400)은 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 실질적인 공간적 또는 시간적 제한 없이 수행할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 하나 이상의 컴퓨터 시스템들(400)은 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 실시간 또는 배치 모드로 수행할 수 있다. 하나 이상의 컴퓨터 시스템들(400)은 적절한 경우, 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 상이한 시간들에서 또는 상이한 위치들에서 수행할 수 있다.
특정한 실시예들에서, 컴퓨터 시스템(400)은 프로세서(402), 메모리(404), 저장장치(406), 입력/출력(I/O) 인터페이스(408), 통신 인터페이스(410), 및 버스(412)를 포함한다. 본 발명이 특정한 배열로 특정한 수의 특정한 구성요소들을 가지는 특정한 컴퓨터 시스템을 설명하고 도시할지라도, 본 발명은 임의의 적합한 배열로 임의의 적합한 수의 임의의 적합한 구성요소들을 가지는 임의의 적합한 컴퓨터 시스템을 고려한다.
특정한 실시예들에서, 프로세서(402)는 컴퓨터 프로그램을 구성하기 위한 명령들과 같은, 명령들을 실행하기 위한 하드웨어를 포함한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 명령들을 실행하기 위해, 프로세서(402)는 내부 레지스터, 내부 캐시, 메모리(404), 또는 저장장치(406)로부터 명령들을 검색(또는 인출)하고; 그들을 디코딩하고 실행하며; 그 다음, 하나 이상의 결과들을 내부 레지스터, 내부 캐시, 메모리(404), 또는 저장장치(406)에 기록할 수 있다. 특정한 실시예들에서, 프로세서(402)는 데이터, 명령들, 또는 주소들을 위한 하나 이상의 내부 캐시들을 포함할 수 있다. 본 발명은 적절한 경우, 임의의 적합한 수의 임의의 적합한 내부 캐시들을 포함하는 프로세서(402)를 고려한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 프로세서(402)는 하나 이상의 명령 캐시들, 하나 이상의 데이터 캐시들, 및 하나 이상의 변환 색인 버퍼(translation lookaside buffer; TLB)들을 포함할 수 있다. 명령 캐시들에서의 명령들은 메모리(404) 또는 저장장치(406)에서의 명령들의 카피들일 수 있고, 명령 캐시들은 프로세서(402)에 의한 그들 명령들의 검색의 속도를 높일 수 있다. 데이터 캐시들에서의 데이터는 동작할 프로세서(402)에서 실행되는 명령들을 위한 메모리(404) 또는 저장장치(406)에서의 데이터; 프로세서(402)에서 실행되는 후속 명령들에 의해 액세스하기 위해 또는 메모리(404) 또는 저장장치(406)에 기록하기 위해 프로세서(402)에서 실행된 이전 명령들의 결과들; 또는 다른 적합한 데이터의 카피들일 수 있다. 데이터 캐시들은 프로세서(402)에 의한 판독 또는 기록 동작들의 속도를 높일 수 있다. TLB들은 프로세서(402)를 위한 가상 주소 전환의 속도를 높일 수 있다. 특정한 실시예들에서, 프로세서(402)는 데이터, 명령들, 또는 주소들을 위한 하나 이상의 내부 레지스터들을 포함할 수 있다. 본 발명은 적절한 경우, 임의의 적합한 수의 임의의 적합한 내부 레지스터들을 포함하는 프로세서(402)를 고려한다. 적절한 경우, 프로세서(402)는 하나 이상의 산술 논리 유닛(ALU)들을 포함하거나; 멀티 코어 프로세서일 수 있거나; 하나 이상의 프로세서들(402)을 포함할 수 있다. 본 발명이 특정한 프로세서를 설명하고 도시할지라도, 본 발명은 임의의 적합한 프로세서를 고려한다.
특정한 실시예들에서, 메모리(404)는 프로세서(402)가 실행할 명령들 또는 프로세서(402)가 동작할 데이터를 저장하기 위한 메인 메모리를 포함한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 컴퓨터 시스템(400)은 저장장치(406) 또는 또 다른 소스(예를 들면, 또 다른 컴퓨터 시스템(400)과 같음)로부터 메모리(404)로 명령들을 로드할 수 있다. 프로세서(402)는 그 다음, 메모리(404)로부터 내부 레지스터 또는 내부 캐시로 명령들을 로드할 수 있다. 명령들을 실행하기 위해, 프로세서(402)는 내부 레지스터 또는 내부 캐시로부터 명령들을 검색하고 그들을 디코딩할 수 있다. 명령들의 실행 동안 또는 이후에, 프로세서(402)는 하나 이상의 결과들(중간 또는 최종 결과들일 수 있음)을 내부 레지스터 또는 내부 캐시에 기록할 수 있다. 프로세서(402)는 그 다음, 그들 결과들 중 하나 이상을 메모리(404)에 기록할 수 있다. 특정한 실시예들에서, 프로세서(402)는 하나 이상의 내부 레지스터들 또는 내부 캐시들에서 또는 메모리(404)(저장장치(406)와는 대조적으로 또는 어딘가의)에서 단지 명령들을 실행하고 하나 이상의 내부 레지스터들 또는 내부 캐시들에서 또는 메모리(404)(저장장치(406)와는 대조적으로 또는 어딘가의)에서 단지 데이터에 따라 동작한다. 하나 이상의 메모리 버스들(주소 버스 및 데이터 버스를 각각 포함할 수 있음)은 프로세서(402)를 메모리(404)에 결합할 수 있다. 버스(412)는 하기에 설명된 바와 같이, 하나 이상의 메모리 버스들을 포함할 수 있다. 특정한 실시예들에서, 하나 이상의 메모리 관리 유닛(MMU)들은 프로세서(402)와 메모리(404) 사이에 상주하고 프로세서(402)에 의해 요청된 메모리(404)에 대한 액세스들을 용이하게 한다. 특정한 실시예들에서, 메모리(404)는 랜덤 액세스 메모리(RAM)를 포함한다. 이 RAM은 적절한 경우, 휘발성 메모리일 수 있다. 적절한 경우, 이 RAM은 동적 RAM(DRAM) 또는 정적 RAM(SRAM)일 수 있다. 게다가, 적절한 경우, 이 RAM은 단일 포트되거나 다중 포트된 RAM일 수 있다. 본 발명은 임의의 적합한 RAM을 고려한다. 메모리(404)는 적절한 경우, 하나 이상의 메모리들(404)을 포함할 수 있다. 본 발명이 특정한 메모리를 설명하고 도시할지라도, 본 발명은 임의의 적합한 메모리를 고려한다.
특정한 실시예들에서, 저장장치(406)는 데이터 또는 명령들을 위한 대용량 저장장치를 포함한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 저장장치(406)는 하드 디스크 드라이브(HDD), 플로피 디스크 드라이브, 플래시 메모리, 광 디스크, 광 자기 디스크, 자기 테이프, 또는 범용 직렬 버스(Universal Serial Bus; USB) 드라이브 또는 그들 중 2개 이상의 조합을 포함할 수 있다. 저장장치(406)는 적절한 경우, 탈착가능하거나 탈착가능하지 않은(또는 고정된) 매체들을 포함할 수 있다. 저장장치(406)는 적절한 경우, 컴퓨터 시스템(400)의 내부 또는 외부에 있을 수 있다. 특정한 실시예들에서, 저장장치(406)는 비 휘발성, 고체 상태 메모리이다. 특정한 실시예들에서, 저장장치(406)는 판독 전용 메모리(ROM)를 포함한다. 적절한 경우, 이 ROM은 마스크 프로그래밍된 ROM, 프로그래밍가능한 ROM(PROM), 소거가능한 PROM(EPROM), 전기적으로 소거가능한 PROM(EEPROM), 전기적으로 개조가능한 ROM(EAROM), 또는 플래시 메모리 또는 그들 중 2개 이상의 조합을 포함한다. 본 발명은 임의의 적합한 물리적 형태를 취하는 대용량 저장장치(406)를 고려한다. 저장장치(406)는 적절한 경우, 프로세서(402)와 저장장치(406) 사이의 통신을 용이하게 하는 하나 이상의 저장 제어 유닛들을 포함할 수 있다. 적절한 경우, 저장장치(406)는 하나 이상의 저장장치들(406)을 포함할 수 있다. 본 발명이 특정한 저장장치를 설명하고 도시할지라도, 본 발명은 임의의 적합한 저장장치를 고려한다.
특정한 실시예들에서, I/O 인터페이스(408)는 컴퓨터 시스템(400)과 하나 이상의 I/O 디바이스들 사이의 통신을 위한 하나 이상의 인터페이스들을 제공하는 하드웨어, 소프트웨어, 또는 둘 모두를 포함한다. 컴퓨터 시스템(400)은 적절한 경우, 이들 I/O 디바이스들 중 하나 이상을 포함할 수 있다. 이들 I/O 디바이스들 중 하나 이상은 사람과 컴퓨터 시스템(400) 사이의 통신을 가능하게 할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, I/O 디바이스는 키보드, 키패드, 마이크로폰, 모니터, 마우스, 프린터, 스캐너, 스피커, 고정형 카메라, 스타일러스, 태블릿, 터치 화면, 트랙볼, 비디오 카메라, 또 다른 적합한 I/O 디바이스 또는 이들 중 2개 이상의 조합을 포함할 수 있다. I/O 디바이스는 하나 이상의 센서들을 포함할 수 있다. 본 발명은 임의의 적합한 I/O 디바이스들 및 그들을 위한 임의의 적합한 I/O 인터페이스들(408)을 고려한다. 적절한 경우, I/O 인터페이스(408)는 프로세서(402)가 이들 I/O 디바이스들 중 하나 이상을 구동하는 것을 가능하게 하는 하나 이상의 디바이스 또는 소프트웨어 구동기들을 포함할 수 있다. I/O 인터페이스(408)는 적절한 경우, 하나 이상의 I/O 인터페이스들(408)을 포함할 수 있다. 본 발명이 특정한 I/O 인터페이스를 설명하고 도시할지라도, 본 발명은 임의의 적합한 I/O 인터페이스를 고려한다.
특정한 실시예들에서, 통신 인터페이스(410)는 컴퓨터 시스템(400)과 하나 이상의 다른 컴퓨터 시스템들(400) 또는 하나 이상의 네트워크들 사이의 통신(예를 들면, 패킷 기반 통신과 같음)을 위한 하나 이상의 인터페이스들을 제공하는 하드웨어, 소프트웨어, 또는 둘 모두를 포함한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 통신 인터페이스(410)는 이더넷 또는 다른 유선 기반 네트워크와 통신하기 위한 네트워크 인터페이스 제어기(NIC) 또는 네트워크 어댑터 또는 와이파이 네트워크와 같은, 무선 네트워크와 통신하기 위한 무선 NIC(WNIC) 또는 무선 어댑터를 포함할 수 있다. 본 발명은 임의의 적합한 네트워크 및 그것을 위한 임의의 적합한 통신 인터페이스(410)를 고려한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 컴퓨터 시스템(400)은 애드 혹 네트워크, 개인 통신망(PAN), 근거리 통신망(LAN), 광역 통신망(WAN), 도시권 통신망(MAN), 또는 인터넷의 하나 이상의 부분들 또는 그들 중 2개 이상의 조합과 통신할 수 있다. 이들 네트워크들 중 하나 이상의 하나 이상의 부분들은 유선 또는 무선일 수 있다. 일례로서, 컴퓨터 시스템(400)은 무선 PAN(WPAN)(예를 들면, 블루투스 WPAN과 같음), 와이파이 네트워크, WI-MAX 네트워크, 셀룰러 전화 네트워크(예를 들면, 모바일 통신을 위한 글로벌 시스템(Global System for Mobile Communications; GSM) 네트워크와 같음), 또는 다른 적합한 무선 네트워크 또는 이들 중 2개 이상의 조합과 통신할 수 있다. 컴퓨터 시스템(400)은 적절한 경우, 이들 네트워크들 중 임의의 것을 위한 임의의 적합한 통신 인터페이스(410)를 포함할 수 있다. 통신 인터페이스(410)는 적절한 경우, 하나 이상의 통신 인터페이스들(410)을 포함할 수 있다. 본 발명이 특정한 통신 인터페이스를 설명하고 도시할지라도, 본 발명은 임의의 적합한 통신 인터페이스를 고려한다.
특정한 실시예들에서, 버스(412)는 컴퓨터 시스템(400)의 구성요소들을 서로 결합하는 하드웨어, 소프트웨어, 또는 둘 모두를 포함한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 버스(412)는 가속화된 그래픽 포트(Accelerated Graphics Port; AGP) 또는 다른 그래픽 버스, 향상된 산업 표준 아키텍쳐(Enhanced Industry Standard Architecture; EISA) 버스, FSB(front-side bus), 하이퍼트랜스포트(HYPERTRANSPORT)(HT) 상호연결부, 산업 표준 아키텍쳐(ISA) 버스, 인피니밴드 상호연결부, LPC(low-pin-count) 버스, 메모리 버스, 마이크로 채널 아키텍쳐(Micro Channel Architecture; MCA) 버스, 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스, PCI-Express(PCIe) 버스, SATA(serial advanced technology attachment) 버스, VLB(Video Electronics Standards Association local) 버스, 또는 또 다른 적합한 버스 또는 이들 중 2개 이상의 조합을 포함할 수 있다. 버스(412)는 적절한 경우, 하나 이상의 버스들(412)을 포함할 수 있다. 본 발명이 특정한 버스를 설명하고 도시할지라도, 본 발명은 임의의 적합한 버스 또는 상호연결부를 고려한다.
본 명세서에서, 컴퓨터 판독가능한 비일시적 저장 매체 또는 매체들은 적절한 경우, 하나 이상의 반도체 기반 또는 다른 집적 회로들(ICs)(예를 들면, 필드 프로그래밍가능한 게이트 어레이들(FPGAs) 또는 주문형 반도체들(ASICs)과 같음), 하드 디스크 드라이브들(HDDs), 하이브리드 하드 드라이브들(HHDs), 광 디스크들, 광 디스크 드라이브들(ODDs), 광 자기 디스크들, 광 자기 드라이브들, 플로피 디스켓들, 플로피 디스크 드라이브들(FDDs), 자기 테이프들, 고체 상태 드라이브들(SSDs), RAM 드라이브들, 보안 디지털 카드들 또는 드라이브들, 임의의 다른 적합한 컴퓨터 판독가능한 비일시적 저장 매체, 또는 이들 중 2개 이상의 임의의 적합한 조합을 포함할 수 있다. 컴퓨터 판독가능한 비일시적 저장 매체는 적절한 경우, 휘발성, 비 휘발성, 또는 휘발성 및 비 휘발성의 조합일 수 있다.
본 명세서에서, "또는"은 명확하게 다르게 나타내거나 맥락에 의해 다르게 나타내지 않는 한, 포괄적이고 배타적이지 않다. 따라서, 본 명세서에서, "A 또는 B"는 명확하게 다르게 나타내거나 맥락에 의해 다르게 나타내지 않는 한, "A, B, 또는 둘 모두"를 의미한다. 게다가, "및"은 명확하게 다르게 나타내거나 맥락에 의해 다르게 나타내지 않는 한, 공동 및 몇몇 둘 모두이다. 따라서, 본 명세서에서, "A 및 B"는 명확하게 다르게 나타내거나 맥락에 의해 다르게 나타내지 않는 한, "A 및 B, 공동으로 또는 별개로"를 의미한다.
본 발명의 범위는 당업자가 이해할 본 명세서에서 설명되고 도시된 예시적인 실시예들에 대한 모든 변경들, 교체들, 변형들, 개조들, 및 수정들을 포함한다. 본 발명의 범위는 본 명세서에서 설명되고 도시된 예시적인 실시예들로 제한되지 않는다. 게다가, 본 발명이 본 명세서에서의 각각의 실시예들을 특정한 구성요소들, 요소들, 특징, 기능들, 동작들, 또는 단계들을 포함하는 것으로서 설명하고 도시할지라도, 이들 실시예들 중 임의의 것은 당업자가 이해할 본 명세서의 어딘가에서 설명되고 도시된 구성요소들, 요소들, 특징들, 기능들, 동작들, 또는 단계들 중 임의의 것의 임의의 조합 또는 순열을 포함할 수 있다. 또한, 첨부된 청구항들에서 특정한 기능을 수행하도록 적응되거나, 배열되거나, 수행할 수 있거나, 구성되거나, 가능하게 되거나, 동작가능하거나, 동작하는 장치 또는 시스템 또는 장치 또는 시스템의 구성요소에 대한 참조는, 그 장치, 시스템, 또는 구성요소가 그렇게 적응되거나, 배열되거나, 할 수 있거나, 구성되거나, 가능하게 되거나, 동작가능하거나, 동작하는 한, 그것 또는 그 특정한 기능이 활성화되든, 턴 온되든, 또는 잠금해제되든 아니든 그 장치, 시스템, 구성요소를 포함한다. 부가적으로, 본 발명이 특정한 실시예들을 특정한 장점들을 제공하는 것으로서 설명하거나 도시할지라도, 특정한 실시예들은 이들 장점들을 전혀 제공하지 않거나, 그들의 일부, 또는 전부를 제공할 수 있다.

Claims (11)

  1. 하나 이상의 컴퓨터 시스템들에 의해:
    복수의 제 3 자 시스템들의 각각으로부터 증강 현실 객체 및 연관된 디스플레이 규칙을 수신하는 단계;
    제 1 사용자와 연관된 클라이언트 시스템으로부터 상기 제 1 사용자의 환경의 현재 뷰와 연관된 하나 이상의 신호들을 수신하는 단계;
    선택된 증강 현실 객체와 연관된 상기 디스플레이 규칙 및 상기 하나 이상의 신호들에 기초하여 상기 복수의 제 3 자 시스템들로부터 수신된 상기 증강 현실 객체들 중 적어도 하나를 선택하는 단계; 및
    상기 선택된 증강 현실 객체에게 상기 환경의 현재 뷰를 제공하기 위한 명령들을 상기 클라이언트 시스템으로 전송하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서, 상기 하나 이상의 신호들은:
    상기 환경의 위치 정보;
    상기 환경과 연관된 소셜 그래프 정보;
    상기 제 1 사용자와 연관된 소셜 그래프 정보;
    상기 환경과 연관된 컨텍스트 정보; 또는
    시간 정보 중 하나 이상을 포함하는, 방법.
  3. 제 1 항에 있어서, 상기 복수의 제 3 자 시스템들의 각각은 제 3 자 콘텐트 제공자와 연관되는, 방법.
  4. 제 3 항에 있어서, 각각의 제 3 자 콘텐트 제공자는 상기 하나 이상의 컴퓨팅 시스템들에 등록되는, 방법.
  5. 제 1 항에 있어서,
    상기 복수의 제 3 자 시스템들의 각각에 대해 선언적 모델(declarative model)을 생성하는 단계; 및
    상기 대응하는 제 3 자 시스템으로부터의 상기 선언적 모델을 통해 하나 이상의 유형들의 증강 현실 객체들에 대한 하나 이상의 선호도들을 수신하는 단계를 더 포함하는, 방법.
  6. 제 5 항에 있어서, 상기 복수의 제 3 자 시스템들로부터 수신된 상기 증강 현실 객체들 중 상기 적어도 하나를 선택하는 단계는 또한, 각각의 제 3 자 시스템으로부터 수신된 상기 하나 이상의 선호도들에 기초하는, 방법.
  7. 제 1 항에 있어서,
    상기 복수의 제 3 자 시스템들 중 적어도 하나에 대해 발견 모델(discovery model)을 생성하는 단계; 및
    상기 발견 모델을 통해 프롬프트를 상기 클라이언트 시스템으로 전송하는 단계를 더 포함하고, 상기 프롬프트는 상기 적어도 하나의 제 3 자 시스템과 연관된 제 3 자 애플리케이션을 설치하기 위한 실행가능한 링크를 포함하는, 방법.
  8. 제 1 항에 있어서,
    상기 클라이언트 시스템으로부터 상기 제 1 사용자로부터의 상기 선택된 증강 현실 객체와의 하나 이상의 사용자 상호작용들을 수신하는 단계를 더 포함하는, 방법.
  9. 제 1 항에 있어서, 상기 증강 현실 객체는 대화형 디지털 요소, 시각적 오버레이, 또는 감각 투영 중 하나 이상을 포함하는, 방법.
  10. 소프트웨어를 구현하는 하나 이상의 컴퓨터 판독가능한 비일시적 저장 매체에 있어서,
    상기 소프트웨어는 실행될 때, 제 1 항 내지 제 9 항 중 어느 한 항에 따른 방법을 수행하거나,
    복수의 제 3 자 시스템들의 각각으로부터 증강 현실 객체 및 연관된 디스플레이 규칙을 수신하고;
    제 1 사용자와 연관된 클라이언트 시스템으로부터 상기 제 1 사용자의 환경의 현재 뷰와 연관된 하나 이상의 신호들을 수신하고;
    선택된 증강 현실 객체와 연관된 상기 디스플레이 규칙 및 상기 하나 이상의 신호들에 기초하여 상기 복수의 제 3 자 시스템들로부터 수신된 상기 증강 현실 객체들 중 적어도 하나를 선택하며;
    상기 선택된 증강 현실 객체에게 상기 환경의 현재 뷰를 제공하기 위한 명령들을 상기 클라이언트 시스템으로 전송하도록 동작가능한, 하나 이상의 컴퓨터 판독가능한 비일시적 저장 매체.
  11. 하나 이상의 프로세서들; 및 상기 프로세서들에 의해 실행가능한 명령들을 포함하는 상기 프로세서들에 결합된 비일시적 메모리를 포함하는 시스템에 있어서,
    상기 프로세서들은 상기 명령들을 실행할 때 제 1 항 내지 제 9 항 중 어느 한 항에 따른 방법을 수행하거나,
    복수의 제 3 자 시스템들의 각각으로부터 증강 현실 객체 및 연관된 디스플레이 규칙을 수신하고;
    제 1 사용자와 연관된 클라이언트 시스템으로부터 상기 제 1 사용자의 환경의 현재 뷰와 연관된 하나 이상의 신호들을 수신하고;
    선택된 증강 현실 객체와 연관된 상기 디스플레이 규칙 및 상기 하나 이상의 신호들에 기초하여 상기 복수의 제 3 자 시스템들로부터 수신된 상기 증강 현실 객체들 중 적어도 하나를 선택하며;
    상기 선택된 증강 현실 객체에게 상기 환경의 현재 뷰를 제공하기 위한 명령들을 상기 클라이언트 시스템으로 전송하도록 동작가능한, 시스템.
KR1020227013835A 2019-09-26 2020-09-22 제 3 자 시스템들로부터의 증강 현실 데이터의 효과적인 스트리밍 KR20220062661A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/584,501 2019-09-26
US16/584,501 US20210097762A1 (en) 2019-09-26 2019-09-26 Effective Streaming of Augmented-Reality Data from Third-Party Systems
PCT/US2020/052038 WO2021061667A1 (en) 2019-09-26 2020-09-22 Effective streaming of augmented-reality data from third-party systems

Publications (1)

Publication Number Publication Date
KR20220062661A true KR20220062661A (ko) 2022-05-17

Family

ID=73139379

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227013835A KR20220062661A (ko) 2019-09-26 2020-09-22 제 3 자 시스템들로부터의 증강 현실 데이터의 효과적인 스트리밍

Country Status (6)

Country Link
US (1) US20210097762A1 (ko)
EP (1) EP4034973A1 (ko)
JP (1) JP2022549986A (ko)
KR (1) KR20220062661A (ko)
CN (1) CN114207560A (ko)
WO (1) WO2021061667A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024010125A1 (ko) * 2022-07-08 2024-01-11 엘지전자 주식회사 사이니지 제공을 위한 에지 및 클라우드 간 협업 플랫폼

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11933986B2 (en) * 2022-03-11 2024-03-19 Bank Of America Corporation Apparatus and methods to extract data with smart glasses

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10712811B2 (en) * 2017-12-12 2020-07-14 Facebook, Inc. Providing a digital model of a corresponding product in a camera feed

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024010125A1 (ko) * 2022-07-08 2024-01-11 엘지전자 주식회사 사이니지 제공을 위한 에지 및 클라우드 간 협업 플랫폼

Also Published As

Publication number Publication date
WO2021061667A1 (en) 2021-04-01
US20210097762A1 (en) 2021-04-01
EP4034973A1 (en) 2022-08-03
JP2022549986A (ja) 2022-11-30
CN114207560A (zh) 2022-03-18

Similar Documents

Publication Publication Date Title
US11257170B2 (en) Using three-dimensional virtual object models to guide users in virtual environments
AU2017218942B2 (en) User experience/user interface based on interaction history
EP2954389B1 (en) Varying user interface based on location or speed
AU2014241680B2 (en) Scoring user characteristics
US10681169B2 (en) Social plugin reordering on applications
KR20230004966A (ko) 라이브 비디오들을 위한 대화형 관람 인터페이스
EP3609136B1 (en) Contact aggregation in a social network
US11019177B2 (en) Selecting assets
US10728100B2 (en) Determining mesh networks based on determined contexts
KR20210094011A (ko) 가상 공동 체험 시스템의 퍼스펙티브 셔플링
KR20220062661A (ko) 제 3 자 시스템들로부터의 증강 현실 데이터의 효과적인 스트리밍
US20160154543A1 (en) Generating a List of Content Items
WO2020060856A1 (en) Shared live audio
WO2023091555A1 (en) Cross-platform facilitation of application installation for vr systems
KR20210096695A (ko) 개선된 상호작용 및 컬래버레이션을 위한 가상 공간, 혼합 현실 공간 및 결합된 혼합 현실 공간
US10911826B1 (en) Determining appropriate video encodings for video streams
JP7242669B2 (ja) 複数のデバイスにわたるコンテンツを提供すること
CN112513911A (zh) 位置预测