KR20210124876A - 확장 현실 환경에서 웹페이지를 보기 위한 전자 장치 및 방법 - Google Patents

확장 현실 환경에서 웹페이지를 보기 위한 전자 장치 및 방법 Download PDF

Info

Publication number
KR20210124876A
KR20210124876A KR1020200141274A KR20200141274A KR20210124876A KR 20210124876 A KR20210124876 A KR 20210124876A KR 1020200141274 A KR1020200141274 A KR 1020200141274A KR 20200141274 A KR20200141274 A KR 20200141274A KR 20210124876 A KR20210124876 A KR 20210124876A
Authority
KR
South Korea
Prior art keywords
elements
menu
webpage
candidate
comparison
Prior art date
Application number
KR1020200141274A
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 삼성전자주식회사
Priority to PCT/KR2021/004256 priority Critical patent/WO2021206408A1/en
Publication of KR20210124876A publication Critical patent/KR20210124876A/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/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/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
    • 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/954Navigation, e.g. using categorised browsing
    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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/0483Interaction with page-structured environments, e.g. book metaphor
    • 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/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

확장 현실(XR) 웹 리더에 의해 요청된 웹페이지를 검색하는 동작을 포함하는 방법을 개시한다. 상기 방법은 웹페이지의 하나 이상의 콘텐츠 요소 및 웹페이지의 하나 이상의 메뉴 요소를 결정하는 동작을 더 포함한다. 상기 메뉴 요소는 웹페이지에 링크된 추가 콘텐츠에 액세스하기 위한 탐색 컨트롤을 포함할 수 있다. 상기 방법은 하나 이상의 메뉴 요소를 XR 웹 리더의 하나 이상의 미리 정의된 메뉴 인터페이스에 매핑하는 동작을 더 포함한다. 상기 방법은 XR 웹 리더를 통해 웹페이지를 제공하는 동작을 더 포함한다. 상기 하나 이상의 콘텐츠 요소는 XR 웹 리더 인터페이스의 하나 이상의 제1계층에 제공될 수 있으며, 상기 하나 이상의 미리 정의된 메뉴 인터페이스는 XR 웹 리더의 인터페이스의 하나 이상의 제2계층에 제공될 수 있다.

Description

확장 현실 환경에서 웹페이지를 보기 위한 전자 장치 및 방법{ELECTRONIC DEVICE AND METHOD FOR VIEWING WEBPAGES IN EXTENDED REALITY ENVIRONMENTS}
본 개시는 일반적으로 확장 현실(extended reality: XR) 시스템에 관한 것으로, 특히 XR 환경에서 웹페이지를 보는 것에 관한 것이다.
확장 현실(XR) 시스템은 일반적으로 컴퓨터 생성 환경 및/또는 적어도 일부의 XR 아티팩트들(artifiacts)을 포함하는 실제 환경을 포함할 수 있다. 이러한 XR 시스템 또는 세계 및 관련 XR 아티팩트는 전형적으로 다양한 애플리케이션들(예컨대, 비디오 게임)을 포함하며, 사용자가 컴퓨터로 생성된 표현(예컨대, 아바타)의 형태로 그 존재를 조작하여 이들 XR 아티팩트를 활용하는 것을 가능하게 한다. 전형적인 XR 시스템에서, 이미지 데이터는, 예를 들어, 이미지 데이터를 생성하는 기본 그래픽 생성 장치에 물리적 유선 연결을 통해 연결될 수 있는 강건한 헤드 마운트 디스플레이(head-mounted display: HMD) 상에서 렌더링(rendering)될 수 있다. 어떤 경우에는, XR 시스템에서 웹페이지들과 같은 다른 콘텐츠를 보는 것이 바람직할 수도 있다(예컨대, 웹 리더 애플리케이션(web reader application)을 통해서). 그렇지만, 웹페이지는 전형적으로 2차원 공간에서 보이도록 디자인된다(예컨대, 랩톱, 스마트폰 또는 태블릿 등의 스크린에서).
본 문서는 XR 시스템에서 웹페이지 보기의 성능을 개선하기 위해 XR 환경에서 웹페이지를 보기 위한 전자 장치 및 방법이 제공될 수 있다.
본 문서의 특정 실시예들에 따르면, 전자 장치에서의 웹페이지를 보기 위한 방법은, 확장 현실(Extended Reality: XR) 웹 리더에 의해 요청된 웹페이지를 검색하는 동작, 웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하는 동작, 상기 하나 이상의 메뉴 요소는 웹페이지에 링크된 추가 콘텐츠에 액세스하기 위한 내비게이션 제어들을 포함하며, 상기 하나 이상의 메뉴 요소를 상기 XR 웹 리더의 하나 이상의 지정된 메뉴 인터페이스에 매핑하는 동작 및 상기 XR 웹 리더를 통해 웹페이지를 표현하는 동작을 포함하며, 상기 하나 이상의 콘텐츠 요소는 상기 XR 웹 리더의 인터페이스의 하나 이상의 제1 계층 상에 제공되며, 상기 하나 이상의 지정된 메뉴 인터페이스는 상기 XR 웹 리더의 인터페이스의 하나 이상의 제2 계층 상에 제공될 수 있다.
본 문서의 특정 실시예들에 따르면, 전자 장치는, 적어도 하나의 디스플레이, 명령들을 포함하는 하나 이상의 비-일시적 컴퓨터 판독 가능 저장 매체 및 상기 저장 매체에 연결된 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는 확장 현실(XR) 웹 리더에 의해 요청된 웹페이지를 검색하고, 상기 웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하고, 상기 메뉴 요소는 웹페이지에 링크된 추가 콘텐츠에 액세스하기 위한 내비게이션 컨트롤을 포함하며, 상기 하나 이상의 메뉴 요소를 상기 XR 웹 리더의 하나 이상의 미리 정의된 메뉴 인터페이스에 매핑하고, 상기 하나 이상의 디스플레이 상에 상기 XR 웹 리더를 통해 웹페이지를 제공하는 명령들을 실행하도록 구성되며, 상기 하나 이상의 콘텐츠 요소는 상기 XR 웹 리더의 인터페이스의 하나 이상의 제1 계층에서 제공되고, 상기 하나 이상의 지정된 메뉴 인터페이스는 상기 XR 웹 리더의 인터페이스의 하나 이상의 제2 계층에 제공될 수 있다.
본 문서의 특정 실시예들에 따르면, 컴퓨터 판독 가능 비-일시적 저장 매체는 전자 장치의 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금, 확장 현실(XR) 웹 리더에 의해 요청된 웹페이지를 검색하고, 상기 웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하고, 상기 메뉴 요소는 웹페이지에 링크된 추가 콘텐츠에 액세스하기 위한 내비게이션 컨트롤을 포함하며, 상기 하나 이상의 메뉴 요소를 상기 XR 웹 리더의 하나 이상의 지정된 메뉴 인터페이스에 매핑하고 및 상기 XR 웹 리더를 통해 웹페이지를 제공하도록 하는 명령들을 포함하며, 상기 하나 이상의 콘텐츠 요소는 상기 XR 웹 리더의 인터페이스의 하나 이상의 제1 계층에 제공되고, 상기 하나 이상의 지정된 메뉴 인터페이스는 상기 XR 웹 리더의 인터페이스의 하나 이상의 제2 계층에 제공될 수 있다.
본 문서의 특정 실시예들에 따라, XR 환경의 컴퓨팅 시스템에서 XR 웹 리더에 의해 요청된 웹페이지를 검색하고, 웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하고, 하나 이상의 메뉴 요소를 XR 웹 리더의 하나 이상의 지정된 메뉴 인터페이스에 매핑하여 상기 XR 웹 리더를 통해 웹페이지를 표현함으로써, XR 환경의 컴퓨팅 시스템에서 웹페이지 보기의 성능을 개선할 수 있다.
도 1은 특정 실시 예들에 따른 확장 현실(XR) 환경의 예를 도시한 도면이다.
도 2는 특정 실시 예들에 따른 XR 웹 리더(web reader)를 통해 웹페이지를 제시하기 위한 프로세스 예의 개략도를 도시한 도면이다.
도 3은 특정 실시 예들에 따른 분류 알고리즘(categorizing algorithm)을 위한 방법의 규칙도(rules diagram)를 도시한 도면이다.
도 4는 특정 실시 예들에 따른 비교 알고리즘(comparison algorithm)을 위한 흐름도를 도시한 도면이다.
도 5는 특정 실시 예들에 따른 메뉴 요소를 하나 이상의 메뉴 인터페이스에 매핑하는 방법에 대한 흐름도를 도시한 도면이다.
도 6은 특정 실시 예들에 따른 다수의 미리 결정된 메뉴 인터페이스들에 식별된 메뉴 요소들의 매핑 예를 도시한 도면이다.
도 7은 특정 실시 예들에 따른 다수의 미리 결정된 메뉴 인터페이스들에 식별된 메뉴 요소들의 매핑 예를 도시한 도면이다.
도 8은 특정 실시 예들에 따른 다수의 미리 결정된 메뉴 인터페이스들에 비디오 메뉴 요소의 매핑 예를 도시한 도면이다.
도 9는 특정 실시 예들에 따른 XR 웹 리더를 통해 웹페이지를 제시하는 방법에 대한 흐름도를 도시한 도면이다.
도 10은 특정 실시 예들에 따른 컴퓨터 시스템 예를 도시한 도면이다.
본 문서에 기술된 특정 실시 예들은 웹페이지를 파싱(parsing)하고 메뉴 상에서 상기 웹페이지의 요소들을 재-매핑(re-mapping)하는 것에 관한 것이다. 특정 실시 예들에 있어, 컴퓨팅 시스템(예: 전자 장치)은 확장 현실(XR) 웹 리더(web reader)에 의해 요청된 웹페이지를 검색할 수 있다. 웹 리더는 웹 브라우저(web browser), 웹뷰 애플리케이션(webview application)(예컨대, 이메일, 메시징 또는 소셜 애플리케이션과 같은 또 다른 애플리케이션 안에 내장된 브라우저 요소), 또는 웹 콘텐츠(예컨대, HTML, JavaScript 또는 CSS)를 파싱하고 렌더링(rendering)할 수 있는 임의의 애플리케이션 또는 구성요소일 수 있다. 컴퓨팅 시스템은 웹페이지의 하나 이상의 콘텐츠 요소 및 하나 이상의 메뉴 요소를 결정할 수 있다. 상기 하나 이상의 메뉴 요소는 웹페이지에 링크된 추가 콘텐츠에 액세스하기 위한 내비게이션 컨트롤을 포함할 수 있다. 상기한 하나 이상의 콘텐츠 요소는 웹페이지를 통해(예컨대, 웹페이지의 메인 콘텐츠 섹션 내에서) 제공되는 텍스트, 이미지 또는 비디오 정보와 같은, 해당 웹페이지의 실질적인 콘텐츠를 직접 또는 웹페이지에 내장된 상태로 포함할 수 있다. 다음으로, 컴퓨팅 시스템은 하나 이상의 메뉴 요소를 하나 이상의 미리 정의된 메뉴 인터페이스에 매핑할 수 있다. 미리 정의된 메뉴 인터페이스는 XR 웹 리더의 메뉴 인터페이스, XR 운영 체제(OS)의 메뉴 인터페이스, XR 장치 또는 장치 컨트롤러의 하드웨어 메뉴, 또는 터치-바(touch-bar)의 메뉴 인터페이스일 수 있다. 컴퓨팅 시스템은 XR 웹 리더를 통해 웹페이지를 나타낼 수 있으며, 여기서 하나 이상의 콘텐츠 요소는 XR 웹 리더 인터페이스의 하나 이상의 제1계층에 표시될 수 있으며, 또한 상기한 하나 이상의 미리 정의된 메뉴 인터페이스는 XR 웹 리더의 인터페이스의 하나 이상의 제2계층에 표시될 수 있다.
특정 실시 예들에서, 컴퓨팅 시스템은 XR 웹 리더의 사용자의 초점을 결정할 수 있다. 사용자의 초점은 사용자가 상호 작용하기를 원하는 웹페이지의 하나 이상의 요소를 나타낼 수 있다. 사용자의 초점에 기초하여, 컴퓨팅 시스템은 하나 이상의 미리 정의된 메뉴 인터페이스의 특성을 변경할 수 있다. 상기한 하나 이상의 미리 정의된 메뉴 인터페이스의 특성은 메뉴 인터페이스의 가시성(visibility) 또는 메뉴 인터페이스의 위치 중 하나 또는 다수를 포함할 수 있다. 특정 실시 예들에서, 사용자의 초점을 결정하는 것은 사용자의 시선, 사용자의 헤드 위치 또는 사용자의 제스처 중의 하나 또는 다수 에 기초할 수 있다.
특정 실시 예들에서, 컴퓨팅 시스템은 웹페이지의 문서 객체 모델(Document Object Model: DOM)에 액세스함으로써 웹페이지의 하나 이상의 콘텐츠 요소 및 그 웹페이지의 하나 이상의 메뉴 요소를 결정할 수 있다. DOM은 웹페이지의 각 부분이 계층 구조로 표현되는 웹페이지의 표현이다. 예를 들어, 제한이 없이, DOM에는 웹페이지의 구조와 구성요소들 간의 관계에 대한 정보가 포함될 수 있어, 웹 리더가 DOM을 기반으로 웹페이지를 자동으로 파싱하고 디스플레이할 수 있게 한다. 특정 실시 예들에서, 컴퓨터 시스템은 하나 이상의 후보 요소(candidate elements)를 식별하기 위해 DOM을 파싱할 수 있다. 일례로서, 제한 없이, 후보 요소는 웹페이지의 DOM 구조에 속하는 것으로 식별된 요소를 포함할 수 있다. 특정 실시 예들에서, 상기한 하나 이상의 후보 요소는 너비 우선 검색(breadth first search: BFS) 알고리즘을 사용하여 수집될 수 있다. BFS 알고리즘은 데이터의 계층 구조의 순회(traversal) 방법으로, 상기 알고리즘은 모 데이터 요소(parent data element)에서 가장 가까운 것부터 가장 먼 것까지 데이터 요소들을 평가하여 계층 구조의 데이터 요소들을 반복적으로 탐색한다. 상기한 하나 이상의 후보 요소의 각각은 콘텐츠 요소 또는 메뉴 요소로 분류될 수 있다. 분류는 후보 요소의 위치, 후보 요소의 높이 대 너비 비율, 후보 요소와 연관된 하나 이상의 HTML 태그(tags), 후보 요소의 하나 이상의 HTML 역할 속성(role attributes), 후보 요소의 하나 이상의 HTML 탭인덱스 속성(tabindex attributes), 또는 해당 후보 요소의 하나 이상의 다른 후보 요소와 부모-자식 관계(parent-child relationship) 중의 하나 또는 다수에 기초할 수 있다.
특정 실시 예들에서, 컴퓨터 시스템은 하나 이상의 후보 요소가 컨텐츠 또는 메뉴 요소로 분류될 수 없다고 결정할 수 있다. 일례로서, 제한 없이, 컴퓨터 시스템에 익숙하지 않은 DOM 구조를 사용하는 웹페이지는 웹페이지 요소의 구조에 대한 추가 문맥(context) 없이 분류하기 어려울 수 있다. 일반적으로, 웹 개발자는 어떤 하나의 요소 구조를 따르지 않으며, 따라서 요소 구조는 웹페이지마다 달라진다. 일례로서, 제한 없이, 웹페이지는 메뉴 요소를 표시하기 위해 <a> 속성을 사용하거나 사용하지 않을 수도 있으며, 웹페이지의 콘텐츠 요소를 표시하기 위해 <main> 속성을 사용하거나 사용하지 않을 수도 있다. 따라서 컴퓨터 시스템은 식별된 요소들을 콘텐츠 또는 메뉴 요소로 분류할 수가 없을 수도 있다. 따라서, 컴퓨터 시스템은 XR 웹 리더에 의해 요청된 웹페이지와 동일한 도메인 내에서 하나 이상의 비교 웹페이지를 검색할 수도 있다. 다음으로, 컴퓨터 시스템은 하나 이상의 비교 웹페이지 각각의 DOM에 액세스할 수도 있다. 또한, 컴퓨터 시스템은 상기 하나 이상의 비교 웹페이지 각각의 하나 이상의 비교 요소를 수집하기 위해 상기 하나 이상의 비교 웹페이지 각각의 DOM을 파싱할 수도 있다.
다음으로, 컴퓨터 시스템은 XR 웹 리더에 의해 요청된 웹페이지의 하나 이상의 후보 요소를 하나 이상의 비교 웹페이지의 하나 이상의 비교 요소의 각각과 비교할 수 있다. 특정 실시 예들에서, 컴퓨터 시스템은 하나 이상의 비교 웹페이지 각각의 DOM 구조에 속하는 것으로 식별된 요소에 대응하는 비교 요소를 수집할 수 있다. 컴퓨터 시스템은 상기한 비교에 기초하여 하나 이상의 메뉴 요소를 결정할 수 있으며, 여기서 상기 메뉴 요소들은 하나 이상의 비교 웹페이지 및 XR 웹 리더에 의해 요청된 웹페이지에 대해 공통인 후보 요소들이다. 일례로서, 제한 없이, 컴퓨터 시스템은 XR 웹 리더에 의해 요청된 웹페이지의 DOM 구조에 속하는 후보 요소가 또한, 하나 이상의 비교 웹페이지의 DOM 구조에 속하는 것으로 결정할 수 있다. 일례로서, 제한 없이, 이러한 요소는 XR 웹 리더가 요청한 웹페이지와 하나 이상의 비교 웹페이지 모두에 공통으로 간주된다. 따라서, 컴퓨터 시스템은 후보 요소가 XR 웹 리더에 의해 요청된 웹페이지의 메뉴 요소라고 결정할 수 있다. 일례로서, 제한 없이, XR 웹 리더에 의해 요청된 웹페이지의 DOM 구조는 DOM 구조에 속하는 후보 요소가 웹페이지 상단 근처에 표시되어야 하는 단어 "Local"을 포함하는 것을 나타낼 수 있다. XR 웹 리더에 의해 홀로 요청된 웹페이지의 DOM 구조에 기초하여, 분류(categorizing) 알고리즘은 "Local"이라는 단어를 포함하는 후보 요소가 메뉴 요소라고 결정을 못 할 수도 있다. 그러나 분류 알고리즘은 하나 이상의 비교 웹페이지 각각의 하나 이상의 비교 요소를 수집할 수 있으며, 여기서 상기 하나 이상의 비교 웹페이지의 DOM 구조는 상기 하나 이상의 비교 웹 페이지 각각의 DOM 구조에 속하는 비교 요소가 하나 이상의 비교 웹 페이지의 상단 근처에 표시되어야 하는 단어 "Local"을 포함함을 나타낸다. 상기 비교 알고리즘은 "Local"이라는 단어를 포함하고 웹페이지의 상단 근처에 표시될 요소가 XR 웹 리더에 의해 요청된 웹페이지와 상기 하나 이상의 비교 웹페이지의 모두에 공통이라고 결정할 수 있다. 상기한 비교에 기초하여, 비교 알고리즘은 단어 "Local"을 포함하는 후보 요소가 메뉴 요소라고 결정할 수 있다.
특정 실시 예들에서, XR 웹 리더 또는 XR 운영 체제 인터페이스의 하나 이상의 미리 정의된 메뉴 인터페이스는 비디오 제어 메뉴 또는 항목 리스트 메뉴 중 하나 또는 다수를 포함한다. 일례로서, 제한 없이, 비디오 제어 메뉴 인터페이스는 비디오의 재생(play), 일시 중지(pause), 되감기(rewind) 또는 빨리 감기(fast forward)를 위한 제어를 포함할 수 있다. 상기한 하나 이상의 메뉴 요소는 웹페이지에 링크된 추가 콘텐츠에 액세스하기 위한 내비게이션 컨트롤을 포함할 수 있다. 사용자는 비디오 제어 메뉴 인터페이스의 하나 이상의 컨트롤과 상호 작용하여 웹페이지를 통해 액세스할 수 있는 비디오 콘텐츠를 제어할 수 있다. 일례로서 제한 없이, 항목 목록 메뉴는 하나 이상의 메뉴 요소의 목록을 포함할 수 있다. 아이템 목록 메뉴를 포함하는 하나 이상의 메뉴 요소 각각은 웹페이지를 통해 액세스 가능한 콘텐츠 요소와 연관될 수 있다. 또 다른 예로서, 제한 없이, 메뉴 인터페이스는 하나 이상의 서브-메뉴를 포함할 수 있다. 특정 실시 예들에서, 컴퓨터 시스템은 하나 이상의 제2계층에 제시된 하나 이상의 미리 정의된 메뉴 인터페이스에 따라 하나 이상의 제1계층에 제시된 하나 이상의 콘텐츠 요소와 상호작용하도록 하는 명령을 사용자로부터 추가로 수신할 수 있다. 일례를 들어, 제한 없이, 사용자는 비디오 제어 메뉴 인터페이스에서 "play" 제어를 선택하여 웹페이지를 통해 액세스할 수 있는 비디오 재생을 시작할 수 있다. 사용자는 재생, 일시 정지, 되감기 또는 빨리 감기에 해당하는 컨트롤을 선택하여 그 비디오 요소를 제어할 수 있다. 특정 실시 예들에서, 하나 이상의 미리 정의된 메뉴 인터페이스 및 하나 이상의 콘텐츠 요소는 클라이언트 장치의 하나 이상의 디스플레이에 AR 오버레이(overlay)로서 제시될 수 있다. 상기 클라이언트 장치는 헤드에 장착된 증강현실(AR) 장치를 포함할 수 있다. 상기 AR 오버레이는 현실-세계 디스플레이를 통해 반투명 AR 디스플레이 상에서의 다수의 계층들에 렌더링 될 수 있다. 특정 실시 예들에서, 클라이언트 장치는 헤드에 장착된 가상현실(VR) 장치를 포함할 수 있으며, 여기서 상기 하나 이상의 미리 정의된 메뉴 인터페이스 및 하나 이상의 콘텐츠 요소는 VR 장치의 하나 이상의 디스플레이에서의 VR 공간 내의 객체로 제공된다. VR 객체는 VR 공간 내의 다수의 계층들 상에서 렌더링될 수 있다.
본 문서에 사용된 바와 같이, "확장 현실(extended reality)"은 사용자에게 제시하기 전에 어떤 방식으로든 조작된 전자 기반 현실의 어떤 형태를 의미할 수 있으며, 예를 들어, 가상현실(virtual reality: VR), 증강현실(augmented reality: AR), 혼합현실(mixed reality: MR), 하이브리드 현실(hybrid reality), 시뮬레이션 현실(simulated reality), 몰입형 현실(immersive reality), 홀로그래피(holography), 또는 이들의 조합을 포함한다. 일례로서 제한 없이, "확장 현실" 콘텐츠는 완전히 컴퓨터로 생성된 콘텐츠 또는 캡처된 콘텐츠(예컨대, 실세계 이미지)와 결합된 부분적으로 컴퓨터로 생성된 콘텐츠를 포함할 수 있다. 몇몇 실시 예들에서, "확장 현실" 콘텐츠는 또한 비디오, 오디오, 햅틱 피드백 또는 이들의 어떤 조합을 포함할 수도 있으며, 이들 중 임의의 것은 단일 채널 또는 다중 채널(예컨대, 보는 사람에게 3차원(3D) 효과를 생성하는 스테레오 비디오와 같은)로 제공될 수 있다. 더욱이, 본 문서에서 사용되는 바와 같이, "확장 현실"은, 예를 들어, 확장 현실에서 콘텐츠를 생성하고/하거나 확장 현실에서 활용될 수 있는(예컨대, 활동을 수행하는) 애플리케이션, 제품, 부속품, 서비스 또는 이들의 조합과 연관될 수 있음을 이해하여야 할 것이다. 따라서 "확장 현실" 콘텐츠는 호스트 컴퓨터 시스템에 연결된 헤드 마운트 장치(HMD), 독립형 HMD, 모바일 장치 또는 컴퓨팅 시스템 또는 하나 이상의 시청자에게 확장 현실 콘텐츠를 제공할 수 있는 임의의 다른 하드웨어 플랫폼을 포함하는 다양한 플랫폼들 상에서 구현될 수 있다.
도 1은 특정 실시 예들에 따른 확장 현실(XR) 환경의 예를 도시한 도면이다. 특정 실시 예들에서, 확장 현실(XR) 환경의 XR 시스템(100)은 XR 전자 장치(102), 입력 장치(104) 및 컴퓨팅 플랫폼(106)을 포함할 수 있다. 특정 실시 예들에서, 사용자는 시각적 확장 현실 콘텐츠를 사용자에게 표시할 수 있는 XR 전자 장치(102)를 착용할 수 있다. XR 전자 장치(102)는 오디오 확장 현실 콘텐츠를 사용자에게 제공할 수 있는 오디오 장치를 포함할 수 있다. 특정 실시 예들에서, XR 전자 장치(102)는 환경의 이미지 및 영상을 캡처할 수 있는 하나 이상의 카메라를 포함할 수 있다. XR 전자 장치(102)는 사용자의 수렴 거리(vergence distance)를 결정하기 위한 아이 추적(eye tracking) 시스템을 포함할 수 있다. 어떤 실시 예들에서, XR 전자 장치(102)는 헤드 장착형 디스플레이(HDM)를 포함할 수 있는데, 이것은 도 1에 도시된 바와 같이 폐쇄형(enclosed) 헤드세트일 수 있으며, 이러한 예시에 제한되는 것은 아니다. XR 전자 장치(102)는 비-폐쇄형 헤드세트, 안경, 스마트폰 및 태블릿과 같은 핸드헬드 장치, 또는 XR 콘텐츠를 표시하기 위한 임의의 다른 적절한 장치를 포함하는, 다른 유형의 HMD를 포함할 수도 있다. XR 전자 장치(102)는 불투명, 반투명 또는 투명일 수 있는 하나 이상의 디스플레이를 포함할 수 있다. 입력 장치(104)는, 예를 들어, 트랙 패드 및 하나 이상의 버튼을 포함할 수 있다. 입력 장치(104)는 사용자로부터 입력을 수신하고 그 입력을 컴퓨팅 플랫폼(106) 및/또는 XR 전자 장치(102)로 중계할 수 있다. 특정 실시 예들에서, XR 전자 장치(102)는 하나 이상의 무선 네트워크를 통해 컴퓨팅 플랫폼(106)에 연결될 수 있다. 특정 실시 예들에서, 컴퓨팅 플랫폼(106)은, 예를 들어, 독립형 호스트 컴퓨팅 시스템, XR 전자 장치(102)와 통합된 온-보드 컴퓨터 시스템, 모바일 장치, 또는 입력 장치(104)에 확장 현실 콘텐츠를 제공하고 그로부터 입력을 수신할 수 있는 임의의 다른 하드웨어 플랫폼을 포함할 수 있다. 특정 실시 예들에서, 컴퓨팅 플랫폼(106)은, 예를 들어, XR 전자 장치(102)에서 실행되는 XR 애플리케이션 또는 경험을 호스팅 및 서비스하기에 적합한 클라우드 기반의 컴퓨팅 아키텍처(하나 이상의 서버(110) 및 데이터 저장 장치(112)를 포함하는)를 포함할 수 있다. 예를 들어, 특정 실시 예들에서, 컴퓨팅 플랫폼(106)은 서비스로서의 플랫폼(Platform as a Service: PaaS) 구조, 서비스로서의 소프트웨어(Software as a Service: SaaS) 구조, 서비스로서의 인프라(Infrastructure as a Service: IaaS) 또는 기타 유사한 클라우드 기반 컴퓨팅 아키텍처를 포함할 수 있다.
도 2는 특정 실시 예들에 따른 XR 웹 리더(web reader)를 통해 웹페이지를 제시하기 위한 프로세스 예의 개략도를 도시한 도면이다.
도 2의 도시된 방법(200)은 하나 이상의 프로세싱 장치(예: 전자 장치 또는 도 1의 XR 전자 장치 (102))를 활용하여 수행될 수 있다. 상기 하나 이상의 프로세싱 장치(예: 도 1의 XR 전자 장치 (102))는 하드웨어(예컨대, 범용 프로세서, 그래픽 처리 장치(GPU), 주문형 집적 회로(ASIC), 시스템-온-칩(SoC), 마이크로컨트롤러(microcontroller), 필드 프로그래머블 게이트 어레이(Field-Programmable Gate Array: FPGA), 중앙처리장치(Central Processing Unit: CPU), 애플리케이션 프로세서(Atpplication Processor), 시각 처리 장치(Visual Processing Unit: VPU), 신경 처리 장치(neural processing unit: NPU), 신경 결정 프로세서(neural decision processor: NDP) 또는 이미지 데이터 처리에 적합할 수 있는 기타 처리 장치(들)), 소프트웨어(예컨대, 하나 이상의 프로세서에서 동작/실행되는 명령들), 펌웨어(예컨대, 마이크로코드), 또는 이들의 어떤 조합을 포함할 수 있다.
특정 실시 예에 따른 상기 방법(200)에서는 XR 웹 리더(web reader)를 통해 웹페이지를 표현하는 방법이 제공될 수 있다. XR 웹 리더는 XR 웹 리더의 인터페이스를 통해 표시할 웹페이지를 요청할 수 있다. 웹페이지는 전통적으로 2D 화면(데스크톱, 스마트폰 및 태블릿)에서 볼 수 있도록 설계되었지만, 일반적으로 웹페이지는 다차원 공간 컴퓨팅을 통합할 수 있는 XR 웹 리더를 통해 표시하는 데 최적화되어 있지 않다. 특정 실시 예들에서, 웹페이지는 메뉴 요소(사용자가 웹페이지를 탐색할 수 있도록 하는 헤더, 사이드 메뉴 및 바닥 글) 및 콘텐츠 요소(텍스트, 비디오, 이미지 등)로 파싱될 수 있다. 웹페이지의 메뉴 요소와 콘텐츠 요소는 분리되어 사용자가 상호 작용할 수 있도록 다른 구성으로 제공될 수도 있다. 일반적으로 사용자는 웹페이지 메뉴 요소와 상호 작용하는 것보다 콘텐츠 요소와 상호 작용하는 데 더 많은 시간을 소비할 수 있다. 따라서 XR 웹 리더를 통한 웹페이지의 표현은 배경에서 또는 가상 객체로 환경을 포화시키지 않도록 숨긴 채로 메뉴 요소들을 표현할 수 있다. 상기 방법(200)의 202 동작에서, 특정 실시예에 따른 상기 프로세싱 장치는 확장 현실(XR) 웹 리더에 의해 요청된 웹페이지의 검색을 시작할 수 있다. 그 다음, 204 동작에서, 프로세싱 장치는 분류 알고리즘(categorizing algorithm)을 이용하여 웹페이지의 문서 객체 모델(DOM)을 파싱하여 후보 요소를 수집할 수 있다. 전자 장치는 분류 알고리즘을 이용하여 수집된 후보 요소들 중 어느 것이 메뉴 요소이고 어느 것이 콘텐츠 요소인지를 결정할 수 있다.
206 동작에서, 프로세싱 장치는 요소들(예: 수집된 후보 요소들)의 매핑을 수행할 수 있다. 프로세싱 장치는 수집된 후보 요소들 중에서 메뉴 요소로 결정된 후보 요소를 미리 결정된 XR 메뉴 인터페이스에 매핑할 수 있다. XR 메뉴는 미리 정의된 메뉴 인터페이스일 수 있다. 수집된 후보 요소들 중에서 콘텐츠 요소로 결정된 후보 요소는 추출되어 프레젠테이션을 위해 초점이 맞춰질 수 있는 반면, 그 페이지의 다른 섹션은 초점이 맞춰지지 않을 수도 있다(숨겨져 있지만, 여전히 액세스 가능함). 콘텐츠 요소는 XR 환경 내에서 3차원 표현 및 상호 작용을 위해 최적화될 수도 있다.
특정 실시 예들에서, 분류 알고리즘은 콘텐츠 요소 및 메뉴 요소를 결정하지 못할 수도 있다. 이 경우, 208 동작에서 프로세싱 장치는 비교 알고리즘으로 진행될 수 있다. 프로세싱 장치는 비교 알고리즘을 이용하여 XR 웹 리더에 의해 요청된 웹페이지의 후보 요소와 XR 웹 리더에 의해 요청된 웹페이지와 동일한 도메인 내의 하나 이상의 비교 웹페이지의 DOM에서 파싱된 후보 요소의 비교를 수행할 수 있으며, 이러한 비교 수행을 통해 후보 요소의 필드를 좁힐 수 있다. 프로세싱 장치는 메뉴 요소일 가능성이 있는 후보 요소의 서브세트를 결정하기 위한 비교 알고리즘의 수행 후, 후보 요소의 서브셋에 대한 분류 알고리즘을 수행하는 204 동작으로 돌아갈 수 있다. 210 동작에서, 프로세싱 장치는 사용자의 초점을 결정할 수 있다. 212 동작에서, 프로세싱 장치는 하나 이상의 미리 결정된 XR 메뉴 인터페이스의 하나 이상의 특성을 사용자 초점에 기초하여 수정할 수 있다.
도 3은 특정 실시 예들에 따른 분류 알고리즘(categorizing algorithm)을 위한 방법의 규칙도(rules diagram)를 도시한 도면이다..
특정 실시 예들에 따른 분류 알고리즘은 웹페이지 또는 웹페이지의 섹션들을 파싱하여 웹페이지의 하나 이상의 콘텐츠 요소 및 하나 이상의 메뉴 요소를 결정할 수 있다. 도 3에 도시된 상기 방법(300)은 하나 이상의 프로세싱 장치(예: 전자 장치 또는 도 1의 컴퓨팅 플랫폼 (106))를 활용하여 수행될 수 있다. 상기 하나 이상의 프로세싱 장치는 하드웨어(예를 들어, 범용 프로세서, 그래픽 처리 장치(GPU), 주문형 집적 회로(ASIC), 시스템-온-칩(SoC), 마이크로컨트롤러, 필드 프로그래머블 게이트 어레이(FPGA), 중앙처리장치(CPU), 애플리케이션 프로세서(AP), 시각 처리 장치(VPU), 신경 처리 장치(NPU), 신경 결정 프로세서(NDP) 또는 이미지 데이터 처리에 적합할 수 있는 기타 처리 장치(들)), 소프트웨어(예컨대, 하나 이상의 프로세서에서 동작/실행되는 명령들), 펌웨어(예컨대, 마이크로코드), 또는 이들의 어떤 조합을 포함할 수 있다. 하나 이상의도 3을 참조하면, 302 동작에서, 프로세싱 장치(예: 도 1의 컴퓨팅 플랫폼 (106))는 특정 실시 예들에 따른 분류 알고리즘을 이용하여 XR 웹 리더에 의해 요청된 웹페이지의 DOM을 검색하고 파싱할 수 있다. 304 동작에서, 프로세싱 장치는 상기 분류 알고리즘을 이용하여 하나 이상의 후보 요소를 결정하기 위해 웹페이지의 DOM의 트리 순회(tree traversal)를 수행할 수 있다. 상기 하나 이상의 후보 요소는 너비 우선 탐색(breadth first search: BFS) 유형의 트리 순회 알고리즘을 사용하여 304 동작에서 수집될 수 있다. 프로세싱 장치는 분류 알고리즘을 이용하여 DOM을 파싱하고 상기 결정된 후보 요소들의 각각을 분류하는 것을 시도할 수 있다. 상기 분류 알고리즘은 후보 요소의 위치, 후보 요소의 높이 대 너비 비율(height to width ratio), 후보 요소와 연관된 적어도 하나의 HTML 태그, 후보 요소의 적어도 하나의 HTML 역할 속성, 후보 요소의 적어도 하나의 HTML 탭인덱스(tabindex) 속성, 또는 적어도 하나의 다른 후보 요소와의 상기 후보 요소의 부모-자식(parent-child) 관계 중 적어도 하나를 기준으로 수집된 후보 요소들을 분류하도록 설정될 수 있다.
306 내지 314 동작들은 가능한 유형의 요소들의 목록으로부터의 요소 유형에 기초하여 후보 요소를 메뉴 요소 또는 콘텐츠 요소로 분류하기 위한 규칙의 예시를 나타낸다. 요소들의 유형은 ul, div, img, header, main, article, aside, section, 다른 적절한 요소 유형, 또는 이들의 임의의 조합 중 적어도 하나를 포함할 수 있다. 306 동작에서, 프로세싱 장치는 분류 알고리즘을 이용하여 요소 유형과 연관된 <li> 요소들("list" 요소)의 수를 결정할 수 있다. 308, 310 및 312 동작에서, 프로세싱 장치는 상기 분류 알고리즘을 이용하여 후보 요소의 높이 대 너비 비율을 결정할 수 있다. 또한, 308, 310 및 312 동작에서, 상기 분류 알고리즘은 후보 요소의 위치(예컨대, 페이지 상단, 페이지 하단, 페이지 왼쪽 또는 페이지 오른쪽)를 결정할 수 있다. 314 동작에서, 프로세싱 장치는 상기 분류 알고리즘을 이용하여 후보 요소가 임의의 헤더(header), 꼬리말(footer) 또는 메뉴 요소의 자식 또는 부모인지를 결정할 수 있다. 308 동작에서, 분류 알고리즘의 하나 이상의 규칙에 따르면, 후보 요소는 예를 들어, 목록에 포함된 것(예컨대, 다수의 <li> 요소를 갖는 <ul> 요소) 중 하나 또는 다수에 기초한 헤더 또는 꼬리말 메뉴 요소일 수 있고, 너비는 높이보다 훨씬 크고, 위치는 웹페이지 상단에 인접한 위치일 수 있다. 310 동작에서 분류 알고리즘의 하나 이상의 규칙에 따르면, 후보 요소는 예를 들어, 목록에 포함된 것(예컨대, 다수의 <li> 요소를 갖는 <ul> 요소) 중 하나 또는 다수에 기초한 사이드 메뉴 요소일 수 있고, 높이는 너비보다 훨씬 크고, 위치는 웹페이지의 우측 또는 좌측이거나, <menu> 태그와 연결될 수 있다. 312 동작에서, 분류 알고리즘의 하나 이상의 규칙에 따르면, 후보 요소는 예를 들어, 목록에 포함된 것(예컨대, 다수의 <li> 요소를 갖는 <ul> 요소) 중 하나 또는 다수에 기초한 꼬리말 요소일 수 있으며, 너비는 높이보다 훨씬 크거나, 위치가 웹페이지 하단 또는 하단에 인접한 위치일 수 있다. 상기 후보 요소가 헤더, 꼬리말, 또는 사이드 메뉴 요소인 것으로 결정되면, 프로세싱 장치는 그 결정된 요소를 매핑하기 위해 316 동작으로 수행할 수 있다. 후보 요소가 헤더, 꼬리말 또는 사이드 메뉴 요소가 아닌 것으로 결정되면, 314 동작을 수행할 수 있다. 314 동작에서의 분류 알고리즘의 하나 이상의 규칙에 따르면, 후보 요소는 임의의 헤더 메뉴 요소 또는 사이드 메뉴 요소의 자식 요소가 아닌 하나 이상의 후보 요소, 또는 임의의 헤더 메뉴 요소 또는 사이드 메뉴 요소의 부모 요소가 아닌 후보 요소의 하나 또는 다수에 기초한 콘텐츠 요소일 수 있다.
316 동작에서, 프로세싱 장치는 상기 결정된 메뉴 요소 및 콘텐츠 요소를 XR 웹 리더 인터페이스에 매핑할 수 있다. 318 동작에서, 프로세싱 장치는 사용자의 초점을 결정할 수 있다. 분류 알고리즘은 XR 웹 리더에 의한 웹페이지 로드 요청에 응답하여 수행될 수 있다. 분류 알고리즘은 메뉴 요소와 콘텐츠 요소를 결정하지 못할 수도 있다. 웹페이지는 구조 또는 HTML 태그 속성에 있어 들어맞지 않을 수도 있다. 분류 알고리즘이 메뉴 요소 및 콘텐츠 요소를 결정할 수 없는 것으로 판단되면, 비교 알고리즘이 수행될 수 있다. 비교 알고리즘은 동일한 도메인 내의 웹페이지에 걸쳐서 DOM 요소들의 비교를 수행함으로써 가능한 DOM 요소의 필드를 좁힐 수 있다.
도 4는 특정 실시 예들에 따른 비교 알고리즘(comparison algorithm)을 위한 흐름도를 도시한 도면이다.
비교 알고리즘은 분류 알고리즘이 하나 이상의 후보 요소가 메뉴 요소 및/또는 콘텐츠 요소인지 여부를 결정할 수 없다는 결정에 응답하여 수행될 수 있다.
도 4를 참조하면, 402 동작에서, 특정 실시 예들에 따라서 프로세싱 장치(예: 전자 장치)는 상기 비교 알고리즘을 이용하여 웹페이지의 하나 이상의 후보 요소를 결정하기 위해 XR 웹 리더에 의해 요청된 웹페이지의 DOM을 검색하고 파싱할 수 있다.
404 동작에서, 프로세싱 장치는 상기 비교 알고리즘을 이용하여 XR 웹 리더에 의해 요청된 웹페이지와 동일한 도메인 내에 있는 하나 이상의 추가 웹페이지의 DOM을 검색하고 파싱할 수 있다. 상기 하나 이상의 추가 웹페이지는 비교 웹페이지로 사용될 수 있다. 상기 하나 이상의 비교 웹페이지의 URL은 XR 웹 리더에 의해 요청된 웹페이지를 파싱한 결과로 수집될 수 있거나, 분류 알고리즘의 파싱 동작의 결과로 수집될 수 있다. 상기 하나 이상의 비교 웹페이지는 상기 하나 이상의 비교 웹페이지의 각각의 하나 이상의 비교 요소를 수집하기 위해 파싱될 수 있다.
406 동작에서, 프로세싱 장치는 상기 하나 이상의 비교 웹페이지의 하나 이상의 비교 요소를 XR 웹 리더에 의해 요청된 웹페이지의 하나 이상의 후보 요소와 비교할 수 있다. 동일한 도메인 내의 웹페이지에서, 동일한 도메인 내의 웹페이지에는 전형적으로 일관된 헤더, 꼬리말 및 메뉴 섹션이 있으므로 메뉴 요소(및/또는 메뉴 요소의 DOM 구조)는 전형적으로 도메인 내의 웹페이지에 걸쳐서 공통적일 수 있다. 반면에 콘텐츠 요소는 전형적으로 도메인 내의 각 웹페이지에 대해 유일할 수 있다. 따라서 하나 이상의 비교 웹페이지와 XR 웹 리더에 의해 요청된 웹페이지에 공통적인 요소들은 콘텐츠 요소와 반대로 메뉴 요소가 될 가능성이 있다. 따라서 프로세싱 장치는 비교 알고리즘을 이용하여 상기 하나 이상의 후보 요소가 메뉴 요소인지 콘텐츠 요소인지를 결정할 수 있다.
406 동작에서, 프로세싱 장치는 상기 비교 알고리즘을 이용하여 상기 하나 이상의 비교 웹페이지의 후보 요소를 XR 웹 리더에 의해 요청된 웹페이지의 후보 요소와 비교할 수 있다. 406 동작에서 프로세싱 장치는 XR 웹 리더에 의해 요청된 웹페이지의 하나 이상의 후보 요소가 XR 웹 리더에 의해 요청된 웹페이지 및 상기 하나 이상의 후보 웹페이지에 공통적인지 여부를 결정할 수 있다. 대안적으로, 406 동작에서, 프로세싱 장치는 XR 웹 리더에 의해 요청된 웹페이지의 하나 이상의 후보 요소가 XR 웹 리더에 의해 요청된 웹페이지에 고유한 것으로 결정할 수 있다.
408 동작에서, 상기 406 동작에서의 비교 결과에 기초하여, 프로세싱 장치는 비교 알고리즘을 이용하여 공통 웹페이지 요소를 XR 웹 리더에 의해 요청된 웹페이지의 메뉴 요소로 결정할 수 있다. 408 동작을 수행한 후, 프로세싱 장치는 412 동작을 수행할 수 있다.
410 동작에서, 상기 406 동작에서의 비교 결과에 기초하여, 프로세싱 장치는 비교 알고리즘을 이용하여 고유의 웹페이지 요소를 XR 웹 리더에 의해 요청된 웹페이지의 콘텐츠 요소로 결정할 수 있다. 410 동작을 수행한 후, 프로세싱 장치는 414 동작을 수행할 수 있다.
412 동작에서, 프로세싱 장치는 분류 알고리즘을 이용하여 메뉴 요소 구조에 대해 XR 웹 리더에 의해 요청된 웹페이지의 상기 결정된 메뉴 요소를 파싱할 수 있다. 412 동작을 수행한 후, 프로세싱 장치는 414 동작을 수행할 수 있다.
414 동작에서, 프로세싱 장치는 XR 웹 리더에 의해 요청된 웹페이지의 상기 결정된 메뉴 요소 및 상기 결정된 콘텐츠 요소를 XR 웹 리더 인터페이스에 매핑할 수 있다. 416 동작에서, 프로세싱 장치는 사용자의 초점이 결정할 수 있다.
도 5는 하나 이상의 특정 실시 예들에 따른 메뉴 요소를 하나 이상의 메뉴 인터페이스에 매핑하는 방법에 대한 흐름도를 도시한 도면이다.
상기 하나 이상의 메뉴 인터페이스는 가상적일 수 있고 미리 결정될 수 있다(즉, 메뉴 인터페이스의 레이아웃은 알려져 있다). 메뉴 요소를 미리 결정된 메뉴 인터페이스에 매핑할 경우의 장점은 사용자 상호 작용의 용이함과 웹페이지 콘텐츠를 내비게이션 하는 능력일 수 있다. 웹페이지 개발자는 특정 경험을 제공하기 위해 웹페이지 콘텐츠 및 메뉴의 제어를 원할 수 있다. 웹페이지의 메뉴 요소들이, 예컨대, XR 웹 리더에 매핑될 수 있는 방법을 맞춤 설정하도록 개발자를 위한 도구가 존재할 수 있다. 예를 들어, 알려진 요소 태그 <video>에는 비디오 상단의 비디오 컨트롤들의 오버레이를 지시할 수 있는 'controls' 속성이 포함되어 있다. 또 다른 예로서, 웹페이지는 정확한 AR 메뉴 매핑 지시를 위한 태그를 포함하는 'ar-menu' 도구를 포함할 수 있다.
도 5를 참조하면, 상기 방법(500)의 501 동작에서, 프로세싱 장치(예: 전자 장치)는 메뉴 요소로 결정된 하나 이상의 요소에 액세스하는 동작을 수행할 수 있다. 상기 결정된 요소는 흐름도(500)의 입력일 수 있다.
502 동작에서, 프로세싱 장치는 웹페이지가 상기 결정된 메뉴 요소의 선호하는 메뉴 매핑을 위한 W3C 지시들을 포함하는지 아닌지를 결정할 수 있다. 웹페이지가 선호하는 메뉴 매핑에 대한 지시를 포함한다면, 프로세싱 장치는 상기 선호하는 메뉴 매핑에 대한 지시에 따라 상기 결정된 메뉴 요소를 매핑할 수 있다.
504 동작에서, 프로세싱 장치는 메뉴 요소의 매핑을 웹페이지와 관련된 HTML 속성으로부터 해석할 수 있다. 웹페이지 HTML 요소는 메뉴 요소의 정확한 매핑을 지시하는 데 사용될 수 있다. 만일 HTML 속성이 적절한 매핑을 산출하지 않으면, 506 동작에서, 프로세싱 장치는 웹페이지의 CSS 속성으로부터 메뉴 요소의 매핑을 해석할 수 있다. 웹페이지의 CSS 레이아웃 기술은 XR 메뉴 인터페이스에 대해 결정되고 해석될 수 있다. 제한이 아닌 단지 일례로서, CSS 그리드와 플렉스박스(flexbox) 속성은 웹페이지에서 메뉴 요소의 레이아웃 속성을 정의할 수 있다. CSS 플렉스박스 속성인 'flex-direction: row'는 관련 객체가 한 행에 정렬될 수 있음을 의미하는 것으로 해석될 수 있다. CSS 그리드 속성은 다수의 객체의 레이아웃을 그리드로 정의할 수 있다. CSS 그리드 속성인 'Grid-row' 속성은 메뉴 요소를 하나의 행으로 정렬하는 것으로 해석될 수 있다. 디스플레이, 플로트(float) 및 위치와 같은 추가적인 CSS 속성이 추가로 해석될 수 있다. 만일 웹페이지와 관련된 매핑 지시가 없으면, 508 동작에서 프로세싱 장치는 디폴트 매핑 포맷에서 결정된 메뉴 요소의 매핑을 수행할 수 있다. 508 동작에서, 메뉴 요소의 매핑 동작은 메뉴 요소들의 디폴트 순서(default ordering)를 따를 수 있다. 상기 디폴트 순서는 메뉴 요소를 하나의 목록(list)으로 해석하고 미리 결정된 XR 메뉴 레이아웃에 따라 그 목록을 수평 또는 수직으로 매핑하는 것을 포함할 수 있다. 502 내지 508 동작들은 웹페이지의 하나 이상의 결정된 메뉴 요소 각각에 대해 반복 수행될 수 있다. 510 동작에서, 프로세싱 장치는 상기 결정된 매핑 정보를 메모리(도시되지 않음)에 저장할 수 있다. 512 동작에서, 프로세싱 장치는 메뉴 요소를 502 내지 508 동작으로부터의 상기 결정된 매핑에 기초하여 XR 리더 인터페이스에 매핑할 수 있다. 514 동작에서, 프로세싱 장치는 사용자의 초점을 결정할 수 있다.
일례로서 제한 없이, 메뉴 요소는 사용자의 손에 해당하는 위치에 중첩되는 가상 메뉴에 매핑될 수 있다. 사용자의 손에 매핑된 가상 메뉴는 사용자의 물리적 움직임이 제한되는 상황에서 XR 웹 리더를 통해 웹페이지를 내비게이션할 수 있다. 메뉴 요소는 연관된 명령의 사용 가능성에 따라 지시될 수 있으며, 이로써 사용자는 가장 간단한 이동을 수행하여 가장 많이 사용되는 메뉴 요소와 상호 작용할 수 있다.
도 6은 특정 실시 예들에 따른 다수의 미리 결정된 메뉴 인터페이스들에 식별된 메뉴 요소들의 매핑 예를 도시한 도면이다.
도 6을 참조하면, 웹페이지(601)는 하나 이상의 메뉴 요소 및 하나 이상의 콘텐츠 요소를 포함할 수 있다. 웹페이지(601)에 포함된 메뉴 요소(602)는 헤더 메뉴 요소인 것으로 결정될 수 있다. 메뉴 요소(606)는 적어도 하나의 항목을 포함하는 서브메뉴 목록 메뉴 요소인 것으로 결정될 수 있다. 특정 실시 예들에서, 하나 이상의 항목은 웹페이지를 통해 액세스 가능한 하나 이상의 콘텐츠 요소가 목록 메뉴 요소의 항목을 통해 액세스 가능하도록 상호 작용 가능할 수 있다.
도 6에 도시된 바와 같이, 목록 메뉴 요소(606)는 상기 결정된 메뉴 요소에 따라 웹페이지를 내비게이션하기 위한 하나 이상의 구성을 포함하는 적어도 하나의 메뉴 인터페이스(608, 610, 612 또는 614중 적어도 하나)에 매핑될 수 있다. 일례로서 제한 없이, 목록 메뉴 요소(606)는 목록 메뉴 요소 내의 항목들의 구조 및 배열을 유지함으로써 메뉴 인터페이스(612)로서 추출 및 제공될 수 있다. 제한이 아닌 또 다른 일례로서, 목록 메뉴 요소(606)는 목록 메뉴 요소의 항목들 중 적어도 하나에 각각 대응하는 그리드 버튼들의 어레이로서 제공될 수 있다. 일례로서 제한 없이, 목록 메뉴 요소(606)는 그 목록 메뉴 요소를 통해 액세스 가능한 하나 이상의 콘텐츠 요소가 반복적으로 선택될 수 있도록 미리 결정된 메뉴 인터페이스(614)에 매핑될 수 있다. 일례로서 제한 없이, 목록 메뉴 요소(606)에서 메뉴 요소인 "Tech"가 선택될 수 있다. 메뉴 인터페이스(614) 상의 컨트롤러들을 사용하여, 사용자는 다음의 연속적인 목록 메뉴 요소를 통해 액세스 가능한 다음의 연속적인 콘텐츠 요소로 내비게이션할 수 있다. 즉, 목록 메뉴 요소(606)에서 메뉴 요소인 "Tech"가 선택되면, 사용자는 목록 메뉴 요소(606)에서 다음 메뉴 요소인 "Sports"로 내비게이션하도록 메뉴 인터페이스(614)에서 "Next" 컨트롤을 선택할 수 있다. 마찬가지로, 사용자는 목록 메뉴 요소(606)에서 이전 메뉴 요소인 "Politics"로 내비게이션하도록 메뉴 인터페이스(614)에서 "prev." 컨트롤이 선택할 수 있다.
도 7은 특정 실시 예들에 따른 다수의 미리 결정된 메뉴 인터페이스들에 식별된 메뉴 요소들의 매핑 예를 도시한 도면이다.
도 7을 참조하면, 특정 실시 예들에서, 웹페이지(701)는 적어도 하나의 후보 요소(702, 704 또는 706중 적어도 하나)를 포함할 수 있다. 특정 실시 예들에서, 후보 요소(702)는 메뉴 요소인 것으로 결정될 수 있다. 특정 실시 예들에서, 후보 요소(704)는 웹페이지(701)를 통해 액세스 가능한 비디오 콘텐츠를 포함하는 콘텐츠 요소인 것으로 결정될 수 있다. 특정 실시 예들에서, 후보 요소(706)는 메뉴 요소인 것으로 결정될 수 있다. 도 7에서, 적어도 하나의 메뉴 인터페이스(708, 710, 714 또는 716중 적어도 하나)는 사용자가 메뉴 인터페이스를 통해 콘텐츠 요소를 제어할 수 있도록 결정된 메뉴 요소(706)를 매핑하기 위한 예시적인 구성을 도시한다. 일례로서 제한 없이, 메뉴 요소(706)는 도 7에 도시된 바와 같이 모바일 컴퓨팅 장치(712) 상의 메뉴 인터페이스(714)에 매핑될 수 있다.
도 8은 특정 실시 예들에 따른 다수의 미리 결정된 메뉴 인터페이스들에 비디오 메뉴 요소의 매핑 예를 도시한 도면이다.
도 8을 참조하면, 특정 실시 예들에서, 웹페이지(801)는 비디오(802)를 포함할 수 있다. 비디오(802)는 다수의 비디오 명령을 포함하는 비디오 제어 메뉴 요소를 통해 제어될 수 있다. 메뉴 인터페이스(804, 806, 808 및 812)는 각각 비디오 제어 메뉴 요소를 매핑하기 위한 미리 정의된 메뉴 인터페이스 예시일 수 있다. 일례로서 제한 없이, 비디오(802)는 도 8에 도시된 바와 같이 모바일 컴퓨팅 장치(810) 상의 메뉴 인터페이스(812)에 매핑될 수 있다.
특정 실시 예들에서, 웹페이지 DOM은 파싱될 수 있고, 웹페이지의 콘텐츠 요소 및 메뉴 요소는 미리 라벨링된 웹페이지의 트레이닝 세트 상에서 훈련된 기계 학습 모델에 의해 결정될 수 있다. 상기 기계 학습 모델은 웹페이지의 트레이닝 세트 상에서 훈련되었을 수 있다. 특정 실시 예들에서, 웹페이지의 트레이닝 세트는 미리 라벨링될 수 있다. 사전 라벨링(Pre-labelling)은 부모 요소를 포함하고 DOM 계층 구조에 따라 모든 메뉴 요소를 망라할 수 있는 하나 이상의 DOM 요소를 표시하는 것을 포함할 수 있다. 상기 부모 DOM 요소를 표시하면 메뉴 요소를 더 쉽게 결정할 수 있다. 이러한 기계 학습 모델은 웹페이지에서 웹 요소를 분류하기 위한 지도 학습(supervised learning) 또는 강화 학습(reinforcement learning)이라고 할 수도 있다. 특정 실시 예들에서, 기계 학습 알고리즘의 입력은 가장 많이 방문한 웹 사이트를 포함하는 트레이닝 웹페이지 세트일 수 있다. 특정 실시 예들에서, 기계 학습 알고리즘의 출력은 추가적인 웹페이지를 라벨링하는 데 사용될 수 있다. 특정 실시 예들에서, 기계 학습 알고리즘은 웹페이지 메뉴를 정확하게 결정하지 못할 수도 있다. DOM 변형 감지기(DOM mutation observer)가 웹페이지 메뉴의 적절한 감지를 결정하도록 훈련 웹페이지에 첨부될 수 있다. DOM 변형 감지기는 파싱된 DOM의 특정 요소에 첨부된 코딩 특징일 수 있으며, 기계 학습 알고리즘의 메뉴 요소 결정을 감지하는 것과 같은, DOM의 변경 또는 DOM과의 상호 작용을 감지할 수 있다. 일례로서 제한 없이, 드롭-다운 메뉴가 기계 학습 알고리즘에 의해 감지되지 않는다면, 상기 감지기(observer)는 사용자가 메뉴와 상호 작용할 때 메뉴를 감지할 수 있다. 이 예에서, 감지기는 초점의 변경에 따라 변경되는 HTML 및 CSS 속성의 결과로 메뉴 초점을 감지할 수 있다.
특정 실시 예들에서, XR 웹 리더의 사용자의 초점이 결정될 수 있다. 사용자의 초점에 기초하여 하나 이상의 미리 정의된 메뉴 인터페이스의 특성을 조정할 수 있다. 예를 들어, 웹페이지의 콘텐츠 요소는 XR 웹 리더 인터페이스의 하나 이상의 제1 계층에 표시될 수 있고, 반면에 그 웹페이지의 메뉴 요소는 하나 이상의 미리 정의된 메뉴 인터페이스에 매핑될 수 있고, 또한 상기 하나 이상의 미리 정의된 메뉴 인터페이스는 XR 웹 리더의 하나 이상의 제2 계층에 제공될 수 있다. 상기 미리 정의된 메뉴 인터페이스의 특성에는 가시성 또는 위치가 포함될 수 있다. 특정 실시 예들에서, 하나 이상의 메뉴 인터페이스의 가시성 또는 위치는 사용자의 결정된 초점에 기초하여 변경될 수 있다. 일례로서 제한 없이, 상기 미리 정의된 메뉴 인터페이스의 가시성은 제1 상태의 가시성에 있을 수 있으며, 여기서 상기 제1 상태는 시야에서 벗어나는 것(out of view), 투명, 반투명, 최소화 또는 접힘(collapsed) 상태인 메뉴 인터페이스 중 하나 또는 다수를 포함한다. 일례로서 제한 없이, 웹페이지를 통해 액세스 가능한 비디오 콘텐츠의 메뉴 인터페이스는 제1 상태의 가시성에 있을 수 있으며, 여기서 상기 제1 상태는 그 메뉴 인터페이스가 시야에서 벗어난 것을 포함한다. 이 예에서 비디오 콘텐츠는 인터페이스의 제1 계층 상에 제공될 수 있으며, 메뉴 인터페이스는 제1 계층 후방의 제2계층에 제공됨으로써 상기 제2 계층의 메뉴 인터페이스가 시야에서 벗어나도록 할 수 있다. 비디오 콘텐츠 상에서의 사용자 초점의 결정 시, 제2 계층 상의 메뉴 인터페이스의 가시성은 제2상태의 가시성으로 전환될 수 있으며, 여기서 제2상태의 가시성은 시야에 있는 메뉴 인터페이스를 포함한다. 대안으로서, 메뉴 인터페이스는 초기에 투명할 수 있고(낮은 가시성), 메뉴 인터페이스가 비디오 콘텐츠 상의 사용자 초점의 결정에 기초하여 불투명(높은 가시성)이 되도록 가시성이 변경될 수 있다. 다른 예로서, 웹페이지의 표현은 제1 콘텐츠 요소에 대한 제1 메뉴 인터페이스 및 제2 콘텐츠 요소에 대한 제2 메뉴 인터페이스를 보여줄 수 있다.
도 9는 특정 실시 예들에 따른 XR 웹 리더를 통해 웹페이지를 제시하는 방법에 대한 흐름도를 도시한 도면이다. 902 동작에서, 프로세싱 장치(예: 전자 장치)는 확장 현실(XR) 웹 리더에 의해 요청된 웹페이지를 검색한다. 그 다음, 904 동작에서, 프로세싱 장치는 웹페이지의 하나 이상의 콘텐츠 요소 및 웹페이지의 하나 이상의 메뉴 요소가 결정되고, 여기서 메뉴 요소는 웹페이지에 링크된 추가 콘텐츠에 액세스하기 위한 내비게이션 제어를 포함한다. 그 다음, 906 동작에서, 프로세싱 장치는 상기 하나 이상의 메뉴 요소를 XR 웹 리더의 하나 이상의 지정된 메뉴 인터페이스에 매핑할 수 있다. 908 동작에서, 프로세싱 장치는 웹페이지를 XR 웹 리더를 통해 제공할 수 있다. 여기서 상기 하나 이상의 콘텐츠 요소는 XR 웹 리더의 인터페이스의 하나 이상의 제1 계층에 제공되며, 또한 상기 하나 이상의 미리 정의된 메뉴 인터페이스는 XR 웹 리더 인터페이스의 하나 이상의 제2 계층에 제공된다. 특정 실시 예들은, 적절한 경우, 도 9의 방법의 하나 이상의 단계를 반복할 수 있다. 본 개시는 도 9의 방법의 특정 단계를 특정한 순서로 발생하는 것으로서 설명하고 예시하고 있지만, 본 개시는 도 9의 방법의 임의의 적절한 단계를 임의의 적절한 순서로 발생하는 것을 고려할 수 있다. 상정한다. 더욱이, 본 개시는 도 9의 방법의 특정 단계를 포함하는 XR 웹 리더를 통해 웹페이지를 제공하기 위한 예시적인 방법을 설명하고 예시하고 있지만, 본 개시는 임의의 적절한 단계를 포함하는 XR 웹 리더를 통해 웹페이지를 제공하기 위한 임의의 적절한 방법을 상정하며, 이것은 적절한 경우, 도 9의 방법의 모든 단계, 일부 단계를 포함하거나, 또는 전혀 포함하지 않을 수도 있다. 더욱이, 본 개시는 도 9의 방법의 특정 단계를 수행하는 특정 구성 요소, 장치 또는 시스템을 설명하고 예시하고 있지만, 본 개시는 도 9의 방법의 임의의 적절한 단계를 수행하는 임의의 적절한 구성 요소, 장치 또는 시스템의 임의의 적절한 조합을 상정할 수 있다.
도 10은 현재 개시된 실시 예들에 따라, XR 웹 리더를 통해 웹페이지를 제공하기 위해 웹페이지들로부터 요소들을 추출하는데 이용될 수 있는 예시적인 컴퓨터 시스템(1000)(예: 전자 장치)을 도시한다. 특정 실시 예들에서, 하나 이상의 컴퓨터 시스템(1000)은 본 명세서에 설명되거나 예시된 하나 이상의 방법의 하나 이상의 단계를 수행한다. 특정 실시 예들에서, 하나 이상의 컴퓨터 시스템(1000)은 여기에 설명되거나 예시된 기능을 제공한다. 특정 실시 예들에서, 하나 이상의 컴퓨터 시스템(1000)에서 실행되는 소프트웨어는 여기에 설명되거나 예시된 하나 이상의 방법의 하나 이상의 단계를 수행하거나 여기에 설명되거나 예시된 기능을 제공한다. 특정 실시 예들은 하나 이상의 컴퓨터 시스템(1000)의 하나 이상의 부분을 포함한다. 여기서, 컴퓨터 시스템에 관한 참조는, 적절한 경우, 컴퓨팅 장치를 포함할 수 있으며, 그 역도 마찬가지이다. 더욱이, 컴퓨터 시스템에 관한 참조는, 적절한 경우, 하나 이상의 컴퓨터 시스템을 망라할 수 있다.
본 개시는 임의의 적절한 수의 컴퓨터 시스템(1000)을 상정한다. 본 개시는 임의의 적절한 물리적 형태를 취하는 컴퓨터 시스템(1000)을 상정한다. 일례로서 제한 없이, 컴퓨터 시스템(1000)은 임베디드(embedded) 컴퓨터 시스템, 시스템 온 칩(system-on-chip: SOC), 단일-보드 컴퓨터 시스템(single-board computer: SBC)(예를 들어, 컴퓨터-온-모듈(COM)) 또는 시스템-온-모듈(SOM)), 데스크톱 컴퓨터 시스템, 랩톱 또는 노트북 컴퓨터 시스템, 인터랙티브 키오스크(interactive kiosk), 메인프레임, 컴퓨터 시스템 망, 모바일폰, PDA(Personal Digital Assistant), 서버, 태블릿 컴퓨터 시스템, 증강/가상 현실 장치, 또는 이들 중 둘 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(1000)은 하나 이상의 컴퓨터 시스템(1000)을 포함할 수 있는데, 이것은 단일형 또는 분산형일 수 있고, 여러 위치에 분산되거나, 복수의 컴퓨터에 분산되어 있거나, 다수의 데이터 센터에 걸쳐 있거나, 또는 하나 이상의 네트워크에 하나 이상의 클라우드 구성 요소를 포함할 수 있는 클라우드에 상주할 수도 있다.
적절한 경우, 하나 이상의 컴퓨터 시스템(1000)은 실질적인 공간적 또는 시간적 제한 없이 여기에 설명되거나 예시된 하나 이상의 방법 중 하나 이상의 단계를 수행할 수 있다. 일례를 들어 제한 없이, 하나 이상의 컴퓨터 시스템(1000)은 본 명세서에 설명되거나 예시된 하나 이상의 방법의 하나 이상의 단계를 실시간으로 또는 배치(batch) 모드로 수행할 수 있다. 하나 이상의 컴퓨터 시스템(1000)은, 적절한 경우, 본 명세서에 설명되거나 예시된 하나 이상의 방법의 하나 이상의 단계를 상이한 시간 또는 상이한 위치에서 수행할 수 있다.
특정한 실시 예들에서, 컴퓨터 시스템(1000)은 프로세서(1002), 메모리(1004), 저장 장치(1006), 입력/출력(I/O) 인터페이스(1008), 통신 인터페이스(1010), 및 버스(1012)를 포함한다. 본 개시가 특정 구성에서 특정 수의 특정 구성 요소를 갖는 특정한 컴퓨터 시스템을 기술하고 예시하고 있을지라도, 본 개시는 임의의 적절한 구성에서 임의의 적절한 수의 임의의 적절한 구성 요소를 갖는 임의의 적절한 컴퓨터 시스템을 상정한다는 것을 유념하여야할 것이다.
특정한 실시 예들에서, 프로세서(1002)는 컴퓨터 프로그램을 구성하는 것들과 같은, 명령들을 실행하기 위한 하드웨어를 포함한다. 한정이 아닌 일례로서, 명령들을 실행하기 위해, 프로세서(1002)는 내부 레지스터, 내부 캐시, 메모리(1004) 또는 저장 장치(1006)로부터 명령들을 검색(또는 불러오기)할 수 있으며; 그들을 디코딩하여 실행하고, 그리고 이어서 하나 이상의 결과를 내부 레지스터, 내부 캐시, 메모리(1004) 또는 저장 장치(1006)에 기록할 수 있다. 특정한 실시 예들에서, 프로세서(1002)는 데이터, 명령어 또는 주소를 위한 하나 이상의 내부 캐시를 포함할 수 있다. 본 개시는 적절한 경우 임의의 적절한 수의 임의의 적절한 내부 캐시를 포함하는 프로세서(1002)를 상정한다. 제한 없는 일례로서, 프로세서(1002)는 하나 이상의 명령 캐시(instruction caches), 하나 이상의 데이터 캐시 및 하나 이상의 변환 색인 버퍼(TLB: translation lookaside buffer)를 포함할 수 있다. 명령 캐시에 있는 명령들은 메모리(1004) 또는 저장 장치(1006)의 명령들의 복사본일 수도 있으며, 상기 명령 캐시는 프로세서(1002)에 의한 그러한 명령들의 검색 속도를 높일 수 있다.
데이터 캐시의 데이터는 프로세서(1002)에서 실행되는 후속 명령에 의한 액세스 또는 메모리(1004) 또는 저장 장치(1006)에 기록하기 위해 프로세서(1002)에서 실행되는 이전의 명령의 결과에 따라 프로세서(1002)에서 실행되는 명령어에 대한 메모리(1004) 또는 저장 장치(1006)에 있는 데이터의 복사본일 수 있거나, 또는 다른 적절한 데이터일 수도 있다. 데이터 캐시는 프로세서(1002)에 의한 읽기 또는 쓰기 동작의 속도를 높일 수 있다. TLB는 프로세서(1002)에 대하여 가상-주소 변환(virtual-address translation)의 속도를 높일 수 있다. 특정한 실시 예들에서, 프로세서(1002)는 데이터, 명령 또는 주소에 관한 하나 이상의 내부 레지스터를 포함할 수 있다. 본 개시는, 적절한 경우, 임의의 적절한 수의 임의의 적절한 내부 레지스터를 포함하는 프로세서(1002)를 상정한다. 적절한 경우, 프로세서(1002)는 하나 이상의 산술 논리 유닛들(ALUs)을 포함할 수 있으며, 이것은 멀티-코어 프로세서일 수 있고, 또는 하나 이상의 프로세서(1002)를 포함할 수도 있다. 본 개시는 특정한 프로세서를 설명하고 예시하고 있지만, 본 개시는 임의의 적절한 프로세서를 상정한다.
특정한 실시 예들에 있어, 메모리(1004)는 프로세서(1002)가 실행할 명령어 또는 프로세서(1002)가 그에 대해 동작할 데이터를 저장하기 위한 메인 메모리를 포함한다. 제한 없는 일례로서, 컴퓨터 시스템(1000)은 저장 장치(1006) 또는 또 다른 소스(예를 들어, 또 다른 컴퓨터 시스템(1000))로부터 메모리(1004)로 명령을 로드할 수 있다. 명령들을 실행하기 위해, 프로세서(1002)는 내부 레지스터 또는 내부 캐시로부터 명령들을 검색하여 그것을 디코딩할 수 있다. 명령들 실행 동안 또는 실행 후에, 프로세서(1002)는 하나 이상의 결과(중간 또는 최종 결과일 수 있음)를 내부 레지스터 또는 내부 캐시에 기록할 수 있다. 그 다음, 프로세서(1002)는 이러한 결과 중 하나 또는 다수를 메모리(1004)에 기록할 수 있다. 특정한 실시 예들에서, 프로세서(1002)는 하나 이상의 내부 레지스터 또는 내부 캐시 또는 메모리(1004)(저장 장치(1006)와는 상반되거나 그 밖의 곳에)에서는 명령들만을 실행하고, 하나 이상의 내부 레지스터 또는 내부 캐시 또는 메모리(1004)(저장 장치(1006)와는 상반되거나 그 밖의 곳에)에서는 데이터만을 동작시킬 수도 있다.
하나 이상의 메모리 버스(각각 어드레스 버스 및 데이터 버스를 포함할 수 있음)는 프로세서(1002)를 메모리(1004)에 결합할 수 있다. 버스(1012)는 후술하는 바와 같이 하나 이상의 메모리 버스를 포함할 수 있다. 특정한 실시 예들에서, 하나 이상의 메모리 관리 유닛(memory management unit: MMU)은 프로세서(1002)와 메모리(1004) 사이에 상주하고, 프로세서(1002)에 의해 요청된 메모리(1004)에 대한 액세스를 용이하게 한다. 특정한 실시 예들에서, 메모리(1004)는 랜덤 액세스 메모리(RAM)를 포함한다. 이러한 RAM은 적절한 경우 휘발성 메모리 일 수 있다. 적절한 경우, 이 RAM은 동적 RAM(DRAM) 또는 정적 RAM(SRAM)일 수 있다. 또한, 적절한 경우, 이러한 RAM은 단일-포트 또는 다중-포트 RAM 일 수 있다. 본 개시는 임의의 적절한 RAM을 상정한다. 적절한 경우, 메모리(1004)는 하나 이상의 메모리(1004)를 포함할 수 있다. 본 개시에 있어 특정한 메모리를 설명하고 예시할지라도, 본 개시는 임의의 적절한 메모리를 상정한다.
특정한 실시 예들에서, 저장 장치(1006)는 데이터 또는 명령을 위한 대용량 저장 장치를 포함한다. 제한 없는 일례로서, 저장 장치(1006)는 하드 디스크 드라이브(HDD), 플로피 디스크 드라이브, 플래시 메모리, 광디스크, 광-자기 디스크, 자기 테이프, 또는 유니버설 시리얼 버스(USB) 드라이브, 또는 이들의 둘 이상의 조합을 포함할 수 있다. 저장 장치(1006)는 적절한 경우 제거 가능하거나 또는 제거 불가능한(또는 고정형) 매체를 포함할 수 있다. 적절한 경우, 저장 장치(1006)는 컴퓨터 시스템(1000)의 내부 또는 외부에 배치될 수 있다. 특정한 실시 예들에서, 저장 장치(1006)는 비휘발성 솔리드-스테이트 메모리이다. 특정한 실시 예들에 있어, 저장 장치(1006)는 읽기-전용 메모리(ROM)를 포함한다. 적절한 경우, 이러한 ROM은 마스크-프로그램 ROM, 프로그래밍 가능한 ROM(PROM), 소거 가능한 PROM(EPROM), 전기적으로 소거 가능한 PROM(EEPROM), 전기적으로 변경 가능한 ROM(EAROM) 또는 플래시 메모리 또는 이들 중의 둘 이상의 조합일 수 있다. 본 개시는 임의의 적절한 물리적 형태를 취하는 대용량 저장 장치(1006)를 상정할 수 있다. 저장 장치(1006)는 적절한 경우 프로세서(1002)와 저장 장치(1006) 간의 통신을 용이하게 하는 하나 이상의 저장 장치 제어 유닛을 포함할 수 있다. 적절한 경우, 저장 장치(1006)는 하나 이상의 저장 장치(1006)를 포함할 수 있다. 본 개시에 있어 특정 저장 장치를 설명하고 예시할지라도, 본 개시는 임의의 적절한 저장 장치를 상정할 것이다.
특정한 실시 예들에서, I/O 인터페이스(1008)는 컴퓨터 시스템(1000)과 하나 이상의 I/O 장치 사이의 통신을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어 또는 둘 다를 포함한다. 컴퓨터 시스템(1000)은 적절한 경우 이러한 I/O 장치 중 하나 또는 다수를 포함할 수 있다. 이러한 I/O 장치 중 하나 또는 다수는 사람과 컴퓨터 시스템(1000) 사이의 통신을 가능하게 할 수 있다. 일례로서, 제한 없이, I/O 장치는 키보드, 키패드, 마이크, 모니터, 마우스, 프린터, 스캐너, 스피커, 스틸 카메라, 스타일러스, 태블릿, 터치 스크린, 트랙볼, 비디오카메라, 다른 적합한 I/O 장치 또는 이들 중의 둘 이상의 조합을 포함할 수 있다. I/O 장치는 하나 이상의 센서를 포함할 수 있다. 본 개시는 임의의 적합한 I/O 장치 및 이들에 대한 임의의 적합한 I/O 인터페이스(1006)를 상정한다. 적절한 경우, I/O 인터페이스(1008)는 프로세서(1002)가 하나 이상의 이러한 I/O 장치를 구동할 수 있게 하는 하나 이상의 장치 또는 소프트웨어 드라이버를 포함할 수 있다. I/O 인터페이스(1008)는, 적절한 경우, 하나 이상의 I/O 인터페이스(1006)를 포함할 수 있다. 본 개시에 있어 특정 I/O 인터페이스를 설명하고 예시할지라도, 본 개시는 임의의 적절한 I/O 인터페이스를 상정한다.
특정한 실시 예들에서, 통신 인터페이스(1010)는 컴퓨터 시스템(1000)과 하나 이상의 다른 컴퓨터 시스템(1000) 또는 하나 이상의 네트워크 사이의 통신(예를 들어, 패킷 기반의 통신)을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어 또는 둘 모두를 포함한다. 일례로서 제한 없이, 통신 인터페이스(1010)는 이더넷(Ethernet) 또는 기타 유선 기반 네트워크와 통신하기 위한 네트워크 인터페이스 컨트롤러(network interface controller: NIC) 또는 네트워크 어댑터, 또는 WI-FI 네트워크와 같은 무선 네트워크와의 통신을 위한 무선 NIC(WNIC) 또는 무선 어댑터를 포함할 수 있다. 본 개시는 임의의 적절한 네트워크 및 이를 위한 임의의 적절한 통신 인터페이스(1010)를 상정한다.
일례로서, 제한이 없이, 컴퓨터 시스템(1000)은 애드혹 네트워크(ad hoc network), 개인 영역 네트워크(personal area network: PAN), 근거리 통신망(local area network: LAN), 광역 통신망(wide area network: WAN), 도시지역 통신망(metropolitan area network: MAN), 또는 인터넷의 하나 이상의 부분, 또는 이들 중의 둘 이상의 조합과 통신할 수 있다. 하나 이상의 이러한 네트워크들의 하나 이상의 부분은 유선 또는 무선일 수 있다. 예를 들어, 컴퓨터 시스템(1000)은 무선 PAN(WPAN)(예컨대, BLUETOOTH WPAN과 같은), WI-FI 네트워크, WI-MAX 네트워크, 셀룰러폰 네트워크(예컨대, GSM(Global System for Mobile Communications) 네트워크) 또는 기타 적절한 무선 네트워크 또는 이들 중 둘 이상의 조합과 통신할 수 있다. 적절한 경우, 컴퓨터 시스템(1000)은 이들 네트워크의 어떤 것에 대한 임의의 적절한 통신 인터페이스(1010)를 포함할 수 있다. 적절한 경우, 통신 인터페이스(1010)는 하나 이상의 통신 인터페이스(1010)를 포함할 수 있다. 본 개시에 있어 특정 통신 인터페이스를 설명하고 예시할지라도, 본 개시는 임의의 적절한 통신 인터페이스를 상정한다.
특정한 실시 예들에서, 버스(1012)는 컴퓨터 시스템(1000)의 구성 요소를 서로 결합하는 하드웨어, 소프트웨어 또는 둘 모두를 포함한다. 일례로서, 어떤 제한이 없이, 버스(1012)는 가속형 그래픽 포트(Accelerated Graphics Port: AGP) 또는 기타 그래픽 버스, EISA(Enhanced Industry Standard Architecture) 버스, 프론트-사이드 버스(front-side bus: FSB), 하이퍼트랜스포트(HYPERTRANSPORT: HT) 인터커넥트(interconnect), ISA(Industry Standard Architecture) 버스, INFINIBAND 인터커넥트, LPC(Low-Pin-Count) 버스, 메모리 버스, MCA(Micro Channel Architecture) 버스, PCI(Peripheral Component Interconnect) 버스, PCI-Express(PCIe) 버스, SATA(Serial Advanced Technology Attachment) 버스, VLB(Video Electronics Standards Association Local) 버스, 또는 또 다른 적절한 버스 또는 이들 중의 둘 이상의 조합을 포함할 수 있다. 적절한 경우, 버스(1012)는 하나 이상의 버스(1012)를 포함할 수 있다. 본 개시에 있어 특정 버스를 설명하고 예시할지라도, 본 개시는 임의의 적절한 버스 또는 상호 접속을 상정한다.
여기서, 컴퓨터 판독 가능한 비-일시적인 저장 매체 또는 매체들은 하나 이상의 반도체 기반 또는 기타 집적 회로(IC)(예컨대, FPGA(field-programmable gate arrays) 또는 주문형 IC(ASIC)), 하드 디스크 드라이브(HDD), 하이브리드 하드 드라이브(HHD), 광디스크, 광디스크 드라이브(ODD), 광-자기 디스크, 광-자기 드라이브, 플로피 디스켓, 플로피 디스크 드라이브(FDD), 자기 테이프, 솔리드-스테이트 드라이브(Solid-State Drive), RAM 드라이브, SECURE DIGITAL 카드 또는 드라이브, 기타 적절한 컴퓨터 판독 가능한 비-일시적인 저장 매체, 또는 적절한 경우 이들 중의 둘 이상의 적절한 조합을 포함할 수 있다. 컴퓨터 판독 가능한 비-일시적인 저장 매체는 적절한 경우 휘발성, 비-휘발성, 또는 휘발성 및 비- 휘발성의 조합일 수 있다.
여기서, "또는"이라는 표현은 명시적으로 달리 표시되거나 문맥에 의해 달리 표시되지 않는 한 포괄적이며 배타적이지 않은 것을 의미한다. 따라서, 본원에서 "A 또는 B"는 달리 명시적으로 표시되거나 문맥에 의해 달리 표시되지 않는 한, "A, B 또는 둘 다"를 의미한다. 더욱이, "및(그리고)"이라는 표현은 달리 명시적으로 표시되거나 문맥에 의해 달리 표시되지 않는 한, 합동 및 다수를 의미한다. 따라서, 본원에서 "A 및 B"는 달리 명시적으로 표시되거나 문맥에 의해 달리 표시되지 않는 한, "A 및 B, 합동으로 또는 다수 개"를 의미한다.
본 명세서에서, "자동으로"라는 표현 및 그 파생어는 달리 명시적으로 표시되거나 문맥상 달리 표시되지 않는 한, "사람의 개입 없이"를 의미한다.
본 명세서에 개시된 실시 예들은 단지 예시일 뿐이며, 본 개시의 범위는 이에 한정되지 않는다. 본 발명에 따른 실시 예들은 특히, 방법, 저장 매체, 시스템 및 컴퓨터 프로그램 제품에 관한 첨부된 청구범위에 개시되어 있으며, 여기서 하나의 청구 카테고리, 예를 들어, 방법에 언급된 임의의 특징은 다른 청구범위 범주, 예컨대, 시스템에서도 또한 청구될 수도 있다. 후술하는 청구범위의 종속관계 또는 참조는 단지 형식적인 이유로 선택된다. 그렇지만, 선행하는 청구항(특히 다중 종속 관계일 경우)에 대한 의도적인 참조로 인해 발생하는 모든 주제도 또한 청구될 수 있으므로, 따라서 청구항 및 그 특징의 임의의 조합이 개시되어 후술하는 청구항들에서 선택되는 종속관계에 관계없이 청구될 수 있다. 청구될 수 있는 주제는 후술하는 청구범위에 명시된 특징의 조합뿐만 아니라 그 청구범위의 특징의 다른 조합도 포함할 것이며, 여기서 청구범위에 언급된 각각의 특징은 청구범위의 임의의 다른 특징들 또는 다른 특징들의 조합과 결합할 수도 있다. 더욱이, 본 명세서에 설명되거나 묘사된 임의의 실시 예들 및 특징들은 별도의 청구범위 및/또는 본 명세서에 기재되거나 묘사된 임의의 실시 예 또는 특징 또는 후술하는 청구범위의 임의의 특징들과 임의의 조합으로 청구될 수 있다.
본 개시 내용의 범위는 당해 기술분야의 통상의 지식을 갖는 사람이 이해하도록 본 명세서에 설명되거나 예시된 예시적인 실시 예에 대하여 모든 변경, 대체, 변형, 개조 및 수정을 망라한다. 본 개시의 범위는 본 명세서에 설명되거나 예시된 예시적인 실시 예들에만 한정되지 않는다. 더욱이, 본 개시는 특정한 구성 요소, 요소, 특징, 기능, 동작 또는 단계를 포함하는 것으로 여기에서 각각의 실시 예를 설명하고 예시하지만, 이들 실시 예 중 임의의 것은 당해 기술분야의 통상의 지식을 갖는 사람이 이해하도록 본 명세서에 설명되거나 예시된 구성 요소, 개체, 특징, 기능, 동작, 또는 단계의 임의의 것의 임의의 조합 또는 순열을 포함할 수 있다. 더욱이, 후술하는 청구범위에서 특정 기능을 수행하도록 적응, 배열, 가능, 구성, 활성화, 작동 가능한, 또는 작동하는 장치 또는 시스템, 또는 그 장치 또는 시스템의 구성 요소에 관한 참조는 해당 장치, 시스템 또는 구성 요소를 망라하되, 그것들이 그렇게 적응, 배열, 가능, 구성, 활성화, 작동 가능 또는 작동하도록 되는 한, 그것 또는 해당 특정 기능이 활성화, 켜짐 또는 잠금 해제되는지 아닌지에 상관없다. 추가로, 본 개시는 특정 이점을 제공하는 것으로 특정한 실시 예들을 설명하거나 예시할지라도, 그러한 특정한 실시 예들은 이러한 이점을 제공하지 않거나, 그것의 일부 또는 모두를 제공할 수도 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (20)

  1. 전자 장치에서의 웹페이지를 보기 위한 방법에 있어서,
    확장 현실(Extended Reality: XR) 웹 리더에 의해 요청된 웹페이지를 검색하는 동작;
    웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하는 동작, 상기 하나 이상의 메뉴 요소는 웹페이지에 링크된 추가 콘텐츠에 액세스하기 위한 내비게이션 제어들을 포함하며;
    상기 하나 이상의 메뉴 요소를 상기 XR 웹 리더의 하나 이상의지정된 메뉴 인터페이스에 매핑하는 동작; 및
    상기 XR 웹 리더를 통해 웹페이지를 표현하는 동작을 포함하며, 상기 하나 이상의 콘텐츠 요소는 상기 XR 웹 리더의 인터페이스의 하나 이상의 제1 계층 상에 제공되며, 상기 하나 이상의 지정된 메뉴 인터페이스는 상기 XR 웹 리더의 인터페이스의 하나 이상의 제2 계층 상에 제공되는, 방법.
  2. 제1항에 있어서,
    상기 XR 웹 리더의 사용자의 초점을 결정하는 동작; 및
    상기 사용자의 초점에 기초하여 상기 하나 이상의 지정된 메뉴 인터페이스의 특성을 변경하는 동작을 더 포함하는, 방법.
  3. 제2항에 있어서,
    상기 하나 이상의 지정된 메뉴 인터페이스의 특성은 상기 메뉴 인터페이스의 가시성 또는 상기 메뉴 인터페이스의 위치 중 적어도 하나를 포함하는, 방법.
  4. 제2항에 있어서,
    상기 사용자의 초점을 결정하는 동작은:
    상기 사용자의 시선(gaze);
    상기 사용자의 헤드 위치; 또는
    상기 사용자의 제스처 중의 적어도 하나에 기초하는 것인, 방법.
  5. 제1항에 있어서,
    상기 웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하는 동작은:
    상기 웹페이지의 문서 객체 모델(document object model: DOM)에 액세스하는 동작;
    상기 DOM을 파싱하여 하나 이상의 후보 요소를 식별하는 동작; 및
    상기 후보 요소의 위치;
    상기 후보 요소의 높이 대 너비 비율;
    상기 후보 요소와 연관된 하나 이상의 HTML 태그;
    상기 후보 요소의 하나 이상의 HTML 역할 속성;
    상기 후보 요소의 하나 이상의 HTML 탭인덱스 속성; 또는
    상기 후보 요소의 하나 이상의 다른 후보 요소와의 부모-자식 관계 중 적어도 하나에 기초하여, 상기 하나 이상의 후보 요소의 각각을 컨텐츠 요소 또는 메뉴 요소로 분류하는 동작을 포함하는, 방법.
  6. 제5항에 있어서,
    상기 하나 이상의 후보 요소는 너비 우선 검색(breadth first search: BFS) 알고리즘을 사용하여 수집되는 것인, 방법.
  7. 제1항에 있어서,
    상기 웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하는 동작은:
    상기 웹페이지의 문서 객체 모델(DOM)에 액세스하는 동작;
    상기 DOM을 파싱하여 하나 이상의 후보 요소를 식별하는 동작;
    상기 하나 이상의 후보 요소가 컨텐츠 또는 메뉴 요소로 분류될 수 없는 것으로 결정하는 동작;
    상기 XR 웹 리더에 의해 요청된 웹페이지와 동일한 도메인 내에서 하나 이상의 비교 웹페이지를 검색하는 동작;
    상기 하나 이상의 비교 웹페이지 각각의 DOM에 액세스하는 동작;
    상기 하나 이상의 비교 웹페이지 각각의 DOM을 파싱하여 상기 하나 이상의 비교 웹페이지 각각의 하나 이상의 비교 요소를 수집하는 동작;
    상기 XR 판독기에 의해 요청된 웹페이지의 상기 하나 이상의 후보 요소를 상기 하나 이상의 비교 웹페이지의 상기 하나 이상의 비교 요소의 각각에 비교하는 동작; 및
    상기 비교에 기초하여, 상기 하나 이상의 메뉴 요소를 결정하는 동작을 포함하며, 상기 하나 이상의 메뉴 요소는 하나 이상의 비교 웹페이지 및 상기 XR 웹 리더에 의해 요청된 웹페이지에 공통인 후보 요소인 것인, 방법.
  8. 제1항에 있어서,
    상기 하나 이상의 메뉴 요소는 상기 웹페이지의 메뉴 요소의 하나 이상의 CSS 속성 또는 상기 하나 이상의 미리 정의된 메뉴 인터페이스를 정의하는 하나 이상의 W3C 확장에 기초하여 상기 하나 이상의 미리 정의된 메뉴 인터페이스에 맵핑되는 것인, 방법.
  9. 적어도 하나의 디스플레이;
    명령들을 포함하는 하나 이상의 비-일시적 컴퓨터 판독 가능 저장 매체; 및
    상기 저장 매체에 연결된 적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는:
    확장 현실(XR) 웹 리더에 의해 요청된 웹페이지를 검색하고;
    상기 웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하고, 상기 메뉴 요소는 웹페이지에 링크된 추가 콘텐츠에 액세스하기 위한 내비게이션 컨트롤을 포함하며;
    상기 하나 이상의 메뉴 요소를 상기 XR 웹 리더의 하나 이상의 미리 정의된 메뉴 인터페이스에 매핑하고; 및
    상기 하나 이상의 디스플레이 상에 상기 XR 웹 리더를 통해 웹페이지를 제공하는 명령들을 실행하도록 구성되며,
    상기 하나 이상의 콘텐츠 요소는 상기 XR 웹 리더의 인터페이스의 하나 이상의 제1 계층에서 제공되고,
    상기 하나 이상의 지정된 메뉴 인터페이스는 상기 XR 웹 리더의 인터페이스의 하나 이상의 제2 계층에 제공되는, 전자 장치.
  10. 제9항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 XR 웹 리더 사용자의 초점을 결정하고; 및
    상기 사용자의 초점에 따라 하나 이상의 지정된 메뉴 인터페이스의 특성을 변경하는 명령을 실행하도록 더 구성되는, 전자 장치.
  11. 제10항에 있어서,
    상기 하나 이상의 지정된 메뉴 인터페이스의 특성은 상기 메뉴 인터페이스의 가시성 또는 상기 메뉴 인터페이스의 위치 중 적어도 하나를 포함하는, 전자 장치.
  12. 제9항에 있어서,
    상기 웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하기 위한 상기 명령은:
    상기 웹페이지의 문서 객체 모델(DOM)에 액세스하고;
    상기 DOM을 파싱하여 하나 이상의 후보 요소를 식별하고; 및
    상기 후보 요소의 위치;
    상기 후보 요소의 높이 대 너비 비율;
    상기 후보 요소와 연관된 하나 이상의 HTML 태그;
    상기 후보 요소의 하나 이상의 HTML 역할 속성;
    상기 후보 요소의 하나 이상의 HTML 탭인덱스 속성; 또는
    상기 후보 요소의 하나 이상의 다른 후보 요소와의 부모-자식 관계 중 적어도 하나에 기초하여, 상기 하나 이상의 후보 요소의 각각을 컨텐츠 요소 또는 메뉴 요소로 분류하는 명령을 포함하는 전자 장치.
  13. 제9항에 있어서,
    상기 웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하는 상기 명령은:
    상기 웹페이지의 문서 객체 모델(DOM)에 액세스하고;
    상기 DOM을 파싱하여 하나 이상의 후보 요소를 식별하고;
    상기 하나 이상의 후보 요소가 컨텐츠 또는 메뉴 요소로 분류될 수 없음을 결정하고;
    상기 XR 웹 리더에 의해 요청된 웹페이지와 동일한 도메인 내에서 하나 이상의 비교 웹페이지를 검색하고;
    상기 하나 이상의 비교 웹페이지 각각의 DOM에 액세스하고;
    하나 이상의 비교 웹페이지 각각의 DOM을 파싱하여 상기 하나 이상의 비교 웹페이지 각각의 하나 이상의 비교 요소를 수집하고;
    상기 XR 판독기에 의해 요청된 웹페이지의 상기 하나 이상의 후보 요소를 상기 하나 이상의 비교 웹페이지의 하나 이상의 비교 요소 각각에 비교하고; 및
    상기 비교에 기초하여, 상기 하나 이상의 메뉴 요소를 결정하며, 상기 하나 이상의 메뉴 요소는 상기 하나 이상의 비교 웹페이지 및 상기 XR 웹 리더에 의해 요청된 상기 웹페이지에 공통인 후보 요소인, 전자 장치.
  14. 제9항에 있어서,
    상기 하나 이상의 메뉴 요소는 상기 웹페이지의 메뉴 요소의 하나 이상의 CSS 속성 또는 상기 하나 이상의 미리 정의된 메뉴 인터페이스를 정의하는 하나 이상의 W3C 확장에 기초하여 상기 하나 이상의 미리 정의된 메뉴 인터페이스에 매핑되는, 전자 장치.
  15. 전자 장치의 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
    확장 현실(XR) 웹 리더에 의해 요청된 웹페이지를 검색하고;
    상기 웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하고, 상기 메뉴 요소는 웹페이지에 링크된 추가 콘텐츠에 액세스하기 위한 내비게이션 컨트롤을 포함하며;
    상기 하나 이상의 메뉴 요소를 상기 XR 웹 리더의 하나 이상의 지정된 메뉴 인터페이스에 매핑하고; 및
    상기 XR 웹 리더를 통해 웹페이지를 제공하도록 하는 명령들을 포함하며,
    상기 하나 이상의 콘텐츠 요소는 상기 XR 웹 리더의 인터페이스의 하나 이상의 제1 계층에 제공되고, 상기 하나 이상의 지정된 메뉴 인터페이스는 상기 XR 웹 리더의 인터페이스의 하나 이상의 제2 계층에 제공되는 컴퓨터 판독 가능 비-일시적 저장 매체.
  16. 제15항에 있어서,
    상기 전자 장치의 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 적어도 하나의 프로세서로 하여금,
    상기 XR 웹 리더 사용자의 초점을 결정하고; 및
    상기 사용자의 초점에 기초하여 상기 하나 이상의 미리 정의된 메뉴 인터페이스의 특성을 조절하도록 하는 명령들을 더 포함하는 컴퓨터 판독 가능 비-일시적 저장 매체.
  17. 제16항에 있어서,
    상기 하나 이상의 미리 정의된 메뉴 인터페이스의 특성은 메뉴 인터페이스의 가시성 또는 메뉴 인터페이스의 위치 중 적어도 하나를 포함하는 컴퓨터 판독 가능 비-일시적 저장 매체.
  18. 제15항에 있어서,
    상기 웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하는 명령은:
    상기 웹페이지의 문서 객체 모델(DOM)에 액세스하고;
    상기 DOM을 파싱하여 하나 이상의 후보 요소를 식별하고; 및
    상기 후보 요소의 위치;
    상기 후보 요소의 높이 대 너비 비율;
    상기 후보 요소와 연관된 하나 이상의 HTML 태그;
    상기 후보 요소의 하나 이상의 HTML 역할 속성;
    상기 후보 요소의 하나 이상의 HTML 탭인덱스 속성; 또는
    상기 후보 요소와 하나 이상의 다른 후보 요소의 부모-자식 관계 중 적어도 하나를 기초로 하여,
    상기 하나 이상의 후보 요소를 컨텐츠 요소 또는 메뉴 요소로 분류하도록 하는 명령들을 포함하는 컴퓨터 판독 가능 비-일시적 저장 매체.
  19. 제15항에 있어서,
    상기 웹페이지의 하나 이상의 콘텐츠 요소 및 상기 웹페이지의 하나 이상의 메뉴 요소를 결정하기 위한 상기 명령은,
    상기 웹페이지의 문서 객체 모델(DOM)에 액세스하고;
    상기 DOM을 파싱하여 하나 이상의 후보 요소를 식별하고;
    상기 하나 이상의 후보 요소가 컨텐츠 또는 메뉴 요소로 분류될 수 없음을 결정하고;
    상기 XR 웹 리더에 의해 요청된 상기 웹페이지와 동일한 도메인 내에서 하나 이상의 비교 웹페이지를 검색하고;
    상기 하나 이상의 비교 웹페이지 각각의 DOM에 액세스하고;
    하나 이상의 비교 웹페이지 각각의 상기 DOM을 파싱하여 상기 하나 이상의 비교 웹페이지 각각의 하나 이상의 비교 요소를 수집하고;
    상기 XR 판독기에 의해 요청된 웹페이지의 상기 하나 이상의 후보 요소를 상기 하나 이상의 비교 웹페이지의 하나 이상의 비교 요소 각각에 비교하고; 및
    상기 비교에 기초하여, 상기 하나 이상의 메뉴 요소를 결정하도록 하는 명령들을 포함하며,
    상기 하나 이상의 메뉴 요소는 하나 이상의 비교 웹페이지 및 상기 XR 웹 리더에 의해 요청된 상기 웹페이지에 공통적인 후보 요소인 컴퓨터 판독 가능 비-일시적 저장 매체.
  20. 제15항에 있어서,
    상기 하나 이상의 메뉴 요소는 상기 웹페이지의 메뉴 요소의 하나 이상의 CSS 속성 또는 상기 하나 이상의 미리 정의된 메뉴 인터페이스를 정의하는 하나 이상의 W3C 확장에 기초하여 상기 하나 이상의 지정된 메뉴 인터페이스에 매핑되는 컴퓨터 판독 가능 비-일시적 저장 매체.
KR1020200141274A 2020-04-06 2020-10-28 확장 현실 환경에서 웹페이지를 보기 위한 전자 장치 및 방법 KR20210124876A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2021/004256 WO2021206408A1 (en) 2020-04-06 2021-04-06 Electronic device and methods for viewing webpages in extended reality environments

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063005893P 2020-04-06 2020-04-06
US63/005,893 2020-04-06
US16/945,628 2020-07-31
US16/945,628 US11550446B2 (en) 2020-04-06 2020-07-31 Systems and methods for viewing webpages in extended reality environments

Publications (1)

Publication Number Publication Date
KR20210124876A true KR20210124876A (ko) 2021-10-15

Family

ID=77921260

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200141274A KR20210124876A (ko) 2020-04-06 2020-10-28 확장 현실 환경에서 웹페이지를 보기 위한 전자 장치 및 방법

Country Status (2)

Country Link
US (1) US11550446B2 (ko)
KR (1) KR20210124876A (ko)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5978592B2 (ja) 2011-10-26 2016-08-24 ソニー株式会社 ヘッド・マウント・ディスプレイ及び表示制御方法
US9908048B2 (en) 2013-06-08 2018-03-06 Sony Interactive Entertainment Inc. Systems and methods for transitioning between transparent mode and non-transparent mode in a head mounted display
KR20150026336A (ko) 2013-09-02 2015-03-11 엘지전자 주식회사 웨어러블 디바이스 및 그 컨텐트 출력 방법
KR101627169B1 (ko) 2013-09-27 2016-06-07 한국과학기술연구원 증강현실 컨텐츠 저작 및 제공 시스템
KR102122339B1 (ko) 2013-12-30 2020-06-12 주식회사 케이티 Hmd 제어 방법, 컴퓨팅 장치 및 컴퓨터 판독가능 매체
JP6596883B2 (ja) 2015-03-31 2019-10-30 ソニー株式会社 ヘッドマウントディスプレイ及びヘッドマウントディスプレイの制御方法、並びにコンピューター・プログラム
KR102609450B1 (ko) * 2016-05-09 2023-12-04 삼성전자주식회사 전자 장치 및 전자 장치의 전자 문서 출력 방법
US10593105B2 (en) * 2016-11-10 2020-03-17 Karan Singh Method and system for linking a first virtual reality (VR) immersive space with a second VR immersive space
TWI687842B (zh) 2017-12-29 2020-03-11 宏碁股份有限公司 虛擬實境網頁內容的瀏覽方法及應用其的電子裝置
US10630797B2 (en) 2018-01-30 2020-04-21 Akamai Technologies, Inc. Systems and methods for content delivery acceleration of virtual reality and augmented reality web pages
US10831030B2 (en) 2018-04-20 2020-11-10 Microsoft Technology Licensing, Llc Systems and methods for visually guided gaze-based targeting
WO2019236568A1 (en) 2018-06-05 2019-12-12 Magic Leap, Inc. Matching content to a spatial 3d environment
US10817648B1 (en) * 2020-01-30 2020-10-27 Leap Tools Inc. Systems and methods for product visualization using a single-page application

Also Published As

Publication number Publication date
US20210311594A1 (en) 2021-10-07
US11550446B2 (en) 2023-01-10

Similar Documents

Publication Publication Date Title
US9734636B2 (en) Mixed reality graduated information delivery
CN109643212B (zh) 3d文档编辑系统
US9224237B2 (en) Simulating three-dimensional views using planes of content
JP6013583B2 (ja) 有効インターフェース要素の強調のための方式
US9437038B1 (en) Simulating three-dimensional views using depth relationships among planes of content
US11609675B2 (en) Placement of objects in an augmented reality environment
US9367203B1 (en) User interface techniques for simulating three-dimensional depth
US10318629B2 (en) Adaptive content rendering for optimizing page layout
US20140092005A1 (en) Implementation of an augmented reality element
CN109643469B (zh) 增强现实渲染的结构化内容
JP2013077301A (ja) ビジュアル比較方法
US11373373B2 (en) Method and system for translating air writing to an augmented reality device
US9619519B1 (en) Determining user interest from non-explicit cues
CN108780377A (zh) 使用计算设备的对象管理和可视化
US10365816B2 (en) Media content including a perceptual property and/or a contextual property
KR20170009917A (ko) 규약에 대한 애플리케이션으로부터의 그래픽 출력 데이터의 순응성 검출
WO2021206408A1 (en) Electronic device and methods for viewing webpages in extended reality environments
JP2014505954A5 (ko)
WO2016081610A1 (en) System and method for performing hit testing in a graphical user interface
US11954421B2 (en) Reducing data usage for rendering state changes
US11550446B2 (en) Systems and methods for viewing webpages in extended reality environments
WO2023209638A1 (en) Determining zone identification reliability
US10650187B2 (en) Visual path resolution in a context separated authoring environment of a REST- and component-based content management system
Pop et al. Gesture-based Visual Analytics in Virtual Reality
US11887213B2 (en) Image cache for session replays of mobile applications

Legal Events

Date Code Title Description
A201 Request for examination