KR101890461B1 - 코멘트에 대한 액세스의 결정 - Google Patents

코멘트에 대한 액세스의 결정 Download PDF

Info

Publication number
KR101890461B1
KR101890461B1 KR1020147033252A KR20147033252A KR101890461B1 KR 101890461 B1 KR101890461 B1 KR 101890461B1 KR 1020147033252 A KR1020147033252 A KR 1020147033252A KR 20147033252 A KR20147033252 A KR 20147033252A KR 101890461 B1 KR101890461 B1 KR 101890461B1
Authority
KR
South Korea
Prior art keywords
users
comment
comments
user
web page
Prior art date
Application number
KR1020147033252A
Other languages
English (en)
Other versions
KR20150006864A (ko
Inventor
알렉산더 콜린스
제프리 콘
라올-샘 던 다루왈라
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20150006864A publication Critical patent/KR20150006864A/ko
Application granted granted Critical
Publication of KR101890461B1 publication Critical patent/KR101890461B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • General Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • Primary Health Care (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 기술은 웹페이지 상의 웹컨텐츠에 대한 사용자의 세트로 제한된 코멘트를 제공하기 위한 구성을 개시한다. 일구현예에서, 컨텐츠 제공자 또는 사용자로 하여금 웹사이트의 방문자로부터의 공개 코멘트를 이미 제공하는 공개적으로 보기 가능한 웹컨텐츠의 기존의 구현 또는 제시에 지장을 주지 않는 방식으로 사용자의 세트로 제한된 코멘트를 제공하도록 하는 위젯이 제공된다. 구체적으로, 위젯은 사용자의 웹브라우저에서의 플러그인 또는 인스텐션으로서 제공되거나 또는 컨텐츠 제공자에 의해 웹페이지에 통합될 수 있다. 사용자의 세트로 제한된 코멘트의 스코프는 하나 이상의 액세스 제어 리스트에 의해 규정되며, 이 리스트는 사용자의 세트로 제한된 코멘트가 지정된 세트의 사용자만이 볼 수 있게 되도록 한다(다른 사용자는 볼 수 없음).

Description

코멘트에 대한 액세스의 결정{DETERMINING ACCESS TO COMMENTS}
관련 출원에 대한 교차 참조
본 출원은 2012년 5월 1일자로 출원된 "DETERMINING ACCESS TO COMMENTS"를 발명의 명칭으로 하는 미국 가특허 출원 번호 61/641,269에 대하여 35 U.S.C §119 하에서 우선권의 이점을 주장하며, 이 특허 출원은 모든 용도로 그 전체 내용이 원용에 의해 본 명세서에 통합되어 있다.
본 발명은 코멘트에 대한 액세스를 결정하는 것에 관한 것이다.
몇몇 웹사이트는 방문자(예컨대, 상이한 사용자)로 하여금 상이한 웹컨텐츠(예컨대, 비디오, 기사 등)에 응답하여 코멘트를 제공할 수 있도록 한다. 이러한 코멘트는 공개적인 것으로 되고, 그 웹사이트를 방문하는 사용자에 의한 보기에 이용할 수 있다. 그 결과, 사용자에 의해 제공된 코멘트는 그 웹사이트를 방문하는 다른 사용자에 의한 보기에 이용 가능하다.
본 기술은 웹페이지에 제공된 하나 이상의 공개 코멘트를 결정하는 것을 제공하며, 여기서 하나 이상의 공개 코멘트가 웹페이지의 하나 이상의 뷰어에 의한 공개 코멘팅(public commenting)을 제공하기 위한 제1 포맷을 포함한다. "포맷"은 바람직하게는 웹페이지의 일부분일 수 있으며, 정보의 디스플레이를 위한 영역, 사용자로부터 입력을 수신하기 위한 수단, 이 입력을 처리하기 위한 수단, 다른 서비스와 통신하기 위한 수단, 및 사용자 입력을 처리하거나 다른 서비스와 통신하는 것으로부터 획득된 이러한 정보를 디스플레이하기 위한 수단과 같은 웹페이지의 하나 이상의 특징 또는 기능을 포함할 수 있다. 포맷이라는 표현의 일반적인 의미에 따른 "포맷" 자체가 디스플레이될 때의 웹페이지의 일부분인 것으로 해석될 수도 있지만, 이하의 설명에서는 "포맷"이라는 표현은 단지 디스플레이되는 것 이상의 것을 포괄할 수 있는 것으로 이해될 것이다. 일실시예에 따라, 서비스 X에 의해 제공된 포맷은 예컨대 웹페이지의 인라인 포맷(inline format)일 수 있으며, 여기에서 인라인 프레임의 콘텐츠가 서비스 X로부터 획득된다. 일실시예에서, 공개 코멘팅을 위한 제1 포맷은 웹페이지 서비스 자체에 의해 제공되며, 제한된 세트의 사용자에 대한 또는 제한된 세트의 사용자 간의 코멘팅을 위한 제2 포맷은 소셜 네트워킹 서비스에 의해 제공된다. 일실시예에 따라, 제1 포맷은 제1 서비스에 의해 제공되며, 제2 포맷은 제2 서비스에 의해 제공된다. 일실시예에서, 제1 서비스는 공개 코멘트를 제공하는 것을 담당하는 서비스일 수 있으며, 제2 포맷은 제2 서비스에 의해 제공된다. 일실시예에서의 제1 서비스는 예컨대 공개 코멘팅과 같은 "정상적인" 코멘팅 기능을 갖는 웹사이트의 "정상적인" 디스플레이를 담당할 수 있다. 다른 한편으로, 일실시예에서의 제2 서비스는 비공개 코멘팅을 담당할 수 있으며, 제2 서비스는 일실시예에 따라 별도의 서버 상에서 실행될 수도 있다. 제1 포맷은 몇몇 구성에서는 웹페이지에 대해 네이티브(native)하다. 포맷이 웹페이지에 대해 네이티브하다는 것은, 포맷이 제한된 코멘팅 기능 없이 웹페이지를 제공하고 있는 동일한 서비스에 의해 제공된다는 것을 의미한다. 본 기술은 코멘트 데이터를 수신하며, 이 코멘트 데이터는 결정된 하나 이상의 공개 코멘트 중에서 각자의 공개 코멘트에 대한 응답이다. 수신된 코멘트 데이터를 보기 위한 스코프(scope)를 규정하는 사용자의 세트의 선택이 수신된다. 사용자의 세트는 수신된 코멘트 데이터를 보기 위한 스코프를 규정하는 각자의 액세스 제어 리스트에 연관된다. 수신된 코멘트 데이터를 보기 위한 스코프는 하나 이상의 고유 사용자(unique user)를 포함한다. 사용자의 세트는 단일 사용자, 사용자의 그룹, 그룹의 세트, 또는 조직을 포함한다. 사용자의 세트의 선택은 사용자의 그룹을 선택하는 것을 포함한다. 사용자의 그룹은 온라인 소셜 네트워킹 서비스에서의 소셜 서클(social circle)에 의해 규정된다. 또한, 본 기술은 수신된 코멘트 데이터를 보기 위한 스코프에 기초하여 사용자의 세트로 제한된 코멘트(comment restricted to the set of users)를 발생하며, 발생된 코멘트는 사용자의 세트로 제한된 코멘팅을 제공하기 위한 제2 포맷을 포함한다. 제2 포맷은 사용자의 소셜 그래프과의 호환성을 제공한다. 일실시예에 따라, 사용자의 소셜 그래프는 그 네트워크에서의 다른 사용자 및 사용자 그룹에 대한 사용자의 컨택을 포함하고, 바람직하게는 사용자가 노드이고 사용자들 간의 연결이 노드들 간의 링크인 "그래프" 형태의 컨택의 "구조" 또한 포함한다. 소셜 그래프의 개개의 노드 및 링크는 이에 의해 예컨대, 제2 사용자에게 보기가 허용되는, 제1 사용자에 속하거나 제1 사용자에 의해 업로드되는 어떠한 종류의 정보와 같은 개개의 노드(사용자에 해당)에 허용되는 동작에 대한 정보를 더 포함할 수 있다. 소셜 그래프는 일실시예에서는 또한 온라인 소셜 네트워킹 서비스에서의 사용자의 프로필을 포함할 수 있다. 제1 포맷은 사용자의 소셜 그래프와 호환 가능하지 않다. 일실시예에 따라, "포맷이 사용자의 소셜 그래프와 호환 가능하다"라는 것은 그 포맷이 통상적으로는 사용자의 소셜 그래프에 대한 액세스를 제공하는 온라인 소셜 네트워킹 서비스와 같은 서비스와 통신할 수 있다는 것을 의미하며, 이것은 그 그래프로부터 정보를 획득하거나 그 그래프에 정보를 추가할 수 있다는 것을 의미한다. 일실시예에서, 클라이언트 컴퓨팅 디바이스에 의한 온라인 소셜 네트워킹 서비스에서의 사용자의 소셜 그래프에 대한 액세스는 로그인 크레덴셜(login credential)을 요구할 수도 있다. 이러한 크레덴셜은 사용자에 의해 입력으로서 명시적으로 제공될 수도 있고, 또는 클라이언트 컴퓨팅 디바이스 상의 웹 브라우저의 스테이트(state)의 일부분이고, 사용자의 소셜 그래프를 액세스할 때에 소셜 네트워킹 서비스에 공급(furnish)될 수도 있다. 웹페이지는 제1 서비스에 의해 제공되고, 사용자의 소셜 그래프는 제2 서비스에 의해 제공된다. 이에 부가하여, 본 기술은 결정된 하나 이상의 공개 코멘트 및 발생된 코멘트를 디스플레이를 위해 제공하며, 발생된 코멘트가 결정된 하나 이상의 공개 코멘트와 구별되도록 별도로 디스플레이된다.
또한, 본 기술은 웹페이지의 현재 뷰어에 대응하는 사용자를 결정한다. 사용자는 일례에서 웹페이지의 현재 뷰어의 하나 이상의 로그인 크레덴셜에 기초하여 결정된다. 사용자는 일례에서 대응하는 온라인 소셜 네트워킹 프로필에 기초하여 결정된다. 본 기술은 발생된 코멘트가 결정된 사용자를 위해 이용할 수 있는지를 발생된 코멘트를 보기 위한 스코프에 기초하여 판정한다. 그리고나서, 발생된 코멘트가 결정된 사용자를 위해 이용할 수 있다면, 발생된 사용자의 세트로 제한된 코멘트가 디스플레이를 위해 제공된다. 몇몇 구현예에서, 발생된 코멘트는 사용자의 세트에 기초하여 발생된 코멘트 데이터를 보기 위한 스코프를 포함하는 각자의 액세스 제어 리스트와 연관된다. 이에 부가하여, 사용자의 세트로 제한된 코멘트를 발생하는 것은, 몇몇 구성에서는, 사용자의 세트에 기초하여 발생된 코멘트 데이터를 보기 위한 스코프를 포함하는 새로운 액세스 제어 리스트에 엔트리를 발생함으로써 구현되며, 여기에서 이 엔트리는 코멘트를 새로운 액세스 제어 리스트에 연관시킨다. 본 기술은 또한 웹페이지 상의 하나 이상의 공개 코멘트를 결정하고, 결정된 하나 이상의 공개 코멘트를 디스플레이를 위해 제공하며, 디스플레이되는 공개 코멘트가 발생된 코멘트와 별도로 디스플레이된다.
본 기술은 시스템을 포함한다. 시스템은 메모리, 하나 이상의 프로세서, 및 상기 메모리에 저장되고, 상기 하나 이상의 프로세서에 의한 실행을 위해 구성되는 하나 이상의 모듈을 포함한다. 시스템은 웹페이지 상의 웹컨텐츠의 현재 뷰어에 대응하는 사용자를 결정하도록 구성된 컨텐츠 뷰어 모듈을 포함한다. 시스템은 또한 웹페이지에 제공된 하나 이상의 공개 코멘트를 결정하도록 구성된 코멘트 모듈을 포함하며, 여기서 상기 하나 이상의 공개 코멘트가 웹페이지의 하나 이상의 뷰어에 의한 공개 코멘팅을 제공하기 위한 제1 포맷을 포함한다. 코멘트 모듈은 또한 결정된 하나 이상의 공개 코멘트 중에서 각자의 공개 코멘트에 대한 응답인 코멘트 데이터를 수신하도록 구성된다. 코멘트 모듈은 또한 수신된 코멘트 데이터를 보기 위한 스코프를 규정하는 사용자의 세트의 선택을 수신하고, 수신된 코멘트 데이터를 보기 위한 스코프에 기초하여 사용자의 세트로 제한된 코멘트를 발생하도록 구성되며, 여기서 발생된 코멘트가 사용자의 세트로 제한된 코멘팅을 제공하기 위한 제2 포맷을 포함한다. 시스템은 또한 결정된 하나 이상의 공개 코멘트 및 발생된 코멘트를 디스플레이를 위해 제공하도록 구성된 그래픽 사용자 인터페이스(GUI) 디스플레이 모듈을 포함하며, 여기에서 상기 발생된 코멘트는 상기 결정된 하나 이상의 공개 코멘트와 구별하기 위해 별도로 디스플레이된다. 사용자의 세트의 선택은 사용자의 그룹을 선택하는 것을 포함한다. 사용자의 그룹은 온라인 소셜 네트워킹 서비스에서의 소셜 서클에 의해 규정된다. 제1 포맷은 웹페이지에 대해 네이티브하다. 제2 포맷은 사용자의 소셜 그래프와의 호환성을 제공한다. 웹페이지는 제1 서비스에 의해 제공되고, 사용자의 소셜 그래프는 제2 서비스에 의해 제공된다. 제1 포맷은 사용자의 소셜 그래프와 호환 가능하지 않다.
코멘트 모듈은 또한 발생된 코멘트가 결정된 사용자를 위해 이용 가능한지를 발생된 코멘트를 보기 위한 스코프에 기초하여 판정하도록 구성된다. GUI 디스플레이 모듈은 또한 발생된 코멘트가 결정된 사용자를 위해 이용 가능하다면 발생된 사용자의 세트로 제한된 코멘트를 디스플레이를 위해 제공하도록 구성된다. 발생된 코멘트는 사용자의 세트에 기초하여 발생된 코멘트 데이터를 보기 위한 스코프를 포함하는 각자의 액세스 제어 리스트와 연관된다. 코멘트 모듈은 또한 사용자의 세트에 기초하여 발생된 코멘트 데이터를 보기 위한 스코프를 포함하는 새로운 액세스 제어 리스트에 엔트리를 발생하도록 구성되며, 이 엔트리는 코멘트를 새로운 액세스 제어 리스트에 연관시킨다. 코멘트 모듈은 또한 사용자가 사용자의 세트로 제한된 각자의 코멘트를 보기 위한 각자의 액세스 제어 리스트에 포함되는지를 판정하기 위해 웹컨텐츠에 대한 이용 가능한 코멘트의 검색 요청을 수행하도록 구성된다. GUI 디스플레이 모듈은 또한 결정된 하나 이상의 공개 코멘트를 디스플레이를 위해 제공하도록 구성되며, 여기에서 디스플레이되는 공개 코멘트가 사용자의 세트로 제한된 하나 이상의 코멘트와 별도로 디스플레이된다.
또한, 본 기술은 웹페이지에 제공된 하나 이상의 공개 코멘트를 결정하는 것을 제공하며, 여기에서 하나 이상의 공개 코멘트는 웹페이지의 하나 이상의 뷰어에 의한 공개 코멘팅을 제공하기 위한 제1 포맷을 포함한다. 그리고나서, 결정된 하나 이상의 공개 코멘트 중에서 각자의 공개 코멘트에 대한 응답이 되는 코멘트 데이터가 수신된다. 본 기술은 수신된 코멘트 데이터를 보기 위한 스코프를 규정하는 사용자의 세트의 선택을 수신하며, 여기에서 사용자의 세트는 사용자의 소셜 그래프의 하나 이상의 컨택 중에서 하나 이상의 고유 컨택을 포함한다. 수신된 코멘트 데이터를 보기 위한 스코프에 기초하여 사용자의 세트로 제한된 코멘트가 발생되며, 발생된 코멘트는 사용자의 세트로 제한된 코멘팅을 제공하기 위한 제2 포맷을 포함하고, 이 제2 포맷은 사용자의 소셜 그래프와 호환 가능하고, 공개 코멘팅을 제공하기 위한 제1 포맷과는 호환 가능하지 않다.
이러한 구현예 및 기타 구현예는 이하의 장점 중의 하나 이상을 제공할 수 있다. 예컨대, 본 기술은, 웹페이지가 사용자의 소셜 그래프와의 상호작용을 지원하지 않는 곳에서, 하나 이상의 공개 코멘트를 포함하는 웹페이지 내의 사용자의 소셜 그래프에 포함된 사용자의 세트 간에 대화가 발생하도록 한다. 그 결과, 사용자의 세트는 동일한 페이지 내의 하나 이상의 공개 코멘트에 대한 화면(view)에서 사용자의 소셜 그래프로부터의 사용자의 세트로 제한된 코멘트를 제공할 수 있다. 동일한 웹페이지 상에서 이러한 코멘트를 제공하는 것은 더욱 끊김없는 사용자 경험(more seamless user experience)을 제공할 수 있다. 그러므로, 대화를 생성하는 사용자는 먼저 사용자의 세트에 대해 공개 코멘트(들)를 공유하고 그리고나서 사용자의 세트 간의 대화를 보기 위해 별도의 페이지, 서비스 또는 어플리케이션(예컨대, 공개 코멘트로부터 떨어져 있는)으로 네비게이트하는 단계를 행하지 않아도 된다. 이에 부가하여, 본 기술은 사용자의 세트로 제한된 코멘트를 동일한 웹페이지 상의 공개 코멘트와 시각적으로 구별되게 하는 방식으로 대화를 제공할 수 있다.
본 기술의 다른 구성 또한 본 기술의 다양한 구성을 예시를 통해 보여주고 설명하고 있는 이하의 상세한 설명으로부터 용이하게 명백하게 될 것이라는 것을 이해할 것이다. 실현되는 바와 같이, 본 기술은 본 기술의 범위에서 벗어나지 않고서도 기타 구성 및 상이한 구성이 가능하며, 그 몇몇 세부 구성 또한 다양한 다른 양태로의 수정이 가능하다. 이에 따라, 도면 및 상세한 설명은 본질적으로 예시를 위한 것이고 본 발명을 제한하려는 것은 아닌 것으로 간주될 것이다.
본 기술의 특징은 첨부된 청구범위에 명시되어 있다. 그러나, 설명을 목적으로, 본 기술의 여러 구성이 이하의 도면에 나타내어져 있다.
도 1은 사용자의 세트로 제한된 하나 이상의 코멘트를 제공하기 위한 일례의 그래픽 사용자 인터페이스(GUI)를 개념적으로 도시하고 있다.
도 2는 공개적으로 액세스할 수 있는 웹컨텐츠에 대한 사용자의 세트로 제한된 하나 이상의 코멘트를 제공하기 위한 일례의 프로세스를 개념적으로 도시하고 있다.
도 3은 공개적으로 액세스할 수 있는 웹컨텐츠에 대한 하나 이상의 컨택에게 사용자의 세트로 제한된 코멘트를 제출(submit)하기 위한 일례의 프로세스를 개념적으로 도시하고 있다.
도 4는 사용자의 세트로 제한된 코멘트에 대한 대답을 제출하는 일례의 프로세스를 개념적으로 도시하고 있다.
도 5는 하나 이상의 공개 코멘트를 포함하는 웹페이지에서 사용자의 세트로 제한된 코멘트를 제공하는 일례의 프로세스를 개념적으로 도시하고 있다.
도 6은 일례의 컴퓨팅 환경을 개념적으로 도시하고 있다.
도 7은 일례의 어플리케이션 프로그래밍 인터페이스(API) 아키텍처를 개념적으로 도시하고 있다.
도 8은 본 기술의 몇몇 구현예계가 구현될 수 있는 시스템을 개념적으로 도시하고 있다.
아래에 설명된 상세한 설명은 본 기술의 다양한 구성에 대한 서술을 목적으로 하는 것으로, 본 기술이 실시될 수 있는 유일한 구성을 표현하려는 것이 아니다. 첨부 도면은 본 명세서에 통합되며, 상세한 설명의 일부를 구성한다. 상세한 설명은 본 기술에 대한 완전한 이해를 제공하기 위한 목적의 구체적인 세부 구성을 포함한다. 그러나, 본 기술은 본 명세서에 기술된 구체적인 세부 구성으로 한정되지 않고, 이들 구체적인 세부 구성 없이도 실시될 수 있다. 몇몇 경우에는, 본 기술의 개념을 모호하게 하는 것을 방지하기 위하여 구조 및 부품이 블록도 형태로 도시되어 있다.
몇몇 웹사이트는 방문자(예컨대, 상이한 사용자)로 하여금 상이한 웹컨텐츠(예컨대, 비디오, 기사 등)에 대한 응답으로 코멘트를 제공할 수 있도록 한다. 이러한 코멘트는 통상적으로 공개적인 것이고, 웹사이트를 방문하는 사용자에 의한 보기를 위해 이용할 수 있다. 그 결과, 사용자에 의해 제공된 코멘트는 그 웹사이트를 방문하는 다른 사용자에 의한 보기를 위해 이용할 수 있다. 그러나, 몇몇 경우에, 웹컨텐츠를 보는 사용자는 지정된 그룹의 사용자로 스코프가 제한되는 코멘트를 제공(예컨대, 또 다른 사용자에 의한 공개 코멘트에 대한 응답으로)하기를 원할 수도 있다. 이 예에서의 사용자는 제한된 스코프의 밖에 있는 다른 사용자가 코멘트를 보는 것을 원하지 않는다.
위의 관점에서, 본 기술은, 일구현예에서, 웹사이트에 의해 호스팅된 웹페이지 상의 웹컨텐츠에 대한 사용자의 세트로 제한된 코멘트를 제공하기 위한 위젯(widget)을 제공한다. 일실시예에 따른 "위젯"은, 사용자로부터 입력을 수신하고, 입력 또는 서비스와의 통신을 통해 수신된 정보를 처리하고, 처리된 정보를 사용자에게 디스플레이하기 위해, 웹페이지 서비스 및 소셜 네트워킹 서비스와 통신할 수 있도록 적합화되는 컴퓨터-구현 모듈(computer-implemented module)이다. "위젯"은 웹페이지의 일부분일 필요는 없지만 사용자의 웹브라우저 등의 플러그인(plugin) 또는 익스텐션(extension)일 수 있다. 몇몇 경우에, 웹페이지는 하나 이상의 공개 코멘트를 제공할 수 있다. 공개 코멘트는 웹페이지에 의해 제공된 네이티브 포맷(native format)으로 될 수도 있다. 그러나, 웹페이지는 하나 이상의 공개 코멘트로 사용자와 그 사용자의 소셜 그래프로부터의 다른 사용자 간의 상호작용(예컨대, 대화)을 네이티브하게 지원하지 않는다. 따라서, 위젯은 컨텐츠 제공자 또는 사용자로 하여금, 웹사이트의 방문자로부터의 하나 이상의 공개 코멘트를 이미 제공하는 웹콘텐츠의 기존의 구현 또는 제시(existing implementation or presentation)에 지장을 주지 않는 방식으로, 사용자의 세트로 제한된 코멘트를 제공할 수 있도록 한다. 이러한 양상에서, 위젯은 사용자로 하여금 사용자의 소셜 그래프와의 상호작용을 네이티브하게 지원하지 않는 웹컨텐츠 내의 사용자의 소셜 그래프로부터의 다른 사용자로 제한된 대화를 제공할 수 있도록 한다. 위젯은 사용자의 웹브라우저의 플러그인 또는 익스텐션으로서 제공될 수 있거나, 또는 컨텐츠 제공자에 의해 웹페이지에 통합될 수도 있다. 다른 구현예가 제공될 수 있고, 이 또한 본 기술의 범위 내에 있는 것이다. 전술한 사용자(예컨대, 사용자의 소셜 그래프로부터의)의 세트는 몇몇 구현예에서는 단일 사용자, 사용자의 그룹, 그룹의 세트, 또는 조직을 포함한다.
사용자의 세트로 제한된 코멘트를 포스팅하기 위해, 위젯은 그 코멘트를 특정한 그룹의 사람으로 제한하기 위한 상이한 옵션을 사용자에게 제시할 수 있다. 예컨대, 위젯은 사용자의 하나 이상의 컨택을 소셜 서클로 조직화하는 소정의 소셜 네트워킹 서비스에 의해 규정된 하나 이상의 그룹(예컨대, 소셜 서클)을 선택하는 것을 제공할 수 있다. 소셜 서클은 신뢰의 정도 또는 관계의 유형 등에 기초하여 사용자의 소셜 그래프로부터 하나 이상의 컨택을 그룹화하는 것을 표현한다. 이와 달리, 위젯은 사용자로 하여금 사용자의 세트로 제한된 코멘트를 보도록 허용되는 사용자의 그룹을 수동으로 제공하도록 할 수 있다. 일례에서, 본 기술은 사용자의 세트로 제한된 코멘트를 액세스 제어 리스트와 연관시키며, 이 액세스 제어 리스트는 사용자의 세트로 제한된 코멘트를 보기 위한 스코프를 선택된 그룹의 사용자에 기초하여 규정한다. 액세스 제어 리스트는, 사용자의 세트로 제한된 코멘트를 보기 위한 스코프를 규정하는 것을 포함한, 사용자의 세트로 제한된 코멘트에 대한 사용권한(permissions)(사용권한은 사용자의 세트로 제한된 코멘트에 대해 수행될 수 있는 동작의 세트를 규정)의 세트를 관리한다.
일례에서, 사용자의 세트로 제한된 코멘트는 웹페이지에 제공된 공개 코멘트와 호환 가능하지 않은 포맷으로 제공된다. 보다 구체적으로, 웹페이지에서의 공개 코멘트는 사용자의 소셜 그래프로부터의 사용자의 컨택에 대한 액세스를 제공하지 않는다. 예컨대, 웹페이지는 단지 웹페이지를 호스팅하는 웹사이트에 등록되어 있는 사용자들 간의 공개 코멘팅을 제공할 수 있으며, 이러한 공개 코멘팅은 웹페이지의 방문자에 대한 보기가 제한되지 않는다. 소셜 그래프 내의 사용자의 컨택에 대한 액세스를 허용하기 위해, 사용자의 세트로 제한된 코멘트는 사용자의 소셜 그래프로부터의 컨택에 대한 액세스를 허용하도록 사용자의 소셜 그래프와 호환 가능한 상이한 포맷(공개 코멘트와 상이한)으로 제공된다. 그러므로, 본 기술은 사용자의 소셜 그래프로부터의 컨택에 대한 액세스를 네이티브하게 허용하지 않는 소정의 웹페이지 상의 코멘팅을 가능하게 하기 위해 사용자의 소셜 그래프의 임포테이션(importation)을 제공하는 것으로서 이해될 수 있다. 이 문맥에서의 임포테이션은 일실시예에 따라 웹페이지의 코멘팅 기능이 사용자의 소셜 그래프에 기초한 기능으로 향상된다는 것을 의미하며, 이에 의해 사용자는 마치 사용자의 소셜 그래프로부터의 정보가 코멘팅 기능을 제공하는 소정의 웹페이지 내로 통합되는 것과 같은, 예컨대 사용자의 소셜 그래프가 웹페이지 서비스에 의해 제공된 네이티브 기능 및 정보의 끊김없는 부분(seamless part)인 것과 같은 양상으로 향상을 인지한다. 일실시예에서, 이것은, 제1 웹페이지(네이티브 웹페이지)에 추가되고, 소셜 네트워킹 서버와 통신하고 그로부터 서비스를 수신하여 네이티브 웹페이지 상에 코멘팅 기능을 "구현하거나" 또는 "디스플레이"할 수 있는 위젯에 의해 구현될 수 있다. 또한, 사용자로부터의 및/또는 사용자의 소셜 그래프로부터의 컨택의 임의의 코멘트가 의도되지 않은 뷰어로부터 코멘트의 비밀(confidentiality)을 보장하기 위해 웹페이지의 다른 뷰어로부터의 보기가 감추어진다.
또 다른 사용자가 웹페이지 상의 웹컨텐츠를 볼 때에, 본 기술(예컨대, 위젯)은 보기에 이용할 수 있는 사용자의 세트로 제한된 하나 이상의 코멘트를 결정하기 위해 액세스 제어 리스트에 따라 검색 요청을 수행한다. 예컨대, 본 기술은 보고 있는 사용자가 사용자의 세트로 제한된 코멘트를 보기 위한 각자의 액세스 제어 리스트에 포함되는지를 판정하기 위해 웹컨텐츠에 대한 이용 가능 코멘트의 검색 요청을 수행한다. 일례에서, 각각의 코멘트가 액세스 제어 리스트(들)에 연관될 수 있다. 액세스 제어 리스트에 기초하여 보기에 이용할 수 있는 사용자의 세트로 제한된 코멘트는 하나 이상의 공개 코멘트를 구별하기 위해 상이한 시각적 표시자(예컨대, 아이콘, 그래픽 표현 등)와 함께 위젯에 의해 제공될 것이다. 이에 부가하여, 본 기술은 웹페이지에 제공된 하나 이상의 공개 코멘트로부터 사용자의 세트로 제한된 코멘트를 디스플레이하거나 및/또는 조직화하기 위해 상이한 필터링 기술(예컨대, 하나 이상의 상이한 기준에 기초하여)을 수행할 수 있다.
또한, 몇몇 구현예에서, 사용자가 사용자의 세트로 제한된 기존의 코멘트에 대답할 때에, 추가의 대답은 탑-레벨 코멘트(예컨대, 기존의 대화에서 직접 또는 간접적으로 대답되고 있는 사용자의 세트로 제한된 초기 코멘트, 또는 사용자의 세트로 제한된 일련의 코멘트)의 액세스 제어 리스트로부터의 스코프를 물려받을 수 있다. 일례에서, 이것은 대답이 별도로 보여지는 것이 아니라 탑-레벨 코멘트와 함께 보여질 수 있는 탑-레벨 코멘트에 관한 "어노테이션(annotation)"(예컨대, 데이터 구조, 데이터 필드 등)으로서 구현된다. 이와 달리 또는 이와 함께, 사용자의 세트로 제한된 코멘트에 대한 대답은 탑-레벨 코멘트를 위한 액세스 제어 리스트에 대한 레퍼런스를 포함할 것이다. 이러한 방식으로, 대답은 자기 자신의 어노테이션에 제공되고, 액세스 제어 리스트를 탑-레벨 코멘트와 공유한다. 이와 같이, 탑-레벨 코멘트에서의 하나의 액세스 제어 리스트와 대답에서의 하나의 액세스 제어 리스트의 2개의 액세스 제어 리스트 복사본이 제공된다. 그러나, 액세스 제어 리스트가 탑-레벨 코멘트에서 변경되면, 그 변경(들)은 대답에 전파될 것이다. 몇몇 구현예에서, 코멘트의 스코프는 사용자에 의해 잠금(lock)될 수 있다. 예컨대, 탑-레벨 코멘트에 대답하는 사용자는 사용자의 대답 코멘트의 스코프에 대한 변경을 디스에이블하도록 원할 수도 있다. 그 결과, 탑-레벨 코멘트의 스코프가 변경되면(예컨대, 사용자의 세트로 제한되어 있는 것으로부터 공개의 것으로), 변경된 스코프는 사용자의 대답에 적용되지 않고, 그러므로 사용자의 대답 코멘트의 제한된 스코프가 보존된다. 이에 부가하여, 탑-레벨 코멘트의 스코프는 몇몇 구현예에서 스코프에 대한 변경을 디스에이블하기 위해 잠금될 수도 있다.
도 1은 본 기술의 몇몇 구성이 구현될 수 있는 그래픽 사용자 인터페이스(GUI)(100)를 개념적으로 도시하고 있다. 도 1에 나타낸 예에서 도시된 바와 같이, 사용자의 세트로 제한된 코멘트는 온라인 소셜 네트워킹 서비스에 의해 제공된 웹페이지에 제공된 공개적으로 볼 수 있는 코멘트에 대한 응답이 된다. 보다 구체적으로, GUI(100)는 사용자의 세트로 제한된 하나 이상의 코멘트를 제공하기 위한 그래픽 요소의 상이한 세트를 포함할 수 있다. 그래픽 요소는 이러한 것으로 한정되지는 않지만 버튼, 체크 박스, 라디오 버튼(radio button), 슬라이더, 리스트 박스, 드롭-다운 리스트, 메뉴, 콤보 박스, 아이콘, 텍스트 박스, 스크롤 바 등을 포함할 수 있다.
일례의 GUI(100)에 예시된 바와 같이, 컨택의 상이한 그래픽 표현(170, 172, 174, 176, 178, 180)이 도시되어 있다. 컨택은 사용자의 소셜 그래프 내의 컨택, 이메일 컨택, 웹페이지의 상이한 사용자 등이어도 된다. GUI(100)는 또한 다양한 코멘트에 대응하는 디스플레이 영역(110, 120, 130, 140)을 포함한다. 예컨대, 그래픽 표현 170은 디스플레이 영역 110에 나타낸 공개 코멘트와 연관된다. 공개 코멘트는 몇몇 구성에서는 온라인 소셜 네트워킹 서비스에 의해 제공된 웹페이지의 모든 뷰어에게 보여질 수 있다. 또 다른 예에서, 공개 코멘트는 웹사이트에 의해 호스팅된 온라인 포럼에서 제공될 수 있거나, 또는 웹사이트에 의해 제공된 기사, 비디오 또는 기타 웹컨텐츠에 연관될 수 있다.
GUI(100)는 하나 이상의 사용자로 하여금 공개 코멘트에 대한 응답으로 사용자의 세트로 제한된 코멘트를 제출하도록 한다. 도시된 바와 같이, GUI(100)는 디스플레이 영역 120에 나타낸 사용자의 세트로 제한된 코멘트와 연관된 그래픽 표현 172을 보여준다. 사용자의 세트로 제한된 초기 코멘트를 생성하는 사용자(예컨대, "중개자(moderator)")는 사용자의 세트로 제한된 초기 코멘트 및 뒤따르는 대답(ensuing reply)을 보기 위한 스코프를 할당(assign)할 수 있다. 스코프는 온라인 소셜 네트워킹 서비스(예컨대, 소셜 서클)에 의해 규정되는 사용자의 하나 이상의 그룹을 포함한 하나 이상의 다른 사용자를 포함할 수 있다. 일례에서, 중개자의 역할로 행동하는 사용자는 사용자의 세트로 제한된 코멘트를 볼 수 있는 사용자의 수를 확대하거나 또는 더 제한하기 위해 사용자의 세트로 제한된 코멘트(예컨대, 사용자의 세트로 제한된 초기 코멘트 및 하나 이상의 대답)의 스코프를 변경할 수 있다.
도 1에 도시된 예에서, 그래픽 표현(174, 176, 178)에 해당하는 사용자는 디스플레이 영역(120)에 나타낸 사용자의 세트로 제한된 초기 코멘트에 응답하여 사용자의 세트로 제한된 각자의 코멘트를 제공하였다(에컨대, 디스플레이 영역 130, 140, 150에). 사용자의 세트로 제한된 각각의 코멘트는 사용자의 세트로 제한된 초기 코멘트에 할당된 사용자의 스코프에 따라 보기가 제한된다. 이러한 방식으로, 사용자의 세트로 제한된 코멘트는 그 웹페이지에 대한 각각의 방문자에게 보여질 수 없게 된다.
GUI(100)는 사용자(그래픽 표현 180으로서 나타낸)로 하여금 텍스트박스(160)에 코멘트 데이터를 입력함으로써(예컨대, 키보드 입력을 통해) 사용자의 세트로 제한된 새로운 코멘트를 제출할 수 있도록 한다. 일례에서, 그래픽 표현 180은 사용자의 로그인 크레덴셜, 프로필 정보 등에 기초하여 판정될 수 있는 웹페이지를 보고 있는 현재 사용자를 나타낸다. 키보드 입력에 부가하여, 다른 종류의 입력도 가능하며, 이 또한 본 기술의 범위 내에 있는 것이다. 예컨대, 몇몇 구성은 사용자의 세트로 제한된 코멘트를 제출하기 위해 음성 입력을 수용할 수 있다.
GUI(100)에 나타낸 예가 사용자의 세트로 제한된 코멘트를 특정한 배열로 예시하지만, 사용자의 세트로 제한된 코멘트에 대한 다른 타입의 배열이 제공될 수 있고, 이 또한 본 기술의 범위 내에 있는 것이다. 예컨대, GUI(100)는 사용자의 세트로 제한된 코멘트를 접혀지게(collapse) 하거나 확장하기 위해 그래픽 요소를 포함할 수 있다. 또한, 사용자의 세트로 제한된 코멘트는 상이한 방식으로(예컨대, 상이한 컬러, 세이딩(shading) 또는 기타 그래픽 표시자 등을 이용하여) 표시되거나 디스플레이될 수 있다. 이에 부가하여, GUI(100)가 특정한 그래픽 요소를 포함하지만, GUI(100)가 도 1에 도시된 모든 그래픽 요소를 포함하도록 요구되지 않는다는 것을 이해하여야 한다. 더욱이, GUI(100)는 도 1의 예에서 나타낸 것보다 더 많은 그래픽 요소를 포함할 수 있다.
도 2는 공개적으로 액세스할 수 있는 웹컨텐츠에 대한 사용자의 세트로 제한된 하나 이상의 코멘트를 제공하기 위한 일례의 프로세스(200)를 개념적으로 도시한다. 일례에서, 사용자의 세트는 단일 사용자, 사용자의 그룹, 그룹의 세트, 또는 조직을 포함한다. 이 프로세스(200)는 몇몇 구성에서의 하나 이상의 컴퓨팅 디바이스 상에서 수행될 수 있다.
이 프로세스(200)는 단계 205에서 웹페이지 상의 웹컨텐츠의 현재 뷰어에 대응하는 사용자를 결정함으로써 개시된다. 웹페이지가 하나 이상의 공개 코멘트 및 사용자의 세트로 제한된 코멘트에 대해 인에이블되며, 여기에서 웹컨텐츠가 몇몇 구성에서는 웹페이지의 각각의 뷰어에 의한 보기에 이용할 수 있다. 일례에서, 사용자는 웹컨텐츠의 현재 뷰어의 하나 이상의 로그인 크레덴셜에 기초하여 결정된다. 이에 부가하여, 사용자는 몇몇 구성에서 대응하는 온라인 소셜 네트워킹 프로필에 기초하여 결정된다.
프로세스(200)는, 단계 210에서, 결정된 사용자를 위해 이용할 수 있는 사용자의 세트로 제한된 하나 이상의 코멘트를 결정하며, 여기에서 사용자의 세트로 제한된 각각의 코멘트는 보기가 웹페이지의 뷰어의 서브세트로 제한된다. 일례에서, 이용할 수 있는 사용자의 세트로 제한된 하나 이상의 코멘트를 결정하는 것은, 사용자가 결정된 사용자의 세트로 제한된 코멘트 중에서 사용자의 세트로 제한된 각자의 코멘트를 보기 위한 각자의 액세스 제어 리스트에 포함되는지를 판정하기 위해, 웹컨텐츠에 대한 이용 가능한 코멘트의 검색 요청을 수행함으로써 달성된다. 결정된 사용자의 세트로 제한된 하나 이상의 코멘트는 사용자의 세트로 제한된 코멘트를 보기 위한 스코프를 규정하는 각자의 액세스 제어 리스트와 연관된다. 사용자의 세트로 제한된 코멘트를 보기 위한 스코프는 하나 이상의 고유 사용자 및 결정된 사용자를 포함한다.
전술한 바와 같이, 웹페이지는 하나 이상의 공개 코멘트를 제공할 수도 있다. 그러나, 웹페이지는 하나 이상의 공개 코멘트로 사용자와 그 사용자의 소셜 그래프로부터의 다른 사용자 간의 상호작용(예컨대, 대화)을 네이티브하게 지원하지 않는다. 따라서, 본 기술은 컨텐츠 제공자 또는 사용자로 하여금, 웹사이트의 방문자로부터의 하나 이상의 공개 코멘트를 이미 제공한 웹컨텐츠의 기존의 구현 또는 제시에 지장을 주지 않는 방식으로, 사용자의 세트로 제한된 코멘트를 제공하도록 한다. 이러한 양상에서, 본 기술은 사용자의 소셜 그래프와의 상호작용을 네이티브하게 지원하지 않는 웹컨텐츠 내의 사용자의 소셜 그래프로부터의 다른 사용자로 제한된 대화를 제공한다. 일실시예에서, 웹페이지 서비스의 제공자는 웹페이지에 시스템(605)에 의해 제공된 서비스에 대한 레퍼런스를 포함할 수 있으며, 이것은 몇몇 실시예에서는 온라인 소셜 네트워킹 서비스에 포함될 수 있다. 일실시예에 따른 이러한 포함은 지장을 주지 않는 것으로서 간주될 수 있는 웹페이지에 대한 최소의 수정이다. 웹페이지가 로딩되고 클라이언트 컴퓨팅 디바이스(660) 상에 디스플레이될 때, 이 클라이언트 컴퓨팅 디바이스는 - 이에 부가하여 제한된 코멘팅 기능(restricted commenting functionality)이 없는 "정상적인" 또는 "네이티브한" 웹페이지는 - 사용자의 세트로 제한된 코멘팅을 제공하기 위한 포맷을 레퍼런스를 통해 추가로 획득할 것이며, 이 포맷 및 특히 코멘팅에 참여하는 사용자의 선택이 사용자의 소셜 그래프로부터 획득된다(예컨대, "포맷이 사용자의 소셜 그래프와 호환 가능함(the format is compatible with the user's social graph)"). 또 다른 실시예에서, 사용자는, 웹페이지 서비스로부터 웹페이지를 로딩하고, 웹페이지를 분석하며, 웹페이지를 사용자의 세트로 제한된 코멘팅을 제공하기 위한 포맷으로 수정하는 웹브라우저의 플러그인 또는 익스텐션을 가질 수도 있으며, 여기서 포맷 및 특히 코멘팅에 참여하는 사용자의 선택이 사용자의 소셜 그래프로부터 획득된다(예컨대, "포맷이 사용자의 소셜 그래프와 호환 가능함(the format is compatible with the user's social graph)"). 웹페이지에 대해 네이티브인 공개 코멘팅을 위한 포맷이 이에 의해 대체될 수 있다. 일례에서, 결정된 사용자의 세트로 제한된 코멘트는 웹컨텐츠의 각자의 공개 코멘트에 대한 응답이다. 구체적으로, 각자의 공개 코멘트는 웹컨텐츠의 모든 뷰어에 의한 보기에 이용할 수 있고, 결정된 사용자의 세트로 제한된 코멘트는 대응하는 액세스 제어 리스트에 의해 규정된 스코프에 의한 보기로 제한된다.
이 프로세스(200)는, 단계 215에서, 결정된 사용자를 위해 이용할 수 있는 결정된 사용자의 세트로 제한된 하나 이상의 코멘트를 디스플레이를 위해 제공한다. 결정된 사용자의 세트로 제한된 하나 이상의 코멘트는 웹컨텐츠와 연관된 하나 이상의 공개 코멘트와 구별하기 위해 별도로 디스플레이된다. 몇몇 구성에서, 이 프로세스(200)는 결정된 사용자의 세트로 제한된 하나 이상의 코멘트를 하나 이상의 기준에 따른 디스플레이를 위해 필터링할 수 있다. 그리고나서, 이 프로세스(200)가 종료된다.
도 3은 공개적으로 액세스할 수 있는 웹컨텐츠에 대한 하나 이상의 컨택에게 사용자의 세트로 제한된 코멘트를 제출하기 위한 일례의 프로세스(300)를 개념적으로 도시한다. 이 프로세스(300)는 몇몇 구성에서는 하나 이상의 컴퓨팅 디바이스 또는 컴퓨팅 시스템에 의해 수행될 수 있다.
이 프로세스(300)는 단계 305에서 사용자의 세트로 제한된 코멘트와 연관된 코멘트 데이터를 수신함으로써 개시되며, 여기에서 사용자의 세트로 제한된 코멘트는 웹페이지에 제공된 웹컨텐츠에 대응한다. 일례에서, 사용자의 세트로 제한된 코멘트는 사용자 입력(예컨대, 텍스트박스 요소 등을 통한 사용자 엔트리)에 기초하여 온라인 제출을 통해 수신된다.
이 프로세스(300)는, 단계 310에서, 사용자의 세트로 제한된 코멘트를 보기 위한 스코프를 규정하는 하나 이상의 사용자의 선택을 수신하며, 여기에서 사용자의 세트로 제한된 코멘트는 단지 하나 이상의 사용자의 선택에 기초하여 보기에 이용 가능하다. 몇몇 구성에서, 사용자의 세트로 제한된 코멘트를 보기 위한 스코프는 사용자의 세트로 제한된 코멘트와 연관되는 액세스 제어 리스트에 포함된다. 하나 이상의 사용자의 선택은 일례에서는 사용자의 그룹을 선택하는 것을 포함한다. 예컨대, 사용자의 그룹은 온라인 소셜 네트워킹 서비스에서의 소셜 서클에 의해 규정된다.
이 프로세스(300)는, 단계 315에서, 하나 이상의 사용자의 선택에 의해 규정된 사용자의 세트로 제한된 코멘트를 보기 위한 스코프에 따라 웹컨텐츠에 대응하는 사용자의 세트로 제한된 코멘트를 발생한다. 일례에서, 사용자의 세트로 제한된 코멘트를 발생하는 것은, 사용자의 세트로 제한된 코멘트를 보기 위한 스코프를 포함하는 새로운 액세스 제어 리스트에 엔트리를 발생하는 것을 포함하며, 여기에서 이 엔트리는 사용자의 세트로 제한된 코멘트를 새로운 액세스 제어 리스트에 연관시킨다. 그리고나서, 이 프로세스(300)가 종료된다.
도 4는 사용자의 세트로 제한된 코멘트에 대한 대답을 제출하는 일례의 프로세스(400)를 개념적으로 도시한다. 이 프로세스(400)는 몇몇 구성에서는 하나 이상의 컴퓨팅 디바이스 또는 컴퓨팅 시스템에 의해 수행될 수 있다.
이 프로세스(400)는, 단계 405에서, 사용자의 세트로 제한된 코멘트에 대답하기 위한 코멘트 데이터를 수신함으로써 개시된다. 일례에서, 코멘트 데이터는 사용자 입력(예컨대, 텍스트박스 요소 등을 통한 사용자 엔트리)에 기초하여 온라인 제출을 통해 제공된 사용자 입력을 통해 수신된다.
이 프로세스(400)는, 단계 410에서, 사용자의 세트로 제한된 코멘트와 연관된 탑-레벨 코멘트를 결정한다. 몇몇 구성에서, 탑-레벨 코멘트는 사용자의 세트로 제한된 일련의 코멘트 또는 대화 쓰레드(conversation thread)를 개시하는 사용자의 세트로 제한된 초기 코멘트이다.
이 프로세스(400)는, 단계 415에서, 결정된 탑-레벨 코멘트와 연관된 액세스 제어 리스트를 결정한다. 이 프로세스(400)는, 단계 420에서, 수신된 코멘트 데이터 및 결정된 액세스 제어 리스트에 기초하여 사용자의 세트로 제한된 코멘트에 대한 대답을 발생한다.
그리고나서, 이 프로세스(400)는, 단계 425에서, 사용자의 세트로 제한된 코멘트에 대해 발생된 대답을 디스플레이를 위해 제공한다. 일례에서, 이 프로세스(400)는 이 대답을 탑-레벨 코멘트를 포함하고 있는 화면(view)에 디스플레이한다. 그리고나서, 이 프로레스(400)가 종료된다.
도 5는 하나 이상의 공개 코멘트를 포함하는 웹페이지에서 사용자의 세트로 제한된 코멘트를 제공하기 위한 일례의 프로세스(500)를 개념적으로 도시한다. 이 프로세스(500)는 몇몇 구성에서 하나 이상의 컴퓨팅 디바이스에서 구현될 수 있다.
이 프로세스(500)는, 단계 505에서, 웹페이지에 제공된 하나 이상의 공개 코멘트를 결정함으로써 개시되며, 여기에서 하나 이상의 공개 코멘트는 웹페이지의 하나 이상의 뷰어에 의한 공개 코멘팅을 제공하기 위한 제1 포맷을 포함한다. 제1 포맷은 일례에서는 웹페이지에 대해 네이티브하다. 예컨대, 웹페이지를 호스팅하는 웹사이트는 공개 코멘트를 수신하고, 웹페이지의 방문자에 대한 보기를 위한 네이티브 포맷으로 저장할 수 있다. 그러나, 네이티브 포맷은 웹페이지의 방문자가 그 방문자의 소셜 그래프로부터의 하나 이상의 컨택으로 제한된 코멘트를 제공하는 것을 허용하지 않는다.
이 프로세스(500)는, 단계 510에서, 코멘트 데이터를 수신하며, 이 코멘트 데이터는 결정된 하나 이상의 공개 코멘트 중에서 각자의 공개 코멘트에 대한 응답이다. 예컨대, 코멘트 데이터는 사용자에 의해 제공된 입력으로부터 수신될 수 있다.
이 프로세스(500)는, 단계 515에서, 수신된 코멘트 데이터를 보기 위한 스코프를 규정하는 사용자의 세트의 선택을 수신한다. 사용자의 세트의 선택은 일례에서는 사용자의 그룹을 선택하는 것을 포함한다. 사용자의 그룹은 사용자와의 관계에 기초하여 사전에 정해지거나 조직될 수 있다. 예로서, 사용자의 그룹은 온라인 소셜 네트워킹 서비스에서의 소셜 서클에 의해 규정된다. 사용자의 그룹을 조직하는 다른 방법이 제공될 수 있으며, 이 또한 본 기술의 범위 내에 있는 것이다.
이 프로세스(500)는, 단계 520에서, 수신된 코멘트 데이터를 보기 위한 스코프에 기초하여 사용자의 세트로 제한된 코멘트를 발생하며, 여기에서 발생된 코멘트는 사용자의 세트로 제한된 코멘팅을 제공하기 위한 제2 포맷으로 된다. 제2 포맷은 일례에서 사용자의 소셜 그래프와의 호환성을 제공한다. 예컨대, 전술한 제1 포맷은 사용자의 소셜 그래프와 호환 가능하지 않다. 이러한 방식으로, 이 프로세스(500)는 웹페이지에서의 사용자의 소셜 그래프와 통합하고 이 사용자의 소셜 그래프와의 상호작용을 가능하게 하기 위해 제2 포맷(웹페이지에 대해 네이티브인 제1 포맷과는 상이한)으로의 코멘트 데이터의 변환을 제공한다. 또한, 웹페이지는 제1 서비스에 의해 제공되고, 사용자의 소셜 그래프는 일례에서의 제2 서비스에 의해 제공된다.
몇몇 구성에서, 발생된 코멘트는 사용자의 세트에 기초하여 발생된 코멘트 데이터를 보기 위한 스코프를 포함하는 각자의 액세스 제어 리스트와 연관된다. 예컨대, 사용자의 세트로 제한된 코멘트를 발생하는 것은, 사용자의 세트에 기초하여 발생된 코멘트 데이터를 보기 위한 스코프를 포함하는 새로운 액세스 제어 리스트에 엔트리를 발생하는 것을 포함하며, 여기에서 이 엔트리는 코멘트를 새로운 액세스 제어 리스트에 연관시킨다.
이 프로세스(500)는, 단계 525에서, 결정된 하나 이상의 공개 코멘트 및 발생된 코멘트를 디스플레이를 위해 제공하며, 여기에서 발생된 코멘트는 결정된 하나 이상의 공개 코멘트와 구별하기 위해 별도로 디스플레이된다. 예컨대, 발생된 코멘트는 발생된 코멘트의 제한된 양태(aspect)를 강조하거나 명확하게 식별하도록 디스플레이될 수 있다. 그리고나서, 이 프로세스(500)가 종료된다.
도 6은 시스템을 포함하는 일례의 컴퓨팅 환경(600)을 개념적으로 도시한다. 구체적으로, 도 6은 도 1에서의 전술한 GUI 및 도 2∼5에서의 프로세스를 구현하기 위한 시스템(605)을 도시한다. 몇몇 구성에서, 시스템(605)은 특정한 기기(예컨대, 클라이언트 컴퓨터, 랩탑, 노트북, 넷북 등)를 작동시키는 구현의 일부분이다.
시스템(605)은 메모리, 하나 이상의 프로세서, 및 메모리에 저장되고 하나 이상의 프로세스에 의한 실행을 위해 구성되는 하나 이상의 모듈을 포함할 수 있다. 도 6에 도시된 바와 같이, 시스템(605)은 상이한 기능을 제공하기 위해 여러 개의 모듈을 포함한다. 시스템(605)은 컨텐츠 뷰어 모듈(610), 코멘트 모듈(615) 및 그래픽 사용자 인터페이스(GUI) 디스플레이 모듈(620)을 포함하도록 구성된다.
컨텐츠 뷰어 모듈(610)은 웹페이지 상의 웹컨텐츠의 현재 뷰어에 대응하는 사용자를 결정하도록 구성되며, 여기에서 이 웹페이지는 사용자의 세트로 제한된 코멘트 및 하나 이상의 공개 코멘트에 대해 인에이블되며, 웹컨텐츠는 웹페이지의 각각의 뷰어에 의한 보기를 위해 이용할 수 있다. 사용자는 일례에서 대응하는 온라인 소셜 네트워킹 프로필에 기초하여 결정된다. 코멘트 모듈(615)은 결정된 사용자를 위해 이용할 수 있는 사용자의 세트로 제한된 하나 이상의 코멘트를 결정하도록 구성되며, 여기서 사용자의 세트로 제한된 각각의 코멘트는 보기가 웹페이지의 뷰어의 서브세트로 제한된다. GUI 디스플레이 모듈(620)은 결정된 사용자를 위해 이용할 수 있는 결정된 사용자의 세트로 제한된 하나 이상의 코멘트를 디스플레이를 위해 제공하도록 구성되며, 여기서 결정된 사용자의 세트로 제한된 하나 이상의 코멘트가 웹컨텐츠와 연관된 하나 이상의 공개 코멘트와 구별하기 위해 별도로 디스플레이된다.
이에 부가하여, 코멘트 모듈(615)은 또한 결정된 사용자의 세트로 제한된 코멘트 중에서 사용자의 세트로 제한된 각자의 코멘트를 보기 위한 각자의 액세스 제어 리스트에 사용자가 포함되는지를 판정하기 위해 웹컨텐츠에 대한 이용 가능한 코멘트의 검색 요청을 수행하도록 구성된다. 검색 요청은 사용자의 소셜 네트워크 그래프, 코멘트, 및 각자의 액세스 제어 리스트를 포함하는 소셜 네트워킹 서비스에 어드레스된다. 소셜 네트워킹 서비스는 이 요청을 처리하고, 대답을 코멘트 모듈(615)에 제공한다.
GUI 디스플레이 모듈(620)은 또한 하나 이상의 기준에 따라 디스플레이를 위해 결정된 사용자의 세트로 제한된 하나 이상의 코멘트를 필터링하도록 구성된다. 코멘트 모듈(615)은 또한, 사용자의 세트로 제한된 코멘트가 웹페이지에 제공된 웹컨텐츠에 대응하는, 사용자의 세트로 제한된 코멘트에 연관된 코멘트 데이터를 수신하고; 사용자의 세트로 제한된 코멘트가 단지 하나 이상의 사용자의 선택에 기초하여 보기에 이용할 수 있는, 사용자의 세트로 제한된 코멘트를 보기 위한 스코프를 규정하는 하나 이상의 사용자의 선택을 수신하고; 하나 이상의 사용자의 선택에 의해 규정된 사용자의 세트로 제한된 코멘트를 보기 위한 스코프에 따라 웹컨텐츠에 대응하는 사용자의 세트로 제한된 코멘트를 발생하도록 구성된다. 코멘트 데이터는 코멘트 자체의 텍스트 및 관련 데이터와 코멘트에 연관된 액세스 제어 리스트를 포함한다. 코멘트 데이터는 소셜 네트워킹 서비스로부터 수신될 수 있다.
이에 부가하여, 코멘트 모듈(615)은 또한 사용자의 세트로 제한된 코멘트를 보기 위한 스코프를 포함하는 새로운 액세스 제어 리스트에 엔트리를 발생하도록 구성되며, 이 엔트리는 사용자의 세트로 제한된 코멘트를 새로운 액세스 제어 리스트에 연관시킨다. 액세스 제어 리스트 내의 엔트리는 소셜 네트워킹 서비스에서의 사용자의 고유 식별자(unique identifier)를 포함할 수 있다. 액세스 제어 리스트는 사용자의 세트로 제한된 코멘트를 보기 위한 스코프를 규정하는 하나 이상의 사용자의 선택이 수신되는 때에(단계 310 또는 515) 작성된다. 각각의 지정된 사용자에 대해 엔트리가 발생된다. 이것은 코멘트가 소셜 그래프를 갖는 사용자에 의해 발생되는 때에 코멘트의 발생이 코멘트를 작성한 사용자의 소셜 그래프에 기초하여 코멘트를 보도록 허용되는 사용자를 이 코멘트에 대해 특정하는 새로운 "액세스 제어 리스트"의 발생과 함께 수행된다는 것을 의미한다. 일실시예에서, 액세스 제어 리스트는 코멘트와 연관되고, 예컨대 소셜 네트워킹 서비스에 의해 그 코멘트와 함께 저장된다. 액세스 제어 리스트에 대한 엔트리의 발생은 액세스 제어 리스트가 초기화될 때에 발생한다. 엔트리의 초기화를 완료한 후, 액세스 제어 리스트는 코멘트와 연관되고 저장된다. 더욱이, 코멘트 모듈(615)은 또한 웹페이지 상의 웹컨텐츠의 하나 이상의 공개 코멘트를 결정하도록 구성된다.
몇몇 구성에서, 코멘트 모듈(615)은 사용자의 세트로 제한된 코멘트에 대답하기 위해 코멘트 데이터를 수신하고, 사용자의 세트로 제한된 코멘트와 연관된 탑-레벨 코멘트를 결정하고, 결정된 탑-레벨 코멘트와 연관된 액세스 제어 리스트를 결정하고, 수신된 코멘트 데이터 및 결정된 액세스 제어 리스트에 기초하여 사용자의 세트로 제한된 코멘트에 대한 대답을 발생한다.
GUI 디스플레이 모듈(620)은 또한 결정된 하나 이상의 공개 코멘트를 디스플레이를 위해 제공하도록 구성되며, 여기에서 디스플레이된 공개 코멘트는 사용자의 세트로 제한된 코멘트와 별도로 디스플레이된다. "디스플레이를 위해 제공한다"라는 것은 일실시예에서는 예컨대 HTML 포맷의 특정한 시각적 표현이 코멘트 데이터와 이 시각적 표현을 구성하는 데이터로부터 발생된다는 것을 의미한다. 이러한 시각적 표현은 그리고나서 네트워크(650)를 통해 클라이언트 컴퓨팅 디바이스(600, 670)에 전송되어 예컨대 웹브라우저에 의해 그 클라이언트 컴퓨팅 디바이스의 GUI(100) 상에 디스플레이될 수 있다. 또한, GUI 디스플레이 모듈(620)은 사용자의 세트로 제한된 코멘트에 대해 발생된 대답을 디스플레이를 위해 제공하도록 구성된다.
몇몇 구성에서, 코멘트 모듈(615)은 웹페이지에 제공된 하나 이상의 공개 코멘트를 결정하도록 구성되며, 여기에서 하나 이상의 공개 코멘트는 웹페이지의 하나 이상의 뷰어에 의한 공개 코멘팅을 제공하기 위해 제1 포맷으로 되어 있다. 제1 포맷은 일례에서는 웹페이지에 대해 네이티브이다. 코멘트 모듈(615)은 또한 코멘트 데이터를 수신하도록 구성되며, 여기에서 코멘트 데이터는 결정된 하나 이상의 공개 코멘트 중에서 각자의 공개 코멘트에 대한 응답이다. 코멘트 모듈(615)은 또한 수신된 코멘트 데이터를 보기 위한 스코프를 규정하는 사용자의 세트의 선택을 수신하고, 수신된 코멘트 데이터를 보기 위한 스코프에 기초하여 사용자의 세트로 제한된 코멘트를 발생하도록 구성되며, 여기에서 발생된 코멘트는 사용자의 세트로 제한된 코멘트를 제공하기 위한 제2 포맷으로 된다. 제2 포맷은 사용자의 소셜 그래프와의 호환성을 제공한다. 웹페이지는 제1 서비스에 의해 제공되고, 사용자의 소셜 그래프는 일례에서는 제2 서비스에 의해 제공된다. 제1 포맷은 몇몇 구성에서 사용자의 소셜 그래프와 호환되지 않는다. 사용자의 세트의 선택은 일례에서 사용자의 그룹을 선택하는 것을 포함한다. 사용자의 그룹은 일례에서 온라인 소셜 네트워킹 서비스에서의 소셜 서클에 의해 규정된다. GUI 디스플레이 모듈(620)은 결정된 하나 이상의 공개 코멘트와 발생된 코멘트를 디스플레이를 위해 제공하도록 구성되며, 여기서에서 발생된 코멘트는 결정된 하나 이상의 공개 코멘트와 구별하기 위해 별도로 디스플레이된다.
코멘트 모듈(615)은 또한 발생된 코멘트가 발생된 코멘트를 보기 위한 스코프에 기초하여 결정된 사용자를 위해 이용할 수 있는지를 판정하도록 구성된다. GUI 디스플레이 모듈(620)은 또한 발생된 코멘트가 결정된 사용자를 위해 이용할 수 있다면 발생된 사용자의 세트로 제한된 코멘트를 디스플레이를 위해 제공하도록 구성된다. 몇몇 구성에서, 발생된 코멘트는 사용자의 세트에 기초하여 발생된 코멘트 데이터를 보기 위한 스코프를 포함하는 각자의 액세스 제어 리스트와 연관된다. 코멘트 모듈(615)은 또한 사용자의 세트에 기초하여 발생된 코멘트 데이터를 보기 위한 스코프를 포함하는 새로운 액세스 제어 리스트 내에 엔트리를 발생하도록 구성되며, 여기에서 이 엔트리는 코멘트를 새로운 액세스 제어 리스트에 연관시킨다.
도 6에 도시된 바와 같이, 각각의 전술한 모듈은 서로 간에 통신하도록 구성될 수 있다. 예컨대, 시스템(605)에서의 상이한 모듈들 간에 상이한 데이터, 메시지, API 호출 및 리턴을 주고받을 수 있다.
시스템(605)은 네트워크(650)를 통해 클라이언트 컴퓨팅 디바이스(660)와 통신할 수 있다. 클라이언트 컴퓨팅 디바이스(660)는 시스템(605)의 전술한 모듈과 각각 통신하도록 구성될 수 있다. 예컨대, 클라이언트 컴퓨팅 디바이스(660)는 사용자의 세트로 제한된 하나 이상의 코멘트를 위한 코멘트 데이터를 네트워크(650)를 통해 시스템(605)에 전송할 수 있다. 이에 응답하여, 시스템(605)은 사용자의 세트로 제한된 하나 이상의 코멘트를 발생하고 이를 네트워크(650)를 통해 클라이언트 컴퓨팅 디바이스(660)에 제공할 수 있다. 도 6에 도시된 바와 같이, 시스템(605)은 유사한 방식으로 네트워크(650)를 통해 다른 클라이언트 컴퓨팅 디바이스(970)와 통신할 수 있다(그리고 그 반대도 가능하다).
전술한 특징 및 어플리케이션의 다수는 기기 판독 가능 저장 매체(컴퓨터 판독 가능 매체로도 지칭됨) 상에 기록된 일련의 명령어로서 구체화되는 소프트웨어 프로세스로서 구현된다. 이들 명령어가 하나 이상의 처리 유닛(예컨대, 하나 이상의 프로세서, 프로세서의 코어, 또는 기타 처리 유닛)에 의해 실행될 때, 이들 명령어는 처리 유닛으로 하여금 명령어에서 지시되는 동작을 수행하도록 한다. 기기 판독 가능 매체의 예는 CD-ROM, 플래시 드라이브, RAM 칩, 하드 드라이브, EPROM 등을 포함하지만, 이들로 한정되지는 않는다. 기기 판독 가능 매체는 무선으로 또는 유선 접속을 통해 주고받는 전자 신호 및 반송파를 포함하지 않는다.
본 명세서에서, "소프트웨어"라는 표현은 프로세서에 의한 처리를 위해 메모리 내로 판독될 수 있는 자기 저장 장치(magnetic storage)에 저장된 어플리케이션 및/또는 판독 전용 메모리(ROM)에 상주하고 있는 펌웨어를 포함하는 의미를 갖는다. 또한 몇몇 구현예에서, 복수의 소프트웨어 콤포넌트가 개별 소프트웨어 콤포넌트로 유지되면서 대형 프로그램의 세부 부분(sub-part)으로서 구현될 수 있다. 몇몇 구현예에서, 복수의 소프트웨어 주체 콤포넌트 또한 별도의 프로그램으로서 구현될 수도 있다. 최종적으로, 본 명세서에서 설명되는 소프트웨어 콤포넌트를 함께 구현하는 별도의 프로그램들의 어떠한 조합도 본 기술의 범위 내에 있는 것이다. 몇몇 구현예에서, 소프트웨어 프로그램은, 하나 이상의 시스템을 동작시키기 위해 설치될 때, 소프트웨어 프로그램의 동작을 실행하고 수행하는 하나 이상의 구체적인 머신 구현(specific machine implementation)을 규정한다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트, 또는 코드로서도 알려진)은 컴파일러형 언어(compiled language) 또는 인터프리트형 언어(interpreted language), 선언형 언어(declarative language) 또는 절차형 언어(procedural language)를 포함한 어떠한 형태의 프로그래밍 언어로도 작성될 수 있으며, 독립형 프로그램 또는 모듈, 콤포넌트, 서브루틴, 오브젝트, 또는 컴퓨팅 환경에서 이용하기에 적합한 기타 유닛을 포함한 어떠한 형태로도 채용될 수 있다. 컴퓨터 프로그램은 파일 시스템(file system) 내의 파일에 대응할 수도 있지만, 반드시 그러할 필요는 없다. 프로그램은 기타 프로그램 또는 데이터를 유지하는 파일의 일부분에 저장될 수도 있거나(예컨대, 마크업 랭귀지 도큐먼트에 저장된 하나 이상의 스크립트), 대상으로 하는 프로그램의 전용의 단일 파일에 저장될 수도 있거나, 또는 복수의 연합 파일(coordinated file)(예컨대, 하나 이상의 모듈, 서브 프로그램, 또는 코드의 일부분을 저장하는 파일)에 저장될 수도 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 실행되도록 채용될 수 있고, 또는 하나의 지점에 위치되거나 또는 복수의 지점에 걸쳐 분산되어 통신 네트워크에 의해 상호접속되는 복수의 컴퓨터 상에서 실행되도록 채용될 수 있다.
몇몇 구성은 호출 프로그램 코드가 하나 이상의 인터페이스를 통해 호출되는 다른 프로그램 코드와 상호작용하는 환경에서 하나 이상의 어플리케이션 프로그래밍 인터페이스(API)를 포함하는 소프트웨어 프로세스로서 구현된다. 다양한 종류의 파라미터를 포함할 수 있는 다양함 함수 호출(function call), 메시지 또는 다른 타입의 인보케이션(invocation)은 API를 통해 호출 프로그램과 피호출 코드 간에 전달될 수 있다. 또한, API는 호출 프로그램 코드에게 API에서 규정되고 피호출 프로그램 코드로서 구현되는 데이터 타입 또는 클래스를 사용하는 성능을 제공할 수 있다.
몇몇 구성에서는 하나 이상의 API가 사용될 수도 있다. API는 상이한 프로그램 코드 콤포넌트 또는 하드웨어 콤포넌트("API 호출 콤포넌트(API calling component)")로 하여금 API 구현 콤포넌트(API implementing component)에 의해 제공된 하나 이상의 함수, 메쏘드, 프로시져, 데이터 구조, 클래스, 및/또는 기타 서비스를 액세스하고 사용하도록 하는 프로그램 코드 콤포넌트 또는 하드웨어 콤포넌트("API 구현 콤포넌트")에 의해 구현되는 인터페이스이다. API는 API 호출 콤포넌트와 API 구현 콤포넌트 간에 주고받는 하나 이상의 파라미터를 규정할 수 있다.
API는 API 호출 콤포넌트의 개발자(제3자 개발자일 수도 있음)로 하여금 API 구현 콤포넌트에 의해 제공되는 지정된 특징을 이용하도록 한다. 하나의 API 호출 콤포넌트가 있을 수도 있고, 또는 하나보다 많은 API 호출 콤포넌트가 있을 수도 있다. API는 컴퓨팅 시스템 또는 프로그램 라이브러리가 어플리케이션으로부터의 서비스의 요청을 지원하기 위해 제공하는 소스 코드 인터페이스일 수 있다. 운영 시스템(OS)은 OS 상에서 실행되는 어플리케이션으로 하여금 이들 API 중의 하나 이상을 호출하도록 하기 위해 복수의 API를 가질 수 있으며, 서비스(프로그램 라이브러리와 같은)는 이 서비스를 이용하는 어플리케이션으로 하여금 이들 API 중의 하나 이상을 호출하도록 하기 위해 복수의 API를 가질 수 있다. API는 어플리케이션이 구축될 때에 인터프리트되거나 컴파일될 수 있는 프로그래밍 언어를 통해 특정될 수 있다.
몇몇 구성에서, API 구현 콤포넌트는 하나보다 많은 API를 제공할 수 있으며, 각각의 API는 API 구현 콤포넌트에 의해 구현되는 기능의 상이한 양태를 액세스하는 상이한 양태의 또는 상이한 양태를 갖는 상이한 뷰를 제공한다. 예컨대, API 구현 콤포넌트의 하나의 API는 제1 세트의 함수를 제공할 수 있고, 제3자 개발자(third party developer)에게 노출될 수 있으며, API 구현 콤포넌트의 다른 API는 감추어질 수 있고(노출되지 않음), 제1 세트의 함수의 서브세트를 제공하고 또한 제1 세트의 함수에 들어있지 않은 테스팅 함수 또는 디버깅 함수와 같은 또 다른 세트의 함수를 제공할 수 있다. 다른 구성에서, API 구현 콤포넌트는 그 자체가 하위 API를 통해 하나 이상의 다른 콤포넌트를 호출할 수 있으며, 그러므로 API 호출 콤포넌트와 API 구현 콤포넌트 둘 모두로 될 수 있다.
API는 API 구현 콤포넌트의 지정된 특징부를 액세스하고 사용할 때에 API 호출 콤포넌트가 사용하는 언어 및 파라미터를 규정한다. 예컨대, API 호출 콤포넌트는 API에 의해 노출된 하나 이상의 API 호출 또는 인보케이션(예컨대 함수 또는 메쏘드 호출에 의해 구체화되는)을 통해 API 구현 콤포넌트의 지정된 특징을 액세스하며, API 호출 또는 인보케이션을 통해 파라미터를 이용하여 데이터 및 제어 정보를 넘겨준다. API 구현 콤포넌트는 API 호출 콤포넌트로부터의 API 호출에 응답하여 API를 통해 값을 리턴할 수 있다. API가 API 호출의 신택스(syntax) 및 결과를 규정하지만(예컨대, API 호출을 어떻게 불러오는지와 API 호출이 무엇을 하는지), API는 API 호출이 API 호출에 의해 지정된 함수를 어떻게 완수하는지를 드러내지 않을 수도 있다. 다양한 API 호출이 하나 이상의 어플리케이션 프로그래밍 인터페이스를 통해 호출(API 호출 콤포넌트)과 API 구현 콤포넌트 간에 전달된다. API 호출을 전달하는 것은 함수 호출 또는 메시지를 발행하거나, 개시시키거나, 불러 읽어들이거나, 호출하거나, 수신하거나, 리턴하거나, 응답하는 것을 포함할 수 있다. 즉, 전달은 API 호출 콤포넌트 또는 API 구현 콤포넌트 중의 어느 하나에 의한 동작을 기술할 수 있다. API의 함수 호출 또는 기타 인보케이션은 파라미터 리스트 또는 기타 구조를 통해 하나 이상의 파라미터를 보내거나 수신할 수 있다. 파라미터는 API를 통해 주고받게 될 데이터 또는 기타 아이템을 참조하기 위한 함수 또는 메쏘드 또는 기타 방법에 대한 정수, 키, 데이터 구조, 오브젝트, 오브젝트 클래스, 변수, 데이터 타입, 포인터, 어레이, 리스트 또는 포인터일 수 있다.
더욱이, 데이터 타입 또는 클래스는 API에 의해 제공되고 API 구현 콤포넌트에 의해 구현될 수 있다. 따라서, API 호출 콤포넌트는 변수를 선언하고, API에서 제공된 정의를 사용함으로써 이러한 타입 또는 클래스의 정수값을 사용하거나 인스턴스화하기 위해 포인터를 사용할 수 있다.
일반적으로, API는 API 구현 콤포넌트에 의해 제공된 서비스 또는 데이터를 액세스하거나 또는 API 구현 콤포넌트에 의해 제공된 동작 또는 계산의 수행을 개시하기 위해 사용될 수 있다. 예로서, API 구현 콤포넌트 및 API 호출 콤포넌트는 각각 운영 시스템, 라이브러리, 디바이스 드라이버, API, 어플리케이션 프로그램, 또는 기타 모듈 중의 하나이어도 된다(API 구현 콤포넌트 및 API 호출 콤포넌트는 서로 동일한 타입의 모듈이어도 되고 또는 상이한 타입의 모듈이어도 된다는 것을 이해하여야 한다). API 구현 콤포넌트는 몇몇 경우에는 적어도 부분적으로는 펌웨어, 마이크로코드, 또는 기타 하드웨어 로직으로 구체화될 수 있다. 몇몇 구성에서, API는 클라이언트 프로그램으로 하여금 소프트웨어 개발 키트(SDK) 라이브러리에 의해 제공된 서비스를 사용하도록 할 수도 있다. 다른 구성에서, 어플리케이션 또는 기타 클라이언트 프로그램은 어플리케이션 프레임워크에 의해 제공된 API를 사용할 수 있다. 이들 구성에서, 어플리케이션 또는 클라이언트 프로그램은 SDK 또는 API에 의해 제공된 함수 또는 메쏘드에 대한 호출을 통합하거나 또는 SDK에서 규정되고 API에 의해 제공된 데이터 타입 또는 오브젝트를 이용할 수 있다. 어플리케이션 프레임워크는 이들 구성에서는 프레임워크에 의해 규정된 다양한 이벤트에 응답하는 프로그램을 위한 메인 이벤트 루프를 제공한다. API는 어플리케이션으로 하여금 어플리케이션 프레임워크를 이용하여 이벤트를 특정하거나 이벤트에 응답하도록 한다. 몇몇 구현예에서, API 호출은 입력 용량 및 상태, 출력 용량 및 상태, 처리 용량, 파워 상태, 저장 용량 및 상태, 통신 용량 등과 같은 양태에 관련된 것을 포함한 하드웨어 디바이스의 용량 또는 상태를 어플리케이션에 보고할 수 있으며, API는 부분적으로는 펌웨어, 마이크로코드, 또는 하드웨어 콤포넌트 상에서 부분적으로 실행되는 기타 저레벨 로직에 의해 구현될 수 있다.
API 호출 콤포넌트는 근거리 콤포넌트(예컨대, API 구현 콤포넌트와 동일한 데이터 처리 시스템 상에 있는) 또는 네트워크를 거쳐 API를 통해 API 구현 콤포넌트와 통신하는 원거리 콤포넌트(예컨대, API 구현 콤포넌트와는 상이한 데이터 처리 시스템 상에 있는)이어도 된다. API 구현 콤포넌트는 또한 API 호출 콤포넌트로서 동작할 수도 있고(예컨대, 상이한 API 구현 콤포넌트에 의해 노출된 API에 대해 API 호출을 행할 수도 있음), API 호출 콤포넌트 또한 상이한 API 호출 콤포넌트에 노출되는 API를 구현함으로써 API 구현 콤포넌트로서 동작할 수도 있다.
API는 상이한 프로그래밍 언어로 작성된 복수의 API 호출 콤포넌트로 하여금 API 구현 콤포넌트와 통신하도록 할 수 있다(그러므로, API는 API 구현 콤포넌트와 API 호출 콤포넌트 간의 호출 및 리턴을 해석하기 위한 특징부를 포함할 수 있다). 그러나, API는 특정한 프로그래밍 언어를 통해 구현될 수 있다. API 호출 콤포넌트는 일구성에서는 OS 공급자로부터의 API의 세트, 플러그-인 공급자로부터의 또 다른 API의 세트, 및 또 다른 공급자(예컨대, 소프트웨어 라이브러리의 공급자) 또는 또 다른 세트의 API의 생성자로부터의 또 다른 API의 세트와 같은 상이한 공급자로부터의 API를 호출할 수 있다.
이하의 설명은 본 기술의 몇몇 구성을 구현할 수 있는 일례의 API 아키텍처를 설명한다.
도 7은 본 기술의 몇몇 구성에서 사용될 수 있는 일례의 API 아키텍처를 예시하는 블록도이다. 도 7에 도시된 바와 같이, API 아키텍처(700)는 API(710)를 구현하는 API 구현 콤포넌트(715)(예컨대, 운영 시스템, 라이브러리, 디바이스 드라이버, API, 어플리케이션 프로그램, 소프트웨어 또는 기타 모듈)를 포함한다. API(710)는 API 호출 콤포넌트(705)에 의해 사용될 수 있는 API 구현 콤포넌트의 하나 이상의 함수, 메쏘드, 클래스, 오브젝트, 프로토콜, 데이터 구조, 포맷 및/또는 기타 특징을 특정한다. 일례에서, API(710)는 사용자의 소셜 그래프를 액세스할 수 있다(예컨대, 사용자와 사용자 소셜 그래프로부터의 하나 이상의 다른 사용자 간의 상호작용을 제공하기 위해). API(710)는 API 구현 콤포넌트에서의 함수가 API 호출 콤포넌트로부터 파라미터를 수신하는 방법과 그 함수가 결과를 API 호출 콤포넌트에 리턴하는 방법을 특정하는 하나 이상의 호출 컨벤션(calling convention)을 특정할 수 있다. API 호출 콤포넌트(705)(예컨대, 운영 시스템, 라이브러리, 디바이스 드라이버, API, 어플리케이션 프로그램, 소프트웨어 또는 기타 모듈)는 API(710)를 통해 API 호출이 API(710)에 의해 특정되는 API 구현 콤포넌트(715)의 특징을 액세스하고 사용할 수 있게 한다. API 구현 콤포넌트(715)는 API 호출에 응답하여 값을 API(710)를 통해 API 호출 콤포넌트(705)에 리턴할 수 있다.
API 구현 콤포넌트(715)는 API(710)를 통해 특정되지 않고 API 호출 콤포넌트(705)에 대해 이용할 수 없는 추가의 함수, 메쏘드, 클래스, 데이터 구조, 및/또는 기타 특징을 포함할 수 있다는 것을 이해할 것이다. API 호출 콤포넌트(705)는 API 구현 콤포넌트(715)와 동일한 시스템 상에 있을 수도 있고, 또는 API 구현 콤포넌트(715)로부터 원격으로 위치되어 네트워크를 통해 API(710)를 이용하여 API 구현 콤포넌트(715)를 액세스할 수도 있다는 것을 이해하여야 한다. 도 7이 API(710)와 상호작용하는 하나의 API 호출 콤포넌트(705)를 도시하고 있지만, API 호출 콤포넌트(705)와는 상이한 언어(또는 동일한 언어)로 작성될 수 있는 다른 API 호출 콤포넌트가 API(710)를 사용할 수 있다는 것을 이해하여야 한다.
API 구현 콤포넌트(715), API(710) 및 API 호출 콤포넌트(705)는 기기(예컨대, 컴퓨터 또는 기타 데이터 처리 시스템)에 의해 판독 가능한 형태로 정보를 저장하기 위한 메카니즘을 포함하는 기기 판독 가능 매체에 저장될 수 있다. 예컨대, 기기 판독 가능 매체에는 자기 디스크, 광디스크, RAM, ROM, 플래시 메모리 디바이스 등이 포함된다.
이하의 설명은 본 기술의 양태를 구현할 수 있는 일례의 시스템을 개념적으로 예시하고 있다.
도 8은 본 기술의 몇몇 구현예를 구현할 수 있는 시스템(800)을 개념적으로 예시하고 있다. 본 시스템(800)은 컴퓨터, 전화기, PDA, 또는 다른 종류의 전자 디바이스이어도 된다. 몇몇 구성에서, 시스템(800)은 하나 이상의 프로세서가 내장된 텔레비전을 포함한다. 이러한 시스템은 다양한 타입의 컴퓨터 판독 가능 매체와 다양한 기타 타입의 컴퓨터 판독 가능 매체를 위한 인터페이스를 포함한다. 시스템(800)은 버스(805), 처리 유닛(810), 시스템 메모리(815), 판독 전용 메모리(ROM)(820), 저장 장치(825), 옵션의 입력 인터페이스(830), 옵션의 출력 인터페이스(835), 및 네트워크 인터페이스(840)를 포함한다.
버스(805)는 시스템(800)의 다수의 내부 디바이스를 통신 방식으로 접속하는 모든 시스템, 주변 장치 및 칩셋 버스를 통칭하여 나타낸다. 예컨대, 버스(805)는 처리 유닛(810)을 ROM(820), 시스템 메모리(815) 및 저장 장치(825)와 통신 방식으로 접속시킨다.
이들 다양한 메모리 유닛으로부터, 처리 유닛(810)은 본 기술의 프로세스를 실행하기 위해 실행할 명령어 및 처리할 데이터를 검색한다. 처리 유닛은 상이한 구현예에서는 단일 프로세서일 수도 있고 또는 복수-코어 프로세서일 수도 있다.
ROM(820)은 시스템(800)의 처리 유닛(810) 및 기타 모듈에 의해 요구되는 정적 데이터(static data) 및 명령어를 저장한다. 한편, 저장 장치(825)는 판독-기입 메모리 장치이다. 이 장치는 시스템(800)이 오프 상태로 되는 때에도 명령어 및 데이터를 저장하는 비휘발성 메모리 유닛이다. 본 기술의 몇몇 구현예는 저장 장치(825)로서 대용량 저장 장치(자기 디스크, 광디스크, 및 그에 대응하는 디스크 드라이브와 같은)를 이용한다.
다른 구현예는 저장 장치(825)로서 이동 가능한 저장 장치(플래시 드라이브, 플로피 디스크, 및 그에 대응하는 디스크 드라이브)를 이용한다. 저장 장치(825)와 마찬가지로, 시스템 메모리(815)는 판독-기입 메모리 장치이다. 그러나, 저장 장치(825)와 달리, 시스템 메모리(815)는 랜덤 액세스 메모리와 같은 휘발성 판독-기입 메모리이다. 시스템 메모리(815)는 실행 시간(runtime)에서 프로세서가 요구하는 명령어 및 데이터의 몇몇을 저장한다. 몇몇 구현예에서, 본 기술의 프로세스는 시스템 메모리(815), 저장 장치(825), 및/또는 ROM(820)에 저장된다. 예컨대, 다양한 메모리 유닛이 몇몇 구현예에 따라 멀티미디어 아이템을 처리하기 위한 명령어를 포함한다. 이들 다양한 메모리 유닛으로부터, 처리 유닛(810)은 몇몇 구현예의 프로세스를 실행하기 위해 실행할 명령어 및 처리할 데이터를 검색한다.
버스(805)는 또한 옵션의 입력 인터페이스(830) 및 옵션의 출력 인터페이스(835)에 접속된다. 옵션의 입력 인터페이스(830)는 사용자로 하여금 정보를 통신하고 전자 시스템에 대한 명령을 선택할 수 있도록 한다. 옵션의 입력 인터페이스(830)는 예컨대 알파뉴메릭 키보드 및 포인팅 장치(소위 "커서 제어 장치")와 인터페이스할 수 있다. 옵션의 출력 인터페이스(835)는 예컨대 시스템(800)에 의해 생성된 디스플레이 이미지를 제공할 수 있다. 옵션의 출력 인터페이스(835)는 예컨대 프린터와, 음극선관(CRT) 또는 액정 디스플레이(LCD)와 같은 디스플레이 장치와 인터페이스할 수 있다. 몇몇 구현예는 입력 장치로서도 기능하고 또한 출력 장치로서도 기능하는 터치스크린과 같은 디바이스와 인터페이스할 수 있다.
최종적으로, 도 8에 도시된 바와 같이, 버스(805)는 또한 시스템(800)을 네트워크 어댑터(도시하지 않음)를 통해 네트워크 인터페이스(840)에 연결한다. 이러한 방식으로, 컴퓨터는 컴퓨터의 네트워크(근거리 통신망("LAN"), 광역 통신망("WAN") 또는 인트라넷, 또는 인터넷과 같은 네트워크의 상호접속된 네트워크와 같은)의 일부가 될 수 있다. 시스템(800)의 구성요소는 본 기술과 함께 이용될 수 있다.
전술한 이들 기능은 디지털 전자 회로, 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있다. 본 기술은 하나 이상의 컴퓨터 프로그램 제품을 이용하여 구현될 수 있다. 프로그래머블 프로세서 및 컴퓨터는 모바일 장치에 포함되거나 모바일 장치로서 패키징될 수 있다. 프로세스 및 논리 흐름은 하나 이상의 프로그래머블 프로세서에 의해 또한 하나 이상의 프로그래머블 논리 회로에 의해 수행될 수 있다. 범용 및 특수한 용도의 컴퓨팅 디바이스와 저장 장치가 통신 네트워크를 통해 상호접속될 수 있다.
몇몇 구현예는 기기 판독 가능 또는 컴퓨터 판독 가능 매체(이와 달리 컴퓨터 판독 가능 저장 매체, 기기 판독 가능 매체, 또는 기기 판독 가능 저장 매체로도 지칭됨) 내의 컴퓨터 프로그램 명령어를 저장하는 메모리, 저장 장치 및 마이크로프로세서와 같은 전자 부품을 포함할 수 있다. 이러한 컴퓨터 판독 가능 매체의 몇몇 예는 RAM, ROM, 판독 전용 컴팩트 디스크(CD-ROM), 기록 가능 컴팩트 디스크(CD-R), 재기입 가능 컴팩트 디스크(CD-RW), 판독 전용 디지털 버저틀 디스크(예컨대, DVD-ROM, 듀얼-레이어 DVD-ROM), 다양한 기록 가능/개기입 가능 DVD(예컨대, DVD-RAM, DVD-RW, DVD+RW 등), 플래시 메모리(예컨대, SD 카드, mini-SD 카드, micro-SD 카드 등), 자기 하드 드라이브 및/또는 솔리드 스테이트 하드 드라이브, 판독 전용 및 기록 가능 Blu-Ray® 디스크, 초고밀도 광디스크(ultra density optical disc), 광학 또는 자기 매체, 및 플로피 디스크를 포함한다. 컴퓨터 판독 가능 매체는, 하나 이상의 처리 유닛에 의해 실행할 수 있고, 다양한 동작을 수행하기 위한 명령어의 세트를 포함하는 컴퓨터 프로그램을 저장할 수 있다. 컴퓨터 프로그램 또는 컴퓨터 코드의 예에는, 컴파일러에 의해 발생되는 것과 같은 머신 코드(machine code)와, 인터프리터(interpreter)를 이용하여 컴퓨터, 전자 부품 또는 마이크로프로세서에 의해 실행되는 상위-레벨 코드를 포함하는 파일이 포함된다.
상기한 설명이 주로 소프트웨어를 실행하는 마이크로프로세서 또는 복수-코어 프로세서를 참조하고 있지만, 몇몇 구현예는 ASIC(application specific integrated circuits) 또는 FPGA(field programmable gate array)와 같은 하나 이상의 집적회로에 의해 수행된다. 몇몇 구현예에서, 이러한 집적회로는 회로 자체에 저장되는 명령어를 실행한다.
본 명세서 및 본 출원의 임의의 청구항에서 사용되는 바와 같이, "컴퓨터", "서버", "프로세서", 및 "메모리"라는 표현은 모두 전자 장치 또는 다른 기술의 장치를 지칭한다. 이들 표현은 사람 또는 일군의 사람을 배제한다. 본 명세서에 대하여, 디스플레이 또는 디스플레이한다는 표현은 전자 장치 상에 디스플레이하는 것을 의미한다. 본 명세서 및 본 출원의 임의의 청구항에서 사용되는 바와 같이, "컴퓨터 판독 가능 매체"는 전적으로 정보를 컴퓨터에 의해 판독할 수 있는 형태로 저장하는 탠저블한(tangible) 물리적 물체로 한정된다. 이들 표현은 무선 신호, 유선 다운로드 신호, 및 기타 단기성(ephemeral) 신호를 배제한다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에서 설명된 발명의 대상의 구현예는 정보를 사용자에게 디스플레이하기 위한 예컨대 CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터와 같은 디스플레이 장치, 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드와 포인팅 장치, 예컨대 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 마찬가지로 사용자와의 상호작용을 제공하기 위해 다른 종류의 장치가 이용될 수 있으며, 에컨대 사용자에게 제공되는 피드백은 예컨대 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백과 같은 어떠한 형태의 감각적 피드백의 형태이어도 되며, 사용자로부터의 입력은 음향, 스피치(speech), 또는 촉각 입력을 포함한 어떠한 형태로도 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 이용되는 장치와 도큐먼트를 주고받음으로써, 예컨대 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 장치 상의 웹 브라우저에 웹 페이지를 보냄으로써, 사용자와 상호작용할 수 있다.
본 명세서에서 설명되는 발명의 대상의 구성은, 예컨대 데이터 서버와 같은 백 엔드 콤포넌트(back end component)를 포함하거나, 예컨대 어플리케이션 서버와 같은 미들웨어 콤포넌트를 포함하거나, 또는 예컨대 사용자가 본 명세서에 설명된 발명의 대상의 구현예와 상호작용할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트 엔드 콤포넌트(front end component)를 포함하거나, 또는 하나 이상의 이러한 백 엔드 콤포넌트, 미들웨어 콤포넌트 또는 프론트 엔드 콤포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 콤포넌트는 예컨대 통신 네트워크와 같은 어떠한 형태 또는 어떠한 매체의 디지털 데이터 통신에 의해서도 상호접속될 수 있다. 통신 네트워크의 예는 근거리 통신망(LAN), 광역 통신망(WAN), 인터-네트워크(예컨대, 인터넷), 및 피어-투-피어 네트워크(예컨대, ad hoc peer-to-peer 네트워크)를 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 떨어져 있으며, 통상적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는, 각각의 컴퓨터 상에서 실행되고 서로에 대해 클라이언트-서버 관계를 갖는 컴퓨터 프로그램을 통해 발생한다. 몇몇 구성에서, 서버는 데이터(예컨대, HTML 페이지)를 클라이언트 장치에 전송한다(예컨대, 데이터를 클라이언트 장치에 디스플레이하고, 클라이언트 장치와 상호작용하는 사용자로부터의 사용자 입력을 수신하기 위해). 클라이언트 장치에서 생성된 데이터(예컨대, 사용자 상호작용의 결과물)는 클라이언트 장치로부터 서버에서 수신될 수 있다.
개시된 프로세스에서의 단계의 어떠한 구체적인 순서 또는 계층은 일례의 접근방법에 대한 예시라는 것을 이해할 것이다. 설계 기호에 따라, 프로세스에서의 단계의 구체적인 순서 또는 계층이 재배열될 수도 있고, 또는 예시된 단계 모두가 수행될 수 있다는 것을 이해할 것이다. 이들 단계들의 몇몇은 동시에 수행될 수도 있다. 예컨대, 특정한 환경에서, 멀티태스킹 및 병렬 처리가 이로울 수 있다. 더욱이, 전술한 구성에서의 다양한 시스템 구성요소의 분리는 모든 구성에서 이러한 분리를 요구하는 것으로서 이해되지 않아야 하며, 설명된 프로그램 콤포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합될 수 있거나 또는 복수의 소프트웨어 제품으로 패키징될 수 있다는 것을 이해하여야 한다.
상기한 설명은 당업자로 하여금 본 명세서에서 설명된 다양한 양태를 실시할 수 있도록 하기 위해 제공된 것이다. 당업자는 이들 양태에 대한 다양한 수정예를 용이하게 상정할 수 있을 것이며, 본 명세서에서 정의된 포괄적 원리는 다른 양태에도 적용될 수 있다. 그러므로, 청구범위는 본 명세서에서 보여준 양태로 한정되지 않고, 언어 청구항(language claims)에 일치하는 전체 범위를 따르게 될 것이며, 여기서 어떠한 요소를 단수 표현으로 지칭하는 것은 특별히 언급되지 않을 경우에는 "하나 및 단지 하나"를 의미하지 않고, "하나 이상"을 의미한다. "몇몇"이라는 표현은 특별히 달리 언급되지 않을 경우에는 하나 이상을 지칭한다. 남성에 관한 대명사(예컨대, 그의)는 여성 및 중성(예컨대, 그녀의 및 그것의)을 포함하는 의미를 가지며, 그 반대도 가능하다. 제목 및 부제목이 사용되는 경우에는, 이러한 제목 및 부제목은 단지 편의를 위해 사용되며, 본 기술을 제한하지 않는다.
"양태"와 같은 관용구는 이러한 양태가 본 기술에 필수적인 것이거나 또는 이러한 양태가 본 기술의 구성 전부에 적용된다는 것을 암시하지 않는다. 양태에 관련한 개시 내용은 모든 구성에 적용할 수도 있고 또는 하나 이상의 구성에 적용할 수도 있다. 단수 표현의 양태와 같은 관용구는 하나 이상의 양태를 지칭할 수도 있으며, 또한 그 반대도 가능하다. "구성"과 같은 관용구는 이러한 구성이 본 기술에 필수적인 것이거나 또는 이러한 구성이 본 기술의 구성 전부에 적용된다는 것을 암시하지 않는다. 구성에 관련한 개시 내용은 모든 구성에 적용할 수도 있고 또는 하나 이상의 구성에 적용할 수도 있다. 단수 표현의 구성과 같은 관용구는 하나 이상의 구성을 지칭할 수도 있으며, 또한 그 반대도 가능하다.
일례의 실시예에 따라, 본 기술은 웹페이지 상의 웹컨텐츠에 대한 사용자의 세트로 제한된 코멘트를 제공하는 구성을 개시한다. 일구현예에서, 컨텐츠 제공자 또는 사용자로 하여금 웹사이트의 방문자로부터 공개 코멘트를 이미 제공하는 공개적으로 볼 수 있는 웹컨텐츠의 기존의 구현 또는 제시에 지장을 주지 않는 방식으로 사용자의 세트로 제한된 코멘트를 제공하도록 하는 위젯이 제공된다. 특히, 위젯은 사용자의 웹브라우저에 플러그인 또는 익스텐션으로서 제공되거나, 또는 컨텐츠 제공자에 의해 웹페이지에 통합될 수 있다. 사용자의 세트로 제한된 코멘트의 스코프는, 사용자의 세트로 제한된 코멘트로 하여금 사용자의 지정된 세트에 의해서만 보여질 수 있도록 하는 하나 이상의 액세스 제어 리스트에 의해 규정된다(다른 사용자에게는 보여질 수 없다).

Claims (31)

  1. 기기에 의해 구현되는 방법(machine-implemented method)에 있어서,
    웹페이지에 제공된 하나 이상의 공개 코멘트(public comment)를 결정하는 단계 - 상기 하나 이상의 공개 코멘트는 상기 웹페이지의 하나 이상의 뷰어에 의한 공개 코멘팅(public commenting)을 제공하기 위한 제1 포맷을 포함하고, 상기 제1 포맷은 상기 웹페이지와 관련되고 소셜 그래프(social graph)와의 사용자 상호작용을 네이티브하게(natively) 지원하지 않는 제1 서비스에 의해 제공됨 -;
    상기 결정된 하나 이상의 공개 코멘트 중에서 각자의 공개 코멘트에 대한 응답인 코멘트 데이터를 수신하는 단계;
    상기 수신된 코멘트 데이터를 보기 위한 스코프(scope)를 규정하는 사용자들의 세트의 선택을 수신하는 단계;
    상기 수신된 코멘트 데이터를 보기 위한 스코프에 기초하여 상기 사용자들의 세트로 제한된 코멘트 쓰레드(comment thread)를 발생하는 단계 - 상기 발생된 코멘트 쓰레드는 상기 사용자들의 세트로 제한된 코멘팅을 제공하기 위한 제2 포맷을 포함하고, 상기 제2 포맷은 상기 소셜 그래프에 대한 액세스를 허용하는 제2 서비스와 관련됨 -; 및
    상기 웹페이지에 디스플레이하기 위해 상기 사용자들의 세트로 제한된 상기 발생된 코멘트 쓰레드를 제공하는 단계 - 상기 제2 포맷을 갖는 상기 발생된 코멘트 쓰레드는 상기 제1 포맷을 갖는 상기 결정된 하나 이상의 공개 코멘트의 컨텐츠 내에 통합됨-
    를 포함하는 기기에 의해 구현되는 방법.
  2. 제1항에 있어서,
    상기 발생된 코멘트 쓰레드가 상기 결정된 하나 이상의 공개 코멘트와 구별하기 위해 별도로 디스플레이되는, 기기에 의해 구현되는 방법.
  3. 제1항에 있어서,
    웹페이지의 현재 뷰어에 대응하는 사용자를 결정하는 단계;
    상기 발생된 코멘트 쓰레드가 결정된 사용자를 위해 이용할 수 있는 것인지를 상기 수신된 코멘트 데이터를 보기 위한 스코프에 기초하여 판정하는 단계; 및
    상기 발생된 코멘트 쓰레드가 결정된 사용자를 위해 이용될 수 있다면 사용자들의 세트로 제한된 상기 발생된 코멘트 쓰레드를 디스플레이를 위해 제공하는 단계
    를 더 포함하는, 기기에 의해 구현되는 방법.
  4. 제3항에 있어서,
    상기 사용자는 웹페이지의 현재 뷰어의 하나 이상의 로그인 크레덴셜(login credential)에 기초하여 결정되는, 기기에 의해 구현되는 방법.
  5. 제3항에 있어서,
    상기 사용자는 대응하는 온라인 소셜 네트워킹 프로필(online social networking profile)에 기초하여 결정되는, 기기에 의해 구현되는 방법.
  6. 제1항에 있어서,
    상기 발생된 코멘트 쓰레드는 상기 사용자들의 세트에 기초하여 발생된 코멘트 쓰레드를 보기 위한 스코프를 포함하는 각자의 액세스 제어 리스트와 연관되는, 기기에 의해 구현되는 방법.
  7. 제1항에 있어서,
    상기 사용자들의 세트로 제한된 코멘트 쓰레드를 발생하는 단계는, 사용자들의 세트에 기초하여 발생된 코멘트 쓰레드를 보기 위한 스코프를 포함하는 새로운 액세스 제어 리스트에 엔트리를 발생하는 단계를 포함하며, 상기 엔트리가 상기 발생된 코멘트 쓰레드를 상기 새로운 액세스 제어 리스트에 연관시키는, 기기에 의해 구현되는 방법.
  8. 제1항에 있어서,
    상기 사용자들의 세트의 선택은 사용자들의 그룹을 선택하는 것을 포함하는, 기기에 의해 구현되는 방법.
  9. 제8항에 있어서,
    상기 사용자들의 그룹은 온라인 소셜 네트워킹 서비스에서의 소셜 서클(social circle)에 의해 규정되는, 기기에 의해 구현되는 방법.
  10. 제1항에 있어서,
    상기 제1 포맷은 웹페이지에 대해 네이티브(native)인, 기기에 의해 구현되는 방법.
  11. 제1항에 있어서,
    상기 제2 포맷은 상기 웹페이지와 관련된 어플리케이션에 의해 제공되는, 기기에 의해 구현되는 방법.
  12. 제11항에 있어서,
    상기 어플리케이션은 웹브라우저에서 플러그인(plugin) 또는 익스텐션(extension)으로서 제공되는 위젯을 포함하는, 기기에 의해 구현되는 방법.
  13. 제11항에 있어서,
    상기 어플리케이션은 상기 웹페이지에 통합되는, 기기에 의해 구현되는 방법.
  14. 제1항에 있어서,
    상기 사용자들의 세트는 단일 사용자, 사용자들의 그룹, 그룹들의 세트, 또는 조직을 포함하는, 기기에 의해 구현되는 방법.
  15. 제1항에 있어서,
    상기 사용자들의 세트는 수신된 코멘트 데이터를 보기 위한 스코프를 규정하는 각자의 액세스 제어 리스트와 연관되는, 기기에 의해 구현되는 방법.
  16. 제15항에 있어서,
    상기 수신된 코멘트 데이터를 보기 위한 스코프는 하나 이상의 고유 사용자(unique user)를 포함하는, 기기에 의해 구현되는 방법.
  17. 제1항에 있어서,
    상기 웹페이지 상의 하나 이상의 공개 코멘트를 결정하는 단계; 및
    결정된 하나 이상의 공개 코멘트를 디스플레이를 위해 제공하는 단계 - 디스플레이되는 상기 공개 코멘트는 상기 발생된 코멘트 쓰레드와 별도로 디스플레이됨-
    를 더 포함하는, 기기에 의해 구현되는 방법.
  18. 코멘트에 대한 액세스를 결정하는 시스템으로서,
    하나 이상의 프로세서; 및
    명령어들이 저장되어 있는 기기 판독 매체
    를 포함하고, 상기 명령어들은 상기 프로세서들에 의해 실행될 시에, 상기 프로세서들로 하여금:
    웹페이지 상의 웹컨텐츠의 현재 뷰어에 대응하는 사용자를 결정하는 동작;
    상기 웹페이지에 제공된 하나 이상의 공개 코멘트를 결정하는 동작 - 상기 하나 이상의 공개 코멘트는 웹페이지의 하나 이상의 뷰어에 의한 공개 코멘팅을 제공하기 위한 제1 포맷을 포함하며, 상기 제1 포맷은 상기 웹페이지와 관련되고 소셜 그래프(social graph)와의 사용자 상호작용을 네이티브하게 지원하지 않는 제1 서비스에 의해 제공됨 -;
    상기 결정된 하나 이상의 공개 코멘트 중에서 각자의 공개 코멘트에 대한 응답인 코멘트 데이터를 수신하는 동작;
    상기 수신된 코멘트 데이터를 보기 위한 스코프를 규정하는 사용자들의 세트의 선택을 수신하는 동작;
    상기 수신된 코멘트 데이터를 보기 위한 스코프에 기초하여 상기 사용자들의 세트로 제한된 코멘트 쓰레드를 발생하는 동작 - 상기 발생된 코멘트 쓰레드는 상기 사용자들의 세트로 제한된 코멘팅을 제공하기 위한 제2 포맷을 포함하고, 상기 제2 포맷은 상기 소셜 그래프에 대한 액세스를 허용하는 제2 서비스와 관련됨 -; 및
    상기 결정된 하나 이상의 공개 코멘트 및 상기 발생된 코멘트 쓰레드를 디스플레이를 위해 상기 웹페이지에 제공하는 동작 - 상기 발생된 코멘트 쓰레드는 상기 결정된 하나 이상의 공개 코멘트와 구별하기 위해 별도로 디스플레이되고, 상기 제2 포맷을 갖는 상기 발생된 코멘트 쓰레드는 상기 제1 포맷을 갖는 상기 결정된 하나 이상의 공개 코멘트의 컨텐츠 내에 통합됨 -
    을 수행하도록 하는, 시스템.
  19. 제18항에 있어서,
    상기 동작들은 또한 상기 발생된 코멘트 쓰레드가 결정된 사용자를 위해 이용 가능한지를 상기 발생된 코멘트 쓰레드를 보기 위한 스코프에 기초하여 판정하는 것을 포함하는, 시스템.
  20. 제19항에 있어서,
    상기 동작들은 또한 상기 발생된 코멘트 쓰레드가 결정된 사용자를 위해 이용 가능하다면 상기 사용자들의 세트로 제한된 상기 발생된 코멘트 쓰레드를 디스플레이를 위해 제공하는 것을 포함하는, 시스템.
  21. 제18항에 있어서,
    상기 발생된 코멘트 쓰레드는 상기 사용자들의 세트에 기초하여 상기 발생된 코멘트 쓰레드를 보기 위한 스코프를 포함하는 각자의 액세스 제어 리스트와 연관되는, 시스템.
  22. 제18항에 있어서,
    상기 동작들은 또한 상기 사용자들의 세트에 기초하여 상기 발생된 코멘트 쓰레드를 보기 위한 스코프를 포함하는 새로운 액세스 제어 리스트에 엔트리를 발생하는 동작을 포함하고, 상기 엔트리는 상기 발생된 코멘트 쓰레드를 상기 새로운 액세스 제어 리스트에 연관시키는, 시스템.
  23. 제18항에 있어서,
    상기 사용자들의 세트의 선택은 사용자들의 그룹을 선택하는 것을 포함하는, 시스템.
  24. 제23항에 있어서,
    상기 사용자들의 그룹은 온라인 소셜 네트워킹 서비스에서의 소셜 서클에 의해 규정되는, 시스템.
  25. 제18항에 있어서,
    상기 제1 포맷은 웹페이지에 대해 네이티브인, 시스템.
  26. 제18항에 있어서,
    상기 제2 포맷은 상기 웹페이지와 관련된 어플리케이션에 의해 제공되는, 시스템.
  27. 제26항에 있어서,
    상기 어플리케이션은 웹브라우저에서 플러그인 또는 익스텐션으로서 제공되는 위젯을 포함하는, 시스템.
  28. 제26항에 있어서,
    상기 어플리케이션은 상기 웹페이지에 통합되는, 시스템.
  29. 제18항에 있어서,
    상기 동작들은 또한 사용자가 상기 사용자들의 세트로 제한된 각자의 코멘트를 보기 위한 각자의 액세스 제어 리스트에 포함되는지를 판정하기 위해 웹컨텐츠에 대한 이용 가능한 코멘트의 검색 요청을 수행하는 동작을 포함하는, 시스템.
  30. 제18항에 있어서,
    상기 동작들은 또한 결정된 상기 하나 이상의 공개 코멘트를 디스플레이를 위해 제공하는 동작을 포함하며, 디스플레이되는 공개 코멘트가 상기 사용자들의 세트로 제한된 하나 이상의 코멘트와 별도로 디스플레이되는, 시스템.
  31. 명령어(instruction)들을 저장하고 있는 비일시적 기기 판독 가능 매체로서,
    상기 명령어들은 기기에 의해 실행될 시에 상기 기기로 하여금,
    웹페이지에 제공된 하나 이상의 공개 코멘트를 결정하는 동작 - 상기 하나 이상의 공개 코멘트가 웹페이지의 하나 이상의 뷰어에 의한 공개 코멘팅을 제공하기 위한 제1 포맷을 포함하고, 상기 제1 포맷은 상기 웹페이지와 관련되고 소셜 그래프(social graph)와의 사용자 상호작용을 네이티브하게 지원하지 않는 제1 서비스에 의해 제공됨 -;
    상기 결정된 하나 이상의 공개 코멘트 중에서 각자의 공개 코멘트에 대한 응답인 코멘트 데이터를 수신하는 동작;
    상기 수신된 코멘트 데이터를 보기 위한 스코프(scope)를 규정하는 사용자들의 세트의 선택을 수신하는 동작 - 상기 사용자들의 세트는 소셜 그래프의 하나 이상의 컨택 중에서 하나 이상의 고유 컨택을 포함함 - ; 및
    상기 수신된 코멘트 데이터를 보기 위한 스코프에 기초하여 상기 사용자들의 세트로 제한된 코멘트 쓰레드(comment thread)를 발생하는 동작 - 상기 발생된 코멘트 쓰레드는 소셜 그래프와 호환가능하고 공개 코멘팅을 제공하기 위해 상기 제1 포맷과 호환가능하지 않은 사용자들의 세트로 제한된 코멘팅을 제공하기 위한 제2 포맷을 포함하고, 상기 제2 포맷은 상기 소셜 그래프에 대한 액세스를 허용하는 제2 서비스와 관련되고, 상기 제2 포맷을 갖는 상기 발생된 코멘트 쓰레드는 상기 제1 포맷을 갖는 상기 결정된 하나 이상의 공개 코멘트의 컨텐츠 내에 통합됨 -
    을 수행하도록 하는, 비일시적 기기 판독 가능 매체.
KR1020147033252A 2012-05-01 2013-04-30 코멘트에 대한 액세스의 결정 KR101890461B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261641269P 2012-05-01 2012-05-01
US61/641,269 2012-05-01
US13/645,423 2012-10-04
US13/645,423 US9348921B2 (en) 2012-05-01 2012-10-04 Determining access to comments
PCT/US2013/038928 WO2013166057A1 (en) 2012-05-01 2013-04-30 Determining access to comments

Publications (2)

Publication Number Publication Date
KR20150006864A KR20150006864A (ko) 2015-01-19
KR101890461B1 true KR101890461B1 (ko) 2018-08-21

Family

ID=49513478

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147033252A KR101890461B1 (ko) 2012-05-01 2013-04-30 코멘트에 대한 액세스의 결정

Country Status (9)

Country Link
US (1) US9348921B2 (ko)
EP (1) EP2845127A1 (ko)
KR (1) KR101890461B1 (ko)
CN (1) CN104487967B (ko)
AU (1) AU2013256430B2 (ko)
BR (1) BR112014027080A8 (ko)
CA (1) CA2871912C (ko)
IN (1) IN2014DN09194A (ko)
WO (1) WO2013166057A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9419933B2 (en) * 2012-05-18 2016-08-16 University Of Florida Research Foundation, Incorporated Maximizing circle of trust in online social networks
US9817556B2 (en) * 2012-12-26 2017-11-14 Roovy, Inc. Federated commenting for digital content
US10134095B2 (en) * 2013-06-05 2018-11-20 Brabble TV.com LLC System and method for media-centric and monetizable social networking
US9923860B2 (en) * 2015-07-29 2018-03-20 International Business Machines Corporation Annotating content with contextually relevant comments
US11250492B2 (en) * 2016-03-22 2022-02-15 Paypal, Inc. Automatic population of data on an internet web page via a browser plugin
WO2017216923A1 (ja) * 2016-06-16 2017-12-21 楽天株式会社 サーバ装置、サービス方法、プログラム、ならびに、非一時的なコンピュータ読取可能な情報記録媒体
US10417671B2 (en) 2016-11-01 2019-09-17 Yext, Inc. Optimizing dynamic review generation for redirecting request links
US10114999B1 (en) 2016-12-02 2018-10-30 Koupon Media, Inc. Using dynamic occlusion to protect against capturing barcodes for fraudulent use on mobile devices
CN107454473A (zh) * 2017-08-16 2017-12-08 四川长虹电器股份有限公司 移动端应用集成YouTube视频评论功能的方法
CN107948760B (zh) * 2017-11-30 2021-01-29 上海哔哩哔哩科技有限公司 弹幕播放控制方法、服务器及弹幕播放控制系统
US11012403B1 (en) * 2018-09-04 2021-05-18 Facebook, Inc. Storylines: collaborative feedback system
CN110134880B (zh) * 2019-05-20 2022-04-15 北京字节跳动网络技术有限公司 评论数据的提供、显示方法、装置、电子设备及存储介质
CN110708294A (zh) * 2019-09-12 2020-01-17 上海掌门科技有限公司 互动信息发布、处理方法、装置、电子设备及介质
CN110674415B (zh) * 2019-09-20 2022-06-17 北京浪潮数据技术有限公司 一种信息显示方法、装置及服务器
CN112069524A (zh) * 2020-09-15 2020-12-11 北京字跳网络技术有限公司 信息处理方法、装置、设备及存储介质
KR102609590B1 (ko) * 2020-12-28 2023-12-04 심지훈 친구 관계에 따라 댓글의 공개 범위를 달리하는 시스템 및 방법
US11824824B2 (en) * 2021-10-28 2023-11-21 Microsoft Technology Licensing, Llc Method and system of managing and displaying comments

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169363A1 (en) 2006-07-03 2010-07-01 Dewey Gaedcke System and method for managing and displaying additive content in a web browser
US20100205539A1 (en) 2009-02-12 2010-08-12 Amivox Ehf. Instant messaging and telephony value added services
US8156250B2 (en) 2007-10-29 2012-04-10 James Tyler Parcher Arrangements for a 3270 compatible terminal with browser capability

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467212B2 (en) * 2000-12-28 2008-12-16 Intel Corporation Control of access control lists based on social networks
US7478334B2 (en) * 2005-01-20 2009-01-13 International Business Machines Corporation Folding text in side conversations
WO2008060300A1 (en) * 2006-11-16 2008-05-22 Dynomedia, Inc. Systems and methods for distributed digital rights management
CN101374148A (zh) * 2008-09-18 2009-02-25 腾讯科技(深圳)有限公司 博客好友权限管理方法及系统
US20110004922A1 (en) * 2009-07-01 2011-01-06 Microsoft Corporation User Specified Privacy Settings
US20110154445A1 (en) * 2009-12-22 2011-06-23 Markus Schmidt-Karaca Systems to provide business information over social networks
US8639756B2 (en) * 2010-02-19 2014-01-28 Nokia Corporation Method and apparatus for generating a relevant social graph
CN102375856B (zh) * 2010-08-23 2016-08-31 腾讯科技(深圳)有限公司 一种商品搜索方法和装置
US20120116871A1 (en) * 2010-11-05 2012-05-10 Google Inc. Social overlays on ads
WO2012078971A2 (en) * 2010-12-10 2012-06-14 Rockefeller Consulting Technology Integration, Inc. Systems and methods for integrating personal social networks within an organization
US20130018963A1 (en) * 2011-07-11 2013-01-17 Cm2.Com, Inc. Journaling, Analysis, and Archiving of Electronic Communications
US9292882B2 (en) * 2011-07-20 2016-03-22 Mark Blinder Social circle based social networking
US9275403B2 (en) * 2012-01-31 2016-03-01 Google Inc. Experience sharing system and method
US20130246525A1 (en) * 2012-03-16 2013-09-19 Salesforce.Com, Inc. Instant transition from a public conversation thread to a private chat or instant message environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169363A1 (en) 2006-07-03 2010-07-01 Dewey Gaedcke System and method for managing and displaying additive content in a web browser
US8156250B2 (en) 2007-10-29 2012-04-10 James Tyler Parcher Arrangements for a 3270 compatible terminal with browser capability
US20100205539A1 (en) 2009-02-12 2010-08-12 Amivox Ehf. Instant messaging and telephony value added services

Also Published As

Publication number Publication date
US9348921B2 (en) 2016-05-24
AU2013256430B2 (en) 2018-11-08
CA2871912C (en) 2022-04-26
BR112014027080A2 (pt) 2017-06-27
CN104487967A (zh) 2015-04-01
WO2013166057A1 (en) 2013-11-07
IN2014DN09194A (ko) 2015-07-10
CA2871912A1 (en) 2013-11-07
US20130297691A1 (en) 2013-11-07
AU2013256430A1 (en) 2014-11-13
BR112014027080A8 (pt) 2021-05-25
EP2845127A1 (en) 2015-03-11
KR20150006864A (ko) 2015-01-19
CN104487967B (zh) 2018-02-27

Similar Documents

Publication Publication Date Title
KR101890461B1 (ko) 코멘트에 대한 액세스의 결정
US9721030B2 (en) Codeless sharing of spreadsheet objects
US9071659B2 (en) Systems and methods for automatically identifying and sharing a file presented during a meeting
US20150199082A1 (en) Displaying actionable items in an overscroll area
US10534817B2 (en) Sharing a process in a web client
US8200833B1 (en) Security mode based management of cookie data stores
US20150212670A1 (en) Highly Customizable New Tab Page
JP2018504657A (ja) タブベースのブラウザコンテンツ共有
US8752138B1 (en) Securing user contact information in collaboration session
CN107835981B (zh) 在设备之间传送通知
US9391993B1 (en) Sharing content by indicating activity from users in a social network
US9563489B2 (en) Embedding a guest module within an embedder module
US8607251B1 (en) Dynamic accessibility behavior
US20140149453A1 (en) Systems and methods for automatically associating communication streams with a file presented during a meeting
US20150081800A1 (en) Managing membership in social groupings of contacts for a participant of an e-mail conversation thread
KR20150116875A (ko) 네트워크를 거치는 애드-혹 디바이스 공유
US9826008B1 (en) Embedding a user interface of a guest module within a user interface of an embedder module
US20160080472A1 (en) Measuring Sharing Behavior and Audience Coverage in Online Communities
Shawkat et al. Design and prototypical implementation of a mobile healthcare application: health express
US20150205585A1 (en) Delayed compiling of scripting language code
Daniel et al. Advanced Mashups

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant