KR20010040493A - 지식의 집합체를 추출하고 액세스하기 위한 컴퓨터시스템, 방법 및 사용자 인터페이스 컴포넌트 - Google Patents

지식의 집합체를 추출하고 액세스하기 위한 컴퓨터시스템, 방법 및 사용자 인터페이스 컴포넌트 Download PDF

Info

Publication number
KR20010040493A
KR20010040493A KR1020007008349A KR20007008349A KR20010040493A KR 20010040493 A KR20010040493 A KR 20010040493A KR 1020007008349 A KR1020007008349 A KR 1020007008349A KR 20007008349 A KR20007008349 A KR 20007008349A KR 20010040493 A KR20010040493 A KR 20010040493A
Authority
KR
South Korea
Prior art keywords
information
lens
knowledge
extraction
collection
Prior art date
Application number
KR1020007008349A
Other languages
English (en)
Other versions
KR100388401B1 (ko
Inventor
데스테파노조지프란시스
Original Assignee
포만 제프리 엘
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Publication of KR20010040493A publication Critical patent/KR20010040493A/ko
Application granted granted Critical
Publication of KR100388401B1 publication Critical patent/KR100388401B1/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/74Browsing; Visualisation therefor
    • G06F16/748Hypervideo
    • 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/93Document management systems
    • G06F16/94Hypermedia
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/965Operator interface with visual structure or function dictated by intended use for process control and configuration
    • Y10S715/966Computer process, e.g. operation of computer
    • Y10S715/967Visual or iconic programming
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/965Operator interface with visual structure or function dictated by intended use for process control and configuration
    • Y10S715/966Computer process, e.g. operation of computer
    • Y10S715/968Computer process, e.g. operation of computer interface for database querying and retrieval

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)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

컴퓨터 시스템(20)과 방법은 사용자에게 제공되는 정보를 시각적으로 링크 함으로써 사용자가 그러한 정보의 문맥 관계를 쉽게 이해할 수 있도록 하기 위한 다수의 독특한 사용자 인터페이스 메커니즘을 구비한다. 정보는 컴퓨터 표시장치 상에 표시되는 제 1 및 제 2 윈도우 사이에서 연장되는 커넥터 요소를 표시함으로써 시각적으로 링크 될 수도 있다. 그밖에, 정보 요소(42)에 하나 이상의 필터 기준(280)을 적용하고 그 결과를 표시함으로써 정보가 시각적으로 링크 될 수도 있다. 예를 들어, 제 1 및 제 2 필터 기준(82)은 다수의 정보 요소(42)에 적용될 수도 있다. 결과적으로 얻어지는 세트의 필터링 된 정보 요소(42)의 적어도 일부분은 동시에 표시된다. 또 다른 예로서, 필터 기준은 정보 요소(42)에 적용될 수도 있으며, 이 경우에는 정보 요소(42)의 필터링 된 형태 및 필터링 되지 않은 형태가 동시에 표시된다. 정보는 조정된 스크롤 관계를 통해 시각적으로 또한 링크 될 수도 있으며, 이 경우에는 제 1 및 제 2 세트의 필터링 된 정보 요소(42)의 일부가 별개의 윈도우에 동시에 표시되며, 각각의 윈도우 내에 표시된 부분은 지식의 집합체(40) 내의 특정 위치를 표시할 수도 있도록 상호 추적이 이루어진다. 또한, 정보 요소 형태가 공통 개념과 결합되었을 때 다른 정보 요소 형태의 선택에 응답하여 한 쌍의 정보 요소 형태 중 어느 하나를 강조함으로써 정보가 시각적으로 링크 될 수도 있다.

Description

지식의 집합체를 추출하고 액세스하기 위한 컴퓨터 시스템, 방법 및 사용자 인터페이스 컴포넌트{COMPUTER SYSTEM, METHOD, AND USER INTERFACE COMPONENTS FOR ABSTRACTING AND ACCESSING A BODY OF KNOWLEDGE}
인간의 통신 프로세스는 수천년에 걸쳐 발전을 거듭해 왔으며, 현재는 주로 구두에 의한 통신과 문서에 의한 통신을 포함하기에 이르렀다. 그밖에, 오랜 기간에 걸쳐 세계의 수많은 지식 베이스가 문서 형태(예를 들어, 서적)로 기록되어 왔고, 그 결과 많은 사람들이 손쉽게 그러한 정보를 액세스하고 이용할 수 있다.
컴퓨터 기술의 출현에 따라, 더욱 많은 정보가 전자 형태로 저장되고, 정보가 기록된 문서보다는 컴퓨터를 통해 그러한 정보를 액세스하게 되었다. 그럼에도 불구하고, 인간의 통신이 발전되는 동안 내내 정보는 항상 일차원적인 것으로 간주되었다. 즉 일련의 문장 또는 페이지가 함께 묶인 일련의 아이디어로 간주되어 왔던 것이다. 책의 페이지와 컴퓨터의 표시장치는 사실상 이차원적이며, 삼차원 객체를 이차원 형태로 제공하기도 한다. 그러나, 이들 경우에 제공되는 정보의 집합체의 기본적인 구조는, 사람들이 일반적으로 선의 형태로 정보를 처리하는 한, 그 대부분은 여전히 일차원적인 것이다.
정보의 양이 그다지 많지 않은 경우에, 몇몇 사람에게는 정보가 일차원 형태로 제공되어도 그것으로 충분하다. 그러나, 정보가 여러 가지 소오스에 포함되어 있고 및/또는 정보가 여러 가지 추출(abstraction) 레벨과 결합되어 있는 경우에는 특정 토픽에 대한 정보의 집합체를 완전히 이해하는 데에는 어려움이 따른다.
추출 레벨은 전형적으로 다수의 정보의 이루어진 정보의 집합체를 참조하는 특정 방식과 관련이 되어 있다. 다른 기준 가운데에서도, 각기 다른 추출 레벨은 각기 다른 이해 레벨, 예를 들어 기초 또는 요약 레벨 대 고급 레벨과 관련이 되어 있다. 일례로서 뱀과 같은 주제를 취하게 될 경우에, 초등학교 레벨에서는 뱀은 왜 다리가 없는지 또는 뱀은 무엇을 먹는지에 대해 토론을 할 수도 있다. 그러나, 박사 급의 파충류 학자의 레벨에서는, 뱀의 진화 과정 또는 뱀이 먹이를 감지하는 생물학적 메커니즘에 관하여 토론을 할 수도 있다.
사람들은 여러 가지 조건에서, 예컨대 익숙한 분야에 대해서 새로운 원리 또는 새로운 접근방법을 탐구할 때, 또는 그다지 많은 방문을 받지 않는 영역으로 복귀할 때, 정보의 집합체를 액세스하기를 원한다. 그러나, 그렇게 할 때 동시에 다수의 추출 레벨을 관리하고 이해할 필요가 있을 수도 있다. 예를 들어, 특정 문제를 풀고자 할 경우에, 다수의 추출 레벨, 예를 들어 포괄적이고 기본적인 개념, 주요 용어 및 정의, 특정 문제의 상세한 내용, 특정 문제에 대한 해답의 상세한 내용을 관리하고 이해할 필요가 있다. 그러나, 책이나 컴퓨터에 의해서는 한번에 한가지 소오스 및/또는 한가지 추출 레벨로부터 정보를 액세스할 수밖에 없다. 따라서, 좀더 넓은 범위의 지식의 집합체 내에서 정보의 관계를 시각화할 수 있는 능력이 없으면 선의 형태로 된 정보를 통해 원하는 업무를 수행할 수밖에 없다.
더욱이, 하나 이상의 소오스 또는 하나 이상의 추출 레벨로부터 정보를 액세스할 수 있는 경우에, 정보는 흔히 상호 연결되지 않은 형태로 제공됨으로써 각기 다른 레벨 및/또는 소오스로부터 정보의 상호작용을 시각화할 수 있는 기회를 제공하지 못한다. 책을 액세스할 때, 주어진 토픽과 관련된 다른 책을 참조할 수도 있고, 동일한 책 속의 다른 절이나 장을 참조할 수도 있다. 두 권의 책을 동시에 펼칠 수는 있지만, 책 사이를 오가며 내용을 참조하여야만 하며, 이들 책 속의 다른 페이지를 오가면서 내용을 참조하여야만 한다. 그 결과, 정보를 의식적으로 인지하여야 하며 정보 내의 연관 관계를 의식적으로 유지하지 않으면 안된다.
더욱이, 특정 지식의 집합체에 대한 정보를 액세스하는 것이 독자에게는 어렵고 당황스럽게 하는 반면에, 작가는 종종 지식의 집합체로부터의 정보를 잠재적인 독자에게 제공하는 법을 결정하는데 있어서 어려움을 겪는다. 그 이유는 독자가 잠재적인 독자층에 속하는 독자일 수도 있기 때문이다. 몇몇 경우에 독자는 공통의 이해 레벨 또는 경험 레벨을 갖는 한 명 이상의 개인으로 이루어질 수도 있고, 각기 다른 관점 및 능력을 갖춘 다수의 개인으로 이루어질 수도 있다. 따라서, 작가는 종종 어느 한 독자에 초점을 맞추게 되며, 이것은 다른 독자에게는 그다지 쓸모가 없는 프리젠테이션을 제공하는 바람직하지 않은 결과를 낳게 된다. 예를 들어, 어떤 책은 초보자에게는 이해하기가 너무 힘들 수도 있고, 전문가가 유용하게 참조하기에는 너무 쉬울 수도 있다. 그 결과, 지식의 집합체에 대해 여러 가지 다른 레벨의 별개의 책이 저술될 수도 있다. 물론, 이것은 단지 독자로 하여금 특정 지식의 집합체를 액세스하고 이해하는 것을 더욱 어렵게 만든다.
책의 형태로 된 정보를 액세스하고 저작하는 것과 관련된 문제점들 중 대부분은 전자 형태로 된 정보와도 또한 관련이 되어 있다. 예를 들어, 많은 컴퓨터 시스템은 그래픽 사용자 인터페이스(GUI)를 사용하고 있으며, 이들 인터페이스를 통해 사용자는 그래픽 표시 요소 상에서 "가리키기 및 클릭하기" 등의 직관적인 동작을 통해 컴퓨터 시스템과 대화할 수 있다. 정보는 종종 윈도우로서 알려진 그래픽 사용자 인터페이스 컴포넌트를 사용하는 GUI 환경에서 사용자에게 제공된다. GUI 환경에서 실행되는 각각의 컴퓨터 소프트웨어 어플리케이션은 전형적으로 하나 이상의 윈도우에 할당되어 사용자에게 정보를 보여주고 및/또는 사용자로부터의 입력을 받아들인다. 더욱이, 다수의 컴퓨터 시스템은 멀티태스크 기능을 제공함으로써, 다시 말해서 하나 이상의 컴퓨터 소프트웨어 어플리케이션을 동시에 실행할 수 있는 기능을 제공함으로써, 다수의 어플리케이션으로부터의 윈도우가 컴퓨터 표시장치 상에 동시에 표시될 수 있다.
지식의 집합체에 대한 하나 이상의 소오스 또는 추출 레벨로부터의 정보가 컴퓨터 시스템 상에서 각기 다른 윈도우 내에 동시에 표시되지만, 각기 다른 윈도우 내에 표시되는 정보의 상호 관계와, 보다 넓은 범위의 지식의 집합체 내의 정보의 상호 관계는 종종 사용자가 쉽게 분간하기 어렵다. 그 결과, 사용자는 조리 있게 정보를 관리하는 것이 어렵게 될 수 있다. 각기 다른 포맷과 뷰 사이를 스위칭 하는 것은 학습 프로세스의 방향 감각을 혼란시키고 빗가게 하며, 종종 학습 프로세스를 현저히 저해하게 될 수가 있다.
특정 기술 영역의 한가지인 온라인 컴퓨터 도움말 시스템에 있어서는, 사용자가 컴퓨터 토픽에 관한 정보, 예를 들어 특정 컴퓨터 소프트웨어 어플리케이션에 관한 정보를 제공받을 수도 있다. 많은 그러한 시스템 내에 이들 컴퓨터 토픽을 제공하는 것에는 컴퓨터 토픽의 다수의 추출 레벨을 제공하는 것이 포함된다. 예를 들어, 다른 윈도우 내에서 하나 이상의 도움말 토픽이 제공될 때 그와 동시에 도움말 시스템은 하나의 윈도우 내에 도움말 목차를 표시할 수도 있다. 그러나, 이들 윈도우의 실제적인 계층 관계는 사용자에게는 제공되지 않으며, 따라서 사용자는 목차 및 하나 이상의 도움말 토픽 사이를 오갈 때 방향 감각을 잃을 수도 있다. 특히 한번에 하나 이상의 도움말 토픽이 표시될 때, 그리고 관련된 예제 및/또는 교육 자료가 또한 표시될 때, 사용자는 특정 컴퓨터 토픽의 여러 가지 양상의 전부를 흡수하고 이해하기가 어려워질 수 있다.
따라서, 사용자가 쉽게 지식의 집합체의 내용을 이해할 수 있도록 컴퓨터 시스템 내에 지식의 집합체를 나타내는 새로운 방법을 제공할 필요가 있다. 특히, 넓은 범위의 지식의 집합체 내에서 정보의 문맥 관계는 물론 지식의 집합체로부터의 정보를 나타내는 새로운 방식을 제공할 필요가 있다.
발명의 개요
본 발명은 다수의 독특한 사용자 인터페이스 메커니즘을 구비하여 사용자에게 제공되는 정보를 시각적으로 링크 함으로써 그러한 정보의 문맥 관계의 이해를 촉진시키기 위한 컴퓨터 시스템 및 방법을 제공하여 종래기술과 관련된 상기한 문제점들을 해결한다. 정보의 전후관계 및 정보 그 자체 모두 사용자에게 제공됨으로써 사용자는 정보를 더욱 잘 이해할 수 있게 된다.
첫째, 정보는 컴퓨터 표시장치 상에 표시되는 제 1 및 제 2 윈도우 사이에서 연장되는 커넥터 요소를 표시함으로써 시각적으로 링크 될 수도 있다. 이로부터, 간단히 커넥터 요소와 요소에 결합된 윈도우를 관찰함으로써 사용자는 윈도우 사이의 문맥 관계를 쉽게 확인할 수 있다.
둘째, 정보는 하나 이상의 필터 기준을 정보 요소에 적용하고 그 결과를 표시함으로써 시각적으로 링크 될 수도 있다. 예를 들어, 제 1 및 제 2 필터 기준이 다수의 정보 요소에 적용될 수도 있으며, 이 경우에는 결과적으로 얻어지는 세트로 된 필터링 된 정보 요소의 적어도 일부가 동시에 표시된다. 또 다른 예로서, 필터 기준이 정보 요소에 적용될 수 있으며, 이 경우에는 정보 요소의 필터링 된 형태 및 필터링 되지 않은 형태가 동시에 표시된다. 어느 경우에나, 정보 사이의 유사성 및/또는 차이를 강조하기 위하여 다수의 정보 형태가 동시에 제공되며, 따라서 사용자는 정보를 전체로서 간파할 수 있게 된다.
셋째, 정보는 제 1 및 제 2 세트의 필터링 된 정보 요소의 일부가 별개의 윈도우에 동시에 표시되는 조정된 스크롤 관계를 통해 시각적으로 링크 될 수도 있다. 이 경우, 각각의 윈도우 내에 표시된 부분은 상호 추적이 되어 지식의 집합체 내의 특정 위치를 표시하게 된다. 그 결과, (예를 들어 스크롤 동작을 통해) 표시된 특정 위치가 변경됨으로써 각각의 윈도우 내에 표시된 부분은 갱신되고, 따라서 필터링 된 정보 요소의 세트들 사이의 링크가 강화되고 세트가 동일한 정보의 각기 다른 형태를 형성한다는 사실을 강조한다.
넷째, 정보는 한 쌍의 정보 요소 형태 중 어느 하나를 그러한 정보 요소 형태가 공통 개념과 결합될 때 나머지 다른 하나의 정보 요소 형태의 선택에 응답하여 강조함으로써 시각적으로 링크 될 수도 있다. 예를 들어 정보 요소 형태의 선택은 사용자가 (다른 환경 중에서도) 다른 정보 요소 형태 위에 포인터를 위치시키는 것에 응답하여 발생할 수도 있다. 정보 요소 형태의 강조에는 전형적으로 정보 요소 형태에 공통 개념과 결합되지 않은 다른 정보 요소 형태로부터 정보 요소 형태를 시각적으로 구별하는 효과를 적용하는 것이 포함된다. 그 결과, 사용자는 단순히 여러 가지 사용자 행위에 응답하여 컴퓨터 표시장치 상에서 정보 요소 형태에 강조가 적용되는 것을 관찰함으로써 공통 개념과 결합된 다수의 정보 요소 형태 사이의 관계를 신속히 그리고 쉽게 추론할 수 있다.
본 발명의 특징을 이루는 상기한 장점 및 그 밖의 다른 장점과 특징은 본 명세서에 첨부되어 있고 본 명세서의 일부를 형성하는 청구범위에 상세히 기재되어 있다. 그러나, 본 발명을 더욱 쉽게 이해할 수 있도록 도면을 참조하고 본 발명의 바람직한 실시예를 나타내는 도면에 근거한 상세한 설명에 기초하여 본 발명의 사용을 통해 얻을 수 있는 장점과 목적을 상세히 설명하기로 한다.
본 발명은 컴퓨터 시스템과 컴퓨터 시스템의 그래픽 사용자 인터페이스 환경에 관한 것이다. 특히 본 발명은 컴퓨터 시스템 등에서 정보를 표시하고 사용자가 그러한 정보를 액세스하는 것에 관한 것이다.
도 1은 본 발명에 따른 컴퓨터 시스템의 블록선도.
도 2는 도 1의 컴퓨터 시스템의 전형적인 소프트웨어 환경의 블록선도.
도 3은 도 2의 지식의 집합체 내에 존재하는 소프트웨어 컴포넌트의 블록선도.
도 4는 도 2의 추출 스택 내에 존재하는 소프트웨어 컴포넌트의 블록선도.
도 5는 도2의 이벤트 관리자를 위한 주요 루틴의 프로그램 흐름을 보인 순서도.
도 6은 도 5의 스택 초기화 루틴의 프로그램 흐름을 보인 순서도.
도 7은 도 6의 스택 렌더링 루틴의 프로그램 흐름을 보인 순서도.
도 8은 도 5의 스택 초기화 루틴의 실행 이후에 추출 스택이 표시되는 컴퓨터 표시장치를 예시한 블록선도.
도 9는 도 5의 렌즈 생성 루틴의 프로그램 흐름을 보인 순서도.
도 10은 도 9의 필터 구성 입수 루틴의 프로그램 흐름을 보인 순서도.
도 11은 필터 세팅을 입력하기 위하여 도 10의 필터 구성 입수 루틴에 의해 활용되는 다이얼로그 박스를 보인 블록선도.
도 12는 도 9의 렌즈 개방 루틴의 프로그램 흐름을 보인 순서도.
도 13은 도 4의 렌즈의 렌즈 충전 루틴의 프로그램 흐름을 보인 순서도.
도 14는 도 13의 스크롤 다운 루틴의 프로그램 흐름을 보인 순서도.
도 15는 도 14의 다음 세그먼트 검색 루틴의 프로그램 흐름을 보인 순서도.
도 16은 깊이 벡터 렌즈의 생성 이후의 도 8의 컴퓨터 표시장치의 블록선도.
도 17은 이차 깊이 벡터 렌즈의 생성 이후의 도 16의 컴퓨터 표시장치의 블록선도.
도 18은 보충 렌즈의 생성 이후의 도 17의 컴퓨터 표시장치의 블록선도.
도 19는 도 5의 스크롤 처리 루틴의 프로그램 흐름을 보인 순서도.
도 20은 도 4의 렌즈의 내용 갱신 루틴의 프로그램 흐름을 보인 순서도.
도 21은 도 20의 스크롤 업 루틴의 프로그램 흐름을 보인 순서도.
도 22는 도 21의 이전 세그먼트 검색 루틴의 프로그램 흐름을 보인 순서도.
도 23은 전형적인 지식의 집합체의 일부를 표시하는 일차 및 이차 렌즈를 보인 블록선도.
도 24는 스크롤 다운 동작을 행한 이후의 도 23의 일차 및 이차 렌즈를 보인 블록선도.
도 25는 이차 렌즈에 적용된 초점 효과를 예시한, 도 23의 일차 및 이차 렌즈를 보인 블록선도.
도 26은 도 5의 크로스-오버 처리 루틴의 프로그램 흐름을 보인 순서도.
도 27은 본 발명에 따른 크로스-오버 대기열의 이벤트 엔트리의 처리 루틴의 프로그램 흐름을 보인 순서도.
도 28은 도 4의 렌즈의 이벤트 하이라이트 루틴의 프로그램 흐름을 보인 순서도.
도 29는 명명된 개념에 적용된 링크 포인터 하이라이트를 예시한, 도 23의 일차 및 이차 렌즈를 보인 블록선도.
도 30은 렌즈를 최소화한 이후의 도 17의 컴퓨터 표시장치의 블록선도.
도 31은 렌즈를 최대화한 이후의 프라임 렌즈 관찰 모드에 있을 때의 도 30의 컴퓨터 표시장치의 블록선도.
도 32는 충돌 포인터가 충돌 조정 동작에 앞서 위치하는 것을 보인 도 17의 컴퓨터 표시장치의 블록선도.
도 33은 충돌 조정 동작이 행해지는 동안의 포인터 이동에 응답하여 렌즈가 이동한 이후의 도 32의 컴퓨터 표시장치의 블록선도.
도 34는 근접 포인터가 근접 조정 동작에 앞서 한 쌍의 렌즈 부근에 위치하는 것을 보인 도 17의 컴퓨터 표시장치의 블록선도.
도 35는 근접 조정 동작이 행해지는 동안의 포인터 이동에 응답하여 한 쌍의 렌즈가 이동한 이후의 도 34의 컴퓨터 표시장치의 블록선도.
도 36은 본 발명에 따른 추출 스택 저작 프로세스의 프로그램 흐름을 보인 순서도.
도 37은 본 발명에 다른 추출 스택 저작 시스템 내의 비어 있는 추출 스택을 초기화하는 것을 보인 컴퓨터 표시장치의 블록선도.
도 38은 새로운 편집 렌즈의 생성을 보인, 도 37의 컴퓨터 표시장치의 블록선도.
도 39는 도 38의 편집 렌즈의 블록선도.
도 40은 또 다른 두 개의 편집 렌즈의 생성을 보인, 도 38의 컴퓨터 표시장치의 블록선도.
도 41은 본 발명에 따른 정보 요소 추가 루틴의 프로그램 흐름을 보인 순서도.
이하에 설명되는 본 발명의 실시예들은 추출 스택을 활용하여 다수의 추출 레벨로 계층화된 지식의 집합체(BOK)로부터 정보를 표시한다. 추출 스택은 동시에 여러 가지 다른 레벨의 추출과 연관된 다수의 정보 요소를 컴퓨터 표시장치 상에서 표시하고, 추출 레벨의 계층 배열을 표시하기 위하여 삼차원 작업공간 내에서 컴퓨터 표시장치 상의 정보 요소를 시각적으로 링크 한다.
지식의 집합체는 전형적으로 관심의 대상이 되는 특정 주제와 관련된 다수의 정보를 나타낸다. 실제적으로 다양한 교육적인 토픽, 문학적인 토픽, 참조 토픽 및 컴퓨터 토픽을 포함하여 어떠한 주제라도 지식의 집합체로서 나타내어질 수 있다. 추출의 레벨은 전형적으로 주어진 지식의 집합체를 고찰하고, 정보를 지식의 집합체 내에서 각기 다른 여러 형태의 정보를 제공하기 위하여 선택적으로 필터링 아웃될 수 있는 여러 가지 다른 분류 또는 그룹으로 분리하는 특정의 방식을 나타낸다.
특정 레벨의 추출로부터 얻어지는 정보는 정보를 전달하는 데이터의 세그먼트를 나타내는 정보 요소의 형태로 표시된다. 본 명세서에서는 문자와 숫자가 조합된 데이터 또는 문자 그대로의 데이터에 논의의 초점이 맞추어지지만, 그래픽 데이터, 오디오 데이터, 비디오 데이터, 및 실행 가능한 데이터를 포함하여 여하한 다른 형태의 데이터도 정보 요소 내에 저장될 수 있다는 점에 유의할 필요가 있다. 더욱이, 정보 요소는 동일한 지식의 집합체 또는 그와는 다른 지식의 집합체 내에서 다른 포인트에 연결된 링크를 포함할 수도 있기 때문에, 사용자는 정보 요소를 선택함으로서 하나 이상의 지식의 집합체내에서 항해를 할 수 있다.
본 발명의 바람직한 실시예에 대한 설명에 앞서, 전형적인 하드웨어 및 소프트웨어 환경에 대해 간략하게 설명하고 넘어가기로 한다.
하드웨어 환경
본 발명에 따른 컴퓨터 시스템(10)이 도 1에 예시되어 있다. 컴퓨터 시스템(10)은 네트워크(18)를 통해 서버 시스템(16)에 연결된 하나 이상의 클라이언트 컴퓨터 시스템(12)(14)(20)(예를 들어, 데스크탑 또는 개인용 컴퓨터, 워크스테이션, 기타)을 포함하는, 네트워크 방식 컴퓨터 시스템으로서 예시되어 있다. 네트워크(18)는 지역, 광역, 무선, 및 공중 네트워크(예를 들어, 인터넷)를 포함하는 모든 유형의 네트워크 방식 인터커넥션을 가리킨다. 그러나 위에서 열거한 형태의 네트워크에만 한정되는 것은 아니다. 더욱이, 다수의 컴퓨터 및 기타 장치, 예를 들어 다중 서버가 네트워크(18)를 통해 연결될 수도 있다. 그러나 본 발명의 원리는 본 발명에 따른 독립형 컴퓨터 및 그와 관련된 장치에 의해서 또한 활용될 수 있다.
컴퓨터 시스템(12)(14)과 유사한 컴퓨터 시스템(20)은 마이크로프로세서(21) 따위의 프로세서와, 컴퓨터 표시장치(22) 따위의 다수의 주변 장치와, 하드 드라이브, 플로피 드라이브, 및/또는 CD-ROM 디스크 드라이브 따위의 기억 장치(23)와, 프린터(24)와, 여러 가지 입력 장치(예를 들어, 마우스 26 및 키보드 27)를 포함한다. 컴퓨터 시스템(20)은 운영 시스템의 제어 하에서 동작하며, 여러 가지 다양한 컴퓨터 소프트웨어 어플리케이션, 프로그램, 객체, 모듈 등을 실행한다. 더욱이, 여러 가지 어플리케이션, 프로그램, 객체, 모듈 등은 예를 들어 분산 컴퓨터 환경에서 서버(16) 및 그 밖의 다른 컴퓨터 시스템(12)14) 내의 하나 이상의 프로세서를 또한 실행할 수도 있다.
컴퓨터 표시장치(22)는 사용자에게 정보를 시각적으로 보여주는 모든 공지된 방식을 포함할 수도 있다. 예를 들어, 컴퓨터 표시장치(22)는 비디오 모니터, 예를 들어 음극선관(CRT)과, 액정 표시장치(LCD), 또는 프로젝션 표시장치일 수도 있다. 그밖에, 다른 형태의 컴퓨터 표시장치, 예를 들어 홀로그래픽 탱크 따위의 삼차원 표시장치는 물론 삼차원을 시뮬레이션 하는 이차원 표시장치 또한 사용될 수 있다.
사용자의 입력은 공지된 가른 사용자 입력 장치를 통해 이루어질 수도 있다. 예를 들어, 표시장치 상에서의 포인터의 제어는 트랙볼, 조이스틱, 라이트 펜, 접촉식 패드 또는 표시장치, 디지타이징 태블릿, 및 키보드에 의해 수행될 수 있다. 그밖에, 그러한 장치 가운데 대부분은 버튼, 엄지손가락용 휠, 슬라이더 등의 사용자 제어 수단을 포함한다. 게다가, 사용자가 음성 명령 및/또는 몸짓을 제공하여 컴퓨터 시스템에 사용자 입력을 수행할 수 있도록 음성 및/또는 영상 인식이 이용될 수도 있다. 기타의 사용자 인터페이스 장치가 또한 사용될 수 있다.
일반적으로, 운영 시스템의 일부로 구현되든 특정 어플리케이션, 프로그램, 객체, 모듈 또는 일련의 명령어의 일부로 구현되든 간에, 본 발명의 실시예를 구현하기 위해 실행되는 루틴을 본 명세서에서는 "컴퓨터 프로그램"이라 칭한다. 컴퓨터 프로그램은 전형적으로 네트워크로 연결된 컴퓨터 시스템(10)의 장치 또는 시스템 내의 하나 이상의 프로세서에 의해 판독되거나 실행될 때 이들 장치 또는 시스템이 본 발명의 다양한 양상을 구현하는 단계 또는 요소를 실행하는데 필요한 단계를 수행하도록 하는 명령어로 이루어진다. 더욱이, 본 명세서에서는 완전한 기능을 갖춘 컴퓨터 시스템에 기초하여 설명이 이루어지지만, 본 발명의 여러 가지 실시예는 다양한 형태의 프로그램 제품으로서 배포될 수 있으며, 실제로 배포를 하기 위해 사용되는 신호 수록 매체의 형태가 어떠하든지 간에 그에 상관없이 동일하게 적용된다. 신호 수록 매체의 예로는 휘발성 및 비휘발성 메모리 장치, 플로피 디스크, 하드디스크 드라이브, CD-ROM, DVD 등의 기록이 가능한 형태의 매체와 디지털 및 아날로그 통신 링크 따위의 전송 형태의 매체가 있다. 그러나 신호 수록 매체가 상기한 특정 매체에만 국한되는 것은 아니다.
도 1에 예시된 전형적인 환경에 의해 본 발명이 제한되지는 않으며, 본 발명의 범주를 벗어나지 않는 한 또 다른 하드웨어 환경을 사용할 수도 있다.
소프트웨어 환경
도 2는 본 발명에 따른 컴퓨터 시스템에 적절한 소프트웨어 환경을 보인 것이다. 프로세서(21)는 메모리(30) 및 여러 가지 입력 및 출력 장치에 연결된 상태로 도시되어 있다. 예를 들어, 사용자 입력은 프로세서(21)에 의해, 예를 들어 마우스(26) 및 키보드(27)에 의해 받아들여진다. 추가적인 정보가 컴퓨터 시스템(20) 및 네트워크(18)를 통하여 연결된 컴퓨터 시스템(10) 내의 다른 컴퓨터 시스템 사이에서 전달될 수도 있다. 추가적인 정보는 대용량 기억장치(23)에 저장되고 및/또는 그로부터 수신될 수도 있다. 프로세서(21)는 표시 데이터를 표시장치(22)에 또한 출력한다. 컴퓨터 시스템(20)은 프로세서(21)와 각각의 컴포넌트(18,22,23,26,27,28) 사이의 적절한 인터페이스를 포함하며, 이러한 인터페이스는 이 기술분야에서 널리 공지되어 있다.
하드웨어 인터페이스 프로그램 코드(32), 장치 및 그래픽 드라이버(34), 운영 시스템 커널(36), 및 여러 가지 어플리케이션 프로그래밍 인터페이스(API)((38), 예를 들어 윈도우 API, 그래픽 API, 태스킹 API 및 입/출력 API 등을 포함하여, 다수의 시스템 컴퓨터 프로그램이 메모리(30) 내에 저장된다. 이들 시스템 프로그램 각각의 구성 및 동작은 전형적으로 사용되는 특정 컴퓨터 하드웨어에 따라 좌우되며, 이는 이 기술분야에서 널리 공지되어 있는 사실이다. 예를 들어, 다수의 운영 시스템이 사용될 수 있는데, AS/400 미드레인지(midrange) 컴퓨터에는 OS/400이 사용되고, PC 시스템에는 윈도우 95 또는 윈도우 NT가 사용되고, 매킨토시 컴퓨터에는 MacOS가 사용되고, 기타 여러 가지 형태의 UNIX가 또한 사용되고 있다.
운영 시스템(36)의 여러 가지 기능 가운데 이벤트 관리자(37)에 의해 처리되는 이벤트 관리의 기능이 있다. 이벤트 관리자(32)는 전용 실행 스레드(thread) 내에서 사용자에게 정보를 표시하고 사용자로부터의 입력을 받아들이기 위한 이벤트 구동 그래픽 사용자 인터페이스(GUI)를 제공한다.
다수의 컴퓨터 소프트웨어 어플리케이션은 그 안에 제공된 시스템 프로그램 코드를 활용하여 컴퓨터 시스템(10) 상에서 실행될 수 있다. 더욱이, 메모리(30)는 다양한 어플리케이션 또는 시스템 프로그램 코드에 의해 활용되는 데이터를 또한 저장할 수도 있다. 예를 들어, 도 2는 지식의 집합체(40), 추출 스택(50), 저작 도구(90)를 예시하고 있다. 이들에 대해서는 이하에서 상세히 설명하기로 한다.
도면부호 32-38로 표시된 시스템 프로그램 코드, 지식의 집합체(40), 추출 스택(50) 및 저작 도구(90)는 개시에 앞서 네트워크(18) 또는 대용량 기억장치(23)에 저장된다. 그밖에, 이들 각각은 메모리(30), 대용량 기억장치(23), 네트워크(18) 또는 레지스터 및/또는 프로세서(21)의 캐시 내에 (예를 들어, 그 실행 중에) 각기 다른 시간에 상주하는 여러 가지 컴포넌트를 가질 수도 있다.
그러나, 다른 소프트웨어 환경 또한 사용될 수 있다는 점에 유의할 필요가 있다.
정보 추출
추출 스택에 의해 액세스되는 정보는 지식의 집합체의 형태로 먼저 추출되어야만 한다. 위에서 논의한 바와 같이, 지식의 집합체는 전형적으로 관심의 대상이 되는 특정 주제와 관련된 다수의 정보를 나타낸다. 일반적으로, 지식의 집합체는 정보가 저장될 수 있는 데이터베이스, 하나 이상의 서류 또는 파일의 형태로 표시되고 유지될 수도 있다.
예를 들어, 도 3은 순서에 따라 기재된 정보 요소(42)를 활용하는 지식의 집합체(40)를 유지하는 한가지 방식으로 보여주고 있다. 위에서 언급한 바와 같이, 정보 요소는 지식의 집합체 내의 하나 이상의 추출 레벨과 관련된 정보를 나르는 데이터 세그먼트를 나타낸다. 각각의 정보 요소는 레벨 식별자(44), 개념 요소 식별자(46) 및 정보(48)를 포함하고 있다.
레벨 식별자(44)는 일반적으로 추출 레벨이 정보 요소 내의 정보와 관련되어 있는 경우의 작가의 지시를 나타내고, 따라서 정보 요소가 특정의 추출 레벨의 표시와 관련된 프리젠테이션에 적절한 것인지 아닌 지의 여부를 나타낸다. 레벨 식별자(44)는 영의 값, 단일 레벨 값, 레벨 값 리스트, 레벨 값 범위, 레벨 값 범위의 리스트, 상부 레벨 경계, 하부 레벨 경계, 또는 그 조합을 포함하여, 가능한 다수의 값을 가질 수 있다. 도 34 내지 도 41과 관련하여 설명되는 저작 프로세스를 참조하여 이하에서 설명되는 바와 같이, 레벨 식별자는 레벨의 많은 문맥상 이해 가능한 식별을 제공하는 특징 부여 또는 설명은 물론, 레벨의 계층 관계를 나타내는 하나 이상의 수치 또는 다른 분류 가능한 값을 갖는 레벨 파라미터를 포함할 수 도 있다. 따라서, 그렇게 제한되지 않는 한, 추출 스택(50)의 레벨 식별자는 이하에서는 이해가 쉽도록 특성 부여 또는 설명의 용어로서 설명된다.
추출의 레벨은 전형적으로 주어진 지식의 집합체를 주목하는 특정한 방법을 나타낸다. 추출 스택은 종종 여러 가지 레벨의 능력과 관심을 가진 독자에게 말을 거는 것으로 고려될 수도 있다. 몇몇 경우에 있어서 독자는 복수의 개개인들로 이루어진다. 다른 경우에서는, 한 사람의 개인이 다수의 독자를 대표할 수 있도록 한사람의 개인의 능력과 관심이 시간의 경과에 따라 변할 수 있다. 그 결과, 추출 레벨이 지식의 집합체에 대해 설정되는 방식에 따라 각기 다른 프리젠테이션이 특정 독자에 맞게 어떻게 만들어질 수 있는 지가 결정될 수 있다.
따라서, 주어진 지식의 집합체에 할당된 추출 레벨은 다수의 기준에 기초할 수도 있다. 예를 들어, 추출 레벨은 각기 다른 레벨의 이해(예를 들어, 초등학생, 고등학생, 대학생, 박사, 무경험자, 전문가 등등)에 맞게 한정될 수도 있다. 추출 레벨은 또한 상세한 정도의 레벨(예를 들어, 요약, 개관, 상세한 설명, 등등)에 맞게 한정될 수도 있다. 추출 레벨은 또한 주어진 토픽(예를 들어, 정의, 요약, 개관, 빈번하게 문의되는 질문(FAQ), 용어 해설, 관련 토픽, 상세한 설명, 공식, 예시, 예제, 개별 지도, 등등)을 설명하기 위한 각기 다른 통신 도구 또는 기술에 맞게 한정될 수도 있다. 추출 레벨은 또한 문서(예를 들어, 행정 개관, 서문, 서론, 차례, 표제, 본문, 각주, 요약, 부록, 색인, 용서 해설, 등등)의 각기 다른 섹션 또는 컴포넌트에 기초하여 분할될 수도 있다. 추출 레벨은 또한 데이터의 형태(예를 들어, 텍스트 데이터, 이미지 데이터, 오디오 데이터, 비디오 데이터, 실행 가능한 데이터, 등등)에 기초하여 구분될 수도 있다. 추출 레벨은 또한 각기 다른 시각, 예를 들어 "무엇을", "왜", "어떻게", "언제", 등등의 시각으로부터 지식의 집합체를 주목할 수도 있다. 컴퓨터 프로그램 코드의 경우, 각기 다른 소프트웨어 컴포넌트 및/또는 레이어, 예를 들어 소오스 코드, 객체 코드, 라이브러리, 인터페이스, 프레임워크, 객체 또는 클래스 정의, 주석 등등이 한정될 수도 있다. 작가의 수집 작업을 문학적으로 해석하는 경우에는, 코멘트와 작업(예를 들어, 분석 및 비평)을 구분하기 위하여 그 밖의 다른 추출 레벨이 한정될 수도 있다. 다른 것과 구별되는 추출 레벨의 다른 방식이 또한 사용될 수도 있다.
개념 식별자(46)는 일반적으로 하나 이상의 지명된 개념으로서 정보 요소의 작가의 식별을 나타낸다. 동일한 개념에 관련되지만 다른 레벨로부터 나온 정보 요소가 동일한 개념 식별자를 가지게 되기 때문에, 개념 식별자는 하나의 추출 레벨에서의 개념의 프리젠테이션을 다른 레벨에서의 개념의 프리젠테이션과 통합하는데 사용될 수도 있다. 개념 식별자는 특정의 지명된 개념의 독특한 식별을 제공하는 적절한 값, 예를 들어, 문자형 문자와 숫자형 문자의 조합을 구비할 수 있다. 그밖에, 개념 식별자는 특정의 지명된 개념과의 연관되지 않았음을 나타내기 위하여 null이 될 수 있다.
정보(48)는 지식의 집합체와 관련된 정보 요소 내의 실제적인 데이터를 나타낸다. 정보는 비트(예를 들어, 플래그)의 크기 정도로 작을 수도 있고, 텍스트 데이터, 이미지 데이터, 오디오 및/또는 비디오 데이터 따위의 멀티미디어 데이터, 실행 가능한 프로세스로부터의 실행 가능한 데이터 등등을 포함하는 제한되지 않은 양의 다양한 데이터를 포함할 수도 있다. 정보(48)는 다른 정보 요소를 또한 포함할 수 있으며, 따라서 중첩된 정보 요소가 지원된다.
지식의 집합체(40)는 여러 가지 방식으로 생성 및/또는 유지될 수 있다. 예를 들어, 지식의 집합체는 변형된 하이퍼텍스트 표시 언어(HTML) 포맷을 사용하여 하나 이상의 태그 구분 텍스트 문서 내에 저장될 수도 있다.
일례로서, 본 발명의 여러 가지 특징을 설명하기 위하여 이하에서 사용되는 지식의 집합체 문서의 한가지 적절한 포맷이 표 I에 예시되어 있다.
표 I: 지식의 집합체 문서의 예
1 〈html〉
2 〈head〉
3 〈title〉Static Electricity〈/title〉
4 〈/head〉
5 〈body〉
6 〈hl〉Static Electricity Puts the Spark in Sparking〈/hl〉
7 〈p〉Static electricity is a natural phenomenon familar to many Minnesotans. We notice it during our cold dry winters when the sudden snap of an electrostatic discharge nips our noses as we kiss our spouses.
8 〈infoel lvl=1〉The discharge occurs just before our noses touch, when the distance between them is so small that the electricity leaps through the cold air like lightening to settle the difference in our noses' electrostatic potential.〈/infoel〉〈/p〉
9 〈p〉〈infoel lvl=2 cid=coul〉The force of the spark is determined by 〈B〉Coulomb's law〈/B〉, which relates the charges on the noses and the distance between them to yield coulombs.〈/infoel〉
10 〈infoel lvl=3 cid=coul〉Our understanding of 〈B〉Coulomb's law〈/B〉 lets us quantify the electromagnetic force between two charges. The force is calculated as:
11 〈pre〉
12 F=kqu/rr
13 〈/pre〉
14 where F is coulombs. k is the proportionality constant, q and u are the charges and r is the distance between the charges.〈/infoel〉〈/p〉
15 〈p〉〈infoel lvl=2 cid=ohm〉The air's resistance to the spark is determined by 〈B〉Ohm's law〈/B〉, which relates the length and thickness of the path it takes through the air to the air's suitability as an insulator to yield ohms.〈/infoel〉
16 〈infoel lvl=3 cid=ohm〉〈B〉Ohm's law〈/B〉 gives us the resistance of a conductor between two charges. The resistance is calculated as:
17 〈pre〉
18 R=lp/A
19 〈/pre〉
20 where R is ohms, l is length, p is resistivity and A is the cross-sectional area of the conductor.〈/infoel〉〈/p〉
21 〈p〉〈infoel lvl=2 cid=rstv〉The spark's path tends to be short and thick or long and this. Warm moist air is a better insulator, i.e., has higher resistivity, than cold dry air.〈/infoel〉
22 〈infoel lvl=3 cid=rstv〉The cross-sectional area of the column of air between the noses varies inversely with the distance between the noses. The resistivity of the air itself varies with the temperature and relative humidity. The resistivity of air at different temperature and humidity combinations is shown in the following table.〈/p〉
23 〈table〉
24 [EMBEDDED TABLE]
25 〈/table〉〈/infoel〉
26 〈p〉Move the Minnesotans together and apart to see the sparks fly when they kiss,〈/p〉
27 〈script language= "JavaScript"〉
28 [EMBEDDED SCRIPT #1]
29 〈/script〉
30 〈infoel lvl=3〉〈p〉Vary the temperature and relative humidity of the Minnesotan's environment to see how this affects the resistivity of the air between them and the distance at which the coulombs overcome the ohms.〈/p〉
31 〈script language="JavaScript"〉
32 [EMBEDDED SCRIPT #2]
33 〈/script〉〈/infoel〉
34 〈/body〉
35 〈/html〉
예로 보인 문서는 문서 내의 정보를 포맷하기 위하여 표준 HTML-포맷 태그를 활용한다. 게다가, 별도의 태그인 p〈infoel〉p 는 문서 내의 정보를 다수의 정보 요소로 구분하기 위하여 활용된다. 태그는 레벨 식별자로서의 기능을 하는 "lvl" 필드와, 개념 식별자로서의 기능을 하는 "cid" 필드를 포함하고 있다. "〈infoel〉" 및 "〈/infoel〉" 태그 사이의 텍스트 데이터는 정보 요소의 정보로서의 기능을 한다.
위에서 예로 보인 문서에서 주목하여야 할 점은 문서 내의 정보의 일부가 p〈infoel〉p 태그에 의하여 구분되지 않을 수도 있다는 점이다. 이러한 예에 있어서는, 문서 내의 모든 정보가 정보 요소와 결합할 수 있도록, 그러한 정보를 null의 값의 레벨과 개념 식별자를 갖는 디폴트 정보 요소로 포맷하는 것이 바람직할 수도 있다.
또한, 성능과 관련하여서는, 추출 스택에 의해 정보를 억세스하고 조작하기 위하여 텍스트로 된 지식의 집합체 문서 내에 저장된 정보를 특정 데이터 구조 내에 로드 하는 것이 바람직할 수도 있다. 그러한 것으로서, 적절한 데이터 구조를 발생시키기 위하여 문서가 파서(parser)를 통과하도록 하는 것이 바람직할 수도 있다. 파서(예를 들어, HTML 파서)의 이용 및 구성은 이 기술분야에서 널리 공지되어 있다. 따라서, 이 기술분야에서 통상의 지식을 가진 자라면 텍스트로 된 지식의 집합체 문서를 대체 데이터 구조로 파서할 수 있다. 더욱이, 이하에서 더욱 상세히 논의되겠지만, 지식의 집합체가 생성되는 동안 새로운 또는 기존의 정보가 여기에서 설명되는 포맷의 지식의 집합체로 직접 입력될 수도 있다.
지식의 집합체는 여러 가지 대체 방식으로 표시될 수도 있다. 예를 들어, 지식의 집합체를 나타내기 위하여 하나 이상의 파일 또는 문서가 사용될 수 있다. HTML 문서와 유사하게도, 지식의 집합체 문서는 하나의 문서가 다른 문서 내의 정보의 용기로서의 기능을 수행할 수 있도록 다른 문서를 또한 상호 참조할 수도 있다. 지식의 집합체는 또한 데이터베이스 내에 저장될 수도 있으며, 각각의 정보 요소는 데이터베이스 내부의 레코드에 할당된다. 이에 대해 여러 가지로 변형이 가능하다는 점이 이 기술분야에서 통상의 지식을 가진 자라면 쉽게 이해될 것이다.
위에서 논의한 바와 같이, 지식의 집합체는, 다양한 교육 토픽, 문학 토픽, 기술적인 토픽, 참조 토픽, 그리고 컴퓨터 토픽을 포함하여, 무수한 형태의 주제에 관련된 정보의 집합체를 나타낼 수도 있다.
본 발명의 적절한 어플리케이션의 또 다른 여러 가지 클래스는 계층적이고 쉽게 액세스할 수 있는 프리젠테이션 방식, 예를 들어 소설, 시나리오, 문학 해석, 사전 검열 매뉴얼, 운영자 매뉴얼, 요리서적, 백과사전, 사전, 교과서, 시스템 인터페이스, 및 어플리케이션 인터페이스로 정보를 구성하는 것이 바람직한 명령, 기술, 참조, 교육 및 문학 어플리케이션을 포함한다. 본 발명의 적절한 어플리케이션의 또 다른 클래스는 정보가 다른 계층 또는 레벨의 추출로, 예를 들어 도움말 시스템, 프로젝트 관리자, 개인 정보 관리자 및 조직자, 데이터베이스 도구, 메일/뉴스 리더, 그룹웨어, 분류 뷰어/편집기, 웹 문서 빌더, 웹사이트 빌더, 구성 차트 어플리케이션, 아웃라이너, 및 문서 편집 및 저작 시스템(예를 들어, 소프트웨어, 법정 토픽, 법정 의견, 공개, 등등)으로 계층화할 수 있는 컴퓨터 소프트웨어 어플리케이션의 클래스이다. 예를 들어, 메일/뉴스 리더 어플리케이션에 있어서, 하나의 추출 레벨은 뉴스 그룹 또는 메일 폴더의 리스트일 수도 있다. 또 다른 추출 레벨은 특정 뉴스 그룹 또는 폴더 내의 메시지 리스트에 세팅될 수도 있으며, 또 다른 추출 레벨은 메시지 리스트 내의 특정 메시지의 텍스트에 세팅될 수도 있다.
적절한 어플리케이션의 또 다른 클래스는 지식의 집합체에 대한 각기 다른 관점을 나타내는 것에 기초한다. 예를 들어, 재판 준비 도구는 각기 다른 증인, 피해자 및/또는 가해자의 사건 또는 죄에 관한 기사를 제공하기 위해 한정된 추출 레벨을 활용할 수도 있다. 또 다른 예로서, 이야기 또는 특정 사건이 이야기의 각기 다른 인물의 눈을 통해 독자에게 동시적으로 나타내어질 수 있도록 독특한 스타일의 허구적인 작품이 저작되어 독자에게 제공될 수도 있다.
여기에서는 특별히 언급되지 않은 다른 어플리케이션 또한 이 기술분야에서 통상의 지식을 가진 자에게는 명백히 이해될 것이다.
추출 스택 구성
위에서 논의한 바와 같이, 추출 스택은 지식의 집합체, 예를 들어 지식의 집합체(40) 내에 저장된 정보를 액세스 및/또는 조작하는데 활용된다. 추출 스택의 한가지 적절한 실시예가 도 4에 도면부호 50으로 도시되어 있다. 추출 스택은 두 개의 프라이머리 컴포넌트인 깊이 관리자(6)와 흐름 관리자(80)를 포함하고 있다. 깊이 관리자(60)는 일반적으로 추출 스택의 데이터 구조를 유지하고, 컴퓨터 표시 장치 상에서의 추출 스택의 렌더링을 처리한다. 한편, 흐름 관리자(80)는 사용자의 데이터 구조와의 상호 작용을 처리하여 데이터 구조가 깊이 관리자에 의해 표시되는 방식을 변경한다.
추출 스택은 다수의 추출 레벨을 구성하는 시각적인 방식을 제공한다. 지식의 집합체 내의 각각의 추출 레벨은 전형적으로 공통 깊이 벡터를 따라 구성되는 초점 평면 또는 그에 수직으로 연장되는 추출 축선에 의해 추출 스택 내에 표시된다. 초점 평면은 추출 레벨을 구분하는 방식에 기초하여 깊이 벡터를 따라 구성된다. 예를 들어, 추출 레벨이 각기 다른 상세 레벨과 관련이 되면, 초점 평면은 통합된 추출 레벨의 관련 상세 레벨에 기초하여 순차적으로 구성될 수도 있다.
추출 스택은 초점 평면의 상대적인 배열이 그로부터 쉽게 파악될 수 있도록 각기 다른 초점 평면이 삼차원 작업 공간 내에 구성되는 방식으로 하나 이상의 초점 표면으로부터 정보를 표시하는 기능을 한다. 초점 평면은 이차원 가상 구성으로서 처리되며, 초점 평면이 구성되는 깊이 벡터는 스택의 세 번째 차원을 나타낸다. 그 결과, 비디오 모니터 등의 이차원 표시 장치에 추출 스택을 표시하기 위해서는 삼차원 모델링 기술이 활용되어 추출 스택의 삼차원 렌더링을 제공하여야 한다.
깊이 관리자(60)는 컴퓨터 표시장치 상에 추출 스택을 렌더링 하는 것은 물론 추출 스택의 데이터 구조를 처리한다. 추출 스택의 데이터 구조는 각기 다른 추출 스택 컴포넌트를 나타내는 다수의 객체를 포함한다. 도 4에 도시한 바와 같이, 깊이 벡터(62)는 데이터 구조가 지식의 집합체의 각각의 초점 평면 또는 추출 레벨을 구성할 수 있도록 제공된다. 깊이 벡터(62)는 기본적으로 유기적인 구조이며, 컴퓨터 표시장치 상에 표시될 수도 있고 표시되지 않을 수도 있다. 초점 평면은 깊이 벡터를 따라 사전 설정된 위치에서, 예를 들어 그 길이를 따라 일정한 간격을 두고 배열된다.
추출 스택의 데이터 구조를 형성하는 또 다른 형태의 객체는 렌즈(64)이다. 이 렌즈는 전형적으로 스택 조작 및 내용의 추출 스택을 따라 부착점 및 초점으로서의 기능을 수행한다. 렌즈 객체(64)는 하위 분류된 다수의 렌즈 타입을 포함한다. 예를 들어, 현수 렌즈는 하나 이상의 추출 레벨로부터 정보를 표시하는데 사용된다. 그밖에, 현수 렌즈는 렌즈 내에 표시되는 외관 및 내용을 변형하는데 사용되는 크기 변경 핸들, 최소화 핸들, 스크롤 바 등등의 제어 수단을 갖는 그래픽 사용자 인터페이스 윈도우와 동일한 방식으로 나타내어진다. 이하에서 논의되겠지만, 여러 가지 필터링 및 링크 기술이 현수 렌즈에 대해 사용되어 그 안에 표시되는 정보를 변형할 수 있다. 더욱이, 현수 렌즈는 보충 렌즈는 물론 일차 및 이차 렌즈로서 더욱 세분될 수도 있다. 이에 대해서는 이하에서 상세히 설명하기로 한다.
렌즈 객체의 또 다른 서브클래스는 마이너 렌즈이며, 이 렌즈는 현수 렌즈를 최소한의 형태로 나타낸 것이다. 전형적으로, 마이너 렌즈는 최소한의 형태가 사용자에게 분명히 나타날 수 있도록 임의로 작게 형성된다. 렌즈의 또 다른 서브클래스는 프라임 렌즈(이하에서 논의됨)이다. 이 렌즈는 현수 렌즈의 최대한의 형태이다. 붕괴된 추출 스택은 전형적으로 프라임 렌즈와 동시에 표시됨으로써 전체적으로 추출 스택 내의 프라임 렌즈의 시각적인 관계를 유지한다.
또 다른 추출 스택 객체 데이터 구조는 컴퍼스 핸들(65)이다. 이 핸들은 추출 스택의 깊이 벡터의 일단에 위치한다. 컴퍼스 핸들은 전형적으로 추출 스택의 종료점으로서의 기능을 수행하며, 조작을 위한 초점으로서의 기능을 수행할 수도 있고, 최소 또는 최대 추출 스택(이하에서 논의됨)을 액세스할 수도 있다. 그밖에, 컴퍼스 핸들은 특정 지식의 집합체의 다른 관련 추출 스택의 부착점으로 사용될 수도 있다.
추출 스택 데이터 구조 내의 또 다른 객체는 바인더 밴드(66)이다. 이 밴드는 추출 스택의 깊이 벡터를 따라 표시되는 다른 객체들을 시각적으로 연결함으로써 추출 레벨의 계층적 배열을 시각적으로 나타내는 한가지 방법을 제공한다. 바인더 밴드의 하나의 서브클래스는 샤프트 밴드이다. 이 밴드는 지식의 집합체 내의 각기 다른 추출 레벨과 연합된 객체를 함께 링크 시킨다. 바인더 밴드의 또 다른 서브클래스는 계층 밴드이다. 이 밴드는 지식의 집합체 내의 동일한 추출 레벨과 연합된 객체들을 함께 링크 시킨다. 바인더 밴드는 전형적으로 두 개의 서로 다른 표시 객체 사이에서 연장되는 하나 이상의 연결 요소로 표시된다. 예를 들어, 일실시예에 있어서 바인더 밴드는 두 개의 객체의 대응하는 모서리 사이에서 연장되는 네 개의 라인으로 표시될 수 있다. 다른 수의 라인 및 다른 형태의 연결 요소가 바인더 밴드를 나타내는데 사용될 수 있다.
또 다른 하나의 추출 스택 객체는 교차점(68)이다. 이 교차점은 렌즈가 깊이 벡터를 따라 어느 위치에서도 표시되지 않을 때 깊이 벡터의 길이를 따라 배치된 단일 초점 평면을 식별하는 기능을 수행한다. 교차점은 전형적으로 교차점의 초점 평면과 연합하는 렌즈를 생성하기 위하여 사용자에 의해 조작될 수도 있다.
위에서 논의한 바와 같이, 흐름 관리자(80)는 추출 스택용으로 표시되는 다양한 렌즈로의 정보의 흐름을 처리하는 것을 포함하여, 추출 스택이 깊이 관리자에 의해 어떻게 표시되는지를 변형하기 위하여 추출 스택 데이터 구조를 갖춘 사용자 인터페이스를 처리한다. 흐름 관리자(80)는 도면부호 52로 나타낸 다수의 클라이언트/서버 쌍을 통해 깊이 관리자(60)에 결합된다. 클라이언트/서버 쌍(52)은 렌즈와 필터를 함께 결합하며, 일반적으로 지식의 집합체에서 렌즈로 흐르는 정보의 흐름을 제어하는 기능을 수행한다.
흐름 관리자(80)는 사용자의 추출 스택과의 상호작용을 처리하기 위하여 활용되는 다수의 객체를 포함한다. 예를 들어, 흐름 관리자(80)는 정보가 현수 렌즈 내에서 표시되는 방식을 한정하기 위하여 하나 이상의 필터 객체(82)를 활용한다. 각각의 필터(82)는 렌즈에 의해 사용되는 사전 설정된 필터링 기준을 한정한다. 사용자는 필터링 기준을 액세스하고 그를 조작하는 것이 허용되어 추출 스택에 의해 정보가 표시되는 방식을 변형할 수 있다.
이용 가능한 명명된 개념의 리스트(184)는 각기 다른 추출 레벨로부터의 정보가 동시에 표시될 때 특정 개념에 관계된 정보를 함께 시각적으로 링크 하는 시기를 결정하기 위하여 흐름 관리자(80)에 의해 또한 유지될 수 있다. 이하에서 상세히 설명되지만, 명명된 개념 정보는 예를 들어 사용자 인터페이스가 링크 포인터 모드에 있을 때 흐름 관리자에 의해 활용된다. 그밖에, 일부 필터 실시예는 하나 이상의 현수 렌즈로부터의 정보를 필터링 할 때 명명된 개념 정보에 또한 의존할 수도 있다.
사용자의 추출 스택과의 상호작용은 주로 마우스, 트랙 볼, 키보드, 터치 패드, 등의 하나 이상의 사용자 인터페이스 장치에 의해 조작되는 포인터(도 4에는 도시되지 않음)에 의해 처리된다. 포인터는 여러 가지 모드 중 어느 한가지 모드에 놓일 수 있고, 렌즈 사이의 초점을 전환하고, 자르기 및 붙이기 작업을 위한 정보를 강조하는 등의 동작에 또한 사용될 수도 있다. 포인터의 다른 용도에는 이전부터 사용되어 온 여러 가지 포인터에 기반한 동작이 포함되는데, 크기 재조정, 이동, 닫기 및 그와 유사한 윈도우 동작과, 메뉴 엔트리의 선택 및 버튼의 선택 등이 이에 해당한다.
위에서 설명한 바와 같은 추출 스택의 구성이 객체 지향적인 한, 다른 프로그래밍 방법, 예를 들어 절차가 사용될 수도 있다. 추출 스택 및 그와 관련된 컴포넌트에 대하여 여기서 설명되는 여러 가지 기능은 본 발명에 따른 각기 다른 소프트웨어 루틴 및/또는 구조에 할당될 수도 있다.
추출 스택 동작
본 발명에 따른 추출 스택의 동작 및 용도에 대해 설명한다. 위에서 논의한 바와 같이, 이벤트 구동 시스템은 사용자의 추출 스택과의 상호작용을 처리하기 위하여 활용될 수도 있다. 그러한 것으로서, 운영 시스템(36)(도 2)의 이벤트 관리자(37)의 메인 루틴이 도 5에 도면부호 100으로 예시되어 있다. 비 이벤트 구동(non-event-driven) 시스템이 또한 사용될 수도 있다.
루틴(100)은 무한 루프 상태로, 전형적으로는 운영 시스템(36)의 백그라운드에서 동작하는 전용 프로세스로서 동작하는 것으로 고려될 수 있다. 이 기술분야에서 널리 공지된 바와 같이, 루틴(100)은 블록(102)에서 이벤트를 기다리며, 그러한 이벤트를 적절한 처리 루틴으로 보낸다. 본 발명에 따른 그러한 이벤트가 블록(106-114)에 여러 개 검출된다. 도 5에는 컴퓨터 시스템 내에서 발생되는 다수의 다른 형태의 이벤트를 처리하지만 본 발명의 이해와는 관련이 없는 블록(104)이 또한 도시되어 있다.
스택 초기화
도 5에 도시한 바와 같이, 스택 이벤트의 초기화는 블록(106)에서 검출되고 깊이 관리자(60)에 의해 실행되는 스택 초기화 루틴(150)에 의해 처리된다. 이것은 도 6에 더욱 상세히 도시되어 있다. 루틴(150)은 지식의 집합체 문서를 검색하고 그 문서를 도 4에 일반적으로 예시한 데이터 구조에 파싱(parsing)함으로써 블록(151)에서 시작된다. 위에서 논의한 바와 같이, 텍스트 문서를 더욱 효과적인 데이터 구조 내로 파싱 하는 것은 이 기술분야에서는 널리 공지되어 있다. 파싱 동작이 완료하게 되면, 11개의 정보 요소를 포함하는 지식의 집합체 데이터 구조가 생성된다. 이들 각각의 요소는 아래의 표 II에 기재한 바와 같은 데이터를 포함한다 (내장 포맷 정보는 표에 표시되지 않음).
다음에 블록(52)에서, 표시될 객체가 추출 축(abstraction axis)을 따라 위치하는 깊이 범위를 발생시키기 위해 깊이 벡터 객체가 생성된다. 깊이 벡터 객체는 예를 들어 깊이 벡터를 따라 한정되는 객체의 링크 된 리스트를 포함할 수도 있다. 또 다른 데이터 구조가 사용될 수도 있다.
이어서 한 쌍의 컴퍼스 핸들 객체가 생성되고, 깊이 벡터의 최소 및 최대 깊이 값으로 그 깊이 값을 설정함으로써 블록(154) 내의 깊이 벡터의 각각의 단부에 링크 된다. 그 다음으로, 어떤 추출 레벨이 한정되는지를 결정하기 위하여 지식의 집합체 데이터 구조는 블록(156)에서 스캔된다. 이 정보로부터, 교차점 객체는 각각의 추출 레벨에 대해 생성되고, 깊이 벡터에 링크 된다. 전형적으로 교차점은 깊이 벡터를 따라 일정한 간격으로 배열된다. 따라서, 표 II의 지식의 집합체에서는 세 개의 추출 레벨이 발견되고, 세 개의 교차점이 일정한 간격으로 깊이 벡터에 링크 됨으로써, 깊이 벡터가 4개의 동일한 길이의 세그먼트로 분할된다. 이것은 예를 들어 교차점의 깊이 값을 깊이 벡터의 길이의 25%, 50%, 75%로 설정함으로써 수행된다.
다음으로, 블록(158)에서, 샤프트 밴드 객체가 생성되어 각각의 컴퍼스 핸들 및 교차점 사이에서 연장된다. 각각의 샤프트 밴드 객체는, 예를 들어 인접한 표시 요소의 모서리 사이에서 연장될 수 있도록 4개의 라인 세그먼트의 쌍으로 된 단부점을 포함할 수도 있다. 그 다음으로, 블록(159)에서 깊이 관리자가 컴퓨터 표시장치 상에서 추출 스택의 렌더링을 시작할 수 있도록 스택 렌더링 이벤트가 발생된다. 이렇게 해서 루틴(150)이 완료된다.
도 5로 돌아와서, 스택 렌더링 이벤트는 블록(108)에서 검출되며, 스택 렌더링 루틴(160)에 의해 처리된다. 이하에서 논의되는 루틴(160)은 비디오 모니터 따위의 이차원 컴퓨터 표시장치 상에서 삼차원 형태로 추출 스택을 렌더링 하거나, 가상 현실 헤드셋 등의 시뮬레이션 된 삼차원 표시장치 상에서 삼차원 형태로 추출 스택을 렌더링 한다. 루틴(160)은 (전형적으로 깊이 벡터의 방위에 비례하여) 추출 스택을 보기 위한 삼차원 공간 내에 위치인 뷰포인트 파라미터를 활용한다. 예를 들어, 하나의 적절한 뷰포인트는 표시장치의 좌측 하단의 시작 위치에서 표시장치의 우측 상단의 종료 위치까지 연장됨으로써 깊이 벡터를 렌더링 한다.
뷰포인트는 고정되거나 임의의 선택 또는 우선적인 선택을 통해 사용자에 의해 변경될 수도 있다. 그밖에, 뷰포인트는 사용자가 가상 현실 모델링 언어(VRML) 브라우저 내의 가상 시계를 둘러 볼 수 있는 방식과 유사한 방식으로 사용자에 의해 동적으로 변경될 수도 있다. 대신에 루틴(160)은 홀로그래픽 탱크(an holographic tank) 등의 삼차원 표시장치 내에서 추출 스택을 렌더링 할 수도 있다.
루틴(160)은 추출 스택을 렌더링 하는데 사용되는 스케일을 결정하는 줌 인자(a zoom factor) 또한 활용할 수도 있다. 줌 인자는 고정될 수도 있고, 사용자에 의해 변경될 수도 있다. 줌 인자는 사용자가 온-더-플라이(on-the-fly)를 줌 인 및 줌 아웃 할 수 있도록 또한 동적으로 변경될 수도 있다. 그밖에, 전체 스택의 최대화된 뷰가 컴퓨터 표시장치 상에서 렌더링 될 수 있도록 객체가 추출 스택 내에 놓인 후에 줌 인자가 계산될 수도 있다.
도 7에 상세히 예시한 바와 같이, 루틴(160)은 깊이 벡터에 대하여 뷰포인트 및/또는 줌 인자를 계산함으로써, 예를 들어 현재 저장된 파라미터를 검색함으로써 블록(162) 내에서 시작된다. 다음에, 블록(164)에서 바인더 밴드를 제외한 추출 스택 내의 각각의 객체(예를 들어, 렌즈 교차점, 등등)를 처리하기 위한 루프가 시작된다. 렌더링 되어야 할 별도의 객체가 남아 있는 동안, 블록(165)은 이 기술분야에서 공지된 전통적인 삼차원 모델링 기법을 이용하여 적절한 방위에서 깊이 벡터를 따라 다음의 객체를 렌더링 할 수 있도록 블록(165)이 실행된다. 더욱이, 지식의 집합체로부터 정보를 표시하는 렌즈 등의 경우, 적절한 정보가 지식의 집합체 내의 정보 요소의 특정 포맷에 적절한 방식으로 렌더링 된다. 예를 들어, HTML 포맷으로 된 지식의 집합체의 경우, 렌즈의 표시 내용을 렌더링 하기 위해서는 전통적인 HTML 호환 브라우저 어플리케이션에 의해 수행되는 것과 유사한 HTML 파싱 및 렌더링 동작이 요구된다.
다음으로, 블록(166)은 별도의 객체가 동일한 깊이에서 존재하는지를 결정한다. 그러한 각각의 객체에 있어서, 블록(167)은 깊이 벡터로부터 오프셋 된 적절한 방위로 그러나 그로부터 동일한 상대 깊이에서 이들 별도의 객체를 렌더링 한다. 전형적으로, 그러한 객체는 보충 렌즈이다 (이하에서 상세히 설명된다).
일단 각각의 객체가 렌더링 되면, 블록(168)은 전형적으로 각각의 인접한 쌍의 객체의 네 모서리 사이에서 연장되는 네 개의 라인 세그먼트를 렌더링 함으로써 각각의 표시된 객체 사이에서 바인더 밴드를 렌더링 하기 위하여 실행된다. 깊이 벡터를 따라 배열된 인접한 객체의 경우, 바인더 밴드는 샤프트 밴드로 지칭되고, 깊이 벡터 상에서 동일한 깊이로 방위를 갖는 인접한 객체의 경우, 바인더 밴드는 계층 밴드로 지칭된다. 그 다음, 렌더링 된 추출 스택이 컴퓨터 표시장치 상에서 표시될 수 있도록, 표시장치가 블록(168)에서 리프레시 된다. 이렇게 하여 루틴(160)이 종료된다.
루틴(150) 및 루틴(160)의 동작의 일례로서, 도 8은 컴퓨터 표시장치(22) 상에서 시작된 추출 스택(400)의 삼차원 렌더링을 보여주고 있다. 먼저, 한 쌍의 컴퍼스 핸들(410,412)이 깊이 벡터(402)의 양쪽에서 생성된다. 또한, 앞서 설명한 예인 BOK 문서를 사용하여 세 개의 추출 레벨이 제공되며, 따라서 세 개의 교차점(414a,414b,414c)이 깊이 벡터(402)의 길이를 따라 균등하게 배치된다. 그런 다음, 바인더 밴드는 렌더링 되어 각각의 객체(410,412,414a,414b,414c)를 연결한다. 예를 들어, 라인 세그먼트(405a,405b,405c,405d)를 포함하여 바인더 밴드(405)는 컴퍼스 핸들(410)을 교차점(414a)에 연결한다.
렌즈 생성
렌즈는 지식의 집합체 내에서 윈도우가 정보의 일부에 제공되는 한 공통의 GUI 환경에서의 윈도우와 매우 유사하다. 그러나, 다수의 렌즈가 사전 설정된 관계를 통해 상호 관련될 수도 있기 때문에 윈도우와는 다르다.
예를 들어, 렌즈는 조정된 스크롤링 관계를 통해 관련이 될 수도 있으며, 따라서 다중 렌즈는 지식의 집합체 내에서 필수적으로 동일한 개념의 각기 다른 뷰를 표시할 수 있도록 조정된다. 조정된 스크롤은 렌즈가 지식의 집합체 내에서 다른 개념을 표시하기 위하여 스크롤 될 때 렌즈가 상호 추적할 수 있도록 하기 위해 제공된다. 이 정도까지 추출 스택 내의 렌즈는 전형적으로 하나 이상의 렌즈 세트로 분류된다. 각각의 렌즈 세트는 전형적으로 렌즈 세트 내의 각각의 렌즈에 걸쳐 일관된 지식의 집합체 내의 현재의 위치를 통합한다. 그러나, 각각의 렌즈는 특정 렌즈 내에 표시되는 지식의 집합체로부터 정보의 윈도우 또는 세그먼트의 범위로 한정하는 시작 및 종료 경계선을 또한 구비한다. 이 시작 및 종료 경계선은 여기에서는 얕은 경계선과 깊은 경계선으로 지칭된다. 렌즈 세트 내의 각각의 렌즈의 얕은 경계선과 깊은 경계선 사이에 설정된 렌즈의 현재 위치를 유지함으로써, 스크롤 동작이 행해지는 동안 렌즈는 상호 추적할 수 있도록 허용된다.
조정된 스크롤링 렌즈 세트 내의 렌즈는 전형적으로 깊이 벡터를 따라 배치되고 샤프트 밴드에 의해 연결되지만, 반드시 그러한 것은 아니다. 깊이 벡터를 따라 배치된 렌즈는 깊이 벡터 렌즈로서 고려될 수도 있고, 전형적으로 일차 또는 이차 렌즈로서 고려될 수도 있다. 일차 및 이차 렌즈는 공통의 렌즈 세트에 통합된다. 그들 사이의 차이는 일차 렌즈는 지식의 집합체의 항해 시에 사용자의 추출 스택과의 상호작용의 초점인 반면에 이차 렌즈는 일차 렌즈에 대한 사용자의 동작에 응답하여 자동적으로 변형된다는 점이다. 이차 렌즈는 비록 지식의 집합체 내에서 동일한 정보의 또 다른 뷰를 제공하는 독립적인 필터 구성을 취하기는 하나, 전형적으로 일차 렌즈와 동일한 개념을 표시한다. 그밖에, 이차 렌즈는 일차 렌즈가 될 수 있도록 활성화될 수도 있고, 따라서 이전의 일차 렌즈는 이차 렌즈가 된다.
렌즈는 상속된 필터 관계를 통해 또한 관련될 수도 있으며, 따라서 보충 렌즈(a supplementary lens)로 지정된 하나의 렌즈는 보충된 렌즈(a supplemented lens)로 지정된 또 다른 렌즈의 필터 특성을 상속한다. 보충 렌즈는 그에 의해 보충된 렌즈까지 지식의 집합체 내의 교대된 포인트에서 정보의 뷰를 제공한다. 필터 구성이 전형적으로 보충된 렌즈의 필터 구성과 동일하지만, 보충 렌즈를 이용한 항해는 보충된 렌즈와는 상관이 없다.
보충 렌즈는 전형적으로 관련된 보충된 렌즈와 깊이 벡터를 따라 동일한 깊이에서, 그러나 동일한 평면 내에서 보충된 렌즈로부터 간격을 두고 배치된다. 보충 렌즈는 조정된 스크롤 관계가 그 사이에 제공될 수 있도록 다른 보충 렌즈의 렌즈 세트에 속하는 렌즈일 수도 있다.
따라서, 주어진 렌즈는 렌즈가 사용자 입력의 초점이냐 아니냐에 따라 일차 렌즈 또는 이차 렌즈로서 식별될 수 있고, 보충된 (깊이 벡터) 렌즈 또는 보충 (깊이 벡터에서 오프셋 된) 렌즈일 수도 있다.
각각의 렌즈는 지식의 집합체로부터 렌즈가 정보를 어떻게 표시하는지를 한정하는 필터를 상호 통합된다. 특히, 렌즈의 필터는 렌즈가 각각의 추출 레벨로부터의 정보 요소를 통과시키는지 또는 차단시키는지를 한정한다. 그밖에, 필터에 의해 통과되는 각각의 추출 레벨의 경우, 필터는 렌즈 내에서 표시될 때 그로부터 정보 요소가 변환되는 방법을 한정한다.
추출 스택에서 이용 가능한 필터의 타입은, 추출 구조로 일컬어지는, 지식의 집합체가 추출 레벨로 분류되는 방식에 따라 다르다. 지식의 집합체는 하나의 추출 구조 또는 다중 추출구조에 의해 나타내어질 수도 있다. 이러한 하나 이상의 추출 구조는 작가 또는 개발자에 의해 및/또는 상속에 의해 한정된 하나 이상의 그러한 구조에 의해, 예를 들어 표준 문서 컴포넌트 또는 데이터 타입에 기초하여 특별히 한정된다.
예를 들어, 이해의 레벨로 한정된 추출 레벨의 경우, 초급자용, 중급자용 및 전문가용 수준의 지식의 집합체를 제공하기 위한 필터가 설정될 수도 있다. 상세의 레벨로 한정된 추출 레벨의 경우, 지식의 집합체의 개요, 요점, 또는 상세한 설명을 제공하기 위한 필터가 설정될 수도 있다. 데이터 타입의 레벨로 한정된 추출 레벨의 경우, 지식의 집합체 내의 텍스트, 일러스트레이션, 비디오 클립 등의 별개의 뷰를 제공하기 위한 필터가 설정될 수도 있다. 문서 컴포넌트로 한정된 추출 레벨의 경우, 지식의 집합체를 차례, 본문, 용어 해설, 색인 등으로 나타내기 위한 필터가 설정될 수도 있다. 통신 기술로 한정된 추출 레벨의 경우, 지식의 집합체를 예의 리스트, 질문에 대한 답, 교육 등으로 나타내기 위한 필터가 설정될 수도 있다. 컴퓨터 소프트웨어 컴포넌트 및/또는 레이어로 한정된 추출 레벨의 경우, 소오스 코드, 객체 코드, 주석, 주석이 달린 소오스 코드, API, 클래스 정의 등의 컴퓨터 프로그램의 뷰를 제공하기 위한 필터가 설정될 수도 있다. 또한, 작업의 본문과 주석, 비평 및 그 분석을 구분하는 추출 레벨의 경우, 작업, 주석, 작업의 측정 부분에 통합된 주석 등의 뷰를 제공하기 위한 각기 다른 필터가 한정될 수도 있다. 추출 레벨은 관점, 즉시성, 및/또는 개인적인 검색 능력에 기초하여 또한 분류될 수도 있다. 각기 다른 지식의 집합체를 나타내기에 적절한 다른 필터 구성을 제공하는 것 역시 가능하다.
도 5로 되돌아가서, 이벤트 관리자에 의해 처리되는 또 다른 이벤트는 추출 스택 상에서 새로운 렌즈를 생성하기 위한 요청이다. 이 요청은 블록(110)에서 검출되고, 렌즈 생성 루틴(180)에 의해 처리된다. 이벤트는 풀다운 또는 팝업 메뉴, 툴바 버튼, 키스트로크(keystroke) 조합 또는 추출 스택 내의 사용자 인터페이스 제어 수단의 선택을 포함하여 다수의 사용자 입력 작용에 응답하여 시작될 수도 있다. 예를 들어, 깊이 벡터 렌즈의 경우, 렌즈는 (인접하든 인접하지 않든 간에) 스택 내의 사용자에 의한 하나 이상의 교차점의 선택에 응답하여 생성될 수도 있다. 선택된 교차점 또는 교차점들은 렌즈 내에서 초기에 표시되는 추출 레벨이 어느 레벨인지를 한정한다. 보충 렌즈의 경우, 렌즈는 사용자에 의한 보충되어질 렌즈의 선택에 응답하여 (예를 들어, 타이틀 바를 더블 클릭 함으로써) 생성될 수도 있다.
루틴(180)은 도 9에 상세히 도시되어 있으며, 렌즈의 초기 필터 구성을 결정하기 위한 필터 구성 획득 루틴(280)을 호출함으로써 시작된다. 일단 필터 구성이 획득되면, 블록(182)이 실행되어 렌즈가 깊이 벡터 렌즈인지를 결정한다. 만일 그렇다면, 제어는 블록(184)으로 진행하여 교차점 및 다른 깊이 벡터 렌즈에 대한 렌즈의 깊이 값, 즉 깊이 벡터에 따른 렌즈의 상대 위치를 계산한다. 만일 단지 하나의 추출 레벨만이 렌즈 안에 표시되면, 깊이는 전형적으로 그 추출 층의 초점 평면에서의 교차점에 있게 된다. 다수의 추출 레벨이 렌즈 내에 표시되면. 깊이는 예를 들어 필터 구성에 포함되는 매우 많은 수의 인접하는 교차점에 기초하여, 예를 들어 인접하는 교차점의 중심점에서 결정될 수도 있다. 많은 수가 아닌 경우에는 렌즈의 위치가 그것과 가장 가까운 컴퍼스 핸들 사이의 가장 적은 선택되지 않은 교차점과의 교차점의 위치와 일치할 수도 있다. 또한, 그러한 교차점이 없는 경우, 렌즈는 추출 스택의 중심점의 한쪽에 임의로 그리고 예측할 수 없게 위치할 수도 있다. 다른 방식으로 깊이 벡터를 따라 렌즈를 배치하는 방법도 고려해 볼 수 있다.
다음으로, 블록(186)은 현재의 렌즈 깊이에서 샤프트 밴드 (또는 다른)객체를 삭제하며, 그런 다음 블록(187)은 계산된 깊이에 새로운 렌즈를 삽입한다. 새로운 렌즈는 예를 들어 공지된 방식으로 추출 스택을 나타내는 링크 된 리스트 내에 삽입될 수도 있다.
다음으로, 블록(188)은 예를 들어 인접한 객체를 추출 스택이 링크 된 리스트에 삽입함으로써, 깊이 벡터를 따라 새로운 렌즈와 인접한 객체 사이에 새로운 샤프트 밴드를 삽입한다. 블록(186-188)의 기능은 예를 들어 위에서 계산된 바와 같은 렌즈의 깊이 값이 제공되는 렌즈 객체의 구성기 루틴의 일부로서 객체 지향 시스템에서 수행될 수도 있다.
다음으로, 블록(189)은 (다수의 렌즈 세트가 허용되는 경우) 현재의 렌즈 세트 내의 다른 렌즈가 추출 스택 내에 개방되는지의 여부를 결정하기 위하여 실행된다. 만일 그렇다면, 블록(190)이 실행되어 새로운 렌즈를 렌즈 세트에 추가한다. 그렇지 않다면, 블록(191)이 실행되어 단독 부재로서 새로운 렌즈를 갖는 새로운 렌즈 세트를 생성한다.
블록(190) 및 블록(191)은 모두 제어를 블록(192)으로 보내어 렌즈 개방 이벤트를 블록(192) 내의 새로운 렌즈에 발행하여 추출 스택 내에서 최소화되지 않은 상태로 렌즈를 개방한다. 이렇게 하여 루틴(180)이 완료된다. 또 다른 형태로, 사용자로부터의 특정 입력을 필요로 하는 두 가지 독립적인 작용으로서 렌즈의 생성 및 개방을 고려해 볼 수 있는데, 이 경우 렌즈 개방 이벤트는 특정 사용자 입력에 응답하여 시작된다. 렌즈는 필요하다면 처음에 최소화된 상태로 표시될 수도 있다.
블록(182)으로 돌아와서, 만일 새로운 렌즈가 깊이 벡터 렌즈가 아니고 보충 렌즈라면, 제어는 블록(193)으로 보내어져서 새로운 렌즈에 의해 보충되는 렌즈의 깊이 값으로 새로운 렌즈의 깊이 값을 설정한다. 다음으로, 블록(194)은 보충된 렌즈의 평면에서 깊이 벡터로부터 새로운 렌즈의 변위를 계산한다. 변위는 보충된 렌즈에 대한 보충 렌즈의 방위를 결정하기 위한 거리 값 및 방향 값을 가질 수도 있다. 이 정도로 렌즈의 변위 값의 분석에 의해 보충 렌즈는 깊이 벡터 렌즈와 구별될 수 있고, 따라서 깊이 벡터 렌즈는 깊이 벡터로부터의 null의 변위를 갖는 렌즈로서 한정될 수도 있다.
보충 렌즈의 변위는 예를 들어 사전 설정된 변위 증분으로 곱해진 보충된 렌즈 및 새로운 렌즈 사이의 중간 보충 렌즈의 수에 1을 더한 함수로서 계산될 수도 있다. 이러한 구성에 있어서, 보충된 렌즈는 깊이 벡터에 직교하는 축을 따라 위치하게 된다. 또 다른 형태에 있어서는, 보충 렌즈가 보충되는 렌즈에 대해 다른 방향을 따라 위치할 수도 있다. 더욱이, 렌즈의 배치는 컴퓨터 표시장치 위의 이용 가능한 공간에 좌우된다. 게다가, 배치 정보는 보충 렌즈와 함께 저장되지 않을 수도 있고, 그 배치는 추출 스택을 렌더링 하는 동안에 동적으로 결정된다. 또 다른 방식으로 보충된 렌즈에 대해 보충 렌즈를 배치할 수도 있다.
일단 새로운 렌즈의 위치가 결정되면, 블록(196)이 실행되어 상속된 깊이에 렌즈를 삽입하고, 블록(198)이 실행되어 새로운 렌즈와 보충된 렌즈 (다른 보충 렌즈가 존재하는 않는 경우) 또는 가장 가까운 인접 보충 렌즈 (그러한 렌즈가 존재하는 경우) 사이에 계층 밴드를 삽입한다. 블록(196) 및 블록(918)은 예를 들어 보충된 깊이 벡터 렌즈로부터 연장되는 이차의 링크 된 리스트를 사용하여 실현될 수도 있고, 다른 형태로 실현될 수도 있다. 다음으로, 제어가 블록(192)으로 이동하여 렌즈 개방 이벤트를 새로운 렌즈에 발행하며, 그런 다음 루틴(180)이 종료한다.
도 10은 필터 구성 획득 루틴(get filter configuration routine)(280)을 더욱 상세히 보인 것이다. 위에서 논의한 바와 같이, 필터 구성은 전형적으로 각각의 가능한 추출 레벨이 렌즈 내에 표시되는지 그리고 어떻게 표시되는지를 한정한다. 따라서, 각각의 추출 레벨에 있어서, 필터 구성은 전형적으로 레벨이 차단되는지 통과되는지의 여부를 한정한다. 더욱이, 통과된 각각의 레벨의 경우, 필터 구성은 그 레벨로부터의 정보의 표시가 특정 초점 효과를 사용하여 변형되는지 그리고 어떻게 변형되는지를 한정한다.
루틴(280)은 블록(282)에서 렌즈가 깊이 벡터 렌즈이어야 하는지의 여부를 결정함으로서 시작된다. 만일 그렇다면, 제어는 블록(284)으로 넘어가서 새로운 렌즈의 필터 구성을 디폴트 구성으로 초기화한다. 전형적으로, 이것은 렌즈 생성 이벤트 내에서 식별되는 교차점에 응답하여 수행된다. 예를 들어, 위에서 논의한 바와 같이, 깊이 벡터 렌즈는 하나 이상의 교차점을 선택함으로써 생성될 수도 있다. 이러한 상황에서, 디폴트 필터 구성은 식별된 교차점에 의해 나타내어지는 추출 레벨을 통과시키기 위해 설정된다. 모든 다른 추출 레벨은 필터에 의해 차단된다. 더욱이, 통과된 레벨은 전형적으로 정상적인 표시가 이루어질 수 있도록 설정되며, 특정 초점 효과가 적용되지는 않는다.
다른 렌즈 생성 작용에 있어서, 각기 다른 디폴트 필터 구성이 사용될 수도 있다. 예를 들어, 사용자는 어플리케이션 제작자 또는 지식의 집합체의 작가 또는 지식의 집합체와의 조기 세션에 참여한 사용자에 의해 사용자에게 최초에 이용 가능한 사전 한정된 전문 렌즈의 리스트에서 선택되는 렌즈를 생성하는 것이 가능하다. 이러한 경우에, 디폴트 필터 구성은 사정 한정된 렌즈의 파라미터 세트에 기초한다.
일단 디폴트 필터 구성이 설정되며, 제어는 블록(286)으로 넘어가서 필터 구성 다이얼로그 박스가 사용 가능한 상태인지의 여부를 결정한다. 그러나, 예를 들어 사용자가 추출 스택을 보고 있는 동안 오직 사전 한정된 렌즈를 사용하는 것만이 허용되는 경우, 사용자가 이러한 동작을 수행할 권한을 부여받지 못한 경우 또는 사용자가 이러한 지식의 집합체에 대한 사전 저장된 세트의 구성을 가지고 있는 경우, 다이얼로그 박스를 폐쇄하는 것이 바람직할 수도 있다. 다이얼로그 박스가 사용 불가능한 상태이면, 루틴(280)은 종료하고, 새로운 렌즈의 필터 구성으로서 디폴트 필터 구성이 회복된다.
그러나 다이얼로그 박스가 사용 가능한 상태이면, 블록(287)이 실행되어 다이얼로그 박스가 초기화되며, 블록(288)이 실행되어 디폴트 필터 구성의 사용자 확인 또는 변형을 확보한다. 예를 들어, 블록(287) 및 블록(288)은 사용자가 다이얼로그 박스 내의 적절한 버튼을 선택함으로써 사용자 입력을 수용하고 블록(288)에서 루틴(280)으로 복귀되는 다이얼로그 박스 객체를 초기화함으로써 수행될 수도 있다. 어떠한 경우에도, 블록(288)으로 복귀하게 되면, 루틴(280)은 종료하며, 새로운 렌즈의 필터 구성으로서 선택적으로 변형된 필터 구성이 사용된다.
렌즈 필터의 구성을 위한 한가지 적절한 다이얼로그 박스(300)가 예를 들어 도 11에 예시되어 있다. 다이얼로그 박스(300)는 두개의 이차 제어 그룹(302)(308)을 포함하고 있다. 제어 그룹(302)은 이용 가능한 추출 레벨 중에서 선택하기 위한 드롭다운(drop-down) 메뉴 따위의 사용자 인터페이스 제어수단(304)을 포함하고 있다. 제어수단(304)을 사용하여 추출 레벨을 선택하게 되면, 그 레벨의 현재의 통과/차단 상태가 통과 및 차단 라디오 버튼의 그룹 따위의 사용자 인터페이스 제어수단(306) 내에 반영된다. 사용자는 다른 버튼의 선택이 해제되는 효과를 갖는 적절한 라디오 버튼을 선택함으로써 현재 선택된 레벨의 통과/차단 상태를 변형할 수 있다.
제어 그룹(308)은 한 세트의 라디오 버튼 따위의 사용자 인터페이스 제어수단(310)을 사용하여 현재 선택된 추출 레벨의 초점 효과를 설정한다. 초점 효과는 차단된 추출 레벨에 대해서는 사용되지 않기 때문에, 현재의 추출 레벨이 차단되는 것으로 설정될 때마다 제어 그룹(308) 내의 제어수단을 사용 불가능하게 (회색으로 표시되게) 하는 것이 바람직하다.
사용자 인터페이스 제어수단(310)은 추출 레벨에 대하여 정상(normal), 강조(highlight), 및 흐린(obscure) 초점 효과를 반영하는 그룹으로 이루어진 라디오 버튼을 포함한다. 그밖에, 편집 버튼(312)은 하나 이상의 초점 효과 선택을 위한 세팅을 사용자가 변경할 수 있도록 제공된다. 편집 버튼은 전형적으로 각각의 세팅의 표시 특성이 사용자에 의해 사용자에 맞도록 구성하는 것이 가능하게 하는 별도의 다이얼로그 박스를 열게 된다. 편집 버튼은 추출 스택 내의 모든 렌즈의 표시 특성을 설정할 수도 있고, 필터의 관련 렌즈의 개개의 표시 특성을 설정할 수도 있다. 더욱이, 후자의 경우에는 사용자가 여전히 별도의 사용자 입력을 통하여 각각의 세팅에 대한 디폴트 표시 특성을 설정할 수도 있다.
정상적인 세팅은 레벨로부터의 정보가 특별한 효과 없이 표시되어야 함을 나타낸다. 전형적으로, 정상적인 세팅 내에 표시되는 정보는 특별하게 설정된 속성을 갖지 않은 디폴트 폰트(텍스트인 경우)이거나, 정상적인 표시(이미지 또는 다른 멀리미디어 정보인 경우)를 갖는다. 그러나, 모든 텍스트가 볼드체로 또는 이탤릭체로 표시되기를 원하는 경우에는 사용자가 특정 표시 특성을 설정할 수도 있다.
강조 설정은 정보를 다른 레벨의 정보와 구별하기 위한 방법으로서 레벨로부터의 정보가 강조되어야 함을 나타낸다. 강조는 볼드체 또는 밑줄 따위의 특수한 텍스트 속성을 통하여 또는 증가된 텍스트 크기를 통하여 실현될 수도 있다. 또한, 강조는 반전 표시를 사용하여 (즉, 텍스트와 배경 색상을 반전시킴으로써) 실현될 수도 있다. 이미지 따위의 멀티미디어 정보의 경우, 강조는 예를 들어 그 경계를 강조하거나 색상을 반전시킴으로써 실현될 수도 있다.
흐린 설정은 레벨로부터의 정보의 상대 위치 및 크기가 렌즈 내에 반영되어야 하지만 실제의 정보 내용은 사용자에게 강조되지 않거나 숨겨져야 한다는 것을 나타낸다. 흐린 효과의 기본적인 목적은 정보가 지식의 집합체의 사전 설정된 위치에 존재하지만 정보의 내용은 특정 필터 구성에 관련되지 않음을 나타낸다. 예를 들어, 흐린 초점 효과는 의사 폰트를 사용함으로써 실현되며, 따라서 각각의 문자 또는 각각의 단어가 박스 또는 라인에 의해 나타내어지는 상태로 또는 단일 문자 또는 아이콘에 의해 나타내어지는 상태로 텍스트 정보가 표시된다. 또한, 흐린 효과는 공지된 바와 같이 텍스트 및/또는 멀티미디어 정보를 회색으로 흐리게 함으로써 실현될 수도 있다. 표시 경계가 수반되든 되지 않든 간에 여백이 또한 사용될 수도 있다. 실제의 내용을 흐르게 하면서 정보를 표시하는 다른 방법을 또한 사용할 수도 있다.
다이얼로그 박스(300) 위에 제공되는 또 다른 제어 수단은 필터 스타일 버튼(314)이다. 이 버튼은 전형적으로 위에서 논의한 바와 같은 다수의 사전 한정된 필터 구성으로부터 사용자가 선택할 수도 있도록 하는 또 다른 다이얼로그 박스를 연다. 이 다이얼로그 박스에서, 사용자는 다이얼로그 박스(300)와 유사한 또 다른 별도의 다이얼로그 박스를 사용하여 특정 스타일을 추가, 삭제 및/또는 변경할 수 있다.
예를 들어, 키 개념을 어드레스 하는 요소에 내장되고 링크 된 그래픽 및 애니메이션 예제와 개념의 일러스트레이션과, 개념을 채용하는 작업 방법과, 관련되거나 거의 관련이 없는 추출 스택으로의 링크를 끼워 넣음으로써 익숙하고 편안한 소개를 새로운 정보에 제공하기 위한 내장 끼워 넣기 필터가 제공될 수도 있다. 특정 요소를 강조하거나 및/또는 지식의 집합체 내의 다른 정보를 흐리게 함으로써 특정 요소의 상대 위치 및 관계를 지식의 집합체의 다른 정보에 보여주기 위한 핫 포인트-배경 필터가 제공될 수도 있다.
그밖에, 초보자, 기초, 일반 지식 및 전문가 필터 등의 특정 추출 레벨을 평가할 수 있는 능력을 구비한 독자에 의도된 정보를 특별하게 허락하는 지식 레벨 필터가 제공될 수도 있다. 높은 추출 레벨로부터의 정보만을 허락하는 개요 필터가 제공될 수도 있다. 지식의 집합체로부터 방법 및 절차를 허락하는 작업 필터가 제공될 수도 있으며, 단지 예제만을 허락하는 예제 필터가 제공될 수도 있다. 그밖에, 표제, 용어, 색인, 각주, 본문 등의 특정 타입의 정보 요소에 대해 추출 레벨을 한정하는 경우에, 차례 필터, 표제 필터, 본문 필터, 각주 필터, 용어필터, 색인 필터 등의 여러 가지 필터가 개발될 수도 있다.
사전 한정된 필터 구성은 특정 정보를 강조하거나 흐리게 하기 위해 개발될 수도 있다. 예를 들어, 필터는 색인 또는 용어, 각주, 표제 등을 강조하기 위해 한정될 수도 있다. 본 명세서에서 설명되는 필터 구성과는 다른 필터 구성을 취할 수도 있다.
다이얼로그 박스(300)는 사용자가 다이얼로그 박스를 종료하고 제어를 루틴(280)으로 돌리게 할 수 있는 복귀 버튼(316)(318)을 또한 포함하고 있다. 버튼(316)은 사용자가 현재의 필터 구성에 만족할 때 사용자가 선택하는 "OK" 버튼이다. 버튼(318)은 사용자가 변경을 원하지 않을 때 그리고 이전의 필터 구성으로 복귀하기를 원할 때 선택하는 "취소" 버튼이다.
본 발명에 따른 필터를 구성하기 위하여 그밖에 여러 가지 다양한 사용자 인터페이스 메커니즘 및 구성을 사용할 수도 있으며, 다이얼로그 박스(300)의 구성은 사용자에 의한 필터 세팅의 변경을 허용하는 수많은 방법 가운데 하나에 불과하다. 예를 들어, 다중 추출 구조를 활용하는 실시예의 경우, 다중 제어 그룹(302)(308)은 각각의 추출 구조를 표시하기 위해 제공될 수도 있고, 특정 추출 구조의 정보와 함께 제어 그룹(302)(308)을 선택적으로 표시하기 위하여 별개의 제어 그룹이 사용될 수 있다.
더욱이, 별개의 다이얼로그 박스는 사용자가 추출 구조를 선택할 수 있도록 다이얼로그 박스(300)가 열리기 전에 열린다. 몇몇 어플리케이션에서는 다중 추출 구조의 사용이 바람직하며, 따라서 특정 지식의 집합체의 작가에 의해 생성될 수도 있다. 다른 변형 실시예에 있어서는, 몇몇 지식의 집합체에 있어서 상속된 추출 구조, 예를 들어 문서 컴포넌트 또는 데이터 타입을 통한 추출 구조가 여기서 논의하는 바와 같이 사용되고 선택될 수도 있다. 다이얼로그 박스(300)는 전형적으로 사용자가 늦은 시점에 렌즈의 세팅을 변경하기를 원하는 경우에 렌즈의 생성 후 사용자에 의해 또한 열리고 활용될 수도 있다. 필터 구성의 변경은 다수의 방식으로, 예를 들어 특정 렌즈와 결합된 버튼 또는 메뉴를 통해 또는 공지된 방식으로 시작될 수도 있다.
렌즈의 렌즈 개방 이벤트를 처리하는 렌즈 개방 루틴(330)이 도 12에 예시되어 있다. 개방 렌즈는 일반적으로 (마이너 렌즈와 같은) 최소화되지 않은 렌즈이며, 지식의 집합체의 일부를 표시한다. 이하에서 더욱 명확하게 밝혀지지만, 각각의 렌즈는 지식의 집합체 내의 시작 및 종료 위치로서 렌즈의 경계를 나타내는 얕고 깊은 경계선을 포함할 수 있도록 한정된다. 각각의 렌즈는 다수의 정보 라인을 포함한다. 각각의 라인은 그 라인에서 표시되는 지식의 집합체의 일부의 크기를 나타내는 지식의 집합체의 카운트를 통합한다. 지식의 집합체의 일부는 각각의 렌즈의 필터를 통해 필터링 아웃되기 때문에, 렌즈 내에 표시되는 각각의 라인은 지식의 집합체 내의 각기 다른 정보의 양을 나타낼 수도 있다. 따라서, 지식의 집합체 내의 위치에서, 따라서 렌즈 내에 표시되는 특정 정보와는 상관없이, 얕고 깊은 경계선을 유지하는 것이 바람직하다.
여기서 논의되는 실시예는 주로 본 발명의 기본적인 개념이 좀더 잘 이해되도록 포맷과 레이아웃을 제한적으로 고려하여 텍스트 정보로 형성된 지식의 집합체와 함께 사용하는 것으로 제한된다. 그와 같은 입장에서, 렌즈 내의 정보의 라인은 전형적으로 지식의 집합체로부터의 텍스트의 하나 이상의 단어를 포함한다. 각각의 지식의 집합체 세그먼트는 세그먼트를 조립하는 동안 렌즈 필터에 의해 차단되는 정보 요소와 함께 세그먼트 내의 텍스트 데이터에 의해 나타내어지는 지식의 집합체의 일부의 카운트는 물론 텍스트 데이터를 소유한다. 그러나, 포맷된 텍스트, 텍스트 프레임, 그래픽 프레임, 페이지 레이아웃, 그래픽 이미지, 비디오, 애니메이션 및 오디오 클립, 사용자 인터페이스 제어수단 등을 처리하기 위하여 다양한 웹 브라우저와 스크린에 나타난 화상이 출력이 되는 (WISIWYG) 편집 레이아웃 및 정보 표시 개념을 통합함으로써 그래픽 및 다른 멀티미디어 데이터와 실행 가능한 데이터 등의 다른 형태의 정보를 처리할 수 있도록 본 발명에 따른 실시예를 설계할 수도 있다. 따라서, 본 발명은 여기에 개시된 텍스트 기반 실시예에만 국한되지 않는다.
루틴(330)은 블록(332)에서 현재의 치수에 기초하여 렌즈의 라인의 수를 계산함으로써 시작된다. 표시되는 라인의 수에 영향을 미치는 치수는 그 안에 표시되는 정보의 크기를 결정하는 렌즈의 선택적인 줌 인자는 물론 렌즈의 높이와 폭을 포함한다. 그밖에, 렌즈의 라인의 수는 주어진 초점 효과 (예를 들어, 정상, 강조, 또는 흐림) 내에서 표시되는 텍스트 정보의 폰트 크기에 좌우된다. 그러나, 윈도우 내에 표시되는 라인의 수의 계산은 이 기술분야에서는 널리 공지된 루틴이다.
다음으로, 블록(333)이 실행되어 렌즈가 깊이 벡터 렌즈인지를 결정한다. 깊이 벡터 렌즈인 경우에는 블록(334)이 실행되어 현재의 렌즈 세트 내의 렌즈가 이미 개방되어 있는지의 여부를 결정한다. 만일 그렇다면, 블록(336)이 실행되어 초기에 현재의 렌즈 세트 내의 일차 렌즈의 얕은 경계선과 같아지도록 렌즈의 깊은 경계선을 설정한다. 그렇지 않다면, 블록(337)이 실행되어 초기에 지식의 집합체의 상부와 동일하게 되도록 렌즈의 깊은 경계선을 설정한다. 블록(333)으로 되돌아와서, 렌즈가 보충 렌즈인 경우, 블록(338)이 실행되어 초기에 보충된 렌즈의 얕은 경계선과 같아지도록 렌즈의 깊은 경계선을 설정한다.
블록(336)(337)(338)중 어느 블록이라도 실행된 후에는, 렌즈가 정보로 충전될 수도 있도록 렌즈 충전 루틴(340)이 호출되며, 스택 렌더링 이벤트가 블록(339) 내에서 발생되어 도 7의 스택 렌더링 루틴(160)을 실행한다. 그런 다음, 루틴(330)은 종료한다.
도 13에 상세히 도시된 렌즈 충전 루틴(340)은 일반적으로 렌즈가 정보로 채워질 때까지 지식의 집합체로부터의 정보의 라인을 렌즈의 바닥에 입력하는 기능을 한다. 루틴(340)은 초기에 지식의 집합체 내의 렌즈의 시작 위치를 가리키는 깊은 경계선을 수용한다. 루틴(340)은 종료되기 전에 이 값을 갱신하기 때문에, 얕은 경계선에 저장된 초기 값은 중요하지 않다. 이하에서 명백히 밝혀지지만, 루틴(340)이 종료하면 깊은 경계선이 지식의 집합체 내의 렌즈의 종료 위치를 가리키도록 정보가 렌즈의 바닥에 입력됨에 따라 깊은 경계선은 자동적으로 갱신된다.
루틴(340)은 블록(342)에서 렌즈 내의 각각의 라인의 지식의 집합체의 카운트를 0으로 초기화함으로써 시작된다. 다음에, 라인의 지식의 집합체의 카운트를 계산하고 그에 따라 깊은 경계선을 갱신하는 동안, 스크롤 다운 루틴(200)이 호출되어 정보의 라인을 렌즈의 바닥에 입력한다. 다음에, 블록(344)에서 렌즈의 상부 라인의 지식의 집합체의 카운트가 더 이상 널(null)이 아닌지를 결정한다. 이것은 렌즈가 정보로 채워진 것을 나타낸다. 그렇지 않다면, 렌즈가 채워질 때까지 루틴(220)이 다시 호출된다. 일단 렌즈가 채워지면, 블록(346)이 실행되어 렌즈의 얕은 경계선을 렌즈의 깊은 경계선에서 렌즈 내의 모든 라인의 지식의 집합체의 카운트의 합을 뺀 값과 동일한 값으로 갱신한다. 그라면 루틴(340)이 종료된다. 이에 대한 변형예로서, 렌즈 충전 루틴이 스트롤 업 동작을 사용하여 순차적으로 정보를 렌즈의 상부에 입력할 수도 있다.
도 14는 스크롤 다운 루틴(220)을 더욱 상세히 예시한 것이다. 루틴(220)은 블록(222)에서 루틴에 의해 순차적으로 구축되고 렌즈의 바닥으로 입력되는 새로운 라인 버퍼를 소거함으로써 시작된다. 그 다음에, 블록(223)에서 새로운 라인이 채워졌는지를 결정한다. 새로운 라인이 최근에 소거되었기 때문에 루틴(230)이 호출되어 지식의 집합체로부터 새로운 (계속되는) 세그먼트를 검색한다. 지식의 집합체로부터 검색된 다음 세그먼트는 관련된 렌즈의 필터에 의해 필터링 되지 않은 지식의 집합체로부터의 사전 설정된 양의 정보를 나타낼 수도 있다. 그밖에, 다음 세그먼트를 검색하려고 하다가 지식의 집합체의 끝을 만나게 되면, 이 표시기는 루틴(230)으로 복귀한다. 따라서, 블록(224)에서 루틴(230)이 종료된 후에 지식의 집합체 지시기의 끝이 복귀하였는지를 결정한다. 복귀하지 않았다면, 복귀된 세그먼트는 블록(226) 내의 새로운 라인에 추가되고, 제어가 블록(223)으로 되돌아가서 새로운 라인이 정보로 채워져 있는지를 결정한다.
지식의 집합체의 끝을 만날 때까지 (블록 224) 또는 완전히 채워진 정보의 라인이 새로운 라인 버퍼에 추가될 때까지 (블록 223) 지식의 집합체로부터의 세그먼트의 검색이 이루어진다. 어떤 경우에도, 제어가 블록(228)으로 넘어가고 렌즈 내에 표시되는 현재의 상부 라인의 지식의 집합체 카운트만큼 렌즈의 얕은 경계선을 증분 시키고, 그 결과 렌즈로부터 기존의 상부 라인이 제거된다.
렌즈의 얕은 경계선이 증분 된 후에, 제어는 블록(229)으로 넘어가서 새로운 라인을 렌즈의 바닥에 입력한다. 이러한 동작은 이 기술분야에서는 널리 공지되어 있다. 따라서, 렌즈 위에서의 다음의 리프레시 동작에 있어서, 지식의 집합체로부터 검색된 새로운 라인은 렌즈의 바닥에서 표시되며, 렌즈의 이전의 상부 라인은 렌즈의 얕은 경계선의 증분에 의해 폐기된다. 그런 다음 루틴(220)은 종료된다.
다음 세그먼트 검색 루틴(230)이 도 15에 상세히 도시되어 있다. 루틴(230)은 블록(232)에서 렌즈의 깊은 경계선이 지식의 집합체의 바닥 또는 끝에 위치하는지를 결정함으로써 시작된다. 만일 그렇다면, 지식의 집합체 지시기의 끝은 블록(234)으로 복귀하고, 루틴(230)은 종료된다. 그러나 렌즈의 깊은 경계선이 지식의 집합체의 끝에 있지 않은 경우에는, 제어가 블록(236)으로 넘어가서 지식의 집합체 내의 다음 (계속되는) 세그먼트를 받아들인다. 다음 세그먼트는 지식의 집합체 내의 고정되고 사전 설정된 양의 정보로 이루어지며, 렌즈에 의해 필터링 되지 않은 이 지점에 놓인다. 세그먼트의 크기는 단일 비트만큼 작을 수도 있고, 더욱 특정하게는 하나 이상의 바이트로 이루어진 정보일 수도 있다. 그밖에, 정보 요소 내의 모든 정보는 동일한 추출 레벨 및 명명된 개념과 관련되는 것을 추정되기 때문에, 세그먼트는 특정 실시예에 있어서는 완전한 정보 요소를 나타낼 수도 있고, 따라서 렌즈 필터에 의해 처리된다. 그러나 후자의 경우에 있어서, 기껏해야 하나의 정보 라인을 갖는 세그먼트로 정보 요소를 구분하기 위하여 버퍼가 필요할 수도 있다.
세그먼트가 검색된 후에, 제어는 블록(238)(240)으로 넘어가서 각각 세그먼트 크기만큼 렌즈의 깊은 경계선을 증분 시키고, 세그먼트 크기만큼 새로운 라인의 지식의 집합체 카운트를 증분 시킨다. 그 다음에, 블록(242)에서 세그먼트가 렌즈에 통합된 필터에 의해 필터링 되는지를 결정한다. 만일 그렇다면, 렌즈 내에 이 세그먼트를 표시하는 것이 바람직하지 않으며, 따라서 제어는 블록(232)으로 넘어가서 가능하다면 지식의 집합체로부터 또 다른 세그먼트를 검색한다. 따라서, 블록(232-242)에 의해 시작되는 루프는 필터링 되지 않은 세그먼트가 검색될 때까지 지식의 집합체를 통해 아래로 스캐닝 한다. 그러나, 이러한 스캔이 행해지는 동안, 새로운 라인의 지식의 집합체 카운트 및 지식의 집합체 내의 깊은 경계선의 위치는, 필터링 된 정보가 표시되지 않음에도 불구하고 지식의 집합체 내에서 고려될 수 있도록, 유지된다.
일단 필터링 되지 않은 세그먼트가 검색되면, 블록(242)에서 블록(244)으로 제어가 넘어가고, 여기서 렌즈에 통합된 현재의 필터 구성에 기초하여 세그먼트에 특수 (초점) 효과를 적용할 필요가 있는지를 결정한다. 만일 그렇다면, 제어가 블록(245)으로 분기하여 세그먼트에 효과를 적용한다. 위에서 논의한 바와 같이, 각기 다른 추출 레벨이 렌즈 내에서 구별될 수 있도록, 예를 들어 각기 다른 효과가 렌즈 내의 여러 가지 레벨과 관련된 정보에 적용될 수도 있다.
특수 효과가 세그먼트에 적용되었는가의 여부와는 상관없이, 제어는 블록(246)으로 넘어가서 링크 포인터 강조가 세그먼트에 적용되어야 하는지를 결정하며, 만일 그렇다면 블록(247)으로 분기하여 강조를 세그먼트에 적용한다. 이하에서 상세히 논의되겠지만, 세그먼트가 첫째 필터링 되지 않았을 때, 둘째 포인터가 현재 가리키고 있는 정보 요소와 통합된 명명된 개념과 연관된 경우에 링크 포인터 강조는 전형적으로 세그먼트에 적용된다. 그 다음에, 강조가 세그먼트에 적용되었는가의 여부와는 상관없이, 세그먼트는 블록(248)으로 복귀하고, 루틴(230)은 종료된다.
렌즈의 생성 및 개방의 일례로서, 도 16은 렌즈 생성 루틴(180) 및 렌즈 개방 루틴(330)이 완료되면 개방 렌즈(42)를 추출 스택(400)에 추가하는 것을 예시한 것이다. 도시한 바와 같은 렌즈(420)는 지식의 집합체의 레벨(1-3)이 렌즈 필터에 의해 통과되도록 모든 교차점(414a-414c)을 선택함으로써 생성되었다. 렌즈는 초기에 교차점(414c)(도 16에는 도시되지 않음)에 의해 대표되는 초점 평면에 놓인다. 더욱이, 샤프트 밴드(405)의 방위는 렌즈(420)의 모서리로 연장되도록 조정되었고, 렌즈(420)는 깊이 벡터(402)의 중심에 놓인다. 게다가, 이것이 첫 번째 개방 렌즈이기 때문에, 렌즈는 렌즈 세트의 단독 요소가 되며, 따라서 사용자 입력을 받아들이는 일차 렌즈가 된다.
다수의 변형 및 변경이 존재한다. 예를 들어, 모든 교차점은 관련된 렌즈가 생성되었는가의 여부에 상관없이 표시될 수도 있으며, 따라서 교차점(414c)은 도 16에 표시될 수 있다. 그밖에, 포함된 레벨을 나타내기 위하여 각각의 렌즈(420)에서 몇몇 문자와 숫자가 조합된 식별자 또는 아이콘 형태의 식별자가 사용될 수도 있다 (예를 들어, 렌즈(420)의 경우에는 타이틀 바 안에 세 개의 아이콘을 보여주고 있으며, 따라서 세 개의 추출 레벨이 통과되었음을 나타낸다.)
도 17은 렌즈(420)의 생성에 후속하여 이차 렌즈(422)를 생성하고 개방하는 것을 예시한 것이다. 이 예에서는, 렌즈의 필터 구성이 레벨 1과 레벨 2는 통과하지만 레벨 3은 차단할 수 있게 설정될 수 있도록 교차점(414a)(414b)의 선택에 응답하여 이차 렌즈(422)가 생성된다. 렌즈는 교차점(414b)(도 17에는 삭제되어 있음)에 의해 대표되는 초점 평면에 놓여 있다. 더욱이, 샤프트 밴드(405)의 방위는 렌즈(422)의 모서리로 연장되도록 설정되었다. 렌즈가 렌즈 세트에 추가되는 한, 렌즈(420)를 사용자 입력을 받아들이기 위한 일차 렌즈로서 유지하는 것이 바람직하다. 또 다른 실시예에 있어서는, 렌즈 세트 내의 새로운 렌즈의 생성에 의해 새로운 렌즈가 일차 렌즈로 설정될 수도 있다.
도 18은 렌즈(422)를 보충하는 보충 렌즈(424)의 생성 및 개방을 보인 것이다. 보충 렌즈(424)는 렌즈(422)의 필터 구성을 상속하지만, 렌즈(423)와 동일한 표시 형태로 지식의 집합체의 다른 부분을 표시하기 위하여 독립적으로 스크롤 될 수 있다. (렌즈(422)(424)의 모서리의 일부만을 연결하는) 계층 밴드(426)는, 비록 동일한 평면 내에서 그로부터 변위하기는 하지만, 렌즈 사이에서 연장되고, 렌즈(424)는 렌즈와 동일한 깊이에서 배치된다. 오직 하나의 보충 렌즈(424)만이 도 18에 도시되어 있지만, 특정 렌즈 세트에서 렌즈를 보충하기 위한 보충 렌즈의 생성은 보충된 렌즈 세트 내의 모든 다른 렌즈의 보충 렌즈의 생성을 또한 유도할 수도 있다.
조정 스크롤링
추출 스택(50)과 함께 활용되는 사용자 인터페이스의 한가지 중요한 양상은 렌즈 세트의 다중 렌즈 내의 정보의 표시를 조정하는 것이다. 위에서 논의한 바와 같이, 렌즈 세트 내의 일차 렌즈는 GUI 환경에서의 활성화된 윈도우와 유사하게 사용자 입력을 받아들일 수 있도록 구성된 렌즈이다. 렌즈 내에서 표시되는 지식의 집합체로부터 정보를 변경하는 일차 렌즈 상에서 수행되는 스크롤 동작은 전형적으로 지식의 집합체로부터의 정보의 표시가 여러 가지 렌즈에 걸쳐 조정될 수 있도록 렌즈 세트 내의 각각의 이차 렌즈에서 유사한 스크롤 동작을 유도한다.
도 5로 되돌아와서, 이벤트 관리자에 의해 처리되는 별도의 또 다른 이벤트는 스크롤 이벤트를 처리하는 이벤트이다. 블록(112)에서 검출되고 스크롤 처리 루틴(200)에 의해 처리되는 그러한 이벤트는 공지된 다양한 형태로 시작될 수도 있다. 예를 들어, 일차 렌즈는 유니트 및/또는 블록의 증분 및 감분 동작을 허용하는 전통적인 스크롤 바 객체를 포함할 수도 있다. 더욱이, 스크롤 이벤트는 키보드 입력에 의해 발생할 수도 있고, 문서 내의 특정 위치로가라는 요청 따위의 특정 메뉴 또는 툴 바 버튼 동작에 의해 발생할 수도 있다. 그밖에, 일차 렌즈에 검색 기능이 제공되는 경우에, 지식의 집합체 내의 특정 위치가 렌즈 세트 내에서 표시되어질 것을 요청하는 유사 스크롤 이벤트가 발생될 수도 있다.
스크롤 처리 루틴(200)이 도 19에 상세히 도시되어 있다. 일반적으로 루틴(200)은 블록(202)에서 스크롤 이벤트 내에 공급되는 크기 및 방향에 기초하여 렌즈 세트의 지식의 집합체 내의 타깃을 계산함으로써 시작된다. 위에서 논의한 바와 같이, 각각의 렌즈 세트는 지식의 집합체 내의 현재의 위치와 관련되어 있다. 스크롤 이벤트의 크기 및 방향에 기초하여, 지식의 집합체 내의 새로운 타깃 위치가 계산될 수도 있다. 예를 들어, 일차 렌즈의 얕은 경계선 그리고 깊은 경계선은 물론 일차 렌즈의 스크롤 증분은 공지되어 있다. 따라서, 스크롤 이벤트 내의 정보에 기초하여, 지식의 집합체 내의 새로운 위치가 계산될 수도 있다. 스크롤 이벤트가 유니트 증분을 위한 것인지 아니면 블록 증분을 위한 것인지에 따라, 또는 스크롤 이벤트가 지식의 집합체 내의 특정 위치로의 이동을 요청하는 것인지에 따라, 지식의 집합체 내의 타깃 위치가 통상적인 방식으로 계산될 수도 있다.
예를 들어, 타깃 위치는 일차 렌즈의 일시적인 (표시되지 않은) 복사물 위에 예비 스크롤을 수행하고, 예비 스크롤 내에 구축된 마지막 라인에 추가되거나 프리펜드된 마지막 새로운 세그먼트를 가리키도록 타깃을 설정함으로써 설정될 수도 있다. 렌즈를 채우기 위하여 라인의 높이, 폰트의 크기 등은 물론 렌즈 내로 얼마나 많은 라인이 입력되어야 하는지를 알고 필터링 된 지식의 집합체를 얼마나 많이 사용되어야 하는지를 파악하게 되면 타깃 위치를 결정할 수 있다.
일단 지식의 집합체 내의 타깃 위치가 계산되면, 제어가 블록(204)으로 넘어가서 지식의 집합체 내의 타깃 위치를 표시하기 위하여 렌즈 세트 내의 각각의 렌즈의 내용을 갱신한다. 전형적으로, 이 동작은 각각의 렌즈가 갱신 이벤트를 처리할 수 있도록 내용 갱신 이벤트를 렌즈 세트 내의 각각의 렌즈로 보냄으로써 수행된다. 이 이벤트에서, 지식의 집합체 내의 새로운 타깃 위치가 각각의 렌즈에 공급된다. 그런 다음, 이벤트가 각각의 렌즈에 대해 시작된 후에 루틴(200)이 종료된다.
각각의 렌즈는 내용 갱신 이벤트를 받아들이고, 도 20에 예시된 내용 갱신 루틴(210)을 사용하여 그러한 이벤트를 처리한다. 루틴(210)은 블록(212)에서 (이벤트 내에 공급된) 지식의 집합체 내의 타깃 위치가 렌즈의 얕은 경계선 및 깊은 경계선 사이에 있는지를 결정함으로써 시작된다. 만일 그렇다면, 렌즈의 스크롤은 요구되지 않으며, 루틴(210)은 종료된다. 그러나, 타깃이 렌즈의 얕은 경계선 및 깊은 경계선 사이에 있는 않은 경우에는, 제어가 블록(214)으로 넘어가서 타깃 위치가 렌즈의 깊은 경계선을 넘어서 있는지를 결정한다.
만일 그렇다면, (지식의 집합체를 통해 깊은 경계선을 아래로 이동시키는 효과를 또한 갖는) 사전 설정된 증분, 여기서는 라인을 지식의 집합체 내로 스크롤 다운 시키기 위하여, 도 14의 스크롤 다운 루틴(250)을 호출한다. 위에서 논의한 바와 같이, 루틴(250)은 일반적으로 렌즈의 깊은 경계선에 인접한 지식의 집합체로부터의 새로운 정보 라인을 검색함으로써 동작하며, 새로운 정보 라인을 렌즈의 바닥으로 입력한다. 새로운 정보 라인의 검색과 동시에, 렌즈의 얕은 경계선 및 깊은 경계선이 조정되고 새로운 라인에 대하여 지식의 집합체 카운트가 계산된다.
도 20으로 되돌아와서, 새로운 라인이 렌즈 내에 입력된 후에, 블록(216)이 실행되어 타깃이 여전히 렌즈의 깊은 경계선을 넘어서 있는지를 결정한다. 만일 그렇다면, 지식의 집합체 내에서 추가로 스크롤 다운을 수행하기 위하여 루틴(250)이 다시 호출된다. 따라서 지식의 집합체 내의 타깃 위치가 더 이상 렌즈의 깊은 경계선을 넘어서 있지 않을 때까지 루틴(250)이 호출된다. 타깃이 렌즈의 깊은 경계선을 넘어서 있지 않게 된 후에는, 루틴(210)이 종료된다.
블록(214)으로 되돌아와서, 타깃이 깊은 경계선을 넘어서 있지 않으면, 타깃이 렌즈의 얕은 경계선 위에 있는 것으로 추정된다. 따라서, 타깃을 위치시키기 위해서는 지식의 집합체 내에서 렌즈가 스크롤 업 되어야 하며, 따라서 (지식의 집합체를 통해 얕은 경계선을 위로 이동시키는 효과를 또한 갖는) 사전 설정된 양, 여기서는 라인을 지식의 집합체 내로 스크롤 업 시키기 위하여, 스크롤 업 루틴(220)이 호출된다. 다음에, 블록(218)이 실행되어 타깃이 여전히 렌즈의 얕은 경계선 위에 있는지를 결정한다. 만일 그렇다면, 타깃이 더 이상 렌즈의 얕은 경계선 위에 있지 않을 때까지 블록(218)은 순환하여 루틴(22)을 다시 호출한다. 이러한 조건이 성립되면, 루틴(210)은 종료한다.
도 21은 스크롤 업 루틴(250)을 더욱 상세히 보인 것이다. 루틴(250)은 일반적으로 도 14의 루틴(220)과 동일한 방식으로 동작한다. 특히, 루틴(250)은 블록(252)에서 새로운 라인 버퍼를 소거함으로써 시작된다. 그 다음에, 블록(253)에서 루프가 초기화되어, 이전의 세그먼트 검색 루틴(260)을 호출하고 검색된 세그먼트를 블록(256) 내의 새로운 라인 버퍼 내로 프리펜드 한다. 새로운 라인 버퍼가 채워졌음을 블록(253)이 결정할 때까지 또는 지식의 집합체 지시기의 상부가 루틴(260)으로부터 복귀되었음을 블록(254)이 결정할 때까지 루프는 계속된다. 어느 이벤트에 있어서도, 제어는 블록(258)으로 넘어가서 렌즈 내의 현재의 바닥 라인의 지식의 집합체 카운트만큼 렌즈의 깊은 경계선을 감분 시키고, 블록(259)으로 제어가 넘어가서 렌즈의 상부에 새로운 라인을 입력한다. 그런 다음 루틴(250)은 종료된다.
도 22에 더욱 상세히 예시된 이전 세그먼트 검색 루틴(260)은 도 15의 다음 세그먼트 검색 루틴(230)과 거의 동일한 방식으로 동작한다. 루틴(260)은 블록(262)에서 필터링 되지 않은 세그먼트가 복귀할 때까지 또는 지식의 집합체의 상부를 만날 때까지 지식의 집합체의 이전의 세그먼트를 검색하는 루프를 시작한다. 지식의 집합체의 상부를 만나게 되면 (즉 얕은 경계선이 지식의 집합체의 상부를 가리키게 되면), 블록(262)은 지시기를 그 효과로 복귀시키고, 블록(264) 내에서 루틴을 종료한다. 그러나 지식의 집합체의 상부를 만나지 않는 경우에는, 블록(266)이 실행되어 지식의 집합체 내의 이전 세그먼트를 검색한다. 그런 다음, 블록(268)(270)이 실행되어 사전 설정된 세그먼트 크기만큼 렌즈의 얕은 경계선을 감분 시키고, 세그먼트 크기만큼 새로운 라인의 지식의 집합체 카운트를 증분 시킨다. 그런 다음 블록(272)에서 검색된 세그먼트가 필터링 되는지를 결정하고, 만일 그렇다면 제어가 블록(262)으로 넘어가서 별도의 세그먼트를 검색한다. 그러나, 세그먼트가 필터링 되지 않는 경우에는, 제어가 블록(274)으로 넘어가서 특수 효과가 세그먼트에 적용되어야만 하는지를 결정한다. 만일 그렇다면, 제어는 블록(275)으로 분기한다. 특수 효과가 세그먼트에 적용되었는가의 여부와는 상관없이, 제어는 블록(276)으로 넘어가서 링크 포인터 강조가 세그먼트에 적용되어야 하는지를 결정한다 (이하에서 논의됨). 만일 그렇다면, 제어는 블록(277)으로 분기한다. 강조가 세그먼트에 적용되었는가의 여부와는 상관없이, 제어는 블록(278)으로 넘어서 세그먼트를 복귀시키고 루틴을 종료한다.
도 23 및 도 24는 표 I 및 표 II의 지식의 집합체의 예에 대한 스크롤 다운 동작을 예시한 것이다. 예를 들어, 필터링 되지 않거나 적어도 레벨(1-3)로부터의 정보 요소를 통과시키는 필터를 갖춘 일차 렌즈(420)가 도 23에 도시되어 있다. 그러나 이차 렌즈(422)는 레벨(3)로부터의 정보 요소를 배제하는 필터를 포함하고 있다. 따라서, 도 23에 예시한 지식의 집합체의 위치에서는 일차 렌즈(420)가 정보 요소(E)의 시작은 물론 정보 요소(C)(D)를 표시하고 있음을 알 수 있다. 그러나, 이차 렌즈(422)는 정보 요소(E)를 필터링 하여 오직 정보 요소(C)(D)만을 보여준다. 정보 요소(D) 아래에 배치된 빈 라인은 요소(D)(E)의 단락의 끝과 단락(F)의 시작 사이의 분리를 나타낸다. 요소(D) 내의 마지막 라인의 끝에 있는 빈 문자는 정보 요소(E)의 필터링 된 내용을 나타낸다.
도 24에 도시한 바와 같이, 사용자가 일차 렌즈(420) 내에서 정보 요소(E)의 내용을 통해 스크롤 다운 동작을 수행할 때, 이차 렌즈는 변경됨이 없이 도 23에서 이전에 표시된 정보와 동일한 정보를 표시한다. 그러나, 사용자가 일차 렌즈에서 (레벨 2의 정보 요소인) 정보 요소(F)의 첫 번째 라인으로 스크롤 다운 동작을 수행할 때, 이차 렌즈(422) 또한 한 라인 아래로 스크롤 되어 렌즈(420) 및 렌즈(422) 사이의 좌표를 유지한다. 정보 요소(F)를 통해 계속해서 스크롤 다운 동작을 행하면, 정보 요소(G)의 첫 번째 라인이 위치할 때까지 렌즈(420)(422) 상에서 스크롤 동작이 수행되며, 따라서 이 정보 요소는 이차 렌즈(422)로부터 또한 필터링 된다.
도 25는 도 24의 이차 렌즈(422)와 동일한 내용을 표시하는 변형된 이차 렌즈(422')를 보인 것이지만, 이 경우에는 정보 요소(E)가 이차 렌즈 내에 표시될 수 있도록 특수 효과가 적용되며, 정보 요소의 실제적인 내용을 표시함이 없이 렌즈에 표시된 다른 정보 요소에 대한 요소의 관계를 나타내기 이하여 정보 요소의 내용이 흐리게 표시되는 초점 효과 특수 효과가 사용된다. 이 필터는 일반적으로 도 11과 관련하여 위에서 설명한 핫포인트 배경 필터의 한가지 실시예이다. 여기에서 논의되는 다른 효과들도 동일한 방식으로 또한 적용될 수도 있다.
링크 포인터
추출 스택(50)과 함께 활용되는 사용자 인터페이스의 또 다른 중요한 양상은 명명된 개념에 관한 정보 요소를 함께 링크 시키는 것이다. 이것은 전형적으로 마우스 또는 기타 사용자 인터페이스 장치를 통해 제어되는 포인터의 특정 링크 포인터 모드를 사용하여 실현되는 링크 포인터의 사용을 통해 수행된다. 특히, 특정의 명명된 개념에 대한 정보 요소에 대한 링크 포인터의 이동에 의해 명명된 개념과 부합하는 다른 표시된 정보 요소를 강조하게 된다. 전형적으로, 링크 포인터 동작은 렌즈 세트의 일차 렌즈 내의 정보 요소에 대한 포인터의 이동에 제한되지만 반드시 그런 것은 아니다.
예를 들어, 한가지 바람직한 실시예에 있어서, 크로스-오버 이벤트는 일차 렌즈 내의 특정 정보 요소에 대한 사용자의 포인터 이동에 응답하여 발생된다. 크로스-오버 이벤트는 깊이 관리자에 의해 처리되며, 사정 설정된 환경에서 대기 행렬 내에 놓인다. 대기 행렬 내의 이벤트 관리자는 명명된 개념과 통합된 정보 요소를 표시함으로써 이들 정보를 강조할 수 있는 강조 이벤트를 렌즈 세트 내의 각각의 렌즈에 발행한다. 그에 응답하여, 각각의 렌즈는 강조 이벤트를 처리하고, 그에 따라 그 표시를 갱신한다.
예를 들어, 크로스-오버 이벤트를 처리하는 크로스-오버 처리 루틴(350)이 도 26에 상세히 도시되어 있다. 루틴(350)은 블록(352)에서 크로스-오버 이벤트가 (정보 요소의 바깥쪽 위치에서 정보 요소 위의 위치까지 포인터가 이동하는) 엔트리 이벤트인지 아니면(포인터가 정보 요소 밖으로 이동하는) 종료 이벤트인지를 결정함으로써 시작된다. 이벤트가 엔트리 이벤트인 경우, 제어는 블록(354)으로 넘어가서 크로스 오버 엔트리 이벤트가 현재 처리되고 있는지를 결정한다. 만일 그렇다면, 루틴(350)은 종료된다. 그러나 이벤트가 처리되고 있지 않은 경우에는, 제어가 블록(356)으로 넘어가서 단일 엔트리 크로스-오버 대기 행렬이 채워졌는지, 즉 계류중인 이벤트가 대기 행렬에 저장되어 있는지를 결정한다. 만일 그렇다면, 루틴(350)은 종료된다. 그런지 않다면, 이벤트는 루틴(350)을 종료하기에 앞서 블록(358) 내에서 크로스-오버 대기 행렬에 추가된다.
블록(352)으로 되돌아와서, 이벤트가 종료 이벤트인 경우, 블록(355)이 실행되어 종료 이벤트가 현재 처리되고 있는지를 결정한다. 만일 그렇다면, 루틴(350)은 종료되고, 그렇지 않다면 제어는 블록(356)으로 넘어가서 대기 행렬이 비어 있는 경우에 대기 행렬에 이벤트를 추가한다.
크로스-오버 대기 행렬 위에 이벤트를 두게 되면 도 27에 예시한 이벤트 엔트리 처리 루틴(360)에 의해 처리되는 이벤트 엔트리 이벤트가 발생된다. 루틴(360)은 블록(361)에서 대리 행렬로부터 이벤트 엔트리를 제거함으로써 시작된다. 다음에, 블록(362)에서 이벤트가 크로스-오버 엔트리 이벤트인지를 결정한다. 만일 그렇다면, 블록(363)이 실행되어 처리중인 엔트리 플래그를 설정한다. 이 플래그는 엔트리 이벤트가 현재 처리되고 있음을 나타낸다. 일반적으로 이 플래그는 도 26의 블록(354)에서 테스트된다.
다음에, 블록(364)이 실행되어 이벤트 내에서 특정된 명명된 개념 (일차 렌즈 내의 크로스-오버 정보 요소의 명명된 개념)과 연관된 적어도 하나의 필터링 되지 않은 정보 요소를 갖는 이차 렌즈의 리스트를 생성한다. 그 다음에, 블록(366)은 일차 렌즈에서 명명된 개념에 대해 지식의 집합체 내에서 타깃 오프셋을 발생시킨다. 그 다음에, 명명된 개념의 링크 포인터 강조가 블록(368) 내에서 즉, 명명된 개념과 관련된 플래그를 설정함으로써 허용된다. 다음에, 블록(370)이 실행되어 각각의 렌즈가 그 표시를 갱신하여 명명된 개념에 대응하는 정보 요소를 강조할 수 있도록 일차 렌즈 및 이차 렌즈의 리스트에 강조 이벤트를 전송한다. 다음으로, 블록(372)은 처리중인 엔트리 및 처리중인 종료 플래그를 소거하고, 루틴(360)을 종료한다.
블록(362)으로 되돌아와서, 대기 행렬 내의 엔트리가 종료 이벤트용인 경우, 제어는 블록(373)으로 넘어가서 처리중인 종료 플래그를 설정한다. 이 플래그는 종료 이벤트가 현재 처리되고 있음을 나타낸다. 그런 다음 블록(374)이 실행되어 명명된 개념과 연관된 모든 플래그를 소거함으로써 모든 링크 포인터 강조를 금지한다. 그 다음에, 제어는 블록(370)으로 넘어가서 블록(372) 내에서 처리 중 플래그를 소거하고 루틴을 종료하기 전에 위에서 설명한 바와 같이 강조 이벤트를 발행한다.
이벤트 핸들링 강조 루틴(375)은 도 28에 상세히 예시되어 있다. 루틴(375)은 블록(376)에서 이벤트 내에 지정된 지식의 집합체 내의 타깃의 위치가 렌즈의 얕은 경계선 및 깊은 경계선 사이에 있는지를 결정함으로써 시작된다. 만일 그렇다면, 렌즈의 스크롤은 불필요하고, 따라서 렌즈의 깊은 경계선은 블록(378) 내에서 얕은 경계선의 값으로 설정되고, 렌즈 충전 루틴(340)이 호출되어 렌즈의 내용을 리프레시 한다. 그 후에 루틴(375)은 종료된다. 깊은 경계선을 얕은 경계선으로 설정함으로써, 이벤트 전에 그랬던 것처럼 강조 이벤트가 처리된 후에 렌즈의 깊은 경계선 및 얕은 경계선은 동일하게 된다. 그러나, 충전 루틴이 수행된 후에, 명명된 개념의 강조 상태는 도 27과 관련하여 위에서 설명한 루틴(360)에서 설정된 플래그에 기초하여 설정되거나 소거된다 (도 15의 루틴(230)의 블록(246-247) 및 도 22의 루틴(260)의 블록(276-277) 참조).
블록(376)으로 되돌아와서, 타깃이 렌즈의 얕은 경계선 및 깊은 경계선 사이에 존재하지 않으면, 도 20의 내용 갱신 루틴(210)이 호출되어 지식의 집합체 내의 타깃 위치를 표시하는 필요한 렌즈를 스크롤 한다. 이러한 스크롤과 동시에, 렌즈의 내용은 리프레시 되어, 위에서 논의한 바와 같이 강조된 상태를 반영하게 된다. 그런 다음 루틴(375)이 종료된다. 이와는 다른 형태로, 크로스-오버 이벤트에 응답하여 어떠한 조정된 스크롤도 수행하지 않을 수도 있으며, 따라서 명명된 개념에 관련되어 있지만 렌즈에 현재 표시되지 않는 정보 요소를 표시하기 이하여 렌즈를 갱신하는 내용 갱신 루틴을 별도로 호출할 필요가 없을 수도 있다.
명명된 개념은 요직 하나의 정보 요소와 관련될 수 있어서, 오직 하나의 요소만이 주어진 렌즈 내에서 강조될 수 있다. 다른 형태로서, 다중 정보 요소가 명명된 개념과 연관되어서, 다중 정보 요소가 렌즈 내에 주어진 시간에 강조될 수도 있다. 후자의 경우, 타깃의 위치를 결정하는 것은 이벤트를 시작한 정보 요소에 대해 특별히 타깃 위치를 두는 것이다.
도 29는 도 23과 관련하여 위에서 설명된 일차 및 이차 렌즈(420)(422)를 일례로서 보인 것이다. 이 경우에, 링크 포인터 모드 내에 놓인 포인터(430)는 명명된 개념 "coul"과 연관된 크로스-오버 정보 요소(D)를 갖는다 (표 II 참조). 그에 응답하여, 정보 요소(D)는 렌즈(420)(422)에서 강조된다. 더욱이, "coul"로 명명된 개념과 또한 연관된 정보 요소(E)는 렌즈(420)에서 또한 강조된다. 포인터가 정보 요소(D)를 벗어남으로써 크로스-오버 종료 이벤트가 발생된 후에, 렌즈(420)(422) 내의 정보 요소(D)(E)의 시각적인 표시는 도 23에 예시한 표시로 복귀한다.
별도의 제어 수단 및 조작 동작
별도의 사용자 인터페이스 제어 수단 및 동작이 본 발명에 따른 추출 스택 내에서 실현될 수도 있다. 이들 다수의 제어 수단 및 동작에 대해서는 도 30 및 도 31을 참조하여 이하에서 상세히 설명된다. 그래픽 사용자 인터페이스 환경에서의 이들 제어 수단 및 특징의 실현은 여러 측면에서 종래의 GUI 제어 수단 및 입력 순서와 유사하다. 그 결과, 이들 제어 수단 및 특징의 실현은 이 기술분야에서 통상의 지식을 가진 자에게 잘 알려져 있으며, 따라서 이들에 대한 상세한 설명이 본 발명을 완전히 이해하는데 있어서 반드시 필요하지는 않다.
렌즈는 다수의 종래의 GUI 제어 수단을 포함할 수도 있다. 예를 들어, 렌즈는 닫기 버튼, 최소화 버튼, 최대화 버튼, 타이틀 바, 크기 조정 핸들, 스크롤 바, 드롭다운 메뉴, 툴바 버튼 등의 종래의 다양한 GUI 윈도우 제어 수단을 포함할 수도 있다.
도 30은 전형적으로 바인더 밴드에 부착하기에 적절한 작은 사각형 형태의 임의의 작은 객체인 마이너 렌즈 형태(435)로 윈도우 내에서 최소화되는 윈도우(422) 상의 최소화 동작을 예시한 것이다. 전형적으로, 깊이 벡터 렌즈는 최소화되거나 닫힐 때 마이너 렌즈로 변환된다. 다른 형태로서, 깊이 벡터 렌즈를 닫아서 렌즈를 추출 스택으로부터 제거할 수도 있다. 보충 렌즈 또한 최소화될 수 있지만, 더욱 전형적으로는 보충 렌즈는 최소화 또는 폐쇄될 때 제거된다.
렌즈는 다수의 사용자 인터페이스 입력을 통해, 예를 들어 렌즈 상에서 최소화 또는 닫기 버튼을 클릭 함으로써 마이너 렌즈를 최소화될 수도 있다. (마이너 렌즈 사에서 한번 클릭 또는 더블 클릭 함으로써) 마이너 렌즈를 선택하게 되면, 렌즈가 일차 또는 이차 렌즈 형태로 개방된다. 마이너 렌즈를 선택하게 되면, 렌즈 세트 내의 다른 일차 및/또는 이차 렌즈가 폐쇄된다.
예를 들어, 마이너 렌즈는 지식의 집합체의 작가에 의해 작가가 추출 스택의 사용자에게 유용할 것이라고 믿는 다수의 사전 한정된 렌즈 및 필터 구성을 설정하는데 사용될 수도 있다. 그 결과, 사용자는 그러한 형태를 설정하는 방법을 특정하지 않고도 지식의 집합체의 각기 다른 형태를 볼 수 있도록 필요에 따라 사전 한정된 렌즈를 열 수 있게 된다.
사용자는 (바인더 밴드 상에서 한번의 클릭 또는 더블 클릭을 통해서) 바인더 밴드를 선택함으로써 렌즈 세트 내의 다른 렌즈를 선택적으로 닫는 것은 물론 인접한 마이너 렌즈를 여는 것이 허용된다. 하나의 마이너 렌즈가 열리면, 그 렌즈는 일차 렌즈가 된다. 하나 이상의 렌즈가 열리면, 이전의 일차 렌즈에 가장 가까운 렌즈가 일차 렌즈가 된다. 그밖에, 선택된 바인더 밴드에 인접한 마이너 렌즈가 없는 경우에는 인접한 교차점이 선택되며, 만일 선택된 바인더 밴드에 인접한 교차점이 없는 경우에는 도움말 토픽이 열려서 사용자에게 바인더 밴드의 적절한 사용법을 알려주게 된다. 사실상, 추출 스택 내에서 사용하고 항해하는 방법에 관한 별개의 추출 스택이 열릴 수도 있으며, 바인더 밴드에 관한 정보가 열리고 강조된다.
렌즈는 (타이틀 바 위에서 최대화 버튼을 선택하거나 더블 클릭을 함으로써) 최대화될 수도 있으며, 그 결과 표시가 도 31에 예시된 바와 같은 프라임 렌즈 뷰에 스위칭 된다. 프라임 렌즈 뷰에서, 특정 렌즈 내에 표시되는 정보의 전후 관계는 렌즈를 최대화 (프라임 렌즈) 형태로 표시하고 추출 스택의 나머지 부분은 찌그러진 형태로 둠으로써 사용자에게 일시적으로 안보이게 할 수도 있다. 예를 들어, 도 31은 렌즈(420)의 최대화 형태를 나타내는 프라임 렌즈(452)를 예시한 것으로, 추출 스택(400)은 찌그러진 형태(450)로 배치되어 있다.
찌그러진 스택 형태는 전형적으로 깊이 벡터의 각각의 단부에서의 컴퍼스 핸들과 스택에 링크 된 다른 컴퍼스 핸들은 물론 깊이 벡터에 따른 각각의 초점 평면의 형태를 보여주는 임의의 작은 형태를 포함한다. 프레임 렌즈 뷰 내에서의 프라임 렌즈를 제외하고, 생성된 모든 렌즈는 임의의 작은 마이너 렌즈로 표시된다. 프라임 렌즈 뷰 내에서, 프라임 렌즈는 정상적인 뷰에서의 관련된 렌즈와 거의 동일한 깊이 벡터에 대한 상대 위치에서 표시된다. 전형적으로, 사용자의 찌그러진 추출 스택과의 상호작용은 선택 및/또는 끌기 동작을 통한 컴퍼스 핸들을 사용하는 조작으로 제한된다. 다른 형태에 있어서, 찌그러진 전체 형태는 단일 객체로서 동작할 수도 있고, 개개의 컴포넌트가 개별적으로 조작될 수도 있다.
추출 스택 어플리케이션은 하나 이상의 깊이 벡터를 활용하며, 따라서 실행 시에 다중 추출 스택이 동일한 표시장치 내에서 동시에 표시되고 액세스될 수도 있다. 다중 추출 스택은 또한 추출 스택 내에서의 항해를 위한 메커니즘으로써 작용하는 별개의 추출 스택을 통해 상호 연결될 수도 있다.
다중 추출 스택은 별개의 지식의 집합체에 관련될 수도 있다. 예를 들어, 위에서 논의한 바와 같이, 여기서 논의하는 바와 같은 추출 스택 뷰어 또는 브라우저 어플리케이션의 도움말 시스템은 추출 스택으로서 실현될 수도 있다. 따라서, 지식의 집합체는 추출 스택을 통한 사용 및 항해와 관련된 것으로 표시된다.
다중 추출 스택은 동일한 지식의 집합체에 또한 관련될 수도 있으나, 그 안에 포함된 정보를 보여주기 위한 별개의 방식을 제공한다. 예를 들어, 각기 다른 추출 구조가 각기 다른 클래스의 추출 레벨로 지식의 집합체를 구분할 수도 있다, 하나의 추출 구조는 지식의 집합체를 이해의 레벨 (예를 들어, 초보자, 전문가, 등등)에 기초하는 추출 레벨로 구분하고, 또 다른 추출 구조는 지식의 집합체를 문서 성분(예를 들어, 본문, 각주, 표제, 색인, 용어, 예제, 그림, 오디오 클립, 비디오 클립, 등등)에 기초한 추출 레벨로 구분한다. 다중 추출 레벨 분류는 예를 들어 지식의 집합체 내의 각각의 정보 요소의 다중 레벨 식별 필드를 허용함으로써 실현될 수도 있다 (예를 들어, "〈infoel〉" 태그 내에서 별개의 "lvla" 및 "lvlb" 필드를 사용함으로써 실현할 수 있으며, 그 결과 하나의 추출 스택은 오직 "lvla" 필드만을 판독하고, 다른 스택은 오직 "lvlb" 필드만을 판독하게 된다). 각기 다른 구조가 별개의 스택을 가질 수도 있으며, 다중 구조의 양상을 반영할 수 있도록 단일 필터를 구성할 수도 있다. 별도의 태그가 사용되어, 예를 들어 각기 다른 클래스의 추출 레벨로부터의 레벨을 함께 링크 하는 태그를 사용함으로써, 다중 추출 스택이 어떻게 상호 링크 되어야 할지를 나타내는데 또한 사용될 수도 있다. 다른 형태에 있어서는, 몇몇 특정 방식으로 추출 스택이 관련되어 있음을 반영하기 위하여 단순히 추출 스택 사이에 임의의 커플링이 제공될 수도 있다.
사용자 인터페이스 제어 수단은 동일한 컴퓨터 표시장치 상에서 보여져야 할 다중 추출 스택을 표시하고 함께 링크 하는데 사용된다. 예를 들어, 도 30은 추출 스택(400)을 별도의 추출 스택과 함께 링크하기 위하여 깊이 벡터를 따라 특정 초점 평면으로부터 연장될 수 있는 별도의 컴퍼스 핸들, 예컨대 컴퍼스 핸들(440)(442)을 사용하는 것을 보인 것이다. 계층 밴드, 예를 들어 밴드(441)(443)는, 비록 링크 되지 않은 추출 스택이 단순히 다른 객체에 연결되지 않은 단일 컴퍼스 핸들에 의해 표시되더라도, 추출 스택(400)에 컴퍼스 핸들을 커플링 하는데 사용될 수도 있다.
이렇게 활용되는 컴퍼스 핸들은 완전히 최소화된 추출 스택을 나타내는데 사용될 수도 있다. 그 결과, (예를 들어, 한번의 클릭 또는 더블 클릭을 통하여) 그러한 컴퍼스 핸들을 선택하면 최소화된 스택이 (도 31에 예시된 형태(450)와 유사한) 찌그러진 스택 형태로 확장될 수도 있다.
전형적으로, 상호 링크 된 추출 스택은 깊이 벡터와 나란하게 그 방위가 정해진다. 다중 추출 스택이 표시는 되지만 함께 링크는 되지 않은 경우에는 나란한 상태로 모든 스택의 방향을 설정하는 것이 가능하다. 따라서, 최소화된 추출 스택이 찌그러진 형태로 확장되면, 깊이 벡터는 현재 개방된 스택의 방위의 모드 또는 평균치에 따라 그 방위가 정해질 수도 있다.
찌그러진 스택 형태 위에서 컴퍼스 핸들을 선택하면 추출 스택이 도 30에 예시한 형태(400)와 같이 확장된 형태로 확장된다. 스택이 확장되면, 디폴트 렌즈가 열리게 된다. 일례로서, 선택된 컴퍼스 핸들에 가장 가까운 두 개의 깊이 벡터 렌즈를 열고 컴퍼스 핸들에 가장 가까운 렌즈를 일차 렌즈로 하는 것이 바람직하다. 추출 스택용 렌즈가 생성되지 않은 경우에, 디폴트 필터 구성을 갖는 두 개의 렌즈(예를 들어, 가장 가까운 그리고 그 다음으로 가장 가까운 교차점에 의해 나타내어지는 추출 레벨을 각각 통과하는 렌즈)가 생성되고 개방된다.
(한번의 클릭 또는 더블 클릭을 통하여) 확장된 추출 스택 위에서의 컴퍼스 핸들의 선택은 전체 추출 스택을 컴퍼스 핸들로 최소화하는데 사용될 수도 있다. 다른 형태로서, 유사한 형태로 또는 다른 형태로 컴퍼스 핸들을 선택하면 추출 스택을 찌그러진 형태로 찌그러뜨릴 수 있다.
컴퍼스 핸들은 여러 가지 끌기 동작을 통해 (예를 들어, 핸들 위에서 포인터를 특정 방향으로 향하게 하고, 버튼을 누르고, 버튼을 누른 상태로 포인터를 이동시킴으로써) 조작될 수도 있다.
예를 들어, 확장된 스택의 경우, 한가지 모드에서 (예를 들어 컨트롤 키를 누르지 않은 상태에서) 컴퍼스 핸들을 끌면 그 방위 또는 크기가 변경됨이 없이 표시장치 둘레로 전체 추출 스택을 이동시킬 수 있다. 또 다른 모드에서 (예를 들어, 하나의 컨트롤 키 또는 조합된 키를 누른 상태에서) 컴퍼스 핸들을 끌면 깊이 벡터의 방위 및 길이가 변형될 수 있도록 다른 컴퍼스 핸들은 고정된 상태로 컴퍼스 핸들이 이동할 수 있게 된다. 또 다른 모드에서 (예를 들어, 또 다른 컨트롤 키 또는 조합된 키를 누른 상태에서) 컴퍼스 핸들을 끌면 컴퍼스 핸들이 깊이 벡터를 따라서만 이동하여 그 방위를 변경함이 없이 추출 스택의 크기를 변경할 수도 있다. 또 다른 모드를 사용하면 크기를 변경함이 없이 방위만이 변경될 수 있도록 깊이 벡터가 다른 컴퍼스 핸들을 중심으로 선회할 수도 있다. 찌그러지거나 최소화된 스택 위에서 컴퍼스 핸들을 끌게 되면 단순히 표시장치 내에서 찌그러지거나 최소화된 스택 전체가 이동할 수 있게 된다. 그렇지 않으면, VRML 내의 뷰 개념의 필드와 유사한 추출 스택의 뷰포인트를 변경하기 위하여 비슷한 효과가 사용될 수도 있다.
프라임 렌즈 뷰 내에서 컴퍼스 핸들을 끌면 프라임 렌즈에 대해 찌그러진 추출 스택 둘레를 이동할 수도 있다. 더욱이, 스택이 프라임 렌즈에서 끌어내어지면 표시는 정상적인 뷰 상태로 복귀하고, 스택은 확장되며, 이전의 일차 렌즈는 일차 렌즈로 설정되고, 높은 또는 낮은 추출 레벨에서의 별도의 렌즈가 이차 렌즈로서 개방된다.
확장된 추출 스택 내의 개개의 렌즈는 필요에 따라 사용자에 의해 또한 조작될 수도 있다. 예를 들어, 렌즈는 사용자의 입력을 받아들이기 위한 일차 렌즈로서 어떤 렌즈가 지정되는지를 제어할 수 있도록 선택될 수도 있다. 그밖에, 렌즈의 이동 및/또는 크기 조정을 수행할 수도 있다. 렌즈 세트 내의 렌즈의 이동 및 크기 조정은, 비록 렌즈 세트에 대해 그룹 이동 및 크기 조정 동작이 지원될 수도 있지만, 전형적으로 그 렌즈만을 변경한다. 그러나, 렌즈의 크기가 조정되고 이동하는 경우에도, 다른 렌즈에 대한 깊이 벡터를 따라 위치하는 렌즈의 위치가 유지됨으로써, 그들 사이의 문맥 관계가 또한 유지된다. 렌즈의 깊이 벡터에 따른 위치는 변경될 수도 있지만, 렌즈가 스택 위의 또 다른 렌즈와의 상대 위치를 스위칭 하는 것이 허용되도록 변경되지 않는 것이 바람직하다.
렌즈의 이동 및 크기 조정은 본 발명에 따라 여러 가지 방식으로 수행될 수도 있다. 예를 들어, 종래의 GUI 윈도우와 유사하게, 렌즈는 그 타이틀 바를 끌어서 또는 바람직한 모드 내에서 화살표 키를 사용하여 이동시킬 수 있다. 렌즈의 크기 조정은 전형적으로 종래의 크기 조정 핸들을 사용하여 (예를 들어, 렌즈의 경계선을 끌어서) 수행할 수도 있다.
전형적으로, 렌즈의 이동은 렌즈의 평면, 즉 추출 축선을 따라 고정된 깊이에서 배치되거나 그에 수직하는 평면 내에서의 이동으로 제한된다. 렌즈의 깊이를 변경하기 위한 별도의 이동 동작이 본 발명에 따라 또한 제공될 수 있다. 그러한 이동은 깊이 벡터를 따라 배치된 인접한 객체의 깊이에 의해 제한된다. 일부 어플리케이션에 있어서, 인접한 객체에 의해 제한되는 것이 바람직한 완전한 삼차원 이동이 본 발명에 따라 또한 허용될 수도 있다. 인접한 객체의 깊이 이상으로 이동하기 위한 시도는 허용되지 않는다. 그렇지 않으면, 일부 어플리케이션에서는 객체 사이의 상대 깊이가 유지되는 한 깊이 벡터에 따른 인접 객체의 이동이 야기될 수도 있다. 그밖에, 일부 어플리케이션에 있어서는 최초로 렌즈가 위치한 이후에 그 필터 구성이 변경된 경우에 깊이 벡터를 따라 렌즈의 상대 깊이를 변경하는 것이 허용된다.
다양한 이동 메커니즘이 종래의 메커니즘에 더하여 및/또는 그 대신에 또한 사용될 수도 있다. 렌즈를 이동시키고 그 크기를 조정하는 한가지 적절한 방법은 포인터가 충돌 크기 조정 또는 이동 조작 모드에 있을 때 렌즈의 경계선과 포인터를 충돌시키는 것이다. 이러한 특징에 의해, 제 1 벡터가 그 경계선 세그먼트와 교차하는 것으로 결정되면, 제 1 벡터에 따른 포인터의 이동은 제 2 벡터를 따라 렌즈의 경계선 세그먼트를 이동시킨다. 이동 모드에서는, 경계선 세그먼트가 다른 모든 경계선 세그먼트와 함께 이동함으로써 렌즈를 효과적으로 이동시킨다. 크기 조정 모드에서는, 다른 경계선 세그먼트는 고정된 상태로 유지되어 렌즈의 크기를 효과적으로 조정한다. 포인터는 제 1 벡터가 확장되는 단일 위치를 가질 수 있도록 한정될 수도 있으며, 다른 형태로서 근접 범위가 그 포인터 둘레에서 한정될 수도 있다. 그 경계선은 렌즈의 경계선 세그먼트와의 충돌을 시험하는데 사용된다.
"범퍼-점퍼" 동작으로 불리는 이러한 타입의 포인터 조작에 의해 포인터가 렌즈와 충돌할 때 포인터가 렌즈와 부딪히거나 렌즈를 밀어내는 현상이 나타난다. 이 모드는 필요에 따라 소정의 경계선에 걸쳐 사용자가 신속히 그리고 선택적으로 부딪히거나 점프하는 것이 (예를 들어, 포인터를 이동시키는 동안 컨트롤 키를 누른 채로 유지함으로써) 허용되는 일시적인 허가 또는 금지 동작을 포함하여, 선택적으로 허가 또는 금지될 수 있다. 그밖에, 충돌은 렌즈 밖으로부터의 경계선 세그먼트와 접촉할 때 및/또는 렌즈의 경계선 내에 있는 동안 경계선 세그먼트와 접촉할 때에만 선택적으로 검출될 수도 있다.
일례로서, 도 32는 충돌 조작 모드 내에 있을 때의 추출 스택(400) 위에서 수행되는 이동 동작을 보인 것이다. 렌즈(462)의 일부가 렌즈(460) 뒤에 숨어 있도록 한 쌍의 렌즈(460)(462)가 부분적으로 중복된 상태로 도시되어 있다. 사용자가 렌즈 (462)내의 숨겨진 정보를 보길 원하는 경우에, 그렇게 할 수 있는 한가지 방법은 충돌 이동 조작 모드에 놓인 동안에 렌즈(460)의 경계선에 대해 포인터(464)를 충돌시키거나 부딪히게 하는 것이다. 도 33에 도시한 바와 같이, 포인터(464)가 벡터(466)를 따라 464'로 표시한 위치까지 이동하면, 렌즈(460)는 460'으로 표시한 위치로 점프하고, 따라서 사용자는 숨겨진 정보를 볼 수 있게 된다.
그밖에, 도 33을 통해 알 수 있는 바와 같이, 깊이 벡터에 수직한 평면 내에서 렌즈가 삼차원 공간 내에서 이동할 수 있도록 하기 위하여, 그 위에 배치된 각각의 객체의 중심 사이에서 연장되고, 다수의 포인트 (예를 들어 깊이 벡터(402) 위의 포인트(404) 및 포인트(406))에서 함께 연결되는 세그먼트로 깊이 벡터를 구분하는 것이 바람직할 수도 있다. 따라서, 깊이 벡터는 순수하게 선형일 필요는 없지만, 주된 방향으로 함께 연장되는 다수의 세그먼트를 포함할 수도 있다. 그러한 것으로서, 깊이 벡터에 따른 각각의 깊이 벡터 렌즈는 여전히 깊이 벡터 위의 중심에 놓여 있는 것으로 고려될 수 있으며, 깊이 벡터는 필요에 따라 변경되어 그 위에 배치된 렌즈의 병진 이동이 허용된다. 다른 형태로서, 렌즈 및 기타 객체가 추출 스택을 따라 적절한 위치에서 각각의 렌즈를 렌더링 하는 것을 허용할 수 있도록 그 평면을 따라 깊이 벡터로부터 객체의 분리를 한정하는 특정 오프셋 또는 분리 벡터를 저장할 수도 있다. 더욱이, 위에서 논의한 바와 같이, 깊이 벡터를 표시하는 것조차 필요하지 않다.
충돌 조작 대신에 또는 그와 함께 사용되는 렌즈를 이동시키거나 크기를 조정하는 또 다른 적절한 방법은 근접 조작의 방법이다. 근접 조작 모드에 있어서, 근접 포인터 둘레에 배치된 사전 설정된 근접 범위 내의 렌즈는 포인터의 사용자 조작에 응답하여 그룹으로서 그 크기가 조정되거나 이동하며, 따라서 한번에 다중 객체의 신속한 조작이 가능하다. 근접 범위는 깊이 벡터에 수직하는 평면으로 제한되거나, 깊이 벡터에 따른 상대 위치에 관련된 깊이 인자를 포함할 수도 있다.
일례로서, 도 34는 근접 포인터 모드에 있을 때 추출 스택(400) 위에서 수행되는 이동 동작을 보인 것이다. 렌즈(472)(474)의 일부가 사용자에게 보이지 않도록 하기 위하여 세 개의 렌즈(470)(472)(474)가 부분적으로 상호 중첩된 상태로 도시되어 있다. 사용자가 예를 들어 렌즈(474) 내의 숨겨진 정보를 보기를 원하는 경우, 그렇게 하는 한가지 방법은 근접 모드 내에 포인터(476)를 위치시키고 각각의 윈도우(470)(472)의 적어도 일부가 포인터 둘레에 한정된 근접 범위(477) 내에 배치되도록 포인터의 방위를 정하는 방법이다. 도 35에 도시한 바와 같이, 포인터(476)가 벡터(478)를 따라 476'로 표시한 위치까지 이동하면, 렌즈(470)(472)는 470' 및 472'로 표시한 위치로 무리를 지어 이동하며, 따라서 사용자는 렌즈(474) 내의 숨겨진 정보를 볼 수 있게 된다.
위에서 설명한 이들 어플리케이션에 개시된 여러 가지 변형예는 본 발명에 따라 또한 실현될 수 있다. 그밖에, 렌즈를 조작하는 다른 방법을 고려해 볼 수도 있다. 예를 들어, 지식의 집합체가 HTML 따위의 태그로 구분된 포맷으로 표시되는 경우에, 하이퍼텍스트 링크 등이 지식의 집합체 내에 내장됨으로써 사용자가 간단히 이들 링크를 선택하여 내장된 링크 내에 지정된 동일한 또는 각기 다른 렌즈 내의 사전 설정된 위치로 항해를 할 수가 있게 된다. 링크는 지식의 집합체 내의 특정 위치와 또한 관련될 수 있어서, 렌즈 세트 내의 각각의 렌즈는 좌표 형태로 스크롤 되어 지식의 집합체 내의 그 위치를 나타내는 특별한 형태를 표시하게 된다. 그러한 렌즈가 현재 추출 스택 내에 존재하는 않는 경우에는 특정 렌즈를 생성하고 개방하기 위하여 링크가 또한 사용될 수도 있다. 기타의 사용자 조정 동작이 본 발명에 따른 추출 스택에 대해 또한 수행될 수도 있다.
여기에서 설명되는 다수의 인터페이스 제어 수단, 객체, 메커니즘, 및 기술은 추출 스택과는 별도로 다른 컴퓨터 소프트웨어 사용자 인터페이스 내에서 단독으로 또는 조합되어 사용될 수 있음에 유의할 필요가 있다. 예를 들어, 필터링, 바인더 밴드, 근접 포인터, 범퍼-점퍼 포인터, 링크 포인터 등의 객체 및 기술은 운영 시스템을 위한 기본적인 인터페이스 또는 모든 형태의 컴퓨터 소프트웨어 어플리케이션을 위한 사용자 인터페이스와 같은 다른 용도에서도 사용될 수 있다.
지식의 집합체의 다중 레벨 저작
지식의 집합체로부터 정보를 관측하는 독특하고 유용한 방법을 제공하는 것 말고도, 본 발명의 실시예는 본 발명에 따른 지식의 집합체 저작 프로세스를 이용하여 지식의 집합체를 저작하는 독특한 방식을 또한 제공할 수도 있다. 이러한 프로세스는 부분적으로는 추출 스택과 동일한 방식으로 동작하는 독특한 저작 도구에 의존하지만, 유사한 형태의 다중 레벨 인터페이스를 통하여 지식의 집합체 내에 정보를 생성하고 변경하는 별도의 능력을 갖는다.
본 발명에 따른 적절한 한가지의 저작 프로세스가 도 36에 추출 스택 저작 프로세스(500)에 의해 예시되어 있다. 일반적으로, 이 저작 프로세스는 세 가지 주된 개념적인 동작을 포함한다. 처음에, 지식의 집합체에 의해 어드레스 될 특정 독자가 결정된다 (블록 502). 그 다음에, 각기 다른 독자에 적절한 각기 다른 포맷으로 지식의 집합체를 나타낼 수 있도록 한정된 추출 레벨을 갖춘 적절한 추출 스택의 기반 구조가 구축된다 (블록 504). 그리고, 지식의 집합체로부터의 재료가 추출 스택에 의해 한정된 기반 구조 내에 정보를 선택적으로 입력함으로써 저작된다 (블록 506).
블록(502)에서 독자에게 어드레스 하기로 결정하게 되면 궁극적으로 지식의 집합체가 어떻게 독자에게 나타내어져야 하는지를 결정한다. 위에서 논의한 바와 같이, 추출 스택은 여러 가지 레벨의 능력과 관심을 가진 독자를 어드레스 하는 것으로 고려될 수도 있다. 일부의 경우에 독자는 별개의 개개인으로 이루어진다. 다른 경우에는 오직 한 개인이 다수의 독자를 대표할 수 있도록, 오직 한 개인의 능력 및 관심이 시간이 지남에 따라 변경될 수 있다. 따라서, 지식의 집합체를 생성하기를 원하는 작가는 먼저 적절한 스택을 구축하기 위하여 어떤 독자를 어드레스 할 지를 먼저 결정한다. 그런 다음, 스택의 문맥 내에서, 작가는 선택된 독자에 적절한 재료를 저작할 수 있다.
블록(504)(506)에서, 작가는 전형적으로 (예를 들어 도 2의 블록(90)으로 나타낸 바와 같은) 저작 도구를 활용하여 추출 스택의 기반 구조를 생성하고 그 기반 주고 내로 정보를 받아들인다. 저작 도구(90)는 추출 스택 어플리케이션(50)과 매우 동일한 방식으로 동작하며, 추출 스택 렌즈 내에 표시되는 정보를 추가하고, 삭제하고 및/또는 변경하는 등의 여러 가지 별도의 특징을 가지고 있음에도 불구하고 위에서 설명한 바와 동일한 사용자 인터페이스 컴포넌트 및 프로세스를 거의 모두 활용할 수도 있다. 일반적으로, 추출 스택 어플리케이션(50)이 브라우저형 또는 뷰어형 어플리케이션이고, 저작 도구(50)가 에디터형 또는 저작형 어플리케이션인 경우, 이들 두 가지 타입의 어플리케이션이 동일한 기초적인 특징, 구조, 루틴 및 프로세스의 대부분을 (예를 들어, 깊이 관리자(60) 및 흐름 관리자(80) 내에 제공되는 동작의 많은 부분을) 활용할 수도 있다. 저작 도구(90)를 사용하여 지식의 집합체를 저작하는 동안 사용자가 추출 스택을 통해 관측하고 항해하는데 필요하기 때문에, 위에서 설명한 추출 스택 어플리케이션(50)의 특징의 많은 부분이 저작 도구(90)에 유용하게 사용될 수도 있다. 따라서, 독자는 저작 도구(90)의 기본적인 동작을 이해하기 위하여 추출 스택 어플리케이션(50)의 논의로 향하게 된다.
저작 도구(90)를 이용하여 새로운 스택을 생성하기 위하여, 도 6의 스택 초기화 루틴(150)이, 예를 들어 메뉴 또는 툴바 버튼 선택을 통한 "새로운 스택" 요청에 응답하여, 또는 다른 공지된 방식으로 실행될 수도 있다. 새로운 스택이 생성되면, 저작 도구의 깊이 관리자는 초기에 지정된 추출 레벨을 갖지 않은 널의 지식 몸체로 스택을 초기화한다. 따라서, 저작 도구(90)의 경우, 기존의 지식의 집합체의 검색을 건너뛰고 대신에 비어 있는 데이터 구조를 초기화하기 위하여 루틴(250)의 블록(151)을 대체하는 것이 바람직할 수도 있다. 그밖에, 추출 레벨이 존재하지 않는 경우에 교차점이 생성되지 않도록 추출 레벨의 존재 여부를 먼저 검사하기 위하여 블록(156)을 변경하는 것이 바람직할 수도 있다. 다른 형태로는, 블록(156)에서 추출 레벨을 지식의 집합체에 어드레스 할 것을 작가에게 요청하는 다이얼로그 박스를 열고, 작가에 의해 생성된 추출 레벨에 대해 교차점을 생성하는 것이 바람직할 수도 있다.
새로운 스택의 생성은 기존 정보의 검색 및/또는 기존의 추출 레벨의 검색을 포함할 수도 있다. 예를 들어, 어떠한 추출 레벨을 생성하기에 앞서 기존의 정보를 검색하는 것이 바람직하며, 이에 의해 모든 정보는 필연적으로 관련되지 않는다. 이 경우, 기존 정보의 문서 또는 파일을 검색하고, 그 정보를 특정의 추출 레벨과의 연관성이 없는 (즉, 널의 레벨 식별자를 갖는) 정보 요소로 파싱(parsing) 하기 위하여 루틴(150)의 블록(151)이 변경될 수 있다. 그런 다음, 스택이 생성되면, 디폴트 편집 렌즈가 널의 레벨 식별자를 가지고 개방됨으로써 렌즈는 지식의 집합체 내의 아직 관련이 되지 정보의 전부를 표시하게 된다.
또 다른 예로서, 기존의 정보를 검색하거나 검색함이 없이 기존의 추출 레벨을 검색하는 것이 바람직할 수도 있다. 이것은 특히 특정 추출 레벨이 특정 형태의 지식의 집합체에 가장 적합한 것으로 인지될 때 템플릿 기능을 제공한다. 그러한 것으로서, 루틴의 블록(156)은 템플릿 또는 다른 소오스로부터 추출 레벨을 검색할 수 있도록 변경될 수도 있다.
더욱이, 다른 형태의 에디터와 유사하게, 변경을 위하여 기존의 지식의 집합체를 저작 도구 내로 로드 하거나 및/또는 새로운 정보를 지식의 집합체 내에 입력하는 것이 바람직할 수도 있다.
기존의 정보 또는 추출 레벨을 검색하지 않고 새로운 추출 스택이 생성되었다고 가정하면, 추출 스택은 도 37의 추출 스택(600)으로 표시된 방식으로 나타내어질 수 있다. 추출 스택(600)은, 교차점을 가지지 않은 점을 제외하면, 전형적으로 도 8의 추출 스택(400)과 유사하다. 대신에, 단지 한 쌍의 컴퍼스 핸들(610)(612)이 (개개의 밴드(605a-d)를 포함하여) 바인더 밴드(605)에 의해 결합되어 있다.
일단 비어 있는 추출 스택이 생성되면, 작가에게는 본 발명에 따른 여러 가지 방식으로 추출 레벨을 생성하는 것이 허용된다. 예를 들어, 위에서 논의한 바와 같이, 추출 스택이 생성되는 도안 단일의 편집 렌즈가 선택적으로 개방될 수도 있고, 초기에 널의 추출 레벨과 연합될 수도 있다. 그런 다음, 렌즈 내에 제공된 인터페이스를 통하여, 추출 레벨이 생성될 수도 있다. 그렇지 않으면, 다이얼로그 박스가 사용자 입력에 응답하여 (예를 들어, 전체적인 저작 도구의 메뉴를 통하여) 열림으로써 추출 레벨의 편집이 허용된다.
그밖에, 교차점의 위치를 나타낼 수 있도록 작가는 예를 들어 삽입 모드에 놓여 있는 도안에 바인더 밴드를 클릭 하여 새로운 편집 렌즈 (또는 사용자 입력 요소)를 여는 것이 허용된다. 그런 다음 저작 도구는 모든 독자에 적합한 널의 추출 레벨로 정보를 입력하기 위해 초기화되는 렌즈를 개방함으로써 클릭에 응답한다. 예를 들어, 도 38은 컴퍼스 렌즈(610) 및 컴퍼스 렌즈(612) 사이의 중간 지점에서 비어 있는 렌즈(620)를 생성하는 것을 예시한 것이다. 렌즈(620)의 상대 깊이는 디폴트 깊이 (예를 들어 중간 지점에서) 한정되거나, 클릭 동작에 행해지는 동안 포인터에 의해 지정되는 상대 위치에서 한정될 수도 있다.
도 39는 편집 렌즈(620)를 더욱 상세히 예시한 것이다. 렌즈(620)는 추출 스택(50)에서 활용된 렌즈와 유사하게, 다수의 종래의 GUI 윈도우 제어 수단을 포함하고 있다. 예를 들어, 메뉴 바(630), 툴바(640) 및 상태 바(642)가 제공될 수도 있다. 또한 추출 스택(50)에서 사용된 렌즈와 유사하게, 편집 렌즈(620)는 (선택적인 스크롤 바(646)(648)를 포함하여) 지식의 집합체로부터의 정보가 독자에게 보여지는 패널(645)을 포함하고 있다. 그러나, 렌즈(620) 위의 패널(645)은 별도로 패널 내에 표시되는 정보가 변경되는 것을 허용한다. 이러한 것으로서, 편집 커서(625)가 사용자 입력을 렌즈 내에 받아들일 수 있도록 패널(645) 내에 예시되어 있다.
메뉴 바(630)는 (예를 들어, 많은 종래의 워드프로세서 및 에디터에서 발견되는 바와 같은) 종래의 메뉴 동작, 예를 들어 파일 동작, 문서 저작 동작, 및 도움말 동작을 포함한다. 그러나, 메뉴 바(630)는 렌즈 내에 입력된 정보가 어떻게 지식의 집합체 내에 저장되는지를 한정하는 "레벨" 및 "개념" 메뉴를 또한 포함하고 있다. "레벨" 메뉴의 드롭다운은 632로 예시되어 있고, "렌즈 레벨 설정" 선택은 634로, "레벨 편집" 선택은 635로, "현재의 레벨 선택" 선택은 636으로, 렌즈의 현재의 레벨을 변경하기 이하여 드롭다운 메뉴를 통해 선택될 수 있는 한정된 레벨의 리스트는 638로 표시되어 있다.
선택(634)은 전형적으로 렌즈(620)가 하나 이상의 추출 레벨과 관련되는 것을 허용하는 다이얼로그 박스를 개방한다. 잠재적인 항목의 리스트로부터 다수의 항목을 선택하는 공지된 여러 가지 방식이 본 발명에 따른 레벨을 선택하는데 사용될 수도 있다. 예를 들어, 종래의 리스트 박스 또는 체크 박스의 그룹이 본 발명에 따라 사용될 수도 있다. 그밖에, 선택(634)을 통해 렌즈(620)와 연합된 추출 레벨의 리스트의 변경에 의해 전형적으로 638에 표시된 리스트가 변경된다.
이러한 전형적인 실시예에 있어서, 추출 레벨은 널로 설정되거나 사전 설정된 범위 내의 하나 이상의 실수 (예를 들어, -10.00 . . . 10.00)로 설정될 수도 있는 레벨 파라미터를 포함한다. 1 보다는 적고 -1 보다는 큰 0은 널과 동일하지 않으며, 이는 다른 어떠한 수와는 비교될 수 없다. 레벨 파라미터의 사용을 통해, 지식의 집합체 내에서 한정된 여러 가지 레벨의 계층 관계가 설정될 수도 있다. 소트된 리스트, 문자와 숫자로 조합된 정보, 키, 정소 등등을 통하여 계층 관계를 설정하는 다른 시스템을 사용하여 본 발명에 따른 추출 레벨을 구분하고 구별할 수도 있다.
각각의 추출 레벨은 기본적으로 작가 및 독자에게 편리한 특징 부여 또는 설명을 포함할 수도 있다. 예를 들어, 프로 농구에 대한 지식 집합체의 작가는 레벨 -5를 "일반적인 관심을 가진 독자용"으로 레벨 0을 "조직된 스포츠에 관심을 갖는 일반인용"으로, 레벨 2를 "프로 농구의 팬용"으로, 그리고 레벨 5를 "프로 농구 사업에 종사하는 사람용"으로 그 특징을 부여할 수도 있다. 또 다른 예로서, 표 I의 지식의 집합체에 있어서, 레벨 1은 "일반적인 관심 - 기초" 레벨로 한정될 수도 있고, 레벨 2는 "일반적인 관심 - 고급" 레벨로, 레벨 3은 "과학자" 레벨로 한정될 수도 있다. 도 11의 필터 구성 다이얼로그 박스(300)의 설명과 관련하여 위에서 언급한 바와 같이, 추출 레벨의 특징 부여 또는 설명은 필터를 구성할 때 사용자에 의해 선택될 수 있는 레벨 식별자로서 사용될 수도 있다.
선택(635)은 지식의 집합체의 추출 레벨을 작가가 생성 및 변경할 수 있게 하는 다이얼로그 박스를 개방한다. 전형적으로, 추출 레벨을 추가, 편집 및 삭제하는 능력이 제공된다. 예를 들어 편집 동작은 레벨 파라미터 및/또는 그와 관련된 특성 부여 또는 설명을 변경하는 것을 포함할 수도 있다.
선택(636)은 전형적으로 지식의 집합체 내에 정보를 입력하는 현재의 레벨을 작가로 하여금 선택할 수 있도록 하는 다이얼로그 박스를 개방한다. 이와 유사한 동작이 선택적인 리스트(638)를 통해 더욱 신속히 수행될 수도 있다. 어느 경우에나, 새로운 현재의 레벨의 선택은 정보 요소가 어떻게 특정 추출 레벨과 연관되는지를 제어한다. 예를 들어, 새로운 레벨이 선택되었을 때 정보가 선택되지 않았으면, 렌즈 내에 생성된 새로운 정보 요소는 새로이 선택된 레벨에 할당될 수도 있다. 기존의 정보가 선택된 경우, 그 정보는 선택된 레벨에 할당될 수도 있다. 레벨과 정보를 연관시키는 기타의 사용자 인터페이스 메커니즘을 또한 사용할 수도 있다. 더욱이, 렌즈는 단지 한가지 추출 레벨로부터의 입력을 받아들이는 것에 제한될 수도 있다. 이 경우 선택(636) 및 리스트(638)가 생략될 수 있다.
각각의 편집 렌즈는 추출 스택(50) 내의 렌즈와 유사한 필터 구성을 또한 포함한다. 바람직한 실시예에 있어서, 편집 렌즈의 필터 구성은 항상 렌즈와 연관된 레벨의 정보를 통과시킨다. 작가의 자유 재량으로, 다른 레벨에서 정보를 또한 통과시킬 수도 있고, 필요하다면 어떠한 레벨에도 초점 효과를 적용할 수도 있다. 도 11의 다이얼로그 박스(300)와 유사한 다이얼로그 박스는 편집 렌즈의 필터 구성을 설정하는데 사용될 수도 있다. 전형적으로, 새로운 렌즈는 렌즈와 연관된 레벨만을 (초점 효과 없이) 통과시키는 필터 구성으로 한정된다.
전형적으로, 첫 번째의 새로운 렌즈가 추출 스택 내에서 개방될 때마다, 작가는 먼저 선택(635)을 통해 액세스되는 다이얼로그 박스를 사용하여 지식의 집합체의 하나 이상의 추출 레벨을 생성하게 된다. 그러나 반드시 그러한 것은 아니다. 다른 형태에서는, 사전 설정된 모드에 있을 때 바인더 밴드를 클릭 하여 추출 레벨을 생성할 수 있다. 그러한 사용자의 선택에 응답하여, 깊이 벡터를 따라 포인터의 상태 위치로 설정되거나 클릭 위치에 대해 깊이 벡터를 따라 존재하는 대향하는 인접 객체 (교차점, 렌즈, 및/또는 컴퍼스 렌즈) 사이의 중간 지점으로 설정되는 레벨 파라미터를 갖는 레벨이 생성될 수도 있다. 더욱이, 사용자가 레벨을 편집할 수 있도록 하는, 예를 들어 그 특성 부여 또는 설명을 입력할 수 있도록 하는 다이얼로그 박스를 여는 것이 바람직할 수도 있다.
추출 레벨의 생성과 관련하여, 저작 도구(90)는 새로운 추출 레벨에 대응하는 교차점을 생성하고, 이들 교차점을 표시하기 위하여 추출 스택을 리프레시 한다. 교차점은 깊이 벡터의 깊이를 따라 분산되거나, 지식의 집합체에서 한정되는 허용 가능한 레벨 범위 내에서 그 레벨 파라미터의 상대 위치에 따라 위치할 수도 있다. 널 추출 레벨에 대한 교차점은 중간 지점에 위치하거나, 깊이 벡터를 따라 배열된 임의의 지점에 위치하거나, 생략될 수도 있다. 바람직한 실시예에 있어서, 널 추출 레벨의 교차점은 다른 추출 레벨의 교차점과는 구별되는 독특한 그래픽 형태를 갖는다.
일단 지식의 집합체의 추출 레벨의 적어도 일부가 한정되면, 지식의 집합체 내의 정보 요소의 전반적인 계층 관계를 관측하는 동안 지식의 집합체가 발생될 수 있도록 각기 다른 추출 레벨과 연관된 다수의 렌즈를 개방하는 것이 바람직하다. 예를 들어, 도 38에 도시한 바와 같이 사전 설정된 모드 내에서 바인더 밴드를 클릭 함으로써 (예를 들어, 바인더 밴드(605)위에 포인터(615)를 위치시키고 마우스 버튼을 누름으로써) 별도의 렌즈의 생성이 수행될 수도 있다. 예를 들어, 도 40은 편집 렌즈(620)의 양쪽에서 바인더 밴드를 선택함으로써 생성된 두 개의 별도의 편집 렌즈(622)(624)를 보인 것이다.
전형적으로, 추출 스택 내의 인접한 교차점과 연관된 레벨은 새로운 편집 렌즈의 초기화에 영향을 미친다. 예를 들어, 오직 하나의 인접한 교차점만이 존재하는 경우, 새로운 렌즈의 초기 레벨은 다음과 같이 설정된다. 인접한 교차점의 레벨이 널인 경우, 새로운 렌즈 레벨 또한 초기에 널이 된다. 인접한 교차점의 레벨이 널이 아닌 경우에는 새로운 렌즈 레벨은 널이 아닌 레벨과 클릭 포인트를 통해 널이 아닌 교차점으로부터 연장되는 라인 세그먼트의 단부에서 컴퍼스 핸들과 연관된 레벨 범위 경계 사이의 중간 정도로 설정된다. 인접한 교차점이 두 개 존재하는 경우, 새로운 렌즈의 레벨은 다음과 같이 결정된다. 두 레벨 모두 널이 아닌 경우, 새로운 렌즈의 레벨은 인접한 레벨 사이의 중간 정도로 설정된다. 중간 지점을 이용할 수 없는 경우에는, 작가는 인접한 레벨 사이에서 선택할 것이냐는 질문을 받게 된다. 인접한 교차점의 하나는 널이 아닌 레벨을 가지고, 다른 하나는 널 레벨을 갖는 경우에, 널 레벨은 무시되고, 새로운 렌즈의 초기 레벨은 오직 하나의 인접한 교차점이 있었던 경우처럼 설정이 된다.
일단 렌즈가 위에서 설명한 바와 같이 개방되고 선택적으로 구성되면, 작가는 렌즈 내에 정보를 입력하기 시작하거나 렌즈를 닫을 수 있다. 렌즈가 닫히면, 도 8에 도시한 바와 같은 삽입 점으로서 스택 위에 표시된다.
일단 추출 레벨이 한정되고 교차점이 설정되면, 작가는 하나 이상의 렌즈를 열고 정보를 입력하기 시작할 수도 있다. 렌즈를 통한 정보의 입력은 렌즈의 현재의 추출 레벨과 연관되거나 (다중 레벨이 렌즈에 할당되는 경우), 렌즈의 단독의 추출 레벨과 연관된다 (하나의 레벨이 렌즈에 할당되는 경우). 특정 렌즈로의 정보의 입력은 추출 레벨의 독자에 적절하게 지정된다. 더욱이, 이하에서 논의되는 바와 같이, 하나 이상의 명명된 개념을 정보 요소와 결합시키는 것이 가능하다.
정보는 도 41에 예시된 정보 요소 추가 루틴(510)을 사용하여 지식의 집합체에 추가될 수도 있다. 루틴(510)은 다수의 사용자의 상호작용에 응답하여 호출될 수도 있다. 예를 들어, 새로운 정보 요소는 사용자에 의해 특별히 개방될 수도 있다. 다른 형태에서는, 새로운 정보 요소가 특정 활동에 응답하여 자동적으로 추가될 수도 있다.
또 다른 예로서, 정보 요소는 하드 복귀를 통해 분할될 수도 있으며, 이에 의해 편집 모드에서 사용자에 의해 입력 키가 눌려질 때마다 루틴(510)이 시작될 수도 있다. 그밖에, 지식의 집합체 내에 정보를 삽입 또는 붙이기 하기 위한 시도를 통해 루틴(510)이 호출되어 삽입되거나 붙여질 정보의 정보 요소를 구축한다. 다른 방식을 또한 이용할 수도 있다.
루틴(510)이 지식의 집합체 내로 입력될 필요가 있는 새로운 정보를 받아들이는 편집 렌즈에 의해 실행된다고 가정한다. 루틴(510)은 블록(512)에서 위에서 개략적으로 설명한 바와 같이 지식의 집합체 데이터 구조 내에 새로운 정보 요소를 삽입함으로써 시작된다.
그 다음에, 레벨 식별자는 블록(514)내에서 렌즈에 대해 설정되는 현재의 레벨로, 즉 단일 레벨 또는 렌즈에 대해 설정되는 레벨 세트 내의 다수의 레벨 중 하나의 레벨로 설정된다. 다수의 레벨 중 하나의 선택은 예를 들어 메뉴 선택(636) 리스트(638)를 통해 수행될 수도 있다. 다른 실시예에 있어서는, 현재의 레벨을 스위칭 하기 위하여 특정의 컨트롤 키 조합이 사용될 수도 있고, 특정 레벨의 정보를 (예를 들어, 하나의 레벨은 밑줄로 또 다른 레벨은 볼드체로) 지정하기 위하여 정보를 입력하는 동안에 특정의 포맷이 사용될 수도 있다.
자르기, 복사하기 및 붙이기 동작은 저작 도구(90)에 의해 지원되는 것이 바람직하다. 그러나, 자르기 및 복사하기는 지식의 집합체에 대해 또 다른 기본적인 동작을 수행한다. 특히, 렌즈 위에서의 자르기 동작은 정보 요소로부터 정보를 제거하며, 지식의 집합체의 데이터 구조로부터 기본적인 정보 요소를 제거하기까지 한다. 어느 경우에도, 자르기 정보의 레벨 지정은 폐기된다. 그러나, 복사하기 동작은 전형적으로 정보 요소로부터 정보를 복사하지만 정보 요소 그 자체에는 영향을 미치지 않는다. 따라서 기본적인 정보 요소의 레벨 지정은 변경되지 않는다.
일차 붙이기 동작은 클립보드 정보를 새로운 정보 요소 내에 붙이고, 편집 렌즈의 현재의 추출 레벨에 적절한 정보를 지정함으로써, 전형적으로 타깃 편집 렌즈 내에 새로운 정보 요소를 생성한다. 따라서, 루틴(510)의 블록(514)이 붙이기 동작의 레벨 지정을 개별적으로 처리할 필요는 없다. 그밖에, 새로운 정보를 기존의 정보 요소 내로 붙이기 할 수 있게 하는 이차 붙이기 동작을 포함하는 것이 바람직할 수도 있다. 이 경우에는 오직 기존의 정보 요소에 대한 변경만이 필요하며, 따라서 루틴(510)은 필요하지 않다.
저작 도구는 렌즈 사이에서 복사될 때 정보 요소를 개념 식별자와 자동적으로 결합할 수도 있다. 명명된 개념의 다중 추출을 유지하는데 필요한 기억장치를 최소화하기 위하여 종래의 버전 형성 알고리즘이 사용될 수 있다.
복사하기 및 붙이기의 다른 실시예로서, 작가는 정보를 선택하고, 그것을 명명된 개념으로서 지정할 수 있다. 선택은 여러 가지 방식으로, 예를 들어 키스트로크 조합, 특정 포맷 또는 (메뉴 바(630) 상의 "개념" 메뉴를 통한) 메뉴 선택을 사용하여 달성된다. 명명된 개념이 현재 상태로 유지되는 동안 다른 렌즈에 입력되는 정보는 동일한 개념 식별자와 통합된다. 명명된 개념이 현재 상태로 유지되는 한 정보는 또한 선택 렌즈 내에서 선택 강조될 수도 있다. 다른 렌즈에 입력되는 정보는 입력에 됨에 따라 링크 포인터 강조될 수도 있다. 명명된 개념이 현재 상태로 유지되는 한 링크 포인터 강조된 채로 유지된다. 명명된 개념은 작가가 종래의 방식으로 정보의 선택을 해제할 때까지 현재 상태대로 유지될 수도 있다.
도 41로 되돌아와서, 블록(516)에서 새로운 정보 요소 내로 붙이기 위하여 또 다른 편집 렌즈로부터 정보가 통과되었는지를 결정한다. 만일 그렇다면, 블록(518)이 호출되어 새로운 정보 요소 내에 붙여질 정보를 저장한다. 그 다음에, 블록(520)에서 정보가 특정 개념과 결합하였는지를, 즉 붙여질 정보가 명명된 개념과 결합된 정보 요소에서 나왔는지를 결정한다. 만일 그렇다면, 개념 식별자는 블록(522)에서 붙여질 정보의 개념으로 설정되고, 루틴(510)은 종료된다. 그렇지 않은 경우에는 제어가 블록(523)으로 넘어가서 정보가 잘라내어지고 복사되는 렌즈 내의 정보 요소의 일부분만을 붙여질 정보가 형성하는지를 결정한다. 만일 그렇다면, 새로운 정보 요소가 블록(524) 내에서 정보를 검색하였던 정보 요소 내로 내장된다. 그런 다음, 블록(525)은 현재의 렌즈 내의 새로운 정보 요소의 개념 식별자를 설정한다. 잘라내어지고 복사된 정보 요소의 개념은 블록(525) 내의 새로운 개념으로 설정되고, 루틴은 종료한다. 블록(523)으로 되돌아와서, 붙여질 정보가 다른 렌즈 내의 모든 정보 요소를 형성하면, 제어는 곧바로 블록(525)으로 넘어간다.
새로이 명명된 개념은 디폴트 또는 발생된 값으로 설정되거나, 널 상태로 설정될 수도 있다. 더욱이, 일부 어플리케이션의 경우, 다이얼로그 박스가 열려서 사용자로 하여금 새로이 명명된 개념을 입력하거나 이용 가능한 명명된 개념으로부터 선택할 수 있도록 한다. 그러나, 적절한 정보가 여기에 설명되는 바와 같이 링크 되는 한, 사용자가 개념의 실제 이름, 설명 또는 식별자를 알고 있는 경우에는 명명된 개념을 사용자가 선택할 필요는 없다.
블록(516)으로 되돌아와서, (만일 존재한다면) 삽입될 정보가 또 다른 렌즈로부터 나오지 않는 경우에는, 제어가 블록(526)으로 넘어가서 특정의 명명된 개념이 현재의 편집 렌즈에 대해 설정되는지를 결정한다. 만일 그렇다면, 블록(528)은 개념 식별자를 렌즈의 개념 식별자로 설정하고, 그렇지 않다면 블록(527)은 개념 식별자는 널로 설정한다. 그러나 제어는 블록(527)(528)으로부터 넘어와서 붙여질 정보를 현재의 렌즈와 결합하게 된다. 그와 같이, 동일한 정보에 대한 후속 하는 붙이기 시도는 블록(518)에서 개략적으로 설명한 명령의 순서를 통하여 또 다른 렌즈와 결합됨으로써 처리된다. 그 다음에, 루틴(510)은 종료되며, 레벨 및 개념 식별자는 시스템 내의 모든 공지된 정보에 기초하여 크게 설정된다. 개념은 렌즈에 대해 이 기술분야에서 공지된 다수의 사용자 동작으로, 예를 들어 (메뉴 바(630) 상의 "개념" 메뉴를 통한) 메뉴 또는 리스트 선택을 통해, 정보의 포인터 선택을 통해, 또는 지식의 집합체의 레벨 및 레벨 식별자를 유지하는 것과 관련하여 위에서 설명한 바와 같은 방식으로 설정될 수도 있다.
편집 렌즈 내로 입력을 받아들이는 것과 동시에, 저작 도구(90)는 그 필터 구성에 기초하여 다른 개방 렌즈의 내용을 자동적으로 갱신한다. 이것은 예를 들어 위에서 일반적으로 설명한 바와 같이 렌즈를 충전하거나 각각의 개방 편집 렌즈의 내용 루틴을 갱신하기 위하여 정보 요소를 생성 또는 변경한 후에 각각의 개방 편집 렌즈에 대해 갱신 이벤트를 발행함으로써 수행될 수도 있다.
따라서, 상기한 바와 같은 저작 도구를 사용할 때, 사용자는 하나 이상의 편집 렌즈에 동시적으로 정보를 입력함으로써 지식의 집합체 데이터 구조를 비교적 쉽게 구축할 수 있다. 더욱이, 적절한 필터 기준을 사용함으로써, 작가가 주어진 편집 렌즈에 대해 편집 가능하지 않은 요소로서 지식의 집합체로부터 표시되는 정보를 편집하는 것이 허용되지 않는 경우에도, 새로운 그리고 기존의 정보의 문맥 관계가 지식의 집합체의 생성 중에 그리고 생성 후에 시각적으로 확인할 수 있다. 예를 들어, 렌즈는 (별도의 포맷이든 유사한 포맷이든 간에) 제 1 및 제 2 레벨로부터 정보 요소를 표시할 수도 있지만, 제 1 레벨과 결합된 정보 요소에 대해서만 편집이 허용된다. 그럼에도 불구하고, 각기 다른 레벨로부터의 정보의 문맥 관계가 동시에 표시되기 때문에 저작 행위는 촉진된다.
본 발명에 따른 지식의 집합체를 생성하기 위하여 여러 가지 종래의 편집 기능, 예를 들어 정보 요소를 삭제하거나 변경하고, 요소 내의 정보를 포맷하고, 객체 (예를 들어 멀티미디어 또는 실행 가능한 객체), 파일 또는 문서 등등을 삽입하는 등의 기능이 활용될 수도 있다. 더욱이, 위에서 설명한 바와 같은 저작 도구는 지식의 집합체는 도 3에 예시한 바와 같은 데이터 구조에 직접 구축하지만, 저작 도구는 본 발명에 따라 태그로 구분된 텍스트 파일을 구축 및 조작하고 및/또는 각각의 포맷 사이의 변환을 수행할 수도 있다.
여기에서 설명된 실시예는 본 발명의 정신 및 범주를 벗어나지 않는 한 여러 가지로 변경을 할 수 있다. 따라서, 본 발명은 이하에 기재하는 청구범위에 의해서만 그 범위가 제한된다.

Claims (67)

  1. 컴퓨터 시스템 상에 정보를 표시하는 방법으로서,
    (가) 컴퓨터 표시장치 상에 제 1 윈도우를 표시하는 단계와,
    (나) 상기 컴퓨터 표시장치 상에 제 2 윈도우를 표시하는 단계와,
    (다) 상기 제 1 및 제 2 윈도우 사이에서 연장되는 커넥터 요소를 표시함으로써 상기 제 1 및 제 2 윈도를 시각적으로 링크하는 단계를 포함하는 정보 표시 방법.
  2. 제 1 항에 있어서,
    커넥터 요소는 제 1 및 제 2 윈도우 사이에서 연장되는 적어도 하는 라인 세그먼트를 포함하는 정보 표시 방법.
  3. 제 2 항에 있어서,
    제 1 및 제 2 윈도우는 네 개의 모서리를 가진 직사각형 형태로 되어 있고, 커넥터 요소는 제 1 및 제 2 윈도우의 각각의 모서리 사이에서 연장되는 다수의 라인 세그먼트를 포함하는 정보 표시 방법.
  4. 제 1 항에 있어서,
    선택된 윈도우의 위치 및 크기 중 적어도 어느 하나를 변경하기 위한 사용자 입력에 응답하여 커넥터 요소를 다시 끌어당김으로써 선택된 윈도우에 대해 커넥터 요소의 상대적인 방위를 동일하게 유지하는 단계를 더 포함하는 정보 표시 방법.
  5. 제 4 항에 있어서,
    커넥터 요소를 다시 끌어당기는 단계에서는 선택된 윈도우 상의 동일한 상대 위치에 대한 커넥터 요소의 고정 상태를 유지하는 정보 표시 방법.
  6. 제 1 항에 있어서,
    제 1 및 제 2 윈도우는 지식의 집합체로부터의 정보 요소를 표시하는 렌즈를 각각 포함하며, 지식의 집합체는 다수의 추출 레벨로 구분되고, 각각의 정보 요소는 지식의 집합체 내의 추출 레벨과 결합하며, 상기 방법은 삼차원 작업 공간 내에 추출 축선을 표시하는 단계를 더 포함하는 정보 표시 방법.
  7. 제 6 항에 있어서,
    각각의 윈도우는 적어도 하나의 추출 레벨과 결합하고, 각각의 윈도우를 표시하는 단계에서는 삼차원 작업 공간 내에서 추출 축선에 수직하게 그리고 결합된 추출 레벨에 기초하여 추출 축선을 따라 배열된 위치에 윈도우의 방위가 설정되는 정보 표시 방법.
  8. 제 7 항에 있어서,
    제 1 및 제 2 윈도우는 각각 서로 다른 추출 레벨과 결합하고, 제 1 및 제 2 윈도우를 표시하는 단계에서는 추출 축선을 따라 제 1 및 제 2 윈도우가 상호 간격을 두고 떨어져 배치되는 정보 표시 방법.
  9. 제 7 항에 있어서,
    제 1 및 제 2 윈도우는 공통의 추출 레벨과 결합하고, 제 1 및 제 2 윈도우를 표시하는 단계에서는 삼차원 작업 공간 내에서 사전 설정된 평면 내에 제 1 및 제 2 윈도우가 상호 간격을 두고 떨어져 배치되며, 사전 설정된 평면은 공통의 추출 레벨에 기초하여 추출 축을 따라 사전 설정된 위치에서 상기 추출 축과 교차하는 정보 표시 방법.
  10. 제 1 항에 있어서,
    사용자의 커넥터 요소의 선택에 응답하여 제 1 및 제 2 윈도우 중 적어도 어느 하나를 최소화하거나 원상태로 복구하는 단계를 더 포함하는 정보 표시 방법.
  11. (가) 컴퓨터 표시장치와,
    (나) 상기 컴퓨터 표시장치에 결합되어, 상기 컴퓨터 표시장치 상에서 제 1 및 제 2 윈도우를 표시하고, 상기 제 1 및 제 2 윈도우 사이에서 연장되는 커넥터 요소를 표시함으로써 상기 제 1 및 제 2 윈도를 시각적으로 링크 하는 프로세서를 포함하는 컴퓨터 시스템.
  12. (가) (1) 컴퓨터 표시장치 상에 제 1 윈도우를 표시하는 단계와,
    (2) 상기 컴퓨터 표시장치 상에 제 2 윈도우를 표시하는 단계와,
    (3) 상기 제 1 및 제 2 윈도우 사이에서 연장되는 커넥터 요소를 표시함으로써 상기 제 1 및 제 2 윈도를 시각적으로 링크 하는 단계로 구성되어 컴퓨터 시스템 상에 정보를 표시하는 방법을 수행할 수 있도록 구성된 프로그램과,
    (나) 상기 프로그램이 수록되는 신호 수록 매체를 포함하는 프로그램 제품.
  13. 제 12 항에 있어서,
    신호 수록 매체는 전송형 매체를 포함하는 프로그램 제품.
  14. 제 12 항에 있어서,
    신호 수록 매체는 기록 가능한 매체를 포함하는 프로그램 제품.
  15. 다수의 정보 요소를 포함하는 정보를 컴퓨터 시스템 상에 표시하는 방법으로서,
    (가) 다수의 정보 요소에 제 1 필터 기준을 적용하여 제 1 세트의 필터링 된 정보 요소를 발생시키는 단계와,
    (나) 다수의 정보 요소에 제 2 필터 기준을 적용하여 제 2 세트의 필터링 된 정보 요소를 발생시키는 단계와,
    (다) 제 1 및 제 2 세트의 필터링 된 정보 요소의 적어도 일부를 컴퓨터 표시장치 상에 동시에 표시하는 단계를 포함하는 정보 표시 방법.
  16. 제 15 항에 있어서,
    다수의 정보 요소가 지식의 집합체로 나타내는 정보 표시 방법.
  17. 제 16 항에 있어서,
    지식의 집합체는 다수의 추출 레벨로 구분되고, 다수의 정보 요소의 적어도 일부는 적어도 하나의 추출 레벨과 결합되는 정보 표시 방법.
  18. 제 17 항에 있어서,
    제 1 필터 기준은 적어도 하나의 사전 설정된 추출 레벨로부터 정보 요소를 필터링 하는 정보 표시 방법.
  19. 제 17 항에 있어서,
    제 1 필터 기준은 적어도 하나의 사전 설정된 추출 레벨과 결합된 정보 요소에 초점 효과를 적용하는 정보 표시 방법.
  20. 제 19 항에 있어서,
    초점 효과는 정보 요소에 사전 설정된 폰트 타입, 폰트 크기, 폰트 속성, 색상, 패턴, 음영, 여백, 및 그 조합을 적용하는 것 중에서 선택되는 정보 표시 방법.
  21. 제 19 항에 있어서,
    초점 효과는 정보 요소에 내용이 불분명한 효과를 적용하는 것을 포함하며, 내용이 불분명한 효과는 정보의 내용 중 적어도 일부분이 흐린 상태로 정보 요소의 시각적 형태를 제공하는 정보 표시 방법.
  22. 제 16 항에 있어서,
    지식의 집합체는 적어도 하나의 명명한 개념을 포함하며, 다수의 정보 요소 중 적어도 일부는 명명된 개념과 결합된 정보 표시 방법.
  23. 제 22 항에 있어서,
    동시에 표시하는 단계에서는 제 1 및 제 2 세트의 필터링 된 정보 요소로부터 각각 제 1 및 제 2 정보 요소가 동시에 표시되며, 제 1 및 제 2 정보 요소는 명명된 개념과 각각 결합되며, 상기 방법은 제 1 정보 요소의 선택에 응답하여 제 2 정보 요소를 강조하는 단계를 더 포함하는 정보 표시 방법.
  24. 제 23 항에 있어서,
    제 2 정보 요소를 강조하는 것은 제 1 정보 요소 위에 배치된 사용자 작동 포인터에 응답하여 수행되는 정보 표시 방법.
  25. 제 16 항에 있어서,
    제 1 및 제 2 윈도우를 지식의 집합체 내의 사전 설정된 위치와 결합된 렌즈 세트를 한정하고, 각각의 윈도우는 지식의 집합체 내에서 시작 및 종료 위치와 결합하며, 상기 방법은 렌즈 세트의 사전 설정된 위치의 변경에 응답하여 윈도우의 시작 위치 및 종료 위치 사이에서 렌즈 세트의 사전 설정된 위치를 설정하기 위하여 각각의 윈도우의 표시된 부분을 갱신하는 단계를 더 포함하는 정보 표시 방법.
  26. 제 15 항에 있어서,
    제 1 및 제 2 세트의 필터링 된 정보 요소는 각각 공통 정보 요소를 포함하며, 동시에 표시하는 단계에서는 제 1 및 제 2 형태로 공통 정보 요소가 동시에 표시되며, 상기 방법은 제 1 형태의 선택에 응답하여 공통 정보 요소의 제 2 형태를 강조하는 단계를 더 포함하는 정보 표시 방법.
  27. 제 26 항에 있어서,
    공통 정보 요소의 제 2 형태를 강조하는 것은 공통 정보 요소의 제 1 형태 위에 배치된 사용자 동작 포인터에 응답하여 수행되는 정보 표시 방법.
  28. 제 15 항에 있어서,
    제 1 필터 기준은 변경 없이 모든 정보 요소를 통과시키며, 제 2 필터 기준은 적어도 하나의 정보 요소의 표시 특성을 필터링 하거나 변경하는 정보 표시 방법.
  29. 제 15 항에 있어서,
    동시에 표시하는 단계에서는 컴퓨터 표시장치 상의 제 1 및 제 2 윈도우 내에서 제 1 및 제 2 세트의 필터링 된 정보 요소의 일부가 표시되는 정보 표시 방법.
  30. 제 29 항에 있어서,
    제 1 및 제 2 윈도우 사이에서 연장되는 커넥터 요소를 표시하는 단계를 더 포함하며, 커넥터 요소는 제 1 및 제 2 표시 요소의 대응하는 모서리 사이에서 연장되는 다수의 라인 세그먼트를 포함하는 정보 표시 방법.
  31. 제 29 항에 있어서,
    다수의 정보 요소는 다수의 추출 레벨로 구분되는 지식의 집합체는 나타내고, 다수의 정보 요소의 적어도 일부는 적어도 하나의 추출 레벨과 결합하며, 상기 방법은 삼차원 작업 공간 내에서 추출 축선을 표시하는 단계와, 삼차원 작업 공간 내의 추출 축선에 수직하게 그리고 그와 결합된 추출 레벨에 기초하여 추출 축선을 따라 제 1 및 제 2 위치에서 제 1 및 제 2 윈도우의 방위를 설정하는 단계를 더 포함하는 정보 표시 방법.
  32. 제 29 항에 있어서,
    제 1 윈도우를 스크롤 하여 제 1 세트의 필터링 된 정보 요소의 표시된 부분을 선택적으로 변경하는 단계를 더 포함하는 정보 표시 방법.
  33. 제 32 항에 있어서,
    제 1세트의 필터링 된 정보 요소의 표시된 부분에 응답하여 제 2 세트의 필터링 된 정보 요소의 표시된 부분을 조정하는 단계를 더 포함하는 정보 표시 방법.
  34. 제 15 항에 있어서,
    각각의 정보 요소는 문자와 숫자가 조합된 데이터, 이미지 데이터, 멀티미디어 데이터 및 그 조합으로 이루어진 그룹에서 선택된 데이터를 포함하는 정보 표시 방법.
  35. (가) 컴퓨터 표시장치와,
    (나) 상기 컴퓨터 표시장치에 결합되며, 다수의 정보 요소에 제 1 필터 기준을 적용하여 제 1 세트의 필터링 된 정보 요소를 발생시키고, 다수의 정보 요소에 제 2 필터 기준을 적용하여 제 2 세트의 필터링 된 정보 요소를 발생시키고, 제 1 및 제 2 세트의 필터링된 정보 요소의 적어도 일부를 상기 컴퓨터 표시장치 상에 동시에 표시하는 프로세서를 포함하는 컴퓨터 시스템.
  36. (가) 다수의 정보 요소를 포함하는 정보를 컴퓨터 시스템 상에 표시하기 위하여
    (1) 상기 다수의 정보 요소에 제 1 필터 기준을 적용하여 제 1 세트의 필터링 된 정보 요소를 발생시키고,
    (2) 상기 다수의 정보 요소에 제 2 필터 기준을 적용하여 제 2 세트의 필터링 된 정보 요소를 발생시키고,
    (3) 상기 제 1 및 제 2 세트의 필터링 된 정보 요소의 적어도 일부를 컴퓨터 표시장치 상에 동시에 표시하는 단계로 이루어진 방법을 수행하는 프로그램과,
    (나) 상기 프로그램이 수록되는 신호 수록 매체를 포함하는 프로그램 제품.
  37. 제 36 항에 있어서,
    신호 수록 매체는 전송형 매체인 프로그램 제품.
  38. 제 36 항에 있어서,
    신호 수록 매체는 기록 가능한 매체인 프로그램 제품.
  39. 정보를 컴퓨터 시스템 상에 표시하는 방법으로서,
    (가) 컴퓨터 표시장치 상에 정보 요소를 표시하는 단계와,
    (나) 정보 요소에 필터 기준을 적용하여 필터링 된 정보 요소를 발생시키는 단계와,
    (다) 상기 컴퓨터 표시장치 상에 정보 요소를 표시함과 동시에 필터링 된 정보 요소를 상기 컴퓨터 표시장치 상에 표시하는 단계를 포함하는 정보 표시 방법.
  40. 제 39 항에 있어서,
    정보 요소는 지식의 집합체로 나타내어지는 다수의 정보 요소 중 하나의 정보 요소이며, 지식의 집합체는 다수의 추출 레벨로 구분되고, 정보 요소는 적어도 하나의 추출 레벨과 결합되는 정보 표시 방법.
  41. 제 39 항에 있어서,
    정보 요소의 선택에 응답하여 필터링 된 정보 요소를 강조하는 단계를 더 포함하는 정보 표시 방법.
  42. 제 41 항에 있어서,
    필터링 된 정보 요소를 강조하는 것은 정보 요소 위에 배치된 사용자 작동 포인터에 응답하여 수행되는 정보 표시 방법.
  43. 제 39 항에 있어서,
    필터 기준은 정보 요소에 초점 효과를 적용하는 정보 표시 방법.
  44. 제 43 항에 있어서,
    초점 효과는 정보 요소에 사전 설정된 폰트 타입, 폰트 크기, 폰트 속성, 색상, 패턴, 음영, 여백, 및 그 조합을 적용하는 것 중에서 선택되는 정보 표시 방법.
  45. 제 43 항에 있어서,
    초점 효과는 정보 요소에 내용이 불분명한 효과를 적용하는 것을 포함하며, 내용이 불분명한 효과는 정보의 내용 중 적어도 일부분이 흐린 상태로 정보 요소의 시각적 형태를 제공하는 정보 표시 방법.
  46. 제 39 항에 있어서,
    동시에 표시하는 단계에서는 컴퓨터 표시장치 상의 제 1 및 제 2 윈도우 내에서 정보 요소 및 필터링 된 정보 요소가 각각 표시되는 정보 표시 방법.
  47. 제 46 항에 있어서,
    제 1 및 제 2 윈도우 사이에서 연장되는 커넥터 요소를 표시하는 단계를 또한 포함하며, 커넥터 요소는 제 1 및 제 2 표시 요소의 대응하는 모서리 사이에서 연장되는 다수의 라인 세그먼트를 포함하는 정보 표시 방법.
  48. 제 39 항에 있어서,
    정보 요소는 문자와 숫자가 조합된 데이터, 이미지 데이터, 멀티미디어 데이터 및 그 조합으로 이루어진 그룹에서 선택된 데이터를 포함하는 정보 표시 방법.
  49. 지식의 집합체를 형성하는 다수의 정보 요소를 포함하는 정보를 컴퓨터 시스템에 표시하는 방법으로서,
    (가) 상기 다수의 정보 요소에 제 1 필터 기준을 적용하여 제 1 세트의 필터링 된 정보 요소를 발생시키는 단계와,
    (나) 상기 다수의 정보 요소에 제 2 필터 기준을 적용하여 제 2 세트의 필터링 된 정보 요소를 발생시키는 단계와,
    (다) 상기 제 1 및 제 2 세트의 필터링 된 정보 요소의 적어도 일부를 컴퓨터 표시장치 상에 동시에 표시하는 단계와,
    (라) 제 1 및 제 2 윈도우 내에서 상기 제 1 및 제 2 세트의 필터링 된 정보 요소 각각의 표시된 부분을 제어하여 각각의 윈도우 내에서 지식의 집합체 내의 사전 설정된 위치를 표시하는 단계와,
    (마) 사전 설정된 위치의 변경에 응답하여, 각 세트의 필터링 된 정보 요소의 표시된 부분을 갱신함으로써 사전 설정된 위치를 추적하는 단계를 포함하는 정보 표시 방법.
  50. 제 49 항에 있어서,
    표시된 부분을 갱신하는 것은 제 1 및 제 2 윈도우 중 어느 하나에 의해 받아들여진 스크롤 동작에 응답하여 수행되는 정보 표시 방법.
  51. 제 50 항에 있어서,
    스트롤 동작은 단위 증분, 단위 감분, 블록 증분, 블록 감분, 및 슬라이더 끌기로 이루어진 그룹에서 선택되는 정보 표시 방법.
  52. 제 49 항에 있어서,
    각각의 윈도우는 지식의 집합체 내의 시작 및 종료 위치에 결합되며, 표시된 부분을 갱신하는 단계에서는, 각각의 윈도우에 대하여 그리고 스크롤 동작에 응답하여
    (가) 윈도우 내에 표시되는 각각의 데이터 라인에 대해 지식의 집합체 카운트를 유지하고,
    (나) 윈도우의 시작 및 종료 위치 중 인접한 위치의 지식의 집합체로부터 새로운 데이터 라인을 검색하고,
    (다) 새로운 데이터 라인에 대한 지식의 집합체 카운트만큼 윈도우의 시작 및 종료 위치 중 어느 하나를 조정하는 것을 포함하여, 새로운 데이터 라인은 윈도우의 한쪽에 입력하고,
    (라) 기존의 데이터 라인에 지식의 집합체 카운트만큼 윈도우의 시작 및 종료 위치 중 다른 하나의 위치를 조정함으로써 윈도우의 반대쪽으로부터 기존의 데이터 라인을 폐기하는 정보 표시 방법.
  53. 제 52 항에 있어서,
    새로운 데이터 라인을 검색하는 단계에서는
    (가) 윈도우의 시작 및 종료 위치 중 어느 하나에 인접한 지식의 집합체로부터 데이터의 세그먼트를 연속적으로 검색하고,
    (나) 각각의 데이터의 세그먼트에 필터 기준을 적용하여 각각의 데이터의 세그먼트의 필터링 된 상태를 한정하며,
    (다) 새로운 데이터 라인으로 채워질 때까지 각각의 필터링 되지 않은 데이터의 세그먼트로부터 새로운 데이터 라인을 구축하며,
    (라) 시작 및 종료 위치 중 어느 하나는 조정하는 단계에서는 데이터의 세그먼트의 필터링 된 상태와는 상관없이 새로운 데이터 라인의 검색 중에 검색된 데이터의 각각의 세그먼트의 세그먼트 크기만큼 시작 및 종료 위치 중 어느 하나가 조정되고,
    (마) 각각의 데이터 라인에 대한 지식의 집합체 카운트를 유지하는 단계에서는 각각의 데이터의 세그먼트의 필터링 된 상태와는 상관없이 새로운 데이터 라인의 검색 중에 검색된 데이터의 세그먼트의 크기가 합산되는 정보 표시 방법.
  54. 컴퓨터 시스템 상에 정보를 표시하는 방법으로서,
    (가) 지식의 집합체 내의 공통 개념과 결합된 제 1 및 제 2 표시 요소 형태를 컴퓨터 표시장치 상에 동시에 표시하는 단계와,
    (나) 제 1 표시 요소 형태의 선택에 응답하여 컴퓨터 표시장치 상에 제 2 정보 요소 형태를 강조하는 단계로 구성된 정보 표시 방법.
  55. 제 54 항에 있어서,
    제 2 정보 요소 형태를 강조하는 것은 제 1 정보 요소 형태 위에 배치된 사용자 작동 포인터에 응답하여 수행되는 정보 표시 방법.
  56. 제 54 항에 있어서,
    지식의 집합체는 다수의 추출 레벨로 구분되고, 지식의 집합체는 다수의 정보 요소를 포함하며, 다수의 정보 요소의 적어도 일부는 적어도 하나의 추출 레벨과 결합되는 정보 표시 방법.
  57. 제 56 항에 있어서,
    제 1 및 제 2 정보 요소 형태는 다수의 정보 요소로부터의 공통 정보 요소와 결합되는 정보 표시 방법.
  58. 제 56 항에 있어서,
    제 1 및 제 2 정보 요소 형태는 각각 다수의 정보 요소로부터의 제 1 및 제 2 정보 요소와 결합되며, 제 1 및 제 2 정보 요소는 지식의 집합체 내의 공통 개념과 결합되는 정보 표시 방법.
  59. 제 58 항에 있어서,
    제 3 정보 요소 형태는 지식의 집합체 내의 공통 개념에 결합된 제 1 정보 요소와 결합되며, 상기 방법은 제 1 정보 요소 형태의 선택에 응답하여 컴퓨터 표시장치 상에 제 3 정보 요소 형태를 강조하는 단계를 더 포함하는 정보 표시 방법.
  60. 제 56 항에 있어서,
    동시에 표시하는 단계에서는 제 1 및 제 2 윈도우 내의 제 1 및 제 2 정보 요소 형태가 각각 컴퓨터 표시장치 상에 표시되는 정보 표시 방법.
  61. 제 60 항에 있어서,
    제 1 및 제 2 윈도우 사이에서 연장되는 커넥터 요소를 표시하는 단계를 또한 포함하며, 커넥터 요소는 제 1 및 제 2 표시 요소의 대응하는 모서리 사이에서 연장되는 다수의 라인 세그먼트를 포함하는 정보 표시 방법.
  62. 제 60 항에 있어서,
    삼차원 작업 공간 내에서 추출 축선을 표시하는 단계와, 삼차원 작업 공간 내의 추출 축선에 수직하게 그리고 그와 결합된 추출 레벨에 기초하여 추출 축선을 따라 제 1 및 제 2 위치에서 제 1 및 제 2 윈도우의 방위를 설정하는 단계를 더 포함하는 정보 표시 방법.
  63. 제 54 항에 있어서,
    제 2 정보 요소 형태를 강조하는 단계에서는 제 2 정보 요소 형태에 효과가 적용되며, 그 효과는 제 2 정보 요소 형태에 사전 설정된 폰트 타입, 폰트 크기, 폰트 속성, 색상, 패턴, 음영, 및 그 조합을 적용하는 것 중에서 선택되는 정보 표시 방법.
  64. (가) 컴퓨터 표시장치와,
    (나) 상기 컴퓨터 표시장치에 결합되어, 상기 컴퓨터 표시장치 상에서 지식의 집합체 내의 공통 개념과 결합된 제 1 및 제 2 정보 요소 형태를 동시에 표시하고, 제 1 정보 요소 형태의 선택에 응답하여 상기 컴퓨터 표시장치 상에서 제 2 정보 요소 형태를 강조하는 프로세서를 포함하는 컴퓨터 시스템.
  65. (가) 컴퓨터 시스템 상에 정보를 표시하기 위하여
    (1) 컴퓨터 표시장치 상에서 지식의 집합체 내의 공통 개념과 결합된 제 1 및 제 2 정보 요소 형태를 동시에 표시하는 단계와,
    (2) 제 1 정보 요소 형태의 선택에 응답하여 컴퓨터 표시장치 상에서 제 2 정보 요소 형태를 강조하는 단계로 이루어진 방법을 수행하는 프로그램과,
    (나) 상기 프로그램이 수록되는 신호 수록 매체를 포함하는 프로그램 제품.
  66. 제 65 항에 있어서,
    신호 수록 매체는 전송형 매체인 프로그램 제품.
  67. 제 65 항에 있어서,
    신호 수록 매체는 기록 가능한 매체인 프로그램 제품.
KR10-2000-7008349A 1998-02-09 1998-06-09 컴퓨터 시스템, 컴퓨터 시스템 상에서의 정보 표시 방법, 기록 매체, 및 장치 KR100388401B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/020,534 1998-02-09
US09/020,534 US6304259B1 (en) 1998-02-09 1998-02-09 Computer system, method and user interface components for abstracting and accessing a body of knowledge

Publications (2)

Publication Number Publication Date
KR20010040493A true KR20010040493A (ko) 2001-05-15
KR100388401B1 KR100388401B1 (ko) 2003-06-25

Family

ID=21799134

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7008349A KR100388401B1 (ko) 1998-02-09 1998-06-09 컴퓨터 시스템, 컴퓨터 시스템 상에서의 정보 표시 방법, 기록 매체, 및 장치

Country Status (6)

Country Link
US (1) US6304259B1 (ko)
JP (1) JP2002502999A (ko)
KR (1) KR100388401B1 (ko)
CA (1) CA2308749A1 (ko)
TW (1) TW455802B (ko)
WO (1) WO1999040505A1 (ko)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968340B1 (en) * 1998-06-26 2005-11-22 International Business Machines Corporation Technique for navigating components of a model having complex relationships
US6573906B1 (en) * 1999-04-26 2003-06-03 International Business Machines Corporation Method and system for delivering integrated user assistance information and traditional help from the same source
US6711585B1 (en) 1999-06-15 2004-03-23 Kanisa Inc. System and method for implementing a knowledge management system
DE19934506A1 (de) * 1999-07-22 2001-01-25 Siemens Ag Verfahren und Terminal zur Anzeige von Informationen auf einem Bildschirm
EP1275042A2 (en) * 2000-03-06 2003-01-15 Kanisa Inc. A system and method for providing an intelligent multi-step dialog with a user
US6556227B1 (en) * 2000-03-16 2003-04-29 Autodesk, Inc. Visualization techniques for constructive systems in a computer-implemented graphics system
US20070226640A1 (en) * 2000-11-15 2007-09-27 Holbrook David M Apparatus and methods for organizing and/or presenting data
WO2002041190A2 (en) * 2000-11-15 2002-05-23 Holbrook David M Apparatus and method for organizing and/or presenting data
US6694307B2 (en) * 2001-03-07 2004-02-17 Netvention System for collecting specific information from several sources of unstructured digitized data
US7120646B2 (en) * 2001-04-09 2006-10-10 Health Language, Inc. Method and system for interfacing with a multi-level data structure
CN100557595C (zh) * 2001-11-01 2009-11-04 弗里塞恩公司 用于验证远程数据库的方法和系统
US20040205498A1 (en) * 2001-11-27 2004-10-14 Miller John David Displaying electronic content
US7412463B2 (en) * 2002-01-11 2008-08-12 Bloomberg Finance L.P. Dynamic legal database providing historical and current versions of bodies of law
US20040205660A1 (en) * 2002-04-23 2004-10-14 Joe Acton System and method for generating and displaying attribute-enhanced documents
WO2003091848A2 (en) * 2002-04-23 2003-11-06 Joe Acton System and method for generating and displaying attribute-enhanced documents
US20040125143A1 (en) * 2002-07-22 2004-07-01 Kenneth Deaton Display system and method for displaying a multi-dimensional file visualizer and chooser
US20040093564A1 (en) * 2002-11-07 2004-05-13 International Business Machines Corporation Method and apparatus for visualizing changes in data
US8660972B1 (en) 2002-11-11 2014-02-25 Zxibix, Inc. System and method to provide a customized problem solving environment for the development of user thinking about an arbitrary problem
US7203667B2 (en) 2002-11-11 2007-04-10 Zxibix, Inc. System and method of facilitating and evaluating user thinking about an arbitrary problem using an archetype process
US7730009B1 (en) 2002-11-11 2010-06-01 Zxibix, Inc. System and methods for archetype enabled research and search
US7685085B2 (en) 2003-11-10 2010-03-23 James Ralph Heidenreich System and method to facilitate user thinking about an arbitrary problem with output and interfaces to external systems, components and resources
US7720780B1 (en) 2003-11-10 2010-05-18 Zxibix, Inc. System and method for facilitating collaboration and related multiple user thinking and cooperation regarding an arbitrary problem
US10395173B1 (en) 2002-11-11 2019-08-27 Zxibix, Inc. System and methods for exemplary problem solving, thinking and learning using an exemplary archetype process and enhanced hybrid forms
US7949617B1 (en) 2002-11-11 2011-05-24 Linda Shawn Higgins System and methods for facilitating user thinking and learning utilizing enhanced interactive constructs
JP4412701B2 (ja) * 2003-01-24 2010-02-10 日本電気株式会社 画面情報表示方法、システム及びコンピュータプログラム
US20040221232A1 (en) * 2003-04-30 2004-11-04 International Business Machines Corporation Method for readily storing and accessing information in electronic documents
US7713116B2 (en) * 2003-06-30 2010-05-11 Microsoft Corporation Inventory management of virtual items in computer games
US7517282B1 (en) 2003-08-04 2009-04-14 Microsoft Corporation Methods and systems for monitoring a game to determine a player-exploitable game condition
US7178109B2 (en) * 2003-08-12 2007-02-13 Chordiant Software, Inc. Process/viewer interface
US7469385B2 (en) * 2004-02-20 2008-12-23 Microsoft Corporation Methods and systems for abstraction of logical editing operations
US7293034B2 (en) * 2004-02-23 2007-11-06 Microsoft Coporation Dynamically customizing a user interface for the aggregation of content
US7624123B2 (en) * 2004-02-26 2009-11-24 Ati Technologies, Inc. Image processing system and method
US20050210416A1 (en) * 2004-03-16 2005-09-22 Maclaurin Matthew B Interactive preview of group contents via axial controller
US7587414B2 (en) * 2004-05-11 2009-09-08 Sap Ag Componentized content delivery
US20070234232A1 (en) * 2006-03-29 2007-10-04 Gheorghe Adrian Citu Dynamic image display
US7685298B2 (en) 2005-12-02 2010-03-23 Citrix Systems, Inc. Systems and methods for providing authentication credentials across application environments
US8140997B2 (en) * 2005-12-26 2012-03-20 International Business Machines Corporation Manipulating display of multiple display objects
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US8396736B2 (en) * 2006-04-21 2013-03-12 Process Assets, Llc Systems and methods for providing documentation having succinct communication with scalability
US7974964B2 (en) * 2007-01-17 2011-07-05 Microsoft Corporation Context based search and document retrieval
US9069576B2 (en) * 2007-02-13 2015-06-30 Michael G. Buchanan Nestable system and method for accessing, organizing, and interacting with visual representations of data
EP2031819A1 (en) 2007-09-03 2009-03-04 British Telecommunications Public Limited Company Distributed system
US8645871B2 (en) 2008-11-21 2014-02-04 Microsoft Corporation Tiltable user interface
US8977645B2 (en) 2009-01-16 2015-03-10 Google Inc. Accessing a search interface in a structured presentation
US8412749B2 (en) 2009-01-16 2013-04-02 Google Inc. Populating a structured presentation with new values
US8452791B2 (en) 2009-01-16 2013-05-28 Google Inc. Adding new instances to a structured presentation
US8615707B2 (en) 2009-01-16 2013-12-24 Google Inc. Adding new attributes to a structured presentation
US8843435B1 (en) 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US8468492B1 (en) 2009-03-30 2013-06-18 Pegasystems, Inc. System and method for creation and modification of software applications
JP5635247B2 (ja) * 2009-08-20 2014-12-03 富士通株式会社 マルチチップモジュール
US8161417B1 (en) * 2009-11-04 2012-04-17 Sprint Communications Company L.P. Enhancing usability of a moving touch screen
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
US9729831B2 (en) * 2012-11-29 2017-08-08 Sony Corporation Wireless surgical loupe
US11016728B2 (en) * 2014-07-09 2021-05-25 International Business Machines Corporation Enhancing presentation content delivery associated with a presentation event
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
WO2018101694A1 (en) 2016-11-29 2018-06-07 Samsung Electronics Co., Ltd. Electronic apparatus and method for summarizing content
JP7125070B2 (ja) * 2018-03-02 2022-08-24 ダイナガ株式会社 木製建物用パッキン装置
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4663616A (en) 1985-06-25 1987-05-05 International Business Machines Corp. Attachment of lines to objects in interactive draw graphics
US4860218A (en) * 1985-09-18 1989-08-22 Michael Sleator Display with windowing capability by addressing
US4868765A (en) * 1986-01-02 1989-09-19 Texas Instruments Incorporated Porthole window system for computer displays
US5610828A (en) 1986-04-14 1997-03-11 National Instruments Corporation Graphical system for modelling a process and associated method
US4964077A (en) 1987-10-06 1990-10-16 International Business Machines Corporation Method for automatically adjusting help information displayed in an online interactive system
US5122972A (en) 1988-07-20 1992-06-16 International Business Machines Corporation Help provision in a data processing system
US5434963A (en) 1988-09-03 1995-07-18 Hitachi, Ltd. Method and system of help-information control method and system
US5255356A (en) * 1989-05-31 1993-10-19 Microsoft Corporation Method for hiding and showing spreadsheet cells
JPH0756628B2 (ja) 1990-10-22 1995-06-14 富士ゼロックス株式会社 グラフィカル・ユーザインターフェースの編集装置
US5297249A (en) * 1990-10-31 1994-03-22 International Business Machines Corporation Hypermedia link marker abstract and search services
GB9024526D0 (en) * 1990-11-12 1991-01-02 Eden Group Ltd Electronic display apparatus
US5301301A (en) * 1991-01-30 1994-04-05 National Instruments Corporation Polymorphic dataflow block diagram system and method for programming a computer
US5528744A (en) * 1991-04-02 1996-06-18 International Business Machines Corporation Data processing system
US5416903A (en) 1991-08-19 1995-05-16 International Business Machines Corporation System and method for supporting multilingual translations of a windowed user interface
US5186629A (en) 1991-08-22 1993-02-16 International Business Machines Corporation Virtual graphics display capable of presenting icons and windows to the blind computer user and method
FR2684779B1 (fr) * 1991-12-06 1996-12-13 Bull Sa Procede et outil de modelisation conceptuelle d'expertise sur un systeme informatique.
WO1993015455A1 (en) 1992-01-24 1993-08-05 Interactive Media Corporation System for performing function on second portal upon activation of related first portal
JPH06176081A (ja) 1992-12-02 1994-06-24 Hitachi Ltd 階層構造ブラウジング方法およびその装置
JPH06337896A (ja) * 1993-03-31 1994-12-06 Matsushita Electric Ind Co Ltd 電子書籍表示検索装置及び電子書籍表示検索方法
US5506937A (en) 1993-04-02 1996-04-09 University Of West Florida Concept mapbased multimedia computer system for facilitating user understanding of a domain of knowledge
CA2124624C (en) * 1993-07-21 1999-07-13 Eric A. Bier User interface having click-through tools that can be composed with other tools
US5613134A (en) * 1993-09-17 1997-03-18 Digital Equipment Corporation Document display system using documents having ephemeral attributes for sharing information regarding the location of the display of each document on multiple display devices
US5499330A (en) 1993-09-17 1996-03-12 Digital Equipment Corp. Document display system for organizing and displaying documents as screen objects organized along strand paths
US6012072A (en) * 1993-09-17 2000-01-04 Digital Equipment Corporation Display apparatus for the display of documents in a three-dimensional workspace
US5361361A (en) 1993-09-30 1994-11-01 Intel Corporation Hierarchical integrated help utility for a computer system
US5513126A (en) * 1993-10-04 1996-04-30 Xerox Corporation Network having selectively accessible recipient prioritized communication channel profiles
US5796402A (en) 1993-12-03 1998-08-18 Microsoft Corporation Method and system for aligning windows on a computer screen
US5461399A (en) 1993-12-23 1995-10-24 International Business Machines Method and system for enabling visually impaired computer users to graphically select displayed objects
US5615326A (en) 1993-12-30 1997-03-25 Taligent, Inc. Object-oriented viewing framework having view grouping
US5465362A (en) * 1993-12-30 1995-11-07 Taligent, Inc. Object-oriented view-system for displaying information in a windowing environment
US5715416A (en) * 1994-09-30 1998-02-03 Baker; Michelle User definable pictorial interface for a accessing information in an electronic file system
US5694561A (en) 1994-12-12 1997-12-02 Microsoft Corporation Method and system for grouping and manipulating windows
US5819055A (en) 1994-12-13 1998-10-06 Microsoft Corporation Method and apparatus for docking re-sizeable interface boxes
US5812804A (en) 1994-12-16 1998-09-22 International Business Machines Corporation Display apparatus for tossing windows
US5900876A (en) * 1995-04-14 1999-05-04 Canon Kabushiki Kaisha Information processing apparatus and method with display book page turning
US5894311A (en) * 1995-08-08 1999-04-13 Jerry Jackson Associates Ltd. Computer-based visual data evaluation
US5856826A (en) 1995-10-06 1999-01-05 Apple Computer, Inc. Method and apparatus for organizing window groups and windows in a table
US5874964A (en) 1995-10-19 1999-02-23 Ungermann-Bass, Inc. Method for modeling assignment of multiple memberships in multiple groups
US5835088A (en) 1995-12-12 1998-11-10 International Business Machines Corporation Method and apparatus for providing programmable window-to-window focus change within a data processing system using a graphical user interface
GB2310988B (en) 1996-03-08 2000-11-08 Ibm Graphical user interface
GB2310989B (en) 1996-03-08 2001-02-28 Ibm Graphical user interface
US5802514A (en) * 1996-04-09 1998-09-01 Vision Software Tools, Inc. Automated client/server development tool using drag-and-drop metaphor
US5880733A (en) * 1996-04-30 1999-03-09 Microsoft Corporation Display system and method for displaying windows of an operating system to provide a three-dimensional workspace for a computer system
US5771042A (en) 1996-07-17 1998-06-23 International Business Machines Corporation Multi-size control for multiple adjacent workspaces
US5751283A (en) 1996-07-17 1998-05-12 Microsoft Corporation Resizing a window and an object on a display screen
US5808610A (en) 1996-08-28 1998-09-15 Macromedia, Inc. Method and system of docking panels
US5760772A (en) 1996-08-30 1998-06-02 Novell, Inc. Method for automatically resizing a child window
US6031989A (en) * 1997-02-27 2000-02-29 Microsoft Corporation Method of formatting and displaying nested documents
US5937400A (en) 1997-03-19 1999-08-10 Au; Lawrence Method to quantify abstraction within semantic networks
US5912668A (en) * 1997-05-30 1999-06-15 Sony Corporation Controlling a screen display of a group of images represented by a graphical object

Also Published As

Publication number Publication date
TW455802B (en) 2001-09-21
JP2002502999A (ja) 2002-01-29
WO1999040505A1 (en) 1999-08-12
CA2308749A1 (en) 1999-08-12
US6304259B1 (en) 2001-10-16
KR100388401B1 (ko) 2003-06-25

Similar Documents

Publication Publication Date Title
KR100388401B1 (ko) 컴퓨터 시스템, 컴퓨터 시스템 상에서의 정보 표시 방법, 기록 매체, 및 장치
US6874123B1 (en) Three-dimensional model to facilitate user comprehension and management of information
JP3478725B2 (ja) 文書情報管理システム
US6330007B1 (en) Graphical user interface (GUI) prototyping and specification tool
JP3941292B2 (ja) ページ情報表示方法及び装置並びにページ情報表示用のプログラム又はデータを記憶した記憶媒体
US6928609B2 (en) Hypermedia authoring and publishing system
US7257774B2 (en) Systems and methods for filtering and/or viewing collaborative indexes of recorded media
US6523048B2 (en) Computer system and method for abstracting and accessing a chronologically-arranged collection of information
Phillips MediaView: a general multimedia digital publication system
US20020116421A1 (en) Method and system for page-like display, formating and processing of computer generated information on networked computers
US20040139400A1 (en) Method and apparatus for displaying and viewing information
US20040263475A1 (en) Menus whose geometry is bounded by two radii and an arc
US7512874B2 (en) Document information management system
US20140075281A1 (en) Systems and methods for annotating digital documents
EP1236127A1 (en) System and method for annotating an electronic document independently of its content
WO1998014903A9 (en) Hypermedia authoring and publishing system
Jayawardana et al. Personalization tools for active learning in digital libraries
US6307552B1 (en) Computer system and method for controlling the same utilizing an abstraction stack with a sequence of predetermined display formats
Benest A schematic entry drawing capability in a linearised hypermedia system
Shipman et al. Analytic workspaces: supporting the emergence of interpretation in the Visual Knowledge Builder
Caloini et al. Extending styles to hypermedia documents
Bruce et al. Sams teach yourself Adobe Dreamweaver CS4 in 24 hours
Johnson et al. Adobe Flash CS3 Professional on Demand
Zhang The history and user interface analysis of editing tools
Miah Vanishing windows: a technique for adaptive screen management

Legal Events

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

Payment date: 20060522

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee