KR20180098127A - 캘린더 약속과 미디어 자산 전송 시간 사이의 중첩을 검출하기 위한 방법 및 시스템 - Google Patents

캘린더 약속과 미디어 자산 전송 시간 사이의 중첩을 검출하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20180098127A
KR20180098127A KR1020177037688A KR20177037688A KR20180098127A KR 20180098127 A KR20180098127 A KR 20180098127A KR 1020177037688 A KR1020177037688 A KR 1020177037688A KR 20177037688 A KR20177037688 A KR 20177037688A KR 20180098127 A KR20180098127 A KR 20180098127A
Authority
KR
South Korea
Prior art keywords
media asset
media
event
user
calendar
Prior art date
Application number
KR1020177037688A
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 KR20180098127A publication Critical patent/KR20180098127A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • H04N21/4583Automatically resolving scheduling conflicts, e.g. when a recording by reservation has been programmed for two programs in the same time slot
    • 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/109Time management, e.g. calendars, reminders, meetings or time accounting
    • 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/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • G06Q10/1095Meeting or appointment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4821End-user interface for program selection using a grid, e.g. sorted out by channel and broadcast time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4882Data services, e.g. news ticker for displaying messages, e.g. warnings, reminders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Databases & Information Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

유저가 유저의 약속과 중첩하는 미디어 자산을, 유저의 약속과 중첩하지 않는 미디어 자산과 구별하는 것을 가능하게 하는 미디어 안내 애플리케이션에 대한 시스템 및 방법이 설명된다. 구체적으로, 미디어 안내 애플리케이션은 유저의 캘린더 애플리케이션에 액세스하여 그 캘린더 애플리케이션으로부터 유저의 캘린더 데이터를 수신할 수도 있다. 미디어 안내 애플리케이션은, 임의의 중첩이 존재하는지의 여부를 결정하기 위해, 유저의 캘린더 데이터를 미디어 자산 스케줄링 데이터와 비교할 수도 있다. 각각의 중첩하는 미디어 자산에 대해, 미디어 안내 애플리케이션은 충돌 표시자를 저장할 수도 있다. 미디어 안내 애플리케이션은, 적어도 하나의 캘린더 약속과 중첩하는 미디어 자산 식별자가 임의의 캘린더 약속과 중첩하지 않는 미디어 자산 식별자와는 시각적으로 구별되는 미디어 자산 식별자(예를 들면, 프로그램 목록)의 세트를, 디스플레이를 위해, 생성할 수도 있다.

Description

캘린더 약속과 미디어 자산 전송 시간 사이의 중첩을 검출하기 위한 방법 및 시스템
관련 출원에 대한 교차 참조
본 출원은, 참조에 의해 본원에 통합되는 2015년 12월 23일자로 출원된 미국 특허 출원 제14/998,109호에 대한 우선권 및 그 이익을 청구한다.
종래의 시스템에서, 유저는 과다한 미디어 콘텐츠에 액세스할 수 있다. 대부분의 경우, 유저는 미디어 안내 애플리케이션을 통해 향후 어떤 콘텐츠가 이용 가능할지를 볼 수 있다. 동일한 미디어 안내 애플리케이션을 통해, 유저는 자신이 소비하고자 하는 특정한 콘텐츠가 전송될 채널 번호 및 시간을 찾을 수 있다. 그러나, 유저는, 유저가 사전 약속이 있을 수도 있기 때문에, 소망하는 미디어 자산을 그 또는 그녀가 소비할 수 있을 것인지의 여부를 결정함에 있어서, 종종 도움을 필요로 한다. 현재 시스템에서는, 유저가 소망하는 미디어 콘텐츠를 소비하는 것을 사전 약속이 방해할지를 결정하기 위해, 유저는 그들의 개인 캘린더를 참조해야만 한다. 이것은 비효율적이고 시간 소모적이며, 유저에게 혼란을 준다.
따라서, 유저가 유저의 약속과 중첩하는 미디어 자산을, 유저의 약속과 중첩하지 않는 미디어 자산과 구별하는 것을 가능하게 하는 미디어 안내 애플리케이션에 대한 시스템 및 방법이 본원에서 설명된다. 구체적으로, 미디어 안내 애플리케이션은 유저의 캘린더 애플리케이션에 액세스하여 그 캘린더 애플리케이션으로부터 유저의 캘린더 데이터를 수신할 수도 있다. 미디어 안내 애플리케이션은, 임의의 중첩이 존재하는지의 여부를 결정하기 위해, 유저의 캘린더 데이터(예를 들면, 약속 시작 시간 및 종료 시간)를 미디어 자산 스케줄링 데이터(예를 들면, 미디어 자산 시작 시간 및 종료 시간)와 비교할 수도 있다. 각각의 중첩하는 미디어 자산에 대해, 미디어 안내 애플리케이션은 충돌 표시자(conflict indicator)를 저장할 수도 있다. 미디어 안내 애플리케이션은, 적어도 하나의 캘린더 약속과 중첩하는 미디어 자산 식별자가 임의의 캘린더 약속과 중첩하지 않는 미디어 자산 식별자와는 시각적으로 구별되는 미디어 자산 식별자(예를 들면, 프로그램 목록)의 세트를, 디스플레이를 위해, 생성할 수도 있다.
예를 들면, 미디어 안내 애플리케이션은 미래의 시간에 대한 미디어 자산 식별자(예를 들면, 프로그램 목록)에 대한 요청을 유저로부터 수신할 수도 있다. 미디어 안내 애플리케이션은, 미디어 자산 식별자와 함께, 미래의 시간 기간에 어떤 미디어 자산 전송 시간이 유저의 약속과 중첩할지에 관해 유저에게 통지하기 위한 시각적 표시자 또는 다수의 시각적 표시자를, 디스플레이를 위해, 생성할 수도 있다.
몇몇 양태에서, 미디어 안내 애플리케이션은 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터를, 캘린더 애플리케이션으로부터 수신할 수도 있다. 캘린더 데이터는, 관련된 이벤트 시작 시간 및 이벤트 종료 시간을 갖는 이벤트 시간 간격을 포함할 수도 있다. 예를 들면, 유저는 서비스 공급자에 의해 호스팅되는 관련 캘린더를 가질 수도 있다. 관련된 캘린더는, 시작 시간 및 종료 시간을 스케줄링한 이벤트(예를 들면, 유저의 약속)를 포함할 수도 있다. 이들 이벤트는, 설명, 약속 장소, 주제, 미리 알림(reminder) 데이터, 우선 순위 정보, 등등과 같은 많은 다른 메타 데이터를 포함할 수도 있다. 미디어 안내 애플리케이션은 서비스 제공자와 관련되는 서버로부터 그 정보를 수신할 수도 있다. 시작 시간 및 종료 시간 둘 다는 날짜와 시간을 포함한다는 것을 유의해야 한다. 미디어 안내 애플리케이션은 다수의 캘린더(예를 들면, 작업 캘린더 및 개인 캘린더)로부터 캘린더 데이터를 검색할(retrieve) 수도 있다는 것을 유의해야 한다.
미디어 안내 애플리케이션은 복수의 이벤트의 이벤트 시간 간격을 제1 복수의 미디어 자산의 미디어 자산 시간 간격과 비교할 수도 있다. 비교에 포함되는 제1 복수의 미디어 자산의 각각의 미디어 자산은 관련된 미디어 자산 시작 시간 및 종료 시간을 가질 수도 있고, 대응하는 미디어 자산 시간 간격 동안 복수의 유저에 대한 전송을 위해 스케줄링될 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 유저와 관련되는 다수의 약속을 수신했을 수도 있다. 미디어 안내 애플리케이션은, 약속의 시작 시간 및 종료 시간을 미디어 자산의 전송 시간과 비교하는 것에 의해 어떤 미디어 자산 전송 시간이 수신된 약속의 시간과 중첩하는지를 결정할 수도 있다. 미디어 안내 애플리케이션은, 특정한 미디어 자산이 하나의 약속, 다수의 약속과 중첩한다는 것 또는 어떤 약속과도 중첩하지 않는다는 것을 결정할 수도 있다.
미디어 안내 애플리케이션은, 비교에 기초하여, 대응하는 미디어 자산 데이터베이스 엔트리에, 제2 복수의 미디어 자산에 대응하는 제1 복수의 미디어 자산 식별자에 대해 충돌 표시자를 저장할 수도 있다. 제2 복수의 미디어 자산은, 이벤트 시간 간격 중 적어도 하나와 적어도 부분적으로 중첩하는 관련된 미디어 자산 시간 간격을 갖는 제1 복수의 미디어 자산으로부터의 미디어 자산을 포함할 수도 있다. 몇몇 실시형태에서, 미디어 안내 애플리케이션은 또한, 중첩하는 이벤트와 관련되는 우선 순위를 대응하는 미디어 자산 데이터베이스 엔트리에 포함할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은, 상기에서 설명되는 비교 동안, 열 개의 미디어 자산이 유저의 약속과 중첩한다는 것을 결정했을 수도 있다. 또한, 미디어 안내 애플리케이션은, 열 개의 미디어 자산 중 두 개가 다수의 약속과 중첩한다는 것을 결정했을 수도 있다. 이러한 결정에 기초하여, 미디어 안내 애플리케이션은 충돌 표시자를 대응하는 미디어 자산 데이터베이스 엔트리에 저장할 수도 있다. 대안적으로 또는 추가적으로, 미디어 안내 애플리케이션은 각각의 중첩하는 약속에 대응하는 하나의 충돌 표시자를 저장할 수도 있다. 충돌 표시자는 충돌을 나타내는 이진 값일 수도 있다. 추가적으로 또는 대안적으로, 충돌 표시자는, 중첩하는 약속에 관한 정보, 그 정보에 대한 포인터, 및/또는 약속 자체에 대한 포인터를 포함할 수도 있다. 약속에 대한 포인터는, 수신된 캘린더 데이터에서의 약속 또는 캘린더 애플리케이션에서의 약속을 가리키고 있을 수도 있다.
미디어 안내 애플리케이션은, 어떤 시간 기간 동안 복수의 유저에 대한 전송을 위해 스케줄링되어 있는 미디어 자산에 대응하는 제2 복수의 미디어 자산 식별자를, 디스플레이를 위해, 생성할 수도 있다. 제2 복수의 미디어 자산 식별자는, 제1 복수의 미디어 자산 식별자에 포함되는 미디어 자산 식별자를 포함하는 제1 부분 및 제1 복수의 미디어 자산 식별자에 포함되지 않는 미디어 자산 식별자를 포함하는 제2 부분을 포함할 수도 있다. 제1 부분의 미디어 자산 식별자는 제2 부분의 미디어 자산 식별자와는 시각적으로 구별될 수도 있다. 예를 들면, 미디어 안내 애플리케이션은, 채널 1 내지 채널 5(수직 축) 상에서 5 PM에서부터 7 PM(수평 축)까지 전송되도록 스케줄링되어 있는 미디어 자산에 대한 미디어 자산 식별자의 그리드를, 디스플레이를 위해, 생성할 수도 있다. 유저가 4:30 PM에서부터 5:30 PM까지 진찰 약속(doctor's appointment)이 있는 경우, 5 PM과 5: 30 PM 사이에서 전송될 과정 중에 있을 미디어 자산에 대응하는 미디어 자산 식별자는, 5:00 PM과 5:30 PM 사이에서 전송될 과정 중에 있지 않을 미디어 자산에 대응하는 미디어 자산 식별자와는 시각적으로 구별될 것이다. 예를 들면, 미디어 안내 애플리케이션은 중첩하는 미디어 자산 식별자에 특정한 음영 패턴을 추가할 수도 있다. 미디어 안내 애플리케이션은 음영 패턴을, 디스플레이되고 있는 전체 미디어 자산 식별자에 또는 중첩하는 부분에만 추가할 수도 있다. 추가적으로 또는 대안적으로, 미디어 안내 애플리케이션은, 충돌을 나타내기 위해, 중첩하는 미디어 자산 식별자에 아이콘을 추가할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 상이한 우선 순위의 이벤트와 관련되는 미디어 자산 식별자를 시각적으로 구별할 수도 있다. 구체적으로, 미디어 안내 애플리케이션은, 복수의 이벤트 중, 제1 부분의 제1 미디어 자산 식별자에 대응하는 제1 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제1 이벤트의 제1 우선 순위를 결정할 수도 있다. 미디어 안내 애플리케이션은 또한, 복수의 이벤트 중, 제1 부분의 제2 미디어 자산 식별자에 대응하는 제2 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제2 이벤트의 제2 우선 순위를 결정할 수도 있다. 미디어 안내 애플리케이션은, 제1 우선 순위가 제2 우선 순위와는 상이한 것에 기초하여, 제1 부분의 제1 미디어 자산 식별자를 제1 부분의 제2 미디어 자산 식별자와는 시각적으로 구별할 수도 있다.
예를 들면, 미디어 안내 애플리케이션은, 비즈니스 미팅에 대응하는 이벤트에 높은 우선 순위를, 그리고 유저의 체육 시간에 대응하는 이벤트에 낮은 우선 순위를 할당할 수도 있다. 미디어 안내 애플리케이션은, 다른 캘린더 데이터(즉, 시작 시간, 종료 시간, 등등)와 함께, 캘린더 애플리케이션으로부터 우선 순위 정보를 검색할 수도 있다. 몇몇 실시형태에서, 미디어 안내 애플리케이션은 이벤트의 콘텐츠에 기초하여 특정 이벤트와 관련되는 우선 순위를 결정할 수도 있다. 이벤트와 관련된 우선 순위를 결정하기 위한 몇몇 가능한 방법이 하기에서 논의된다. 미디어 안내 애플리케이션이 두 개의 이벤트에 각각 대응하는 두 개의 미디어 자산 식별자를, 디스플레이를 위해, 동일한 디스플레이 스크린 상에서 생성할 때, 미디어 안내 애플리케이션은 두 개의 이벤트를 상이한 컬러에 의해 시각적으로 구별할 수도 있다(예를 들면, 높은 우선 순위 이벤트에 대응하는 미디어 자산 식별자는 적색으로 표시될 수도 있고 낮은 우선 순위 이벤트에 대응하는 미디어 자산 식별자는 녹색으로 표시될 수도 있다). 다른 컬러 조합 및 이벤트 우선 순위가 이벤트에 할당될 수도 있다는 것을 유의해야 한다. 예를 들면, 미디어 안내 애플리케이션은 제3 이벤트에 중간 우선 순위를 할당할 수도 있고, 대응하는 미디어 자산 식별자를, 그 미디어 자산 식별자를 황색으로 디스플레이하는 것에 의해, 시각적으로 구별할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 중첩하는 이벤트의 우선 순위에 기초하여 상이한 미디어 자산 식별자를 갖는 상이한 표시자를, 디스플레이를 위해, 생성할 수도 있다. 구체적으로는, 미디어 안내 애플리케이션은 제1 우선 순위와 관련되는 제1 시각적 표시자 및 제2 우선 순위와 관련되는 제2 시각적 표시자를 저장할 수도 있고, 제1 비주얼 표시자를 갖는 제1 미디어 자산 식별자 및 제2 비주얼 표시자를 갖는 제2 미디어 자산 식별자를, 디스플레이를 위해, 생성할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은, 단어 "고(high)"를 내부에 포함하는 아이콘을 갖는, 높은 우선 순위 이벤트와 관련되는 미디어 자산 식별자 및 단어 "저(low)"를 내부에 포함하는 아이콘을 갖는, 낮은 우선 순위 이벤트와 관련되는 미디어 자산 식별자를, 디스플레이를 위해, 생성할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 상이한 우선 순위의 중첩하는 이벤트에 대응하는 미디어 자산 식별자의 선택에 기초하여, 유저에게 상이한 옵션을 제공할 수도 있다. 구체적으로, 미디어 안내 애플리케이션은, 복수의 이벤트 중, 재스케줄링될(rescheduled) 수도 있는 이벤트에 제1 우선 순위를, 그리고 복수의 이벤트 중 재스케줄링되지 않을 수도 있는 이벤트에 제2 우선 순위를 할당할 수도 있다. 제1 미디어 자산 식별자의 유저 선택에 응답하여, 미디어 안내 애플리케이션은, 제1 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성할 수도 있고, 제1 이벤트를 재스케줄링하기 위한 옵션을 유저에게 제공할 수도 있다. 그러나, 제2 미디어 자산 식별자의 유저 선택에 응답하여, 미디어 안내 애플리케이션은, 제2 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성할 수도 있고, 제2 미디어 자산을 기록하기 위한 옵션을 유저에게 제공할 수도 있다.
예를 들면, 미디어 안내 애플리케이션이 낮은 우선 순위 이벤트에 대응하는 미디어 자산 식별자의 유저 선택을 수신하면, 미디어 안내 애플리케이션은 이벤트를 재스케줄링하기 위한 옵션을, 디스플레이를 위해, 생성할 수도 있다. 이벤트를 재스케줄링하기 위한 옵션을 유저가 선택하였다는 것을 미디어 안내 애플리케이션이 검출하면, 미디어 안내 애플리케이션은, 유저가, 재스케줄링되고 있는 이벤트에 대해 상이한 날짜 및 시간을 입력하는 것을 가능하게 할 수도 있다. 미디어 안내 애플리케이션은 또한, 유저가 이벤트의 다른 부분(예를 들면, 제목, 설명, 미리 알림 옵션, 등등)을 수정하는 것을 가능하게 할 수도 있다. 다른 예에서, 미디어 안내 애플리케이션이 높은 우선 순위 이벤트에 대응하는 미디어 자산 식별자의 유저 선택을 수신하면, 미디어 안내 애플리케이션은, 중첩하는 이벤트를 재스케줄링하기 위한 옵션의 제공 없이, 대응하는 미디어 자산을 기록하기 위한 유저에 대한 옵션을, 디스플레이를 위해, 생성할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 복수의 이벤트의 이벤트 시간 간격을 제1 복수의 미디어 자산의 미디어 자산 시간 간격과 비교할 때, 이벤트 및 미디어 자산의 시작 시간 및 종료 시간에 각각 기초하여 비교를 수행할 수도 있다. 구체적으로, 미디어 안내 애플리케이션은, 복수의 이벤트 중 제1 이벤트에 대해, 제1 시작 시간 및 제1 종료 시간을 검색할 수도 있다. 미디어 안내 애플리케이션은 또한, 제1 복수의 미디어 자산 내의 제1 미디어 자산에 대해, 제2 시작 시간 및 제2 종료 시간을 검색할 수도 있다. 미디어 안내 애플리케이션은 제1 시작 시간을 제2 시작 시간 및 제2 종료 시간과 비교하고, 또한, 제1 종료 시간을 제2 시작 시간 및 제2 종료 시간과 비교할 수도 있다. 제1 시작 시간 또는 제1 종료 시간이 제2 시작 시간과 제2 종료 시간 사이에 속한다는 것을 결정하는 것에 기초하여, 미디어 안내 애플리케이션은 제1 미디어 자산에 대해 제1 충돌 표시자를 생성할 수도 있다.
예를 들면, 미디어 안내 애플리케이션은, 비교를 위해, 1:30 PM에서 시작하여 3:00 PM에 종료하도록 스케줄링되어 있는 비지니스 런치(business lunch)를 선택할 수도 있다. 미디어 안내 애플리케이션은 비즈니스 런치를 2:30 PM과 5:00 PM 사이에서 전송되고 있는 스포츠 이벤트(예를 들면, 야구 경기)와 비교할 수도 있다. 미디어 안내 애플리케이션은 1:30 PM 시작 시간을 2:30 PM 시작 시간 및 5:00 PM 종료 시간과 비교하여 1:30 PM이 이들 두 시간 사이에 있지 않다는 것; 따라서; 중첩이 발견되지 않는다는 것을 결정할 수도 있다. 그러나, 미디어 안내 애플리케이션은 또한, 비즈니스 런치 시간의 3:00 PM 종료 시간을 야구 경기의 2:30 PM 시작 시간 및 5:00 PM 종료 시간과 비교하여 3:00 PM이 2:30 PM과 5:00 PM 사이에 속한다는 것을 결정할 수도 있고, 따라서, 중첩을 발견한다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 제1 타입의 표시자에 의해, 제1 부분의 미디어 자산 식별자를 제2 부분의 미디어 자산 식별자와는 시각적으로 구별할 수도 있고, 제1 미디어 자산 식별자를 제2 타입의 표시자를 갖는 제2 미디어 자산 식별자와는 시각적으로 구별할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 비즈니스 미팅과 중첩하는 미디어 자산에 대응하는 미디어 자산 식별자 및 스케줄링된 운동 세션에 대응하는 미디어 자산 식별자를, 디스플레이를 위해, 생성할 수도 있고, 중첩을 나타내는 아이콘(즉, 한 타입의 표시자)을 그들 둘 다에게 할당할 수도 있다. 그러나, 아이콘은 비즈니스 미팅에 대응하는 미디어 자산 식별자에 대해서는 적색일 수도 있고, 스케줄링된 운동 세션에 대응하여 녹색(즉, 제2 타입의 표시자)일 수도 있다. 몇몇 실시형태에서, 표시자의 타입은 컬러, 음영, 아이콘, 시각적 단서(visual queue), 청각적 단서(audio queue), 등등을 포함할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 유저가 소비하려고 계획하고 있는 미디어 자산의 전송 시간에 대응하는 새로운 스케줄링된 이벤트를 생성하기 위한 옵션을 유저에게 제공할 수도 있다. 구체적으로, 미디어 안내 애플리케이션은, 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 제1 미디어 자산 식별자와 관련되는 제1 미디어 자산에 대응하는 새로운 이벤트를 생성하기 위한 옵션을, 디스플레이를 위해, 생성할 수도 있다. 미디어 안내 애플리케이션은, 옵션의 유저 선택에 응답하여, 제1 미디어 자산의 미디어 자산 시작 시간 및 미디어 자산 종료 시간에 각각 대응하는 이벤트 시작 시간 및 이벤트 종료 시간을 갖는 새로운 이벤트를 생성할 수도 있다. 미디어 안내 애플리케이션은 새로운 이벤트를 캘린더 애플리케이션으로 전송할 수도 있다. 예를 들면, 유저가 7 PM과 10 PM 사이에 전송되도록 스케줄링되어 있는 농구 경기를 보기를 소망하는 경우, 미디어 안내 애플리케이션은, 농구 경기와 관련되는 미디어 자산 식별자를 유저가 선택하는 것에 응답하여, 새로운 이벤트를 생성하기 위한 옵션을 유저에게 제공할 수도 있다. 일단 미디어 안내 애플리케이션이 새로운 이벤트를 생성하기 위한 옵션의 유저 선택을 수신하면, 미디어 안내 애플리케이션은 이벤트를 생성하고 새로운 이벤트를 캘린더 애플리케이션으로 전송하기 위한 루틴을 실행할 수도 있다. 몇몇 실시형태에서, 미디어 안내 애플리케이션은, 이벤트를 캘린더 애플리케이션으로 전송하기 전에, 유저가 새롭게 생성된 이벤트를 편집하는 것을 가능하게 할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은 유저가 미디어 자산을 소비하도록 다른 유저를 초대하는 것을 가능하게 할 수도 있다. 구체적으로, 미디어 안내 애플리케이션은, 캘린더 애플리케이션으로부터, 상이한 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터를 수신할 수도 있다. 상이한 유저와 관련되는 캘린더 데이터는, 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함할 수도 있다. 제2 복수의 미디어 자산의 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 미디어 안내 애플리케이션은, 제1 미디어 자산 식별자와 관련되는 미디어 자산의 전송 시간이, 이벤트 시간 간격 중, 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하는지의 여부를 결정할 수도 있다. 제1 미디어 자산 식별자와 관련되는 미디어 자산이 이벤트 시간 간격 중, 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하지 않는다는 것을 결정하는 것에 기초하여, 미디어 안내 애플리케이션은, 제1 미디어 자산 식별자와 관련되는 미디어 자산을 소비하도록 상이한 유저를 초대하기 위한 옵션을, 디스플레이를 위해, 생성할 수도 있다.
예를 들면, 유저는, 유저가 소비하려고 계획하고 있는 동일한 미디어 자산을 소비하도록 그의 또는 그녀의 배우자 또는 친구를 초대하기를 원할 수도 있다. 미디어 안내 애플리케이션은 유저의 친구 또는 배우자와 관련되는 유저 식별자(예를 들면, 이메일 주소)를 제공하는 입력을 유저로부터 수용할 수도 있다. 미디어 안내 애플리케이션은 친구 또는 배우자와 관련되는 캘린더 데이터를 검색할 수도 있고, 그 다음, 미디어 자산의 전송 동안 친구 또는 배우자가 사전 약속이 있는지의 여부를 결정할 수도 있다. 캘린더 데이터에 기초하여 사전 약속이 발견되지 않으면, 미디어 안내 애플리케이션은, 미디어 자산을 소비하도록 유저의 친구 또는 배우자를 초대하기 위한 옵션을 유저에게 제공할 수도 있다. 미디어 안내 애플리케이션은, 이메일, 캘린더 초대, 단문 메시지 서비스(Short Message Service; "SMS") 메시지 또는 임의의 다른 방법을 통해 초대장을 전송할 수도 있다. 미디어 안내 애플리케이션은 다른 유저의 캘린더의 전체적인 세부 사항에 액세스할 수 없을 수도 있다는 것; 따라서, 미디어 안내 애플리케이션은 다른 유저와 관련되는 약속 유/무 정보만을 검색할 수도 있다는 것을 유의해야 한다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은 특정 미디어 자산을 소비하도록 스케줄링되는 유저의 "친구"의 리스트를, 디스플레이를 위해, 생성할 수도 있다. 구체적으로, 미디어 안내 애플리케이션은, 소셜 네트워킹 애플리케이션과 관련되는 서버로부터, 유저의 친구와 관련되는 복수의 유저 식별자를 검색할 수도 있다. 미디어 안내 애플리케이션은, 복수의 유저 식별자 내의 각각의 유저 식별자에 대해, 각각의 친구와 관련되는 복수의 이벤트에 대한 캘린더 데이터를 검색할 수도 있다. 캘린더 데이터는, 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함할 수도 있다. 상기에서 논의되는 바와 같이, 이 경우, 미디어 안내 애플리케이션은 친구의 캘린더 정보의 전체적인 세부 사항에 액세스할 수 없을 수도 있고 오직 약속 유/무 데이터만을 검색할 수도 있다. 제2 복수의 미디어 자산 식별자의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 미디어 안내 애플리케이션은, 제1 미디어 자산 식별자에 대응하는 미디어 자산을 소비하도록 스케줄링되어 있는 유저의 친구와 관련되는 하나 이상의 유저 식별자를, 디스플레이를 위해, 생성할 수도 있다.
예를 들면, 특정 쇼(예를 들면, 대통령 토론)를 보도록 또는 녹화하도록 스케줄링되어 있는 그의 친구의 리스트를 (예를 들면, 소셜 네트워킹 애플리케이션으로부터) 유저에게 제공하는 것이 바람직할 수도 있다. 미디어 안내 애플리케이션은, 대통령 토론과 관련되는 미디어 자산 식별자의 선택을 유저로부터 수신할 수도 있다. 미디어 안내 애플리케이션은, 대통령 토론을 보도록 또는 그것을 녹화하도록 스케줄링되어 있는 유저의 친구의 리스트를 소셜 네트워킹 애플리케이션으로부터, 디스플레이를 위해, 생성할 수도 있다.
도 1은, 본 개시의 몇몇 실시형태에 따른, 미디어 안내 애플리케이션 목록 및 다른 미디어 안내 정보를 제공하기 위해 사용될 수도 있는 디스플레이 스크린의 예시적인 실시형태를 도시한다;
도 2는, 본 개시의 몇몇 실시형태에 따른, 미디어 안내 애플리케이션 목록을 제공하기 위해 사용될 수도 있는 디스플레이 스크린의 다른 예시적인 실시형태를 도시한다;
도 3은, 본 개시의 몇몇 실시형태에 따른, 예시적인 디바이스의 블록도이다;
도 4는, 본 개시의 몇몇 실시형태에 따른, 예시적인 미디어 시스템의 블록도이다;
도 5는, 본 개시의 몇몇 실시형태에 따른, 적어도 하나의 이벤트와 중첩하는 미디어 자산에 대응하는 미디어 자산 식별자를, 적어도 하나의 이벤트와 중첩하지 않는 미디어 자산에 대응하는 미디어 자산 식별자와 시각적으로 구별함에 있어서 수반되는 예시적인 프로세스를 묘사한다;
도 6은, 본 개시의 몇몇 실시형태에 따른, 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터를 수신함에 있어서 수반되는 예시적인 프로세스를 묘사한다;
도 7은, 본 개시의 몇몇 실시형태에 따른, 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터를 수신함에 있어서 수반되는 예시적인 의사 코드(pseudo-code)를 묘사한다;
도 8은, 본 개시의 몇몇 실시형태에 따른, 캘린더 이벤트와 중첩하는 미디어 자산을 식별함에 있어서 수반되는 예시적인 프로세스를 묘사한다;
도 9는, 본 개시의 몇몇 실시형태에 따른, 캘린더 이벤트와 중첩하는 미디어 자산을 식별함에 있어서 수반되는 예시적인 의사 코드를 묘사한다;
도 10은, 본 개시의 몇몇 실시형태에 따른, 적절한 미디어 자산 식별자 데이터베이스 엔트리와 함께 충돌 표시자를 저장함에 있어서 수반되는 예시적인 프로세스를 묘사한다;
도 11은, 본 개시의 몇몇 실시형태에 따른, 적절한 미디어 자산 식별자 데이터베이스 엔트리와 함께 충돌 표시자를 저장함에 있어서 수반되는 예시적인 의사 코드를 묘사한다;
도 12는, 본 개시의 몇몇 실시형태에 따른, 유저의 캘린더 이벤트와 중첩하는 미디어 자산에 대응하는 미디어 자산 식별자를 시각적으로 구별하면서, 미디어 자산 식별자를, 디스플레이를 위해, 생성함에 있어서 수반되는 예시적인 프로세스를 묘사한다;
도 13은, 본 개시의 몇몇 실시형태에 따른, 유저의 캘린더 이벤트와 중첩하는 미디어 자산에 대응하는 미디어 자산 식별자를 시각적으로 구별하면서, 미디어 자산 식별자를, 디스플레이를 위해, 생성함에 있어서 수반되는 예시적인 의사 코드를 묘사한다; 그리고
도 14는, 본 개시의 몇몇 실시형태에 따른, 유저의 캘린더 이벤트와 중첩하는 미디어 자산에 대응하는 미디어 자산 식별자가, 유저의 캘린더 이벤트와 중첩하지 않는 미디어 자산에 대응하는 미디어 자산 식별자와는 시각적으로 구별되는 스크린의 예시를 묘사한다.
유저가 유저의 약속과 중첩하는 미디어 자산을, 유저의 약속과 중첩하지 않는 미디어 자산과 구별하는 것을 가능하게 하는 미디어 안내 애플리케이션이 본원에서 설명된다. 구체적으로, 미디어 안내 애플리케이션은, 유저의 캘린더 데이터(예를 들면, 유저의 캘린더 약속)에 액세스하여 그 캘린더 애플리케이션으로부터 유저의 캘린더 데이터를 수신할 수도 있다. 미디어 안내 애플리케이션은, 임의의 중첩이 존재하는지의 여부를 결정하기 위해, 유저의 캘린더 데이터를 미디어 자산 스케줄링 데이터와 비교할 수도 있다. 각각의 중첩하는 미디어 자산에 대해, 미디어 안내 애플리케이션은 충돌 표시자를 저장할 수도 있다. 미디어 안내 애플리케이션은, 적어도 하나의 캘린더 약속과 중첩하는 미디어 자산 식별자가 임의의 캘린더 약속과 중첩하지 않는 미디어 자산 식별자와는 시각적으로 구별되는 미디어 자산 식별자(예를 들면, 프로그램 목록)의 세트를, 디스플레이를 위해, 생성할 수도 있다.
또한, 미디어 안내 애플리케이션은 상이한 우선 순위의 이벤트와 중첩하는 미디어 자산 식별자 사이를 시각적으로 구별할 수도 있다. 이들 경우에, 미디어 안내 애플리케이션은, 하나의 시각적 표시자를 갖는 하나의 우선 순위의 이벤트와 중첩하는 미디어 자산에 대응하는 미디어 자산 식별자 및 제2 시각적 표시자를 갖는 제2 우선 순위의 이벤트와 중첩하는 미디어 자산에 대응하는 미디어 자산 식별자를, 디스플레이를 위해, 생성할 수도 있다. 미디어 안내 애플리케이션은, 유저가, 낮은 우선 순위 이벤트와 중첩하는 미디어 자산을 재스케줄링하는 것을 가능하게, 그러나 높은 우선 순위 이벤트와 중첩하는 미디어 자산을 재스케줄링하는 것을 가능하지 않게 할 수도 있다.
미디어 안내 애플리케이션은 또한, 유저가 소비하고자 하는 미디어 자산에 기초하여 새로운 캘린더 이벤트를 생성하는 것을 가능하게 할 수도 있다. 미디어 안내 애플리케이션은 유저의 캘린더 애플리케이션으로 이벤트를 전송하여, 유저가 그의/그녀의 캘린더에서 이벤트를 보는 것을 가능하게 할 수도 있다. 미디어 안내 애플리케이션은, 유저가 미디어 자산을 소비하도록 다른 유저를 초대하는 것을 가능하게 할 수도 있다. 또한, 미디어 안내 애플리케이션은, 유저의 친구 중 어떤 친구가 특정한 미디어 자산을 소비하려고 또는 녹화하려고 계획하고 있는지를 유저가 아는 것을 가능하게 할 수도 있다.
임의의 주어진 콘텐츠 전달 시스템에서 유저가 이용 가능한 콘텐츠의 양은 상당할 수 있다. 결과적으로, 많은 유저는, 유저가 콘텐츠 셀렉션을 효율적으로 탐색하는 것 및 그들이 소망할 수도 있는 콘텐츠를 쉽게 식별하는 것을 허용하는 인터페이스를 통한 미디어 안내의 형태를 소망한다. 이러한 안내를 제공하는 애플리케이션은 본원에서는 상호 작용식 미디어 안내 애플리케이션으로, 때로는, 미디어 안내 애플리케이션 또는 안내 애플리케이션으로 칭해진다.
상호 작용식 미디어 안내 애플리케이션은, 그들이 안내를 제공하는 콘텐츠에 따라 다양한 형태를 취할 수도 있다. 하나의 통상적인 타입의 미디어 안내 애플리케이션은 상호 작용식 텔레비전 프로그램 가이드이다. 상호 작용식 텔레비전 프로그램 가이드(종종 전자 프로그램 가이드로 칭해짐)는, 다른 것들 중에서도, 유저가 많은 타입의 콘텐츠 또는 미디어 자산 사이에서 탐색하는 것 및 많은 타입의 콘텐츠 또는 미디어 자산의 위치를 결정하는 것을 허용하는 널리 알려진 안내 애플리케이션이다. 상호 작용식 미디어 안내 애플리케이션은, 유저가 콘텐츠 사이를 탐색하고, 콘텐츠의 위치를 결정하고, 콘텐츠를 선택하는 것을 가능하게 하는 그래픽 유저 인터페이스 스크린을 생성할 수도 있다. 본원에서 언급되는 바와 같이, 용어 "미디어 자산" 및 "콘텐츠"는, 텔레비전 프로그램뿐만 아니라, 유료 시청(pay-per-view) 프로그램, (주문형 비디오(video-on-demand; VOD) 시스템에서와 같은) 주문형 프로그램(on-demand program), 인터넷 콘텐츠(예를 들면, 스트리밍 콘텐츠, 다운로드 가능한 콘텐츠, 웹 캐스트, 등등), 비디오 클립, 오디오, 콘텐츠 정보, 그림, 회전 이미지, 문서, 재생 목록, 웹사이트, 기사, 서적, 전자책, 블로그, 채팅 세션, 소셜 미디어, 애플리케이션, 게임, 및/또는 임의의 다른 미디어 또는 멀티미디어 및/또는 이들의 조합과 같은 전자적으로 소비 가능한 유저 자산을 의미하는 것으로 이해되어야 한다. 안내 애플리케이션은, 유저가 콘텐츠 사이를 탐색하는 것 및 콘텐츠의 위치를 결정하는 것을 허용한다. 본원에서 언급되는 바와 같이, 용어 "멀티미디어"는, 상기에서 설명되는 적어도 두 개의 상이한 콘텐츠 형태, 예를 들면, 텍스트, 오디오, 이미지, 비디오, 또는 상호 작용식 콘텐츠 형태를 활용하는 콘텐츠를 의미하는 것으로 이해되어야 한다. 콘텐츠는 유저 기기 디바이스에 의해 녹화, 재생, 디스플레이 또는 액세스될 수도 있지만, 그러나 또한 라이브 공연의 일부일 수 있다.
본원에서 논의되는 실시형태 중 임의의 것을 수행하기 위한 임의의 명령어 및/또는 미디어 안내 애플리케이션은, 컴퓨터 판독 가능 매체 상에 인코딩될 수도 있다. 컴퓨터 판독 가능 매체는 데이터를 저장할 수 있는 임의의 매체를 포함한다. 컴퓨터 판독 가능 매체는, 전기 신호 또는 전자기 신호를 전파하는 것을 포함하지만 그러나 이것으로 제한되지는 않는 일시적인 것일 수도 있거나, 또는 휘발성 및 불휘발성 컴퓨터 메모리 또는 스토리지 디바이스 예컨대 하드 디스크, 플로피 디스크, USB 드라이브, DVD, CD, 미디어 카드, 레지스터 메모리, 프로세서 캐시, 랜덤 액세스 메모리(Random Access Memory; "RAM"), 등등을 포함하는, 그러나 이들로 제한되지는 않는 비일시적인 것일 수도 있다.
인터넷, 모바일 컴퓨팅, 및 고속 무선 네트워크의 출현으로, 유저는, 그들이 전통적으로는 하지 않았던 유저 기기 디바이스 상에서 미디어에 액세스하고 있다. 본원에서 언급되는 바와 같이, 어구 "유저 기기 디바이스", "유저 기기", "유저 디바이스", "전자 디바이스", "전자 기기", "미디어 기기 디바이스, "또는 "미디어 디바이스"는, 상기에서 설명되는 콘텐츠에 액세스하기 위한 임의의 디바이스, 예컨대 텔레비전, 스마트 TV, 셋톱 박스, 위성 텔레비전을 핸들링하기 위한 통합 수신기 디코더(integrated receiver decoder; IRD), 디지털 스토리지 디바이스, 디지털 미디어 수신기(digital media receiver; DMR), 디지털 미디어 어댑터(digital media adapter; DMA), 스트리밍 미디어 디바이스, DVD 플레이어, DVD 레코더, 연결된 DVD, 로컬 미디어 서버, BLU-RAY(블루레이) 플레이어, BLU-RAY 레코더, 퍼스널 컴퓨터(personal computer; PC), 랩탑 컴퓨터 , 태블릿 컴퓨터, WebTV 박스, 퍼스널 컴퓨터 텔레비전(personal computer television; PC/TV), PC 미디어 서버, PC 미디어 센터, 핸드헬드 컴퓨터, 고정식 전화기, 개인 휴대 정보 단말기(personal digital assistant; PDA), 이동 전화 , 휴대용 비디오 플레이어, 휴대용 뮤직 플레이어, 휴대용 게임기, 스마트 폰, 또는 임의의 다른 텔레비전 기기, 컴퓨팅 기기, 또는 무선 디바이스, 및/또는 이들의 조합을 의미하는 것으로 이해되어야 한다. 몇몇 실시형태에서, 유저 기기 디바이스는 전면 대향 스크린 및 후면 대향 스크린, 다수의 전면 스크린, 또는 다수의 경사진 스크린(angled screen)을 구비할 수도 있다. 몇몇 실시형태에서, 유저 기기 디바이스는 전면 대향 카메라 및/또는 후면 대향 카메라를 구비할 수도 있다. 이들 유저 기기 디바이스 상에서, 유저는 텔레비전을 통해 이용 가능한 동일한 콘텐츠를 탐색하고 그 동일한 콘텐츠의 위치를 결정할 수도 있다. 결과적으로, 미디어 안내는 이들 디바이스 상에서도 또한 이용 가능할 수도 있다. 제공되는 안내는, 텔레비전을 통해서만 이용 가능한 콘텐츠에 대한 것일 수도 있거나, 다른 타입의 유저 기기 디바이스 중 하나 이상을 통해서만 이용 가능한 콘텐츠에 대한 것일 수도 있거나, 또는 다른 타입의 유저 기기 디바이스 중 하나 이상 및 텔레비전 양자를 통해 이용 가능한 콘텐츠에 대한 것일 수도 있다. 미디어 안내 애플리케이션은 온라인 애플리케이션(즉, 웹 사이트 상에서 제공됨)으로서, 또는 유저 기기 디바이스 상의 클라이언트 또는 독립형 애플리케이션으로서 제공될 수도 있다. 미디어 안내 애플리케이션을 구현할 수도 있는 다양한 디바이스 및 플랫폼이 이하에서 더욱 상세하게 설명된다.
미디어 안내 애플리케이션의 기능 중 하나는, 미디어 안내 데이터를 유저에게 제공하는 것이다. 본원에서 언급되는 바와 같이, 어구 "미디어 안내 데이터" 또는 "안내 데이터"는, 안내 애플리케이션을 동작시킴에 있어서 사용되는 데이터 또는 콘텐츠에 관련되는 임의의 데이터를 의미하는 것으로 이해되어야 한다. 예를 들면, 안내 데이터는, 프로그램 정보, 안내 애플리케이션 설정, 유저 선호도, 유저 프로파일 정보, 미디어 목록, 미디어 관련 정보(예를 들면, 방송 시간, 방송 채널, 제목, 설명, 등급 정보(예를 들면, 자녀 보호 등급(parental control rating), 평론가의 등급, 등등), 장르 또는 카테고리 정보, 배우 정보, 방송국의 또는 공급자의 로고에 대한 로고 데이터, 등등), 미디어 포맷(예를 들면, 표준 화질(standard definition), 고화질(high definition), 3D, 등등), 주문형 정보, 블로그, 웹사이트, 및 유저가 소망하는 콘텐츠 셀렉션을 탐색하고 콘텐츠 셀렉션의 위치를 결정하는 데 도움이 되는 임의의 다른 타입의 안내 데이터를 포함할 수도 있다.
도 1 및 도 2은 미디어 안내 데이터를 제공하기 위해 사용될 수도 있는 예시적인 디스플레이 스크린을 도시한다. 도 1 및 도 2에서 도시되는 디스플레이 스크린은 임의의 적절한 유저 기기 디바이스 또는 플랫폼 상에서 구현될 수도 있다. 도 1 및 도 2의 디스플레이가 전체 스크린 디스플레이로서 예시되지만, 이들은 디스플레이되고 있는 콘텐츠 위에 전체적으로 또는 부분적으로 중첩될 수도 있다. 유저는, 디스플레이 스크린에서 제공되는 선택 가능한 옵션(예를 들면, 메뉴 옵션, 목록 옵션, 아이콘, 하이퍼링크, 등등)을 선택하는 것에 의해 또는 리모콘 또는 다른 유저 입력 인터페이스 또는 디바이스 상의 전용 버튼(예를 들면, GUIDE 버튼)을 누르는 것에 의해, 콘텐츠 정보에 액세스하려는 소망을 나타낼 수도 있다. 유저의 표시에 응답하여, 미디어 안내 애플리케이션은, 그리드 모양의 채널 및 시간별, 시간별, 채널별, 소스별, 콘텐츠 타입별, 카테고리(예를 들면, 영화, 스포츠, 뉴스, 어린이, 또는 다른 카테고리의 프로그램)별, 캘린더별, 또는 다른 미리 정의된, 유저 정의의, 또는 다른 편제 기준과 같은 여러 가지 방식 중 하나로 편제되는 미디어 안내 데이터를 디스플레이 스크린에 제공할 수도 있다.
도 1은, 단일 디스플레이에서 상이한 타입의 콘텐츠에 대한 액세스를 또한 가능하게 하는, 시간 및 채널별로 배열되는 프로그램 목록 디스플레이(100)의 예시적인 그리드를 도시한다. 디스플레이(100)는 다음을 갖는 그리드(102)를 포함할 수도 있다: (1) 채널/콘텐츠 타입 식별자 - 각각의 채널/콘텐츠 타입 식별자(이것은 열(column) 내의 셀임)는 이용 가능한 상이한 채널 또는 콘텐츠 타입을 식별함 - 의 열(104); 및 (2) 시간 식별자 - 각각의 시간 식별자(이것은 행(row) 내의 셀임)는 프로그램의 시간 블록을 식별함 - 의 행(106). 그리드(102)는 또한 프로그램 목록(108)과 같은 프로그램 목록의 셀을 포함하는데, 여기서, 각각의 목록은 목록의 관련 채널 및 시간 상에 제공되는 프로그램의 제목을 제공한다. 유저 입력 디바이스를 사용하여, 유저는 하이라이트 영역(110)을 이동시키는 것에 의해 프로그램 목록을 선택할 수 있다. 하이라이트 영역(110)에 의해 선택되는 프로그램 목록에 관한 정보는 프로그램 정보 영역(112)에서 제공될 수도 있다. 영역(112)은, 예를 들면, 프로그램 제목, 프로그램 설명, 프로그램이 제공되는 시간(적용 가능한 경우), 프로그램이 방송되는 채널(적용 가능한 경우), 프로그램의 등급, 및 다른 소망하는 정보를 포함할 수도 있다.
선형적인 프로그램(예를 들면, 미리 결정된 시간에 복수의 유저 기기 디바이스로 전송되도록 스케줄링되고 스케줄에 따라 제공되는 콘텐츠)에 대한 액세스를 제공하는 것 이외에도, 미디어 안내 애플리케이션은 또한, 선형적이지 않은 프로그램(예를 들면, 임의의 시간에 유저 기기 디바이스가 액세스할 수 있는 그리고 스케줄에 따라 제공되지 않는 콘텐츠)에 대한 액세스를 제공한다. 선형적이지 않은 프로그램은, 주문형 콘텐츠(예를 들면, VOD), 인터넷 콘텐츠(예를 들면, 스트리밍 미디어, 다운로드 가능한 미디어, 등등), 로컬 저장 콘텐츠(예를 들면, 상기에서 설명되는 임의의 유저 기기 디바이스 또는 다른 스토리지 디바이스 상에 저장되어 있는 콘텐츠), 또는 다른 시간 독립적인 콘텐츠를 포함하는 상이한 콘텐츠 소스로부터의 콘텐츠를 포함할 수도 있다. 주문형 콘텐츠는 특정한 콘텐츠 공급자(예를 들면, "The Sopranos" 및 "Curb Your Enthusiasm"를 제공하는 HBO On Demand)에 의해 제공되는 임의의 다른 콘텐츠 또는 영화를 포함할 수도 있다. HBO ON DEMAND는 Time Warner Company L.P. 등등이 소유한 서비스 마크이며, THE SOPRANOS 및 CURB YOUR ENTHUSIASM은 Home Box Office, Inc.가 소유한 상표이다. 인터넷 콘텐츠는, 채팅 세션 또는 웹캐스트와 같은 웹 이벤트, 또는 인터넷 웹사이트 또는 다른 인터넷 액세스(예를 들면, FTP)를 통해 스트리밍 콘텐츠 또는 다운로드 가능한 콘텐츠로서 요청에 따라(on-demand) 이용 가능한 콘텐츠를 포함할 수도 있다.
그리드(102)는 주문형 목록(on-demand listing)(114), 녹화된 콘텐츠 목록(116), 및 인터넷 콘텐츠 목록(118)을 포함하는 선형적이지 않은 프로그램에 대한 미디어 안내 데이터를 제공할 수도 있다. 상이한 타입의 콘텐츠 소스로부터의 콘텐츠에 대해 미디어 안내 데이터를 결합하는 디스플레이는, 종종, "혼합 미디어" 디스플레이로 칭해진다. 디스플레이(100)와는 상이한, 디스플레이될 수도 있는 미디어 안내 데이터의 타입의 다양한 조합은, 유저 선택 또는 안내 애플리케이션 정의(예를 들면, 녹화된 및 방송된 목록만의, 주문형 및 방송 목록만의, 등등의 디스플레이)에 기초할 수도 있다. 예시되는 바와 같이, 목록(114, 116 및 118)은, 이들 목록의 선택이 주문형 목록, 녹화된 목록, 또는 인터넷 목록에 각각 전용되는 디스플레이에 대한 액세스를 제공할 수도 있다는 것을 나타내기 위해, 그리드(102)에서 디스플레이되는 전체 시간 블록에 걸쳐 확장하는 것으로 도시된다. 몇몇 실시형태에서, 이들 콘텐츠 타입에 대한 목록은 그리드(102)에 직접적으로 포함될 수도 있다. 추가적인 미디어 안내 데이터는, 유저가 네비게이션 아이콘(120) 중 하나를 선택하는 것에 응답하여 디스플레이될 수도 있다. (유저 입력 디바이스 상의 화살표 키를 누르는 것은, 네비게이션 아이콘(120)을 선택하는 것과 유사한 방식으로 디스플레이에 영향을 줄 수도 있다.)
디스플레이(100)는 또한 비디오 영역(122), 광고(124) 및 옵션 영역(126)을 포함할 수도 있다. 비디오 영역(122)은, 유저가 현재 이용 가능한, 이용 가능할, 또는 이용 가능했던 프로그램을 유저가 보는 것 및/또는 미리 보는 것을 허용할 수도 있다. 비디오 영역(122)의 콘텐츠는 그리드(102)에서 디스플레이되는 목록 중 하나의 목록에 대응할 수도 있거나, 또는 그 하나의 목록과는 독립적일 수도 있다. 비디오 영역을 포함하는 그리드 디스플레이는 픽쳐 인 가이드(picture-in-guide; PIG) 디스플레이로 칭해진다. PIG 디스플레이 및 그들의 기능성(functionality)은, 2003년 5월 13일자로 발행된 Satterfield 등등의 미국 특허 제6,564,378호 및 2001년 5월 29일자로 발행된 Yuen 등등의 미국 특허 제6,239,794호에서 상세히 설명되는데, 이들 특허는 참조에 의해 그 전체가 본원에 통합된다. PIG 디스플레이는 본원에서 설명되는 실시형태의 다른 미디어 안내 애플리케이션 디스플레이 스크린에 포함될 수도 있다.
광고(124)는, 뷰어(viewer)의 (예를 들면, 구독 프로그램에 대한) 액세스 권한에 따라, 현재 시청할 수 있는, 미래에 시청할 수 있을, 또는 절대 시청할 수 없을 수도 있는 콘텐츠에 대한 광고를 제공할 수도 있으며, 그리드(102) 내의 콘텐츠 목록 중 하나 이상에 대응할 수도 있거나 또는 그 하나 이상에 관련되지 않을 수도 있다. 광고(124)는 또한, 그리드(102)에서 디스플레이되는 콘텐츠에 관련되는 또는 그 콘텐츠와 무관한 제품 또는 서비스일 수도 있다. 광고(124)는 선택 가능할 수도 있으며, 콘텐츠에 관한 추가 정보를 제공할 수도 있고, 제품 또는 서비스에 관한 정보를 제공할 수도 있고, 콘텐츠, 제품 또는 서비스의 구매를 가능하게 할 수도 있고, 광고와 관련되는 콘텐츠를 제공할 수도 있고, 등등일 수도 있다. 광고(124)는 유저의 프로파일/선호도, 모니터링된 유저 활동, 제공되는 디스플레이의 타입, 또는 다른 적절한 타겟 광고 기반에 기초하여 타겟이 될 수도 있다.
광고(124)가 직사각형 또는 배너 형상으로 도시되어 있지만, 광고는 안내 애플리케이션 디스플레이에서 임의의 적절한 사이즈, 형상, 및 위치에서 제공될 수도 있다. 예를 들면, 광고(124)는 그리드(102)에 수평으로 인접한 직사각형 형상으로 제공될 수도 있다. 이것은, 종종, 패널 광고로 칭해진다. 또한, 광고는 콘텐츠 또는 안내 애플리케이션 디스플레이 위에 중첩될 수도 있거나 또는 디스플레이 내에 포함될 수도 있다. 광고는 또한, 텍스트, 이미지, 회전 이미지, 비디오 클립, 또는 상기에서 설명되는 다른 타입의 콘텐츠를 포함할 수도 있다. 광고는, 안내 애플리케이션을 갖는 유저 기기 디바이스 내에, 유저 기기에 연결되는 데이터베이스 내에, 원격 위치(스트리밍 미디어 서버를 포함함) 내에, 또는 다른 저장 수단 상에, 또는 이들 위치의 조합에 저장될 수도 있다. 미디어 안내 애플리케이션에서 광고를 제공하는 것은, 예를 들면, 2003년 1월 17일자로 출원된 Knudson 등등의 미국 특허 출원 공개 번호 제2003/0110499호; 2004년 6월 29일자로 발행된 Ward, III 등등의 미국 특허 제6,756,997호: 2002년 5월 14일자로 발행된 Schein 등등의 미국 특허 제6,388,714호에서 상세히 개시되어 있는데, 이들 문헌은 참조에 의해 그 전체가 본원에 통합된다. 광고는 본원에서 설명되는 실시형태의 다른 미디어 안내 애플리케이션 디스플레이 스크린에 포함될 수도 있다는 것이 인식될 것이다.
옵션 영역(126)은, 유저가 상이한 타입의 콘텐츠, 미디어 안내 애플리케이션 디스플레이, 및/또는 미디어 안내 애플리케이션 피쳐에 액세스하는 것을 허용할 수도 있다. 옵션 영역(126)은 디스플레이(100)(및 본원에서 설명되는 다른 디스플레이 스크린)의 일부일 수도 있거나, 또는 온 스크린(on-screen) 옵션을 선택하거나 또는 유저 입력 디바이스 상의 전용 또는 할당 가능한 버튼을 누르는 것에 의해, 유저에 의해 호출될 수도 있다. 옵션 영역(126) 내의 선택 가능한 옵션은 그리드(102) 내의 프로그램 목록에 관련되는 피쳐에 관련될 수도 있거나, 또는 메인 메뉴 디스플레이로부터 이용 가능한 옵션을 포함할 수도 있다. 프로그램 목록과 관련되는 피쳐는 다른 방송 시간을 검색을 검색하는 것 또는 프로그램 수신 방식, 프로그램 녹화, 프로그램의 일련의 녹화를 가능하게 하는 것, 프로그램 및/또는 채널을 즐겨찾기로 설정하는 것, 프로그램 구매, 또는 다른 피쳐를 포함할 수도 있다. 메인 메뉴 디스플레이로부터 이용 가능한 옵션은, 검색 옵션, VOD 옵션, 자녀 보호 옵션, 인터넷 옵션, 클라우드 기반 옵션, 디바이스 동기화 옵션, 제2 스크린 디바이스 옵션, 다양한 타입의 미디어 안내 데이터 디스플레이에 액세스하는 옵션, 프리미엄 서비스에 가입하는 옵션, 유저 프로파일 편집 옵션, 브라우저 오버레이에 액세스하는 옵션, 또는 다른 옵션을 포함할 수도 있다.
미디어 안내 애플리케이션은 유저의 선호도에 기초하여 개인 맞춤될 수도 있다. 개인 맞춤형 미디어 안내 애플리케이션은, 미디어 안내 애플리케이션을 사용하여 개인 맞춤된 "경험"을 생성하도록, 유저가 디스플레이 및 피쳐를 커스텀화하는 것을 허용한다. 이 개인 맞춤된 경험은, 유저가 이들 커스텀화를 입력하는 것을 허용하는 것에 의해 및/또는 미디어 안내 애플리케이션이 유저 활동을 모니터링하여 다양한 유저 선호도를 결정하는 것에 의해 생성될 수도 있다. 유저는, 안내 애플리케이션에 로그인하거나 또는 다르게는 자신을 안내 애플리케이션에 식별시키는 것에 의해, 그들의 개인 맞춤된 안내 애플리케이션에 액세스할 수도 있다. 미디어 안내 애플리케이션의 커스텀화는, 유저 프로파일에 따라 이루어질 수도 있다. 커스텀화는, 다양한 표시 스킴(presentation scheme)(예를 들면, 디스플레이의 컬러 스킴, 텍스트의 글꼴 사이즈, 등등), 디스플레이되는 콘텐츠 목록의 양태(예를 들면, HDTV 전용 또는 3D 프로그램 전용, 즐겨찾기 채널 선택에 기초한 유저 지정 방송 채널, 채널 디스플레이의 재배치, 추천 콘텐츠, 등등), 소망하는 녹화 피쳐(예를 들면, 특정한 유저에 대한 녹화 또는 일련의 녹화, 녹화 품질, 등등), 자녀 보호 설정, 인터넷 콘텐츠의 커스텀화된 표시(예를 들면, 소셜 미디어 콘텐츠, 전자 메일, 전자적으로 전달된 기사, 등등의 표시) 및 다른 소망하는 커스텀화를 포함할 수도 있다.
미디어 안내 애플리케이션은, 유저가 유저 프로파일 정보를 제공하는 것을 허용할 수도 있거나, 또는 유저 프로파일 정보를 자동적으로 수집할 수도 있다. 미디어 안내 애플리케이션은, 예를 들면, 유저가 액세스하는 콘텐츠 및/또는 유저가 안내 애플리케이션과 가질 수도 있는 다른 상호 작용을 모니터링할 수도 있다. 추가적으로, 미디어 안내 애플리케이션은, (예를 들면, www.allrovi.com과 같이 유저가 액세스하는 인터넷 상의 다른 웹 사이트로부터, 유저가 액세스하는 다른 미디어 안내 애플리케이션으로부터, 유저가 액세스하는 다른 상호 작용식 애플리케이션으로부터, 유저의 다른 유저 기기 디바이스로부터, 등등으로부터) 특정한 유저와 관련되는 다른 유저 프로파일의 전체 또는 일부를 획득할 수도 있고, 및/또는 미디어 안내 애플리케이션이 액세스할 수도 있는 다른 소스로부터 유저에 관한 정보를 획득할 수도 있다. 결과적으로, 유저는 유저의 상이한 유저 기기 디바이스에 걸쳐 통일된 안내 애플리케이션 경험을 제공 받을 수 있다. 이 타입의 유저 경험은 도 4와 연계하여 하기에서 상세히 설명된다. 추가적인 개인 맞춤된 미디어 안내 애플리케이션 피쳐는, 2005년 7월 11일자로 출원된 Ellis 등등의 미국 특허 출원 공개 공보 제2005/0251827호, 2007년 1월 16일자로 발행된 Boyer 등등의 미국 특허 제7,165,098호, 및 2002년 2월 21일자로 출원된 Ellis 등등의 미국 특허 출원 공개 공보 제2002/0174430호에서 상세히 개시되어 있는데, 이들 문헌은 참조에 의해 그 전체가 본원에 통합된다.
미디어 안내를 제공하기 위한 다른 디스플레이 장치(arrangement)가 도 2에 도시되어 있다. 비디오 모자이크 디스플레이(200)는, 콘텐츠 타입, 장르, 및/또는 다른 편제 기준에 기초하여 편제되는 콘텐츠 정보에 대한 선택 가능한 옵션(202)을 포함한다. 디스플레이(200)에서, 텔레비전 목록 옵션(204)이 선택되고, 따라서 방송 프로그램 목록으로서 목록(206, 208, 210 및 212)을 제공한다. 디스플레이(200)에서, 목록은 커버 아트, 콘텐츠로부터의 스틸 이미지, 비디오 클립 프리뷰, 콘텐츠로부터의 라이브 비디오, 또는 미디어 안내 데이터에 의해 설명되고 있는 콘텐츠를 목록에서 유저에게 나타내는 다른 타입의 콘텐츠를 포함하는 그래픽 이미지를 제공할 수도 있다. 그래픽 목록의 각각은 또한, 목록과 관련되는 콘텐츠에 대한 추가 정보를 제공하기 위해, 텍스트를 수반할 수도 있다. 예를 들면, 목록(208)은 미디어 부분(214) 및 텍스트 부분(216)을 포함하는 하나보다 많은 부분을 포함할 수도 있다. 미디어 부분(214) 및/또는 텍스트 부분(216)은 전체 스크린에서 콘텐츠를 보기 위해 또는 미디어 부분(214)에서 디스플레이되는 콘텐츠에 관련되는 정보를 보기 위해(예를 들면, 비디오가 디스플레이되는 채널에 대한 목록을 보기 위해) 선택 가능할 수도 있다.
디스플레이(200)에서의 목록은 상이한 사이즈를 가지지만(즉, 목록(206)은 목록(208, 210 및 212)보다 더 크지만), 그러나, 소망되는 경우, 모든 목록은 동일한 사이즈일 수도 있다. 목록은, 유저가 관심을 갖는 정도를 나타내기 위해 또는 소정의 콘텐츠를 강조하기 위해, 콘텐츠 공급자가 원하는 대로 또는 유저 선호도에 기초하여, 상이한 사이즈를 가질 수도 있거나 또는 그래픽적으로 강조될 수도 있다. 디스플레이(200)에서의 목록은 수신된 캘린더 데이터에 기초하여 그래픽적으로 강조될 수도 있다. 예를 들면, 높은 우선 순위의 이벤트와 중첩하는 미디어 자산에 대응하는 목록은 적색으로 디스플레이될 수도 있고, 한편 낮은 우선 순위 이벤트와 중첩하는 미디어 자산에 대응하는 목록은 녹색으로 디스플레이될 수도 있다. 몇몇 경우에, 이벤트와 중첩하는 미디어 자산에 대응하는 목록은, 중첩하지 않는 미디어 자산에 대응하는 목록과는 상이한 사이즈로 디스플레이될 수도 있거나 또는 강조될 수도 있다. 콘텐츠 목록을 그래픽적으로 강조하기 위한 다양한 시스템 및 방법은, 예를 들면, 2009년 11월 12일자로 출원된 Yates의 미국 특허 출원 공개 공보 제2010/0153885호에서 논의되는데, 이 출원 공개 공보는 참조에 의해 그 전체가 본원에 통합된다.
유저는, 자신의 유저 기기 디바이스 중 하나 이상으로부터 콘텐츠 및 미디어 안내 애플리케이션(및 상기 및 하기에서 설명되는 그것의 디스플레이 스크린)에 액세스할 수도 있다. 도 3은 예시적인 유저 기기 디바이스(300)의 일반화된 실시형태를 도시한다. 유저 기기 디바이스의 보다 구체적인 구현예는, 도 4와 연계하여 이하에서 논의된다. 유저 기기 디바이스(300)는 입력/출력(input/output)(이하, "I/O") 경로(302)를 통해 콘텐츠 및 데이터를 수신할 수도 있다. I/O 경로(302)는 콘텐츠(예를 들면, 방송 프로그램, 주문형 프로그램, 인터넷 콘텐츠, 근거리 통신망(local area network; LAN) 또는 광역 네트워크(wide area network; WAN)를 통해 이용 가능한 콘텐츠, 및/또는 다른 콘텐츠) 및 데이터를 제어 회로부(304)로 제공할 수도 있는데, 제어 회로부(304)는 프로세싱 회로부(306) 및 스토리지(308)를 포함한다. 제어 회로부(304)는 I/O 경로(302)를 사용하여 커맨드, 요청, 및 다른 적절한 데이터를 전송 및 수신하기 위해 사용될 수도 있다. I/O 경로(302)는 제어 회로부(304)(및 구체적으로는 프로세싱 회로부(306))를 하나 이상의 통신 경로(하기에 설명됨)에 연결할 수도 있다. I/O 기능은 이들 통신 경로 중 하나 이상에 의해 제공될 수도 있지만, 그러나 도면이 과도하게 복잡해지는 것을 피하기 위해, 도 3에서는 단일 경로로서 도시된다.
제어 회로부(304)는 프로세싱 회로부(306)와 같은 임의의 적절한 프로세싱 회로부에 기초할 수도 있다. 본원에서 언급되는 바와 같이, 프로세싱 회로부는, 하나 이상의 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세서, 프로그래머블 로직 디바이스, 필드 프로그래머블 게이트 어레이(field-programmable gate array; FPGA), 주문형 반도체(Application-Specific Integrated Circuit; ASIC), 등등을 기반으로 하는 회로부를 의미하는 것으로 이해되어야 하고, 다중 코어 프로세서(예를 들면, 듀얼 코어, 쿼드 코어, 헥사 코어, 또는 임의의 적절한 수의 코어) 또는 수퍼 컴퓨터를 포함할 수도 있다. 몇몇 실시형태에서, 프로세싱 회로부는, 다수의 별개의 프로세서 또는 프로세싱 유닛, 예를 들면, 다수의 동일한 타입의 프로세싱 유닛(예를 들면, 두 개의 인텔 코어 i7(Intel Core i7) 프로세서) 또는 다수의 상이한 프로세서(예를 들면, 인텔 코어 i5 프로세서 및 인텔 코어 i7 프로세서)에 걸쳐 분산될 수도 있다. 몇몇 실시형태에서, 제어 회로부(304)는 메모리(즉, 스토리지(308))에 저장되는 미디어 안내 애플리케이션에 대한 명령어를 실행한다. 구체적으로는, 제어 회로부(304)는 미디어 안내 애플리케이션에 의해 상기 및 하기에서 논의되는 함수를 수행하도록 지시 받을 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 미디어 안내 디스플레이를 생성하도록 제어 회로부(304)에게 명령어를 제공할 수도 있다. 몇몇 구현예에서, 제어 회로부(304)에 의해 수행되는 임의의 액션은 미디어 안내 애플리케이션으로부터 수신되는 명령어에 기초할 수도 있다.
클라이언트-서버 기반 실시형태에서, 제어 회로부(304)는 안내 애플리케이션 서버 또는 다른 네트워크 또는 서버와 통신하기에 적절한 통신 회로부를 포함할 수도 있다. 상기에서 언급된 기능성을 수행하기 위한 명령어는 안내 애플리케이션 서버 상에 저장될 수도 있다. 통신 회로부는, 케이블 모뎀, 통합 서비스 디지털 네트워크(Integrated Services Digital Network; ISDN) 모뎀, 디지털 가입자 회선(Digital Subscriber Line; DSL) 모뎀, 전화 모뎀, 이더넷 카드, 또는 다른 기기와의 통신을 위한 무선 모뎀, 또는 임의의 다른 적절한 통신 회로부를 포함할 수도 있다. 이러한 통신은 인터넷 또는 임의의 다른 적절한 통신 네트워크 또는 경로(이것은 도 4와 연계하여 더 상세하게 설명됨)를 수반할 수도 있다. 또한, 통신 회로부는, 유저 기기 디바이스의 피어 투 피어(peer-to-peer) 통신, 또는 서로 멀리 떨어져 있는 위치에 있는 유저 기기 디바이스의 통신(하기에서 더 상세히 설명됨)을 가능하게 하는 회로부를 포함할 수도 있다.
메모리는 제어 회로부(304)의 일부인 스토리지(308)로서 제공되는 전자 스토리지 디바이스일 수도 있다. 본원에서 언급되는 바와 같이, 어구 "전자 스토리지 디바이스" 또는 "스토리지 디바이스"는, 랜덤 액세스 메모리, 리드 온리 메모리, 하드 드라이브, 광학 드라이브, 디지털 비디오 디스크(digital video disc; DVD), 콤팩트 디스크(compact disc; CD) 레코더, BLU-RAY 디스크(BD) 레코더, BLU-RAY 3D 디스크 레코더, 디지털 비디오 레코더(digital video recorder)(DVR, 종종 개인용 비디오 레코더(personal video recorder), 또는 PVR로 칭해짐), 솔리드 스테이트 디바이스, 퀀텀 스토리지 디바이스(quantum storage device), 게임용 콘솔, 게임용 미디어, 또는 임의의 다른 적절한 고정식 또는 착탈식 스토리지 디바이스, 및/또는 이들의 임의의 조합과 같은, 전자 데이터, 컴퓨터 소프트웨어, 또는 펌웨어를 저장하기 위한 임의의 디바이스를 의미하는 것으로 이해되어야 한다. 스토리지(308)는 본원에서 설명되는 다양한 타입의 콘텐츠뿐만 아니라, 상기에서 설명되는 미디어 안내 데이터를 저장하기 위해 사용될 수도 있다. 스토리지(308)는 또한, 상기에서 설명되는 캘린더 애플리케이션으로부터 수신되는 캘린더 데이터를 저장하기 위해 사용될 수도 있다. (예를 들면, 부트업 루틴 및 다른 명령어를 론칭하기 위해) 불휘발성 메모리가 또한 사용될 수도 있다. 도 4와 관련하여 설명되는 클라우드 기반 스토리지는, 스토리지(308)를 보충하기 위해 또는 스토리지(308) 대신 사용될 수도 있다.
제어 회로부(304)는, 비디오 생성 회로부 및 튜닝 회로부, 예컨대 하나 이상의 아날로그 튜너, 하나 이상의 MPEG-2 디코더 또는 다른 디지털 디코딩 회로부, 고선명 튜너, 또는 임의의 다른 적절한 튜닝 또는 비디오 회로 또는 이러한 회로의 조합을 포함할 수도 있다. 또한, (예를 들면, 저장을 위해, 공중파, 아날로그 또는 디지털 신호를 MPEG 신호로 변환하기 위한) 인코딩 회로부가 제공될 수도 있다. 제어 회로부(304)는 또한, 콘텐츠를 유저 기기(300)의 선호되는 출력 포맷으로 상향 변환 및 하향 변환하기 위한 스케일러 회로부(scaler circuitry)를 포함할 수도 있다. 회로부(304)는 또한, 디지털 신호와 아날로그 신호 사이를 변환하기 위한 디지털 아날로그 변환기 회로부 및 아날로그 디지털 변환기 회로부를 포함할 수도 있다. 튜닝 및 인코딩 회로부는, 콘텐츠를 수신하여 디스플레이하기 위해, 재생하기 위해, 또는 녹화하기 위해, 유저 기기 디바이스에 의해 사용될 수도 있다. 튜닝 및 인코딩 회로부는 또한, 안내 데이터를 수신하기 위해 사용될 수도 있다. 예를 들면, 튜닝, 비디오 생성, 인코딩, 디코딩, 암호화, 암호해독, 스케일러, 및 아날로그/디지털 회로부를 비롯한, 본원에서 설명되는 회로부는, 하나 이상의 범용 또는 특수 프로세서 상에서 실행하는 소프트웨어를 사용하여 구현될 수도 있다. 동시적 튜닝 기능(예를 들면, 시청 및 녹화 기능, 픽쳐 인 픽쳐(picture-in-picture; PIP) 기능, 다중 튜너 녹화, 등등)을 핸들링하기 위해, 다수의 튜너가 제공될 수도 있다. 스토리지(308)가 유저 기기(300)와는 별개의 디바이스로서 제공되는 경우, 튜닝 및 인코딩 회로부(다수의 튜너를 포함함)는 스토리지(308)와 관련될 수도 있다.
유저는 유저 입력 인터페이스(310)를 사용하여 제어 회로부(304)로 명령어를 전송할 수도 있다. 유저 입력 인터페이스(310)는, 원격 제어, 마우스, 트랙볼, 키패드, 키보드, 터치 스크린, 터치 패드, 스타일러스 입력, 조이스틱, 음성 인식 인터페이스, 또는 다른 유저 입력 인터페이스와 같은 임의의 적절한 유저 인터페이스일 수도 있다. 디스플레이(312)는 독립형 디바이스로서 제공될 수도 있거나 또는 유저 기기 디바이스(300)의 다른 엘리먼트와 통합될 수도 있다. 예를 들면, 디스플레이(312)는 터치 스크린 또는 터치 감지 디스플레이일 수도 있다. 이러한 환경에서, 유저 입력 인터페이스(310)는 디스플레이(312)와 통합될 수도 있거나 또는 결합될 수도 있다. 디스플레이(312)는, 모니터, 텔레비전, 모바일 디바이스용 액정 디스플레이(liquid crystal display; LCD), 비정질 실리콘 디스플레이, 저온 폴리 실리콘 디스플레이, 전자 잉크 디스플레이, 전기영동 디스플레이(electrophoretic display), 액티브 매트릭스 디스플레이, 전자 습윤 디스플레이(electro-wetting display), 전기 유체 디스플레이(electrofluidic display), 음극선관 디스플레이, 발광 다이오드 디스플레이, 전자 발광 디스플레이, 플라즈마 디스플레이 패널, 고성능 어드레싱 디스플레이(high-performance addressing display), 박막 트랜지스터 디스플레이, 유기 발광 다이오드 디스플레이, 표면 전도 전자 방출 디스플레이(surface-conduction electron-emitter display; SED), 레이저 텔레비전, 탄소 나노 튜브, 퀀텀 닷 디스플레이(quantum dot display), 간섭계 변조기 디스플레이(interferometric modulator display), 또는 시각적 이미지를 디스플레이하기 위한 임의의 다른 적절한 기기 중 하나 이상일 수도 있다. 몇몇 실시형태에서, 디스플레이(312)는 HDTV에 대응할 수도 있다. 몇몇 실시형태에서, 디스플레이(312)는 3D 디스플레이일 수도 있고, 상호 작용식 미디어 안내 애플리케이션 및 임의의 적절한 콘텐츠는 3D로 디스플레이될 수도 있다. 비디오 카드 또는 그래픽 카드가 디스플레이(312)로의 출력을 생성할 수도 있다. 비디오 카드는, 3D 장면 및 2D 그래픽의 가속 렌더링, MPEG-2/MPEG-4 디코딩, TV 출력, 또는 다수의 모니터를 연결하는 성능과 같은 다양한 기능을 제공할 수도 있다. 비디오 카드는 제어 회로부(304)와 관련하여 상기에서 설명되는 임의의 프로세싱 회로부일 수도 있다. 비디오 카드는 제어 회로부(304)와 통합될 수도 있다. 스피커(314)는 유저 기기 디바이스(300)의 다른 엘리먼트와 통합된 것으로서 제공될 수도 있거나 또는 독립형 유닛일 수도 있다. 디스플레이(312) 상에 디스플레이되는 비디오 및 다른 콘텐츠의 오디오 성분은 스피커(314)를 통해 재생될 수도 있다. 몇몇 실시형태에서, 오디오는, 스피커(314)를 통해 오디오를 프로세싱 및 출력하는 수신기(도시되지 않음)로 분배될 수도 있다.
안내 애플리케이션은 임의의 적절한 아키텍쳐를 사용하여 구현될 수도 있다. 예를 들면, 그것은 유저 기기 디바이스(300) 상에서 전적으로 구현되는 독립형 애플리케이션일 수도 있다. 이러한 접근법에서, 애플리케이션의 명령어는 로컬하게(예를 들면, 스토리지(308)에) 저장되고, 애플리케이션에 의한 사용을 위한 데이터는 (예를 들면, 대역 외 피드로부터, 인터넷 리소스로부터, 또는 다른 적절한 접근법을 사용하여) 주기적 기반으로 다운로드된다. 제어 회로부(304)는 스토리지(308)로부터 애플리케이션의 명령어를 검색할 수도 있고 본원에서 논의되는 디스플레이 중 임의의 것을 생성하기 위해 명령어를 프로세싱할 수도 있다. 프로세싱된 명령어에 기초하여, 제어 회로부(304)는, 입력 인터페이스(310)로부터 입력이 수신될 때 어떤 액션을 수행할지를 결정할 수도 있다. 예를 들면, 디스플레이 상에서의 커서의 상/하 움직임은, 상/하 버튼이 선택되었다는 것을 입력 인터페이스(310)가 나타낼 때 프로세싱된 명령어에 의해 나타내어질 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은 클라이언트-서버 기반 애플리케이션이다. 유저 기기 디바이스(300) 상에서 구현되는 씩 클라이언트(thick client) 또는 씬 클라이언트(thin client )에 의한 사용을 위한 데이터는, 유저 기기 디바이스(300)에 대해 원격인 서버로 요청을 발행하는 것에 의해 요청에 따라 검색된다. 클라이언트-서버 기반 안내 애플리케이션의 하나의 예에서, 제어 회로부(304)는 원격 서버에 의해 제공되는 웹 페이지를 해석하는 웹 브라우저를 실행한다. 예를 들면, 원격 서버는 애플리케이션에 대한 명령어를 스토리지 디바이스에 저장할 수도 있다. 원격 서버는 회로부(예를 들면, 제어 회로부(304))를 사용하여 저장된 명령어를 프로세싱할 수도 있고 상기 및 하기에서 논의되는 디스플레이를 생성할 수도 있다. 클라이언트 디바이스는 원격 서버에 의해 생성되는 디스플레이를 수신할 수도 있고, 디스플레이의 콘텐츠를 기기 디바이스(300) 상에서 로컬하게 디스플레이할 수도 있다. 이러한 방식에서, 명령어의 프로세싱은 서버에 의해 원격으로 수행되고, 한편, 결과적으로 나타나는 디스플레이는 기기 디바이스(300) 상에서 로컬하게 제공된다. 기기 디바이스(300)는 입력 인터페이스(310)를 통해 유저로부터 입력을 수신할 수도 있고 대응하는 디스플레이를 프로세싱 및 생성하기 위해 이들 입력을 원격 서버로 전송할 수도 있다. 예를 들면, 기기 디바이스(300)는, 상/하 버튼이 입력 인터페이스(310)를 통해 선택되었다는 것을 나타내는 통신을 원격 서버로 전송할 수도 있다. 원격 서버는 그 입력에 따라 명령어를 프로세싱할 수 있고 입력에 대응하는 애플리케이션의 디스플레이(예를 들면, 커서를 상/하로 이동시키는 디스플레이)를 생성할 수도 있다. 그 다음, 생성된 디스플레이는, 유저에 대한 표시를 위해, 기기 디바이스(300)로 전송된다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은 인터프리터 또는 가상 머신(제어 회로부(304)에 의해 실행됨)에 의해 다운로드되고 해석되거나 또는 다르게는 실행된다. 몇몇 실시형태에서, 안내 애플리케이션은 ETV 바이너리 상호교환 포맷(ETV Binary Interchange Format; EBIF)으로 인코딩될 수도 있고, 적절한 피드의 일부로서 제어 회로부(304)에 의해 수신될 수도 있고, 제어 회로부(304) 상에서 실행하는 유저 에이전트에 의해 해석될 수도 있다. 예를 들면, 안내 애플리케이션은 EBIF 애플리케이션일 수도 있다. 몇몇 실시형태에서, 안내 애플리케이션은 제어 회로부(304)에 의해 실행되는 다른 적절한 미들웨어 또는 로컬 가상 머신에 의해 수신되고 실행되는 일련의 JAVA 기반 파일에 의해 정의될 수도 있다. 이러한 실시형태(예를 들면, MPEG-2 또는 다른 디지털 매체 인코딩 스킴을 활용하는 실시형태) 중 몇몇에서, 안내 애플리케이션은, 예를 들면, 인코딩되어 프로그램의 MPEG 오디오 및 비디오 패킷을 갖는 MPEG-2 객체 주기 전송(object carousel)에서 전송될 수도 있다.
도 3의 유저 기기 디바이스(300)는, 도 4의 시스템(400)에서 유저 텔레비전 기기(402), 유저 컴퓨터 기기(404), 무선 유저 통신 디바이스(406), 또는 콘텐츠에 액세스하는 데 적절한 임의의 다른 타입의 유저 기기, 예컨대 비 휴대용 게임용 머신으로서 구현될 수 있다. 간략화를 위해, 이들 디바이스는 본원에서 총칭하여 유저 기기 또는 유저 기기 디바이스로 지칭될 수도 있으며, 상기에서 설명되는 유저 기기 디바이스와 실질적으로 유사할 수도 있다. 미디어 안내 애플리케이션이 구현될 수도 있는 유저 기기 디바이스는 독립형 디바이스로서 기능할 수도 있고 또는 디바이스의 네트워크의 일부일 수도 있다. 디바이스의 다양한 네트워크 구성이 구현될 수도 있으며, 이하에서 더 상세하게 설명된다.
도 3과 연계하여 상기에서 설명되는 시스템 피쳐 중 적어도 일부를 활용하는 유저 기기 디바이스는, 오로지, 유저 텔레비전 기기(402), 유저 컴퓨터 기기(404), 또는 무선 유저 통신 디바이스(406)로 분류되지 않을 수도 있다. 예를 들면, 유저 텔레비전 기기(402)는, 몇몇 유저 컴퓨터 기기(404)처럼, 인터넷 콘텐츠에 대한 액세스를 허용하는 인터넷 대응일 수도 있고, 한편 유저 컴퓨터 기기(402)는, 몇몇 텔레비전 기기(404)처럼, 텔레비전 프로그램에 대한 액세스를 허용하는 튜너를 포함할 수도 있다. 미디어 안내 애플리케이션은 다양하고 상이한 타입의 유저 기기 상에서 동일한 레이아웃을 가질 수도 있거나 또는 유저 기기의 디스플레이 능력에 맞춰질 수도 있다. 예를 들면, 유저 컴퓨터 기기(404) 상에서, 안내 애플리케이션은 웹 브라우저에 의해 액세스되는 웹 사이트로서 제공될 수도 있다. 다른 예에서, 안내 애플리케이션은 무선 유저 통신 디바이스(406)에 대해 스케일 다운될 수도 있다.
시스템(400)에서, 통상적으로는, 하나 보다 많은 각각의 타입의 유저 기기 디바이스가 존재하지만, 그러나 도면을 과도하게 복잡하게 하는 것을 방지하기 위해, 도 4에서는 각각의 하나만이 도시된다. 또한, 각각의 유저는 하나보다 많은 타입의 유저 기기 디바이스 및 또한 하나보다 많은 각각의 타입의 유저 기기 디바이스를 활용할 수도 있다.
몇몇 실시형태에서, 유저 기기 디바이스(예를 들면, 유저 텔레비전 기기(402), 유저 컴퓨터 기기(404), 무선 유저 통신 디바이스(406))는 "제2 스크린 디바이스"로 칭해질 수도 있다. 예를 들면, 제2 스크린 디바이스는 제1 유저 기기 디바이스 상에 제시되는 콘텐츠를 보충할 수도 있다. 제2 스크린 디바이스 상에 제시되는 콘텐츠는 제1 디바이스 상에 제시되는 콘텐츠를 보충하는 임의의 적절한 콘텐츠일 수도 있다. 몇몇 실시형태에서, 제2 스크린 디바이스는, 제1 디바이스의 디스플레이 선호도 및 설정을 조정하기 위한 인터페이스를 제공한다. 몇몇 실시형태에서, 제2 스크린 디바이스는 다른 제2 스크린 디바이스와 상호 작용하도록 또는 소셜 네트워크와 상호 작용하도록 구성된다. 제2 스크린 디바이스는, 제1 디바이스와 동일한 방에, 동일한 집 또는 건물이지만 제1 디바이스와는 상이한 방에, 또는 제1 디바이스와는 상이한 건물에 위치될 수 있다.
유저는 또한, 가정용(in-home) 디바이스 및 원격 디바이스 전체에 걸쳐 일관된 미디어 안내 애플리케이션 설정을 유지하기 위해 다양한 설정을 설정할 수도 있다. 설정은, 본원에서 설명되는 것뿐만 아니라, 채널 및 프로그램 즐겨찾기, 프로그램 추천을 하기 위해 안내 애플리케이션이 활용하는 프로그램 선호도, 디스플레이 선호도, 및 다른 바람직한 안내 설정을 포함한다. 예를 들면, 유저가, 예를 들면, 자신의 사무실에 있는 그들의 개인용 컴퓨터 상에서 웹 사이트 www.allrovi.com에 대한 즐겨찾기로서 채널을 설정하면, 동일한 채널은 유저의 가정용 디바이스(예를 들면, 유저 텔레비전 기기 및 유저 컴퓨터 기기)뿐만 아니라, 소망되는 경우, 유저의 모바일 디바이스 상에서 즐겨찾기로서 나타날 것이다. 또한, 유저는 가정용 및 원격 디바이스에 걸쳐 캘린더 설정을 설정할 수도 있다. 예를 들면, 유저는 하나의 디바이스 상에서 그의/그녀의 캘린더 애플리케이션에 유저명, 패스워드, 등등을 입력할 수도 있고 그 정보는 다른 디바이스에 의해 검출 및 사용될 수도 있다. 따라서, 하나의 유저 기기 디바이스 상에서 이루어지는 변경은, 다른 유저 기기 디바이스 상에서, 그들이 동일한 타입의 유저 기기 디바이스인지 또는 상이한 타입의 유저 기기 디바이스인지의 여부에 관계없이, 안내 경험을 변경할 수 있다. 또한, 행해지는 변경은, 유저에 의해 입력되는 설정뿐만 아니라, 안내 애플리케이션에 의해 모니터링되는 유저 활동에 기초할 수도 있다.
유저 기기 디바이스는 통신 네트워크(414)에 커플링될 수도 있다. 즉, 유저 텔레비전 기기(402), 유저 컴퓨터 기기(404), 및 무선 유저 통신 디바이스(406)는, 각각, 통신 경로(408, 410 및 412)를 통해 통신 네트워크(414)에 커플링된다. 통신 네트워크(414)는, 인터넷, 이동 전화 네트워크, 모바일 음성 또는 데이터 네트워크(예를 들면, 4G 또는 LTE 네트워크), 케이블 네트워크, 공중 교환식 전화망, 또는 다른 타입의 통신 네트워크 또는 통신 네트워크의 조합을 포함하는 하나 이상의 네트워크일 수도 있다. 경로(408, 410, 및 412)는, 위성 경로, 광섬유 경로, 케이블 경로, 인터넷 통신(예를 들면, IPTV)을 지원하는 경로, (예를 들면, 방송 또는 다른 무선 신호를 위한) 자유 공간 연결, 또는 임의의 다른 적절한 유선 또는 무선 통신 경로 또는 이러한 경로의 조합과 같은 하나 이상의 통신 경로를, 개별적으로 또는 함께, 포함할 수도 있다. 경로(412)는 도 4에서 도시되는 예시적인 실시형태에서 무선 경로이다는 것을 나타내기 위해 점선으로 묘사되고, 경로(408 및 410)는 (비록 이들 경로가, 소망되는 경우, 무선 경로일 수도 있지만) 유선 경로이다는 것을 나타내기 위해 실선으로 묘사된다. 유저 기기 디바이스와의 통신은, 이들 통신 경로 중 하나 이상에 의해 제공될 수도 있지만, 그러나 도면이 과도하게 복잡해지는 것을 방지하기 위해, 도 4에서는 단일의 경로로서 도시된다.
비록 유저 기기 디바이스 사이에서 통신 경로가 묘사되지는 않지만, 이들 디바이스는 경로(408, 410, 및 412)와 연계하여 상기에서 설명되는 것과 같은 통신 경로뿐만 아니라, 다른 단거리의 점대점(point-to-point) 통신 경로, 예컨대 USB 케이블, IEEE 1394 케이블, 무선 경로(예를 들면, 블루투스, 적외선, IEEE 802-11x, 등등), 또는 유선 또는 무선 경로를 통한 다른 단거리 통신을 통해 서로 직접적으로 통신할 수도 있다. BLUETOOTH는 블루투스 SIG, INC가 소유한 인증 마크이다. 유저 기기 디바이스는 또한 통신 네트워크(414)를 통한 간접적인 경로를 통해 서로 직접적으로 통신할 수도 있다.
시스템(400)은 통신 경로(420 및 422)를 통해 통신 네트워크(414)에 각각 커플링되는 콘텐츠 소스(416) 및 미디어 안내 데이터 소스(418)를 포함한다. 경로(420 및 422)는 경로(408, 410 및 412)와 연계하여 상기에서 설명되는 통신 경로 중 임의의 것을 포함할 수도 있다. 콘텐츠 소스(416) 및 미디어 안내 데이터 소스(418)와의 통신은 하나 이상의 통신 경로를 통해 교환될 수도 있지만, 그러나 도면을 과도하게 복잡하게 하는 것을 방지하기 위해, 도 4에서는 단일의 경로로서 도시된다. 또한, 하나보다 많은 각각의 콘텐츠 소스(416) 및 미디어 안내 데이터 소스(418)가 존재할 수도 있지만, 그러나 도면을 과도하게 복잡하게 하는 것을 방지하기 위해, 도 4에서는 각각의 하나만이 도시된다. (이들 소스의 상이한 타입의 각각은 하기에서 논의된다.) 소망되는 경우, 콘텐츠 소스(416) 및 미디어 안내 데이터 소스(418)는 하나의 소스 디바이스로서 통합될 수도 있다. 비록 유저 기기 디바이스(402, 416, 및 406)와의 소스(418 및 414) 사이의 통신이 통신 네트워크(404)를 통하는 것으로 도시되지만, 몇몇 실시형태에서, 소스(402 및 416)는, 경로(408, 410, 412)와 연계하여 상기에서 설명되는 것과 같은 통신 경로(도시되지 않음)를 통해 유저 기기 디바이스(406, 404, 및 418)와 직접적으로 통신할 수도 있다.
텔레비전 분배 설비, 케이블 시스템 중계국(cable system headend), 위성 분배 설비, 프로그램 소스(예를 들면, NBC, ABC, HBO, 등등과 같은 텔레비전 방송국), 중간 분배 설비 및/또는 서버, 인터넷 공급자, 주문형 미디어 서버, 및 다른 콘텐츠 공급자를 포함하는 콘텐츠 소스(416)는 하나 이상의 타입의 콘텐츠 분배 기기를 포함할 수도 있다. NBC는 National Broadcasting Company, Inc. 소유의 상표이고, ABC는 American Broadcasting Company, Inc. 소유의 상표이며, HBO는 Home Box Office, Inc. 소유의 상표이다. 콘텐츠 소스(416)는 콘텐츠의 창작자(originator)(예를 들면, 텔레비전 방송국, 웹캐스트 공급자, 등등)일 수도 있거나 또는 콘텐츠의 창작자가 아닐 수도 있다(예를 들면, 주문형 콘텐츠 공급자, 다운로드용 방송 프로그램의 콘텐츠의 인터넷 공급자, 등등). 콘텐츠 소스(416)는, 케이블 소스, 위성 공급자, 주문형 공급자, 인터넷 공급자, 오버 더 톱(over-the-top) 콘텐츠 공급자, 또는 다른 콘텐츠 공급자를 포함할 수도 있다. 콘텐츠 소스(416)는 또한, 유저 기기 디바이스 중 임의의 것으로부터 원격의 위치에서 상이한 타입의 콘텐츠(유저에 의해 선택되는 비디오 콘텐츠를 포함함)를 저장하기 위해 사용되는 원격 미디어 서버를 포함할 수도 있다. 콘텐츠의 원격 저장을 위한, 그리고 원격으로 저장된 콘텐츠를 유저 기기에 제공하기 위한 시스템 및 방법은, 2010년 7월 20일자로 발행된 Ellis 등등의 미국 특허 제7,761,892호와 연계하여 상세히 논의되는데, 이 특허는 참조에 의해 그 전체가 본원에 통합된다.
미디어 안내 데이터 소스(418)는 상기에서 설명되는 미디어 안내 데이터와 같은 미디어 안내 데이터를 제공할 수도 있다. 미디어 안내 데이터는 임의의 적절한 접근법을 사용하여 유저 기기 디바이스로 제공될 수도 있다. 몇몇 실시형태에서, 안내 애플리케이션은, 데이터 피드(예를 들면, 연속하는 피드 또는 간헐적인 피드(trickle feed))를 통해 프로그램 가이드 데이터를 수신하는 독립형의 상호 작용식 텔레비전 프로그램 가이드일 수도 있다. 대역 내 디지털 신호를 사용하여, 대역 외 디지털 신호를 사용하여, 또는 임의의 다른 적절한 데이터 전송 기술에 의해, 프로그램 스케줄 데이터 및 다른 안내 데이터가 텔레비전 채널 측대역 상에서 유저 기기로 제공될 수도 있다. 다수의 아날로그 또는 디지털 텔레비전 채널 상에서, 프로그램 스케줄 데이터 및 다른 미디어 안내 데이터가 유저 기기로 제공될 수도 있다.
몇몇 실시형태에서, 미디어 안내 데이터 소스(418)로부터의 안내 데이터는 클라이언트-서버 접근법을 사용하여 유저 기기로 제공될 수도 있다. 예를 들면, 유저 기기 디바이스는 서버로부터 미디어 안내 데이터를 끌어낼 수도 있거나, 또는 서버가 미디어 안내 데이터를 유저 기기 디바이스로 푸시할 수도 있다. 몇몇 실시형태에서, 유저의 기기 상에 상주하는 안내 애플리케이션 클라이언트는, 필요시, 예를 들면, 안내 데이터가 날짜가 지난 경우 또는 유저 기기 디바이스가 유저로부터 데이터 수신 요청을 수신하는 경우, 안내 데이터를 획득하기 위해 소스 데이터(418)와의 세션을 개시할 수도 있다. 미디어 안내는, 임의의 적절한 빈도로(예를 들면, 연속적으로, 매일, 유저가 지정한 시간의 주기로, 시스템이 지정한 시간의 주기로, 유저 기기로부터의 요청에 응답하여, 등등으로) 유저 기기로 제공될 수도 있다. 미디어 안내 데이터 소스(418)는 유저 기기 디바이스(402, 404 및 406)에 미디어 안내 애플리케이션 그 자체 또는 미디어 안내 애플리케이션에 대한 소프트웨어 업데이트를 제공할 수도 있다.
몇몇 실시형태에서, 미디어 안내 데이터는 뷰어 데이터를 포함할 수도 있다. 예를 들면, 뷰어 데이터는, 현재 및/또는 이력적(historical) 유저 활동 정보(예를 들면, 유저가 일반적으로 어떤 콘텐츠를 시청하는지, 유저가 하루 중 어떤 시간에 콘텐츠를 시청하는지, 유저가 소셜 네트워크와 상호 작용하는지의 여부, 유저가 정보를 게시하기 위해 어떤 시간에 소셜 네트워크와 상호 작용하는지, 유저가 일반적으로 어떤 타입의 콘텐츠(예를 들면, 유료 TV 또는 무료 TV)를 시청하는지, 무드, 뇌 활동 정보, 등등)를 포함할 수도 있다. 미디어 안내 데이터는 가입 데이터를 포함할 수도 있다. 예를 들면, 가입 데이터는 주어진 유저가 가입하는 소스 또는 서비스가 어떤 것인지 및/또는 주어진 가입자가 이전에 가입했지만 나중에 액세스를 종료한 소스 또는 서비스가 어떤 것인지(예를 들면, 유저가 프리미엄 채널에 가입하는지의 여부, 유저가 프리미엄 레벨의 서비스를 추가했는지의 여부, 유저가 인터넷 속도를 증가시켰는지의 여부)를 식별할 수도 있다. 몇몇 실시형태에서, 뷰어 데이터 및/또는 가입 데이터는 1년 넘게 주어진 유저의 패턴을 식별할 수도 있다. 미디어 안내 데이터는, 주어진 유저가 서비스/소스에 대한 액세스를 종료할 가능성을 나타내는 스코어를 생성하기 위해 사용되는 모델(예를 들면, 생존자 모델(survivor model))을 포함할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은, 주어진 유저가 특정한 서비스 또는 소스에 대한 액세스를 종료할지의 여부의 가능성을 나타내는 값 또는 스코어를 생성하는 모델을 사용하여 가입 데이터와 함께 뷰어 데이터를 프로세싱할 수도 있다. 특히, 더 높은 스코어는, 유저가 특정한 서비스 또는 소스에 대한 액세스를 종료할 것이라는 높은 레벨의 신뢰도를 나타낼 수도 있다. 스코어에 기초하여, 미디어 안내 애플리케이션은, 유저가 액세스를 종료할 가능성이 있는 서비스 또는 소스로서 스코어에 의해 나타내어지는 특정한 서비스 또는 소스를 계속 유지하도록 유저를 부추기는 프로모션 및 광고를 생성할 수도 있다.
미디어 안내 애플리케이션은, 예를 들면, 유저 기기 디바이스 상에서 구현되는 독립형 애플리케이션일 수도 있다. 예를 들면, 미디어 안내 애플리케이션은, 스토리지(308)에 저장될 수도 있고, 유저 기기 디바이스(300)의 제어 회로부(304)에 의해 실행될 수도 있는 소프트웨어 또는 한 세트의 실행 가능한 명령어로서 구현될 수도 있다. 몇몇 실시형태에서, 미디어 안내 애플리케이션은, 클라이언트 애플리케이션만이 유저 기기 디바이스 상에 상주하고, 서버 애플리케이션이 원격 서버 상에 상주하는 클라이언트-서버 애플리케이션일 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 부분적으로는 유저 기기 디바이스(300)의 제어 회로부(304) 상에서 클라이언트 애플리케이션으로서 그리고 부분적으로는 원격 서버 상에서 원격 서버의 제어 회로부 상에서 실행하는 서버 애플리케이션(예를 들면, 미디어 안내 데이터 소스(418))으로서 구현될 수도 있다. (미디어 안내 데이터 소스(418)와 같은) 원격 서버의 제어 회로부에 의해 실행될 때, 미디어 안내 애플리케이션은, 안내 애플리케이션 디스플레이를 생성할 것을 그리고 생성된 디스플레이를 유저 기기 디바이스로 전송할 것을 제어 회로부에게 지시할 수도 있다. 서버 애플리케이션은, 유저 기기 상에서의 저장을 위해 데이터를 전송할 것을 미디어 안내 데이터 소스(418)의 제어 회로부에게 지시할 수도 있다. 클라이언트 애플리케이션은 안내 애플리케이션 디스플레이를 생성할 것을 수신 유저 기기의 제어 회로부에게 지시할 수도 있다.
유저 기기 디바이스(402, 404 및 406)로 전달되는 콘텐츠 및/또는 미디어 안내 데이터는 오버 더 톱(over-the-top; OTT) 콘텐츠일 수도 있다. OTT 콘텐츠 전달은, 상기에서 설명되는 임의의 유저 기기 디바이스를 비롯한, 인터넷 대응 유저 디바이스가, 케이블 또는 위성 연결을 통해 수신되는 콘텐츠 외에도, 상기에서 설명되는 임의의 콘텐츠를 비롯한, 인터넷을 통해 전송되는 콘텐츠를 수신하는 것을 허용한다. OTT 콘텐츠는 인터넷 서비스 공급자(Internet service provider; ISP)에 의해 제공되는 인터넷 연결을 통해 전달되지만, 그러나 써드파티가 콘텐츠를 배포한다. ISP는 콘텐츠의 시청 능력, 저작권, 또는 재배포에 대한 책임을 지지 않을 수도 있으며, OTT 콘텐츠 공급자에 의해 제공되는 IP 패킷만을 전송할 수도 있다. OTT 콘텐츠 공급자의 예는, IP 패킷을 통해 오디오 및 비디오를 제공하는 YOUTUBE(유튜브), NETFLIX(넷플릭스) 및 HULU(훌루)를 포함한다. 유튜브는 Google Inc. 소유의 상표이고, 넷플릭스는 Netflix Inc. 소유의 상표이며, 훌루는 Hulu, LLC 소유의 상표이다. OTT 콘텐츠 공급자는, 추가적으로 또는 대안적으로, 상기에서 설명되는 미디어 안내 데이터를 제공할 수도 있다. 콘텐츠 및/또는 미디어 안내 데이터 외에, OTT 콘텐츠의 공급자는 미디어 안내 애플리케이션(예를 들면, 웹 기반의 애플리케이션 또는 클라우드 기반의 애플리케이션)을 배포할 수 있거나, 또는 콘텐츠는 유저 기기 디바이스 상에 저장되는 미디어 안내 애플리케이션에 의해 디스플레이될 수 있다.
미디어 안내 시스템(400)은 다수의 접근법, 또는 네트워크 구성을 예시하도록 의도되는데, 콘텐츠에 액세스하고 미디어 안내를 제공하는 목적을 위해 유저 기기 디바이스 및 콘텐츠 및 안내 데이터의 소스는 다수의 접근법, 또는 네트워크 구성에 의해 서로 통신할 수도 있다. 본원에서 설명되는 실시형태는 이들 접근법 중 임의의 하나 또는 서브세트에서, 또는 콘텐츠를 전달하고 미디어 안내를 제공하기 위한 다른 접근법을 활용하는 시스템에서 적용될 수도 있다. 다음 네 가지 접근법은 도 4의 일반화된 예의 구체적인 예시를 제공한다.
하나의 접근법에서, 유저 기기 디바이스는 홈 네트워크 내에서 서로 통신할 수도 있다. 유저 기기 디바이스는, 상기에서 설명되는 단거리의 점대점 통신 스킴을 통해, 홈 네트워크 상에 제공되는 허브 또는 다른 유사한 디바이스를 통한 간접 경로를 통해, 또는 통신 네트워크(414)를 통해, 서로 직접적으로 통신할 수 있다. 단일의 가정 내의 다수의 개인의 각각은 홈 네트워크 상에서 상이한 유저 기기 디바이스를 조작할 수도 있다. 결과적으로, 다양한 미디어 안내 정보 또는 설정이 상이한 유저 기기 디바이스 사이에서 통신되는 것이 바람직할 수도 있다. 예를 들면, 2005년 7월 11일자로 출원된 Ellis 등등의 미국 특허 공개 공보 제2005/0251827호에서 상세히 설명되는 바와 같이, 유저가 홈 네트워크 내의 상이한 유저 기기 디바이스에 대해 일관된 미디어 안내 애플리케이션 설정을 유지하는 것이 바람직할 수도 있다. 홈 네트워크 내의 상이한 타입의 유저 기기 디바이스는 또한, 콘텐츠를 전송하도록 서로 통신할 수도 있다. 예를 들면, 유저는 유저 컴퓨터 기기로부터 휴대용 비디오 플레이어 또는 휴대용 음악 플레이어로 콘텐츠를 전송할 수도 있다.
제2 접근법에서, 유저는, 그들이 콘텐츠에 액세스하여 미디어 안내를 획득하는 다수의 타입의 유저 기기를 구비할 수도 있다. 예를 들면, 몇몇 유저는 가정용 디바이스 및 모바일 디바이스에 의해 액세스되는 홈 네트워크를 구비할 수도 있다. 유저는 원격 디바이스 상에서 구현되는 미디어 안내 애플리케이션을 통해 가정용 디바이스를 제어할 수도 있다. 예를 들면, 유저는 그들의 사무실의 개인 컴퓨터, 또는 PDA 또는 웹 대응 이동 전화와 같은 모바일 디바이스를 통해 웹 사이트 상의의 온라인 미디어 안내 애플리케이션에 액세스할 수도 있다. 유저는, 유저의 가정용 기기를 제어하기 위해, 온라인 안내 애플리케이션 상의 다양한 설정(예를 들면, 녹화, 리마인더, 또는 다른 설정)을 설정할 수도 있다. 온라인 가이드는 유저 기기를 직접적으로, 또는 유저의 가정용 기기 상의 미디어 안내 애플리케이션과 통신하는 것에 의해 제어할 수도 있다. 유저 기기 디바이스가 서로 멀리 떨어진 위치에 있는 경우, 유저 기기 디바이스가 통신하기 위한 다양한 시스템 및 방법은, 예를 들면, 2011년 10월 25일자로 발행된 Ellis 등등의 미국 특허 제8,046,801호에서 논의되는데, 이 특허는 참조에 의해 그 전체가 본원에 통합된다.
제3 접근법에서, 가정 내부 및 외부의 유저 기기 디바이스의 유저는, 콘텐츠 소스(416)와 직접적으로 통신하여 콘텐츠에 액세스하기 위해, 그들의 미디어 안내 애플리케이션을 사용할 수 있다. 구체적으로, 가정 내에서, 유저 텔레비전 기기(402) 및 유저 컴퓨터 기기(404)의 유저는, 소망하는 콘텐츠 사이를 탐색하고 소망하는 콘텐츠의 위치를 결정하기 위해, 미디어 안내 애플리케이션에 액세스할 수도 있다. 유저는 또한, 소망하는 콘텐츠 사이를 탐색하고 소망하는 콘텐츠의 위치를 결정하기 위해, 무선 유저 통신 디바이스(406)를 사용하여 가정 외부의 미디어 안내 애플리케이션에 액세스할 수도 있다.
제4 접근법에서, 유저 기기 디바이스는 클라우드 서비스에 액세스하기 위해 클라우드 컴퓨팅 환경에서 동작할 수도 있다. 클라우드 컴퓨팅 환경에서, 콘텐츠 공유, 저장 또는 배포를 위한 다양한 타입의 컴퓨팅 서비스(예를 들면, 비디오 공유 사이트 또는 소셜 네트워킹 사이트)는, "클라우드"로 칭해지는 네트워크 액세스 가능 컴퓨팅 및 스토리지 리소스의 집합(collection)에 의해 제공된다. 예를 들면, 클라우드는 통신 네트워크(414)를 통해 인터넷과 같은 네트워크를 통해 연결되는 다양한 타입의 유저 및 디바이스에게 클라우드 기반의 서비스를 제공하는, 중앙 집중식으로 또는 분산된 위치에 위치될 수도 있는 서버 컴퓨팅 디바이스의 집합을 포함할 수 있다. 이들 클라우드 리소스는 하나 이상의 콘텐츠 소스(416) 및 하나 이상의 미디어 안내 데이터 소스(418)를 포함할 수도 있다. 추가적으로 또는 대안적으로, 원격 컴퓨팅 사이트는 유저 텔레비전 기기(402), 유저 컴퓨터 기기(404), 및 무선 유저 통신 디바이스(406)와 같은 다른 유저 기기 디바이스를 포함할 수도 있다. 예를 들면, 다른 유저 기기 디바이스는 비디오의 저장된 사본 또는 스트리밍된 비디오에 대한 액세스를 제공할 수도 있다. 이러한 실시형태에서, 유저 기기 디바이스는 중앙 서버와 통신하지 않고 피어 투 피어 방식으로 동작할 수도 있다.
클라우드는, 유저 기기 디바이스에 대해, 다른 예 중에서도, 콘텐츠 저장, 콘텐츠 공유, 또는 소셜 네트워킹 서비스와 같은 서비스에 대한 액세스뿐만 아니라, 상기에서 설명되는 임의의 콘텐츠에 대한 액세스를 제공한다. 서비스는 클라우드 컴퓨팅 서비스 공급자를 통해, 또는 온라인 서비스의 다른 공급자를 통해 클라우드에서 제공될 수 있다. 예를 들면, 클라우드 기반 서비스는, 콘텐츠 저장 서비스, 콘텐츠 공유 사이트, 소셜 네트워킹 사이트, 또는 연결된 디바이스 상에서 다른 사람이 보도록 유저가 제공한 콘텐츠가 배포되는 다른 서비스를 포함할 수 있다. 이들 클라우드 기반 서비스는, 콘텐츠를 로컬하게 저장하고 로컬하게 저장된 콘텐츠에 액세스하는 대신, 유저 기기 디바이스가 콘텐츠를 클라우드에 저장하는 것 및 클라우드로부터 콘텐츠를 수신하는 것을 허용할 수도 있다.
유저는, 콘텐츠를 녹화하기 위해, 캠코더, 비디오 모드를 갖는 디지털 카메라, 오디오 레코더, 이동 전화, 및 핸드헬드 컴퓨팅 디바이스와 같은 다양한 콘텐츠 캡쳐 디바이스를 사용할 수도 있다. 유저는, 예를 들면, 콘텐츠 캡쳐 피쳐를 갖는 무선 유저 통신 디바이스(406) 또는 유저 컴퓨터 기기(404)로부터 직접적으로 클라우드 상의 콘텐츠 저장 서비스에 콘텐츠를 업로드할 수 있다. 대안적으로, 유저는 유저 컴퓨터 기기(404)와 같은 유저 기기 디바이스로 콘텐츠를 먼저 전송할 수 있다. 콘텐츠를 저장하는 유저 기기 디바이스는 통신 네트워크(414) 상의 데이터 전송 서비스를 사용하여 콘텐츠를 클라우드로 업로드한다. 몇몇 실시형태에서, 유저 기기 디바이스 그 자체는 클라우드 리소스이고, 다른 유저 기기 디바이스는 유저가 콘텐츠를 저장한 유저 기기 디바이스의 콘텐츠에 직접적으로 액세스할 수 있다.
클라우드 리소스는, 예를 들면, 웹 브라우저, 미디어 안내 애플리케이션, 데스크톱 애플리케이션, 모바일 애플리케이션, 및/또는 이들의 액세스 애플리케이션의 임의의 조합을 사용하여 유저 기기 디바이스에 의해 액세스될 수도 있다. 유저 기기 디바이스는 애플리케이션 전달을 위해 클라우드 컴퓨팅에 의존하는 클라우드 클라이언트일 수도 있거나, 또는 유저 기기 디바이스는 클라우드 리소스에 액세스하지 않는 몇몇 기능을 가질 수도 있다. 예를 들면, 유저 기기 디바이스 상에서 실행하는 몇몇 애플리케이션은 클라우드 애플리케이션, 즉, 인터넷을 통해 서비스로서 전달되는 애플리케이션일 수도 있고, 한편 다른 애플리케이션은 유저 기기 디바이스 상에서 저장 및 실행될 수도 있다. 몇몇 실시형태에서, 유저 디바이스는 다수의 클라우드 리소스로부터 동시에 콘텐츠를 수신할 수도 있다. 예를 들면, 유저 디바이스는 하나의 클라우드 리소스로부터 오디오를 스트리밍할 수 있고, 동시에 제2 클라우드 리소스로부터 콘텐츠를 다운로드할 수 있다. 또는 더 효율적인 다운로드를 위해 유저 디바이스가 다수의 클라우드 리소스로부터 콘텐츠를 다운로드할 수 있다. 몇몇 실시형태에서, 유저 기기 디바이스는 도 3과 관련하여 설명되는 프로세싱 회로부에 의해 수행되는 프로세싱 동작과 같은 동작을 프로세싱하기 위해 클라우드 리소스를 사용할 수 있다.
본원에서 언급되는 바와 같이, 용어 "~에 응답하여"는 ~의 결과로서 개시되는 것을 가리킨다. 예를 들면, 제1 액션이 제2 액션에 응답하여 수행되는 것은, 제1 액션과 제2 액션 사이의 개재하는(interstitial) 단계를 포함할 수도 있다. 본원에서 언급되는 바와 같이, 용어 "~에 직접적으로 응답하여"는 ~에 의해 야기되는 것을 가리킨다. 예를 들면, 제1 액션이 다른 액션에 응답하여 수행되는 것은, 제1 액션과 제2 액션 사이에 개재하는 단계를 포함하지 않을 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 도 5에서 예시되는 프로세스(500)의 단계를 수행하는 것에 의해, 유저가, 유저의 약속과 중첩하는 미디어 자산을, 유저의 약속과 중첩하지 않는 미디어 자산과 구별하는 것을 가능하게 한다. 단계(502)에서, 미디어 안내 애플리케이션은, 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터를, 캘린더 애플리케이션으로부터 (예를 들면, 제어 회로부(304)를 통해) 수신하는데, 여기서, 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함한다. 본원에서 언급되는 바와 같이, 용어 "캘린더 데이터"는, 유저의 스케줄링된 이벤트와 관련되는 임의의 데이터를 가리킨다. 예를 들면, 캘린더 데이터는, 진찰 약속, 비즈니스 미팅, 생일 미리 알림, 등등을 포함할 수도 있다. 캘린더 데이터는, 예를 들면, 이벤트 시작 시간, 종료 시간, 설명, 주제, 참가자의 이름, 제목, 미리 알림 정보, 등등을 포함할 수도 있다. 단계(504)에서, 미디어 안내 애플리케이션은, 복수의 이벤트의 이벤트 시간 간격을, 제1 복수의 미디어 자산의 미디어 자산 시간 간격과 (예를 들면, 제어 회로부(304)를 통해) 비교하는데, 여기서 제1 복수의 미디어 자산의 각각의 미디어 자산은 관련된 미디어 자산 시작 시간 및 종료 시간을 가지며 대응하는 미디어 자산 시간 간격 동안 복수의 유저에 대한 전송을 위해 스케줄링된다.
단계(506)에서, 미디어 안내 애플리케이션은, 비교에 기초하여, 제2 복수의 미디어 자산에 대응하는 제1 복수의 미디어 자산 식별자에 대해, 충돌 표시자를, 대응하는 미디어 자산 데이터베이스 엔트리에 (예를 들면, 제어 회로부(304)를 통해) 저장하는데, 여기서, 제2 복수의 미디어 자산은, 이벤트 시간 간격 중 적어도 하나와 적어도 부분적으로 중첩하는 관련된 미디어 자산 시간 간격을 갖는 제1 복수의 미디어 자산으로부터의 미디어 자산을 포함한다. 미디어 자산 데이터베이스 엔트리는, 미디어 안내 애플리케이션이 상주하는 동일한 장치 상의 스토리지(308)에 위치되는 데이터베이스에 저장될 수도 있다. 추가적으로 또는 대안적으로, 미디어 자산 데이터베이스는 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)에 저장될 수도 있고 통신 네트워크(414)를 통해 액세스될 수도 있다. 여기에서 언급되는 바와 같이, 용어 "충돌 표시자"는, 중첩이 존재한다는 것을 나타낼 수 있는 데이터 구조를 가리킨다. 예를 들면, 충돌 표시자는, 부울 값(Boolean value), 변수, 중첩하는 이벤트에 대한 링크, 및/또는 중첩하는 이벤트의 데이터일 수도 있다.
단계(508)에서, 미디어 안내 애플리케이션은, 어떤 시간 기간 동안 복수의 유저에 대한 전송을 위해 스케줄링되어 있는 미디어 자산에 대응하는 제2 복수의 미디어 자산 식별자를, 디스플레이를 위해, (예를 들면, 제어 회로부(304)를 통해) 생성하는데, 여기서 제2 복수의 미디어 자산 식별자는, 제1 복수의 미디어 자산 식별자에 포함되는 미디어 자산 식별자를 포함하는 제1 부분 및 제1 복수의 미디어 자산 식별자에 포함되지 않는 미디어 자산 식별자를 포함하는 제2 부분을 가지며, 제1 부분의 미디어 자산 식별자는 제2 부분의 미디어 자산 식별자와는 시각적으로 구별된다.
프로세스(500)의 단계(502)는 도 6의 프로세스(600)에 의해 더욱 예시화된다. 단계(602)에서, 미디어 안내 애플리케이션은 (예를 들면, 제어 회로부(304)를 경유하여 I/O 경로(302)를 통해) 캘린더 애플리케이션으로, 유저와 관련되는 캘린더 데이터에 대한 요청을 전송한다. 캘린더 애플리케이션은, 원격 서버(예를 들면, 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)와 관련되는 서버) 상에 저장될 수도 있거나 또는 미디어 안내 애플리케이션이 상주하는 디바이스 상의 스토리지(308)에 저장될 수도 있다. 캘린더 애플리케이션은 또한, 써드파티에 의해 관리되는 원격 서버에 위치될 수도 있거나 또는 인터넷을 통해 액세스될 수도 있다. 본원에서 언급되는 바와 같이, 용어 "캘린더 애플리케이션"은, 유저와 관련되는 이벤트의 저장을 가능하게 하는 소프트웨어 및/또는 하드웨어를 지칭한다. 예를 들면, Google Calendar™는, 유저가 캘린더 데이터를 저장하는 것을 가능하게 하는 그리고 캘린더 애플리케이션으로 간주되는 서비스이다. 몇몇 캘린더 애플리케이션은 단일의 유저에 대한 캘린더 이벤트를 저장할 수도 있고 한편 다른 것은 다수의 유저에 대한 캘린더 이벤트를 저장할 수 있다는 것을 유의해야 한다. 다른 캘린더 애플리케이션은, Microsoft Exchange(마이크로소프트 익스체인지), Microsoft Outlook(마이크로소프트 아웃룩), Yahoo Calendar(야후 캘린더), 등등을 포함할 수도 있다. 추가적으로, 캘린더 애플리케이션은 스마트 폰 및 다른 모바일 디바이스(예를 들면, 태블릿) 상에서 이용 가능한 임의의 애플리케이션을 포함한다.
미디어 안내 애플리케이션은 다양한 방식으로 단계(602)를 수행할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은, 유저의 캘린더 애플리케이션을 호스팅하고 있는 서버에 대한 사전 구성된 값을 (예를 들면, 스토리지(308)로부터) 검색할 수도 있다. 사전 구성된 값은 미디어 콘텐츠 소스(416) 또는 미디어 안내 데이터 소스(418)로부터 검색될 수 있다는 것을 유의해야 한다. 추가적으로 또는 대안적으로, 미디어 안내 애플리케이션은, 유저의 캘린더가 이메일 애플리케이션의 일부이다는 표시와 함께 유저의 이메일 주소를 포함하는 사전 구성된 값을 검색할 수도 있다. 예를 들면, 초기 구성 동안(유저가 미디어 안내 애플리케이션을 처음 사용하기 시작하는 경우), 미디어 안내 애플리케이션은 유저가 그의 또는 그녀의 이메일 주소를 입력할 기회를 제공할 수도 있다. 미디어 안내 애플리케이션은 이메일 주소 및 표시를 스토리지(308)에 또는 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)에 저장할 수도 있다. 미디어 안내 애플리케이션은, 유저와 관련되는 캘린더 데이터에 대한 요청을, 유저의 이메일과 관련되는 서버로 전송할 수도 있다.
유저가 Google Mail™과 같은 서비스를 활용하는 경우, 미디어 안내 애플리케이션은, 유저와 관련되는 캘린더 데이터에 대한 적절하게 형식이 갖추어진 요청을 Google 서버로 전송할 수도 있다. 요청은 인증 정보를 포함할 수도 있다는 것을 유의해야 한다. 추가적으로 또는 대안적으로, 미디어 안내 애플리케이션은 서버와의 인증 핸드셰이크(authentication handshake)를 수행할 수도 있다. 인증 핸드셰이크는, 미디어 안내 애플리케이션으로부터의 요청과, 그에 후속하여, 인증 정보에 대한 요청을 갖는 서버로부터의 응답, 및 그에 후속하여, 미디어 안내 애플리케이션이 인증 정보를 서버로 전송하는 것의 형태를 취할 수도 있다.
단계(604)에서, 미디어 안내 애플리케이션은, 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터를, 캘린더 애플리케이션으로부터 (예를 들면, 제어 회로부(304)를 경유하여 I/O 경로(302)를 통해) 수신한다. 미디어 안내 애플리케이션이 캘린더 데이터를 수신하면, 미디어 안내 애플리케이션은 그 데이터를 스토리지(308)에 저장할 수도 있다. 추가적으로 또는 대안적으로, 미디어 안내 애플리케이션은 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)에 캘린더 데이터를 저장할 수도 있다. 미디어 안내 애플리케이션은 다양한 형태로 캘린더 데이터를 저장할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은, XML 파일에, 데이터베이스 또는 다른 데이터 구조에 캘린더 데이터를 저장할 수도 있다. 데이터가 저장되는 동안 그것을 안전하게 유지하기 위해, XML 파일 및 데이터베이스는 암호화될 수도 있다는 것을 유의해야 한다. 다수의 유저에 대한 캘린더 데이터가 데이터베이스에 저장될 수도 있다는 것을 또한 유의해야 한다. 미디어 안내 애플리케이션은 다수의 유저의 캘린더 데이터를 다수의 XML 파일(파일당 한 명의 유저의 캘린더 데이터)에 저장할 수도 있다.
단계(606)에서, 미디어 안내 애플리케이션은, 수신된 이벤트가 (예를 들면, 이전 요청에 의해) 이전에 수신되었는지의 여부를 결정하기 위한 프로세스를 시작하고 새로운 그리고 업데이트된 이벤트를 저장한다. 이들 단계는 데이터베이스와 관련하여 설명된다는 것을 유의해야 한다. 그러나, 이들 단계는 파일(예를 들면, XML 파일) 또는 다른 데이터 구조에도 동일하게 적용될 수도 있다. 단계(606)에서, 미디어 안내 애플리케이션은, 모든 수신된 이벤트가 이전에 선택되었는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 모든 이벤트가 이전에 선택되었다면, 프로세스는 단계(624)로 이동하여 종료한다. 모든 이벤트가 이전에 선택된 것이 아니라면, 프로세스(600)는 단계(608)로 이동하는데, 여기서, 미디어 안내 애플리케이션은 이전에 선택되지 않은 복수의 이벤트 중 한 이벤트를 (예를 들면, 제어 회로부(304)를 통해) 선택한다. 예를 들면, 미디어 안내 애플리케이션은 모든 새롭게 수신된 이벤트를 임시 파일, 임시 데이터 구조, RAM, 또는 임시 데이터베이스 테이블에 저장할 수도 있다. 미디어 안내 애플리케이션은 한 번에 하나의 이벤트를 선택하여 그 이벤트가 이전에 이미 수신된 이벤트와 매치하는지의 여부를 결정할 수도 있다.
단계(610)에서, 미디어 안내 애플리케이션은, 선택된 이벤트에 대한 질의(query)를 (예를 들면, 제어 회로부(304)를 경유하여 I/O 경로(302)를 통해) 데이터베이스로 전송한다. 예를 들면, 미디어 안내 애플리케이션은, 고유 이벤트가 데이터베이스에 저장되어 있기 때문에, 고유 이벤트를 식별할 수도 있는 질의를 생성할 수도 있다. 구체적으로, 이 질의는 이벤트의 시작 시간과 종료 시간뿐만 아니라 이벤트의 설명을 포함할 수도 있다. 질의는 이벤트의 제목을 또한 포함할 수도 있다. 미디어 안내 애플리케이션은, 시작 시간 및 종료 시간이 선택된 이벤트의 시작 시간 및 종료 시간과 매치하는 모든 엔트리를 먼저 검색할 수도 있다. 대부분의 경우, 하나의 매치하는 이벤트가 있을 것이거나 또는 일치하는 이벤트가 없을 것이다. 그러나, 몇몇 경우에, 유저는 동일한 시간 기간 동안 스케줄링되는 두 개 이상의 이벤트를 가질 수도 있다. 이들 경우, 미디어 안내 애플리케이션은 다수의 엔트리를 검색할 수도 있다. 데이터베이스는, 미디어 안내 애플리케이션이 상주하는 디바이스 상에 로컬하게(스토리지(308)에) 상주할 수도 있다. 대안적으로 또는 추가적으로, 데이터베이스는 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)에 상주할 수도 있다. 이벤트 엔트리가 데이터베이스 대신 파일(예를 들면, XML 파일)에 저장되어 있는 경우, 미디어 안내 애플리케이션은 질의를 사용하는 대신 XML 파일을 파싱할 수도 있다는 것을 유의해야 한다.
단계(612)에서, 미디어 안내 애플리케이션은 선택된 이벤트가 데이터베이스에 존재하는지의 여부를 결정한다. 선택된 이벤트의 시작 시간 및 종료 시간 둘 다에 매칭하는 엔트리가 데이터베이스에 존재하지 않으면, 프로세스(600)는 단계(614)로 이동하는데, 여기서, 미디어 안내 애플리케이션은 선택된 이벤트로부터의 캘린더 데이터를 갖는 데이터베이스 엔트리를 생성한다. 그 다음, 프로세스(600)는 단계(606)로 이동한다. 시작 시간과 종료 시간 둘 모두가 매치하는 적어도 하나의 이벤트가 데이터베이스에 존재하면, 프로세스(600)는 단계(616)로 이동하는데, 여기서, 미디어 안내 애플리케이션은, 데이터베이스로부터, 선택된 이벤트와 관련되는 이벤트 엔트리를 (예를 들면, 제어 회로부(304)를 통해) 검색한다. 이벤트 엔트리가 파일(예를 들면, XML 파일)에 저장되어 있는 경우, 미디어 안내 애플리케이션은 파일로부터 이벤트 엔트리를 검색할 수도 있다는 것을 유의해야 한다.
단계(618)에서, 미디어 안내 애플리케이션은, 데이터베이스로부터 검색되는 이벤트 엔트리의 데이터를, 선택된 이벤트의 데이터와 (예를 들면, 제어 회로부(304)를 통해) 비교한다. 미디어 안내 애플리케이션은 이벤트와 함께 포함되는 다른 데이터를 비교하는 것에 의해 비교를 수행할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 주제, 설명, 미리 알림 정보, 등등을 비교할 수도 있다. 단계(620)에서, 미디어 안내 애플리케이션은, 데이터베이스로부터 검색되는 이벤트 엔트리가 선택된 이벤트의 데이터와 매치하는지의 여부를 (예를 들면, 제어 회로부(604)를 통해) 결정한다. 이벤트 엔트리가 선택된 이벤트의 데이터와 매치하면, 프로세스(600)는 단계(606)로 이동하는데, 여기서는, 다음 이벤트가 프로세싱을 위해 선택된다. 데이터베이스로부터 검색되는 이벤트 엔트리로부터의 데이터가 선택된 이벤트의 데이터와 매치하지 않으면, 프로세스(600)는 단계(622)로 이동한다.
단계(622)에서, 미디어 안내 애플리케이션은 선택된 이벤트로부터의 데이터를 가지고 데이터베이스 엔트리를 (예를 들면, 제어 회로부(304)를 통해) 업데이트한다. 미디어 안내 애플리케이션은 데이터베이스 엔트리의 데이터를 선택된 이벤트로부터의 데이터로 덮어 쓸(overwrite) 수도 있다. 대안적으로, 미디어 안내 애플리케이션은 데이터베이스 엔트리와 선택된 이벤트 사이의 상이한 정보만을 덮어 쓸 수도 있다. 프로세스(600)는 단계(606)로 진행한다.
도 6의 설명은 본 개시의 임의의 다른 실시형태와 함께 사용될 수도 있다는 것이 고려된다. 또한, 프로세스(600)의 단계는 본 개시의 목적을 진전시키기 위해 대안적인 순서로 또는 병렬로 수행될 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 성능을 높이기 위해 다수의 논리 프로세서 스레드 또는 물리적 프로세서를 사용할 수도 있다. 또한, 프로세스(600)는 분기 예측을 통합하는 것에 의해 향상될 수도 있다. 또한, 프로세스(600)는 적절하게 구성된 소프트웨어 및 하드웨어의 조합 상에서 구현될 수도 있다는 것, 및 도 3 및 도 4와 관련하여 논의되는 디바이스 또는 기기 중 임의의 것은 프로세스 중 하나 이상의 부분을 구현하기 위해 사용될 수도 있다는 것을 유의해야 한다.
도 7은 프로세스(600)를 구현하기 위해 사용될 수도 있는 가능한 의사 코드를 예시한다. 도 7의 의사 코드는 임의의 수의 프로그래밍 언어로 그리고 다양하고 상이한 하드웨어 상에서 구현될 수도 있다는 것, 및 스타일 및 포맷은 제한하는 것으로 해석되어서는 안되며, 오히려 프로세스(600)를 구현하기 위해 사용되는 코드와 부합할 단계 및 프로시져의 일반적인 템플릿인 것으로 간주되어야 한다는 것이 기술 분야에서 숙련된 자에게는 명백할 것이다.
라인(702)에서, 미디어 안내 애플리케이션은 (예를 들면, 제어 회로부(304)를 통해) 서브 루틴을 실행하여, 변수를 초기화하고 긴급 경고를 수신하기 위한 루틴을 시작할 준비를 한다. 예를 들면, 미디어 안내 애플리케이션은 비일시적인 저장 매체(예를 들면, 스토리지 디바이스(308))로부터 RAM으로 또는 프로세싱 회로부(306)용의 캐시로 (예를 들면, 제어 회로부(304)를 통해) 명령어를 복사할 수도 있다. 미디어 안내 애플리케이션은, 루틴이 시작할 것을 요구하는 유저 입력이 수신되었다는 것을 미디어 안내 애플리케이션에게 통지하는 유저 입력 인터페이스(310)로부터의 신호에 응답하여, 초기화 서브 루틴을 실행할 수도 있다.
라인(705)에서, 미디어 안내 애플리케이션은 현재 유저를 검색하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 라인(706)에서, 미디어 안내 애플리케이션은 새로운 요청을 생성하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 새로운 요청은 캘린더 데이터에 대한 요청이며 현재 유저의 표시를 포함할 수도 있다. 라인(707)에서, 미디어 안내 애플리케이션은 캘린더 데이터를 수신하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 함수는, 캘린더 데이터가 상주하는 서버의 이름 및 라인(706)에서 생성되는 새로운 요청을 입력으로서 취할 수도 있다.
라인(708)에서, 미디어 안내 애플리케이션은, 상이한 이벤트를 분리하기 위해, 캘린더 데이터를 파싱하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행할 수도 있다. 이벤트는, 각각의 이벤트를 프로세싱하기 위해 횡단될(traversed) 수도 있는 다른 유사한 데이터 구조 또는 어레이에 저장될 수도 있다. 라인(709)에서, 미디어 안내 애플리케이션은 각각의 수신된 이벤트를 반복하는 "For 루프"를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 각각의 수신된 이벤트에 대해, 미디어 안내 애플리케이션은, 라인(710)에서, 이전에 수신된 이벤트를 저장하는 데이터베이스에서 이벤트의 존재를 검색하기 위한 질의를 (예를 들면, 제어 회로부(304)를 통해) 생성한다. 미디어 안내 애플리케이션은 도 6과 관련하여 설명되는 임의의 방식으로 질의를 생성할 수도 있다.
라인(711)에서, 미디어 안내 애플리케이션은, 질의와 매치하는 임의의 이벤트를 수신하기 위해, 질의를 데이터베이스에 전송하는 함수를 (예를 들면, 제어 회로부를 통해) 실행한다. 라인(712)에서, 미디어 안내 애플리케이션은, 현재 프로세싱되고 있는 이벤트에 임의의 이벤트가 매칭되었는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 어떠한 이벤트도 매치하지 않으면, 미디어 안내 애플리케이션은, 라인(713)에서, 새로운 데이터베이스 엔트리를 생성하는 함수를(예를 들면, 제어 회로부(304)를 통해) 실행한다. 함수는 이벤트와 관련되는 데이터를 입력으로 취할 수도 있다. 라인(714)에서, 미디어 안내 애플리케이션은 저장을 위해 데이터베이스로 새로운 엔트리를 전송하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다.
라인(715)에서, 미디어 안내 애플리케이션은, 프로세싱되고 있는 이벤트가 데이터베이스의 이벤트와 매치한다는 것을 결정하면, 미디어 안내 애플리케이션은, 라인(716)에서, 이벤트 데이터를 파싱하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 라인(717)에서, 미디어 안내 애플리케이션은, 데이터베이스로부터 검색되는 이벤트의 이벤트 데이터를 파싱하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 라인(718)에서, 미디어 안내 애플리케이션은, 두 이벤트의 이벤트 데이터를 (예를 들면, 제어 회로부(304)를 통해) 비교한다. 미디어 안내 애플리케이션은 도 6과 관련하여 논의되는 임의의 방식으로 비교를 수행할 수도 있다.
라인(719)에서, 미디어 안내 애플리케이션은 두 이벤트의 데이터가 매치하는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 어떠한 매치도 발견되지 않으면, 라인(720)에서, 미디어 안내 애플리케이션은 새로운 이벤트로 현존하는 이벤트를 업데이트하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 미디어 안내 애플리케이션은 도 6과 관련하여 논의되는 임의의 방식으로 업데이트를 수행할 수도 있다. 그러나, 데이터가 매치하면, 미디어 안내 애플리케이션은 데이터를 업데이트하지 않고 "For 루프"의 다음 반복으로 이동한다. 미디어 안내 애플리케이션은, 라인(725)에서 나타내어지는 바와 같이, (예를 들면, 제어 회로부(304)를 통해) 프로세스를 종료하도록 진행한다. 예를 들면, 미디어 안내 애플리케이션은 메모리를 정리하고 더 이상 필요로 되지 않는 변수를 제거할 수도 있다.
도 7의 의사 코드는 임의의 수의 프로그래밍 언어로 그리고 다양한 상이한 하드웨어 상에서 구현될 수도 있으며, 원시 함수(primitive function), 논리 평가, 및 함수 평가의 특정한 선택 및 위치는 제한하는 것으로 의도되지는 않는다는 것을 유의해야 한다. 또한, 코드는, 다양한 논리적 평가의 순서를 조작하기 위해, 단일의 반복 루프가 아닌 병렬로 여러 가지 반복을 수행하기 위해, 또는 입력 또는 최종 출력을 근본적으로 변경하지 않으면서 런타임 및 성능 메트릭을 달리 조작하고 최적화하기 위해, 재코딩될(refactored) 수도 있거나 또는 재작성될 수도 있다.
상기에서 논의되는 바와 같이, 도 5의 단계(504 및 506)에서, 미디어 안내 애플리케이션은 복수의 이벤트의 이벤트 시간 간격을 제1 복수의 미디어 자산의 미디어 자산 시간 간격과 (예를 들면, 제어 회로부(304)를 통해) 비교하고, 비교에 기초하여, 검색된 이벤트와 중첩하는 전송 시간을 갖는 미디어 자산에 대해, 충돌 표시를 대응하는 미디어 자산 데이터베이스 엔트리에 저장한다. 프로세스(500)의 단계(504) 및 단계(506)의 일부는 도 8의 프로세스(800)에 의해 추가로 예시화된다.
단계(802)에서, 미디어 안내 애플리케이션은, 복수의 이벤트에 대응하는 데이터베이스 엔트리 및 제1 복수의 미디어 자산에 대응하는 데이터베이스 엔트리를, (예를 들면, 제어 회로부(304)를 통해) 데이터베이스로부터 검색한다. 이벤트 엔트리 및 미디어 자산 엔트리 둘 다는 동일한 데이터베이스에 상주할 수도 있다는 것을 유의해야 한다. 대안적으로, 이벤트 엔트리는 하나의 데이터베이스에 상주할 수도 있고 미디어 자산 엔트리는 다른 데이터베이스에 상주할 수도 있다. 또한 이벤트 엔트리 및 미디어 자산 엔트리는 파일(예를 들면, XML 파일) 또는 기타 적절한 데이터 구조로 상주할 수도 있다. 데이터베이스는 미디어 안내 애플리케이션이 상주하는 디바이스 상에 로컬하게(예를 들면, 스토리지(308)에)에 저장될 수도 있다. 추가적으로 또는 대안적으로, 데이터베이스는 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)에 저장될 수도 있다.
단계(804)에서, 미디어 안내 애플리케이션은, 복수의 이벤트에 대응하는 모든 데이터베이스 엔트리가 이전에 선택되었는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 복수의 이벤트에 대응하는 모든 데이터베이스 엔트리가 이전에 선택되었다면, 프로세스(800)는 단계(808)로 이동하여 종료한다. 복수의 이벤트에 대응하는 모든 데이터베이스 엔트리가 이전에 선택되지 않았다면, 프로세스(800)는 단계(806)로 이동한다. 단계(806)에서, 미디어 안내 애플리케이션은 복수의 이벤트 중 한 이벤트에 대응하는 이전에 선택되지 않은 데이터베이스 엔트리를 (예를 들면, 제어 회로부(304)를 통해) 선택한다. 예를 들면, 복수의 이벤트에 대응하는 데이터베이스 엔트리는, 그들이 데이터베이스로부터 검색된 이후, RAM에 저장될 수도 있다. 이들 엔트리는 어레이와 같은 데이터 구조에 저장될 수도 있다. 미디어 안내 애플리케이션은, 프로세싱에 대한 각각의 엔트리를 선택하기 위해, 어레이를 반복할 수도 있다.
단계(810)에서, 미디어 안내 애플리케이션은 이벤트에 대응하는 선택된 데이터베이스 엔트리로부터 이벤트 시작 시간 및 이벤트 종료 시간을 (예를 들면, 제어 회로부(304)를 통해) 검색한다. 단계(806)와 관련하여 상기에서 설명되는 바와 같이, 데이터베이스 엔트리는 데이터베이스로부터 검색된 이후 RAM에 저장될 수도 있다. 미디어 안내 애플리케이션은 메모리 내의 엔트리에 액세스하여 데이터베이스 엔트리와 관련되는 상이한 필드를 추출할 수도 있다. 그 다음, 미디어 안내 애플리케이션은, 이벤트 시작 시간 및 이벤트 종료 시간에 대응하는 필드에서 데이터를 검색할 수도 있다.
단계(812)에서, 미디어 안내 애플리케이션은, 제1 복수의 미디어 자산에 대응하는 모든 데이터베이스 엔트리가 이전에 선택되었는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 제1 복수의 미디어 자산에 대응하는 모든 데이터베이스 엔트리가 이전에 선택되었다면, 프로세스(800)는 단계(804)로 이동한다. 그렇지 않다면, 프로세스(800)는 단계(814)로 이동한다.
단계(814)에서, 미디어 안내 애플리케이션은 제1 복수의 미디어 자산 중 한 미디어 자산에 대응하는 이전에 선택되지 않은 데이터베이스 엔트리를 (예를 들면, 제어 회로부(304)를 통해) 선택한다. 단계(816)에서, 미디어 안내 애플리케이션은 미디어 자산에 대응하는 선택된 데이터베이스 엔트리로부터 미디어 자산 시작 시간 및 미디어 자산 종료 시간을 (예를 들면, 제어 회로부(304)를 통해) 검색한다. 미디어 안내 애플리케이션은 단계(810)와 관련하여 논의되는 바와 동일한 방식으로 검색 동작을 수행할 수도 있다.
단계(818)에서, 미디어 안내 애플리케이션은 (예를 들면, 제어 회로부(304)를 통해) 이벤트 시작 시간을 미디어 자산 시작 시간 및 미디어 자산 종료 시간과 비교하여, 선택된 이벤트가 어떤 미디어 자산과 중첩하는지를 결정할 수도 있다. 예를 들면, 이벤트의 시작 시간이 미디어 자산 전송의 시작 시간과 종료 시간 사이에 속하는 경우, 미디어 안내 애플리케이션은 이벤트가 미디어 자산과 중첩한다는 것을 결정할 수도 있다.
단계(820)에서, 미디어 안내 애플리케이션은 이벤트 종료 시간을 미디어 자산 시작 시간 및 미디어 자산 종료 시간과 비교하여, 선택된 이벤트가 어떤 미디어 자산과 중첩하는지를 결정한다. 예를 들면, 이벤트의 종료 시간이 미디어 자산 전송의 시작 시간과 종료 시간 사이에 속하는 경우, 미디어 안내 애플리케이션은 이벤트가 미디어 자산과 중첩한다는 것을 결정할 수도 있다. 따라서, 미디어 안내 애플리케이션은 단계(818) 또는 단계(820) 중 어느 하나, 또는 둘 다에서 중첩이 발견되는 경우, 중첩을 검출할 수도 있다. 미디어 안내 애플리케이션은, 중첩을 검출할 때, 이벤트 및 미디어 자산의 전송 시간과 관련되는 시간대를 고려하도록 대응될 수도 있다는 것을 유의해야 한다. 예를 들면, 유저의 일반적인 시간대는 동부 표준시(Eastern Time Zone)일 수도 있다. 그러나, 유저는 여행 중일 수도 있으며 태평양 표준시(Pacific Time Zone)에 위치될 수도 있다. 미디어 안내 애플리케이션이 이벤트 시작 시간 및 종료 시간을 미디어 자산 시작 시간 및 종료 시간과 비교할 때, 미디어 안내 애플리케이션은 먼저 시작 시간 및 종료 시간을 하나의 시간대(예컨대, 그리니치 표준시)로 변환할 수도 있다. 따라서, 제2 복수의 미디어 자산 식별자가 디스플레이될 때, 유저가 어떤 시간대에 있는지에 관계없이, 중첩은 정확하게 나타내어진다.
단계(822)에서, 미디어 안내 애플리케이션은, 이벤트 시작 시간 또는 이벤트 종료 시간 중 어느 하나가 미디어 자산 시작 시간과 미디어 자산 종료 시간 사이에 속하는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 이벤트 시작 시간도 이벤트 종료 시간도 미디어 자산 시작 시간과 미디어 자산 종료 시간 사이에 있지 않으면, 프로세스(800)는 단계(804)로 이동한다. 그렇지 않으면, 프로세스(800)는 단계(824)로 이동한다.
단계(824)에서, 미디어 안내 애플리케이션은, 미디어 자산에 대응하는 선택된 데이터베이스 엔트리를, (1) 이벤트에 대응하는 데이터베이스 엔트리로부터의 데이터 및 (2) 충돌 표시자로, (예를 들면, 제어 회로부(304)를 통해) 업데이트한다. 미디어 안내 애플리케이션은, 데이터베이스 엔트리의 모든 데이터를 이벤트 데이터로 덮어 쓰기 하는 것에 의해 업데이트를 수행할 수도 있다. 대안적으로, 미디어 안내 애플리케이션은 변경된 데이터베이스 엔트리의 일부만 덮어 쓰기 할 수도 있다. 미디어 안내 애플리케이션이 업데이트를 완료하면, 프로세스(800)는, 다른 이전에 선택되지 않은 다른 이벤트가 프로세싱을 위해 선택되는 단계(804)로 이동한다.
도 8의 설명은 본 개시의 임의의 다른 실시형태와 함께 사용될 수도 있다는 것이 고려된다. 또한, 프로세스(800)의 단계는 본 개시의 목적을 진전시키기 위해 대안적인 순서로 또는 병렬로 수행될 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 성능을 높이기 위해 다수의 논리 프로세서 스레드 또는 물리적 프로세서를 사용할 수도 있다. 또한, 프로세스(800)는 분기 예측을 통합하는 것에 의해 향상될 수도 있다. 프로세스(800)는 적절하게 구성된 소프트웨어 및 하드웨어의 조합 상에서 구현될 수도 있다는 것, 및 도 3 및 도 4와 관련하여 논의되는 디바이스 또는 기기 중 임의의 것은 프로세스 중 하나 이상의 부분을 구현하기 위해 사용될 수도 있다는 것을 유의해야 한다.
도 9는 프로세스(800)를 구현하기 위해 사용될 수도 있는 가능한 의사 코드를 도시한다. 도 9의 의사 코드는 임의의 수의 프로그래밍 언어로 그리고 다양하고 상이한 하드웨어 상에서 구현될 수도 있다는 것, 및 스타일 및 포맷은 제한하는 것으로 해석되어서는 안되며, 오히려 프로세스(800)를 구현하기 위해 사용되는 코드와 부합할 단계 및 프로시져의 일반적인 템플릿인 것으로 간주되어야 한다는 것이 기술 분야에서 숙련된 자에게는 명백할 것이다.
라인(902)에서, 미디어 안내 애플리케이션은 (예를 들면, 제어 회로부(304)를 통해) 서브 루틴을 실행하여, 변수를 초기화하고 미디어 자산 엔트리를 이벤트 엔트리와 비교하기 위한 루틴을 시작할 준비를 한다. 예를 들면, 미디어 안내 애플리케이션은 비일시적인 저장 매체(예를 들면, 스토리지 디바이스(308))로부터 RAM으로 또는 프로세싱 회로부(306)용의 캐시로 (예를 들면, 제어 회로부(304)를 통해) 명령어를 복사할 수도 있다. 미디어 안내 애플리케이션은 루틴(700)이 종료하는 것에 응답하여 초기화 서브 루틴을 실행할 수도 있다.
라인(905)에서, 미디어 안내 애플리케이션은 캘린더 이벤트를 검색하는 함수를 실행한다. 그 함수는 서버 이름(예를 들면, 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)와 관련되는 서버)을 입력으로 취할 수 있다. 대안적으로, 미디어 안내 애플리케이션은 미디어 안내 애플리케이션이 상주하는 디바이스 상의 스토리지(308)로부터 캘린더 이벤트를 검색할 수도 있다. 이들 경우, 서버 이름은 함수로 제공되지 않는다. 미디어 안내 애플리케이션은 프로세스(800)와 관련하여 설명되는 임의의 방식으로 함수를 수행할 수도 있다.
라인(906)에서, 미디어 안내 애플리케이션은 미디어 자산 엔트리를 검색하는 함수를 (예를 들면, 제어 회로부(306)를 통해) 실행한다. 그 함수는, 미디어 자산 엔트리가 원격 서버로부터 검색되는 인스턴스에서 서버 이름을 입력으로서 취할 수도 있다. 예를 들면, 미디어 자산 엔트리는 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)와 관련되는 서버로부터 검색될 수도 있다. 추가적으로 또는 대안적으로, 미디어 안내 애플리케이션은, 미디어 안내 애플리케이션이 상주하는 디바이스 상의 스토리지(308)로부터 미디어 자산 엔트리를 검색할 수도 있다. 몇몇 경우에, 미디어 안내 애플리케이션이 상주하는 디바이스는 특정한 시간 기간에 대한 미디어 자산 엔트리를 저장할 수도 있고, 원격 서버(예를 들면, 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)와 관련되는 서버)는 더 긴 기간에 대한 미디어 자산 엔트리를 저장할 수도 있다. 따라서, 미디어 안내 애플리케이션은 양쪽 위치로부터 미디어 자산 엔트리를 검색할 수도 있다. 예를 들면, 다음 주에 대한 미디어 자산 엔트리는 미디어 안내 애플리케이션이 상주하는 디바이스에 저장될 수도 있고 서버는 앞으로 1개월까지의 엔트리를 저장할 수도 있다.
라인(907)에서, 미디어 안내 애플리케이션은 모든 이벤트 엔트리를 반복하는 "For 루프"를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 라인(908)에서, 미디어 안내 애플리케이션은 현재 프로세싱되고 있는 이벤트 엔트리의 시작 시간을 검색하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 라인(909)에서, 미디어 안내 애플리케이션은 현재 프로세싱되고 있는 이벤트 엔트리의 종료 시간을 검색하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 두 검색 동작은 도 8의 프로세스(800)와 관련하여 설명되는 바와 같이 임의의 방식으로 수행될 수도 있다는 것을 유의해야 한다.
라인(910)에서, 미디어 안내 애플리케이션은, 각각의 미디어 자산 엔트리를 반복하는 제2 "For 루프"를 실행한다. 라인(911)에서, 미디어 안내 애플리케이션은 프로세싱되고 있는 미디어 자산 엔트리와 관련되는 시작 시간을 검색하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 라인(912)에서, 미디어 안내 애플리케이션은, 현재 프로세싱되고 있는 미디어 자산 엔트리와 관련되는 종료 시간을 검색하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 두 검색 동작은 도 8의 프로세스(800)와 관련하여 설명되는 임의의 방식으로 실행될 수도 있다는 것을 유의해야 한다.
라인(913)에서, 미디어 안내 애플리케이션은, 이벤트 시작 시간이 미디어 자산 시작 시간과 미디어 자산 종료 시간 사이에 속하는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 이벤트 시작 시간이 미디어 자산 시작 시간과 미디어 자산 종료 시간 사이에 속하는 경우, 미디어 안내 애플리케이션은, 라인(914)에서, 이벤트 엔트리로부터의 데이터로 미디어 자산 엔트리를 업데이트하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 미디어 안내 애플리케이션은, 이벤트의 시작 시간, 이벤트의 종료 시간, 설명, 미리 알림 정보, 제목, 등등과 같은 데이터로 미디어 자산 엔트리를 업데이트할 수도 있다.
라인(915)에서, 미디어 안내 애플리케이션은 새로운 충돌 표시자로 미디어 자산 엔트리를 업데이트하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 예를 들면, 미디어 안내 애플리케이션은, 미디어 자산 엔트리를, 데이터베이스 내의 상이한 테이블에 저장되어 있는 충돌 표시자에 대한 포인터로 업데이트할 수도 있다. 추가적으로 또는 대안적으로, 이벤트 엔트리에 대한 포인터가 충돌 표시자로서 기능할 수도 있다. 이 경우, 미디어 안내 애플리케이션은 이벤트 엔트리로부터의 데이터를 미디어 자산 엔트리에 저장할 필요가 없고, 대신, 데이터베이스의 상이한 부분의 또는 다른 데이터베이스의 이벤트 엔트리를 가리켜야 한다. 결과적으로, 미디어 자산 엔트리를 저장하는 데 더 적은 스토리지가 사용될 것이다.
라인(917)에서, 미디어 안내 애플리케이션은, 이벤트 종료 시간이 미디어 자산 시작 시간과 미디어 자산 종료 시간 사이에 속하는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 이벤트 종료 시간이 미디어 자산 시작 시간과 미디어 자산 종료 시간 사이에 속하면, 미디어 안내 애플리케이션은, 라인(918)에서, 이벤트 엔트리로부터의 데이터로 미디어 자산 엔트리를 업데이트하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 미디어 안내 애플리케이션은, 이벤트의 시작 시간, 이벤트의 종료 시간, 설명, 미리 알림 정보, 제목, 등등과 같은 데이터로 미디어 자산 엔트리를 업데이트할 수도 있다.
라인(919)에서, 미디어 안내 애플리케이션은 새로운 충돌 표시자로 미디어 자산 엔트리를 업데이트하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 예를 들면, 미디어 안내 애플리케이션은, 미디어 자산 엔트리를, 데이터베이스 내의 상이한 테이블에 저장되어 있는 충돌 표시자에 대한 포인터로 업데이트할 수도 있다. 추가적으로 또는 대안적으로, 이벤트 엔트리에 대한 포인터가 충돌 표시자로서 기능할 수도 있다. 이 경우, 미디어 안내 애플리케이션은 이벤트 엔트리로부터의 데이터를 미디어 자산 엔트리에 저장할 필요가 없고, 대신, 데이터베이스의 상이한 부분의 또는 다른 데이터베이스의 이벤트 엔트리를 가리켜야 한다. 결과적으로, 미디어 자산 엔트리를 저장하는 데 더 적은 스토리지가 사용될 것이다.
라인(921)에서, 미디어 안내 애플리케이션은 내부 For 루프(Inner For loop)의 다음 단계로 이동하고, 라인(922)에서 미디어 안내 애플리케이션은 외부 For 루프(Outer For Loop)의 다음 단계로 이동한다. 미디어 안내 애플리케이션은, 라인(924)에서 나타내어지는 바와 같이, (예를 들면, 제어 회로부(304)를 통해) 프로세스를 종료하도록 진행한다. 예를 들면, 미디어 안내 애플리케이션은 메모리를 정리하고 더 이상 필요로 되지 않는 변수를 제거할 수도 있다.
도 9의 의사 코드는 임의의 수의 프로그래밍 언어로 그리고 다양한 상이한 하드웨어 상에서 구현될 수도 있으며, 원시 함수, 논리 평가, 및 함수 평가의 특정한 선택 및 위치는 제한하는 것으로 의도되지는 않는다는 것을 유의해야 한다. 또한, 코드는, 다양한 논리적 평가의 순서를 조작하기 위해, 단일의 반복 루프가 아닌 병렬로 여러 가지 반복을 수행하기 위해, 또는 입력 또는 최종 출력을 근본적으로 변경하지 않으면서 런타임 및 성능 메트릭을 달리 조작하고 최적화하기 위해, 재코딩될 수도 있거나 또는 재작성될 수도 있다.
도 10의 프로세스(1000)는 단계(506)의 다른 부분을 예시화한다. 구체적으로, 프로세스(1000)는, 도 8의 프로세스(800)에 의해 업데이트된 데이터베이스 엔트리를, 데이터베이스에서, 업데이트하기 위해 미디어 안내 애플리케이션에 의해 사용될 수도 있는 단계를 예시한다. 단계(1002)에서, 미디어 안내 애플리케이션은 제1 복수의 미디어 자산에 대응하는 복수의 데이터베이스 엔트리를 (예를 들면, 제어 회로부(304)를 통해) 스토리지로부터 검색한다. 미디어 안내 애플리케이션은 도 8의 프로세스(800)를 실행하는 것으로부터 유래한 엔트리를 저장한 스토리지로부터 검색할 수도 있다.
단계(1004)에서, 미디어 안내 애플리케이션은, 제1 복수의 미디어 자산에 대응하는 어떤 데이터베이스 엔트리가 업데이트되었는지를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 미디어 안내 애플리케이션은 메모리 내의 각각의 데이터베이스 엔트리의 업데이트 플래그에 액세스하는 것에 의해 결정을 행할 수도 있다. 많은 현재의 프로그래밍 패키지는, 소정의 루틴에 의해 업데이트된 메모리의 데이터베이스 엔트리에 대해 업데이트 플래그를 자동으로 설정하는 루틴을 포함한다는 것을 유의해야 한다.
단계(1008)에서, 미디어 안내 애플리케이션은 임의의 데이터베이스 엔트리가 업데이트되었는지의 여부를 결정한다. 데이터베이스 엔트리가 업데이트되지 않은 경우, 프로세스(1000)는 단계(1006)로 이동하는데, 그곳에서 프로세스(1000)는 종료한다. 적어도 하나의 데이터베이스 엔트리가 업데이트되었다면, 프로세스(1000)는 단계(1010)로 이동한다. 단계(1004 및 1008)는 병렬로 수행될 수도 있거나 또는 하나의 단계로 결합될 수도 있다는 것을 유의해야 한다. 예를 들면, 미디어 안내 애플리케이션은 각각의 데이터베이스 엔트리를 반복할 수도 있고, 업데이트된 적어도 하나의 데이터베이스 엔트리가 발견되면 플래그를 메모리에 저장할 수도 있다. 최초로 업데이트된 데이터베이스 엔트리가 발견되면, 미디어 안내 애플리케이션은 검색을 종료하고 적어도 하나의 데이터베이스 엔트리가 업데이트되었다는 것을 결정할 수도 있다. 대안적으로, 미디어 안내 애플리케이션은 모든 데이터베이스 엔트리를 검색하여, 업데이트된 각각의 데이터베이스 엔트리에 대한 포인터를 포함하는 데이터 구조(예를 들면, 어레이)를 생성할 수도 있다. 그 다음, 미디어 안내 애플리케이션은, 어레이가 임의의 포인터를 갖는지를 결정할 수도 있다. 어레이가 포인터를 가지면, 업데이트된 데이터베이스 엔트리가 발견되었다. 어레이에 포인터가 존재하지 않으면, 데이터베이스 엔트리가 업데이트되지 않았다.
단계(1010)에서, 미디어 안내 애플리케이션은 제1 복수의 미디어 자산 식별자에 대한 데이터베이스 엔트리를 포함하는 데이터베이스에 (예를 들면, 제어 회로부(304)를 경유하여 I/O 경로(302)를 통해) 연결된다. 예를 들면, 미디어 안내 애플리케이션은 (I/O 경로(302)를 통해) 연결 요청을 데이터베이스로 전송할 수도 있다. 데이터베이스는, 통신 네트워크(414)를 통해 액세스될 수도 있는 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)에 위치될 수도 있다는 것을 유의해야 한다. 대안적으로, 데이터베이스는 인터넷 또는 다른 네트워크를 통해 액세스 가능한 임의의 위치에 상주할 수도 있다.
단계(1012)에서, 미디어 안내 애플리케이션은 데이터베이스 연결이 성공적이었는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 미디어 안내 애플리케이션은 단계(1010)로부터의 연결 요청에 대한 데이터베이스로부터의 응답을 분석하는 것에 의해 그 결정을 행할 수도 있다. 미디어 안내 애플리케이션이 데이터베이스에 연결함에 있어서 성공하지 못하면, 프로세스(1000)는 단계(1010)로 이동한다. 단계(1010)에서, 미디어 안내 애플리케이션은 다른 연결 시도를 행할 수도 있다. 데이터베이스가 이용 불가능하다는 것을 미디어 안내 애플리케이션이 결정하기 이전에 임의의 수의 연결 시도가 행해질 수도 있고 연결을 다시 시도하기 이전에 특정한 시간을 대기할 것이다는 것을 유의해야 한다. 미디어 안내 애플리케이션은 유저에게 경고할 수도 있고 및/또는 연결 실패(들)와 관련되는 데이터를 로그 파일에 저장할 수도 있다. 데이터베이스 연결이 성공적이면, 프로세스(1000)는 단계(1014)로 이동한다.
단계(1014)에서, 미디어 안내 애플리케이션은, 이전에 선택되지 않았던 데이터베이스 엔트리를, 프로세싱을 위해, (예를 들면, 제어 회로부(304)를 통해) 선택한다. 단계(1016)에서, 미디어 안내 애플리케이션은, 선택된 데이터베이스 엔트리를 업데이트하기 위한 업데이트 질의를 생성한다. 질의는, 업데이트 질의를 생성하기 위해, 업데이트되고 있는 데이터베이스와 호환되는 특정한 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; "API") 호출을 포함할 수도 있다. 단계(1018)에서, 미디어 안내 애플리케이션은 (예를 들면, 제어 회로부(304)를 경유하여 I/O 경로(302)를 통해) 업데이트 질의를 데이터베이스로 전송한다. 단계(1020)에서, 미디어 안내 애플리케이션은 업데이트 질의에 대한 응답을 데이터베이스로부터 수신하고, 단계(1022)에서 업데이트가 성공적이었는지 또는 그렇지 않았지의 여부를 결정한다. 업데이트가 성공적이면, 프로세스(1000)는 단계(1014)로 이동한다. 그렇지 않으면, 프로세스(1000)는 단계(1024)로 이동하는데, 여기서, 미디어 안내 애플리케이션은 (예를 들면, 제어 회로부(304)를 통해) 에러를 생성하고 에러를 로그에 기록한다. 로그는, 미디어 안내 애플리케이션이 스토리지(308)에 저장될 수도 있는 동일한 디바이스 상에 상주할 수도 있다는 것을 유의해야 한다. 추가적으로 또는 대안적으로, 에러 로그는 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)에 상주할 수도 있다.
도 10의 설명은 본 개시의 임의의 다른 실시형태와 함께 사용될 수도 있다는 것이 고려된다. 또한, 프로세스(1000)의 단계는 본 개시의 목적을 진전시키기 위해 대안적인 순서로 또는 병렬로 수행될 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 성능을 높이기 위해 다수의 논리 프로세서 스레드 또는 물리적 프로세서를 사용할 수도 있다. 또한, 프로세스(1000)는 분기 예측을 통합하는 것에 의해 향상될 수도 있다. 프로세스(1000)는 적절하게 구성된 소프트웨어 및 하드웨어의 조합 상에서 구현될 수도 있다는 것, 및 도 3 및 도 4와 관련하여 논의되는 디바이스 또는 기기 중 임의의 것은 프로세스 중 하나 이상의 부분을 구현하기 위해 사용될 수도 있다는 것을 유의해야 한다.
도 11은 프로세스(1000)를 구현하기 위해 사용될 수도 있는 가능한 의사 코드를 예시한다. 도 11의 의사 코드는 임의의 수의 프로그래밍 언어로 그리고 다양하고 상이한 하드웨어 상에서 구현될 수도 있다는 것, 및 스타일 및 포맷은 제한하는 것으로 해석되어서는 안되며, 오히려 프로세스(1000)를 구현하기 위해 사용되는 코드와 부합할 단계 및 프로시져의 일반적인 템플릿인 것으로 간주되어야 한다는 것이 기술 분야에서 숙련된 자에게는 명백할 것이다.
라인(1102)에서, 미디어 안내 애플리케이션은 (예를 들면, 제어 회로부(304)를 통해) 서브 루틴을 실행하여, 변수를 초기화하고 긴급 경고를 수신하기 위한 루틴을 시작할 준비를 한다. 예를 들면, 미디어 안내 애플리케이션은 비일시적인 저장 매체(예를 들면, 스토리지 디바이스(308))로부터 RAM으로 또는 프로세싱 회로부(306)용의 캐시로 (예를 들면, 제어 회로부(304)를 통해) 명령어를 복사할 수도 있다. 미디어 안내 애플리케이션은 루틴(900)이 종료하는 것에 응답하여 초기화 서브 루틴을 실행할 수도 있다.
라인(1105)에서, 미디어 안내 애플리케이션은 미디어 자산 엔트리를 검색하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 미디어 안내 애플리케이션은, 도 10의 프로세스(1000)와 연계하여 설명되는 임의의 방법에 의해 미디어 자산 엔트리를 검색할 수도 있다. 라인(1106)에서, 미디어 안내 애플리케이션은 프로세스(800)의 일부로서 어떤 미디어 자산 엔트리가 업데이트되었는지를 검출하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 미디어 안내 애플리케이션은 이들 데이터베이스 엔트리에 대한 포인터를 어레이 또는 다른 적절한 데이터 구조에 저장할 수도 있다.
라인(1107)에서, 미디어 안내 애플리케이션은 임의의 엔트리가 업데이트되었는지의 여부를 결정한다. 어떤 엔트리도 업데이트되지 않았다면, 미디어 안내 애플리케이션은 (예를 들면, 제어 회로부(304)를 통해) 종료 서브 루틴을 실행한다. 종료 서브 루틴은 도 9와 관련하여 설명되는 바와 같은 종료 서브 루틴과 유사할 수도 있다. 적어도 하나의 미디어 자산 엔트리가 업데이트되었다는 것을 미디어가 애플리케이션이 결정하면, 미디어 안내 애플리케이션은 라인(1109)으로 진행하는데, 여기서는, "if" 문("if" statement)이 종료한다. 라인(1110)에서, 미디어 안내 애플리케이션은 (예를 들면, 제어 회로부(304)를 통해) 상태 변수를 0으로 설정한다.
라인(1111)에서, 미디어 안내 애플리케이션은, 상태 변수가 0이 아닌 값으로 설정될 때까지 반복할 while 루프를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 라인(1112)에서, 미디어 안내 애플리케이션은 데이터베이스에 연결하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 함수가 성공적이면, 상태 변수는 0이 아닌 숫자로 설정된다. 소정 수의 시도 이후 연결 시도를 중지시키기 위해, 더 많은 의사 코드가 추가될 수도 있다는 것을 유의해야 한다. 재개 이전에 특정한 양의 시간 동안 연결 시도를 중지하기 위해 다른 의사 코드가 추가될 수도 있다. 데이터베이스를 업데이트하는 특정한 단계에 집중된 상태로 도 11을 유지하기 위해, 그 의사 코드는 포함되지 않았다. 라인(1113)에서, 미디어 안내 애플리케이션은 while 루프의 다음 단계를 (예를 들면, 제어 회로부(304)를 통해) 실행한다.
데이터베이스 연결이 성공적인 경우, 미디어 안내 애플리케이션은, 라인(1114)에서, 업데이트를 데이터베이스로 전송하기 위해, 각각의 업데이트된 엔트리를 반복하도록 "For 루프"를 실행한다. 라인(1115)에서, 미디어 안내 애플리케이션은 프로세싱되고 있는 현재 엔트리로 데이터베이스를 업데이트하기 위한 질의를 생성하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 질의가 생성되면, 라인(1116)에서, 질의는 데이터베이스로 전송된다. 라인(1117)에서, 미디어 안내 애플리케이션은, 업데이트가 성공적인지를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 업데이트가 성공적이지 않으면, 미디어 안내 애플리케이션은 에러를 로그 파일에 기록하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 에러는, 에러가 발생한 이유에 관련되는 임의의 정보를 포함할 수도 있다. 라인(1119)에서, "if" 문이 종료한다. 라인(1120)에서, 미디어 안내 애플리케이션은 "For 루프"의 다음 단계로 이동한다. 라인(1122)에서, 미디어 안내 애플리케이션은 종료 서브 루틴을 실행한다. 예를 들면, 미디어 안내 애플리케이션은 메모리를 정리하고 더 이상 필요로 되지 않는 변수를 제거할 수도 있다.
도 11의 의사 코드는 임의의 수의 프로그래밍 언어로 그리고 다양한 상이한 하드웨어 상에서 구현될 수도 있으며, 원시 함수, 논리 평가, 및 함수 평가의 특정한 선택 및 위치는 제한하는 것으로 의도되지는 않는다는 것을 유의해야 한다. 또한, 코드는, 다양한 논리적 평가의 순서를 조작하기 위해, 단일의 반복 루프가 아닌 병렬로 여러 가지 반복을 수행하기 위해, 또는 입력 또는 최종 출력을 근본적으로 변경하지 않으면서 런타임 및 성능 메트릭을 달리 조작하고 최적화하기 위해, 재코딩될 수도 있거나 또는 재작성될 수도 있다.
상기에서 논의되는 바와 같이, 프로세스(500)의 단계(508)에서, 미디어 안내 애플리케이션은, 디스플레이를 위해, (예를 들면, 제어 회로부(304)를 통해) 제2 복수의 미디어 자산을 생성한다. 도 12의 프로세스(1200)는, 미디어 안내 애플리케이션이 프로세스(500)의 단계(508)에서 사용할 수도 있는 특정한 단계를 예시화한다. 단계(1202)에서, 미디어 안내 애플리케이션은, 미디어 자산 식별자가 디스플레이될 필요가 있는 하나 이상의 콘텐츠 소스 및 시간 기간을 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 예를 들면, 미디어 안내 애플리케이션은, 유저가 5:00 PM과 7:00 PM 사이의 채널 1 내지 채널 5에 대한 스케줄링 정보를 보기를 원한다는 것을 나타내는 입력을 (예를 들면, 유저 입력 인터페이스(31)로부터) 수신할 수도 있다. 응답으로, 미디어 안내 애플리케이션은 5:00 PM과 7:00 PM 사이의 채널 1 내지 채널 5를 갖는 디스플레이 스크린이 디스플레이되어야 한다는 것을 결정할 수도 있다.
단계(1204)에서, 미디어 안내 애플리케이션은 시간 기간 및 하나 이상의 콘텐츠 소스에 기초하여 제2 복수의 미디어 자산 식별자를 (예를 들면, 제어 회로부(304)를 통해) 검색한다. 예를 들면, 미디어 자산 식별자는 데이터베이스에 저장될 수도 있다. 미디어 안내 애플리케이션은 시간 간격(예를 들면, 5:00 PM에서부터 7:00 PM까지) 및 콘텐츠 소스(예를 들면, 채널 1 내지 채널 5)를 검색 파라미터로서 포함하는 질의를 생성할 수도 있다. 미디어 안내 애플리케이션은 미디어 안내 애플리케이션이 상주하는 디바이스의 스토리지(308)에서 미디어 자산 식별자에 대한 검색을 수행할 수도 있다. 대안적으로 또는 추가적으로, 미디어 안내 애플리케이션은 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)에서 미디어 자산 식별자를 검색할 수도 있다. 예를 들면, 미디어 안내 애플리케이션이 스토리지(308)에서 검색 기준에 맞는 어떠한 미디어 자산 식별자도 찾지 못한 경우, 미디어 안내 애플리케이션은 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)에 대해 검색을 수행할 수도 있다.
단계(1206)에서, 미디어 안내 애플리케이션은 적어도 하나의 미디어 자산 식별자가 검색의 결과로서 식별되었는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 검색 결과로서 어떠한 미디어 자산 식별자도 식별되지 않았다면, 프로세스(1200)는 단계(1208)로 이동한다. 단계(1208)에서, 미디어 안내 애플리케이션은, (예를 들면, 유저가 아무 것도 전송되지 않은 채널 및 시간 기간을 선택한 경우에) 어떤 미디어 자산 식별자도 검색 기준을 충족하지 못한다는 것을 유저에게 통지하는 메시지를, 디스플레이를 위해, (예를 들면, 제어 회로부(304)를 통해) 생성한다. 적어도 하나의 미디어 자산 식별자가 발견되면, 프로세스(1200)는 단계(1210)로 이동한다. 단계(1210)에서, 미디어 안내 애플리케이션은, 이전에 선택되지 않은 미디어 자산 식별자가 더 이상 남아 있는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 모든 미디어 자산 식별자가 이전에 선택 되었다면, 프로세스(1200)는 단계(1212)로 이동하는데, 여기서, 프로세스(1200)는 종료한다. 적어도 하나의 미디어 자산 식별자가 이전에 선택되지 않았다면, 프로세스(1200)는 단계(1214)로 이동한다.
단계(1214)에서, 미디어 안내 애플리케이션은, 이전에 선택되지 않은 제2 복수의 미디어 자산 식별자로부터 미디어 자산 식별자를 (예를 들면, 제어 회로부(304)를 통해) 선택한다. 단계(1216)에서, 미디어 안내 애플리케이션은, 선택된 미디어 자산 식별자에 대응하는 미디어 자산 데이터베이스 엔트리를 (예를 들면, 제어 회로부(304)를 통해) 검색한다. 미디어 안내 애플리케이션은, 미디어 자산 식별자의 특정 ID를 포함하는, 데이터베이스에 대한 질의를 생성하는 것에 의해 검색 동작을 수행할 수도 있다. 단계(1218)에서, 미디어 안내 애플리케이션은, 검색된 미디어 자산 데이터베이스 엔트리가 충돌 표시자를 포함하는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 어떠한 충돌 표시자도 미디어 자산 데이터베이스 엔트리에 포함되어 있지 않다는 것을 미디어 안내 애플리케이션이 결정하면, 프로세스(1200)는 단계(1220)로 진행하는데, 여기서, 미디어 안내 애플리케이션은 미디어 자산 식별자를, 디스플레이를 위해, (예를 들면, 디스플레이(312) 상의 제어 회로부(304)를 통해) 생성한다. 예를 들면, 미디어 안내 애플리케이션은, 미디어 자산 데이터베이스 엔트리와 관련되는 데이터를, 디스플레이(예를 들면, 디스플레이(312)) 상에 정보를 렌더링할 수 있는 동일한 디바이스 내의 렌더러로 전송할 수도 있다. 그 다음, 프로세스(1200)는 단계(1210)로 이동한다. 그러나, 미디어 자산 데이터베이스 엔트리가 충돌 표시자를 포함하면, 프로세스(1200)는 단계(1222)로 이동한다.
단계(1222)에서, 미디어 안내 애플리케이션은 충돌 표시자에 대응하는 시각적 표시자를 (예를 들면, 제어 회로부(304)를 통해) 식별한다. 예를 들면, 미디어 안내 애플리케이션에게 다른 시각적 표시자가 이용 가능할 수도 있다. 몇몇 경우에, 미디어 안내 애플리케이션은 대응하는 시각적 표시자에 대한 링크를 충돌 표시자의 일부로서 저장할 수도 있다. 몇몇 경우에, 시각적 표시자는 미디어 자산 데이터베이스 엔트리에 저장될 수도 있고, 미디어 안내 애플리케이션은 그것을 검색할 수도 있다.
단계(1224)에서, 미디어 안내 애플리케이션은, 시각적 표시자를 갖는 선택된 미디어 자산 식별자를, 디스플레이를 위해, (예를 들면, 디스플레이(312) 상의 제어 회로부(304)를 통해) 생성한다. 그 다음, 프로세스(1200)는 단계(1210)로 이동한다.
도 12의 설명은 본 개시의 임의의 다른 실시형태와 함께 사용될 수도 있다는 것이 고려된다. 또한, 프로세스(1200)의 단계는 본 개시의 목적을 진전시키기 위해 대안적인 순서로 또는 병렬로 수행될 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 성능을 높이기 위해 다수의 논리 프로세서 스레드 또는 물리적 프로세서를 사용할 수도 있다. 또한, 프로세스(1200)는 분기 예측을 통합하는 것에 의해 향상될 수도 있다. 프로세스(1200)는 적절하게 구성된 소프트웨어 및 하드웨어의 조합 상에서 구현될 수도 있다는 것, 및 도 3 및 도 4와 관련하여 논의되는 디바이스 또는 기기 중 임의의 것은 프로세스 중 하나 이상의 부분을 구현하기 위해 사용될 수도 있다는 것을 유의해야 한다.
도 13은 프로세스(1200)를 구현하기 위해 사용될 수도 있는 가능한 의사 코드를 예시한다. 도 13의 의사 코드는 임의의 수의 프로그래밍 언어로 그리고 다양하고 상이한 하드웨어 상에서 구현될 수도 있다는 것, 및 스타일 및 포맷은 제한하는 것으로 해석되어서는 안되며, 오히려 프로세스(1200)를 구현하기 위해 사용되는 코드와 부합할 단계 및 프로시져의 일반적인 템플릿인 것으로 간주되어야 한다는 것이 기술 분야에서 숙련된 자에게는 명백할 것이다.
라인(1302)에서, 미디어 안내 애플리케이션은 (예를 들면, 제어 회로부(304)를 통해) 서브 루틴을 실행하여, 변수를 초기화하고 긴급 경고를 수신하기 위한 루틴을 시작할 준비를 한다. 예를 들면, 미디어 안내 애플리케이션은 비일시적인 저장 매체(예를 들면, 스토리지 디바이스(308))로부터 RAM으로 또는 프로세싱 회로부(306)용의 캐시로 (예를 들면, 제어 회로부(304)를 통해) 명령어를 복사할 수도 있다. 미디어 안내 애플리케이션은 루틴(1100)이 종료하는 것에 응답하여 초기화 서브 루틴을 실행할 수도 있다.
라인(1305 및 1306)에서, 미디어 안내 애플리케이션은 디스플레이될 콘텐츠 소스 및 시간을 (예를 들면, 제어 회로부(304)를 통해) 검색한다. 도 12와 관련하여 논의되는 바와 같이, 시간 기간 및 콘텐츠 소스는 유저에 의해 요청될 수도 있다. 라인(1307)에서, 미디어 안내 애플리케이션은, 디스플레이될 필요가 있는 미디어 자산 식별자를 검색하기 위한 질의를 생성하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 라인(1308)에서, 미디어 안내 애플리케이션은 요청된 미디어 자산 식별자에 대해 데이터베이스에게 질의하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 질의는 도 12와 관련하여 설명되는 바와 동일한 방식으로 생성될 수도 있다. 질의에 응답하여, 미디어 안내 애플리케이션은 질의와 매치하는 미디어 자산 식별자를 반환할 수도 있다. 미디어 안내 애플리케이션은 어레이 또는 다른 적절한 데이터 구조에 미디어 자산 식별자를 저장할 수도 있다.
라인(1309)에서, 미디어 안내 애플리케이션은 어레이가 임의의 데이터를 포함하는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 어레이가 어떠한 데이터도 포함하지 않으면, 미디어 안내 애플리케이션은 라인(1322)에서 종료 서브 루틴을 실행한다. 어레이가 적어도 몇몇 데이터를 포함하면, 미디어 안내 애플리케이션은, 라인(1310)에서, 각각의 발견된 미디어 자산 식별자를 반복하는 "for 루프"를 (예를 들면, 제어 회로부(304)를 통해) 실행한다.
라인(1311)에서, 미디어 안내 애플리케이션은, 데이터베이스 엔트리와 관련되는 데이터를 검색하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행하고 그 데이터를 변수에 저장한다. 라인(1312)에서, 미디어 안내 애플리케이션은, 데이터가 충돌 표시자를 포함하는지의 여부를 (예를 들면, 제어 회로부(304)를 통해) 결정한다. 어떠한 충돌 표시자도 포함되지 않으면, 데이터는 렌더링될 디스플레이에 추가된다. 충돌 표시자가 데이터에 포함되는 경우, 미디어 안내 애플리케이션은, 라인(1313)에서, 충돌 표시자와 관련되는 시각적 표시자를 찾아 내고 검색하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 미디어 안내 애플리케이션은 도 12와 관련하여 설명되는 임의의 방식으로 이 동작을 수행할 수도 있다. 라인(1314)에서, 미디어 안내 애플리케이션은, 디스플레이될 스크린에 미디어 자산 식별자 및 표시자를 추가하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 라인(1318)에서, 미디어 안내 애플리케이션은 "for 루프"의 다음 단계를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 라인(1319)에서, 미디어 안내 애플리케이션은 디스플레이를 위해 데이터를 렌더링하는 함수를 (예를 들면, 제어 회로부(304)를 통해) 실행한다. 라인(1322)에서, 미디어 안내 애플리케이션은 종료 서브 루틴을 실행한다. 예를 들면, 미디어 안내 애플리케이션은 메모리를 정리하고 더 이상 필요로 되지 않는 변수를 제거할 수도 있다.
도 13의 의사 코드는 임의의 수의 프로그래밍 언어로 그리고 다양한 상이한 하드웨어 상에서 구현될 수도 있으며, 원시 함수, 논리 평가, 및 함수 평가의 특정한 선택 및 위치는 제한하는 것으로 의도되지는 않는다는 것을 유의해야 한다. 또한, 코드는, 다양한 논리적 평가의 순서를 조작하기 위해, 단일의 반복 루프가 아닌 병렬로 여러 가지 반복을 수행하기 위해, 또는 입력 또는 최종 출력을 근본적으로 변경하지 않으면서 런타임 및 성능 메트릭을 달리 조작하고 최적화하기 위해, 재코딩될 수도 있거나 또는 재작성될 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 상이한 우선 순위의 이벤트와 중첩하는 미디어 자산을 유저가 시각적으로 구별하는 것을 가능하게 할 수도 있다. 구체적으로, 미디어 안내 애플리케이션은, 복수의 이벤트 중, 제1 부분의 제1 미디어 자산 식별자에 대응하는 제1 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제1 이벤트의 제1 우선 순위를 결정할 수도 있다. 예를 들면, 캘린더 데이터는, 미디어 안내 애플리케이션이 캘린더 애플리케이션으로부터 검색하는 우선 순위 데이터를 가질 수도 있다. 미디어 안내 애플리케이션은, 특정 이벤트에 대한 이벤트 데이터베이스 엔트리에 단순히 액세스하는 것에 의해, 이벤트의 우선 순위를 결정할 수도 있다. 추가적으로 또는 대안적으로, 미디어 안내 애플리케이션은, 이벤트의 일부인 키워드에 기초하여 각각의 이벤트의 우선 순위를 결정할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은, 매치되는 경우 이벤트를 높은 우선 순위로 올릴 수도 있는 키워드의 세트에 액세스할 수도 있다. 미디어 안내 애플리케이션은, 임의의 키워드가 매치하는지의 여부를 결정하기 위해, 이벤트 데이터베이스 엔트리의 모든 단어를 키워드에 대해 매칭시킬 수도 있다. 몇몇 실시형태에서, 하나의 키워드가 매치하면, 이벤트는 높은 우선 순위 이벤트로서 지정될 수도 있다.
다른 실시형태에서, 이벤트가 높은 우선 순위의 이벤트로 상승하기 위해서는, 임계 수의 단어가 매치하여야 한다. 임계치는 유저에 의해 또는 시스템의 관리자에 의해 설정될 수도 있다. 몇몇 실시형태에서, 각각의 키워드는 가중치와 관련될 수도 있고 임계 값은 가중된 값일 수도 있다. 따라서, 적절한 가중 값을 가진 충분한 키워드가 매치하면, 이벤트는 높은 우선 순위 이벤트로 상승될 수도 있다.
미디어 안내 애플리케이션은, 복수의 이벤트 중, 제1 부분의 제2 미디어 자산 식별자에 대응하는 제2 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제2 이벤트의 제2 우선 순위를 결정할 수도 있다. 제2 우선 순위는 제1 우선 순위와 정확히 동일한 방식으로 결정될 수도 있다.
미디어 안내 애플리케이션은, 제1 우선 순위가 제2 우선 순위와는 상이한 것에 기초하여, 제1 부분의 제1 미디어 자산 식별자를 제1 부분의 제2 미디어 자산 식별자와는 시각적으로 구별할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 높은 우선 순위와 관련되는 미디어 자산 식별자를 적색으로 그리고 낮은 우선 순위를 녹색으로 렌더링할 수도 있다.
몇몇 실시형태에서, 상이한 시각적 표시자는 상이한 우선 순위와 관련될 수도 있고, 미디어 안내 애플리케이션은 유저가 상이한 시각적 표시자를 통해 상이한 우선 순위 이벤트와 중첩하는 미디어 자산을 시각적으로 구별하는 것을 가능하게 할 수도 있다. 구체적으로, 미디어 안내 애플리케이션은, 제1 우선 순위와 관련되는 제1 시각적 표시자 및 제2 우선 순위와 관련되는 제2 시각적 표시자를 저장할 수도 있다. 미디어 안내 애플리케이션은, 이들 표시자를, 대응하는 우선 순위와 함께 데이터베이스 테이블에 저장할 수도 있다. 미디어 안내 애플리케이션은, 제1 시각적 표시자를 갖는 제1 미디어 자산 식별자 및 제2 시각적 표시자를 갖는 제2 미디어 자산 식별자를, 디스플레이를 위해, 생성할 수도 있다.
도 14는 상이한 우선 순위에 대한 상이한 시각적 표시자를 포함하는 하나의 가능한 디스플레이를 예시화한다. 디스플레이(1400)의 영역(1404)은, 수평 스케일(1406) 상의 상이한 시간 기간 및 수직 축(1420) 상의 채널 번호의 그리드 디스플레이를 포함한다. "Game of Thrones(왕좌의 게임)"에 대응하는 미디어 자산 식별자(1412)는, "Game of Thrones"이 낮은 우선 순위 이벤트와 중첩한다는 것을 유저에게 나타내는 하나의 방식으로 음영 처리된다. 미디어 자산 식별자(1408)는 상이한 음영을 통해 미디어 자산 식별자(1412)와는 시각적으로 구별된다. 이 경우, 미디어 자산 식별자(1408)는 높은 우선 순위 이벤트와 중첩하는 미디어 자산에 대응한다. 미디어 자산 식별자(1410)는 또한, 높은 우선 순위 이벤트와의 중첩을 나타내기 위해 음영 처리된다. 그러나, 이 미디어 자산 식별자의 일부만이 이벤트와 중첩한다는 것을 유저에게 나타내기 위해, 미디어 자산 식별자(1410)의 일부만이 음영 처리된다. "News(뉴스)"를 나타내는 미디어 자산 식별자(1416)는, 이 미디어 자산 식별자와 관련되는 미디어 자산이 어떠한 이벤트와도 중첩되지 않는다는 것을 나타내기 위해, 음영 처리되지 않는다. 범례(1418)는 유저에게 각각의 타입의 음영의 의미를 나타낸다. 상이한 우선 순위에 대해 상이한 음영이 사용될 수도 있다는 것을 유의해야 한다. 또한, 상이한 음영을 가지고 도 14에서 다른 우선 순위를 포함하는 것도 가능하다는 것을 유의해야 한다. 특정 방식으로 미디어 자산 식별자를 음영 처리하는 대신, 미디어 자산 식별자는 상이한 컬러를 가질 수도 있다는 것을 또한 유의해야 한다(예를 들면, 높은 우선 순위 이벤트와 중첩하는 경우 적색, 낮은 우선 순위 이벤트와 중첩하는 경우 녹색, 그리고 중첩하지 않는 경우 청색).
영역(1402)은 현재 선택된 미디어 자산(1408) "Will and Grace(윌과 그레이스)"에 대한 더 많은 정보를 제공한다. 영역(1402)의 내부에서, 영역(1414)은 이벤트 "Will and Grace(윌과 그레이스)"에 관한 몇몇 세부 사항, 구체적으로는, 이벤트의 설명, 시작 시간 및 종료 시간을 나타낸다. 또한, "Will and Grace(윌과 그레이스)"는 높은 우선 순위 이벤트와 중첩하기 때문에, 이벤트를 재스케줄링하기 위한 옵션이 존재하지 않는다는 것을 유의해야 한다. 대신, 영역(1414) 내부의 유저에게는, 미디어 자산을 기록하기 위한 옵션이 이용 가능하다.
몇몇 실시형태에서, 도 14에서 설명되는 바와 같이, 미디어 안내 애플리케이션은 유저가 중첩하는 이벤트를 재스케줄링하는 것을 가능하게 할 수도 있다. 구체적으로, 미디어 안내 애플리케이션은, 복수의 이벤트 중, 재스케줄링될(rescheduled) 수도 있는 이벤트에 제1 우선 순위를, 그리고 복수의 이벤트 중 재스케줄링되지 않을 수도 있는 이벤트에 제2 우선 순위를 할당할 수도 있다. 제1 미디어 자산 식별자의 유저 선택에 응답하여, 미디어 안내 애플리케이션은, 제1 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성할 수도 있고, 제1 이벤트를 재스케줄링하기 위한 옵션을 유저에게 제공할 수도 있다. 유저가 중첩하는 이벤트를 재스케줄링하기 위한 옵션을 선택하면, 미디어 안내 애플리케이션은, 이벤트의 세부 사항(예를 들면, 시작 시간, 종료 시간, 설명, 제목, 미리 알림 정보, 등등)을 포함할 수도 있는 형식(form)을, 디스플레이를 위해, 생성할 수도 있다. 미디어 안내 애플리케이션은, 유저가 정보를 편집하는 것을 가능하게 할 수도 있다. 일단 유저가 정보 편집을 완료하면, 유저는 편집된 형식을 제출할 수도 있다. 미디어 안내 애플리케이션은, 유저가 이벤트 편집을 완료했다는 표시를 (예를 들면, 유저가 제출 옵션을 선택하는 것에 의해) 유저로부터 수신할 수도 있다. 그 다음, 미디어 안내 애플리케이션은 편집된 이벤트를 캘린더 애플리케이션으로 전송할 수도 있고 미디어 자산 식별자의 데이터베이스를 업데이트하여 적절한 미디어 자산 식별자로부터 충돌 표시자를 제거할 수도 있다.
제2 미디어 자산 식별자의 유저 선택에 응답하여, 미디어 안내 애플리케이션은, 제2 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성할 수도 있고 제2 미디어 자산을 기록하기 위한 옵션을 유저에게 제공할 수도 있다. 미디어 안내 애플리케이션은, 미디어 자산을 기록하는 또는, 미디어 자산이 실제로 시리즈의 일부인 경우, 미디어 자산이 관련되는 시리즈를 기록하는 하나 이상의 옵션을, 디스플레이를 위해, 생성할 수도 있다.
몇몇 실시형태에서, 미디어 자산 안내 애플리케이션은, 영역(1404)에서, 미디어 자산의 시리즈에 관한 정보를, 디스플레이를 위해, 생성할 수도 있고 중첩 정보를 디스플레이에 포함할 수도 있다. 본원에서 언급되는 바와 같이, 용어 "시리즈"는, 공통 특성을 공유하는 복수의 미디어 자산을 지칭한다. 예를 들면, 미디어 안내 애플리케이션은 시리즈와 관련되는 미디어 자산에 대응하는 미디어 자산 식별자(예를 들면, NBA 파이널의 게임 1 내지 7에 대응하는 미디어 자산 식별자), 디스플레이를 위해, 생성할 수도 있다. 이 경우에, 미디어 안내 애플리케이션은, 적어도 하나의 이벤트와 중첩하는 각각의 게임과 함께, 이들 게임을 이벤트와 중첩되지 않는 게임으로부터 시각적으로 구별하는 시각적 표시자를, 디스플레이를 위해, 생성할 수도 있다. 몇몇 실시형태에서, 미디어 안내 애플리케이션은, 적어도 하나의 이벤트와 중첩하는 미디어 자산에 대응하는 디스플레이된 미디어 자산 식별자 중 하나를 유저가 선택하는 것에 응답하여, 중첩하는 이벤트의 세부 사항을, 디스플레이를 위해, 생성할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 몇몇 이벤트에 제3 우선 순위(예컨대, 중간 우선 순위)를 할당할 수도 있다. 예를 들면, 중간 우선 순위 이벤트는, 소정의 상황 하에서 이동될 수 있는 이벤트일 수도 있다. 중간 우선 순위 이벤트와 중첩하는 미디어 자산에 해당하는 미디어 자산 식별자의 경우, 미디어 안내 애플리케이션은, 이벤트의 다른 참가자에게 재스케줄링 요청을 전송하기 위한 옵션을 유저에게 제공할 수도 있다(예를 들면, 디스플레이를 위해, 생성할 수도 있다). 미디어 안내 애플리케이션은 또한, 재스케줄링 요청이 수용 가능한지의 여부에 관한 응답을 다른 참가자로부터 수신할 수도 있다. 모든 다른 참가자가 동의하면, 미디어 안내 애플리케이션은 이벤트 일정을 재스케줄링하고 유저에게 변경을 통지하도록 진행할 수도 있다. 모든 참가자가 동의하지 않으면, 미디어 안내 애플리케이션은 이벤트를 재스케줄링하지 않을 수도 있다.
몇몇 실시형태에서, 제1 부분의 미디어 자산 식별자는 제1 타입의 표시자에 의해 제2 부분의 미디어 자산 식별자와는 시각적으로 구별되고, 제1 미디어 자산 식별자는 제2 타입의 표시자를 갖는 제2 미디어 자산 식별자와는 시각적으로 구별된다. 예를 들면, 제1 부분의 미디어 자산 식별자(즉, 적어도 하나의 이벤트와 중첩하는 미디어 자산에 대응함)는 제1 부분의 미디어 자산 식별자와는 상이한 컬러(예를 들면, 적색 대 청색)에 의해 구별될 수도 있다. 또한, 높은 우선 순위 이벤트와 중첩하는 미디어 자산에 대응하는 미디어 자산 식별자는, 낮은 우선 순위 이벤트와 중첩하는 미디어 자산에 대응하는 미디어 자산 식별자가 아이콘을 구비하지 않을 수도 있거나 또는 상이한 아이콘을 가질 수도 있다는 것을 나타내는 아이콘을 포함할 수도 있다. 표시자의 타입의 예는, 컬러, 음영, 아이콘, 텍스트 표시를 포함할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 복수의 이벤트의 이벤트 시간 간격을 제1 복수의 미디어 자산의 미디어 자산 시간 간격과 비교할 때, 다음의 단계를 수행할 수도 있다. 미디어 안내 애플리케이션은, 복수의 이벤트 중 제1 이벤트에 대해, 제1 시작 시간 및 제1 종료 시간을 검색할 수도 있다. 예를 들면, 제1 이벤트는, 미디어 안내 데이터베이스가 상주하는 동일한 디바이스 상의 데이터베이스에, 즉 스토리지(308)에 저장될 수도 있다. 추가적으로 또는 대안적으로, 제1 이벤트는 상이한 위치(예를 들면, 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418))에 저장될 수도 있다. 이들 경우, 미디어 안내 애플리케이션은, 네트워크(예를 들면, 통신 네트워크(414))를 통해 원격 소스로부터 제1 이벤트를 검색할 수도 있다.
미디어 안내 애플리케이션은, 제1 복수의 미디어 자산의 제1 미디어 자산에 대해, 제2 시작 시간 및 제2 종료 시간을 검색할 수도 있다. 제1 미디어 자산은 제1 이벤트와 동일한 위치로부터 검색될 수도 있다. 이벤트와 미디어 자산 식별자 둘 다는 동일한 데이터베이스 또는 상이한 데이터베이스에 저장될 수도 있다는 것을 유의해야 한다. 미디어 안내 애플리케이션은 제1 시작 시간을 제2 시작 시간 및 제2 종료 시간과 비교하고 제1 종료 시간을 제2 시작 시간 및 제2 종료 시간과 비교할 수도 있다. 미디어 안내 애플리케이션은, 중첩이 존재하는지의 여부를 결정하기 위해, 날짜와 시간 사이의 직접적인 수학적 비교를 행할 수도 있다. 제1 시작 시간 또는 제1 종료 시간이 제2 시작 시간과 제2 종료 시간 사이에 속한다는 것을 결정하는 것에 기초하여, 미디어 안내 애플리케이션은 제1 미디어 자산에 대해 제1 충돌 표시자를 생성할 수도 있다. 제1 충돌 표시자는, 중첩하는 이벤트의 우선 순위 및 그 우선 순위에 대한 지정된 표시자를 결정하는 것에 의해 생성될 수도 있다. 상기에서 설명되는 바와 같이, 충돌 표시자는 이벤트에 대한 포인터를 포함할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 유저가 소비하고자 하는 미디어 자산의 미디어 자산 전송 시간에 기초하여 유저가 이벤트를 생성하는 것을 가능하게 할 수도 있다. 구체적으로, 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 미디어 안내 애플리케이션은, 제1 미디어 자산 식별자와 관련되는 제1 미디어 자산에 대응하는 새로운 이벤트를 생성하기 위한 옵션을, 디스플레이를 위해, 생성할 수도 있다. 옵션의 유저 선택에 응답하여, 미디어 안내 애플리케이션은, 제1 미디어 자산의 미디어 자산 시작 시간 및 미디어 자산 종료 시간에 각각 대응하는 이벤트 시작 시간 및 이벤트 종료 시간을 갖는 새로운 이벤트를 생성할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 새로운 이벤트를 생성하기 위해 유저가 편집할 수도 있는 형태를, 디스플레이를 위해, 생성할 수도 있다. 형식은, 다른 적절한 정보와 함께, 미디어 자산의 시작 시간, 미디어 자산의 종료 시간, 및 제목으로 미리 채워질 수도 있다. 유저가 형식 편집을 완료하면, 미디어 안내 애플리케이션은 이벤트를 생성하기 위한 유저 입력을 수신할 수도 있다. 미디어 안내 애플리케이션은 새로운 이벤트를 캘린더 애플리케이션으로 전송할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 유저가 미래의 시간에 대해 스케줄링되어 있는 미디어 자산을 소비하도록 다른 유저를 초대하는 것을 가능하게 할 수도 있다. 구체적으로, 미디어 안내 애플리케이션은, 다른 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터를 캘린더 애플리케이션으로부터 수신할 수도 있는데, 여기서, 상이한 유저와 관련되는 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함한다. 미디어 안내 애플리케이션은 도 6과 관련하여 설명되는 바와 동일한 방식으로 캘린더 데이터를 검색할 수도 있다.
제2 복수의 미디어 자산의 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 미디어 안내 애플리케이션은, 제1 미디어 자산 식별자와 관련되는 미디어 자산의 전송 시간이, 이벤트 시간 간격 중, 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하는지의 여부를 결정할 수도 있다. 미디어 안내 애플리케이션은 도 8 및 도 10과 관련하여 설명되는 바와 동일한 방식으로 결정을 행할 수도 있다. 제1 미디어 자산 식별자와 관련되는 미디어 자산이 이벤트 시간 간격 중, 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하지 않는다는 것을 결정하는 것에 기초하여, 미디어 안내 애플리케이션은, 제1 미디어 자산 식별자와 관련되는 미디어 자산을 소비하도록 상이한 유저를 초대하기 위한 옵션을, 디스플레이를 위해, 생성할 수도 있다. 유저가 옵션을 선택하는 경우, 미디어 안내 애플리케이션은 다른 유저와 통신하기 위한 수단을 결정할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은, 다른 유저의 이메일 주소 또는 소셜 네트워크 유저명에 대해 유저에게 촉구할 수도 있다. 그 다음, 미디어 안내 애플리케이션은 이메일 주소 또는 다른 유저의 소셜 네트워크 계정으로 메시지를 전송할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 유저의 소셜 네트워킹 친구 중 어떤 친구가 특정한 미디어 자산을 소비 또는 기록하도록 스케줄링되어 있는지를 유저가 결정하는 것을 가능하게 할 수도 있다. 구체적으로, 미디어 안내 애플리케이션은, 소셜 네트워킹 애플리케이션과 관련되는 서버로부터, 유저의 친구와 관련되는 복수의 유저 식별자를 검색할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은, 유저에게, 소셜 네트워킹 인증 정보를 입력할 것을 재촉할 수도 있다. 추가적으로 또는 대안적으로, 미디어 안내 애플리케이션은 유저의 소셜 네트워킹 자격 정보(credential)를 이미 (예를 들면, 스토리지(308)에) 저장했을 수도 있다. 미디어 안내 애플리케이션은 초기 셋업 동안 유저의 소셜 네트워킹 자격 증명을 요구하도록 구성될 수도 있다.
미디어 안내 애플리케이션은, 복수의 유저 식별자 내의 각각의 유저 식별자에 대해, 각각의 친구와 관련되는 복수의 이벤트에 대한 캘린더 데이터를 검색할 수도 있는데, 여기서, 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함한다. 미디어 안내 애플리케이션은 도 6에서 설명되는 임의의 프로세스에 의해 캘린더 데이터를 검색할 수도 있다. 또한, 미디어 안내 애플리케이션은 소셜 네트워킹 애플리케이션에 액세스하는 것에 의해 친구의 이메일 주소를 결정할 수도 있다. 그 다음, 미디어 안내 애플리케이션은 친구의 이메일 주소를 사용하여 친구의 캘린더 데이터에 액세스할 수도 있다.
제2 복수의 미디어 자산 식별자의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 미디어 안내 애플리케이션은, 제1 미디어 자산 식별자에 대응하는 미디어 자산을 소비하도록 스케줄링되어 있는 유저의 친구와 관련되는 하나 이상의 유저 식별자를, 디스플레이를 위해, 생성할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 소셜 네트워킹 애플리케이션으로부터 친구의 유저명을, 디스플레이를 위해, 생성할 수도 있다. 추가적으로 또는 대안적으로, 미디어 안내 애플리케이션은 소셜 네트워킹 애플리케이션으로부터 검색되는 친구의 화상을, 디스플레이를 위해, 생성할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 유저가 특정 이벤트를 취소할 때 인스턴스에서 중첩을 제거하도록 구성될 수도 있다. 주기적으로, 미디어 안내 애플리케이션은 시간 간격을 포함하는 캘린더 데이터를 캘린더 애플리케이션으로부터 검색할 수도 있다. 미디어 안내 애플리케이션은 현존하는 이벤트를 검색된 이벤트에 비교할 수 있고, 검색된 이벤트에도 포함되지 않는 임의의 현존하는 이벤트의 경우, 미디어 안내 애플리케이션은 현존하는 이벤트로부터 이들 이벤트를 제거할 수도 있고, 또한, 적절한 미디어 자산 식별자 및 그들의 미디어 자산 데이터베이스 엔트리로부터 충돌 표시자를 제거할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은 유저에 대한 다수의 캘린더를 검색할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 작업 캘린더 및 개인 캘린더를 검색할 수도 있다. 몇몇 경우에, 업무 캘린더로부터의 이벤트는 "높은" 우선 순위로 지정될 수도 있고 개인 캘린더로부터의 이벤트는 "낮은" 우선 순위 이벤트로 지정될 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 미디어 자산이 요구에 따라 이용 가능한 경우, 상이한 시간에 이벤트와 중첩하는 미디어 자산을 소비를 위해 스케줄링하기 위한 옵션을 유저에게 제공할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은 이벤트와 중첩하는 미디어 자산에 대응하는 미디어 자산 식별자의 유저 선택을 수신할 수도 있다. 미디어 안내 애플리케이션은, 미디어 자산이 요구에 따라 이용 가능한지의 여부를 결정하기 위해 주문형 미디어 자산을 검색할 수도 있다. 미디어 자산이 요구에 따라 이용 가능한 경우, 미디어 안내 애플리케이션은 유저가 나타내는 시간에서의 소비를 위해 미디어 자산을 스케줄링하는 유저에 대한 옵션을, 디스플레이를 위해, 생성할 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 미디어 자산 전송 시간이 이벤트와 중첩하지 않지만, 그러나 이벤트까지의 또는 이벤트로부터의 이동 시간(travel time)과 중첩할 수도 있는 경우에 유저에게 중첩을 경고할 수도 있다. 예를 들면, 유저가 2:00 PM 비행기 여행이 있고 미디어 자산이 1:45에 종료하는 경우, 미디어 안내 애플리케이션은 그 미디어 자산을 시각적으로 구별할 수도 있는데, 그 이유는 유저가 공항까지 이동하는 데 시간이 걸릴 것이고 비행기가 출발하기 소정 양의 시간(예를 들면, 두 시간) 이전에 공항에 나타나야 할 필요가 있을 수도 있기 때문이다. 미디어 안내 애플리케이션은 이벤트를 분석하여 이벤트의 위치를 결정할 수도 있다. 미디어 안내 애플리케이션은 이벤트와 관련되는 요소 중 하나로서 캘린더 애플리케이션으로부터 이벤트의 위치를 수신할 수도 있다. 그 다음, 미디어 안내 애플리케이션은 그 시간을 이벤트의 시작 시간 또는 종료 시간에 더하여 중첩 시간을 늘릴 수도 있다.
몇몇 실시형태에서, 미디어 안내 애플리케이션은, 이벤트의 위치 및 이벤트와 관련된 키워드(예를 들면, 이벤트의 설명)를, 공지의 이벤트 타입과 비교하여, 시작 시간 소정 양의 시간 이전에 이벤트에 대해 도달할 것을 유저가 요구 받는지의 여부를 결정할 수도 있다. 예를 들면, 미디어 안내 애플리케이션은, 비행기 출발, 열차 출발, 등등과 같은 이벤트 타입을 포함하는 테이블에 액세스할 수도 있다. 미디어 안내 애플리케이션에 의해 프로세싱되고 있는 이벤트에 대응하는 이벤트를 미디어 안내 애플리케이션이 테이블에서 식별하면, 미디어 안내 애플리케이션은, 그 양의 시간을, 시작 시간 또는 종료 시간(예를 들면, 유저가 공항에서부터 여행하는 경우)에 더하여 중첩을 늘릴 수도 있다. 몇몇 경우에, 이벤트는 테이블의 이벤트의 타입과 매치하지 않을 것이고, 따라서, 중첩 시간은 더 이상 늘어나지 않을 것이다는 것을 유의해야 한다. 테이블은 스토리지(308)에 위치되는 데이터베이스에 저장될 수도 있다. 추가적으로 또는 대안적으로, 테이블은 미디어 콘텐츠 소스(416) 및/또는 미디어 안내 데이터 소스(418)에 위치되는 데이터베이스에 저장될 수도 있다.
본 개시의 상기에서 설명된 실시형태는, 제한이 아니라 예시의 목적을 위해 제시되며, 본 개시는 다음의 청구범위에 의해서만 제한된다. 또한, 임의의 하나의 실시형태에서 설명되는 피쳐 및 제한은, 본원의 임의의 다른 실시형태에 적용될 수도 있다는 것, 및 하나의 실시형태에 관련이 있는 플로우차트 또는 예는 적절한 방식으로 임의의 다른 실시형태와 결합될 수도 있거나, 상이한 순서로 행해질 수도 있거나, 또는 병렬로 행해질 수도 있다는 것을 유의해야 한다. 또한, 본원에서 설명되는 시스템 및 방법은 실시간으로 수행될 수도 있다. 상기에서 설명되는 시스템 및/또는 방법은, 다른 시스템 및/또는 방법에 적용될 수도 있다는 것, 또는 다른 시스템 및/또는 방법에 따라 사용될 수도 있다는 것을 또한 유의해야 한다.

Claims (50)

  1. 미디어 안내 애플리케이션에서 캘린더에 있는 정보(calendaring information)를 제시하기 위한 방법으로서,
    캘린더 애플리케이션으로부터, 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 수신하는 단계;
    상기 복수의 이벤트의 상기 이벤트 시간 간격을, 제1 복수의 미디어 자산의 미디어 자산 시간 간격 - 상기 제1 복수의 미디어 자산의 각각의 미디어 자산은 관련된 미디어 자산 시작 시간 및 종료 시간을 가지며 대응하는 미디어 자산 시간 간격 동안 복수의 유저에 대한 전송을 위해 스케줄링됨 - 과 비교하는 단계;
    상기 비교에 기초하여, 제2 복수의 미디어 자산 - 상기 제2 복수의 미디어 자산은, 상기 이벤트 시간 간격 중 적어도 하나와 적어도 부분적으로 중첩하는 관련된 미디어 자산 시간 간격을 갖는 상기 제1 복수의 미디어 자산으로부터의 미디어 자산을 포함함 - 에 대응하는 제1 복수의 미디어 자산 식별자에 대해, 충돌 표시자(conflict indicator)를, 대응하는 미디어 자산 데이터베이스 엔트리에 저장하는 단계; 및
    어떤 시간 기간 동안 상기 복수의 유저에 대한 전송을 위해 스케줄링되어 있는 미디어 자산에 대응하는 제2 복수의 미디어 자산 식별자 - 상기 제2 복수의 미디어 자산 식별자는 상기 제1 복수의 미디어 자산 식별자에 포함되는 미디어 자산 식별자를 포함하는 제1 부분 및 상기 제1 복수의 미디어 자산 식별자에 포함되지 않는 미디어 자산 식별자를 포함하는 제2 부분을 포함하고, 상기 제1 부분의 상기 미디어 자산 식별자는 상기 제2 부분의 상기 미디어 자산 식별자와는 시각적으로 구별됨 - 를, 디스플레이를 위해, 생성하는 단계
    를 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  2. 제1항에 있어서,
    상기 복수의 이벤트 중, 상기 제1 부분의 제1 미디어 자산 식별자에 대응하는 제1 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제1 이벤트의 제1 우선 순위를 결정하는 단계;
    상기 복수의 이벤트 중, 상기 제1 부분의 제2 미디어 자산 식별자에 대응하는 제2 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제2 이벤트의 제2 우선 순위를 결정하는 단계; 및
    상기 제1 우선 순위가 상기 제2 우선 순위와는 상이한 것에 기초하여, 상기 제1 부분의 상기 제1 미디어 자산 식별자를 상기 제1 부분의 상기 제2 미디어 자산 식별자와는 시각적으로 구별하는 단계
    를 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  3. 제2항에 있어서,
    상기 제1 우선 순위와 관련되는 제1 시각적 표시자 및 상기 제2 우선 순위와 관련되는 제2 시각적 표시자를 저장하는 단계; 및
    상기 제1 시각적 표시자를 갖는 상기 제1 미디어 자산 식별자 및 상기 제2 시각적 표시자를 갖는 상기 제2 미디어 자산 식별자를, 디스플레이를 위해, 생성하는 단계
    를 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  4. 제2항에 있어서,
    상기 복수의 이벤트 중 재스케줄링될 수도 있는 이벤트에 상기 제1 우선 순위를 그리고 상기 복수의 이벤트 중 재스케줄링되지 않을 수도 있는 이벤트에 상기 제2 우선 순위를 할당하는 단계;
    상기 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성하고 상기 제1 이벤트를 재스케줄링하기 위한 옵션을 유저에게 제공하는 단계; 및
    상기 제2 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제2 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성하고 상기 제2 미디어 자산을 기록하기 위한 옵션을 상기 유저에게 제공하는 단계
    를 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  5. 제2항에 있어서,
    상기 제1 부분의 상기 미디어 자산 식별자는, 제1 타입의 표시자에 의해 상기 제2 부분의 상기 미디어 자산 식별자와는 시각적으로 구별되고, 상기 제1 미디어 자산 식별자는 제2 타입의 표시자를 갖는 상기 제2 미디어 자산 식별자와는 시각적으로 구별되는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  6. 제5항에 있어서,
    표시자의 타입은 컬러, 음영, 및 아이콘을 포함하는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  7. 제1항에 있어서,
    상기 복수의 이벤트의 상기 이벤트 시간 간격을, 상기 제1 복수의 미디어 자산의 상기 미디어 자산 시간 간격과 비교하는 단계는:
    상기 복수의 이벤트의 제1 이벤트에 대해, 제1 시작 시간 및 제1 종료 시간을 검색하는(retrieving) 단계;
    상기 제1 복수의 미디어 자산의 제1 미디어 자산에 대해, 제2 시작 시간 및 제2 종료 시간을 검색하는 단계;
    상기 제1 시작 시간을 상기 제2 시작 시간 및 상기 제2 종료 시간과 비교하고 상기 제1 종료 시간을 상기 제2 시작 시간 및 상기 제2 종료 시간과 비교하는 단계; 및
    상기 제1 시작 시간 또는 상기 제1 종료 시간이 상기 제2 시작 시간과 상기 제2 종료 시간 사이에 속한다는 것을 결정하는 것에 기초하여, 상기 제1 미디어 자산에 대해 제1 충돌 표시자를 생성하는 단계
    를 포함하는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  8. 제1항에 있어서,
    상기 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자와 관련되는 제1 미디어 자산에 대응하는 새로운 이벤트를 생성하기 위한 옵션을, 디스플레이를 위해, 생성하는 단계;
    상기 옵션의 유저 선택에 응답하여, 상기 제1 미디어 자산의 미디어 자산 시작 시간 및 미디어 자산 종료 시간에 각각 대응하는 이벤트 시작 시간 및 이벤트 종료 시간을 갖는 상기 새로운 이벤트를 생성하는 단계; 및
    상기 새로운 이벤트를 상기 캘린더 애플리케이션으로 전송하는 단계
    를 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  9. 제1항에 있어서,
    상기 캘린더 애플리케이션으로부터, 상이한 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 상이한 유저와 관련되는 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 수신하는 단계;
    상기 제2 복수의 미디어 자산의 상기 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자와 관련되는 미디어 자산의 전송 시간이, 상기 이벤트 시간 간격 중, 상기 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하는지의 여부를 결정하는 단계; 및
    상기 제1 미디어 자산 식별자와 관련되는 상기 미디어 자산의 상기 전송 시간이, 상기 이벤트 시간 간격 중, 상기 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하지 않는다는 것을 결정하는 것에 기초하여, 상기 제1 미디어 자산 식별자와 관련되는 상기 미디어 자산을 소비하도록 상기 상이한 유저를 초대하기 위한 옵션을, 디스플레이를 위해, 생성하는 단계
    를 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  10. 제1항에 있어서,
    소셜 네트워킹 애플리케이션과 관련되는 서버로부터, 상기 유저의 친구와 관련되는 복수의 유저 식별자를 검색하는 단계;
    상기 복수의 유저 식별자 내의 각각의 유저 식별자에 대해, 각각의 친구와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 검색하는 단계;
    상기 제2 복수의 미디어 자산 식별자의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자에 대응하는 미디어 자산을 소비하도록 스케줄링되어 있는 상기 유저의 친구와 관련되는 하나 이상의 유저 식별자를, 디스플레이를 위해, 생성하는 단계
    를 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  11. 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템으로서,
    스토리지 디바이스;
    통신 회로부; 및
    제어 회로부를 포함하고,
    상기 제어 회로부는:
    통신 회로부를 통해 캘린더 애플리케이션으로부터, 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 수신하도록;
    상기 복수의 이벤트의 상기 이벤트 시간 간격을, 제1 복수의 미디어 자산의 미디어 자산 시간 간격 - 상기 제1 복수의 미디어 자산의 각각의 미디어 자산은 관련된 미디어 자산 시작 시간 및 종료 시간을 가지며 대응하는 미디어 자산 시간 간격 동안 복수의 유저에 대한 전송을 위해 스케줄링됨 - 과 비교하도록;
    상기 비교에 기초하여, 제2 복수의 미디어 자산 - 상기 제2 복수의 미디어 자산은, 상기 이벤트 시간 간격 중 적어도 하나와 적어도 부분적으로 중첩하는 관련된 미디어 자산 시간 간격을 갖는 상기 제1 복수의 미디어 자산으로부터의 미디어 자산을 포함함 - 에 대응하는 제1 복수의 미디어 자산 식별자에 대해, 충돌 표시자를, 상기 스토리지 디바이스에서, 대응하는 미디어 자산 데이터베이스 엔트리에 저장하도록; 그리고
    어떤 시간 기간 동안 상기 복수의 유저에 대한 전송을 위해 스케줄링되어 있는 미디어 자산에 대응하는 제2 복수의 미디어 자산 식별자 - 상기 제2 복수의 미디어 자산 식별자는 상기 제1 복수의 미디어 자산 식별자에 포함되는 미디어 자산 식별자를 포함하는 제1 부분 및 상기 제1 복수의 미디어 자산 식별자에 포함되지 않는 미디어 자산 식별자를 포함하는 제2 부분을 포함하고, 상기 제1 부분의 상기 미디어 자산 식별자는 상기 제2 부분의 상기 미디어 자산 식별자와는 시각적으로 구별됨 - 를, 디스플레이를 위해, 생성하도록
    구성되는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  12. 제11항에 있어서,
    상기 제어 회로부는 또한,
    상기 복수의 이벤트 중, 상기 제1 부분의 제1 미디어 자산 식별자에 대응하는 제1 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제1 이벤트의 제1 우선 순위를 결정하도록;
    상기 복수의 이벤트 중, 상기 제1 부분의 제2 미디어 자산 식별자에 대응하는 제2 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제2 이벤트의 제2 우선 순위를 결정하도록; 그리고
    상기 제1 우선 순위가 상기 제2 우선 순위와는 상이한 것에 기초하여, 상기 제1 부분의 상기 제1 미디어 자산 식별자를 상기 제1 부분의 상기 제2 미디어 자산 식별자와는 시각적으로 구별하도록
    구성되는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  13. 제12항에 있어서,
    상기 제어 회로부는 또한,
    상기 제1 우선 순위와 관련되는 제1 시각적 표시자 및 상기 제2 우선 순위와 관련되는 제2 시각적 표시자를, 상기 스토리지 디바이스에 저장하도록; 그리고
    상기 제1 시각적 표시자를 갖는 상기 제1 미디어 자산 식별자 및 상기 제2 시각적 표시자를 갖는 상기 제2 미디어 자산 식별자를, 디스플레이를 위해, 생성하도록
    구성되는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  14. 제12항에 있어서,
    상기 제어 회로부는 또한,
    상기 복수의 이벤트 중 재스케줄링될 수도 있는 이벤트에 상기 제1 우선 순위를 그리고 상기 복수의 이벤트 중 재스케줄링되지 않을 수도 있는 이벤트에 상기 제2 우선 순위를 할당하도록;
    상기 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성하고 상기 제1 이벤트를 재스케줄링하기 위한 옵션을 유저에게 제공하도록; 그리고
    상기 제2 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제2 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성하고 상기 제2 미디어 자산을 기록하기 위한 옵션을 상기 유저에게 제공하도록
    구성되는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  15. 제12항에 있어서,
    상기 제1 부분의 상기 미디어 자산 식별자는, 제1 타입의 표시자에 의해 상기 제2 부분의 상기 미디어 자산 식별자와는 시각적으로 구별되고, 상기 제1 미디어 자산 식별자는 제2 타입의 표시자를 갖는 상기 제2 미디어 자산 식별자와는 시각적으로 구별되는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  16. 제15항에 있어서,
    표시자의 타입은 컬러, 음영, 및 아이콘을 포함하는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  17. 제11항에 있어서,
    상기 복수의 이벤트의 상기 이벤트 시간 간격을, 상기 제1 복수의 미디어 자산의 상기 미디어 자산 시간 간격과 비교할 때, 상기 제어 회로부는 또한:
    상기 복수의 이벤트의 제1 이벤트에 대해, 제1 시작 시간 및 제1 종료 시간을 검색하도록;
    상기 제1 복수의 미디어 자산의 제1 미디어 자산에 대해, 제2 시작 시간 및 제2 종료 시간을 검색하도록;
    상기 제1 시작 시간을 상기 제2 시작 시간 및 상기 제2 종료 시간과 비교하고 상기 제1 종료 시간을 상기 제2 시작 시간 및 상기 제2 종료 시간과 비교하도록; 그리고
    상기 제1 시작 시간 또는 상기 제1 종료 시간이 상기 제2 시작 시간과 상기 제2 종료 시간 사이에 속한다는 것을 결정하는 것에 기초하여, 상기 제1 미디어 자산에 대해 제1 충돌 표시자를 생성하도록
    구성되는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  18. 제11항에 있어서,
    상기 제어 회로부는 또한,
    상기 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자와 관련되는 제1 미디어 자산에 대응하는 새로운 이벤트를 생성하기 위한 옵션을, 디스플레이를 위해, 생성하도록;
    상기 옵션의 유저 선택에 응답하여, 상기 제1 미디어 자산의 미디어 자산 시작 시간 및 미디어 자산 종료 시간에 각각 대응하는 이벤트 시작 시간 및 이벤트 종료 시간을 갖는 상기 새로운 이벤트를 생성하도록; 그리고
    상기 새로운 이벤트를 상기 캘린더 애플리케이션으로 전송하도록
    구성되는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  19. 제11항에 있어서,
    상기 제어 회로부는 또한,
    상기 캘린더 애플리케이션으로부터, 상이한 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 상이한 유저와 관련되는 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 수신하도록;
    상기 제2 복수의 미디어 자산의 상기 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자와 관련되는 미디어 자산의 전송 시간이, 상기 이벤트 시간 간격 중, 상기 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하는지의 여부를 결정하도록;
    상기 제1 미디어 자산 식별자와 관련되는 상기 미디어 자산의 상기 전송 시간이, 상기 이벤트 시간 간격 중, 상기 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하지 않는다는 것을 결정하는 것에 기초하여, 상기 제1 미디어 자산 식별자와 관련되는 상기 미디어 자산을 소비하도록 상기 상이한 유저를 초대하기 위한 옵션을, 디스플레이를 위해, 생성하도록
    구성되는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  20. 제11항에 있어서,
    상기 제어 회로부는 또한,
    소셜 네트워킹 애플리케이션과 관련되는 서버로부터, 상기 유저의 친구와 관련되는 복수의 유저 식별자를 검색하도록;
    상기 복수의 유저 식별자 내의 각각의 유저 식별자에 대해, 각각의 친구와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 검색하도록;
    상기 제2 복수의 미디어 자산 식별자의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자에 대응하는 미디어 자산을 소비하도록 스케줄링되어 있는 상기 유저의 친구와 관련되는 하나 이상의 유저 식별자를, 디스플레이를 위해, 생성하도록
    구성되는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  21. 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템으로서,
    캘린더 애플리케이션으로부터, 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 수신하기 위한 수단;
    상기 복수의 이벤트의 상기 이벤트 시간 간격을, 제1 복수의 미디어 자산의 미디어 자산 시간 간격 - 상기 제1 복수의 미디어 자산의 각각의 미디어 자산은 관련된 미디어 자산 시작 시간 및 종료 시간을 가지며 대응하는 미디어 자산 시간 간격 동안 복수의 유저에 대한 전송을 위해 스케줄링됨 - 과 비교하기 위한 수단;
    상기 비교에 기초하여, 제2 복수의 미디어 자산 - 상기 제2 복수의 미디어 자산은, 상기 이벤트 시간 간격 중 적어도 하나와 적어도 부분적으로 중첩하는 관련된 미디어 자산 시간 간격을 갖는 상기 제1 복수의 미디어 자산으로부터의 미디어 자산을 포함함 - 에 대응하는 제1 복수의 미디어 자산 식별자에 대해, 충돌 표시자를, 대응하는 미디어 자산 데이터베이스 엔트리에 저장하기 위한 수단; 및
    어떤 시간 기간 동안 상기 복수의 유저에 대한 전송을 위해 스케줄링되어 있는 미디어 자산에 대응하는 제2 복수의 미디어 자산 식별자 - 상기 제2 복수의 미디어 자산 식별자는 상기 제1 복수의 미디어 자산 식별자에 포함되는 미디어 자산 식별자를 포함하는 제1 부분 및 상기 제1 복수의 미디어 자산 식별자에 포함되지 않는 미디어 자산 식별자를 포함하는 제2 부분을 포함하고, 상기 제1 부분의 상기 미디어 자산 식별자는 상기 제2 부분의 상기 미디어 자산 식별자와는 시각적으로 구별됨 - 를, 디스플레이를 위해, 생성하기 위한 수단
    을 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  22. 제21항에 있어서,
    상기 복수의 이벤트 중, 상기 제1 부분의 제1 미디어 자산 식별자에 대응하는 제1 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제1 이벤트의 제1 우선 순위를 결정하기 위한 수단;
    상기 복수의 이벤트 중, 상기 제1 부분의 제2 미디어 자산 식별자에 대응하는 제2 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제2 이벤트의 제2 우선 순위를 결정하기 위한 수단; 및
    상기 제1 우선 순위가 상기 제2 우선 순위와는 상이한 것에 기초하여, 상기 제1 부분의 상기 제1 미디어 자산 식별자를 상기 제1 부분의 상기 제2 미디어 자산 식별자와는 시각적으로 구별하기 위한 수단
    을 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  23. 제22항에 있어서,
    상기 제1 우선 순위와 관련되는 제1 시각적 표시자 및 상기 제2 우선 순위와 관련되는 제2 시각적 표시자를 저장하기 위한 수단; 및
    상기 제1 시각적 표시자를 갖는 상기 제1 미디어 자산 식별자 및 상기 제2 시각적 표시자를 갖는 상기 제2 미디어 자산 식별자를, 디스플레이를 위해, 생성하기 위한 수단
    을 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  24. 제22항에 있어서,
    상기 복수의 이벤트 중 재스케줄링될 수도 있는 이벤트에 상기 제1 우선 순위를 그리고 상기 복수의 이벤트 중 재스케줄링되지 않을 수도 있는 이벤트에 상기 제2 우선 순위를 할당하기 위한 수단;
    상기 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성하고 상기 제1 이벤트를 재스케줄링하기 위한 옵션을 유저에게 제공하기 위한 수단; 및
    상기 제2 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제2 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성하고 상기 제2 미디어 자산을 기록하기 위한 옵션을 상기 유저에게 제공하기 위한 수단
    을 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  25. 제22항에 있어서,
    상기 제1 부분의 상기 미디어 자산 식별자는, 제1 타입의 표시자에 의해 상기 제2 부분의 상기 미디어 자산 식별자와는 시각적으로 구별되고, 상기 제1 미디어 자산 식별자는 제2 타입의 표시자를 갖는 상기 제2 미디어 자산 식별자와는 시각적으로 구별되는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  26. 제25항에 있어서,
    표시자의 타입은 컬러, 음영, 및 아이콘을 포함하는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  27. 제21항에 있어서,
    상기 복수의 이벤트의 상기 이벤트 시간 간격을, 상기 제1 복수의 미디어 자산의 상기 미디어 자산 시간 간격과 비교하기 위한 상기 수단은:
    상기 복수의 이벤트의 제1 이벤트에 대해, 제1 시작 시간 및 제1 종료 시간을 검색하기 위한 수단;
    상기 제1 복수의 미디어 자산의 제1 미디어 자산에 대해, 제2 시작 시간 및 제2 종료 시간을 검색하기 위한 수단;
    상기 제1 시작 시간을 상기 제2 시작 시간 및 상기 제2 종료 시간과 비교하고 상기 제1 종료 시간을 상기 제2 시작 시간 및 상기 제2 종료 시간과 비교하기 위한 수단; 및
    상기 제1 시작 시간 또는 상기 제1 종료 시간이 상기 제2 시작 시간과 상기 제2 종료 시간 사이에 속한다는 것을 결정하는 것에 기초하여, 상기 제1 미디어 자산에 대해 제1 충돌 표시자를 생성하기 위한 수단
    을 포함하는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  28. 제21항에 있어서,
    상기 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자와 관련되는 제1 미디어 자산에 대응하는 새로운 이벤트를 생성하기 위한 옵션을, 디스플레이를 위해, 생성하기 위한 수단;
    상기 옵션의 유저 선택에 응답하여, 상기 제1 미디어 자산의 미디어 자산 시작 시간 및 미디어 자산 종료 시간에 각각 대응하는 이벤트 시작 시간 및 이벤트 종료 시간을 갖는 상기 새로운 이벤트를 생성하기 위한 수단; 및
    상기 새로운 이벤트를 상기 캘린더 애플리케이션으로 전송하기 위한 수단
    을 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  29. 제21항에 있어서,
    상기 캘린더 애플리케이션으로부터, 상이한 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 상이한 유저와 관련되는 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 수신하기 위한 수단;
    상기 제2 복수의 미디어 자산의 상기 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자와 관련되는 미디어 자산의 전송 시간이, 상기 이벤트 시간 간격 중, 상기 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하는지의 여부를 결정하기 위한 수단; 및
    상기 제1 미디어 자산 식별자와 관련되는 상기 미디어 자산의 상기 전송 시간이, 상기 이벤트 시간 간격 중, 상기 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하지 않는다는 것을 결정하는 것에 기초하여, 상기 제1 미디어 자산 식별자와 관련되는 상기 미디어 자산을 소비하도록 상기 상이한 유저를 초대하기 위한 옵션을, 디스플레이를 위해, 생성하기 위한 수단
    을 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  30. 제21항에 있어서,
    소셜 네트워킹 애플리케이션과 관련되는 서버로부터, 상기 유저의 친구와 관련되는 복수의 유저 식별자를 검색하기 위한 수단;
    상기 복수의 유저 식별자 내의 각각의 유저 식별자에 대해, 각각의 친구와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 검색하기 위한 수단;
    상기 제2 복수의 미디어 자산 식별자의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자에 대응하는 미디어 자산을 소비하도록 스케줄링되어 있는 상기 유저의 친구와 관련되는 하나 이상의 유저 식별자를, 디스플레이를 위해, 생성하기 위한 수단
    을 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 시스템.
  31. 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 명령어가 인코딩된 비일시적 컴퓨터 판독가능 매체로서,
    상기 명령어는:
    캘린더 애플리케이션으로부터, 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 수신하기 위한 명령어;
    상기 복수의 이벤트의 상기 이벤트 시간 간격을, 제1 복수의 미디어 자산의 미디어 자산 시간 간격 - 상기 제1 복수의 미디어 자산의 각각의 미디어 자산은 관련된 미디어 자산 시작 시간 및 종료 시간을 가지며 대응하는 미디어 자산 시간 간격 동안 복수의 유저에 대한 전송을 위해 스케줄링됨 - 과 비교하기 위한 명령어;
    상기 비교에 기초하여, 제2 복수의 미디어 자산 - 상기 제2 복수의 미디어 자산은, 상기 이벤트 시간 간격 중 적어도 하나와 적어도 부분적으로 중첩하는 관련된 미디어 자산 시간 간격을 갖는 상기 제1 복수의 미디어 자산으로부터의 미디어 자산을 포함함 - 에 대응하는 제1 복수의 미디어 자산 식별자에 대해, 충돌 표시자를, 대응하는 미디어 자산 데이터베이스 엔트리에 저장하기 위한 명령어; 및
    어떤 시간 기간 동안 상기 복수의 유저에 대한 전송을 위해 스케줄링되어 있는 미디어 자산에 대응하는 제2 복수의 미디어 자산 식별자 - 상기 제2 복수의 미디어 자산 식별자는 상기 제1 복수의 미디어 자산 식별자에 포함되는 미디어 자산 식별자를 포함하는 제1 부분 및 상기 제1 복수의 미디어 자산 식별자에 포함되지 않는 미디어 자산 식별자를 포함하는 제2 부분을 포함하고, 상기 제1 부분의 상기 미디어 자산 식별자는 상기 제2 부분의 상기 미디어 자산 식별자와는 시각적으로 구별됨 - 를, 디스플레이를 위해, 생성하기 위한 명령어
    를 포함하는 것인, 명령어가 인코딩된 비일시적 컴퓨터 판독가능 매체.
  32. 제31항에 있어서,
    상기 명령어는:
    상기 복수의 이벤트 중, 상기 제1 부분의 제1 미디어 자산 식별자에 대응하는 제1 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제1 이벤트의 제1 우선 순위를 결정하기 위한 명령어;
    상기 복수의 이벤트 중, 상기 제1 부분의 제2 미디어 자산 식별자에 대응하는 제2 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제2 이벤트의 제2 우선 순위를 결정하기 위한 명령어; 및
    상기 제1 우선 순위가 상기 제2 우선 순위와는 상이한 것에 기초하여, 상기 제1 부분의 상기 제1 미디어 자산 식별자를 상기 제1 부분의 상기 제2 미디어 자산 식별자와는 시각적으로 구별하기 위한 명령어
    를 더 포함하는 것인, 명령어가 인코딩된 비일시적 컴퓨터 판독가능 매체.
  33. 제32항에 있어서,
    상기 명령어는:
    상기 제1 우선 순위와 관련되는 제1 시각적 표시자 및 상기 제2 우선 순위와 관련되는 제2 시각적 표시자를 저장하기 위한 명령어; 및
    상기 제1 시각적 표시자를 갖는 상기 제1 미디어 자산 식별자 및 상기 제2 시각적 표시자를 갖는 상기 제2 미디어 자산 식별자를, 디스플레이를 위해, 생성하기 위한 명령어
    를 더 포함하는 것인, 명령어가 인코딩된 비일시적 컴퓨터 판독가능 매체.
  34. 제32항에 있어서,
    상기 명령어는:
    상기 복수의 이벤트 중 재스케줄링될 수도 있는 이벤트에 상기 제1 우선 순위를 그리고 상기 복수의 이벤트 중 재스케줄링되지 않을 수도 있는 이벤트에 상기 제2 우선 순위를 할당하기 위한 명령어;
    상기 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성하고 상기 제1 이벤트를 재스케줄링하기 위한 옵션을 유저에게 제공하기 위한 명령어; 및
    상기 제2 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제2 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성하고 상기 제2 미디어 자산을 기록하기 위한 옵션을 상기 유저에게 제공하기 위한 명령어
    를 더 포함하는 것인, 명령어가 인코딩된 비일시적 컴퓨터 판독가능 매체.
  35. 제32항에 있어서,
    상기 제1 부분의 상기 미디어 자산 식별자는, 제1 타입의 표시자에 의해 상기 제2 부분의 상기 미디어 자산 식별자와는 시각적으로 구별되고, 상기 제1 미디어 자산 식별자는 제2 타입의 표시자를 갖는 상기 제2 미디어 자산 식별자와는 시각적으로 구별되는 것인, 명령어가 인코딩된 비일시적 컴퓨터 판독가능 매체.
  36. 제35항에 있어서,
    표시자의 타입은 컬러, 음영, 및 아이콘을 포함하는 것인, 명령어가 인코딩된 비일시적 컴퓨터 판독가능 매체.
  37. 제31항에 있어서,
    상기 복수의 이벤트의 상기 이벤트 시간 간격을, 상기 제1 복수의 미디어 자산의 상기 미디어 자산 시간 간격과 비교하기 위한 상기 명령어는:
    상기 복수의 이벤트의 제1 이벤트에 대해, 제1 시작 시간 및 제1 종료 시간을 검색하기 위한 명령어;
    상기 제1 복수의 미디어 자산의 제1 미디어 자산에 대해, 제2 시작 시간 및 제2 종료 시간을 검색하기 위한 명령어;
    상기 제1 시작 시간을 상기 제2 시작 시간 및 상기 제2 종료 시간과 비교하고 상기 제1 종료 시간을 상기 제2 시작 시간 및 상기 제2 종료 시간과 비교하기 위한 명령어; 및
    상기 제1 시작 시간 또는 상기 제1 종료 시간이 상기 제2 시작 시간과 상기 제2 종료 시간 사이에 속한다는 것을 결정하는 것에 기초하여, 상기 제1 미디어 자산에 대해 제1 충돌 표시자를 생성하기 위한 명령어
    를 더 포함하는 것인, 명령어가 인코딩된 비일시적 컴퓨터 판독가능 매체.
  38. 제31항에 있어서,
    상기 명령어는:
    상기 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자와 관련되는 제1 미디어 자산에 대응하는 새로운 이벤트를 생성하기 위한 옵션을, 디스플레이를 위해, 생성하기 위한 명령어;
    상기 옵션의 유저 선택에 응답하여, 상기 제1 미디어 자산의 미디어 자산 시작 시간 및 미디어 자산 종료 시간에 각각 대응하는 이벤트 시작 시간 및 이벤트 종료 시간을 갖는 상기 새로운 이벤트를 생성하기 위한 명령어; 및
    상기 새로운 이벤트를 상기 캘린더 애플리케이션으로 전송하기 위한 명령어
    를 더 포함하는 것인, 명령어가 인코딩된 비일시적 컴퓨터 판독가능 매체.
  39. 제31항에 있어서,
    상기 명령어는:
    상기 캘린더 애플리케이션으로부터, 상이한 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 상이한 유저와 관련되는 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 수신하기 위한 명령어;
    상기 제2 복수의 미디어 자산의 상기 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자와 관련되는 미디어 자산의 전송 시간이, 상기 이벤트 시간 간격 중, 상기 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하는지의 여부를 결정하기 위한 명령어; 및
    상기 제1 미디어 자산 식별자와 관련되는 상기 미디어 자산의 상기 전송 시간이, 상기 이벤트 시간 간격 중, 상기 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하지 않는다는 것을 결정하는 것에 기초하여, 상기 제1 미디어 자산 식별자와 관련되는 상기 미디어 자산을 소비하도록 상기 상이한 유저를 초대하기 위한 옵션을, 디스플레이를 위해, 생성하기 위한 명령어
    를 더 포함하는 것인, 명령어가 인코딩된 비일시적 컴퓨터 판독가능 매체.
  40. 제31항에 있어서,
    상기 명령어는:
    소셜 네트워킹 애플리케이션과 관련되는 서버로부터, 상기 유저의 친구와 관련되는 복수의 유저 식별자를 검색하기 위한 명령어;
    상기 복수의 유저 식별자 내의 각각의 유저 식별자에 대해, 각각의 친구와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 검색하기 위한 명령어;
    상기 제2 복수의 미디어 자산 식별자의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자에 대응하는 미디어 자산을 소비하도록 스케줄링되어 있는 상기 유저의 친구와 관련되는 하나 이상의 유저 식별자를, 디스플레이를 위해, 생성하기 위한 명령어
    를 더 포함하는 것인, 명령어가 인코딩된 비일시적 컴퓨터 판독가능 매체.
  41. 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법으로서,
    캘린더 애플리케이션으로부터, 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 캘린더 데이터는 이벤트 시간 간격을 포함함 - 를 수신하는 단계;
    상기 이벤트 시간 간격에 기초하여, 상기 유저와 관련되는 상기 이벤트와 중첩하는 전송 시간을 갖는 미디어 자산에 대응하는 제1 복수의 미디어 자산 식별자를 결정하는 단계; 및
    상기 결정에 기초하여, 어떤 시간 기간 동안 상기 복수의 유저에 대한 전송을 위해 스케줄링되어 있는 미디어 자산에 대응하는 제2 복수의 미디어 자산 식별자 - 상기 제2 복수의 미디어 자산 식별자는 상기 제1 복수의 미디어 자산 식별자에 포함되는 미디어 자산 식별자를 포함하는 제1 부분 및 상기 제1 복수의 미디어 자산 식별자에 포함되지 않는 미디어 자산 식별자를 포함하는 제2 부분을 포함하고, 상기 제1 부분의 상기 미디어 자산 식별자는 상기 제2 부분의 상기 미디어 자산 식별자와는 시각적으로 구별됨 - 를, 디스플레이를 위해, 생성하는 단계
    를 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  42. 제41항에 있어서,
    상기 복수의 이벤트 중, 상기 제1 부분의 제1 미디어 자산 식별자에 대응하는 제1 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제1 이벤트의 제1 우선 순위를 결정하는 단계;
    상기 복수의 이벤트 중, 상기 제1 부분의 제2 미디어 자산 식별자에 대응하는 제2 미디어 자산의 전송 시간과 적어도 부분적으로 중첩하는 제2 이벤트의 제2 우선 순위를 결정하는 단계; 및
    상기 제1 우선 순위가 상기 제2 우선 순위와는 상이한 것에 기초하여, 상기 제1 부분의 상기 제1 미디어 자산 식별자를 상기 제1 부분의 상기 제2 미디어 자산 식별자와는 시각적으로 구별하는 단계
    를 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  43. 제42항에 있어서,
    상기 제1 우선 순위와 관련되는 제1 시각적 표시자 및 상기 제2 우선 순위와 관련되는 제2 시각적 표시자를 저장하는 단계; 및
    상기 제1 시각적 표시자를 갖는 상기 제1 미디어 자산 식별자 및 상기 제2 시각적 표시자를 갖는 상기 제2 미디어 자산 식별자를, 디스플레이를 위해, 생성하는 단계
    를 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  44. 제42항 또는 제43항에 있어서,
    상기 복수의 이벤트 중 재스케줄링될 수도 있는 이벤트에 상기 제1 우선 순위를 그리고 상기 복수의 이벤트 중 재스케줄링되지 않을 수도 있는 이벤트에 상기 제2 우선 순위를 할당하는 단계;
    상기 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성하고 상기 제1 이벤트를 재스케줄링하기 위한 옵션을 유저에게 제공하는 단계; 및
    상기 제2 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제2 이벤트와 관련되는 캘린더 데이터를, 디스플레이를 위해, 생성하고 상기 제2 미디어 자산을 기록하기 위한 옵션을 상기 유저에게 제공하는 단계
    를 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  45. 제42항 내지 제44항 중 어느 한 항에 있어서,
    상기 제1 부분의 상기 미디어 자산 식별자는, 제1 타입의 표시자에 의해 상기 제2 부분의 상기 미디어 자산 식별자와는 시각적으로 구별되고, 상기 제1 미디어 자산 식별자는 제2 타입의 표시자를 갖는 상기 제2 미디어 자산 식별자와는 시각적으로 구별되는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  46. 제41항 내지 제45항 중 어느 한 항에 있어서,
    상기 이벤트 시간 간격에 기초하여, 상기 유저와 관련되는 상기 이벤트와 중첩하는 미디어 자산에 대응하는 상기 제1 복수의 미디어 자산 식별자를 결정하는 단계는:
    상기 복수의 이벤트의 상기 이벤트 시간 간격을, 제1 복수의 미디어 자산의 미디어 자산 시간 간격과 비교하는 단계; 및
    상기 비교에 기초하여, 상기 제2 복수의 미디어 자산 - 상기 제2 복수의 미디어 자산은, 상기 이벤트 시간 간격 중 적어도 하나와 적어도 부분적으로 중첩하는 관련된 미디어 자산 시간 간격을 갖는 상기 제1 복수의 미디어 자산으로부터의 미디어 자산을 포함함 - 에 대응하는 상기 제1 복수의 미디어 자산 식별자에 대해, 충돌 표시자를 저장하는 단계
    를 포함하는 것인, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  47. 제41항 내지 제46항 중 어느 한 항에 있어서,
    상기 복수의 이벤트의 상기 이벤트 시간 간격을, 상기 제1 복수의 미디어 자산의 상기 미디어 자산 시간 간격과 비교하는 단계는:
    상기 복수의 이벤트의 제1 이벤트에 대해, 제1 시작 시간 및 제1 종료 시간을 검색하는 단계;
    상기 제1 복수의 미디어 자산의 제1 미디어 자산에 대해, 제2 시작 시간 및 제2 종료 시간을 검색하는 단계;
    상기 제1 시작 시간을 상기 제2 시작 시간 및 상기 제2 종료 시간과 비교하고 상기 제1 종료 시간을 상기 제2 시작 시간 및 상기 제2 종료 시간과 비교하는 단계; 및
    상기 제1 시작 시간 또는 상기 제1 종료 시간이 상기 제2 시작 시간과 상기 제2 종료 시간 사이에 속한다는 것을 결정하는 것에 기초하여, 상기 제1 미디어 자산에 대해 제1 충돌 표시자를 생성하는 단계
    를 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  48. 제41항 내지 제47항 중 어느 한 항에 있어서,
    상기 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자와 관련되는 제1 미디어 자산에 대응하는 새로운 이벤트를 생성하기 위한 옵션을, 디스플레이를 위해, 생성하는 단계;
    상기 옵션의 유저 선택에 응답하여, 상기 제1 미디어 자산의 미디어 자산 시작 시간 및 미디어 자산 종료 시간에 각각 대응하는 이벤트 시작 시간 및 이벤트 종료 시간을 갖는 상기 새로운 이벤트를 생성하는 단계; 및
    상기 새로운 이벤트를 상기 캘린더 애플리케이션으로 전송하는 단계
    를 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  49. 제41항 내지 제48항 중 어느 한 항에 있어서,
    상기 캘린더 애플리케이션으로부터, 상이한 유저와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 상이한 유저와 관련되는 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 수신하는 단계;
    상기 제2 복수의 미디어 자산의 상기 제1 부분의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자와 관련되는 미디어 자산의 전송 시간이, 상기 이벤트 시간 간격 중, 상기 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하는지의 여부를 결정하는 단계; 및
    상기 제1 미디어 자산 식별자와 관련되는 상기 미디어 자산의 상기 전송 시간이, 상기 이벤트 시간 간격 중, 상기 상이한 유저와 관련되는 적어도 하나의 이벤트 시간 간격과 적어도 부분적으로 중첩하지 않는다는 것을 결정하는 것에 기초하여, 상기 제1 미디어 자산 식별자와 관련되는 상기 미디어 자산을 소비하도록 상기 상이한 유저를 초대하기 위한 옵션을, 디스플레이를 위해, 생성하는 단계
    를 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
  50. 제41항 내지 제49항 중 어느 한 항에 있어서,
    소셜 네트워킹 애플리케이션과 관련되는 서버로부터, 상기 유저의 친구와 관련되는 복수의 유저 식별자를 검색하는 단계;
    상기 복수의 유저 식별자 내의 각각의 유저 식별자에 대해, 각각의 친구와 관련되는 복수의 이벤트에 대한 캘린더 데이터 - 상기 캘린더 데이터는 관련된 이벤트 시작 시간 및 종료 시간을 갖는 이벤트 시간 간격을 포함함 - 를 검색하는 단계; 및
    상기 제2 복수의 미디어 자산 식별자의 제1 미디어 자산 식별자의 유저 선택에 응답하여, 상기 제1 미디어 자산 식별자에 대응하는 미디어 자산을 소비하도록 스케줄링되어 있는 상기 유저의 친구와 관련되는 하나 이상의 유저 식별자를, 디스플레이를 위해, 생성하는 단계를 더 포함하는, 미디어 안내 애플리케이션에서 캘린더에 있는 정보를 제시하기 위한 방법.
KR1020177037688A 2015-12-23 2016-12-21 캘린더 약속과 미디어 자산 전송 시간 사이의 중첩을 검출하기 위한 방법 및 시스템 KR20180098127A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/998,109 US9743139B2 (en) 2015-12-23 2015-12-23 Methods and systems for detecting overlaps between calendar appointments and media asset transmission times
US14/998,109 2015-12-23
PCT/US2016/068020 WO2017112771A1 (en) 2015-12-23 2016-12-21 Methods and systems for detecting overlaps between calendar appointments and media asset transmission times

Publications (1)

Publication Number Publication Date
KR20180098127A true KR20180098127A (ko) 2018-09-03

Family

ID=57861231

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177037688A KR20180098127A (ko) 2015-12-23 2016-12-21 캘린더 약속과 미디어 자산 전송 시간 사이의 중첩을 검출하기 위한 방법 및 시스템

Country Status (8)

Country Link
US (1) US9743139B2 (ko)
EP (1) EP3378022A1 (ko)
JP (1) JP6914859B2 (ko)
KR (1) KR20180098127A (ko)
CN (1) CN107735806A (ko)
AU (2) AU2016378582A1 (ko)
CA (1) CA2989449A1 (ko)
WO (1) WO2017112771A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10681421B2 (en) 2017-01-03 2020-06-09 Turner Broadcasting System, Inc. Personalized, event-driven, and location-based consumption of media content
US9948966B1 (en) * 2017-04-19 2018-04-17 Rovi Guides, Inc. Systems and methods for modifying playback of a media asset based on an event that will interrupt playback of the media asset
JP7130419B2 (ja) * 2018-04-23 2022-09-05 シャープ株式会社 情報処理装置、表示装置、制御プログラム、及び記録媒体
CN109102250B (zh) * 2018-08-09 2021-11-16 北京春雪会计服务有限公司 一种对电子信息的进行访问的方法
CN111417022B (zh) * 2020-03-06 2022-09-06 海信视像科技股份有限公司 冲突检测方法及显示设备
CN112631871A (zh) * 2020-12-28 2021-04-09 北京大米科技有限公司 行为消息的处理方法、装置、存储介质及电子设备
US11907911B2 (en) * 2020-12-29 2024-02-20 Motorola Mobility Llc Methods and devices for resolving agenda and calendaring event discrepancies
US11877029B2 (en) 2021-06-07 2024-01-16 Sony Interactive Entertainment LLC Smart media recommendations by events

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030086694A1 (en) 2001-11-07 2003-05-08 Nokia Corporation Recording program scheduling information in an electronic calendar
CN1714584B (zh) * 2002-12-20 2010-05-05 诺基亚有限公司 采用元信息来组织用户提供信息的方法及装置
US7739602B2 (en) * 2003-06-24 2010-06-15 Aol Inc. System and method for community centric resource sharing based on a publishing subscription model
JP2006119757A (ja) * 2004-10-19 2006-05-11 Canon Inc 情報処理装置及びスケジュール管理方法
US20060117349A1 (en) 2004-11-29 2006-06-01 Ruhl Timothy J Providing a personalized programming guide
US7665107B2 (en) * 2005-03-11 2010-02-16 Microsoft Corporation Viral advertising for interactive services
KR100678921B1 (ko) * 2005-10-18 2007-02-05 삼성전자주식회사 다중 서버 환경에 적합한 디바이스를 클라이언트로 하여동기화를 수행하는 방법 및 장치
JP4137952B2 (ja) * 2006-05-01 2008-08-20 ソニー・エリクソン・モバイルコミュニケーションズ株式会社 情報処理装置、情報処理方法、情報処理プログラム、及び携帯端末装置
US8564544B2 (en) * 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US8418206B2 (en) * 2007-03-22 2013-04-09 United Video Properties, Inc. User defined rules for assigning destinations of content
US8631440B2 (en) * 2007-04-30 2014-01-14 Google Inc. Program guide user interface
JP5267062B2 (ja) * 2007-11-16 2013-08-21 ソニー株式会社 情報処理装置、情報処理方法、コンテンツ視聴装置、コンテンツ表示方法、プログラム及び情報共有システム
US20120174039A1 (en) 2011-01-05 2012-07-05 United Video Properties, Inc. Systems and methods for navigating through content in an interactive media guidance application
US20120210353A1 (en) * 2011-02-11 2012-08-16 Sony Network Entertainment International Llc Second display interaction with social networking feed
US9324060B2 (en) * 2011-05-10 2016-04-26 International Business Machines Corporation Displaying a plurality of calendar entries
US20130104170A1 (en) 2011-10-21 2013-04-25 Avermedia Technologies, Inc. Method for Processing Electronic Television Program
US20130173796A1 (en) * 2011-12-30 2013-07-04 United Video Properties, Inc. Systems and methods for managing a media content queue
US9986273B2 (en) * 2012-03-29 2018-05-29 Sony Interactive Entertainment, LLC Extracting media content from social networking services
EP2680599A1 (en) * 2012-06-29 2014-01-01 Thomson Licensing Provision of a personalized media content
CN103748871A (zh) * 2012-08-17 2014-04-23 弗莱克斯电子有限责任公司 互动频道浏览与切换
GB2508420A (en) * 2012-11-30 2014-06-04 Sony Corp System generating user indication based on availability of future scheduled broadcast programme for catch-up (streamed) viewing after broadcast
EP2941744B8 (en) * 2012-12-30 2018-10-17 Gary Stephen Shuster Global contact synchronization
WO2014135188A1 (en) 2013-03-04 2014-09-12 Epg-Assistant Gmbh Method and apparatus for generating a viewing and recording schedule from an electronic program guide
US9253330B2 (en) * 2014-02-28 2016-02-02 International Business Machines Corporation Automatically record and reschedule conference calls for playback based upon calendar invitations and presence monitoring
US10034052B2 (en) * 2014-07-28 2018-07-24 Eldon Technologies Apparatus, systems and methods for synchronizing calendar information with electronic program guide information

Also Published As

Publication number Publication date
WO2017112771A1 (en) 2017-06-29
CA2989449A1 (en) 2017-06-29
JP6914859B2 (ja) 2021-08-04
US20170188098A1 (en) 2017-06-29
JP2019506760A (ja) 2019-03-07
US9743139B2 (en) 2017-08-22
EP3378022A1 (en) 2018-09-26
AU2016378582A1 (en) 2018-01-18
WO2017112771A8 (en) 2018-01-11
CN107735806A (zh) 2018-02-23
AU2022268369A1 (en) 2022-12-15

Similar Documents

Publication Publication Date Title
US11861564B2 (en) Systems and methods for delaying the start time of an event based on event attendee arrival times
US11477529B2 (en) Methods and systems for distributing media guidance among multiple devices
US10327023B2 (en) Systems and methods for modifying playback of a media asset based on an event that will interrupt playback of the media asset
KR102406817B1 (ko) 이용 가능한 스토리지의 함수로서 시리즈물 녹화를 관리하기 위한 시스템 및 방법
US9743139B2 (en) Methods and systems for detecting overlaps between calendar appointments and media asset transmission times
US10477278B2 (en) Systems and methods for presenting targeted metadata in display constrained environments
US11829491B2 (en) Systems and methods for managing access to media assets based on a projected location of a user
US11122326B2 (en) Systems and methods for aggressively recording content when a user is not at home
US10063901B2 (en) Systems and methods for modifying access to media assets
US20160366485A1 (en) Systems and methods for showing media asset consumption history
JP2019532435A (ja) 広告掲載の競合を解決するためのシステムおよび方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal