KR102110700B1 - 이동 사용자 인터페이스 - Google Patents

이동 사용자 인터페이스 Download PDF

Info

Publication number
KR102110700B1
KR102110700B1 KR1020187014539A KR20187014539A KR102110700B1 KR 102110700 B1 KR102110700 B1 KR 102110700B1 KR 1020187014539 A KR1020187014539 A KR 1020187014539A KR 20187014539 A KR20187014539 A KR 20187014539A KR 102110700 B1 KR102110700 B1 KR 102110700B1
Authority
KR
South Korea
Prior art keywords
level
data
area
selection
display area
Prior art date
Application number
KR1020187014539A
Other languages
English (en)
Other versions
KR20180073644A (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 KR20180073644A publication Critical patent/KR20180073644A/ko
Application granted granted Critical
Publication of KR102110700B1 publication Critical patent/KR102110700B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • 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/904Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

컴퓨팅 디바이스 상에서 데이터의 급속한 내비게이션을 효율적으로 제시하고 허용하기 위한 방법은, 컴퓨팅 디바이스에서, 정적 레이아웃을 포함하는 그래픽 사용자 인터페이스를 생성하는 단계 - 정적 레이아웃은 디스플레이 영역 및 제1 레벨에 대한 제1 레벨 상호작용 영역을 포함하고, 디스플레이 영역은 제2 레벨 서브그룹 및 제3 레벨 항목 중의 하나를 표현하는 데이터를 디스플레이하도록 구성되고, 제1 레벨 상호작용 영역은 복수의 서브-영역들을 가짐 -; 사용자 입력을 수신하는 단계; 수신된 사용자 입력이 제1 레벨 상호작용 영역의 복수의 서브-영역들 중의 하나의 서브-영역의 선택인지 여부를 결정하는 단계; 수신된 사용자 입력이 복수의 서브-영역들 중의 하나의 서브-영역의 선택이라는 결정에 응답하여, 복수의 서브-영역들 중의 하나의 서브-영역의 선택에 대응하는 제2 레벨 서브그룹을 포함하기 위하여 디스플레이 영역을 업데이트하는 단계; 수신된 사용자 입력이 디스플레이 영역의 선택인지 여부를 결정하는 단계; 및 사용자 입력이 디스플레이 영역의 선택이라는 결정에 응답하여, 제2 레벨 서브그룹에 대응하는 제3 레벨 항목을 포함하기 위하여 디스플레이 영역을 업데이트하는 단계를 포함할 수도 있다. 본 개시내용은 위의 방법의 액션들을 수행하기 위하여 대응하는 시스템들, 장치, 및 컴퓨터 프로그램들을 또한 포함할 수도 있다.

Description

이동 사용자 인터페이스
본 개시내용은 컴퓨터 생성된 사용자 인터페이스들에 관한 것이다. 더 구체적으로, 본 개시내용은 복수의 계층적 레벨들을 가지는 데이터와의 상호작용을 효율적으로 편성하고, 제시하고, 제공하기 위한 방법 및 시스템에 관한 것이다. 더 상세하게는, 일부 구현예들은 이동 디바이스들 상에서 뉴스를 제공하기 위한 사용자 인터페이스에 관한 것이다.
컴퓨터 애플리케이션들은 데이터, 특히, 예를 들어, 복수의 레벨들 또는 데이터 트리(data tree)들로 계층적으로 편성될 수 있는 데이터를 제시하기 위하여 때때로 이용된다. 계층적 데이터는 카테고리들, 뉴스 이벤트들, 및 특정 기사(article)들로 소팅된(sorted) 뉴스 기사들을 포함할 수도 있다. 예를 들어, 빈번하게, 뉴스 소스(news source)는 카테고리들 및 그 카테고리들에서의 뉴스 기사들의 리스트를 포함하는 리스트 또는 아웃라인 포맷으로 큰 수량(quantity)의 텍스트 및 그래픽 정보를 제시할 것이다. 계층적 데이터(예컨대, 뉴스 기사들)를 제시하기 위한 이 현존하는 솔루션들은 계층적 데이터를 다운로딩하고 내비게이팅하기 위하여 상당한 연산 자원들 및 인터넷 대역폭을 요구하고, 이것은 제한된 대역폭 및 프로세싱 능력들을 가지는 클라이언트 디바이스들을 혹사시킬 수 있다.
본 개시내용은 복수의 레벨들을 가지는 데이터와의 상호작용을 효율적으로 편성하고, 제시하고, 제공하기 위한 시스템들 및 방법들에 관한 것이다. 본원에서 설명된 기법들은 그래픽 사용자 인터페이스의 특정한 영역들 상의 사용자 입력들에 따라 정적으로 위치될 수도 있고, 또한, 계층적 데이터의 다양한 레벨들로 동적으로 업데이트될 수도 있는 그래픽 사용자 인터페이스 상의 디스플레이 영역들을 제공하는 단계를 포함하는 방법을 포함할 수도 있다. 유사하게, 방법들은 계층적 데이터의 액세스 및 내비게이션의 용이함뿐만 아니라, 그래픽 사용자 인터페이스 엘리먼트(element)들의 전략적 배치를 통한 계층적 데이터의 급속한 검색(retrieval) 및 디스플레이를 허용할 수도 있다.
일반적으로, 이 개시내용에서 설명된 발명요지의 일 혁신적인 양태에 따르면, 프로세서, 및 프로세서에 의해 실행될 때, 시스템으로 하여금, 정적 레이아웃을 포함하는 그래픽 사용자 인터페이스를 생성하게 하고 - 정적 레이아웃은 제1 레벨에 대한 디스플레이 영역 및 상호작용 영역을 포함하고, 디스플레이 영역은 제2-레벨 서브그룹 및 제3-레벨 항목 중의 하나를 표현하는 데이터를 디스플레이하도록 구성되고, 제1-레벨 상호작용 영역은 복수의 서브-영역들을 가짐 -; 사용자 입력을 수신하게 하고; 수신된 사용자 입력이 제1-레벨 상호작용 영역의 복수의 서브-영역들 중의 하나의 서브-영역의 선택인지 여부를 결정하게 하고; 수신된 사용자 입력이 복수의 서브-영역들 중의 하나의 서브-영역의 선택이라는 결정에 응답하여, 복수의 서브-영역들 중의 하나의 서브-영역의 선택에 대응하는 제2-레벨 서브그룹을 포함하기 위하여 디스플레이 영역을 업데이트하게 하고; 수신된 사용자 입력이 디스플레이 영역의 선택인지 여부를 결정하게 하고; 그리고 사용자 입력이 디스플레이 영역의 선택이라는 결정에 응답하여, 제2-레벨 서브그룹에 대응하는 제3-레벨 항목을 포함하기 위하여 디스플레이 영역을 업데이트하게 하는 명령들을 저장하는 메모리를 포함하는 시스템에서 구현될 수도 있다.
일반적으로, 이 개시내용에서 설명된 발명요지의 또 다른 혁신적인 양태는, 컴퓨팅 디바이스에서, 정적 레이아웃을 포함하는 그래픽 사용자 인터페이스를 생성하는 단계 - 정적 레이아웃은 디스플레이 영역 및 제1 레벨에서의 상호작용 영역을 포함하고, 디스플레이 영역은 제2-레벨 서브그룹 및 제3-레벨 항목 중의 하나를 표현하는 데이터를 디스플레이하도록 구성되고, 제1-레벨 상호작용 영역은 복수의 서브-영역들을 가짐 -; 사용자 입력을 수신하는 단계; 수신된 사용자 입력이 제1-레벨 상호작용 영역의 복수의 서브-영역들 중의 하나의 서브-영역의 선택인지 여부를 결정하는 단계; 수신된 사용자 입력이 복수의 서브-영역들 중의 하나의 서브-영역의 선택이라는 결정에 응답하여, 복수의 서브-영역들 중의 하나의 서브-영역의 선택에 대응하는 제2-레벨 서브그룹을 포함하기 위하여 디스플레이 영역을 업데이트하는 단계; 수신된 사용자 입력이 디스플레이 영역의 선택인지 여부를 결정하는 단계; 및 사용자 입력이 디스플레이 영역의 선택이라는 결정에 응답하여, 제2-레벨 서브그룹에 대응하는 제3-레벨 항목을 포함하기 위하여 디스플레이 영역을 업데이트하는 단계를 포함하는 방법들에서 구체화될 수도 있다.
이러한 그리고 다른 구현예들은 다음의 특징들 중의 하나 이상을 각각 임의적으로 포함할 수도 있다. 예를 들어, 특징들은 데이터 서버로부터 데이터의 세트 - 데이터의 세트는 제1-레벨 그룹, 제2-레벨 서브그룹, 및 제3-레벨 항목들을 포함하고, 제3-레벨 항목들은 기사들이고, 제2 레벨-서브그룹은 공통 이벤트에 관련된 기사들의 클러스터(cluster)이고, 제1-레벨 그룹은 공통 카테고리에 관련된 기사들의 클러스터들의 그룹임 - 를 검색하는 것을 포함할 수도 있고; 여기서, 수신된 사용자 입력이 복수의 서브-영역 중의 하나의 서브-영역의 선택인지 여부를 결정하는 단계는 사용자 입력이 제1-레벨 상호작용 영역에 걸쳐 스크러빙 입력(scrubbing input)을 포함하는지 여부를 결정하는 단계를 포함하고; 여기서, 디스플레이 영역은 정보 에어리어(information area) 및 선택 에어리어(selection area)를 포함하고 - 정보 에어리어는 텍스트 정보를 디스플레이하고 선택 에어리어는 텍스트 정보에 대응하는 이미지를 디스플레이함 -; 여기서, 선택 에어리어는 그래픽 사용자 인터페이스의 수직 측부에 인접하게 위치되고; 여기서, 그래픽 사용자 인터페이스는 복수의 디스플레이 영역들을 포함하고, 그리고 여기서, 제3-레벨 항목을 포함하기 위하여 디스플레이 영역을 업데이트하는 단계는 상이한 데이터로 복수의 디스플레이 영역들의 각각을 업데이트하는 단계를 포함한다. 추가적인 특징들은 제3-레벨 항목과 연관된 메타데이터 태그에 기초하여 제2-레벨 서브그룹 내의 제3-레벨 항목에 대한 등급화(ranking)를 결정하는 것; 제3-레벨 항목과 연관된 이미지가 있는지 여부를 결정하는 것; 및 제3-레벨 항목의 등급이 문턱(threshold)을 충족시킬 경우에 그래픽 사용자 인터페이스의 디스플레이를 위한 제3-레벨 항목을 선택하는 것을 포함할 수도 있다. 또 다른 특징들은 디스플레이 영역이 그래픽 사용자 인터페이스의 제1 수직 에지(vertical edge)에 인접하게 위치된 선택 에어리어 및 정보 에어리어를 가지는 것을 포함하고, 여기서, 방법은 사용자 입력이 선택 에어리어에서 시작하고 정보 에어리어에서 종료되는 수평 스와이프(horizontal swipe)를 포함하였는지 여부를 결정하는 단계, 및 수평 스와이프에 응답하여, 그래픽 사용자 인터페이스의 제2 수직 에지에 인접하게 위치되도록 선택 에어리어를 이동시키기 위하여 디스플레이 영역을 업데이트하는 단계를 더 포함한다.
이 양태들 중의 하나 이상의 다른 구현예들은 대응하는 시스템들, 장치, 및 컴퓨터 스토리지 디바이스들 상에서 인코딩된, 방법들의 액션들을 수행하도록 구성된 컴퓨터 프로그램들을 포함한다.
이 구현예들은 다수의 점들에서 특히 유리하다. 예를 들어, 본원에서 설명된 엘리먼트들 및 기법들의 구현예들 및 조합은 그것들이 특히 작은 크기의 디스플레이 상에서의 상당한 수량의 정보의 급속한 내비게이션 및 소비를 허용하고; 요구된 연산 자원들을 감소시키고; 그리고 데이터 서버로부터 계층적 데이터를 검색하기 위하여 요구된 데이터 통신 대역폭을 감소시키므로 특히 유익하다. 구현예들은 그것들이 제시될 필요가 있는 정보의 양에 적응시키고, 용이한 계층 레벨 횡단을 위한 데이터를 제공하고, 하이 레벨 스크러빙이 하이 레벨 토픽(topic)들 사이를 용이하게 전이(transition)하는 것을 허용하는 사용자 인터페이스를 제공하기 때문에 또한 유리하다. 예를 들어, 본원에서 설명된 기법들은 컴퓨팅 디바이스가 그렇지 않으면 어려운, 많은 카테고리들 및 소스들로부터의 데이터의 양을 소비하고 내비게이팅하는 것을 효율적으로 제시하는 것을 허용한다.
그러나, 상기 특징들 및 장점들은 모두 포괄적인 것이 아니고, 많은 추가적인 특징들 및 장점들이 고려되고, 본 개시내용의 범위 내에 속한다는 것이 이해되어야 한다. 또한, 본 개시내용에서 이용된 언어는 본원에서 개시된 발명요지의 범위를 제한하기 위한 것이 아니라, 가독성 및 교육 목적들을 위하여 주로 선택되었다는 것이 이해되어야 한다.
본 개시내용은 유사한 참조 번호들이 유사한 엘리먼트들을 지칭하기 위하여 이용되는 동반 도면들의 도면들에서 제한이 아니라, 예로서 예시되어 있다.
도 1은 계층적 데이터와의 상호작용을 효율적으로 편성하고, 제시하고, 제공하기 위한 일 예의 방법의 플로우차트이다.
도 2는 하이-레벨 상호작용 영역 스크러브를 수신하는 것에 응답하여 디스플레이 영역들을 업데이트하기 위한 일 예의 방법의 플로우차트이다.
도 3은 클라이언트 디바이스 상에서의 제시 및 내비게이션을 위하여 데이터를 수신하고 프로세싱하기 위한 일 예의 방법의 플로우차트이다.
도 4는 디스플레이 영역 선택을 수신하는 것에 응답하여 로우-레벨 데이터로 디스플레이 영역들을 업데이트하기 위한 일 예의 방법의 플로우차트이다.
도 5는 수평 선택 에어리어 스와이프에 응답하여 오른손잡이 및 왼손잡이 레이아웃 사이를 토글(toggle)하기 위하여 디스플레이 영역들을 업데이트하기 위한 일 예의 방법의 플로우차트이다.
도 6a 내지 도 8b는 계층적 데이터와의 상호작용을 효율적으로 편성하고, 제시하고, 제공하기 위한 예시적인 그래픽 사용자 인터페이스들의 그래픽 표현들이다.
도 9는 계층적 데이터와의 상호작용을 효율적으로 편성하고, 제시하고, 제공하기 위한 일 예의 시스템을 예시하는 하이-레벨 블록도이다.
도 10은 일 예의 컴퓨팅 시스템을 예시하는 블록도이다.
계층적 데이터와의 상호작용을 효율적으로 편성하고, 제시하고, 제공하기 위한 시스템들, 방법들, 및 인터페이스들이 개시된다. 본 개시내용의 시스템들, 방법들, 및 인터페이스들은 클라이언트-서버 시스템의 맥락에서 지금 설명되지만, 본원에서 설명된 기법들은 네트워크 상에서 동작가능하게 접속된 클라이언트-서버 시스템 이외의 시스템들에 적용될 수 있다는 것이 이해되어야 한다. 예를 들어, 클라이언트 디바이스, 제3자(third-party) 서버들, 데이터 서버들 등은 본원에서 설명된 기능성의 일부 또는 전부를 제공할 수도 있고, 이러한 기능성을 제공하기 위하여 서버들의 클러스터를 채용할 수도 있다.
계층적 데이터와의 상호작용을 효율적으로 편성하고, 제시하고, 제공하기 위하여 본원에서 설명된 기법들은 다수의 예들에서, 주로 뉴스 기사들의 예에서 제시되지만, 많은 다른 유형들의 계층적 데이터가 가능하고 고려된다는 것이 이해되어야 한다. 예를 들어, 본원에서 정의된 바와 같은 계층적 데이터는 복수의 레벨들, 그룹들, 또는 데이터 트리들, 예컨대, 사진들, 소셜 네트워크 데이터, 제품 정보, 미디어(영화, 음악, 및 다른 시청각(audio-visual)) 정보 등으로 편성되거나 소팅될 수 있는 임의의 데이터를 포함할 수 있다.
데이터의 복수의 레벨들은 계층적 데이터의 적어도 2 개의 레벨들을 포함한다. 본원에서의 예시의 목적들을 위하여, 하이 레벨(high level), 중간 레벨(mid level), 및 로우 레벨(low level)이 설명된다. 하이-레벨 그룹은 하나 이상의 중간-레벨 항목들 또는 서브그룹들을 포함한다. 예를 들어, 하이-레벨 그룹은 이벤트 또는 토픽에 의해 편성된 기사들 또는 기사들의 그룹들을 포함할 수도 있는, 예컨대, 뉴스 기사들의 예에서의 카테고리, 톱(top), 세계(world), 경제(business), 정치(political) 등의 뉴스일 수도 있다. 하이-레벨 그룹 데이터는 하이-레벨 그룹에 대한 디스플레이가능한 정보, 하이-레벨 그룹에 대한 메타데이터, 및/또는 하이-레벨 그룹 내의 항목들에 대한 데이터를 포함할 수도 있다. 중간-레벨 서브그룹은 하이-레벨 그룹 내에 속하고, 하나 이상의 로우-레벨 항목들을 또한 포함할 수도 있다. 예를 들어, 중간-레벨 서브그룹은 예컨대, 뉴스 기사들의 예에서의 항목들의 클러스터, 기사들 기반의 주변 이벤트들, 개인들, 또는 조직들의 그룹들일 수도 있다. 중간-레벨 데이터는 중간-레벨 서브그룹에 대한 메타데이터, 비-디스플레이가능한 및/또는 디스플레이가능한 정보, 및/또는 중간-레벨 서브그룹 내의 항목들에 대한 데이터를 포함할 수도 있다. 로우-레벨 항목은 중간-레벨 서브그룹 내에 속하고, 임의의 유형의 컨텐츠(content), 예컨대, 기사(예컨대, 뉴스 기사), 미디어(오디오, 비디오, 게임들 등), 소셜 네트워크 정보, 사진들, 제품들 등을 포함할 수도 있다. 로우-레벨 데이터(예컨대, 로우-레벨 항목에 대응하거나 이를 표현하는 데이터)는 로우-레벨 항목에 대한 메타데이터, 디스플레이가능한, 및/또는 비-디스플레이가능한 정보를 포함할 수도 있다. 데이터의 세트 또는 데이터세트(dataset)는 하나 이상의 하이-레벨 그룹들, 중간-레벨 서브그룹들, 또는 로우-레벨 항목들에 대한 데이터의 일부 또는 전부를 포함한다. 본 개시내용은 이 측면들에서 복수의 레벨들을 설명하지만, 본원에서 설명된 기법들은 다른 구현예들, 레벨들의 수량들 등에 적용가능하다는 것이 이해되어야 한다.
본원에서 설명된 기법들은 그것들이 제한된 디스플레이(예컨대, 컴퓨팅 디바이스 상의 스크린) 상에서의 상당한 수량의 정보의 급속한 내비게이션 및 소비를 허용하고, 요구된 연산 자원들을 감소시키고(예컨대, 낮은 레이턴시(latency)로 귀착됨), 이용된 데이터 통신 대역폭을 감소시키므로 특히 유익하다. 예를 들어, 본원에서 설명된 기법들은 컴퓨팅 디바이스, 예컨대, 매우 제한된 연산 자원들 및 매우 제한된 디스플레이 크기를 갖는 염가의 스마트폰 또는 웨어러블 디바이스(예컨대, 스마트시계)가 제한된 수량의 데이터를 이용하면서, 많은 카테고리들 및 기사들로부터 뉴스를 효율적으로 제시하는 것을 허용한다(예컨대, 많은 이동 디바이스는 느린 데이터 접속들 또는 제한된 셀룰러 데이터 계획들을 가져서, 오직 작은 양의 데이터가 다운로딩되는 것을 허용함).
추가적으로, 본원에서 설명된 기법들은 또한, 사용자가 엘리먼트들을 급속하게 내비게이팅할 수 있고, 관측(view)할 수 있고, 선택할 수 있는 그러한 방법으로 그래픽 사용자 인터페이스의 엘리먼트들 및 상호작용들을 편성함으로써, 사용자가 계층적 데이터를 신속하게 소비하는 것을 허용한다. 본 기법들의 일부 구현예들은 디스플레이의 제1 에지에서의 스크러빙가능한(scrubbable) 하이-레벨 선택 막대, 디스플레이의 제2 에지에서의 중간-레벨 상호작용 에어리어, 및 디스플레이의 어느 측부가 중간-레벨 상호작용 에어리어를 포함하는지를 토글하기 위한 능력을 제공함으로써, 특히, 터치 스크린에 대하여 이 목적들을 달성한다.
추가적으로, 본원에서 설명된 기법들의 일부 구현예들은 인간이 (예컨대, 그래픽 사용자 인터페이스 상에서) 객체를 선택하기 위하여 요구된 시간의 양이 지시기(indicator)(예컨대, 객체를 선택하기 위하여 이용된 디바이스, 예컨대, 손가락, 스타일러스, 또는 컴퓨터 커서)의 현재의 로케이션(location)으로부터의 객체의 거리에 비례하고 객체의 크기에 역비례한다는 것을 기술하는 피츠의 법칙(Fitts's Law)을 고려하여 그래픽 엘리먼트들(그리고 구체적으로 계층적 데이터)을 내비게이팅하기 위하여 요구된 시간을 감소시킨다. 이와 같이, 본원에서 설명된 기법들의 구현예들은 그래픽 사용자 인터페이스의 제1 에지(예컨대, 하부)를 따라 위치된 스크러빙가능한 하이-레벨 상호작용 영역(602) 및 그래픽 사용자 인터페이스의 선택가능한 제2 에지(예컨대, 좌측 또는 우측 측부)를 따라 위치된 중간-레벨 선택 영역의 엘리먼트들을 조합함으로써, 특히, 작은 터치 스크린(예컨대, 한 손으로 이용가능한, 예를 들어, 이동 전화 또는 웨어러블 디바이스)을 이용한 계층적 데이터의 내비게이션을 위하여 피츠의 법칙을 적용할 수 있다. 이 엘리먼트들을 조합함으로써, 객체들이 더 신속하게 선택될 수 있을 뿐만 아니라, 디스플레이되고 있는 데이터가 지시기(예컨대, 터치 스크린 상의 손가락)에 의해 가려지지 않게 되어 있다. 본 기법들의 이러한 그리고 다른 구현예들은 이 설명의 전반에 걸쳐 어딘가에서 설명된다.
본원에서 설명된 기법들의 일부 구현예들은 그래픽 엘리먼트들을 일관된 로케이션에서 유지하고, 애니메이션을 피하고, 중복적인 또는 과잉 데이터의 제시를 회피함으로써, 계층적 데이터의 급속한 내비게이션의 목적들을 또한 달성한다. 예를 들어, 일부 구현예들은 데이터가 디스플레이될 수 있는 고정된 그리드(grid)를 포함하고, 이것은 그리드에서 디스플레이될 수 있는 것보다 더 많은 데이터가 디스플레이되거나 검색되는 것을 허용하지 않아서, 스크롤링(scrolling)이 필요하지 않고, 또한 방지된다. 특히, 스크롤링은 정보의 위치를 본래 변경하여, 사용자의 눈들이 정보를 찾기 위하여 그래픽 사용자 인터페이스를 스캔해야 하기 때문에, 스크롤링을 방지하는 것이 유리하다. 예를 들어, 사용자가 특정한 하이-레벨 그룹을 선택할 때, 사용자는 그래픽 사용자 인터페이스 상에서 서치하는 것에 시간을 보낼 필요 없이, 특정한 하이-레벨 그룹에 속하는 각각의 유형의 정보가 어디에 위치되는지를 자동으로 알아야 한다. 추가적으로, 일부 사례들에서, 선택된 디스플레이 영역은 정적으로 되어 있는 반면, 인터페이스의 다른 에어리어들은 선택된 정보를 반영하도록 변경된다. 예를 들어, 특정한 중간-레벨 서브그룹이 선택될 때, 그 중간-레벨 서브그룹에 대응하는(예컨대, 데이터 트리/계층구조에서의 그 서브그룹 아래/내의) 로우-레벨 데이터는 변경되는 반면, 중간-레벨 서브그룹에 대하여 디스플레이된 데이터는 인터페이스 상에서 미변경되게 되어 있다. 일부 사례들에서, 디스플레이 영역들은, 복수의 중간-레벨 서브그룹들에 대응하는 데이터를 디스플레이하고, 특정한 중간-레벨 서브그룹이 선택될 때, 미선택된 중간-레벨 서브그룹들에 대응하는 데이터의 상부 상에서 또는 그 대신에, 선택된 중간-레벨 서브그룹에 대응하는 로우-레벨 데이터를 확대하는 고정된 그리드로서 배열된다. 추가적으로, 본원에서 설명된 바와 같은 데이터 디스플레이 및 선택 에어리어들이 고정된 그리드에서 디스플레이되는 구현예들은, 인터페이스가 그래픽 사용자 인터페이스 상의 동일한 그래픽 로케이션들에서 동일한 정보 및 선택들을 디스플레이할 수도 있으므로, 정보가 사용자에 의해 신속하게 판독되고 내비게이팅되는 것을 허용한다.
데이터 제시 모듈(908)은 계층적 데이터를 수신하고 편성하기 위하여 클라이언트 디바이스(906) 상에서 동작가능한 것으로서 설명되지만, 그 기능성의 일부 또는 전부는 하나 이상의 서버들, 예컨대, 데이터 서버(916) 상에서 구현될 수도 있다는 것이 이해되어야 한다. 유사하게, 데이터 분석 엔진(918)은 계층적 데이터를 검색하고 프로세싱하고, 그 다음으로, 계층적 데이터를 클라이언트 디바이스(906) 상의 데이터 제시 모듈(908)로 송신하기 위하여 데이터 서버(916) 상에서 동작가능한 것으로서 설명되지만, 데이터 분석 엔진(918)의 기능성의 일부 또는 전부는 클라이언트 디바이스(906) 또는 시스템(900)의 또 다른 컴포넌트(component) 상에서 동작가능할 수도 있다. 추가적으로, 제3자 애플리케이션의 기능성의 일부 또는 전부는 예를 들어, 데이터 서버(916) 상에서 동작가능할 수도 있다.
도 1은 계층적 데이터와의 상호작용을 효율적으로 편성하고, 제시하고, 제공하기 위한 일 예의 방법(100)의 플로우차트이다. 102에서, 데이터 제시 모듈(908)(데이터 제시 모듈(908) 및 그 컴포넌트들(1020, 1022, 1024, 및 1026)은 도 9 및 도 10에서 도시되고 이하에서 더 상세하게 설명됨)은 데이터의 복수의 세트들을 디스플레이하기 위한 정의된 레이아웃을 포함하는, 클라이언트 디바이스(906) 상에서의 디스플레이를 위한 동적 그래픽 인터페이스를 생성하고, 인터페이스는 하이-레벨 상호작용 영역(602) 및 디스플레이 영역들(608, 610, 612, 및 614)을 포함한다. 정의된 레이아웃은 임의의 수의 디스플레이 및/또는 상호작용 영역들을 포함할 수도 있다. 일부 구현예들에서, 디스플레이 및/또는 상호작용 영역들은 그래픽 인터페이스 내에서 정적으로 위치되게 되어 있고, 오직 그 영역들의 컨텐츠가 데이터 제시 모듈(908)에 의해 변경된다. 예를 들어, 디스플레이 영역들(608, 610, 612, 및 614)은 데이터의 세트들의 선택된 레벨들을 디스플레이하는 그리드로 편성될 수도 있다. 일 예의 정의된 레이아웃은 도 6 내지 도 8b를 참조하여 설명되지만, 다른 구성들이 본원에서 설명된 기법들에서 가능하고 고려된다.
104에서, (예컨대, 도 9 및 도 10을 참조하여 이하에서 설명된 바와 같은) 인터페이스 모듈(1022)은 (예컨대, 입력 디바이스(1005)를 통해) 클라이언트 디바이스(906)로부터 입력을 수신하고, 블록들(106, 110, 및 114)에서, 인터페이스 모듈(1022)은 어떤 유형의 입력이 수신되었는지와, 사용자 입력에 응답하여 어떤 액션을 취할 것인지를 결정한다. 일단 사용자 입력이 106, 110, 및 114에서 결정되면, 인터페이스 모듈(1022)은 각각 108, 112, 및 116에서의 액션들을 수행한다. 일단 인터페이스 모듈(1022)이 106, 110, 또는 114에서 사용자 입력을 인식하는 것을 실패하고 및/또는 108, 112, 및 116에서 수행된 액션들이 완료되면, 방법(100)은 사용자 입력을 대기하기 위하여 104로 다시 한번 복귀할 수도 있다. 예를 들어, 블록(104) 후에, 방법(100)은 블록(106)으로 계속된다.
106에서, 인터페이스 모듈(1022)은 입력이 하이-레벨 상호작용 영역 스크러브이었는지 여부를 결정한다. 스크러브는 그래픽 사용자 인터페이스에 걸친 지시기(예컨대, 손가락, 스타일러스, 커서, 또는 다른 입력 디바이스)의 임의의 이동 또는 슬라이딩을 포함할 수도 있다. 예를 들어, 스크러빙 입력을 인식하고 이에 응답하여, 사용자 인터페이스를 업데이트하는 것은 도 6a 내지 도 6d에서 도시되어 있다. 인터페이스 모듈(1022)은 106에서 스크러브를 등록할 수도 있지만, 일부 구현예들에서, 그것은 또한 또는 대안적으로, 하이-레벨 상호작용 영역(602)으로부터 하이-레벨 그룹을 선택하는 임의의 입력(예컨대, 클릭, 호버(hover), 터치 스크린 상에서의 터치 등)을 등록할 수도 있다. 스크러빙가능한 하이-레벨 상호작용 영역(602)은 급속한 상호작용가능성을 보유하면서 그래픽 사용자 인터페이스 상의 매우 작은 에어리어를 요구하는 정확한 선택 영역을 제공한다. 예를 들어, 스크러빙가능한 상호작용 영역(602)은 사용자가 작은 에어리어를 선택할 것을 요구하지 않으므로(이에 따라, 위에서 설명된 바와 같이, 피츠의 법칙에 따라 추가적인 시간/노력을 요구함), 단독으로 로케이션이 아니라 이동을 추적함으로써 객체의 급속한 선택을 여전히 허용하면서, 스크러빙가능한 영역이 더 작을 수 있다. 일 예의 하이-레벨 상호작용 영역(602)은 본원에서의 어딘가에서 더욱 상세하게 설명된다.
인터페이스 모듈(1022)이 입력이 하이-레벨 상호작용 영역 스크러브이었던 것으로 결정(106)할 경우, 방법(100)은 블록(108)에서 계속된다. 블록(108)에서, 인터페이스 모듈(1022)은 본원에서 설명된 바와 같은 데이터 제시 모듈(908)의 다른 컴포넌트들과 함께, 입력이 하이-레벨 상호작용 영역 스크러브를 포함하였다는 106에서의 결정에 응답하여, 선택된 하이-레벨 그룹에 대응하는 중간-레벨 데이터로 디스플레이 영역(들)을 업데이트한다. 중간-레벨 데이터는 중간-레벨 서브그룹 내의 로우-레벨 항목들을 반영할 수도 있다. 일부 구현예들에서, 중간-레벨 데이터는 서브그룹 내의 로우-레벨 항목들의 개요일 수도 있다. 일부 구현예들에서, 중간-레벨 데이터는 서브그룹 내의 로우-레벨 항목들 중의 하나에 대한 로우-레벨 데이터를 포함할 수도 있다. 예를 들어, 일부 사례들에서, 중간-레벨 서브그룹은 뉴스 이벤트를 설명하는 뉴스 기사들의 클러스터일 수도 있고, 그 그룹에 대한 중간-레벨 데이터는 이벤트의 개요일 수도 있거나, 이하에서 더욱 상세하게 설명된 바와 같이, 중간-레벨 데이터는 선택된 기사(예컨대, 제시를 위한 지정된 우선순위 기사)로부터의 정보를 포함할 수도 있다. 108에서 하이-레벨 상호작용 영역 스크러브/선택을 수신하는 것에 응답하여 디스플레이 영역들(608, 610, 612, 및 614)을 업데이트하는 것은 도 2를 참조하여 더욱 상세하게 설명된다.
블록들(106 및 108)의 일 예의 구현예에서, 사용자는 뉴스 카테고리를 선택하기 위하여 터치 스크린(예컨대, 도 6a 내지 도 8b에서 예시된 바와 같은 입력 디바이스(1008) 및 출력 디바이스(1010)의 조합)의 하부에서 하이-레벨 상호작용 영역(602)에 걸쳐 자신의 엄지(thumb)를 스크러빙할 수도 있다. 데이터 제시 모듈(908)은 본원에서 설명된 바와 같이 스크러브를 등록하고 인식하고, 본원에서의 도 6a 내지 도 6d를 참조하여 설명된 바와 같이, 계층적 데이터 세트를 검색하고 데이터를 디스플레이함으로써 스크러브에 의해 선택된 뉴스 카테고리를 반영하기 위하여 디스플레이 영역들(608, 610, 612, 및 614)을 업데이트한다. 디스플레이 영역들(608, 610, 612, 및 614)의 각각은 선택된 하이-레벨 그룹 또는 뉴스 카테고리 내의 기사들의 서브그룹 또는 클러스터에 대응하는 이미지 및 텍스트를 포함할 수도 있다.
인터페이스 모듈(1022)이 블록(106)에서, 입력이 하이-레벨 상호작용 영역 스크러브가 아니었던 것으로 결정하였을 경우, 방법(100)은 블록(110)으로 계속된다. 블록(110)에서, 인터페이스 모듈(1022)은 104에서 수신된 입력이 디스플레이 영역 선택을 포함하는지 여부를 결정한다. 예를 들어, 입력을 인식하고 사용자 인터페이스를 업데이트하는 것은 도 7a 내지 도 7c에서 도시되어 있다. 디스플레이 영역(예컨대, 608, 610, 612, 또는 614)은 데이터를 디스플레이하기 위한 정보 에어리어(814) 및 그 데이터를 선택하기 위한 선택 에어리어(816)로 분할될 수도 있는 그래픽 사용자 인터페이스(600)의 에어리어를 포함할 수도 있다. 예를 들어, 정보 에어리어(814)는 중간 또는 로우-레벨 데이터를 디스플레이할 수도 있고, 및/또는 선택 에어리어(816)는 중간-레벨 서브그룹을 선택할 수도 있다. 추가적으로, 디스플레이 영역들(608, 610, 612, 및 614)이 그리드 또는 행(row)들의 시리즈(series)로 편성되는 경우들에는, 선택 에어리어들(816)(816a 내지 816d는 본원에서 814로서 간단하게 지칭될 수도 있음)이 선택 열(column)(822)(822a 및 822b는 본원에서 822로서 간단하게 지칭될 수도 있음)로 편성될 수도 있고, 정보 에어리어들(814a 내지 814d는 본원에서 814로서 간단하게 지칭될 수도 있음)은 정보 열(820a 및 820b는 본원에서 820으로서 간단하게 지칭될 수도 있음)로 편성될 수도 있다.
인터페이스 모듈(1022)이 수신된 입력이 디스플레이 영역 선택을 포함하는 것으로 결정(110)하였을 경우, 방법(100)은 블록(112)으로 진행한다. 블록(112)에서, 인터페이스 모듈(1022)은 사용자 입력이 디스플레이 영역 선택을 포함하였다는 110에서의 결정에 응답하여 선택된 중간-레벨 서브그룹에 대응하는 로우-레벨 데이터로 디스플레이 영역(들)을 업데이트한다. 예를 들어, 일부 구현예들에서, 로우-레벨 데이터는 뉴스 기사들의 클러스터 내의 개별적인 기사들에 대한 정보를 포함할 수도 있다. 디스플레이 영역 선택을 수신하는 것에 응답하여 로우-레벨 데이터로 디스플레이 영역들(608, 610, 612, 및 614)을 업데이트하는 것은 도 4를 참조하여 더욱 상세하게 설명된다.
블록들(104, 110, 및 112)의 일 예의 구현예에서, 사용자는 뉴스 클러스터를 선택하기 위하여 터치 스크린 상에서 자신의 엄지로 (예컨대, 디스플레이 영역에서의 이미지 상의 특정 선택 에어리어(816)를 통해) 디스플레이 영역을 선택할 수도 있다. 데이터 제시 모듈(908)은 본원에서 설명된 바와 같이 디스플레이 영역 선택을 등록하고 인식하고, 입력에 의해 선택된 뉴스 클러스터를 반영하기 위하여 디스플레이 영역들(608, 610, 612, 및 614)을 업데이트한다. 디스플레이 영역들(608, 610, 612, 및 614)은 디스플레이 영역들(608, 610, 612, 및 614)의 각각에서의 뉴스 항목/기사를 반영하기 위하여 업데이트될 수도 있다. 그 다음으로, 사용자는 희망할 경우, 디스플레이 영역을 다시 한번 선택함으로써 디스플레이 영역/뉴스 클러스터를 선택해제할 수도 있고, 예컨대, 사용자는 디스플레이되고 있는 중간-레벨 서브그룹들의 리스트로 복귀하기 위하여 선택 에어리어(916) 상에서 두 번째로 탭(tap)할 수도 있다.
인터페이스 모듈(1022)이 수신된 입력이 디스플레이 영역 선택을 포함하지 않았던 것으로 결정(110)하였을 경우, 방법(100)은 블록(114)으로 진행한다. 블록(114)에서, 인터페이스 모듈(1022)은 104에서 수신된 입력이 수평 선택 에어리어 스와이프를 포함하는지 여부를 결정한다. 스와이프는 그래픽 인터페이스의 에어리어에 걸친 지시기의 임의의 이동 또는 슬라이딩을 포함할 수도 있다. 특히, 수평 선택 에어리어 스와이프는 선택 에어리어(816)에서 시작하여, 그래픽 사용자 인터페이스에 걸쳐 수평으로 지시기를 슬라이딩하는 것을 포함한다. 예를 들어, 수평 선택 에어리어 스와이프 및 사용자 인터페이스의 대응하는 업데이트는 도 8a 내지 도 8b에서 도시되어 있다. 인터페이스 모듈(1022)이 106에서의 하이-레벨 상호작용 영역 스크러브와 (예컨대, 하이-레벨 상호작용 영역(602)이 수평으로 배향될 때) 블록(114)에서의 수평 선택 에어리어 스와이프 사이를 구별하기 위하여, 인터페이스 모듈(1022)은 스크러브의 로케이션 대 스와이프의 로케이션을 결정할 수도 있다. 106에서 결정된 바와 같은 스크러브는 하이 레벨 상호작용 영역(602) 상에서 (대략 또는 정확하게) 위치된다. 114에서 결정된 바와 같은 스와이프는 디스플레이 영역(들) 상에서 (대략 또는 정확하게) 위치된다. 예를 들어, 스와이프는 본원에서의 어딘가에서 설명된 선택 에어리어/열(816/822)을 선택하고 드래그(drag)하는 것을 포함할 수도 있다.
인터페이스 모듈(1022)이 104에서 수신된 입력이 수평 선택 에어리어 스와이프이었던 것으로 결정(114)하였을 경우, 방법(100)은 블록(116)으로 진행한다. 블록(116)에서, 인터페이스 모듈(1022)은 입력이 선택 에어리어의 수평 스와이프를 포함하였다는 114에서의 결정에 응답하여 오른손잡이로부터 왼손잡이 레이아웃으로(또는 그 반대로) 토글하기 위하여 디스플레이 영역(들)을 업데이트한다. 일부 구현예들에서, 위에서 논의된 바와 같이, 디스플레이 영역(들)은 그래픽 인터페이스의 왼손잡이 또는 오른손잡이 레이아웃을 제공하기 위하여 재배열될 수 있는 정보 및 선택 열들(820 및 822)을 포함할 수도 있다. 예를 들어, 선택 열(822)은 그래픽 인터페이스가 터치스크린 디바이스(예컨대, 클라이언트 디바이스(906)) 상에 있을 때에 더 용이한 입력 액세스를 제공하기 위하여, 그리고 터치스크린과의 손가락 상호작용에 의한 정보 에어리어들(814)의 차단을 방지하기 위하여, 디스플레이 영역(들)을 (예컨대, 도 8a에서와 같이) 오른손잡이로부터 (예컨대, 도 8b에서와 같이) 왼손잡이 레이아웃으로 토글하기 위하여 드래그/스와이프될 수 있다. 수평 선택 에어리어 스와이프에 응답하여 오른손잡이 및 왼손잡이 레이아웃 사이에서 토글하기 위하여 디스플레이 영역들(608, 610, 612, 및 614)을 업데이트하는 것은 도 5, 도 8a, 및 도 8b를 참조하여 더욱 상세하게 설명된다. 다른 한편으로, 인터페이스 모듈(1022)이 104에서 수신된 입력이 수평 선택 에어리어 스와이프가 아니었던 것으로 결정(114)하였을 경우, 방법(100)은 단계(104)로 루프(loop)를 이룬다.
도 2는 하이-레벨 상호작용 영역 스크러브/선택을 수신하는 것에 응답하여 디스플레이 영역들(608, 610, 612, 및 614)을 업데이트하기 위한 일 예의 방법(200)의 플로우차트이다. 방법(200)은 도 1에서 도시된 블록들(106 및 108)에 대한 추가의 세부사항을 제공한다. 202에서, 인터페이스 모듈(1022)은 데이터의 복수의 세트들을 디스플레이하기 위한 정의된 레이아웃을 포함하는 동적 그래픽 인터페이스를 생성하고, 데이터의 세트들은 복수의 레벨들을 포함하고, 204에서, 인터페이스 모듈(1022)은 클라이언트 디바이스(906) 상에서의 디스플레이를 위한 서브-영역들을 포함하는 하이-레벨 상호작용 영역(602)을 제공하고, 각각의 서브-영역은 하이-레벨 그룹에 대응한다.
일 예의 하이-레벨 상호작용 영역(602)은 도 6에서 디스플레이된다. 도시된 바와 같이, 하이-레벨 상호작용 영역(602)은 (예컨대, 도 6a 내지 도 6d에서 도시된 바와 같은) 터치 스크린 클라이언트 디바이스 상에서 (예컨대, 지시기(630)에 의해 예시된 바와 같은) 손가락에 의한 용이한 액세스를 제공하기 위하여 그래픽 인터페이스(600)의 하부에 인접하게 정적으로 위치될 수도 있다. 예를 들어, 도 6에서 도시된 하이-레벨 상호작용 영역(602)의 배치는 유리하게도, 한 손을 이용하는 사용자가 하이-레벨 상호작용 영역(602)을 따라 엄지를 슬라이딩함으로써 하이-레벨 그룹을 스크러브/선택하는 것을 허용한다. 추가적으로, 도시된 바와 같이, 하이-레벨 상호작용 영역(602)은 복수의 서브-영역들(604a 내지 604h)을 포함할 수도 있다. 예를 들어, 서브-영역들은 카테고리 또는 주제에 대응할 수도 있다. 도 6에서 도시된 예에서, 각각 서브-영역은 뉴스 카테고리(예컨대, 톱 스토리들, 세계, US, 경제, 기술, 과학, 건강, 연예 등)에 관련된다. 서브-영역들 및 하이-레벨 상호작용 영역(602)이 정적으로 위치되는 사례들에서, 사용자는 유익하게도, 서브-영역/하이-레벨 그룹을 선택하기 위하여 하이-레벨 상호작용 영역(602) 또는 서브-영역들을 쳐다 볼 필요가 없다. 일부 구현예들에서, 인터페이스에서 디스플레이된 특정 서브-영역들(604a 내지 604h)은 맞춤화가능하거나 확대가능할 수도 있다. 추가적으로, 일부 사례들에서, 그래픽 인터페이스는 (예컨대, 서브-영역들(604a 내지 604h)로부터의) 어느 하이-레벨 그룹이 선택되는지를 디스플레이하는 하이-레벨 그룹 선택 지시기(606)를 포함할 수도 있다. 8 개의 서브-영역들(604a 내지 604h)이 도시되어 있지만, 본원에서 설명된 기법들의 범위로부터 이탈하지 않으면서, 더 적은 또는 추가적인 서브-영역들이 이용될 수도 있다. 하이-레벨 상호작용 영역(602), 서브-영역들(604a 내지 604h), 및 선택 지시기(606)가 도 6에서의 특정한 구성에서 디스플레이되지만, 다른 구현예들이 본원에서 가능하고 고려되고, 예를 들어, 하이-레벨 상호작용 영역(602)은 그래픽 사용자 인터페이스의 좌측 또는 우측을 따라 수직으로 배향될 수 있거나, 선택 지시기는 선택된 서브-영역을 강조표시하는 것으로 단지 구성될 수도 있다는 것이 이해되어야 한다.
도 6a는 인터페이스 모듈(1022)이 사용자 입력을 수신하기 위하여 대기하고 있는 일 예의 초기 그래픽 사용자 인터페이스(600)를 예시한다. 예를 들어, 서브-영역(604a)에 의해 표현된 카테고리는 그래픽 사용자 인터페이스(600) 상에서 초기에 도시될 수도 있다. 도 6b는 지시기(630)에 의한 입력을 수신할 시에 일 예의 그래픽 사용자 인터페이스(600)를 예시하고, 도시된 바와 같이, 서브-영역(604a)은 그것이 선택된다는 것을 반영하기 위하여 강조표시(또는 그렇지 않을 경우에 변경)될 수도 있다. 유사하게, 선택 지시기(606)는 선택된 서브-영역(604a)에 대응하는 카테고리를 예시한다. 도 6c는 스크러빙 입력이 수신되고 있는 일 예의 그래픽 사용자 인터페이스(600)를 예시한다. 예를 들어, 지시기(630)는 하이-레벨 상호작용 영역(602)에 걸쳐 스크러빙하고 있다. 도 6c에서 예시된 예에서, 인터페이스 모듈(1022)은 스크러브를 인식할 수도 있지만, 지시기가 특정한 서브-영역 상에서, 또는 대략 특정한 서브-영역 상에서 일시정지하거나 늦추는 것을 대기할 수도 있다.
도 6d는 인터페이스 모듈(1022)이 스크러빙 입력이 서브-영역(604b)을 선택하였다는 것을 인식한 일 예의 그래픽 사용자 인터페이스(600)를 예시한다. 서브-영역(604d)은 도시된 구현예에서, 선택 지시기(606)에서 디스플레이될 수도 있는 세계 뉴스 카테고리에 대응한다. 추가적으로, 디스플레이 영역들(608, 610, 612, 및 614)의 각각뿐만 아니라, 그 각자의 엘리먼트들도 그래픽 사용자 인터페이스(600)에서 정적으로 위치되게 되었다는 것을 도 6d에서 알 수 있다. 그러나, 디스플레이 영역들(608, 610, 612, 614) 내에서 디스플레이된 정보는 선택된 서브-영역(604b)을 반영하기 위하여 변경되었다. 일부 구현예들에서, 인터페이스 모듈(1022)은 입력을 서브-영역(604b) 및 이에 따라, 세계 뉴스 카테고리를 선택하는 것으로서 인식할 수도 있고, 선택된 하이-레벨 그룹(예컨대, 서브-영역(604b)에서 선택된 카테고리)에 대한 계층적 데이터를 포함하는 데이터 세트를 검색하기 위하여 (예컨대, 본원에서 설명된 바와 같은 데이터 핸들러(data handler)(1020), 통신 모듈(1002), 및 네트워크(902)를 통해) 데이터 분석 엔진(918)과 통신할 수도 있다.
도 2로 복귀하면, 206에서, 데이터 핸들러(1020)는 데이터 서버(916)로부터 데이터의 세트(들)를 검색한다. 예를 들어, 데이터 핸들러(1020)는 웹페이지(webpage) 또는 웹-앱(web-app)의 개방, 애플리케이션의 실행, 또는 사용자 입력의 수신을 포함할 수도 있는 어떤 신호에 응답하여 데이터의 세트들을 검색할 수도 있다. 예를 들어, 일부 구현예들에서, 인터페이스 모듈(1022)은 그것이 (예컨대, 도 9에서의 네트워크(902)를 통해) 데이터 서버(916)로부터 데이터의 세트(들)를 검색할 것을 데이터 핸들러(1020)에 시그널링하는 것에 응답하여, 사용자 입력을 수신한다.
일부 구현예들에서, 데이터 핸들러(1020)는 서브-영역들(604a 내지 604h)에 의해 표현된 그룹들에 대한 데이터(예컨대, 각각의 하이-레벨 그룹의 하이, 중간, 및 로우 레벨들에 대응하는 데이터)의 세트들을 검색한다. 일부 구현예들에서, 데이터 핸들러(1020)는 선택된 하이-레벨 그룹에 대응하는 데이터의 세트를 오직 검색한다. 일부 구현예들에서, 데이터 핸들러(1020)는 그래픽 인터페이스 상에서 정보를 디스플레이하기 위하여 오직 필요한 바와 같이 데이터(예컨대, 중간-레벨 데이터, 로우-레벨 데이터 등)를 검색한다. 예를 들어, 사용자가 특정한 하이-레벨 그룹 및 중간-레벨 서브그룹을 선택하였을 경우, 데이터 핸들러(1020)는 인터페이스 상에서 선택된 데이터를 디스플레이하기 위하여 요구된 그 데이터(예컨대, 데이터는 선택된 중간-레벨 서브그룹에 대한 이용가능한 디스플레이 영역들에 대응하는 로우-레벨 항목들의 번호를 디스플레이하도록 요구함)를 검색할 수도 있다.
데이터 핸들러(1020)는 추가의 프로세싱을 위하여, 데이터 서버(916)으로부터 검색된 데이터를 인터페이스 모듈(1022)로 전송할 수도 있거나, 일부 사례들에서, 그것은 데이터 제시 모듈(908)의 다른 컴포넌트들에 의한 액세스를 위하여, 검색된 데이터를 데이터 저장소(1012)에서 저장할 수도 있다.
208에서, 인터페이스 모듈(1022)은 클라이언트 디바이스(906) 상에서의 디스플레이를 위하여 정의된 레이아웃을 가지는 디스플레이 영역들(608, 610, 612, 및 614)을 제공하고, 각각의 디스플레이 영역은 중간-레벨 서브그룹에 대한 중간-레벨 데이터를 디스플레이하도록 구성된다. 예를 들어, 인터페이스 모듈(1022)은 데이터 핸들러(1020)에 의해 데이터 저장소(1012)에서 저장된 데이터세트들(1014)을 액세스하고, 디스플레이 영역들(608, 610, 612, 및 614)에서의 데이터세트들을 이용하여 인터페이스를 생성한다. 본원에서의 어딘가에서 설명된 바와 같이, 중간-레벨 데이터는 중간-레벨 서브그룹의 컨텐츠들을 반영한다. 예를 들어, 각각의 디스플레이 영역은 하이-레벨 그룹에서의 각각의 중간-레벨 서브그룹에 대한 중간-레벨 데이터를 디스플레이한다. 복수의 예의 디스플레이 영역들(608, 610, 612, 및 614)은 도 6 내지 도 8b에서 예시된다. 도 6a 내지 도 6d의 도시된 구현예에서, 각각의 디스플레이 영역(608, 610, 612, 및 614)은 중간-레벨 그룹에 대한 중간-레벨 데이터를 디스플레이하고 있다. 예를 들어, 뉴스 데이터는 일 예의 인터페이스(600)에서 디스플레이되고, 각각의 중간-레벨 그룹은 "톱 스토리들" 선택된 하이-레벨 그룹(604a)에서의 이벤트에 대응한다.
도 6a 내지 도 8b에서 예시된 바와 같은 정의된 레이아웃은 디스플레이 영역들의 열에서와 같이 서로 상에 적층된 직사각형 영역들일 수도 있는 하나 이상의 디스플레이 영역들(608, 610, 612, 및 614)을 포함할 수도 있다. 일부 사례들에서, 디스플레이 영역들(608, 610, 612, 및 614)은 도 6a 내지 도 8b에서의 괄호들에 의해 도시된 바와 같이 경계가 정해진다. 디스플레이 영역들(608, 610, 612, 및 614)은 그래픽 사용자 인터페이스의 좌측으로부터 우측으로 확장될 수도 있고, 구성하는 엘리먼트들, 예컨대, 정보 에어리어(814) 및 선택 에어리어(816)로 분해될 수도 있다. 추가적으로, 정보 에어리어(814)는 정보의 피스(piece)들을 디스플레이하기 위한 하나 이상의 영역들로 추가로 분해될 수도 있다. 예를 들어, 도 7a 내지 도 7c에서 디스플레이된 제목(702a), 소스(704a), 주제(706a), 카테고리(710a) 등은 정보 에어리어(814)의 특정한 영역들에서 디스플레이될 수도 있다. 일부 구현예들에서, 정의된 레이아웃은 그래픽 사용자 인터페이스(예컨대, 도 6a 내지 도 8b에서 디스플레이된 바와 같은 600, 700, 또는 800)의 상부에 인접하게 위치된 선택 지시기(606), 그래픽 사용자 인터페이스의 하부에 인접하게 위치된 하이-레벨 상호작용 영역(602), 및 선택 지시기(606)와 하이-레벨 상호작용 영역(602) 사이의 에어리어를 채우는 몇몇(예컨대, 4 내지 6 개의) 디스플레이 영역들(608, 610, 612, 및 614)을 포함한다.
도 2로 복귀하면, 210에서, 인터페이스 모듈(1022)은 하이-레벨 상호작용 영역(602)에 걸친 스크러빙을 포함하는 사용자 입력을 수신하고, 스크러빙은 서브-영역/하이-레벨 그룹의 선택을 반영하고, 212에서는, 스크러빙 입력을 수신하는 것에 응답하여, 인터페이스 모듈(1022)이 본원에서 더 상세하게 설명된 바와 같이, 선택된 하이-레벨 그룹에 대응하는 중간-레벨 데이터를 포함하기 위하여 디스플레이 영역들(608, 610, 612, 및 614)을 업데이트한다.
도 3은 클라이언트 디바이스(906) 상에서의 제시 및 내비게이션을 위하여 데이터를 수신하고 프로세싱하기 위한 일 예의 방법(300)의 플로우차트이다. 302에서, 데이터 핸들러(1020)는 도 2에서의 블록(206)을 참조하여 위에서 설명된 바와 같이, 데이터 서버(916)로부터 데이터를 수신한다. 데이터 핸들러(1020)에 의해 검색된 데이터세트들은 (예컨대, 데이터 핸들러(1020)에 의해 다운로딩되기 이전에) 이미, 어떤 기준들에 따라 등급화된 하이, 중간, 및 로우 레벨들로 소팅될 수도 있고, 및/또는 (도 9에서 도시된 바와 같이) 데이터 분석 엔진(918)에 의해 토글될 수도 있다는 것이 이해되어야 한다. 특히, 데이터세트들은 데이터 핸들러(1020)에 의해 수신되기 이전에, 데이터 분석 엔진(918)에 의해 프로세싱되어야 하므로, 과중한 프로세싱이 데이터 제시 모듈(908)에 의해 수행되지는 않는다. 따라서, 데이터 분석 엔진(918)에 의해 수행된 프로세싱의 일부 또는 전부가 데이터 제시 모듈(908)에 의해 수행될 수도 있지만, 방법(300)은 데이터세트들이 데이터 분석 엔진(918)에 의해 프로세싱되고, 그 다음으로, 데이터 제시 모듈(908)에 의한 이용을 위하여 검색된 것처럼 주로 설명된다. 추가적으로, 데이터 제시 모듈(908)을 참조하여 설명된 추가적인 동작들 및 기능성은 데이터 분석 엔진(918)에 의해 수행될 수도 있다는 것이 이해되어야 한다.
304에서, 카테고리화 모듈(categorization module)(1024)은 데이터 핸들러(1020)에 의해 검색된 데이터세트(들)를 액세스할 수도 있고, 데이터를 하이-레벨 그룹들, 중간-레벨 서브그룹들, 및 로우-레벨 항목들로 소팅할 수도 있다. 일부 구현예들에서, 하이, 중간, 및 로우 레벨 데이터는 등급화, 각각의 로우-레벨 항목의 데이터의 레벨(하이, 중간, 로우 등), 및/또는 각각의 항목이 어느 계층적 그룹 또는 서브그룹에 속하는지를 기술하는 (예컨대, 데이터 분석 엔진(918)에 의해 태그되고 데이터 항목들의 메타데이터에서 포함된 바와 같은) 태그들을 포함한다. 예를 들어, 로우-레벨 항목은 항목이 특정한 중간-레벨 서브그룹 및 특정한 하이-레벨 그룹에서 속한다는 것을 기술하는 태그들을 포함할 수도 있다. 카테고리화 모듈(1024)은 태그들에 따라 이 데이터 항목들을 중간-레벨 서브그룹들 및 하이-레벨 그룹들로 소팅할 수도 있다.
306에서, 순서화 모듈(1026)은 (예컨대, 카테고리화 모듈(1024)로부터 수신된 바와 같은, 또는 클라이언트 디바이스(906) 상의 메모리에서의) 각각의 하이-레벨 그룹 내에서 디스플레이되어야 할 중간-레벨 서브그룹들을 결정하기 위하여 소팅된 데이터세트를 프로세싱한다. 일부 구현예들에서, 데이터 핸들러(1020)에 의해 검색된 데이터세트들은 인터페이스에서의 디스플레이 영역들(608, 610, 612, 및 614)의 수에 대응하는 중간-레벨 서브그룹들의 수량을 오직 포함한다. 예를 들어, 도 6에서 예시된 예에서는, 오직 4 개의 디스플레이 영역들(608, 610, 612, 및 614)이 렌더링(render)되므로, 각각의 하이-레벨 그룹에서의 4 개의 중간-레벨 서브그룹들의 최대치에 대응하는(예컨대, 속하는 것으로서 태그된) 데이터가 데이터 서버(916)로부터 검색된다.
유사하게, 일부 구현예들에서, 데이터 핸들러(1020)에 의해 검색된 데이터세트들은 인터페이스에서의 디스플레이 영역들(608, 610, 612, 및 614)의 수에 대응하는 로우-레벨 항목들의 수량을 오직 포함할 수도 있다. 예를 들어, 도 7에서 예시된 예에서는, 오직 4 개의 디스플레이 영역들(608, 610, 612, 및 614)이 렌더링되므로, 각각의 중간-레벨 서브그룹에서의 4 개의 로우-레벨 항목들의 최대치에 대응하는(예컨대, 속하는 것으로서 태그된) 데이터가 데이터 서버(916)로부터 검색된다.
308에서, 순서화 모듈(1026)은 각각의 중간-레벨 서브그룹 내에서 디스플레이되어야 할 로우-레벨 항목들을 결정하기 위하여 소팅된 데이터세트를 프로세싱한다. 일부 구현예들에서, 데이터 핸들러(1020)는 각각의 중간-레벨 서브그룹 내의 로우-레벨 데이터로서 그 후에 디스플레이되는 각각의 로우-레벨 항목에 대한 미리 정의된 데이터를 오직 검색하지만, 다른 구현예들에서는, 데이터 핸들러(1020)가 그 전체적으로 로우-레벨 항목(예컨대, 뉴스 기사)을 검색하는 것이 가능하고, 순서화 모듈(1026)은 텍스트 분석, 메타데이터 태그들 등을 이용하여 어느 로우-레벨 데이터를 디스플레이할 것인지를 결정한다.
(예컨대, 디스플레이 영역(들)에서) 디스플레이된 로우-레벨 데이터는 각각의 로우-레벨 항목에 대한 특정 정보를 포함할 수도 있다. 예를 들어, 도 7에서의 일 예의 구현예에서 예시된 바와 같이, 디스플레이된 로우-레벨 데이터는 제목(702), 소스(704), 분류(706), 주제(710), 및/또는 이미지(712)를 포함할 수도 있지만, 이하의 블록(312)을 참조하여 설명된 바와 같이, 다른 구현예들이 가능하다. 도 7에서 도시된 예에서, (이하의 310을 참조하여 정의된 바와 같은) 지정된 우선순위 기사는 분류(706)가 아니라, 주제(708)를 포함하지만, 다른 구현예들이 가능하고 고려된다. 추가적으로, 일부 구현예들에서, 오직 지정된 우선순위 기사는 (그 기사에 대하여, 데이터 핸들러(1020)에 의해 검색될 수도 있는) 디스플레이된 이미지를 포함하지만, 다른 구현예들이 가능하고, 예컨대, 여기서, 로우-레벨 데이터 항목들/기사들의 각각은 (이용가능할 경우) 이미지를 포함한다.
310에서, 순서화 모듈(1026)은 각각의 중간-레벨 서브그룹에서의 로우-레벨 데이터 제시 우선순위를 결정한다. 로우-레벨 데이터 제시 우선순위는 로우-레벨 항목들을 어느 순서로 제시할 것인지와, 일부 구현예들에서, 그 항목들의 어느 것이 지정된 우선순위 항목일 것인지를 정의한다. 지정된 우선순위 항목에 대한 로우-레벨 데이터는 중간-레벨 서브그룹을 표현하기 위하여 디스플레이될 수도 있다. 예를 들어, 지정된 우선순위 항목은 이벤트에 대한 뉴스 기사들의 클러스터에서의 가장 인기 있는 뉴스 기사일 수도 있고, 지정된 우선순위 기사에 대한 로우-레벨 데이터는 전체 중간-레벨 서브그룹 또는 기사들의 클러스터의 컨텐츠들을 반영하기 위하여 중간-레벨 데이터로서 디스플레이될 수도 있다. 일부 사례들에서, 지정된 우선순위 항목은, 등급화되었고, 그 등급화가 문턱을 충족시키는 항목일 수도 있다. 예를 들어, 등급화는 (예컨대, 항목의 인기를 기술하는) 로우-레벨 항목 상의 메타데이터 태그, 및 (예컨대, 뉴스 기사의 경우에 있어서, 뉴스 기사가 이미지를 포함할 경우) 로우-레벨 항목이 연관된 이미지를 포함하는지 여부에 기초할 수도 있다.
일부 구현예들에서는, 데이터 세트들을 데이터 제시 모듈(908)로 전송하기 이전에, 데이터 분석 엔진(918)은 지정된 우선순위 항목, 나머지 항목들에 대한 디스플레이 순서, 및/또는 로우-레벨 항목들 및/또는 중간-레벨 서브그룹들에 대한 등급화를 결정하였고(또는 데이터 제시 모듈(908)에 의한 서비스 요청에 응답하여 결정할 수도 있음), 따라서, 순서화 모듈(1026)에 의한 인식을 위하여 항목들을 태그한다. 지정된 우선순위 항목은 기준들의 정의된 세트를 맞추는, 예컨대, 기준들의 정의된 세트 내에서 가장 높은 우선순위 또는 등급화를 가지거나, 기준들의 정의된 세트에 가장 가깝게 대응하는 항목에 대응하는 임의의 항목이다. 예를 들어, 로우-레벨 항목은 전체적인 인기, 카테고리 내에서의(예컨대, 중간-레벨 서브그룹 내에서, 하이-레벨 그룹 내에서 등의) 인기, 컨텐츠의 깊이, 그 소스의 명성 등에 기초하여 등급화될 수도 있다. 또 다른 예에서, 로우-레벨 항목은 로우-레벨 항목의 분류를 설명하는 (예컨대, 데이터 분석 엔진(918)에 의해 결정된 바와 같은) 태그들을 포함한다. 예를 들어, 도 7c에서 도시된 예에서, 분류들(710a, 710c, 및 710d)은 "심층(in depth)", "의견(opinion)", 및 "국제(international)"를 포함할 수도 있지만, 톱 등급화된 기사, 로컬 소스, 특정 소스들, (예컨대, 소셜 네트워크 상에서, 인기 있는 등의) 유행하는 항목들, 매우 인용됨, 빈번하게 공유됨, 가장 많이 관측됨 등을 또한 포함할 수도 있다.
일부 구현예들에서, 순서화 모듈(1026)은 주어진 디스플레이 영역에서 지정된 우선순위 항목으로서 그 후에 디스플레이되는 연관된 이미지를 가지는 가장 높은 등급화된 항목을 결정하기 위하여 각각의 항목을 평가함으로써 제시 우선순위를 결정한다. 주어진 디스플레이 영역은 중간-레벨 서브그룹 데이터가 특정한 지정된 우선순위 항목이 속하는 서브그룹에 대하여 디스플레이되고/디스플레이되었던 디스플레이 영역에 대응한다. 예를 들어, 지정된 우선순위 뉴스 기사는 도 7a 내지 도 7c에서의 디스플레이 영역(610)에서 디스플레이된다.
도 7a 내지 도 7c에서 예시된 예에서, 사용자는 도 7a에서 디스플레이된 서브그룹들의 리스트로부터 디스플레이 영역/중간-레벨 서브그룹(610)을 선택하였고, 그 때, 데이터 제시 모듈(908)은 비-지정된 우선순위 로우-레벨 데이터를 반영하기 위하여 다른 디스플레이 영역들(608, 612, 및 614)의 전부를 업데이트한다. 일부 사례들에서, 비-지정된 우선순위 항목들은 나머지 디스플레이 영역들(예컨대, 608, 612, 614)에서 (예컨대, 위에서 논의된 바와 같은 등급화에 따라) 순서대로 디스플레이된다. 예를 들어, 지정된 우선순위 기사가 세 번째로 등급화되고 디스플레이 영역(610)에서 디스플레이될 경우, 첫 번째, 두 번째, 및 네 번째로 등급화된 나머지 기사들이 각각 디스플레이 영역들(608, 612, 및 614) 내에서 제시될 것이다. 선택된 중간-레벨 서브그룹에 대한 디스플레이된 데이터는 디스플레이 영역들이 로우-레벨 데이터로 업데이트될 때에 변경되지 않게 되어 있으므로, 변경은 사용자에게 덜 부조화하는 것으로 보인다.
대안적으로 또는 추가적으로, 일부 구현예들에서, 항목들이 디스플레이 영역들(608, 610, 612, 및 614) 내에서 디스플레이되는 순서는 (예컨대, 위에서 설명된 바와 같은) 그 분류들에 의해 기술된다. 예를 들어, 도 7c에서, 디스플레이 영역(608)은 분류(710a) "심층"을 갖는 항목을 디스플레이하고, 디스플레이 영역(612)은 분류(710c) "의견"을 갖는 항목을 디스플레이하고, 디스플레이 영역(614)은 분류(710d) "국제"를 갖는 항목을 디스플레이한다. 디스플레이된 배치 및 특정 분류들은 데이터 제시 모듈(908)에 대하여 (예컨대, 관리자 설정, 이용가능한 분류들 등에 따라) 미리 결정될 수도 있거나, 데이터 분석 엔진(918)에 의해 제공된 이용가능한 로우-레벨 항목들 및 분류들에 의해 기술될 수도 있다. 예를 들어, 일 구현예에서, 지정된 우선순위 로우-레벨 항목은 하나의 디스플레이 영역에서 디스플레이되고, 디스플레이 영역들의 나머지는 위에서 언급된 분류들 중의 하나 이상을 가지는 로우-레벨 항목들로 채워진다.
312에서, 순서화 모듈(1026)은 위에서 설명된 바와 같은, 디스플레이 우선순위, 디스플레이 영역들에서의 이용가능한 데이터 필드들, 및/또는 메타데이터 태그들에 기초하여 데이터 서버(916)로부터 검색된 데이터 세트들로부터 디스플레이 영역들(608, 610, 612, 및 614)에 대한 디스플레이가능한 정보를 결정한다. 일부 구현예들에서, 디스플레이가능한 정보는 (예컨대, 항목/기사 및/또는 항목/기사와 연관된 메타데이터 태그들의 컨텐츠에 기초하여) 항목에 대하여 각각 결정될 수도 있는, 개요, 제목(702a 내지 702d), 소스(704a 내지 704d), 분류(710a 내지 710d), 주제(706a 내지 706d), 이미지(708a 내지 708d), 및/또는 임의의 다른 텍스트 또는 그래픽 정보를 포함할 수도 있다.
일부 구현예들에서, 디스플레이가능한 정보는 로우-레벨 항목들 중의 하나 이상에 대하여 변동될 수도 있다. 예를 들어, 비-지정된 우선순위 항목들에 대한 것과는 상이한 정보/로우-레벨 데이터가 지정된 우선순위 항목에 대하여 디스플레이될 수도 있다. 예를 들어, 도 7c에서 예시된 일 예의 구현예에서, 디스플레이 영역(610)에서의 지정된 우선순위 기사에 대한 디스플레이가능한 정보는 주제(706b), 제목(702b), 소스(704b), 및 이미지(708b)를 포함하는 반면, 예컨대, 608에서 디스플레이된 바와 같은, 지정된 우선순위 항목 이외의 항목/기사에 대한 디스플레이가능한 정보는 이미지가 아니라, 분류(710a), 제목(712a), 및 소스(714a)를 포함할 수도 있다. 도 7a 내지 도 7c에서 도시된 구현예는 기사들, 제목들, 분류들 등을 지칭하지만, 다른 구현예들이 본원에서 설명된 기법들에 의해 가능하고 고려된다는 것이 이해되어야 한다.
314에서, 순서화 모듈(1026)은 로우-레벨 데이터에 대한 디스플레이가능한 정보를 중간-레벨 서브그룹과 연관시킨다. 특히, 일부 구현예들에서, 순서화 모듈(1026)은 지정된 우선순위 항목에 대한 디스플레이가능한 정보를 그 지정된 우선순위 항목이 속하는 중간-레벨 그룹과 연관시킨다. 특히, 각각의 중간-레벨 서브그룹에 대한 디스플레이된 정보는 단지 특정한 로우-레벨 항목, 예컨대, 지정된 우선순위 항목에 대한 로우-레벨 데이터일 수도 있다. 예를 들어, 도 7의 디스플레이 영역(708b)에서 디스플레이된 정보는 도 6의 디스플레이 영역(608b)에서 중간-레벨 서브그룹 데이터로서 또한 디스플레이된다.
도 4는 디스플레이 영역 선택을 수신하는 것에 응답하여 디스플레이 영역들(608, 610, 612, 및 614)을 로우-레벨 데이터로 업데이트하기 위한 일 예의 방법(400)의 플로우차트이다. 방법(400)은 도 1에서 도시된 블록들(110 및 112)에 대한 추가의 세부사항을 제공한다. 402에서, 인터페이스 모듈(1022)은 데이터의 적어도 하나의 세트를 디스플레이하기 위한 정의된 레이아웃을 포함하는 동적 그래픽 인터페이스를 생성하고, 데이터의 각각의 세트는 복수의 레벨들을 포함한다. 404에서, 데이터 핸들러(1020)는 하나 이상의 하이-레벨 그룹들에 대한 중간-레벨 데이터를 검색할 수도 있다. 406에서, 인터페이스 모듈(1022)은 클라이언트 디바이스(906) 상에서의 디스플레이를 위하여 정의된 레이아웃을 가지는 복수의 디스플레이 영역들(608, 610, 612, 및 614)을 제공하고, 각각의 디스플레이 영역은 각자의 중간-레벨 서브그룹에 대한 중간-레벨 데이터를 디스플레이하도록 구성된다. 특히, 406에서 인터페이스 모듈(1022)에 의해 생성된 디스플레이 영역들(608, 610, 612, 및 614)은 선택된 하이-레벨 그룹에 대한 중간-레벨 서브그룹 데이터를 디스플레이할 수 있고, 그 다음으로, 선택 중간-레벨 서브그룹에 대한 로우-레벨 데이터를 디스플레이하기 위하여 업데이트될 수 있다.
408에서, 인터페이스 모듈(1022)은 복수의 디스플레이 영역들(608, 610, 612, 및 614)로부터의 디스플레이 영역의 선택을 지시하는 사용자 입력을 수신한다. 410에서, 데이터 핸들러(1020)는 수신된 사용자 입력에 기초하여 인터페이스 모듈(1022)로부터 신호를 수신하는 것에 응답하여, 데이터 서버(916)로부터 선택된 디스플레이 영역에 대응하는 중간-레벨 서브그룹에 대한 로우-레벨 데이터를 검색한다. 일부 구현예들에서, 로우-레벨 데이터는 선택된 하이-레벨 그룹에 대한 중간-레벨 데이터와 함께, 또는 이러한 중간-레벨 데이터로서 검색되고, 이와 같이, 410에서, 로우-레벨 데이터는 도 10을 참조하여 설명된 데이터 저장소(1012)로부터 데이터 핸들러(1020)에 의해 검색된다.
412에서, 인터페이스 모듈(1022)은 데이터 핸들러(1020)에 의해 검색된 정보를 이용하여 선택된 중간-레벨 서브그룹 내의 로우-레벨 항목들에 대응하는 로우-레벨 데이터를 포함하기 위하여 복수의 디스플레이 영역들(608, 610, 612, 및 614)을 업데이트한다. 특히, 인터페이스 모듈(1022)은 디스플레이 영역들(608, 610, 612, 및 614)에서 디스플레이된 중간-레벨 서브그룹 데이터를 (예컨대, 도 3을 참조하여 논의된 바와 같은) 각각의 로우-레벨 항목에 대한 디스플레이가능한 정보로 대체할 수도 있다. 일부 구현예들에서, 디스플레이 영역들(608, 610, 612, 및 614)의 각각은 로우-레벨 데이터를 디스플레이할 수도 있는 (예컨대, 도 8a 내지 도 8b에서 도시된 바와 같은) 선택 및 디스플레이 에어리어들을 포함한다. 디스플레이 영역은 예컨대, 도 7a 내지 도 7c에서 도시된 바와 같이, 제목(702a), 소스(704a), 분류(710a), 주제(706a), 이미지(708a) 등을 로딩하고 디스플레이하기 위한 에어리어들을 포함할 수도 있다. 예를 들어, 로우-레벨 항목은 예컨대, 도 6a 내지 도 8b를 참조하여 더욱 상세하게 설명된 바와 같이, 하나 이상의 디스플레이 영역들에서의 지정된 에어리어들로 로딩되는 예를 들어, 제목, 소스, 분류, 주제, 이미지 등인 것으로서 태그되거나 편성되는 다양한 로우-레벨 데이터를 포함할 수도 있다.
일부 사례들에서, 디스플레이 영역들에서의(예컨대, 선택 에어리어들(816)에서의) 이미지들은 중간-레벨 서브그룹이 하이-레벨 그룹의 상부 상에서 확대된 것처럼 그레이 아웃(gray out)될 수도 있다. 예를 들어, 예시된 이미지들(708a, 708c, 및 708d)은 그것들이 미선택된 중간-레벨 서브그룹들에 대응한다는 것을 도시하기 위하여 그레이 아웃된다. 비-선택된 서브그룹들에 대응하는 이미지들(예컨대, 708a, 708c, 및 708d)이 그레이 아웃되지만, 여전히 가시적인 구현예들에서, 사용자는 그 중간-레벨 서브그룹에 대응하는 그레이 아웃된 이미지를 선택함으로써 상이한 중간-레벨 서브그룹을 용이하게 선택할 수 있고, 이것은 선택된 중간-레벨 서브그룹이 확대되게 할 것이다. 대안적으로 또는 추가적으로, 사용자는 (예컨대, 도 7a에서 도시된 바와 같은) 중간-레벨 서브그룹들의 리스트를 포함하는 이전의 뷰로 복귀하기 위하여 선택된 디스플레이 영역을 다시 선택할 수 있다.
이에 따라, 도 7a는 디스플레이 영역들(608, 610, 612, 및 614)이 선택된 하이-레벨 그룹에서의 중간-레벨 서브그룹들에 대응하는 중간-레벨 데이터 및 이미지들을 디스플레이하는 일 예의 그래픽 사용자 인터페이스(700)를 도시한다. 예를 들어, 일부 구현예들에서, 각각의 중간-레벨 서브그룹에 대하여 디스플레이된 중간-레벨 데이터는 제목(702a 내지 702d), 소스(704a 내지 704d), 주제(706a 내지 706d), 및 이미지(708a 내지 708d)를 포함할 수도 있다. 도 7b는 디스플레이 영역(610)이 지시기(630)에 의해 선택되고 있는 그래픽 사용자 인터페이스(700)를 도시한다.
도 7c는 디스플레이 영역(610)이 지시기(730)에 의해 선택되었던 그래픽 사용자 인터페이스(700)를 도시한다. 도시된 구현예에서, 디스플레이 영역(610)에서 디스플레이된 중간-레벨 데이터는 동일하게 되어 있지만, 디스플레이 영역들(608, 612, 및 614)의 각각에 대한 정보 에어리어들(예컨대, 814)에서 디스플레이된 데이터는 선택된 중간-레벨 서브그룹 내의 로우-레벨 항목들을 반영하기 위하여 업데이트되었다. 예를 들어, 디스플레이 영역(608)은 선택된 중간-레벨 서브그룹 내의 로우-레벨 항목(예컨대, 이벤트 기사 기사 클러스터 내의 기사)에 대한 데이터를 포함하기 위하여 업데이트되었다.
일부 구현예들에서, 일단 로우-레벨 항목들이 디스플레이되면, 그 다음으로, 사용자는 그 항목에 대한 추가적인 로우-레벨 데이터를 디스플레이하기 위하여 (예컨대, 정보 에어리어(814)를 선택함으로써) 단일 로우-레벨 항목을 선택할 수도 있다. 예를 들어, 사용자는 그 디스플레이 영역에 대응하는 기사를 개방하기 위하여 디스플레이 영역에서의 정보 에어리어를 선택할 수도 있다. 또 다른 예에서, 사용자는 선택된 항목들의 각각에 대한 더 많은 정보를 디스플레이하기 위하여(예컨대, 기사들을 개방함) 다수의 로우-레벨 항목들(예컨대, 기사들)을 선택할 수도 있다.
도 5는 수평 선택 에어리어 스와이프에 응답하여 오른손잡이 및 왼손잡이 레이아웃 사이를 토글하기 위하여 디스플레이 영역들(608, 610, 612, 및 614)을 업데이트하기 위한 일 예의 방법(500)의 플로우차트이다. 방법(500)은 도 1에서 도시된 블록들(114 및 116)에 대한 추가의 세부사항을 제공한다. 502에서, 인터페이스 모듈(1022)은 데이터의 적어도 하나의 세트를 디스플레이하기 위한 동적 그래픽 인터페이스를 생성하고, 데이터의 각각의 세트는 복수의 레벨들을 포함한다. 504에서, 데이터 핸들러(1020)는 데이터 서버(916)로부터 중간-레벨 및 로우-레벨 데이터를 검색한다.
506에서, 인터페이스 모듈(1022)은 클라이언트 디바이스(906) 상에서의 디스플레이를 위하여 복수의 디스플레이 영역들(608, 610, 612, 및 614)을 제공하고, 각각의 디스플레이 영역은 중간-레벨 데이터 또는 로우-레벨 데이터를 디스플레이하고, 각각의 디스플레이 영역은 선택 열(822) 및 정보 열(820)로 분할된다. 도 1을 참조하여 논의된 바와 같이, 그리고 도 8a에서 예시된 바와 같이, 디스플레이 영역들(608, 610, 612, 및 614)은 정보 에어리어(814) 및 선택 에어리어(816)로 각각 분할될 수도 있다. 예를 들어, 도 8a에서 예시된 바와 같이, 디스플레이 영역(608)은 정보 에어리어(814a) 및 선택 에어리어(816a)로 분할된다. 추가적으로, 일부 사례들에서, 정보 및 선택 에어리어들은 정보 열(820) 및 선택 열(822)을 형성하기 위하여 정렬될 수도 있다.
일부 구현예들에서, 사용자는 정보 에어리어(814)를 선택함으로써 중간-레벨 서브그룹 및/또는 로우-레벨 항목을 선택할 수 있을 수도 있지만, 선택 에어리어들(816a 내지 816d)은 지시기(630)(예컨대, 터치 스크린 상의 손가락 또는 스타일러스, 커서 등)가 선택 동안에 정보 에어리어(814)에서의 정보를 차단하도록 위치되지 않으면서, 사용자가 선택을 행하는 것을 허용하기 위하여 이상적으로 제공된다. 예를 들어, 도 7b는 지시기(730)에 의한 디스플레이 영역(610)의 선택을 예시한다. 유사하게, 도 8a에서 도시된 바와 같이, 일부 구현예들에서, 연관된 정보 에어리어들(814)에서의 정보에 대응하는 선택 에어리어들(816)에서의 하나 이상의 이미지들(예컨대, 썸네일(thumbnail) 이미지들)은 선택 에어리어들(816a 내지 816d)에서 또는 그 상에서 디스플레이될 수도 있지만, 이미지 디스플레이 기능성은 사용자 선호도로서 턴 오프될 수도 있거나, 구현예에서 존재하지 않을 수도 있다. 예를 들어, 선택 에어리어(816a)는 정보 에어리어(814a)에서의 정보에 대응하는 이미지를 디스플레이한다. 예를 들어, 선택 에어리어(816a)에서 디스플레이된 이미지는 뉴스 기사에서의 제1 이미지일 수도 있고, 여기서, 뉴스 기사는 정보 에어리어(814a)에서 디스플레이된다.
508에서, 인터페이스 모듈(1022)은 클라이언트 디바이스(906)와 연관된 입력 디바이스로부터 사용자 입력을 수신하고, 510에서, 인터페이스 모듈(1022)은 사용자 입력이 디스플레이 영역 또는 선택 에어리어의 클릭 또는 다른 선택을 포함하는지 여부를 결정한다. 514에서, 510에서의 결정에 기초하여, 인터페이스 모듈(1022)은 복수의 디스플레이 영역들(608, 610, 612, 및 614) 중의 디스플레이 영역을 선택하고, 선택된 중간-레벨 서브-그룹에 대응하는 로우-레벨 데이터를 포함하기 위하여 선택된 디스플레이 영역을 업데이트한다.
512에서, 인터페이스 모듈(1022)은 508에서 수신된 입력이 수평 스와이프를 포함하는지 여부를 결정한다. 수평 스와이프는 수직보다 더 수평 방식으로 그래픽 인터페이스의 에어리어(예컨대, 특히, 디스플레이 영역)에 걸친 지시기의 임의의 이동 또는 슬라이딩을 포함할 수도 있다. 특히, 인터페이스 모듈(1022)은 인터페이스 모듈(1022)이 516에서 스와이프의 방향에서 선택 열(822)을 이동시키기 위하여 동적 그래픽 사용자 인터페이스를 업데이트하는 것에 응답하여, 선택 열(822)에서 시작하는 수평 스와이프가 있는지 여부를 결정한다. 예를 들어, 도 8a 내지 도 8b에서 예시되고 도 8a 내지 도 8b를 참조하여 설명된 바와 같이, 인터페이스 모듈(1022)은 선택 열(822)을 디스플레이(예컨대, 클라이언트 디바이스(906)의 터치스크린 디스플레이)의 우측에 인접한 에어리어로부터 디스플레이의 좌측에 인접한 에어리어로 이동시킨다.
일부 구현예들에서, 선택 및 정보 열들은 그래픽 사용자 인터페이스(800)의 왼손잡이 또는 오른손잡이 레이아웃을 제공하기 위하여 재배열될 수 있다. 예를 들어, 선택 열(822)은 그래픽 인터페이스가 터치스크린 디바이스 상에 있을 때에 더 용이한 입력 액세스를 제공하기 위한 것뿐만 아니라, 터치스크린과의 손가락 상호작용에 의한 정보 에어리어/열의 차단을 방지하기 위하여, 디스플레이 영역(들)을 오른손잡이 및 왼손잡이 레이아웃 사이에서 토글하기 위하여 드래그/스와이프될 수 있다. 예를 들어, 도 8a 및 도 8b는 도 8a에서의 오른손잡이 레이아웃으로부터 도 8b에서의 왼손잡이 레이아웃으로 토글되는 일 예의 인터페이스(800)를 예시한다. 도 8a를 참조하면, 선택 열(822a)은 그래픽 사용자 인터페이스(800)의 우측 상에 있는 것으로서 예시되고, 정보 열(820)은 그래픽 사용자 인터페이스(800)의 좌측 상에 있는 것으로서 예시됨으로써, 그것이 오른손잡이 배향이 되게 한다. 도 8a에서, 지시기(630)는 선택 열(822a)을 그래픽 사용자 인터페이스(800)의 우측으로부터 그래픽 사용자 인터페이스(800)의 좌측을 향해 스와이프(예컨대, 선택 및 드래그)하는 것으로 예시되어 있다. 도 8b는 레이아웃이 왼손잡이 배향으로 토글된 후의 일 예의 그래픽 사용자 인터페이스(800)를 예시한다. 예를 들어, 정보 열(820b)은 우측 상에서 디스플레이되고, 선택 열(822b)은 그래픽 사용자 인터페이스(800) 좌측으로부터의 용이한 액세스를 위하여 그래픽 사용자 인터페이스(800)의 좌측 상에서 예시된다. 예를 들어, 터치 스크린 클라이언트 디바이스(906)를 이용하는 사용자는 우측 손을 이용하는 (예컨대, 도 8a에서와 같은) 오른손잡이 레이아웃에서, 또는 좌측 손을 이용하는 (예컨대, 도 8b에서와 같은) 왼손잡이 레이아웃에서 정보 선택/에어리어들을 차단하지 않으면서, 중간-레벨 서브그룹 및/또는 로우-레벨 항목을 선택하기 위하여 손가락, 예컨대, 사용자의 엄지를 이용할 수도 있다.
도 9는 계층적 데이터와의 상호작용을 효율적으로 편성하고, 제시하고, 제공하기 위한 일 예의 시스템(900)을 예시하는 하이-레벨 블록도이다. 예시된 시스템(900)은 사용자(912)에 의해 액세스되는 클라이언트 디바이스(906), 데이터 분석 엔진(918) 및 데이터베이스(920)를 가지는 데이터 서버(916), 및 제3자 애플리케이션(926)을 가지는 제3자 서버(924)를 포함한다. 컴포넌트들(906, 916, 및 924)은 네트워크(902)를 통해 접속된다.
도 9에서의 디바이스들(902, 906, 916, 및 924)은 예로서 도시된다. 도 9는 단일 클라이언트 디바이스(906), 제3자 서버(924), 및 서버(916)를 예시하지만, 본 개시내용은 임의의 수의 클라이언트 디바이스들(906), 제3자 서버들(924), 및 서버들(916)을 가지는 임의의 시스템 아키텍처에 적용된다. 또한, 오직 하나의 네트워크(902)가 클라이언트 디바이스(906), 데이터 서버(916), 및 제3자 서버(924)에 결합되지만, 실제적으로는, 하나 이상의 네트워크들(902)이 이 엔티티들에 접속될 수 있다.
데이터 분석 엔진(918)은 데이터 서버(916) 상에서 동작하는 것으로서 도시되고, 데이터베이스(920)는 데이터 서버(916)에서 저장된 것으로서 도시되고, 제3자 애플리케이션은 제3자 서버(924) 상에서 동작하는 것으로서 도시되고, 데이터 제시 모듈(908)은 클라이언트 디바이스(906) 상에서 동작하는 것으로서 도시되지만, 이 컴포넌트들 및 그 기능성의 전부 또는 일부는 시스템(900)의 다양한 컴포넌트들 상에서 저장될 수도 있고 및/또는 동작할 수도 있다는 것이 이해되어야 한다. 예를 들어, 일부 구현예들에서, 본원에서의 데이터 제시 모듈(908)에 배정된 기능성 및/또는 컴포넌트들의 전부 또는 일부는 데이터 서버(916) 상에서 동작할 수도 있다.
클라이언트 디바이스(906)는 하나 이상의 메모리 및 하나 이상의 프로세서들을 포함하는 임의의 컴퓨팅 디바이스, 예를 들어, 랩톱 컴퓨터, 데스크톱 컴퓨터, 태블릿 컴퓨터, 이동 전화, 스마트폰 디바이스, 스마트 시계 또는 다른 웨어러블 디바이스, 휴대용 게임 플레이어, 휴대용 음악 플레이어, 그 안에 내장되거나 그것에 결합된 하나 이상의 프로세서들을 갖는 텔레비전, 또는 네트워크를 액세스할 수 있는 임의의 다른 전자 디바이스일 수 있다. 일부 구현예들에서, 시스템(900)은 상이한 유형들의 클라이언트 디바이스들(906)의 조합을 포함한다. 예를 들어, 개인용 컴퓨터 및 이동 전화의 조합. 이하에서 설명되는 바와 같이, 본 기술들은 클라이언트-서버 아키텍처 이외의 상이한 모델들 상에서 동작할 수 있다는 것이 이해되어야 한다. 예를 들어, 클라이언트 디바이스(906)는 데이터 제시 모듈(908) 및/또는 데이터 분석 엔진(918)을 포함할 수도 있을 뿐만 아니라, 다른 서비스들을 포함할 수도 있다.
추가적으로, 데이터 제시 모듈(908)의 컴포넌트들의 전부 또는 일부는 예를 들어, 클라이언트 디바이스(906) 상에서 저장되고 데이터 서버(916)와의 양방향 통신들을 위하여 구성된 웹 브라우저(web browser)일 수 있는 브라우저 상에서의 웹 애플리케이션, 또는 이러한 브라우저 내에서 실행가능한 특화된 코드로서 동작가능하다. 예를 들어, 브라우저는 웹 상의 정보 자원들을 검색하고, 제시하고, 횡단하기 위한 소프트웨어 애플리케이션이다.
서버들(916 및 924)은 데이터 프로세싱, 저장, 및 통신 능력들을 가지는 하나 이상의 컴퓨팅 디바이스들을 포함할 수도 있다. 예를 들어, 서버들(916 및 924)은 하나 이상의 하드웨어 서버들, 서버 어레이들, 스토리지 디바이스들 및/또는 시스템들 등을 포함할 수도 있다. 일부 구현예들에서, 서버들(916 및 924)은 호스트 서버 환경에서 동작하고 추상화 계층(예컨대, 가상 머신 관리자(virtual machine manager))을 통해, 예를 들어, 프로세서, 메모리, 스토리지, 네트워크 인터페이스들 등을 포함하는 호스트 서버의 물리적 하드웨어를 액세스하는 하나 이상의 가상 서버들을 포함할 수도 있다. 일부 구현예들에서, 서버들(916 및 924)은 컨텐츠 요청들을 충족시키고 네트워크(902)에 결합되는 하나 이상의 컴퓨팅 디바이스들로부터 컨텐츠를 수신하기 위한 구조 및/또는 기능성을 가지는, 컨텐츠 요청들을 프로세싱하기 위한 웹 서버(도시되지 않음), 예컨대, HTTP 서버, REST(representational state transfer; 표현 상태 전송) 서비스, 또는 다른 서버 유형을 포함할 수도 있다.
도시된 구현예에서, 데이터 서버(916)는 데이터 분석 엔진(918) 및 데이터베이스(920)를 포함할 수도 있다. 데이터 서버(916)는 네트워크(902)를 통해 클라이언트 디바이스들(906)로부터 컨텐츠 요청들을 수신하고 컨텐츠 요청들에 응답하도록 동작한다. 데이터 분석 엔진(918)은 계층적 데이터를 응집(aggregate)하고 서빙(serve)하도록 동작가능하고, 데이터 저장소, 예컨대, 데이터베이스(920)에서 계층적 데이터를 저장할 수도 있고, 계층적 데이터에 대한 액세스를 제공할 수도 있다. 데이터 분석 엔진(918)은 도 10을 참조하여, 그리고 본원에서의 어딘가에서 더 상세하게 설명된다.
데이터베이스(920)는 데이터를 저장하고 데이터에 대한 액세스를 제공하기 위한 정보 소스이다. 데이터베이스(920)에 의해 저장된 데이터는 그것들에 의해 저장된 임의의 유형의 데이터, 예컨대, 항목 식별자, 항목-태그 연관성, 주제, 제목, 소스, 카테고리, 저자, 인기, 제조자, 모델, 계층적 데이터세트에서의 위치, 및/또는 다른 태그들 및 설명자들을 포함하는 다양한 기준들을 이용하여 편성될 수도 있고 질의될 수도 있다. 데이터베이스(920)는 데이터 테이블들, 데이터베이스들, 데이터의 다른 편성된 집합들을 포함할 수도 있다. 데이터베이스에 의해 저장된 데이터의 유형들의 예들은 뉴스 기사들, 사진들, 소셜 네트워크 데이터, 제품 정보, 미디어 등을 포함하지만, 이것으로 제한되지는 않는, 계층적으로 편성될 수 있는 임의의 데이터를 포함할 수도 있지만, 이것으로 제한되지는 않는다.
데이터베이스(920)는 데이터 서버(916)에서, 또는 데이터 서버(916)와는 별개이지만, 데이터 서버(916)에 결합되거나 데이터 서버(916)에 의해 액세스가능한 또 다른 컴퓨팅 시스템 및/또는 스토리지 시스템에서 포함될 수도 있다. 데이터베이스(920)는 데이터를 저장하기 위한 하나 이상의 비일시적인(non-transitory) 컴퓨터-판독가능 매체들을 포함할 수 있다. 일부 구현예들에서, 데이터베이스(920)는 데이터 서버(916) 상에서 동작가능한 데이터베이스 관리 시스템(database management system)(DBMS)과 연관된 데이터를 저장할 수도 있다. 예를 들어, DBMS는 구조화된 질의 언어(structured query language)(SQL) DBMS, NoSQL DMBS, 그 다양한 조합들 등을 포함할 수 있다. 일부 사례들에서, DBMS는 행들 및 열들로 이루어진 다차원 테이블들에서 데이터를 저장할 수도 있고, 프로그래매틱 동작(programmatic operation)들을 이용하여 데이터의 행들을 조작, 즉, 삽입, 질의, 업데이트 및/또는 삭제할 수도 있다.
도시된 구현예에서, 제3자 서버(116)는 일부 구현예들에서, 개별적일 수도 있고 및/또는 데이터 서버(916)에 의해 제공된 서비스들 내로 편입될 수도 있는 서비스들, 예컨대, 제3자 애플리케이션(926)을 호스팅한다. 제3자 서버(924)는 네트워크(902)를 통해 클라이언트 디바이스들(906) 및/또는 데이터 서버(916)로부터 컨텐츠 요청들을 수신하고 컨텐츠 요청들에 응답하도록 동작할 수도 있다. 일부 구현예들에서, 제3자 애플리케이션(926)은 복수의 레벨들 또는 그룹들로 편성될 수도 있는 데이터를 제공한다. 예를 들어, 제3자 애플리케이션(926) 및 연관된 제3자 서버(924)는 데이터 서버(916) 상의 데이터 분석 엔진(918)에 의해 검색될 수도 있고 프로세싱될 수도 있는 로우-레벨 데이터/항목들, 예컨대, 뉴스 기사들 사진들, 제품들, 미디어 등을 제공하는 뉴스 서비스일 수도 있다. 예를 들어, 제3자 애플리케이션(926)은 클라이언트 디바이스들(예컨대, 클라이언트 디바이스(906)) 및/또는 데이터 서버들(예컨대, 데이터 서버(916))로부터의 서비스 요청들에 응답하여, 하나 이상의 소스들, 예컨대, 온라인 신문사, 뉴스 웹사이트, 블로그 등으로부터의 뉴스 기사들 또는 정보를 제공할 수도 있다.
네트워크(902)는 클라이언트 디바이스(906), 데이터 서버(916), 및 제3자 서버(924) 사이의 통신들을 가능하게 한다. 이에 따라, 네트워크(902)는 예를 들어, Wi-Fi, Wi-Max, 2G, 유니버셜 이동 통신 시스템(Universal Mobile Telecommunications System)(UMTS), 3G, 이더넷(Ethernet), 802.11, 통합된 서비스 디지털 네트워크(integrated services digital network)(ISDN), 디지털 가입자 라인(digital subscriber line)(DSL), 비동기 전송 모드(asynchronous transfer mode)(ATM), 인피니밴드(InfiniBand), PCI 익스프레스 진보된 스위칭(PCI Express Advanced Switching) 등을 포함하는 기술들을 이용하는 링크들을 포함할 수 있다. 유사하게, 네트워크(902) 상에서 이용된 네트워킹 프로토콜들은 송신 제어 프로토콜/인터넷 프로토콜(transmission control protocol/Internet protocol)(TCP/IP), 멀티-프로토콜 라벨 스위칭(multi-protocol label switching)(MPLS), 사용자 데이터그램 프로토콜(User Datagram Protocol)(UDP), 하이퍼텍스트 전송 프로토콜(hypertext transport protocol)(HTTP), 단순 메일 전송 프로토콜(simple mail transfer protocol)(SMTP), 파일 전송 프로토콜(file transfer protocol)(FTP), 경량 디렉토리 액세스 프로토콜(lightweight directory access protocol)(LDAP), 코드 분할 다중 액세스(Code Division Multiple Access)(CDMA), 광대역 코드 분할 다중 액세스(Wideband Code Division Multiple Access)(WCDMA), 이동 통신들을 위한 글로벌 시스템(Global System for Mobile communications)(GSM), 고속 다운링크 패킷 액세스(High-Speed Downlink Packet Access)(HSDPA) 등을 포함할 수 있다. 네트워크(902) 상에서 교환된 데이터는 하이퍼텍스트 마크업 언어(hypertext markup language)(HTML), 확장가능한 마크업 언어(extensible markup language)(XML) 등을 포함하는 기술들 및/또는 포맷들을 이용하여 표현될 수 있다. 게다가, 링크들의 전부 또는 일부는 기존의 암호화 기술들, 예를 들어, 보안 소켓들 계층(secure sockets layer)(SSL), 보안 HTTP 및/또는 가상 사설 네트워크(virtual private network)(VPN)들, 또는 인터넷 프로토콜 보안성(Internet Protocol security)(IPsec)을 이용하여 암호화될 수 있다. 일부 구현예들에서, 엔티티들은 위에서 설명된 것들 대신에, 또는 위에서 설명된 것들에 추가하여, 맞춤형 및/또는 전용 데이터 통신들 기술들을 이용할 수 있다. 구현예에 따라서는, 네트워크(902)가 다른 네트워크들로의 링크들을 또한 포함할 수 있다.
일부 구현예들에서, 네트워크(902)는 부분적으로 공개 또는 전체적으로 공개 네트워크, 예를 들어, 인터넷이다. 네트워크(902)는 또한, 사설 네트워크일 수 있거나, 하나 이상의 별개의 또는 논리적 사설 네트워크들(예컨대, 가상 사설 네트워크들, 광역 네트워크(Wide Area Network)들("WAN"), 및/또는 로컬 영역 네트워크(Local Area Network)들("LAN"))을 포함할 수 있다. 추가적으로, 네트워크(902)로의, 그리고 네트워크(902)로부터의 통신 링크들은 유선 또는 무선(즉, 지상 또는 위성-기반 트랜시버들)일 수 있다. 일부 구현예들에서, 네트워크(902)는 IP-기반 광역 또는 대도시 영역 네트워크이다.
네트워크(902)는 성형 구성(star configuration), 토큰 링 구성(token ring configuration), 또는 다른 구성들을 포함하는 임의의 수의 구성들을 가질 수도 있다. 또한, 네트워크(902)는 다수의 디바이스들이 이에 걸쳐 통신할 수도 있는, 로컬 영역 네트워크(LAN), 광역 네트워크(WAN)(예컨대, 인터넷), 및/또는 임의의 다른 상호접속된 데이터 경로를 포함할 수도 있다. 일부 구현예들에서, 네트워크(902)는 피어-투-피어(peer-to-peer) 네트워크일 수도 있다. 네트워크(902)는 또한, 다양한 상이한 통신 프로토콜들로 데이터를 전송하기 위한 통신 네트워크의 부분들에 결합될 수도 있거나, 이러한 통신 네트워크의 부분들을 포함할 수도 있다. 일부 구현예들에서, 네트워크(902)는 단문 메시징 서비스(short messaging service)(SMS), 멀티미디어 메시징 서비스(multimedia messaging service)(MMS), 하이퍼텍스트 전송 프로토콜(hypertext transfer protocol)(HTTP), 직접 데이터 접속, 무선 애플리케이션 프로토콜(wireless application protocol)(WAP), 전자 메시지들 등을 통하는 것을 포함하는, 데이터를 전송하고 수신하기 위한 단파장 통신 네트워크들 또는 셀룰러 통신 네트워크를 포함한다.
도 10은 일 예의 컴퓨팅 시스템(1000)을 예시하는 블록도이다. 일 예의 컴퓨팅 시스템(1000)은 구현예에 따라서는, 클라이언트 디바이스(906), 제3자 서버(924), 및/또는 데이터 서버(916)를 표현할 수도 있다. 도시된 바와 같이, 컴퓨팅 시스템(1000)은 통신 버스(1016)에 의해 통신가능하게 결합될 수도 있는, 통신 모듈(1002), 프로세서(1004), 메모리(들)(1006), 입력 디바이스(1008), 출력 디바이스(1010), 및 데이터 스토리지(1012)를 포함할 수도 있다. 도 10에서 도시된 컴퓨팅 시스템(1000)은 예로서 제공되고, 그것은 본 개시내용의 범위로부터 이탈하지 않으면서, 다양한 형태들을 취할 수도 있고 추가적인 또는 더 적은 컴포넌트들을 포함할 수도 있다는 것이 이해되어야 한다. 예를 들어, 컴퓨팅 디바이스들의 다양한 컴포넌트들은 예를 들어, 통신 버스들, 소프트웨어 통신 메커니즘들, 컴퓨터 네트워크들 등을 포함하는 다양한 통신 프로토콜들 및/또는 기술들을 이용하는 통신을 위하여 결합될 수도 있다. 도시되지 않았지만, 컴퓨팅 시스템(1000)은 다양한 오퍼레이팅 시스템들, 센서들, 추가적인 프로세서들, 및 다른 물리적 구성들을 포함할 수도 있다.
통신 모듈(1002)은 신호 라인(1018)에 의해 네트워크(902)에 결합된다. 통신 모듈(1002)은 버스(1016)에 또한 결합된다. 통신 모듈(1002)은 USB, SD, 또는 CAT-5 등을 포함하지만, 이것으로 제한되지는 않는 유선 접속성을 위한 포트들을 포함한다. 통신 모듈(1002)은 프로세서(1004)를, 다른 프로세싱 시스템들에 궁극적으로 결합될 수도 있는 네트워크(902)에 연결한다. 통신 모듈(1002)은 표준 네트워크 프로토콜들, 예컨대, TCP/IP, HTTP, HTTPS, 및 SMTP를 이용하는 네트워크(902)로의 다른 기존의 접속들을 제공한다. 일부 구현예들에서, 통신 모듈(1002)은 Wi-Fi, Bluetooth®, 셀룰러, 또는 무선 통신을 위한 다른 통신들 프로토콜들을 이용하여 신호들을 전송하고 수신하기 위한 트랜시버를 포함한다.
프로세서(1004)는 연산들을 수행하고 전자 디스플레이 신호들을 디스플레이 디바이스에 제공하기 위하여, 산술 논리 유닛, 마이크로프로세서, 범용 제어기, 또는 일부 다른 프로세서 어레이를 포함할 수도 있다. 일부 구현예들에서, 프로세서(1004)는 하드웨어 프로세서이다. 프로세서(1004)는 다른 컴포넌트들과의 통신을 위하여 버스(1016)에 결합된다. 프로세서(1004)는 데이터 신호들을 프로세싱하고, 복합 명령 세트 컴퓨터(complex instruction set computer)(CISC) 아키텍처, 축소 명령 세트 컴퓨터(reduced instruction set computer)(RISC) 아키텍처, 또는 명령 세트들의 조합을 구현하는 아키텍처를 포함하는 다양한 컴퓨팅 아키텍처들을 포함할 수도 있다. 오직 단일 프로세서가 도 10에서 도시되지만, 다수의 프로세서들이 포함될 수도 있다. 다른 프로세서들, 오퍼레이팅 시스템들, 센서들, 디스플레이들, 및 물리적 구성들이 가능하다는 것이 이해되어야 한다.
메모리(들)(1006)는 데이터를 저장할 수도 있고, 데이터에 대한 액세스를 컴퓨팅 시스템(1000)의 다른 컴포넌트들에 제공할 수도 있다. 메모리(들)(1006)는 단일 컴퓨팅 디바이스 또는 복수의 컴퓨팅 디바이스들에서 포함될 수도 있다. 일부 구현예들에서, 메모리(들)(1006)는 프로세서(1004)에 의해 실행될 수도 있는 명령들 및/또는 데이터를 저장할 수도 있다. 예를 들어, 일부 구현예들에서, 메모리(들)(1006)는 구성에 따라서는, 데이터 제시 모듈(908), 데이터 분석 엔진(918), 및/또는 제3자 애플리케이션(926), 및 그 각자의 컴포넌트들 중의 하나 이상을 저장할 수도 있다. 메모리(들)(1006)는 다른 명령들, 및 예를 들어, 오퍼레이팅 시스템, 하드웨어 드라이버들, 다른 소프트웨어 애플리케이션들, 데이터베이스들 등을 포함하는 데이터를 저장할 수 있다. 메모리(들)(1006)는 컴퓨팅 시스템(1000)의 프로세서(들)(1004) 및 다른 컴포넌트들과의 통신을 위하여 버스(1016)에 결합될 수도 있다.
메모리(들)(1006)는 프로세서(들)(1004)에 의한 또는 프로세서(들)(1004)와 관련한 프로세싱을 위하여, 명령들, 데이터, 컴퓨터 프로그램들, 소프트웨어, 코드, 루틴들 등을 포함할 수 있거나, 저장할 수 있는 임의의 비일시적인 장치 또는 디바이스일 수 있는 비일시적인 컴퓨터-이용가능한(예컨대, 판독가능한, 기입가능한 등의) 매체를 포함한다. 일부 구현예들에서, 메모리(들)(1006)는 휘발성 메모리 및 비휘발성 메모리 중의 하나 이상을 포함할 수도 있다. 예를 들어, 메모리(들)(1006)는 동적 랜덤 액세스 메모리(dynamic random access memory)(DRAM) 디바이스, 정적 랜덤 액세스 메모리(static random access memory)(SRAM) 디바이스, 개별 메모리 디바이스(예컨대, PROM, FPROM, ROM), 하드 디스크 드라이브, 광학 디스크 드라이브(CD, DVD, Blue-rayTM 등) 중의 하나 이상을 포함할 수도 있지만, 이것으로 제한되지는 않는다. 메모리(들)(1006)는 단일 디바이스일 수도 있거나, 다수의 유형들의 디바이스들 및 구성들을 포함할 수도 있다는 것이 이해되어야 한다.
입력 디바이스(1008)는 정보를 컴퓨팅 시스템(1000)으로 입력하기 위한 임의의 디바이스를 포함할 수도 있다. 일부 구현예들에서, 입력 디바이스(1008)는 하나 이상의 주변 디바이스들을 포함할 수도 있다. 예를 들어, 입력 디바이스(1008)는 키보드(예컨대, QWERTY 키보드), 지시기 또는 포인팅 디바이스(예컨대, 마우스 또는 터치패드), 마이크로폰, 이미지/비디오 캡처 디바이스(예컨대, 카메라) 등을 포함할 수도 있다. 일부 구현예들에서, 입력 디바이스(1008)는 사용자의 하나 이상의 손가락들 또는 스타일러스로부터 입력을 수신할 수 있는 터치-스크린 디스플레이를 포함할 수도 있다. 예를 들어, 입력 디바이스(1008) 및 출력 디바이스(1010) 중의 하나 이상의 구조 및/또는 기능성은 통합될 수도 있고, 컴퓨팅 시스템(1000)의 사용자는 하나 이상의 손가락들을 이용하여 디스플레이(예컨대, 출력 디바이스(1010))의 표면과 접촉함으로써 컴퓨팅 시스템(1000)과 상호작용할 수도 있다. 추가적으로, 이 예에서, 사용자는 키보드 영역들에서 디스플레이와 접촉하기 위하여 손가락들을 이용함으로써 터치-스크린 출력 디바이스(1010) 상에서 디스플레이된 에뮬레이팅된(emulated)(예컨대, 가상 또는 소프트) 키보드와 상호작용할 수 있다.
출력 디바이스(1010)는 컴퓨팅 시스템(1000)으로부터의 정보를 출력할 수 있는 임의의 디바이스일 수도 있다. 출력 디바이스(1010)는 디스플레이, 프린터, 햅틱 디바이스, 오디오 재생 디바이스 등 중의 하나 이상을 포함할 수도 있다. 일부 구현예들에서, 출력 디바이스(1010)는 사용자(912)의 하나 이상의 손가락들로부터 입력을 수신할 수 있는 터치-스크린 디스플레이를 포함할 수도 있다. 예를 들어, 출력 디바이스(1010)는 디스플레이 표면과의 다수의 접촉의 포인트들을 검출할 수 있고 해독할 수 있는 용량성 터치-스크린 디스플레이를 포함할 수도 있다. 일부 구현예들에서, 컴퓨팅 시스템(1000)은 출력 디바이스(1010) 상에서의 제시를 위하여 이미지들 및 데이터를 렌더링하고 출력하기 위한 그래픽 어댑터(도시되지 않음)를 포함할 수도 있다. 그래픽 어댑터(도시되지 않음)는 별도의 프로세서 및 메모리(도시되지 않음)를 포함하는 별도의 프로세싱 디바이스일 수도 있거나, 프로세서(1004) 및 메모리(들)(1006)과 통합될 수도 있다.
데이터 저장소(1012)는 데이터를 저장하고 데이터에 대한 액세스를 제공하기 위한 정보 소스이다. 데이터 저장소(1012)에 의해 저장된 데이터는 그것들에 의해 저장된 임의의 유형의 데이터, 예컨대, 항목 식별자, 항목-태그 연관성, 주제, 제목, 소스, 카테고리, 저자, 인기, 제조자, 모델, 계층적 데이터세트에서의 위치, 및/또는 다른 태그들 및 설명자들을 포함하는 다양한 기준들을 이용하여 편성될 수도 있고 질의될 수도 있다. 데이터 저장소(1012)는 데이터 테이블들, 데이터베이스들, 데이터의 다른 편성된 집합들을 포함할 수도 있다. 데이터 저장소(1012)에 의해 저장된 데이터의 유형들의 예들은 데이터세트들(1014) 등을 포함하지만, 이것으로 제한되지는 않는다.
데이터 저장소(1012)는 컴퓨팅 시스템(1000)에서, 또는 컴퓨팅 시스템(1000)과는 별개이지만, 컴퓨팅 시스템(1000)에 결합되거나 컴퓨팅 시스템(1000)에 의해 액세스가능한 또 다른 컴퓨팅 시스템 및/또는 스토리지 시스템에서 포함될 수도 있다. 데이터 저장소(1012)는 데이터를 저장하기 위한 하나 이상의 비일시적인 컴퓨터-판독가능 매체들을 포함할 수 있다. 일부 구현예들에서, 데이터 저장소(1012)는 메모리(들)(1006)과 편입될 수도 있거나, 그로부터 별개일 수도 있다. 일부 구현예들에서, 데이터 저장소(1012)는 컴퓨팅 시스템(1000) 상에서 동작가능한 데이터베이스 관리 시스템(DBMS)과 연관된 데이터를 저장할 수도 있다. 예를 들어, DBMS는 구조화된 질의 언어(SQL) DBMS, NoSQL DMBS, 그 다양한 조합들 등을 포함할 수 있다. 일부 사례들에서, DBMS는 행들 및 열들로 이루어진 다차원 테이블들에서 데이터를 저장할 수도 있고, 프로그래매틱 동작들을 이용하여 데이터의 행들을 조작, 예컨대, 삽입, 질의, 업데이트 및/또는 삭제할 수도 있다.
데이터세트들(1014)은 복수의 레벨들 또는 데이터 트리들로 편성될 수도 있는 임의의 데이터를 포함할 수도 있다. 데이터세트들(1014)은 로우-레벨 항목들의 그룹들(예컨대, 중간-레벨 서브그룹들)로 (예컨대, 데이터 구조에서, 태그들을 이용하여 등으로) 편성될 수 있고, 각각의 로우-레벨 항목은 로우-레벨 데이터 및/또는 메타데이터를 가질 수 있다. 로우-레벨 항목들의 그룹들(예컨대, 중간-레벨 서브그룹들)은 하이-레벨 그룹들로 편성될 수 있다. 일부 구현예들에서, 데이터세트들(1014)은 데이터 저장소(1012)로 다운로딩될 수도 있고 저장될 수도 있다. 일부 구현예들에서, 데이터 저장소(1012)는 데이터 서버(916) 또는 제3자 서버(924) 상에서 저장된 데이터세트들의 일부 또는 전부에 대한 참조들을 포함할 수도 있다. 예를 들어, 항목에 관련되는 디스플레이가능한 정보의 일부 또는 전부는 적용가능한 데이터를 디스플레이하는 아이프레임(iframe) 또는 객체를 포함할 수도 있다. 예를 들어, 클라이언트 디바이스(906)는 제3자 서버(924)로부터 직접적으로 로우-레벨 항목에 대한 이미지를 검색할 수도 있고 이러한 이미지를 디스플레이할 수도 있다. 추가적으로, 데이터세트들(1014)은 데이터베이스(920) 상에서 추가적으로 또는 대안적으로 저장될 수 있고, 클라이언트 디바이스(906) 상의 메모리에서(예컨대, 데이터 저장소(1012) 또는 메모리(1006)에서)) 오직 일시적으로 존재할 수도 있다는 것이 이해되어야 한다.
버스(1016)는 컴퓨팅 디바이스의 컴포넌트들 사이 또는 컴퓨팅 디바이스들 사이에서 데이터를 전송하기 위한 통신 버스, 네트워크(902) 또는 그 부분들을 포함하는 네트워크 버스 시스템, 프로세서 메쉬(processor mesh), 그 조합 등을 포함할 수 있다. 일부 구현예들에서, 데이터 핸들러(1020), 인터페이스 모듈(1022), 카테고리화 모듈(1024), 및 순서화 모듈(1026)과, 컴퓨팅 디바이스(1000) 상에서 동작하는 다양한 다른 컴포넌트들(데이터 분석 엔진(918), 제3자 애플리케이션(926), 오퍼레이팅 시스템들, 디바이스 드라이버들 등)은 버스(1016) 내에 포함되거나 버스(1016)와 연관된 구현된 통신 메커니즘을 통해 협력할 수도 있고 통신할 수도 있다. 버스(1016)는 예를 들어, 인터-프로세스 통신, 로컬 함수 또는 절차 호출들, 원격 절차 호출들, 객체 브로커(object broker)(예컨대, CORBA), 소프트웨어 모듈들 사이의 직접 소켓 통신(예컨대, TCP/IP 소켓들), UDP 방송들 및 수신들, HTTP 접속들 등을 포함할 수 있고 및/또는 용이하게 할 수 있는 소프트웨어 통신 메커니즘을 포함할 수도 있다. 또한, 통신 중의 임의의 것 또는 전부는 보안성(예컨대, SSH, HTTPS 등)일 수 있다.
데이터 제시 모듈(908) 및/또는 그 컴포넌트들은 전적으로 하드웨어로서 구현될 수도 있거나, 복수의 계층적 레벨들을 가지는 데이터세트들과의 상호작용을 효율적으로 편성하고, 제시하고, 제공하기 위한 루틴들 또는 방법들을 구현하기 위하여 클라이언트 디바이스(906) 상에서 프로세서(1004)에 의해 실행가능한 컴퓨터 로직을 포함할 수도 있다. 일부 구현예들에서, 데이터 제시 모듈(908)은 데이터 분석 엔진(918)으로부터 수신된 정보에 적어도 부분적으로 기초하여 사용자 인터페이스들을 생성할 수도 있고 제시할 수도 있다. 예를 들어, 사용자(912)는 계층적 데이터를 효율적으로 관측/소비하고 내비게이팅하기 위하여 데이터 제시 모듈(908)을 이용할 수도 있다. 일부 구현예들에서, 데이터 제시 모듈(908)은 웹 브라우저 및/또는 그 안에서 동작가능한 코드, 맞춤화된 클라이언트측 애플리케이션(예컨대, 전용 이동 앱), 양자의 조합 등을 포함한다.
데이터 핸들러(1020)는 데이터 요청들 및 응답들을 핸들링하고, 및/또는 데이터를 데이터 제시 모듈(908)의 다른 컴포넌트들, 예컨대, 적용가능한 바와 같이, 인터페이스 모듈(1022), 카테고리화 모듈(1024), 및/또는 순서화 모듈(1026)에 제공한다. 예를 들어, 데이터 핸들러(1020)는 데이터 서버(916) 및/또는 제3자 서버(924)로부터 적용가능한 데이터를 수신/검색하기 위하여 데이터 제시 모듈(908)의 컴포넌트들로부터의 데이터 요청들을 프로세싱할 수도 있다. 데이터 핸들러(1020)는 예를 들어, 버스(1016)를 통해, 인터페이스 모듈(1022)을 통해 등으로, 데이터 제시 모듈(908)의 다른 컴포넌트들로부터 데이터 요청들을 수신할 수도 있고 이러한 데이터 요청들에 대해 응답할 수도 있다.
인터페이스 모듈(1022)은 입력 디바이스(1008)로부터 사용자 입력을 수신하고, 요청된 동작들을 결정하기 위하여 사용자 입력을 프로세싱한다. 추가적으로, 인터페이스 모듈(1022)은 컴퓨팅 디바이스(1000) 및 데이터 제시 모듈(908)의 다른 컴포넌트들에 결합되고, 그 동작들을 수행할 것을 데이터 제시 모듈(908)의 컴포넌트들(예컨대, 1020, 1024, 1026)에 시그널링한다. 예를 들어, 일부 구현예들에서, 인터페이스 모듈(1022)은 입력 디바이스(1008)로부터의 사용자 입력을 프로세싱하고, (예컨대, 데이터 핸들러(1020) 및/또는 통신 모듈(1002)를 통해) 데이터 서버(916)로부터의 데이터세트들을 요청하고, 데이터세트들을 프로세싱할 것을 카테고리화 모듈 및/또는 순서화 모듈(1026)에 시그널링하고, 요청된 정보를 사용자에게 디스플레이하기 위해 그래픽 인터페이스를 출력 디바이스(1010)로 전송하기 위하여, 메모리(들)(1006)에서 저장될 수도 있고 프로세서(1004) 상에서 실행될 수도 있다.
카테고리화 모듈(1024)은 각각의 로우-레벨 데이터/항목이 어느 레벨 및 그룹(예컨대, 계층적 그룹 또는 데이터 트리)에 속하는지를 결정할 수도 있다. 예를 들어, 인터페이스 모듈(1022)로부터 수신된 신호에 응답하여, 카테고리화 모듈(1024)은 (예컨대, 데이터 저장소(1012)로부터) 데이터 핸들러(1020)에 의해 검색된 데이터세트들(1014)을 액세스하고, (예컨대, 항목들의 메타데이터에서의 태그들에 따라) 데이터를 하이-레벨 그룹들, 중간-레벨 서브그룹들, 및 로우-레벨 데이터/항목들로 소팅한다.
순서화 모듈(1026)은 인터페이스 모듈(1022) 또는 카테고리화 모듈(1024)로부터의 신호에 응답하여 각각의 중간-레벨 서브그룹 및 하이-레벨 그룹에 대한 제시 우선순위를 결정하기 위하여, 소팅된 데이터세트를 프로세싱한다. 예를 들어, 인터페이스 모듈(1022)은 로우-레벨 및 일부 구현예들에서는, 도 3을 참조하여 설명된 바와 같은 중간-레벨 데이터에 대한 디스플레이 순서를 결정하기 위하여 데이터세트(들)(1014)를 프로세싱할 것을 순서화 모듈(1026)에 시그널링한다. 순서화 모듈(1026)은 데이터 저장소(1012)에서의 데이터를 액세스할 수도 있고, 및/또는 데이터 제시 모듈(908)의 하나 이상의 컴포넌트들(1020, 1022, 또는 1024)로부터 직접적으로 데이터를 수신할 수도 있다.
컴포넌트들(908, 1020, 1022, 1024, 및/또는 1026)은 소프트웨어 또는 루틴들일 수도 있다. 일부 구현예들에서, 908, 1020, 1022, 1024, 및/또는 1026은 프로세서(1004)에 의해 실행가능한 명령들의 세트일 수도 있다. 일부 구현예들에서, 908, 1020, 1022, 1024, 및/또는 1026은 시스템(1000)의 메모리(들)(1006)에서 저장되고, 프로세서(1004)에 의해 액세스가능하고 실행가능하다. 컴포넌트들(908, 1020, 1022, 1024, 및/또는 1026)은 버스(1016) 및/또는 프로세서(들)(1004)에 의해, 서로 및/또는 컴퓨팅 시스템(1000)의 다른 컴포넌트들(1002, 1004, 1006, 1008, 1010, 및/또는 1012)에 통신가능하게 결합될 수도 있다. 일부 구현예들에서, 컴포넌트들(1020, 1022, 1024, 및/또는 1026)은 그 액트들 및/또는 기능성을 제공하기 위하여 프로세서(들)(1004)에 의해 실행가능한 컴퓨터 로직을 포함할 수도 있다. 상기한 구현예들 중의 임의의 것에서, 이 컴포넌트들(1020, 1022, 1024, 및/또는 1026)은 프로세서(들)(1004) 및 컴퓨팅 시스템(1000)의 다른 컴포넌트들, 예컨대, 데이터 저장소(1012) 및/또는 메모리(들)(1006)과의 협력 및 통신을 위하여 구비될 수도 있다.
데이터 분석 엔진(918)은 전적으로 하드웨어로서 구현될 수도 있거나, 예를 들어, 위에서 설명된 바와 같이, 데이터를 계층적 레벨들/그룹들로 편성하고, 항목들을 태그하고, 항목들을 분석하는 등을 위하여 데이터를 프로세싱하기 위한 루틴들 또는 방법들을 구현하기 위하여, 컴퓨팅 시스템(1000)(예컨대, 데이터 서버(916)) 상에서 프로세서(1004)에 의해 실행가능한 컴퓨터 로직을 포함할 수도 있다. 일부 구현예들에서, 데이터 분석 엔진(918)은 버스(1016)를 통한 컴퓨팅 디바이스(1000)(예컨대, 데이터 서버(916))의 프로세서(1004), 메모리(1006), 및 다른 컴포넌트들과의 협력 및 통신을 위하여 구비된다.
제3자 애플리케이션(926)은 전적으로 하드웨어로서 구현될 수도 있거나, 위에서 설명된 바와 같이, 계층구조 또는 데이터 트리로 편성될 수도 있는 데이터/항목들을 서빙하기 위한 루틴들 또는 방법들을 구현하기 위하여 컴퓨팅 시스템(1000)(예컨대, 제3자 서버(924)) 상에서 프로세서(1004)로 실행가능한 컴퓨터 로직을 포함할 수도 있다. 일부 구현예들에서, 제3자 애플리케이션(926)은 버스(1016)를 통한 컴퓨팅 디바이스(1000)(예컨대, 제3자 서버(926))의 프로세서(1004), 메모리(1006), 및 다른 컴포넌트들과의 협력 및 통신을 위하여 구비된다.
위의 설명에서는, 설명의 목적들을 위하여, 수 많은 특정 세부사항들이 기재되었다. 그러나, 개시된 기술들은 이 특정 세부사항들의 임의의 주어진 서브세트 없이 실시될 수 있다는 것이 명백할 것이다. 다른 사례들에서, 구조들 및 디바이스들은 블록도 형태로 도시된다. 예를 들어, 개시된 기술들은 사용자 인터페이스들 및 특정한 하드웨어를 참조하여 위에서의 일부 구현예들에서 설명된다.
"일 구현예" 또는 "구현예"에 대한 명세서에서의 참조는, 구현예와 관련하여 설명된 특정한 특징, 구조, 또는 특성이 개시된 기술들의 적어도 일 구현예 내에 포함된다는 것을 의미한다. 명세서에서의 다양한 장소들에서의 어구 "일 구현예에서"의 출현들은 반드시 모두 동일한 구현예를 지칭하고 있는 것은 아니다.
위에서의 상세한 설명들의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 동작들의 프로세스들 및 기호 표현들의 측면에서 제시되었다. 프로세스는 결과를 초래하는 단계들의 자기-일관적인 시퀀스로 일반적으로 고려될 수 있다. 단계들은 물리적 수량들의 물리적 조작들을 수반할 수도 있다. 이 수량들은 저장될 수 있고, 전송될 수 있고, 조합될 수 있고, 비교될 수 있고, 그렇지 않을 경우에 조작될 수 있는 전기적 또는 자기적 신호들의 형태를 취한다. 이 신호들은 비트들, 값들, 엘리먼트들, 기호들, 문자들, 용어들, 수들 등의 형태인 것으로 지칭될 수도 있다.
이러한 그리고 유사한 용어들은 적절한 물리적 수량들과 연관될 수 있고, 이 수량들에 적용된 라벨들로 고려될 수 있다. 이전의 논의로부터 명백한 바와 같이 이와 다르게 구체적으로 기재되지 않으면, 설명의 전반에 걸쳐, 용어들 예를 들어, "프로세싱" 또는 "컴퓨팅" 또는 "계산" 또는 "결정" 또는 "디스플레이"을 사용하는 논의들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내에서 물리적(전자적) 양태들로서 표현된 데이터를 조작하고, 이 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장, 송신 또는 디스플레이 디바이스들 내에서 물리적 양들로서 유사하게 표현된 다른 데이터로 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스들을 지칭할 수도 있다는 것이 인식된다.
개시된 기술들은 또한, 본원에서의 동작들을 수행하기 위한 장치에 관한 것일 수도 있다. 이 장치는 요구된 목적들을 위하여 특수하게 구성될 수도 있거나, 그것은 컴퓨터에서 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성된 범용 컴퓨터를 포함할 수도 있다. 이러한 컴퓨터 프로그램은 예를 들어, 각각이 컴퓨터 시스템 버스에 결합된, 플로피 디스크들, 광학 디스크들, CD-ROM들, 및 자기 디스크들을 포함하는 임의의 유형의 디스크, 판독-전용 메모리(ROM)들, 랜덤 액세스 메모리(RAM)들, EPROM들, EEPROM들, 자기 또는 광학 카드들, 비휘발성 메모리를 갖는 USB 키들을 포함하는 플래시 메모리들, 또는 전자 명령들을 저장하기 위하여 적당한 임의의 유형의 매체들과 같은 컴퓨터 판독가능 스토리지 매체에서 저장될 수도 있지만, 이것으로 제한되지는 않는다.
개시된 기술들은 전적으로 하드웨어 구현예, 전적으로 소프트웨어 구현예, 또는 하드웨어 및 소프트웨어 엘리먼트들의 양자를 포함하는 구현예의 형태를 취할 수 있다. 일부 구현예들에서, 기술은 펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함하지만, 이것으로 제한되지는 않는 소프트웨어로 구현된다.
또한, 개시된 기술들은 컴퓨터 또는 임의의 명령 실행 시스템에 의한, 또는 이와 관련한 이용을 위한 프로그램 코드를 제공하는 비일시적인 컴퓨터-이용가능한 또는 컴퓨터-판독가능 매체로부터 액세스가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 이 설명의 목적들을 위하여, 컴퓨터-이용가능 또는 컴퓨터-판독가능 매체는 명령 실행 시스템, 장치, 또는 디바이스에 의한, 또는 이와 관련한 이용을 위한 프로그램을 포함할 수 있거나, 저장할 수 있는 임의의 장치일 수 있다.
프로그램 코드를 저장하고 및/또는 실행하기 위하여 적당한 컴퓨팅 시스템 또는 데이터 프로세싱 시스템은 시스템 버스를 통해 메모리 엘리먼트들에 직접적으로 또는 간접적으로 결합된 적어도 하나의 프로세서(예컨대, 하드웨어 프로세서)를 포함할 것이다. 메모리 엘리먼트들은 프로그램 코드의 실제적인 실행 동안에 채용된 로컬 메모리, 벌크 스토리지, 및 코드가 실행 동안에 벌크 스토리지로부터 검색되어야 하는 횟수를 감소시키기 위하여 적어도 일부 프로그램 코드의 일시적인 저장을 제공하는 캐시 메모리들을 포함할 수 있다.
입력/출력 또는 I/O 디바이스들(키보드들, 디스플레이들, 포인팅 디바이스들 등을 포함하지만, 이것으로 제한되지는 않음)은 직접적으로, 또는 개재하는 I/O 제어기들을 통한 것 중의 어느 하나로 시스템에 결합될 수 있다.
네트워크 어댑터들은 또한, 데이터 프로세싱 시스템이 개재하는 사설 또는 공개 네트워크들을 통해 다른 데이터 프로세싱 시스템들 또는 원격 프린터들 또는 스토리지 디바이스들에 결합되게 되는 것을 가능하게 하기 위하여 시스템에 결합될 수도 있다. 모뎀들, 케이블 모뎀들, 및 이더넷 카드들은 단지 몇몇 현재 이용가능한 유형들의 네트워크 어댑터들이다.
최종적으로, 개시된 기술들은 임의의 특정한 프로그래밍 언어를 참조하여 설명되지는 않았다. 다양한 프로그래밍 언어들은 본원에서 설명된 바와 같은 기술들의 교시내용들을 구현하기 위하여 이용될 수도 있다는 것이 인식될 것이다.
본 기법들 기술들의 구현예들의 상기한 설명은 예시 및 설명의 목적들을 위하여 제시되었다. 그것은 철저하도록 하거나, 본 기법들 및 기술들을 개시된 정밀한 형태들로 제한하도록 의도된 것이 아니다. 다수의 수정들 및 변형들이 상기 교시사항을 고려하여 가능하다. 본 기법들 및 기술들의 범위는 이 상세한 설명에 의해 제한되지 않는다는 것이 의도된다. 본 기법들 및 기술들은 그 사상 또는 필수적인 특성들로부터 이탈하지 않으면서, 다른 특정 형태들로 구현될 수도 있다. 마찬가지로, 모듈들, 루틴들, 특징들, 속성들, 방법론들, 및 다른 양태들의 특정한 명명 및 분할은 의무적이거나 중요한 것이 아니고, 본 기법들 및 기술들 또는 그 특징들을 구현하는 메커니즘들은 상이한 명칭들, 분할들, 및/또는 포맷들을 가질 수도 있다. 또한, 본 기술의 모듈들, 루틴들, 특징들, 속성들, 방법론들, 및 다른 양태들은 소프트웨어, 하드웨어, 펌웨어, 또는 3 개의 임의의 조합으로서 구현될 수 있다. 또한, 그 예가 모듈인 컴포넌트가 소프트웨어로서 구현되는 경우에도, 컴포넌트는 단독형 프로그램으로서, 더 큰 프로그램의 일부로서, 복수의 별도의 프로그램들로서, 정적으로 또는 동적으로 연결된 라이브러리로서, 커널 로딩가능한 모듈로서, 디바이스 드라이버로서, 및/또는 컴퓨터 프로그램에서 현재 또는 미래에서 알려진 모든 그리고 임의의 다른 방법으로 구현될 수 있다. 추가적으로, 본 기법들 및 기술들은 임의의 특정 프로그래밍 언어에서의, 또는 임의의 특정 오퍼레이팅 시스템 또는 환경에 대한 구현예로 결코 제한되지 않는다. 따라서, 본 기법들 기술들의 개시내용은 제한하는 것이 아니라, 예시적인 것으로 의도된다.

Claims (24)

  1. 방법으로서,
    컴퓨팅 디바이스에서, 정적 레이아웃을 포함하는 그래픽 사용자 인터페이스를 생성하는 단계 - 상기 정적 레이아웃은 디스플레이 영역 및 제1 레벨에서의 상호작용 영역을 포함하고, 상기 디스플레이 영역은 제2 레벨 서브그룹 및 제3 레벨 항목 중의 하나를 표현하는 데이터를 디스플레이하도록 구성되고, 상기 제1 레벨의 상호작용 영역은 복수의 서브영역들을 가짐 -;
    사용자 입력을 수신하는 단계;
    상기 수신된 사용자 입력이 상기 제1 레벨의 상호작용 영역의 상기 복수의 서브영역들 중의 하나의 서브영역의 선택인지 여부를 결정하는 단계;
    상기 수신된 사용자 입력이 상기 복수의 서브영역들 중의 하나의 서브영역의 선택이라는 결정에 응답하여, 상기 복수의 서브영역들 중의 하나의 서브영역의 선택에 대응하는 상기 제2 레벨 서브그룹을 포함하기 위하여 상기 디스플레이 영역을 업데이트하는 단계;
    상기 수신된 사용자 입력이 상기 디스플레이 영역의 선택인지 여부를 결정하는 단계; 및
    상기 사용자 입력이 상기 디스플레이 영역의 선택이라는 결정에 응답하여, 상기 제2 레벨 서브그룹에 대응하는 상기 제3 레벨 항목을 포함하기 위하여 상기 디스플레이 영역을 업데이트하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    데이터 서버로부터 데이터의 세트를 검색하는 단계를 더 포함하고, 데이터의 상기 세트는 제1 레벨 그룹, 제2 레벨 서브그룹, 및 제3 레벨 항목들을 포함하고, 상기 제3 레벨 항목들은 기사들이고, 상기 제2 레벨 서브그룹은 공통 이벤트에 관련된 기사들의 클러스터이고, 상기 제1 레벨 그룹은 공통 카테고리에 관련된 기사들의 클러스터들의 그룹인 방법.
  3. 제1항에 있어서,
    상기 수신된 사용자 입력이 상기 복수의 서브영역 중의 하나의 서브영역의 선택인지 여부를 결정하는 단계는 상기 사용자 입력이 상기 제1 레벨의 상호작용 영역에 걸친 스크러빙 입력(scrubbing input)을 포함하는지 여부를 결정하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 디스플레이 영역은 정보 에어리어 및 선택 에어리어를 포함하고, 상기 정보 에어리어는 텍스트 정보를 디스플레이하고, 상기 선택 에어리어는 상기 텍스트 정보에 대응하는 이미지를 디스플레이하는 방법.
  5. 제4항에 있어서,
    상기 선택 에어리어는 상기 그래픽 사용자 인터페이스의 수직 측에 인접하게 위치되는 방법.
  6. 제4항에 있어서,
    상기 그래픽 사용자 인터페이스는 복수의 디스플레이 영역들을 포함하고, 상기 제3 레벨 항목을 포함하기 위하여 상기 디스플레이 영역을 업데이트하는 단계는 상이한 데이터로 상기 복수의 디스플레이 영역들의 각각을 업데이트하는 단계를 포함하는 방법.
  7. 제1항에 있어서,
    상기 제3 레벨 항목과 연관된 메타데이터 태그에 기초하여 상기 제2 레벨 서브그룹 내의 상기 제3 레벨 항목에 대한 등급화를 결정하는 단계;
    상기 제3 레벨 항목과 연관된 이미지가 있는지 여부를 결정하는 단계; 및
    상기 제3 레벨 항목의 등급이 문턱(threshold)을 충족시킬 경우, 상기 그래픽 사용자 인터페이스에서의 디스플레이를 위하여 상기 제3 레벨 항목을 선택하는 단계
    를 더 포함하는 방법.
  8. 제1항에 있어서,
    상기 디스플레이 영역은 상기 그래픽 사용자 인터페이스의 제1 수직 에지(vertical edge)에 인접하게 위치된 선택 에어리어 및 정보 에어리어를 포함하고, 상기 방법은 상기 사용자 입력이 상기 선택 에어리어에서 시작하고 상기 정보 에어리어에서 종료되는 수평 스와이프(horizontal swipe)를 포함하였는지 여부를 결정하는 단계, 및 수평 스와이프에 응답하여, 상기 그래픽 사용자 인터페이스의 제2 수직 에지에 인접하게 위치되도록 상기 선택 에어리어를 이동시키기 위하여 상기 디스플레이 영역을 업데이트하는 단계를 더 포함하는 방법.
  9. 시스템으로서,
    프로세서; 및
    명령들을 저장하는 메모리
    를 포함하고,
    상기 명령들은, 상기 프로세서에 의해 실행될 때, 상기 시스템으로 하여금,
    정적 레이아웃을 포함하는 그래픽 사용자 인터페이스를 생성하게 하고 - 상기 정적 레이아웃은 디스플레이 영역 및 제1 레벨에 대한 상호작용 영역을 포함하고, 상기 디스플레이 영역은 제2 레벨 서브그룹 및 제3 레벨 항목 중의 하나를 표현하는 데이터를 디스플레이하도록 구성되고, 상기 제1 레벨의 상호작용 영역은 복수의 서브영역들을 가짐 -;
    사용자 입력을 수신하게 하고;
    상기 수신된 사용자 입력이 상기 제1 레벨의 상호작용 영역의 상기 복수의 서브영역들 중의 하나의 서브영역의 선택인지 여부를 결정하게 하고;
    상기 수신된 사용자 입력이 상기 복수의 서브영역들 중의 하나의 서브영역의 선택이라는 결정에 응답하여, 상기 복수의 서브영역들 중의 하나의 서브영역의 선택에 대응하는 상기 제2 레벨 서브그룹을 포함하기 위하여 상기 디스플레이 영역을 업데이트하게 하고;
    상기 수신된 사용자 입력이 상기 디스플레이 영역의 선택인지 여부를 결정하게 하고;
    상기 사용자 입력이 상기 디스플레이 영역의 선택이라는 결정에 응답하여, 상기 제2 레벨 서브그룹에 대응하는 상기 제3 레벨 항목을 포함하기 위하여 상기 디스플레이 영역을 업데이트하게 하는 시스템.
  10. 제9항에 있어서,
    상기 메모리는 명령들을 또한 저장하고, 이 명령들은, 상기 프로세서에 의해 실행될 때, 상기 시스템으로 하여금, 데이터 서버로부터 데이터의 세트를 검색하게 하고, 데이터의 상기 세트는 제1 레벨 그룹, 제2 레벨 서브그룹, 및 제3 레벨 항목들을 포함하고, 상기 제3 레벨 항목들은 기사들이고, 상기 제2 레벨 서브그룹은 공통 이벤트에 관련된 기사들의 클러스터이고, 상기 제1 레벨 그룹은 공통 카테고리에 관련된 기사들의 클러스터들의 그룹인 시스템.
  11. 제9항에 있어서,
    상기 메모리는 명령들을 또한 저장하고, 이 명령들은, 상기 프로세서에 의해 실행될 때, 상기 시스템으로 하여금, 상기 사용자 입력이 상기 제1 레벨의 상호작용 영역에 걸친 스크러빙 입력을 포함하는지 여부를 결정하게 하는 시스템
  12. 제9항에 있어서,
    상기 디스플레이 영역은 정보 에어리어 및 선택 에어리어를 포함하고, 상기 정보 에어리어는 텍스트 정보를 디스플레이하고, 상기 선택 에어리어는 상기 텍스트 정보에 대응하는 이미지를 디스플레이하는 시스템.
  13. 제12항에 있어서,
    상기 선택 에어리어는 상기 그래픽 사용자 인터페이스의 수직 측에 인접하게 위치되는 시스템.
  14. 제9항에 있어서,
    상기 그래픽 사용자 인터페이스는 복수의 디스플레이 영역들을 포함하고, 상기 메모리는 명령들을 또한 저장하고, 이 명령들은, 상기 프로세서에 의해 실행될 때, 상기 시스템으로 하여금, 상이한 데이터로 상기 복수의 디스플레이 영역들의 각각을 업데이트하게 하는 시스템.
  15. 제9항에 있어서,
    상기 메모리는 명령들을 또한 저장하고, 이 명령들은, 상기 프로세서에 의해 실행될 때, 상기 시스템으로 하여금,
    상기 제3 레벨 항목과 연관된 메타데이터 태그에 기초하여 상기 제2 레벨 서브그룹 내의 상기 제3 레벨 항목에 대한 등급화를 결정하게 하고;
    상기 제3 레벨 항목과 연관된 이미지가 있는지 여부를 결정하게 하고;
    상기 제3 레벨 항목의 등급이 문턱을 충족시킬 경우, 상기 그래픽 사용자 인터페이스에서의 디스플레이를 위하여 상기 제3 레벨 항목을 선택하게 하는 시스템.
  16. 제9항에 있어서,
    상기 디스플레이 영역은 상기 그래픽 사용자 인터페이스의 제1 수직 에지에 인접하게 위치된 선택 에어리어 및 정보 에어리어를 포함하고, 상기 메모리는 명령들을 또한 저장하고, 이 명령들은, 상기 프로세서에 의해 실행될 때, 상기 시스템으로 하여금, 상기 사용자 입력이 상기 선택 에어리어에서 시작하고 상기 정보 에어리어에서 종료되는 수평 스와이프를 포함하였는지 여부를 결정하게 하고, 수평 스와이프에 응답하여, 상기 그래픽 사용자 인터페이스의 제2 수직 에지에 인접하게 위치되도록 상기 선택 에어리어를 이동시키기 위하여 상기 디스플레이 영역을 업데이트하게 하는 시스템.
  17. 컴퓨터 판독가능 프로그램을 포함하는 컴퓨터 판독가능 기록 매체로서,
    상기 컴퓨터 판독가능 프로그램은, 컴퓨터 상에서 실행될 때, 상기 컴퓨터로 하여금,
    정적 레이아웃을 포함하는 그래픽 사용자 인터페이스를 생성하게 하고 - 상기 정적 레이아웃은 디스플레이 영역 및 제1 레벨에 대한 상호작용 영역을 포함하고, 상기 디스플레이 영역은 제2 레벨 서브그룹 및 제3 레벨 항목 중의 하나를 표현하는 데이터를 디스플레이하도록 구성되고, 상기 제1 레벨의 상호작용 영역은 복수의 서브영역들을 가짐 -;
    사용자 입력을 수신하게 하고;
    상기 수신된 사용자 입력이 상기 제1 레벨의 상호작용 영역의 상기 복수의 서브영역들 중의 하나의 서브영역의 선택인지 여부를 결정하게 하고;
    상기 수신된 사용자 입력이 상기 복수의 서브영역들 중의 하나의 서브영역의 선택이라는 결정에 응답하여, 상기 복수의 서브영역들 중의 하나의 서브영역의 선택에 대응하는 상기 제2 레벨 서브그룹을 포함하기 위하여 상기 디스플레이 영역을 업데이트하게 하고;
    상기 수신된 사용자 입력이 상기 디스플레이 영역의 선택인지 여부를 결정하게 하고;
    상기 사용자 입력이 상기 디스플레이 영역의 선택이라는 결정에 응답하여, 상기 제2 레벨 서브그룹에 대응하는 상기 제3 레벨 항목을 포함하기 위하여 상기 디스플레이 영역을 업데이트하게 하는, 컴퓨터 판독가능 기록 매체.
  18. 제17항에 있어서,
    상기 컴퓨터 판독가능 프로그램은, 상기 컴퓨터 상에서 실행될 때, 또한, 상기 컴퓨터로 하여금, 데이터 서버로부터 데이터의 세트를 검색하게 하고, 데이터의 상기 세트는 제1 레벨 그룹, 제2 레벨 서브그룹, 및 제3 레벨 항목들을 포함하고, 상기 제3 레벨 항목들은 기사들이고, 상기 제2 레벨 서브그룹은 공통 이벤트에 관련된 기사들의 클러스터이고, 상기 제1 레벨 그룹은 공통 카테고리에 관련된 기사들의 클러스터들의 그룹인, 컴퓨터 판독가능 기록 매체.
  19. 제17항에 있어서,
    상기 컴퓨터 판독가능 프로그램은, 상기 컴퓨터 상에서 실행될 때, 또한, 상기 컴퓨터로 하여금, 상기 사용자 입력이 상기 제1 레벨의 상호작용 영역에 걸친 스크러빙 입력을 포함하는지 여부를 결정하게 하는, 컴퓨터 판독가능 기록 매체.
  20. 제17항에 있어서,
    상기 디스플레이 영역은 정보 에어리어 및 선택 에어리어를 포함하고, 상기 정보 에어리어는 텍스트 정보를 디스플레이하고, 상기 선택 에어리어는 상기 텍스트 정보에 대응하는 이미지를 디스플레이하는, 컴퓨터 판독가능 기록 매체.
  21. 제20항에 있어서,
    상기 선택 에어리어는 상기 그래픽 사용자 인터페이스의 수직 측에 인접하게 위치되는, 컴퓨터 판독가능 기록 매체.
  22. 제17항에 있어서,
    상기 그래픽 사용자 인터페이스는 복수의 디스플레이 영역들을 포함하고, 상기 컴퓨터 판독가능 프로그램은, 상기 컴퓨터 상에서 실행될 때, 또한, 상기 컴퓨터로 하여금, 상이한 데이터로 상기 복수의 디스플레이 영역들의 각각을 업데이트하게 하는, 컴퓨터 판독가능 기록 매체.
  23. 제17항에 있어서,
    상기 컴퓨터 판독가능 프로그램은, 상기 컴퓨터 상에서 실행될 때, 또한, 상기 컴퓨터로 하여금,
    상기 제3 레벨 항목과 연관된 메타데이터 태그에 기초하여 상기 제2 레벨 서브그룹 내의 상기 제3 레벨 항목에 대한 등급화를 결정하게 하고;
    상기 제3 레벨 항목과 연관된 이미지가 있는지 여부를 결정하게 하고;
    상기 제3 레벨 항목의 등급이 문턱을 충족시킬 경우, 상기 그래픽 사용자 인터페이스에서의 디스플레이를 위하여 상기 제3 레벨 항목을 선택하게 하는, 컴퓨터 판독가능 기록 매체.
  24. 제17항에 있어서,
    상기 디스플레이 영역은 상기 그래픽 사용자 인터페이스의 제1 수직 에지에 인접하게 위치된 선택 에어리어 및 정보 에어리어를 포함하고, 상기 컴퓨터 판독가능 프로그램은, 상기 컴퓨터 상에서 실행될 때, 또한, 상기 컴퓨터로 하여금, 상기 사용자 입력이 상기 선택 에어리어에서 시작하고 상기 정보 에어리어에서 종료되는 수평 스와이프를 포함하였는지 여부를 결정하게 하고, 수평 스와이프에 응답하여, 상기 그래픽 사용자 인터페이스의 제2 수직 에지에 인접하게 위치되도록 상기 선택 에어리어를 이동시키기 위하여 상기 디스플레이 영역을 업데이트하게 하는, 컴퓨터 판독가능 기록 매체.
KR1020187014539A 2015-11-06 2016-10-24 이동 사용자 인터페이스 KR102110700B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/935,258 US20170131872A1 (en) 2015-11-06 2015-11-06 Mobile User Interface
US14/935,258 2015-11-06
PCT/US2016/058547 WO2017078958A1 (en) 2015-11-06 2016-10-24 Mobile user interface

Publications (2)

Publication Number Publication Date
KR20180073644A KR20180073644A (ko) 2018-07-02
KR102110700B1 true KR102110700B1 (ko) 2020-05-13

Family

ID=57233920

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187014539A KR102110700B1 (ko) 2015-11-06 2016-10-24 이동 사용자 인터페이스

Country Status (8)

Country Link
US (1) US20170131872A1 (ko)
EP (1) EP3353685A1 (ko)
JP (1) JP6596594B2 (ko)
KR (1) KR102110700B1 (ko)
CN (1) CN108475270A (ko)
DE (1) DE112016004579T5 (ko)
GB (1) GB2558487A (ko)
WO (1) WO2017078958A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593342B2 (en) 2016-02-01 2023-02-28 Smartshift Technologies, Inc. Systems and methods for database orientation transformation
US10585655B2 (en) 2016-05-25 2020-03-10 Smartshift Technologies, Inc. Systems and methods for automated retrofitting of customized code objects
US10089103B2 (en) 2016-08-03 2018-10-02 Smartshift Technologies, Inc. Systems and methods for transformation of reporting schema
JP6784168B2 (ja) * 2016-12-19 2020-11-11 株式会社リコー 情報処理装置、プログラム、閲覧システム
US10430035B2 (en) 2017-08-24 2019-10-01 Sap Se Embedded analytics for applications and interfaces across multiple platforms
KR102420280B1 (ko) * 2017-10-30 2022-07-13 엘지전자 주식회사 이동 단말기
US10528343B2 (en) 2018-02-06 2020-01-07 Smartshift Technologies, Inc. Systems and methods for code analysis heat map interfaces
US10740075B2 (en) 2018-02-06 2020-08-11 Smartshift Technologies, Inc. Systems and methods for code clustering analysis and transformation
US10698674B2 (en) 2018-02-06 2020-06-30 Smartshift Technologies, Inc. Systems and methods for entry point-based code analysis and transformation
CN108469898B (zh) 2018-03-15 2020-05-12 维沃移动通信有限公司 一种图像处理方法及柔性屏终端
CN110188253B (zh) * 2019-05-30 2021-09-14 北京字节跳动网络技术有限公司 一种信息展示方法、装置及存储介质
CN117687552B (zh) * 2024-02-04 2024-04-23 深圳市创义信光电科技有限公司 显示屏分区显示方法、装置、设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100050103A1 (en) 2007-02-27 2010-02-25 Kristoffer Husoy Method And System For Generating A Control System User Interface
US20110202848A1 (en) 2010-01-19 2011-08-18 Collarity, Inc. Anchoring for content synchronization
US20120167011A1 (en) 2010-12-23 2012-06-28 Microsoft Corporation Application Reporting in an Application-Selectable User Interface
JP2013070293A (ja) * 2011-09-25 2013-04-18 Sockets Inc コンテンツ閲覧装置および閲覧サービスを提供するサーバ装置
US20130151611A1 (en) 2011-12-12 2013-06-13 Mary Graham Displaying news ticker content in a social networking system
US20130235087A1 (en) 2012-03-12 2013-09-12 Canon Kabushiki Kaisha Image display apparatus and image display method
US20140157188A1 (en) 2011-11-26 2014-06-05 Kentaro Miura Systems and methods for organizing and displaying hierarchical data structures in computing devices
JP2014522527A (ja) * 2012-03-06 2014-09-04 アップル インコーポレイテッド 画像を閲覧するためのアプリケーション
JP2014215820A (ja) * 2013-04-25 2014-11-17 大日本印刷株式会社 情報表示装置、情報表示方法及び情報表示用プログラム
US20160378282A1 (en) 2015-06-29 2016-12-29 Samsung Electronics Co., Ltd Method and an electronic device for one-hand user interface

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9880702B2 (en) * 2006-02-03 2018-01-30 Yahoo Holdings, Inc. Content structures and content navigation interfaces
US20090063517A1 (en) * 2007-08-30 2009-03-05 Microsoft Corporation User interfaces for scoped hierarchical data sets
US8375073B1 (en) * 2007-11-12 2013-02-12 Google Inc. Identification and ranking of news stories of interest
US8205171B2 (en) * 2009-09-01 2012-06-19 Oracle International Corporation System and method for providing graphical user interface displaying multiple views
US9164965B2 (en) * 2012-09-28 2015-10-20 Oracle International Corporation Interactive topological views of combined hardware and software systems
US9633080B2 (en) * 2013-05-28 2017-04-25 Microsoft Technology Licensing, Llc Hierarchical entity information for search

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100050103A1 (en) 2007-02-27 2010-02-25 Kristoffer Husoy Method And System For Generating A Control System User Interface
US20110202848A1 (en) 2010-01-19 2011-08-18 Collarity, Inc. Anchoring for content synchronization
US20120167011A1 (en) 2010-12-23 2012-06-28 Microsoft Corporation Application Reporting in an Application-Selectable User Interface
JP2013070293A (ja) * 2011-09-25 2013-04-18 Sockets Inc コンテンツ閲覧装置および閲覧サービスを提供するサーバ装置
US20140157188A1 (en) 2011-11-26 2014-06-05 Kentaro Miura Systems and methods for organizing and displaying hierarchical data structures in computing devices
US20130151611A1 (en) 2011-12-12 2013-06-13 Mary Graham Displaying news ticker content in a social networking system
JP2014522527A (ja) * 2012-03-06 2014-09-04 アップル インコーポレイテッド 画像を閲覧するためのアプリケーション
US20130235087A1 (en) 2012-03-12 2013-09-12 Canon Kabushiki Kaisha Image display apparatus and image display method
JP2014215820A (ja) * 2013-04-25 2014-11-17 大日本印刷株式会社 情報表示装置、情報表示方法及び情報表示用プログラム
US20160378282A1 (en) 2015-06-29 2016-12-29 Samsung Electronics Co., Ltd Method and an electronic device for one-hand user interface

Also Published As

Publication number Publication date
JP2018538643A (ja) 2018-12-27
DE112016004579T5 (de) 2018-06-28
EP3353685A1 (en) 2018-08-01
CN108475270A (zh) 2018-08-31
GB201806764D0 (en) 2018-06-06
WO2017078958A1 (en) 2017-05-11
GB2558487A (en) 2018-07-11
KR20180073644A (ko) 2018-07-02
JP6596594B2 (ja) 2019-10-23
US20170131872A1 (en) 2017-05-11

Similar Documents

Publication Publication Date Title
KR102110700B1 (ko) 이동 사용자 인터페이스
RU2632144C1 (ru) Компьютерный способ создания интерфейса рекомендации контента
US10248305B2 (en) Manipulating documents in touch screen file management applications
US20190391825A1 (en) User interface for navigating multiple applications
RU2683507C2 (ru) Извлечение значений атрибутов на основе идентифицированных записей
KR101143048B1 (ko) 반-축소된 뷰를 갖는 축소가능 컨테이너
US9576049B2 (en) Semantic searching using zoom operations
US11200293B2 (en) Method and system for controlling presentation of web resources in a browser window
US20130232148A1 (en) Content mapping
US10402470B2 (en) Effecting multi-step operations in an application in response to direct manipulation of a selected object
KR20110099225A (ko) 제안된 미세 조정 용어 및 버티컬 검색의 검색 결과 미리보기
US20120159301A1 (en) Semantically enabled, data sensitive negotiation and collaboration engine
Kim et al. Menu design for computers and cell phones: Review and reappraisal
US11061651B2 (en) Systems and methods for organizing, classifying, and discovering automatically generated computer software
US20120110499A1 (en) Virtualized layouts
US20210304379A1 (en) System and Methods for an Image Mosaic Representing a Group of Links
KR20100101594A (ko) 견본 요소의 메타데이터에 기초하여 디지털 컨텐츠를 검색하는 방법, 시스템 및 컴퓨터 프로그램
US20170090703A1 (en) Method of and system for interacting with a content element of a content stream
US20170116291A1 (en) Network caching of search result history and interactions
CN109313662B (zh) 到本机应用体验中的对网页的解构和呈现
TW201035860A (en) Method and computer program product for displaying document on mobile device
US9727614B1 (en) Identifying query fingerprints
US20200045375A1 (en) Video playback in a web-application using a resizable and repositionable window
US20140047003A1 (en) Processing data entities associated to descriptors
US20200082465A1 (en) Method and system to generate a multi-panel ui based on hierarchy data corresponding to digital content

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant