KR20160051871A - 무결절성 페이지네이션 - Google Patents

무결절성 페이지네이션 Download PDF

Info

Publication number
KR20160051871A
KR20160051871A KR1020167008898A KR20167008898A KR20160051871A KR 20160051871 A KR20160051871 A KR 20160051871A KR 1020167008898 A KR1020167008898 A KR 1020167008898A KR 20167008898 A KR20167008898 A KR 20167008898A KR 20160051871 A KR20160051871 A KR 20160051871A
Authority
KR
South Korea
Prior art keywords
user
pages
scrollable
page
refinement
Prior art date
Application number
KR1020167008898A
Other languages
English (en)
Inventor
마나스 하리바이 소메이야
라비 차크라보르티
니어비크 디
아크샤타 발리가
수디프 다스굽타
미널 바르쉬니
데니스 마샬
가네쉬 고팔라크리쉬난
Original Assignee
페이팔, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 페이팔, 인코포레이티드 filed Critical 페이팔, 인코포레이티드
Publication of KR20160051871A publication Critical patent/KR20160051871A/ko

Links

Images

Classifications

    • G06F17/30905
    • 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
    • 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/24Querying
    • G06F16/245Query processing
    • 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/24Querying
    • G06F16/248Presentation of query results
    • 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/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • G06F17/30424
    • G06F17/30554
    • 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/0485Scrolling or panning

Landscapes

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

Abstract

검색 엔진이 하나 이상의 다양한 요인에 기반하여 사용자에게 제시되는 페이지의 수를 결정한다. 검색 엔진은 검색 결과를 클라이언트 머신으로 전송할 수 있는데, 이것은 스크롤 가능 인터페이스에 페이지네이션 컨트롤(pagination control)과 함께 결과의 서브세트(subset)를 제시할 수 있다. 페이지네이션 컨트롤은 검색 결과에 의해 결정된 페이지의 수를 제시할 수도 있다. 검색 결과는 동일한 또는 상이한 요인들에 기반하여 스크롤 불능 사용자 인터페이스(UI) 요소의 제시 이전에 제시할 검색 결과의 수를 결정할 수도 있다. 스크롤하는 분량이 임계값을 초과한 이후, 스크롤 불능 UI 요소가 디스플레이될 수 있다. 추가의 임계값이 존재할 수도 있고, 이에 따라 사용자가 계속 스크롤하는 동안 추가의 스크롤 불능 UI 요소가 추가된다.

Description

무결절성 페이지네이션{SEAMLESS PAGINATION}
본 PCT 출원은 발명의 명칭이 "Seamless Pagination"인 2013년 9월 5일자 미국 가특허출원 제61/874,286호 및 발명의 명칭이 "Contextual Refinement During Seamless Pagination"인 2013년 12월 13일자 미국 가특허출원 제61/915,634호의 출원일의 이득을 주장하고 있는 발명의 명칭이 "SEAMLESS PAGINATION"인 2014년 3월 7일자 미국 특허출원 제 14/201,000호의 출원일의 이득을 주장한다.
본원의 개시내용의 일부는 저작권 보호를 받는 자료를 포함한다. 저작권자는 특허청 특허 파일 또는 기록에 있는 그대로의 특허 문헌 또는 특허 명세서에 대한 누군가에 의한 팩시밀리 복제에 관해서는 이의를 갖지 않지만 그렇지 않다면 그 어떤 것이라도 저작권에 어긋난다. 다음의 통지는 도면과 아래에 설명된 소프트웨어 및 데이터에 적용된다(저작권 eBay, Inc. 2013-2014, 판권 소유).
본원에 개시된 주제는 페이지네이션 컨트롤(pagination control)을 갖는 데이터 제시에 관한 것이다. 구체적으로, 본 개시 내용은 제시된 데이터의 무결절성 페이지네이션(seamless pagination)을 위한 시스템 및 방법을 다룬다.
일부 실시예들은 예로서 예시되며, 첨부 도면의 내용에 제한되지 않는다.
도 1은 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 네트워크 환경을 예시하는 네트워크 도시도이다.
도 2는 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 애플리케이션 서버의 예시적인 구성요소의 블록도이다.
도 3은 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 클라이언트 머신의 구성요소를 예시하는 블록도이다.
도 4는 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 사용자 인터페이스(UI)의 스크린 도시도이다.
도 5는 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 UI의 스크린 도시도이다.
도 6은 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 UI의 스크린 도시도이다.
도 7은 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 UI의 스크린 도시도이다.
도 8은 무결절성 페이지네이션 동안 콘텍스트 정제(contexual refinement)에 적합한 예시적인 실시예에 따른 UI의 스크린 도시도이다.
도 9는 무결절성 페이지네이션 동안 콘텍스트 정제에 적합한 예시적인 실시예에 따른 UI의 스크린 도시도이다.
도 10은 무결절성 페이지네이션 동안 콘텍스트 정제에 적합한 예시적인 실시예에 따른 UI의 스크린 도시도이다.
도 11은 무결절성 페이지네이션 동안 콘텍스트 정제에 적합한 예시적인 실시예에 따른 UI의 스크린 도시도이다.
도 12는 무결절성 페이지네이션 동안 콘텍스트 정제에 적합한 예시적인 실시예에 따른 UI의 스크린 도시도이다.
도 13은 무결절성 페이지네이션 동안 콘텍스트 정제에 적합한 예시적인 실시예에 따른 UI의 스크린 도시도이다.
도 14는 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 애플리케이션 서버의 동작을 예시하는 흐름도이다.
도 15는 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 클라이언트 머신의 동작을 예시하는 흐름도이다.
도 16은 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 애플리케이션 서버의 동작을 예시하는 흐름도이다.
도 17은 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 클라이언트 머신의 동작을 예시하는 흐름도이다.
도 18은 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 클라이언트 머신의 동작을 예시하는 흐름도이다.
도 19는 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 클라이언트 머신의 동작을 예시하는 흐름도이다.
도 20은 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 클라이언트 머신의 동작을 예시하는 흐름도이다.
도 21은 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 질의 데이터 특징의 이용을 예시하는 블록도이다.
도 22는 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 사용자 데이터 특징의 사용을 예시하는 블록도이다.
도 23은 무결절성 페이지네이션을 인에이블(enable)할 것인지 여부를 결정할 때, 예시적인 실시예에 따라 고려될 수 있는 요인들을 예시하는 블록도이다.
도 24는 일부 실시예에 따라, 머신 판독가능 매체로부터 명령어를 판독할 수 있으면서 본원에 설명된 방법들 중 하나 이상의 방법을 수행할 수 있는 머신의 구성요소를 예시하는 블록도이다.
예시적인 방법 및 시스템은 무결절성 페이지네이션과 무결절성 페이지네이션 동안의 검색의 콘텍스트 정제(contexual refinement)를 다룬다. 예들은 단지 가능성 있는 변형들을 대표한다. 명시적으로 설명되지 않는 한, 구성요소와 기능들은 선택 가능한 것이며, 조합 또는 분할될 수 있으며, 동작들은 그 순서가 변할 수도 있고 조합 및 분할될 수도 있다. 다음 설명에서, 설명의 편의상 예시적인 실시예의 완전한 이해를 제공하기 위해서 다양한 특정의 세부사항들이 설명된다. 그러나 당업자에게는 본 발명이 이러한 특정의 세부사항 없이도 실시될 수 있음이 자명할 것이다.
사용자는 검색 엔진(예를 들면, 애플리케이션 서버상에서 동작중인 검색 애플리케이션)에게 검색 질의(예를 들면, 클라이언트 머신으로부터)를 제출할 수 있다. 검색 엔진은 검색 질의를 처리하고, 결과 세트(a set of results)를 생성한다. 검색 엔진은 다양한 요인들 중 하나 이상의 요인에 기반하여 사용자에게 제시할 검색 결과의 수(혹은 검색 결과의 페이지의 수)를 결정할 수 있다. 요인들의 예로서, 이전에 질의를 이용했던 다른 사용자가 동작, 예컨대 구매를 수행하기 이전에 본 검색 결과의 개수와, 이전의 질의를 제출한 이후에 현 사용자가 동작, 예컨대 구매를 수행하기 전에 본 검색 결과의 개수 등을 들 수 있다. 검색 엔진은 클라이언트 머신에게 검색 결과에 대한 검색 결과의 개수 또는 페이지 수를 전송할 것이다. 클라이언트 머신은 페이지네이션 컨트롤과 함께 결과 서브세트(a subset of the results)를 제시할 수 있다. 페이지네이션 컨트롤에서 페이지 수는 검색 엔진에 의해 결정된 검색 결과(검색 결과의 페이지)의 수에 기반을 둘 것이다. 사용자는 원래 제시된 페이지 수를 초과하는 추가의 검색 결과를 살펴보도록 허용될 수도 있다.
검색 질의로부터 입수한 결과는 스크롤 가능 인터페이스에 제시될 것이다. 정제 제안(refinement suggestion)이 스크롤 가능 인터페이스에 제시될 수도 있다. 정제 제안은 검색에 대한 제안된 수정이다. 일부 예시적인 실시예에서, 제안된 수정은 추가의 검색 용어 또는 필터를 추가하고 검색 질의와 일치하는 결과의 수를 줄임으로써 검색을 정제한다. 예를 들면, 초기 검색이 "신발"에 관한 것일 수도 있다. 정제 제안은 특히 특정 가격대 또는 특정 방식의 판매(예를 들면, 고정 가격 또는 경매)중인 특정 브랜드의 신발로 검색을 제한할 수 있다.
예를 들어, 사용자가 Page Down 키를 누르거나 스크롤 바를 아래 방향으로 내릴 때마다 UI에 제시된 정보는 스크롤하여 신규 정보를 제시할 것이다. 사용자는 Page Up 키를 누르거나 스크롤 바를 윗 방향으로 올려 반대 방향으로 스크롤할 수도 있다. 사용자가 아래 방향으로 스크롤할 때마다, 모든 정보가 제시될 때까지 신규 정보가 제시된다. 정보는 정제 제안과 검색 결과를 포함한 다양한 유형의 데이터를 포함할 수 있다. 다수 유형의 데이터가 함께 제시될 때, 한 가지 유형의 모든 정보는 다른 유형의 모든 정보가 디스플레이되기 전에 디스플레이될 수 있다. 예를 들어, 정제 제안을 하는 하나 또는 두 개의 스크린이 제시될 수도 있고, 반면에 다수의 결과 스크린이 제시될 수도 있다. 그 결과, 일단 사용자가 정제 제안의 끝을 넘어서 아래 방향으로 스크롤을 내리면, 검색 결과만이 제시된다. 정제 제안을 제공하는데 스크롤 불능(non-scrollable) UI 요소가 이용될 수도 있다. 예를 들어, 사용자가 스크롤할 때 정제 제안은 스크린상의 위치에 고정되어 이동하지 않을 수도 있다. 이와 동시에 결과가 스크롤 가능 UI에 제시되어 사용자가 스크롤할 때 정제 제안이 이용가능 상태를 유지하면서 신규 결과가 디스플레이된다.
수행되는 스크롤링의 정도를 감지하면서 정제 제안이 스크롤 가능 인터페이스에 초기에 디스플레이될 수도 있다. 스크롤링의 정도가 임계값을 벗어날 때, 스크롤 불능 UI 요소가 디스플레이될 수도 있다. 사용자는 반대 방향으로 스크롤할 수 있을 것이다. 스크롤링의 정도가 임계값에 못 미치면, 스크롤 불능 UI 요소가 제거될 수도 있다. 추가의 임계값이 존재할 수도 있고, 이로써 사용자가 계속 스크롤할 때 추가의 스크롤 불능 UI 요소가 추가된다. 스크롤 불능 UI 요소는 스크롤 가능 UI 요소와 동일한 기능을 제공할 수 있다. 스크롤 불능 UI 요소는 스크롤 가능 UI 요소에서 이용 가능한 옵션을 제시하도록 동작할 수 있다. 예를 들면, 스크롤 가능 요소는 두 개의 스크린을 다룰 수 있다. 두 개의 스크린은 임계값로서 설정될 수 있을 것이다. 사용자는 두 번째 스크린을 지나서 스크롤할 수도 있다. 임계값을 넘는 사용자의 스크롤링에 기반하여, 두 개의 UI 요소가 제시될 수 있고, 이때 하나의 UI 요소는 최근에 스크롤한 스크린에 대응한다. UI 요소의 각각은 대응하는 스크린에 디스플레이되었던 옵션을 디스플레이하도록 동작할 수 있다(마우스 클릭에 응답하는 버튼일 수도 있다). 추가 임계값은 제시된 스크롤 불능 UI 요소를 변경하도록 설정될 수도 있다. 예를 들어, 사용자가 두 번째 스크린을 하향으로 스크롤한 이후에, 옵션을 디스플레이하도록 동작할 수 있는 버튼이 좌측(left-hand side)에 디스플레이될 수도 있다. 사용자가 두 번째 스크린을 하향으로 스크롤한 이후에 버튼은 제거되고 옵션 그 자체가 제시될 수 있다. 사용자가 세 번째 스크린을 하향으로 스크롤한 이후에, 옵션이 스크린의 좌측에서 스크린의 중심으로 이동될 수도 있다.
도 1은 일 예시적인 실시예가 활용될 수 있는 클라이언트-서버 시스템(100)을 도시하는 네트워크 도시도이다. 네트워크 기반 마켓플레이스(market place) 또는 발행(publication) 시스템의 예시적인 형태인 네트워크형 시스템(102)은 서버측 기능을 네트워크(104)(예를 들면, 인터넷 또는 광역망(WAN))를 통해서 하나 이상의 클라이언트에게 제공한다. 도 1은 예를 들어 각각의 클라이언트 머신(110, 112) 상에서 실행하는 웹 클라이언트(106)(예컨대 브라우저)와 프로그램성 클라이언트(programmatic client)(108)를 예시한다.
애플리케이션 프로그램 인터페이스(API;Application Program Interface) 서버(114)와 웹 서버(116)는 하나 이상의 애플리케이션 서버(118)에 접속되어 각기 프로그램성 인터페이스 및 웹 인터페이스를 제공한다. 애플리케이션 서버(118)는 하나 이상의 마켓플레이스 애플리케이션(120), 검색 애플리케이션(121) 및 결제 애플리케이션(122)을 관리한다. 애플리케이션 서버(118)는 그 다음에 하나 이상의 데이터베이스(126)에 대한 액세스를 도와주는 하나 이상의 데이터베이스 서버(124)에 접속되는 것으로 도시된다.
마켓플레이스 애플리케이션(120)은 네트워크형 시스템(102)에 액세스하는 사용자에게 다수의 마켓플레이스 기능과 서비스를 제공한다. 검색 애플리케이션(121)은 네트워크형 시스템(102)에 액세스하는 사용자에게 다수의 검색 기능과 서비스를 제공한다. 검색 애플리케이션(121)은 사용자로 하여금 질의를 제출하고 그 질의에 응답한 결과를 수신하도록 한다. 검색 애플리케이션(121)은 마켓플레이스 애플리케이션(120)에 링크되거나 또는 그 일부일 수 있다. 따라서, 마켓플레이스 애플리케이션(120)을 통해 판매를 위한 아이템을 찾기 위해서 검색이 검색 애플리케이션(121)에 의해 실행될 수 있을 것이다.
결제 애플리케이션(122)도 비슷하게 다수의 결제 서비스와 기능을 사용자에게 제공한다. 결제 애플리케이션(122)은 사용자로 하여금 계정에 가치(예를 들면, 미국 달러 같은 상용 통화 또는 포인트 같은 개인 사유적 통화)를 누적하게 한 다음, 나중에 마켓플레이스 애플리케이션(120)을 통해 입수 가능한 제품(예컨대, 상품 또는 서비스)의 누적된 가치를 현금화하게 한다. 마켓플레이스, 검색 및 결제 애플리케이션(120, 121, 122)이 각자 네트워크형 시스템(102)의 일부를 형성하도록 도 1에 도시되었지만, 선택적 실시예에서는 검색 애플리케이션(121)이 네트워크형 시스템(102)으로부터 독립적인 별개의 검색 서비스 부분을 형성할 수도 있음을 인지할 것이다. 마찬가지로, 결제 애플리케이션(122)도 네트워크형 시스템(102)으로부터 독립적인 별개의 결제 서비스 부분을 형성할 수 있다.
더 나아가, 도 1에 도시된 시스템(100)이 클라이언트-서버 아키텍처를 채용하고 있지만, 본 발명은 당연히 이러한 아키텍처에 제한되지 않으며, 예를 들면 분산형이나 또는 P2P 아키텍처 시스템에서도 애플리케이션을 똑같이 잘 발견할 수 있다. 다양한 마켓플레이스, 검색 및 결제 애플리케이션(120, 121, 122)이 독립형 소프트웨어 프로그램으로 구현될 수 있으며, 이것이 네트워크 능력을 꼭 가져야 할 필요는 없다.
웹 클라이언트(106)는 웹 서버(116)에 의해 지원되는 웹 인터페이스를 통해 다양한 마켓플레이스, 검색 및 결제 애플리케이션(120, 121, 122)에 액세스한다. 이와 비슷하게, 프로그램성 클라이언트(108)는 API 서버(114)에 의해 제공되는 프로그램성 인터페이스를 통해 마켓플레이스, 검색 및 결제 애플리케이션(120, 121, 122)이 제공하는 다양한 서비스 및 기능에 액세스한다. 프로그램성 클라이언트(108)는 예를 들어 판매자 애플리케이션(예를 들면, 캘리포니아주 산 호세 소재의 eBay사에 의해 개발된 TurboLister 애플리케이션)일 수 있으며, 이것은 판매자가 오프-라인 방식으로 네트워크형 시스템(102)에서 리스트(listings)를 작성 및 관리하게 하고 프로그램성 클라이언트(108)와 네트워크형 시스템(102) 사이에 배치-모드(batch-mode) 통신을 수행할 수 있게 한다.
클라이언트 머신(110, 112)은 사용자에게 정보를 제시할 수 있다. 예를 들어, 클라이언트 머신(110)은 웹 페이지를 제시하는 웹 브라우저를 실행중일 것이다. 사용자는 클라이언트 머신(110)에게 검색 질의를 지시할 수 있다. 예를 들어, 사용자는 검색 질의를 텍스트 필드에 입력하고, 관련 아이템이나 그와 유사한 것을 검색하기 위해 아이템을 선택하고, 관련 아이템이나 그와 유사한 것을 검색하기 위해 이미지를 업로드하거나 이들의 임의의 적절한 조합을 수행할 것이다. 만약 서로 대체가능한 것이라면 하나의 아이템은 다른 것과 유사하다. 예를 들어, 텔레비전은 다른 텔레비전과 유사할 수 있다. 만약 아이템들이 함께 작용하거나 자주 함께 구매된다면, 하나의 아이템은 또 다른 아이템과 관련된다. 예를 들어, 땅콩버터는 젤리와 관련되고 또는 범용 리모콘은 텔레비전과 관련된다.
클라이언트 머신(110 또는 112)은 검색 질의를 검색 애플리케이션(121)을 실행중인 애플리케이션 서버(118)에게 제출할 것이다. 애플리케이션 서버(118)는 아이템 데이터베이스(예컨대 데이터베이스(126))에 검색 질의를 제출할 수 있다. 애플리케이션 서버(118)는 검색 질의의 결과를 클라이언트 머신(110 또는 112)에게 되돌려 보낼 것이다. 일부 예시적인 실시예에서, 검색 질의의 결과의 서브세트가 클라이언트 머신(110 또는 112)으로 전송된다. 서브세트 내의 아이템의 개수는 클라이언트 머신(110 또는 112)의 디스플레이에 맞는 아이템의 개수, 클라이언트 머신(110 또는 112)의 이용 가능한 메모리, 검색 질의 제출 이후 평균의 사용자가 살펴보는 아이템의 개수, 다른 검색 질의 제출 이후 이 사용자가 살펴보는 아이템의 개수 또는 위에 열거된 것들의 임의의 적절한 조합에 기반을 둘 것이다. 클라이언트 머신(110 또는 112)은 결과의 추가 페이지를 선택하도록 동작할 수 있는 페이지네이션 컨트롤과 함께 결과의 첫 번째 페이지를 제시할 수 있다. 결과의 하나 이상의 추가 페이지는 클라이언트 머신(110 또는 112)에 의해 애플리케이션 서버(118)로부터 프리로드(preload)된다. 프리로드된 결과의 하나 이상의 추가 페이지는 클라이언트 머신(110 또는 112) 상의 이용 가능한 메모리, 검색 질의 제출 이후 평균의 사용자가 살펴보는 아이템의 개수, 다른 검색 질의 제출 이후 이 사용자가 살펴보는 아이템의 개수 또는 위에 열거된 것들의 임의의 적절한 조합에 기반을 둘 것이다. 검색 질의 제출 이후 평균적 사용자가 살펴보는 아이템의 개수는 검색 애플리케이션(121)을 실행중인 애플리케이션 서버(118)에 의해 사용자에 의해 실행된 이전의 검색과 후속하는 사용자 행동을 분석함으로써 결정될 수 있다. 평균적 사용자가 살펴보는 아이템의 개수의 계산은 도 2와 관련하여 아래에 더 상세하게 설명된다.
도 1은 API 서버(114)에 의해 제공되는 프로그램성 인터페이스를 통해 네트워크형 시스템(102)에 프로그램적으로 액세스하는 서드 파티 서버 머신(130)을 실행하는 서드 파티 애플리케이션(third party application)(128)도 예시한다. 예를 들어, 서드 파티 애플리케이션(128)은 네트워크형 시스템(102)으로부터 검색된 정보를 활용하여 서드 파티가 주최하는 웹사이트에 대해 하나 이상의 특징 또는 기능을 지원할 수도 있다. 서드 파티 웹사이트는 예를 들면 네트워크형 시스템(102)의 관련 애플리케이션에 의해 지원되는 하나 이상의 판촉 기능, 상거래 기능, 검색 기능 또는 결제 기능을 제공할 수 있다.
도 2는 일부 예시적인 실시예에 따라, 검색 애플리케이션(121)을 실행중인 애플리케이션 서버(118)의 구성요소를 예시하는 블록도(200)이다. 애플리케이션 서버(118)는 통신 모듈(210), 페이지네이션 모듈(220), 정제 모듈(230), 이력 모듈(history module)(240) 및 질의 모듈(250)을 포함하는 것으로 도시되며, 이 구성요소들은 모두 서로 통신하도록 구성되어 있다(예를 들면, 버스, 공유 메모리, 스위치 또는 API를 통해). 본원에 설명된 모듈 중 임의의 하나 이상은 하드웨어(예컨대, 머신의 프로세서)나 또는 하드웨어와 소프트웨어의 조합을 이용해 구현될 수 있다. 예를 들어, 본원에 설명된 임의의 모듈은 해당 모듈과 관련해 본원에 설명된 동작을 수행하는 프로세서를 구성할 수 있다. 또한, 이런 모듈 중 임의의 둘 이상은 단일 모듈로 조합될 수 있고, 단일 모듈과 관련해 본원에 설명된 기능들은 다중 모듈로 분할될 수도 있다. 더 나아가, 다양한 예시적인 실시예에 따르면, 단일 머신, 데이터베이스 또는 장치 내에 구현되는 본원에 설명된 모듈은 다중 머신, 데이터베이스 또는 장치 사이에 분산될 수도 있다.
통신 모듈(120)은 클라이언트 머신(110 또는 112) 및 데이터베이스(126)와의 통신을 컨트롤할 수 있다. 통신 모듈(210)은 애플리케이션 서버(118) 또는 데이터베이스(126)에 저장을 위한 데이터를 전송할 수 있다.
사용자 장치(예를 들면, 클라이언트 머신(110) 또는 클라이언트 머신(112))로부터 검색 질의를 수신하는 즉시, 유사한 검색 질의가 과거에 제출되었을 때 사용자의 과거 행위를 식별하기 위해 통신 모듈(210)은 검색 질의를 이력 모듈(240)로 전송할 수 있다. 예를 들어, 아이템이 상호작용되기 전에 살펴본 아이템의 평균 개수는 검색 스트링에 기반하여 변할 수 있을 것이다. 예시를 위해, 사용자는 아이폰(iPhone) 5를 사려고 찾고 있고 "아이폰 5"를 검색할 수 있다. 질의에 의해 만들어진 결과는 사용자가 찾는 바로 그것일 수 있고, 사용자는 첫 번째 결과 페이지에서 결과와 상호작용하도록 선택할 수 있다. 이런 행위가 많은 사용자에 대해 종합될 때, "아이폰 5"를 검색한 이후 아이템과 상호작용하기 전에 살펴보게 되는 아이템의 평균 개수는 적을 것이다. 이와 대조적으로, 사용자는 신발을 사려고 찾고 있지만 정확히 어떤 스타일을 원하는지 또는 단순히 훑어보길 원하는지 알 수 없어서 그냥 "신발"로 검색할 수도 있다. 사용자는 관심이 있는 신발을 찾기 전에 몇 페이지의 결과를 훑어볼 수 있을 것이다. 이 행위가 많은 사용자에 대해 종합될 때, "신발"을 검색한 이후 아이템과 상호작용하기 전에 살펴보게 되는 아이템의 평균 개수는 매우 많을 것이다.
비록 이러한 상세한 설명이 아이템이 상호작용되는 때를 결정하는 것을 설명하고 있지만, 당업자라면 특정 형태의 상호작용이 이용될 수도 있음을 인지할 것이다. 예를 들어, 아이템과의 상호작용은 아이템을 일람하기(viewing), 아이템에 응찰하기(bidding), 아이템을 구매하기(buying), 아이템을 구독하기(subscribing) 및 소셜 네트워크상에서 아이템을 공유하기(sharing)를 포함할 수도 있다. 일부 예시적인 실시예에서는 일부 상호작용만이 고려된다. 예를 들어, 아이템을 구매하기만이 아이템과 상호작용인 것으로 고려될 수도 있다. 추가로, 상이한 유형의 상호작용이 단일 실시예에서 고려될 수도 있다. 예시를 위해서, 예시적인 실시예는 현재 사용자가 행하는 어떠한 형태의 상호작용도 상호작용인 것으로 고려할 수 있지만 다른 사용자는 구매만을 상호작용인 것으로 고려할 수도 있다. 그러므로 아래 설명이 상호작용을 자주 언급하더라도 상호작용의 유형의 다양한 가능성 있는 조합이 본 발명의 범주 내에 있는 것으로 인식되어야 한다.
다른 예시적인 실시예에서, 상호작용은 관련성의 카테고리와, 디스플레이될 페이지 또는 결과의 수를 근거로 하는 활용되는 카테고리의 그룹으로 나뉜다. 카테고리의 예로서, 쇼핑 세션의 종료를 나타내는 상호작용을 들 수 있다. 이러한 카테고리에 포함될 수 있는 상호작용은 예를 들면 아이템 구매, 상이한 아이템 카테고리에서 신규 검색 수행, 브라우징 세션의 종료, 완전히 상이한 웹사이트로의 네비게이팅 등을 포함할 수 있다.
페이지네이션 모듈(220)은 아이템이 상호작용되기 전에 살펴보는 결과의 평균 수를 결과 페이지의 평균 수로 변환할 수 있다. 결과 페이지의 수를 결정하는데 이용되는 페이지당 아이템의 수는 예컨대 모든 클라이언트 머신과 관련해 추정된 평균 개수처럼 사전 결정된 값일 수도 있고 또는 클라이언트 머신(110 또는 112)으로부터 애플리케이션 서버(118)로 전송된 정보에 기반하여 결정될 수도 있다. 예를 들어, 클라이언트 머신(110 또는 112)은 디스플레이 장치의 픽셀 높이 또는 한 번에 디스플레이될 수 있는 아이템의 수를 전송할 수 있을 것이다. 페이지네이션 컨트롤에서 페이지의 수 또는 페이지당 결과의 수를 결정하기 위해 추가 요인들이 페이지네이션 모듈(220)에 의해 이용될 수 있으며, 이것은 도 21 내지 도 23과 관련하여 다음에 설명된다.
정제 모듈(230)은 어떤 정제를 제시할 것인지, 정제 옵션을 어디에 제시할 것인지, 그리고 정제 옵션을 언제 제시할 것인지를 결정할 수 있다. 예를 들어, 일반 정제 옵션(generic refinement options), 콘텍스트 기반 정제 옵션 및 사용자 기반 정제 옵션이 제시될 수 있다. 콘텍스트 기반 정제 옵션은 원 질의(original query)의 콘텍스트에 기반하여 제시될 수 있다. 예를 들어, 검색 결과를 질의를 생성하는데 이용된 장치의 위치의 10마일 반경 내에서 이용 가능한 아이템으로 제한하는 옵션이 제시될 수도 있다. 다른 예로서, 결과를 질의를 생성하는데 이용된 장치의 운영체계를 실행하는 소프트웨어로 제한하기 위해 소프트웨어와 관련하여 검색을 정제하는 옵션이 제시될 수도 있다. 사용자 기반 정제 옵션은 질의를 만든 사용자에 대한 지식을 기반으로 제시된다. 예를 들어, 경매 기반 판매를 선호하는 것을 지시하는 사용자에 의한 이전의 검색에 기반하여, 현재 결과를 경매 기반 판매로 제한하는 정제가 제시될 수 있다. 일반 정제 옵션은 콘텍스트 특정 데이터와 사용자 특정 데이터가 아닌 요인들에 기반하여 제시된다. 정제 옵션은 결과와 함께 스크롤 가능 인터페이스에 제시된다. 선택적으로, 초기의 결과 제시는 정제 옵션을 포함하지 않을 수도 있다. 아이템이 상호작용되기 전에 살펴보는 결과의 평균 수 또는 아이템이 상호작용되기 전에 살펴보는 결과의 평균 페이지 수에 기반하여 임계값이 설정될 수 있다. 일단 사용자가 임계값을 넘어서 스크롤하게 되면, 스크롤 불능 정제 옵션이 제시된다. 추가 임계값이 설정될 수도 있는데, 이 추가 임계값 지점에서는 추가의 정제 옵션이 제시될 수도 있고, 이미 제시된 정제 옵션이 제거될 수도 있으며 또는 제시된 정제 옵션의 위치가 변경될 수도 있다.
스크롤 불능 정제 옵션을 활성화하는 결정은 동일 질의에 대한 다른 사용자의 데이터 스크롤링, 상이한 질의에 대한 현 사용자의 데이터 스크롤링, 클라이언트 머신(110)의 브라우저 유형, 클라이언트 머신(110 또는 112)의 장치 유형, 클라이언트 머신(110 또는 112)의 스크린 해상도, 결과 세트, 클라이언트 머신(110 또는 112)의 위치, 세션 콘텍스트 및 그 밖의 신호들에 기반할 수 있다. 따라서, 스크롤 불능 정제 옵션은 질의를 제출한 다른 사용자의 이전의 행위에 기반하여 특정 질의에 대해 비활성화될 수 있다. 마찬가지로, 스크롤 불능 정제 옵션은 이전의 질의를 제출한 이후 사용자의 이전의 행위에 기반하여 특정 사용자에 대해 비활성화될 수 있다.
질의 모듈(250)로부터의 결과는 페이지네이션 모듈(220)에 의해 결정되는 결과의 수로 제한될 수 있다. 통신 모듈(210)은 사용자를 위한 디스플레이를 위해 결과의 모두 또는 서브세트를 클라이언트 장치로 전송할 수 있다. 예를 들어, 통신 모듈(210)은 두 페이지 값어치의 결과를 클라이언트 장치로 전송할 수 있는데, 이때 나머지 결과는 요청시 이용 가능하다. 일부 예시적인 실시예에서, 결과는 HTML(HyperText Markup Language) 포맷으로 결과를 전송하는 Ajax 커맨드를 통해 클라이언트 머신(110 또는 112)으로 전송된다. 이 결과는 표준 페이지네이션 모드 또는 무결절성 페이지네이션 모드에서 전송될 것이다. 표준 페이지네이션 모드는 하나의 페이지의 결과를 한 번에 보여주므로, 새로운 결과 페이지가 보일 때 이전 결과 페이지는 더 이상 보이지 않는다. 이와 대조적으로, 무결절성 페이지네이션 모드는 사용자가 하나의 페이지에서 다른 페이지로 "무결절성으로" 스크롤하므로 하나의 페이지에서 결과를 제공하고 다음 페이지가 동시에 스크린에 보인다. 이것은 "무한 스크롤링(infinite scrolling)"으로 알려진 것으로, 사용자가 아이템의 추가 페이지를 명시적으로 요청해야 하는 필요성을 제거해준다.
애플리케이션 서버(118)는 무결절성 페이지네이션을 인에이블(enable) 상태로 할지 그 여부를 결정할 수 있다. 애플리케이션 서버(118)는 통신 모듈(210)을 통해서 클라이언트 머신(110 또는 112)의 역량(capability)을 수신한다. 이 역량은 결과 아이템의 디스플레이 또는 저장에 관한 것이다. 예를 들어, 텍스트의 픽셀 또는 주사선에서 디스플레이 장치의 높이, 폭 또는 면적이 제공될 수 있다. 이 값들은 하나의 페이지에 디스플레이될 수 있는 아이템의 개수를 결정하는데 유용할 수 있다. 이 값들은 또한, 스크롤 불능 정제 옵션의 제시 여부와, 스크롤 불능 정제 옵션을 제시하기 전에 스크롤링의 임계값이 얼마여야 하는지, 그리고 어떤 스크롤 불능 정제 옵션이 제시되어야 하는지를 결정하는데 유용할 수 있다.
클라이언트 머신에서 이용 가능한 메모리의 양이 애플리케이션 서버(118)에 제공될 수 있다. 메모리 값은 프리페치(prefetch)될 수 있는 아이템의 수를 결정하는데 유용할 수 있다. 아이템을 프리페치하는 것은 사용자가 디스플레이될 아이템을 요구하기 전에 아이템을 검색하는 것이다. 프리페치될 아이템의 수는 페이지네이션 모드에 기반할 것이다. 정규 페이지네이션 모드에서, 신규 결과의 전체 페이지는 한 번에 디스플레이되므로, 따라서 결과를 하나의 페이지 또는 다중 페이지에 한 번에 프리페치하는 것이 바람직할 것이다. 무결절성 페이지네이션 모드에서는, 신규 결과의 부분 페이지가 디스플레이되므로, 부분 페이지에 결과를 프리페치하는 것이 바람직할 것이다. 프리페치할 결과의 수 또는 결과가 프리페치되는 빈도, 또는 이 둘 다를 결정하는데 다른 기준이 이용될 수도 있다. 예를 들면, 특정 사용자가 결과를 끝까지 스크롤하는 속도(rate)가 이용될 수도 있다. 결과를 빠르게 쭉 스크롤하는 경향의 사용자인 경우, 사용자가 결과가 로드되길 기다릴 가능성을 줄이기 위해서 더 많은 결과를 한 번에 프리페치하는 것(또는 더 자주 결과를 프리페치하는 것)이 유리할 수 있다. 이와 유사하게, 이전 사용자가 유사 질의의 결과를 끝까지 스크롤한 속도가 이용될 수도 있다. 빠른 스크롤링을 자주 유도하는 질의인 경우, 사용자가 결과가 로드되길 기다릴 가능성을 줄이기 위해서 더 많은 결과를 한 번에 프리페치하는 것(또는 더 자주 결과를 프리페치하는 것)이 유리할 수도 있다. 일부 예시적인 실시예에서, 결과는 한 번에 하나의 페이지에 프리페치되지만, 더 빠르게 스크롤하는 사용자의 경우 또는 더 빠른 스크롤링을 야기하는 질의의 경우, 한 번에 두 페이지 이상이 프리페치된다.
도 3은 일부 예시적인 실시예에 따라서 무결절성 페이지네이션을 수행하는 클라이언트 머신(110 또는 112)의 구성요소를 예시하는 블록도이다. 클라이언트 머신(110 또는 112)은 통신 모듈(310), 페이지네이션 모듈(320), 정제 모듈(330), 역량 모듈(capability module)(340) 및 UI 모듈(350)을 포함하는 것으로 도시되며, 이 구성요소들은 모두 서로 통신하도록 구성되어 있다(예를 들면, 버스, 공유 메모리, 스위치 또는 API를 통해). 본원에 설명된 모듈 중 임의의 하나 이상은 하드웨어(예컨대, 머신의 프로세서)나 또는 하드웨어와 소프트웨어의 조합을 이용해 구현될 수 있다. 예를 들어, 본원에 설명된 임의의 모듈은 해당 모듈과 관련해 본원에 설명된 동작을 수행하는 프로세서를 구성할 수 있다. 또한, 이런 모듈 중 임의의 둘 이상은 단일 모듈로 조합될 수 있고, 단일 모듈과 관련해 본원에 설명된 기능들은 다중 모듈로 분할될 수도 있다. 더 나아가, 다양한 예시적인 실시예에 따르면, 단일 머신, 데이터베이스 또는 장치 내에 구현되는 본원에 설명된 모듈은 다중 머신, 데이터베이스 또는 장치 사이에 분산될 수도 있다.
통신 모듈(310)은 애플리케이션 서버(118)로부터 결과를 수신할 것이다. 통신 모듈(310)은 페이지네이션 컨트롤에서 디스플레이될 페이지의 수도 수신할 수 있다. 일부 예시적인 실시예에서, 통신 모듈(310)은 페이지네이션 컨트롤에서 디스플레이될 아이템의 수를 수신하고, 클라이언트 머신(110 또는 112) 상에서 아이템을 페이지로 변환하는 것을 수행한다.
통신 모듈(310)은 스크롤 불능 정제 옵션을 디스플레이하기 전에 스크롤 가능 인터페이스에서 디스플레이할 페이지 또는 아이템의 수를 수신한다. 일부 예시적인 실시예에서, 통신 모듈(310)은 스크롤 불능 정제 옵션을 디스플레이하기 전에 디스플레이할 아이템의 수를 수신하고, 클라이언트 머신(110 또는 112) 상에서 아이템을 페이지로 변환하는 것을 수행한다.
통신 모듈(310)은 결과의 디스플레이를 시작하기 전에 페이지네이션 모듈에 도시된 모든 페이지에 대한 결과를 수신하였거나 또는 사용자가 결과를 끝까지 스크롤할 때 신규 결과를 수신할 수 있거나 또는 이 둘 모두를 할 수 있을 것이다. 예를 들어, 두 페이지의 결과가 초기에 애플리케이션 서버(118)로부터 전송될 수 있다. 일단 사용자가 두 번째 결과 페이지를 보기 시작하면, 통신 모듈(310)은 추가 결과에 대한 요청을 애플리케이션 서버(118)로 전송할 것이고, 추가 결과를 수신할 것이다. 예를 들어, 통신 모듈(310)은 결과의 다음 페이지를 수신할 수 있다. 결과를 프리페칭하는 것은 사용자가 추가 결과를 보려고 결정하고 그 결과가 제시될 때까지 기다려야 하는 시간을 줄여줌으로써 사용자에게 더 나은 경험을 제공할 수 있다.
통신 모듈(310)은 결과의 디스플레이를 시작하기 전에 모든 임계값과 그에 대응하는 스크롤 불능 정제 옵션을 수신할 수 있거나, 또는 사용자가 결과를 끝까지 스크롤함에 따라 신규의 임계값과 그에 대응하는 스크롤 불능 정제 옵션을 수신할 수 있거나, 또는 이 둘 다를 수신할 수도 있다. 예를 들어, 하나의 임계값과 그에 대응하는 스크롤 불능 정제 옵션이 초기에 애플리케이션 서버(118)로부터 전송될 수 있다. 일단 사용자가 첫 번째 임계값을 지나서 스크롤하면, 통신 모듈(310)은 추가 임계값과 그에 대응하는 정제 옵션에 대한 요청을 애플리케이션 서버(118)에게 전송하고, 추가 임계값과 그에 대응하는 정제 옵션을 수신한다. 예를 들어, 통신 모듈(310)은 다음 임계값과 그에 대응하는 정제 옵션을 수신할 수도 있다.
페이지네이션 모듈(320)이 사용자가 현재 페이지네이션 범위를 넘어서(예를 들어, 애플리케이션 서버(118)에 의해 디스플레이용으로 지시된 아이템 중 마지막 아이템을 넘어서) 스크롤하고자 시도함을 감지할 때, 페이지네이션 모듈(320)은 사용자가 더 많은 결과를 살펴보는 것을 차단하거나 또는 사용자가 추가의 결과를 계속 찾아볼 수 있게 허용할 수 있다. 사용자가 추가 결과를 살펴보는 것이 차단되는지 그 여부와 무관하게, 가장 관련 있는 결과가 이미 제시되었음을 사용자에게 제안하는 통지가 제시될 수 있다. 이 통지는 사용자가 더 많은 결과를 보길 원한다는 확인(confirmation)을 요청할 수도 있다. 일부 예시적인 실시예에서, 페이지네이션 모듈(320)은 UI 모듈(350)로 하여금 제시된 페이지 수를 같은 크기의 수의 다음 세트로 대체하게 한다. 예를 들어, 만약에 현재 페이지 리스트가 1, 2, 3이고 사용자는 추가 결과를 보길 원한다면, 페이지 리스트는 4, 5, 6으로 갱신될 것이다. 선택적인 실시예에서, 페이지네이션 모듈(320)은 UI 모듈(350)로 하여금 현재 페이지 리스트를 동일한 크기로 유지하면서 현재 페이지 리스트를 증가 또는 감소하게 한다. 예를 들어, 만약에 현재 페이지 리스트가 1, 2, 3이고 사용자가 추가 결과를 보길 원한다면, 페이지 리스트는 2, 3, 4로 갱신될 것이다. 또 다른 실시예에서, 페이지네이션 모듈(320)은 UI 모듈(350)로 하여금 현재 요소를 제자리에 유지하면서 페이지 리스트에 신규 페이지를 추가하게 한다. 예를 들어, 만약에 현재 페이지 리스트가 1, 2, 3이고 사용자가 추가 결과를 보길 원한다면, 페이지 리스트는 1, 2, 3, 4로 갱신될 것이다. 신규 페이지에 대한 결과는 전술한 것처럼 프리페치될 수 있거나 또는 사용자가 현재 페이지네이션 범위의 일부가 아닌 페이지를 요청하는 것에 응답하여 프리페치될 수 있다.
정제 모듈(330)이 사용자가 최종 임계값을 넘어서(예를 들어, 애플리케이션 서버(118)에 의해 지시된 임계값 중 마지막 임계값을 넘어서) 스크롤하고자 시도함을 감지할 때, 정제 모듈(330)은 사용자에게 정제 옵션의 선택(election)이 도움이 될 수 있음을 제안하는 통지를 제시한다. 이 통지는 사용자가 정제 옵션을 적용하지 않고 더 많은 결과를 보길 원한다는 확인을 요청할 수도 있다.
역량 모듈(340)은 결과 세트를 보는데 이용되는 웹 브라우저를 식별할 수 있다. 애플리케이션 서버(118)는 특정 옵션을 인에이블 상태로 하거나 특정 웹 브라우저가 특정 옵션을 액세스하는 것을 차단하거나 또는 이 둘 다를 할 수 있게 하기 위해 특정 웹 브라우저를 요청할 수도 있다. 예를 들어, 역량 모듈(340)은 무결절성 페이지네이션을 지원하지 않는 브라우저를 식별할 수 있다. 이 경우, 서버는 데이터가 디폴트 페이지네이션 포맷으로 제시되도록 검색 질의에 응답할 수 있다. 역량 모듈(340)은 예컨대 리스트 방식 일람(list view) 또는 갤러리 방식 일람(gallery view)처럼 결과의 일람 유형(view type)을 식별할 수도 있다. 리스트 방식 일람에서는 아이템의 리스트를 보여준다. 갤러리 방식 일람에서는 아이템의 2차원 어레이를 보여준다. 애플리케이션 서버(118)는 리스트 방식 일람에 대해, 또는 갤러리 방식 일람에 대해 또는 양자 모두에 대해 무결절성 페이지네이션을 지원할 수도 있고, 또는 둘 중 어느 것도 지원하지 않을 수도 있다. 역량 모듈(340)은 페이지당 아이템의 수를 식별할 수 있다. 애플리케이션 서버(118)는 페이지당 아이템의 수가 임계값(예컨대, 50) 미만일 때, 임계값(예컨대, 5)을 초과할 때, 또는 특정 범위(예컨대, 5-50) 내에 있을 때 무결절성 페이지네이션을 지원할 수도 있다. 역량 모듈(340)은 아이템이 디스플레이될 분류 유형(sort type)을 식별할 수 있을 것이다. 예를 들어, 아이템은 관련성, 날짜, 가격, 사용자 근접도, 또는 이들의 임의의 적절한 조합에 의해 분류될 수 있을 것이다. 애플리케이션 서버(118)는 일부 분류 유형에 대해서 무결절성 페이지네이션을 지원할 수 있지만 다른 유형에 데해서는 지원하지 않는다. 일부 예시적인 실시예에서, 역량 모듈(340)은 하나의 페이지에 디스플레이될 수 있는 아이템의 수를 결정하고, 애플리케이션 모듈(118)로 전송을 위해 통신 모듈(310)로 데이터를 제공한다.
역량 모듈(340)은 스크롤 불능 요소를 지원하지 않는 브라우저를 식별할 수도 있다. 이 경우, 서버는 데이터가 스크롤 불능 정제 옵션을 이용하지 않으면서 제시되도록 검색 질의에 응답할 수 있다. 애플리케이션 모듈(118)은 리스트 방식 일람, 갤러리 방식 일람 또는 둘 모두에 대해 스크롤 불능 정제 옵션을 지원할 수도 있으며, 또는 둘 모두에 대해 지원하지 않을 수도 있다. 애플리케이션 모듈(118)은 페이지당 아이템이 임계값(예컨대, 50) 미만일 때, 임계값(예컨대, 5)를 초과할 때, 또는 특정 범위(예컨대, 5-50) 내에 있을 때 스크롤 불능 정제 옵션의 제시를 지원할 수도 있다. 애플리케이션 서버(118)는 일부 분류 유형에 대해서는 스크롤 불능 정제 옵션을 지원하지만 다른 유형에 대해서는 지원하지 않을 수도 있다.
UI 모듈(350)은 검색 질의를 제출하도록 동작할 수 있는 UI를 사용자에게 제시할 수 있다. 통신 모듈(310)은 검색 애플리케이션(121)을 실행중인 애플리케이션 서버(118)에게 검색 질의를 제출한다. 역량 모듈(340)은 통신 모듈(310)에 의한 애플리케이션 서버(118)로의 전송을 위해 클라이언트 머신(110 또는 112)의 역량을 식별할 것이다. 역량은 결과 아이템의 디스플레이 또는 저장에 관한 것이다. 예를 들어, 텍스트의 픽셀 또는 주사선에서 디스플레이 장치의 높이, 폭 또는 면적이 제공될 수 있다. 다른 예로서, 이용 가능한 메모리 용량, 결과 세트를 일람하는데 이용되는 웹 브라우저, 결과의 일람 유형(예를 들면, 리스트 방식 일람 또는 갤러리 방식 일람), 페이지당 아이템의 수 및 아이템이 디스플레이될 분류 유형의 임의의 조합이 제공될 수도 있다.
UI 모듈(350)은 페이지네이션 모듈(320)에 의해 생성된 페이지네이션 컨트롤과 함께 결과의 첫 페이지를 디스플레이할 수 있다. 사용자는 그 결과를 끝까지 스크롤할 수 있다. 페이지네이션 모듈(320)은 스크린이 새로운 페이지를 보여주기 시작할 때, 또는 스크린이 예전 페이지가 아닌 신규 페이지를 좀 더 많이 보여주고 있을 때 또는 스크린이 더 이상 예전 페이지를 보여주지 않을 때를 감지할 수 있다. 이런 상황 중 임의의 상황에 기반하여 페이지네이션 모듈(320)은 예전 페이지가 더 이상 현재 페이지가 아니며 신규 페이지가 이제는 현재 페이지임을 결정할 수 있다. UI 모듈(350)은 신규의 현재 페이지를 나타내도록 페이지네이션 컨트롤을 갱신할 것이다.
UI 모듈(350)은 페이지네이션 모듈(320)에 의해 생성된 페이지네이션 컨트롤과 함께 결과의 첫 페이지를 디스플레이할 수 있다. 사용자는 그 결과를 끝까지 스크롤할 수 있다. 정제 모듈(330)은 사용자가 임계값을 넘어서 스크롤할 때를 감지할 수 있다. 이런 상황에 기반하여 정제 모듈(330)은 스크롤 불능 정제 옵션을 제시하도록 결정될 수 있다. UI 모듈(350)은 스크롤 불능 정제 옵션을 디스플레이하도록 UI를 갱신할 것이다.
일부 예시적인 실시예에서, 고유 식별자(unique identifier: UID)가 각 페이지에 이용된다. 디스플레이되는 각 아이템의 높이가 공지된다(예를 들면, 높이는 112픽셀일 수 있다). 각 페이지의 높이는 각각의 아이템의 높이와 각각의 페이지의 아이템의 수로부터 계산될 수 있다. 예를 들어, 만약 48개 아이템이 각 페이지에 존재하고, 각 아이템의 높이는 112 픽셀이라면, 페이지의 높이는 5376 픽셀일 것이다. 사용자가 다음 페이지로 이동을 원할 때(이후에 설명되는 도 4에서 다음 페이지 화살표(440)를 누름으로써), 빈 HTML DIV가 페이지의 높이와 함께 생성될 수 있다. 신규 페이지를 위한 데이터를 요청하기 위해서 애플리케이션 서버(118)에 대해 Ajax 호출(call)이 이루어진다. 애플리케이션 서버(118)가 전송한 데이터는 HTML 세션 기억장치에 저장될 것이다. 다른 페이지를 위한 데이터는 세션 스토리지로부터 삭제될 것이다. 예를 들어, 현재 페이지, 이전 페이지 및 다음 페이지를 위한 데이터가 저장될 수도 있으며, 임의의 다른 페이지를 위한 데이터는 세션 스토리지로부터 삭제될 수 있다. 일부 예시적인 실시예에서, 사용자가 데이터가 이미 로드되지 않은 페이지를 향해 스크롤할 경우, 이 페이지를 위한 데이터는 사용자가 신규 페이지로부터 임계값 간격(threshold distance) 내에 있을 때 로드된다. 예를 들어, 페이지가 스크린보다 더 클 수도 있고, 그 결과 사용자는 처음에 첫 페이지의 일부만을 본다. 사용자가 간격을 하향으로 스크롤할 수 있고, 사용자는 여전히 첫 페이지의 중간쯤에 있을 수 있다. 이후 사용자는 첫 페이지의 끝 부근으로 스크롤할 수 있고, 두 번째 페이지의 로딩을 트리거할 수 있다. 임계값 간격은 픽셀(예컨대, 1000개 픽셀), 아이템(예컨대, 10개 아이템) 또는 이들의 임의의 적절한 조합으로 측정될 수 있다.
도 4는 일부 예시적인 실시예에 따른 무결절성 페이지네이션을 위한 UI의 스크린 도시도(400)를 보여준다. 텍스트 기입 필드(410)는 현재 검색 질의를 보여주며, 사용자로 하여금 신규 검색 질의를 입력하게 한다. 아이템(420)은 검색 필드에 응답하는 아이템이다. 페이지 지시자(page indicator)(430)는 현재 페이지를 지시하고, 현재 페이지 범위 내의 다른 페이지를 보여준다. 화살표(440)는 사용자로 하여금 한 번에 페이지 단위로 결과 세트를 순방향 또는 역방향으로 끝까지 이동하게 한다. 페이지네이션 툴은 페이지 지시자(430)와 화살표(440)를 포함한다. 스크롤 툴(450)은 사용자로 하여금 한 번에 로우(row) 단위로 결과 세트를 순방향 또는 역방향으로 끝까지 이동하게 한다. 스크린 도시도(400)는 페이지 지시자(430)에 의해 지시되는 것처럼 첫 페이지에 디스플레이되고 있는 첫 번째 16개 아이템(420)을 보여준다.
도 5는 일부 예시적인 실시예에 따른 무결절성 페이지네이션을 위한 UI의 스크린 도시도(500)를 보여준다. 텍스트 기입 필드(510)는 현재 검색 질의를 보여주며, 사용자로 하여금 신규 검색 질의를 입력하게 한다. 사용자가 스크린 도시도(400)에 관해 두 개 라인만큼 하향으로 스크롤한 이후에 아이템(520)(도면부호(9-24)로 표시됨)이 디스플레이된다. 페이지 지시자(530)는 이것이 여전히 1페이지인 것으로 고려됨을 나타낸다. 페이지 지시자(530), 화살표(540) 및 스크롤 툴(550)은 사실상 스크린 도시도(400)의 대응 요소와 관련하여 전술된 내용 그대로이다.
도 6은 일부 실시예에 따른 무결절성 페이지네이션을 위한 UI의 스크린 도시도(500)를 보여준다. 텍스트 기입 필드(610)는 현재 검색 질의를 보여주며, 사용자로 하여금 신규 검색 질의를 입력하게 한다. 사용자가 스크린 도시도(500)에 관해 추가의 로우를 하향으로 스크롤한 이후에 아이템(620)(도면부호(13-28)로 표시됨)이 디스플레이된다. 페이지 지시자(630)는 이제 현재 페이지가 2페이지임을 보여준다. 만약에 사용자가 1페이지로 되돌려 스크롤하도록 선정하면, 1페이지를 위한 아이템이 세션 스토리지로부터 검색될 수 있다. 사용자는 페이지 지시자(630)에 보여지는 페이지 번호를 선택할 수 있다. 이런 선택에 응답하여, 페이지네이션 툴은 아이템의 디스플레이가 선택된 페이지로 건너뛰게 한다. 빈 공간(empty space)이 건너뛴 페이지를 표현하도록 생성될 수 있다. 예를 들어, 만약에 사용자가 현재 2페이지를 일람중이고 6페이지를 선택한다면, 건너뛴 3, 4, 5페이지에 대응하여 빈 공간이 생성될 수 있고, 현재 위치는 6페이지의 최상부로 갱신될 수 있다. 일부 예시적인 실시예에서, 하나 이상의 페이지 3-6이 프리로드될 것이다. 이 실시예에서, 빈 공간은 프리로드된 페이지를 위해서만 생성될 수도 있다. 페이지의 픽셀 위치는 각 페이지의 높이와 페이지 수를 픽셀 단위로 곱합으로써 계산될 수 있다. 현재 페이지 및 방문된 페이지의 총 개수(total number)는 세션 스토리지에 저장될 수 있다. 사용자가 신규 페이지로 스크롤하거나 또는 다음 페이지 화살표를 누를 때, 현재 페이지 번호와 페이지의 총 개수는 증가할 것이다. 사용자가 이전 페이지로 스크롤하거나 이전 페이지 화살표를 누를 때, 현재 페이지 수는 감소될 것이다.
일부 예시적인 실시예에서, 텍스트 기입 필드(610)는 "스티키(sticky)"하거나 또는 스크롤 불능일 수 있으며, 사용자가 결과를 끝까지 스크롤하거나 페이지네이트할 때 그 위치를 스크린상에서 유지할 것이다. 마찬가지로, 페이지네이션 툴도 스티키하다. 페이지네이션 툴은 검색 결과의 첫 페이지로 복귀하도록 동작할 수 있는 요소(도시 안 됨)를 포함할 수 있다. 페이지 지시자(630), 화살표(640) 및 스크롤 툴(650)은 스크린 도시도(400)의 대응 요소와 관련하여 위에서 사실상 설명되었다.
도 7은 일부 실시예에 따른 무결절성 페이지네이션을 위한 UI의 스크린 도시도(700)를 보여준다. 텍스트 기입 필드(710)는 현재 검색 질의를 보여주며, 사용자로 하여금 신규 검색 질의를 입력하게 한다. 예를 들어 초기의 6개 분량 페이지의 마지막에 도달한 이후에 사용자가 더 많은 아이템을 보기로 선택한 이후에 아이템(720)(도면부호(97-112)로 표시됨)이 디스플레이된다. 페이지 지시자(730)는 현재 페이지가 7페이지임을 지시하고, 7-12의 페이지 범위를 제시한다. 페이지 지시자(730), 화살표(740) 및 스크롤 툴(750)은 스크린 도시도(400)의 대응 요소와 관련하여 위에서 사실상 설명되었다.
사용자는 디스플레이되는 아이템 중 하나의 아이템을 선택하여 이 아이템을 위하나의 페이지가 디스플레이되게 할 수 있다. 아이템을 위하나의 페이지를 일람한 후에, 결과 리스트로 되돌아가거나 브라우저로 하여금 결과 리스트로 되돌아가게 하기 위해서 사용자는 웹 브라우저상에서 백 버튼(back button)을 클릭할 수 있다. 디폴트에 의해 웹 브라우저는 페이지를 리로드(reload)하고, 결과 리스트의 최상부를 디스플레이할 수 있다. 사용자는 가장 최근에 일람하나의 페이지로 되돌아가는 것을 선호할 수 있다. 일부 예시적인 실시예에서, 가장 최근에 일람하나의 페이지는 저장되므로(예컨대, 웹 브라우저의 세션 스토리지에, 전용 애플리케이션의 데이터 구조에 등등), 사용자가 결과 리스트로 복귀한 이후 이 사용자는 결과의 최상부가 아닌 이전 위치로 복귀된다. 이전에 일람하나의 페이지의 디스플레이를 돕기 위해서, 세션 스토리지로부터 현재 페이지와 방문 페이지의 총 개수를 액세스함으로써 사용자가 가장 최근에 일람하나의 페이지의 픽셀 위치가 결정될 수도 있다. document.ready() 함수에 고정 높이를 갖는 빈 DIV를 생성함으로써 DOM(document object model)을 이용하여 빈 페이지가 생성될 수 있다. 현재 페이지와 이전 페이지에서 아이템을 위한 데이터는 세션 스토리지로부터 액세스될 것이다. 선택적으로, 디스플레이될 아이템을 위한 데이터는 애플리케이션 서버(118)로부터 검색될 수도 있다(예컨대 Ajax 호출을 통해). 애플리케이션 서버(118)로부터 데이터를 검색하는 판정은 세션 스토리지로부터의 데이터의 불가용성(unavailability)에 기반할 수 있다. 사용자는 웹 브라우저를 이용하여 결과 페이지를 북마크(boolmark)한다. 이 북마크의 추후 사용은 결과의 첫 페이지로 사용자를 복귀시킬 것이다.
사용자가 아이템을 일람하고 결과 리스트로 복귀한 이후, 사용자가 이미 일람한 결과 리스트의 아이템은 스크린에 지시될 수 있을 것이다. 예를 들어, 사용자가 이전에 스크롤하여 지나간 아이템은 특정 색깔의 배경이나 특정 색깔의 테두리나, 아이콘, 체크박스 또는 이들의 임의의 적절한 조합으로 지시될 수 있을 것이다. 사용자가 상세 일람을 위해 이미 선택한 아이템은 다른 색깔의 배경, 다른 색깔의 테두리, 다른 아이콘, 다른 위치의 체크박스 또는 이들의 임의의 적절한 조합으로 지시될 수 있다. 이러한 시각적 지시자는 사용자가 동일한 위치에서 계속 브라우징할 수 있게 도와주고, 일람중인 결과가 신규 결과인지 또는 이미 살펴본 결과인지를 인지하는 것을 도와주어 사용자가 보다 신속하게 관심 있는 아이템을 발견할 수 있게 거들어 줄 것이다.
도 8은 일부 실시예에 따른 무결절성 페이지네이션 동안 콘텍스트 정제를 위한 UI의 스크린 도시도(800)를 보여준다. 텍스트 기입 필드(810)는 현재 검색 질의를 보여주며, 사용자로 하여금 신규 검색 질의를 입력하게 한다. 스크롤 가능 정제 카테고리(예컨대, 스크롤 가능 정제 카테고리(860))와 스크롤 가능 정제 옵션(예컨대 스크롤 가능 정제 옵션(870))은 정제 옵션을 인에이블하도록 동작 가능하다. 스크린 도시도(800)는 페이지 지시자(830)에 의해 지시된 것처럼 첫 페이지에 디스플레이되고 있는 첫 번째 12개 아이템(820)을 보여준다. 페이지 지시자(830)는 현재 페이지를 나타내고 현재 페이지 범위 내의 다른 페이지를 보여준다. 화살표(840)는 사용자가 결과 세트를 순방향 또는 역방향으로 끝까지 이동하게 해준다(예컨대 한 번에 페이지 단위로). 페이지네이션 툴은 페이지 지시자(830)와 화살표(840)를 포함한다. 스크롤 툴(850)은 사용자가 결과 세트를 순방향 또는 역방향으로 끝까지 이동할 수 있게 해준다(한 번에 페이지 단위 또는 한 번에 로우 단위로). 일부 예시적인 실시예에서, 텍스트 기입 엔트리 필드(810)는 스크롤 불능일 수 있으며, 사용자가 결과를 끝까지 스크롤하거나 페이지네이트할 때 스크린상에서 그 위치를 유지한다. 마찬가지로, 페이지네이션 툴은 스크롤 불능일 수 있다. 페이지네이션 툴은 검색 결과의 첫 페이지로 복귀하도록 동작할 수 있는 요소(도시 안 됨)를 포함할 수 있다.
도 9는 일부 실시예에 따른 무결절성 페이지네이션 동안 콘텍스트 정제를 위한 UI의 스크린 도시도(900)를 보여준다. 스크린 도시도(900)는 스크린 도시도(800)의 사용자가 3개 라인을 하향 스크롤한 이후에 제시될 것이다. 텍스트 기입 필드(910)는 현재 검색 질의를 보여주며, 사용자로 하여금 신규 검색 질의를 입력하게 한다. 스크롤 가능 정제 카테고리(예컨대, 스크롤 가능 정제 카테고리(860))와 스크롤 가능 정제 옵션(예컨대 스크롤 가능 정제 옵션(870))은 스크린을 스크롤 오프할 수도 있다. 다른 스크롤 가능 정제 카테고리와 스크롤 가능 정제 옵션(예를 들면 스크롤 가능 정제 옵션(960))이 정제 옵션을 인에이블하도록 동작할 수도 있다. 스크린 도시도(900)는 페이지 지시자(930)에 의해 지시된 것처럼 첫 페이지에 디스플레이되고 있는 아이템(920)(도면부호(10-21)로 표시됨)을 보여준다. 페이지 지시자(930)는 현재 페이지를 지시하고, 현재 페이지 범위 내의 다른 페이지를 보여준다. 화살표(940)는 사용자가 한 번에 페이지 단위로 결과 세트를 끝까지 순방향 또는 역방향으로 이동할 수 있게 한다. 페이지네이션 툴은 페이지 지시자(930)와 화살표(940)를 포함한다. 스크롤 툴(950)은 사용자가 결과 세트를 끝까지 순방향 또는 역방향으로 이동할 수 있게 한다(예를 들면, 한 번에 로우 단위로 또는 한 번에 페이지 단위로).
도 10은 일부 예시적인 실시예에 따른 무결절성 페이지네이션 동안 콘텍스트 정제를 위한 UI의 스크린 도시도(1000)이다. 스크린 도시도(1000)는 사용자가 스크린 도시도(900)에 대해 추가의 로우로 하향 스크롤한 이후에 디스플레이되는 아이템(1020)(도면부호(13-23)로 표시됨)을 보여준다. 텍스트 기입 필드(1010)는 현재 검색 질의를 보여주며, 사용자로 하여금 신규 검색 질의를 입력하게 한다. 스크롤 불능 정제 카테고리(예컨대 스크롤 불능 정제 카테고리(1060))은 사용자가 임계값을 넘어 스크롤링하는 것에 응답하여 UI 요소로서 추가될 수 있다. 페이지 지시자(1030)는 현재 페이지를 지시하고, 현재 페이지 범위 내의 다른 페이지를 보여준다. 화살표(1040)는 사용자가 한 번에 페이지 단위로 결과 세트를 끝까지 순방향 또는 역방향으로 이동할 수 있게 한다. 페이지네이션 툴은 페이지 지시자(1030)와 화살표(1040)를 포함한다. 스크롤 툴(1050)은 사용자가 결과 세트를 끝까지 순방향 또는 역방향으로 이동할 수 있게 한다(예를 들면, 한 번에 로우 단위로 또는 한 번에 페이지 단위로).
정제 옵션 대신에 정제 카테고리를 제시하는 결정은 이용 가능한 스크린 면적(available screen real estate)에 기반할 것이다. 예를 들어, 전체 정제 옵션의 세트는 스크린에 딱 맞지 않을 수도 있다. 스크린이 모든 정제 옵션을 담기에는 너무 좁다고 결정하면, 정제 옵션의 디스플레이를 유발하도록 동작 가능한 정제 카테고리가 제시될 수 있다.
정제 카테고리를 제시하는 결정은 과거 사용자 행위에 기반할 수도 있다. 예를 들어, 많은 정제 옵션이 제시된 사용자가 많은 선택지에 의해 당황하여 검색을 포기할 경우, 카테고리 개수를 줄여서 제시하는 것이 사용자를 덜 부담스럽게 할 것이다. 정제 옵션이 아닌 정제 카테고리가 제시되어 사용자를 위해 더 빠른 상호작용 속도를 보여줌으로써 과거 사용자 행위는 이것을 알려준다.
일부 예시적인 실시예에서는 정제 카테고리와 정제 옵션이 둘 다 제시된다. 예를 들어, 정제 카테고리는 정제 옵션을 위한 카테고리 헤더로서 제시될 수 있고, 실행불가능할 수도 있다. 또 다른 예로서, 이용되는 빈도가 높은 카테고리는 이용빈도가 낮은 카테고리가 오로지 카테고리로서만 제시되는 동안에 정제 옵션을 디스플레이하도록 확장될 수도 있다. 특정 정제 카테고리의 옵션과 함께 사용자를 위해 더 빠른 상호작용 속도를 보여줌으로써 과거 사용자 행위는 이것을 알려준다.
도 11은 일부 예시적인 실시예에 따른 무결절성 페이지네이션 동안 콘텍스트 정제를 위한 UI의 스크린 도시도(1100)이다. 스크린 도시도(1100)는 사용자가 스크롤 불능 정제 카테고리(1160)을 활성화(예컨대, 클릭 온)한 이후에 디스플레이될 수 있다. 텍스트 기입 필드(1110)는 현재 검색 질의를 보여주며, 사용자로 하여금 신규 검색 질의를 입력하게 한다. UI 요소(1170)는 스크롤 불능 정제 카테고리(1160)의 활성화에 응답하여 디스플레이될 수 있다. UI 요소(1170)는 카테고리(예컨대, "정제 1A", "정제 1B" 및 "정제 1C")와 함께 카테고리(예컨대 "정제 카테고리 1")의 지시를 포함한다. 정제 옵션은 지시된 정제를 검색 결과에 대해 적용하도록 동작할 수 있다. 예를 들어, 브랜드 정제는 검색 결과를 아이템의 특정 브랜드에 대해 제한할 수 있다. 따라서, 브랜드 정제를 선택하는 것은 정제된 질의를 위해 검색 결과를 갖는 스크린 도시도(400 내지 800)가 사용자에게 제시되게 한다. 스크린 도시도(1100)는 디스플레이되는 아이템(1120)(아이템(13-23)으로 표시됨)(이것은 스크린 도시도(1000)에 도시된 아이템과 동일함)을 보여준다. 스크린 도시도(1000)에 도시된 스크롤 불능 정제 카테고리(예컨대 스크롤 불능 정제 카테고리(1160))는 여전히 디스플레이된다. 일부 예시적인 실시예에서는 UI 요소(1170)가 디스플레이되는 동안 스크롤 불능 정제 카테고리가 숨겨진다. 페이지 지시자(1130)는 현재 페이지를 나타내고, 현재 페이지 범위 내의 다른 페이지를 보여준다. 화살표(1140)는 사용자가 한 번에 페이지 단위로 결과 세트를 순방향 또는 역방향으로 끝까지 이동하게 해준다. 페이지네이션 툴은 페이지 지시자(1130)와 화살표(1140)를 포함한다. 스크롤 툴(1150)은 사용자가 결과 세트를 순방향 또는 역방향으로 끝까지 이동하게 해준다(예를 들면, 한 번에 로우 단위 또는 한 번에 페이지 단위로).
도 12는 일부 예시적인 실시예에 따른 무결절성 페이지네이션 동안 콘텍스트 정제를 위한 UI의 스크린 도시도(1200)이다. 스크린 도시도(1200)는 도 9의 스크린 도시도(900)를 일람한 이후에 사용자가 하나의 추가 로우로 하향 스크롤한 이후에 디스플레이되는 아이템(1220)(아이템(13-23)으로 표시됨)을 도시한다. 텍스트 기입 필드(1210)는 현재 검색 질의를 보여주며, 사용자로 하여금 신규 검색 질의를 입력하게 한다. 사용자가 임계값을 넘어 스크롤링하는 것에 응답하여 UI 요소로서 스크롤 불능 정제 카테고리(예컨대, 스크롤 불능 정제 카테고리(1260))가 추가될 수도 있다. 도 12에 예시된 것처럼, 스크롤 불능 정제 카테고리(1260)는 페이지를 스크롤 오프라는 스크롤 가능 정제 카테고리와 다른 장소에 위치될 수 있다. 도 12에 예시된 것처럼, "정제 카테고리 3"으로 지시된 스크롤 불능 정제 카테고리(1260)는 페이지를 스크롤 오프한 스크롤 가능 정제 카테고리와 다른 카테고리일 수 있다. 예를 들어, 스크롤 가능 정제 카테고리는 일반 카테고리이고, 반면에 스크롤 불능 정제 카테고리(1260)는 사용자 특정 또는 콘텍스트 특정 카테고리일 수 있다. 예를 들어, 일반 카테고리는 검색 결과에 기반할 것이다(예를 들면, 최다 개수의 결과가 속하는 카테고리 또는 구매 빈도가 가장 많은 결과가 속한 카테고리). 한편, 사용자 특정 정제 카테고리는 사용자가 적용하는 사전 정제(prior refinement)에 기반할 수 있다. 예를 들어, 사용자는 100달러 미만의 비용을 지출하는 아이템만을 보고자 하여 가격으로 결과를 빈번히 필터링할 수도 있다. 그 결과, 사용자 기반 정제 카테고리는 가격 필터의 카테고리일 것이고, 이로부터 사용자는 가격을 위한 개별 정제를 선택할 수 있을 것이다. 이와 유사하게, 콘텍스트 특정 정제 카테고리는 질의의 콘텍스트에 기반할 것이다. 예를 들어, 질의는 한 위치에서 모바일 장치로부터 발행될 수 있다. 그 결과, 콘텍스트 기반 정제 카테고리는 위치 필터의 카테고리일 수 있고, 이로부터 사용자는 모바일 장치의 위치의 특정 간격 이내로 결과를 위한 개별 정제를 선택할 수 있다.
페이지 지시자(1230)는 현재 페이지를 나타내며, 현재 페이지 범위 내의 다른 페이지를 보여준다. 화살표(1240)는 사용자가 한 번에 페이지 단위로 결과 세트를 순방향 또는 역방향으로 끝까지 이동하게 해준다. 페이지네이션 툴은 페이지 지시자(1230)와 화살표(1240)를 포함한다. 스크롤 툴(1250)은 사용자가 결과 세트를 순방향 또는 역방향으로 끝까지 이동하게 해준다(예를 들면, 한 번에 로우 단위 또는 한 번에 페이지 단위로).
도 13의 스크린 도시도(1300)는 사용자가 초기의 6개 페이지의 마지막에 도달한 다음에 더 많은 아이템을 보고자 시도한 이후에 디스플레이되는 아이템(1320)(아이템(97-111)으로 표시됨)을 보여준다. 텍스트 기입 필드(1310)는 현재 검색 질의를 보여주며, 사용자로 하여금 신규 검색 질의를 입력하게 한다. 페이지 지시자(1330)는 현재 페이지가 7페이지임을 지시하고, 페이지 범위는 7-12임을 제시한다.
사용자가 임계값을 넘어서 스크롤링한 것에 기반하여 스크롤 불능 정제 카테고리(1260)로부터 스크롤 불능 정제 옵션(1360)이 생성한다. 예를 들어, 스크롤 불능 정제 카테고리(1260)는 사용자가 첫 번째 임계값을 넘어 스크롤링한 것에 기반하여 제시될 수 있다. 스크롤 불능 정제 카테고리 옵션은 사용자가 두 번째 임계값을 넘어서 스크롤링한 것에 기반하여 상향으로 더 중앙 위치까지 이동된다. 스크롤 불능 정제 카테고리 옵션은 사용자가 세 번째 임계값을 넘어서 스크롤링한 것에 기반하여 정제 3A, 3B, 3C를 포함하도록 확장될 수도 있다. UI 요소(1360)는 세 개의 정제 옵션(예를 들면, "정제 3A", "정제 3B" 및 "정제 3C")과 함께 카테고리(예를 들면, "정제 카테고리 3")의 지시를 포함한다. 정제 옵션은 지시된 정제를 검색 결과에 적용하도록 동작할 수 있다. 예를 들어, 브랜드 정제는 검색 결과를 아이템의 특정 브랜드로 제한할 수 있다. 따라서, 브랜드 정체를 선택하는 것은 사용자로 하여금 스크린 도시도(400 또는 800)에 정제된 질의와 관련한 검색 결과를 제시하게 한다.
페이지 지시자(1330)는 현재 페이지를 나타내며, 현재 페이지 범위 내의 다른 페이지를 보여준다. 화살표(1340)는 사용자가 결과 세트를 순방향 또는 역방향으로 끝까지 이동하게 해준다(예를 들면, 한 번에 페이지 단위로). 페이지네이션 툴은 페이지 지시자(1330)와 화살표(1340)를 포함한다. 스크롤 툴(1350)은 사용자가 결과 세트를 순방향 또는 역방향으로 끝까지 이동하게 해준다(예를 들면, 한 번에 로우 단위 또는 한 번에 페이지 단위로).
도 14는 일부 예시적인 실시예에 따른 무결절성 페이지네이션의 방법(1400)을 수행함에 있어 애플리케이션 서버(118)의 동작을 예시하는 흐름도이다. 방법(1400)의 동작들은 도 2와 관련하여 전술된 모듈을 이용하여 애플리케이션 서버(118) 상에서 실행중인 검색 애플리케이션(121)에 의해 수행될 수 있다.
검색 애플리케이션(121)은 예컨대 판매 아이템을 검색하는 클라이언트 머신(110 또는 112)으로부터 검색 질의를 수신할 수 있다(동작(1410)). 검색 애플리케이션(121)은 질의를 실행하고 응답 아이템을 식별한다(동작(1420)). 검색 질의에 응답하여, 검색 애플리케이션(121)은 응답 아이템의 서브세트를 클라이언트 머신(110 또는 112)으로 전송한다(동작(1430)). 응답 아이템의 서브세트가 스크린 영역의 하나의 페이지 이상을 차지할 정도로 충분히 많을 수도 있다. 전송된 아이템의 수는 클라이언트 머신(110 또는 112)으로부터 수신된 역량 데이터 또는 애플리케이션 서버(118)에 의해 액세스 가능한 이력 데이터 또는 이 둘 모두에 기반할 수 있다. 애플리케이션 서버(118)는 추가의 응답 아이템에 대한 요청을 수신하고(동작(1440)), 이 요청에 응답하여 추가의 결과를 전송할 수 있다(동작(1450)).
도 15는 일부 예시적인 실시예에 따른 무결절성 페이지네이션의 방법(1500)을 수행함에 있어 클라이언트 머신(110 또는 112)의 동작을 예시하는 흐름도이다. 방법(1500)의 동작들은 도 3과 관련하여 전술된 모듈을 이용하여 클라이언트 머신(110 또는 112)에 의해 수행될 수 있다.
클라이언트 머신(110 또는 112)은 검색 질의를 전송한다(동작(1510)). 예를 들어, 검색 질의는 UI 모듈(350)에 의해 수신될 수 있거나 텍스트 기입 필드(410)에 입력될 수 있다. 검색 질의는 전술한 방법(1400)을 수행중인 애플리케이션 서버(118)에 전송될 것이다. 검색 질의에 응답하여, 클라이언트 머신(110 또는 112)은 응답 아이템의 첫 페이지와 두 번째 페이지를 수신할 것이다(동작(1520) 및 동작(1530)). 클라이언트 머신(110 또는 112)은 페이지네이션 컨트롤과 함께 응답 아이템의 첫 페이지를 디스플레이할 수 있다(동작(1540) 및 동작(1550)). 클라이언트 머신(110 또는 112)은 페이지네이션 커맨드를 수신한다(동작(1560)). 예를 들어, 페이지네이션 커맨드는 UI 모듈(350)에 의해 수신되거나 페이지네이션 컨트롤에 의해 생성된다. 페이지네이션 커맨드에 응답하여, 클라이언트 머신(110 또는 112)은 응답 아이템의 두 번째 페이지를 제시할 수 있고(동작(1570)), 애플리케이션 서버(118)로부터 응답 아이템의 세 번째 페이지를 요청할 수 있다(동작(1580)).
도 16은 일부 예시적인 실시예에 따른 무결절성 페이지네이션의 방법(1600)을 수행함에 있어 애플리케이션 서버(118)의 동작을 예시하는 흐름도이다. 방법(1600)의 동작들은 도 2와 관련하여 전술된 모듈을 이용하여 애플리케이션 서버(118)상에서 실행중인 검색 애플리케이션(121)에 의해 수행될 수 있다.
검색 애플리케이션(121)은 예컨대 판매 아이템을 검색하는 클라이언트 머신(110 또는 112)으로부터 검색 질의를 수신할 수 있다(동작(1610)). 검색 애플리케이션(121)은 도 2와 관련하여 전술한 기준의 임의의 조합을 이용하여 사용자에게 제시될 결과의 아이템의 개수 또는 결과의 페이지 수를 결정할 수 있다(동작(1620)). 검색 질의에 응답하여, 검색 애플리케이션(121)은 페이지의 수를 클라이언트 머신(110 또는 112)으로 전송한다(동작(1630)).
도 17은 일부 예시적인 실시예에 따른 무결절성 페이지네이션의 방법(1700)을 수행함에 있어 클라이언트 머신(110 또는 112)의 동작을 예시하는 흐름도이다. 방법(1700)의 동작들은 도 3과 관련하여 전술된 모듈을 이용하여 클라이언트 머신(110 또는 112)에 의해 수행될 수 있다.
클라이언트 머신(110 또는 112)은 검색 질의를 전송한다(동작(1710)). 예를 들어, 검색 질의는 UI 모듈(350)에 의해 수신될 수 있거나 텍스트 기입 필드(410)에 입력될 수 있다. 검색 질의는 전술한 방법(1600)을 수행중인 애플리케이션 서버(118)에 전송될 것이다. 검색 질의에 응답하여, 클라이언트 머신(110 또는 112)은 제시될 아이템의 페이지 계수(page count)를 수신한다(동작(1720)). 클라이언트 머신(110 또는 112)은 결과 페이지의 첫 번째 페이지 계수를 선택하도록 동작할 수 있는 페이지네이션 컨트롤을 디스플레이할 수 있다(동작(1730)). 예를 들어, 만약에 페이지 계수가 3이면, 페이지네이션 컨트롤은 사용자가 임의의 첫 번째 3개 페이지를 선택하도록 동작할 수 있다.
도 18은 일부 예시적인 실시예에 따른 무결절성 페이지네이션과 함께 콘텍스트 정제의 방법(1800)을 수행함에 있어 클라이언트 머신(110 또는 112)의 동작을 예시하는 흐름도이다. 방법(1800)의 동작들은 도 2와 관련하여 전술된 모듈을 이용하여 애플리케이션 서버(118)상에서 실행중인 검색 애플리케이션(121)과 연계하여 도 3과 관련하여 전술한 모듈을 이용하여 수행된다.
동작(1810)에서, 클라이언트 머신(110 또는 112)은 UI를 통해 사용자로부터 검색 질의를 수신할 수 있다. 예를 들어, 텍스트 필드와 제출 버튼이 사용자에게 제시될 수 있다. 사용자는 검색 스트링을 텍스트 필드에 입력하고 제출 버튼을 누를 것이다.
동작(1820)에서, 클라이언트 머신(110 또는 112)은 검색 질의에 대한 응답 아이템을 수신할 수 있다. 예를 들어, 클라이언트 머신(110 또는 112)은 검색 애플리케이션(121)에게 검색 질의를 전송할 수 있다. 검색 애플리케이션(121)은 질의를 수행하고 응답 아이템을 식별할 것이다. 검색 질의에 응답하여, 검색 애플리케이션(121)은 응답 아이템의 모두 또는 서브세트를 클라이언트 머신(110 또는 112)으로 전송할 것이다.
동작(1830)에서, 클라이언트 머신(110 또는 112)은 스크롤 가능 인터페이스에 응답 아이템을 디스플레이할 수 있다. 응답 아이템은 스크린 영역의 하나의 페이지 이상을 차지할 정도로 충분할 수 있다.
동작(1840)에서, 클라이언트 머신(110 또는 112)은 스크롤 가능 인터페이스가 임계값을 넘어서 스크롤함을 감지할 수 있다. 예를 들어, UI는 UI를 위로 아래로 스크롤하도록 동작할 수 있는 스크롤 바를 포함할 수 있다. 임계값은 응답 아이템의 수 또는 스크롤되는 페이지 수 또는 스크롤되는 픽셀의 수 또는 또 다른 스크롤링 측정치에 기반하여 설정될 수 있다. 임계값은 사용자 장치 또는 사용자의 이전 검색 상호작용 또는 다른 사용자의 검색 상호작용에 기반하여 고정될 수도 있다.
동작(1850)에서, 클라이언트 머신(110 또는 112)은 UI에 스크롤 불능 요소를 추가한다. 예를 들어, 사용자의 검색을 정제하도록 동작할 수 있는 스크롤 불능 정제 옵션이 제시될 수도 있다. 또 다른 예로서, 정제 옵션을 제시하도록 동작할 수 있는 스크롤 불능 요소가 제시될 수도 있다.
도 19는 일부 예시적인 실시예에 따른 무결절성 페이지네이션과 함께 콘텍스트 정제의 방법(1900)을 수행하는 클라이언트 머신(110 또는 112)의 동작을 예시하는 흐름도이다. 방법(1900)의 동작들은 도 2와 관련하여 전술된 모듈을 이용하여 애플리케이션 서버(118)상에서 실행중인 검색 애플리케이션(121)과 연계하여 도 3과 관련하여 전술한 모듈을 이용하여 수행된다.
동작(1910)에서, 클라이언트 머신(110 또는 112)은 UI를 통해 사용자로부터 검색 질의를 수신할 수 있다. 예를 들어, 텍스트 필드와 제출 버튼이 사용자에게 제시될 수 있다. 사용자는 검색 스트링을 텍스트 필드에 입력하고 제출 버튼을 누를 것이다.
동작(1920)에서, 클라이언트 머신(110 또는 112)은 검색 질의에 대한 응답 아이템을 수신할 수 있다. 예를 들어, 클라이언트 머신(110 또는 112)은 검색 애플리케이션(121)에게 검색 질의를 전송할 수 있다. 검색 애플리케이션(121)은 질의를 실행하여 응답 아이템을 식별할 수 있다. 검색 질의에 응답하여, 검색 애플리케이션(121)은 응답 아이템의 모두 또는 서브세트를 클라이언트 머신(110 또는 112)으로 전송할 것이다.
동작(1930)에서, 클라이언트 머신(110 또는 112)은 스크롤 가능 인터페이스에 응답 아이템을 디스플레이할 수 있다. 응답 아이템은 스크린 영역의 하나의 페이지 이상을 차지할 정도로 충분할 수 있다.
동작(1940)에서, 클라이언트 머신(110 또는 112)은 스크롤 가능 인터페이스가 첫 번째 임계값을 넘어서 스크롤함을 감지할 수 있다. 예를 들어, UI는 UI를 위로 아래로 스크롤하도록 동작할 수 있는 스크롤 바를 포함할 수 있다. 첫 번째 임계값은 응답 아이템의 수 또는 스크롤되는 페이지 수 또는 스크롤되는 픽셀의 수 또는 또 다른 스크롤링 측정치에 기반하여 설정될 수 있다. 첫 번째 임계값은 사용자 장치 또는 사용자의 이전 검색 상호작용 또는 다른 사용자의 검색 상호작용에 기반하여 고정될 수도 있다.
동작(1950)에서, 클라이언트 머신(110 또는 112)은 UI에 스크롤 불능 요소를 추가한다. 스크롤 불능 요소를 추가하는 것은 스크롤 가능 인터페이스가 첫 번째 임계값을 넘어서 스크롤한다는 감지를 기반으로 할 수 있다. 예를 들어, 사용자의 검색을 정제하도록 동작할 수 있는 스크롤 불능 정제 옵션이 제시될 수도 있다. 또 다른 예로서, 정제 옵션을 제시하도록 동작할 수 있는 스크롤 불능 요소가 제시될 수도 있다.
동작(1960)에서, 클라이언트 머신(110 또는 112)은 스크롤 가능 인터페이스가 두 번째 임계값을 넘어서 스크롤함을 감지할 수 있다. 예를 들어, UI는 UI를 위로 아래로 스크롤하도록 동작할 수 있는 스크롤 바를 포함할 수 있다. 두 번째 임계값은 응답 아이템의 수 또는 스크롤되는 페이지 수 또는 스크롤되는 픽셀의 수 또는 또 다른 스크롤링 측정치에 기반하여 설정될 수 있다. 두 번째 임계값은 사용자 장치 또는 사용자의 이전 검색 상호작용 또는 다른 사용자의 검색 상호작용에 기반하여 고정될 수도 있다. 두 번째 임계값은 절대적 위치(예를 들면, 결과 리스트의 최상부로부터 5개 스크린) 또는 상대적 위치(예를 들면, 첫 번째 임계값로부터 4개 스크린)로서 정의될 수도 있다.
동작(1970)에서, 클라이언트 머신(110 또는 112)은 동작(1950)에서 UI에 추가된 스크롤 불능 요소를 수정한다. 스크롤 불능 요소를 수정하는 것은 스크롤 가능 인터페이스가 두 번째 임계값을 넘어서 스크롤한다는 감지에 기반할 수 있다. 예를 들어, 스크롤 가능 인터페이스가 첫 번째 임계값을 넘어서 스크롤될 때, 정제 옵션을 제시하도록 동작할 수 있는 스크롤 불능 요소가 제시될 수 있고, 이 요소는 스크롤 가능 인터페이스가 두 번째 임계값을 넘어서 스크롤될 때 사용자로부터 추가의 상호작용 없이도 정제 옵션을 사실상 제시하도록 수정된다.
도 20은 일부 예시적인 실시예에 따른 무결절성 페이지네이션와 함께 콘텍스트 정제의 방법(2000)을 수행함에 있어 클라이언트 머신(110 또는 112)의 동작을 예시하는 흐름도이다. 방법(2000)의 동작들은 도 2와 관련하여 전술된 모듈을 이용하여 애플리케이션 서버(118)상에서 실행중인 검색 애플리케이션(121)과 연계하여 도 3과 관련하여 전술한 모듈을 이용하여 수행될 수 있다. 동작(2010-2060)은 도 19와 관련하여 전술한 동작(1910-1960)에 대응한다.
동작(2070)에서, 클라이언트 머신(110 또는 112)은 동작(2050)에서 UI에 추가된 스크롤 불능 요소에 두 번째 스크롤 불능 요소를 추가한다. 예를 들어, 첫 번째 스크롤 불능 요소는 아이템의 브랜드와 관련한 정제 옵션을 제시하도록 동작할 수 있고, 두 번째 스크롤 불능 요소는 아이템의 가격과 관련한 정제 옵션을 제시하도록 동작할 수 있다.
다양한 예시적인 실시예에 따르면, 본원에 설명된 하나 이상의 방법은 무결절성 페이지네이션 동안에 콘텍스트 정제를 용이하게 할 것이다. 그러므로 본원에 설명된 하나 이상의 방법은 사용자의 검색의 정밀도를 증가시키는 하나 이상의 제안된 정제를 지시하면서도 사용자에 의해 요청된 정보의 검색 및 제시를 용이하게 할 수 있다.
도 21은 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 질의 데이터 특징의 이용을 예시하는 블록도(2100)이다. 데이터베이스(2110)는 시스템의 다수의 사용자의 행위와 관련한 데이터와 함께 이력적 사용자 행위 데이터를 저장한다. 일 실시예에서, 모든 사용자의 행동과 관련한 데이터는 데이터베이스(2110)에 저장된다. 데이터베이스(2110)는 질의와 관련한 실패한 세션 동안 보이는 페이지 및 아이템의 수(2130)와 함께 질의와 관련한 성공적인 세션 동안 보이는 페이지 및 아이템의 수(2120)를 결정하기 위해 조사될 것이다. 성공적인 세션은 사용자가 임의의 방식(예를 들면, 아이템을 일람하기, 아이템에 응찰하기, 아이템을 구매하기, 아이템에 가입하기 등등)으로 아이템과 상호작용하는 세션이거나 또는 특정 상호작용(예를 들면, 아이템에 응찰하기 또는 아이템을 구매하기 또는 응찰과 구매 모두)이 수행되는 세션일 수 있다. 실패한 세션은 성공하지 못한 임의의 세션일 수 있다. 성공적인 세션과 실패한 세션을 식별하는데 다른 기준이 이용될 수도 있다. 질의와 관련한 성공적인 세션 동안 보이는 페이지 및 아이템의 수(2120) 또는 질의와 관련한 실패한 세션 동안 보이는 페이지 및 아이템의 수(2130) 또는 이 둘 모두에 기반하여, 질의 페이지네이션 데이터의 데이터베이스(2140)가 생성 또는 갱신될 수 있다. 데이터베이스(2140)의 정보에 기반하여, 질의를 한 사용자에게 디스플레이하는 페이지의 수가 결정될 수 있다. 추가적으로 또는 선택적으로, 데이터베이스(2140)의 정보에 기반하여, 스크롤 불능 UI를 제시 또는 변경하기 전에 질의를 한 사용자에게 디스플레이하는 페이지의 수가 결정될 수 있다.
도 22는 무결절성 페이지네이션에 적합한 예시적인 실시예에 따른 사용자 데이터 특징의 사용을 예시하는 블록도(2200)이다. 블록도(2200)에서, 이력적 사용자 행위 데이터를 포함하는 데이터베이스(2210)는 사용자와 관련하여 실패한 세션 동안 보이는 페이지 및 아이템의 수(2230)와 함께 사용자와 관련하여 성공적인 세션 동안 보이는 페이지 및 아이템의 수(2220)를 결정하기 위해 조사될 것이다. 사용자와 관련하여 성공적인 세션 동안 보이는 페이지 및 아이템의 수(2220) 또는 사용자와 관련하여 실패한 세션 동안 보이는 페이지 및 아이템의 수(2230) 또는 이 둘 모두에 기반하여, 사용자 페이지네이션 데이터의 데이터베이스(2240)가 생성 또는 갱신될 수 있다. 데이터베이스(2240)의 정보에 기반하여, 질의한 사용자에게 디스플레이되는 페이지의 수가 결정될 수 있다. 사용자 및 질의와 관련한 이력적 사용자 행위 데이터는 조합될 수도 있고 독립적으로 이용될 수도 있다. 예를 들어, 만약 사용자 데이터에만 기반하면 제시될 페이지의 수가 5이고, 질의 데이터 단독에만 기반하면 제시될 페이지의 수가 7이라면, 일부 예시적인 실시예는 5페이지를 제시하는 반면, 다른 실시예는 7페이지를 제시하고, 또 다른 실시예는 이 값들을 평균하여 6을 제시할 것이다.
도 23은 무결절성 페이지네이션을 인에이블할 수 있는지 결정함에 있어 고려될 수 있는 요인들 중 일부를 예시한다. 무결절성 페이지네이션을 인에이블할는 결정은 동일 질의와 관련한 다른 사용자를 위하나의 페이지네이션 데이터(2305), 상이한 질의와 관련한 이 사용자를 위하나의 페이지네이션 데이터(2310), 클라이언트 머신(110)의 브라우저 유형(2320), 클라이언트 머신(110 또는 112)의 장치 유형(2315), 클라이언트 머신(110 또는 112)의 스크린 해상도(2325), 결과 세트(2330), 클라이언트 머신(110 또는 112)의 위치(2335), 세션 콘텍스트(2340) 및 다른 신호들(2345)에 기반할 수 있다. 결정(2350)에서, 입력 요인들 중 하나 이상의 요인에 기반하여 무결절성 페이지네이션을 인에이블할 것인지 디스에이블할 것인지 결정한다. 따라서, 무결절성 페이지네이션을 인에이블링하는 결과(2355)에 도달하거나 또는 디폴트 페이지네이션을 이용하는 결과(2360)에 도달한다. 예를 들어, 무결절성 페이지네이션은 질의를 제출했던 다른 사용자의 이전 행위에 기반하여 특정 질의에 대해 디스에이블될 수도 있다. 마찬가지로, 무결절성 페이지네이션은 이전 질의를 제출한 이후 사용자의 이전 행위에 기반하여 특정 사용자에 대해 디스에이블될 수도 있다.
장치 유형(2315)이 고려될 수도 있다. 예를 들어, 풀-스크린 장치(예컨대, 데스크탑 컴퓨터)를 이용하는 사용자는 소형 스크린 장치(예컨대 모바일 장치)를 이용하는 사용자보다 더 많은 페이지를 스크롤하는 경향이 있으므로, 풀-스크린 장치의 사용자에게 제시될 페이지의 수가 더 많을 것이다. 장치 요인은 다른 사용자의 이전 검색을 액세스할 때 적용될 수 있다. 예를 들어, 동일한 질의에 대해 다른 사용자의 모든 검색을 고려하기보다는 유사 장치로부터의 검색만이 고려될 수 있을 것이다. 유사성은 장치 제조사(예를 들면, 애플사 장치, HP사 장치 등등), 장치의 부류(예를 들면, 전화기, 태블릿, 랩탑, 데스크탑 등등), 장치의 역량(예를 들면, 스크린 사이즈, 스크린 해상도, 터치스크린, 메모리, 프로세서 속도 등등), 네트워크의 역량(예를 들면, 애플리케이션 서버와 클라이언트 머신 사이의 대역폭, 애플리케이션 서버와 클라이언트 머신 사이의 대기시간 등등) 또는 다른 장치 요인들과 그것의 임의의 적절한 조합을 기반으로 할 수 있다.
관련 요인들은 장치의 속도 또는 환경 여건일 수도 있다. 예를 들어, 자주 멀미를 하는 사용자가 기차를 타고 있을 때에는 휴식을 취할 때와는 다르게 브라우즈할 수도 있고, 시스템은 장치의 속도에 적어도 부분적으로 기반하여 페이지네이션을 수정할 정도로 지능형일 수 있다. 이것은 차량 운전자가 예컨대 차량의 헤드 유닛을 통해 검색 결과와 상호작용하는 실시예로 확장될 수도 있다. 이 사례에서, 사용자가 방해받는 것은 중요한 요인이며, 이런 여건에서 운전자를 방해하는 것을 줄이기 위해 훨씬 더 단순화된 인터페이스(가능하다면 더 적은 페이지를 갖는)를 제공하는 것이 바람직할 것이다.
현재 질의 직전에 사용자에 의해 실행되는 예컨대 질의(들) 같은 세션 콘텍스트 데이터(2340)가 고려될 수 있다. 예를 들어, 사용자가 "아이폰 5"와 관련하여 검색할 때, 제시되는 페이지의 수는 8이지만, 이 검색이 "전화기"와 관련한 검색 바로 다음에 후속할 때는 제시될 페이지 수가 5일 수 있다. 또 다른 콘텍스트 요인은 사용자가 검색 질의를 실행하는 빈도일 수 있다. 예를 들어, 수집가치가 있는 아이템을 주기적으로 검색하는 사용자는 검색 결과에서 강조된 수준의 관심을 나타낼 수 있고, 따라서 결과의 추가 페이지가 제시될 수 있다.
사용자 또는 장치의 위치 같은 지리위치 데이터(geolocation data)(2335)가 고려될 수도 있다. 예를 들어, 도시지역의 사용자는 농촌 지역 사용자보다 더 많은 페이지를 스크롤하는 경향이 있으므로, 도시 지역 사용자에게는 더 많은 페이지 수가 제시될 수 있다. 지리위치 요인은 다른 사용자의 이전 검색을 액세스할 때 적용될 수도 있다. 예를 들어, 다른 사용자의 모든 검색을 고려하기보다는 사용자 지역으로부터의 검색만 고려될 수도 있다. 사용자 지역은 시, 군, 주 등과 같은 정치 단위나 또는 사용자의 특정 반경(예컨대, 5마일, 50마일 또는 200마일) 내의 모든 다른 사용자를 포괄하는 지리적 영역으로 정의될 수도 있다. 또 다른 예시적인 실시예에서, 이 영역은 이전의 사용자 행위에 기반하여 분류될 수도 있다. 예를 들어, 사용자는 직장에서 브라우징할 때와 집에서 브라우징할 때 상이하게 행동할 수 있다. 사용자의 집과 가정의 위치의 지리위치는 추적될 수 있고, 이 정보는 사용자뿐만 아니라 사용자가 직장에 있는지 또는 집에 있는지의 사실에도 기반하여 페이지네이션을 꾸미는데 활용될 수 있다.
시간적 요인도 적용될 수 있다. 예를 들어, 사용자 또는 질의와 관련한 모든 이력 데이터를 찾아보는 것보다는 특정 시간으로부터 행동 데이터만이 이용될 수도 있다. 사용자에 대한 이력 데이터와 질의에 대한 이력 데이터와 관련해 상이한 시간적 요인이 이용될 수 있고, 또는 하나에 대해서는 시간적 요인이 이용되지만 다른 것에 대해서는 이용되지 않을 수도 있으며, 또는 둘 모두에 대해 동일한 시간적 요인이 이용될 수도 있다. 예를 들어, 과거 2주간에 걸친 사용자 행위가 고려될 수 있고, 과거 2달간에 걸친 질의와 함께 다른 사용자 행위가 고려될 수도 있다.
사회적 요인도 고려될 수 있다. 예를 들어, 더 많은 결과 페이지를 자주 일람하는 사용자와 친구인 소셜 네트워크의 사용자는 더 적은 결과 페이지를 자주 일람하는 사용자와 친구인 사용자보다 더 많은 결과 페이지를 보고자 할 것이다. 사회적 요인은 다른 사용자의 이전의 검색을 액세스할 때 적용될 수도 있다. 예를 들어, 동일 질의에 대해 다른 사용자의 모든 검색을 고려하기보다는 친구들의 검색만이 고려될 수도 있다. 예컨대 친구의 친구, 특정 단체의 회원, 특정 피드(feed)에 대한 가입 등등처럼 다른 관계들도 고려될 수 있다.
광고 요인도 고려될 수 있다. 예를 들어, 광고는 아이템과 함께 디스플레이될 수 있다. 광고회사는 제시된 각각의 광고에 대해 클릭당 지불하거나, 노출당 지불하거나 또는 판매율당 지불할 수도 있다. 따라서 상호작용할 아이템을 선택하기 전에 사용자가 더 많은 아이템 페이지를 일람하도록 장려하는 것이 유리하며, 더 많은 광고 또는 더 높은 비율로 팔리는 광고와 연관된 질의는 더 적은 광고 또는 이윤이 덜한 광고와 연관된 질의보다 더 많은 결과 페이지가 제시될 수도 있다.
직접적인 수익창출(direct monetization)도 고려될 수 있다. 예를 들어, 검색 결과의 나중 페이지에 나타나는 아이템의 소유주는 제시될 검색 결과의 충분히 많은 페이지가 아이템을 포함하도록 장려하기 위해 비용을 지불할 용의가 있을 것이다. 마찬가지로, 검색 결과의 초기 페이지에 나타나는 아이템의 소유주는 사용자가 이 아이템과 상호작용하도록 장려하기 위해서 제시되는 페이지의 수를 줄이도록 비용을 지불할 용의가 있을 것이다. 일부 예시적인 실시예에서, 이것은 검색 결과의 수익 창출을 여전히 허용하면서 검색 결과의 순서가 수익 창출에 영향을 미치지 않게 한다.
일부 예시적인 실시예에서, 사용자가 아이템과 상호작용하기 전에 디스플레이되는 아이템의 평균 수는 전술한 것처럼 디스플레이될 결과 페이지의 수를 결정하는데 이용된다. 다른 예시적인 실시예에서는 사용자가 아이템과 사용작용하기 전에 디스플레이되는 아이템의 중간값(median number)이 이용된다. 중간값을 이용한다는 것은 사용자의 50%는 덜 선호하지만 사용자의 50%는 추가 아이템 일람을 선호함을 의미한다. 다른 백분율이 마찬가지로 이용될 수 있다. 예를 들어, 디스플레이될 페이지의 수가 사용자의 95%가 일람하나의 페이지의 최대 수에 기반할 수도 있다. 각각의 경우, 아이템 또는 페이지의 식별된 수는 아이템과 상호작용하기 전에 평균 사용자가 일람한 아이템의 수인 것으로 고려될 수 있다.
상호작용 백분율의 예시 표가 아래에 보인다.
Figure pct00001
예시 표에서 알 수 있듯이, 13,620,362개 유사 검색이 현재 질의 이전에 사용자에 의해 실행되었다. 이 검색 중에서 55.94%(또는 7,619,219개 검색)가 첫 번째 페이지에서 아이템과의 상호작용을 이끌어 냈고, 10.26%(또는 1,398,029개 검색)가 두 번째 페이지에서 아이템과의 상호작용을 이끌어내고 있다. 그러므로 만약 50%의 임계값이 선택된다면, 식별된 페이지의 수는 1이고, 반면에 85% 임계값이 선택된다면, 식별된 페이지의 수는 8이다.
다양한 예시적인 실시예에 따르면, 본원에서 설명한 하나 이상의 방법은 무결절성 페이지네이션을 도와준다. 그러므로 본원에 설명된 하나 이상의 방법은 고려할 제안된 수의 아이템을 지시하면서 사용자에 의해 요청된 정보의 검색 및 제시를 도와줄 수 있다. 페이지네이션 컨트롤에서 제한된 수의 페이지만 제시하는 것은 결정된 수의 아이템보다 많이 찾아볼 필요없이 사용자가 아이템과 상호작용하게 하는데, 이것은 더 나은 사용자 경험, 사용자에 의한 검색 엔진 또는 결과 세트와의 더 많은 참여, 사용자에 의한 시간 절약 및 검색 엔진에 의해 사용자에게 제공되는 더 많은 아이템 판매를 야기할 것이다. 페이지네이션 컨트롤을 제공하는 것은 사용자가 사용자 결과 세트 내에서 현재 위치의 계속 추적하도록 도와주어 사용자가 자신이 염두에 두고 있는 관심 있는 아이템으로 더 신속하게 복귀할 수 있게 한다.
다양한 예시적인 실시예에 따르면, 본원에 설명된 하나 이상의 방법은 무결절성 페이지네이션 동안에 콘텍스트 정제를 가능하게 한다. 그러므로 본원에 설명된 하나 이상의 방법은 사용자의 검색의 정밀도를 높이는 하나 이상의 제안된 정제를 지시하면서 사용자가 요청한 정보의 검색 및 게시를 가능하게 한다.
이런 효과들을 종합적으로 고려할 때, 본원에 설명된 하나 이상의 방법은 검색에 관련되어야 했을 활동들 또는 자원들에 대한 필요성을 덜어줄 수 있다. 관심 있는 아이템을 식별함에 있어 사용자가 기울인 활동들은 본원에 설명된 하나 이상의 방법에 의해 축소될 것이다. 하나 이상의 머신, 데이터베이스 또는 장치(예컨대, 클라이언트-서버 시스템(100) 내부에 있는)에 의해 이용되는 자원을 계산하는 것도 마찬가지로 감소될 수 있다. 이러한 자원 계산의 예로서, 프로세서 사이클, 네트워크 트래픽, 메모리 사용량, 데이터 저장 용량, 전력 소비량 및 냉각 용량을 들 수 있다.
모듈, 구성요소 및 로직
로직 또는 다수의 구성요소, 모듈 또는 메커니즘을 포함하는 특정 실시예가 본원에서 설명된다. 모듈은 소프트웨어 모듈(예를 들면, 비일시성 머신 판독가능 매체에 구현되는 코드) 또는 하드웨어 구현 방식의 모듈로 구성될 수 있다. 하드웨어 구현 방식의 모듈은 특정 동작을 수행할 수 있으면서 특정 방식으로 구성 또는 배열될 수 있는 유형의 구성장치이다. 예시적인 실시예에서, 하나 이상의 컴퓨터 시스템(예를 들면, 독립형, 클라이언트 또는 서버 컴퓨터 시스템) 또는 하나 이상의 프로세서가 본원에 설명된 특정 동작들을 수행하도록 동작하는 하드웨어 구현 방식의 모듈로서 소프트웨어(예를 들면, 애플리케이션 또는 애플리케이션 부분)에 의해 구성될 수 있다.
다양한 실시예에서, 하드웨어 구현 방식의 모듈은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들어, 하드웨어 구현 방식의 모듈은 특정 동작을 수행하도록 영구적으로 구성된 전용 회로 또는 로직(예를 들면, FPGA 또는 ASIC 같은 전용 프로세서처럼)을 포함할 수 있다. 하드웨어 구현 방식의 모듈은 특정 동작을 수행하도록 소프트웨어에 의해 일시적으로 구성된 프로그램 가능 로직 또는 회로(예를 들면, 범용 프로세서 또는 다른 프로그램 가능 프로세서 내부에 포함됨)도 포함할 수 있다. 하드웨어 구현 방식의 모듈을 전용 및 영구 구성된 회로에 기계적으로 구현할 것인지 또는 일시적으로 구성된(예를 들면, 소프트웨어에 의해 구성된) 회로에 구현할 것인지에 대한 결정은 비용과 시간을 고려하여 이루어짐이 이해될 것이다.
따라서, "하드웨어 구현 방식의 모듈"이라는 용어는 유형의 개체를 포함하는 것으로 이해되어야 하는데, 이 개체는 특정 방식으로 동작하고/하거나 본원에 설명된 특정 동작을 수행하기 위해서 물리적으로 구성되거나 영구적으로 구성되거나(예컨대 고정적으로 배선되거나) 또는 임시나 일시적으로 구성되는(예컨대 프로그램된) 개체이다. 하드웨어 구현 방식의 모듈이 임시로 구성되는(예를 들면 프로그램되는) 실시예를 고려해보면, 하드웨어 구현 방식의 모듈의 각각은 임의의 하나의 사례에서 동시에 구성 또는 생성될 필요가 없다. 예를 들어, 하드웨어 구현 방식의 모듈이 소프트웨어를 이용하여 구성된 범용 프로세서를 포함하는 경우, 범용 프로세서는 상이한 시간에 각각의 상이한 하드웨어 구현 방식의 모듈로서 구성될 수 있다. 따라서 소프트웨어는 어떤 시간에는 특정한 하드웨어 구현 방식의 모듈을 구성하고 다른 시간에는 다른 하드웨어 구현 방식의 모듈을 구성하도록 프로세서를 구성한다.
하드웨어 구현 방식의 모듈은 다른 하드웨어 구현 방식의 모듈과 정보를 주고 받을 수 있다. 따라서 설명된 하드웨어 구현 방식의 모듈은 통신을 할 수 있게 접속된 것으로 여겨질 수 있다. 다수의 하드웨어 구현 방식의 모듈이 동시에 존재하는 경우, 통신은 하드웨어 구현 방식의 모듈을 연결하는 신호 전송을 통해(예를 들면, 적절한 회로와 버스를 통해) 이루어질 것이다. 다수의 하드웨어 구현 방식의 모듈이 상이한 시간에 구성 또는 설치되는 실시예에서, 하드웨어 구현 방식의 모듈 사이의 통신은 예를 들면 하드웨어 구현 방식의 모듈이 액세스하는 메모리 구조에서 정보의 저장 및 검색을 통해 이루어질 수 있다. 예를 들어, 하드웨어 구현 방식의 모듈동작을 수행하고 이 동작의 출력을 통신 가능하게 접속된 메모리 장치에 저장할 수 있다. 추가의 하드웨어 구현 방식의 모듈이 나중에 메모리 장치에 액세스하여, 저장된 출력을 검색 및 처리할 수도 있다. 하드웨어 구현 방식의 모듈은 입력 또는 출력 장치와 통신을 개시할 수도 있고, 자원(예컨대 정보 모음)에 대해 동작할 수도 있다.
본원에 설명된 예시의 방법의 다양한 동작들은 관련 동작을 수행하도록 (예컨대 소프트웨어에 의해) 임시로 구성되거나 또는 영구적으로 구성되는 하나 이상의 프로세서에 의해 적어도 부분적으로 수행될 수도 있다. 임시로 구성되든지 또는 영구적으로 구성되든지 간에 이 프로세서는 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서 구현 방식의 모듈을 구성할 것이다. 본원에서 언급하는 모듈은 일부 예시적인 실시예에서 프로세서 구현 방식의 모듈을 포함할 수 있다.
이와 유사하게, 본원에 설명된 방법은 적어도 부분적으로 프로세서로 구현될 수 있다. 예를 들어, 이 방법의 동작들 중 적어도 일부는 하나 이상의 프로세서 또는 프로세서 구현 방식의 모듈에 의해 수행될 수 있다. 동작들 중 특정한 성능은 하나 이상의 프로세서 사이에 분산되어 단일 머신에만 상주하지 않고 다수의 머신에 나뉘어 배치될 수 있다. 일부 예시적인 실시예에서, 프로세서(들)은 한 위치(예컨대 가정 환경에, 사무실 환경에 또는 서버 팜으로서)에 위치될 수 있는 반면, 다른 실시예에서는 프로세서들이 다수의 위치에 나뉘어 분산될 수도 있다.
하나 이상의 프로세서는 "클라우드 컴퓨팅" 환경에서 또는 "Saas(software as a servive)"로서 관련 동작의 성능을 지원하도록 동작할 수 있다. 예를 들어, 동작들 중 적어도 일부는 컴퓨터 집단(프로세서를 포함하는 머신의 예처럼)에 의해 수행될 수 있는데, 이때 이 동작들은 네트워크(예컨대, 인터넷)와 하나 이상의 적절한 인터페이스(예컨대, API)를 통해서 가능하다.
전자 장치 및 시스템
예시적인 실시예는 디지털 전자 회로로로 구현될 수도 있고, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로 구현될 수도 있다. 예시적인 실시예는 예컨대 프로그램 가능 프로세서, 컴퓨터 또는 다중 컴퓨터 같은 데이터 처리 장치의 동작을 컨트롤하거나 실행하는 예컨대 머신 판독가능 매체 같은 정보 캐리어에 실체적으로 구현되는 예컨대 컴퓨터 프로그램 같은 컴퓨터 프로그램 제품을 이용하여 구현될 수 있다.
컴퓨터 프로그램은 컴파일되거나(compiled) 또는 인터프리트된(interpreted) 언어를 포함한 임의의 프로그램 언어 형태로 기입될 수 있으며, 임의의 형태로 전개될 수 있는데, 단독형 프로그램으로 전개될 수도 있고, 또는 모듈, 서브루틴 또는 컴퓨팅 환경에서 이용하기 적합한 다른 단위로서 전개될 수도 있다. 컴퓨터 프로그램은 한 장소에서 또는 여러 장소에 분산되어 하나의 컴퓨터 또는 다중 컴퓨터상에서 실행되도록 배치될 수 있고, 통신 네트워크에 의해 상호 연결되도록 배치될 수도 있다.
예시적인 실시예에서, 동작들은 입력 데이터에 대해 동작하여 출력을 생성함으로써 기능을 수행하는 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 실행될 수 있다. 동작들에 의해 수행되는 방법과 예시적인 실시예의 장치는 전용 로직 회로, 예컨대 FPGA 또는 ASIC으로서 구현될 수 있다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 떨어져 있으며, 전형적으로 통신 네트워크를 통해서 상호동작한다. 클라이언트와 서버 사이의 관계는 개별 컴퓨터상에서 실행중이며 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 유발된다. 프로그램 가능 컴퓨팅 시스템을 사용하는 실시예에서, 하드웨어와 소프트웨어 아키텍처는 둘 다 고려사항을 필요로 함을 인지할 것이다. 구체적으로, 특정 기능을 영구적으로 구성되는 하드웨어(예컨대, ASIC)으로 구현할 것인지, 임시로 구성되는 하드웨어(예컨대 소프트웨어와 프로그램 가능 프로세서의 조합)로 구현할 것인지, 또는 영구적으로 구성되는 하드웨어와 임시로 구성되는 하드웨어의 조합으로 구현할 것인지 선택하는 것은 설계상의 선택임을 인지할 것이다. 다양한 예시적인 실시예에서 활용될 수 있는 하드웨어(예컨대, 머신)와 소프트웨어 아키텍처가 아래에 설정된다.
예시의 머신 아키텍처 및 머신 판독가능 매체
도 24는 머신으로 하여금 본원에 설명된 하나 이상의 방법을 수행하게 하는 명령어가 실행되는 예시적인 형태의 컴퓨터 시스템(2400)의 머신의 블록도이다. 선택적인 실시예에서, 머신은 독립형 장치로서 동작하거나 또는 다른 머신과 연결(예컨데 네트워크 연결)될 수도 있다. 네트워크형 배치에서, 머신은 서버-클라이언트 네트워크 환경에서 서버의 역량으로 동작하거나 클라이언트의 역량으로 동작할 수 있고, 또는 P2P(또는 분산형) 네트워크 환경에서는 피어 머신(peer machine)으로서 동작할 수도 있다. 머신은 개인용 컴퓨터(PC), 태블릿 PC, STB(set-top box), PDA, 셀룰러 폰, 태블릿, 웨어러블 장치(예컨대, 스마트 워치 또는 스마트 안경), 웹 기기, 네트워크 라우터, 스위치나 브릿지, 또는 머신이 수행할 동작을 지정하는 (순차적이거나 순차적이 아닌) 명령어를 실행할 수 있는 임의의 머신이다. 또한, 단일 머신이 예시되어 있더라도 "머신"이라는 용어는 본원에 설명한 하나 이상의 방법을 수행하는 명령어 집합(또는 다중 집합)을 개별적으로 또는 결합하여 실행하는 임의의 머신 집단을 포함하는 것으로 고려되어야 한다.
예시의 컴퓨터 시스템(2400)은 프로세서(2402)(예컨대, CPU, GPU 또는 이 둘 모두), 주 메모리(2404) 및 정적 메모리(2406)를 포함하는데, 이들은 버스(2408)를 통해 서로 통신한다. 컴퓨터 시스템(2400)은 비디오 디스플레이 유닛(2410)(예컨대, LCD 또는 CRT)을 더 포함할 수 있다. 컴퓨터 시스템(2400)은 영숫자 입력 장치(2412)(예컨대, 키보드 또는 터치 감응성 디스플레이 스크린), 커서 컨트롤 장치(2414)(예컨대, 마우스), 디스크 드라이브 유닛(2416), 신호 생성 장치(2418)(예컨대, 스피커) 및 네트워크 인터페이스 장치(2420)도 포함한다.
머신 판독가능 매체
디스크 드라이브 유닛(2416)은 머신 판독가능 매체(2422)를 포함하고, 이 머신 판독가능 매체(2422) 상에는 본원에 설명된 임의의 하나 이상의 방법 또는 기능에 의해 활용되거나 그 기능을 구현하는 하나 이상의 명령어 집합과 데이터 구조(예컨대, 소프트웨어)가 저장된다. 명령어(2424)는 컴퓨터 시스템(2400)에 의해 실행되는 동안 주 메모리(2404) 및/또는 프로세서(2402)에 완전히 또는 적어도 부분적으로 상주하며, 이때 주 메모리(2404)와 프로세서(2402)도 역시 머신 판독가능 매체를 구성한다.
머신 판독가능 매체(2422)가 예시적인 실시예에서 단일 매체인 것처럼 도시되었지만, "머신 판독가능 매체"라는 용어는 하나 이상의 명령어 또는 데이터 구조를 저장하는 단일 매체 또는 다중 매체(예컨대, 중앙집중형 또는 분산형 데이터베이스 및/또는 연관 캐시와 서버)를 포함할 수 있다. "머신 판독가능 매체"라는 용어는 머신에 의해 실행되면서 머신으로 하여금 본 발명의 하나 이상의 방법을 수행하게 하는 명령어를 저장, 엔코딩 또는 운반할 수 있는 임의의 유형적 매체, 또는 이런 명령어에 의해 활용되거나 이런 명령어와 연관된 데이터 구조를 저장, 엔코딩 또는 운반할 수 있는 임의의 유형적 매체를 포함하는 것으로 생각해야 한다. 따라서 "머신 판독가능 매체"라는 용어는, 제한하려는 것은 아니지만, 고체 메모리와 광학적 및 자기적 매체를 포함하는 것으로 생각되어야 한다. 머신 판독가능 매체의 구체적인 예는 비휘발성 메모리를 포함하는데, 비휘발성 메모리는 예컨대 EPROM, EEPROM 및 플래시 메모리 장치 같은 반도체 메모리와, 내부 하드 디스크 및 착탈식 디스크 같은 자기 디스크와, 자기 광학적 디스크와 CD-ROM 및 DVD-ROM 디스크를 예로 들 수 있다.
전송 매체
명령어(2424)는 전송 매체를 이용하여 통신 네트워크(2426)를 통해 전송 또는 수신될 수 있다. 명령어(2424)는 네트워크 인터페이스 장치(2420)와 다수의 공지의 전달 프로토콜 중 임의의 것(예컨대, HTTP)을 이용하여 전송될 수 있다. 통신 네트워크의 예는 LAN, WAN, 인터넷, 모바일 전화 네트워크, POTS(Plain Old Telephone) 네트워크 및 무선 데이터 네트워크(예컨대, WiFi 및 WiMax 네트워크)를 포함한다. "전송 매체"라는 용어는 머신에 의해 실행되는 명령어를 저장, 엔코딩 또는 운반할 수 있고 디지털 또는 아날로그 통신 신호를 포함하는 임의의 무형의 매체 또는 이런 소프트웨어의 통신을 도와주는 다른 무형의 매체를 포함하는 것으로 여겨져야 한다.
비록 실시예가 특정의 예시적인 실시예를 참조하여 설명되었지만, 본 발명의 사상과 범주를 벗어나지 않으면서 다양한 수정과 변경이 이 실시예에 가해질 수 있음이 자명할 것이다. 따라서 상세한 설명과 도면은 제한적인 의미가 아닌 예시를 위한 것으로 여겨져야 한다. 본 명세서의 일부를 이루는 첨부 도면은 제한적인 것이 아니라 예시를 위해서 주제가 실시될 수도 있는 특정 실시예를 보여준다. 예시된 실시예는 본 기술분야에 숙련된 사람이 본원에 개시된 요지를 실시하는 것을 가능하게 할 만큼 충분히 상세하게 설명되었다. 다른 실시예들이 본원에 개시된 실시예로부터 활용 및 유도될 수 있으므로, 본원의 범주를 벗어나지 않으면서 구조적 및 논리적 대체와 변화가 이루어질 수도 있다. 그러므로 상세한 설명을 제한적 의미로 받아들여서는 안 되며, 다양한 실시예의 범주는 오로지 첨부된 특허청구범위와 이 청구범위가 자격을 부여하는 모든 등가 내용에 의해서만 제한된다.
이런 실시예의 발명적 주제는 본원에서 개별적 및/또는 집단적으로 "발명"이라는 용어로 언급될 수 있는데, 이것은 단순히 편의상 그런 것으로, 하나 이상이 실제로 개시되는 경우에 자발적으로 본원의 범주를 임의의 단일 발명 또는 발명적 개념으로 제한하려는 의도는 없다. 그러므로 본원에 특정 실시예가 예시 및 설명되었더라도, 동일한 목적을 달성하도록 추산된 임의의 배열이 특정의 도시된 실시예를 대체할 수 있음을 인지해야 한다. 본 개시물은 다양한 실시예의 모든 임의의 채택 또는 변형을 포함하도록 의도된다. 위의 실시예의 조합과 본원에 구체적으로 설명되지 않은 다른 실시예도 위의 설명을 살펴본다면 당업자에게 자명할 것이다.

Claims (21)

  1. 하나 이상의 모듈을 포함하는 시스템으로서,
    상기 하나 이상의 모듈은,
    서버에 검색 질의(search query)를 제출하고,
    상기 서버로부터 제1 개수의 페이지(a first number of pages)에 대응하는 복수의 검색 결과를 수신하며,
    상기 서버로부터 상기 제1 개수의 페이지보다 적은 제2 개수의 페이지를 지시하는 페이지네이션 컨트롤 크기(pagination control size)를 수신하고,
    상기 페이지네이션 컨트롤 크기를 가지면서 상기 제2 개수의 페이지 중 하나의 페이지를 선택하도록 동작할 수 있는 페이지네이션 컨트롤과 함께 상기 복수의 검색 결과를 디스플레이하도록 구성되는
    시스템.
  2. 제1항에 있어서,
    상기 제2 개수의 페이지는 상기 검색 질의와 유사한 다른 검색 질의 이후의 검색 결과에 대한 이전의 사용자 상호작용에 기반하는
    시스템.
  3. 제1항에 있어서,
    상기 제2 개수의 페이지는 다른 검색 질의로부터의 검색 결과에 대한 상기 사용자에 의한 이전의 상호작용에 기반하는
    시스템.
  4. 제1항에 있어서,
    상기 제2 개수의 페이지는 상기 사용자의 위치에 기반하는
    시스템.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 복수의 검색 결과는 스크롤 가능 인터페이스(scrollable interface)에 디스플레이되고,
    상기 하나 이상의 모듈은 상기 스크롤 가능 인터페이스의 스크롤링의 분량이 임계값을 넘어서는 것에 응답하여 스크롤 불능 요소(non-scrollable element)에 정제 데이터(refinement data)를 디스플레이하도록 또한 구성되되, 상기 스크롤 불능 요소를 디스플레이하는 것은 상기 복수의 검색 결과를 디스플레이하는 것과 연계하여 수행되는
    시스템.
  6. 제5항에 있어서,
    상기 복수의 검색 결과를 상기 스크롤 가능 인터페이스에 디스플레이하는 것은 초기 정제 데이터의 디스플레이를 포함하는
    시스템.
  7. 제5항에 있어서,
    상기 임계값은 하나 이상의 정제 옵션 중 제1 정제 옵션이 상기 디스플레이를 스크롤 오프(scrolled off)했다는 결정에 기반하는
    시스템.
  8. 제7항에 있어서,
    상기 정제 데이터는 정제 옵션이고, 상기 스크롤 불능 요소는 상기 정제 옵션을 선택하도록 동작할 수 있는
    시스템.
  9. 제5항에 있어서,
    상기 하나 이상의 모듈은 상기 스크롤 가능 인터페이스의 스크롤링의 추가 분량이 추가의 임계값을 넘어서는 것에 응답하여 상기 스크롤 불능 요소를 이동시키도록 또한 구성되는
    시스템.
  10. 제5항에 있어서,
    상기 스크롤 불능 요소는 정제 카테고리이고, 상기 스크롤 불능 요소는 상기 정제 카테고리에 대응하는 정제 옵션이 디스플레이되게 하도록 동작할 수 있으며,
    상기 하나 이상의 모듈은 상기 스크롤 가능 인터페이스의 스크롤링의 추가 분량이 추가 임계값을 넘어서는 것에 응답하여 상기 스크롤 불능 요소에 상기 정제 옵션을 디스플레이하도록 또한 구성되는
    시스템.
  11. 서버에 검색 질의를 제출하는 단계와,
    상기 서버로부터 제1 개수의 페이지에 대응하는 복수의 검색 결과를 수신하는 단계와,
    상기 서버로부터 상기 제1 개수의 페이지보다 적은 제2 개수의 페이지를 지시하는 페이지네이션 컨트롤 크기를 수신하는 단계와,
    상기 페이지네이션 컨트롤 크기를 가지면서 상기 제2 개수의 페이지 중 하나의 페이지를 선택하도록 동작할 수 있는 페이지네이션 컨트롤과 함께 상기 복수의 검색 결과를 디스플레이하는 단계를 포함하는
    방법.
  12. 제11항에 있어서,
    상기 제2 개수의 페이지는 상기 검색 질의와 유사한 다른 검색 질의 이후의 검색 결과에 대한 이전의 사용자 상호작용에 기반하는
    방법.
  13. 제11항에 있어서,
    상기 제2 개수의 페이지는 다른 검색 질의 이후 검색 결과에 대한 상기 사용자에 의한 이전의 상호작용에 기반하는
    방법.

  14. 제11항에 있어서,
    상기 제2 개수의 페이지는 상기 사용자의 위치에 기반하는
    방법.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    상기 복수의 검색 결과는 스크롤 가능 인터페이스에 디스플레이되고,
    상기 방법은 상기 스크롤 가능 인터페이스의 스크롤링의 분량이 임계값을 넘어서는 것에 응답하여 스크롤 불능 요소에 정제 데이터를 디스플레이하는 단계를 더 포함하되, 상기 스크롤 불능 요소에 디스플레이하는 단계는 상기 복수의 검색 결과를 디스플레이하는 단계와 연계하여 수행되는
    방법.
  16. 제15항에 있어서,
    상기 복수의 검색 결과를 상기 스크롤 가능 인터페이스에 디스플레이하는 것은 초기 정제 데이터의 디스플레이를 포함하는
    방법.
  17. 제15항에 있어서,
    상기 임계값은 하나 이상의 정제 옵션 중 제1 정제 옵션이 상기 디스플레이를 스크롤 오프했다는 결정에 기반하는
    방법.
  18. 제17항에 있어서,
    상기 정제 데이터는 정제 옵션이고, 상기 스크롤 불능 요소는 상기 정제 옵션을 선택하도록 동작할 수 있는
    방법.
  19. 제15항에 있어서,
    상기 방법은, 상기 스크롤 가능 인터페이스의 스크롤링의 추가 분량이 추가의 임계값을 넘어서는 것에 응답하여 상기 스크롤 불능 요소를 이동시키는 단계를 더 포함하는
    방법.

  20. 명령어를 포함하는 비일시적 머신 판독가능 저장 매체로서,
    상기 명령어는, 머신의 하나 이상의 프로세서에 의해 실행될 때 상기 머신으로 하여금 동작을 수행하게 하되,
    상기 동작은,
    서버에 검색 질의를 제출하는 것과,
    상기 서버로부터 제1 개수의 페이지에 대응하는 복수의 검색 결과를 수신하는 것과,
    상기 서버로부터 상기 제1 개수의 페이지보다 적은 제2 개수의 페이지를 지시하는 페이지네이션 컨트롤 크기를 수신하는 것과,
    상기 페이지네이션 컨트롤 크기를 가지면서 상기 제2 개수의 페이지 중 하나의 페이지를 선택하도록 동작할 수 있는 페이지네이션 컨트롤과 함께 상기 복수의 검색 결과를 디스플레이하는 것을 포함하는
    머신 판독가능 저장 매체.
  21. 머신의 하나 이상의 프로세서에 의해 실행될 때 상기 머신으로 하여금 제11항 내지 제19항 중 어느 한 항의 방법을 수행하게 하는 명령어를 갖는
    머신 판독가능 매체.
KR1020167008898A 2013-09-05 2014-09-04 무결절성 페이지네이션 KR20160051871A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361874286P 2013-09-05 2013-09-05
US61/874,286 2013-09-05
US201361915634P 2013-12-13 2013-12-13
US61/915,634 2013-12-13
US14/201,000 US9613161B2 (en) 2013-09-05 2014-03-07 Seamless pagination
US14/201,000 2014-03-07
PCT/US2014/054126 WO2015035069A1 (en) 2013-09-05 2014-09-04 Seamless pagination

Publications (1)

Publication Number Publication Date
KR20160051871A true KR20160051871A (ko) 2016-05-11

Family

ID=52584704

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167008898A KR20160051871A (ko) 2013-09-05 2014-09-04 무결절성 페이지네이션

Country Status (8)

Country Link
US (4) US9613161B2 (ko)
EP (1) EP3042313A4 (ko)
JP (1) JP6397028B2 (ko)
KR (1) KR20160051871A (ko)
CN (1) CN105518655A (ko)
AU (1) AU2014315161B2 (ko)
CA (1) CA2922743C (ko)
WO (1) WO2015035069A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9613161B2 (en) 2013-09-05 2017-04-04 Paypal, Inc. Seamless pagination
US9934207B1 (en) * 2014-05-02 2018-04-03 Tribune Publishing Company, Llc Online information system with continuous scrolling and previous section removal
US10459608B2 (en) * 2014-12-01 2019-10-29 Ebay Inc. Mobile optimized shopping comparison
US10120938B2 (en) * 2015-08-01 2018-11-06 MapScallion LLC Systems and methods for automating the transmission of partitionable search results from a search engine
KR101714218B1 (ko) 2015-09-11 2017-03-08 현대자동차주식회사 환경차량의 정지 전 크립토크 제어 해제 방법
US20170124161A1 (en) * 2015-11-02 2017-05-04 Ebay Inc. Presentation of digital data
CN105389386B (zh) * 2015-12-10 2019-03-26 无锡天脉聚源传媒科技有限公司 一种基于搜索结果的分页处理方法和装置
US10909170B2 (en) * 2016-04-06 2021-02-02 Baidu Usa Llc Method for processing and rendering feed-like based images for mobile devices
US20170293593A1 (en) * 2016-04-12 2017-10-12 International Business Machines Corporation Managing node pagination for a graph data set
JP6721049B2 (ja) * 2016-08-01 2020-07-08 富士通株式会社 ページ表示プログラム、ページ表示装置、及びページ表示方法
US10620816B2 (en) * 2016-10-11 2020-04-14 Salesforce.Com, Inc. System for displaying elements of a scrollable list
CN106843901B (zh) * 2017-02-10 2020-08-25 广州优视网络科技有限公司 一种页面渲染和验证的方法和装置
US20190050455A1 (en) * 2017-08-08 2019-02-14 Rubrik, Inc. Adaptive page rendering for a data management system
US10701161B2 (en) * 2017-08-28 2020-06-30 Citrix Systems, Inc. Wrapping continuation tokens to support paging for multiple servers across different geolocations
US10257329B2 (en) * 2017-09-08 2019-04-09 National Instruments Corporation Wireless communications apparatus and method for performing low latency high throughput layer 2 operations
CN110770692B (zh) * 2017-10-03 2023-10-13 谷歌有限责任公司 从存储器传输数据以管理图形输出延时
CN109101658B (zh) * 2018-08-31 2022-05-10 优视科技新加坡有限公司 信息搜索方法、装置及设备/终端/服务器
US20200097499A1 (en) * 2018-09-26 2020-03-26 Rovi Guides, Inc. Systems and methods for generating query suggestions
US11468054B2 (en) * 2019-06-11 2022-10-11 Jpmorgan Chase Bank, N.A. Systems and methods for automated analysis of business intelligence
US10997262B2 (en) 2019-09-05 2021-05-04 International Business Machines Corporation Infinite scrolling search
CN111787043A (zh) * 2019-09-30 2020-10-16 北京京东尚科信息技术有限公司 数据请求方法和装置
US11789601B2 (en) * 2019-11-05 2023-10-17 Dell Products L.P. System and method for identifying user intent using four-dimensional coordinates of an input pointer
US11321737B2 (en) * 2019-12-13 2022-05-03 Ebay Inc. Techniques of prefetching operation cost based digital content and digital content with emphasis
CN111026993A (zh) * 2019-12-26 2020-04-17 政采云有限公司 一种网页选框的选项展示方法及相关装置
CN113760272A (zh) * 2020-08-24 2021-12-07 北京沃东天骏信息技术有限公司 信息展示方法、装置、设备及存储介质
US11593391B2 (en) 2020-12-14 2023-02-28 Microsoft Technology Licensing, Llc Determination of result data for small multiples based on subsets of a data set
US20230133815A1 (en) * 2021-10-29 2023-05-04 Carvana Llc Systems and methods for displaying search results

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339339A (ja) * 1999-05-31 2000-12-08 Denso Corp 情報検索装置
US7143362B2 (en) 2001-12-28 2006-11-28 International Business Machines Corporation System and method for visualizing and navigating content in a graphical user interface
US7539674B2 (en) 2004-04-08 2009-05-26 Yahoo! Inc. Systems and methods for adaptive scheduling of references to documents
US7296224B2 (en) * 2004-04-23 2007-11-13 Hewlett-Packard Development Company, L.P. Method for assigning graphical images to pages
US7860871B2 (en) 2005-09-14 2010-12-28 Jumptap, Inc. User history influenced search results
US7483893B2 (en) * 2005-09-26 2009-01-27 Bae Systems, Inc. System and method for lightweight loading for managing content
US7667719B2 (en) * 2006-09-29 2010-02-23 Amazon Technologies, Inc. Image-based document display
US20080148192A1 (en) * 2006-12-15 2008-06-19 Iac Search & Media, Inc. Toolbox pagination
US9395884B2 (en) 2008-09-24 2016-07-19 Sap Se Method and system for navigating between pages
US8326835B1 (en) 2008-12-02 2012-12-04 Adobe Systems Incorporated Context-sensitive pagination as a function of table sort order
US20100146012A1 (en) * 2008-12-04 2010-06-10 Microsoft Corporation Previewing search results for suggested refinement terms and vertical searches
JP2011122583A (ja) 2009-12-10 2011-06-23 Haruo Ichinoseki 自動アイドリングストップシステム
US10276170B2 (en) * 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10360605B2 (en) * 2010-03-29 2019-07-23 Rakuten, Inc. Server apparatus, information providing method, information providing program, recording medium recording the information providing program, and information providing system
US20130024394A1 (en) * 2010-03-31 2013-01-24 Rakuten, Inc. Server apparatus, reaction transmitting program, recording medium having computer-readable reaction transmitting program recorded thereon, terminal device, reaction counting method, and reaction counting system
CA2738090C (en) 2010-04-23 2014-07-15 Research In Motion Limited Mobile wireless communications device having scrolling based pagination and related methods
US9754043B2 (en) 2010-07-09 2017-09-05 Facebook, Inc. Rendering structured documents with place-markers
US8812977B2 (en) * 2010-08-12 2014-08-19 Salesforce.Com, Inc. Accessing multi-page data using a page index in a scrollbar
US9645722B1 (en) * 2010-11-19 2017-05-09 A9.Com, Inc. Preview search results
US20130124496A1 (en) * 2011-11-11 2013-05-16 Microsoft Corporation Contextual promotion of alternative search results
CN102591969A (zh) * 2011-12-31 2012-07-18 北京百度网讯科技有限公司 基于用户历史行为提供搜索结果的方法及服务器
US9786001B2 (en) 2012-09-04 2017-10-10 Ebay Inc. Systems and methods for facilitating feed in a network-based marketplace
US9613161B2 (en) 2013-09-05 2017-04-04 Paypal, Inc. Seamless pagination

Also Published As

Publication number Publication date
JP6397028B2 (ja) 2018-09-26
US20170205973A1 (en) 2017-07-20
JP2016537741A (ja) 2016-12-01
US20220091704A1 (en) 2022-03-24
CA2922743A1 (en) 2015-03-12
CN105518655A (zh) 2016-04-20
US20150066907A1 (en) 2015-03-05
CA2922743C (en) 2018-09-18
AU2014315161A1 (en) 2016-03-17
US9613161B2 (en) 2017-04-04
EP3042313A1 (en) 2016-07-13
EP3042313A4 (en) 2017-04-26
AU2014315161B2 (en) 2017-08-10
US11995290B2 (en) 2024-05-28
US10282060B2 (en) 2019-05-07
US20200004390A1 (en) 2020-01-02
US11237700B2 (en) 2022-02-01
WO2015035069A1 (en) 2015-03-12

Similar Documents

Publication Publication Date Title
US11995290B2 (en) Seamless pagination
US11640408B2 (en) Search guidance
JP6916351B2 (ja) 通信セッションの状態の保存
US9607055B2 (en) System and method for dynamically retrieving data specific to a region of a layer
CA2861616C (en) Method and system to provide a scroll map
US11176574B2 (en) Contextual secondary content for search results
US11455348B2 (en) Systems and methods for saving and presenting a state of a communication session
US20150106181A1 (en) Method and system for providing a coupon during an online checkout process
US11087359B1 (en) Immersive content items
US8533056B2 (en) Customizing an online shopping experience for a user
KR102159956B1 (ko) 상품 사진들 및 상기 상품 사진들과 연관된 정보들을 포함하는 웹 페이지들을 제공하는 서버 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application