KR20070058517A - 파일 시스템 쉘 - Google Patents

파일 시스템 쉘 Download PDF

Info

Publication number
KR20070058517A
KR20070058517A KR1020077006591A KR20077006591A KR20070058517A KR 20070058517 A KR20070058517 A KR 20070058517A KR 1020077006591 A KR1020077006591 A KR 1020077006591A KR 20077006591 A KR20077006591 A KR 20077006591A KR 20070058517 A KR20070058517 A KR 20070058517A
Authority
KR
South Korea
Prior art keywords
user
list
items
filter
window
Prior art date
Application number
KR1020077006591A
Other languages
English (en)
Other versions
KR101203274B1 (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
Priority claimed from US10/950,075 external-priority patent/US7421438B2/en
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20070058517A publication Critical patent/KR20070058517A/ko
Application granted granted Critical
Publication of KR101203274B1 publication Critical patent/KR101203274B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

파일 시스템 쉘(file system shell)이 제공된다. 이 쉘의 한 측면은, 디스크 상의 실제의 물리적인 기본 파일 시스템 구조 대신에, 정규 파일 및 폴더를 그의 메타데이터에 기초하여 서로 다른 뷰에서 사용자들에게 보여주는 가상 폴더(virtual folder)(651-655)를 제공한다. 사용자들은 직접 조작을 통해 가상 폴더에 대해 작업을 할 수 있으며, 일련의 항목들의 범위를 좁히기 위해 필터(620-626)가 제공된다. 바로가기 링크(quick link)(610-613)를 사용하여 사용자는 일련의 항목들의 유용한 뷰를 생성할 수 있다. 항목(630-633)에 관련된 함수 및 도구와 함께, 서로 연관되어 있을 수 있는 큰 그룹의 유용한 유형의 항목들(644, 645)로 이루어져 있는 라이브러리(640, 641)가 제공된다. 복수의 세그먼트[각각의 세그먼트는 컨텐츠를 선택하기 위한 필터에 대응함]를 포함하는 가상 주소 바(virtual address bar)가 제공된다. 쉘 브라우저(shell brower)가 제공되며, 이 쉘 브라우저를 사용하여 사용자는 항목과 연관된 메타데이터에 기초하여 그 항목을 즉시 식별할 수 있다.
파일 시스템, 쉘 브라우저, 가상 주소 바, 메타데이터

Description

파일 시스템 쉘{FILE SYSTEM SHELL}
관련 출원의 상호 참조
본 출원은, 동일한 발명의 명칭을 갖는 2003년 5월 16일자로 출원된, 동시 계류 중인 미국 특허 출원 제10/440,431호의 일부 계속 출원이다.
본 출원은 2004년 4월 29일자로 출원된 발명의 명칭이 "메타데이터 편집 제어(Metadata Editing Control)"인 미국 가특허 출원 제60/566,502호를 우선권 주장하며, 2004년 9월 24일자로 출원된 발명의 명칭이 "메타데이터 편집 컨트롤(Metadata Editing Control)"인 미국 특허 출원 제10/950,075호의 일부 계속 출원이고, 이들 출원은 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함된다.
본 출원은 2003년 10월 12일자로 출원된 발명의 명칭이 "통합된 컬렉션의 확장가능 생성 및 편집(Extensional Creation and Editing of Integrated Collections)"인 동시 계류 중인 출원 제10/684,263호를 우선권 주장하는, 그의 일부 계속 출원이다.
본 출원은 2003년 3월 24일자로 출원된 발명의 명칭이 "쉘 브라우저에서 사용자가 메타데이터를 수정하는 시스템 및 방법(System and Method for User Modification of MetaData in a Shell Brower)"인 동시 계류 중인 미국 특허 출원 제10/395,533호, 및 2003년 3월 24일자로 출원된 발명의 명칭이 "쉘 브라우저에서 의 확장가능 객체 프리뷰어(Extensible Object Previewer in a Shell Brower)"인 미국 특허 출원 제10/395,560호의 일부 계속 출원이며, 이들 출원은 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함된다.
본 출원은 2003년 5월 16일자로 출원된 미국 특허 출원 제10/440,035호[2003년 3월 27일자로 출원된 미국 특허 출원 제10/403,341호의 일부 계속 출원임]의 일부 계속 출원이다.
본 출원은 2003년 4월 17일자로 출원된 이전의 미국 특허 출원 제10/420,040호의 일부 계속 출원이며, 이는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함된다.
본 발명은 파일 시스템에 관한 것으로서, 보다 상세하게는 파일 시스템 쉘에 관한 것이다.
현재의 컴퓨터 파일 시스템은 다수의 바람직하지 않은 한계점들을 가지고 있다. 한가지 한계점은 사용자에게 보여지는 구조를 사용자가 일반적으로 제어할 수 없다는 것이다. 환언하면, 폴더가 구성될 때, 사용자는 구조를 선택해야만 하고, 그런 다음에 그 구조를 변경하기가 어렵다. 특정의 예로서, "음악" 폴더의 경우, 사용자는 음악가/앨범 포맷으로 음악 파일을 구성(organize)하기로 선택할 수 있으며, 여기서 각각의 음악가에 대한 앨범 폴더 모두는 그 특정의 음악가의 폴더 내로 들어가고, 특정의 앨범 상의 노래들 전부는 그 앨범의 폴더 내로 들어간다. 음악가/앨범 포맷은 한 유형의 음악을 재생하는 데(예를 들어, 2개의 서로 다른 음악가 로부터의 2개의 재즈곡을 재생하는 데) 또는 서로 다른 음악가로부터의 앨범 선집을 재생하는 데 도움이 되지 않는다.
다른 문제로서, 사용자는 구성하기 어려운 많은 수의 파일을 가지고 있을 수 있다. 어떤 사용자들은 파일들에 대해 엄격한 의미의 배치를 실시하며, 이에 따라 파일에 대한 엄격한 계층 구조를 생성한다. 이러한 파일들의 관리는 점점 복잡하게 되고 이용가능한 문서의 수가 증가함에 따라 어려워지며, 또한 탐색 및 검색을 어렵게 만든다. 이 문제는, 공유 파일, 기타 등등의 다른 위치로부터 부가의 파일들이 이용될 때, 더욱 악화된다.
사용자는 또한 서로 다른 장치 상에, 다른 PC 상에 또는 온라인 상에 등의 서로 다른 위치에 있는 파일들을 처리해야만 한다. 예를 들어, 사용자는 컴퓨터(음악 프로그램이 액세스가능할 수 있음) 상에서 그의 음악을 듣기로 선택할 수 있거나 온라인 상태로 되어 웹 사이트로부터 음악을 들을 수 있지만, 이들 2개의 소스 간에는 엄격한 구분이 있다. 서로 다른 위치로부터 오는 음악은 서로 다르게 구성되고, 동일한 방식으로 또는 동일한 장소에 유지되지 않는다. 다른 예로서, 회사 네트워크 상에 저장된 파일들은 본질적으로 사용자가 현재의 머신 상에 가지고 있는 파일들과 분리되어 있을 수 있다.
사용자는 또한 어떤 파일 데이터가 저장되어 있는지 뿐만 아니라 어디에 저장되어 있는지를 추적해야만 한다. 예를 들어, 음악 파일의 경우, 사용자는 어쩔 수 없이 여러가지 시스템 상에 복사본을 유지해야 하고 또 어느 음악 파일이 어디에 위치하고 있는지를 추적하려고 노력해야만 한다. 이것은, 파일들이 로컬적으로 저장되어 있는 경우에도, 파일들을 찾아내는 일을 어렵게 만들 수 있다.
또한, 때때로 사용자가 가지고 있는 파일들을 찾아내고 그 파일로 되돌아가는 것이 어렵다. 사용자는 어떤 파일들을 어디에 또 어떻게 저장했는지를 기억해 낸다는 것이 어렵다는 것을 알 수 있다. 일련의 폴더 및 심지어 일군의 유사한 파일이 주어져 있는 경우, 사용자는 종종 사용자가 찾고 있는 것을 신속하게 찾아낸다는 것이 어렵다는 것을 발견한다.
찾아내기 어려운 곳에 저장되어 있는 파일의 경우, 찾아내는 일이 그 만큼 훨씬 더 복잡하다. 게다가, 사용자가 폴더 내에 충분한 파일을 가지고 있는 경우, 폴더를 신속하게 파싱하는 것이 더욱 어렵게 되며, 컨텐츠가 유사한 경우에 특히 그렇다.
또한, 사용자가 네트워크 상에서 파일을 찾거나 그 파일로 되돌아가기 어려운 경우가 때때로 있다. 파일을 공유 및 퍼블리싱하는 일이 어려운 경우가 많으며, 이러한 파일을 이용가능하게 만들어주는 어떤 사람으로부터 그 파일을 검색하는 것이 훨씬 더 어려운 경우가 있을 수 있다. 사용자는 일반적으로 네트워크 상에서 파일을 찾는 데 필요로 하는 다양한 사이트 및 이름을 기억하거나 매핑해야만 한다.
이름 공간이 변할 수 있으며, 이는 무엇이 "정확"한 것인지에 관하여 사용자에게 혼동을 야기할 수 있다. 이것은 서로 다른 명명 규칙(naming convention), 한계점, 기타 등등이 있는 네트워크 상에서 특히 그렇다. 예를 들어, 어떤 운영 체제는 가시적(visible)이도록 하기 위해 빈칸이 없는 단축 이름(short name)을 요 구할 수 있다.
프로그램은 또한 그 자신의 디렉토리 또는 다른 이름 공간에 파일을 저장하는 경우가 많으며, 이는 사용자가 파일까지 다시 찾아가는 것을 어렵게 만들 수 있다. 프로그램은 문서를 저장하는 디폴트 디렉토리 및 장소를 갖는다. 사용자는 종종 그의 하드 디스크를 검색하여 파일이 어디에 저장되어 있는지에 관해 추측해야만 한다.
또한, 관련된 항목들이 개별적인 장소에 저장되어 있는 경우가 많다. 사용자가 가지고 있는 관련된 파일들이 하드 디스크, 기타 등등의 서로 다른 부분 상에 저장되어 있을 수 있다. 이 문제점은 다수의 컨텐츠 유형(예를 들어, 화상, 음악, 비디오)을 갖는 디지털 미디어 서비스의 개발에서 더욱 흔히 있는 일이다.
파일 시스템에서의 다른 문제점은 주소 바(address bar)에 관한 것이다. 사용자가 컴퓨터 상의 파일 시스템 내에서 내비게이션(navigation)을 할 때, 주소 바(address bar)라고 하는 종래의 그래픽 인터페이스 컨트롤은 사용자가 파일 시스템 계층 구조에서 어디에 있는지를 사용자에게 보여준다. 종래의 주소 바는 폴더, 서브폴더 및 파일로 된 파일 시스템의 계층 구조로 현재 위치를 보여준다. 종래의 주소 바에 디스플레이된 사용자의 위치를 변경하는 것은 일반적으로 2가지 방식 중 하나로 수행된다. 첫번째 방식은 주소 바에서 주소를 수동으로 편집하는 것이다. 주소 바에서 주소를 수동으로 편집하는 것에 의해 사용자는 파일 시스템 계층 구조에서의 임의의 수의 위치로 이동(relocate)할 수 있지만, 사용자가 컴퓨터 상에서의 파일 시스템의 구성에 관한 특정의 정보, 즉 특정의 파일 시스템 위치를 가지고 있을 필요가 있다. 두번째 방식은, 조작될 때, 새로운 주소 또는 위치를 반영하기 위해 주소 바를 갱신하는 외부 내비게이션 도구(external navigation tool)를 사용하는 것을 수반한다. 주소 바에서의 주소의 수동 편집을 건너뛰지만, 외부의 내비게이션 도구를 조작하는 것은 여전히 사용자에게 파일 시스템의 구성에 관한 특정의 정보를 가질 것과 계층 구조를 순회할 것을 요구한다. 그렇지만, 종래의 주소 바는, 주소 바에 있는 주소와 파일 시스템 계층 구조에서의 특정 위치 간의 일대일 관계로 인해, 폴더 또는 드라이브 등의 다수의 파일 시스템 위치들 사이에 저장되어 있는 파일 또는 데이터를 참조할 수 없다.
종래 기술은 사용자가 다수의 파일 시스템 위치들 사이에 저장되어 있거나 여러가지 속성들 중 임의의 것을 갖는 파일을 디스플레이하는 주소를 지정할 수 있게 해주는 주소 바가 없다. 종래 기술은 또한 사용자가, 주소를 수동으로 편집함이 없이 또는 기본 파일 시스템의 구성에 관한 특정의 정보를 필요로 하지 않고, 주소 바의 주소를 용이하게 수정할 수 있게 해주는 주소 바가 없다. 또한, 종래 기술에서는 대안적인 파일 선택 항목들(사용자는 그 파일 선택 항목으로 이동하기 위해 이들로부터 선택할 수 있음)을 사용자에게 제공하는 주소 바가 없다. 이러한 주소 바는 또한 선택적으로 종래의 주소 바 인터페이스를 사용자에게 제공하여, 사용자로 하여금 사용자 선호(user preference)에 따른 이전의 경험에 따라 주소 바와 상호작용할 수 있게 해줄 수 있다.
파일 시스템에서의 다른 문제점은 컴퓨터 상에 저장된 항목의 식별에 관한 것이다. 더 많은 개인들이 그의 일상 생활에서 컴퓨터를 이용함에 따라 또한 화 상, 음악, 문서, 기타 등등 간에 저장된 정보의 유형이 다름에 따라, 퍼스널 컴퓨터(PC) 등의 컴퓨팅 환경에 저장된 항목들을 용이하게 식별할 필요성이 급격히 증가하고 있다. 문서 및 미디어는 일반적으로 컴퓨터 상에서 계층적인 방식으로 저장되어 있으며 정보 또는 미디어의 파일이 폴더 내에 저장되어 있는 상태로 구성으로 되어 있다. 파일 시스템 브라우저는 사용자로 하여금 파일 시스템을 통해 내비게이션을 하여 파일 및 폴더의 찾기(locate) 및 열기(open)를 할 수 있게 해준다. 예를 들어, 마이크로소프트사의 WINDOWS
Figure 112007022760413-PCT00001
EXPLORER™는 사용자가 파일 시스템을 브라우징할 수 있게 해주는 운영 체제 유틸리티이다.
많은 사용자들은 종래의 파일 시스템 브라우저에서 현재 이용가능한 정보에 기초하여 파일을 정확하게 식별하는 것이 어렵다는 것을 알고 있다. 물론, 파일의 내용은 애플리케이션 프로그램으로 그 파일의 열기를 함으로써 검증될 수 있지만, 파일을 브라우징하는 이 방법은 아주 비효율적이다. 파일 시스템 브라우저 내에서 파일에 관한 메타데이터를 볼 수 있는 기능은 사용자가 특정의 파일을 열 필요없이 그 파일을 식별하는 데 크게 도움이 될 수 있다. 예를 들어, 마이크로소프트사의 WINDOWS
Figure 112007022760413-PCT00002
9X 운영 체제에서, 사용자는 특정의 객체에 대한 프로퍼티 시트(property sheet)에 액세스함으로써 객체 메타데이터를 볼 수 있다. 프로퍼티 시트는 탭이 붙은 색인 카드형 프로퍼티 페이지 선택(tabbed, index-card-like selection of property pages)의 형태로 객체의 애트리뷰트(attribute) 또는 설정(setting)의 리스트를 사용자에게 제공하며, 이들 프로퍼티 페이지 각각은 파라미터를 커스터마이즈하기 위한 표준적인 대화상자 형태의 컨트롤을 가지고 있다. 그렇지만, 프로퍼티 시트를 사용하여 항목을 찾아내는 것은 느리고 번거로울 수 있으며, 어떤 사용자들은 프로퍼티 시트에서 관련 메타데이터를 찾아내는 것이 어렵다는 것을 알고 있다. 이와 유사하게, 항목을 찾아내기 위해 정보팁(infotip)을 사용하는 것은 느리고 번거로울 수 있는데, 그 이유는 사용자가 정보팁에 디스플레이되는 제한된 메타데이터를 보기 위해 각각의 파일 상에 마우스를 올려 놓아야만 하기 때문이다.
종래의 파일 시스템 브라우저는 사용자가 파일 및 폴더에 관한 메타데이터를 입력 및 편집할 수 있도록 해주지 않으며, 이는 사용자가 나중에 파일을 찾아낼 수 있는 것을 상당히 향상시킨다. 현재까지, 사용자가 메타데이터를 입력 및 편집할 수 있는 것은 특수 목적의 소프트웨어 프로그램으로 제한되어 있었다. 예를 들어, 전자 음악 파일을 위한 미디어 플레이어는 음악 앨범 및 음악가와 연관된 메타데이터를 편집할 수 있는 기능을 사용자에게 제공한다. 이러한 프로그램의 다른 예로는 전자 화상 파일을 위한 애플리케이션 프로그램이 있다. 그렇지만, 미디어 플레이어 및 다른 이러한 프로그램의 효용이, 다수의 파일 유형을 지원하는 범용 파일 시스템 브라우저와는 달리, 그 프로그램에 의해 지원되는 특정 유형의 파일로 제한된다.
마이크로소프트사의 WINDOWS
Figure 112007022760413-PCT00003
XP 운영 체제는 My Pictures 폴더에서 사용하기 위한 이미지 브라우저를 포함한다. 내 그림 폴더는 사용자가 사진들을 단지 문서 아이콘이 아니라 사진으로서 볼 수 있게 해주는 특수 기능들을 가지고 있다. My Pictures의 이미지 브라우징 기능은 썸네일 크기 사진 및 큰 사진을 볼 수 있게 해주고, 비스듬하게 있는 사진을 회전시킬 수 있으며 또 슬라이드 쇼를 생성할 수 있는 기능을 포함한다. 사용자는 또한 사진의 크기, 사진을 찍은 날짜 및 시간, 사진을 찍은 카메라의 이름 등의 사진의 상세를 볼 수 있다. 내 그림 폴더에서의 미리보기 컨트롤 영역은 사용자-선택 이미지의 확대된 미리보기 이미지, 사용자가 일련의 사진들을 통해 반복하는 것을 돕는 반복자(iterator) 버튼, 및 시계 방향 또는 반시계 방향으로 사진을 회전시키는 컨트롤을 포함한다. WINDOWS
Figure 112007022760413-PCT00004
XP에서의 이미지 브라우징 기능이, 사진을 보고 조작하기 위해 애플리케이션 프로그램을 호출할 필요가 없게 해줌으로써, 기술 수준을 진보시켰지만, 사용자는 여전히 사진과 연관된 메타데이터를 입력 및 편집할 수 없다.
따라서, 사용자가 항목과 연관된 메타데이터에 기초하여 용이하게 그 항목을 찾아낼 수 있게 해주는, 쉘 또는 파일 시스템 브라우저 내에서의 사용자 경험의 개선이 필요하다. 또한, 사용자가 애플리케이션 프로그램을 호출할 필요없이 쉘 브라우저 내에서 여러가지 유형의 항목과 연관된 메타데이터를 입력 및 편집할 수 있게 해주는 시스템 및 방법이 필요하다. 사용자가 그의 파일들을 용이하게 찾아낼 수 있도록 개선된 파일 내용 인식 기능을 사용자에게 제공하는 파일 시스템 또는 쉘 브라우저가 필요하다. 또한, 복수의 이용가능한 프리뷰어(previewer) 중에서 특정 파일 유형에 대한 프리뷰어의 선택을 가능하게 해주는 쉘 브라우저를 위한 개선된 그래픽 사용자 인터페이스가 필요하다. 또한, 소프트웨어 개발자로 하여금 파일 유형에 기초하여 사용자에게 부가적인 정보 및 기능을 제공할 수 있게 해주는 확장가능한 쉘 브라우저가 필요하다. 또한 서로 다른 항목 컬렉션들에 걸쳐 유사 한 UI 경험을 제공할 필요가 있다.
본 발명의 한 측면에 따르면, 가상 폴더를 이용하는 시스템 및 방법이 제공된다. 가상 폴더는, 디스크 상에서의 실제의 물리적인 기본 파일 시스템 구조 대신에, 정규의 파일 및 폴더(또한 디렉토리라고도 함)를 그의 메타데이터에 기초하여 서로 다른 뷰에서 사용자에게 보여준다. 따라서, 본 시스템은 데이터베이스에 저장되어 있는 프로퍼티를 가져와서 이를 폴더와 유사한 컨테이너(container)로서 나타낼 수 있다. 사용자들이 폴더를 대상으로 작업하는 것에 이미 익숙해져 있기 때문에, 유사한 방식으로 가상 폴더를 제공함으로써, 사용자가 새로운 시스템에 보다 빠르게 적응할 수 있다.
본 발명의 다른 측면에 따르면, 디스플레이 및 항목들을 저장하기 위한 메모리를 갖는 컴퓨터 시스템에서 이용되는 방법에 따라 가상 폴더가 제공된다. 이 방법에 따라, 메타데이터 프로퍼티(metadata property)가 선택된다. 본 시스템은 이어서 선택된 메타데이터 프로퍼티를 갖는 항목들을 검색하고, 이 메타데이터 프로퍼티를 갖는 항목들의 컬렉션을 나타내는 가상 폴더 디스플레이 객체(virtual folder display object)가 제공된다.
본 발명의 다른 측면에 따르면, 본 시스템은 사용자로부터 질의를 획득하는 폴더 프로세서(folder processor), 및 항목들에 관한 정보를 저장하는 관계형 데이터베이스(relational database)를 포함한다. 폴더 프로세서는 먼저 사용자로부터 질의를 획득하고 이 질의를 관계형 데이터베이스로 전달한다. 관계형 데이터베이스는 결과를 다시 폴더 프로세서에 제공하며, 관계형 데이터베이스로부터의 결과에 기초하여, 폴더 프로세서는 그 결과를 가상 폴더로서 사용자에게 제공한다. 일 실시예에서, 폴더 프로세서에 다시 제공되는 결과는 데이터베이스 행 및 열을 포함한다. 데이터베이스 열 및 행은 폴더 프로세서에 의해 열거자 구조체(enumerator structure)로 변환되고, 이는 이어서 그 결과 얻어지는 가상 폴더로 디스플레이를 채우는 데 사용된다.
본 발명의 다른 측면에 따르면, 사용자는 직접 조작을 통해 가상 폴더를 대상으로 작업을 할 수 있다. 환언하면, 가상 폴더를 조작하기 위해 제공되는 메카니즘은 종래의 물리적 폴더를 조작하기 위해 현재 사용되는 메카니즘(예를 들어, 클릭 및 드래그, 복사, 붙여넣기, 기타 등등)과 유사하다.
본 발명의 다른 측면에 따르면, 디스플레이 및 항목들을 저장하기 위한 메모리를 갖는 컴퓨터 시스템 내에 가상 폴더의 직접 조작을 수행하는 방법이 제공된다. 이 방법에 따르면, 항목의 그룹들이 가상 폴더로 표현된다. 가상 폴더의 직접 조작을 위해 수행될 수 있는 정의된 동작이 제공되며, 여기서 정의된 동작이 수행될 때, 가상 폴더는 정의된 동작에 의해 지시된 대로 조작된다. 정의된 동작의 예로는 가상 폴더를 클릭 및 드래그하는 것이 있다. 일 실시예에서, 제1 가상 폴더를 제2 가상 폴더로 클릭 및 드래그하는 동작은 제1 가상 폴더로부터 제2 가상 폴더로 항목들을 복사하는 기능을 수행한다. 가상 폴더로 항목들을 복사하는 것은 항목들과 연관되어 있는 선택된 메타데이터 프로퍼티를 추가하거나 다른 방식으로 변경하는 것을 수반할 수 있다.
본 발명의 다른 측면에 따르면, 가상 폴더를 조작하기 위한 필터들이 제공된다. 이 필터는 기본적으로 일련의 항목들의 범위를 좁히기 위한 도구이다. 일 실시예에서, 필터는 개별적인 항목의 프로퍼티에 기초하여 동적으로 생성된다. 예를 들어, 일련의 항목에 대해, 필터 메카니즘은 프로퍼티를 검토할 수 있고, 항목들이 일반적으로 프로퍼티로서 "저작자(author)"를 갖는 경우, 필터는 저작자의 리스트를 제공할 수 있다. 이어서, 특정의 저작자를 클릭함으로써, 그 저작자를 갖지 않는 항목들이 사라진다. 이것에 의해 사용자는 내용을 좁힐 수 있다.
본 발명의 다른 측면에 따르면, 디스플레이 및 메타데이터 프로퍼티를 갖는 항목들을 저장하는 메모리를 갖는 컴퓨터 시스템에서 항목들을 필터링하는 방법이 제공된다. 각각이 하나 이상의 항목을 나타내는 디스플레이 객체가 디스플레이 상에 제공된다. 디스플레이 객체에 의해 표현되는 항목들의 메타데이터 프로퍼티가 평가된다. 복수의 항목에 의해 공유되는 메타데이터 프로퍼티에 대응하는 필터 항(filter term)이 디스플레이 상에 제공되며, 여기서 필터 항의 선택은 디스플레이 상에 표현되는 항목들이 지정된 메타데이터 프로퍼티를 공유하는 그 항목들로 축소되게 한다.
본 발명의 다른 측면에 따르면, 복수의 항목들이 디스플레이 상에 표현되고, 필터 항이 그 항목들의 메타데이터 프로퍼티에 기초하여 동적으로 생성된다. 필터 항이 선택되는 경우, 이는 디스플레이 상에 표현되는 항목들을, 필터 항에 대응하는 메타데이터 프로퍼티를 갖는 항목들로 축소시킨다.
본 발명의 다른 측면에 따르면, 복수의 항목들이 디스플레이 상에 표현되고, 사용자가 체크박스 컨트롤을 선택함으로써 필터 항을 선택할 수 있는 필터 영역(filter area)이 제공된다. 사용자에 의해 체크박스 컨트롤이 선택될 때, 디스플레이 상에 표현되는 항목들은 이 필터 항을 포함하는 항목들로 축소된다. 사용자가 필터 항을 타이핑할 때, 각각의 새로운 문자가 필터 항에 부가됨에 따라 부가적인 항목들이 필터링될 수 있다.
다른 측면에 따르면, 복수의 디스플레이 객체를 포함하는 그래픽 사용자 인터페이스가 제공되며, 각각의 디스플레이 객체는 하나 이상의 항목들 및 복수의 항목들에 의해 공유되는 프로퍼티에 대응하는 프로퍼티 컨트롤을 표현한다. 프로퍼티 컨트롤을 선택함으로써, 필터 항들의 리스트가 디스플레이 상에 제공되게 한다. 한 측면에서, 드롭다운 메뉴에 필터 항들이 제공될 수 있으며, 이 메뉴에서 각각의 필터는 대응하는 체크박스 컨트롤을 갖는다.
본 발명의 다른 측면에서, 제1 체크박스 컨트롤을 선택함으로써, 디스플레이 상에 표현되는 항목들이 제1 체크박스 컨트롤에 대응하는 필터 항을 만족시키는 항목들만을 포함하게 할 수 있다. 제1 체크박스 컨트롤이 현재 선택되어 있는 경우 제2 체크박스 컨트롤을 선택하게 되면, 디스플레이 상에 표현되어 있는 항목들이 제1 체크박스 컨트롤에 대응하는 각자의 제1 필터 항 또는 제2 체크박스 컨트롤에 대응하는 각자의 제2 필터 항을 만족시키는 항목들을 포함하게 된다. 환언하면, 필터 항은 뷰에 있는 항목들에 대해 논리적 OR 연산이 수행되게 한다.
또다른 측면에서, 제2 체크박스 컨트롤이 선택 해제(deselect)될 수 있고, 이에 의해 디스플레이 상에 표현된 항목들이 현재 선택된 체크박스 컨트롤에 대응하는 적어도 하나의 각자의 필터 항을 만족시키는 항목들만을 포함하게 된다.
다른 측면에서, 프로퍼티 컨트롤의 선택에 의해 배열 커맨드(arrangement command)의 리스트가 필터 항의 리스트와 분리되어 디스플레이 상에 제공되게 할 수 있다. 예시적인 배열 커맨드로는 선택된 프로퍼티 컨트롤과 연관된 프로퍼티별로 정렬하는 것(sorting), 스태킹(stacking) 또는 그룹화하는 것(group)이 있다.
또다른 측면에서, 프로퍼티 컨트롤은 분할 버튼(split button)일 수 있다. 이 측면에 따르면, 제1 버튼 부분의 선택에 의해 필터 항의 리스트가 디스플레이 상에 제공되게 할 수 있고, 또 제2 버튼 부분의 선택에 의해 디스플레이 객체가 프로퍼티별로 정렬되게 할 수 있다.
본 발명의 다른 측면에 따르면, 디스플레이를 갖는 컴퓨터 시스템에서 항목들을 디스플레이하는 방법에서 범위(scope)가 이용된다. 이 방법은 물리적 메모리 장소의 범위(이로부터 항목들이 도출됨)를 정의하는 것을 수반하며, 이 범위는 현재의 컴퓨터 메모리 및 적어도 하나의 다른 물리적 장소를 포함한다. 질의가 수신되면, 그 질의에 응답하여, 범위에 정의된 물리적 장소들로부터 항목들이 도출되고, 질의로부터 도출되는 항목들은 이어서 디스플레이 상의 뷰에 제공된다. 일 실시예에서, 적어도 하나의 다른 물리적 장소는 다른 컴퓨터, 네트워크 상의 장소, 또는 외부 저장 장치일 수 있다. 일 실시예에서, 디스플레이 상의 뷰는 항목들이 물리적으로 저장되어 있는 물리적 장소를 나타내는 물리적 폴더 뷰로 전환될 수 있다.
본 발명의 다른 측면에 따르면, 파일이 아닌 항목들(non-file items)은 가상 폴더에 표현될 수 있다. 환언하면, 메모리에 저장되어 있는 파일들은 물리적 저장 장치(physical store)에 위치되어 있다. 가상 폴더는 물리적 저장 장치에 현재 표현되어 있지 않은 항목들을 포함하도록 작성될 수 있다. 파일이 아닌 항목들의 예로는 이메일 및 연락처가 있다.
본 발명의 다른 측면에 따르면, 파일이 아닌 항목들을 제공하는 방법은 디스플레이 및 항목들을 저장하는 메모리를 갖는 컴퓨터 시스템에서 구현된다. 이 방법은 질의에 의해 파일이 아닌 항목 및 파일 항목 둘다가 검색될 수 있게 해주는 데이터베이스를 제공하는 단계를 포함한다. 질의가 수신되면, 질의에 부합하는 파일이 아닌 항목 및 파일 항목 둘다가 도출되고, 질의에 부합하는 항목들은 이어서 디스플레이 상에 제공된다. 일 실시예에서, 파일 항목들에 관한 선택된 정보를 포함하고 또 어떤 파일이 아닌 항목들을 완전히 포함할 수 있는 관계형 데이터베이스가 제공된다.
본 발명의 다른 측면에 따르면, 물리적 또는 가상적 장소에 저장된 내용을 선택하기 위한 주소 바가 제공된다. 이 주소 바는 복수의 세그먼트를 포함할 수 있다. 각각의 세그먼트는 저장된 내용을 선택하기 위한 필터 또는 선택 기준에 대응할 수 있다. 세그먼트는 2개 이상의 필터 또는 선택 기준을 포함할 수 있으며, 여기서 세그먼트에서의 필터 또는 선택 기준 각각에 대응하는 내용이 표현될 수 있다. 이러한 경우에, 가상적이든 물리적이든, 2개 이상의 서로 다른 장소로부터의 개별적인 선택 기준에 대응하는 내용이 액세스될 수 있으면, "OR" 필터링이라고 하는 논리적 "or" 연산이 일어난다. 종합하면, 주소 바에서의 세그먼트의 대응하는 필터는 컴퓨터 파일 시스템 상에 저장된 내용을 선택하기 위한 주소를 표현한다.
각각의 세그먼트는 주소 바의 주소를 수정하기 위해 사용자 상호작용에 반응할 수 있는 대화형 세그먼트(interactive segment)이다. 주소 바에서 세그먼트를 선택하는 것에 의해 선택된 세그먼트 이후의 세그먼트들이 주소 바로부터 제거된다.
한 측면에 따르면, 주소 바에서의 세그먼트와 연관된 자식 컨트롤(child control)을 선택하는 것에 의해 선택가능한 자식 필터 또는 선택 기준의 리스트가 사용자에게 디스플레이되게 된다. 자식 필터 또는 선택 기준은 세그먼트와 함께 포함된 필터(들) 또는 선택 기준의 자식이다. 자식 필터 또는 선택 기준의 리스트로부터 자식 필터 또는 선택 기준 중 하나를 선택하는 것에 의해 주소 바에 디스플레이된 세그먼트의 현재의 (자식) 필터 또는 선택 기준이, 선택된 자식 필터 또는 선택 기준과 다른 경우, 선택된 자식 필터 또는 선택 기준으로 대체되게 된다. 게다가, 대체된 자식 필터 또는 선택 기준의 세그먼트 이후의 세그먼트들이 주소 바로부터 제거된다.
본 발명의 다른 측면에 따르면, 윈도우(window) 및 편집 컨트롤(edit control)을 포함하는 쉘 브라우저가 제공된다. 윈도우는 일군의 항목들을 디스플레이하고 또한 디스플레이된 항목들 중 하나 이상과 연관된 메타데이터 값을 디스플레이한다. 편집 컨트롤은 윈도우에 디스플레이된 메타데이터 값의 적어도 일부분의 사용자 수정을 가능하게 해준다.
본 발명의 다른 측면에 따르면, 그래픽 사용자 인터페이스가 컴퓨터 판독가능 매체 상에 구현되고, 컴퓨터 상에서 실행가능하다. 그래픽 사용자 인터페이스는 쉘 브라우저에 일련의 항목들을 디스플레이하는 제1 화면 영역 및 디스플레이된 항목들 중 하나 이상과 연관된 메타데이터를 디스플레이하는 제2 화면 영역을 포함한다. 그래픽 사용자 인터페이스는 또한 디스플레이된 메타데이터를 수정하는 쉘 브라우저 내에서의 수단을 사용자에게 제공한다.
본 발명의 또다른 측면에 따르면, 사용자가 쉘 브라우저 내에서 메타데이터를 수정할 수 있게 해주는 컴퓨터-구현 방법이 제공된다. 한가지 이러한 방법은 복수의 항목을 디스플레이하는 단계, 적어도 하나의 디스플레이된 항목의 선택을 나타내는 제1 입력을 사용자로부터 수신하는 단계, 선택된 항목(들)과 연관된 메타데이터를 디스플레이하는 단계, 및 디스플레이된 메타데이터의 사용자 수정을 위한 편집 컨트롤을 제공하는 단계를 포함한다. 또하나의 이러한 방법은 환영 창(welcome pane) 및 이 환영 창과 연관된 메타데이터를 디스플레이하는 단계 및 디스플레이된 메타데이터의 사용자 수정을 위한 편집 컨트롤을 제공하는 단계를 포함한다.
본 발명의 다른 측면에 따르면, 하나 이상의 항목들과 연관된 메타데이터를 포함하는 데이터 구조체(data structure)가 쉘 브라우저에 디스플레이된다. 하나 이상의 컴퓨터-판독가능 매체 상에 저장되어 있는, 이 데이터 구조체는 하나 이상의 디스플레이된 항목들과 연관된 사용자 수정가능 메타데이터를 포함하는 필드를 포함하고, 이 데이터 구조체 내에 포함된 사용자 수정가능 메타데이터도 역시 쉘 브라우저에 디스플레이된다.
본 발명의 다른 측면에 따르면, 디폴트 프리뷰어(default previewer) 및 확장 메카니즘(extensibility mechanism)을 포함하는 쉘 브라우저가 제공된다. 디폴트 프리뷰어는 다수의 항목 유형에 대한 표준 레벨의 기능을 제공한다. 확장 메카니즘은 항목 유형들 중 하나 이상에 대해 디폴트 프리뷰어에 의해 제공된 표준 레벨을 넘는 기능을 가능하게 해준다.
본 발명의 다른 측면에 따르면, 제1 프리뷰어 및 제2 프리뷰어를 포함하는 쉘 브라우저가 제공된다. 제1 프리뷰어는 다수의 항목 유형들에 대한 표준 레벨의 기능을 제공하고, 제2 프리뷰어는 다수의 항목 유형들 중 하나 이상에 대한 대안적인 또는 확장된 레벨의 기능을 제공한다. 쉘 브라우저는 하나 이상의 항목 유형에 대해 제1 프리뷰어 또는 제2 프리뷰어를 선택적으로 배치(deploy)하도록 구성되어 있다.
본 발명의 다른 측면에 따르면, 다수의 항목 유형을 지원하는 쉘 브라우저에 대한 그래픽 사용자 인터페이스가 지원된다. 이 그래픽 사용자 인터페이스는 쉘 브라우저에 일련의 항목을 디스플레이하기 위한 제1 화면 영역 및 복수의 이용가능한 프리뷰어로부터 디스플레이된 항목들에 대한 프리뷰어를 선택하는 수단을 포함한다.
본 발명의 다른 측면에 따르면, 다수의 항목 유형을 지원하는 쉘 브라우저에서 프리뷰어를 선택하는 컴퓨터-구현 방법이 제공된다. 이 방법은 특정의 항목 유형에 대해 쉘 브라우저에 복수의 프리뷰어를 제공하는 단계 및 이 특정의 항목 유형에 대해 프리뷰어들 중 하나를 선택하는 단계를 포함한다. 이 방법은 이어서 선택된 프리뷰어를 특정의 항목 유형과 연관시킨다.
본 발명의 다른 측면에 따르면, 다수의 항목 유형을 지원하는 쉘 브라우저에서 써드 파티 프리뷰어들의 사용을 가능하게 해주는 컴퓨터-구현 방법이 제공된다. 이 방법은 다수의 항목 유형에 대한 디폴트 프리뷰어를 갖는 쉘 브라우저를 제공하는 단계 및 써드 파티가 다수의 항목 유형 중 적어도 하나에 대한 대안적인 프리뷰어를 개발할 수 있게 해주는 확장 메카니즘을 제공하는 단계를 포함한다.
본 발명의 다른 측면에 따르면, 쉘 브라우저에서의 복수의 프리뷰어를 나타내는 정보를 포함하는 데이터 구조체가 제공된다. 하나 이상의 컴퓨터-판독가능 매체 상에 저장되어 있는, 이 데이터 구조체는 다수의 항목 유형을 지원하는 디폴트 프리뷰어를 나타내는 정보를 포함하는 제1 필드를 포함한다. 제2 필드는 제1 항목 유형에 대한 대안적인 프리뷰어를 나타내는 정보를 포함하고, 제3 필드는 제1 항목 유형의 항목들이 쉘 브라우저에 디스플레이될 때 디폴트 프리뷰어를 호출할지 또는 대안적인 프리뷰어를 호출할지를 나타내는 정보를 포함한다.
본 발명의 다른 측면에 따르면, 서로 다른 유형의 항목들은 유사한 일련의 기본 UI 기능들이 제공되어 있는 라이브러리로 그룹화된다. 환언하면, 문서 라이브러리, 사진 라이브러리 및 음악 라이브러리 등의 서로 다른 유형의 라이브러리에 대해 유사한 일련의 기본 UI 기능들이 제공된다. 이 일련의 기본 UI 기능들은 필터링, 새 카테고리의 생성, 항목의 메타데이터의 편집, 피봇의 변경, 기타 등등의 기능들을 포함한다. 라이브러리에 대한 유사한 일련의 기본 UI 기능들에 의해 사용자는 이미 익숙해져 있는 속성(attribute) 및 기능을 사용하여 서로 다른 유형의 항목들을 처리 및 구성할 수 있게 된다.
본 발명의 다른 측면은 복수의 계층적으로 배열된 항목들의 트리형 디스플레이(tree-like display)를 포함하는 제1 컴포넌트를 디스플레이함으로써 그래픽 사용자 인터페이스 듀얼-컴포넌트 컨트롤(dual-component control)을 통해 컴퓨터 시스템 또는 네트워크 상에서의 항목들의 범위를 지정하는 방법을 제공하며, 여기서 각각의 항목은 이 범위에 포함 및/또는 그로부터 배제시키기 위해 사용자에 의해 명시적으로 선택될 수 있다. GUI는 또한 범위에 명시적으로 포함된 및/또는 범위로부터 명시적으로 배제된 항목들을 식별해주는, 바스켓(basket) 또는 리스트를 포함하는 제2 컴포넌트를 디스플레이한다. 사용자가 특정의 항목을 명시적으로 선택하는 경우, 컨트롤이 그 특정의 항목의 상태를 이전의 상태로부터 새로운 상태로 변경하고 또 특정의 항목의 새로운 상태에 기초하여 특정의 항목의 각각의 후손의 상태를 새로운 암시적인 상태로 변경한다.
예시적인 실시예에서, 복수의 계층적으로 배열된 항목들의 각각의 항목의 상태는 미선택됨(unselected) 상태, 명시적으로 포함됨(explicitly included) 상태, 암시적으로 포함됨(implicitly included) 상태, 명시적으로 배제됨(explicitly excluded) 상태, 및 암시적으로 배제됨(implicitly excluded) 상태 중 임의의 것을 나타낼 수 있다. 항목들의 리스트는 각각의 명시적으로 배제된 항목에 대응하는 명시적으로 포함된 항목을 식별해줄 수 있다.
본 발명의 한 측면에 따르면, 하나 이상의 컴퓨터 판독가능 매체는, 실행될 때, 컴퓨터 시스템으로 하여금 사용자-정의 범위를 지정하기 위해 그래픽 사용자 인터페이스 컨트롤을 비디오 디스플레이 상에 제공하게 하는 컴퓨터 실행가능 명령어를 저장한다. GUI 컨트롤은 복수의 계층적으로 배열된 항목을, 예를 들어 확장가능/축소가능 트리형 방식으로 디스플레이하는 것을 비롯한 일정한 거동을 나타내며, 여기서 복수의 계층적으로 배열된 항목들의 각각의 항목은 범위에 포함 및/또는 그로부터 배제시키기 위해 사용자에 의해 명시적으로 선택될 수 있다. 사용자가 범위에 포함 및/또는 그로부터 배제시키기 위해 항목을 명시적으로 선택할 때, 컨트롤은 각각 범위에 포함 및/또는 그로부터 배제시키기 위해 명시적으로 선택된 항목의 모든 후손을 암시적으로 선택한다. 컨트롤은 또한, 복수의 계층적으로 배열된 항목들과는 별도로, 범위에 명시적으로 포함된 항목들의 제1 리스트 및 범위로부터 명시적으로 배제된 항목들의 제2 리스트를 디스플레이하며, 여기서 제2 리스트 내의 각각의 항목은 제1 리스트 내의 항목에 대응한다.
본 발명의 다른 측면에 따르면, 사용자가 미선택된 또는 암시적으로 배제된 항목을 명시적으로 선택하는 경우, 컨트롤은 명시적으로 선택된 항목의 상태를 범위에 암시적으로 포함되도록 변경하고, 명시적으로 선택된 항목의 각각의 후손의 상태를 범위에 암시적으로 포함되도록 변경한다. 사용자가 암시적으로 포함된 항목을 명시적으로 선택하는 경우, 컨트롤은 명시적으로 선택된 항목의 상태를 범위로부터 명시적으로 배제되도록 변경하고, 명시적으로 선택된 항목의 각각의 후손의 상태를 범위로부터 암시적으로 배제되도록 변경한다.
어떤 예시적인 실시예에서, 컨트롤은 각각의 디스플레이되어 있는 명시적으로 포함된 항목에 대응하는 제1 포함 표시자(inclusion indicator), 각각의 디스플레이되어 있는 암시적으로 포함된 항목에 대응하는, 각각의 제1 포함 표시자보다 덜 두드러진, 제2 포함 표시자, 및 각각의 디스플레이되어 있는 명시적으로 배제된 항목에 대응하는 배제 표시자(exclusion indicator)를 제공할 수 있다.
유익하게도, 본 발명의 여러가지 예들은 통합된 컬렉션(integrated collection)을 생성하는 도구(tool)를 제공한다. 본 발명의 어떤 구현에서, 이 도구는 컬렉션에 포함될 객체를 받는 "바스켓(basket)" 컨트롤을 포함할 수 있다. 리스트 창(list pane)이라고도 하는 바스켓 컨트롤은, 예를 들어, 컬렉션에 포함되도록 사용자에 의해 선택된 데이터 객체를 받아서 디스플레이하기 위한 인터페이스를 포함할 수 있다. 따라서, 사용자는 데이터 객체를 바스켓 컨트롤에 제공하는 것만으로 데이터 객체의 컬렉션을 구축할 수 있다. 컬렉션 생성 컴포넌트는 이어서 바스켓 컨트롤에 제공된 객체에 대응하는 하나 이상의 데이터 항목을 컬렉션에 제공한다. 본 발명의 여러가지 측면에서, 컬렉션은, 개별 데이터(discrete data)(텍스트 등), 데이터 파일, 데이터 파일에 대한 포인터, 지정된 조건에 기초하여 데이터 파일을 식별하기 위한 질의(query) 또는 배제(exclusion), 하나 이상의 데이터 객체를 포함하는 가상 폴더 및 물리적 폴더 둘다, 및 심지어 데이터 객체의 다른 컬렉션을 비롯한, 임의의 원하는 데이터 항목으로 작성될 수 있다.
바스켓 컨트롤은 단독으로 컬렉션을 작성하는 데 사용될 수 있거나 다른 소프트웨어 객체에 의해 호스팅될 수 있다. 예를 들어, 본 발명의 여러가지 구현은 그 밖에도 편리하게도 바스켓 컨트롤 및 사용자가 데이터 객체를 바스켓 컨트롤에 제공하기 위해 사용할 수 있는 하나 이상의 사용자 인터페이스 둘다를 포함하는 "리스트작성기" 컨트롤(listmaker control)을 포함할 수 있다. 예를 들어, 리스트작성기 컨트롤은 데이터 객체를 보기 위한 뷰잉 그래픽 사용자 인터페이스(viewing graphical user interface)(파일 브라우저 등) 및 뷰잉 그래픽 사용자 인터페이스에서 찾아다니기 위한 내비게이션 도구(navigation tool)를 포함할 수 있다. 게다가, 리스트작성기 컨트롤은 다양한 소프트웨어 애플리케이션에서 소프트웨어 개발자가 원하는 바대로 호스팅될 수 있다.
본 발명의 하나 이상의 측면은 컴퓨터 시스템, 저장된 소프트웨어, 및/또는 컴퓨터 시스템 상에 저장된 데이터 객체의 정적 리스트를 생성하는 방법에 관한 것일 수 있다. 본 발명의 측면들은 주 보기 창(primary view pane) 및 리스트 창(list pane)을 포함하는, 그래픽 사용자 인터페이스(GUI) 프레임, 예를 들어 탐색기 프레임(explore frame)을 컴퓨터 디스플레이 장치 상에 디스플레이할 수 있다. 주 보기 창은 컴퓨터 시스템 상에서 제1 사전 정의된 장소, 예를 들어 사용자에 의해 식별되는 가상 또는 물리적 폴더에 저장된 데이터 객체를 디스플레이하고, 리스트 창은 리스트 창과 연관된 정적 리스트 내의 항목들에 대응하는 정보를 디스플레이한다. 정적 리스트 내의 각각의 항목은 데이터 객체에 대응하며, 데이터 객체에 관한 정보, 예를 들어 데이터 객체에 대한 포인터, 리스트에서의 항목들의 순서, 항목에 관한 주석, 기타 등등을 포함한다. 사용자는, 제1 데이터 객체에 대응하는 항목이 정적 리스트에 추가되도록, 정적 리스트에 추가될 주 보기 창에 디스플레이되는 제1 데이터 객체를 식별해주는 입력을 제공할 수 있다. 제1 항목에 관한 정보, 예를 들어 아이콘, 이름, 주석, 기타 등등이 리스트 창에 디스플레이될 수 있다. 사용자는 제2 사전 정의된 장소를 지정할 수 있으며, 이에 의해 주 보기 창이 리스트 창이 연관되어 있는 정적 리스트를 변경하지 않고 제2 사전 정의된 장소에 저장되어 있는 데이터 객체를 디스플레이하게 할 수 있다.
본 발명의 여러가지 예시적인 측면에 따르면, 각각의 정적 리스트는, 사용자가 명시적(explicit)이든 암시적(implied)이든 정적 리스트를 저장하려는 의도를 디스플레이하지 않는 한 정적 리스트의 내용이 폐기되는, 지속성 모델(persistence model)을 가질 수 있다. 암시적 의도는 사용자가 정적 리스트를 디폴트 이름으로부터 사용자-정의 이름으로 명칭 변경함으로써 나타낼 수 있다.
본 발명의 측면들은 사용자가 생성될 파일의 미리보기 표현(preview representation)을 제공받는 시스템 및 방법을 제공한다. 미리보기는 파일 저장 대화 상자의 일부로서 나타날 수 있으며, 새로 생성될 파일에 대응하는 표시(indicia)를 나타낼 수 있고, 저장이 수행된 이후에 새 파일이 GUI에서 시각적으로 어떻게 표현될 수 있는지를 보여줄 수 있다. 미리보기는 사용자가 용이하게 알아보도록, 독자적인 외관을 갖는 것, 항상 첫번째 요소로서 나타나는 것 등의 일정한 거동을 나타낼 수 있다. 사용자는 또한, 파일이 저장되기 이전에도, 파일을 관리 및/또는 그의 프로퍼티를 편집하기 위해 미리보기와 상호작용할 수 있다. 미리보기는 또한 예를 들어 사용자가 유효하지 않은 장소에 파일을 저장할 수 없게 함으로써 또는 GUI를 통한 사용자 내비게이션(user navigation)에 기초하여 메타데이터 필드를 자동적으로 채움으로써 저장 프로세스에 걸쳐 사용자를 지능적으로 안내할 수 있다.
본 발명의 다른 측면은 사용자가 탐색기 또는 쉘 브라우저 뷰를 전문화함으로써 개선된 파일 브라우징 인터페이스를 제공받는 시스템 및 방법을 제공할 수 있다. 브라우징 인터페이스는 디스플레이될 내용에 따라 달라질 수 있다. 어떤 경우에, 브라우징 인터페이스는 디스플레이될 내용에 따라 브라우저 패널에 제공되는 사용자 인터페이스 옵션들을 커스터마이즈할 수 있다. 브라우저는 내용에 따라 디스플레이된 프로퍼티(displayed property)를 재배열, 제거 및/또는 추가할 수 있다. 브라우저의 특징, 외관 및/또는 구성의 다른 측면들은 내용에 기초하여 커스터마이즈될 수 있다. 브라우저 패널을 생성하기 위한 미리 정해진 일련의 기준을 제공하기 위해 하나 이상의 템플릿이 제공 및/또는 생성될 수 있다. 사용자 및/또는 애플리케이션에 의한 부가적인 브라우저 패널의 개발을 가능하게 해주기 위해 소프트웨어 인터페이스가 제공될 수 있다. 이러한 브라우저와의 사용자 상호작용에 의해 브라우저의 외관 및/또는 기능에서의 추가적인 수정을 할 수 있다.
본 발명의 다른 측면들에 따르면, 통합된 페이지 공간 컨트롤(integrated page space control)을 갖는 쉘 브라우저는 컴퓨터, 그의 운영 체제, 네트워크, 기타 등등의 저장 시스템에 대한 내비게이션 도구(navigation tool)를 제공한다. 본 발명의 적어도 어떤 예들에 따르면, 다수의 서로 다른 윈도우, 애플리케이션 프로그램, 기타 등등에 내비게이션 도구 및/또는 그의 대응하는 사용자 인터페이스 및 디스플레이가 제공되어 있다. 본 발명의 적어도 어떤 예들에서, 내비게이션 도구 및/또는 그의 대응하는 사용자 인터페이스 및 디스플레이 패널(들)은 여러가지 서로 다른 파일, 리스트, 폴더, 페이지 및/또는 다른 저장 요소에 대한 "링크(link)"를 포함하는 윈도우(window) 또는 창(pane)을 포함할 수 있다. 원하는 경우, 서로 다른 애플리케이션 프로그램에 대해, 애플리케이션 프로그램의 일부분에 대해, 운영 체제의 일부분에 대해, 서로 다른 사용자에 의해, 기타 등등에 의해(예를 들어, 컴퓨터 운영 체제를 제공하는) 본 발명의 적어도 어떤 측면들에 따른 내비게이션 도구는 그 일련의 파일, 기타 등등에 및/또는 그 사용자에 관한 정보를 찾아가는 것에 더 적합하도록 또는 그를 위해 커스터마이즈될 수 있다. 본 발명의 적어도 어떤 예들에 따른 내비게이션 도구는 또한 예를 들어 계층적 프로퍼티, 리스트, 자동 리스트(auto list), 폴더, 기타 등등에 의해 사용자의 파일에 관한 정보를 구성 및/또는 디스플레이하는 유용한 방식들을 제공할 수 있다. 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 또한, 선택에 따라서는 계층적 프로퍼티의 사용에 의해, 사용자가 프로퍼티를 파일에 할당하는 것, 파일과 연관된 할당된 프로퍼티를 변경하는 것, 기타 등등이 쉽도록 해줄 수 있다. 게다가, 본 발명의 적어도 어떤 예들에 따르면, 예를 들어 질의-기반 파일 및/또는 검색 시스템에서, 저장된 또는 액세스가능한 파일에 관한 정보의 검색, 찾아내기 및 보기를 위해 내비게이션 도구가 제공될 수 있다.
본 발명의 부가적인 측면들은, 컴퓨터 저장 시스템에 위치하는 및/또는 상기한 바와 같이 컴퓨터 시스템을 통해 액세스가능한 파일에 관한 정보의 구성, 검색, 찾아내기 및/또는 디스플레이를 위해 내비게이션 도구를 갖는 시스템 및 방법을 비롯하여, 여러가지 방법을 수행하기 위해 및/또는 여러가지 시스템을 동작시키기 위해 그 위에 저장되어 있는 컴퓨터-실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 관한 것이다(이에 대해서는 이하에서 보다 상세히 기술함).
본 발명의 하나 이상의 예시적인 측면들은 내비게이션 창 또는 패널 또는 페이지 공간 컨트롤에서의 다중 루트(root)를 생성 및 커스터마이즈하는 방법 및 시스템을 제공한다. 이러한 시스템에서, 사용자는 이러한 대안적인 루트(root)를 통해 관련 문서, 애플리케이션 및 다른 데이터에의 직접 액세스(direct access)를 가능하게 해줌으로써 불필요한 내비게이션을 생략할 수 있다. 사용자는 내비게이션 창에서 원하는 루트(root) 또는 구조를 특정의 위치로 드래그함으로써 내비게이션 창을 커스터마이즈할 수 있다. 사용자는, 루트를 클릭하여 내비게이션 창에 있는 다른 루트들에 대해 특정의 위치로 드래그함으로써, 내비게이션 창에서 루트를 구성 및 재구성할 수 있다. 루트를 바탕화면(desktop)으로 드래그함으로써 추가적으로 그 루트에 대한 바로가기(shortcut)를 생성할 수 있다. 사용자는 또한 각각의 루트의 프로퍼티를 조정하는 옵션을 가질 수 있으며, 그에 의해 추가적인 커스터마이즈화(customizability)를 가능하게 해준다.
본 발명의 한 측면에 따르면, 다중 루트 시스템은 루트가 현재의 시스템에서 사용되는 일반적인 물리적 장소(즉, 물리적 폴더)를 넘어서 다른 유형의 노드를 포함할 수 있게 해준다. 보다 상세하게는, 다중 루트 시스템은 사용자가 내비게이션 창에서 리스트 및 자동리스트(autolist)를 루트로 정의할 수 있게 해준다. 이들 리스트 및 자동리스트는 지정된 일련의 규칙 또는 필터를 만족시키는 파일 또는 다른 데이터를 포함할 수 있다. 게다가, 루트는 사용자의 이메일(예를 들어, MSN
Figure 112007022760413-PCT00005
Hotmail Drive)에 대응하는 커스텀 확장자(custom extension)를 포함할 수 있다. 내비게이션 시스템에 대한 이들 개선은 사용자에게 다양한 애플리케이션에서의 양호한 일련의 내비게이션 컨트롤을 커스터마이즈함에 있어서의 유연성을 상당히 더 허용한다.
본 발명의 측면들은 프로퍼티(또는 메타데이터)의 사용자 수정을 위한 시스템 및 방법을 제공할 수 있다. 한 측면에서, 다중값 프로퍼티(multi-value property)를 포함할 수 있는 파일 프로퍼티의 디스플레이를 포함하는 쉘 브라우저가 제공된다. 사용자는 다중값 프로퍼티를 편집할 수 있고, 시스템은 지능적으로 사용자가 다중값 프로퍼티를 편집하는 것을 보조할 수 있다. 시스템은 다중값 프로퍼티 값을 토큰화(tokenize)할 수 있고, 또 필드 옵션을 사용자에게 알려주는 것(reminder)으로서 다중값 프로퍼티 필드 내에 지속적인 프롬프트 텍스트(persisten prompt text)를 제공할 수 있다.
본 시스템은 취합된 프로퍼티 값들을 디스플레이할 수 있고, 취합된 값들을 이 값들이 적용되는 파일들과 연관시키기 위해 시각적 차이를 포함할 수 있다. 취합된 값들을 편집하는 것이 가능하며, 취합된 다중값 프로퍼티를 편집할 때, 본 시스템은 사용자가 이미 사용되고 있는 엔트리 및 프로퍼티 값이 사용되는 컨텍스트 등의 다양한 인자에 기초하여 엔트리를 선택(또는 회피)하는 것을 지능적으로 보조할 수 있다. 다수의 선택된 파일에 대한 다중값 프로퍼티를 취합할 때, 본 시스템은 또한 특정의 값들이 여러가지 파일에 나타난 순서를 유지하는 것을 돕기 위해 조치들을 취할 수 있다. 파일의 다중값 프로퍼티의 시작에 더 자주 나타나는 경향이 있는 값들은 대응하는 취합된 다중값 프로퍼티의 시작 쪽에 나타나는 경향이 있다.
본 발명의 다른 측면은 사용자 내비게이션에 기초한 데이터의 동적 내비게이션 방법 및 시스템을 제공한다. 본 방법은, 사용자가 제1 차원에서 수동으로 내비게이션을 하고 있는 동안에, 제2 차원에서 데이터를 자동적으로 동적으로 스크롤한다. 본 방법은 윈도우 창에서의 미리 정해진 볼 수 있는 영역에 내용의 뷰(view)를 디스플레이하는 단계를 포함한다. 본 방법은 또한 사용자 입력의 결과 관련 노드가 적어도 부분적으로 흐릿하게 되는지 여부를 판정하는 단계를 포함한다. 본 방법은 또한 관련 노드가 완전히 보이도록 또는 향상된 가시성을 갖도록 미리 정해진 거리 동안 내용의 뷰를 자동적으로 동적으로 수평으로 스크롤하는 단계를 포함한다. 본 발명의 여러가지 실시예들에서, 관련 노드는 입력 또는 보기 포커스(input or view focus)를 갖는 트리 컨트롤(tree control)(예를 들어, 내비게이션 창, 내비게이션 패널, 페이지 공간 컨트롤, 기타 등등)에서의 노드 또는 사용자의 마우스 포인터 또는 다른 입력 표시 근방에서 가장 가까운 노드일 수 있다. 본 발명이 방법으로서 구현될 수 있다는 것을 잘 알고 있지만, 본 발명은 또한 폴더 트리 컨트롤에서의 사용자 내비게이션을 위한 또는 다른 데이터의 내비게이션을 위한 시스템으로 구현될 수도 있으며, 이에 대해서는 본 명세서에 기술되어 있다.
본 발명의 여러가지 측면들은 데이터 파일에 액세스하기 위해 하나 이상의 프로그래밍 인터페이스 또는 다른 인터페이스를 통해 다른 코드 모듈들과 통신할 수 있다. 예를 들어, 본 발명의 측면들은 하나 이상의 사용자 인터페이스(UI) 컨트롤을 포함하기 위한 전용의 확장 영역(dedicated extensibility region)을 갖는 파일 대화상자를 제공한다. 확장 영역에 포함될 수 있는 컨트롤은 미리 정의된 UI 컨트롤 유형의 컬렉션으로부터 선택가능하다. 애플리케이션이 OS에 파일 대화상자를 디스플레이하도록 요청할 때, 애플리케이션은 미리 정의된 컬렉션에 그 유형들의 하나 이상의 컨트롤을 포함하도록 요청할 수 있다. 그러면, OS는 요청된 컨트롤을 디스플레이된 대화상자의 확장 영역에 배치한다. 애플리케이션은 식별된 컨트롤의 대화상자 내에서의 위치를 나타내는 데이터를 명시적으로 제공할 필요가 없다. 애플리케이션은 또한 컨트롤이 그룹을 이루어 배치되도록 및/또는 그룹들 간에 분리자(separator)가 포함되도록 요청할 수 있다.
도 1은 본 발명을 구현하기에 적합한 범용 컴퓨터 시스템의 블록도.
도 2는 본 발명에 따른 가상 폴더 시스템의 블록도.
도 3은 사용자가 선택된 파일 및 폴더를 뽑아내는 질의를 제공하는 루틴을 나타내는 흐름도.
도 4는 디폴트 질의 또는 사용자로부터의 질의에 따라 가상 폴더가 구성되어 화면 상에 디스플레이되는 루틴을 나타내는 흐름도.
도 5는 하드 드라이브 상에서의 물리적 폴더 배열에 따른 폴더 구조의 트리 다이어그램.
도 6은 가상 폴더 구조의 트리 다이어그램.
도 7은 클라이언트 스택(clients stack)이 계약(contract) 및 연도(year)에 의해 추가적으로 필터링되어 있는, 도 6의 가상 폴더 구조의 트리 다이어그램.
도 8은 고객 스택의 계약이 연도에 의해 추가적으로 필터링되어 있는, 도 7의 가상 폴더 구조의 트리 다이어그램.
도 9는 계약 스택이 고객과 연도로 추가적으로 필터링되어 있고 또 고객이 또다시 연도에 의해 추가적으로 필터링되어 있는, 도 6의 가상 폴더 구조의 트리 다이어그램.
도 10은 문서 라이브러리의 스택을 나타내는 화면 디스플레이를 나타낸 도면.
도 11은 도 10의 ABC 회사 스택에서의 문서들을 나타내는 화면 디스플레이를 나타내는 도면.
도 12는 도 11의 문서에 대해 스태킹 기능(stacking function)이 선택되어 있는 화면 디스플레이를 나타낸 도면.
도 13은 도 12의 스태킹 기능에 대해 "저작자별 스택(stack by author)" 파라미터가 선택되어 있는 화면 디스플레이를 나타낸 도면.
도 14는 도 13의 파일들이 저작자별로 스태킹되어 있는 화면 디스플레이를 나타낸 도면.
도 15는 스태킹 기능이 선택되어 있고 또 도 14의 파일들을 재스태킹(restack)하기 위해 "카테고리별 스택(stack by category)" 옵션이 추가적으로 선택되어 있는 화면 디스플레이를 나타낸 도면.
도 16은 도 14의 파일들이 카테고리별로 재스태킹되어 있는 화면 디스플레이를 나타낸 도면.
도 17은 물리적 폴더를 보여주기 위한 바로가기 링크(quick link)가 선택되어 있는 화면 디스플레이를 나타낸 도면.
도 18은 도 17의 가상 폴더 스택의 파일들을 포함하고 있는 물리적 폴더가 디스플레이되어 있는 화면 디스플레이를 나타낸 도면.
도 19는 사용자가 가상 폴더를 직접 조작할 수 있는 루틴을 나타낸 흐름도.
도 20은 새로운 "West Coast" 스택이 도 10의 스택들에 추가되어 있는 화면 디스플레이를 나타낸 도면.
도 21은 "ABC 회사" 스택으로부터 도 20의 "West Coast" 스택으로 파일들을 복사하기 위해 직접 조작이 사용되는 화면 디스플레이를 나타낸 도면.
도 22는 시스템이 동적으로 새로운 필터 항(filter term)을 생성하는 루틴을 나타내는 흐름도.
도 23은 시스템이 필터 항의 선택에 기초하여 항목들을 필터링하는 루틴을 나타내는 흐름도.
도 24는 도 10의 스택들이 항 "AB"에 의해 필터링되어 있는 화면 디스플레이를 나타낸 도면.
도 25는 도 10의 스택들이 항 "ABC"에 의해 필터링되어 있는 화면 디스플레이를 나타낸 도면.
도 26은 도 10의 스택들에 대해 필터 항 "2002년"이 선택되어 있는 화면 디스플레이를 나타낸 도면.
도 27은 도 10의 스택들이 "2002년" 및 필터 항 "월"의 추가적인 선택에 의 해 필터링되어 있는 화면 디스플레이를 나타낸 도면.
도 28은 필터링을 위한 월(month)을 선택하기 위한 리스트가 제공되어 있는 화면 디스플레이를 나타낸 도면.
도 29는 1월의 월에 의해 도 10의 스택들이 추가적으로 필터링되어 있고 또 "일(day)"의 필터 항을 추가적으로 디스플레이하고 있는 화면 디스플레이를 나타낸 도면.
도 30은 새로운 바로가기 링크를 생성하는 루틴을 나타내는 흐름도.
도 31은 도 29의 필터링에 기초하여 "1월 작업(January Work)"이라고 하는 새로운 바로가기 링크를 생성하는 화면 디스플레이를 나타낸 도면.
도 32는 "모든 저작자(All Authors)"의 바로가기 링크가 선택되어 있는 화면 디스플레이를 나타낸 도면.
도 33은 도 32의 저작자 전부의 리스트가 제공되어 있는 화면 디스플레이를 나타낸 도면.
도 34는 도 33의 리스트로부터 "저작자 1"가 선택되어 있고 또 저작자 1의 문서가 나타내어져 있는 화면 디스플레이를 나타낸 도면.
도 35는 새로운 라이브러리를 생성하는 루틴을 나타낸 흐름도.
도 36은 여러가지 이용가능한 라이브러리의 컬렉션이 나타내어져 있는 화면 디스플레이를 나타낸 도면.
도 37은 가상 폴더 컬렉션의 범위를 정의하는 루틴을 나타낸 흐름도.
도 38은 가상 폴더 컬렉션의 범위를 형성할 수 있는 여러가지 소스를 나타낸 블록도.
도 39는 가상 폴더 컬렉션에 비파일 항목(non-file item)을 포함시키는 루틴을 나타내는 흐름도.
도 40은 가상 폴더에 포함된 여러가지 비파일 항목들을 보여주는 화면 디스플레이를 나타낸 도면.
도 41은 본 발명을 구현하기에 적합한 예시적인 네트워크화된 컴퓨터 환경을 나타낸 도식도.
도 42는 종래 기술에서 발견되는, 컴퓨터 파일 시스템에서 파일들을 디스플레이하는 것과 연관된 종래의 주소 바를 갖는 예시적인 파일 뷰어를 나타낸 도식도.
도 43은 본 발명에 따라 형성된 가상 주소 바에서의 가상 주소에 따라 컴퓨터 파일 시스템에서 파일들을 디스플레이하기 위한 예시적인 파일 뷰어를 나타낸 도식도.
도 44a는 파일 시스템에서 내비게이션을 하기 위해 가상 주소 바에서의 가상 주소의 세그먼트를 선택하는 것을 나타낸 도 5의 예시적인 파일 뷰어의 도식도.
도 44b는 가상 주소 바에서의 가상 주소의 세그먼트를 선택한 결과를 나타낸, 도 45a의 예시적인 파일 뷰어의 도식도.
도 44c는 가상 주소의 세그먼트가 2개 이상의 필터를 포함하는 컴퓨터 파일 시스템에서 파일을 디스플레이하는 예시적인 파일 뷰어를 나타낸 도식도.
도 45a 내지 도 45d는 가상 주소 바에서의 가상 주소의 세그먼트와 연관된 피어 필터(peer filter)를 선택하는 것을 나타낸 도식도.
도 46a 내지 도 46d는 가상 주소 바에서의 가상 주소에 부가적인 필터를 추가하는 것을 나타낸 도식도.
도 47a 및 도 47b는 가상 주소가 가상 주소 바의 디스플레이 용량을 초과하는 경우 가상 주소를 디스플레이하는 예시적인 가상 주소 바를 나타낸 도식도.
도 47c는 본 발명의 한 측면에 따른 오버플로우 조건에서 가상 주소를 디스플레이하는 예시적인 가상 주소 바를 나타낸 도식도.
도 48a는 파일 시스템에서 필터가 가상 위치 및 실제 위치 둘다를 참조하는 경우에 가상 주소를 갖는 예시적인 가상 주소 바를 나타낸 도식도.
도 48b는 종래의 주소 바를 디스플레이하도록 구성되어 있는 도 48a의 예시적인 가상 주소 바를 나타낸 도식도.
도 49는 가상 주소 바에서 대안의 필터를 선택하는 대안의 필터 선택 루틴을 나타낸 흐름도.
도 50은 가상 주소 바에서의 가상 주소에 필터를 추가하는 예시적인 필터 추가 루틴을 나타낸 흐름도.
도 51a는 본 발명의 일 실시예에 따른 편집 컨트롤을 갖는 쉘 브라우저에 대한 예시적인 그래픽 사용자 인터페이스의 블록도.
도 51b는 본 발명의 일 실시예에 따른 하나 이상의 편집 컨트롤을 갖는 쉘 브라우저에 대한 예시적인 그래픽 사용자 인터페이스의 블록도.
도 52는 쉘 브라우저에서의 환영 창(welcome pane)의 개략도.
도 53은 쉘 브라우저에서의 선택된 창의 개략도.
도 54는 본 발명의 일 실시예에 따라 쉘 브라우저에서 사용자가 메타데이터를 수정할 수 있게 해주는 컨텍스트 메뉴를 포함하는, 도 53의 선택된 창의 개략도.
도 55는 본 발명의 일 실시예에 따라 쉘 브라우저 내에서 환영 창에 디스플레이되는 메타데이터를 사용자가 수정할 수 있게 해주는 방법을 나타낸 흐름도.
도 56은 본 발명의 일 실시예에 따라 쉘 브라우저 내에서 선택된 창에 디스플레이되는 메타데이터를 사용자가 수정할 수 있게 해주는 방법을 나타낸 흐름도.
도 57은 쉘 브라우저에 디스플레이되는 항목과 연관된 사용자 수정가능 메타데이터를 포함하는 데이터 구조체의 블록도.
도 58은 사진이 아닌(non-pictorial) 다른 파일 및 폴더를 보는 데 사용되는 쉘 브라우저 환경 내에서 폴더에 저장되어 있는 사진들을 브라우징하는 종래 기술의 그래픽 사용자 인터페이스의 개략도.
도 59는 쉘 브라우저에 대한 예시적인 그래픽 사용자 인터페이스의 블록도.
도 60은 쉘 브라우저에서의 환영 창의 개략도.
도 61은 쉘 브라우저에서의 선택된 창의 개략도.
도 62는 본 발명의 일 실시예에 따른, 확장 컨트롤(extended control)을 갖는 쉘 브라우저에서의 선택된 창의 개략도.
도 63은 본 발명의 일 실시예에 따른, 도 61과 유사하지만 사용자가 쉘 브라우저에서 프리뷰어를 선택할 수 있게 해주는 컨텍스트 메뉴를 포함하는 선택된 창 의 개략도.
도 64a는 본 발명의 일 실시예에 따른, 사용자가 쉘 브라우저에서 프리뷰어를 선택할 수 있게 해주는 방법을 나타낸 흐름도.
도 64b는 본 발명의 일 실시예에 따른, 시스템이 쉘 브라우저에서 프리뷰어를 선택할 수 있게 해주는 방법을 나타낸 흐름도.
도 65는 본 발명의 일 실시예에 따른, 쉘 브라우저에서 써트 파티 프리뷰어의 사용을 가능하게 해주는 방법을 나타낸 흐름도.
도 66은 쉘 브라우저에서의 다수의 프리뷰어를 나타내는 정보를 포함하는 데이터 구조체의 블록도.
도 67은 본 발명의 하나 이상의 예시적인 측면들에 따른 범위 입력 컨트롤을 나타낸 도면.
도 68은 본 발명의 하나 이상의 예시적인 측면들에 따른 범위 입력 컨트롤을 나타낸 도면.
도 69는 본 발명의 하나 이상의 예시적인 측면들에 따른 범위 입력 컨트롤을 나타낸 도면.
도 70은 본 발명의 하나 이상의 예시적인 측면들에 따른 범위 입력 컨트롤을 나타낸 도면.
도 71은 본 발명의 하나 이상의 예시적인 측면들에 따른 범위 입력 컨트롤을 나타낸 도면.
도 72는 본 발명의 하나 이상의 예시적인 측면들에 따른 범위를 지정하는 방 법을 나타낸 도면.
도 73은 본 발명의 예시적인 실시예에 따른 통합된 리스트 창을 갖는 탐색기 프레임(explorer frame)을 나타낸 도면.
도 74는 본 발명의 예시적인 실시예에 따른 리스트 객체(list object)에 대한 컨텍스트 메뉴를 나타낸 도면.
도 75는 본 발명의 예시적인 실시예에 따른 태스크-기반 컨트롤을 갖는 탐색기 프레임의 일부분을 나타낸 도면.
도 76은 본 발명의 예시적인 실시예에 따른 통합된 태스크-기반 리스트 창을 갖는 탐색기 프레임을 나타낸 도면.
도 77은 시스템 상에 생성되어질 파일의 미리보기 표현을 포함하는 예시적인 GUI 뷰를 나타낸 도면.
도 78은 시스템 상에 생성되어질 파일의 미리보기 표현을 포함하는 다른 예시적인 GUI 뷰를 나타낸 도면.
도 79는 시스템 상에 생성되어질 파일의 미리보기 표현을 포함하는 GUI 뷰의 2개의 부가적인 예를 나타낸 도면.
도 80은 시스템 상에 생성되어질 파일의 미리보기 표현을 제공하는 예시적인 파일 저장 대화상자를 나타낸 도면.
도 81a 및 도 81b는 시스템 상에 생성되어질 파일의 미리보기 표현을 구현하는 예시적인 프로세스를 나타낸 도면.
도 82는 브라우저 뷰들 간의 관계를 나타낸 도면.
도 83은 본 발명의 측면들에 따른 예시적인 브라우저 인터페이스 레이아웃을 나타낸 도면.
도 84는 본 발명의 측면들에 따른 다른 예시적인 브라우저 인터페이스 레이아웃을 나타낸 도면.
도 85는 본 발명의 측면들에 따른, 파일들을 브라우징하는 예시적인 프로세스를 나타낸 도면.
도 86은 본 발명의 측면들을 구현하는 데 사용될 수 있는 데이터 구조체, 애플리케이션 및/또는 서브루틴들 간의 예시적인 논리적 관계를 나타낸 도면.
도 87a 및 도 87b는 각각 본 발명의 적어도 어떤 예들에 따른 허용(permitted) 및 비허용(non-permitted) 계층적 프로퍼티 경로의 예들을 나타낸 도면.
도 88은 본 발명의 예들에 따른 연관된 계층적 프로퍼티를 갖는 새로운 항목(예를 들어, 파일)을 저장하는 사용자 인터페이스의 일례를 나타낸 도면.
도 89는 본 발명의 예들에 따른 저장된 항목(예를 들어, 디지털 사진 파일)에 관한 정보를 포함하는 예시적인 "미리보기 패널"을 나타낸 도면.
도 90은 본 발명의 일례에 따른, 계층적 프로퍼티의 계층적 배열을 변경하는 예를 나타낸 도면.
도 91은 본 발명의 어떤 예들에 따른, 내비게이션 패널을 갖는 예시적인 사용자 인터페이스를 나타낸 도면.
도 92a 및 도 92b는 본 발명의 예들에 따른, 내비게이션 및 디스플레이 동작 동안에 사용될 수 있는 서로 다른 범위의 예들을 나타내는 도면.
도 93 내지 도 103은 본 발명의 예들에 따른 내비게이션 및 디스플레이 동작에서의 사용자 인터페이스, 디스플레이, 및 다중 프로퍼티 또는 다른 정보 선택 동안의 동작의 예를 나타낸 도면.
도 104 내지 도 111은 본 발명의 예들에 따른 내비게이션 및 디스플레이 동작에서의 사용자 인터페이스, 디스플레이, 및 항목들의 그룹화, 스태킹(stacking) 및 필터링 동안의 동작의 예를 나타낸 도면.
도 112는 본 발명의 예시적인 실시예에 따른 다중 루트 내비게이션 창(multiple root navigation pane)을 구현하는 쉘 브라우저 윈도우의 부분적인 스크린샷을 나타낸 도면.
도 113은 본 발명의 예시적인 실시예에 따른 다중 루트 내비게이션 창을 나타낸 도면.
도 114a는 본 발명의 예시적인 실시예에 따른 내비게이션 창을 커스터마이즈하는 방법을 나타낸 도면.
도 114b는 본 발명의 예시적인 실시예에 따른 다중 루트 내비게이션 창에서의 페이지 노드를 재정렬(reorder)하는 방법을 나타낸 도면.
도 115는 본 발명의 예시적인 실시예에 따른 내비게이션 창을 커스터마이즈하는 구성 대화상자(configuration dialog)를 나타낸 도면.
도 116a는 본 발명의 일 실시예에 따른 페이지 노드 프로퍼티 구성 대화상자를 나타낸 도면.
도 116b는 본 발명의 예시적인 실시예에 따른 보이지 않는 루트(invisible root)를 갖는 다중 루트 내비게이션 창을 나타낸 도면.
도 117a 및 도 117b는 본 명세서에 기술된 기능들을 이용할 수 있는 프로세스의 예시적인 흐름도를 나타낸 도면.
도 118은 예시적인 파일 브라우저 사용자 인터페이스 및 여러가지 사용자 인터페이스 요소를 나타낸 도면.
도 119는 미리보기 영역이 크기 조정(resize)되어 있는, 도 118에서의 인터페이스의 수정된 버전을 나타낸 도면.
도 120은 미리보기 영역이 크기 조정되어 있는, 도 118에서의 인터페이스의 다른 수정된 버전을 나타낸 도면.
도 121은 다른 배향의 미리보기 요소를 갖는 대안적인 브라우저 인터페이스를 나타낸 도면.
도 122는 미리보기 인터페이스를 포함하는 통상적인 파일 대화상자의 예를 나타낸 도면.
도 123은 스태킹된 미리보기 표현의 예를 나타낸 도면.
도 124는 도 123에 도시된 예보다 많은 스태킹된 미리보기를 갖는, 스태킹된 미리보기 표현의 다른 예를 나타낸 도면.
도 125는 다수의 파일이 선택되어 있을 때 행해지는 미리보기의 예를 나타낸 도면.
도 126은 다수의 파일이 선택되어 있는 예시적인 브라우저, 및 대응하는 프 로퍼티 및 파일의 시각적 차이를 나타낸 도면.
도 127은 다수의 파일이 선택되어 있는 예시적인 브라우저, 및 취합된 프로퍼티 필드를 나타낸 도면.
도 128은 프로퍼티를 하나 이상의 선택된 파일과 상관시키기 위해 시각적 차이를 갖는, 취합된 프로퍼티 필드의 예를 나타낸 도면.
도 129a 및 도 129b는 몇가지 선택된 다중값 프로퍼티가 그의 값들을 취합할 수 있는 예시적인 프로세스를 나타낸 도면.
도 130은 다중값 프로퍼티 필드의 일례를 나타낸 도면.
도 131은 자동선택(autoselect) 기능에 대한 예시적인 프로세스를 나타낸 도면.
도 132는 자동완성(autocomplete) 기능을 갖는 다중값 프로퍼티 필드의 일례를 나타낸 도면.
도 133은 자동완성 기능에 대한 예시적인 프로세스를 나타낸 도면.
도 134는 본 발명의 측면들에 따른, 가상 주소 바에서 자식 필터(child filter)를 선택하는 자식 필터 선택 루틴을 나타낸 흐름도.
도 135a 내지 도 135d는 가상 주소 바에서 가상 주소의 세그먼트와 연관된 자식 필터를 선택하는 것을 나타낸 도식도.
도 136은 윈도우 창에 디스플레이되는 종래 기술의 폴더 트리 컨트롤을 나타낸 도면.
도 137은 본 발명의 여러가지 예시적인 측면들에 따라 구현된 계층적 트리 컨트롤 구조의 뷰를 나타낸 도면.
도 138a 및 도 138b는 본 발명의 여러가지 예시적인 측면들에 따라 구현된 폴더 트리 컨트롤의 스크린샷을 나타낸 도면.
도 139는 본 발명의 여러가지 예시적인 실시예들에 따른, 컨텐츠 여기저기를 찾아다니고 있는 사용자에게 디스플레이하기 위한 컨텐츠를 제공하는 방법을 설명하는 플로우차트.
도 140은 종래의 운영 체제에서의 그룹화를 갖는 자세히 보기(details view)를 나타낸 도면.
도 141a는 본 발명의 측면들에 따른, 자세히 보기에 프로퍼티 컨트롤을 포함하는 프로퍼티 헤더를 나타낸 도면.
도 141b는 본 발명의 측면들에 따른, 자세히 보기에서 프로퍼티 헤더에서의 버튼 분할 프로퍼티 컨트롤(split button property control)을 나타낸 도면.
도 141c는 본 발명의 측면들에 따른, 자세히 보기에서 프로퍼티 헤더에서의 프로퍼티 컨트롤의 배열 및 필터 드롭다운 메뉴를 나타낸 도면.
도 141d는 본 발명의 측면들에 따른, 배열 및 필터 드롭다운 메뉴의 필터 부분의 일부를 나타낸 도면.
도 142a는 본 발명의 측면들에 따른, 자세히 보기 이외의 보기에서의 프로퍼티 컨트롤을 포함하는 프로퍼티 헤더를 나타낸 도면.
도 142b는 본 발명의 측면들에 따른, 자세히 보기 이외의 보기에서 프로퍼티 헤더에서의 프로퍼티 컨트롤의 배열 및 필터 드롭다운 메뉴를 나타낸 도면.
도 142c는 본 발명의 측면들에 따른, 자세히 보기 이외의 보기에서 보기(view)가 프로퍼티 헤더에서의 프로퍼티 컨트롤들 중 하나에 의해 필터링되어 있는 경우의 프로퍼티 헤더를 나타낸 도면.
도 143은 본 발명의 측면들에 따른, 뷰(view)에서의 오버플로우 프로퍼티 컨트롤의 배열 및 필터 드롭다운 메뉴를 나타낸 도면.
도 144는 본 발명의 측면들에 따른 달력 컨트롤을 나타낸 도면.
도 145a 내지 도 145m은 본 발명의 하나 이상의 실시예들이 구현될 수 있는 범용 컴퓨터 환경에서의 프로그래밍 인터페이스를 나타낸 도면.
도 146 및 도 147은 본 발명의 적어도 어떤 실시예들에 따른 "파일 열기(Open File)" 대화상자의 예를 나타낸 도면.
도 148 및 도 149는 본 발명의 적어도 어떤 실시예들에 따른 "파일 저장(Save File)" 대화상자의 예를 나타낸 도면.
도 150 내지 도 154b는 본 발명의 적어도 어떤 실시예들에 따른 파일 대화상자에 추가될 수 있는 부가적인 사용자 인터페이스(UI) 컨트롤의 예를 나타낸 도면.
도 155 및 도 156은 본 발명의 적어도 어떤 실시예들에 따른 UI 컨트롤의 자동 배열을 나타낸 도면.
도 157 및 도 158은 본 발명의 실시예들에 따라 애플리케이션이 파일 대화상자의 생성을 요청하는 방식과 종래 기술에서 파일 대화상자가 요청되는 방식 간의 차이를 개략적으로 나타낸 블록도.
본 발명의 상기한 측면들 및 그의 부속 이점들 중 다수는, 첨부 도면과 관련하여 기술되어 있는, 이하의 상세한 설명을 참조함으로써 보다 잘 이해될 것이다.
본 발명은 다수의 바람직한 특징들을 포함하는 파일 시스템 쉘에 관한 것이다. 본질적으로, 쉘은 컴퓨터 상에 저장되어 있는 파일 및 다른 항목들을 보고 조작할 수 있는 기능을 사용자에게 제공한다. 이하의 설명은 먼저 도 1 내지 도 66에 도시되어 있는 특징들의 요약을 제공하며, 이어서 상세한 설명을 제공한다.
요약하면, 도 1 내지 도 9는 일반적으로 가상 폴더에 대한 전체적인 시스템에 관한 것이다. 가상 폴더는 종래의 사용자 인터페이스가 서로 다른 뷰에서 사용자에게 정규의 파일 및 폴더(디렉토리라고도 함)를, 디스크 상의 실제의 물리적인 기본 파일 시스템 구조 대신에 그의 메타데이터에 기초하여, 보여줄 수 있게 해주는 방법을 제공한다. 도 10 내지 도 18은 일반적으로 가상 폴더가 데이터베이스에 저장되어 있는 임의의 프로퍼티를 가질 수 있고 또 이를 폴더와 유사한 컨테이너(container)로서 표현할 수 있는 기능과 관련이 있는 스택(stack)에 관한 것이다. 도 19 내지 도 21은 일반적으로 표준의 폴더를 조작하는 데 현재 사용되는 메카니즘(예를 들어, 복사, 붙여넣기, 클릭 및 드래그, 기타 등등)과 유사한 가상 폴더를 조작하는 메카니즘을 제공하는 것과 관련이 있는, 가상 폴더의 직접 조작에 관한 것이다. 도 22 내지 도 29는 일반적으로 일련의 파일/항목의 범위를 축소시키는 일련의 도구를 제공하는 필터에 관한 것이다. 도 30 내지 도 34는 일반적으로 일련의 파일/항목의 유용한 뷰(view)를 생성하기 위해 클릭될 수 있는 일련의 미리 정의된 링크인 바로가기 링크(quick link)에 관한 것이다. 도 35 및 도 36은 일반적으로 유용한 유형의 파일의 그룹들이 서로 연관될 수 있고 또 특정의 유형의 항목에 관련되어 있는 도구 및 활동이 제공될 수 있다는 개념에 관련되어 있는 라이브러리에 관한 것이다. 도 37 및 도 38은 일반적으로, 모든 파일/항목이 한 장소로부터 제공되는 것처럼 동일한 편의성으로 사용자에게 제공되도록, 다수의 물리적 장소(예를 들어, 서로 다른 하드 드라이브, 서로 다른 컴퓨터, 네트워크 장소에 있는 컴퓨터, 기타 등등)로부터 파일/항목을 획득할 수 있다는 개념에 관련되어 있는 범위(scope)에 관한 것이다. 도 39 및 도 40은 일반적으로 파일과 함께 데이터베이스에 포함될 수 있고 또 이메일 및 연락처 등의 항목을 포함할 수 있는 비파일 항목에 관한 것이다. 도 41 내지 도 50은 일반적으로 복수의 세그먼트(각각의 세그먼트는 내용을 선택하기 위한 필터에 대응함)를 포함하는 가상 주소 바에 관한 것이다. 도 51 내지 도 57은 일반적으로 쉘 브라우저에 관한 것으로서, 이 쉘 브라우저를 사용하여 사용자는 항목과 연관된 메타데이터에 기초하여 그 항목을 용이하게 식별할 수 있다. 도 58 내지 도 66은 일반적으로 다수의 항목 유형을 나타내는 복수의 항목을 디스플레이하도록 구성되어 있는 쉘 브라우저에서의 객체 프리뷰어의 기능을 확장하는 것에 관한 것이다. 이하의 설명은 본 발명의 이들 측면 각각에 대한 상세한 설명을 제공한다.
상기한 바와 같이, 도 1 내지 도 9는 일반적으로 가상 폴더를 구현하는 시스템에 관한 것이다. 가상 폴더는 파일 시스템에 현재 사용되고 있는 동일 또는 유사한 사용자 인터페이스를 이용한다. 가상 폴더는 서로 다른 뷰에서 정규의 파일 및 폴더(디렉토리라고도 함)를, 디스크 상에서의 실제의 물리적인 기본 파일 시스 템 구조 대신에 그의 메타데이터에 기초하여, 사용자에게 보여준다. 파일 시스템을 관리하는 데 현재 사용되는 것과 유사한 컨트롤을 사용하여 사용자가 그의 파일 및 폴더를 조작할 수 있게 해주는 장소-독립적인 뷰(location-independent view)가 생성된다. 일반적으로, 이것은 사용자가, 관리 및 구성이 시스템의 별도 부분으로서 행해지지 않고, 파일 자체에서의 본질적인 프로퍼티에 기초하여 그의 파일을 구성 및 재배열할 수 있다는 것을 의미한다. 가상 폴더는, 파일 또는 항목의 한 뷰가 서로 다른 물리적 장소에 있는 파일 또는 항목을 보여줄 수 있도록, 동일한 컴퓨터 시스템 내의, 다수의 컴퓨터들 또는 서로 다른 네트워크 장소들 사이의 다수의 디스크 드라이브로부터 등의 서로 다른 가상 또는 물리적 장소로부터의 파일 또는 항목을 표현할 수 있다. 일 실시예에서, 서로 다른 항목 또는 파일은 포함되도록 하기 위해 IP 네트워크를 통해 연결되기만 하면 된다.
가상 폴더 모델링은 또한 전통적으로 비파일인 엔티티에 대해 사용될 수 있다. 이것의 응용은 전통적으로 비파일인 엔티티를 보여주기 위해 파일 및 폴더(즉, 객체 및 컨테이너)와 유사한 일련의 사용자 인터페이스를 갖는 것이다. 이러한 비파일 엔티티의 한 예는 이메일이지만, 다른 예는 연락처 데이터베이스로부터의 연락처 정보이다. 이러한 방식으로, 가상 폴더는 표시되는 데이터가 파일로부터 온 것인지 비파일 엔티티로부터 온 것인지에 상관없이 동작하는 장소-독립적인, 메타데이터-기반의 뷰 시스템을 제공한다. 일반적으로, 이들 측면은 사용자가 그의 파일 및 데이터를 조작하게 하는 것, 통상적인 사용자 인터페이스 기술(드래그 앤 드롭, 더블클릭, 기타 등등) 둘다를 사용하는 것은 물론 여러가지 데이터 유형 의 풍부한 통합을 이용하는 것의 관점에서 더 많은 유연성을 가능하게 해준다.
도 1 및 이하의 설명은 본 발명이 구현될 수 있는 적당한 컴퓨팅 환경에 대한 간략한 일반적인 설명을 제공하기 위한 것이다. 꼭 그럴 필요는 없지만, 본 발명은 퍼스널 컴퓨터에 의해 실행되는, 프로그램 모듈 등의 컴퓨터-실행가능 명령어의 일반적인 관점에서 기술되어 있다. 일반적으로, 프로그램 모듈은 특정의 작업을 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 문자, 컴포넌트, 데이터 구조체, 기타 등등을 포함한다. 당업자라면 알고 있는 바와 같이, 본 발명은 핸드-헬드 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그램가능 가전 기기, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 기타 등등을 비롯한 다른 컴퓨터 시스템 구성으로 실시될 수 있다. 본 발명은 또한 작업들이 통신 네트워크를 통해 링크되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 메모리 저장 장치 및 원격 메모리 저장 장치 둘다에 위치될 수 있다.
도 1을 참조하면, 본 발명을 구현하는 예시적인 시스템은 프로세싱 유닛(21), 시스템 메모리(22), 및 시스템 메모리(22)를 비롯한 여러가지 시스템 컴포넌트를 프로세싱 유닛(21)에 연결시키는 시스템 버스(23)를 포함하는 종래의 퍼스널 컴퓨터(20) 형태의 범용 컴퓨팅 장치를 포함한다. 시스템 버스(23)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 및 다양한 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스를 비롯한 몇가지 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리는 판독 전용 메모리(ROM)(24) 및 랜덤 액세스 메모리(RAM)(25)를 포 함한다. 시동 중과 같은 때에 퍼스널 컴퓨터(20) 내의 요소들 간에 정보를 전송하는 것을 돕는 기본적인 루틴을 포함하는 기본 입/출력 시스템(BIOS)(26)은 ROM(24)에 저장되어 있다. 퍼스널 컴퓨터(20)는 또한 하드 디스크(39)로부터 판독하거나 그에 기록하기 위한 하드 디스크 드라이브(27), 분리형 자기 디스크(29)로부터 판독하거나 그에 기록하기 위한 자기 디스크 드라이브(28), 및 CD-ROM 또는 다른 광학 매체 등의 분리형 광학 디스크(31)로부터 판독하거나 그에 기록하기 위한 광학 디스크 드라이브(30)를 포함한다. 하드 디스크 드라이브(27), 자기 디스크 드라이브(28) 및 광학 디스크 드라이브(30)는 각각 하드 디스크 드라이브 인터페이스(32), 자기 디스크 드라이브 인터페이스(33), 및 광학 드라이브 인터페이스(34)를 통해 시스템 버스(23)에 연결된다. 이들 드라이브 및 그의 연관된 컴퓨터-판독가능 매체는 컴퓨터 판독가능 명령어, 데이터 구조체, 프로그램 모듈, 및 퍼스널 컴퓨터(20)에 대한 다른 데이터의 비휘발성 저장을 제공한다. 본 명세서에 기술된 예시적인 환경이 하드 디스크(39), 분리형 자기 디스크(29), 및 분리형 광학 디스크(31)를 이용하지만, 당업자라면 자기 카세트, 플래쉬 메모리 카드, DVD(digital video disk), 베르누이 카트리지(Bernoulli cartridge), 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 기타 등등의, 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 다른 유형의 컴퓨터-판독가능 매체도 역시 예시적인 운영 환경에서 사용될 수 있다는 것을 잘 알 것이다.
운영 체제(35), 하나 이상의 애플리케이션 프로그램(36), 기타 프로그램 모듈(37) 및 프로그램 데이터(38)를 비롯한 다수의 프로그램 모듈이 하드 디스 크(39), 자기 디스크(29), 광학 디스크(31), ROM(24) 또는 RAM(25) 상에 저장될 수 있다. 다른 입력 장치(도시 생략)는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너, 기타 등등을 포함할 수 있다. 이들 및 다른 입력 장치는 종종 시스템 버스(23)에 연결되어 있는 직렬 포트 인터페이스(46)를 통해 프로세싱 장치(21)에 연결되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus, 범용 직렬 버스) 등의 다른 인터페이스에 의해 연결될 수도 있다. 모니터(47) 형태의 디스플레이도 역시 비디오 카드 또는 어댑터(48) 등의 인터페이스를 통해 시스템 버스(23)에 연결된다. 하나 이상의 스피커(57)도 역시 오디오 어댑터(56) 등의 인터페이스를 통해 시스템 버스(23)에 연결될 수 있다. 디스플레이 및 스피커 이외에, 퍼스널 컴퓨터는 일반적으로 프린터 등의 다른 주변 출력 장치(도시 생략)를 포함한다.
퍼스널 컴퓨터(20)는 원격 컴퓨터(49) 등의 하나 이상의 퍼스널 컴퓨터로의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(49)는 또하나의 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 통상적인 네트워크 노드일 수 있으며, 일반적으로 퍼스널 컴퓨터(20)에 대해 상기한 요소들의 다수 또는 전부를 포함한다. 도 1에 나타낸 논리적 연결은 근거리 통신망(LAN)(51) 및 원거리 통신망(WAN)(52)을 포함한다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크, 인트라넷, 및 인터넷에서 통상적이다.
LAN 네트워킹 환경에서 사용될 때, 퍼스널 컴퓨터(20)는 네트워크 인터페이스 또는 어댑터(53)를 통해 근거리 통신망(51)에 연결되어 있다. WAN 네트워킹 환경에서 사용될 때, 퍼스널 컴퓨터(20)는 일반적으로 모뎀(54) 또는 인터넷 등의 원 거리 통신망(52)을 통한 통신을 설정하기 위한 다른 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(54)은 직렬 포트 인터페이스(46)를 통해 시스템 버스(23)에 연결된다. 네트워크화된 환경에서, 퍼스널 컴퓨터 또는 그의 일부분에 대해 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 도시된 네트워크 연결이 예시적인 것이며, 컴퓨터들 간에 통신 링크를 설정하는 다른 수단이 사용될 수 있다는 것을 잘 알 것이다.
도 1에 예시된 유형의 시스템 상에 구현될 때, 본 발명은 사용자가 파일 조작 및 폴더 내비게이션(브라우징)에 관한 기본적인 작업을 수행하고 또 새로운 특징들에서 이용될 수 있는 상위 레벨 저장 기능을 제공하는 것을 보다 용이하게 해주는 가상 폴더를 이용한다. 가상 폴더는 서로 다른 뷰에서 파일 및 항목을, 디스크 상에서의 실제의 물리적인 기본 파일 시스템 구조 대신에 그의 메타데이터에 기초하여, 사용자에게 보여준다.
도 2는 본 발명에 따른 가상 폴더 시스템(200)의 블록도이다. 이하에서 보다 상세히 기술되는 바와 같이, 가상 폴더는 사용자가 데이터가 보여지는 방식을 제어하는 "피봇(pivot)"을 변경할 수 있게 해준다. 일례로서, 사용자는 앨범별로 그룹화될 수 있는 모든 노래의 단순 리스트(flat list)로서 그의 음악을 볼 수 있다. 다른 대안으로서, 사용자는 장르 또는 음악가 또는 연도, 기타 등등만을 보여주도록 보기를 전환할 수 있다. 사용자는 현재의 작업에 적합한 객체만을 보기 위해 보기를 조정할 수 있다. 이것은 폴더들을 통한 추가적인 내비게이션(아래로 또한 다시 위로)을 필요없게 해주는 개선된 브라우징 경험을 가능하게 해준다. 동일 한 학습 및 기능이 파일로서 저장되지 않는 다른 데이터 유형을 모델링하는 데 적용된다. 예를 들어, 연락처가 이러한 방식으로 사용자에게 보여질 수 있으며, 그에 의해 단순 주소록(flat address book)에 의해 제공되는 것보다 연락처를 조작하기 위한 친숙한 인터페이스 기능은 물론 풍부한 인프라를 사용자에게 제공할 수 있다.
도 2에 나타낸 바와 같이, 가상 폴더 시스템(200)은 폴더 프로세서(210), 관계형 데이터베이스(230), 가상 폴더 설명 데이터베이스(232), 기타 쉘 폴더 컴포넌트(234), 폴더 핸들러 컴포넌트(236), 및 쉘 브라우저 및 뷰 컴포넌트(240)를 포함한다. 폴더 프로세서(210)는 내장 핸들링 코드 컴포넌트(native handling code component)(212), 핸들러 팩토리 컴포넌트(handler factory component)(214), 프로퍼티 작성자 컴포넌트(property writer component)(216), 로우셋 파서 컴포넌트(rowset parser component)(218), 질의 빌더 컴포넌트(query builder component)(220), 열거자 컴포넌트(enumerator component)(222) 및 프로퍼티 팩토리 컴포넌트(proper factory component)(224)를 포함한다.
관계형 데이터베이스(230)는 시스템에서의 모든 파일에 관한 프로퍼티를 저장한다. 이 데이터베이스는 또한 연락처(즉, 비파일 항목)와 같은 어떤 항목들을 전체적으로 저장한다. 일반적으로, 이 데이터베이스는 그가 포함하고 있는 파일 및 항목의 유형에 관한 메타데이터를 저장한다. 관계형 데이터베이스(230)는 질의 빌더(220)로부터 SQL 질의를 받는다. 관계형 데이터베이스(230)는 또한 SQL 로우셋(rowset)을 로우셋 파서 컴포넌트(218)로 전송하며, 항목 컬럼마다 하나의 로우 를 가지며, 컬럼들은 항목 프로퍼티이다.
가상 폴더 설명 데이터베이스(232)는 가상 폴더 설명을 포함한다. 가상 폴더 설명 데이터베이스(232)는 폴더에 디스플레이할 유형들의 리스트, 초기 필터, 및 결과를 보여줄 물리적 장소(범위)를 비롯한 데이터를 질의 빌더 컴포넌트(220)로 전송한다.
기타 쉘 폴더 컴포넌트(234)와 관련하여, 폴더 프로세서(210)는 핸들러 또는 프로퍼티에 대한 모든 파일을 비롯한 많은 유형의 항목들로부터의 기존의 쉘 폴더에 위임한다. 기타 쉘 폴더 컴포넌트(234)는 다른 폴더로부터 프로퍼티 팩토리(224)로 프로퍼티를 전송한다. 기타 쉘 폴더 컴포넌트는 또한 핸들러를 핸들러 팩토리(214)로 전송한다.
폴더 핸들러 컴포넌트(236)는 연락처와 같이 데이터베이스에만 존재하는 항목들에 대한 코드 거동(code behavior)을 제공한다. 이것이 비파일 항목이 파일과 유사하게 거동할 수 있게 해주는 것이다. 폴더 핸들러 컴포넌트(236)는 핸들러를 핸들러 팩토리(214)로 전송한다.
내장 핸들링 코드 컴포넌트(212)에 있어서, 폴더 프로세서(210)는 항목의 프로퍼티에 기초하여 어떤 핸들러를 직접 조작한다. 내장 핸들링 코드 컴포넌트(212)는 핸들러를 핸들러 팩토리(214)로 전송한다. 내장 핸들링 코드 컴포넌트(212) 및 폴더 핸들러 컴포넌트(236)에 있어서, 모든 이름 공간과 같이, 가상 폴더는 그의 항목에 대한 일련의 핸들러(컨텍스트 메뉴, 아이콘, 썸네일, 정보팁, ...)를 제공해야만 한다. 이들(정보팁, 데이터 객체, 드래그-드롭 핸들러, 배경 컨텍스트 메뉴...) 중 대부분에 있어서, 가상 폴더는 그가 보유하는 모든 유형에 대한 공통의 (내장) 핸들러를 제공한다. 그렇지만, 유형의 저작자가 제공해야만 하는 다른 것들(항목 자체에 관한 컨텍스트 메뉴, 기록가능 프로퍼티 스토어(writable property store),...)이 있다. 디폴트 핸들러는 또한 오버라이드될 수 있다. 가상 폴더는 파일에 대해 이것을 재사용하고 비파일 항목이 똑같이 할 수 있게 해준다.
핸들러 팩토리(214)는 ID 리스트를 받아서 컨텍스트 메뉴, 아이콘, 기타 등등을 제공하는 코드 거동을 생성한다. 일반적으로, 폴더 프로세서(210)는 내장 핸들러, 외부 핸들러를 사용하거나, 내장 핸들링 코드 컴포넌트(212), 기타 쉘 폴더 컴포넌트(234), 및 폴더 핸들러 컴포넌트(236)와 관련하여 상기한 바와 같이 핸들러를 가져오도록 기타 쉘 폴더에 위임할 수 있다. 핸들러 팩토리 컴포넌트(214)는, 뷰(240)에 의해 요청된 대로, 뷰(240)에서의 쉘 브라우저에 핸들러를 전송한다. 핸들러 팩토리 컴포넌트(214)는 프로퍼티 핸들러를 프로퍼티 작성자(property writer)(216)로 전송한다.
프로퍼티 작성자(216)는 잘라내기, 복사, 및 붙여넣기 등의 사용자 의도를 파일 또는 항목에 대한 재산권(property right)으로 변환한다. 쉘 브라우저 및 뷰 컴포넌트(240)는 직접 조작(잘라내기/복사/붙여넣기) 또는 메타데이터의 편집을 비롯한 데이터를 프로퍼티 작성자(216)로 전송한다. 일반적으로, 가상 폴더가 항목의 프로퍼티에 기초한 구성(organization)을 제공하기 때문에, 이동 및 복사(드래그-드롭) 등의 동작이 그들 프로퍼티에 대한 편집이 된다. 예를 들어, 저작자별로 스태킹된 뷰에서 문서를 저작자 1에서 저작자 2로 이동시키는 것은 저작자를 변경하는 것을 의미한다. 프로퍼티 작성자 컴포넌트(216)는 이 기능을 구현한다.
로우셋 파서(218)는 데이터베이스 로우셋을 받아서 모든 항목 프로퍼티를 쉘 ID 리스트 구조체에 저장한다. 로우셋은 가상 폴더의 구분적 정의(piecewise definition)를 가지며 SQL 문자열을 작성하고, 이 SQL 문자열은 이어서 데이터베이스로 보내질 수 있다. 로우셋 파서 컴포넌트(218)는 ID 리스트를 열거자 컴포넌트(222)로 전송한다. 상기한 바와 같이, 로우셋 파서 컴포넌트(218)는 또한 SQL 로우셋을 비롯한 데이터를 관계형 데이터베이스(230)로부터 수신하며, 항목별로 하나의 로우를 가지며, 컬럼은 항목 프로퍼티이다.
질의 빌더 컴포넌트(220)는 SQL 질의를 작성한다. 질의 빌더 컴포넌트(220)는 내비게이션으로부터의 새로운 필터를 비롯한 데이터를 열거자 컴포넌트(222)로부터 수신한다. 질의 빌더 컴포넌트(220)는 또한 폴더에 디스플레이할 유형들의 리스트, 초기 필터, 및 결과를 보여줄 물리적 장소(범위)를 비롯한 데이터를 가상 폴더 설명 데이터베이스(232)로부터 수신한다. 질의 빌더 컴포넌트(220)는 SQL 질의를 관계형 데이터베이스(230)로 전송한다.
일반적으로, 질의 빌더 컴포넌트(220)는 일련의 로우(환언하면, 테이블)를 포함한다. 이것이 질의의 실행에 의해 산출되는 것이다. 로우셋 파서 컴포넌트(218)는 각각의 로우를 받고 컬럼 이름을 사용하여 그 로우를 ID 리스트로 변환한다. ID 리스트는 이름 공간 내의 항목들을 참조하는 데 사용되는 공지의 쉘 구조체이다. 이렇게 함으로써 가상 폴더가 쉘의 나머지에 대해 임의의 다른 이름 공 간과 똑같게 될 수 있다. 또한, 이 데이터를 캐싱하는 것이 데이터베이스 액세스(비용이 많이 들 수 있음)를 최소로 유지하도록 돕는다.
열거자 컴포넌트(222)는 가상 폴더로의 내비게이션에 응답하여 동작한다. 상기한 바와 같이, 열거자 컴포넌트(222)는 로우셋 파서 컴포넌트(218)로부터 ID 리스트를 수신하고, 내비게이션으로부터의 새로운 필터를 질의 빌더 컴포넌트(220)로 전송한다. 열거자(222)는 또한 내비게이션 후에 뷰에 삽입되도록 반환되는 ID 리스트를 비롯한 데이터를 쉘 브라우저 및 뷰 컴포넌트(240)로 전송한다.
프로퍼티 팩토리 컴포넌트(224)는 ID 리스트 및 프로퍼티 식별자를 받아서 이들 프로퍼티에 대한 값들을 반환한다. 프로퍼티 팩토리 컴포넌트(224)는 프로퍼티 핸들러를 비롯한 데이터를 핸들러 팩토리 컴포넌트(214)로부터 수신한다. 상기한 바와 같이, 프로퍼티 팩토리 컴포넌트(224)는 또한 다른 폴더로부터의 프로퍼티를 비롯한 데이터를 기타 쉘 폴더 컴포넌트(234)로부터 수신한다. 프로퍼티 팩토리 컴포넌트(224)는 또한, 뷰에 의해 요청된 대로, 항목 프로퍼티를 비롯한 데이터를 쉘 브라우저 및 뷰 컴포넌트(240)로 전송한다.
쉘 브라우저 및 뷰 컴포넌트(240)는 폴더의 내용을 윈도우에 디스플레이하고, 클릭, 드래그, 및 내비게이션 등의 디스플레이된 파일 또는 항목과의 사용자 상호작용 모두를 처리한다. 따라서, 쉘 브라우저 및 뷰 컴포넌트(240)는 사용자 동작을 수신한다. 쉘 브라우저 및 뷰 컴포넌트(240)는 또한 그가 필요로 하는 코드 거동에 관한 데이터를 폴더(이 경우에, 폴더 프로세서(210))로부터 가져온다.
상기한 바와 같이, 가상 폴더는 서로 다른 뷰에서 정규의 파일 및 폴더(디렉 토리라고도 함)를, 디스크 상에서의 실제의 물리적인 기본 파일 시스템 구조 대신에 그의 메타데이터에 기초하여, 사용자에게 보여준다. 따라서, 본 시스템은 데이터베이스에 저장되어 있는 프로퍼티를 가져와서 이를 폴더와 유사한 컨테이너로서 표현할 수 있다. 사용자가 폴더를 대상으로 작업하는 것에 이미 친숙하기 때문에, 유사한 방식으로 가상 폴더를 제공함으로써, 사용자는 새로운 시스템에 보다 빠르게 적응할 수 있다.
도 3은 사용자가 선택된 항목들을 뽑아내는 질의를 제공하는 루틴(300)을 나타내는 흐름도이다. 블록(302)에서, 폴더 프로세서는 사용자로부터 질의를 받는다. 블록(304)에서, 폴더 프로세서는 질의를 관계형 데이터베이스로 전달한다. 블록(306)에서, 관계형 데이터베이스는 그 결과를 다시 폴더 프로세서에 제공한다. 블록(308)에서, 폴더 프로세서는 그 결과를 가상 폴더 및 항목의 형태로 사용자에게 제공한다.
도 4는 디폴트 질의 또는 사용자로부터의 질의에 따라 가상 폴더가 구성되어 화면 상에 디스플레이되는 루틴(320)을 나타내는 흐름도이다. 블록(322)에서, 사용자가 처음으로 가상 폴더를 열 때, 디폴트 질의가 사용된다. 이 디폴트 질의는 레지스트리(registry)로부터 가져온다. 예를 들어, 음악 라이브러리에 대한 디폴트 질의는 앨범별로 그룹화된 모든 노래를 보여주는 것일 수 있다. 블록(324)에서, 폴더 프로세서는 이 질의에 대한 질의 객체를 작성하고 이 질의를 관계형 데이터베이스로 전달한다. 블록(326)에서, 관계형 데이터베이스는 질의의 결과를 생성하고 이들을 다시 폴더 프로세서로 데이터베이스 로우 및 컬럼으로서 전달한다.
블록(328)에서, 폴더 프로세서는 이들 결과를 받아서 이들을 데이터의 로우 및 컬럼으로부터 열거자 구조체로 변환하며, 이 열거자 구조체는 사용자가 상호작용하기 위해 화면을 그 결과 얻어진 가상 폴더 및 항목으로 채우기 위해 폴더 뷰에 의해 사용된다. 결정 블록(330)에서, 사용자는 (서로 다른 질의 또는 "피봇"을 발행함으로써) 뷰를 변경할지 여부를 결정한다. 예를 들어, 사용자는 "모든 음악가 보여주기(show all artists)" 피봇을 발행할 수 있다. 사용자가 뷰를 변경하고자 하는 경우, 이 루틴은 폴더 프로세서가 이 새로운 질의를 관계형 데이터베이스로 전달하는 블록(324)으로 되돌아가서, 다시 결과의 새로운 로우 및 컬럼을 수신하고, 새로운 열거자 구조체를 작성한다. 폴더 뷰가 클리어되고 갱신될 때, 열거자를 사용하여 "음악가" 객체를 화면에 드로잉하기 위해, 이 프로세스는 이어서 상기한 바와 같이 계속된다.
일례에서, 사용자가 내비게이션할 수 있는 컨테이너를 나타내는 앨범 객체가 제공된다. 예를 들어, "비틀즈" 앨범을 더블클릭하는 것은 비틀즈의 노래 전부를 보기 위해 뷰를 내비게이션한다. 폴더 프로세서는 관계형 데이터베이스에 "비틀즈 노래 보여주기" 질의를 발행하며, 이 데이터베이스는 그 노래에 대한 데이터의 로우 및 컬럼을 반환한다. 폴더 프로세서는 이들 노래 전부의 열거자를 생성하고, 이들은 이어서 화면에 드로잉된다.
사용자는 또한 가상 폴더를 브라우징하고 있는 동안 언제라도 뷰를 선택할 수 있다. 상기 예로부터, 단지 비틀즈 노래를 보여주는 것으로 범위를 축소시킨 후에, 사용자는 그 노래들을 앨범으로서만 보여주도록 뷰를 변경할 수 있다. 항목 들의 뷰를 다른 표현으로 변경하는 프로세스는 "스태킹(stacking)"이라고 한다. 이러한 이유는 항목이 그 표현에 기초하여 개념적으로 "스택"으로 배열되기 때문이다. 이 경우에, 노래들은 여러가지 앨범 각각에 대해 스택으로 재배열된다. 사용자는 이어서 이들 스택 중 하나로 내비게이션할 수 있으며, 그 특정의 앨범으로부터의 노래만을 보게 된다. 다시 말하면, 사용자는 이들 나머지 노래의 뷰를 프로퍼티(예를 들어, 평가(rating))에 기초한 스택으로 재배열할 수 있다. 평가 프로퍼티가 선택된 경우, 그 비틀즈 앨범으로부터의 노래는 별 하나, 별 둘, 별 셋 등급에 대한 스택에 표시된다.
각각의 질의의 결과는 범위 내에 어느 물리적 또는 가상 장소가 포함되어 있는지에 달려 있다. 예를 들어, 범위는 사용자의 "내 문서" 폴더 내의 폴더들만을 포함하도록 정해질 수 있다. 다른 대안으로서, 범위는 컴퓨터 상의 모든 폴더, 또는 다수의 네트워크 연결된 컴퓨터 상의 모든 폴더를 포함할 수 있다. 사용자는 범위 프로퍼티 시트를 통해 범위를 보고 변경할 수 있다. 한 예에서, 가상 폴더에서 우측 버튼을 클릭하여 "프로퍼티"를 선택함으로써 범위 프로퍼티 시트가 나타날 수 있다. 사용자는 범위에 새로운 폴더를 추가하거나 이전에 추가된 폴더를 제거할 수 있다.
가상 폴더가 특정의 유틸리티를 제공하는 일군의 사용자는 지식 근로자(knowledge worker)이다. 가상 폴더는 지식 근로자가 파일 유형, 프로젝트, 사건 번호, 저작자, 기타 등등에 의해 문서를 보는 것 간에 용이하게 전환할 수 있게 해준다. 지식 근로자 각각이 문서를 구성하는 서로 다른 방법을 가지는 경향이 있 기 때문에, 이들 서로 다른 선호 경향에 대응하기 위해 가상 폴더가 사용될 수 있다.
도 5는 하드 드라이브 상의 물리적 폴더 배열에 따른 폴더 구조의 트리 다이어그램이다. 이 물리적 폴더 배열은 NTFS 또는 다른 기존의 파일 시스템에 기초한 것일 수 있는 종래의 폴더 구현에 기초하고 있다. 이러한 폴더를 물리적 폴더라고 하는 이유는 이들을 구성하는 것이 디스크 상에서의 실제의 물리적인 기본 파일 시스템 구조에 기초하기 때문이다. 이하에서 보다 상세히 기술하는 바와 같이, 이것은 가상 폴더와 다르며, 가상 폴더에서는 물리적 폴더를 조작하기 위해 현재 사용되는 것과 유사한 방식으로 사용자가 파일 및 폴더를 조작할 수 있게 해주는 장소-독립적인 뷰를 생성한다.
도 5에 도시한 바와 같이, 폴더(400)는 "내 문서" 폴더이다. 제1 레벨에서, 폴더(400)는 고객 1, 고객 2 및 고객 3에 각각 대응하는 폴더(410, 420, 430)를 포함한다. 제2 레벨에서, 폴더(410, 420, 430) 각각은 폴더(411, 421, 431)(이들 폴더 각각은 선택된 고객에 대한 계약에 대응함)를 각각 포함한다. 제3 레벨에서, 폴더(411, 421, 431) 각각은 폴더(412, 422, 432)(이들 폴더 각각은 2001년에 대응함)를 각각 포함한다. 제3 레벨에서, 폴더(411, 421, 431) 각각은 또한 폴더(413, 423, 433)(이들 폴더 각각은 2002년에 대응함)를 각각 포함한다.
도 5에 도시된 것 등의 물리적 폴더 파일 구조를 내비게이션하고자 하는 사용자에게 다수의 장애가 나타난다는 것을 잘 알 것이다. 예를 들어, 사용자가 작성한 계약들 전부를 대상으로 사용자가 작업하고자 하는 경우, 사용자는 먼저 고객 1에 대한 계약을 대상으로 작업을 하기 위해 폴더(411)로 내비게이션할 필요가 있으며, 이어서 고객 2에 대한 계약에 도달하기 위해 폴더(421)로 재내비게이션해야만 하며, 또다시 고객 3에 대한 계약에 대해서 폴더(431)로 재내비게이션해야만 한다. 이러한 배열은 사용자가 계약들 전부에 액세스하는 것을 어렵게 만들며, 일반적으로 모든 계약의 동시적인 보기 및 조작을 방해한다. 이와 유사하게, 사용자가 2001년에 작성된 모든 계약을 보고자 하는 경우, 사용자는 각각 폴더(412, 422, 432)로 내비게이션 및 재내비게이션해야만 한다. 이하에서 보다 상세히 기술하는 바와 같이, 본 발명의 가상 폴더는 개선된 파일 시스템 구조를 제공한다.
도 6은 가상 폴더 구조의 트리 다이어그램이다. 이하에서 보다 상세히 기술하는 바와 같이, 가상 폴더는 사용자가 편리한 방식으로 그의 파일 및 폴더를 조작할 수 있게 해주는 장소-독립적인 뷰를 생성한다. 도 6에 도시한 바와 같이, 가상 폴더는 스택(stack)으로서 표현된다. 가상 폴더(500)는 "모든 항목" 폴더이다. 제1 레벨에서, 가상 폴더(500)는 고객, 계약 및 연도에 각각 대응하는 가상 폴더(510, 520, 530)를 포함한다. 이하에서 보다 상세히 기술되는 바와 같이, 이 구조에 의해 사용자는 원하는 파라미터에 따라 파일에 액세스할 수 있다.
도 7은 도 6의 가상 폴더 구조의 트리 다이어그램으로서, 제2 레벨에서 가상 폴더(510)는 또한 가상 폴더(511, 512)(이들 폴더는 계약 및 연도에 각각 대응함)를 포함한다. 환언하면, 가상 폴더(510)의 고객 스택은 계약 및 연도에 의해 추가적으로 필터링된다. 어느 파일 및 항목이 가상 폴더 각각에 포함되어 있는지를 판정하는 프로세스에 대해 이하에서 보다 상세히 기술한다.
도 8은 도 7의 가상 폴더 구조의 트리 다이어그램으로서, 제3 레벨에서 가상 폴더(511)는 가상 폴더(513)(이는 연도에 대응함)를 포함한다. 환언하면, 가상 폴더(511)의 계약 스택은 연도에 의해 추가적으로 필터링된다. 가상 폴더(510, 511, 513)에 대한 가상 폴더 구조가 고객, 계약 및 연도에 따라 구성되어 있지만, 가상 폴더가 다른 구성 시퀀스가 행해질 수 있게 해준다는 것을 잘 알 것이며, 이에 대해서는 도 9를 참조하여 이하에서 보다 상세히 기술할 것이다.
도 9는 도 6의 가상 폴더 구조의 트리 다이어그램으로서, 제2 레벨에서 가상 폴더(520)는 가상 폴더(521, 522)(고객 및 연도에 대응함)로 추가적으로 필터링된다. 제3 레벨에서, 가상 폴더(521)는 가상 폴더(523)(연도에 대응함)로 추가적으로 필터링된다. 도 8의 구성 구조와 도 9의 구성 구조 간의 대조는 가상 폴더 시스템의 유연성을 설명하는 데 도움을 준다. 환언하면, 가상 폴더 시스템에서, 사용자는, 도 5에 도시된 것 등의 물리적 파일 구조의 장소-의존적인 뷰에 의존하는 것과는 달리, 원하는 파라미터에 따라 가상 폴더를 내비게이션할 수 있다.
도 10은 문서 라이브러리의 스택을 보여주는 화면 디스플레이(600)를 나타낸 도면이다. 상기한 바와 같이, 일종의 가상 폴더를 표현하기 위해 스택이 사용될 수 있다. 이하에서 보다 상세히 기술되는 바와 같이, 화면 디스플레이(600)는 바로가기 링크 요소(610-613), 필터 요소(620-626), 동작 요소(630-633), 정보 및 컨트롤 요소(640-645), 및 가상 폴더 스택(651-655)을 포함한다.
바로가기 링크 요소는 "모든 카테고리" 바로가기 링크(610), "모든 저작자" 바로가기 링크(611), "1월 작업" 바로가기 링크(612), 및 부가적인 바로가기 링크 를 디스플레이하기 위한 선택(613)을 포함한다. 이하에서 보다 상세히 기술하는 바와 같이, 바로가기 링크는 가상 폴더의 원하는 내비게이션을 수행하기 위해 사용자에 의해 선택될 수 있다. 시스템에 의해 바로가기 링크가 제공될 수 있으며, 어떤 바로가기 링크는 사용자에 의해 생성 및 저장될 수 있다.
필터 요소는 "필터링 조건(filter by)" 표시자(620), 엔트리 빈칸(entry blank)(621), "기한(by date)" 표시자(622), "연도" 선택자(623), "저작자 선택(pick an author)" 선택자(624), "카테고리 선택(pick a category)" 선택자(625) 및 "추가 필터(more filters)" 선택자(626)를 포함한다. "필터링 조건" 표시자(620)는 그 아래의 항목들이 가상 폴더 또는 항목을 필터링하는 데 사용될 수 있다는 사실을 사용자에게 알려준다. 엔트리 빈칸(621)은 사용자가 원하는 새로운 필터 항을 타이핑할 수 있는 영역을 제공한다. "기한" 표시자(622)는 "연도" 선택자(623)으로부터 날짜를 선택함으로써 가상 폴더 또는 항목이 선택된 연도에 의해 필터링될 수 있다는 사실을 사용자에게 알려준다. "저작자 선택" 선택자(624)는 사용자가 특정의 저작자에 따라 필터링을 할 수 있게 해준다. "카테고리 선택" 선택자(625)는 사용자가 선택된 카테고리에 따라 필터링을 할 수 있게 해준다. "추가 필터" 선택자(626)는 사용자가 디스플레이 상에 추가적인 필터를 풀업(pull up)할 수 있게 해준다.
동작 선택자는 "새 카테고리 생성" 선택자(630), "동작" 선택자(631, 632), 및 "추가 필터" 선택자(633)를 포함한다. 이하에서 보다 상세히 기술하는 바와 같이, 제공되는 동작들은 일반적으로 바람직한 기능을 위한 것일 수 있거나, 보다 구 체적으로는 현재 디스플레이되고 있는 유형의 가상 폴더에 유용한 동작들에 관한 것일 수 있다. 예를 들어, "새 카테고리 생성" 선택자(630)는 새로운 스택에 의해 표현되어지는 새로운 카테고리를 생성하기 위해 사용자에 의해 선택될 수 있다.
상기한 바와 같이, 동작 선택자(631, 632)는 보다 구체적으로는 디스플레이되고 있는 유형의 폴더 또는 항목에 관한 것이다. 예를 들어, 현재의 디스플레이는 문서 라이브러리에 대한 것이며, 이에 대해 "동작" 선택자(631, 632)는 첨부물의 편집 또는 생성 등의 문서에 맞게 특별히 조정되어 있는 동작들에 관한 것일 수 있다. 현재 라이브러리가 사진 라이브러리인 경우, "동작" 선택자(631, 632)는 사진 앨범을 형성하는 것 또는 사진을 다른 사용자와 공유하는 것 등의 사진에 특히 관계되어 있는 동작들에 대한 것일 수 있다.
정보 및 컨트롤 요소는 정보 라인(640) 및 정보 라인(주소 바)(641), 컨트롤 라인(control line)(642), 백스페이스 컨트롤(backspace control)(643), 및 정보 라인(644, 645)을 포함한다. 정보 라인(640) 및 주소 바(641)는 가상 폴더 또는 항목의 현재 내비게이션에 관한 정보를 제공한다. 이 예에서, 정보 라인(640)은 현재 내비게이션이 문서 라이브러리에 대한 것임을 나타내는 반면, 주소 바(641)는, 문서 라이브러리가 저장 영역 내에 있음을 보여주는, 보다 완전한 내비게이션을 나타낸다. 컨트롤 라인(642)은 다수의 표준 컨트롤을 제공하며, 백스페이스 버튼(643)은 사용자가 내비게이션을 통해 뒤로 가기(back up)를 할 수 있게 해준다. 정보 라인(644)은 현재 내비게이션의 내용에 관한 수치 정보를 제공한다. 이 예에서, 정보 라인(644)은 문서 라이브러리의 스택에 100MB를 차지하는 41개 항목이 있 다는 것을 나타낸다. 선택된 파일에 관한 부가 정보 등의 부가 정보를 제공하기 위해 정보 라인(645)이 이용가능하다.
문서 라이브러리의 스택은 "ABC 회사" 스택(651), "백업 스택"(652), "사업 계획" 스택(653), "XYZ 회사" 스택(654), 및 "마케팅 보고서" 스택(655)을 포함한다. 각각의 스택 상의 숫자는 각각의 스택에 몇개의 항목이 있는지를 나타낸다. 예를 들어, "ABC 회사" 스택(651)은 8개의 항목을 포함하는 것으로 나타내어져 있다. 스택의 항목의 총수는 정보 라인(644)에 표시된 항목의 수의 총합이며, 이 예에서는 상기한 바와 같이 41이다. 원하는 항목을 선택하기 위해 사용자에 의해 이용될 수 있는 선택 박스(SB)가 제공된다. "ABC 회사" 스택(651)의 선택은 그 스택의 항목들의 뷰를 생성하며, 이에 대해서는 도 11과 관련하여 이하에서 기술된다.
도 11은 도 10의 "ABC 회사" 스택(651)에서의 항목들을 나타내는 화면 디스플레이를 나타낸 도면이다. 정보 라인(640) 및 주소 바(641)가 이제 현재의 내비게이션이 "ABC 회사" 스택을 보여주고 있음을 나타낸다는 것에 유의해야 한다. "ABC 회사" 스택(651)은 8개의 문서(751-758)(문서(1-8)에 각각 대응함)을 포함하는 것으로 나타내어져 있다. 정보 라인(644)은 그에 대응하여 20 MB의 메모리를 차지하는 8개의 항목이 있다는 것을 나타낸다. 도 11의 문서는 ABC 회사 스택 내의 스택들로 추가적으로 정렬될 수 있다. 환언하면, ABC 회사 스택(651)으로 표현된 가상 폴더 내에, 문서들을 보유하기 위해 부가적인 가상 폴더가 구성될 수 있으며, 이에 대해서는 도 12 내지 도 16과 관련하여 이하에서 기술될 것이다.
도 12는 도 11의 문서들에 대해 스태킹 기능이 선택되어 있는 화면 디스플레 이를 나타낸 도면이다. 도 12에 도시된 바와 같이, 사용자는 기능 박스(760)를 풀업시킬 수 있다. 기능 박스(760)는 "뷰" 선택(761), "아이콘 정렬 기준" 선택(762), "스택" 선택(763), "새로고침" 선택(764), "내포 폴더 열기" 선택(765), "잘라내기" 선택(766), "복사" 선택(767), "실행취소" 선택(768), "새로 만들기" 선택(769), 및 "프로퍼티" 선택(770)을 포함한다. 선택 박스(SB)는 "스택" 선택(763) 근방에 표시되어 있다.
도 13은 도 12의 스태킹 기능에 대해 "저작자별 스태킹" 파라미터가 선택되어 있는 화면 디스플레이를 나타낸 도면이다. 도 13에 도시한 바와 같이, 여러가지 스태킹 옵션을 제공하는 박스(780)가 디스플레이되어 있다. 이들 스태킹 옵션은 "언스태킹" 옵션(781), "카테고리별 스태킹" 옵션(782), "저작자별 스태킹" 옵션(783), 및 "사용자별 스태킹" 옵션(784)을 포함한다. 선택 박스(SB)는 "저작자별 스태킹" 옵션(783) 근방에 표시되어 있다.
도 14는 도 13의 파일들이 저작자별로 스태킹되어 있는 화면 디스플레이를 나타낸 도면이다. 도 14에 도시한 바와 같이, 스택(791, 792)은 저작자 Bob 및 Lisa에 각각 대응한다. 스택 각각의 상단의 숫자로 나타낸 바와 같이, Bob 스택(7891)은 2개의 항목을 포함하고 있는 반면, Lisa 스택(792)은 5개의 항목을 포함하고 있다. 항목(758)(문서 8에 대응함)은 저작자를 갖지 않았으며, 따라서 "저작자" 스택에 포함되어 있지 않다. 스택(791, 792)은 스택이 "ABC 회사" 스택(651) 내에서와 같이, 다중 레벨로 구성될 수 있다는 것을 보여준다. 따라서, 가상 폴더가, 문서 라이브러리 내에 있는 "ABC 회사" 스택(651) 내에 있는 "Lisa" 스택(792) 등과 같이, 다중 레벨로 형성될 수 있다.
도 15는 도 14의 파일을 재스태킹하기 위해 "카테고리별 스태킹" 옵션이 추가적으로 선택되어 있는 화면 디스플레이를 나타내는 도면이다. 도 15에 나타낸 바와 같이, 선택 박스(SB)는 "카테고리별 스태킹" 옵션(782) 근방에 있다. 항목들 중 일부가 이미 스택(791, 792)에 스태킹되어 있기 때문에, "카테고리별 스태킹" 옵션(782)의 선택은 그 항목들을 재스태킹하며, 이에 대해서는 이하에서 도 16과 관련하여 보다 상세히 기술할 것이다.
도 16은 도 14의 파일들이 카테고리별로 재스태킹되어 있는 화면 디스플레이를 나타낸 도면이다. 도 16에 도시한 바와 같이, 스택(793, 794)은 "XYZ 회사" 및 "마케팅 보고서" 카테고리에 각각 대응한다. 문서 1 및 2에 대응하는 항목(751, 752)은 어떤 부가적인 카테고리에 대해서도 지정되어 있지 않으며, 따라서 다른 카테고리 스택 중 어디에도 속하지 않는다.
도 17은 물리적 폴더에 대한 바로가기 링크가 선택되어 있는 화면 디스플레이를 나타낸 도면이다. 선택 박스(SB)는 "모든 폴더" 바로가기 링크(616) 근방에 표시된다. 도 18과 관련하여 이하에서 보다 상세하게 기술되어 있는 바와 같이, "모든 폴더" 바로가기 링크(616)는 물리적 폴더의 뷰로의 전환을 제공한다.
도 18은 물리적 폴더를 보여주는 화면 디스플레이를 나타낸 도면이다. 도시되어 있는 물리적 폴더들은 도 17의 가상 폴더 스택의 파일들을 포함한다. 환언하면, 도 17의 스택(651-655) 내에 포함된 항목들은 또한 시스템에서의 어떤 물리적 폴더에도 포함되어 있다. 이들은 도 18에서 현재 컴퓨터 상에 위치하는 "내 문 서(My Documents)" 폴더(851), 현재 컴퓨터 상에 위치하는 "바탕화면(Desktop)" 폴더(852), 하드 드라이브 C: 상에 위치하고 있는 "Foo" 폴더(853), 서버 상에 위치하고 있는 "내 파일(My Files)" 폴더(854), 외장형 드라이브 상에 위치하고 있는 "외장형 드라이브(External Drive)" 폴더(855), 다른 컴퓨터 상에 위치하고 있는 "내 문서" 폴더(856), 및 다른 컴퓨터 상에 위치하고 있는 "바탕화면" 폴더(857)로서 도시되어 있다.
도 18에 도시되어 있는 바와 같이, 사용자는 도 17의 가상 파일 표현으로부터 도 18의 물리적 파일 표현으로 전환할 수 있다. 이것에 의해 사용자는 현재 작업에 대해 어느 것이 요망되는지에 따라 가상 파일 표현과 물리적 파일 표현 간에 토글할 수 있다. 물리적 폴더(851-857)의 서로 다른 장소는 또한 가상 파일 시스템의 범위가 비교적 넓을 수 있다는 것을 나타내며, 이에 대해서는 이하에서 보다 상세히 기술한다.
도 19는 사용자가 가상 폴더를 직접 조작할 수 있는 루틴(880)을 나타낸 흐름도이다. 이하에서 보다 상세히 기술하는 바와 같이, 가상 폴더를 조작하기 위해 제공되는 메카니즘은 정규의 폴더를 조작하기 위해 현재 사용되는 것들(예를 들어, 클릭 및 드래그, 복사, 붙여넣기, 기타 등등)과 유사하다. 도 19에 나타낸 바와 같이, 블록(882)에서, 본 시스템은 디스플레이 객체로서 표현되어 있는 가상 폴더의 직접 조작을 위해 사용자가 수행할 수 있는 정의된 동작을 제공한다. 블록(884)에서, 사용자는 정의된 동작을 수행한다. 상기한 바와 같이, 이것의 한 예는 사용자가 가상 폴더의 내용을 다른 가상 폴더로 복사하기 위해 그 가상 폴더를 클릭 및 드래그하는 것일 수 있다. 블록(886)에서, 사용자에 의해 수행되는 동작에 의해 지시된 대로 가상 폴더 및/또는 내용이 조작될 수 있다.
도 20은 새로운 웨스트 코스트 스택(656)이 도 10의 스택들에 추가되어 있는 화면 디스플레이를 나타낸 도면이다. 웨스트 코스트 스택(656)은 사용자가 "웨스트 코스트"라는 새로운 카테고리를 생성함으로써 형성되었다. 그의 최초 생성 시에, 새로운 웨스트 코스트 스택(656)은 비어 있을 것이며, 0개의 항목을 가질 것이다. 스택에 항목들을 추가하는 한가지 방법은 특정의 항목을 선택하고, 도 20의 실시예에서 했던 바와 같이 2개의 항목에 카테고리 "웨스트 코스트"를 추가하는 등, 항목에 대한 카테고리 메타데이터에 부가적인 카테고리를 추가하거나 그를 수정하는 것이다. 이 프로세스는 카테고리 데이터가 일종의 임시 프로퍼티(ad-hoc property)인 항목에 대한 메타데이터 프로퍼티임을 나타낸다. 환언하면, 이러한 유형의 프로퍼티는 암시적인 의미를 갖지 않으며, 사용자에 의해 임의의 값을 할당받을 수 있다. 예를 들어, 카테고리 "프로퍼티"는 임의의 값을 가질 수 있는 반면, "저작자" 프로퍼티는 사람의 이름이어야만 한다. 도 21을 참조하여 이하에서 보다 상세히 기술되는 바와 같이, 항목들은 또한 다른 스택들로부터 웨스트 코스트 스택(656)으로 복사되도록 클릭 및 드래그될 수 있다(이 경우에, 항목들의 카테고리는 "웨스트 코스트"를 포함하도록 자동적으로 갱신된다). 이 점에서, 도 20은 선택 박스(SB)가 그의 내용의 복사를 준비하기 위해 ABC 회사 스택(651) 근방에 있음을 보여준다.
도 21은 ABC 회사 스택(651)으로부터 웨스트 코스트 스택(656)으로 파일들을 복사하기 위해 직접 조작이 사용되는 화면 디스플레이를 나타낸 도면이다. 환언하면, 도 20에 도시한 바와 같이, 사용자가 ABC 회사 스택(651)을 선택하였고, 이어서 도 21에 도시한 바와 같이, 사용자는 웨스트 코스트 스택(656)으로 복사될 스택을 클릭 및 드래그하였다. 따라서, 도 20에서 2개의 항목을 가졌던 웨스트 코스트 스택(656)은 이제, ABC 회사 스택(651)으로부터의 부가적인 8개의 항목을 포함하여, 총 10개의 항목을 갖는 것으로 나타내어져 있다. ABC 회사 스택(651)으로부터의 항목들이 웨스트 코스트 스택(656)으로 복사되었을 때, 이것은, 원래의 "ABC 회사" 카테고리를 포함하는 것 이외에 "웨스트 코스트" 카테고리도 포함하도록, 8개 항목들에 대한 카테고리 설명을 수정함으로써 달성되었다. 이것은 수행될 수 있는 한 유형의 직접 조작을 나타낸 것이다.
직접 조작의 다른 예는 항목을 우측 버튼으로 클릭하여 삭제를 선택하는 것이다. 일 실시예에서, 사용자에 의해 삭제 기능이 선택되는 경우, 사용자는 그 항목이 완전히 삭제되는지 또는 현재의 가상 폴더로부터 단지 제거되는지를 질의받는다. 항목이 상기한 바와 같이 현재의 가상 폴더 카테고리 스택으로부터 단지 제거되는 경우, 이것은 원하는 카테고리를 항목에 대한 메타데이터로부터 제거함으로써 달성될 수 있다. 환언하면, ABC 회사 스택(651)으로부터 웨스트 코스트 스택(656)으로 복사된 항목들 중 하나가 이어서 웨스트 코스트 스택(656)으로부터 제거된 경우, 이것은 "웨스트 코스트" 카테고리를 더 이상 포함하지 않도록 특정의 파일에 대한 카테고리 데이터를 수정함으로써 달성될 수 있었다.
도 22는 시스템이 새로운 필터 항을 동적으로 생성하는 루틴(900)을 나타내 는 흐름도이다. 가상 폴더를 조작하기 위해 필터 항이 이용된다. 필터링 항은 본질적으로 일련의 항목의 범위를 축소하기 위한 일련의 도구로서 이용된다. 일 실시예에서, 필터는 메타데이터 카테고리 및 그의 값(사용자 인터페이스에서 클릭가능 링크 또는 드롭-다운 메뉴로서 사용자에게 제공됨)으로 이루어져 있다. 이러한 예시적인 실시예는 이하에서 도 141 및 도 142와 관련하여 기술된다. 사용자는 디스플레이 상에서의 현재의 결과의 일련의 항목들을 필터링하여 줄이기 위해 필터 항을 클릭한다.
도 22는 필터가 어떻게 동적으로 생성될 수 있는지를 나타낸 것이다. 도 22에 도시한 바와 같이, 블록(902)에서, 현재의 디스플레이 상에서의 컬렉션에서의 항목들의 프로퍼티(메타데이터로부터 알 수 있음)가 검토된다. 블록(904)에서, 제안된 필터 항은 디스플레이에서의 항목들의 공통 프로퍼티에 기초하여 동적으로 생성된다. 블록(906)에서, 제안된 필터 항은 항목들을 필터링하기 위한 가능한 선택을 위해 사용자에게 제공된다. 이 프로세스의 예로서, 본 시스템은 일련의 항목들의 프로퍼티를 검토할 수 있으며, 항목들이 일반적으로 프로퍼티로서 "저작자"를 갖는 경우, 이 필터는 필터링의 기준이 되는 저작자들의 리스트를 제공할 수 있다. 이어서, 특정의 저작자를 클릭함으로써, 그 저작자를 갖지 않는 항목들이 디스플레이 상의 세트로부터 제거된다. 이 필터링 프로세스는 디스플레이 상의 일련의 항목의 범위를 축소하기 위한 메카니즘을 사용자에게 제공한다.
도 23은 시스템이 필터 항의 선택에 기초하여 항목들을 필터링하는 루틴(920)을 나타내는 흐름도이다. 블록(922)에서, 사용자는 새로운 필터 항을 입력 하거나 그렇지 않고 시스템에 의해 제공된 필터 항들 중 하나를 선택한다. 상기한 바와 같이, 필터 항은 시스템에 의해 동적으로 생성될 수 있거나 사전 설정되어 있을 수 있다. 블록(924)에서, 디스플레이 상의 컬렉션으로부터의 항목들은 그의 선택된 프로퍼티가 필터 항과 일치하는지 여부와 관련하여 평가된다. 예를 들어, 필터 항이 "Bob"에 의해 저작된 항목에 대한 것인 경우, 이 항목들은 그의 저작자 프로퍼티가 "Bob"을 포함하는지 여부에 따라 평가된다. 블록(926)에서, 선택된 프로퍼티가 필터 항과 일치하지 않는 항목들은 디스플레이 상의 컬렉션으로부터 제거된다.
도 24 내지 도 29는 일반적으로 필터링 프로세스가 화면 디스플레이 상에서 어떻게 나타나는지를 나타낸 것이다. 도 24 내지 도 29를 참조하여 이하에서 기술하는 바와 같이, 일 실시예에서, 필터링은 일반적으로 이하의 프로세스에 따라 동작한다. 사용자가 필터 값을 클릭한 후에, 필터 범위 밖의 항목들은 화면 밖으로 나가버린다. 이러한 애니메이션은 일반적으로 항목들이 제거되고 있고 또 새로운 항목이 추가되고 있지 않다는 것을 명확하게 하도록 설계되어 있다. 필터 동작을 실행 취소하기 위해 사용자에 의해 뒤로 버튼(643)이 선택될 수 있다. 일 실시예에서, 순차적인 필터 동작을 포함하는 내비게이션 스택이 생성되며, 이 내비게이션 스택은 뒤로 버튼(643)이 선택될 때 필터 동작들 각각을 실행 취소하기 위해 이용된다. 필터 값이 선택될 때마다, 정보 영역(640) 및 주소 바(641)는 현재의 필터 값을 나타내도록 갱신된다. 일 실시예에서, 필터 값이 선택된 후에, 사용자는 새로운 바로가기 링크를 현재의 필터 내비게이션에 저장하기 위한 옵션을 제공받으 며, 이에 대해서는 도 30, 즉 자동리스트(autolist)의 생성과 관련하여 이하에서 보다 상세히 기술된다. 필터 값이 선택된 후에, 필터 컨트롤은 뷰에 남아 있는 항목들에 적절하도록 갱신될 수 있다.
도 24는 도 10의 스택들이 항 "AB"로 필터링되어 있는 화면 디스플레이를 나타내는 도면이다. 도시된 바와 같이, 필터 영역(621)에서, 항 "AB"가 사용자에 의해 타이핑되었다. 정보 라인(640) 및 주소 바(641)는 디스플레이에서의 항목들이 이제는 항 "AB"에 의해 필터링된 것들임을 나타낸다. 도시된 바와 같이, ABC 회사 스택(651)은 여전히 8개 항목을 포함하는 반면, 백업 스택(652)은 이제 3개의 항목을 포함하고 XYZ 회사 스택(654)도 역시 3개의 항목을 포함한다. 정보 라인(644)은 따라서 총 34 MB의 메모리를 차지하는 총 14개 항목이 있음을 나타낸다.
도 25는 도 10의 스택들이 항 "ABC"에 의해 필터링되어 있는 화면 디스플레이를 나타낸 도면이다. 도 24의 필터 항 "AB"와 관련하여, 사용자는, 전체 필터 항 "ABC"를 만들기 위해, 단지 부가의 문자 "C"를 타이핑했을 뿐이다. 도 25에 도시한 바와 같이, 정보 라인(640) 및 주소 바(641)는 이제 디스플레이 상의 항목들이 항 "ABC"를 포함하는 것들임을 나타낸다. ABC 회사 스택(651)은 여전히 8개의 항목을 포함하는 것으로 표시되어 있는 반면, 백업 스택(652)은 이제 단지 2개의 항목을 포함하고 있다. XYZ 회사 스택(654)이 없어졌는데, 그 이유는 그의 내용 중 아무 것도 "ABC" 필터와 일치하지 않았기 때문이다. 정보 라인(644)은 이제 디스플레이 상의 스택들에 총 10개의 항목(이들은 총 25 MB의 메모리를 차지함)이 있음을 나타내고 있다. 도 24 및 도 25는 따라서 사용자가 새로운 필터 항을 어떻게 입력할 수 있는지 및 그 필터 항들이 이어서 디스플레이 상에 표시되어 있는 항목들을 필터링하기 위해 어떻게 사용되는지의 예들을 제공한다.
필터링 프로세스에서 뒤로 가기 위해 뒤로 버튼(643)이 사용자에 의해 이용될 수 있다. 도 10과 관련하여 상기한 바와 같이, 뒤로 버튼(643)은 사용자가 뒤로 내비게이션할 수 있게 해준다. 도 24 및 도 25의 예와 관련하여, 도 25에서 항 "ABC"로 필터링한 후에, 사용자는 필터링 프로세스를 한 단계 뒤로 가기 위해(이에 의해 도 24의 상태로 되돌아감) 뒤로 버튼(643)을 선택할 수 있다. 다른 대안으로서, 다른 실시예에서, 뒤로 버튼(643)은 전체 필터 항을 지울 수 있으며, 따라서 그 필터링이 행해지기 이전의 상태로 되돌아갈 수 있다. 이 경우에, 도 25에서 뒤로 버튼(643)을 누름으로써, 사용자는 도 10의 상태로 되돌아간다.
일 실시예에서, 뒤로 버튼 이외에, 사용자가 필터링 내비게이션에서 뒤로 가기 위한 또는 필터링 내비게이션을 다른 방식으로 수정하기 위한 부가의 수단이 제공된다. 이 부가적인 수단은 사용자가 주소 바(641)에 직접 액세스하여 이를 수정할 수 있게 해주는 것(이는 그에 대응하여 필터 내비게이션을 변경함)을 필요로 한다. 환언하면, 주소 바(641)를 직접 액세스하여 이를 수정함으로써, 사용자는 적용된 필터 중 하나 이상을 제거할 수 있거나 적용된 필터 중 임의의 것에 대한 값을 수정할 수 있다. 이 특징에 대해서는 공동 양도된, 2003년 4월 17일자로 출원된 미국 특허 출원 제10/420,040호에 보다 상세히 기술되어 있으며, 이는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함된다.
사용자가 도 24 및 도 25에 도시된 것 등의 필터 항을 타이핑하는 것과 관련 하여 타이머도 이용될 수 있다. 타이머는 사용자에 의한 타이핑에서 일시 정지가 있는지 모니터링하는 데 사용된다. 선택된 간격만큼 타이핑이 없는 후에, 필터가 적용된다. 예를 들어, 도 24의 상태에서, 사용자는 필터 항 "AB"을 타이핑하였으며, 이 경우 "A"와 "B" 사이에 그다지 시간 지연이 없었다. 항 "AB"를 타이핑한 후에, 사용자는 잠시 멈추며, 따라서 도 24에 나타낸 상태를 야기하며, 이 경우 필터 항 "AB"가 적용된다. 얼마간 후에, 사용자는 필터 항 "ABC"를 완성하기 위해 문자 "C"를 부가하고, 이어서 다시 잠시 멈추며, 이 때 필터 항 "ABC"이 도 25에 도시된 바와 같이 적용된다.
일 실시예에서, 사용자가 필터 영역(621)에 필터 항을 타이핑하고 이어서 다른 필터 또는 내비게이션을 선택한 후에, 내비게이션 상태가 갱신되고, 필터 영역(621)에서의 필터 항은 다시 비게 된다. 게다가, 도 26 내지 도 29를 참조하여 이하에서 보다 상세히 기술되는 바와 같이, 다른 필터 컨트롤은 어떤 필터 항의 선택에 기초하여 갱신될 수 있다.
도 26은 시스템 제공 필터 항 "2002년"이 선택되어 있는 화면 디스플레이를 나타낸 도면이다. 상기한 바와 같이, 기한 표시자(622) 아래에, 연도 선택(623)은 연도 2000, 2001 또는 2002를 포함한다. 선택 박스(SB)는 2002년 근방에 있도록 나타내어져 있으며, 이는 사용자가 그것을 원하는 필터 항으로서 선택하고 있음을 나타낸다.
도 27은 필터 항 "2002"이 적용되어 있는 화면 디스플레이를 나타낸 도면이다. 또한 "월을 선택" 선택자(623A)의 추가 선택이 도시되어 있다. 도 27에 나타 낸 바와 같이, 필터 항 "2002"을 적용한 후에, 스택 내의 항목들의 수가 감소된다. 보다 구체적으로는, ABC 회사 스택(651)은 이제 6개 항목을 포함하며, 백업 스택(652)은 이제 8개의 항목을 포함하고, 사업 계획 스택(653)은 이제 3개의 항목을 포함하며, XYZ 회사 스택(654)은 5개의 항목을 포함한다. 정보 라인(644)은 이제 총 22개의 항목을 나타내며, 이는 총 50 MB의 메모리를 차지한다. 정보 라인(640) 및 주소 바(641)는 이제 디스플레이 상에 표시된 항목들이 필터 항 "2002"을 포함하도록 필터링된 것들임을 나타낸다.
도 28은 필터링을 위한 월을 선택하기 위해 리스트가 제공되어 있는 화면 디스플레이를 나타낸 도면이다. 월의 리스트를 포함하는 박스(950)가 제공된다. 사용자가 "월을 선택" 선택자(623A)를 선택하고 있기 때문에, 박스(950)가 디스플레이 상에 제공되어 있다. 선택 박스(SB)는 1월 근방에 나타내어져 있다.
도 29는 도 28의 스택들이 1월에 의해 추가적으로 필터링되어 있고 또 "일"의 필터 항을 더 나타내고 있는 화면 디스플레이를 나타낸 도면이다. 도 29에 나타낸 바와 같이, 정보 라인(640) 및 주소 바(641)는 이제 디스플레이 상의 항목들이 항 "1월"에 의해 필터링되어 있는 것임을 나타낸다. 백업 스택(652)은 이제 2개의 항목을 포함하는 것으로 나타내어져 있는 반면, 사업 계획 스택(653)도 역시 2개의 항목을 포함하는 것으로 나타내어져 있다. 정보 라인(644)은 디스플레이 상에 총 4개의 항목이 있음을 나타내고 있으며, 이는 총 10 MB의 메모리를 차지한다. 사용자가 결과를 특정의 날짜로 추가적으로 필터링하고자 하는 경우, "날짜 선택" 선택자(623B)가 제공된다. 날짜 또는 날짜의 범위가 선택될 수 있는 예시적인 달 력 컨트롤(14400)이 도 144에 도시되어 있다.
도 24 내지 도 29와 관련하여 상기한 바와 같이, 필터 항이 시스템에 의해 제공되거나 사용자에 의해 타이핑될 수 있다. 필터 항이 선택된 경우, 제공되어 있는 나머지 필터 항이 갱신될 수 있다(예를 들어, 도 26에서 "2002년"이 선택된 후에, 도 27에서, 연도를 선택하기 위한 옵션이 더 이상 제공되지 않으며, 그 대신에 "월을 선택" 옵션이 제공된다). 상기한 바와 같이, 필터링 프로세스에서 뒤로 가기 위해 사용자에 의해 뒤로 버튼(643)이 선택될 수 있다. 예를 들어, 도 29에서 "1월"이 선택된 후에, 사용자는 필터링 프로세스에서 "2002년"(도 27에 나타냄)까지 뒤로 가기 위해 뒤로 버튼(643)을 선택할 수 있다. 필터 메뉴는 또한 "스태킹 기준(stack by)" 기능(도 15 및 도 16과 관련하여 상기한 '스태킹 기준' 기능(stack by function)과 유사하게 동작함)을 포함할 수 있다. 예를 들어, "파일 유형" 필터는 "엑셀", "파워포인트", "워드", 또한 "파일 유형별 스태킹(Stack by file type)"에 대한 선택항을 가질 수 있다. "스태킹 기준" 기능을 선택하면 여러가지 파일 유형에 대한 스택을 보여주도록 뷰를 변경한다.
일반적으로, 필터는 파일 또는 항목의 서로 다른 프로퍼티에 적용되도록 구성될 수 있다. 일 실시예에서, 필터는 알파벳 인덱스, 이산적인 값, 날짜, 및 숫자 범위 등의 서로 다른 유형에 따라 분류될 수 있다. 알파벳 인덱스에 대한 예시적인 프로퍼티는 파일 이름, 저작자, 음악가, 연락처 이름(contact friendly name), 소유자, 문서 저작자, 문서 제목, 문서 주제, 및 설명을 포함할 수 있다. 이산적인 값에 대한 예시적인 프로퍼티는 장소, 파일 유형(애플리케이션 이름), 장 르, 트랙, 데케이드(decade)(음악), 등급(음악), 비트 레이트, 보호(protected), 문서 카테고리, 문서 페이지 수, 문서 평가, 카메라 모델, 치수, 제품 이름, 제품 버전, 이미지 X, 이미지 Y, 및 문서 생성 시간을 포함할 수 있다. 날짜에 대한 예시적인 프로퍼티는 최근 액세스 일자, 최근 수정 일자, 생성 일자, 촬영 일자(사진)를 포함할 수 있다. 숫자 범위에 대한 예시적인 프로퍼티는 파일 크기일 수 있다.
도 24 내지 도 29와 관련하여 상기한 필터에 의해 사용자가 관심의 특정 항목을 찾기 위해 항목들의 리스트를 축소시킬 수 있다. 특정의 예로서, 상기한 프로세스에 따르면, 사용자는 특정의 사람에 의해 저작되고 지난 주에 편집된 마이크로소프트 워드 파일만을 보여주도록 현재의 문서 리스트를 축소시킬 수 있다. 이 기능은 사용자가 다수의 항목의 리스트에서 특정의 항목을 찾을 수 있게 해주며, 사용자가 그 리스트에서 각각의 항목을 수동으로 살펴볼 필요가 없게 해주는 데 도움이 된다.
도 30은 새로운 바로가기 링크를 생성하는 루틴(940)을 나타낸 흐름도이다. 이하에서 보다 상세히 기술하는 바와 같이, 바로가기 링크는 일련의 항목의 사용자 선택 뷰를 생성하기 위해 사용자에 의해 클릭될 수 있는 미리 정의된 링크이다. 일 실시예에서, 바로가기 링크는 일종의 피봇으로 생각될 수 있다. 바로가기 링크는 가상 폴더를 검색하는 메카니즘을 제공한다. 바로가기 링크를 클릭하면 ("즐겨찾기"를 클릭하면 사용자를 웹 사이트로 가게 할 수 있는 것과 동일한 방식으로) 사용자는 원하는 폴더로 갈 수 있다. 바로가기 링크는 시스템에 의해 미리 정의될 수 있거나 사용자에 의해 설정될 수 있다. 예를 들어, "모든 저작자"를 클릭하면 저작자별로 스태킹된 뷰를 반환할 수 있다. "모든 문서"를 클릭하면 저장 영역 전부에 대한 문서들 전부에 대한 단순 뷰(flat view)를 반환할 수 있다. 사용자는 또한 그 자신의 바로가기 링크를 생성할 수 있다.
도 30에 도시한 바와 같이, 블록(942)에서, 사용자는 새로운 바로가기 링크가 현재의 필터 항 또는 내비게이션으로부터 형성되어야만 함을 나타내기 위해 디스플레이 상에서 선택을 할 수 있다. 블록(944)에서, 사용자는 새로운 바로가기 링크에 대한 새 이름을 제공한다. 블록(946)에서, 새로운 바로가기 링크가 저장되고, 새로운 바로가기 링크 이름이 디스플레이 상의 바로가기 링크 섹션에 제공된다.
도 31은 도 29의 필터링에 기초하여 "1월 작업"이라고 하는 새로운 바로가기 링크를 생성하는 화면 디스플레이를 나타낸 도면이다. 상기한 바와 같이, 도 29에서, 스택들은 1월에 의해 필터링되어 있다. 도 31에서, 사용자는 도 29의 필터링이 새로운 바로가기 링크로서 저장되어야만 함을 나타내며 새로운 바로가기 링크를 "1월 작업"이라고 명명하였다. 따라서, 새로운 1월 작업 바로가기 링크(612)는 디스플레이의 바로가기 링크 섹션에 나타내어져 있다. 새로운 바로가기 링크를 형성하는 것과 관련하여, 사용자는 일반적으로 "이 컬렉션을 바로가기 링크로서 저장" 등의 옵션을 제공받는다.
도 32는 "모든 저작자"의 바로가기 링크가 선택되어 있는 화면 디스플레이를 나타낸 도면이다. 도 32에 나타낸 바와 같이, 선택 박스(SB)는 모든 저작자 선 택(611) 주변에 나타내어져 있다. 바로가기 링크에 의해 액세스가능할 수 있는 컬렉션의 다른 예들은 "모든 저작자", "최근 문서", "내가 공유한 모든 문서", "내가 저작한 모든 문서", "내가 저작하지 않은 모든 문서", "바탕 화면", 및 "모든 유형"을 포함한다.
도 33은 도 32의 항목들의 저작자 모두의 리스트가 제공되어 있는 화면 디스플레이를 나타낸 도면이다. 도 33에 도시되어 있는 바와 같이, 항목의 이름, 저작자, 수정된 날짜, 유형, 크기, 및 항목의 장소를 보여주기 위한 컬럼들을 나타내는 정보 라인(950)이 제공되어 있다. 저작자 1 내지 4에 각각 대응하는 저작자(951-954)의 리스트가 나타내어져 있다.
도 34는 도 33의 리스트로부터 "저작자 1"이 선택되어 있는 화면 디스플레이를 나타낸 도면이다. 저작자 1의 문서는 문서 1 및 2에 각각 대응하는 문서(951A, 951B)를 포함한다. 문서(951A)는 저작자 1에 의해 저작된 것으로 나타내어져 있으며, 2001년 7월 11일에 수정되었고, 마이크로소프트 엑셀 파일이며, 282 Kb의 메모리를 차지하고, 장소 \\server1\folder2로부터 획득되었다. 문서(951B)는 저작자 1에 의해 저작된 것으로 나타내어져 있으며, 2002년 12월 22일에 수정되었고, 마이크로소프트 워드 파일이며, 206 킬로바이트의 메모리를 차지하고, 장소 내 문서\folder1에 물리적으로 저장되어 있다. 문서(951A, 951B)의 장소는 또한 본 발명의 가상 폴더가 다른 물리적 장소로부터의 항목들을 포함할 수 있다는 것을 나타내고 있으며, 이에 대해서는 이하에서 보다 상세히 설명한다.
도 35는 새로운 라이브러리를 생성하는 루틴(960)을 나타내는 흐름도이다. 라이브러리의 일례는 도 10을 참조하여 상기한 문서 라이브러리이다. 일반적으로, 라이브러리는 서로 연관될 수 있는 큰 그룹의 유용한 유형의 파일들로 이루어져 있다. 예를 들어, 사진은 하나의 라이브러리일 수 있으며, 음악은 또하나의 라이브러리일 수 있고, 문서는 또하나의 라이브러리일 수 있다. 라이브러리는 특정의 유형의 항목들과 관련이 있는 도구 및 동작을 제공할 수 있다. 예를 들어, 사진 라이브러리에서, 슬라이드 쇼를 생성하거나 사진을 공유하는 등을 위해 사진을 조작하는 것에 관련되어 있는 도구 및 필터가 있을 수 있다. 도 35에 도시한 바와 같이, 블록(962)에서, 선택된 특성을 갖는 항목들을 포함하게 되는 새로운 라이브러리가 생성된다. 블록(964)에서, 선택된 항목들은 그룹을 이루어 라이브러리로 된다. 블록(966)에서, 항목들의 선택된 특성 또는 다른 원하는 기능과 관련된 도구 및/또는 동작이 제공된다.
도 36은 이용가능한 라이브러리의 컬렉션이 나타내어져 있는 화면 디스플레이를 나타낸 도면이다. 도 36에 나타내어져 있는 바와 같이, 라이브러리는 문서 라이브러리(971), 사진 및 비디오 라이브러리(972), 음악 라이브러리(973), 메시지 라이브러리(974), 연락처 라이브러리(975), 및 TV 및 영화 라이브러리(976)는 물론 모든 항목 라이브러리(977)를 포함한다. 모든 항목 라이브러리(977)는, 결합된 다른 라이브러리들 모두로부터의 항목들의 총수인, 275개 항목을 포함하는 것으로 나타내어져 있다. 정보 라인(644)은 총 700 MB의 메모리를 차지하는 총 275개 항목을 나타낸다. 유의할 점은 문서 라이브러리(971)가 도 10과 관련하여 상기한 라이브러리라는 것이다.
도 37은 가상 폴더 또는 자동 리스트 컬렉션의 범위를 정의하는 루틴(990)을 나타낸 흐름도이다. 이하에서 보다 상세히 기술되는 바와 같이, 가상 폴더 시스템은, 사용자가 항목들 전부에 즉시 액세스할 수 있도록, 다수의 물리적 장소들(예를 들어, 서로 다른 하드 드라이브, 서로 다른 컴퓨터, 서로 다른 네트워크 장소, 기타 등등)로부터의 항목들을 표현할 수 있다. 예를 들어, 사용자는 단일의 디스플레이 상에서 다수의 물리적 장소로부터 음악 파일을 제공받을 수 있으며, 그 파일들을 한꺼번에 처리할 수 있다.
도 37에 도시한 바와 같이, 블록(992)에서, 항목들이 도출되는 물리적 장소들에 대한 범위가 정의된다. 블록(994)에서, 질의에 응답하여, 범위에 정의된 대로 물리적 장소들로부터 항목들이 도출된다. 블록(996)에서, 질의에 의해 도출된 항목들 전부가 단일의 디스플레이 상에 제공된다.
도 38은 가상 폴더 컬렉션의 범위를 형성할 수 있는 여러가지 소스를 나타낸 블록도이다. 도 38에 도시한 바와 같이, 시스템(1000)은 현재의 컴퓨터(1010), 부가의 컴퓨터(1020), 외장형 분리형 저장 장치(1030), 및 네트워크(1040) 상의 장소들을 포함할 수 있다. 전체 범위(1001)는 컬렉션을 생성하기 위해 사용자의 항목들이 도출되는 물리적 장소 전부를 포함하는 것으로 기술되어 있다. 이 범위는 사용자에 의해 설정 및 수정될 수 있다. 상기한 바와 같이, 도 34에서 서버 및 현재 컴퓨터 상의 내 문서 폴더로부터 온 서로 다른 문서들을 나타내고 도 18에서 다수의 장소들에 물리적으로 저장되어 있는 물리적 폴더를 나타내고 있는 것과 같이, 다른 도면들은 항목들이 서로 다른 물리적 장소들로부터 올 수 있음을 나타내고 있 다.
도 39는 가상 폴더 컬렉션에 비파일 항목들을 포함시키는 루틴(1080)을 나타낸 흐름도이다. 비파일 항목은 일반적으로 물리적 파일 저장 장치에 위치하는 파일 항목과 대비된다. 비파일 항목의 예는 이메일 또는 연락처와 같은 것이다. 도 39에 나타낸 바와 같이, 블록(1082)에서, 질의에 의해 검색될 수 있는 파일 항목과 함께 비파일 항목을 포함시키기 위해 데이터베이스가 이용된다. 블록(1084)에서, 질의에 응답하여, 질의와 일치하는 비파일 항목 및 파일 항목 둘다가 도출된다. 블록(1086)에서, 질의와 일치한 비파일 항목 및 파일 항목 둘다가 디스플레이 상에 제공된다.
도 40은 여러가지 비파일 항목을 나타내는 화면 디스플레이를 나타낸 도면이다. 도 40에 나타낸 바와 같이, 항목들은 "John"을 포함하는 항목들로 필터링되어 있다. 이들 항목은 연락처 항목(1101), 이메일 항목(1102), 및 문서 항목(1103, 1104)을 포함하는 것으로 나타내어져 있다. 연락처 항목(1101) 및 이메일 항목(1102)은 비파일 항목이다. 본 시스템은 정규의 파일 항목과 함께 이러한 비파일 항목이 포함될 수 있게 해주며, 그에 따라 이들은 사용자가 원하는 바대로 구성 및 조작될 수 있다. 도 2와 관련하여 상기한 바와 같이, 이러한 비파일 항목은 전적으로 관계형 데이터베이스(230) 내에 포함될 수 있으며, 이 데이터베이스는 다른 방식으로 파일의 프로퍼티에 관한 정보를 포함한다.
본 발명의 다른 측면에서, 서로 다른 유형의 필터 컨트롤이 구현되는 그래픽 사용자 인터페이스가 제공된다. 이 측면에 따르면, 리스트뷰 모드(listview mode) 에서 복수의 항목들에 의해 공유되는 프로퍼티에 대응하는 메타데이터 프로퍼티 컨트롤이 제공된다. 적용가능한 경우 특별히 언급하지 않더라도, 상기의 설명이 이하의 기재에 적용된다는 것을 잘 알 것이다.
미국 워싱턴주 레드몬드 소재의 마이크로소프트사의 Microsoft Windows XP 상표 운영 체제에서, 사용자는 트리 구조에서 현재 식별되는 폴더 및 파일의 리스트를 보기 위한 서로 다른 뷰를 제공받는다. 이들 뷰는 자세히 보기, 아이콘 보기, 썸네일 보기, 리스트 보기, 및 타일 보기를 포함한다. 이들 뷰에서 식별되는 객체는 다수의 서로 다른 메타데이터 프로퍼티에 의해 분류 또는 그룹화된다. 도 140은 Windows XP 상표 운영 체제에서의 자세히 보기의 예시적인 스크린샷을 제공한다. 자세히 보기에서, 각각의 행은 특정의 객체에 대응하고, 각각의 열은 객체의 특정의 프로퍼티에 대응한다. 이들 프로퍼티는 임의의 원하는 순서로 열거될 수 있다. 이 예에서, 좌측에서 우측으로 식별되는 프로퍼티들은 이름, 크기, 수정된 날짜, 생성된 날짜, 액세스된 날짜, 저작자 및 유형을 포함한다. 객체 및 그의 연관된 정보는 유형 - HTML 문서 및 마이크로소프트 워드 문서 - 에 따라 2개의 개별적인 그룹으로 분할되어 있다. "그룹으로 보여주기(Show in Groups)" 커맨드는 화면의 상부에 있는 "보기" 드롭다운 메뉴를 통해 "아이콘 정렬" 드롭다운 메뉴로 드릴 다운(drill down)함으로써 액세스가능하다. 저작자 등의 프로퍼티를 선택하면 객체들이 저작자에 따라 재그룹화되게 된다. 그룹화가 활성화되지 않은 경우, 프로퍼티를 선택하면 객체가 선택된 프로퍼티에 의해 분류되게 된다.
본 발명의 측면들은 Windows XP 상표 운영 체제에서의 사용자 인터페이스의 핵심 기능 중 일부를 토대로 하고 있다. 본 발명의 어떤 측면들은 사용자가 복수의 항목들에 의해 공유되는 프로퍼티를 사용하여 뷰를 필터링할 수 있게 해주는 배열 및 필터 컨트롤을 제공한다. 필터 컨트롤은 어떤 측면에서 사용자가, 예를 들어 도 24에서 이미 나타낸 주소 바(641) 등의, 주소 바로부터 필터 항을 용이하게 추가, 변경 또는 제거할 수 있게 해준다. 필터 컨트롤을 적용하는 한 구현에서, 사용자는 논리합(disjunction)에 의해, 즉 단일의 프로퍼티의 다수의 값들을 OR함으로써(예를 들어, 저작자 = "Bill" 또는 "Bob") 디스플레이 객체의 뷰를 필터링할 수 있다. 필터 컨트롤을 적용하는 다른 측면들에서, 사용자는 프로퍼티에 의해 디스플레이 객체의 뷰를 분류, 그룹화 또는 스태킹할 수 있다.
본 발명의 측면들에 따르면, 프로퍼티 헤더가 각각의 보기 모드에서 리스트뷰의 상부를 따라 일련의 레이블로서 나타난다. 보기 모드는 아이콘 보기, 자세히 보기, 리스트 보기, 타일 보기 및 썸네일 보기를 비롯하여 물리적 또는 가상 파일의 임의의 보기를 포함할 수 있다. 프로퍼티 헤더에서의 프로퍼티들 각각은 프로퍼티 컨트롤로서 기능하며, 연관된 컨트롤 기능에 액세스하기 위해 프로퍼티 컨트롤을 클릭하는 것 등의, 사용자 선택에 의해 호출될 수 있다. 사용자가 이용가능할 수 있는 다수의 프로퍼티가 있을 수 있다. 그 자체로서, 사용자에게 가장 유용한 관련된 프로퍼티 서브셋을 디스플레이하는 것이 실용적일 수 있다. 이 점에서, 디스플레이 헤더에 디스플레이되는 일련의 프로퍼티는 사용자에 의해 커스터마이즈가능할 수 있거나, 디폴트 템플릿의 일부일 수 있거나, 또는 주소 바 상에서의 질의의 함수일 수 있다. 디스플레이될 일련의 프로퍼티를 선택하는 한가지 방식은 개개의 쉘 폴더(즉, 페이지)에 기초하며, 따라서 각각의 가상 폴더(자동리스트), 리스트, 파일 폴더, 기타 등등에서 일련의 프로퍼티가 기본적으로 커스터마이즈될 수 있다. 예를 들어, 최근에 본 모든 문서를 보여주는 "최근 문서"라고 하는 가상 폴더의 경우, "마지막으로 액세스된 날짜" 프로퍼티가 유용한 반면, 다른 가상 폴더에서, 이는 유용하지 않을 수 있다. 또한, 프로퍼티들은 프로퍼티 헤더 내에서 재정렬되거나 예를 들어 드래그 및 드롭에 의해 제거될 수 있다.
도 141a는 본 발명의 예시적인 구현에 따른 자세히 보기에 대한 프로퍼티 헤더(14100)를 나타낸 것이고, 도 142a는 타일 보기 또는 썸네일 보기 등의 다른 리스트뷰 모드에 대한 프로퍼티 헤더(14200)를 나타낸 것이다. 알 수 있는 바와 같이, 도 141a 및 도 142a에서의 프로퍼티 헤더 간의 주된 차이점은 자세히 보기에서 헤더(14100)에서의 개개의 프로퍼티 컨트롤이 자세히 보기에서의 컬럼 크기로 매핑되는 반면, 헤더(14200)에서의 개개의 프로퍼티 컨트롤은 프로퍼티 이름을 집어 넣는 데 요구되는 공간만을 차지한다는 것이다. 프로퍼티 헤더의 아래는 디스플레이 객체(예를 들어, 물리적 파일 및 폴더, 가상 파일 및 폴더)가 디스플레이되는 리스트뷰 모드의 영역(도시 생략)이다.
각자의 헤더에서의 각각의 프로퍼티 컨트롤은 도 141b에서의 자세히 보기 및 도 142b에서의 다른 리스트뷰 모드에 나타낸 바와 같이 메인 부분(main portion)(14110) 및 분할 부분(split portion)(14112)으로 나누어진 분할 버튼을 포함할 수 있다. 분할 버튼 상태는, 사용자가 커서(14120)를 프로퍼티 컨트롤의 일부분 상에 또는 프로퍼티 헤더(14100)에 위치시킬 때 사용자에게 보여질 수 있거 나, 프로퍼티 컨트롤이 처음으로 디스플레이될 때 보여질 수 있다.
커서(14120)를 프로퍼티 컨트롤의 메인 부분(14110) 상에 위치시키고 선택(예를 들어, 클릭)을 하면, 디스플레이 객체는 프로퍼티 컨트롤과 연관된 프로퍼티에 따라 정렬되게 된다. 도 141b에 도시된 예에서, 프로퍼티는 "유형"이고, 프로퍼티 컨트롤의 메인 부분(14110)을 선택하면 디스플레이 객체가 알파벳순으로 정렬된다. 다른 대안으로서, 모든 물리적 폴더가 디스플레이되고, 뒤이어서 모든 마이크로소프트 엑셀 문서가 오며, 뒤이어서 모든 마이크로소프트 파워포인트 문서가 오고, 뒤이어서 모든 마이크로소프트 워드 문서가 오며, 뒤이어서 모든 가상 폴더(자동리스트) 기타 등등이 온다. 디스플레이 객체가 프로퍼티별로 정렬될 때, 프로퍼티 컨트롤은 디스플레이 객체가 프로퍼티별로 정렬되어 있다는 시각적 표시를 제공할 수 있다. 예를 들어, 프로퍼티 컨트롤이 눌러진 버튼의 시각적 외관 또는 이를 다른 프로퍼티 컨트롤과 구분시켜주는 다른 외관을 가질 수 있다. "유형"별로 정렬하기 이전에, 디스플레이 객체가 "날짜" 등의 다른 프로퍼티에 의해 정렬되어 있는 경우, 그 프로퍼티는 2차적인 정렬 항이 되고, 따라서 문서 유형 내에서, 디스플레이 객체는 날짜에 의해 2차적으로 정렬된다.
도 141c 및 도 142b에 나타낸 바와 같이, 커서(14120)를 프로퍼티 컨트롤의 분할 부분(14112) 상에 위치시키고 선택을 하면, 프로퍼티 컨트롤에 대응하는 프로퍼티에 대한 배열 및 필터 드롭다운 메뉴가 제공되게 된다. 배열 및 필터 드롭다운 메뉴는 사용자가 프로퍼티 컨트롤에 대응하는 프로퍼티에 의해 디스플레이 객체의 뷰를 그룹화, 스태킹 또는 필터링할 수 있게 해주는 여러가지 컨트롤을 제공한 다. 배열 및 필터 드롭다운 메뉴는 정렬 커맨드의 리스트를 포함하는 정렬 부분(14130) 및 필터 항의 리스트를 포함하는 필터 부분(14135)을 포함한다. 이 2개의 리스트는 도 141c 및 도 142b에 나타낸 바와 같이 시각적 분할기에 의해 분리될 수 있다.
도 141c 및 도 142b의 예에서, 필터 항은 항목들의 여러가지 "유형" 프로퍼티에 대응한다. 필터 부분(14135)에 제공된 일련의 특정 필터는 뷰에서의 적어도 하나의 항목이 필터 항을 만족시키는 가능한 필터 항의 서브셋이다. 예를 들어, 뷰에서의 디스플레이 객체 중 하나가 키워드로서 "휴가"를 갖는 사진인 경우, "휴가"가 키워드 프로퍼티에 대응하는 키워드 프로퍼티 컨트롤에 대한 배열 및 필터 드롭다운 메뉴에 나타나게 된다. 모든 필터 항이 배열 및 필터 드롭다운 메뉴에 적합한 것은 아닐 수 있음을 잘 알 것이다. 도시된 바와 같이, 도 141c 및 도 142b에서, 사용자가 다른 이용가능한 필터 항을 볼 수 있게 해주기 위해 스크롤 바 컨트롤이 제공된다. 드래그 및 드롭 등의 동작에 의해 항목들이 뷰 안으로 또는 그 밖으로 이동될 수 있음을 잘 알 것이다. 항목이 뷰에 추가되거나 그로부터 제거될 때마다, 필터 부분(14135)에 제공되어 있는 일련의 특정 필터는 추가된 또는 제거된 항목을 고려하기 위해 갱신된다.
필터 항은 프로퍼티 컨트롤에 대응하는 프로퍼티의 평가 및 뷰에 디스플레이된 항목들에 기초하여 사전 설정되거나 동적으로 생성될 수 있다. 상기한 도 22 및 그의 부속 설명은 새로운 필터 항을 동적으로 생성하는 예시적인 루틴을 제공한다. 일련의 가능한 필터 및 그의 디스플레이 순서는 특정의 프로퍼티가 항목들을 어떻게 분류하는지에 의존할 수 있다. 키워드 등의 다중값 프로퍼티에 있어서, 각각의 개별적인 값은 그 자신의 버킷(bucket)을 가질 수 있다. 따라서, 항목이 키워드 "휴가; 하와이; 해변"을 갖는 경우, 필터링을 위해 3개의 개별적인 버킷이 생성되는데, 하나는 "휴가"를 위한 것이고, 하나는 "하와이"를 위한 것이며, 하나는 "해변"을 위한 것이다. 동일한 프로세스가 그룹화 및 스태킹의 동작에 적용되며, 이에 대해서는 이하에서 더 설명한다.
날짜 프로퍼티의 경우, 오늘의 날짜가 2004년 11월 19일 금요일이라고 가정하면, 날짜는 이하의 카테고리, 즉 오래전, 2년전, 작년, 2004년 1월, 2004년 2월,..., 2004년 8월, 2004년 9월, 지난 달, 3주전, 2주전, 지난주, 일요일, 월요일, 화요일, 수요일, 어제, 오늘, 내일, 지금부터 2일후, 금주 후반, 금월 후반, 내년, 어떤 장래의 날짜로 분류될 수 있다. "크기" 및 "유형" 등의 다른 프로퍼티는 Windows XP 상표 운영 체제에서 발견되는 것과 동일한 버킷화(bucketization)를 가질 수 있다.
한 측면에 따르면, 날짜(예를 들어, 생성된 날짜, 수정된 날짜, 기타 등등)와 관련된 프로퍼티에 대한 필터 부분에서의 필터 항의 리스트는 "날짜를 선택"이라고 하는 필터 항의 리스트의 상부에 있을 수 있는 부가적인 필터링 부분을 포함한다. 이 필터 항을 선택하면 달력 선택자 컨트롤(calendar picker control)(14400)이 디스플레이되게 되고, 이로부터 사용자는 특정의 날짜 또는 날짜 범위를 선택할 수 있다. 도 14400은 날짜 4월 20일이 선택되어 있는 이러한 컨트롤의 일례를 제공한다.
파일 이름, 코멘트, 설명 등의 어떤 프로퍼티는 분할 또는 버킷화되지 않을 수 있다. 이들 프로퍼티의 경우, 그룹화, 스태킹 및 필터링을 위해 개별적인 버킷으로의 프로퍼티의 유용한 분해가 없을 수 있다. 이 경우에, 배열 및 필터 드롭다운 메뉴에 제공되는 유일한 옵션은 정렬(sort)일 수 있다.
배열 및 필터 드롭다운 메뉴에서의 각각의 필터 항은 각각의 필터 항을 만족시키는 항목의 수에 관한 표시를 제공하는 대응하는 표시자를 포함할 수 있다. 도 141c 및 도 142b에 나타낸 바와 같이, 아이콘(14138)은 필터 항 "파워포인트"에 인접하여 제공되어 있으며, 종이의 스택을 표현한다. 다른 필터 항에 인접하여 위치한 다른 아이콘을 조사해보면 이들도 역시 종이의 스택을 표현하고 있음을 보여준다. 그렇지만, 종이 아이콘의 스택은 외관이 다르며 동적으로 생성되고, 아이콘에서 스태킹된 종이의 수는 대응하는 필터 항을 만족시키는 항목의 수를 상대적으로 표현한다. 예를 들어, 아이콘(14138)은 필터 항 "이메일 메시지"에 대응하는 아이콘보다 더 많은 종이가 스태킹되어 있음을 보여주고, "이메일 메시지" 필터 항은 아웃룩 문서" 필터 항에 대응하는 아이콘보다 더 많은 종이가 스태킹되어 있음을 보여준다. 따라서, "이메일 메시지" 필터 항보다 더 많은 항목이 "파워포인트" 필터 항을 만족시키고, "아웃룩 문서" 필터 항보다 더 많은 항목이 "이메일 메시지" 필터 항을 만족시킨다.
필터 부분(14135)은 또한 필터 항의 리스트에서 각각의 필터 항에 대응하는 체크박스 컨트롤을 포함할 수 있다. 예를 들어, 체크박스 컨트롤(14140)은 "일러스트레이터 아트워크(Illustrator Artwork)" 필터 항에 대응한다. 필터 항 옆에 있는 체크박스 컨트롤을 선택하면 선택된 체크박스 컨트롤에서 체크를 함으로써 그 필터 항이 현재의 선택에 추가되게 되고, 배열 및 필터 드롭다운 메뉴의 필터 부분(14135)에서의 다른 필터 항에 대응하는 체크박스 컨트롤을 그의 이전의 상태, 즉 선택(selected) 또는 비선택(unselected)으로 놔둔다. 또한, 체크박스 컨트롤의 선택은 디스플레이 객체를 포함하는 영역에서의 필터 동작의 실시간 미리보기(live preview)를 보여줄 수 있다. 따라서, 체크박스 컨트롤을 선택하면 디스플레이 상에 나타내어져 있는 항목들이 체크박스 컨트롤에 대응하는 필터 항을 만족시키는 항목들을 포함하게 된다. 다른 체크박스 컨트롤이 선택되지 않은 경우, 선택된 체크박스 컨트롤을 만족시키는 디스플레이 객체만이 디스플레이 상에 나타내어지게 된다. 체크박스 컨트롤의 선택 또는 선택 해제가 포인팅 장치를 사용하는 것, 키보드 입력, 음성 입력, 및 이들의 조합을 포함한 임의의 수의 방식으로 행해질 수 있음을 잘 알 것이다. 예를 들어, 사용자가 <SHIFT> 키를 누르고 있는 경우, 사용자는 Windows XP 상표 운영 체제가 다수의 선택을 어떻게 가능하게 해주는지와 유사한 필터 항의 범위를 선택할 수 있다.
도 141c 및 도 142b를 참조하면, 디스플레이 영역(도시 생략)에서의 각각의 디스플레이 객체는 예를 들어 도 21과 관련하여 상기한 바와 유사한 방식으로 주소 바(도시 생략)에서의 현재의 질의를 만족시킨다. 체크박스 컨트롤(14140)을 선택하면 체크박스 컨트롤(14140)이 도 141d에 나타낸 바와 같이 체크된 체크박스 컨트롤(14140A)로서 제공되게 되고, "일러스트레이터 아트워크" 필터 항을 만족시키는 그 항목들만이 디스플레이 상에 제공되게 된다. 다른 체크박스 컨트롤이 선택되지 않은 경우, 도 23에서 설명한 루틴과 유사한 루틴이 체크박스 컨트롤의 선택을 위해 이용될 수 있으며, 이 시나리오에서의 단계(922)는 필터 항들 중 하나에 대응하는 체크박스 컨트롤의 사용자 선택에 대응한다.
체크박스 컨트롤을 선택한 후에, <엔터> 커맨드를 선택하거나 배열 및 필터 드롭다운 메뉴 밖에서 다른 방식으로 커맨드를 발행하면(예를 들어, 그래픽 사용자 인터페이스 상의 다른 곳을 클릭하면), 배열 및 필터 드롭다운 메뉴가 닫히게 되고 현재 선택된 필터(들)를 적용한다. 또한, 필터 항 또는 필터 항과 연관된 아이콘을 선택하면 임의의 다른 체크박스 컨트롤을 선택 해제하고, 배열 및 필터 드롭다운 메뉴를 닫으며 필터 항을 적용한다. 이들 경우에, 주소 바(도 24 등의 다른 도면에 도시된 주소 바(641)와 유사함)는 질의에서의 필터 항을 포함하도록 갱신된다.
체크박스 컨트롤이 선택(체크)되어 있는 동안, 제2 필터 항에 대응하는 다른 체크박스 컨트롤을 선택하면 그 필터 항을 현재의 선택에 추가한다. 부가적인 체크박스 컨트롤을 선택하면 부가적인 체크박스 컨트롤이 체크된 체크박스 컨트롤로서 제공되게 되고, 체크된 체크박스 컨트롤에 대응하는 필터 항 각각을 만족시키는 그 항목들만이 디스플레이 상에 제공되게 된다. 도 143을 참조하면, "PDF 문서" 필터 항에 대응하는 체크박스 컨트롤이 이미 선택되어 있는 경우 "엑셀 워크시트" 필터 항에 대응하는 체크박스 컨트롤을 선택하면 디스플레이가 주소 바에서의 질의를 만족시키고 또 "엑셀 워크시트" 또는 "PDF 문서" 필터 항을 만족시키는 그 항목들을 포함하도록 갱신되게 된다. 따라서, 본 발명의 이 측면에 따르면, 각각의 필 터 항에 각각 대응하는 다수의 체크박스 컨트롤이 단일의 배열 및 필터 드롭다운 메뉴로부터 선택되는 경우, 논리적 OR 연산이 수행된다. 상기한 바와 같이, <엔터> 커맨드를 선택하거나 배열 및 필터 드롭다운 메뉴 밖에서 커맨드를 발행하면 배열 및 필터 드롭다운 메뉴가 닫히게 되고 현재 선택된 필터를 적용한다. 이들 경우에, 주소 바에 나타낸 질의는 필터 항의 논리적 OR 조합을 포함하는 단일의 필터를 포함하도록 갱신된다. 상기한 예의 경우, 주소 바에서 그 다음 세그먼트에 추가된 필터는 "엑셀 워크시트, PDF 문서"일 수 있다.
체크박스 컨트롤을 선택 해제하면 체크박스 컨트롤이 체크 해제된 것으로 나타나게 되며, 나머지 체크된 체크박스 컨트롤에 대응하는 필터 항을 만족시키는 그 항목들이 디스플레이 상에 나타나게 된다. 배열 및 필터 드롭다운 메뉴에서 체크박스 컨트롤이 선택(체크)되는 경우, 각각의 선택된 체크박스는 배열 및 필터 드롭다운 메뉴의 배열 부분에서 "<프로퍼티 이름>으로 필터링하지 않음" 커맨드를 선택함으로써 체크 해제될 수 있다. 도 143을 참조하면, 배열 및 필터 드롭다운 메뉴의 배열 부분(14330)은 "유형으로 필터링하지 않음" 커맨드를 포함하며, 이를 선택하면 필터 부분(14335)에서의 선택된 체크박스 컨트롤이 선택 해제 및 체크 해제되게 된다. 필터 부분에 선택된(체크된) 체크박스 컨트롤이 없는 경우, "<프로퍼티>로 필터링하지 않음" 커맨드가 디스에이블되고 도 141c 및 도 142b에서의 배열 부분(14130)에 나타낸 바와 같이 흐릿하게 보인다.
적어도 하나의 체크박스 컨트롤이 선택되어 있을 때 사용자가 제1 프로퍼티에 대응하는 배열 및 필터 드롭다운 메뉴를 닫으면, 제1 프로퍼티 컨트롤은 디스플 레이 상의 디스플레이 객체의 뷰가 필터링되어 있다는 표시자를 제공할 수 있다. 도 142c를 참조하면, 디스플레이 객체의 뷰가 "유형" 프로퍼티에 의해 필터링되어 있음을 나타내기 위해 심볼(14250)이 "유형" 프로퍼티에 대응하는 프로퍼티 컨트롤에 나타난다.
프로퍼티 헤더로부터 제2 프로퍼티 컨트롤을 선택함으로써 각자의 필터 항에 대응하여 적어도 하나의 체크박스 컨트롤이 선택되어 있을 때 사용자가 제1 프로퍼티에 대응하는 배열 및 필터 드롭다운 메뉴를 닫으면, 제2 프로퍼티 컨트롤에 대응하는 배열 및 필터 드롭다운 메뉴가 제공된다. 이 경우에, 배열 및 필터 드롭다운 메뉴에 있는 일련의 필터 항은 뷰에서의 적어도 하나의 항목이 제2 프로퍼티 컨트롤에 대한 필터 항은 물론 제1 프로퍼티 컨트롤에 대한 필터를 만족시키는 가능한 필터 항의 서브셋이다. 또한, 일련의 필터 항은 제1 프로퍼티 컨트롤과 연관된 배열 및 필터 드롭다운 메뉴로부터 이미 선택된 임의의 필터를 포함할 수 있다. 예를 들어, 사용자가 제1 프로퍼티 컨트롤 "유형"과 연관된 배열 및 필터 드롭다운 메뉴로부터 필터 항 "파워포인트"에 대한 체크박스 컨트롤을 선택하고 이어서 제2 프로퍼티 "저작자"에 대한 제2 프로퍼티 컨트롤을 선택하여 "저작자"에 대한 배열 및 필터 드롭다운 메뉴가 나타나게 하는 경우, "Hamlet" 및 "Horatio" 각각이 하나 이상의 "파워포인트" 파일에 관한 저작자이면 "Hamlet" 및 "Horatio" 필터 항 둘다가 나타난다. 그렇지만, "Horatio"가 어떤 "파워포인트" 파일도 저작하지 않은 경우, "Horatio"가 배열 및 필터 드롭다운 메뉴에 나타나지 않는다. "Horatio" 및 "Hamlet" 둘다가 적절한 필터 항이고 또 각각에 대한 체크박스 컨트롤이 이어서 선 택되는 경우, 뷰가 논리적 연산: 유형 = 파워포인트 AND (저작자 = Hamlet OR 저작자= Horatio) 갱신된다. <엔터> 커맨드가 선택된 경우, 상기한 논리적 연산이 적용되고 주소 바는 "파워포인트" 세그먼트 및 그 뒤에 오는 "Hamlet, Horatio" 세그먼트를 포함하도록 수정되며, 이 뷰는 질의를 만족시키는 항목들을 반영하도록 갱신된다. 일반적으로 말하면, 서로 다른 프로퍼티로부터의 값들은, 주소 바에서 질의에 추가될 때, 논리적 AND 연산으로 조합된다.
다른 측면에 따르면, 프로퍼티 헤더에서의 프로퍼티 컬럼 전부가 보이지 않는 경우, 프로퍼티 헤더에 들어가지 않는 컬럼들이 절단되고 도구막대에 통상적으로 있는 갈매기 표시(chevron) 등의 오버플로우 컨트롤을 통해 액세스될 수 있다. 갈매기 표시 버튼을 선택하면 절단된 프로퍼티 컨트롤을 제공하는 메뉴를 디스플레이한다. 도 143은 오버플로우 프로퍼티 컨트롤로부터 활성화되는 배열 및 필터 드롭다운 메뉴의 일례를 제공한다. 구체적으로는, 도 143은 프로퍼티 헤더의 우측 엣지를 나타낸 것으로서, 갈매기 표시(14350)는 부가적인 프로퍼티가 액세스가능함을 나타낸다. 갈매기 표시(14350)를 선택하면 그 결과 "저작자" 및 "유형" 프로퍼티에 대응하는 2개의 부가적인 프로퍼티 컨트롤이 표시된다. 커서는 "유형" 프로퍼티 컨트롤 상에 위치하고 배열 및 필터 드롭다운 메뉴에 대응하는 컨트롤이 선택되어 배열 부분(14330) 및 필터 부분(14335)을 포함하는 배열 및 필터 드롭다운 메뉴를 제공한다.
배열 및 필터 드롭다운 메뉴에 존재하는 배열 커맨드는 "<프로퍼티>별로 스태킹" 및 "<프로퍼티>별로 그룹화"는 물론 상기한 "<프로퍼티>별로 필터링하지 않 음" 커맨드를 포함한다. 도 141c, 도 142b 및 도 143에 나타낸 배열 및 필터 드롭다운 메뉴의 예들에서, 프로퍼티는 "유형"이다. 따라서, 배열 커맨드는 "유형별로 스태킹" 및 "유형별로 그룹화"를 포함한다.
보기에서의 항목들이 배열 및 필터 드롭다운 메뉴와 연관된 프로퍼티로 스태킹되어 있지 않은 경우, "<프로퍼티>별로 스태킹" 커맨드가 인에이블된다. "<프로퍼티>별로 스태킹" 커맨드를 선택하면 필터 항을 생성하기 위해 적용되는 카테고리화에 따라 항목들의 스택이 뷰에 생성되게 된다. 따라서, "유형" 프로퍼티와 관련하여, 스택들은 "마이크로소프트 워드 문서", "파워포인트", "엑셀 워크시트", 및 배열 및 필터 드롭다운 메뉴의 필터 부분(14135)에서의 필터 항의 리스트에 포함되어 있는 다른 필터 항을 포함할 수 있다. 예시적인 스택은 예를 들어 도 10에 나타내고 상기한 항목(651-655)과 유사한 외관을 가질 수 있다.
또한, 항목들이 현재 활성화된 프로퍼티 컨트롤의 프로퍼티에 의해 스태킹되어 있는 경우 "<프로퍼티>별 스태킹 중단" 커맨드가 이용가능할 수 있다. 이 커맨드를 선택하면 현재 프로퍼티에 의한 스태킹이 중단되게 된다.
보기 내의 항목들이 배열 및 필터 드롭다운 메뉴와 연관된 프로퍼티에 의해 그룹화되어 있지 않은 경우, "<프로퍼티>별로 그룹화" 커맨드가 인에이블된다. "<프로퍼티>별로 그룹화" 커맨드를 선택하면 필터 항을 생성하기 위해 적용된 카테고리화에 따라 뷰에 항목들의 그룹이 생성되게 된다. 그룹화된 항목들의 외관은 Windows XP 상표 운영 체제에서의 그룹화와 유사할 수 있다. 또한, 항목들이 현재 활성화된 프로퍼티 컨트롤의 프로퍼티에 의해 그룹화되어 있는 경우, "<프로퍼티> 별로 그룹화 중단" 커맨드가 이용가능할 수 있다. 이 커맨드를 선택하면 현재 프로퍼티에 의한 그룹화가 중단되게 된다.
도 41 내지 도 50 그리고 도 134 및 도 135은 도 10의 정보 라인(641)에 대응하고 또 본 발명에 따라 형성된 가상 주소 바와 관련된 도면이다. 이하에서 보다 상세히 기술되는 바와 같이, 가상 주소 바는 복수의 세그먼트를 포함하며, 각각의 세그먼트는 내용을 선택하기 위한 필터에 대응한다. 종합하면, 각각의 세그먼트의 대응하는 필터는 내용을 선택하기 위한 가상 주소를 나타낸다.
도 41은 본 발명을 동작시키는 데 적당한 예시적인 네트워크화된 컴퓨팅 환경(1200)의 블록도이다. 예시적인 네트워크화된 컴퓨팅 환경(1200)은 사용자와 상호작용하기 위한, 도 1과 관련하여 기술된 퍼스널 컴퓨터(1202) 등의 컴퓨팅 장치를 포함하며, 이 컴퓨팅 장치 상에서 사용자는 컴퓨팅 장치에 로컬적으로 또는 원격적으로 저장되어 있는 파일을 볼 수 있다. 이하의 설명이 퍼스널 컴퓨터와 관련하여 본 발명을 기술하고 있지만, 컴퓨팅 장치(1202)가 미니컴퓨터 및 메인프레임 컴퓨터, PDA, 태블릿 컴퓨터, 및 사용자와 상호작용하고 컴퓨팅 장치 및 다른 곳에 저장되어 있는 파일 및 컨텐츠를 표시할 수 있는 기타 장치(이에 한정되지 않음)를 비롯한 많은 유형의 물리적 장치를 포함한다는 것을 잘 알 것이다.
예시적인 네트워크화된 컴퓨팅 환경(1200)은 또한 컴퓨팅 장치(1202)가 액세스가능한 파일을 저장하고 또 도 41에 나타낸 바와 같이 인터넷(1206) 등의 통신 네트워크를 통해 컴퓨팅 장치에 연결되어 있는 서버(1204) 등의 하나 이상의 원격 서버를 포함할 수 있다. 게다가, 컴퓨팅 장치(1202)는 또한 원격 데이터베이 스(1208) 등의 파일 또는 다른 컨텐츠를 저장하는 다른 정보 소스에 연결될 수 있다. 당업자라면 원격 서버(1204) 및 원격 데이터베이스(1208) 둘다에는 물론 하드 디스크 드라이브(166)(도 1) 등의 로컬 저장 장치 상에 저장되어 있는 파일 및 정보가 컴퓨팅 장치 상의 통합된 파일 시스템의 일부인 컴퓨팅 장치(1202)에 의해 액세스가능하고 그 컴퓨팅 장치(1202) 상에 디스플레이가능할 수 있다는 것을 잘 알 것이다. 게다가, 원격 서버(1204) 및 원격 데이터베이스(1208)의 특정의 구성이 도 41에 제공되어 있지만, 당업자라면 이 특정의 구성이 단지 예시적인 것이며 본 발명을 제한하는 것으로 해석되어서는 안된다는 것을 잘 알 것이다.
도 42는 종래 기술에서 발견되는 바와 같이, 컴퓨터 파일 시스템에서 파일을 디스플레이하는 것과 연관된 종래의 주소 바(1302)를 갖는 예시적인 파일 뷰어(1300)를 나타낸 것이다. 본 설명의 목적상, 파일 뷰어는 파일 또는 다른 컨텐츠를 사용자에게 디스플레이하기 위한 디스플레이 장치(158)(도 1) 등의 디스플레이 장치 상의 뷰 또는 윈도우(window)이다. 파일 뷰어는 특히 파일을 사용자에게 디스플레이하기 위한 실행가능 프로그램에 대응하는 윈도우(window)일 수 있다. 다른 대안으로서, 파일 뷰어는 컴퓨터 시스템에 로컬적으로 또는 원격적으로 연결되어 있는 저장 장치로부터 데이터를 저장 또는 검색해야만 하는 실행가능 프로그램 상의 열려 있거나 닫혀 있는 대화상자 내의 뷰일 수 있다. 유의할 점은 파일 뷰어의 상기 예들이 예시적인 것이며 본 발명을 제한하는 것으로 해석되어서는 안된다는 것이다.
종래의 주소 바(1302)에서의 주소는 파일 시스템에서의 특정 장소에 대응한 다. 전술한 바와 같이, 종래의 주소 바(1302)에 디스플레이된 주소를 편집하기 위해, 사용자는 파일 시스템에 대한 특정 정보에 따라 주소를 수정해야만 한다. 다른 대안으로서, 사용자는 대안의 장소로 내비게이션하기 위해 트리 뷰(1304)에서 엔트리를 선택할 수 있다. 당업자라면 주소 바(1302) 외부의 다른 컨트롤(예시적인 파일 뷰(1300)에 도시되어 있지 않음)도 역시 이용가능할 수 있다는 것을 잘 알 것이다. 종래의 주소 바(1302)에 디스플레이된 주소가 파일 시스템에서의 특정의 장소에 대응하지만, 파일 시스템에서의 다수의 폴더에 분산되어 있는 관련 파일들이 종래의 주소 바(1302)와 관련해서는 디스플레이될 수 없다.
도 43은 컴퓨터 파일 시스템에서 파일을 디스플레이하는 것과 연관된 가상 주소 바(1402)를 갖는 예시적인 파일 뷰어(1400)를 나타낸 것이다. 가상 주소(1404)를 갖는 가상 주소 바(1402)는 도 42의 종래 기술의 파일뷰어(1300)의 종래의 주소(1304)에 의해 디스플레이되는 것과 유사한 정보를 디스플레이하도록 구성되어 있다. 가상 경로(virtual path)라고도 하는 가상 주소는 선택 기준에 따라 컴퓨터 파일 시스템에 저장된 파일을 참조한다.
도 42의 주소(1304) 등의 종래의 주소와 유사하게, 가상 주소의 선택 기준은 파일 시스템 계층 구조에서의 특정의 장소에 저장된 파일을 참조할 수 있다. 그렇지만, 가상 주소의 선택 기준은 또한 그의 특정의 파일 시스템 장소와 상관없이 파일을 참조할 수 있다. 따라서, 가상 주소는 물리적 장소 및 가상 장소를 비롯한 컴퓨터 파일 시스템 내의 다수의 장소에 저장된 파일을 참조할 수 있다. 도 43에 도시한 바와 같이, 파일 뷰어(1400)는, 가상 주소 바(1402)에서의 가상 주소(1404) 에 따라, 도 41의 파일 뷰어(1300)에서 발견되지 않는 파일(1406, 1408) 등의 부가적인 파일을 디스플레이할 수 있다. 게다가, 가상 주소 바(1402)는 또한 컴퓨터 파일 시스템에서의 파일 이외의 컨텐츠를 디스플레이하기 위해 이용될 수 있다. 예를 들어, 가상 주소 바(1402)는 시스템 장치, 시스템 서비스, 또는 인터넷 장소를 비롯한 내용을 참조하기 위해 사용될 수 있다.
도 44a는 컴퓨터 파일 시스템에서 내비게이션하기 위해 가상 주소 바(1402)에서의 가상 주소(1404)의 세그먼트를 조작하는 것을 나타낸 것이다. 가상 주소 바(1402) 등의 각각의 가상 주소 바는 세그먼트(1502, 1504, 1506, 1508) 등의 하나 이상의 대화형 세그먼트로 이루어져 있다. 가상 주소 바에서의 각각의 세그먼트는 컴퓨터 파일 시스템이 액세스가능한 이용가능한 컨텐츠 또는 파일 모두에 대한 하나 이상의 미리 정해진 필터 또는 선택 기준에 대응할 수 있다. 종합하면, 가상 주소 바(1402)에서의 세그먼트 모두의 필터는 가상 주소 바의 가상 주소를 나타낸다.
세그먼트(1502) 등의 가상 주소 바에서의 첫번째 세그먼트는 루트 세그먼트 또는 루트 필터라고 한다. 루트 세그먼트는 가상 주소 바(1402)에서 선택할 수 있는 가장 넓은 카테고리의 컨텐츠를 나타낸다. 예를 들어, 세그먼트(1502) "파일"은 컴퓨터 파일 시스템이 액세스가능한 모든 파일을 참조하는 필터를 나타낼 수 있다. 다른 대안으로서, 루트 세그먼트는 컴퓨터 시스템 상에서 사용자가 이용가능한 모든 시스템 서비스를 참조하는 필터 또는 컴퓨터 시스템에 설치된 모든 하드웨어 장치를 참조하는 필터를 나타낼 수 있다. 당업자라면 본 발명에 의해 여러가지 다른 대안적인 루프 필터가 이용될 수 있다는 것을 잘 알 것이다. 따라서, 상기한 예들은 예시적인 목적으로 제공된 것이며, 본 발명을 제한하는 것으로 해석되어서는 안된다. 게다가, 루트 세그먼트(1502) 상의 "파일" 등의 각각의 세그먼트에 대해 디스플레이된 라벨들은 예시적인 것이며, 본 발명의 제한하는 것으로 해석되어서는 안된다. 한 예시적인 실시예에 따르면, 세그먼트 상에 디스플레이된 라벨은 사용자 구성가능하다.
세그먼트(1504, 1506, 1508) 등의 가상 주소 바(1402)에서의 각각의 부가적인 세그먼트는 파일 뷰어(1400)에서 파일 또는 컨텐츠를 선택하고 디스플레이할 때 적용되는 부가적인 필터를 나타낸다. 예를 들어, 루트 세그먼트(1502) "파일"은 컴퓨터 시스템이 이용가능한 모든 파일을 참조한다. 세그먼트(1504) "문서 라이브러리"는, 워드 프로세서, 스프레드쉬트 또는 어떤 다른 문서 발생 애플리케이션 등을 통해 사용자에 의해 문서로서 발생된 그 파일들을 선택함으로써, 루트 세그먼트(1502)에 의해 선택되는 파일들을 필터링한다. 세그먼트(1506) "워드 문서"는 마이크로소프트사의 워드(Word) 애플리케이션 등의 워드 프로세서를 사용하여 발생된 그 문서들에 따라 세그먼트(1504)에 의해 선택된 파일들을 필터링한다. 마지막으로, 세그먼트(1508) "저작자 A"는 세그먼트(1506)에 의해 선택된 워드 프로세싱 문서를, 이들 워드 프로세싱 문서가 "저작자 A"에 의해 저작되었는지 여부에 따라, 필터링한다. 따라서, 가상 주소 바(1402)에 표현된 가상 주소에 따라 선택된 컨텐츠는 가상 주소 바에서의 세그먼트 전부에 대응하는 필터를 만족시켜야만 한다.
가상 주소 바(1402)에서의 세그먼트는 일반적으로 가장 포괄적인 필터로부터 가장 덜 포괄적인 필터로의 순서로 되어 있다. 예를 들어, 전술한 바와 같이, 세그먼트(1502) "파일"은 가장 넓고 가장 포괄적이다. 세그먼트(1506) "워드 문서" 및 세그먼트(1508) "저작자 A"는 가장 덜 포괄적이다. 가상 주소 바(1402)는 좌측에서 우측으로 세그먼트를 순서 지정하는 것을 나타내고 있으며, 본 설명의 목적상, 세그먼트(1504, 1506, 1508)는 루트 세그먼트(1502) 다음에 온다. 그렇지만, 본 발명의 범위를 벗어나지 않고 톱-다운 배열 등의 다른 배향도 가능하다는 것을 잘 알 것이다. 따라서, 좌측에서 우측으로의 배향은 예시적인 것으로 보아야 하며, 본 발명을 제한하는 것으로 해석되어서는 안된다.
전술한 바와 같이, 세그먼트(1502, 1504, 1506, 1508) 등의 가상 주소 바(1402)에서의 세그먼트는 반드시 폴더, 드라이브 및 디렉토리 등의 컴퓨터 파일 시스템에서의 특정의 장소에 대응할 필요가 없다. 따라서, 세그먼트(1504) "문서 라이브러리"는 다수의 서버, 드라이브, 또는 폴더/디렉토리 상에 분산되어 있는 파일 또는 컨텐츠를 참조할 수 있다. 그렇지만, 가상 주소 바(1402)에서의 어떤 세그먼트들은 컴퓨터 파일 시스템 계층구조를 갖는 특정의 장소를 참조할 수 있다. 특정의 파일 시스템 장소를 참조하는 가상 주소 세그먼트에 대한 추가의 설명이 도 48a 및 도 48b를 참조하여 이하에 제공되어 있다.
종래의 주소 바와는 달리, 가상 주소 바(1402)에서의 각각의 세그먼트는 실행가능(actionable) 대화형 사용자 인터페이스 요소를 나타낸다. 예를 들어, 가상 주소 바(1402)에서의 세그먼트는 사용자 선택에 응답하고, 커서가 특정의 기간 동안 세그먼트 상에 위치하고 있는지 여부를 모니터링하며, 드래그 사용자 상호작용 에 의해 가상 주소 바로부터 제거될 수 있다. 따라서, 도 44a에 도시된 바와 같이, 사용자는 그 레벨로 내비게이션하도록, 즉 도 44b와 관련하여 기술되어 있는 바와 같이 그 세그먼트에서 가상 주소를 절단(truncate)하도록 그 세그먼트를 선택 또는 클릭하기 위해 세그먼트(1504) "문서 라이브러리" 등의 가상 주소 바(1402)에서의 세그먼트 상에 커서(1510)를 놓을 수 있다.
도 44b는 가상 주소 바(1402)에서 세그먼트(1504)를 선택한 결과를 나타낸 것이다. 가상 주소 바(1402)에서 세그먼트(504)를 클릭함으로써, 사용자는 가상 주소에서 그 레벨로 내비게이션하고자 함을 나타내게 된다. 사실상, 사용자는 선택된 세그먼트 다음에 오는 그 필터들을 제거한다. 예를 들어, 세그먼트(1504) "문서 라이브러리"(도 44a)를 클릭함으로써, 그 결과의 가상 주소(1404)는 세그먼트(1506) "워드 문서" 및 세그먼트(1508) "저작자 A"(도 44a)를 더 이상 포함하지 않는다. 게다가, 사용자가 덜 제한적인 일련의 필터로 내비게이션하였기 때문에, 가상 주소 바(1402)에서의 그 결과의 가상 주소(1404)는 더 포괄적이다. 이것은 도 44a의 파일 뷰어(1400)에 이전에 있지 않았던 문서를 도 44b의 파일 뷰어(1400)에 추가되어 있는 것에 의해 또한 공간 제한으로 인해 파일 뷰어(1400)(도 44b)에 디스플레이될 수 없는 부가적인 파일들을 볼 수 있음을 나타내는 스크롤 버튼(1518)의 존재에 의해 표시된다.
도 44c는 도 44a와 유사하지만, 세그먼트(1508)를 세그먼트(1520)로 대체하고 있다. 세그먼트(1520)는 2개의 필터 또는 선택 기준, "2002" 및 "2003"(이들은 파일 뷰어(1400)에 디스플레이된 결과를 생성하기 위해 논리적으로 조합되어 있음) 을 포함한다. 2개의 필터 또는 선택 기준 간의 ","는 논리적 피연산자로서 기능한다. AND, OR, NOT, NAND, NOR, XOR, 기타 등등의 부울 연산자가 적용될 수 있다는 것을 잘 알 것이다. 본 구현에서, ","는 "OR" 연산자로서 기능하며, 따라서 선행하는 필터 또는 선택 기준(파일, 문서 라이브러리, 워드 문서) 모두를 만족시키고 또 "2002"에 생성되거나 "2003"에 생성된 항목들은 논리적 표현을 만족시키고 또 파일 뷰어(1400)에 제공된다. 2개의 필터 또는 선택 기준은 가상 또는 물리적 장소에 있는 항목들을 식별할 수 있다. 예를 들어, 한쪽의 필터 또는 선택 기준은 물리적 장소에 있는 항목들을 식별할 수 있는 반면, 다른 쪽 것은 가상 장소에 있는 항목들을 식별할 수 있다. 임의의 수의 필터 또는 선택 기준이 단일의 세그먼트에서 논리적으로 조합될 수 있지만, 실제적인 목적을 위해, 사용자 혼란을 최소화하기 위해 조합되는 숫자를 주소 바 상에 함께 디스플레이될 수 있는 숫자로 제한하는 것이 더 낫다. 프로퍼티들에 걸쳐 필터 또는 선택 기준을 논리적으로 조합하는 것이 본 발명의 범위 내에 속하지만, 구성상의 목적을 위해 동일한 프로퍼티 내에서 필터 또는 선택 기준을 논리적으로 조합하고 잠재적인 사용자 혼란을 방지하는 것이 바람직하다.
주소 바에서의 하나 이상의 세그먼트 내에서 필터 또는 선택 기준의 논리적 조합이 일어날 수 있음을 잘 알 것이다. 세그먼트가 도 44c에서의 세그먼트(1520)의 뒤에 오도록 추가된 경우, 예를 들어 "저작자 A" 필터의 경우에, 파일 뷰어에 디스플레이되는 항목들은 A에 의해 저작된, "2002"에 또는 "2003"에 생성된 워드 문서로 추가적으로 축소된다. 도 44c로부터 문서 라이브러리 세그먼트를 선택하면 그 결과 도 44b에 도시된 파일 뷰어(400)가 얻어지며, "워드 문서" 및 "2002, 2003" 세그먼트가 제거되고 "문서 라이브러리" 필터를 만족시키는 파일들이 제공된다.
덜 제한적인 세그먼트로 내비게이션하기 위해 가상 주소 바에서 세그먼트를 선택하는 것 이외에, 사용자는 또한 가상 주소에서의 현재 세그먼트의 피어 필터(peer filter)로 내비게이션하거나 그 피어 필터를 선택하고자 할 수 있다. 피어 필터는 선택되어 가상 주소 바에서의 주어진 세그먼트에 적용될 수 있는 대안적인 필터이다. 예를 들어, 도 44a를 참조하여, 세그먼트(1506) "워드 문서"에 대한 피어 필터는 "엑셀 문서", "저널", 기타 등등의 필터를 포함할 수 있다. 특정의 파일 시스템 장소, 하드웨어 장치, 또는 컴퓨터 서비스를 비롯한 다른 유형의 필터도 역시 가상 주소 바에서의 주어진 세그먼트에 적용될 수 있다. 피어 필터는 주어진 세그먼트의 현재 필터에 논리적으로 관련되어 있거나 관련되어 있지 않을 수 있다. 가상 주소 바에서의 각각의 세그먼트는 피어 필터를 가질 수 있다. 가상 주소 바에서 세그먼트의 피어 필터를 선택하는 것을 때때로 측방으로 내비게이션(navigating laterally)한다고 한다. 가상 주소 바에서 세그먼트의 피어 필터를 선택하는 것에 대해서는 도 45a 내지 도 45d와 관련하여 또한 도 49와 관련하여 이하에 기술되어 있다.
도 45a 내지 도 45d는 가상 주소 바(1600)에서의 가상 주소의 세그먼트와 연관된 피어 필터를 선택하는 것을 나타낸 도식도이다. 도 45a에 나타낸 바와 같이, 가상 주소 바(1600)는 다수의 세그먼트, 즉 세그먼트(1602-1608)를 포함하는 가상 주소를 갖는다. 가상 주소 바(1600)에서 주어진 대화형 세그먼트에 대해 피어 필터를 선택하기 위해, 사용자는 그 대화형 세그먼트의 대안적인 선택 또는 대안적인 조작을 해야만 한다. 대안적인 선택을 하는 한가지 방식은 주어진 세그먼트를 우측 버튼으로 클릭하는 것이다. 우측 버튼으로 클릭하는 것은 기술 분야에 공지되어 있으며, 마우스 상의 부차적인 버튼 또는 다른 입력 장치를 사용하는 것을 말하며, 여기서 부차적인 버튼은 일반적으로 마우스의 우측에 있다. 다른 대안으로서, 대화형 세그먼트가 커서가 그 위에 위치하고 있을 때를 모니터링할 수 있기 때문에, 커서를 대화형 세그먼트 상에 위치시키고 커서를 미리 정해진 시간 동안 제위치에 놓아둠(때때로 허버링(hovering)이라고 함)으로써 대안적인 선택이 행해질 수 있다. 그렇지만, 본 설명이 피어 필터가 디스플레이되게 하기 위한 대안을 기술하고 있지만, 이들은 예시적인 것이며, 본 발명을 제한하는 것으로 해석되어서는 안된다. 당업자라면 대안의 선택을 발생하는 수많은 대안이 있다는 것을 잘 알 것이다.
도 45a를 참조하여, 대안으로서 세그먼트를 선택하는 것을 설명하기 위해, 사용자는 먼저 세그먼트(1604) "문서 라이브러리"를 선택하기 위해 미리 정해진 시간 동안 커서(1610)를 세그먼트(1604) "문서 라이브러리" 상에 놓는다, 즉 세그먼트 상에서 허버링한다. 도 45b는 가상 주소 바(1600)에서 대안으로서 세그먼트(1604) "문서 라이브러리"를 선택한 결과를 나타낸 것이다. 도 45b에 나타낸 바와 같이, 대안으로서 세그먼트(1604) "문서 라이브러리"를 선택한 후에, 선택된 세그먼트에 대응하는 피어 필터를 포함하는 피어 필터 뷰(1612)가 디스플레이된다. 피어 필터 뷰(1612)에 제공되는 피어 필터가 단지 예시적인 것이며 본 발명을 제한하는 것으로 해석되어서는 안된다는 것을 잘 알 것이다.
대안적인 피어 필터를 선택하기 위해, 도 45c에 도시된 바와 같이, 사용자는 피어 필터(1614) 등의 피어 필터 뷰(1612)에 제공된 필터 중 하나 상에 커서(1610)를 위치시키고 피어 필터를 선택한다. 도 45d에 도시된 바와 같이, 대안적인 피어 필터(1614)를 선택한 후에, 이전에 선택된 세그먼트(1604)(도 45a)는 선택된 대안적인 피어 필터(1614)를 나타내는 새로운 세그먼트(1616)로 대체된다. 게다가, 도 45a의 가상 주소 바(1600)에서 대안으로서 선택된 세그먼트(1604) 다음에 오는 그 세그먼트들, 구체적으로 세그먼트(1606) "저널" 및 세그먼트(1608) "2002에서의 모든 문서"가 도 45d에서 가상 주소 바(1600)로부터 제거되어 있다. 도시되어 있지는 않지만, 세그먼트(1604) "문서 라이브러리", 세그먼트(1606) "저널" 및 세그먼트(1608) "2002에서의 모든 문서"에 따라 이전에 선택된 임의의 파일 또는 컨텐츠가 대응하는 파일 뷰어에서 더 이상 디스플레이되지 않게 되며, 세그먼트(1602) "파일" 및 세그먼트(1616) "사진 라이브러리"에 따라 선택된 그 파일 또는 컨텐츠만이 디스플레이된다.
본 발명의 다른 측면에 따르면, 사용자는 또한 가상 주소에서 현재의 세그먼트의 자식 필터 또는 선택 기준으로 내비게이션하거나 이를 선택하고자 할 수 있다. 파일 트리 구조에서, 부모 노드(또는 부모 필터)는 자식 노드들로 표현된 자식들을 갖는다. 각각의 자식 노드는 자식 필터 또는 선택 기준이며, 부모 노드 또는 부모 필터 또는 선택 기준을 추가적으로 제한한다. 가상 주소 바에서의 각각의 세그먼트는 자식 필터 또는 선택 기준을 가질 수 있다. 도 44a에서, 세그먼트(1504)는 세그먼트(1502)의 자식이다. 가상 주소 바에서 세그먼트의 자식 필터 또는 선택 기준을 선택하는 것에 대해서는 도 135a 내지 도 135d와 관련하여 또한 도 134와 관련하여 이하에서 기술된다.
도 135a 내지 도 135d는 가상 주소 바(13500)에서 가상 주소의 세그먼트와 연관된 자식 필터 또는 선택 기준을 나타낸 도식도이다. 도 135a에 나타낸 바와 같이, 가상 주소 바(13500)는 다수의 세그먼트, 즉 세그먼트(13502-13508)를 포함하는 가상 주소를 갖는다. 가상 주소 바(13500)에서 주어진 대화형 세그먼트에 대한 자식 필터 또는 선택 기준을 선택하기 위해, 사용자는 주어진 대화형 세그먼트와 연관된 자식 컨트롤을 선택할 수 있다. 자식 컨트롤(13503, 13505, 13507, 13509)은 대화형 세그먼트(13502, 13504, 13506, 13508)와 각각 연관되어 있다. 각각의 세그먼트 및 그의 연관된 자식 컨트롤이 분할 버튼을 형성할 수 있다는 것을 잘 알 것이다.
자식 필터 또는 선택 기준을 선택하는 것의 일례에 대해 도 135b 내지 도 135d와 관련하여 기술된다. 자식 필터 또는 선택 기준을 선택하기 위해, 도 135a를 참조하면, 사용자는 먼저 자식 컨트롤을 선택하기 위해 미리 정해진 시간 동안 자식 컨트롤(13505) 상에 커서(13510)를 놓는다, 즉 컨트롤 상에서 허버링한다. 자식 컨트롤(13505) 상에서 좌측 클릭 동작을 수행함으로써 컨트롤을 선택하는 것 등의 다른 선택 동작도 역시 가능하다. 도 135b는 가상 주소 바(13500)에서 세그먼트 "파일"과 연관된 자식 컨트롤(13505)을 선택한 결과를 나타낸 것이다. 도 135b에 나타낸 바와 같이, 자식 컨트롤(1305)을 선택한 후에, 대응하는 대화형 세그먼트(13502)에 대한 자식 필터 또는 선택 기준의 리스트 및 자식 필터 또는 선택 기준에 대한 대응하는 아이콘을 포함하는 자식 뷰(13512)가 디스플레이된다. 이 아이콘은, 그 아이콘이 가상 또는 물리적 장소를 나타내는지 여부 및 가상 또는 물리적 장소의 특정의 유형 등의, 자식 필터 또는 선택 기준에 대한 특정의 유형을 식별해줄 수 있다. 자식 뷰의 이 예에서, 아이콘이 자식 뷰의 좌측 컬럼에 있고 자식 필터 또는 선택 기준이 우측 컬럼에 있는 분할 메뉴가 나타내어져 있다. 자식 뷰(13512)에 제공되어 있는 자식 필터 또는 선택 기준 및 아이콘이 단지 예시적인 것이며 본 발명을 제한하는 것으로 해석되어서는 안된다는 것을 잘 알 것이다. 또한, 아이콘이, 자식 뷰, 피어 뷰의 일부인지 여부에 상관없이, 임의의 주소 유형에 인접하여 디스플레이될 수 있다는 것을 잘 알 것이다.
자식 필터 또는 선택 기준을 선택하기 위해, 도 135c에 도시되어 있는 바와 같이, 사용자는 자식 필터 또는 선택 기준(13514) 등의, 자식 뷰(13512)에 제공되어 있는 자식 필터 또는 선택 기준 중 하나 상에 커서(13510)를 위치시키고 자식 필터 또는 선택 기준(13514)을 선택한다. 도 135d에 나타낸 바와 같이, 자식 필터 또는 선택 기준(13514)을 선택한 후에, 자식 컨트롤(13505)(도 135a)과 연관된 부모 세그먼트(13502) 다음에 오는 세그먼트(13504)는 선택된 자식 필터 또는 선택 기준(13514)을 나타내는 새로운 세그먼트(13516)로 대체된다. 게다가, 도 135a의 가상 주소 바(13500)에서 세그먼트(13504) 다음에 오는 그 세그먼트들, 구체적으로는 세그먼트(13506) "저널' 및 세그먼트(13508) "2002에서의 모든 문서"는 도 135d 에서 가상 주소 바(13500)로부터 제거되어 있다. 도시되어 있지 않지만, 세그먼트(13504) "문서 라이브러리", 세그먼트(13506) "저널" 및 세그먼트(13508) "2002에서의 모든 문서"에 따라 이전에 선택된 임의의 파일 또는 컨텐츠가 대응하는 파일 뷰어에서 더 이상 디스플레이되지 않으며, 세그먼트(13502) "파일" 및 세그먼트(13516) "사진 라이브러리"에 따라 선택된 그 파일 또는 컨텐츠만이 디스플레이된다.
기존의 세그먼트의 끝에서 여러가지 사용자 상호작용을 통해 가상 주소 바에서의 가상 주소에 세그먼트가 추가될 수 있다. 가상 주소 바에서의 가상 주소에 필터를 추가하기 위해, 사용자는 윈도우에 있는 특정의 필터와 연관된 실행가능 컨트롤을 조작하거나 또는 가상 주소 바를 갖는 파일 뷰어를 조작할 수 있다. 예를 들어, 도 43의 파일 뷰어(1400)를 참조하면, 사용자는 대응하는 필터를 가상 주소 바(1402)에서의 가상 주소(1404)에 추가하기 위해 실행가능 컨트롤(1412) "2003"을 클릭할 수 있다. 다른 대안으로서(도시 생략), 사용자는 필터의 이름을 타이핑함으로써 가상 주소의 끝에 수동으로 기지의 필터를 입력할 수 있다. 가상 주소에 필터를 추가하는 수많은 다른 방식이 존재하며, 이들 모두는 본 발명의 범위 내에 속하는 것으로 생각된다. 따라서, 상기한 예들이 예시적인 것이며 본 발명을 제한하는 것으로 해석되어서는 안된다는 것을 잘 알 것이다.
가상 주소 바에서의 가상 주소에 필터가 추가될 때, 새로 추가된 필터가 가상 주소의 일부로서 현재 존재하는 임의의 필터와 충돌하지 않도록 보장하기 위한 프로세스가 행해진다. 새로 추가된 필터가 기존의 필터와 충돌하는 경우, 기존의 필터가 제거된다. 새로 추가된 필터가 기존의 필터의 폭과 다른 경우, 즉 기존의 필터보다 더 넓거나 더 좁은 경우, 새로 추가된 필터는 가상 주소에서의 기존의 필터와 충돌한다. 게다가, 새로 추가된 필터가 기존의 필터와 상호 배타적인 경우, 새로 추가된 필터가 기존의 필터와 충돌한다. 그렇지만, 기존의 필터와 등가인 새로 추가된 필터는 추가되지 않는데, 그 이유는 아무런 효과가 없기 때문이다. 충돌에 대한 상기의 설명이 예시를 위해 주어져 있으며 본 발명을 제한하는 것으로 해석되어서는 안된다는 것을 잘 알 것이다. 당업자라면 본 발명의 범위 내에 속하는 것으로 생각되는 필터들 간의 다른 충돌이 존재할 수 있다는 것을 잘 알 것이다.
도 46a 내지 도 46d는 가상 주소 바(1700)에서의 가상 주소(1702)에 필터를 추가하고 충돌하는 기존의 필터를 제거하는 것을 나타낸 도식도이다. 도 46a는 가상 주소 바(1700)에 디스플레이되는 예시적인 가상 주소(1702)를 나타낸 것이다. 도 46b에 나타낸 바와 같이, 세그먼트(1706) "2002"로 나타낸 새로운 필터가 가상 주소(1702)에 추가되어 있다. 전술한 바와 같이, 도 46b의 가상 주소 바(1700)에서의 세그먼트들의 끝에 세그먼트(1706) "2002"를 배치하는 것으로 표시되어 있는 바와 같이, 새로운 필터가 가상 주소의 끝에 추가된다. 그 후에, 세그먼트(1706) "2002"를 추가하기 위해 취해지는 프로세스는 추가된 필터가 가상 주소(1702)에서의 임의의 현재의 필터와 충돌하지 않는 것으로 판정한다. 따라서, 어떤 기존의 필터도 가상 주소(1702)로부터 제거되지 않는다.
도 46c에 도시되어 있는 바와 같이, 세그먼트(1708) "저작자 A"로 나타내어 져 있는 또하나의 필터가 가상 주소(1702)에 추가되어 있다. 이 새로운 필터를 추가하기 위해 취해지는 프로세스는 새로운 필터 "저작자 A"가 세그먼트(1704) "저작자 A-F"로 표현된 필터와 충돌하는 것으로 판정하는데, 그 이유는 새로운 필터 "저작자 A"가 기존의 필터보다 더 좁기 때문이다. 따라서, 세그먼트(1704) "저작자 A-F"가 가상 주소 바(1700)로부터 제거되고, 세그먼트(1708) "저작자 A"가 가상 주소 바에서 세그먼트들의 끝에 추가된다.
도 46d는 도 46c의 가상 주소 바(1700)에 세그먼트(1710) "2003"을 추가한 결과를 나타낸 것이다. 가상 주소(1702)에서의 필터는 누적적(cumulative)이 아니라 제한적(restrictive)이다. 각각의 필터는 선택된 내용을 제한한다. 따라서, 상호 배타적인 필터는 가상 주소(1702)가 임의의 파일 또는 내용을 선택하지 못하게 하며, 따라서 충돌을 야기한다. 도 46d에 나타낸 바와 같이, 충돌로 인해 세그먼트(1706) "2002"(도 46c)가 가상 주소 바(1700)로부터 제거되어 있는데, 그 이유는 그 세그먼트가 새로 추가된 세그먼트(1710) "2003"와 상호 배타적이기 때문이다.
가상 주소 바(1800)(도 47a) 등의 가상 주소 바가 가상 주소 바의 크기 제한으로 인해 가상 주소를 완전히 디스플레이할 수 없는 경우, 가상 주소 바의 크기에 따라 가상 주소의 일부분이 디스플레이된다. 그렇지만, 가상 주소의 디스플레이되지 않은 일부분은 여전히 사용자에 의해 액세스될 수 있다. 보다 구체적으로는, 가상 주소 바는 가상 주소 바 내에서 가상 경로를 스크롤하기 위한 실행가능한 시각적 표시자를 디스플레이한다. 도 47a 및 도 47b는 가상 주소가 가상 주소 바의 디스플레이 용량을 초과하는 경우에 가상 주소를 디스플레이하는 예시적인 가상 주소 바(1800)를 나타낸 것이다. 도 47a 및 도 47b에 나타낸 바와 같이, 스크롤 아이콘(1802, 1804)은 가상 주소의 이전에 디스플레이되지 않은 부분을 디스플레이하기 위해 가상 주소 바(1800)가 스크롤할 수 있는 방향을 나타낸다. 그렇지만, 예시적인 도면이 스크롤 아이콘의 사용을 설명하고 있지만, 이는 단지 예시적인 목적을 위한 것이며 본 발명을 제한하는 것으로 해석되어서는 안된다. 당업자라면 가상 주소 바에서의 가상 주소를 스크롤하는 많은 다른 방식이 있으며, 이들 모두가 본 발명의 범위 내에 속하는 것으로 생각된다는 것을 잘 알 것이다.
다른 측면에 따르면, 주소 바가 주소를 포함하는 대화형 세그먼트 전부를 집어 넣기에 너무 작아서 오버플로우 조건이 발생하는 경우, 디스플레이된 대화형 세그먼트가 가장 특정되어 있다. 예를 들어, 도 47c를 참조하면, 더 넓은 대화형 세그먼트 파일이 포함되어 있지 않은 반면 가장 특정된 대화형 세그먼트가 가상 주소 바(1800) 상에 디스플레이되어 있다. 갈매기 표시(1806)는 인접한 대화형 세그먼트 문서 라이브러리가 디스플레이되지 않은 조상을 갖는다는 것을 나타내기 위한 오버플로우 표시자로서 역할한다. 갈매기 표시(1806)는, 자식 컨트롤로서 역할함은 물론 오버플로우 표시자로서도 역할한다는 점에서, 2가지 역할을 갖는다. 도 47c에 도시한 바와 같이, 갈매기 표시(1806)의 선택은 대화형 세그먼트 문서 라이브러리에 대한 필터 파워포인트 문서, 워드 문서, 비지오 문서엑셀 문서를 포함하는 자식 필터 또는 선택 기준 리스트(1812)를 제공하며, 또한 조상 파일을 포함하는 대화형 세그먼트 문서 라이브러리에 대한 조상 리스트(1808)도 디스플레이 한다. 조상 또는 자식 필터 리스트로부터 조상 필터 또는 자식 필터를 선택하면 그 결과 주소 바는 그 필터를 디스플레이하도록 수정되고 모든 후속 필터를 제거하게 된다. 갈매기 표시(1806)가 조상 리스트를 디스플레이하는 컨트롤으로서 역할할 수 있고 독립적인 자식 컨트롤이 존재할 수 있다는 것을 잘 알 것이다.
도 48a는 파일 시스템에서의 가상 위치 및 실제 위치 둘다를 참조하는 세그먼트를 갖는 가상 주소 바(1900)를 나타내는 블록도이다. 전술한 바와 같이, 가상 주소 바(1900)에서의 가상 주소는 컴퓨터 파일 시스템 계층구조 내의 특정의 위치를 참조하는 세그먼트를 포함할 수 있고 또 컴퓨터 파일 시스템 내에서의 가상 또는 논리적 장소를 참조하는 세그먼트도 포함할 수 있다. 가상 세그먼트에 의해 참조되는 파일 또는 내용은 다수의 물리적 장소에 분산되어 있을 수 있다. 가상 주소 바(1900)는 물리적 장소를 참조하는 세그먼트 및 가상 장소를 참조하는 세그먼트를 포함할 수 있다. 예를 들어, 가상 주소 바(1900)는 컴퓨터 파일 시스템에서의 특정 영역에 포함되어 있는 파일 또는 내용을 참조하는 세그먼트(1902) "로컬 디스크(C:)", 상세하게는 드라이브 "C"를 포함한다. 다른 대안으로서, 세그먼트(1904) "사건 파일" 자체는 사건 파일과 연관된 컴퓨터 파일 시스템 계층구조에서의 다수의 폴더에 저장되어 있는 파일 또는 내용을 참조한다. 그렇지만, 세그먼트(1902) "로컬 디스크 (C:)"와 조합하여, 세그먼트(1904) "사건 파일"은 로컬 드라이브 "C"에 있는 그 사건 파일만을 참조한다. 게다가, 세그먼트(1906) "팩스 포함"은 로컬 디스크 C: 상에 있는 사건 파일과 연관된 파일을, 이들이 단어 "팩스"를 포함하는지 여부에 따라, 추가적으로 필터링한다.
도 48b에 나타낸 바와 같이, 가상 주소 바(1900)는 종래의 주소 바로서 기능하도록 구성될 수 있다. 예를 들어, 도 48a를 참조하면, 가상 주소 바(1900)의 빈 공간에 커서(1908)를 놓고 그곳을 클릭함으로써, 도 48b에 나타낸 바와 같이, 가상 주소 바(1900)는 가상 주소를 나타내는 세그먼트를 디스플레이하는 것으로부터 종래의 주소(1910)를 디스플레이하는 종래의 주소 바로서 기능하는 것으로 전환한다. 도 48b의 가상 주소 바(1900)에서의 종래의 주소(1910)는 도 48a의 가상 주소 바(1900)에 디스플레이되는 가상 주소와 비슷하다. 그렇지만, 컴퓨터 파일 시스템에서의 물리적 장소에 대응하지 않는, 도 48a의 가상 주소 바(1900)에 있는 그 필터들은 디스플레이될 수 없고 또 종래의 주소(1910)로부터 제거된다. 구체적으로는, 세그먼트(1904) "사건 파일" 및 세그먼트(1906) "팩스 포함"은 종래의 주소(1910)(도 48b)의 일부가 아니다.
종래의 주소 바로서 기능하고 있는 가상 주소 바(1900)를, 가상 주소 바로서 정상적으로 기능하도록 재구성하기 위해, 사용자는 바의 빈 영역을 클릭하는 이외의 방식으로 그렇게 표시해야만 한다. 종래의 주소 바로서 기능하도록 구성되어 있는 경우, 가상 주소 바는 사용자가 주소 편집을 위해 빈 영역에서 클릭하도록 허용해야만 한다. 종래의 주소 바의 빈 영역에서 클릭하는 것은 편집을 위해 편집 커서를 주소/경로의 끝에 위치시킨다. 따라서, 가상 주소를 상기한 바와 같이 다시 그의 정상적인 방식으로 기능하도록 재구성하기 위해, 사용자는 Esc 또는 Tab 키 등의 미리 정의된 키 또는 키 시퀀스를 누르거나 윈도우 또는 뷰의 다른 영역을 클릭함으로써 그 윈도우 또는 뷰의 다른 영역에 포커스를 두어야만 한다. 당업자 라면 가상 주소 바(1900)를 상기한 바와 같이 다시 그의 정상 모드에서 기능하도록 재구성하기 위해 다른 사용자 동작도 역시 이용될 수 있으며 이들 모두가 본 발명의 범위 내에 속하는 것으로 생각된다는 것을 잘 알 것이다.
도 49는 가상 주소 바에서 식별된 세그먼트에 대한 피어 필터를 선택하는 피어 필터 선택 루틴(2000)을 나타낸 흐름도이다. 이 루틴(2000)은 피어 필터 선택 동작을 검출하는 블록(2002)에서 시작한다. 피어 필터 선택 프로세스의 활성화에 대해서는 도 45a 내지 도 45d를 참조하여 상기하였다. 블록(2004)에서, 피어 필터 선택이 요청되는 세그먼트가 식별된다. 블록(2006)에서, 식별된 세그먼트에 대한 피어 필터가 미리 정해진 피어 필터 리스트로부터 결정된다. 블록(2008)에서, 디스플레이된 피어 필터로부터의 사용자의 피어 필터 선택이 달성된다. 블록(2012)에서, 가상 주소 바로부터 식별된 세그먼트 및 식별된 세그먼트 다음에 오는 임의의 부가의 세그먼트를 제거함으로써 가상 주소가 절단된다. 블록(2014)에서, 선택된 피어 필터를 나타내는 세그먼트가 가상 주소 바에서의 나머지 세그먼트에 첨부된다. 그 후에, 루틴(2000)이 종료된다.
도 50은 필터를 가상 주소 바에서의 가상 주소에 추가하는 예시적인 필터 추가 루틴(2100)을 나타낸 흐름도이다. 예시적인 루틴(2100)은 가상 주소에 추가될 필터를 획득하는 블록(2102)에서 시작한다. 예를 들어, 도 43과 관련하여 전술한 바와 같이, 가상 주소 바 외부에서의 사용자 동작에 따라 필터가 가상 주소에 추가될 수 있거나, 다른 대안으로서 미리 정해진 필터의 이름을 타이핑함으로써 가상 주소 바에 직접 추가될 수 있다.
블록(2104)에서, 새로운 필터가 가상 주소에 이미 존재하는 필터와 충돌하는지 여부가 판정된다. 도 46a 내지 도 46d와 관련하여 전술한 바와 같이, 기존의 필터의 범위를 실질적으로 축소하거나 확장함으로써 새로운 필터는 기존의 필터와 충돌할 수 있다. 다른 대안으로서, 새로운 필터는 기존의 필터와 충돌할 수 있는데, 그 이유는 새로운 필터가 기존의 필터와 상호 배타적이기 때문이다. 결정 블록(2104)에서 새로운 필터가 기존의 필터와 충돌하는 경우, 블록(2106)에서, 기존의 필터가 가상 주소로부터 제거된다. 다른 대안으로서, 2104에서, 새로운 필터가 기존의 필터와 충돌하지 않는 경우, 또는 블록(2106)에서 기존의 충돌하는 필터를 제거한 후에, 블록(2108)에서 새로운 필터가 가상 주소의 끝에 추가된다. 그 후에, 예시적인 루틴(2100)이 종료된다.
도 134는 가상 주소 바에서 연관된 세그먼트에 대한 자식 필터 또는 선택 기준을 선택하는 선택 루틴(2200)을 나타내는 흐름도이다. 블록(2202)에서 시작하여, 루틴(2200)은 자식 컨트롤의 선택을 검출한다. 자식 필터 선택 프로세스는 도 135a 내지 도 135d와 관련하여 전술되어 있다. 블록(2204)에서, 선택된 자식 컨트롤과 연관된 부모 세그먼트가 식별된다. 블록(2206)에서, 식별된 부모 세그먼트에 대한 자식 필터가 미리 정해진 자식 필터 리스트로부터 결정된다. 블록(2208)에서, 자식 필터가 사용자에게 디스플레이된다. 블록(2210)에서, 디스플레이된 자식 필터로부터의 자식 필터 선택이 사용자로부터 수신된다. 블록(2212)에서, 부모 세그먼트 다음에 오는 세그먼트를 제거함으로써 가상 주소가 절단된다. 블록(2214)에서, 선택된 자식 필터를 나타내는 세그먼트가 가상 주소 바에서의 나머지 세그먼 트에 첨부된다. 그 후에, 루틴(2300)이 종료된다.
도 51 내지 도 57은 쉘 브라우저 내에서의 개선된 사용자 경험을 제공하는 본 발명의 다른 측면에 따른 시스템 및 방법에 관한 도면이다. 보다 구체적으로는, 사용자가 보다 용이하게 항목과 연관된 메타데이터에 기초하여 그 항목을 식별할 수 있는 시스템 및 방법이 제공된다.
도 51a로 돌아가서, 윈도우(2200)는 쉘 브라우저의 그래픽 사용자 인터페이스에 대한 화면-크기 디스플레이 영역을 나타낸다. 윈도우(2200)은 미리보기 창 영역(2202) 및 뷰 영역(2204)을 포함한다. 미리보기 창(2202)은 미리보기 컨트롤(2206), 사용자 인터페이스(UI) 또는 편집 컨트롤(2208), 및 작업 컨트롤(2210)을 포함할 수 있다. 일반적으로, 미리보기 컨트롤(2206)은 미리보기되는 항목(예를 들어, 선택된 파일)의 이미지 또는 다른 시각적 디스플레이를 사용자에게 제공한다. 미리보기 컨트롤(2206)은 또한 사용자가 마우스 버튼을 클릭함으로써 포커스를 한 항목에서 그 다음 항목으로 이동시킬 수 있게 해주는 반복자 버튼 등의 컨트롤을 사용자에게 제공한다. 하나 이상의 항목에 대응하는 메타데이터 및/또는 항목 컨테이너에 대응하는 메타데이터가 윈도우(2200) 내의 다양한 장소에 디스플레이될 수 있다. 예를 들어, 편집 컨트롤 및 메타데이터는, 편집 컨트롤이 미리보기된 항목의 주요 프로퍼티의 디스플레이를 포함할 뿐만 아니라 메타데이터에 대한 편집을 하는 옵션을 사용자에게 제공하도록, 편집 컨트롤 영역(2208)과 동일 장소에 있을 수 있다. 작업 컨트롤(2210)은 이름 공간 및/또는 선택에 관련된 작업을 포함한다.
본 발명의 목적상, 용어 "메타데이터" 및 "사용자 수정가능 메타데이터"는 쉘 항목 이름을 배제한다. 용어 "쉘 항목 이름"은 쉘 브라우저 내에서 항목을 분류 및 디스플레이하기 위해 사용되는 프로퍼티를 말한다. 상기한 바와 같이, 본 발명의 한가지 고유한 측면은 사용자가 쉘 브라우저 내에서 메타데이터를 편집할 수 있다는 것이다.
당업자라면 본 발명이 윈도우(2200) 내에 선택적인 특징이 존재하는 것을 생각하고 있다는 것을 잘 알 것이다. 예를 들어, 미리보기 컨트롤(2206) 및 작업 컨트롤(2210)은 본 발명의 목적상 필수적인 특징이 아니다. 게다가, 사용자가 미리보기 창의 열기/닫기를 할 수 있도록 반복자 버튼 또는 보여주기/감추기(show/hide) 버튼을 포함하는 도구막대 등의 도 51a에 도시되어 있지 않은 다른 비필수적인 특징들도 역시 본 발명의 범위 내에 속한다. 그럼에도 불구하고, 이들 및 다른 선택적인 특징들이 사용자가 쉘 브라우저에서 특정의 항목을 용이하게 찾아내는 데 도움을 줄 수 있다.
보기 영역(2204)은 파일 시스템 파일 또는 폴더 등의 하나 이상의 항목(2212)의 리스트뷰를 제공한다. 용어 "리스트뷰"는 컨테이너 내에 있는 항목들의 열거 또는 리스트를 말한다. 용어 "항목" 및 "쉘 항목"은, 파일, 폴더 및 다른 이러한 컨테이너, 및 리스트뷰에 표현될 수 있는 다른 비파일 객체를 말하기 위해, 본 명세서에서 상호 교환가능하게 사용된다. 비파일 객체의 예는 연락처, 즐겨찾기 및 이메일 메시지를 포함할 수 있지만, 이에 한정되는 것은 아니다. 용어 "쉘 브라우저" 및 "파일 시스템 브라우저"는, 사용자가 파일 및 다른 비파일 항목을 포 함하는 여러가지 이름공간을 통해 내비게이션할 수 있게 해주는 브라우저를 말하기 위해, 본 명세서에서 상호 교환가능하게 사용된다.
당업자라면 본 발명이 윈도우(2200)에 대한 많은 가능한 설계 및 레이아웃을 생각하고 있다는 것을 잘 알 것이다. 예를 들어, 미리보기 창(2202)은 도 51a에서 뷰 영역(2204) 위쪽에 나타내어져 있다. 그렇지만, 미리보기 창(2202) 및 뷰 영역(2204)을 나란히 배치하는 등의 다른 레이아웃이 본 발명의 범위 내에 속하는 것이 분명하다. 편집 컨트롤(2208)의 장소도 역시 디스플레이된 메타데이터의 장소와 독립적이고 또 임의의 다른 컨트롤의 장소와 독립적이다. 또한, 상세히, 슬라이드 쇼, 필름스트립, 썸네일, 타일, 아이콘, 기타 등등의 리스트뷰 영역(2204)에 표시된 항목들에 대한 많은 가능한 보기 유형이 있다.
도 51b는, 뷰 영역(2204)이 상세히 모드로 항목(2212)을 디스플레이하는 뷰 영역(2214)으로 대체되어 있는 것을 제외하고는, 도 51a와 유사하다. 상세히 모드로 디스플레이되는 쉘 항목들에 일반적인 바와 같이, 항목(2212)은 뷰 영역(2214)의 좌측에 열을 이루어 정렬되어 있고, 하나 이상의 열 제목(2116)이 동일한 행에 위치한 대응하는 항목에 관한 메타데이터(2218)를 포함하는 일련의 열의 상부 행을 형성한다. 중요한 것은 본 발명이 사용자가 윈도우(2200) 내의 임의의 곳에 하나 이상의 편집 컨트롤(2208)을 인스턴스화함으로써 명시적으로 메타데이터 값을 다른 값으로 변경할 수 있게 해주는 것을 생각하고 있다는 것이다. 예를 들어, 미리보기 창(2202) 내에 및/또는 뷰 영역(2214) 내에 편집 컨트롤이 제공될 수 있다. 예를 들어, 처음에 사용자에게 보이지 않는 편집 컨트롤이 뷰 영역(2214) 내에 제공 될 수 있다. 이러한 컨트롤은 예를 들어 사용자가 메타데이터(2218) 상에서 허버링하고 이어서 편집 모드에 들어가기 위해 이를 클릭할 때 인스턴스화될 수 있다.
그 다음에 도 52를 참조하면, 쉘 브라우저에서의 환영 창(2300)의 개략적인 예시가 제공되어 있다. 환영 창은 때때로 "널 선택(null select)" 창이라고 하는데 그 이유는 이 창이 선택과 달리 이름공간 또는 컨테이너를 나타내기 때문이다. 사용자가 아직 선택을 하지 않은 경우, 미리보기 창(2302)은 폴더 또는 쉘 라이브러리에 관한 메타데이터(2304) 및 주요 작업을 표시한다. 원하는 경우, 이 작업들은 주요 작업(2306) 및 다른 관련 작업(2308)로 분리될 수 있다. 환영 창(2300)은 또한 뷰 영역(2310)을 포함하며, 이 영역에서 다수의 파일 또는 다른 항목(2312)을 볼 수 있다. 환영 창 메타데이터(2304)는 컨테이너(예를 들어, 내 그림)의 프로퍼티 등의 정보를 포함할 수 있으며, 이 경우에 메타데이터 표시는 정적일 수 있다. 다른 대안으로서, 환영 창 메타데이터(2304)는 항목들 각각으로부터의 메타데이터의 샘플 등의 정보를 포함할 수 있으며, 이 경우에 메타데이터 디스플레이는 빈번하게 변할 수 있다. 예를 들어, 메타데이터 디스플레이는 매 30초마다 한 항목에서 그 다음 항목으로 순환함으로써 한번에 한 항목의 프로퍼티로 제한될 수 있다.
도 53은 쉘 브라우저에서의 선택된 창(2400)의 개략도이다. 환영 창과 달리, 선택된 창은 사용자에 의한 선택을 나타낸다. 사용자가 컨테이너 또는 폴더를 선택하는 경우, 선택된 창은 그 컨테이너 또는 폴더에 대한 환영 창과 동일할 필요가 없다. 도 53에서, 선택된 창(2400)은 미리보기 컨트롤(2404), 메타데이터 디스플레이(2406), 및 작업 디스플레이(2408)를 포함하는 미리보기 창(2402)을 포함한 다. 환영 창(2300)(도 52)와 유사하게, 선택된 창(2400)은 또한 다수의 파일 또는 다른 항목(2412)를 볼 수 있는 뷰 영역(2410)을 포함한다. 그렇지만, 도 53에서, 사용자는 파일들 중 하나를 선택하였다. 따라서, 미리보기 컨트롤(2404)은 선택된 파일의 미리보기 이미지를 디스플레이하고, 메타데이터 디스플레이(2406)는 선택된 파일의 프로퍼티를 보여주며, 작업 디스플레이(2408)는 선택된 파일에 동작시킬 관련 작업의 메뉴를 제공한다.
도 54는 도 35의 선택된 창의 개략적인 표현이지만, 본 발명의 일 실시예에 따라 쉘 브라우저에서 사용자가 메타데이터를 수정할 수 있게 해주는 컨텍스트 메뉴(2500)도 포함하고 있다. 도 54에서의 컨텍스트 메뉴(2500)는 선택된 메타데이터를 변경하는 몇가지 옵션을 사용자에게 제공한다. 물론, 메뉴(2500)에 나타난 일반적인 텍스트는 디스플레이된 메타데이터를 편집하기 위해 사용자에게 제공될 수 있는 유형의 옵션들의 단지 일례이다. 컨텍스트 메뉴는 사용자 경험을 개선하기 위해 환영 창을 비롯한 임의의 윈도우에 제공될 수 있다. 당업자라면 잘 알고 있는 바와 같이, 임의의 수의 다양한 컨텍스트 메뉴가 본 발명에 의해 지원될 수 있다. 본 발명의 목적상, 쉘 브라우저 내에서 디스플레이된 메타데이터에 대한 사용자 수정을 가능하게 해주는 한가지 수단은 편집가능 메타데이터 컨텍스트 메뉴(2500) 등의 컨텍스트 메뉴를 제공하는 것이다. 사용자는 예를 들어 미리보기 창에서 대응하는 텍스트 또는 객체를 클릭함으로써 컨텍스트 메뉴를 호출할 수 있다.
당업자라면 본 발명이 쉘 브라우저 내에서 디스플레이된 메타데이터에 대한 사용자 수정을 가능하게 해주는 컨텍스트 메뉴 이외의 수단을 생각하고 있다는 것을 잘 알 것이다. 이를 위한 다른 이러한 수단은 사용자가 편집 모드에 들어가기 위해 메타데이터를 클릭하는 것이다. 이와 달리, 사용자는 미리보기 창에서 관련 텍스트 또는 객체 상에서 허버링함으로써 편집 모드에 들어갈 수 있다. 많은 대안적인 수단이 이용가능하며 본 발명의 범위 내에 속한다.
도 55는 본 발명의 일 실시예에 따라 쉘 브라우저 내의 환영 창에 디스플레이된 메타데이터를 사용자가 수정할 수 있게 해주는 방법(2600)을 나타낸 흐름도이다. 이 방법(2600)은 2602에서 환영 창 및 환영 창과 연관된 메타데이터를 디스플레이하는 단계를 포함한다. 이어서, 2604에서, 이 방법은 디스플레이된 메타데이터의 사용자 수정을 위한 컨트롤을 제공한다. 2606에서, 사용자가 디스플레이된 메타데이터를 수정하기 위해 컨트롤을 조작할 때, 이 방법은 이어서 2608에서 그 다음에 환영 창이 디스플레이될 때 수정된 메타데이터가 디스플레이되도록 수정된 메타데이터를 환영 창과 연관시킨다.
도 56은 본 발명의 일 실시예에 따라 쉘 브라우저 내에서 선택된 창에 디스플레이되는 메타데이터를 사용자가 수정할 수 있게 해주는 방법(2700)을 나타낸 흐름도이다. 2702에서, 이 방법(2700)은 먼저 환영 창에서의 항목들 또는 선택된 컨테이너에서의 항목들 등의 다수의 항목을 디스플레이한다. 2704에서 사용자가 항목들 중 하나 이상을 선택하는 경우, 이 방법은 2706에서 선택된 항목(들)과 연관된 메타데이터를 디스플레이한다. 2708에서, 이 방법은 디스플레이된 메타데이터의 사용자 수정을 위한 컨트롤을 제공한다. 2710에서 사용자가 디스플레이된 메타 데이터를 수정하기 위해 컨트롤을 조작하는 경우, 이 방법은 이어서 2712에서 그 다음에 선택된 항목(들)이 디스플레이될 때 수정된 메타데이터가 디스플레이되도록 수정된 메타데이터를 선택된 항목(들)과 연관시킨다.
2704에서 사용자가 다수의 항목을 선택하는 경우, 디스플레이된 메타데이터는 선택된 항목들의 교차 프로퍼티, 프로퍼티의 합집합, 또는 아마도 선택된 항목과 관련된 새로운 프로퍼티를 포함할 수 있다. 다른 대안으로서, 디스플레이된 메타데이터는 선택된 항목들 각각으로부터 메타데이터의 회전 샘플(rotating sample)을 포함할 수 있다(예를 들어, 매 30초마다 하나의 선택된 항목의 메타데이터에서 그 다음 선택된 항목의 메타데이터로 순환함). 항목들 전부의 선택으로부터 얻어지는 메타데이터의 디스플레이가 널 선택(null select)으로부터 얻어지는 메타데이터의 디스플레이와 같을 수 있다.
도 57은 쉘 브라우저에 디스플레이된 항목과 연관된 사용자 수정가능 메타데이터를 포함하는 데이터 구조체(2800)의 블록도이다. 데이터 구조체(2800)는 항목의 이름을 나타내는 제목 필드(2802)를 포함한다. 비파일 항목의 경우에, 제목 필드(2802)는 리스트뷰에서 그 항목을 알파벳 순으로 나타내기 위해 사용되는 프로퍼티의 이름을 포함할 수 있다. 데이터 구조체(2800)는 디스플레이된 항목과 연관된 하나 이상의 프로퍼티를 포함하는 사용자 편집가능 프로퍼티 필드(2804)를 포함하며, 여기서 사용자 편집가능 프로퍼티가 디스플레이된 항목과 함께 쉘 브라우저에 디스플레이된다. 데이터 구조체(2800)는 선택적으로 디스플레이된 항목과 연관되어 있고 쉘 브라우저에 디스플레이할만한 가치가 있는 임의의 판독-전용 프로퍼티 를 포함하는 판독-전용 프로퍼티 필드(2806)를 포함할 수 있다. 쉘 브라우저에 메타데이터 디스플레이의 크기 제약이 주어진 경우, 필드(2804, 2806)에서의 프로퍼티의 수가 제한될 수 있다. 따라서, 데이터 구조체(2800)는, 선택적으로, 디스플레이된 항목과 연관된 프로퍼티 또는 메타데이터 전부를 포함하는 장소(예를 들어, 프로퍼티 페이지)에 대한 링크 또는 포인터를 포함하는 모든 프로퍼티 필드(2808)를 포함할 수 있다. 물론, 모든 프로퍼티 필드(2808)는, 필드(2804, 2806)가 디스플레이된 항목과 연관된 프로퍼티 전부를 포함하는 경우, 필요하지 않을 것이다. 데이터 구조체(2800)는 쉘 브라우저 내에 풍부한 저장 보기, 따라서 개선된 사용자 경험을 제공하기 위해 파일 시스템 또는 쉘에서와 같이 하나 이상의 컴퓨터 판독가능 매체 상에 저장되어 있다.
본 발명은 종래의 쉘 브라우저에서는 가능하지 않았던 다수의 시나리오를 가능하게 해준다. 제1 예로서, 학생은 미리보기 창을 사용하여 그의 프로젝트를 관리할 수 있다. 학생이 그가 작업하고 있는 프로젝트의 일부로서 새 문서를 획득할 때, 학생은 그의 문서 라이브러리에서 그 문서들을 선택하고 편집 컨트롤을 사용하여 문서 저작자의 이름 및 프로젝트의 이름을 키워드 필드에 입력할 수 있다. 이제, 새로운 문서가 그의 즐겨찾기 보기 "키워드별로 그룹화되고 저작자별로 열거된 문서"에 나타나게 된다. 본 발명에 의해 가능하게 되는 새로운 시나리오의 제2 예는 직원이 곧 나올 광고 캠페인을 위한 자료를 찾는 것을 포함한다. 직원은 쉘 브라우저를 사용하여 그의 고용주의 사진 컬렉션을 브라우징하면서, 몇개의 사진을 선택하고, 미리보기 창으로부터 새 키워드 "2003 여름 캠페인"을 추가한다. 다중 선택을 위한 메타데이터를 갱신하고서, 직원은 키워드별로 피봇하고 또 함께 그룹화되어 있는 "2003 여름 캠페인" 파일 전부를 볼 수 있다. 본 발명을 이용하는 많은 다른 시나리오가 당업자에게는 자명할 것이다.
도 58 내지 도 66은 다수의 항목 유형을 나타내는 복수의 항목을 디스플레이하도록 구성된 쉘 브라우저에서 객체 프리뷰어의 기능을 확장하는 시스템 및 방법에 관한 도면이다. 이하에서 보다 상세히 기술하는 바와 같이, 디폴트 프리뷰어 및 확장 메카니즘을 포함하는 쉘 브라우저가 제공된다. 디폴트 프리뷰어는 다수의 항목 유형에 대한 표준 레벨의 기능을 제공한다. 확장 메카니즘은 항목 유형들 중 하나 이상에 대한 디폴트 프리뷰어에 의해 제공되는 표준 레벨을 넘는 기능을 가능하게 해준다.
도 58은 다른 사진이 아닌 파일 및 폴더를 보는 데 사용되는 쉘 브라우저 환경 내에서 폴더에 저장되어 있는 사진들을 브라우징하기 위한 종래 기술의 그래픽 사용자 인터페이스의 개략도이다. 전술한 바와 같이, PC 등의 컴퓨팅 환경에 저장되어 있는 항목들을 용이하게 식별할 필요성이 급격히 증가하고 있다. 디지털 사진과 관련하여, 사용자는 종래에는 PC 상에서 특정의 파일을 보기 위해 써드파티 소프트웨어 프로그램을 호출해야만 했었다. 도 58은 그래픽 운영 환경 내에서 주어진 파일과 연관된 이미지를 사용자가 보다 용이하게 보고 식별할 수 있게 해주는 종래의 해결책인, 필름 스트립 보기를 나타낸 것이다. 필름 스트립 보기의 목표는, 사용자가 폴더 내의 하나 이상의 사진 파일의 상당한 크기의 이미지를 미리보기할 수 있게 해주는 빠른 반복 프로세스를 제공함으로써 사진들의 폴더를 브라우 징할 때, 다른 소프트웨어 프로그램에 대한 필요성을 없애주는 것이었다.
도 58은 폴더에 저장된 사진들을 브라우징하는 시스템에 관한 것으로서, 일련의 폴더 사진들이 다른 사진이 아닌 파일 및 폴더를 보기 위해 사용되는 환경(예를 들어, 쉘 브라우저) 내에 단일 행의 썸네일로서 제공되어 있다. 이는 또한 사용자 선택 썸네일의 확대된 미리보기 이미지를 디스플레이하면서 사용자가 썸네일을 통해 선택적으로 커서 이동할 수 있게 해준다. 도 58은 사용자의 화면 상의 대표적인 윈도우를 나타낸 도면이다. 도시된 바와 같이, 윈도우(3200)는 헤더 영역, 작업 옵션 영역(3206), 미리보기 컨트롤 영역(3202), 캡션 또는 코멘트 영역 및 필름스트립 영역(3204)를 비롯한 몇개의 영역으로 나누어져 있다. 작업 옵션 영역(3206)은 파일 및 폴더의 관리에 관한 광범위한 동작들을 수행하기 위해 사용자에 의해 선택될 수 있는 작업의 리스트는 물론 다른 시스템 선택사항을 포함한다. 이들 동작 중 일부는 필름스트립 영역(3204) 및 미리보기 컨트롤 영역(3202)에서의 사진에 관련된 것이다. 미리보기 컨트롤 영역(3202)은 사용자 선택 사진의 확대된 미리보기 이미지가 디스플레이되어질 공간이다. 이 공간은 또한 사용자가 일련의 사진을 통해 반복하는 것을 돕기 위한 내비게이션 아이콘을 포함할 수 있다. 미리보기 컨트롤 영역 바로 아래에 다양한 텍스트 정보를 디스플레이하기 위해 이용될 수 있는 캡션 또는 코멘트가 있다. 필름 스트립 영역(3204)은 주어진 폴더 내에 포함된 사진 파일들의 한 행의 썸네일 이미지(P1, P2, P3, P4)를 디스플레이하기 위한 공간을 제공한다. 게다가, 필름 스트립 영역(3204)은 또한 사용자가 사진 파일을 찾아 폴더를 스크롤할 수 있게 해주는 커서를 포함한다. 유의할 점은 필름 스트립 영역(3204)이 혼합된 배향으로 썸네일 이미지를 포함 및 디스플레이할 수 있다는 것이다. 예를 들어, 도 58에 도시된 바와 같이, P1, P2 및 P4는 가로로 길게(in landscape) 되어 있고 P3는 세로로 길게(in portrait) 되어 있다.
사용자는 썸네일 이미지 중 임의의 하나를 선택할 수 있으며, 이에 의해 사용자 썸네일 선택 이미지의 보다 큰 미리보기 이미지가 미리보기 컨트롤 영역 내에 디스플레이되어진다. 게다가, 썸네일 이미지의 사용자 선택은 또한 사용자가 작업 옵션 영역(3206)에 열거된 작업들 중 임의의 하나를 선택하여 선택된 이미지에 대해 수행할 수 있게 해준다. 제1 컨트롤 버튼은, 한 방향으로 반복함으로써, 사용자가 주어진 폴더 내의 썸네일 이미지 각각의 확대된 이미지를 빠르고 연속적으로 미리보기할 수 있게 해준다. 환언하면, 사용자는 사진을 미리보기 위해 모든 연속적인 썸네일 이미지를 특정하여 "클릭"할 필요가 없게 된다. 그 대신에, 사용자는 폴더를 통해 이동하기 위해 제1 컨트롤 버튼을 반복하여 클릭하기만 하면 된다. 제2 컨트롤 버튼은 유사한 반복 기능을 수행하지만 단지 반대쪽 방향으로만 할 뿐이다.
도 59를 참조하면, 윈도우(3300)는 범용 쉘 브라우저의 그래픽 사용자 인터페이스에 대한 화면-크기의 디스플레이 영역을 나타낸 것이다. 윈도우(3300)는 미리보기 창 영역(3302) 및 뷰 영역(3304)을 포함한다. 미리보기 창(3302)은 미리보기 컨트롤(3306), 편집 또는 메타데이터 컨트롤(3308), 및 작업 컨트롤(3310)을 포함할 수 있다. 일반적으로, 미리보기 컨트롤(3306)은 사용자에게 미리보기되고 있는 항목(예를 들어, 선택된 파일)의 이미지 또는 다른 시각적 디스플레이를 제공한 다. 미리보기 컨트롤(3306)은 또한 사용자가 마우스 버튼을 클릭함으로써 포커스를 한 항목에서 그 다음 항목으로 이동시킬 수 있게 해주는 반복자 버튼 등의 컨트롤을 사용자에게 제공할 수 있다. 편집 컨트롤(3308)은 미리보기된 항목의 주요 프로퍼티의 디스플레이를 포함할 뿐만 아니라, 메타데이터를 편집하는 컨트롤을 사용자에게 제공한다. 작업 컨트롤(3310)은 이름 공간 및/또는 선택에 관련한 작업들을 포함한다.
당업자라면 본 발명이 윈도우(3300) 내에 선택적인 특징들이 존재하는 것을 생각하고 있음을 잘 알 것이다. 예를 들어, 메타데이터 컨트롤(3208) 및 작업 컨트롤(3210)이 본 발명의 목적상 필수적인 특징이 아니다. 게다가, 사용자가 미리보기 창의 열기/닫기를 할 수 있도록 반복자 버튼 또는 보여주기/감추기 버튼을 포함하는 도구막대 등의 도 59에 도시되어 있지 않은 다른 비필수적인 특징들도 역시 본 발명의 범위 내에 속한다. 그럼에도 불구하고, 이들 및 다른 선택적인 특징들은 사용자가 쉘 브라우저에서 특정의 항목을 용이하게 찾아내는 데 도움이 될 수 있다.
보기 영역(3304)은 파일 시스템 파일 또는 폴더 등의 하나 이상의 항목(3312)의 리스트뷰를 제공한다. 용어 "리스트뷰"는 컨테이너 내에 있는 항목들의 열거 또는 리스트를 말한다. 용어 "항목" 및 "쉘 항목"은, 파일, 폴더 및 다른 이러한 컨테이너, 및 리스트뷰에 표현될 수 있는 다른 비파일 객체를 말하기 위해, 본 명세서에서 상호 교환가능하게 사용된다. 이와 유사하게, "쉘 항목"은 쉘 라이브러리에서의 항목을 말한다. 비파일 객체의 예는 연락처, 즐겨찾기 및 이메일 메 시지를 포함할 수 있지만, 이에 한정되는 것은 아니다. 용어 "쉘 브라우저" 및 "파일 시스템 브라우저"는, 사용자가 파일 및 다른 비파일 항목을 포함하는 여러가지 이름공간을 통해 내비게이션할 수 있게 해주는 브라우저를 말하기 위해, 본 명세서에서 상호 교환가능하게 사용된다.
당업자라면 본 발명이 윈도우(3300)에 대한 많은 가능한 설계 및 레이아웃을 생각하고 있다는 것을 잘 알 것이다. 예를 들어, 미리보기 창(3302)은 도 59에서 뷰 영역(3304) 위쪽에 나타내어져 있다. 그렇지만, 미리보기 창(3302) 및 뷰 영역(3304)을 나란히 배치하는 등의 다른 레이아웃이 본 발명의 범위 내에 속하는 것이 분명하다. 또한, 상세히, 슬라이드 쇼, 필름스트립, 썸네일, 타일, 아이콘, 기타 등등의 뷰 영역(3304)에 표시된 항목들에 대한 많은 가능한 뷰가 있다.
다음에 도 60을 참조하면, 쉘 브라우저에서의 환영 창(3400)의 개략도가 제공되어 있다. 환영 창은 때때로 "널 선택" 창이라고 하는데, 그 이유는 이 창이 선택과는 달리 이름공간 또는 컨테이너를 나타내기 때문이다. 사용자가 아직 선택을 하지 않은 경우, 미리보기 창(3402)은 폴더 또는 쉘 라이브러리에 관한 메타데이터(3404) 및 주요 작업을 디스플레이한다. 원하는 경우, 이들 작업은 주요 작업(3406) 및 다른 관련 작업(3408)로 분리될 수 있다. 환영 창(3400)은 또한 다수의 파일 또는 다른 항목(3412)을 볼 수 있는 뷰 영역(3410)을 포함한다. 환영 창 메타데이터(3404)는 컨테이너(예를 들어, 내 그림)의 프로퍼티 등의 정보를 포함할 수 있으며, 이 경우 메타데이터 디스플레이는 정적일 수 있다. 다른 대안으로서, 환영 창 메타데이터(3404)는 컨테이너 내의 항목들 각각으로부터의 메타데이터의 샘플링 등의 정보를 포함할 수 있으며, 이 경우 메타데이터 디스플레이는 빈번하게 변할 수 있다. 예를 들어, 메타데이터 디스플레이는 매 30초 마다 한 항목에서 그 다음 항목으로 순환함으로써 한번에 한 항목의 프로퍼티로 제한될 수 있다.
도 61은 쉘 브라우저에서의 선택된 창(3500)의 개략도이다. 환영 창과는 달리, 선택된 창은 사용자에 의한 선택을 나타낸다. 사용자가 컨테이너 또는 폴더를 선택하는 경우, 선택된 창은 그 컨테이너 또는 폴더에 대한 환영 창과 동일한 필요는 없다. 도 61에서, 선택된 창(3500)은 미리보기 컨트롤(3504), 메타데이터 디스플레이(3506), 및 작업 디스플레이(3508)를 포함하는 미리보기 창(3502)을 포함한다. 환영 창(3400)(도 60)과 같이, 선택된 창(3500)도 역시 다수의 파일 또는 다른 항목(3512)을 볼 수 있는 뷰 영역(3510)을 포함한다. 그렇지만, 도 61에서, 사용자는 파일 중 하나를 선택하였다. 따라서, 미리보기 컨트롤(3504)은 선택된 파일의 미리보기 이미지를 디스플레이하고, 메타데이터 디스플레이(3506)는 선택된 파일의 프로퍼티를 보여주며, 작업 디스플레이(3508)는 선택된 파일에 대해 동작하는 관련 작업의 메뉴를 제공한다.
도 62는 본 발명의 일 실시예에 따른 확장된 컨트롤을 갖는, 도 61의 선택된 창(3500)과 유사한 선택된 창의 개략도이다. 선택된 창(3600)은 확장된 컨트롤(3614)을 갖는 미리보기 컨트롤(3604), 메타데이터 디스플레이(3606) 및 작업 디스플레이(3608)를 포함하는 미리보기 창(3602)을 포함한다. 선택된 창(3600)은 또한 다수의 파일 또는 다른 항목(3612)을 볼 수 있는 뷰 영역(3610)을 포함한다. 사용자는 파일(3612) 중 하나를 선택하였으며, 따라서 미리보기 컨트롤(3604)은 선 택된 파일의 미리보기 이미지를 디스플레이하고, 메타데이터 디스플레이(3606)는 선택된 파일의 프로퍼티를 보여주며, 작업 디스플레이(3608)는 선택된 파일에 대해 동작하는 관련 작업의 메뉴를 제공한다.
확장된 컨트롤(3614)은 쉘 브라우저로부터 일반적으로 이용가능한 것을 넘는 레벨의 기능을 나타낸다. 예를 들어, 도 58 및 도 61에 나타낸 것 등의 디폴트 미리보기 창 또는 미리보기 컨트롤은 단지 선택된 항목의 미리보기 이미지를 디스플레이할 수 있을 뿐이다. 그 항목이 워드 프로세싱 문서 또는 슬라이드 프리젠테이션인 경우, 디폴트 미리보기 이미지는 문서 또는 슬라이드 데크의 첫 페이지일 수 있다. 그렇지만, 미리보기 이미지의 기능을 보다 대화형이 되도록 확장함으로써, 사용자는 문서 또는 슬라이드 프리젠테이션의 페이지를 넘기기 위해 확장된 컨트롤(3614)을 아주 용이하게 조작할 수 있다. 이러한 향상된 레벨의 기능은 사용자 경험을 개선시키는데 그 이유는 그에 의해 사용자가 미리보기된 항목을 열지 않고서 그 항목을 보다 포괄적으로 브라우징할 수 있게 되기 때문이며, 이는 첫 페이지에만 기초하여 용이하게 식별되지 않는 파일에 대해 특히 유용하다.
확장된 컨트롤(3614)은 쉘 브라우저에서 대안의 프리뷰어의 일부로서 사용자에게 이용가능하게 될 수 있다. 용어 "프리뷰어"는 미리보기 컨트롤 또는 미리보기 컨트롤을 포함하는 미리보기 창을 말할 수 있다. 본 발명은 다수의 항목 유형에 대한 표준 레벨의 기능을 제공하는 디폴트 프리뷰어 및 사용자 경험을 향상시키기 위해 특정의 항목 유형에 대해 다른 레벨의 기능을 제공하는 하나 이상의 대안적인 프리뷰어를 사용자에게 제공하는 쉘 브라우저를 생각하고 있다. 독립 소프트 웨어 벤더(independent software vendor)(ISV) 및 다른 써드 파티 개발자에게 대안적인 프리뷰어의 개발을 개방하게 되면 파일의 관련 측면을 용이하게 인식가능한 방식으로 보여줌으로써 파일 브라우징 경험에 가치를 부가한다. 본 발명은 많은 이미지 파일, 비디오 파일, 연락처, 게임, 스캐너, 비디오 카메라, 문서 파일, 스프레드쉬트 파일, 슬라이드 프리젠테이션 파일, 드로잉 파일 및 태블릿 잉크 파일(이에 한정되는 것은 아님)을 비롯한 파일 유형 및 비파일 항목 유형에 대한 맞춤 프리뷰어를 생각하고 있다.
본 발명은 종래의 쉘 브라우저에서는 가능하지 않았던 다수의 시나리오를 가능하게 해주며, 이들 중 일부에 대해서는 전술하였다. 써드 파티는 파일 유형을 조사할 수 있고 또 사용자가 이해하게 될 의미있는 이미지를 제공할 수 있는 코드를 제공함으로써 그의 파일 유형을 설명 및 시연할 수 있다. 예를 들어, 애플사는 사용자가 쉘 브라우저에서 QuickTime™ 파일을 선택할 때 디스플레이되어지는 QuickTime™ 미리보기 컨트롤을 구현할 수 있다. 이 미리보기 컨트롤은, QuickTime™ 영화의 처음 5초를 보여주는 것 및/또는 사용자가 QuickTime™ 플레이어를 기동시키는 버튼 및 컨트롤을 제공하는 것 등의, 운영 체제의 쉘에서 디폴트 프리뷰어를 넘는 대안의 또는 확장된 레벨의 기능을 제공할 수 있다. 음악 파일에 대한 대안의 프리뷰어는 유사한 확장된 기능을 제공할 수 있다. 당업자라면 잘 알고 있는 바와 같이, 대안의 프리뷰어에서의 확장된 기능을 위한 방법들은 무제한이다.
도 63은 도 61과 유사하지만 본 발명의 일 실시예에 따라 사용자가 쉘 브라 우저에서 메타데이터를 수정할 수 있게 해주는 컨텍스트 메뉴(3714)를 포함하는 선택된 창의 개략도이다. 선택된 창(3700)은 미리보기 컨트롤(3704), 메타데이터 디스플레이(3706), 및 작업 컨트롤(3708)을 포함하는 미리보기 창(3702)을 포함한다. 선택된 창(3700)은 또한 다수의 파일 또는 다른 항목(3712)을 볼 수 있는 뷰 영역(3710)을 포함한다. 당업자라면 본 발명의 목적상 메타데이터 컨트롤(3706) 및 작업 컨트롤(3708)이 필수적인 특징이 아니라는 것을 잘 알 것이다. 본 발명은 사용자가 쉘 브라우저에서 특정의 항목을 용이하게 찾아내는 데 도움이 될 수 있는 또는 다른 방식으로 사용자 경험을 향상시킬 수 있는 이들 및/또는 다른 선택적인 특징들의 존재를 생각하고 있다.
도 63에서의 컨텍스트 메뉴(3714)는 선택된 항목에 대한 디폴트 프리뷰어 또는 대안의 프리뷰어를 선택하는 선택사항을 비롯한 몇가지 옵션을 사용자에게 제공한다. 메뉴(3714)에 나타낸 일반적인 텍스트는 물론 프리뷰어를 선택하기 위해 사용자에게 제공될 수 있는 유형의 옵션들 중 단지 한 예에 불과하다. 컨텍스트 메뉴는 사용자 경험을 향상시키기 위해 환영 창을 비롯한 임의의 윈도우에 제공될 수 있다. 당업자라면 잘 알고 있는 바와 같이, 임의의 수의 다양한 컨텍스트 메뉴가 본 발명에 의해 지원될 수 있다. 본 발명의 목적상, 쉘 브라우저 내에서 프리뷰어의 사용자 선택을 가능하게 해주는 한가지 수단은 컨텍스트 메뉴(3714) 등의 컨텍스트 메뉴를 제공하는 것이다. 사용자는 예를 들어 미리보기 창에서 대응하는 텍스트 또는 객체를 클릭함으로써 컨텍스트 메뉴를 호출할 수 있다.
당업자라면 본 발명이 쉘 브라우저 내에서 복수의 이용가능한 프리뷰어 중에 서 디스플레이된 항목에 대한 프리뷰어를 선택하기 위한 컨텍스트 메뉴 이외의 수단을 생각하고 있다는 것을 잘 알 것이다. 다른 이러한 수단은 사용자가 선택 모드에 들어가기 위해 미리보기 컨트롤을 클릭하는 것이다. 이와 유사하게, 사용자는 미리보기 창 내에서 우측 버튼을 클릭함으로써 프리뷰어를 선택하도록 재촉받을 수 있다. 이와는 달리, 사용자는 미리보기 창에서 관련 텍스트 상에서 또는 관련 객체 상에서 허버링함으로써 선택 모드에 들어갈 수 있다. 많은 대안적인 수단이 이용가능하며 본 발명의 범위 내에 속한다.
도 64a는 본 발명의 일 실시예에 따라 다수의 항목 유형을 지원하는 쉘 브라우저에서 사용자가 프리뷰어를 선택할 수 있게 해주는 방법(3800)을 나타낸 흐름도이다. 이 방법(3800)은 3802에서 쉘 브라우저 내에 복수의 프리뷰어를 제공한다. 이 복수의 프리뷰어는 다수의 항목 유형에 대한 디폴트 프리뷰어 및 특정의 항목 유형에 대한 하나 이상의 대안적인 프리뷰어를 포함할 수 있다. 이들 대안적인 프리뷰어는 써드 파티에 의해 개발된 설치된 애플리케이션을 포함할 수 있다. 3804에서, 이 방법(3800)은 특정의 항목 유형에 대한 2개 이상의 프리뷰어의 선택을 사용자에게 제공한다. 프리뷰어를 선택하라는 프롬프트는 쉘 브라우저에 의해(예를 들어, 새로운 항목 유형을 디스플레이할 때) 및/또는 사용자에 의해(예를 들어, 컨텍스트 메뉴를 디스플레이하기 위해 객체를 클릭함으로써) 개시될 수 있다. 특정의 항목 유형에 대한 프리뷰어들 중 하나의 선택을 나타내는, 3806에서의 사용자로부터의 입력을 수신할 시에, 이 방법(3800)은 이어서 3808에서 선택된 프리뷰어를 특정의 항목 유형과 연관시킨다. 선택된 프리뷰어는 사용자가 다른 것을 선택할 때까지 사용중에 있게 된다. 그렇지만, 선택된 프리뷰어가 설치된 애플리케이션인 경우, 이 애플리케이션을 제거하는 것도 역시 선택된 프리뷰어의 사용을 종료시킨다.
도 64b는 본 발명의 일 실시예에 따라 다수의 항목 유형을 지원하는 쉘 브라우저에서 프리뷰어를 자동적으로 선택하는 방법(3810)을 나타낸 흐름도이다. 이 방법(3810)은 3812에서 쉘 브라우저 내에 복수의 프리뷰어를 제공한다. 이 복수의 프리뷰어는 다수의 항목 유형을 위한 디폴트 프리뷰어 및 특정의 항목 유형을 위한 하나 이상의 대안적인 프리뷰어를 포함할 수 있다. 이들 대안적인 프리뷰어는 써드 파티에 의해 개발된 설치된 애플리케이션을 포함할 수 있다.
3814에서, 이 시스템은 (사용자와는 달리) 자동적으로 또 투명하게 특정의 항목 유형에 대한 2개 이상의 이용가능한 프리뷰어로부터 디폴트 프리뷰어를 선택한다. 이 시스템은 새로운 항목 유형의 디스플레이 또는 대안적인 프리뷰어의 존재 등의 이벤트에 응답하여 프리뷰어를 선택할 수 있다. 이 시스템은 논리적 규칙에 기초하여 디폴트 프리뷰어를 선택하도록 구성되어 있다. 예외적인 상황 하에서, 이 시스템은 3816에서 규칙들을 무시하고 적용가능한 규칙 하에서는 선택되지 않을 프리뷰어를 선택하기로 결정할 수 있다. 예를 들어, 규칙이 현재의 디폴트 프리뷰어보다 새로 이용가능한 프리뷰어를 선택하는 것인 경우, 설치된 애플리케이션은 일반적으로 디폴트 프리뷰어를 설치된 애플리케이션으로부터 현재 이용가능한 프리뷰어로 변경하는 권한을 가질 수 있다. 그렇지만, 쉘 브라우저는 예를 들어 새로 설치된 애플리케이션에 의해 제안된 변경을 무시할 권리를 보유할 수 있다. 예를 들어, 새로 설치된 애플리케이션이 문제의 항목 유형의 진정한 소유자로서 인증될 수 없는 경우에 무시하는 것이 적절할 수 있다.
어느 경우든지, 이 방법(3810)은 이어서 3818에서 선택된 프리뷰어를 특정의 항목 유형과 연관시킨다. 선택된 프리뷰어는 다른 것이 선택될 때까지 사용중에 있게 된다. 그렇지만, 선택된 프리뷰어가 설치된 애플리케이션인 경우, 그 애플리케이션을 제거하는 것도 또한 선택된 프리뷰어의 사용을 종료시킨다.
다음에 도 65를 참조하면, 흐름도는 본 발명의 일 실시예에 따라 다수의 항목 유형을 지원하는 쉘 브라우저에서 써드 파티 프리뷰어의 사용을 가능하게 해주는 방법(3900)을 나타낸다. 이 방법(3900)은 3902에서 다수의 항목 유형에 대한 디폴트 프리뷰어를 갖는 쉘 브라우저를 제공하는 단계를 포함한다. 이 방법(3900)은 또한 3904에서 다수의 항목 유형 중 적어도 하나에 대한 대안적인 프리뷰어의 써드 파티 개발을 위한 확장 메카니즘을 제공하는 단계를 포함한다. 3906에서, 이 대안적인 프리뷰어는 쉘 브라우저에 등록될 수 있다. 설치된 애플리케이션의 경우에, 등록은 실질적으로 설치 시에 일어날 수 있다. 예를 들어, 애플리케이션이 OEM에 의해 설치되는 경우, 이 대안적인 프리뷰어는 사용자가 컴퓨터를 획득하기 이전에 등록될 수 있다. 다른 대안으로서, 사용자는 애플리케이션을 로컬적으로 또는 원격적으로 설치할 수 있다.
3904에서 상기 언급한 확장 메카니즘에 대한 많은 가능한 방법이 있다. 한가지 이러한 방법은 독립 소프트웨어 벤더(ISV) 및 다른 써드 파티 개발자가 대안적인 프리뷰어를 개발할 수 있도록 일련의 애플리케이션 프로그램 인터페이스(API) 을 공개하는 것이다. API 방법에 있어서, ISV가 그의 미리보기 컨트롤을 ISV에 의해 소유되는 항목 유형과 연관시킬 수 있게 해주는 등록 메카니즘이 존재한다. 그 유형의 항목 또는 파일이 쉘 브라우저에서 선택되는경우, ISV의 미리보기 컨트롤이 이 등록 메카니즘 및 확장 API를 통해 인스턴스화된다. 이 API는 데이터, 즉 뷰에서의 선택된 항목(들)을 나타내는 데이터 및 뷰에서의 항목들의 부모 컨테이너를 나타내는 데이터를 미리보기 컨트롤에 제공한다. 미리보기 컨트롤은 이 데이터에 대해 동작하고 쉘 브라우저에서 제공되는 API를 통해 사용자 인터페이스를 제공한다. 사용자는 그 사용자 입력 이벤트 시에 동작할 수 있는 미리보기 컨트롤에 쉘 브라우저에 의해 전달되는 키스트로크 및 마우스 이벤트로 입력을 제공할 수 있다.
당업자라면 본 발명의 확장 메카니즘과 관련하여 많은 방법들이 가능하다는 것을 잘 알 것이다. API 방법 이외에, 사용자 구성, HTML에 대한 포인터 또는 플래쉬를 호스팅하는 것을 통해 유사한 기능이 달성될 수 있다. 게다가, 확장 모델은 선택된 항목 유형을 소유하는 단지 하나의 애플리케이션만이 단지 하나의 대안적인 프리뷰어를 제공할 수 있을 것을 요구할 수 있다. 환언하면, 이용가능한 프리뷰어의 수는 다수의 등록되어 있는 확장된 프리뷰어가 서로 경쟁하고 있는 형편없는 사용자 경험을 회피하기 위해 디폴트 프리뷰어 및 하나의 대안적인 프리뷰어로 제한될 수 있다. 그렇지만, 다른 모델은 선택된 항목 유형을 처리할 수 있는 임의의 애플리케이션이 하나의 부가적인 프리뷰어를 제공할 수 있게 해주는 것이다. 대안적인 모델은 임의의 실행 중인 코드가 임의의 항목 유형에 대한 하나의 부가적인 프리뷰어를 제공할 수 있게 해준다. 또한 어떤 상황 하에서는 디폴트 프 리뷰어의 대체 또는 제거를 가능하게 해주는 것이 바람직할 수 있다. 많은 다른 모델이 가능하며 본 발명에 의해 생각되고 있다.
도 66은 하나 이상의 컴퓨터-판독가능 매체 상에 저장되어 있고 또 쉘 브라우저에서 복수의 프리뷰어를 나타내는 정보를 포함하는 데이터 구조체(4000)의 블록도이다. 데이터 구조체(4000)는 다수의 항목 유형을 지원하는 디폴트 프리뷰어를 나타내는 정보를 포함하는 디폴트 프리뷰어 필드(4002)를 포함한다. 대안적인 프리뷰어 필드(4004)는 제1 항목 유형에 대한 대안적인 프리뷰어를 나타내는 정보를 포함한다. 다른 대안적인 프리뷰어 필드(4006)는 제1 항목 유형에 대한 제2 대안적인 프리뷰어를 나타내는 정보를 포함할 수 있거나, 제2 항목 유형에 대한 대안적인 프리뷰어를 나타내는 정보를 포함할 수 있다. 당업자라면 어떤 경우에 단지 하나의 대안적인 프리뷰어 필드만이 있을 수 있고 다른 경우에 2개 이상의 대안적인 프리뷰어 필드가 있을 수 있다는 것을 잘 알 것이다. 선택된 프리뷰어 필드(4008)는 특정 항목 유형의 항목이 쉘 브라우저에 디스플레이될 때 디폴트 프리뷰어를 호출할지 대안적인 프리뷰어를 호출할지를 나타내는 정보를 포함한다. 필드(4006)가 제2 항목 유형에 대한 대안적인 프리뷰어를 나타내는 정보를 포함하는 경우, 선택된 프리뷰어 필드(4010)는 제2 항목 유형의 하나 이상의 항목이 쉘 브라우저에서 디스플레이될 때 디폴트 프리뷰어를 호출할지 대안적인 프리뷰어를 호출할지를 나타내는 정보를 포함할 수 있다. 필드(4002, 4004 및/또는 4006)에 포함된 정보는 사용자가 그 유형의 객체를 선택할 때 실행하도록 구성되어 있는 프리뷰어 코드를 포함할 수 있다.
명시적인 배제를 갖는 범위를 정의하기: 도 37 및 도 38을 참조하여 전술한 바와 같이, 사용자 또는 애플리케이션은 다수의 물리적 장소에 걸친 범위를 정의할 수 있다. 본 발명의 예시적인 측면에 따르면, 사용자 또는 애플리케이션은 또한 3-상태 선택 컨트롤과 연관된 모호성을 제거하는 진보된 사용자 인터페이스를 사용하여, 범위에 포함되지 않을 특정의 장소를 식별해주는, 범위로부터의 배제를 정의할 수 있다. 따라서, 본 발명의 하나 이상의 측면이 사용자가 후속하는 컴퓨터 동작에 의해 영향을 받게 될 범위 또는 영역를 정의하는 소프트웨어 입력 컨트롤에서 사용될 수 있다. 예로서는 설치될 소프트웨어 기능들의 범위 또는 검색될 저장 장소의 범위를 정의하는 것이 있다. 이들은 예시를 위해 제공된 단지 2개의 예에 불과하며 본 발명의 범위를 제한하기 위한 것이 아니다.
본 발명의 예시적인 측면에 따르면, 도 67을 참조하면, 범위 선택 컨트롤(6701)은, 계층적 선택 트리(6703)를 제공하는 것 이외에, 명시적으로 포함된 항목(6707) 및 명시적으로 배제된 항목(6709)을 식별해주는 바스켓(6705)을 포함할 수 있다. 범위 선택 컨트롤(6701)은 사용자가 바스켓을 검사함으로써 어느 것이 범위 내에 포함되고 범위로부터 배제되는지를 시각적으로 빨리 알 수 있게 해준다. 이 컨트롤(6701)은 또한 트리(6703)와의 상호작용을 통해 무엇이 범위에 포함되고 그로부터 배제되는지를 지정하기 위해 각각의 폴더 레벨에서의 상세한 제어를 사용자에게 제공한다. 본 발명의 여러가지 측면에 따르면, 이하에서 더 기술하는 바와 같이, 범위 선택 컨트롤(6701)은 결과 범위에서의 서로 다른 포함 상태를 보여주기 위해 서로 다른 시각적 디스플레이를 사용할 수 있다. 바스켓(6705)을 트리(6703) 에 동기화된 채로 유지하기 위해, 범위 선택 제어(6701)는 사용자가 범위 검사의 배제 바스켓 모드와 계층 구조 트리 모드 간에 신속하게 전환하여 범위 생성 및 수정을 위한 기존의 컨트롤의 상당한 최적화를 제공할 수 있게 해준다.
이제부터 범위 선택 컨트롤(6701)의 동작에 대해 도 68을 추가적으로 참조하여 설명한다. 이 범위는 범위 선택 컨트롤(6701)을 통해 명시적으로 또는 암시적으로 사용자가 포함시키기 위해 선택한 결과적인 일련의 항목에서 사용자가 배제시키기 위해 명시적으로 또는 암시적으로 선택한 항목을 뺀 것이다. 명시적 선택이란 사용자가 포함 또는 배제를 위해 특정의 항목을 확정적으로 선택하는 것을 말한다. 암시적 선택이란 명시적으로 선택된 조상의 선택/배제 상태를 상속하는 확정적으로 선택된 항목의 후손을 말한다. 사용자가 명시적으로도 암시적으로도 포함 또는 배제를 위해 항목을 선택하지 않은 경우 항목은 비선택되었다고 말해진다.
기술 분야에 공지된 바와 같이, 계층적 선택 트리(6703)는 적어도 하나의 서브폴더를 갖는 각각의 폴더 옆에 확장/축소 위젯(expand/collapse widget)(6803)을 포함할 수 있다. 확장/축소 위젯(6803)을 클릭하거나 다른 방식으로 선택하면 트리의 대응하는 노드를 확장 또는 축소시킨다. 행의 임의의 다른 장소를 클릭하거나 다른 방식으로 선택하면, 본 명세서에 기술된 바와 같이, 현재의 범위로부터 그 장소의 선택을 토글할 수 있다. 행을 더블 클릭하면 포함/배제를 위한 노드를 선택할 수 있고 또 하나 이상의 레벨만큼 그의 자식을 확장시킬 수 있다. 사용자는 또한 항목의 상태를 토글시키기 위해 선택된 항목에 대응하는 체크박스(6805a-6805k)를 선택할 수 있다.
사용자가 포함시키기 위한 열을 명시적으로 선택할 때, 범위 선택 컨트롤(6701)은 예를 들어 디스플레이 화면 상에 표시자 또는 그래픽을 드로잉 또는 렌더링함으로써 항목이 명시적으로 포함되어 있음을 나타내는 제1 포함 표시자(inclusion indicator)를 제공함으로써 그 선택을 계층 구조로 나타낼 수 있다. 예를 들어, 도 68에서, 사용자는 탐색된 디지털 사진을 검색하기 위해 검색 장소의 범위를 정의하고 있을 수 있다. 체크박스(6805b)는 사용자가, 2003년에 찍은 사진을 말하는, '2003'을 명시적으로 선택하였음을 나타낸다. 체크박스(6805b)가 체크되어 있으며, 대응하는 행이 하이라이트될 수 있다. 따라서, 체크된 폴더 내에 포함된 모든 파일 및 폴더는 현재 범위 내에 포함되어 있다. 명시적으로 선택된 폴더가 서브폴더를 포함하는 경우, 컨트롤(6701)은 사용자에게 디스플레이하기 위해 하나 이상의 레벨만큼 자동적으로 서브폴더를 확장시킬 수 있다.
'2003'을 명시적으로 선택하면 그 결과 '2003'의 모든 자식 및 후손의 암시적인 선택이 있게 된다. 포함시키기 위한 암시적인 선택은 항목이 암시적으로 선택되어 있음을 나타내는 제2 포함 표시자를 제공함으로써 표시될 수 있다. 예를 들어, 도 68에서, 흐릿해진 체크 마크를 포함하도록 '2003'의 모든 후손에 대응하는 체크박스(6805c-6805i)가 제공되고, 각각의 대응하는 행은 흐릿해진 하이라이팅으로 제공될 수 있다.
사용자가 명시적으로 항목을 선택할 때, 이 항목은 또한 적절한 장소, 즉 포함된 항목(6707)(포함) 또는 배제된 항목(6709)(배제)에 있는 바스켓(6705)에 부가될 수 있다. 이 컨트롤은 양호하게는 바스켓 내의 명시적으로 선택된 항목 및 엔 트리 간에 일대일 비율을 유지할 수 있다. 예를 들어, 도 68에서, 사용자는 범위에 포함시키기 위해 폴더 '2003'를 명시적으로 선택하였다. 컨트롤(6701)은, 계층구조(6703)에서 폴더 '2003'를 명시적으로 선택된 것으로 표시하는 것 이외에, 포함(6707)에 명시적으로 선택된 항목을 열거한다. 사용자가 포함 또는 배제를 위한 임의의 다른 장소를 아직 선택하지 않았기 때문에, 도 68에서 바스켓(6705)에 현재 다른 엔트리가 없다.
본 발명의 일 측면에 따르면, 사용자가 어떤 상황 하에서 포함 또는 배제를 위해 폴더를 최초로 명시적으로 선택한 경우조차도, 폴더는 암시적으로 선택된 것으로 간주될 수 있다. 예를 들어, 사용자가 처음으로 폴더 휴가를 명시적으로 선택한 것으로 가정한다. 휴가 폴더는 명시적으로 선택되게 되고, 피지유럽 서브폴더는 암시적으로 선택된다. 사용자가 그 다음에 2003 폴더를 명시적으로 선택하는 것으로 가정한다. 2003 폴더는 명시적으로 선택된 것으로 표시되고, 휴가 서브폴더를 비롯한 모든 서브폴더는 암시적으로 선택된 것으로 표시된다. 즉, 사용자가 항목을 명시적으로 선택할 때마다, 모든 하위 항목은, 그의 이전의 선택 상태에 상관없이, 암시적으로 선택된 것으로 표시될 수 있다. 그렇지만, 본 발명의 한 측면에 따르면, 사용자가 이전에 명시적으로 항목을 선택했다는 사실이 장래의 사용을 위해 저장될 수 있다. 예를 들어, 사용자가 2003 폴더가 애당초 우연히 선택되었음을 깨닫고서 나중에 2003 폴더를 선택 해제하는 것으로 가정한다. 2003 폴더의 하위 항목들 각각이 그의 이전의 상태로 복귀할 수 있고, 따라서 휴가 폴더는 명시적으로 선택된 상태로 복귀한다. 사용자가 범위의 편집을 완료하고 장래의 사 용을 위해 그 범위를 저장하고자 하는 경우, 그 범위는 각각의 선택을 포함하여 저장될 수 있거나 그 범위는 최종의 저장된 범위와 상관없는 선택에 관한 정보 없이 저장될 수 있다. 예를 들어, 상기 예에서, 범위가 저장될 때 사용자가 처음으로 휴가 폴더를 선택했다는 사실이 폐기될 수 있는데, 그 이유는 휴가 폴더의 이전의 선택이 최종의 저장된 범위와 관련이 없을 수 있기 때문이다.
도 69를 추가적으로 참조하면, 폴더가 사용자에 의해 배제시키기 위해 선택되는 경우, 그 폴더 및 모든 후손이 범위로부터 제거된다. 사용자는 폴더가 암시적으로 선택된 이후에 그 폴더를 명시적으로 선택함으로써 배제시키기 위해 그 폴더를 선택할 수 있다. 사용자가 배제시키기 위해 행을 명시적으로 선택하는 경우, 범위 선택 컨트롤(6701)은, 그 항목이 명시적으로 배제되었음을 나타내는 제1 배제 표시자를 제공함으로써, 그 선택을 계층구조로 나타낼 수 있다. 예를 들어, 도 69에서, 예를 들어 사용자가 검색 결과에서 예전 여자친구의 사진을 포함시키지 않기를 원하는 경우, 체크박스(6805f)는 사용자가 범위로부터 "예전 여자친구(Ex-girlfriends)" 폴더를 명시적으로 배제시켰음을 나타낸다. 체크박스(6805f)는 실선 X로 표시되고, 대응하는 행에 대한 하이라이팅이 제거된다. 명시적으로 배제된 폴더 내에 포함된 모든 파일 및 폴더는 따라서 범위로부터 배제된다. 명시적으로 배제된 폴더가 서브폴더를 포함하는 경우, 컨트롤(6701)은 서브폴더를 자동적으로 축소시키며, 따라서 명시적으로 배제된 폴더만을 사용자에게 디스플레이한다(후손은 없음). 사용자가 뒤이어서 명시적으로 배제된 폴더에 대응하는 위젯을 확장시키는 경우, 그 후손들이 제2 배제 표시자와 함께 디스플레이되어, 암시적인 배제를 나타낼 수 있다.
배제를 위해 '2003'을 명시적으로 선택하면 역시 그 결과 '2003'의 모든 자식 및 후손이 범위로부터 암시적으로 배제된다. 배제를 위한 암시적인 선택은 항목이 암시적으로 배제되었음을 나타내는 제2 배제 표시자를 제공함으로써 표현될 수 있다. 예를 들어, 도 69에서, 흐릿해진 X를 포함하여 '예전 여자친구'의 모든 후손에 대응하는 체크박스(6805g-6805i)가 제공되고, 각각의 대응하는 행에 대한 하이라이팅이 제거될 수 있다.
사용자가 명시적으로 항목을 배제시킬 때, 이 항목은 바스켓(6705)의 배제(6709)에 추가되어, 각각의 명시적인 배제를 명시적으로 포함된 항목의 프로퍼티로서 시각적으로 나타낼 수 있다(각각의 배제는 또한 선택적으로 포함의 프로퍼티로서 저장될 수 있다). 예를 들어, 도 69에서, 사용자는 범위로부터 배제시키기 위해 폴더 '예전 여자친구'를 명시적으로 배제시켰다. 컨트롤(6701)은, 폴더 '예전 여자친구'를 계층구조(6703)에서 명시적으로 배제된 것으로 표시하는 것 이외에, 포함(6707)에서의 명시적으로 포함된 폴더 2003에 대응하는 배제 리스트(6709)에 명시적으로 배제된 항목을 열거할 수 있다.
사용자가 명시적으로 포함된 항목을 명시적으로 선택하는 경우, 컨트롤(6701)은 사용자가 그 항목을 범위에 포함시키는 것과 관련하여 그의 마음을 변경했음을 나타내기 위해 항목의 명시적인 재선택을 해석할 수 있다. 그렇지만, 재선택된 항목을 명시적으로 배제시키지 않고, 컨트롤(6701)은, 재선택된 항목 또는 그의 후손들 중 임의의 것을 명시적으로 또는 암시적으로 배제된 것으로 표시하지 않고, 재선택된 항목으로부터 명시적인 포함 상태는 물론 임의의 후손의 암시적인 포함 상태를 간단히 제거할 수 있다. 그 항목들은 미선택된 상태로 복귀한다. 그에 대응하여, 이 항목은 바스켓(6705)으로부터 제거되고, 트리(6703)에서 그 항목에 대응하는 체크박스는 그의 초기의 빈 상태로 복귀할 수 있으며, 임의의 하이라이팅이 제거될 수 있다. 따라서, 본 발명의 예시적인 측면에 따르면, 이전에 암시적으로 포함된 항목만이 범위로부터 명시적으로 배제될 수 있다.
또한, 도 70을 참조하면, 사용자는 이전에 암시적으로 배제된 장소로부터의 항목을 명시적으로 포함시킬 수 있다. 도 70에서, 사용자는 폴더 'Cindy'를 범위에 포함시키기로 결정하였는데, 왜냐하면 예를 들어 사용자가 여전히 그의 예전 여자친구 Cindy와 친구 사이이지만 여전히 그의 다른 예전 여자친구의 사진을 범위에 포함시키려고 하지 않기 때문이다. 포함시키기 위해 폴더 'Cindy'를 명시적으로 선택할 시에, 범위 선택 컨트롤(6701)은 체크박스(6805g)에 제1 포함 표시자를 제공하고 대응하는 행을 하이라이트한다. 폴더 예전 여자친구, JanetKaren의 암시적인 배제 상태는 불변인 채로 있는데, 그 이유는 이들 폴더가 Cindy의 후손이 아니라 오히려 각각 조상(ancestor) 및 피어(peer)이기 때문이다. 폴더 Cindy의 명시적인 포함의 경우, 범위 선택 컨트롤(6701)은 대응하는 항목을 포함(6707)에서의 바스켓(6705)에 추가한다.
트리(6703)와 상호작용하는 것 이외에, 사용자는 범위를 보거나 수정하기 위해 이와 유사하게 바스켓(6705)과도 상호작용할 수 있다. 바스켓은 양호하게는 각각의 명시적으로 선택된 항목에 대한 항목 이름, 장소, 및 아이콘을 디스플레이한 다(그렇지만, 원하는 바에 따라 서로 다른 정보가 디스플레이될 수 있다). 바스켓의 물리적 디스플레이 크기가 항목에 대한 전체 경로를 디스플레이하지 못하는 경우 경로가, 예를 들어 도 69에 디스플레이된 바와 같이 '...'로, 절단될 수 있다(다른 대안으로서 알파 블렌딩이 사용될 수 있다). 다른 대안으로서, 이 절단은, 도 70에서 경로의 중간에 생략 부호로 나타낸 바와 같이, 경로의 중간에서 일어날 수 있다. 컨트롤(6701)은 임의의 원하는 알고리즘에 따라 경로의 어느 부분을 절단할지를 결정할 수 있다. 한 예시적인 실시예에서, 컨트롤(6701)은 이하의 우선순위에 따라 절단을 결정할 수 있다, 즉 직접 부모를 먼저 보여주고, 루트(예를 들어, C:\, D:\, 기타 등등)를 두번째로 보여주며, 마지막으로 전체 경로가 디스플레이될 때까지 또는 할당된 공간이 채워질 때까지 경로를 부모의 순차 조상으로 채운다.
바스켓(6705)에서 폴더를 선택하면, 트리(6703)의 현재 뷰에서 아직 보이지 않지만, 예를 들어 트리(6703)가 선택된 폴더를 디스플레이하기 위해 자동적으로 확장 및/또는 스크롤하게 될 수 있다. 이 트리는 또한 선택된 폴더의 임의의 서브폴더를 디스플레이하기 위해 선택된 폴더를 자동적으로 확장할 수 있다. 명시적인 배제는 명시적으로 포함된 항목의 다중값 프로퍼티(MVP)로서 정의될 수 있으며, 여기서 동일한 명시적으로 포함된 항목에 대응하는 다수의 배제의 결과 바스켓에 부가적인 행이 생기는 것이 아니라 다른 값이 명시적으로 포함된 항목에 대응하는 배제에 부가된다. 예를 들어, 도 71에서의 뷰는 사용자가 폴더 '2003'를 명시적으로 포함시키고 이어서 폴더 '피지'를 명시적으로 배제하며 마지막으로 폴더 'Janet'를 명시적으로 배제시킨 결과이다. 사용자가 마우스 포인터(7101)를 바스켓(6705)에서의 '2003'으로부터의 배제 상에서 허버링하고 있을 때, 컨트롤(6701)은 사용자가 배제를 검사할 수 있도록 전체 MVP(fully qualified MVP)(7103)를 디스플레이할 수 있다. 포함에서와 같이, 사용자가 바스켓(6705)으로부터 배제를 선택할 때, 컨트롤(6701)은 자동적으로 트리(6703)를 선택된 항목으로 내비게이션할 수 있다.
사용자가 범위의 정의 또는 수정을 완료할 때, 사용자는 장래의 사용을 위해, 예를 들어 저장 매체(22, 24, 39, 30, 기타 등등)에 범위를 저장할 수 있다. 범위를 저장하는 것은 사용자가 일치 조건을 변경시키면서 동일한 범위에 대해 검색을 반복하여 수행할 때 유용하다. 범위가 저장될 때, 이는 명시적인 포함의 순서 리스트로서 저장될 수 있으며, 명시적인 배제의 리스트에서의 각각의 엔트리는 MVP로서 0 이상의 연관된 명시적인 배제를 갖는다. 따라서, 이 리스트는 사용자에 의한 모든 명시적인 선택을 저장할 수 있다. 그렇지만, 사용자가 먼저 항목을 명시적으로 선택하고 이어서 후속하여 (예를 들어, 그것이 애당초 우연히 선택되었음을 알고서) 그 동일한 항목을 명시적으로 선택 해제할 때, 항목은 리스트에 포함되지 않을 수 있다. 이와 같이, 순서 리스트에 기초하여적당한 범위가 재생성될 수 있으며, 명시적으로 포함되거나 배제된 항목의 후손인, 범위의 사용 간에 추가된 임의의 새로운 폴더는 범위가 재사용될 때 적절히 고려된다.
예를 들어, 본 발명의 예시적인 측면에 따르면, 범위는 XML(eXtensible Markup Language) 파일로서 저장될 수 있다. 이하의 XML은 명시적인 포함 및 명시적인 배제를 식별해주는 범위를 나타낸 것으로서, 각각의 배제는 포함의 프로퍼티 로서 저장되어 있고, 순서는 본질적으로 데이터가 XML 파일에 저장되어 있는 순서로 유지되어 있다.
Figure 112007022760413-PCT00006
도 72는 상기한 범위 선택 컨트롤(6701)을 사용하여 범위를 발생하는 방법을 나타낸 것이다. 단계(7201)에서, 사용자는 트리(6703)에서 항목을 명시적으로 선택한다. 단계(7203)에서, 범위 선택 컨트롤(6701)은 명시적으로 선택된 항목이 이미 범위에 포함시키기 위해 설정되어 있는지 여부를 판정한다. 그렇게 되어 있는 경우, 이 방법은 단계(7209)로 진행한다. 그렇지 않은 경우, 범위 선택 컨트롤(6701)은, 단계(7205)에서, 명시적으로 선택된 항목이 현재 범위로부터 명시적으로 배제되는 것으로 설정되어 있는지를 판정한다. 그러한 경우, 단계(7206)에서, 범위 선택 컨트롤은 명시적으로 선택된 항목의 그 상태를 명시적으로 선택된 항목의 부모의 상태로 복귀시킨다. 단계(7205)에서, 명시적으로 선택된 항목이 현재 명시적으로 배제되어 있지 않은 경우(항목이 암시적으로 배제되어 있거나 선택되어 있음을 의미함), 범위 선택 컨트롤은, 단계(7207)에서, 명시적으로 선택된 항목을 범위에 명시적으로 포함시키고, 명시적으로 선택된 항목의 모든 후손을 범위에 암 시적으로 포함시킨다. 그 다음에, 단계(7208)에서, 범위 선택 컨트롤(6701)은 명시적으로 선택된 항목을 바스켓(6705)에서의 포함(6707)에 추가한다.
단계(7209)에서, 범위 선택 컨트롤(6701)은 이전에 포함된 항목이 이전에 명시적으로 포함되었는지 이전에 암시적으로 포함되었는지를 판정한다. 항목이 이전에 암시적으로 포함된 경우, 단계(7211)에서, 범위 선택 컨트롤(6701)은 명시적으로 선택된 항목을 명시적으로 배제시키고, 명시적으로 선택된 항목의 모든 후손을 암시적으로 배제시킨다. 그 다음에, 단계(7213)에서, 범위 선택 컨트롤(6701)은 명시적으로 선택된 항목을, 명시적으로 선택된 항목의 가장 가까운 명시적으로 포함된 조상에 대응하는, 바스켓(6705)에서의 배제(6707)에 추가한다.
단계(7209)에서, 명시적으로 선택된 항목이 이전에 명시적으로 포함되었으면, 단계(7215)에서 범위 선택 컨트롤(6701)은 명시적으로 선택된 항목에 대한 포함 상태를 제거하고 명시적으로 선택된 항목의 모든 후손을 그의 이전의 상태로 복귀시킨다. 단계(7217)에서, 범위 선택 컨트롤은 명시적으로 선택된 항목을, 임의의 대응하는 배제(6707)와 함께, 포함(6707)으로부터 제거한다. 당업자라면 항목이 미선택되어 있을 때의 거동이 변할 수 있다는 것을 잘 알 것이다. 예를 들어, 조상이 미선택되어 있을 때, 명시적으로 포함된 또는 배제된 항목이 미선택된 상태로 복귀하지 않을 수 있다.
단계(7206, 7208, 7213, 또는 7217) 중 임의의 것 이후에, 단계(7219)에서, 범위 선택 컨트롤은 임의의 추가의 수정이 요망되는지 여부를 판정한다. 이 판정은, 사용자가 추가의 수정을 하도록 구체적으로 요청하지 않고 그 대신에 다른 수 정을 하기 위해 단지 단계(7201)로 진행하거나, 한편으로 사용자가 범위를 정의하는 것을 완료했고 컴퓨터(20)가 사용자가 그 범위를 정의한 목적을 위해 그 범위를 사용할 수 있음을 컴퓨터(20)에게 알려주기 위해 사용자가 단계(7221)에서 "저장" 또는 "검색" 버튼을 선택한다는 점에서, 암시적일 수 있다. 이 범위는 명시적으로 포함된 항목의 결과 순서 리스트라고 말할 수 있으며, 대응하는 명시적인 배제는 바스켓에 의해 정의된다.
당업자라면 하나 이상의 단계가 선택적일 수 있으며 단계들이 유사한 결과를 생성하기 위해 재정렬될 수 있다는 것을 잘 알 것이다. 게다가, 상기한 설명이 범위 선택 컨트롤(6701)이 어떤 동작을 수행하거나 어떤 결정을 한다는 것을 나타내는 경우, 범위 선택 컨트롤(6701)은, 컴퓨팅 장치(20) 상에 저장되고 프로세서(21)에 의해 실행되는, 소프트웨어 또는 하드웨어 명령어 등의 제어 로직의 제어에 따라 또는 그 제어 하에서 동작하고 있을 수 있다.
정적 리스트의 조작을 위한 리스트 창: 도 51 내지 도 66을 참조하여 상기한 바와 같이, 쉘 브라우저(또한 파일 탐색기, 탐색기, 또는 파일 브라우저라고도 함)는 파일 및 비파일 항목들 간을 내비게이션하는 데 사용될 수 있다. 이제부터, 부가의 예시적인 실시예에 대해 도 73 내지 도 76을 참조하여 설명한다. 도 73은 리스트 창(7303), 주 보기 창(7305) 및 내비게이션 창(7307)을 갖는 탐색기 프레임(7301)을 나타낸 것이다. 탐색기 프레임(7301)은 또한 브레드크럼 바(breadcrumb bar)(7309)(다른 대안으로서 가상 주소 바라고 함), 메뉴 바(7311), 검색 윈도우(7313), 및 정보 또는 미리보기 창(7315) 등의 다른 특징을 포함할 수 있다. 리스트 창(7303)은 상기한 바스켓 컨트롤(201)과 유사하게 동작할 수 있다. 리스트 창은 따라서 사용자가 메인 탐색기 윈도우와 관련하여 컬렉션, 예를 들어 정적 리스트를 조작하는 데 이용가능한 간단한 인-프레임 모듈(in-frame module)이다.
따라서, 예를 들어, 사용자는 리스트 창(7303)에서 할 일 리스트(to-do list)를 생성하고 할 일 리스트를 열어서, 주 보기 창(7305)을 통해 시스템 쉘을 브라우징하는 동안 할 일 리스트에 몇가지 항목을 추가하고, 이어서 리스트 창(7303)을 닫아, 선택적으로 개정된 할 일 리스트를 저장할 수 있다. 다른 예로서, 사용자는 주 보기 창(7305)에서 순차적으로 보는 다수의 폴더에 걸쳐 저장된 어떤 사진을 선택하고, 선택된 사진을 리스트 창(7303)에 위치시키며, 컨텍스트 메뉴 또는 메뉴 바(7311)로부터 인쇄를 선택함으로써 리스트 창(7303) 내의 모든 사진을 선택하여 사진의 컬렉션을 인쇄할 수 있다. 사용자는 원하는 바에 따라 사진의 새로운 컬렉션을 저장하거나 저장하지 않고 리스트 창을 닫을 수 있다.
사용자는 메뉴 바(7311)에서 윈도우 메뉴를 선택하고 이어서 윈도우 메뉴(도시 생략)로부터 리스트 창을 선택함으로써 리스트 창을 열 수 있다. 윈도우 > 리스트 창을 다시 선택하면 리스트 창(7303)의 디스플레이 상태(윈도우 > 리스트 창과 동등함)를 토글시킬 수 있다. 어떤 실시예에서, 리스트 창(7303)을 토글시키기 위해 키보드 단축키, 예를 들어 Ctrl-K가 사용될 수 있다. 사용자가 메뉴 바(7311)로부터 윈도우 > 리스트 창을 선택하거나 키보드를 통해 Ctrl-K를 입력하는 동작은 사용자가 새로운 존속된 정적 리스트를 생성하기를 원하는지 또는 사용 자가 즉각적인 작업을 위한 몇가지 항목을 수집하고 이어서 리스트를 저장하지 않고 리스트 창을 닫기를 원하는지에 관해 모호할 수 있다. 따라서, 본 발명의 일 실시예에 따르면, 사용자가 리스트 창(7303)을 열 때, 리스트 창(7303) 내의 임의의 객체가 적어도 일시적으로 저장된다. 그 정적 리스트를 명시적으로 저장하지 않고 사용자가 리스트 창(7303)을 닫는 경우, 정적 리스트의 내용이 폐기된다. 그렇지만, 사용자는 정적 리스트를 존속시키기 위해, 예를 들어 정적 리스트를 나중에 사용하기 위해 또는 정적 리스트를 다른 사람과 공유하기 위해, 기타 등등을 위해 정적 리스트를 저장할 수 있다. 일 실시예에서, 임시 저장 장소는 LocalAppData\Windows\Temporary List.wpl일 수 있다. 사용자가 연 각각의 탐색기 윈도우는 사용자가 선택적으로 정적 리스트를 확정적으로 저장할 때까지 임시 정적 리스트를 저장하기 위해 그와 연관되어 있는 고유의 임시 저장 장소를 가질 수 있다.
사용자는 바스켓 내의 임의의 다른 리스트가 사용되는 것과 동일한 방식으로 임시 리스트를 사용할 수 있다. 항목들이 추가, 제거, 재정렬되거나, 기타 등등이 행해질 수 있다. 리스트 창(7303)이 열려 있는 경우, 사용자는 주 보기 창(7305)에서 임의의 항목을 클릭하고 컨텍스트 메뉴(도시 생략)으로부터 "리스트 창에 추가"를 선택하거나, 그 항목을 리스트 창(7303)에서의 리스트에서 새로운 마지막 항목으로서 삽입시키는 메뉴 바(7311)를 볼 수 있다. 사용자는 또한 항목을 리스트 창(7303)으로 끌어놓기할 수 있다. 그렇지만, 이것이 임시 리스트이기 때문에(Windows
Figure 112007022760413-PCT00007
미디어 플레이어에서의 "지금 재생중(now playing)" 항목과 유사함), 사용자가 프레임(7301)을 닫거나 리스트 창(7303)을 닫을 때 이 리스트의 내용이 폐기된다. 이 시스템은 선택적으로 리스트 창(7303) 또는 프레임(7301)을 닫기 이전에 리스트 창에 미저장된 내용이 있는지를 사용자에게 알려줄 수 있다.
사용자가 임시 리스트를 저장하고자 하는 경우, 사용자는 제목 텍스트박스(7317)를 선택하고 리스트 창(7303)에서의 내용에 의해 식별되는 리스트에 대한 이름을 입력하고 저장 아이콘(7319)을 선택할 수 있다. 저장 아이콘(7319)을 선택하면 사용자가 정적 리스트를 저장할 장소를 선택할 수 있게 해주기 위해 통상의 파일 대화상자를 호출할 수 있다. 다른 대안으로서, 사용자는, 통상의 파일 대화상자를 호출하기 위해, 리스트 배경에서 컨텍스트-선택을 하고(예를 들어, 우측 버튼을 클릭하고) 컨텍스트 메뉴로부터 "저장하기"를 선택할 수 있다.
사용자는 또한 메뉴 바(7311)로부터 파일 > 새파일 > 리스트를 선택(이는 피스트 창(7303)이 이미 닫혀 있는 경우 이 창을 엶)함으로써 리스트 창(7303)을 열 수 있다. 리스트 창이 이미 열려 있는 경우, 파일 > 새파일 > 리스트를 선택하면 그 결과 시스템은 현재 리스트 창(7303)에 있는 임의의 항목을 폐기하고 새로운 임시 리스트를 생성한다. 새로운 임시 리스트는 사용자가 보기 > 리스트 창을 선택함으로써 생성된 리스트와 같이 거동하며 동일한 지속 모델을 갖는다(즉, 그 리스트는, 사용자가 먼저 저장하지 않는 한, 닫힐 때 폐기된다).
내비게이션 창(7307)은 사용자에 의해 생성된 모든 정적 리스트 또는 사용자에 의해 생성되어 특정의 장소에 저장되어 있는 모든 정적 리스트를 나타낼 수 있는 리스트 노드(7321)를 포함할 수 있다. 사용자는 또한 리스트 노드(7321)를 컨 텍스트-선택을 하고 컨텍스트 메뉴로부터 "새 리스트"를 선택함으로써 새로운 리스트를 생성할 수 있으며, 그 결과 프레임(7301)이 디폴트 제목, 예를 들어 "새 리스트" 또는 새 리스트(n)(이 경우 다수의 디폴트 이름의 새 리스트가 생성됨)을 갖는 비어있는 리스트를 갖는 리스트 창(7303)을 연다. 선택적으로, 내비게이션 창(7307)에서, 새로 생성된 리스트의 리스트 이름은 자동적으로 편집 모드에 있을 수 있고 및/또는 사용자는 리스트 창(7303)에 있는 제목 텍스트박스(7317)에서 리스트 이름을 편집할 수 있다. 주어진 탐색기 프레임(7301)에 대한 디폴트 저장 장소에 새 리스트가 생성된다.
본 발명의 측면들에 따르면, 리스트 제목은 리스트 창(7303)에서의 리스트에 대한 새 이름을 입력하기 위해 항상 편집가능할 수 있으며, 그 결과 시스템이 저장 장치 상의 리스트를 이름 변경한다. 사용자가 이미 존속된 리스트에 대해 저장 버튼(7319)을 선택하는 경우(즉, 리스트가 이미 저장되어 있음), 시스템은 사용자가 "다른 이름으로 저장" 옵션을 선택한 것처럼 동작할 수 있다. 게다가, 사용자가 메뉴 바(7311)로부터 파일 > 새 리스트를 선택하면, 내비게이션 창의 외관의 상태에 아무런 변화가 없을 수 있다. 즉, 리스트 노드(7321)가 현재 확장되어 있는 경우, 이용가능한 공간이 있거나 그의 알파벳 글자 삽입이 볼 수 있게 되기만 하다면, 새 리스트는 리스트 노드(7321) 아래에 계층적으로 나타난다. 그렇지만, 리스트 노드(7321)가 현재 확장되어 있지 않은 경우, 내비게이션 창(7307)에 아무런 시각적 변화가 없다. 리스트 창(7303) 내의 리스트가 비어 있는 경우, 리스트 창(7303)은 리스트를 어떻게 생성하는지를 사용자에게 알려주는 메시지, 예를 들어 "파일을 여기로 드래그하여 파일을 이 리스트에 추가"를 표시할 수 있다.
사용자는 리스트 창(7303)을 닫고 주 보기 창(primary view)(7305)에 리스트 내용을 제공하기 위해 리스트 창 헤더(7320)를 더블 클릭 또는 다른 방식으로 선택할 수 있다. 사용자는 다른 대안으로서 리스트 창(7303)에 표시된 리스트를 루트로 하는 새로운 탐색기 윈도우를 열기 위해 Shift+더블 클릭을 누를 수 있다. 사용자는 주 보기 창(7305)에서 어떤 내비게이션도 하지 않고 리스트 창(7303)을 닫기 위해 리스트 창(7303)(도시 생략)의 상부 우측 코너에 있는 'X'(또는 그 등가물)를 선택할 수 있다. 존속된 리스트가 바스켓에서 편집될 때, 명시적인 저장 모델일 수 있으며, 이 경우 사용자가 리스트 창(7303) 또는 탐색기 프레임(7301)을 닫거나 리스트 창을 내비게이션하여 다른 리스트로 갈 때, 시스템은 사용자가 임의의 변화를 저장하기를 원하는지 물어보기 위해 명시적인 대화 상자를 사용자에게 제공한다.
리스트 창(7303) 내의 항목들은 주 보기 창(7305)에 있는 항목들과 유사한 거동을 나타낼 수 있다. 예를 들어, 리스트 창(7303)에 있는 임의의 주어진 항목을 클릭 또는 선택하면 그 항목이 선택된다. 포커스가 주 보기 창(7305)과 리스트 창(7303) 간을 이동할 때, 주 보기 창(7305) 및 리스트 창(7303) 둘다는 (어느 창이 입력 포커스를 갖지 않는지에 대한 소프트-선택 상태를 사용하여) 그의 선택 상태를 계속하여 반영할 수 있다. 그렇지만, 단지 하나의 창만이 진정으로 포커스를 가지며, 이는 화살키가 무엇을 하는지에 관한 사용자에 대한 시각적 암시로서 그 뷰에 반영되어 있다. 포커스가 리스트 창(7303)에 있는 경우, 동일한 선택 및 키 는 주 보기 창(7305)에서처럼 동작할 수 있다 - 모두 선택하기 위한 Ctrl+A, 이동하기 위한 화살키, 기타 등등 -.
상기한 시스템을 사용하여, 사용자는 리스트 창(7303) 내에서 드래그 드롭을 할 수 있어, 사용자가 정적 리스트 내의 객체들을 추가, 삭제, 재정렬 및 다른 방식으로 조작할 수 있게 해준다. 바스켓 내로 드래그할 때, 시스템은 여러가지 시각적 암시를 사용자에게 제공할 수 있다. 먼저, 탐색기 프레임은 리스트 창(7303)이 활성 드롭 타겟(active drop target)임을 알려주기 위해 리스트 창(7303)의 외부 경계를 하이라이트할 수 있다. 리스트 창은 또한, 리스트에 2개 이상의 항목이 있는 경우, 삽입 바(도시 생략)를 제공할 수 있다. 사용자가 주 보기 창(7305)을 내비게이션할 때, 리스트 창(7303)은 루트가 주어진 리스트에 있는 채로 있으며, 이는, 사용자에게 엄청난 지루한 윈도우 간의 드래그-드롭(cross-window drag-drop)을 하도록 요구하지 않고, 주 보기 창(7305)에서 파일 시스템을 내비게이션함으로써 컬렉션의 내용을 보강하는 효율적이고 간단한 메카니즘을 사용자에게 제공한다.
도 74를 추가적으로 참조하면, 사용자가 리스트(7401)를 생성하고 저장한 후에, 사용자는 컨텍스트 메뉴(7405)를 디스플레이하기 위해 존속된 리스트(7401)를 컨텍스트-선택하고 리스트 창(7303)에 리스트를 열기 위해 컨텍스트 옵션(7403)을 선택함으로써 리스트 창(7303)에서 존속된 리스트(7401)를 재열기할 수 있다. 사용자는 리스트 창(7303)에서 현재 편집되고 있는 리스트의 전체 내용을 선택하기 위해 리스트 창 헤더(7320)에서 리스트 아이콘(623)을 선택할 수 있다. 사용자는 컨텍스트 메뉴(7405)를 디스플레이하기 위해 리스트 아이콘(623)을 컨텍스트-선택(예를 들어, 우측-클릭)할 수 있다. 선택적으로, 사용자는 리스트의 저장 장소를 이동시키거나 새로운 장소에 리스트의 복사본을 만들기 위해 아이콘(623)을 우측 클릭하여 새 장소로 드래그할 수 있다.
본 발명의 한 측면에 따르면, 정적 리스트는 그와 연관된 작업, 예를 들어 "사진 인쇄", "CD 굽기", "비디오 클립으로부터 영화 만들기", 기타 등등을 가질 수 있다. 이러한 실시예에서, 작업의 선택은 작업-관련 컨트롤을 갖는 비어 있는 리스트를 열 수 있다. 다른 대안으로서, 사용자가 작업이 이미 연관되어 있는 정적 리스트를 열 때, 리스트 창(7303)은 자동적으로 특정의 작업에 의존하는 작업 관련 컨트롤을 디스플레이할 수 있다. 리스트 창(7303)과의 사용자 상호작용은 동일한 채로 있지만, 작업-기반 모드에 있는 동안 사용자가 전념하는 전체적인 최적화된 작업이 있다.
따라서, 예를 들어, 도 75는 사용자가 리스트 창을 열기 이전의 탐색기 프레임(7501)의 일부분을 나타낸 것이다. 탐색기 프레임(7501)은 작업 옵션(7505a, 7505b, 7505c)을 갖는 메뉴 바(7503)를 포함한다. 작업(7505c)은 특히 CD를 굽는 것을 말한다. 작업(7505a, 7505b)은 각각 예를 들어 사진을 인쇄하는 것 및 비디오 클립으로부터 영화를 만드는 것을 말할 수 있다. 작업(7505c)의 선택 시에, 탐색기 프레임은 통합된 작업 관련 컨트롤(7601)(도 76에 추가적으로 나타냄)을 갖는 리스트 창(7303)을 연다. 이 예에서, 작업 관련 컨트롤은 정적 리스트의 내용을 CD 또는 다른 광학 매체 또는 저장 장치에 기록하는 옵션을 사용자에게 제공한다. 이러한 시나리오에서, 본 시스템은, 컬렉션이 정적 리스트인 경우 단지 객체에 대한 단축키 또는 포인터가 아니라, 식별된 객체의 실제 복사본이 CD 또는 다른 매체에 기록되어야 함을 알 수 있는 로직을 갖도록 구성될 수 있다. 리스트 창(7303) 내의 리스트의 식별되는 객체는, 적용가능한 경우 주석과 함께, 정적 리스트에 의해 규정된 그의 순서로 기록될 수 있다.
작업-기반 리스트는 또한 임시적일 수 있고 또, 상기한 바와 같이 사용자가 그 컬렉션을 먼저 저장하지 않는 한, 창(7303) 또는 프레임(7501)이 닫힐 때 폐기될 수 있다. 사용자가 메인 작업(굽기, 인쇄, 기타 등등)을 완료한 후에, 작업 컨트롤(7601)은, 그렇지 않으면 사용자가 리스트 창(7303) 또는 프레임(7501)을 닫을 때 사용자가 작업-기반 리스트를 잃게 된다는 것을 재강조하기 위해, 자동적으로 "저장" 버튼으로 전환할 수 있다.
리스트 창(7303)은, 상기한 기능을 여전히 제공하면서, 상세, 포맷, 기타 등등을 디스플레이하기 위해 끝없는 변화를 갖는 무한한 수의 방식으로 디스플레이될 수 있다. 당업자라면 예시적인 뷰에 대한 이하의 설명이 단지 예에 불과하며 청구항에 정의된 본 발명의 범위를 제한하지 않는다는 것을 잘 알 것이다. 예술적 디자인, 할당된 공간, 기타 등등에 따라 여러 변동이 가능하다. 한 예시적인 실시예에서, 리스트 창의 뷰 상태는 2 행의 대응하는 메타데이터를 갖는 32 x 32개의 포인트 아이콘(point icon)을 포함하는 타일을 디스플레이할 수 있다. 아이콘 크기는 선택적으로 로크되어 있거나(따라서 Ctrl+마우스가 디스에이블될 수 있음) 시스템 및/또는 사용자에 의해 가변적일 수 있다. 리스트 창(7303)은 선택적으로 타일 이 나란히 나타나지 않도록 수평 크기 조절을 제한할 수 있으며, 이는 또한 사용자가 그의 수직 순서를 봄으로써 컬렉션에서의 항목의 순서를 인식적으로 유지하는 데 도움을 준다. 또한, 리스트 창은 양호하게는 정적 리스트에서의 그의 순서에 의해 항목을 정렬 및 디스플레이할 뿐이다.
여러가지 부가적인 선택적 특징이 본 발명의 하나 이상의 예시적인 실시예에 포함될 수 있다. 예를 들어, 사용자가 탐색기 프레임을 닫고 리스트 창이 지명된 리스트(예를 들어, 임시적인 디폴트 이름이 아니라 명시적인 이름을 갖는 리스트) 상에 열려 있을 때, 사용자가 그 다음에 유사한 탐색기 프레임을 재열기할 때, 리스트 창은 사용자가 이전에 보고 있었던 리스트에 대해 열린 채로 있을 수 있다. 프레임이 닫힐 때 임시적인 폐기될 리스트가 리스트 창에 있는 경우, 그 리스트는 폐기되지만 탐색기 프레임이 재열기될 때 리스트 창은 열린 (또한 비어 있는) 채로 있을 수 있다.
리스트 창은 양호하게는 최우측 창으로서 열리며, 디폴트로 200 픽셀 폭으로 열릴 수 있다. 커서는, 리스트 창(7303)과 주 보기 창(7305) 사이의 경계 상에 허버링할 때, 크기조정 그래버(resize grabber)가 될 수 있다. 리스트 창은 최소 폭, 예를 들어 33 픽셀로 크기조정될 수 있고, 리스트 창 크기는 양호하게는 탐색기 프레임마다 존속된다. 리스트 창은 또한 최대 크기로, 예를 들어 주 보기 창(7305)이 리스트 창이 커질 수 있게 해줄 정도로 크게 크기조정될 수 있다(예를 들어, 리스트 창은 주 보기 창(7305)의 최소 크기보다 크게 될 수 없다). 당업자라면 디폴트 크기가 200 픽셀과 다를 수 있고 또 리스트 창이 최우측 창과 다른 위 치에 제공될 수 있다는 것을 잘 알 것이다. 예를 들어, 언어가 (대부분의 서방 국가에서처럼 좌에서 우가 아니라) 우에서 좌로 읽히는 시스템에서, 리스트 창은 최우측 창이 아니라 최좌측 창으로 나타날 수 있다.
저장된 파일의 미리보기 표현: 본 발명의 한 측면은, 시스템 상에서 생성될 파일의 미리보기 표현을 사용자에게 제공함으로써 파일을 생성할 때, 개선된 사용자 경험을 제공하는 시스템 및 방법에 관한 것이다. 도 77은 파일을 저장할 때 GUI에서 발견될 수 있는 예시적인 뷰(7701)를 나타낸 것이다. 뷰(7701)에서, 뷰(7701)를 발생하는 데 사용되는 기준에 따라 존재하는 파일을 나타내는 여러가지 표시(7702)가 나타내어져 있다. 이러한 기준은 사용자 선호에 따라 변화될 수 있다. 예를 들어, 시스템 상에 주어진 폴더의 내용을 디스플레이하기 위해 뷰(7701)가 발생될 수 있다. 다른 대안으로서, 뷰(7701)는 주어진 파일 유형의 모든 파일을 디스플레이할 수 있다(예를 들어, MICROSOFT EXCEL™ 워크시트가 도 77 예에 도시되어 있음). 뷰(7701)는 또한 기준의 조합으로부터 얻어질 수 있다. 예를 들어, 뷰(7701)는 어떤 사용자에 또는 어떤 프로젝트에 속하는 또는 어떤 폴더에 저장되어 있는 모든 워크시트의 뷰일 수 있다. 가능한 기준은 거의 무한정이며, 이미 상기한 것들 이외에, 파일 크기, 생성 일자, 편집 일자, 프로젝트, 소유자, 메모리 장소, 사용자, 파일 이름, 기타 등등을 포함한다.
뷰(7701)는 미리보기 표현(7703) 또는 시스템 상에 저장될 파일을 나타내는 고스트를 나타낼 수 있으며, 여기서 이 고스트는 저장 동작이 수행되는 경우 GUI에서 새 파일이 나타나는 곳에 사용자를 표시하고 저장된 경우 새 파일이 발견되는 장소 또는 뷰를 식별해준다. 도 77 예에서, 파일은 아직 이름이 주어지지 않았으며 따라서 "제목없음"의 라벨을 띄고 있다. 고스트(7703)는 기술적으로 아직 시스템 상의 저장된 파일이 아닌 파일을 나타낸다는 것을 알려주기 위해 뚜렷한 외관을 가질 수 있다. 외관상의 차이는 투명도 또는 불투명도 설정, 컬러, 폰트, 하이라이트, 또는 다른 외관을 제공하는 임의의 다른 방식일 수 있다. 사용자가 서로 다른 뷰들(예를 들어, 파일을 저장할 서로 다른 폴더를 선택함)을 내비게이션할 때 사용자가 고스트(7703)를 놓치지 않도록 돕기 위해, 고스트(7703)는 뷰에서의 미리 정해진 장소에 항상 나타나도록 구성될 수 있다. 예를 들어, 도 77에 나타낸 바와 같이, 고스트(7703)는 도시된 첫번째 표시로서 나타나도록 구성될 수 있다. 외관의 차이는 파일이 선택될 때 일어나는 변화에 대응할 수 있다. 예를 들어, 고스트(7703)는 디폴트로 선택될 수 있고, 그의 표시는 선택된 객체를 나타내기 위해 시스템에서 사용되는 외관 중 어느 것이라고 가질 수 있다(예를 들어, 상기한 동일한 외관일 수 있음).
고스트(7703)는 뷰(7701)에서 임의의 다른 표시로서 취급될 수 있다. 사용자는, 임의의 다른 표시에 대해 하는 것처럼, 고스트(7703)를 선택, 하이라이트, 수정, 드래그/드롭, 기타 등등을 할 수 있다. 도 78은 도 77 뷰(7701)의 일례를 나타낸 것으로서, 시스템 상의 기존의 파일을 나타내는 표시(7801)가 사용자에 의해 선택되었다. 즉, 표시(7801)도 역시 뚜렷한 외관을 부여받을 수 있으며, 또 고스트(7703)와 다른 외관을 부여받을 수 있다. 그렇지만, 고스트는 이미 존재하는 파일에 대한 표시(7801)와 연관되어 있지 않은 부가의 기능을 포함할 수 있다. 예 를 들어, 고스트(7703)는 아직 저장되지 않은 파일에 적용가능한 기능 및 옵션의 고유의 컨텍스트 메뉴와 연관되어 있을 수 있다.
고스트는 큰 표시가 사용되는 GUI 및 뷰에 한정되지 않는다. 이와 반대로, 이들은 도 79에 나타낸 리스트 등의 다른 유형의 뷰에도 나타날 수 있다. 도 79에서, 고스트(7901)는 저장될 파일의 미리보기 표현을 사용자에게 제공한다(이 예에서, 파일은 "미수금"이라고 되어 있다).
고스트는 시스템 상의 복수의 애플리케이션에 의해 공유될 수 있는, 도 80에 도시된 파일 저장 대화상자(8001) 등의, 시스템 파일 패널 또는 통상의 파일 대화상자에 대한 GUI에 포함될 수 있다. 대화상자/패널(8001)에서, 고스트(8002)는 새 파일이 저장된 경우 새 파일이 어떻게 보이는지의 미리보기 표현을 제공하는 것처럼 보일 수 있다. 이 예에서, 3개의 뷰(8003, 8004, 8005)가 도시되어 있으며, 여기서 하나의 뷰(8003)는 MICROSOFT EXCEL
Figure 112007022760413-PCT00008
워크시트 파일을 위한 표시를 포함하고, 하나의 뷰(8004)는 MICROSOFT POWERPOINT
Figure 112007022760413-PCT00009
프리젠테이션 파일을 위한 표시를 포함하며, 하나의 뷰(8005)는 MICROSOFT WORD 문서를 위한 표시를 포함한다. 고스트(8002)는 제1 뷰(8003)에 나타나는데 그 이유는 파일이 현재 MICROSOFT EXCEL
Figure 112007022760413-PCT00011
워크시트로서 저장되도록 설정되어 있기 때문이다. 이 설정은, 저장될 파일에 대한 일련의 메타데이터(예를 들어, 저작자, 파일 유형, 기타 등등)를 디스플레이할 수 있는, 디스플레이의 메타데이터 부분(8006)에 나타내어져 있다.
사용자는 저장될 파일의 메타데이터를 변경하기 위해 고스트(8002)와 상호작 용할 수 있다. 사용자는 새 파일의 프로퍼티를, 고스트(8002)가 드롭되는 새 뷰의 프로퍼티와 일치하도록 변경하기 위해 고스트(8002)를 다른 뷰로 드래그/드롭할 수 있다. 예를 들어, 고스트(8002)를 클릭하여 워크시트 뷰(8003)로부터 프리젠테이션 뷰(8004)로 드래그함으로써 파일 유형이 변경되는 경우, 시스템은, 새 파일이 "워크시트" 유형 대신에 "프리젠테이션" 유형을 갖는다는 것을 반영하기 위해, 자동적으로 메타데이터(8006)를 갱신할 수 있다. 이와 유사하게, 그 표시를 이동시킴으로써 메타데이터에서의 다른 변경이 행해질 수 있다. 예를 들어, 하나의 뷰가 제1 우선순위를 갖는 항목들에 대응하고, 제2 뷰가 제2 우선순위를 갖는 항목들에 대응하는 경우, 그 표시를 제1 뷰에서 제2 뷰로 이동시키면 제2 뷰와 일치하도록 문서의 우선순위 레벨을 변경할 수 있다.
메타데이터에 행해지는 변경은 또한 고스트(8002)에 자동적으로 반영될 수 있다. 예를 들어, 사용자가 메타데이터(8006)에 다른 파일 이름 또는 유형을 입력하는 경우, 고스트(8002)는 새로운 메타데이터를 반영하기 위해 자동적으로 그 자신을 변경 및/또는 위치 조정하여, 제목을 새 이름으로 변경하고 새 파일 유형에 기초하여 그 자신을 정확한 뷰로(예를 들어, 사용자가 유형을 프리젠테이션으로 변경하는 경우 뷰(8004)로) 위치 조정할 수 있다. 다른 예로서, 뷰가 제1 우선순위를 나타내고 메타데이터에서 이 우선순위가 변경되는 경우, 그 표시가 새 우선순위를 갖는 문서를 보여주는 다른 뷰로 이동될 수 있다. 어떤 경우에, 고스트(8002)가 화면 상에 현재 디스플레이되지 않은 뷰 또는 장소로 위치 조정되는 경우, 이것은 고스트가 사용자의 현재 화면으로부터 완전히 사라지게 할 수 있다.
파일 저장 대화상자는 또한 저장 프로세스를 수행 또는 중단시키는 저장 버튼(8007) 및 취소 버튼(8008)을 포함할 수 있다.
도 81a 및 도 81b는 파일이 컴퓨팅 시스템 상에 생성될 때 일어날 수 있는 예시적인 프로세스를 나타낸 것이다. 단계(8101)에서, 새 파일의 저장을 시작하라는 요청이 수신되고, 상기한 바와 같이, 파일이 현재의 메타데이터를 사용하여 저장된 경우 현재 저장된 파일이 어떻게 보이는지를 반영하기 위해 고스트 미리보기가 발생될 수 있다. 애플리케이션이 저장을 요청함으로써 새 파일이 자동적으로 메타데이터로 채워질 수 있다. 디스플레이는 또한 편집가능 메타데이터의 디스플레이를 포함할 수 있으며, 또한 파일의 미리보기 썸네일 이미지를 포함할 수 있다.
단계(8102)에서, 시스템은 새 파일이 새 뷰의 프로퍼티에 부합하도록 하기 위해 사용자가 현재의 뷰를 변경했는지 여부를 판정하기 위해 검사를 할 수 있다. 뷰를 변경하는 것은 단지 디스플레이 공간을 내비게이션하는 것 또는 주어진 디스플레이의 기준의 변경하는 것을 말할 수 있고, 또 다른 기준(예를 들어, *.wav 유형의 파일을 보려고 요청함) 및/또는 GUI 내비게이션(예를 들어, 고스트를 새 뷰로 드래그/드롭하거나 폴더에 들어가기 위해 폴더 표시를 단지 클릭함)을 입력함으로서 행해질 수 있다. 예를 들어, 사용자가, 상기한 바와 같이, 다른 유형, 다른 장소, 다른 프로젝트, 기타 등등의 파일 등의 다른 뷰의 파일들을 보려고 요청하는 경우, 프로세스는 단계(8103)로 진행하여, 새 뷰가 파일에 대한 유효한 저장 장소(물리적 장소 또는 논리적 장소)를 나타내는지 여부를 판정할 수 있다. 예를 들어, 사용자는 어떤 장소에 또는 어떤 뷰에 파일을 저장할 권한을 가지지 않을 수 있거나, 저장될 파일이 새 뷰 내의 다른 파일들과 부합되지 않는다(예를 들어, 사용자가 뷰를 스프레드쉬트 뷰로 변경했고, 새 파일은 부합하지 않는 이미지 파일이다). 다른 예로서, 통상의 파일 대화상자로부터의 고스트는 대화상자 밖의 장소로 이동되는 것이 금지될 수 있다. 뷰를 변경하는 것이 항상 새 파일의 프로퍼티를 변경하는 것은 아니다. 어떤 경우에, 사용자는, 새 파일의 프로퍼티를 변경된 뷰의 프로퍼티와 일치하도록 갱신하려고 하지 않고, 단지 다른 파일을 보기 위해 뷰를 변경할 수 있다. 예를 들어, 사용자는, 저장되는 파일의 우선순위를 반드시 변경할 필요없이, 단지 특정의 우선순위에 대해 어떤 다른 문서가 존재하는지를 알아보고자 할 수 있다. 뷰가 변경될 때 프로퍼티의 이러한 갱신이 요망되지 않는 경우, 프로세스는 단계(8102)에서 단계(8106)로 이동할 수 있다.
새 장소가 유효하지 않은 경우, 시스템은 단계(8104)로 이동하여 유효하지 않은 위치가 선택되었음을 사용자에게 경보하기 위한 조치를 취할 수 있다. 예를 들어, 미리보기 고스트가 단지 뷰로부터 사라질 수 있다. 게다가, 사용자에게 메시지가 제공될 수 있다. 이러한 경우, 시스템은, 사용자가 파일에 대한 유효한 장소를 나타내는 다른 뷰를 선택할 때까지, 단지 이 상태에 머물러 있을 수 있다. 다른 대안으로서, 사용자는, 예를 들어 취소 버튼(8008)을 누름으로써, 이 프로세스를 중단시킬 수 있다.
새 뷰가 유효한 장소인 경우, 시스템은 단계(8105)로 이동하여 변경을 실행할 수 있다. 이것은 미리보기 고스트가 새 뷰에 나타나도록 그를 재배치하는 단계를 포함할 수 있다. 파일의 메타데이터는 또한 (있는 경우) 새로 선택된 뷰에 요 구되는 메타데이터를 반영하기 위해 자동적으로 갱신될 수 있다. 예를 들어, 사용자가 주어진 프로젝트에서 새 뷰의 모든 파일을 선택하는 경우, 새 프로젝트를 반영하기 위해 "프로젝트" 메타데이터 프로퍼티가 수정될 수 있다.
단계(8106)에서, 시스템은 사용자가 새 파일이 기존의 파일을 대체하도록 요청했는지를 판정하기 위해 검사를 할 수 있다. 이것은 예를 들어 고스트 미리보기 표시를 기존의 파일의 표시 상으로 드래그/드롭함으로써 행해질 수 있다. 이러한 경우, 단계(8107)에서, 예를 들어 원래의 일련의 메타데이터 프로퍼티를 메모리에 저장함으로써, 이들을 보존하기 위한 조치가 취해질 수 있다. 새 파일이 그가 대체하게 될 파일과 동일한 프로퍼티를 갖게 된다는 사실을 반영하기 위해, 디스플레이된 메타데이터 프로퍼티는 대체될 파일의 프로퍼티로 대체될 수 있다. 사용자가 대체에 관한 그의 마음을 변경하는 경우, 원래의 프로퍼티를 저장하는 것이 도움이 될 수 있다. 물론, 기존의 파일 상으로의 드래그/드롭이 항상 필요한 것은 아니며, 이러한 기능이 요망되지 않는 그 경우들에, 단계(8106)은 건너뛸 수 있다.
단계(8108)에서, 시스템은 사용자가 (예를 들어, 저장 버튼(8007)을 누름으로써) 저장 프로세스를 실행하는지를 알아보기 위해 기다릴 수 있다. 사용자가 저장 프로세스를 실행하는 경우, 단계(8109)에서 새 파일은 이전의 파일을 대체한다. 단계(8107)에서 보유된 이전의 프로퍼티는 폐기될 수 있다.
사용자가, 고스트를 다시 선택하는 등에 의해, 대체 프로세스를 실행하지 않기로 결정하는 경우, 프로세스는 단계(8110)로 가서, 고스트가 그의 이전의 상태로 디스플레이될 수 있다. 단계(8107)에서 저장된 원래의 메타데이터 프로퍼티는 고 스트 미리보기의 메타데이터 필드를 다시 채우는 데 사용될 수 있다. 다른 대안으로서, 새 파일은 이전에 덮어쓰기되었던 파일의 프로퍼티를 보유할 수 있다. 이 대안은 사용자가, 각각의 것을 따로따로 입력하지 않고, 일련의 메타데이터 프로퍼티 전체를 복제하는 것을 용이하게 해줄 수 있다. 예를 들어, 대체되었어야 하는(그렇지만 더 이상 대체되지 않은) 항목의 프로퍼티는 "스탬프", 즉 장래에 새로운 저장된 파일에 적용될 수 있는 일련의 새로운 디폴트 프로퍼티로서 보유될 수 있다.
단계(8111)에서, 사용자가 예를 들어 메타데이터 디스플레이 영역(8006)을 사용하여 메타데이터 프로퍼티 값을 편집하였는지 여부를 판정하기 위해 검사가 행해질 수 있다. 사용자가 메타데이터를 편집한 경우, 시스템은 단계(8112)에서 자동적으로 고스트 미리보기를 새로운 프로퍼티와 동일한 곳인 새로운 장소로 이동시킬 수 있으며, 필요한 경우, 새로운 메타데이터 프로퍼티를 반영하기 위해 고스트 미리보기의 외관을 갱신할 수 있다(예를 들어, 파일 유형이 변경된 경우 다른 표시를 선택하거나 그 표시 하의 파일 이름을 수정함).
단계(8113)에서, 시스템은 사용자가, 저장 버튼(8007)을 누르는 등에 의해, 저장을 실행하도록 요청했는지를 판정하기 위해 검사를 할 수 있다. 사용자가 저장 동작을 요청한 경우, 단계(8114)에서 새 파일이 저장되고, 고스트 미리보기가 사라진다(이제 새 파일이 정상 표시로서 나타남).
사용자가 저장을 아직 완료하지 않은 경우, 단계(8115)에서 사용자가, 예를 들어 취소 버튼(8008)을 누름으로써, 저장 동작을 중단했는지를 판정하기 위해 검 사가 행해질 수 있다. 사용자가 저장 동작을 취소한 경우, 단계(8116)에서 고스트가 제거될 수 있다. 고스트의 프로퍼티 데이터도 역시 시스템으로부터 삭제될 수 있다.
탐색기 뷰의 전문화: 본 발명의 한 측면에 따르면, 탐색기(쉘 브라우저) 윈도우(도 51 내지 도 57과 관련하여 전술함)은 용도 또는 내비게이션되는 데이터/파일과 관련하여 전문화됨으로써, 시스템 상에서 파일을 브라우징할 때 개선된 사용자 경험을 제공할 수 있다. 도 82는 탐색기 윈도우에서의 디스플레이 영역 등의 서로 다른 패널이 어떻게 개념적으로 관련될 수 있는지를 나타낸 관계도를 나타낸 것이다. 어떤 경우에, 시스템 전체에 걸쳐 이용가능한 파일을 브라우징하기 시작하기 위해, 사용자에게 제공되는 초기 디스플레이 영역으로서 역할할 수 있는 시작 패널(8201)이 있을 수 있다. 시작 패널(8201)은 음악 브라우저(8202), 문서 브라우저(8203), 사진 브라우저(8204), 컴퓨터 브라우저(8205), 또는 시스템 및/또는 사용자에 의해 요망되는 임의의 다른 브라우저(8206) 등의 파일을 브라우징하기 위한 다른 패널을 볼 수 있는 기능을 제공할 수 있다. 이들 브라우저 각각은 특정의 기준을 만족시키는 파일을 브라우징하기 위한 상위 레벨 패널일 수 있다. 예를 들어, 음악 브라우저(8202)는 오디오 음악 파일 유형 등의 어떤 음악 기준을 만족시키는 시스템 상의 파일의 리스트를 디스플레이할 수 있다. 브라우저는 또한, 하나 이상의 장르 기준을 만족시키는 파일을 디스플레이하는 장르(8202a) 브라우저 패널, 또는 하나 이상의 노래 재생 목록에 관한 파일을 디스플레이하는 재생 목록(8202b) 브라우저 패널 등의, 다른 기준을 사용하여 생성된 서브브라우저를 제공 할 수 있다. 이들 패널은 차례로 추가의 기준을 만족시키는 파일의 디스플레이를 가능하게 해줄 수 있다. 예를 들어, 장르(8202a) 패널은 장르 정보를 갖는 음악인 음악 파일의 서브셋을 디스플레이할 수 있고, 록앤롤의 장르를 갖는 음악 파일의 다른 서브셋을 디스플레이하는 록(8202c) 서브패널을 제공할 수 있다. 파일 데이터를 디스플레이하는 임의의 원하는 관계 및 방법을 수용하기 위해 임의의 수의 패널이 생성될 수 있다. 문서 브라우저(8203)는 어떤 유형의 문서(예를 들어, 스프레드쉬트) 또는 주어진 프로젝트(예를 들어, XYZ 프로젝트)에 관한 문서를 위한 별도의 브라우저를 제공할 수 있다.
각각의 이용가능한 브라우저는 컴퓨터 시스템의 메모리에 저장된 템플릿에 의해 정의될 수 있다. 템플릿은 단지 뷰의 내용, 구성, 디스플레이할 기능, 기타 등등을 식별해주는 파일일 수 있다. 템플릿은 또한 브라우저 뷰에 디스플레이될 실제 파일을 지정할 수 있다.
도 83은 브라우저 디스플레이(8301)의 일례를 나타낸 것이다. 디스플레이(8301)는 사용자에게 제공되는 하나 이상의 명령(8302)을 포함할 수 있다. 이 명령은 메뉴, 링크, 버튼, 아이콘, 또는 다른 표시 등의 임의의 형태의 명령 입력일 수 있으며, 브라우저 뷰를 설정하는 템플릿에 기초하여 커스텀 선택될 수 있다. 예를 들어, 브라우저(8301)가 음악 파일의 디스플레이인 경우, 명령(8302)은, "CD로 복사" "재생", 및/또는 "온라인 음악 숍" 등의, 음악 파일에 대해 의미가 있는 특정의 명령을 포함할 수 있다. 물론, 명령(8302)은 또한, 파일 조작(예를 들어, 파일의 열기 및 저장)을 위한 "파일" 명령 및 현재의 패널을 편집하기 위한 명령 (예를 들어, 복제 패널의 생성 또는 다수의 기존의 패널의 정렬) 등의, 여러가지 브라우저와 연관되어 있고 또 그와 공유되는 명령을 포함할 수 있으며, 명령의 메뉴를 포함할 수 있다. 명령의 존재 여부 이외에, 명령 디스플레이(8302)는 또한, 컬러, 사용자 인터페이스 요소 상세(컬러, 크기, 위치, 기타 등등), 선택가능 요소의 시퀀싱, 기타 등등의, 디스플레이의 외관을 커스터마이즈할 수 있다.
디스플레이(8301)는 이용가능한 브라우저 패널을 보여주는 리스트 패널(8303)을 포함할 수 있다. 이 리스트는, 디스플레이 영역을 절약하기 위해 내포된 메뉴/서브메뉴 포맷으로 제공될 수 있는, 시스템 상에서 이용가능한 모든 뷰의 리스트를 포함할 수 있다. 뷰의 이러한 영역을 페이지 공간(pagespace)이라고 할 수 있다. 리스트(8303)는 다른 대안으로서 현재의 패널과 연관되어 있는 브라우저 패널의 서브셋을 열거할 수 있으며, 그 결과 더 작은 페이지 공간이 얻어진다. 예를 들어, 현재의 디스플레이(8301)가 음악 패널인 경우, 리스트(8303)는 재생 목록 및 장르 보기 옵션 또는 그 자신의 패널을 갖는 특정의 재생 목록 및/또는 장르를 디스플레이할 수 있다.
디스플레이(8301)는 현재의 브라우저 패널에 대해 설정된 기준을 만족시키는 파일의 리스트를 포함할 수 있는 파일 패널(8304)을 포함할 수 있다. 파일 패널(8304)은 데이터 파일을 나타내는 표시(아이콘 및/또는 텍스트 등) 및 파일의 하나 이상의 프로퍼티(예를 들어, 이름, 저작자, 파일 크기, 파일 유형, 프로젝트 협력기관, 생성/수정일자, 기타 등등)를 포함할 수 있다. 이들 프로퍼티는 예를 들어 열을 이루게 정렬될 수 있고, 선택된 디스플레이(8301)에 대해 사용되는 기준에 주어진 경우 무엇이 적절한지에 따라 재정렬 및/또는 수정될 수 있다. 예를 들어, 음악 브라우저는 제1 프로퍼티로서 "음악 제목"을, 그 다음에 "음악가" 및 "앨범"을 열거하도록 선택할 수 있는 반면, 프로젝트 XYZ에 대한 브라우저는 "편집 일자"를 먼저 열거하고 이어서 "파일 크기" 및 "파일 유형"이 온다. 어떤 브라우저 유형은 원하지 않는 프로퍼티를 생략하고자 할 수 있다(예를 들어, "앨범" 프로퍼티는 스프레드쉬트 문서에 그다지 유용하지 않을 수 있다). 각각의 브라우저 디스플레이(8301)는 커스터마이즈된 구성의 파일 및 관련 프로퍼티를 가질 수 있다. 열 폭, 행 크기, 표시 외관(예를 들어, 크기, 컬러, 기타 등등), 그룹화, 스태킹, 및 임의의 다른 디스플레이 프로퍼티가 이 커스터마이제이션에 포함될 수 있다. 예를 들어, 어떤 브라우저는 그의 파일을 썸네일로서 디스플레이할 수 있는 반면(예를 들어, 사진 브라우저가 이렇게 할 수 있음), 다른 브라우저는 단지 파일 및 그의 프로퍼티의 텍스트 리스트에 파일을 디스플레이할 수 있다.
디스플레이(8301)는 또한 파일 패널(8304)로부터의 하나 이상의 선택된 파일의 내용의 미리보기를 제공하는 미리보기 패널(8305)을 포함할 수 있다. 또한, 리스트뷰 데이터(8304)로부터의 하나 이상의 선택된 파일에 대한 프로퍼티를 디스플레이하는 프로퍼티 패널(8306)이 있을 수 있다. 프로퍼티 패널(8306)은 리스트뷰(8304)에 나타낸 것보다 더 많은 상세 및 더 많은 양의 프로퍼티를 제공할 수 있다. 디스플레이(8301)는 내비게이션 명령, 패널 크기조정 명령, 기타 등등의 다른 유형의 디스플레이 및 사용자 인터페이스 요소도 포함할 수 있다.
디스플레이(8301)의 여러 부분들 각각은 별개의 소프트웨어 모듈로서 구현될 수 있다. 예를 들어, 명령 디스플레이(8302) 안에 들어가야 하는 사용자 인터페이스 요소를 정의하는 일을 맡고 있는 명령 모듈, 파일 패널(8304)에서의 디스플레이 요소를 처리하는 리스트뷰 모듈, 미리보기 패널(8305)의 내용을 발생하는 미리보기 모듈, 기타 등등이 있을 수 있다. 이들 모듈은 다른 애플리케이션과의 상호 운용성을 용이하게 해주기 위해 애플리케이션 프로그램 인터페이스(API) 요소를 노출시킬 수 있으며, 여러가지 모듈은 주어진 뷰에 대한 기준, 그의 위치, 그의 크기, 기타 등등의 파라미터를 제공받을 수 있다. 별개의 모듈을 가짐으로써 서로 다른 레이아웃 및 구성을 갖는 새로운 패널을 정의하는 프로세스를 간단화시킬 수 있다.
각각의 브라우저 디스플레이(8301)는 또한 상기한 디스플레이 영역에 서로 다른 내용을 갖는 것을 넘는 차이점을 가질 수 있다. 예를 들어, 각각의 브라우저는, 어떤 영역이 특정의 브라우저의 기준 및/또는 내용에 기초하여 크기조정/추가/제거될 수 있도록, 그 자신의 커스터마이즈된 구성의 디스플레이 영역을 가질 수 있다. 예를 들어, 음악 브라우저는 미리보기 패널(8305)을 없애고 명령 영역(8302)에 음악 명령(예를 들어, 재생, 일시정지, 큐, 재생목록에 추가, CD로 굽기, 기타 등등)을 제공하고자 할 수 있다. 나머지 디스플레이 영역들은 미리보기 패널이 이전에 차지하고 있던 공간을 이용하기 위해 재배열 및/또는 크기조정될 수 있다. 브라우저의 특저으이 레이아웃이 예를 들어 브라우저 뷰를 정의하는 템플릿에 설정될 수 있다. 예를 들어, 도 84는 서로 다른 방식으로 정렬된 요소를 갖는 다른 브라우저(8401)의 예를 나타낸 것이다. 그 예에서, 미리보기 패널이 포기한 공간을 차지하기 위해 이용가능한 브라우저 뷰의 리스트(8402)가 확대되어 있다. 다른 차이점으로서, 각각의 브라우저 뷰는, 그 뷰를 시스템 상의 다른 뷰들과 추가적으로 구별하는 데 도움을 주기 위해, 워터마크 패턴, 컬러 테마, 폰트, 기타 등등의 그 자신의 고유한 디스플레이 테마를 가질 수 있다. 컨텍스트 메뉴(예를 들어, 이용가능한 명령, 텍스트, 기타 등등), 사용자 인터페이스 거동, 좌/우 마우스 클릭 시의 디폴트 명령, 및 다른 디스플레이/상호작용 속성도 역시 각각의 브라우저마다 서로 다를 수 있다.
도 85는 여러가지 브라우저가 디스플레이될 수 있는 예시적인 프로세스를 나타낸 것이다. 단계(8501)에서, 이 시스템은 디스플레이될 뷰를 정의하는 하나 이상의 기준을 수신할 수 있다. 이들 기준은 다양한 소스로부터 올 수 있다. 예를 들어, 사용자는 디스플레이를 위한 미리 정의된 템플릿을 선택할 수 있으며, 시스템은 단지 그 선택(또는 템플릿과 연관된 기준)을 수신할 수 있다. 다른 대안으로서, 시스템은, 사용자에 의해 공급되는 키워드를 사용하는 키워드 검색에 기초한 새로운 뷰 등의, 새로운 뷰에 대한 기준을 수신할 수 있다.
단계(8502)에서, 이 기준은 이 기준을 만족 또는 충족시키는 시스템 상의 여러가지 파일을 식별하는 데 사용될 수 있다. 이들 파일은 시스템의 메모리의 검색을 통해 식별될 수 있거나, 템플릿이 이미 열거될 파일들을 식별해주는 경우 단지 템플릿 정보로부터 식별될 수 있다.
파일들이 식별된 경우, 시스템은 단계(8503)에서 특정의 브라우저 뷰 또는 패널을 조립할 수 있다. 패널을 조립하는 것은 패널에서 필요로 하는 여러가지 요소/모듈을 결정하기 위해 미리 정의된 템플릿을 조회하는 것을 포함할 수 있다. 어떤 경우에, 디스플레이를 위해 식별된 파일들이 템플릿에 대해 설정된 것과 다른 일련의 기준을 만족시킬 때 또는 식별된 파일들이 더 좁은 기준을 갖는 다른 템플릿에 디스플레이하기에 적당한 경우, 이 패널이 추가적으로 커스터마이즈 및/또는 수정될 수 있다. 예를 들어, 사용자가 XYZ 프로젝트 등의 주어진 프로젝트와 연관된 모든 파일에 대해 브라우저를 요청하는 경우, 시스템이 프로젝트 브라우저 패널을 제공할 것으로 예상될 수 있다. 이러한 패널은, 프로젝트가 다수의 유형의 파일을 포함할 수 있는 가능성이 있는 경우, 정의될 수 있으며, 파일 유형에 기초하여 파일을 분리시키기 위해 개별적인 디스플레이 영역을 가질 수 있다. 그렇지만, 특정의 프로젝트가 한 유형의 파일만을 갖는 경우, 시스템은 현재의 디스플레이에 대한 브라우저 패널을 동적으로 커스터마이즈할 수 있다. 추가적으로 커스터마이즈된 패널은 파일 유형에 적용가능한 확장된 명령 옵션을 제공하거나 다른 유형의 파일을 디스플레이하기 위해 통상적으로 사용되어지는 디스플레이 영역 및/또는 요소를 제거할 수 있다. 브라우저 뷰는 패널을 설정하는 데 사용된 기준을 만족시키는 파일의 식별자에 기초하여 동적으로 수정될 수 있다. 다른 유형의 커스텀 조립이 수행될 수 있다. 제1 디스플레이 영역의 화면 공간의 일부가 다른 디스플레이 영역으로 이전될 수 있도록, 브라우저는 디스플레이될 파일의 수에 따라 패널을 조정할 수 있다(예를 들어, 보다 작은 리스트뷰가 나타나고, 보다 큰 프로퍼티 영역이 나타난다). 브라우저는 디스플레이를 위한 파일을 식별하는 데 사용되는 검색 기준에 기초하여 패널을 조정할 수 있다(예를 들어, 이 기준은 디스플레이의 미리 정해진 부분에 포함될 수 있거나, 그 결과가 그 기준 및 파일이 얼마나 잘 기준에 일치했는지에 기초하여 정렬될 수 있다).
단계(8504)에서, 브라우저 뷰는 컴퓨터 시스템과 연관된 디스플레이 장치 상에 생성될 수 있다. 이어서, 단계(8505)에서, 시스템은 사용자가 브라우저 뷰에 상호작용을 수행했는지 또는 입력을 공급했는지 여부를 판정하기 위해 검사를 할 수 있다. 사용자 상호작용은 텍스트를 편집하는 것, 다른 뷰를 선택함으로써 페이지 공간을 내비게이션하는 것, 및/또는 브라우저 상의 디스플레이된 요소 중 임의의 것과 상호작용하는 것을 포함할 수 있다. 사용자가 입력을 제공한 경우, 단계(8506)에서, 시스템은 그에 응답하여 브라우저를 수정할 수 있다. 브라우저에 대한 수정은 브라우저 뷰에서의 디스플레이된 요소 중 하나 이상을 제거, 추가 또는 수정하는 것을 포함할 수 있으며, 그 결과 아주 다른 디스플레이가 얻어질 수 있다. 예를 들어, 음악 브라우저 뷰를 보고 있는 사용자는 음악 파일 중 하나를 선택하고 선택된 음악 파일과 연관된 프로젝트에 대한 프로젝트 브라우저를 보려고 요청할 수 있다 - 이 프로젝트 브라우저는 완전히 다른 디스플레이 형식을 가질 수 있다. 상기한 특징들 중 임의의 것을 추가 및/또는 제거하기 위해 브라우저 디스플레이가 동적으로 수정될 수 있으며, 그 결과 상위 레벨의 상황별로 적절한 정보를 사용자에게 연속적으로 제공하는 브라우저 인터페이스가 얻어진다.
특정의 브라우저를 변경 또는 수정할 때, 본 시스템은 그 전환을 매끄럽게 하기 위해 시각적 효과를 제공할 수 있다. 예를 들어, 디스플레이된 요소의 재배치를 보여주기 위해 애니메이션이 사용될 수 있고, 요소의 추가/삭제를 보여주기 위해 페이딩이 사용될 수 있으며, 한 요소가 다른 요소로 변화되는 것을 보여주기 위해 모핑 효과가 사용될 수 있다. 여러가지 뷰가 가능하지만, 사용자(또는 시스템 또는 그의 애플리케이션)는 또한 어떤 특징(예를 들어, 디스플레이 요소, 이용가능한 명령, 메뉴, 기타 등등) 또는 포맷이, 사용자 혼동을 최소화시키는 데 도움을 주기 위해, 다수의 브라우저 뷰에서 그대로 있도록 지정할 수 있다.
단계(8506) 이후에 행해지는 단계(8507)에서, 또는 단계(8505)에서 사용자 입력이 수신되지 않는 경우, 시스템은 브라우저가 닫혀지는지 또는 브라우저에서 빠져나왔는지를 판정하기 위해 검사를 하고, 그러한 경우 이 브라우저에 대한 브라우저 프로세스가 종료될 수 있다. 그렇지 않은 경우, 프로세스는 추가의 사용자 입력을 기다리기 위해 단계(8505)로 돌아갈 수 있다.
도 86은 상기한 여러가지 브라우저 뷰를 생성하기 위해 시스템에 존재할 수 있는 예시적인 논리적 관계도를 나타낸 것이다. 브라우저 뷰는 일반적으로 기본 운영 체제에 의해 관리될 수 있거나(예를 들어, 도 86의 좌측에 있는 관리된 그룹(8601)), 개개의 설치후 애플리케이션이 뷰를 제어할 수 있도록 운영 체제에 의해 관리되지 않을 수 있다(예를 들어, 도 86의 우측에 있는 미관리 그룹(8602)). 이 시스템은, 다수의 뷰에 공통인 측면을 정의할 수 있는, 기본적인 전체 뷰 프레임(8603)을 정의할 수 있다. 예를 들어, 시스템의 기본적인 뷰 프레임(8603)은 미리보기 창, 좌측 창 및 작업 창을 포함할 수 있다. 기본적인 구성은 미관리된 브라우저 애플리케이션(8604)으로 (예를 들어, 데이터 구조체로서) 전달될 수 있으며, 이는 차례로 브라우저 애플리케이션(8604)에 대한 원하는 디폴트 브라우저 뷰를 생성하기 위해 디폴트 뷰 루틴(8605)을 호출할 수 있다. 이 애플리케이션은 브 라우저 뷰를 기동시키는 데 사용되는 서브루틴(8606)을 포함할 수 있으며, 그 루틴(8606)은 그 특정의 브라우저 애플리케이션(8604)에 대해 생성될 뷰를 정의하는 페이지 설명(8607)을 포함하는 관리된 데이터 구조체에 액세스할 수 있다.
페이지 설명(8607)은 브라우저 페이지 구조체(8608)에 대한 참조를 포함할 수 있다. 브라우저 페이지 구조체(8608)는 궁극적으로 뷰를 정의하는 다양한 프로퍼티를 포함할 수 있다. 예를 들어, 이 뷰에 포함될 기본적인 속성을 정의하는 뷰 프로퍼티(8609)가 있을 수 있다(이들 속성은 기본적인 뷰 프레임(8603)에서의 동일한 미리보기 창, 좌측 창 및 작업 창일 수 있다.). 페이지(8608)는 또한 특정의 뷰를 채우는 데이터가 획득될 수 있는 장소를 식별해줄 수 있는 데이터 소스 프로퍼티(8610)를 가질 수 있다. 소스(8610)는 예를 들어 데이터의 정적 리스트를 포함할 수 있다. 페이지(8608)는 또한 뷰에 의해 지원될 여러가지 명령을 식별해줄 수 있는 명령 프로퍼티(8611)를 포함할 수 있다. 각각의 명령은 별도의 애플리케이션 및/또는 루틴에 의해 구현될 수 있고, 또 미리보기 창 작업, 컨텍스트 메뉴 옵션, 기타 등등을 처리하기 위한 명령을 포함할 수 있다. 물론, 상기한 것은 여러가지 브라우저 뷰가 어떻게 관리 및 구현될 수 있는지의 단지 한 예에 불과하다.
이상의 설명은 "브라우저"를 말하고 있지만, 본 명세서에 기술된 특징들은 시스템 쉘 브라우저에 한정될 필요가 없다. 데이터 파일의 커스터마이즈된 뷰를 제공하고자 하는 임의의 애플리케이션은 본 명세서에 기술된 특징들을 이용할 수 있다.
본 발명의 대안적인 실시예 및 구현은 도면을 비롯하여 명세서를 검토해볼 때 당업자에게는 자명하게 될 것이다. 예를 들어, 상기한 프로세스에서의 여러가지 단계들은 본 명세서에 기술된 특징들의 선택된 서브셋을 구현하기 위해 원하는 바에 따라 재정렬, 수정 및/또는 삭제될 수 있다. 게다가, 이상에서, "본 발명"의 하나 이상의 "측면" 또는 "실시예"에서 발견되는 어떤 특징들에 대한 언급은 단지 단독으로 또는 다른 측면들과 조합하여 사용되는 것이 유익할 수 있는 여러가지 개념을 나타내기 위한 것이며, 단지 하나의 발명 개념이 본 명세서에 개시되어 있다거나 기술된 특징들 전부가 이하의 청구항 중 임의의 것에서 필요하게 된다는 것을 암시하는 것으로 보아서는 안된다. 오히려, 이하의 청구항들 각각은 그 자신의 독자적인 발명이며 기재된 것을 넘어서 어떤 제한을 갖는 것으로 해석되어서는 안된다.
페이지 공간 컨트롤: 엄청난 분량의 정보가 컴퓨터 시스템 및 네트워크 상에 저장되어 있고 및/또는 이들을 통해 이용가능하며, 이 정보는 다양한 서로 다른 목적을 위해 컴퓨터 사용자가 이용가능하게 될 수 있다. 컴퓨터가 이러한 풍부한 정보를 사용자에게 제공할 수 있지만, 이 정보는 사용자가 원하는 정보를 시스템 또는 네트워크로부터 신뢰성있게 찾아내고 검색할 수 있는 경우에만 사용자에게 가치있고 유용하다. 저장된 정보는, 그 정보가 상당한 검색 시간, 노력 및/또는 좌절이 없이 용이하게 찾아내고 및/또는 검색될 수 없는 경우, 사용자에게 거의 또는 전혀 가치가 없다. 따라서, 본 발명의 여러가지 측면은 컴퓨팅 시스템 및/또는 네트워크에 있는 또한 이를 통해 이용가능한 전자 정보를 저장, 탐색, 내비게이션 및/또는 검색하는 시스템, 방법 및 컴퓨터 판독가능 매체에 관한 것이다. 이 섹션은 읽는 사람에 도움을 주기 위해 서브섹션으로 나누어져 있다. 서브섹션은 용어, 본 발명의 여러가지 측면에 대한 일반 설명, 본 발명에 따른 예시적인 시스템, 방법 및 컴퓨터 판독가능 매체, 및 결론을 포함한다.
페이지 공간 컨트롤: 용어: 이하의 용어는 이 섹션에서 또한 본 명세서 전체에 걸쳐 사용될 수 있으며, 달리 언급하거나 문맥으로부터 명백하지 않는 한, 이들 용어는 이하에 제공된 의미를 갖는다.
"계층적 프로퍼티(Hierarchical Property)" - 고유의 문자열을 분류하는 순서 컬렉션을 포함할 수 있는 값을 갖는 일종의 프로퍼티. 각각의 문자열은 예를 들어 그것이 지정되는 경로에 의해 고유하게 될 수 있으며, 이 경로는 또한 각각의 프로퍼티 값이 속하는 카테고리를 정의하는 데 사용될 수 있다.
"부모 프로퍼티 값" - 하나 이상의 가능한 자식 프로퍼티 값을 갖는 프로퍼티 값.
"자식 프로퍼티 값" - 다른 프로퍼티 값의 자식인 프로퍼티 값.
"자동 리스트" - 사전 선택된 일련의 필터 조건에 일치하는 고정된 범위에 걸쳐 정보에 대한 질의로부터 얻어지는 파일 또는 다른 데이터의 리스트. "자동 리스트"의 예는 파일 생성 일자, 파일 생성 시간, 마지막 편집 일자, 마지막 편집 시간, 파일 평가 데이터, 파일 저작자 리스트, 마지막 사용 = 어제, 마지막 사용 = 지난주, 기타 등등을 포함하지만, 이에 한정되는 것은 아니다. 이하에 기술하는 바와 같이, "내비게이션 패널"은 하나 이상의 "자동 리스트"를 포함할 수 있다.
"리스트" - 자동 리스트, 파일, 파일 컬렉션, 폴더, 기타 등등에 대한 단축 키 또는 "링크". 이하에 기술하는 바와 같이, "내비게이션 패널"은 하나 이상의 "리스트"를 포함할 수 있다.
"페이지" - 특정의 폴더, 가상 폴더, 리스트, 자동 리스트, 기타 등등. "페이지"는 사용자가, 예를 들어 메뉴로부터, 본 발명의 측면들에 따른 내비게이션 도구로부터, 기타 등등으로부터 항목을 선택함으로써, 내비게이션할 수 있는 계층적 테이블에서의 노드를 구성할 수 있다. 저장 시스템에 있는 및/또는 컴퓨터 시스템 또는 네트워크를 통해 이용가능한 여러가지 레벨에서의 개개의 "페이지" 또는 "페이지"의 리스트는, 이하에서 보다 상세히 기술하는 바와 같이, 내비게이션 패널 및/또는 디스플레이 패널에 나타날 수 있다.
"컴퓨터 판독가능 매체" - 컴퓨터 상에서 사용자에 의해 액세스될 수 있는 임의의 이용가능한 매체. 제한이 아닌 예로서, "컴퓨터 판독가능 매체"는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. "컴퓨터 저장 매체"는, 컴퓨터 판독가능 명령어, 데이터 구조체, 프로그램 모듈 또는 기타 데이터 등의, 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. "컴퓨터 저장 매체"는 RAM, ROM, EEPROM, 플래쉬 메모리, 또는 다른 메모리 기술, CD-ROM, DVD, 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 또 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 한정되는 것은 아니다. "통신 매체"는 일반적으로 컴퓨터-판독가능 명령어, 데이터 구조체, 프로그램 모듈 또는 기타 데이터를, 반송파 또는 다 른 전송 메카니즘 등의 변조된 데이터 신호로 구현하며, 임의의 정보 전달 매체를 포함한다. 용어 "변조된 데이터 신호"는 그 신호에 정보를 인코딩하는 방식으로 그의 특성 중 하나 이상이 설정 또는 변경되는 신호를 의미한다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 연결 등의 유선 매체, 및 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함한다. 상기한 것 중 임의의 것의 조합도 역시 "컴퓨터 판독가능 매체"의 범위 내에 포함되어야 한다.
페이지 공간 컨트롤: 본 발명의 여러가지 측면에 대한 일반적인 설명
페이지 공간 컨트롤: 본 발명의 여러가지 측면에 대한 일반적인 설명:
계층적 관계로 프로퍼티를 저장
본 발명의 측면들은 데이터 구조체가 그 위에 저장되어 있는 컴퓨터 판독가능 매체에 관한 것이다. 본 발명의 적어도 어떤 예에 따른 데이터 구조체는 (a) 전자 파일의 내용 중 적어도 일부를 포함하는 제1 데이터 세트, 및 (b) 전자 파일과 연관된 프로퍼티 데이터를 포함하는 제2 데이터 세트를 포함할 수 있다. 제2 데이터 세트는 전자 파일과 연관된 제1 프로퍼티를 나타내는 제1 단순 경로 문자열(flat path string)을 포함할 수 있으며, 여기서 제1 단순 경로 문자열은 프로퍼티 데이터의 계층적 구조를 나타낸다. 선택적으로, 원하는 경우, 제2 데이터 세트는, 예를 들어 계층적 구조체에서, 전자 파일과 연관된 다수의 프로퍼티를 나타내는 데이터의 다수의 단순 경로 문자열을 포함할 수 있다. 제2 데이터 세트는 임의의 원하는 방식으로, 예를 들어 제1 데이터 세트에 포함되고 및/또는 그와 연관되어 있는 메타데이터로서 제공될 수 있다. 물론, 원하는 경우, 부가적인 프로퍼티 데이터를 포함하는 제3 데이터 세트가 전자 파일에 포함되고 및/또는 그와 연관될 수 있으며, 여기서 제3 데이터 세트(또는 부가의 데이터 세트)는 전자 파일과 연관된 다른 프로퍼티를 나타내는 다른 단순 경로 문자열을 포함하고, 이 부가적인 단순 경로 문자열은 제3(또는 부가적인) 데이터 세트에서의 프로퍼티 데이터의 계층적 구조를 나타낸다.
본 발명의 부가의 예시적인 측면은 계층적 프로퍼티 정보를 포함하는 전자 데이터를 저장하는 시스템 및 방법에 관한 것이다. 이러한 시스템 및 방법은 (a) (하나 이상의 컴퓨터 프로세싱 시스템을 사용하여) 컴퓨터 판독가능 매체 상에 저장하기 위한 전자 데이터를 포함하는 전자 파일을 생성하는 단계, (b) (예를 들어, 마우스, 펜, 디지타이저, 키보드, 네트워크 연결, 디스크 드라이브, 기타 등등을 통해) 전자 파일의 일부로서 포함되거나 전자 파일과 연관될 제1 프로퍼티 값을 나타내는 입력 데이터를 수신하는 단계 - 제1 프로퍼티 값은 제1 프로퍼티 값을 나타내는 제1 단순 경로 문자열을 포함하는 제1 데이터 세트를 포함하고, 제1 단순 경로 문자열은 제1 프로퍼티 값의 계층적 구조를 나타냄 -, 및 (c) 전자 파일을 그 안에 포함되거나 그와 연관된 제1 단순 경로 문자열과 함께 (예를 들어, 전자 메모리 장치에) 저장하는 단계 - 제1 단순 경로 문자열은, 예를 들어 링크 정보를 통해, 파일의 일부로서, 메타데이터로서, 기타 등등으로, 임의의 원하는 방식으로 저장되거나 전자 파일과 연관됨 - 를 포함할 수 있다. 선택적으로, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 또한 전자 파일의 일부로서 포함되거나 전자 파일과 연관될 제2 프로퍼티 값을 나타내는 입력 데이터를 수신할 수 있으며, 제2 프로퍼티 값은 제2 프로퍼티 값을 나타내는 제2 단순 경로 문자열을 포함하는 제2 데이터 세트를 나타내고, 제2 단순 경로 문자열은 제2 프로퍼티 값의 계층적 구조를 나타내며, 전자 파일의 저장은 전자 파일을 그 안에 포함되거나 그와 연관된 제2 단순 경로 문자열과 함께 저장하는 것을 포함한다. 임의의 수의 프로퍼티 값이 본 발명에 따라 이러한 방식으로 전자 파일에 저장 및/또는 전자 파일과 연관될 수 있다.
본 발명의 또다른 부가적인 예시적인 측면은 전자 데이터와 연관된 계층적 프로퍼티 정보를 포함하는 전자 데이터를 처리하는 시스템 및 방법에 관한 것이다. 본 발명의 적어도 어떤 예에 따른 시스템 및 방법은 (a) 컴퓨터 시스템 또는 네트워크를 통해 (예를 들어, 컴퓨터 시스템의 메모리 또는 네트워크의 메모리로) 복수의 정의된 프로퍼티 값의 계층적 구조를 나타내는 데이터를 수신하는 단계 - 각각의 정의된 프로퍼티 값은 계층적 구조에서의 다른 정의된 프로퍼티 값 전부와 비교하여 그와 연관된 고유의 단순 경로 데이터 문자열을 가짐 -, (b) (예를 들어, 마우스, 펜, 디지타이저, 키보드, 네트워크 연결, 디스크 드라이브, 기타 등등을 통해) 계층적 구조의 사용자 요망 장소에 포함될 새로운 프로퍼티 값을 나타내는 사용자 입력을 수신하는 단계, 및 (c) 계층적 구조의 사용자 요망 장소에 기초하여, 새로운 프로퍼티 값이 계층적 구조에 존재하는 다른 단순 경로 데이터 문자열 전부와 다른 단순 경로 데이터 문자열을 갖는지를 판정하는 단계를 포함할 수 있다. 새로운 프로퍼티 값에 대한 단순 경로 데이터 문자열은 예를 들어 적어도 제1 부모 프로퍼티 부분 및 제1 자식 프로퍼티 부분을 포함할 수 있다(선택적으로, 제1 부모 프로퍼티 부분 또는 제1 자식 프로퍼티 부분 중 적어도 하나는 계층적 구조에서 적어도 하나의 다른 정의된 프로퍼티 값의 일부분과 동일할 수 있음). 이 방법은 또한 새로운 프로퍼티 값에 대한 단순 경로 데이터 문자열이 계층적 구조에 존재하는 프로퍼티들에 대한 다른 단순 경로 데이터 문자열 전부와 다르다고 판정되는 경우 사용자 요망 장소에서 새로운 프로퍼티 값을 계층적 구조에 추가하는 단계를 포함할 수 있다.
본 발명의 예들에 따른 여러가지 시스템 및 방법의 사용에서, 사용자는 검색 질의를 나타내는 입력을 시스템에 입력할 수 있고, 이 검색 질의는 계층적 프로퍼티 구조에서의 프로퍼티 값을 포함하는 검색 프로퍼티의 선택을 포함한다. 검색 질의가 입력되면, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 (선택적으로 검색될 파일의 범위를 제한하는 검색 범위로) 컴퓨터 시스템 또는 네트워크에 저장되어 있거나 이를 통해 이용가능한 어느 전자 파일이 검색 질의를 만족시키는지를 판정할 수 있고, 검색 질의를 만족시키는 것으로 판정된 전자 파일은 그 안에 저장되어 있거나 그와 연관된 제1 검색 프로퍼티를 포함한다. 다른 예로서, 검색 질의는 계층적 구조에서의 다수의 프로퍼티의 사용자 선택을 포함할 수 있으며, 컴퓨터 시스템 또는 네트워크 상에 저장되거나 이를 통해 이용가능한 어느 전자 파일이 검색 질의를 만족시키는지의 판정은 선택된 프로퍼티 중 적어도 하나를 포함하는 전자 파일의 식별자를 포함할 수 있다.
본 발명의 예들에 따른 컴퓨터 판독가능 매체, 시스템 및 방법에 포함된 프로퍼티 데이터는 본 발명을 벗어나지 않고 임의의 적당한 또는 원하는 방식으로, 예를 들어 프로퍼티 데이터 세트 내의 프로퍼티 데이터의 계층적 구조를 나타내도록 하는 방식으로 저장될 수 있다. 예로서, 프로퍼티 데이터 구조체는 이하의 포맷, 즉 부모 프로퍼티 값 - 구분자 - 자식 프로퍼티 값, 부모 프로퍼티 값 - 구분자 - 자식 프로퍼티 값 - 구분자 - 손자 프로퍼티 값, 자식 프로퍼티 값 - 구분자 - 부모 프로퍼티 값, 및/또는 자식 프로퍼티 값 - 구분자 - 부모 프로퍼티 값 - 구분자 - 조부모 프로퍼티 값 중 하나를 가질 수 있다. 물론, 단순 경로 데이터 문자열에서의 프로퍼티 계층적 구조 및 데이터 구조에서의 임의의 수의 레벨이 본 발명을 벗어나지 않고 제공될 수 있다.
본 발명의 부가적인 측면은, 상기한 여러가지 방법을 수행하고 및/또는 여러가지 시스템을 동작시키기 위한 컴퓨터 판독가능 매체를 비롯하여, 계층적 프로퍼티 데이터를 제공하고 및/또는 계층적 프로퍼티 데이터를 사용하기 위한, 예를 들어 전자 파일 및 관련 정보를 저장, 탐색, 내비게이션, 및/또는 검색하기 위한 그 위에 저장된 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 관한 것이다.
페이지 공간 컨트롤: 본 발명의 여러가지 측면의 일반적인 설명:
다중 프로퍼티 선택: 본 발명의 다른 측면은, 전자 파일 프로퍼티 데이터의 다중 선택을 비롯하여, 다수의 사용자 선택을 포함하는 입력 데이터를 처리하는 방법 및 시스템에 관한 것이다. 이러한 시스템 및 방법은 예를 들어 (a) (예를 들어, 마우스, 펜, 디지타이저, 키보드, 네트워크 연결, 디스크 드라이브, 기타 등등의 사용자 입력 장치를 통해) 복수의 검색 요소를 포함하는 계층적 구조로부터 제1 검색 파라미터를 선택하는 단계, (b) (예를 들어, 마우스, 펜, 디지타이저, 키보드, 네트워크 연결, 디스크 드라이브, 기타 등등의 사용자 입력 장치를 통해) 계층적 구조로부터 제2 검색 파라미터를 선택하는 단계, 및 (c) (예를 들어, 컴퓨터 프로세싱 시스템을 사용하여) 제1 검색 파라미터가 계층적 구조에서 제2 검색 파라미터와 동일한 요소 세트 내에 위치하는지를 판정하는 단계를 포함할 수 있다. 제1 검색 파라미터가 제2 검색 파라미터와 동일한 요소 세트 내에 위치하는 것으로 판정되는지 여부에 따라 여러가지 디스플레이가 컴퓨터 프로세싱 시스템에 의해 (예를 들어, 컴퓨터 디스플레이 장치 상에) 생성될 수 있다. 본 발명의 적어도 어떤 예들에 따르면, 제1 검색 파라미터가 계층적 구조에서 제2 검색 파라미터와 동일한 요소 세트 내에 위치하는 것으로 판정되는 경우, 제1 검색 파라미터 또는 제2 검색 파라미터를 만족시키는 전자 파일들의 합집합을 나타내는 검색 결과가 디스플레이될 수 있다. 이에 부가하여 또는 다른 대안으로서, 제1 검색 파라미터가 제2 검색 파라미터의 계층적 구조에서 요소 세트 밖에 위치하는 것으로 판정되는 경우, 제1 검색 파라미터 및 제2 검색 파라미터 둘다를 만족시키는 전자 파일의 교집합을 나타내는 검색 결과가 디스플레이될 수 있다.
본 발명의 적어도 어떤 예들에 따르면, 여러가지 검색 요소의 계층적 구조(들)은 계층적 방식으로 배열된 복수의 프로퍼티를 포함할 수 있다. 검색 파라미터 중 적어도 하나는 이들 정의된 프로퍼티 값들 중 하나를 포함할 수 있다. 선택적으로, 적어도 어떤 예들에서, 검색 요소들 중 적어도 하나는 계층적 구조에서 폴더 요소, 리스트 요소, 자동 리스트 요소, 또는 임의의 다른 원하는 요소를 구성하 게 된다. 본 발명의 적어도 어떤 예들의 또다른 부가적인 특징은, 선택적으로, 검색 요소의 계층적 구조 및/또는 검색 범위에 대한 계층적 구조의 일부분을 선택하는 사용자 입력에 적어도 부분적으로 기초하여, 검색 활동에 대한 범위를 결정 또는 정의하는 것을 포함할 수 있다.
본 발명의 부가적인 측면은, 상기한 것과 같은 시스템 및 방법을 비롯하여, 여러가지 검색 방법을 수행하고 및/또는 여러가지 검색 시스템을 동작시키기 위한 그 위에 저장된 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 관한 것이다.
페이지 공간 컨트롤: 본 발명의 여러가지 측면의 일반적인 설명:
디스플레이 패널에서의 그룹화 및 스태킹: 본 발명의 또다른 부가의 예시적인 측면은 컴퓨터 시스템 또는 네트워크 상에 저장되거나 그를 통해 이용가능한 전자 파일을 검색하는 사용자 인터페이스를 제공하는 컴퓨터 디스플레이에 관한 것이다. 본 발명의 적어도 어떤 예들에 따른 사용자 인터페이스는 (a) 검색 요소(페이지 공간)의 계층적 구조를 디스플레이하는 내비게이션 패널(페이지 공간 컨트롤이라고도 함) - 계층적 구조에서의 적어도 어떤 개별적인 검색 요소는 계층적 구조에 하나 이상의 자식 검색 요소를 디스플레이하기 위해, 선택적으로 사용자 입력에 응답하여, 확장될 수 있고, 내비게이션 패널은 하나 이상의 검색 요소에 관한 사용자 입력을 수신함 -, 및 (b) 적어도 부분적으로 전자 파일의 검색으로부터 획득된 검색 결과에 관한 정보를 디스플레이하는 디스플레이 패널 - 이 검색 결과는 적어도 부분적으로 내비게이션 패널을 통해 수신된 사용자 입력에 기초하여 결정됨 - 을 포함할 수 있다. 확장되어 있는 경우, 내비게이션 패널의 계층적 구조에서의 개개의 검색 요소는, 검색 결과가 디스플레이 패널에서 디스플레이되는 방식(예를 들어, 스태킹된 방식, 그룹화된 방식, 그룹화 및 스태킹 결합 방식, 기타 등등)에 상관없이, 계층적 구조에서 자식 요소를 디스플레이하기 위해 확장된 채로 있을 수 있다. 계층적 구조에서의 여러가지 검색 요소는 예를 들어 프로퍼티 값, 리스트 요소, 자동 리스트 요소, 폴더 요소, 기타 등등을 포함할 수 있고, 계층적 구조는 적어도 부분적으로 개개의 사용자 입력에 의해 정의될 수 있다.
본 발명에 따른 사용자 인터페이스의 적어도 어떤 예들에 따르면, 내비게이션 패널의 계층적 구조에서 자식 검색 요소를 선택하거나 다른 방식으로 검색 요소를 변경하는 사용자 입력은 사용자 인터페이스의 디스플레이 패널에 디스플레이되는 검색 결과에서의 대응하는 변경을 생성 및/또는 추진하게 된다.
본 발명의 다른 예시적인 측면은 컴퓨터 시스템 또는 네트워크 상에 저장되거나 그를 통해 이용가능한 전자 데이터를 내비게이션하는 시스템 및 방법에 관한 것이다. 이러한 시스템 및 방법은 (a) (예를 들어 컴퓨터 프로세싱 시스템을 사용하여) 내비게이션 요소의 계층적 구조를 디스플레이하는 내비게이션 패널을 제공하는 단계 - 계층적 구조에서의 적어도 어떤 개별적인 내비게이션 요소는 계층적 구조에 자식 내비게이션 요소를 디스플레이하기 위해, 선택적으로 사용자 입력에 응답하여, 확장될 수 있음 -, (b) 내비게이션 패널을 통해, 내비게이션 요소들 중 하나 이상을 선택하는 사용자 입력을 (예를 들어, 마우스, 펜, 디지타이저, 키보드, 네트워크 연결, 디스크 드라이브, 기타 등등의 사용자 입력 장치를 통해) 수신하는 단계, 및 (c) 적어도 부분적으로 전자 데이터의 검색으로부터 획득된 검색 결과에 관한 정보를, 예를 들어 디스플레이 장치 상에, 디스플레이하는 단계 - 검색 결과는 (예를 들어, 컴퓨터 프로세싱 시스템을 사용하여) 적어도 부분적으로 내비게이션 패널을 통해 수신된 사용자 입력에 기초하여 결정되고, 이 정보는 내비게이션의 디스플레이와 동시에 디스플레이 장치 상에 디스플레이됨 - 를 포함할 수 있다. 게다가, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 또한 (예를 들어, 상기한 입력 시스템을 통해) 계층적 구조로부터의 하나 이상의 새로운 내비게이션 요소를 선택하는 새로운 사용자 입력을, 내비게이션 패널을 통해, 수신하는 단계, 및 (예를 들어, 컴퓨터 프로세싱 시스템을 사용하여) 선택된 새로운 내비게이션 요소 또는 요소들에 적어도 부분적으로 기초하여 디스플레이된 정보를 변경하는 단계 - 변경된 정보는 내비게이션 패널과 동시에 디스플레이 장치 상에 디스플레이됨 - 를 포함할 수 있다. 새로운 사용자 입력은, 적어도 어떤 예들에서, 최초로 선택된 내비게이션 요소로부터의 계층적 구조에서의 자식 내비게이션 요소를 구성할 수 있으며, 그에 따라 디스플레이된 정보를 필터링하여 축소시킬 수 있다. 다시 말하면, 계층적 구조에서의 여러가지 검색 요소는 예를 들어 프로퍼티 값, 리스트 요소, 자동 리스트 요소, 폴더 요소, 기타 등등을 포함할 수 있고, 계층적 구조는 적어도 부분적으로 개개의 사용자 입력에 의해 정의될 수 있다.
본 발명의 적어도 어떤 예들에 따른 또다른 부가의 시스템 및 방법은 컴퓨터 시스템 또는 네트워크 상에 저장되어 있거나 이를 통해 이용가능한 전자 데이터에 관한 정보를 디스플레이하는 시스템 및 방법을 포함할 수 있다. 이러한 시스템 및 방법은 예를 들어 (a) 예를 들어, 디스플레이 장치(컴퓨터 프로세싱 시스템을 사용하여 생성됨) 상에, 내비게이션 요소의 계층적 구조를 디스플레이하는 내비게이션 패널을 제공하는 단계 - 계층적 구조에서의 개개의 내비게이션 요소 중 적어도 어떤 것은 폴더 요소를 포함함 -, (b) (예를 들어, 상기한 바와 같은 사용자 입력 장치를 사용하여) 내비게이션 패널을 통해, 적어도 하나의 폴더 요소를 선택하는 사용자 입력을 수신하는 단계, 및 (c) 적어도 부분적으로 전자 데이터의 검색으로부터 획득된 검색 결과에 관한 정보를 디스플레이 장치 상에 디스플레이하는 단계 - 검색 결과는 (예를 들어, 컴퓨터 프로세싱 시스템을 사용하여) 내비게이션 패널을 통해 수신된 사용자 입력에 적어도 부분적으로 기초하여 결정되고, 이 정보는 내비게이션 패널의 디스플레이와 동시에 디스플레이되며, 이 정보는 선택된 폴더 요소 아래에 제공되는 임의의 서브폴더가 스택으로서 디스플레이되도록 디스플레이됨 - 를 포함할 수 있다. 본 발명의 예들에 따른 적어도 어떤 시스템 및 방법의 부가적인 특징은, 내비게이션 패널을 통해 새로운 사용자 입력을 (예를 들어, 사용자 입력 장치를 통해) 수신하는 단계, 계층적 구조로부터 하나 이상의 새로운 내비게이션 요소를 선택하는 단계, 및 (디스플레이를 생성하기 위해 컴퓨터 프로세싱 시스템을 사용하여) 선택된 새로운 내비게이션 요소 또는 요소들에 적어도 부분적으로 기초하여, 디스플레이된 정보를 변경하는 단계를 포함할 수 있다. 새로운 사용자 입력은 계층적 구조에서 프로퍼티 값을 선택하는 데 사용될 수 있으며, 디스플레이된 정보는 그와 연관된 선택된 프로퍼티 값을 갖는 전자 데이터에 대응할 수 있다.
본 발명의 또다른 부가의 측면은 사용자 인터페이스를 제공하는 것, 여러가 지 방법을 수행하는 것, 및/또는 상기한 것과 같은 여러가지 시스템을 동작시키는 것을 비롯하여, 사용자 인터페이스를 제공하고 여러가지 검색 및/또는 디스플레이 방법을 수행하며 및/또는 계층적 검색 및 내비게이션 요소의 사용을 포함하는 여러가지 검색 및/또는 디스플레이 시스템을 동작시키는, 그 위에 저장된 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 관한 것이다.
페이지 공간 컨트롤: 본 발명의 측면들에 따른 예시적인 시스템, 방법 및 컴퓨터 판독가능 매체: 최근의 컴퓨터 운영 체제 및 그 상에서 유용한 애플리케이션 프로그램에서, 많은 파일 내비게이션, 검색, 열거, 및/또는 검색 동작은 질의 동작을 통해 행해지는데, 그 이유는 시스템이 여러가지 질의 파라미터를 만족시키는 항목들(저장된 전자 파일 또는 기타 데이터 등)을 찾아내려고 시도하기 때문이다. 본 발명의 측면들은, 적어도 어떤 예에서, 항목 배치 및 파일 저장을 위해서도 사용될 수 있는 내비게이션 도구를 제공하며, 이 도구는 사용자의 이들 파일 내비게이션, 검색, 열거, 및/또는 검색 노력을 돕는다.
본 발명의 예시적인 측면에 따르면, 사용자는, 예를 들어 내비게이션 컨트롤 메뉴에서 임의의 페이지로 내비게이션하고 및/또는 그 페이지에 관한 정보를 찾아내고 내비게이션 컨트롤 메뉴 또는 리스트에 페이지를 추가하며 임의의 세트(프로퍼티 세트, 자동 리스트 세트, 리스트 세트, 폴더 세트, 기타 등등)에 항목을 추가하고 기존의 및/또는 시스템 폴더(예를 들어, "내 문서" 폴더, 기타 등등)의 내용을 보며 폴더 내의 확장된 서브폴더를 보고 파일 또는 다른 항목에, 심지어 자동 리스트 또는 시스템 생성 리스트에 저장된 파일 또는 항목에 프로퍼티 또는 다른 데이터를 (예를 들어, 선택적으로 계층적 방식으로) 추가하는 등을 위해, 본 발명에 따른 내비게이션 도구를 사용할 수 있다. 게다가, 본 발명의 적어도 어떤 예시적인 측면에 따르면, 사용자 및/또는 독립 소프트웨어 벤더는 서로 다른 애플리케이션 프로그램에서, 서로 다른 뷰에서, 서로 다른 동작 모드에서, 및/또는 기타 등등에서 사용하기 위해 시스템 내비게이션 도구를 커스터마이즈할 수 있다. 원하는 경우, 사용자는 또한 내비게이션 패널을 이전의 상태로 또는 그의 원래의 상태로 복원시키기 위해 여러가지 도구를 제공받을 수 있다.
보다 구체적인 예로서, 원하는 경우, 본 발명의 예들에 따른 내비게이션 도구는 사용자가 관심의 페이지에 관한 정보를 신속하게 찾아내고 볼 수 있게 해주는 리스트 및/또는 자동 리스트로 설계 또는 커스터마이즈될 수 있다. 예를 들어, 원하는 경우, 시스템은 사용자가 여러가지 문서들에 대해 이름 붙여진 기본 저작자에 기초하여(사용자는, 예를 들어 특정의 저작자에 의한 특정의 문서를 찾아내기 위해, 원하는 경우 스택으로 추가적으로 드릴 다운할 수 있음) 및/또는 파일들에 생성, 저장, 편집, 다운로드, 수정, 기타 등등이 행해질 때 그 파일과 연관된 프로퍼티에 기초하여 수집된 파일의 "스택"을 보여주는 뷰로 신속하게 점프할 수 있게 해주기 위해 "저작자별로 스태킹된 문서"(기타 등등)로 명명된 리스트 또는 자동 리스트를 가질 수 있다. 스택의 다른 잠재적인 그룹 또는 리스트는 "중요한 문서", "최근 문서", "좋은 음악", "최근에 사용됨", "최근에 획득됨", 기타 등등의 리스트를 포함할 수 있다.
이하에서 본 발명의 여러가지 측면에 대한 보다 상세한 설명을 한다. 당업 자라면 본 설명이 본 발명의 여러가지 측면의 예를 포함할 뿐이며 본 발명을 제한하지 않는다는 것을 잘 알 것이다.
페이지 공간 컨트롤: 본 발명의 측면들에 따른 예시적인 시스템, 방법, 및 컴퓨터 판독가능 매체: 계층적 관계로 프로퍼티를 저장: 상기한 바와 같이, 본 발명의 어떤 예시적인 측면들은 일반적으로 컴퓨터 시스템 또는 네트워크 상에 저장된 및/또는 이를 통해 이용가능한 개개의 파일 또는 데이터와 관련하여 "프로퍼티"를 저장 및 사용하는 시스템 및 방법에 관한 것이다. 일반적으로, PC, PC의 네트워크, 서버, 기타 등등의 컴퓨터 시스템 또는 네트워크에 새 파일을 저장할 때, 사용자는 일반적으로 파일에 "프로퍼티"를 할당할 수 있다. 이러한 "프로퍼티"의 예는 코멘트, 저작자ID, 키워드, 기타 등등을 포함한다. 이 기능이 유용하고 또 어떤 경우에(예를 들어, 단지 적은 일련의 프로퍼티만이 관여되어 있는 경우) 적절할 수 있지만, 이러한 종래에 이용가능한 "단순" 프로퍼티 구조는 시간의 경과에 따라 관리 및/또는 사용하기 어렵게 될 수 있다(왜냐하면 이용가능한 프로퍼티의 전체 수가 증가하기 때문임). 또한, 이 단순 프로퍼티 데이터 구조체에 있어서, 사용자는 각각의 원하는 프로퍼티를 개별적으로 입력시켜야 하고 및/또는 이를 개개의 파일과 연관시켜야만 한다. 이것은 시간이 많이 걸리는 작업일 수 있다. 게다가, 프로퍼티를 각자의 파일과 정확하게 및/또는 완전하게 연관시키지 못하면 사용자가 나중에 원하는 데이터를 탐색, 찾아내기 및/또는 검색할 수 있는 능력을 제한할 수 있다. 예를 들어, 서로 다른 개별적인 이용가능한 프로퍼티의 수가 증가함에 따라, 사용자가, 검색 질의에서, 파일과 연관된 개개의 프로퍼티 중 하나 이상을 정 확하게 지명해야만 하는 경우, 사용자가 항목들을 신뢰성있게 검색하는 것이 더욱 어렵게 된다.
본 발명에 따른 적어도 어떤 예시적인 측면들은 사용자에게 전자 파일과 함께 적어도 어떤 파일 "프로퍼티" 데이터를, 예를 들어 메타데이터로서, 할당 및 저장할 수 있는 기능을 제공하며, 여기서 할당된 프로퍼티 데이터는 계층적 구조의 일부이다. 사용자가 (예를 들어, 새로운 프로퍼티의 사용자 지명 및/또는 사용자 정의를 통해) 점점 더 많은 프로퍼티를 이용할 수 있게 됨에 따라, 본 발명의 예들에 따라 계층적 구조로 프로퍼티를 제공하는 것에 의해 사용자는 간단한 한번의 프로퍼티 할당 동작을 통해 다수의 프로퍼티를 파일에 신속하게 할당할 수 있게 된다. 본 발명의 예들에 따른 계층적 프로퍼티의 이용가능성 및 사용은 또한 사용자가 그의 프로퍼티 값에 순서를 부여하는 것에 대해 더 많은 제어를 할 수 있게 해주고(예를 들어, 계층 구조의 디스플레이에서, 가장 통상적이거나 중요한 요소를 계층 구조에서 위쪽에 제공하는 등을 할 수 있게 해주고), 이는 사용자가 프로퍼티의 값들 간의 관계를 표현할 수 있게 해주고 또 항목을 검색할 때 또는 값들을 항목에 할당할 때 이들 관계를 반영할 수 있게 해준다. 본 발명의 예들에 따른 계층적 프로퍼티의 이용가능성 및 사용은 또한 프로퍼티에서 생성되는 값들을 구성하고 또 이 구성을 사용하여 그의 항목들을 브라우징 및 검색하는 매력적인 방식을 사용자에게 제공한다. 본 발명의 예들에 따른 계층적 프로퍼티의 사용은, 이하에서 보다 상세히 설명하는 바와 같이, (심지어, 적어도 어떤 경우에, 검색에 사용된 프로퍼티가 사용자에 의해 파일에 명시적으로 할당되지 않고 사용자에 의해 할당된 프 로퍼티의 계층구조의 일부인 경우에도) 사용자가 서로 다른 프로퍼티에 걸쳐 파일들을 보다 용이하게 내비게이션하고, 원하는 파일을 찾아내며 및/또는 단일의 프로퍼티를 사용하여 파일들을 검색할 수 있게 해준다.
도 87a는 디지털 사진, 음악, 비디오, 전자 문서, 기타 등등의 여러가지 전자 파일과 관련하여 사용될 수 있는 "키워드" 프로퍼티에 대한 예시적인 프로퍼티 계층적 구조(200)를 나타낸 것이다. 이 예에서, 예를 들어 파일이 처음으로 저장, 생성, 다운로드될 때, 수정, 편집, 이동, 기타 등등이 행해질 때, 사용자는 파일에 프로퍼티를 할당하는 데 사용될 수 있는 계층적 구조(200)를 정의하였다. 이 계층적 구조(200)에서, "사람들" 노드는 계층 구조(200)에서 부모 레벨 노드를 구성한다. "사람들" 노드는 3개의 직접적인 자식 노드(즉, "친구", "가족" 및 "동료")를 포함하며, 이들 자식 노드 각각은, 도면에 도시된 바와 같이, 추가의 개별적인 자식 노드를 포함한다. 사용에 있어서, 파일에 키워드를 할당하는 것은 그 특정의 키워드를 파일과 연관시킬 뿐만 아니라 계층 구조에서 연관된 키워드의 임의의 상위 부모 키워드를 그 파일과 연관시킨다. 도 87a에 기초한 보다 구체적인 예로서, 이 예시적인 시스템 및 방법에서 키워드 "아빠"를 전자 파일에 할당하면 역시 자동적으로 키워드 "가족" 및 "사람들"을 그 파일과 연관시키는데, 그 이유는 이들 키워드가 할당된 키워드 "아빠"와 연관된 계층적 경로에 존재하기 때문이다(즉, 이 예에서 적용된 전체적인 계층적 키워드 데이터는 아빠 > 가족 > 사람들이다). 따라서, 3개의 용어 "아빠", "가족" 및/또는 "사람들" 중 임의의 하나를 포함하는 검색 질의는 이 파일에 대한 히트를 반환한다. 본 발명의 이 예에 따른 계층 구조 가 없는 경우, 사용자가 각각의 키워드를 파일과 연관시키고자 하고 및/또는 이들 키워드 중 임의의 것에 기초하여 파일에 관한 정보를 검색할 수 있는 경우, 사용자는 이들 키워드 전부를(예를 들어, "아빠", "가족", 및 "사람들" 각각) 개별적으로 파일에 적용해야만 한다.
본 발명의 부가적인 측면들은 프로퍼티들 간에 존재할 수 있는 계층 구조(예를 들어, 사용자 정의 계층 구조, 자동적으로 생성된 계층 구조, 기타 등등)에 들어가거나 또는 이를 포착하는 시스템 및 방법에 관한 것이다. 원하는 경우, 이 계층적 프로퍼티 정보는, 여러가지 상업적으로 이용가능한 시스템 및 방법(마이크로소프트사로부터 입수가능한 여러가지 운영 체제 및 애플리케이션 프로그램에서 이용가능한 폴더를 갖는 시스템 및 방법 등)에서 계층적 폴더가 저장되는 방식과 유사하게, 예를 들어 전자 파일 자체에 포함되고 및/또는 그와 연관되어 있는 메타데이터로서, 단순 경로로서 저장될 수 있다. 보다 구체적으로는, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 전자 파일에 대한 하나 이상의 계층적 프로퍼티를 단순 경로 문자열(공지의 단순 폴더 경로 문자열과 유사함)로서 저장하게 되며, 이는 폴더 구조를 이용하는 여러가지 종래의 시스템 및 방법에서 폴더 계층구조가 현재 내비게이션 및/또는 처리되는 것과 동일 또는 유사한 방식으로, 쉘 운영 체제가 계층적 프로퍼티를 사용하여 저장된 파일에 관한 정보를 정확하게 스태킹, 필터링, 그룹화, 및/또는 다른 방식으로 내비게이션 또는 처리할 수 있게 해준다. 이와 마찬가지로, 프로퍼티에 대한 계층적 데이터 구조를 제공하면 사용자는, 사용자가 공지의 종래의 폴더 시스템에서 서브폴더로 내려갈 수 있는 방식과 유사한 방 식으로, 계층구조에서 보다 아래쪽의 자식 프로퍼티 레벨에 도달하기 위해 서브-프로퍼티로 내려갈 수 있게 된다.
이 데이터 구조에서(예를 들어, 파일과 연관된 메타데이터 등의 데이터 세트 또는 필드에서), 여러가지 프로퍼티 값은 상기한 단순 경로 문자열 등의 경로에 의해 구분될 수 있다. 이와 같이, 동일한 노드 이름 또는 값으로의 경로가 그 이름이 나타나는 각각의 장소에서 다르기만 하다면, 개개의 값(예를 들어, 개개의 노드 이름)이 계층구조에서 여러번 나타날 수 있다. 도 87a는 일례를 나타낸 것이다. 구체적으로는, 도 87a에 나타낸 바와 같이, 값 "Jim"은 "가족" 노드 및 "동료" 노드 둘다의 아래 쪽에 나타난다. 이들 2개의 "Jim" 값으로의 경로가 서로 다르기 때문에(즉, 사람들>가족>Jim 대 사람들>동료>Jim), 동일한 궁극적인 최종 이름(선택적으로 도 87a에 나타낸 바와 같이 동일한 계층 레벨에 있음)을 포함하여 이들 2개의 값은 어려움을 야기하지 않고 계층 구조에 공존할 수 있다. 특정의 노드 이름 또는 값은, 각각의 경우에서 그것으로의 경로가 동일한 이름 또는 값으로의 모든 다른 경로와 다르기만 하다면, 계층 구조에서 임의의 횟수 나타날 수 있다.
본 발명의 부가의 예시적인 측면은 동일한 이름 또는 노드 값을 이용하는 계층적 구조의 서로 다른 분기에서의 프로퍼티들 간을 명확하게 해주는 프로세스에 관한 것이다. 도 87a와 관련하여 상기한 예에서, 이름 "Jim"은 가족 구성원 및 동료 둘다와 연관되어 있다. 이들 2가지 경우를 구분하기 위해, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은, 문제의 값들이 희귀한 부모 프로퍼티, 노드 또는 경로를 갖는지를 판정하기 위해, 문제의 2가지 경우에 대한 계층 구조의 상위 레벨에 있는 값들을 비교하기만 하면 된다. 상기 예를 사용하여, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 각각의 "Jim" 노드의 부모 노드를 살펴봄으로써 계층 구조에서 2개의 공통의 노드 이름을 구별할 수 있다. 이 조사는 한쪽의 "Jim" 노드는 부모 노드로서 "가족"을 가지는 반면, 다른쪽의 "Jim" 노드는 그의 부모 노드로서 "동료"를 갖는다. 그의 직접적인 부모 노드가 다르고 구별가능하기 때문에, 이들 2개의 "Jim" 노드는 프로퍼티 계층적 구조(200)에서 공존할 수 있다. 물론, 서로 다른 부모 노드 이름이 고려 중인 노드(들)의 직접적인 부모 노드에 위치할 필요는 없다(예를 들어, 서로 다른 이름을 갖는 부모 노드가 조부모 노드 레벨에, 훨씬 더 상위의 노드 레벨에, 및/또는 계층적 구조에서 서로 다른 노드 레벨에 위치하고 있을 수 있다).
그렇지만, 도 87b에 나타낸 계층적 구조(8750)는 일반적으로 본 발명에 따른 적어도 어떤 예시적인 시스템 및 방법에서 허용되지 않는다. 보다 구체적으로는, 도시된 바와 같이, 도 87b의 계층적 구조(8750)는, 최하위 레벨에 있는 어떤 노드들에 관한 것을 제외하고는, 도 87a의 계층적 구조(8700)와 유사하다. 도 87b에서, "가족" 노드는 동일한 계층 레벨 상에 동일한 이름을 갖는 2개의 자식 노드(즉, 2개의 "Jim" 노드)를 포함한다. 이들 "Jim" 노드 각각에 대한 단순 경로 문자열이 동일하기(즉, 사람들>가족>Jim이기) 때문에, 운영 체제 및/또는 애플리케이션 프로그램이 한쪽 노드를 다른쪽 노드와 구별하는 것이 가능하지 않으며, 따라서 단순 경로 문자열 "사람들>가족>Jim"이 사용될 때마다 모호성이 존재한다. 사용자가 도 87b의 예에 나타낸 바와 같이 2개의 동일한 프로퍼티 경로를 설정하려고 시 도하는 경우, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 에러 메시지를 디스플레이하고, 대화 상자를 제공하며, 새로운 이름의 입력을 요청하고, 및/또는 이 이름 또는 값이 계층적 구조에서의 이 위치에서 허용되지 않는다는 것을 사용자에게 다른 방식으로 알려준다.
프로퍼티 값은 본 발명을 벗어나지 않고 임의의 원하는 방식으로 및/또는 임의의 원하는 시간에 개개의 파일에 할당되고 및/또는 그 파일과 연관될 수 있다. 예를 들어, 사용자는, 새 파일이 사용자의 컴퓨터 시스템 또는 네트워크로 다운로드 및/또는 그에 저장될 때, 파일에 프로퍼티 값을 할당할 기회를 부여받을 수 있다. 도 88은 예시적인 사용자 인터페이스(8800)를 나타낸 것으로서, 이 인터페이스를 통해 사용자는 파일을 그의 컴퓨터 시스템 또는 네트워크에 저장할 수 있고, 원하는 경우, 이 인터페이스를 통해 사용자는 하나 이상의 프로퍼티를 파일에 할당할 수 있다. 도시된 바와 같이, 사용자 인터페이스(8800)는 (예를 들어, 새 파일에 관한 정보가 입력 패널(8804)에서, "프로파일 편집" 절차에서, 및/또는 임의의 다른 원하는 시간에 입력될 때) 파일과 연관되고 및/또는 파일에 할당될 수 있는 프로퍼티 또는 다른 정보의 적어도 일부를 디스플레이하는 내비게이션 패널(8802)을 포함한다. 주목할 만한 것은, 내비게이션 패널(8802)에서의 프로퍼티가 계층적 방식으로 정렬된다는 것이다. 여러가지 프로퍼티가, 예를 들어 프로퍼티 이름을 내비게이션 패널(8802)로부터 입력 패널(8804)에서의 적절한 장소로 드래그 및 드롭하는 등에 의해, 입력 패널(8804)에서의 적절한 위치에(예를 들어, "키워드" 입력 박스에) 노드 이름을 타이핑 또는 기입함으로써, 임의의 원하는 방식으로 파일 에 할당 및/또는 그와 연관될 수 있다. 다른 예로서, 원하는 경우, 파일의 아이콘 또는 다른 표현을 (예를 들어, 파일 리스트로부터) 내비게이션 패널(8802)에서의 원하는 값 또는 노드 이름 상으로 드래그하고 그 아이콘 또는 다른 표현을 그 위치에 드롭함으로써 프로퍼티가 할당될 수 있다(원하는 경우, 내비게이션 패널(8802)에서의 계층구조는, 아이콘 또는 다른 파일 표현을 부모 프로퍼티 값 상으로 드래그하고 이를 그 프로퍼티 값 상에 유지(드롭하지 않음)시키면 부모 프로퍼티 값을 (가능한 경우) 적어도 계층 구조의 그 다음 레벨까지 (예를 들어, 어떤 폴더가 현재 이용가능한 시스템 및 프로그램에서 "자동 확장"하는 것과 동일한 방식으로) 확장시키는, "자동-확장 거동"을 나타낼 수 있다). 도 88에 나타낸 바와 같이, 내비게이션 패널(8802)을 통해 프로퍼티 값을 파일에 할당하는 것 이외에, 본 발명의 적어도 어떤 예들에 따른 계층적 프로퍼티 시스템의 사용자는 그의 계층구조를 내비게이션 또는 검색할 수 있고, 그의 계층 구조를 관리 및/또는 편집할 수 있으며, 및/또는 이하에서 보다 상세히 기술하는 바와 같이, 다른 조치를 취할 수 있다.
본 발명의 적어도 어떤 예들에 따르면, 파일 또는 다른 항목이 다른 프로퍼티 값의 자식인 프로퍼티 값을 할당받을 때(예를 들어, 도 88에서 값 "플레이오프"), 그 파일 또는 다른 항목은 또한 할당받은 프로퍼티 값과 연관된 모든 부모 프로퍼티 값을 자동적으로 상속받는다(예를 들어, 이 특정의 예에서 "스포츠 사진>야구"). 게다가, 그 프로퍼티 값이 그 아래에 하나 이상의 자식 프로퍼티 값을 갖는 경우에도, 부모 프로퍼티 값이 파일 또는 항목에 할당될 수 있다(예를 들어, 파일에 "야구" 프로퍼티를 할당할 수 있다). 이러한 경우에, 본 발명에 따른 적어도 어떤 예시적인 시스템 및 방법에서, 부모 프로퍼티가 파일에 할당되지만, 그의 자식 프로퍼티 값들(이 예에서, "연습" 또는 "플레이오프") 중 어느 것도 (그의 부모 프로퍼티가 할당되어 있을지라도) 자동적으로 파일 또는 항목에 할당되지 않는다. 물론, 원하는 경우, 시스템 및 방법은 또한 본 발명을 벗어나지 않고 이 상황에서 자식 프로퍼티를 자동적으로 할당 또는 자식 프로퍼티를 파일과 자동적으로 연관시키도록 설정될 수 있다.
이하에서 보다 상세히 기술하는 바와 같이, 본 발명의 적어도 어떤 예들에 따르면, 검색 요소 또는 파라미터로서 부모 프로퍼티 값을 포함하는 파일 열거, 검색 또는 다른 질의는 지정된 부모 프로퍼티 값 및 그의 자식 프로퍼티 값 중 임의의 것 둘다가 첨부된 모든 항목을 반환한다. 이와 같이, 본 발명의 예들에 따른 저장 시스템 및 방법은 (예를 들어, 계층 구조의 하위 레벨에서) 사용자가 비교적 적은 고도로 한정된 설명적 프로퍼티를 항목에 용이하게 첨부할 수 있게 해주지만, 계층적 구조에서 점점 더 폭넓은 부모 노드 아래에 프로퍼티들을 정렬함으로써, 비교적 폭넓은 검색 질의에 응답해서도, 첨부된 항목들이 용이하게 나타나도록 해줄 수 있다. 원하는 경우, 본 발명의 적어도 어떤 예들에 따르면, 검색 결과, 파일 열거 결과, 또는 파일 미리보기 결과가 검색 질의에 응답하여 디스플레이되는 경우, 파일에 할당되는 주요 값(예를 들어, 사용자에 의해 할당된 실제값)은 하이라이트되고 및/또는 어떤 방식으로 사용자에게 알려지거나 사용자가 이용가능하게 된다.
이용가능한(예를 들어, 사용자, 시스템 또는 다른 것에 의해 이전에 정의된) 및/또는 저장된 계층적 프로퍼티가, 본 발명을 벗어나지 않고, 본 발명의 예들에 따른 시스템 및 방법에 의해 임의의 원하는 시간에 및/또는 임의의 원하는 장소에 디스플레이될 수 있다. 예를 들어, 도 88에 도시된 바와 같이, 프로퍼티는 "저장" 또는 "다른 이름으로 저장" 동작 동안에 (예를 들어, 내비게이션 패널(8802)에) 디스플레이될 수 있다. 이들은 또한 파일 "검색", "리스트" 또는 "보기" 동작 동안에, 예를 들어 도 88의 내비게이션 패널(8802)에 나타낸 동일한 계층적 트리 레이아웃에, 디스플레이될 수 있다. 또한, 원하는 경우, 본 발명의 예들에 따른 계층적 프로퍼티는 종래의 프로퍼티가 현재 애플리케이션 프로그램 및/또는 운영 체제에 의해 나타내어지고 있는 임의의 및/또는 모든 위치에 (예를 들어, "리스트 뷰" 디스플레이에 나타낸 프로퍼티로서, "항목 상세" 디스플레이에 나타낸 프로퍼티로서, 파일 "미리보기" 디스플레이에 나타낸 프로퍼티로서, 기타 등등) 디스플레이될 수 있다. 또한, 원하는 경우, 본 발명의 예들에 따른 계층적 프로퍼티는, 프로퍼티를 지원하는 트리 컨트롤 등의, 프로퍼티를 내비게이션하는 데 사용되는 임의의 컨트롤에 디스플레이될 수 있다.
도 88은 트리 컨트롤 화면(예를 들어, 내비게이션 패널(8802))에서의 계층적 프로퍼티의 디스플레이예를 나타낸 것이다. 도 89는, 반면에, 항목 또는 파일 "미리보기" 화면(8900)에서의 프로퍼티 정보의 디스플레이예를 나타낸 것이다. 도 89에 나타낸 바와 같이, 이 예시적인 항목 또는 파일 "미리보기" 화면(8900)은 항목(이 예에서, 예를 들어, 파일에 포함된 사진의 소형 버전)의 썸네일 또는 아이콘 디스플레이(8902)는 물론, 파일 이름, 그의 저장 시간/일자, 파일 크기, 및 사용자 입력 "캡션" 정보 등의 파일에 관한 어떤 시스템 및/또는 다른 실제 정보를 포함한다. 게다가, 이 항목 또는 파일 "미리보기" 화면(8900)은, 할당된 키워드(단순 경로 문자열 포맷으로 디스플레이됨), 사진 주제 ID, 사용자 입력 평가 정보, 기타 등등을 비롯한, 사용자에 의해 입력된 어떤 "프로퍼티" 정보를 디스플레이한다. 물론, 본 발명을 벗어나지 않고 이러한 화면에 임의의 수의 프로퍼티가 열거될 수 있다(선택적으로, 임의의 디스플레이되지 않은 프로퍼티에 관한 정보를 디스플레이하는 기능을 가짐).
본 발명을 벗어나지 않고 임의의 원하는 시간에 및 임의의 원하는 방식으로 프로퍼티 정보가 입력되고 및/또는 개개의 파일과 연관될 수 있다. 파일이 최초로 컴퓨터 시스템 또는 네트워크에 저장될 때 파일과 함께 프로퍼티 정보를 포함하는 것 이외에, 개개의 파일과 연관된 프로퍼티가, "프로파일 편집", 또는 "프로퍼티 편집" 명령, 기타 등등에 응답하여 파일의 열기, 편집 또는 사용이 있을 때마다와 같이, 다른 원하는 시간에 추가, 삭제 및/또는 수정될 수 있다. 프로퍼티는 타이핑을 통해(선택적으로, 일치하는 문자열의 "자동 완성"으로, 선택적으로 계층 구조에서의 임의의 레벨로부터), 드래그/드롭 동작을 통해, "우측 클릭" 동작을 통해, 펜 "길게 누르기" 동작을 통해, 기타 등등을 통해 입력될 수 있다. 특정의 파일과 연관된 프로퍼티를 설정, 편집 및/또는 삭제하는 데 유용한 임의의 도구도 역시 본 발명을 벗어나지 않고 미리보기 화면(8900)에서 액세스 및 사용될 수 있다.
게다가, 계층적 구성에서의 프로퍼티의 실제 내용은, 본 발명을 벗어나지 않고, 사용자에 의해 임의의 원하는 시간에 및/또는, 예를 들어 종래의 애플리케이션 프로그램 및 운영 체제에서 종래의 "폴더" 구조가 추가, 삭제 및/또는 다른 방식으로 편집되는 방식으로, 임의의 원하는 방식으로 변경될 수 있다. 예로서, 새로운 프로퍼티가 기존의 프로퍼티 아래에 추가될 수 있고 및/또는 기존의 프로퍼티가 마우스 버튼 "우측 클릭" 동작을 통해(이는 적절한 사용자 인터페이스, 예를 들어 "새 프로퍼티 삽입", "기존의 프로퍼티 삭제", "노드 레벨 또는 위치 변경", 잘라내기, 복사, 붙여넣기, 또는 다른 적절한 동작을 포함하는 메뉴를 디스플레이할 수 있음) 또는 임의의 다른 원하는 방식으로 삭제될 수 있다. 다른 예로서, 원하는 경우, 계층적 구조에서의 기존의 프로퍼티의 장소가 변경될 수 있다, 예를 들어 도 90에나타낸 바와 같이, "드래그 및 드롭" 동작에 의해 이동될 수 있다. 보다 구체적으로는, 도 90은 계층적 프로퍼티 리스트를 디스플레이하는, 예를 들어 디지털 사진을 저장 및 편집하는 애플리케이션 프로그램에 대한 내비게이션 패널(8802)을 나타낸 것이다. 도 90의 좌측은 사용자가 키워드 "대양"에 대한 아이콘을, 드래그 및 드롭 동작(화살표(9002)로 나타냄)을 통해 "캠핑" 부모 노드 아래로부터 "키워드" 노드 바로 아래의 계층 레벨로, 이동시키는 것을 나타낸 것이다. 드래그 동작을 통해(예를 들어, 좌측 마우스 버튼을 누른 상태에서) 원하는 장소에(이 예에서 "키워드" 노드 바로 위에) 배치되면, "대양" 노드는 이를 그 위치에 드롭함으로써(예를 들어, 마우스의 왼쪽 버튼을 놓음으로써) 계층 구조에서 재배치될 수 있다. 이 동작은 도 90의 우측에 나타낸 바와 같이 노드 "대양"을 재배치한다. 원하는 경우, 사용자는 부가적인 드래그 및 드롭 동작을 통해 "대양" 노드와 함께 있도록 이전의 자식 노드 "태평양" 및 "대서양"을 이동시킬 수 있다. 다른 대안으로서, 원하는 경우, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은, 노드를 재배치한 결과 또한 그의 자식 노드(있는 경우)의 자동적인 재배치가 이루어지도록, 동작할 수 있다. 원하는 경우, 본 발명의 적어도 어떤 예들에 따르면, 사용자는, (예를 들어, 붙여넣기 명령을 사용하여) 프로퍼티 값의 또하나의 복사본(및 선택적으로 그의 자식 프로퍼티 값)이 다른 프로퍼티 값 아래에 나타나도록 하기 위해, 프로퍼티 값을 이와 같이 드래그하는 동안 "Control(컨트롤)" 버튼을 누를 수 있다. 물론, 노드 및/또는 그의 각자의 자식 노드를 잘라내기, 복사 및/또는 재배치하기 위한 다른 방식 및 프로토콜이 본 발명을 벗어나지 않고 사용될 수 있다(예를 들어, 축소된 자식을 갖는 노드를 재배치하는 것은 그 노드 및 그의 자식 전부를 한 동작으로 재배치하는 데 사용될 수 있지만, 그의 자식이 완전히 확장되고 디스플레이되어 있는 노드를 재배치하는 것은 그의 자식, 기타 등등 없이 부모 노드만을 재배치하는 데 사용될 수 있다). 본 발명을 벗어나지 않고 시스템 및 방법에서 노드를 이동시키는 다른 디폴트 방법 및 방식이 사용될 수 있다.
적어도 어떤 경우에, 본 발명에 따른 시스템 및 방법의 구체적인 특성에 따라, 이 재배치 동작 동안에, 예를 들어 동일한 프로퍼티 이름이 이동된 프로퍼티에 대한 새로운 경로 또는 위치에 2번 이상 나타나는 경우 에러가 발생될 수 있다. 본 발명의 예들에 따른 시스템 및 방법은 임의의 원하는 방식으로, 예를 들어 원하는 이동을 완료하지 않음으로써, 사용자가 그 경로 내의 이름을 변경할 수 있게 해주는 인터페이스를 제공함으로써, 문제점을 교정하는 여러가지 옵션과 함께 문제점을 알려주는 대화상자를 사용자에게 디스플레이함으로써, 기타 등등에 의해 이러한 상황을 처리할 수 있다. 다른 예로서, 원하는 경우, 동일한 전체 단순 경로 문자열 이름을 갖는 다수의 노드를 생성하려는 시도가 행해지지 않는 한, 이러한 에러가 나타나지 않도록, 경로 내에 단일의 이름의 다중 사용자(예를 들어, 장소>뉴욕>뉴욕)를 허용하는 시스템 및 방법이 개발될 수 있다.
본 발명의 예들에 따른 계층적 프로퍼티 특성을 이용하는 사용자는, 완전히 확장되었을 때 전체적인 계층적 구조가 내비게이션 패널(8802)에서의 이용가능한 공간 및/또는 그의 디스플레이 화면의 높이보다 더 길게 뻗어 있을 정도로, 프로퍼티에 대한 비교적 큰 계층적 구조를 개발할 수 있다. 이 상황은 본 발명을 벗어나지 않고 임의의 원하는 방식으로, 예를 들어 내비게이션 패널 내에 스크롤 바를 제공함으로써, 자식 노드가 그의 부모 노드 아래에 축소될 수 있게(또한, 예를 들어 계층적 폴더 구조가 종래에 이용가능한 시스템 및 방법에서 확장 및 축소하는 방식과 유사한 방식으로, 사용자 입력에 기초하여 완전히 확장 또는 축소될 수 있게) 해줌으로써, 기타 등등에 의해 처리될 수 있다. 열려 있을 때, 도 88 및 도 90에 예시된 유형의 내비게이션 패널(8802)은, 항상 계층적 구조의 상단 위치에, 계층적 구조에서 가장 빈번하게 사용되는 위치에, 계층적 구조에서 가장 최근에 사용된 위치에, 계층적 구조에서 열린 문서(있는 경우)를 포함하는 위치에, 완전히 확장된 상태에서, 완전히 축소된 상태에서, 가장 최근에 사용된 상태에서, 기타 등등의, 계층적 구조 내의 임의의 원하는 장소에 및/또는 임의의 원하는 확장/축소 상태에서 열려 있을 수 있다. 또한, 내비게이션 패널(8802)은, 예를 들어 사용자 선호, 디폴트, 기타 등등에 기초하여 좌측 또는 우측 등의, 디스플레이 화면 상의 임의의 원하는 장소에 나타날 수 있다.
원하는 경우, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은, 출하될 때, 기본적인 계층적 구조를 포함할 수 있고, 이 기본적인 구조는 보다 완전하고 풍부한 계층 구조, 예를 들어 그 자신의 용도에 더 잘 맞고 또 그 용도에 커스터마이즈되어 있는 것를 작성하는 시작점으로서 사용자에 의해 사용될 수 있다. 예를 들어, 디지털 사진, 오디오, 비디오 또는 다른 사용자 데이터를 저장하기 위한 이러한 미리 정해진 기본적인 계층적 구조의 예는 키워드, 이벤트, 장소, 사람들(예를 들어, 아마도 저작자, 사진가, 대상 사람들 등의 자식 노드를 가짐), 날짜, 내 그림, 내 음악, 내 문서, 내 비디오, 기타 등등의 기본 노드(base node)를 포함할 수 있다. 임의의 원하는 정보가, 본 발명을 벗어나지 않고, 이 기본적인 계층 구조에 포함될 수 있다.
도 91은, 예를 들어 "파일 리스트" 검색, 질의, 내비게이션 또는 다른 적절한 명령에 응답하여 나타날 수 있는, 예시적인 디스플레이 화면(9100)을 나타낸 것이다. 주목할 만한 것은, 이 예시적인 디스플레이 화면(9100)의 좌측이 이 사용자의 파일 중 적어도 일부가 저장되어 있는 계층적 프로퍼티에 대한 내비게이션 패널(9102)을 포함하고 있다는 것이다(예를 들어, 이 예에서는 디지털 사진 저장/편집 시스템에 관한 것임). 본 발명에 따른 시스템 및 방법의 적어도 어떤 예들에서, 내비게이션 패널(9102)을 갖는 디스플레이 화면(9100)은 사용자를 위한 계층적 프로퍼티에 대한 주된 입력 및 상호작용 장소일 수 있다. 이러한 화면(9100)으로부터, 사용자는 파일을 볼 수 있고, 검색 질의를 제공할 수 있으며, 및/또는 생성 된 여러가지 계층적 카테고리는 물론 파일과 연관된 다른 저장된 데이터에 기초하여 그의 파일을 필터링할 수 있다. 도 91에 도시된 바와 같이, (예를 들어, 좌측 마우스 버튼 클릭 동작에 의해) 계층구조에서 노드 "키워드"를 하이라이트하면 사용자 파일에 할당된 또는 그와 연관된 키워드를 갖는 사용자 파일의 전체 리스트를 풀업한다. 이 예시적인 시스템 및 방법에서, 이 동작은 화면(9100)의 디스플레이 부분(9106)에 개개의 파일을 나타내는 썸네일 아이콘 또는 사진(9104)을 포함하는 디지털 사진 파일의 리스트를 풀업한다. 이 예에서 개개의 파일은 하이라이트된 검색어 바로 아래에 있는 계층구조에서의 개개의 자식 레벨에 기초하여 그룹화된다(즉, 이 예시된 예에서 "스포츠 사진", "여름" 및 "캠핑" 그룹으로서 그룹화되고, 계층 구조에서의 다른 레벨(즉, "꽃" 및 "대양")은 디스플레이 부분(9106) 크기 제약으로 인해 나타나지 않음). 물론, 본 발명을 벗어나지 않고 검색 또는 리스트 뷰 결과를 디스플레이하는 많은 방식이 가능하다.
본 발명을 벗어나지 않고 개개의 파일과 함께 계층적 프로퍼티를 저장 또는 표현하기 위해 임의의 원하는 형태 또는 형식이 사용될 수 있다. 예를 들어, 자식 프로퍼티 값이 파일에 할당되어 있는 경우, 계층적 구조를 통해 그 프로퍼티 값으로의 경로는 (예를 들어, 그 파일에 포함된 및/또는 그 파일과 연관된 메타데이터로서) 실제 파일의 일부로서 저장되고 및/또는 실제 파일과 연관될 수 있다. 예로서, 계층적 구조의 표현 또는 데이터 구조체는 적어도 (부모 프로퍼티 값) [구분자] (자식 프로퍼티 1) [구분자] (자식 프로퍼티 2)...를 포함할 수 있다. 도 91에 나타낸 보다 구체적인 예를 참조하면, 파일과 연관된 개개의 프로퍼티 "축구" 및 "참가 경기"와 함께 저장된 그 파일은, 적어도 어떤 경우에 예를 들어 "키워드/스포츠 사진/축구" 및 "키워드/스포츠 사진/참가 경기"의 형태로 그 파일에 관한 정보와 함께 디스플레이되는(예를 들어 도 89에 도시한 바와 같음), 그 파일과 연관된 메타데이터를 가질 수 있다. 이들 예에서, 부모 프로퍼티 값은 "키워드"이고, 각각의 경우에서의 제1 자식 프로퍼티 값은 "스포츠 사진"이며, 제2 프로퍼티 값은 각각 "축구" 및 "참가 경기"이고, 구분자는 슬래쉬 "/"이다(구분자는 프로퍼티 이름을 분리시키는 데 사용되는 특수 문자일 수 있고, 이 구분자는, 시스템에서의 혼동을 피하기 위해, 프로퍼티 이름에 포함되지 않을 수 있다). 물론, 본 발명을 벗어나지 않고 임의의 수의 자식 프로퍼티 레벨이 단순 경로 데이터 문자열에 포함될 수 있다.
내비게이션 패널, 예를 들어 패널(9102)에 열거된 프로퍼티는, 적어도 부분적으로, 여러가지 공지의 운영 체제 및 애플리케이션 프로그램에서 종래의 폴더가 거동하는 방식과 유사한 방식으로 거동할 수 있다. 예를 들어, 내비게이션 패널(9102)에서 계층적 프로퍼티를 확장 및/또는 축소시키는 방식은 유사한 폴더 내비게이션 패널 또는 컨트롤에서 폴더를 확장 및/또는 축소시키는 것과 유사할 수 있다. 보다 구체적인 예로서, 부모 프로퍼티 아래에 자식 프로퍼티 값을 보고 또 디스플레이하기 위해, 사용자는 프로퍼티의 좌측에 제공된 "위젯"을 클릭할 수 있다(예를 들어 도 91의 "여름" 키워드에 대한 "+" 기호를 갖는 위젯(이 예시적인 시스템에서, 위젯에서의 "+" 기호는 하나 이상의 부가의 디스플레이되지 않은 자식 프로퍼티의 존재를 나타내고, 위젯에서의 "-" 기호는 특정의 프로퍼티가 이미 확장 되어 있음을 나타냄)). 적어도 어떤 예들에서, 프로퍼티 또는 노드가 자식을 갖지 않는 경우, 그 좌측에 있는 위젯이 생략될 수 있거나, 위젯이 부가의 표시자(예를 들어, "+" 또는 "-" 기호, 기타 등등)를 포함하지 않을 수 있거나, 위젯이 다른 표시자를 포함할 수 있거나, 또는 다른 원하는 방식으로 자식 노드가 없음이 표시될 수 있다. 예를 들어, 도 91에 나타낸 바와 같이, 계층적 구조를 보다 잘 나타내는 데 도움이 되도록 들여쓰기 방식(indentation scheme)도 역시 사용될 수 있다. 주목할 만한 것은, 개개의 파일이 그와 연관된 다수의 프로퍼티를 가질 수 있기 때문에, 디스플레이 패널(9106)에서 동일한 파일 또는 항목이 다수의 그룹에 나타날 수 있다는 것이다(예를 들어, 사진(13, 44)이 도 91에서 "스포츠 사진" 그룹 및 "여름" 그룹 둘다에 나타남에 유의).
본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 사용자가 계층적 프로퍼티 구조를 변경, 수정 및/또는 사용하는 또다른 방식을 지원할 수 있다. 일례로서, 디스플레이 패널(9106) 내의 어떤 항목도 선택되지 않은 경우에 내비게이션 패널(9102)에서의 프로퍼티 값이 우측 클릭 동작을 통해 선택되는 상황에서, 사용자는 (예를 들어, 인터페이스를 통해) 우측 클릭 선택된 노드 아래에 새로운 계층적 프로퍼티를 자식으로서 추가하는 옵션을 제공받을 수 있다(예를 들어, 사용자가 새로운 프로퍼티 값을 타이핑(또는 다른 방식으로 입력)할 수 있게 해주기 위해, 편집가능 텍스트박스를 갖는 새로운 노드가 계층적 구조에서 새로운 프로퍼티 값의 장소에 나타날 수 있다). 사용자가, 개개의 노드, 노드 및 그의 자식 노드 전부, 기타 등등의, 계층구조의 임의의 원하는 부분을 삭제할 수 있게 해주기 위해, "삭 제" 기능 또는 옵션이, 예를 들어 우측 마우스 버튼 클릭을 통해, 제공될 수 있다. 예를 들어, 사용자가 프로퍼티 값을 선택하고 이를 (선택적으로 그 자신의 자식 값 전부와 함께) 계층 구조에서 각각 한 레벨 위로 또는 아래로 이동시킬 수 있게 해주기 위해, "격상(promote)" 및 "격하(demote)" 기능이 제공될 수 있다(예를 들어, 격상은 선택된 노드가 이제 그의 이전의 직접적인 부모 노드에 대한 피어로서 나타나도록 하는 레벨로 이동시킨다). 또다른 예로서, 사용자가 임의의 프로퍼티 값 또는 노드에 다른 이름을 줄 수 있도록 해주는 "이름바꾸기" 기능이 예를 들어 우측 마우스 버튼 클릭을 통해 제공될 수 있다(선택적으로, 상기한 바와 같이, 동일한 이름이 경로에서 2번 사용되는 경우 및/또는 2개의 동일한 단순 경로 이름이 제공되는 경우 제한이 있음). 파일이 디스플레이 패널(9106)에서 선택될 때 예를 들어 우측 마우스 버튼 클릭을 통해, 본 발명의 예들에 따라 제공될 수 있는 잠재적인 기능은 하나 이상의 프로퍼티를, 파일과 함께 저장된 및/또는 그와 연관된 메타데이터 또는 다른 데이터로부터 제거 및/또는 그에 추가하는 데 사용될 수 있는 "프로퍼티 제거" 기능 및 "프로퍼티 추가" 기능을 포함한다. 물론, 본 발명에서 벗어나지 않고 상기 기능들을 수행하는 다른 기능 및/또는 다른 방식이 제공될 수 있다. 필요한 경우, 상기한 여러가지 기능을 통해 변경되는 주어진 프로퍼티 및/또는 경로가 첨부된 모든 파일 또는 항목은 경로 및/또는 프로퍼티에 대해 사용자가 행한 변경을 반영하기 위해 갱신되는 그의 대응하는 프로퍼티 및/또는 경로 정보를 가질 수 있다.
본 발명의 적어도 어떤 예들에 따른 부가적인 특징은, 예를 들어 계층적 프 로퍼티 데이터를 포함하는 기존의 파일이 계층적 프로퍼티 데이터를 지원하는 시스템 또는 네트워크를 갖는 다른 사용자로 전송되지만 새로 수신된 파일(들)에 대응하는 동일한 이용가능한 계층적 프로퍼티 구조를 반드시 가질 필요가 없는 경우, 계층적 프로퍼티를 공유하는 것에 관한 것이다. 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 단순 프로퍼티 값을 갖는 파일(또는 다른 항목)이 공유되는 방식과 유사한 방식으로 계층적 프로퍼티 값을 갖는 파일(또는 다른 항목)을 공유하는 것을 가능하게 해주도록 구성될 수 있다. 본 발명에 따른 시스템 및 방법의 적어도 어떤 예들에 따르면, 파일 또는 다른 항목이 계층적 프로퍼티 값을 갖는 시스템에 들어올 때의 디폴트 거동은 다음과 같다. (a) 새 파일의 계층구조는 계층적 키워드가 일반적으로 시스템 또는 네트워크에 의해 디스플레이되는 모든 영역에, 예를 들어 새로 수신된 파일이 타겟 시스템 또는 네트워크 상에서 최초로 생성된 것처럼과 동일한 방식으로, 디스플레이되고, (b) 새 파일에 대해 요구되는 것과 동일한 계층구조가 새 수신자의 시스템 또는 네트워크 상에 이미 존재하는 경우, 새로운 파일 항목은 그 자신을 시스템 또는 네트워크 상에 이미 있는 계층구조와 연관시키며, (c) 새 파일에 필요한 경로의 단지 일부만이 수신자의 시스템 또는 네트워크 상에 존재하는 경우, 새 파일에 대응하기 위한 계층구조의 나머지 부분들이 수신자의 시스템 또는 네트워크 상에 생성되고, 및/또는 (d) 새 파일에 필요한 경로 중 어느 것도 수신자의 시스템 또는 네트워크 상에 존재하지 않는 경우, 새 파일에 대응하기 위한 새 계층구조가 수신자의 시스템 또는 네트워크에 추가된다.
이하에서는 파일이 수신되어 새 사용자의 시스템 또는 네트워크에 저장된는 상황에서 프로퍼티 계층구조 공유에 대한 보다 상세한 예를 제공한다. 이 예에서, 수신자 사용자는 경로/프로퍼티 값 "가족/형제/Toby"를 갖는 기존의 프로퍼티 계층구조를 갖는다. 새 파일이 수신자 사용자에 의해 (예를 들어, 이메일 첨부물로서) 수신되고, 수신자의 시스템에 저장되는 이 새 파일은 파일 송신자의 계층적 구성으로부터의 메타데이터를 포함한다. 파일 송신자 및 파일 수신자 둘다는 본 발명의 일례에 따른 계층적 데이터 구조를 사용하여 프로그램, 시스템 및/또는 방법을 동작시킨다. 이하의 표는 수신자 사용자의 시스템이 여러가지 서로 다른 시나리오에서 새 파일의 수신을 처리할 수 있는 방식을 기술한 것이다.
새 파일의 계층적 프로퍼티 값 새 파일을 수신하기 이전의 수신자의 시스템의 상태 새 파일을 수신한 후의 수신자의 시스템의 상태
가족/형제/Toby 가족/형제/Toby 가족/형제/Toby - 변화 없음
가족/형제/Noah 가족/형제/Toby 가족/형제/Toby, 가족/형제/Noah - (시스템은 새 파일의 계층구조에 대응하기 위해 "Noah"에 대한 자식 노드를 추가함)
친척/사촌/Toby 가족/형제/Toby 가족/형제/Toby, 친척/사촌/Toby - (시스템은 새 파일에 대한 전체적인 새로운 계층구조를 추가함)
파일과 연관된 여러가지 프로퍼티 값이 본 발명을 벗어나지 않고 임의의 적절한 시간에 또 적절한 방식으로 디스플레이될 수 있다. 예를 들어, 도 89와 관련하여 전술한 바와 같이, 파일과 연관된 "미리보기" 패널에 프로퍼티 정보가 디스플레이될 수 있다. 부가의 예로서, 원하는 경우, 주어진 파일과 연관된 프로퍼티가 "프로퍼티" 페이지 또는 파일과 연관된 "프로퍼티 디스플레이" 명령과 함께 포함될 수 있다. 기존의 프로퍼티도 역시, 예를 들어 저장, 다른 이름으로 저장, 프로파일 편집, 파일 열기, 또는 다른 유사한 동작 동안에, 디스플레이될 수 있다. 원하는 경우, 파일과 연관되어 있는 저장된 프로퍼티도 역시, 파일이 열리는 중이고 및/또는 열려 있는 동안에, 예를 들어 도구막대에 디스플레이될 수 있고, 사용자는, 예를 들어 파일을 대상으로 작업하고 있는 동안에, 파일이 저장된 이후에, 파일이 열리기 이전에, 기타 등등의 때에, 프로퍼티를 편집하는 데 이용가능한 인터페이스를 가질 수 있다. 본 발명을 벗어나지 않고 많은 다른 옵션들이 주어진 파일과 연관되어 있는 저장된 프로퍼티 데이터를 디스플레이하는 데 이용가능하다. 물론, 임의의 수의 프로퍼티는 또한 본 발명을 벗어나지 않고 주어진 파일과 연관될 수 있다.
또한, 본 발명을 벗어나지 않고 파일과 연관되어 있는 임의의 원하는 수의 프로퍼티 데이터가 여러가지 장소에 디스플레이될 수 있다. 예를 들어, 원하는 경우, 각각의 프로퍼티(또는, 적어도 어떤 프로퍼티)에 대해 계층적 경로 전체가, 파일과 연관되어 있는 프로퍼티 중 하나 이상이 디스플레이되는 임의의 장소에(예를 들어, 도 89에 나타낸 것과 같은 "미리보기" 또는 "프로퍼티" 패널에) 보여질 수 있다. 다른 예로서, 원하는 경우, 할당된 프로퍼티 값 자체만이 여러가지 장소에 보여질 수 있다(그리고, 계층구조의 나머지는 예를 들어 내비게이션 패널을 통해, 커서 "허버" 동작, 기타 등등 동안에는 물론, 이하에서 보다 상세히 기술될 파일 정보 스태킹 및 그룹화 기능을 통해 보여질 수 있다). 보다 구체적인 예로서, 개개의 파일(디지털 사진 등)이 이하의 계층적 키워드, 즉 "스포츠 사진>야구>연습>심장 강화 운동"이 그에 할당되어 있는 경우, 이 긴 단순 경로 문자열이 단지 경로에서 가장 낮은 자식 노드, 즉 "심장 강화 운동"을 제공하는 것만으로 적어도 어떤 장소에 표현될 수 있다. 그렇지만, 프로퍼티 리스트의 이 절단된 형식은 (예를 들어, 노드 "심장 강화 운동"이 계층구조에서 다수의 장소에 존재하는 경우) 이름 충돌이 일어날 및/또는 사용자에게 얼마간 불명확할 위험이 있다. 이러한 상황에서, 원하는 경우, 부가의 계층적 정보가, 충돌하는 정보를 구분하기 위해, 최하위 레벨 키워드와 함께 디스플레이될 수 있다. 예를 들어, 도 87a와 관련하여 상기한 바와 같이, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법에서의 각각의 계층적 노드는 서로 다른 고유의 경로를 갖는다. 이 정보는 상기한 충돌을 해결하는 데 사용될 수 있다. 구체적으로는, 예를 들어, 상기한 유형의 충돌(시각적으로 동일한 방식으로 표현되는 2개의 계층적 프로퍼티 값으로서 정의됨)이 있는 경우, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 다른 부모 프로퍼티 값이 발견될 때까지 충돌 경로를 순회하며, 그 값이 (선택적으로 충돌하는 최하위 레벨 노드 정보와 함께) 디스플레이된다. 예를 들어, 포함된 계층 구조 및/또는 개개의 파일에 "스포츠 사진>야구>연습>심장 강화 운동" 및 "스포츠 사진>농구>연습>심장 강화 운동" 둘다가 첨부되어 있는 경우, 예를 들어 "미리보기" 또는 "프로퍼티" 디스플레이에 디스플레이된 프로퍼티 정보는, 정확한 계층 구조를 구별되게 나타내기 위해, 예를 들어 "심장 강화 운동...야구" 및/또는 "심장 강화 운동...농구"로서, 및/또는 어떤 다른 적절한 방식으로 표현될 수 있다.
계층적 프로퍼티 정보의 실제 사용의 다른 예로서, 많은 사업들이 적어도 어느 정도의 계층적 구조(예를 들어, 부(department), 국(division), 소재지, 기타 등등)로 구성되어 있다. 개개의 회사의 구조의 계층적 속성을 이용하는 이러한 사업에 대해 본 발명의 예들에 따른 보다 적합한 운영 체제, 방법 및/또는 애플리케이션 프로그램이 개발될 수 있다. 예를 들어, 회사를 위해 저장된 데이터에서의 프로퍼티에 대한 미리 정의된 계층적 구조를 포함하는, 회사 직원에 의해 사용되는 컴퓨터 시스템, 네트워크, 및/또는 애플리케이션 프로그램에 대해 미리 정해진 계층구조가 제공될 수 있다. 이러한 시스템 및 방법은 회사의 데이터가 구성되고 저장될 수 있는 회사의 시스템 및 네트워크에서 적어도 어떤 전체적인 똑똑한 계층적 구조를 가능하게 해준다.
본 발명의 측면들은 또한, 여러가지 운영 체제, 애플리케이션 프로그램 환경, 및/또는 상기한 시스템 및 방법을 포함한 여러가지 다른 시스템 및 방법에서 계층적 프로퍼티 데이터의 입력 및/또는 사용을 가능하게 해주기 위해, 그 위에 저장된 계층적 프로퍼티 데이터를 포함하는 컴퓨터 판독가능 매체 및 그 위에 저장된 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 관한 것이다. 컴퓨터 판독가능 매체는 상기한 컴퓨터 판독가능 매체의 여러가지 구체적인 예에 저장된 컴퓨터 실행가능 명령어를 포함할 수 있다.
페이지 공간 컨트롤: 본 발명의 측면들에 따른 예시적인 시스템, 방법 및 컴퓨터 판독가능 매체: 다중 프로퍼티 선택: 상기한 바와 같이, 본 발명의 부가적인 측면들은 일반적으로 컴퓨터 시스템 또는 네트워크 상에 포함된 정보를, 선택적으로 상기한 계층적 프로퍼티 구조를 이용하여, 검색하는 시스템 및 방법에 관한 것이다.
그의 Windows
Figure 112007022760413-PCT00012
컴퓨터 운영 체제에 있어서, 미국 워싱턴 레드몬드 소재의 마이크로소프트사는 컴퓨터 시스템 또는 네트워크로부터 전자 정보를 저장, 구성 및 검색하기 위한 실세계 유사점, 즉 폴더를 도입하였다. 이 폴더 시스템은 엄격히 말하면 실세계 느낌을 컴퓨터 상에 저장되거나 컴퓨터를 통해 이용가능한 전자 데이터 및 정보에 제공하기 위해 도입된 최종-사용자 개념이었다. 컴퓨터 사용자는 일반적으로 그의 컴퓨터의 하드 드라이브를, 그의 파일들이 정리되어 있는 큰 파일링 캐비넷으로 생각한다. 그렇지만, 컴퓨터 시스템 자체에게는, 전자 파일이 단지 하드 드라이브에 자기적으로(또는 어떤 다른 방식으로) 인코딩되어 있는 일련의 비트일 뿐이며, "폴더"는 단지 컴퓨터 시스템이 그 일련의 파일을 참조하는 방식에 불과하다.
마이크로소프트사의 NT 파일 시스템("NTFS")에서, 하드 링크를 지원하는 기능이 도입되었다. 이 특징은 사용자가 전자 파일을 다수의 폴더에 배치하는 것을 가능하게 해주었다. 물론, 물리적으로, 이 특징은 그 전자 파일을 표현하는 비트들이 컴퓨터의 하드 드라이브(또는 다른 저장 시스템) 상에 여러번, 예를 들어 파일이 배치되어 있는 각각의 폴더에 대해 한번씩 복제될 것을 요구하지 않는다. 오히려, 서로 다른 폴더들이 동일한 파일을 다시 참조한다. 그렇지만, 최초로 발표되었을 때, 이 기능은 최종 사용자에게 공개되지 않았는데, 그 이유는 하나의 파일을 다수의 폴더에 넣는 것이 사용자의 실제의 물리적 세상 개념에 부합하지 않았기 때문이다(즉, 동일한 물리적 종이가 동시에 2개의 개별적인 물리적 폴더에 위치될 수 없기 때문이다).
본 발명의 적어도 어떤 측면들이 실시될 수 있는 적어도 어떤 운영 체제에서, "리스트"라고 하는 새로운 최종 사용자 개념이 도입되고 있다. 물리적 유사점으로서, "리스트"를 일련의 항목(예를 들어, 전자 파일)을 참조하는 컨테이너로서 생각할 수 있다. "리스트"를 보다 잘 이해하기 위해, "폴더"에 대한 보다 상세한 설명이 기술된다. "폴더"는 어떤 방식으로 서로 관련되어 있는 것으로 간주되는 항목들의 "세트" 또는 그룹으로서 생각될 수 있다(예를 들어, 동일한 "폴더"에 존재한다는 것은 세트 내의 항목들이 "관련있는" 것으로 간주될 수 있는 한가지 방식일 수 있다). 세트 또는 폴더 내의 각각의 항목 또는 파일은 (예를 들어,
Figure 112007022760413-PCT00013
등의 경로의 형태로서) "부모폴더(PARENTFOLDER)"라고 하는 프로퍼티를 포함할 수 있다. 주목할 만한 것은, 이 경로도 역시 최종 사용자 비유이고, 컴퓨터의 물리적 구조를 반드시 반영해야 하는 것은 아니다. 실제로, 드라이브 자체의 개념은 비유로서 생각될 수 있는데, 그 이유는 단일의 물리적 하드 드라이브가 c 드라이브, d 드라이브, 기타 등등의 다수의 "드라이브"로 분할될 수 있기 때문이다.
사용자가 "세트"를 정의할 수 있는 다른 방식은 "리스트"를 통해서이다. "리스트"는 "폴더"와 관련있는 것으로 생각될 수 있는데, 그 이유는 각각이 항목들의 세트를 정의하는 것으로 생각될 수 있기 때문이다. 그렇지만, "폴더"와 달리, 본 발명의 적어도 어떤 예들에 따른 "리스트"는 상기한 바와 같이 "부모폴더" 프로퍼티를 사용하여 이 관계를 정의하지 않는다. 오히려, "리스트"는 동일한 항목(예를 들어, 전자 파일)이 다수의 장소에(예를 들어, 다수의 독립적인 "리스트"에) 존재할 수 있게 해준다. "폴더"와 같이, "리스트"는 최종 사용자 개념이다. 전자 파일 또는 다른 항목을 다수의 "리스트"에 넣는 것은 기본 데이터를 나타내는 실제의 물리적 비트가 복제되게 하지 않으며, 오히려 기본 전자 파일 또는 항목이 그 "리스트"에 의해 참조된다(또는 어떤 방식으로 그에 "링크"되어 있다). 이 설명을 다시 실세계 예와 연결시키기 위해, 사람은 구입할 필요가 있는 물품 및 해야 할 필요가 있는 일을 추적하는 "쇼핑 리스트" 및 "급한 '할 일' 리스트"를 가질 수 있다. 이들 리스트 둘다는 "아내를 위한 생일 선물" 등의 항목을 포함할 수 있다. 사용자는 선물을 사는 것을 쇼핑 동안에 해야만 하는 어떤 것 및 꽤 긴급하게 해야만 하는 어떤 것 둘다라는 것을 알고 있다. 그렇지만, 사용자는 또한, 단지 이 항목이 그의 리스트 중 2개에 입력되어 있기 때문에, 이것이 사용자가 2개의 선물을 사야 할 필요가 있음을 의미하지 않는다는 것을 알고 있다. 오히려, 선물을 사는 하나의 행위가 사용자로 하여금 그의 각자의 리스트로부터 각각의 항목을 제거할 수 있게 해준다.
본 발명의 적어도 어떤 측면들이 실시될 수 있는 운영 체제는 또한 "자동 리스트"를 포함할 수 있다. 자동 리스트"는, "리스트" 및 "폴더"와 같이, 항목들의 세트를 정의한다. 이들 항목들의 세트는 컴퓨터 시스템 상에 저장되어 있거나 그를 통해 이용가능한 항목들과 연관된 공통의 프로퍼티 값에 기초하여 자동적으로 생성될 수 있다. 예를 들어, 원하는 경우, 사용자는 프로퍼티 값, 평가 = 별 5개에 기초한 자동 리스트를 가질 수 있다. 이 "자동 리스트" 특징을 사용하여, 사용자는, 어느 특정의 폴더 또는 "리스트"에 그의 파일이 나타날 수 있는지에 상관없이, 별 5개로 평가된 그의 파일들 전부와 관련된 정보를 용이하게 찾아내고 볼 수 있다. 파일 또는 항목이 그와 연관된 별 5개 평가를 갖는 한, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은, 예를 들어 사용자의 질의가 별 5개 자동 리스트를 보기 위해 요청을 할 때마다, 이 파일 또는 항목을, 이 동적으로 또 자동적으로 발생된 세트의 구성요소로서 자동적으로 포함하게 된다. "자동 리스트"의 다른 예는 예를 들어 최근에 생성된 파일, 최근에 편집된 파일, 빈번하게 사용되는 파일, 저작자 ID, 생성 시간/일자, 편집 시간/일자, 파일 유형, 애플리케이션 이름, 기타 등등을 포함할 수 있다.
"자동 리스트"의 내용에 관한 한가지 측면은 리스트의 범위(즉, "자동 리스트"를 생성하기 위해 검색되어질 일련의 파일 및/또는 장소)에 관한 것이다. "자동 리스트"의 범위에 대한 여러가지 제한이, 예를 들어 컴퓨터가 위치하고 있는 환경, 사용자 선호, 컴퓨터 또는 네트워크가 사용되는 방식, 기타 등등에 따라, 설정될 수 있다. 예를 들어, "자동 리스트"의 범위는 특정의 기계로, 기계 또는 기계들의 네트워크 상의 특정 사용자의 파일로, 및/또는 본 발명의 측면들로부터 벗어나지 않고 임의의 다른 원하는 방식으로 제한될 수 있다. 보다 구체적인 예로서, "별 5개" 자동 리스트의 범위는 주어진 물리적 컴퓨터 상의 파일 또는 폴더 및/또는 주어진 사용자에 의해 생성된 파일 또는 폴더 등의 검색할 일련의 특정 파일 또는 폴더로 제한될 수 있다. 그렇지만, 원하는 경우, 사용자는,사용자의 데스크톱 또는 랩톱 컴퓨터 중 어느 하나 상에 저장된 모든 "별 5개" 파일을 찾아내는 등의, 컴퓨터 및/또는 컴퓨터를 포함하는 네트워크 상의 모든 것에 걸쳐 검색하도록 자동 리스트 범위를 설정할 수 있다.
사용자가 그의 PC 상에 저장하는 파일(예를 들어, 문서, 음악, 비디오 및 사진 파일 등등)의 수가 증가함에 따라 또 네트워크화된 컴퓨터 시스템의 사용이 증가함에 따라, 사용자가 (예를 들어, 자동 리스트 또는 다른 검색을 위해) 보다 작은 검색 범위를 선택할 수 있는 것이 (과도한 관련없는 데이터(예를 들어, 다른 사용자 또는 다른 장소로부터의 데이터)의 찾아내기 및 디스플레이를 피하기 위해, 검색 지연을 피하기 위해, 기타 등등을 위해) 중요하게 될 수 있다. 보다 구체적인 예로서, 그래픽 디자이너는 그의 검색 및 반환된 내용을 사진만(또는 선택적으로 특정 사용자의 사진만)을 포함하는 하드 드라이브 부분(예를 들어, 디렉토리 기타 등등)으로 제한하기 위해 "자동 리스트" 검색의 범위를 정하고자 할 수 있다. 이 사용자는 꼭 PC 상의 모든 것 및/또는 PC가 연결되어 있을 수 있는 네트워크 상의 모든 것을 검색하려고 할 필요는 없다. 이러한 사용자는 "자동 리스트"에 대해 설정된 검색 파라미터도 만족시킬 수 있는 다른 사용자의 파일을 보고자 하지 않을 수 있다.
따라서, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법에서, 사용자는 검색 범위의 일부로서 "서브항목 도메인"을 선택 및 정의할 수 있다. "서브항목 도메인"은 컴퓨터 시스템이 검색할 보다 작은 범위를 정의하는 폴더들의 세트이다. 이 서브항목 도메인은 사용자가 그의 데이터, 어떤 프로퍼티와 함께 표시된 항목, 기타 등등을 저장하는 폴더들 및/또는 서브폴더들의 세트를 포함할 수 있다.
도 92a 및 도 92b는 서브항목 도메인 범위 설정 측면의 예를 나타낸 것이다. 예를 들어, 도 92a는 다수의 사용자(예를 들어, 사용자 A, B 및 C)에 의해 공유되는 개개의 컴퓨터 또는 네트워크(9200)를 나타낸 것으로서, 이 예시에서의 각각의 노드는 다양한 사용자에 의해 및/또는 그를 위해 생성된 폴더 또는 다른 파일 "컨테이너" 세트를 나타낸다. 상기한 바와 같이 "자동 리스트"의 생성에 관련한 활동을 비롯한 검색 활동 동안에, 사용자는 이들 이용가능한 "폴더" 또는 다른 요소의 일부분만을 검색하도록 시스템을 설정할 수 있다. 예를 들어, 어떤 검색 또는 자동 리스트를 위해 "서브항목 도메인 범위"를 설정함으로써, 사용자는 그의 검색을 단지 어떤 폴더의 파일들로 제한할 수 있다. 도 92a는 폴더 "사용자 B"를 포함한 그 아래에 있는 폴더들만을 검색하도록 설정되어 있는, 삼각형(9202)으로 표현된 "서브항목 도메인"을 나타낸 것이다. 물론, "서브항목 도메인"은 본 발명을 벗어나지 않고 네트워크(9200)의 임의의 부분을 포함하도록 설정될 수 있다. 게다가, 원하는 경우, 이 범위는, 본 발명을 벗어나지 않고, 주어진 컴퓨터 시스템에 의해 생성된 여러가지 서로 다른 자동 리스트에 대해 서로 다를 수 있다. 도 92a에 나타낸 것 등의 서브항목 도메인 범위를 사용함으로써, "자동 리스트" 또는 다른 다른 검색 활동의 결과는 훨씬 더 관련되어 있을 수 있는데 그 이유는 이 검색이 어떤 지정된 소스 데이터(예를 들어, 이 예에서 사용자 B의 데이터)만을 대상으로 하기 때문이다. 또한, 성능 속도가 증가될 수 있는데 그 이유는 검사할 항목들의 세트가 더 작기 때문이다. 물론, 사용자가, 자동 리스트 검색을 비롯하여, 임의의 검색 활동에 대한 서브항목 도메인을 용이하게 조정 및 변경할 수 있도록 사용자 인터페이스가 제공될 수 있다.
이 설정가능한 "서브항목 도메인"의 내용은 단일의 폴더 또는 심지어 폴더 계층구조의 단일의 공통 브랜치로 제한될 필요가 없다. 오히려, 원하는 경우, 본 발명에 따른 시스템 및 방법의 적어도 어떤 예들에 따르면, 사용자는 다수의 폴더에, 선택적으로 네트워크 또는 컴퓨터 메모리의 다수의 브랜치에 위치한 파일을 고려하기 위해 ("자동 리스트" 생성 검색 범위 등의) 검색 범위를 설정할 수 있다. 도 92b는 도 92a의 예시적인 개개의 컴퓨터 또는 네트워크(9200)를 나타낸 것이지만, 이 예에서, 검색 "서브항목 도메인"은, 서브항목 도메인 삼각형(9204, 9206)으로 표현된 바와 같이, 2명의 독립적인 사용자로부터 이용가능한 폴더에만 포함되어 있는 데이터를 검색하도록 설정되어 있다(도 92b의 예시된 예에서 사용자 B 및 C로부터의 사진 데이터). 다시 말하면, 이 서브항목 도메인 범위를 사용하여, "자동 리스트" 또는 다른 검색 활동의 결과는 훨씬 더 관련성있을 수 있는데 그 이유는 이 검색이 이 예에서 원하는 사용자의 데이터만을 대상으로 하기 때문이며, 성능 속도가 증가될 수 있는데 그 이유는 검사할 항목의 세트가 더 작기 때문이다.
본 발명의 부가적인 측면은 또한 상기한 측면들로부터 확장된다. 본 발명에 따른 적어도 어떤 예시적인 시스템 및 방법에서, 다수의 폴더 및/또는 프로퍼티는 컴퓨터 상에 저장된 정보의 검색 및/또는 디스플레이를 위한 범위로서 사용자에 의해 선택될 수 있다. 이러한 시스템 및 방법은, 예를 들어 도 87 내지 도 91과 관련하여 상기한 방식으로, 계층적 방식으로 프로퍼티 및/또는 폴더를 디스플레이하는 내비게이션 패널을 이용할 수 있다.
컴퓨터 상에 저장된 항목들의 폴더를 디스플레이하는 종래의 현재 이용가능한 "폴더 트리"에서, 사용자는 한번에 2개 이상의 폴더를 선택할 수 없다. 사용자가 다수의 폴더의 내용을 보고자 하는 경우, 사용자는 (예를 들어, 원하는 각각의 폴더에 대해 하나씩) 다수의 윈도우를 열어야만 하고 및/또는 원하는 폴더를 연속적으로 열어서 조사해야만 한다. 따라서, 사용자는 공통의 화면에서 다수의 폴더로부터의 모든 정보를 볼 수 없으며, 그에 의해 컴퓨터 시스템 또는 네트워크 상에 저장된 이용가능한 정보의 정확한 개요를 얻는 것이 어렵게 된다.
"리스트" 및 "자동 리스트"의 이용가능성은 이 문제를 더욱 악화시킨다. 상기한 바와 같이, 리스트 및 자동 리스트는 컴퓨터 시스템 또는 네트워크 상에 저장된 파일 및/또는 다른 항목을 정의 또는 분류하는 데 도움이 되는 프로퍼티 값의 세트를 포함할 수 있다. 사용자가, 디스플레이된 정보가 그와 연관된 다수의 프로퍼티를 포함해야 한다는 요건에 기초하여, 리스트 또는 자동 리스트 절차를 통해 제공된 정보(즉, 검색 기준을 만족시키는 것으로 식별된 관련 파일)를 추가적으로 축소하고자 하는 경우가 많다. 예를 들어, 사용자는 특정의 사람(예를 들어, 배우자)을 포함하는 특정의 여행지로부터의 모든 저장된 사진을 보고자 할 수 있다. 다중 프로퍼티 선택 기술을 사용할 수 없는 경우, 사용자는 이들 2개의 독립적인 프로퍼티 기준을 만족시키는 파일들의 서브셋을 용이하게 찾지 못할 수도 있다.
본 발명의 측면들은, 예를 들어 내비게이션 패널에 제공되어 있는 또는 다른 방식으로 사용자가 이용할 수 있게 되어 있는 프로퍼티의 계층적 리스트로부터 검색 조건의 일부로서 다수의 프로퍼티가 선택될 때, 검색의 수행, 검색 결과의 해석, 및/또는 검색 결과의 디스플레이를 가능하게 해주는 시스템 및 방법에 관한 것이다. 이러한 시스템 및 방법은, 예를 들어 여러가지 리스트, 자동 리스트, 및/또는 폴더를 내비게이션, 검색, 디스플레이 및/또는 그와 상호작용할 때, 사용될 수 있다.
본 발명의 이 측면에 관련한 한가지 특징은 다수의 프로퍼티 및/또는 다른 검색 파라미터를 포함하는 정보 또는 파일이 검색을 만족시키는 것으로 판정되는 방식에 관한 것이다. 보다 구체적으로는, 어떤 경우에, 사용자는 다중 프로퍼티 검색 질의의 어느 한 특징을 만족시키는 모든 정보의 결합된 합집합을 보는 것(즉, 프로퍼티 A "OR" 프로퍼티 B 중 어느 하나를 만족시키는 정보를 디스플레이하는 것)을 선호하며, 다른 경우에, 사용자는 다중 프로퍼티 검색 질의의 양쪽 특징을 만족시키는 정보만의 교집합을 보는 것(즉, 프로퍼티 A "AND" 프로퍼티 B를 만족시키는 정보를 디스플레이하는 것)을 선호한다. 어떤 보다 구체적인 예로서, 사용자가 그 안에 포함된 가족의 구성원과 함께 찍은 "Maui 사진"을 포함하는 모든 파일을 식별해주는 정보의 검색을 요청하는 경우, 사용자는 검색 시스템 및 방법이 단지 가족 구성원 AND Maui 둘다를 포함하는 그 사진만을 검색할 것으로 기대한다. 이러한 질의에서, 사용자는 일반적으로 모든 Maui 사진(가족 구성원이 포함되어 있지 않은 모든 사진을 포함함) 및 모든 가족 사진(Maui가 가지고 있지 않은 모든 사진을 포함함)을 보고자 하지 않는다. 반면에, 사용자가 별 3개 또는 별 4개 중 어느 하나로 평가되는 파일을 식별해주는 정보의 검색을 요청하는 경우, 사용자는 검색 시스템 및 방법이 이들 평가 중 어느 하나를 갖는 파일을 검색할 것으로 기대한다(왜냐하면 적어도 대부분의 파일이 사용자에 의해 동시에 별 3개 및 별 4개로 평가되지 않기 때문이다).
따라서, 본 발명의 적어도 어떤 측면은, 예를 들어 계층적 방식으로 정렬되어 있는, 예를 들어 프로퍼티 및/또는 폴더의 내비게이션 패널로부터, 선택된 정보 또는 다수의 검색 파라미터에 기초하여, 사용자가 집합 "합집합"을 수신하고자 할 것 같은지 또는 집합 "교집합" 정보를 수신하고자 할 것 같은지를 자동적으로 판정하는 알고리즘에 관한 것이다. 일반적으로, 이하에서 보다 상세히 설명하는 바와 같이, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은, 검색된 다수의 프로퍼티, 리스트, 폴더, 항목, 및/또는 다른 파라미터가 계층구조에서의 동일한 "프로퍼티"에 속할 때, (예를 들어, "검색", "파일 열거" 또는 다른 내비게이션 작업 동안에) 선택된 다수의 파라미터의 합집합(논리적 OR 연산)에 기초한 파일들에 관한 정보를 반환한다. 반면에, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은, 검색된 다수의 프로퍼티, 리스트, 폴더, 항목, 및/또는 다른 파라미터가 서로 다른 프로퍼티에 속하거나 또는 이들에 걸쳐 있을 때, (예를 들어, "검색", "파일 열거", 또는 다른 내비게이션 작업 동안에) 선택된 다수의 파라미터의 교집합(논리적 AND 연산)에 기초한 파일에 관한 정보를 반환한다. 이 알고리즘의 동작의 보다 상세한 예가 도 93 내지 도 103과 관련하여 이하에 기술되어 있다. 물론, 원하는 경우, 사용자는 주어진 검색 질의에 대한 자동적으로 선택된 AND 또는 OR 연산을 무시하여 그 특정의 질의에 대한 결과를 커스터마이즈하고 그를 목표로 하기 위해 (예를 들어, 인터페이스 화면, 우측 마우스 버튼 클릭, 기타 등등을 통해) 옵션 및/또는 기회를 부여받을 수 있다.
페이지 공간 컨트롤: 본 발명의 측면들에 따른 예시적인 시스템, 방법, 및 컴퓨터 판독가능 매체: 다중 프로퍼티 선택: 단일의 다중값 프로퍼티 내에서의 다중 선택; 도 93은 프로퍼티, 폴더, 기타 등등(예시된 예에서의 패널(9302) 내의 여러가지 노드)의 계층적 리스트를 포함할 수 있는, 내비게이션 패널(9302)을 포함하는 예시적인 디스플레이 화면(9300)을 나타낸 것이다. 노드의 아래에 저장된 및/또는 그와 연관된 정보는 선택적으로 (예를 들어, 자동적으로, 사용자 입력에 의해, 다른 입력에 의해, 파일이 다른 소스로부터 다운로드될 때, 기타 등등) 그 노드와 연관되는 정보의 개개의 전자 파일 또는 항목(예를 들어, 이메일 파일, 음악 파일, 디지털 사진 파일, 전자 문서, 오디오 및/또는 비디오 파일, 기타 등등)을 식별해주는 정보를 포함할 수 있다. 검색 질의 또는 파일 열거 활동에 대해 지정된 하나 이상의 기준에 대응하는 파일들 중 적어도 어떤 것을 식별해주는 정보가, 이 예시적인 디스플레이 화면(9300)에서, 디스플레이 패널(9304)에 디스플레이된다. 내비게이션 패널(9302)을 사용하여, 사용자는 파일과 연관되어 있는 할당된 프로퍼티를 나타내는 계층적 노드 중 하나 이상을 선택할 수 있고, 디스플레이 패널(9304)은 사용자 지정된 프로퍼티 기준을 만족시키는 파일 또는 다른 정보 컬렉션을 식별해주는 정보를 포함한다.
도 93에 나타낸 바와 같이, 이 예에서, 사용자는 시스템이 사람_A 및 사람_D(동 도면에서 하이라이팅에 의해 나타내어져 있음)를 보여주는 사진을 포함하는 파일을 식별해주는 정보를 검색해주기를 알려주었다. 보다 일반적인 설명으로서, 이 예에서, 사용자는 계층 구조로부터 단일의 다중값 프로퍼티 내에서 다수의 값을 선택하였다(즉, 단일의 프로퍼티("사람들")로부터 사람_A를 나타내는 계층적 아이콘의 선택 및 사람_D를 나타내는 아이콘의 선택). "사람들" 프로퍼티는 "다중값" 프로퍼티라고 하는데, 그 이유는 "사람들" 프로퍼티 아래의 파일들이 다수의 개별적인 프로퍼티 값을 가질 수 있기 때문이다(예를 들어, 주어진 사진은 2명 이상의 식별된 사람을 포함할 수 있고, 따라서 그와 연관된 다수의 "사람들" 자식 프로퍼티를 가질 수 있다). 이 질의, 검색 또는 "파일 열거" 명령에 응답하여, 본 발명의 이 예에 다른 시스템 및 방법은 사람_A 또는 사람_D 중 어느 하나를 포함하는 임의의 사진들을 검색한다(검색되기 위해, 시스템은 자동적으로 또는 어떤 사람은 언젠가 (예를 들어, 상기한 바와 같이 메타데이터로서) "사람_A" 또는 "사람_D" 프로퍼티 또는 키워드를 여러가지 사진 파일과 연관시켰어야만 하며, 그에 따라 그 사람(들)이 사진 안에 포함되어 있음을 알려주어야만 한다). 주목할만한 것은, 이 예시적인 검색 질의에서, 본 발명의 이 예에 따른 시스템 및 방법은 자동적으로 합집합 정보, 즉 사람_A 및 사람_D 둘다를 포함하는 임의의 사진(즉, 이 예에서 사진 ABD1, ABD2, ACD1, AD1 및 ABD3)을 비롯하여, (도 93에서의 아이콘들에 포함되어 있는 이름들에서 문자 "A" 및 "D"로 각각 나타내어져 있는) 사람_A OR 사람_B 중 어느 하나를 포함하는 파일을 식별해주는 정보를 검색한다. 본질적으로, 본 발명의 이 예에 따른 시스템 및 방법은 내비게이션 패널(9302)에서 사용자에 의해 지정된 입력 파라미터에 기초하여 논리적 OR 연산을 수행하였다.
따라서, 이 예로부터, 본 발명에 따른 적어도 어떤 예시적인 시스템 및 방법에 따른 선택 알고리즘의 제1 규칙이 도출될 수 있다. 이 규칙에 의해, 단일의 다중값 프로퍼티 세트 내의 다수의 세트의 사용자 선택으로부터 반환되는 정보는 자동적으로 "합집합된", 즉 논리적 "OR" 질의 언어 방식으로 반환되어진다. 물론, 원하는 경우, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 사용자에게 이 규칙 및/또는 이 자동 선택 동작을 무시하는 기능을 제공할 수 있다(그에 의해 "AND" 연산을 실행할 수 있다).
주목할 만한 것은, 예시된 디스플레이 패널(9304)에서, 2개의 선택된 데이터 세트가 전체로서 보여지거나 이용가능하고 서로 분리되어 유지된다는 것이다(즉, 이 예에서 사람_A 사진에 대한 하나의 서브패널(9306) 및 사람_D 사진에 대한 하나의 서브패널(9308)). 주목할 만한 것은, 단일의 리스트 항목이, 적절한 경우, 각각의 서브패널(9306, 9308)에 (또는 다른 것들에) 나타날 수 있다는 것이다(즉, 이 예에서, 사진 ABD1, ABD2, ACD1, AD1, 및 ABD3를 나타내는 아이콘이 각각의 서브패널(9306, 9308)에 나타난다). 물론, 예를 들어 소스 프로퍼티의 표시 없이 및/또는 동일한 파일 또는 항목의 반복된 표현을 제공하지 않고 파일 또는 항목의 컴파일된 리스트를 디스플레이하는 것을 비롯하여, 검색된 정보를 (예를 들어, 디스플레이 패널(9304)에) 디스플레이하는 많은 다른 방식이 본 발명을 벗어나지 않고 사용될 수 있다. 다른 예로서, 원하는 경우, 디스플레이 부분(9304)은 또한, 논리적 AND 연산이 요망된 경우에, 이 정보를 사용자가 즉시 이용가능하도록 해주기 위해 논리적 AND 연산의 결과(즉, 이 예에서, 사람 A 및 사람 D 둘다를 포함하는 사진)를 포함하는 디스플레이 서브패널, 기타 등등을 포함할 수 있다.
페이지 공간 컨트롤: 본 발명의 측면들에 따른 예시적인 시스템, 방법 및 컴퓨터 판독가능 매체: 다중 프로퍼티 선택: 단일값 프로퍼티 내의 다중 선택: 상기한 바와 같이, 도 93의 예에서, "사람들" 프로퍼티는 다중값 프로퍼티이다(그 프로퍼티 아래에 저장된 정보 항목(예를 들어, 파일)이 그와 연관된 기본적인 자식 프로퍼티 중 2개 이상을 가질 수 있음을 의미함). 그렇지만, 어떤 프로퍼티는 "단일값 프로퍼티"로 생각될 수 있는데, 이는 그 프로퍼티 아래에 저장된 각각의 정보 항목(예를 들어, 파일)이 이 프로퍼티의 기본적인 자식의 단지 하나의 인스턴스를 포함함을 의미한다. 단일값 프로퍼티의 예들은 크기, 평가, 기타 등등들 포함할 수 있지만, 이에 한정되는 것은 아니다. 도 94는 사용자가 (예를 들어, 파일 열거, 검색 질의 또는 다른 동작에서) 프로퍼티의 계층적 배열(또는 폴더, 기타 등등)을 포함하는 내비게이션 패널(9402)로부터 다수의 프로퍼티를 선택한 예시적인 디스플레이 화면(9400)을 나타낸 것으로서, 선택된 프로퍼티는 단일값 프로퍼티 "평가" 아래에 있다(즉, 사용자는 일반적으로 파일에 단지 하나의 평가를 제공할 수 있고 및/또는 제공하게 된다). 주목할 만한 것은, 내비게이션 패널(9402)에서의 하이라이팅으로부터 명백한 바와 같이, 사용자가 별 3개 또는 별 4개 평가를 갖는 모든 사진의 검색을 요청했다는 것이다.
이 질의, 검색, 또는 "파일 열거" 명령에 응답하여, 본 발명의 이 예에 따른 시스템 및 방법은 별 3개 OR 별 4개로서 평가된 임의의 사진을 검색한다(검색되기 위해, 본 시스템은 자동적으로 또는 어떤 사람은 언젠가 (예를 들어, 상기한 바와 같이, 메타데이터로서) 평가 프로퍼티를 여러가지 파일과 연관시켜야만 했다). 주목할 만한 것은, 이 예시적인 검색에서, 본 발명의 이 예에 따른 시스템 및 방법은 자동적으로 합집합 정보, 즉 별 3개 OR 별 4개 중 어느 하나로 평가된 파일을 식별해주는 정보를 검색한다. 본질적으로, 본 발명의 이 예에 따른 시스템 및 방법은 내비게이션 패널(9402)에서 사용자에 의해 지정된 입력 파라미터에 기초하여 논리적 OR 연산을 수행하였다. 실제로, 이 예에서, "평가" 프로퍼티가 단일값 프로퍼티이기 때문에, 논리적 "AND" 연산을 수행하는 것이 의미가 없는데, 그 이유는 "AND" 연산이 각각의 경우에 공집합을 반환하기 때문이다(즉, 각각의 파일이 단지 하나의 평가만을 포함하기 때문에, 검색 동안에 별 3개 AND 별 4개 평가 둘다를 포함하는 파일이 없게 된다).
따라서, 이 예로부터, 본 발명에 따른 적어도 어떤 예시적인 시스템 및 방법에 따른 선택 알고리즘의 다른 규칙이 도출될 수 있다. 이 규칙에 의해, 단일값 프로퍼티 세트 내의 다수의 세트의 사용자 선택으로부터 반환되는 정보는 자동적으로 합집합 방식으로 또는 논리적 "OR" 질의 언어 방식으로 반환된다. 물론, 원하는 경우, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 이 규칙 및/또는 이 자동 선택 동작을 무시할 수 있는 기능을 사용자에게 제공할 수 있다.
주목할 만한 것은, 예시된 디스플레이 패널(9404)에서, 2개의 선택된 데이터 세트가 전체로서 보여지거나 이용가능하게 되고 서로 분리되어 유지되고 있다는 것이다(즉, 이 예에서 하나의 서브패널(9406)은 별 3개로 평가된 사진에 대한 것이고 하나의 서브패널(9408)은 별 4개로 평가된 사진에 대한 것임). 주목할 만한 것은, 이 경우에, 양쪽 서브패널(9406, 9408)에(또는 다른 것들에) 단하나의 리스트 항목도 없는데, 그 이유는 각각의 파일이, 이 예에서의 정의에 의해, 단일의 평가값을 포함하기 때문이다. 물론, 본 발명을 벗어나지 않고, 예를 들어 소스 프로퍼티의 표시 없이 파일 또는 항목의 컴파일된 리스트를 디스플레이하는 것을 비롯하여, 검색된 정보를 (예를 들어, 디스플레이 패널(9404)에) 디스플레이하는 많은 다른 방식들이 사용될 수 있다.
페이지 공간 컨트롤: 본 발명의 측면들에 따른 예시적인 시스템, 방법 및 컴퓨터 판독가능 매체: 다중 프로퍼티 선택: 부가의 논리적 "OR" 예: 상기한 바와 같이, 상기 규칙은 폴더 구조에서 및/또는 계층적 프로퍼티 구조에서의 항목들에 적용될 수 있다. 도 95 및 도 96은 사용자 선택이 내비게이션 패널에서의 계층적 프로퍼티에 적용될 때의 어떤 부가적인 예를 나타낸 것이다.
도 95의 디스플레이 화면(9500)에 나타낸 바와 같이, 사용자는 내비게이션 패널(9502)에 존재하는 계층적 프로퍼티 테이블에서 2개의 독립적인 엔트리, 즉 자동차>수입품>독일산 프로퍼티 및 자동차>미국산 프로퍼티를 선택하였다. 선택된 프로퍼티가 여전히 공통의 다중값 부모 프로퍼티(이 예에서, "자동차") 아래에 있기 때문에, 상기 규칙이 적용되고, 디스플레이 패널(9504)은 이 질의, 검색, 또는 파일 열거 동작에 응답하여 2개의 선택된 프로퍼티의 합집합을 디스플레이한다. 보다 구체적으로는, 도 95에 나타낸 바와 같이, 디스플레이 패널(9504)은 논리적 OR 연산에 대응하는 모든 저장된 파일을 식별해주는 정보, 즉 어느 한 검색 조건, 즉 독일산 수입 자동차에 대응하는 저장된 디지털 사진 OR 미국산 자동차에 대응하는 저장된 디지털 사진을 만족시키는 정보를 포함한다. 논리적 AND 연산은 이 구체적인 실제 상황에서 의미가 별로 없거나 일어날 가능성이 별로 없는데, 그 이유는 일반적인 자동차가 "수입품" AND "미국산" 둘다인 것으로 생각되지 않기 때문이다(그렇지만, 예를 들어 다수의 자동차가 주어진 사진에 포함되어 있고 또 프로퍼티가 사진에 있는 자동차 둘다에 대한 파일과 연관되어 있는 경우, AND 연산은 히트를 반환할 수 있다).
주목할 만한 것은, 이 예에서, 계층적 구조에서의 2개의 선택된 항목(즉, 프로퍼티)이 동일한 계층 레벨에 없었다는 것이다. 그럼에도 불구하고, 이 경우에 논리적 OR 연산이 수행되었는데, 그 이유는 상기한 바와 같이 알고리즘의 규칙이, 선택된 프로퍼티가 공통의 부모 프로퍼티 아래에 위치하는 경우, OR 연산이 수행될 것을 요구하기 때문이다(그렇지만, 이 공통의 부모 프로퍼티가 양쪽 또는 어느 한 선택된 노드의 직접적인 부모일 필요는 없다).
주목할 만한 것은, 예시된 디스플레이 패널(9504)에서, 2개의 선택된 데이터 세트가 전체로서 주어져 있거나 이용가능하고 서로 분리되어 유지되고 있다는 것이다(즉, 이 예에서, 하나의 서브패널(9506)은 독일산 자동차 사진에 대한 것이고 하나의 서브패널(9508)은 미국산 자동차 사진에 대한 것임). 다시 말하면, 양쪽 서브패널(9506, 9508)(또는 다른 것들)에서 단하나의 리스트 항목도 나타나지 않지만, 단일의 사진이 2개 이상의 자동차를 포함할 수 있기 때문에, 서브패널(9506, 9508)에서 중복하는 사진이 있을 수 있다. 물론, 예를 들어 소스 프로퍼티의 표시 없이, 복제된 사진 리스트 없이, 파일 또는 항목의 컴파일된 리스트를 디스플레이하는 것을 비롯하여, 검색된 정보를 (예를 들어, 디스플레이 패널(9504)) 디스플레이하는 많은 다른 방식이 본 발명을 벗어나지 않고 사용될 수 있다. 또한, 원하는 경우, 논리적 AND 연산의 결과도 역시, 선택적으로 논리적 OR 연산의 결과와 함께, 디스플레이 패널(9504)에 디스플레이될 수 있다.
도 96은 내비게이션 패널(9602)에서의 다수의 계층적 프로퍼티 노드가 사용자에 의해 선택되어 있는 다른 예시적인 디스플레이 화면(9600)을 나타낸 것이다. 이 예에서, 노드 및 그의 대응하는 손자 노드 중 하나가 사용자에 의해 선택되어 있다(즉, 자동차 노드 및 자동차>수입품>영국산 노드가 선택되었다). 이 경우에, 논리적 AND 연산은 거의 또는 전혀 의미가 없는데, 그 이유는 사용자가 영국산 수입 자동차에만 대응하는 파일을 열거하려고 한 경우에, 사용자가 리스트를 생성하기 위해 단지 영국 노드를 선택할 수 있을 것이기 때문이다(다중 선택이 필요하지 않았다). 따라서, 상기 선택 규칙이 여전히 적용된다, 즉 선택된 프로퍼티가 공통 부모 프로퍼티(이 예에서, "자동차") 내에 위치하고 있기 때문에, 이 질의, 검색, 또는 파일 열거 동작에 응답하여, 시스템은 자동적으로 검색을 하고 디스플레이 패널(9604)은 자동적으로 2개의 선택된 프로퍼티의 합집합을 디스플레이한다. 보다 구체적으로, 도 96에 도시된 바와 같이, 디스플레이 패널(9604)은 논리적 OR 연산에 대응하는 모든 저장된 파일을 식별해주는 정보, 즉 어느 한 검색 조건을 만족시키는 정보, 즉 모든 자동차에 대응하는 저장된 디지털 사진 OR 수입된 영국산 자동차에 대응하는 저장된 디지털 사진을 포함한다.
상기한 여러가지 디스플레이 패널에서와 같이, 디스플레이 패널(9604)은 2개의 선택된 데이터 세트가 전체로서 이용가능하게 해주고 또 서로 분리되어 유지되게 해준다(즉, 이 예에서, 하나의 서브패널(9606)은 모든 자동차 사진에 대한 것이고 하나의 서브패널(9608)은 영국산 수입 자동차 사진에 대한 것임). 이 예시적인 시스템 및 방법에서, 서브패널(9608) 내의 영국산 자동차 사진 전부는 또한 보다 일반적인 자동차 서브패널(9606) 내에 포함되어 있는데, 그 이유는 모든 영국산 자동차 사진이 자동차 부모 노드 내에 속해야 하기 때문이다(예를 들어, 계층적 프로퍼티와 관련하여 상기한 바와 같이, 자식 프로퍼티가 파일에 할당될 때, 그 파일은 또한 할당된 자식 프로퍼티에 대한 모든 부모 프로퍼티를 자동적으로 할당받는다). 물론, 예를 들어 소스 프로퍼티의 표시 없이, 중복하는 사진의 디스플레이 없이, 기타 등등에 의해 파일 또는 항목의 컴파일된 리스트를 디스플레이하는 것을 비롯하여, 본 발명을 벗어나지 않고 검색된 정보를 (예를 들어, 디스플레이 패널(9604)) 디스플레이하는 많은 다른 방식들이 사용될 수 있다.
페이지 공간 컨트롤: 본 발명의 측면들에 따른 예시적인 시스템, 방법 및 컴퓨터 판독가능 매체: 다중 프로퍼티 선택: 논리적 "AND" 예: 도 93 내지 도 96의 상기 예들은 폴더, 계층적 프로퍼티, 기타 등등의 주어진 계층적 그룹 내에서의 다중 사용자 선택에 관한 것이다. 계층적 폴더 또는 프로퍼티 구조에서 다중 사용자 선택에 응답하여 어느 데이터를 디스플레이할지를 결정하는 예시적인 알고리즘의 다른 규칙이 도 97 내지 도 99와 관련하여 설명된다.
일반적으로, 이 알고리즘의 이 "규칙"은, 서로 다른 부모 프로퍼티 세트에 걸쳐 다중 사용자 선택이 행해질 때, 검색 결과의 "교집합"이 디스플레이될 것(즉, 논리적 AND 연산이 수행되어 그 결과가 디스플레이될 것을) 요구한다. 도 97에 예시된 예에서, 디스플레이 화면(9700)은 다중값 계층적 프로퍼티가 디스플레이되는 내비게이션 패널(9702)을 보여준다. 사용자는 최상위 레벨 부모 프로퍼티 세트 중 2개에 걸쳐 있는 2개의 프로퍼티, 즉 장소>토론토 및 사람들>사람_D를 선택하였다. 이 유형의 상황에서, 사용자는 일반적으로, 디스플레이된 결과가 사람_D도 역시 포함하는, 토론토에서 찍은 사진만을 포함하도록, 논리적 AND 연산이 수행될 것으로 기대한다(예를 들어, 일반적으로 이 유형의 검색 질의에 있어서, 사용자는 모든 토론토 사진 또는 사람_D를 포함하는 모든 사진을 보려고 하지 않을 것이다). 따라서, 이 예에서, 디스플레이 패널(9704)에 나타낸 바와 같이, 결과로 얻은 디스플레이된 결과는 그 안에 사람_D를 포함하는, 토론토 여행으로부터의 그 사진들만을 포함한다. 선택된 세트둘다의 교집합이 디스플레이되기 때문에, 상기에서 도 93 내지 도 96에서 나타낸 바와 같이(즉, 디스플레이 패널(9704)에서의 각각의 항목은 장소>토론토 리스트에 또한 사람들>사람_D 리스트에 존재하게 된다), 각각의 사용자 선택된 세트로부터의 결과를 따로따로 보여줄 필요가 없지만, 원하는 경우(예를 들어, 사용자가 개개의 세트 둘다를 보고자 할 경우를 포함하기 위해), 이들 개개의 선택된 세트도 역시 보여줄 수 있다.
물론, 본 발명을 벗어나지 않고 검색 결과를 (예를 들어 디스플레이 패널(9704)에) 디스플레이하는 임의의 방식이 사용될 수 있다. 게다가, 원하는 경우, 사용자는 본 발명의 이 예에 따른 시스템 및 방법에 의해 생성된 자동적인 AND 연산을 무시할 수 있는 기능을 제공받을 수 있다.
논리적 AND 연산의 응용이 다중값 계층적 프로퍼티에서의 사용에 한정되지 않는다. 예를 들어, 도 97에서의 사용자 선택 중 하나 또는 둘다가 단일값 프로퍼티(내비게이션 패널(9702)에 나타낸 별 "평가" 프로퍼티들 중 하나 등)를 포함하고 다른 하나가 다른 부모 프로퍼티 세트에("사람들" 또는 "장소" 프로퍼티 세트 등에) 위치하고 있는 경우, 선택된 별 평가 프로퍼티와 선택된 사람들 또는 장소 프로퍼티의 "교집합"이 디스플레이될 것이다(즉, 논리적 AND 연산이 여전히 수행되고 결과가 디스플레이되는데, 그 이유는 이들 선택이 서로 다른 프로퍼티 세트에 걸쳐 있기 때문이다).
논리적 AND 연산을 적용하기 위한 알고리즘의 규칙은 또한 서로 다른 계층적 프로퍼티에 걸쳐 선택이 행해질 때, 심지어 이들 선택이 계층적 구조 내에서 서로 다른 깊이에 위치하고 있을 때도 적용된다. 도 98은 일례를 나타낸 것이다. 도 98의 디스플레이 화면(9800)에 나타낸 바와 같이, 사용자는 내비게이션 패널(9802)에서 프로퍼티 키워드>자동차>수입품 및 날짜>2004를 선택하였다. 최상위 레벨 부모 프로퍼티가 서로 다르기 때문에, 논리적 AND 연산이 수행되고, 디스플레이 패널(9804)은 이들 2개의 프로퍼티의 교집합을 디스플레이한다(즉, 선택된 프로퍼티 둘다를 갖는 파일, 즉 2004년으로부터의 수입 자동차의 사진을 디스플레이한다). 선택된 노드들 중 한쪽이 다른쪽의 선택된 노드와 비교하여 다른 수의 부모 노드를 갖는다(따라서 계층구조에서 전체적으로 서로 다른 레벨에 존재한다)는 사실에도 불구하고 이 AND 연산이 수행된다.
사용자 선택된 프로퍼티 중 하나 또는 둘다가 단일값 프로퍼티인지 다중값 프로퍼티인지에 상관없이, 이 동일한 알고리즘 규칙이 적용될 수 있고, 유사한 교집합 결과가 획득될 수 있다.
게다가, 논리적 AND 연산을 적용하기 위한 알고리즘의 규칙은 또한 서로 다른 계층적 프로퍼티에 걸쳐 선택이 행해질 때, 심지어 이들 선택 중 적어도 하나가 계층구조에서 하위 레벨 항목을 포함하지 않을 때에도 적용된다. 도 99는 일례를 나타낸 것이다. 도 99의 디스플레이 화면(9900)에 나타낸 바와 같이, 사용자는 이 예에서 내비게이션 패널(9902)에서 프로퍼티 평가>별 4개 및 사람들을 선택하였다(사람들 노드 아래의 어느 특정의 사람도 선택되지 않음). 최상위 레벨 부모 프로퍼티가 서로 다르기 때문에, 논리적 AND 연산이 수행되고, 디스플레이 패널(9904)은 이들 2개의 프로퍼티의 교집합을 디스플레이한다(즉, 별 4개로 평가된, "사람들" 프로퍼티(예를 들어, 임의의 사람)가 그 안에 포함되어 있는 파일들에 관한 정보를 디스플레이한다).
페이지 공간 컨트롤: 본 발명의 측면들에 따른 예시적인 시스템, 방법, 및 컴퓨터 판독가능 매체: 다중 프로퍼티 선택: 폴더, 리스트 또는 다른 구조를 갖는 계층구조에서의 다중 선택의 사용: 상기한 바와 같이 계층구조에서의 다중 사용자 선택의 사용의 측면들은 또한 종래의 폴더를 포함하는 계층구조에도 적용될 수 있다(예를 들어,사용자 선택된 요소 중 하나 또는 둘다가 폴더 구조를 포함하는 경우에도, OR/AND 기능의 수행은 상기한 규칙을 사용하여 결정될 수 있다). 개념저그로, 본 발명의 적어도 어떤 예시적인 측면에 따르면, "폴더"는 단일값 프로퍼티로서 취급될 수 있다. 보다 구체적으로는, 상기한 바와 같이 개개의 파일이 하나의 종래의 폴더에만 존재하기 때문에, 본 발명의 이들 측면에 따르면 폴더가 단일값 프로퍼티로서 취급될 수 있다. 선택적으로, 원하는 경우, 다중 사용자 선택은 계층적 구조에서의 폴더 요소 및 프로퍼티 요소의 선택의 혼합을 포함할 수 있다. 여러가지 예들이 이하에 있다.
도 100은 계층적 프로퍼티 및 폴더 구조 둘다가 존재하는 내비게이션 패널(10002)을 포함하는 디스플레이 화면(90000)을 나타낸 것이다. 도 100에 나타낸 예에서, 사용자는 2개의 개별적인 폴더, 즉 내 그림>여행 폴더 및 내 그림>옛날 폴더를 선택하였다. 이 2개의 선택이 계층구조에서 동일한 최상위 레벨 부모 요소(즉, 이 예에서, "내 그림" 요소) 아래에 위치하고 있기 때문에, 상기한 여러가지 알고리즘 규칙의 적용을 통해 논리적 OR 연산이 적용되고, 디스플레이 패널(10004)에 나타낸 바와 같이, 디스플레이된 결과는 2개의 선택된 세트의 합집합을 보여준다. 이 예시된 예에서 이들 선택된 세트의 내용이 디스플레이 패널(10004)에 임의의 원하는 방식으로 디스플레이될 수 있는 반면, 디스플레이된 파일은 예를 들어 도 93 내지 도 96에서 일반적으로 상기한 바와 같이 개별적인 서로 다른 서브패널에서 식별된다.
상기한 바와 같이, 사용자 파일은 종래의 폴더 계층구조에서 단일의 장소에 존재한다(즉, 단일의 파일 또는 다른 항목이 동시에 2개의 독립적인 별개의 폴더에 존재할 수 없다). 따라서, 도 100에 예시된 상황에서 논리적 OR 연산이 가장 의미가 있는데, 그 이유는 논리적 AND 연산은 결과로 공집합을 반환하기 때문이다.
도 101은 사용자의 선택이 적어도 하나의 폴더 세트를 포함하고 또 이 선택이 계층구조의 독립적이고 서로 다른 부분(즉, 서로 다른 궁극적인 최상위 레벨 부모 노드를 갖는 부분)에 걸쳐 있는 상황에서 OR/AND 논리적 연산 선택 규칙 및 알고리즘이 적용되는 예에서의 디스플레이 화면(10100)을 나타낸 것이다. 도 101의 계층구조 내비게이션 패널(10102)에 나타낸 바와 같이, 사용자는 평가 노드(이 예에서, 별 4개) 및 폴더 노드(이 예에서, 내 그림>옛날 폴더 노드)를 선택하였다. 상기한 여러가지 규칙 및 알고리즘을 적용하면, 선택이 계층적 구조에서 서로 다른 최상위 레벨 부모 노드를 갖기 때문에, 논리적 AND 연산이 적용되고, 이들 2개의 계층 요소의 교집합에 관한 정보가 디스플레이 패널(10104)에 디스플레이된다. 보다 구체적으로는, 이 예에서, "별 4개" 평가를 갖는 저장된 "옛날" 사진 전부가 디스플레이 패널(10104)에 디스플레이된다. 물론, 본 발명을 벗어나지 않고 질의, 검색 또는 파일 열거 결과를 디스플레이하는 임의의 방식이 사용될 수 있다. 또한, 원하는 경우, 디스플레이 패널(10104)은 게다가 논리적 OR 연산으로부터의 결과를 보여주도록 설계될 수 있고 및/또는 사용자는 논리적 OR 연산이 요망됨을 어떤 방식으로 시스템에 알려줄 수 있다.
본 발명의 적어도 어떤 예들에 따르면, 동일한 OR/AND 논리 연산 선택 기능이 계층적 구조에서의 리스트 요소에 적용될 수 있다. "리스트"는 개념적으로 단지 파일 기타 등등의 일련의 항목을 포함하는 것으로 생각될 수 있다. 도 102는 여러가지 리스트 요소가 내비게이션 패널(10202)에 나타낸 계층적 구조에 포함되어 있는 예시적인 디스플레이 화면(10200)을 나타낸 것이다. "모든 리스트" 노드 아래의 다수의 요소, 즉 "톱 이슈" 노드 및 "프로젝트 Y" 노드가 사용자 선택되어 있다. 디스플레이 패널(10204)에서, 발생된 디스플레이는 이들 검색 조건 중 어느 하나, 즉 "톱 이슈"인 것으로 지정된 리스트 요소 OR "프로젝트 Y"에 대응하는 것으로 지정된 리스트 요소를 만족시킨 리스트 항목에 관한 정보를 제공한다. 주목할 만한 것은, 리스트 항목 중 일부가 양쪽 노드에 대한 그룹 아래에 포함될 수 있다는 것이다(예를 들어, 항목 2 및 항목 4). 이들 선택된 세트의 내용이 임의의 원하는 방식으로 디스플레이 패널(10204)에 디스플레이될 수 있지만, 디스플레이된 리스트 요소는 예를 들어 도 93 내지 도 96에서 일반적으로 상기한 바와 같이 개별적인 별개의 서브패널에서 식별된다. 또한, 원하는 경우, 디스플레이 패널(10204)은, 이 AND 결과를 사용자가 원할 경우에 대비하기 위해, 논리적 AND 연산으로부터의 결과도 또한 보여주도록 설계될 수 있다. 또한, 상기한 바와 같이, 원하는 경우, 사용자는 자동적인 OR 연산 선택을 무시할 수 있는 기능을 제공받을 수 있다.
상기한 OR/AND 논리 연산 선택 판정 알고리즘 및 규칙은 또한 사용자가 3개 이상의 계층 요소(예를 들어, 3개 이상의 폴더, 리스트 요소, 프로퍼티, 기타 등등)를 선택하는 상황에서 적용될 수 있다. 일반적으로, 이러한 상황에서, 동일한 계층적 부모 요소 세트 아래에서 행해진 임의의 선택에 대해 논리적 OR 연산(즉, 합집합)이 수행되고, 서로 다른 계층적 부모 요소 세트에 걸쳐 행해진 선택에 대해 논리적 AND 연산(즉, 교집합)이 수행된다. 선택적으로, 주어진 계층적 부모 요소 세트 내에서의 연산(즉, OR 연산)(있는 경우)이 먼저 수행될 수 있다. 도 103은 이러한 유형의 연산의 예를 나타낸 것이다.
구체적으로는, 도 103의 디스플레이 화면(10300)에 나타낸 바와 같이, 사용자는 계층적 내비게이션 패널(10302)로부터 3개의 요소, 즉 날짜>2004 프로퍼티, 키워드>자동차>수입품 프로퍼티, 및 키워드>자동차>미국산 프로퍼티를 선택하였다. 이에 응답하여, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은, 이들 기준 중 어느 하나를 만족시키는 저장된 키워드 프로퍼티를 포함하는 모든 저장된 파일을 찾아내기 위해, 선택된 키워드 프로퍼티에 대해 먼저 OR 연산을 수행한다. 이어서, 키워드 기준 중 어느 하나를 만족시키는 그 식별된 파일들 중에서, 어느 파일이 날짜 기준도 만족시키는지에 관한 판정이 (논리적 AND 연산을 적용함으로써) 행해진다. 디스플레이 패널(10304)에서의 디스플레이된 결과는 이어서 수입된 자동차 사진 및 2004로부터의 미국산 자동차 사진을 보여준다. 이들 선택된 세트의 내용이 ,이 예시된 예에서, 임의의 원하는 방식으로 디스플레이 패널(10304)에 디스플레이될 수 있지만, 파일에 관한 디스플레이된 정보는, 예를 들어 도 93 내지 도 96에서 일반적으로 상기한 바와 같이, 다른 "OR" 선택에 관한 개별적인 별개의 서브패널에 제공된다.
상기한 규칙 및 다중 사용자 선택에 논리적 OR 연산을 수행할지 또는 논리적 AND 연산을 수행할지를 판정함에 있어서의 이들 규칙의 적용이 유익한데, 그 이유는, 사용자가 컴퓨터 시스템 또는 네트워크로부터 정보를 저장, 탐색 및 검색하기 위해 계층적 프로퍼티, 폴더, 리스트, 또는 다른 구조를 사용할 때, 이들이 예측가능한 논리적 결과를 생성하기 때문이다. 물론, 원하는 경우 또 상기한 바와 같이, 사용자는 사용자가 이들 자동적인 검색 규칙을 언제라도, 예를 들어 이들 규칙이 임의의 개개의 경우에 원하지 않는 결과를 생성하는 경우, 무시할 수 있게 해주는 인터페이스를 제공받을 수 있다. 새로운 정보가 컴퓨터 시스템 또는 네트워크에 유입될 때, 새로운 정보가 기존의 계층구조에 포함될 수 있는지 새로운/부가적인 계층구조를 필요로 하는지에 상관없이, 상기 규칙이 계속하여 새로 추가된 정보에 적용될 수 있다. 어떤 방식으로 계층적 구조에 배치되었으면, 여러가지 선택이 주어진 프로퍼티 내에 있는지 다른 계층구조 요소 레벨에 있는지 및/또는 이들이 서로 다른 최상위 레벨 부모 프로퍼티에 걸쳐 있는지 다른 계층구조 요소 레벨에 걸쳐 있는지를 판정함으로써 상기 OR/AND 논리 연산 선택 절차가 수행될 수 있다.
페이지 공간 컨트롤: 본 발명의 측면들에 따른 예시적인 시스템, 방법 및 컴퓨터 판독가능 매체: 다중 프로퍼티 선택: 컴퓨터 판독가능 매체: 본 발명의 부가적인 측면들은 또한 여러가지 다중 프로퍼티 또는 다른 값 선택 방법을 수행하기 위한 및/또는 다중 프로퍼티 또는 다른 값 선택 방법을 포함하는 여러가지 시스템(상기한 시스템 및 방법을 포함함)에서 사용하기 위한 그 위에 저장되어 있는 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 관한 것이다. 이 컴퓨터 판독가능 매체는 상기한 컴퓨터 판독가능 매체의 여러가지 특정의 예에 저장되어 있는컴퓨터 실행가능 명령어를 포함할 수 있다.
페이지 공간 컨트롤: 본 발명의 측면들에 따른 예시적인 시스템, 방법 및 컴퓨터 판독가능 매체: 디스플레이 패널에서의 그룹화 및 스태킹: 현재 Windows
Figure 112007022760413-PCT00014
기반 컴퓨터 운영 체제(예를 들어, 미국 워싱턴 레드몬드 소재의 마이크로소프트사로부터 입수가능함)에서, (예를 들어, 검색 질의 또는 파일 열거 명령으로부터의) 일련의 파일을 그룹으로 구성하는 것이 가능하다. 예를 들어, 검색 도메인 내의 모든 파워포인트
Figure 112007022760413-PCT00015
프리젠테이션을 한 그룹으로 및/또는 모든 디지털 사진을 다른 그룹으로 배치하기 위해, 파일 "유형"별로 그룹화하는 것이 사용될 수 있다. 그렇지만, 사용자가 효율적으로 또 효과적으로 많은 일련의 항목을 처리하는 것이 어려울 수 있는데, 그 이유는 사용자가 추가적으로 고려하고자 하는 파일을 궁극적으로 찾아내기 위해 사용자가 여전히 정확한 그룹을 찾아내야 하기 때문이다. 예를 들어, 사용자가 그 안에 100,000개 파일을 포함하고 있는 폴더를 가지고 있는 경우, 이들 파일을 그룹화하는 것은 일들을 분류하는 데 얼마간 도움이 될 수 있지만, 사용자가 원하는 특정의 파일을 찾아내는 것이 여전히 어려울 수 있다(예를 들어, 특히 키워드 검색 또는 다른 검색 기술이 그룹화된 파일의 범위를 축소시키는 데 효과적이지 않은 경우).
본 발명의 적어도 어떤 예들에 따른 애플리케이션 프로그램 및/또는 운영 체제에서, 사용자는 파일들을 세트로 시각적으로 구성하기 위한 새로운/부가적인 방식으로서 "스태킹"하는 기능을 이용할 수 있다. 예를 들어, 시스템 및 방법이 "파일 유형"별로 스태킹하는 경우, 사용자는 그의 파일들 전부가 개별적인 세트, 예를 들어 파워포인트
Figure 112007022760413-PCT00016
프리젠테이션 파일에 대한 세트, 스프레드쉬트에 대한 세트, 디지털 사진에 대한 세트, 기타 등등으로 스태킹되어 있는 것을 볼 수 있다. 이들 세트 각각은, 예를 들어 컴퓨터-발생된 디스플레이에, 개념적으로 그 세트의 항목들에 대한 가상 컨테이너로서 역할하는 스택 아이콘에 의해 표현될 수 있다. 스태킹은 사용자가 관심을 가지고 있는 일련의 항목의 범위를 축소시키는 데 도움이 되는 아주 유용한 방식인데, 그 이유는 스태킹이 여러가지 이용가능한 스택 옵션을 명확하게 열거하여 사용자에게 알려주기 때문이다.
보다 구체적인 실세계 예에 적용될 때, 스태킹은 개념적으로 자동차 렌트 장소에 가서 차고지에 어느 컬러의 자동차가 있는지를 말해줄 것을 요청하는 것으로 생각될 수 있다. 오늘은 청색 및 적색 자동차를 이용할 수 있다고 당신에게 말해줄지 모른다. 개념적으로, 이것은 사용자가 그의 파일을 프로퍼티별로 스태킹할 때, 즉 사용자가 그 프로퍼티의 각각의 고유한 값에 대한 스택을 획득할 수 있을 때 일어나는 일이다.
이 스태킹 기능(또한 다른 디스플레이 기능)은 예를 들어 도 91 및 도 93 내지 도 103과 관련하여 상기한 것과 같은 사용자 인터페이스에 적용될 수 있다. 이러한 사용자 인터페이스에서, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 리스트, 자동 리스트, 폴더, 및 예를 들어 사용자 정의된 프로퍼티를 비롯한 프로퍼티 등의 것을 포함하는 정보를 보여줄 수 있다. 각각의 자동 리스트는 사용자가 여러가지 방식으로, 예를 들어 어떤 프로퍼티별로 그의 파일을 식별해주는 정보를 보는 방법을 제공하도록 설계될 수 있다. 보다 구체적인 예로서, 음악 자동 리스트는 예를 들어 연주하는 음악가별로 스태킹될 수 있으며, 이 연주하는 음악가 프로퍼티별로 검색하는 것은 사용자로 하여금 음악 컬렉션에 포함된 모든 음악가, 예를 들어 Bjork, Madonna, 기타 등등으로 식별된 스택을 볼 수 있게 해준다. 그렇지만, 단지 이 자동 리스트에의 단축키를 보여주는 것에서의 한가지 문제는 컴퓨터 시스템이 그에 저장된 많은 다른 음악가의 음악을 가지고 있고 또 보기에서 이용가능한 경우, 사용자가 원하는 개개의 음악가 및/또는 원하는 개개의 앨범, CD 또는 노래(들)를 찾아내는 것이 여전히 어려울 수 있다.
본 발명의 예들에 따른 시스템 및 방법의 한 측면은 이용가능한 자동 리스트의 스태킹 구조를, 그와 연관된 내비게이션 패널 및/또는 디스플레이 패널에서 서브노드로서 보여주는 것에 관한 것이다. 한가지 보다 구체적인 예로서, 상기한 "음악가" 자동 리스트 상황에 있어서, 본 발명의 적어도 어떤 예에 따른 시스템 및 방법은 사용자가 내비게이션 패널 및/또는 디스플레이 패널에서 "음악가" (또는 다른) 노드를 확장할 수 있게 해줌으로써 사용자가 컴퓨터, 네트워크 또는 시스템 상에 저장된 모든 고유의 음악가(또는 다른 노드)를 제어하고 및/또는 볼 수 있게 해줄 수 있다.
본 발명의 다른 측면들은, 예를 들어 내비게이션 패널 및/또는 이러한 정보를 제공하는 사용자 인터페이스의 디스플레이 부분에서, 정보의 그룹 및 스택에 관한 정보가 처리 및/또는 조작되는 방식에 관한 것이다. 보다 구체적으로는, 본 발명의 측면들은 "그룹화되고" "스태킹된" 정보를 동일한 방식으로 처리하고 또 그룹화된 자동 리스트가 내비게이션 패널에서 계층구조를 표현하도록 해줄 수 있다. 환언하면, 사용자가 디스플레이 패널에 "음악가"별로 그룹화된 음악 파일의 뷰를 갖는 경우, 본 발명의 예들에 따른 시스템 및 방법은 내비게이션 패널에 다양한 음악가에 대한 서브노드를 생성하는 데 사용될 수 있다. 적어도 어떤 경우에, 이 서브노드는 실제로 다른 스택을 포함할 수 있고, 따라서 사용자가 이들 서브노드 중 하나를 클릭할 때, 뷰에서의 일련의 항목들은 단지 그 결과로 필터링 축소된다. 이것은 뷰에 존재하는 항목들의 빠른 인덱스를 사용자에게 제공하고 사용자가 일련의 파일을 단지 시각적으로 또는 정신적으로 구성하지 않고 실제로 이 일련의 파일로 범위를 축소할 수 있게 해준다.
본 발명에 따른 또다른 예시적인 측면은 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법의 사용자가 부모 폴더에 스태킹하고 그의 폴더 계층구조를 단일화(flatten)할 수 있게 해주는 기능에 관한 것이다. 예를 들어, 사용자가 하드 드라이브 디렉토리 또는 다른 데이터 컬렉션(예를 들어, "D:\Data" 그룹)에 파일 유형별로 스태킹할 때, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 모든 서브폴더를 검색하고 그 항목들을 가져와 이들을 스택에 배치한다. 이것은 임의의 폴더로 내비게이션하여 그의 폴더 계층구조에 의하지 않고 원하는 프로퍼티 값별로 구성된 그의 내용을 볼 수 있게 해주는 기능을 사용자에게 제공한다.
일반적으로, 본 발명의 측면들은 유용한데, 그 이유는 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법에서, 내비게이션 패널에 동적 구성 구조를 생성하는 데 그룹화 및 스태킹이 사용될 수 있고 그것이 내비게이션 패널 또는 디스플레이 패널에서 한 그룹을 선택하고 그 뷰에서의 항목들을 단지 그 세트만을 디스플레이하도록 범위 축소시키는 기능을 제공하기 때문이다. 본 발명의 또다른 부가적인 일반 측면은 그룹화 및 스태킹을 자동 리스트에 대한 서브노드로서 취급하는 것 및 내비게이션 패널 및/또는 디스플레이 패널에서 그룹을 선택하고 이 선택을 통해 디스플레이된 뷰를 추가적으로 범위 축소시키는 기능에 관한 것이다. 본 발명의 이들 측면의 보다 구체적인 예에 대해 이하에서 설명한다.
상기한 바와 같이, "그룹화" 및 "스태킹"은 일련의 항목을 시각화하는 서로 다른 방식이다. 도 104는 내비게이션 패널(10402) 및 디스플레이 패널(10404)을 포함하는 디스플레이 화면(10400)(내비게이션 패널(10402)에서 수신된 입력에 기초하여 여러가지 저장된 파일 또는 항목에 관한 정보를 나타냄)을 나타낸 것이다. 주목할 것은, 도 104에서, 내비게이션 패널(10402)이 프로퍼티 또는 키워드 "Carnivora"이 선택되었음을 나타내고 또 대응하는 디스플레이 패널(10404)이 계층구조에서 Carnivora 부모 노드 바로 아래의 레벨에서 개개의 자식 노드에 대한 스택을 보여준다는 것이다. 보다 구체적으로는, 도 104의 예에 나타낸 바와 같이, 디스플레이 패널(10404)은 Candiae에 대한 사진의 스택 및 Felidae에 대한 사진의 스택을 포함한다. 주목할 것은, 내비게이션 패널(10402)에서, Candiae 및 Felidae 노드 아래의 자식 노드가, 이들 세트가 디스플레이 패널(10404)에서 스태킹된 것으로 나타내어져 있다는 사실에도 불구하고, (그의 최하위 레벨 아래에) 완전히 디스플레이된다는 것이다.
적어도 어떤 경우에, 스택은 디스플레이 패널(10404)에 정보를 디스플레이하는 가장 바람직한 방식을 구성하지 않을 수 있다. 예를 들어, 도 104에 나타낸 바와 같이, 스태킹이 적어도 어떤 경우에 바람직하지 않을 수 있는데, 그 이유는 사용자가 스택 내의 내용에 관한 임의의 정보를 용이하게 볼 수 없기 때문이다(예를 들어, 도 104에 나타낸 바와 같이, 사용자는 썸네일 아이콘 또는 스택의 내용에 관한 많은 다른 디스플레이된 정보를 볼 수 없다). 정보를 디스플레이 패널(10404)에 "미스태킹된" 방식으로 디스플레이하지 않고, 사용자는 적어도 어떤 경우에 마지막으로 사진(또는 특정의 파일에 관한 다른 보다 구체적인 정보)을 보기 위해 계층구조의 가장 깊은 레벨까지 "드릴 다운"해야만 할 수 있다. 이 요건은, 특히 계층구조가 많은 레벨을 갖는 경우, 계층구조에 많은 파일이 포함되어 있는 경우, 및/또는 원하는 파일이 계층구조 내에서 어디에 있는지 사용자가 확신하지 않는 경우, 불편할 수 있다.
도 105는 디스플레이 패널(10504)에서의 스태킹과는 달리 그룹화를 이용하는 다른 예시적인 디스플레이 화면(10500)을 나타낸 것이다. 주목할 것은, 동일한 노드(즉, 이 특정의 예에서, "Carnivora" 노드)가 내비게이션 패널(10502)에서 하이라이트된 채로 있지만 디스플레이 패널(10504)이 선택된 부모 노드 아래의 각각의 자식 노드 아래에 그룹화된 검색 결과를 별도의 서브패널(10506, 10508)로서 보여준다는 것이다. 게다가, 서브패널(10506, 10508) 내에서, 이 예시적인 디스플레이 화면(10500)에서의 기본적인 파일 정보는, 사용자가 계층구조 내의 기본적인 내용에 관한 정보를 빠르고 쉽게 볼 수 있도록, 미스태킹된 방식으로 나타내어진다.
주목할 것은, 도 105에 나타낸 예에서, 특정 노드(예를 들어, Candiae 노드) 아래에 포함된 항목들 모두에 관한 정보가, 그 정보가 위치하고 있는 계층구조에서의 레벨에 상관없이(예를 들어, 특정의 사진이 그와 연관된 "Candiae" 프로퍼티, "Canis" 프로퍼티, "Lupus" 프로퍼티, 또는 "Lantrans" 프로퍼티와 함께 저장되어 있는지에 상관없이), 각각의 서브패널에(예를 들어, 서브패널(10506)에) 제공된다는 것이다. 이 특징은 원하는 정보에의 보다 빠르고 쉬운 사용자 액세스 및 그의 인식을 가능하게 해준다. 주목할 것은, 이 동일한 디스플레이 패널(10504)이 다른 검색 또는 파일 열거 명령의 결과로서, 예를 들어 사용자가 내비게이션 패널(10502)에서 Candiae 및 Felidae 노드 둘다를 하이라이트한 경우에, 나타날 수 있다는 것이다.
사용자는 또한 정보의 다른 그룹을 보기 위해 내비게이션 패널(10502)의 계층적 구조에서 빠르게 내비게이션할 수 있다. 잠재적인 변화의 예는 도 105와 도 106의 비교에 의해 볼 수 있다. 주목할 것은, 도 105에서, 상기한 바와 같이, Carnivora 프로퍼티가, 그 프로퍼티와 함께 저장되고 선택된 프로퍼티의 자식 노드에 기초하여 그룹화된(즉, 이 예에서, Candiae 및 Felidae 자식 노드에 기초하여 그룹화된) 정보의 디스플레이를 제공하는, 내비게이션 패널(10502)에서 사용자에 의해 선택되었다는 것이다. 도 106의 디스플레이 화면(10600)에서, 사용자는 내비게이션 패널(10602)에서의 하이라이트된 선택을 보다 구체적인 Panthera 프로퍼티(Carnivora 프로퍼티 아래의 손자 노드)로 변경하였다. 도 106에 도시한 바와 같이, 이 변경은 디스플레이 패널(10604)로 하여금 Panthera 프로퍼티 노드 아래의 자식들에 대한 그룹화, 즉 Leo 및 Tigris 프로퍼티(서브패널(10606, 10608)을 각각 참조할 것)로 디스플레이된 사진의 그룹을 제공하게 한다. 도 105 및 도 106으로부터 명백한 바와 같이, 내비게이션 패널(10502, 10602) 및 디스플레이 패널(10504, 10604)은, 이들 패널과 관련하여 사용되는 계층적 프로퍼티와 함께, 사용자가 의미있는 방식으로 그의 저장된 데이터를 저장, 검색 및 내비게이션하고 또 계층구조 전체에 걸쳐 이용가능한 데이터의 유용한 썸네일 또는 다른 "미리보기" 정보를 얻을 수 있게 해준다. 주목할 것은, 내비게이션 패널에서의 내용 및 사용자 입력이 디스플레이 패널에 제공된 내용을 주도하지만, 원하는 경우, 사용자 입력이 또한 디스플레이 패널을 통해 허용될 수 있다는 것이다.
도 106 및 도 107의 디스플레이 화면(10600,10700)의 비교는 본 발명의 적어도 어떤 예들에 따라 존재할 수 있는 부가적인 특징을 나타낸다. 내비게이션 패널(10702)에서 여러가지 서로 다른 자동 리스트들 간에(예를 들어, 도 106에서의 키워드>Mammalia>Carnivora>Felidae>Panthera에서 도 107에서 찍은 날짜로) 변경할 때, 내비게이션 패널(10702)에서의 계층적 구조는 축소되지 않으며, 오히려 사용자가 놓아둔 대로 있다(예를 들어, 예시된 예에서, Mammalia 프로퍼티에 대한 전체 계층구조 및 그의 자식들이 노출된 채로 있다). 일반적으로, 본 발명의 적어도 어떤 예들에 따르면, 내비게이션 패널(10702)은 디스플레이 패널(10704)(예를 들어, 서브패널(10706, 10708))에 무엇이 보여지는지를 반영하지 않거나 반영하기 위해 변화되지 않고, 오히려 내비게이션 패널(10702)이 디스플레이 패널(10704)에 무엇이 제공되고 있는지를 주도한다.
내비게이션 패널(10702)의 이 "축소되지 않는" 특징은 여러가지 이유로 유용할 수 있다. 예를 들어, 사용자는 이 계층구조가, 예를 들어 종래의 전자 파일 및/또는 폴더 시스템과의 사용자 상호작용으로부터, 이와 같이 노출된 채로 있을 것으로 기대한다. 다른 예로서, 예를 들어 부가의 검색, 내비게이션 또는 미리보기를 위해, 파일에의 프로퍼티 할당을 위해, 기타 등등을 위해, 예를 들어 사용자가 계층 구조로 되돌아가기로 결정하는 경우, (예를 들어, 사용자에 의해 닫힐 때까지) 계층 구조를 이와 같이 열린 채로, 확장된 채로 또 이용가능한 채로 유지하는 것이 보다 편리할 수 있다. 게다가, 사용자가 내비게이션을 하고 아마도 수동으로 그 상태를 변경할 때 내비게이션 패널(10702)을 변화되지 않은 상태로 놔둠으로써, 사용자가 방문한 과거의 장소가 용이하게 이용가능한 채로 있게 되며, 따라서 원하는 경우, 사용자는 사용자가 가봤던 곳으로 빠르게 되돌아갈 수 있다.
원하는 경우, 본 발명의 적어도 어떤 예들에 따르면, 그룹화 및 스태킹의 조합이 디스플레이 패널에서 사용될 수 있다. 그룹화 및 스태킹의 이 조합된 사용의 예는 예를 들어 도 108에 도시된 사용자 인터페이스 디스플레이 화면(10800)의 디스플레이 패널(10804)에서 볼 수 있다. 보다 구체적으로는, 도 108은 저장된 디지털 음악의 컬렉션에 관한 정보를 포함하는 내비게이션 패널(10802)을 갖는 디스플레이 화면(10800)을 나타낸 것으로서, 저장된 음악에 관한 정보의 적어도 일부는 계층적 프로퍼티를 포함한다. 이 예시적인 디스플레이(10800)에서, 사용자는 포함된 음악 데이터가 여러가지 서로 다른 장르의 음악을 포함하는 프로퍼티와 함께 저장되어 있는 "SuperMusicView"라고 하는 자동 리스트를 하이라이트하였다(예를 들어, "클래식" 음악에 대한 하나의 자식 노드, "재즈"에 대한 것, "팝"에 대한 것, "랩"에 대한 것, 기타 등등). 물론, 본 발명으로부터 벗어나지 않고 계층적 구조에 임의의 수의 장르가 포함될 수 있다.
부모 "SuperMusicView" 노드를 선택함으로써, 본 발명의 이 예에 따른 시스템 및 방법은 여러가지 장르별로 그룹화되어 있는 시스템 상의 저장된 음악에 관한 정보를 디스플레이 패널(10804)에 디스플레이한다(예를 들어, 장르 "클래식", "재즈" 및 "팝" 각각에 대한 서브패널(10806, 10808, 10810)). 이 예에서, 각각의 개별적인 장르 그룹 내에, 예를 들어 앨범 또는 음악 선집이 발표된 10년간별로, 정보가 스태킹되어 있다. 원하는 경우, 예를 들어 디스플레이 패널(10804) 또는 내비게이션 패널(10802)에서 스택 내에 저장된 정보에 관한 보다 상세한 정보를 보기 위해, 사용자는 계층적 구조 내로 추가적으로 "드릴 다운"할 수 있다(예를 들어, 이 예시된 예에서, 개개의 CD 또는 앨범 타이틀, 개개의 앨범을 포함하는 스택을 갖는 그룹 또는 음악가를 수행함으로써 스태킹된 정보, 기타 등등). 본 발명의 시스템 및 방법의 적어도 어떤 예들에서 원하는 경우 앨범 또는 CD에 포함된 개개의 노래 또는 트랙의 타이틀에 관한 정보를 디스플레이하기 위해, 개개의 CD 또는 앨범 타이틀로 추가적으로 드릴링하는 것이 사용될 수 있다. 물론, 임의의 수의 스택, 그룹 및/또는 임의의 원하는 유형의 정보가 본 발명을 벗어나지 않고 계층적 프로퍼티 구조에 포함될 수 있다.
주목할 것은, 도 108에 도시된 예시적인 내비게이션 패널(10802) 및 디스플레이 패널(10804)에서, 자동 리스트의 계층 구조의 적어도 어떤 부분이, 그룹화 또는 스태킹이 디스플레이 패널(10804)에 나타나는지 여부에 상관없이, 내비게이션 패널(10802)에 나타내어진다. 실제로, 이 예시적인 구조에서, 디스플레이 패널(10804)은 그룹화된 정보 및 스태킹된 정보 둘다를 포함한다. 일반적으로, 그룹화된 정보는 "투명한 컨테이너"로서 존재하며, 이는 그룹 내의 내용이 즉시 이용가능하고 뷰에서 사용자에게 보일 수 있음을 의미한다. 반면에, "스택"에 포함된 정보는 "불투명한 컨테이너"에 있는 것으로 생각될 수 있으며, 이는 개개의 내용의 적어도 일부가 스태킹 디스플레이로 인해 사용자로부터 감추어져 있을 수 있음을 의미한다(그렇지만, 감추어진 내용은 원하는 경우 내비게이션 패널(10802) 및/또는 디스플레이 패널(10804)을 통해 개개의 스택을 추가적으로 하이라이트하거나 그에게로 "드릴 다운"함으로써 디스플레이되거나 이용가능하게 될 수 있다).
본 발명의 예들에 따른 시스템 및 방법에 포함된 윈도우, 디스플레이 패널, 서브패널, 기타 등등에서와 같이, 이용가능한 디스플레이 영역보다 더 많은 이용가능한 정보가 있는 경우, 디스플레이되지 않은 정보에의 사용자 액세스가 임의의 원하는 방식으로, 예를 들어 디스플레이 패널(10804)에 나타낸 바와 같은 스크롤 바의 사용을 통해, "다음 페이지/이전 페이지" 버튼 또는 아이콘을 통해, 및/또는 임의의 다른 원하는 방식으로 달성될 수 있다.
본 발명의 예들에 따른 계층적 프로퍼티 및 다른 요소, 내비게이션 패널, 및 정보의 그룹 및/또는 스택의 디스플레이는, 본 발명을 벗어나지 않고, 종래의 폴더 구조와 조합하여 사용될 수 있다. 일반적으로, (예를 들어, 디스플레이 패널에서) 폴더를 스태킹하는 것은 사용자에게 유용하지 않은데, 그 이유는 계층적 구조 내에서의 개개의 폴더가 크게 서로 다르고 독립적인 주제이고 또 폴더에 정보를 정리하는 사용자가 종종 많은 파일을 그의 폴더 계층구조의 임의의 주어진 레벨에 저장하지 않기 때문이다. 따라서, 본 발명의 적어도 어떤 예들에 따르면, 폴더에 스태킹하는 것은 폴더 계층구조를 단일화시키며 폴더 내에 포함된 항목들을 그 프로퍼티에 기초한 세트로 재구성한다. 도 109는 폴더 계층 구조가 그 안에 포함되어 있는 내비게이션 패널(10902)을 포함하는 디스플레이 화면(10900)을 나타낸 것이다. 내비게이션 패널(10902)에서 "휴가" 폴더가 사용자에 의해 선택될 때, 디스플레이 패널(10904)은 기본적인 폴더 구조(즉, 이 예에서, "휴가" 폴더 아래의 "월식" 및 "오로라" 폴더)는 물론, 그들 폴더 내에 포함된 개개의 파일을 디스플레이한다(그에 의해 기본적인 정보가 사용자에게 즉시 보이고 이용가능하게 되도록 폴더 구조를 "단순화(flattening out)시킨다"). 이것은, 예를 들어 선택된 폴더 및 그의 서브폴더 전부를 보도록 범위가 정해진 "자동 리스트" 요소 또는 노드를 생성함으로써, 달성될 수 있다.
물론, 디스플레이 패널(10900)에서 폴더로부터 정보를 제공하는 다른 방식이 본 발명을 벗어나지 않고 가능하다. 예를 들어, 원하는 경우, 도 109에 나타낸 계층적 구조를 단일화시키지 않고, 디스플레이 패널(10904)에서 폴더 구조가 유지될 수 있으며, 하이라이트된 폴더 자체가 몇개의 레벨의 계층구조를 포함하는 경우에 특히 그렇다. 예를 들어, 원하는 경우, 폴더가 내비게이션 패널(10902)에서 선택되는경우, 정보는 서브폴더에서 개개의 항목을 제거하고 이들 항목을 서브폴더 이름을 딴 스택에 보여줌으로써 디스플레이 패널(10904)에 디스플레이될 수 있다. 물론, 본 발명을 벗어나지 않고 다른 디스플레이 기술이 가능하다.
또한, 내비게이션 패널에서 하이라이트되거나 선택되어 있는 경우 데이터에 여러가지 조작이 행해질 수 있고 및/또는 그에 관련된 정보는 디스플레이 패널에 디스플레이된다. 도 110은 본 발명의 적어도 어떤 예들에 따라 사용될 수 있는 및/또는 나타날 수 있는 예시적인 디스플레이 화면(11000)을 나타낸 것이다. 이 예에서, 사용자 인터페이스 디스플레이 화면(11000)은 계층적 폴더 구조가 나타나는 내비게이션 패널(11002), 및 디스플레이 패널(11004)을 포함한다. 이 예에서의 폴더 구조에서 더 깊은 계층구조로 인해, 폴더(즉, 이 예에서 "휴가" 폴더)가 내비게이션 패널(11002)에서 하이라이트될 때, 디스플레이 패널(11004)에서의 정보는 기본적인 서브폴더 구조(즉, "휴가" 폴더 아래의 폴더)로부터 제거되고 개개의 스택에 배치된다. 사용자가 이어서 (예를 들어, 내비게이션 패널(11002)에서 "장소" 아이콘 또는 다른 프로퍼티 아이콘을 클릭하고 우측 클릭 또는 드롭다운 메뉴, 기타 등등으로부터 프로퍼티를 선택함으로써) 정보를 재구성하는 경우, 데이터는 도 110에 나타낸 바와 같이 위치별로 재구성 및 스태킹될 수 있다. 도 110에서의 이러한 데이터의 수정된 스태킹("휴가" 및 "장소"별로 스태킹됨)이 그 폴더에 제공된 방식으로 "휴가" 폴더의 내용에 대응하지 않기 때문에, 도 110의 내비게이션 패널(11002)에 하이라이팅이 나타나지 않는다. 사실상, 이 동작은 선택된 폴더(즉, 이 예에서 "휴가" 폴더)에 포함된 모든 정보의 단순화 및 이어서 선택된 프로퍼티 아래에 포함된 자식 프로퍼티에 기초한 이 정보의 스택으로의 재구성과 유사하다.
물론, 예를 들어 상기한 유형의 내비게이션 패널에서 사용자 명령에 응답하여 그룹화 및/또는 스태킹하기 위한 많은 옵션 및/또는 사용자 명령에 응답하는 다른 시스템 동작이, 본 발명을 벗어나지 않고, 시스템 및 방법에서 제공될 수 있다. 이하는 본 발명의 적어도 어떤 예들에 포함될 수 있는 옵션들의 적어도 어떤 부가적인 예들을 포함한다.
일례로서, 다중값인 프로퍼티에 의해 그룹화 또는 스태킹할 때, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은 그 프로퍼티 아래의 각각의 최상위 레벨 값에 대한 하나의 그룹 또는 스택을 제공할 수 있고, 추가의 자식 프로퍼티 값은 디스플레이 패널에 공개되지 않을 수 있다(그렇지만, 원하는 경우, 이들 하위의 자식 프로퍼티 값에서의 기본적인 정보가 디스플레이될 수 있고 및/또는 디스플레이를 위해 이용가능하게 될 수 있다). 이러한 시스템에서, 원하는 경우, 사용자는 여러가지 계층구조 레벨 그룹으로 내비게이션함으로써, 예를 들어 계층적 내비게이션 패널을 사용함으로써, 디스플레이 패널에 제공된 스택으로 드릴 다운함으로써, 기타 등등에 의해 자식 프로퍼티 값을 노출시킬 수 있다.
원하는 경우, 본 발명의 적어도 어떤 예들에 따르면, 모든 키워드(그룹화되거나 스태킹됨)를 단순 리스트로서 보기 위한 어떤 방식도 제공될 필요가 없으며, 내비게이션 패널에 하이라이트된 정보는 디스플레이 패널에 디스플레이된 것을 제어한다. 원하는 경우, 본 발명의 적어도 어떤 예들에 따른 시스템 및 방법은, 예를 들어 사용자가 "모든 스택 확장", "이 스택 확장", 및/또는 기타 등등을 할 수 있게 해주는 메뉴 항목(예를 들어, 버튼, 우측 클릭 메뉴, 도구막대 메뉴, 기타 등등)을 제공함으로써, 사용자가 임의의 레벨에서 "언스태킹"할 수 있게 해줄 수 있다.
정보가 그룹화 및/또는 스태킹되어 있는 동안, 다른 동작, 예를 들어 그룹 및/또는 스택에 포함되어 있는 계층적 프로퍼티에 관한 동작도 역시 행해질 수 있다. 한 예는 드래그 및/또는 드롭 동작에 관한 것이다. 본 발명의 적어도 어떤 예들에서, 항목을 한 그룹에서 다른 그룹으로 드래그할 때, 그 항목은 새로 적용된 그룹 및/또는 그에 적용된 스택의 프로퍼티 값(들)을 갖도록 변경될 수 있다(즉, 드래그 및/또는 드롭 동작으로부터 "목적지" 그룹 및/또는 스택의 프로퍼티 값(들)도 포함하고 또 선택적으로, 필요하고 원하는 경우, 적어도 원래의 소스 그룹 및/또는 스택의 프로퍼티 값(들)을 제거하도록 변경된다). 다른 예시적인 동작은 "붙여넣기" 동작에 관한 것이다. 항목이 붙여넣기 동작에 의해 새로운 그룹 및/또는 스택에 배치될 때, 목적지 프로퍼티 및 그의 부모 프로퍼티 값(들)이 새로 배치된 항목에 적용될 수 있다.
또한, 많은 서로 다른 유형의 디스플레이 또는 디스플레이 내용이, 그룹 및/또는 스택으로의 내비게이션에 응답하여, 제공될 수 있다. 그렇지만, 상기한 바와 같이, 본 발명의 적어도 어떤 예들에 따르면, 그룹 타이틀 프로퍼티 값을 갖는 모든 항목은 물론, (있는 경우) 이 그룹/부모 프로퍼티 값의 자식 프로퍼티 값이 첨부된 모든 항목이 초기 디스플레이에 나타날 수 있다. 원하는 경우, 어떤 유형의 표시자가, 계층구조에서의 항목이 자식 프로퍼티 값을 디스플레이하기 위해 추가적으로 확장될 수 있음을 나타내기 위해, 내비게이션 패널 및/또는 디스플레이 패널에 제공될 수 있다(예를 들어, 본 명세서의 도면들에 도시되어 있는 몇개의 예시된 예들에서 "+" 기호가 아이콘 또는 위젯과 함께 사용된다). 본 발명을 벗어나지 않고 동일한 규약이 필터링 메뉴에서 사용될 수 있다. 도 111은 디스플레이 화면(11100)의 디스플레이 패널(11104)에 포함된 정보의 추가적인 사용자 필터링을 가능하게 해주는 예시적인 메뉴(11102)가 (예를 들어, 우측 클릭 동작을 통해 또는 임의의 다른 적절한 방식으로) 풀업되어 있는 예시적인 디스플레이 화면(11100)을 나타낸 것이다. 보다 구체적으로는, 이 예에서, 필터링을 위해 사용될 원하는 메뉴 항목을 클릭함으로써, 디스플레이 패널(11104)에 존재하는 정보의 변경이 행해질 수 있다. 이 예에서, 각각의 메뉴 항목의 우측 멀리 있는 삽입기호 ">"는, 원하는 경우, 추가적인 하위 계층 레벨이 필터링에 이용가능함을 나타내는 데 사용된다.
본 발명의 부가적인 측면은 또한 여러가지 그룹화 및/또는 스태킹 방법을 수행하기 위한 및/또는, 상기한 시스템 및 방법을 비롯하여, 그룹화된 방식 및/또는 스태킹된 방식으로 프로퍼티, 폴더, 리스트, 기타 등등의 정보를 디스플레이하는 여러가지 시스템에서 사용하기 위한 그 위에 저장된 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 매체에 관한 것이다. 컴퓨터 판독가능 매체는 상기한 컴퓨터 판독가능 매체의 여러가지 특정의 예에 저장되어 있는 컴퓨터 실행가능 명령어를 포함할 수 있다.
페이지 공간 컨트롤에서의 다중 루트: 공지의 내비게이션 시스템이 단지 하나의 루트 노드를 포함하기 때문에, 내비게이션 트리는 사용자 폴더 및 다른 구조의 구성을 단일의 표현으로 제한한다. 이러한 제한은 유사한 관련성을 갖는 폴더를 효율적으로 보고 내비게이션하는 것에 상당한 장애를 제공할 수 있다. 일례에서, 사용자는 그의 저장 드라이브 각각에 제한된 공간을 가질 수 있고 따라서 어쩔 수 없이 그의 사진을 2개의 개별적인 드라이브에 저장해야만 한다. 공지의 단일 루트 해결책에서는, 사용자는 내비게이션 트리를 2개의 서로 다른 저장 지점에서 상당히 확장시킴으로써 어쩔 수 없이 양쪽 저장 영역에 액세스해야만 한다. 이러한 내비게이션 방법은 양쪽 세트의 사진을 동시에 보는 것에 장애가 된다. 따라서, 본 발명의 측면들에 따르면, 애플리케이션 또는 사용자는 페이지 공간 컨트롤, 예를 들어 상기한 내비게이션 패널에 다중 루트를 설정할 수 있다.
도 112는 본 발명의 예시적인 실시예에 따른 다중 루트 내비게이션 창을 구현하는 쉘 브라우저 윈도우의 스크린샷(11200)의 일부를 나타낸 것이다. 쉘 브라우저 윈도우(11201)은 윈도우의 상부에 걸쳐 있는 메뉴 바(11205), 우측에 있는 쉘 브라우저 창(11210), 및 쉘 브라우저 윈도우(11201)의 좌측을 따라 있는 다중 루트 내비게이션 창(11215)로 이루어져 있다. 쉘 브라우저 윈도우(11201) 내의 다중 루트 내비게이션 창의 구현은, 본 명세서에서 기술하는 바와 같이, 사용자에게 내비게이션함에 있어서의 상당한 유연성을 제공한다. 사용자는 쉘 브라우저 창(11210)에서의 페이지 뷰를 통해 개개의 폴더 또는 페이지에 액세스함으로써 파일 및/또는 데이터를 브라우징하거나 페이지 뷰에 대응하는 문서 또는 파일을 나타내는 원하는 노드로 직접 점프함으로써 내비게이션 창(11215)을 사용하여 내비게이션할 수 있다. 본 명세서에서 사용되는 바와 같이, 페이지는 관련 문서의 컬렉션을 말하며, 페이지 뷰는 특정 페이지 내의 데이터 항목의 그래픽 디스플레이를 말하고, 페이지 노드는 특정 페이지의 아이콘 또는 그래픽 표현을 말한다. 각각의 페이지는 정적 리스트, 자동 리스트, 물리적 폴더, 가상 폴더, 및 관련 파일, 데이터 또는 페이지의 임의의 다른 구조 또는 데이터 컬렉션을 포함 및/또는 나타낼 수 있고, 쉘 브라우저 창(11210)에 디스플레이된 각각의 페이지는, 이하에서 더 기술하는 바와 같이, 내비게이션 창(11215)에 디스플레이되는 대응하는 노드를 가질 수 있다. 쉘 브라우저 창(11210) 및 내비게이션 창(11215) 둘다를 동시에 볼 수 있는 것은 다중 루트 내비게이션 창(11215)과 연관된 많은 커스터마이제이션 옵션을 용이하게 해준다. 예를 들어, 폴더 또는 리스트는, 내비게이션 창(11215)에 부가적인 루트를 정의하기 위해, 쉘 브라우저 창(11210)으로부터 내비게이션 창(11215)으로 드래그될 수 있다. 내비게이션 창에서, 루트 노드는 일반적으로 부모 페이지 노드가 없는 페이지 노드와 관련되어 있다. 본 발명의 한 측면에 따르면, 내비게이션 페이지에서의 각각의 루트 노드는 부모 노드를 가질 수 있지만, 내비게이션 창은 루트 노드로서 식별된 노드의 어떤 부모도 디스플레이하지 않는다. 따라서, 사용자는 루트 노드가 존재하는 경우, 그 루트 노드 자체를 통해 루트 노드의 부모로 내비게이션할 수 없다.
도 113은 본 발명의 예시적인 실시예에 따른 다중 루트 내비게이션 창을 나타낸 것이다. 다중 루트 내비게이션 창(11215)은 다중 루트 노드(11311, 11312, 11313)를 포함할 수 있다. 루트 노드는 통상 하드 디스크 등의 장치 상에 저장된 데이터를 내비게이션하기 위한 시작점으로서 사용된다. 내비게이션 창(11215)은, 데이터의 구성을 그래픽으로 나타내기 위해, 루트 노드(11311, 11312, 11313)를 임의의 확장된 후손 노드와 결합시킨다. 한 계층적 표현에서, 루트 노드(11311, 11312, 11313)는, 그의 상태를 루트 노드로서 전달하기 위해, 내비게이션 창(11215)에서의 하나의 수직축을 따라 정렬될 수 있다. 따라서, 루트 노드(11311, 11312, 11313)의 자식 페이지(11321, 11322, 11323)는 각각 그의 각자의 루트 노드의 아래에 배치되고 루트 노드(11311, 11312, 11313)의 수직축의 우측에 위치한 제2 수직축 상에 정렬되어 있다. 제1 페이지가 제2 페이지에 직접적으로 의존하는 경우, 제1 페이지 또는 노드는 제2 페이지 또는 노드의 후손이라고 말한다. 루트 노드(11311, 11312, 11313)와 후손 페이지 노드(11321, 11322, 11323)의 상대적 위치는 그의 계층적 관계를 그래픽적으로 나타낸다. 저장 계층구조의 추가의 레벨(예를 들어, 루트 노드의 후손의 후손)은 배향을 위해 부모 페이지 노드의 위치를 사용하여 상기한 방식에 따라 내비게이션 창(11215)에 표현될 수 있다. 당업자라면, 기술 분야에 공지된 바와 같이, 루트 노드와 그의 후손의 계층적 관계를 표현하기 위해 수많은 조상/후손 배향 방식이 이용될 수 있음을 잘 알 것이다.
각각의 루트 노드(11311, 11312, 11313) 및 후손 페이지 노드(11321, 11322, 11323)는 확장 컨트롤 위젯(11320), 식별 아이콘(11326) 및 식별 텍스트(11325)를 더 포함할 수 있다. 일반적으로, 식별 텍스트(11325)는 그 안에 저장된 페이지 또는 파일의 일반적인 카테고리 또는 설명을 전달한다. 예를 들어, 루트 노드(11311)는 그 페이지의 내용을 사용자 Lyon에 속하는 문서로서 식별하기 위해 "Lyon의 문서 폴더"로 표시될 수 있다. 식별 아이콘(11326)은, 사용자가 하나 이상의 루트 노드(11311, 11312, 11313) 또는 페이지 노드(11321, 11322, 11323) 간을 그래픽적으로 구별할 수 있게 해주기 위해, 식별 텍스트(11325)에 인접하여 배치될 수 있다. 예를 들어, 사용자는 어떤 페이지에 대한 그의 소유권을 표시하기 위해 또는 표현된 장소에 저장된 파일의 유형을 나타내기 위해 고유한 아이콘을 생성할 수 있다. 이와 유사하게, 사용자는 다른 유형의 페이지(예를 들어, 폴더, 리스트, 자동 리스트)를 표현하기 위해 다른 아이콘을 사용할 수 있다. 페이지 노드에 액세스하여 그의 내용을 보기 위해, 사용자는 식별 텍스트(11325)를 더블클릭하거나 특정의 노드와 연관된 확장 컨트롤 위젯(11320)을 토글할 수 있다. 이들 방법 중 어느 하나를 사용하여, 사용자는 부모 페이지 노드를 확장할 수 있고 그에 의해 그의 후손 노드를 보여줄 수 있다. 확장 컨트롤 위젯(11320)이 없으면 페이지 노드가 후손을 갖지 않으며 따라서 확장될 수 없음을 신호하는 것일 수 있다. 확장 컨트롤 위젯(11320)이 존재하는 경우, 컨트롤 위젯(11320)은 대응하는 페이지 노드의 현재 상태로 변화될 수 있다(즉, 확장 또는 축소될 수 있다). 예를 들어, 확장 컨트롤 위젯(11320)은, 페이지 노드가 축소되어 있을 때(즉, 그의 후손 노드를 감추고 있을 때), 식별 텍스트(11325)로부터 멀어지는 쪽을 가리키는 투명한 화살표(11350)를 포함할 수 있다. 반대로, 페이지 노드가 확장된 상태에 있는 경우, 확장 컨트롤 위젯(11320)은 그 페이지 노드의 디스플레이된 후손쪽을 가리키는 새까만 화살표(11351)를 포함할 수 있다. 확장 컨트롤 위젯(11320)은, 기술 분야에 공지되어 있는 바와 같이, '+' 및 '-' 등의 다양한 심볼, 컬러 및/또는 애니메이션을 사용하여 다수의 방식으로 구현될 수 있다.
도 114a는 본 발명의 예시적인 실시예에 따른 내비게이션 창을 커스터마이즈하는 방법을 나타낸 것이다. 사용자는 새로운 루트 노드를 추가하는 것, 기존의 루트 노드를 제거하는 것, 페이지 노드가 그 창에서 나타나는 순서를 수정하는 것, 및 페이지 또는 루트 노드에 대한 단축키를 생성하는 것을 비롯하여, 다양한 방식으로 내비게이션 창(11215)을 커스터마이즈할 수 있다. 이 실시예에서, 내비게이션 창을 커스터마이즈하는 방법은 사용자가 지정된 페이지를 표현하는 노드를 루트 노드로서 창(11215)에 추가하는 것을 허용한다. 새로운 루트 노드의 추가는, 관련없는 부모 페이지를 우회함으로써, 종종 사용되는 페이지로의 내비게이션을 용이하게 해준다. 새로운 루트 노드를 추가하기 위해, 사용자는 처음에는 기술 분야에 일반적으로 공지된 쉘 브라우징 방법을 사용하여 원하는 페이지(11457)를 찾아낼 수 있다. 예를 들어, 사용자는 도 112의 쉘 브라우저 창(11210)을 사용하여 원하는 페이지(11457)를 찾아낼 수 있다. 원하는 페이지(11457)를 찾아낸 후에, 사용자는 이어서 쉘 브라우저 창(11210)(도 112)으로부터 페이지(11457)를 선택하여 이를, 도면에 나타낸 바와 같이, 내비게이션 창(11215)으로 드래그할 수 있다.
새로운 루트 노드를 생성하기 위한 사용자 요청을 수신할 시에, 내비게이션 창(11215)은 페이지 유형을 식별하고, 페이지의 물리적 위치를 획득하며, 페이지의 후손을 결정하고 페이지의 물리적 장소에 대한 포인터를 포함하는 루트 노드 및 확장가능/축소가능 후손 리스트를 생성할 수 있다. 간단한 포인터 또는 단축키와는달리, 루트 노드는 사용자가 노드를 선택함으로써 대응하는 페이지를 볼 수 있게 해줄 뿐만 아니라 연관된 후손 리스트를 보거나 감출 수 있게(즉, 확장하거나 축소할 수 있게) 해주는 동적 도구이다. 예를 들어, 사용자가 내비게이션 창(11215)에서 폴더 "Louie의 문서"를 루트 노드로 만들려고 하는 경우, 내비게이션 창(11215)은 그것이 폴더 페이지 유형이라는 것을 식별한다. 그 다음에, 내비게이션 창(11215)이 이름 "Louie의 문서"가 "Louie의 문서"의 물리적 또는 가상적 장소를 가리키는 노드 구조를 그 창(11215)에 생성한다. 루트 노드가 정적 또는 동적 리스트를 나타내는 경우, 루트 노드는 이 루트 노드가 참조하는 리스트의 정의의 장소를 식별하는 정보를 저장할 수 있다. 부가적인 페이지/루트 노드가 이와 유사하게 내비게이션 창(11215)에 추가될 수 있다. 본 발명의 일 실시예에서, 루트 노드의 리스트는 시스템 옵션, 하드웨어, 기타 등등에 대응하는 데이터 및 설정을 포함할 수 있는 레지스트리에 저장된다. 레지스트리 등의 매체에 저장하는 것은 내비게이션 창에서의 루트 노드의 커스텀 리스트가 브라우징 세션마다 존속할 수 있게 해준다. 당업자라면 다른 방법들의 어레이를 사용하여 또한 다양한 다른 매체에 노드의 리스트가 저장될 수 있다는 것을 잘 알 것이다.
사용자는, 컨텍스트 메뉴에서 이용가능한 제거 옵션을 사용함으로써, 기존의 루트 노드(11312)를 내비게이션 창(11215)으로부터 제거할 수 있다. 본 발명의 일 실시예에서, 사용자는, 루트 노드(11312)를 선택 및/또는 우측 클릭함으로써(즉, 마우스를 사용함으로써), 특정의 루트 노드(11312)의 컨텍스트 메뉴에 액세스할 수 있다. 사용자가 컨텍스트 메뉴로부터 제거 옵션을 선택하면, 내비게이션 창(11215)은 선택된 루트 노드(11312) 및 그의 연관된 후손 리스트(11412)를 제거한다.
도 114b를 참조하면, 사용자는 루트 노드(11311, 11312, 11313)를 선택하여 이를 내비게이션 창(11215)에서의 그의 선호된 장소로 드래그함으로써 루트 노드(11311, 11312, 11313)의 순서를 추가적으로 조정할 수 있다. 사용자는 이와 유사하게 공통 부모를 갖는 후손 노드를 재정렬할 수 있다. 목적지 장소는 루트 노드의 정확한 재배치를 보장하기 위해 위치 표시자(11470)에 의해 식별될 수 있다. 예를 들어, 사용자는 작업 페이지(11490)를 위치 표시자(11470)에 의해 식별되는 장소로 드래그함으로써 Lyon의 문서 폴더(11312)를 재구성할 수 있다. 다른 대안으로서, 사용자는 내비게이션 창(11215) 상의 기존의 페이지를 바탕화면으로 드래그할 수 있다. 그렇게 함으로써, 사용자는 페이지 노드를 내비게이션 창(11215)으로부터 제거하지 않고 바탕화면에 선택된 페이지로의 단축키를 생성할 수 있다. 이러한 경우에, 내비게이션 창(11215)은 노드 포인터의 복사본을 생성하여 그 복사본을 바탕화면 상에 배치할 수 있다. 또다른 대안(도시생략)은 사용자가 부모 및 자식 노드를, 이들이 동일한 계층 레벨에 나타나도록, 고정할 수 있게 해준다. 예를 들어, 사용자는 "Lyon의 문서 폴더"(11312) 및 자식 폴더 "작업"(11490)을 고정할 수 있다. 부모 및 자식 폴더를 고정함으로써, "Lyon의 문서 폴더"(11312) 및 "작업"(11490)은 기본적인 구조를 실제로 수정하지 않고 내비게이션 창에서 동일한 계층 레벨에 나타난다. 이러한 특징은 사용자로 하여금 내비게이션 창의 계층적 뷰를, 영구적인 변경을 하지 않고, 임시로 수정할 수 있게 해준다.
사용자는 또한 본 발명의 예시적인 실시예에 따라 도 115에 도시된 것과 유사한 구성 대화상자를 사용하여 루트 노드를 추가, 제거, 이름 변경 및/또는 재정렬할 수 있다. 구성 대화상자(11500)는 디스플레이된 페이지 창(11505), 이용가능한 페이지 창(11510), 추가 버튼(11515), 제거 버튼(11520), 재정렬 버튼(11525, 11526), 리셋 버튼(11530), 이름변경 버튼(11535) 및 홈페이지로 설정 옵션(11540)을 포함할 수 있다. 구성 대화상자(11500)는 사용자가 디스플레이된 페이지 창(11505)에서 내비게이션 창의 내용을 수정하는 동안에 하나의 창(11510)에서 이용가능한 페이지의 리스트를 볼 수 있게 해준다. 이용가능한 페이지 창(11510)은 선택된 장소에 대응하는 선택가능한 페이지의 리스트를 디스플레이한다. 사용자는 드롭다운 메뉴(11550)를 사용함으로써 선택된 장소를 변경할 수 있다. 사용자가 이용가능한 페이지의 리스트를 가지고 있는 경우, 사용자는 이용가능한 페이지를 선택하고 선택된 페이지에 대응하는 새로운 루트 노드를 생성하기 위해 추가 옵션(11515)을 선택할 수 있다. 디스플레이된 페이지 창(11505)은 새로운 루트 노드의 추가를 반영하기 위해 자동적으로 그의 내용을 갱신할 수 있다. 환언하면, 변화의 검출 시에, 구성 대화상자(11500)는 가장 최신의 정보를 반영하기 위해 창(11505, 11510)을 새로고침할 수 있다.
사용자가 현재의 루트 노드를 제거하고자 하는 경우, 사용자는 디스플레이된 페이지 창(11505)에서 루트 노드를 선택하고 제거 옵션(11520)을 선택할 수 있다. 루트 노드의 제거 시에, 내비게이션 창은 노드를 대응하는 페이지와 단절시키고 노드를 그 창으로부터 제거한다. 다른 옵션들은 사용자가 현재의 루트 노드의 이름을 변경하거나 루트 노드를 홈 페이지로 설정할 수 있게 해준다. 사용자는 노드를 선택하고 화살표 버튼(11525, 11526)을 사용하여 그의 상대적 위치를 조정함으로써 디스플레이된 페이지 창(11505)에서 루트 노드를 재정렬할 수 있다. 사용자가 하나 이상의 루트 노드를 추가, 제거, 재정렬, 또는 이름변경하는 데 실수를 하는 경우, 사용자는 내비게이션 창에 한 변경을 리셋하기 위한 리셋 옵션(11530)을 갖는다. 리셋 버튼(11530)을 선택하면 윈도우(11500)가 마지막으로 열린 이래로 사용자에 의해 행해진 임의의 변경을 되돌릴 수 있거나 디폴트 상태로 되돌아가서 사용자가 한 임의의 변경을 실행 취소할 수 있다.
도 116a는 본 발명의 예시적인 일 실시예에 따른 페이지 노드를 커스터마이즈하는 페이지 프로퍼티 대화상자를 나타낸 것이다. 사용자는 프로퍼티 대화상자(11600)를 통해 지정된 페이지 노드의 상기 프로퍼티를 구성할 수 있다. 프로퍼티 대화상자(11600)는 확장 컨트롤 선택 도구(11603), 아이콘 선택 도구(11505), 식별 텍스트 변경 도구(11610), 크기 선택 바(11615), 및 숨김 옵션(11620)을 포함할 수 있다. 확장 컨트롤 선택 도구(11603) 및 아이콘 선택 도구(11605)는 확장 컨트롤 아이콘(예를 들어, 이전의 운영 체제에서와 같이 '+' 및 '-') 및 식별 텍스트에 인접해 있는 대표적인 아이콘을 변경하는 유연성을 사용자에게 제공한다. 확장 컨트롤 선택 도구(11603) 및 아이콘 선택 도구(11605)는 드롭다운 리스트를 통해 또는 사용자가 이미지 및 아이콘의 데이터베이스를 검색하여 그로부터 선택할 수 있게 해주는 쉘 브라우저 유틸리티를 통해 구현될 수 있다. 확장 컨트롤 선택 도구(11603)와 관련하여, 사용자는 축소된 상태 및 확장된 상태 각각을 나타내는 2개의 이미지를 선택하도록 요구받을 수 있다. 다른 대안으로서, 선택 도구(11603, 11605)는 이용가능한 아이콘 또는 이미지의 미리 정의된 메뉴를 포함할 수 있다. 사용자가 아이콘을 선택하면, 사용자는 이를 페이지 노드에 적용하기 이전에 그 변화를 미리보기 위한 옵션을 가질 수 있다.
게다가, 사용자는 페이지 노드의 식별 텍스트 및 기본적인 페이지의 내용 및 외관을 변경할 수 있다. 이것은 내비게이션 창 내의 텍스트를 편집함으로써 또는 다른 대안으로서 프로퍼티 대화상자(11600)를 통해 달성될 수 있다. 프로퍼티 대화상자(11600)는 폰트, 폰트 크기, 스타일(이탤릭체, 굵은체, 소문자, 기타 등등) 및 컬러를 조정하기 위한 옵션을 포함할 수 있다. 예를 들어, 사용자는 특히 중요한 페이지 및 그의 대표적인 노드의 폰트 크기를 증가시키고 폰트 컬러를 변경할 수 있다. 이러한 특징은 사용자가 다른 사람들에게 그 페이지가 아주 중요하거나 관련성있음을 알려줄 수 있게 해준다.
페이지 프로퍼티 구성 대화상자(11600)의 추가의 옵션은, 내비게이션 창을 보고 있을 때 페이지 노드가 보이지 않도록, 사용자가 내비게이션 창에서의 페이지 노드를 감출 수 있게 해준다. 본 발명의 일 실시예에서, 페이지 노드가 감춰져 있을 때, 그의 후손 노드는 내비게이션 창에서 루트 노드 상태로 올라갈 수 있다. 따라서, 감추기 옵션은 사용자가 몇개의 루트 노드를 동시에 생성할 수 있게 해준다. 감춰진 페이지 노드를 포함하는 내비게이션 창이 도 116b에 도시되어 있다. 감춰진 노드와 관련이 없는 폴더 페이지 노드(11615)도 역시 보이는 동안 그룹(11610)은 감춰진 자동리스트 루트 노드의 후손 페이지 노드를 포함하고 있다. 특정의 루트 노드를 감추는 것은 또한, 사용자가 감춰진 루트 노드에 의존하는 페이지에 대해 광범위하게 작업하고 있을 때, 유익할 수 있다. 노드를 감춤으로써, 사용자는 자식 노드와 상호작용하기 위해 루트 노드를 계속하여 확장 및 축소할 필요가 없다.
다중값 프로퍼티: 도 51 내지 도 66과 관련하여 상기한 설명에 덧붙여, 본 발명의 부가의 측면들은 프로퍼티(또는 메타데이터)의 사용자 수정을 위한 시스템 및 방법을 제공할 수 있다. 한 측면에서, 다중값 프로퍼티를 포함할 수 있는 파일 프로퍼티의 디스플레이를 포함하는 쉘 브라우저가 제공된다. 사용자는 다중값 프로퍼티를 편집할 수 있고, 시스템은 사용자가 다중값 프로퍼티를 편집하는 것을 지능적으로 지원할 수 있다. 시스템은 다중값 프로퍼티 값을 나타낼 수 있고, 사용자에게 필드의 옵션을 알려주는 것으로서 다중값 프로퍼티 필드 내에 지속적인 프롬프트 텍스트를 제공할 수 있다.
시스템은 취합된 프로퍼티 값을 디스플레이할 수 있고, 취합된 값을 이 값들이 적용되는 파일과 연관시키기 위한 시각적 차이를 포함할 수 있다. 취합된 값의 편집이 가능하고, 취합된 다중값 프로퍼티를 편집할 때, 시스템은 사용자가, 이미 사용 중인 엔트리 및 프로퍼티 값이 사용되는 상황 등의, 다양한 인자에 기초하여 엔트리를 선택(또는 회피)하는 데 지능적으로 도움을 줄 수 있다. 다수의 선택된 파일에 대한 다중값 프로퍼티를 취합할 때, 시스템은 또한 특정의 값이 여러가지 파일에 나타난 순서를 보존하는 데 도움을 주기 위해 조치를 취할 수 있다. 파일의 다중값 프로퍼티의 시작에서 보다 종종 나타나는 경향이 있었던 값은 대응하는 취합된 다중값 프로퍼티의 시작쪽에서 나타나는 경향이 있다.
도 117a 및 도 117b는 이상에서 또 본 명세서에서 기술된 특징들과 관련하여 사용될 수 있는 미리보기 프로세스에 대한 예시적인 흐름도를 나타낸 것이다. 프로세스의 초기 단계로서, 단계(11701)에서 하나 이상의 프리뷰어가 시스템 상에 설치될 수 있다. 프리뷰어는 기본적인 운영 체제 소프트웨어의 일부로서 출하되는 소프트웨어일 수 있다. 프리뷰어는 또한 출하된 이후에 컴퓨터 시스템 상에 로드되는 부가의 소프트웨어일 수 있다. 예를 들어, 기본적인 운영 체제는 프리뷰어의 장래의 개발 및/또는 추가를 가능하게 해주는 일련의 애플리케이션 프로그램 인터페이스(API)를 노출시킬 수 있다.
단계(11702)에서, 하나 이상의 프리뷰어에 대해 새로운 연관이 생성되는지 여부를 판정하기 위해 검사가 행해질 수 있다. 연관은 사용되는 프리뷰어의 횟수 및 유형을 규제하는 임의의 기준 및/또는 요청일 수 있다. 주어진 사용자 신원에 대해(또는 특정의 사용자가 프리뷰어들을 모두 디스에이블하고자 하는 경우) 및/또는 시스템 조건(예를 들어, 가용 자원, 메모리, 현재 실행 중인 애플리케이션, 생성된 또는 생성될 프리뷰어의 수, 이용가능한 용량, 하루 중 시간, 다른 애플리케이션의 상태, 기타 등등) 및 파일 유형(예를 들어, 사용자는 홈 비디오에 대해 한 유형의 프리뷰어를 사용하고 압축된 노래에 대해 다른 프리뷰어를 사용하는 것을 선호할 수 있음)에 기초한 어떤 미리 정의된 상황에 대해 사용될 프리뷰어(들)의 유형을 정의하기 위해 연관이 생성될 수 있으며, 그에 따라 시스템에 의해 사용되는 디폴트 프리뷰어가 사용자-정의될 수 있다. 사용자는 어떤 파일 유형이 기본적인/비대화형 미리보기를 가지기만 하면 됨을 알려줄 수 있거나 시스템은 미리보기가 미리 정의된 수의 고장, 장애, 또는 속도 저하(hang)를 겪는 경우 자동적으로 미리보기를 디스에이블할 수 있다. 애플리케이션은, 애플리케이션으로부터 열려진 미리보기 또는 애플리케이션에 의해 생성된 파일의 미리보기가 항상 동일한 프리뷰어를 사용하여 미리보기될 수 있도록, 하나 이상의 프리뷰어와 연관될 수 있다. 이들 연관은, 다수의 미리보기가 선호 순서로 순위가 매겨지도록, 사실상 계층적일 수 있다. 새로운 연관을 요청하는 단계(11702)는 기동 시에, 애플리케이션의 설치 시에, 미리 정해진 애플리케이션의 실행 시에, 및/또는 사용자 요청에 의해 일어날 수 있다.
새로운 연관을 생성하라는 요청이 수신되면, 단계(11703)에서 연관이 생성된다. 연관을 생성하는 동작은 어떤 프리뷰어가 사용될 때 만족되어야 하는 특정의 기준에 대해 사용자에 질의함으로써 또는 애플리케이션 및/또는 시스템 자체로부터 자동적으로 이러한 기준 정보를 검색함으로써 달성될 수 있다. 생성될 때, 실제의 연관은 프리뷰어(들)를 상기 식별된 기준 중 임의의 것과 연관시키는, 컴퓨터 시스템의 메모리에 저장되는 데이터의 형태를 가질 수 있다.
단계(11704)에서, 프리뷰어가 열려야 하는지 여부를 판정하기 위해 검사가 행해질 수 있다. 프리뷰어의 열기를 트리거할 수 있는 다수의 이벤트가 있다. 예를 들어, 사용자가 시스템 상에서 쉘 브라우저를 열고 파일 및/또는 폴더를 조사하기 시작할 때, 브라우저는 하나 이상의 선택된 파일(또는 아무것도 선택되지 않은 경우, 디폴트 파일)의 미리보기를 디스플레이하기 위해 프리뷰어를 기동시킬 수 있다. 다른 대안으로서, 프리뷰어는 임의의 다른 애플리케이션의 요청 시에 트리거될 수 있다. 프리뷰어는 또한 다수의 애플리케이션에 의해 공유되는 통상의 파일 대화상자의 생성에 의해 트리거될 수 있다. 통상의 파일 대화상자 미리보기에 대해서는 이하에서 더 기술한다.
프리뷰어가 열리는 경우, 단계(11705)에서 시스템은 미리보기될 선택 또는 선택들을 수신할 수 있다. 이것은 미리보기될 파일(또는 파일들)의 식별자를 수신하는 것을 수반할 수 있다. 이러한 선택은, 마우스 포인터를 열거된 파일로 이동시키고 좌측 마우스 버튼을 클릭하거나 선택 박스를 클릭하여 다수의 파일 리스트 근방으로 드래그함으로써 하나 이상의 파일을 선택하는 등에 의해, 사용자에 의해 행해질 수 있다. 다른 대안으로서, 선택이 자동적으로 행해질 수 있다. 예를 들어, 어떤 애플리케이션은 미리 정해진 파일을 디폴트로 할 수 있으며, 처음으로 열기를 할 때 미리보기를 위해 그 파일을 자동적으로 선택할 수 있다. 마이크로소프트 워드™ 등의 워드 프로세싱 프로그램은 텍스트 편집 기능을 포함하는 프리뷰어를 디폴트로 할 수 있다. 이 시스템은 검색을 수행한 결과로서 미리보기하기 위한 파일을 자동적으로 선택할 수 있다. 사용자는 키워드 등의 검색 조건을 입력할 수 있고, 시스템 또는 애플리케이션은 미리보기하기 위해 검색 결과 중 하나를 자동적으로 선택할 수 있다. 예를 들어, 사용자는 시스템 검색 도구에서 키워드로서 "땅콩"을 타이핑할 수 있고, "땅콩"을 포함하는 파일의 결과 리스트가 첫번째로 열거된 파일의 미리보기와 함께 디스플레이될 수 있다.
미리보기될 파일(들)이 선택되면, 시스템은 이어서 단계(11706)에서 적절한 미리보기를 선택 및 생성한다. 적절한 미리보기를 선택하는 것은 생성된 하나 이상의 연관에 기초할 수 있으며(예를 들어, 사용자는 어떤 유형의 모든 파일을 미리보기하기 위해 또는 어떤 파일을 미리보기하기 위해 특정의 프리뷰어를 선택하였음), 또한 이용가능한(또는 소모되는) 시스템 자원에 기초할 수 있다. 다른 대안으로서, 사용자는, 예를 들어 미리보기될 선택에 대해 적절할 수 있는 미리 정해진 프리뷰어들의 제공된 리스트로부터 선택함으로서, 현재의 미리보기를 위해 어느 프리뷰어가 사용되어야만 하는지를 식별하도록 요청받을 수 있다.
어떤 상황에서, 보다 훌륭한 대화형 미리보기가 기동되고 있는 동안에 볼 수 있는 초기의 기본적인 미리보기를 생성하는 것이 바람직할 수 있다. 예를 들어, 텍스트 문서의 훌륭한 미리보기가 로드 및 생성하는 데 몇초 걸리는 경우, 그 사이에 사용자는 보다 일찍 생성될 수 있는 보다 기본적인 미리보기를 제공받을 수 있다. 보다 기본적인 미리보기는 훌륭한 미리보기에서 제공되는 대화형 기능을 얼마간 가지거나 전혀 갖지 않을 수 있고, 선택(들)의 미리보기에 있어서 적어도 사용자에게 길을 열어줄 수 있다.
미리보기를 선택하는 것은 사용될 수 있는 일련의 프리뷰어의 사전 저장을 포함할 수 있다. 예를 들어, 특정의 애플리케이션 또는 뷰는 완전히 풍부한 프리뷰어, 특징이 축소된 프리뷰어, 기본적인 썸네일 프리뷰어(대화형일 필요가 없음), 및 MICROSOFT WINDOWS™ 운영 체제에서 현재 사용되는 바탕화면 아이콘과 유사한 기본적인 아이콘 등의 계층적인 일련의 이용가능한 프리뷰어를 가질 수 있다. 프리뷰어가 열릴 때, 시스템은 완전히 풍부한 프리뷰어 등의 하나의 프리뷰어로 시작하고, 가장 적절한 것을 찾기 위해 일련의 프리뷰어를 통해 "후퇴(fall back)"할 수 있다. 예를 들어, 완전히 풍부한 프리뷰어가 사용자로 하여금 미리보기로부터 문서를 수정할 수 있게 해주는 페이징, 줌, 및 텍스트 편집 기능을 제공하는 프리뷰어를 갖는 특정의 뷰에 대한 디폴트일 수 있으며, (예를 들어, 메모리 제한, 다른 애플리케이션, 다른 프리뷰어, 기타 등등으로 인해) 그 미리보기를 적절히 제공하기에 시스템 자원이 불충분한 경우, 시스템은 리스트 상의 그 다음 프리뷰어(예를 들어, 더 적은 기능을 갖는 프리뷰어)를 검사할 수 있다. 그 다음 프리뷰어는, 예를 들어 문서를 편집하는 기능이 없이 단지 내비게이션(예를 들어, 페이징 및 줌잉)하는 기능만을 제공함으로써, 기능이 약간 더 적을 수 있다. 이러한 프리뷰어는 보다 적은 시스템 자원의 실행을 요구할 수 있으며, 이용가능한 자원이 없는 경우 선호될 수 있다. 그 두번째 프리뷰어를 제공하기에 여전히 자원이 불충분한 경우, 시스템은 그 다음 프리뷰어(예를 들어, 상호작용기능이 거의 없거나 전혀 없는 기본적인 썸네일 뷰)를 검사할 수 있으며, 이용가능한 자원이 주어진 경우, 적당한 프리뷰어가 발견될 때까지 마찬가지로 계속된다.
미리보기가 발생될 때, 미리보기는 이 미리보기를 요청하는 애플리케이션과 별도의 개별적인 프로세스로서 기동될 수 있다. 예를 들어, 프리뷰어가 시스템 쉘 브라우저에 제공되어 있는 경우, 그 프리뷰어는 쉘 브라우저와 독립적인 프로세스로서 실행될 수 있다. 미리보기가 별도의 프로세스인 경우, 쉘 브라우저는 미리보기 애플리케이션으로부터의 응답을 기다려야만 하는 처지에 있지 않을 수 있으며, 따라서 프리뷰어가 난관에 어려움하는 경우에 장애 또는 속도 저하를 회피할 수 있다. 이러한 어려움은 다양한 소스로부터 올 수 있다. 선택된 파일이 오염된 데이터를 가져서 미리보기 애플리케이션이 그것을 처리할 수 없거나, 미리보기 애플리케이션 자체가 그의 원활한 동작을 방해하는 에러 또는 버그를 가질 수 있거나, 파일이 잘못 표시되거나 잘못 식별되어 엉뚱한 미리보기 애플리케이션이 선택될 수 있거나(예를 들어, 파일이 실제로는 텍스트 파일인데 오디오 파일이라고 나타낼 수 있음), 또는 시스템 자원이 불량 메모리 섹터 등의 문제에 부딪힐 수 있다. 프리뷰어가 별도의 프로세스인 경우 어느 정도의 장애/속도 저하 내성을 제공한다. 프리뷰어가 에러, 장애 또는 속도 저하에 봉착하는 경우, 그 문제는 미리보기 패널 자체로 국한되며, 쉘 브라우저는 계속 기능하게 된다. 어떤 경우에, 시스템은 특정의 미리보기 애플리케이션이 어려움, 장애 및/또는 속도 저하에 봉착하는 횟수를 추적할 수 있으며, 미리 정해진 횟수(예를 들어, 3)가 초과되는 경우, 시스템은 그 특정의 프리뷰어가 사용되는 빈도수를 감소시키기 위해 조치를 취할 수 있다. 예를 들어, 시스템은 그 프리뷰어의 우선순위를 떨어뜨릴 수있거나 다른 프리뷰어를 요구하는 연관을 생성할 수 있다.
단계(11707)에서, 사용자가 임의의 디스플레이된 미리보기와 상호작용했는지 여부를 판정하기 위해 검사가 행해질 수 있다. 상호작용은 공지의 컴퓨터 상호작용의 임의의 형태를 취할 수 있다. 예를 들어, 상호작용은 미리보기 패널 내에서의 마우스 클릭일 수 있다. 상호작용은, 페이징 버튼, 커서 화살표, 기타 등등의, 미리보기 패널에서의 하나 이상의 그래픽 인터페이스 요소의 선택일 수 있다. 상호작용은, 텍스트 문서의 미리보기 내에서 커서를 이동시키는 커서 이동 키 등의, 키보드 키의 형태를 취할 수 있다.
상호작용이 일어나는 경우, 단계(11708)에서 적절한 프로세싱이 일어난다. 상호작용의 프로세싱은 사용자 입력에 대한 임의의 응답의 형태를 취할 수 있다. 예를 들어, 이 프로세싱은 사용자가 미리보기 패널 내에서 마우스 또는 다른 포인터를 클릭한 것에 응답하여 편집 프로세스를 시작할 수 있다. 편집 프로세스는 사용자가 미리보기된 파일의 보기 및/또는 편집을, 사용자가 미리보기 패널을 갖는 뷰에서 빠져나올 필요가 없이 미리보기 패널로부터 직접 할 수 있게 해줄 수 있다.
단계(11709)에서, 미리보기 패널이 크기조정되었는지 여부를 판정하기 위해 검사가 행해진다. 이 패널은, 예를 들어 사용자가 명령을 입력함으로써 및/또는 미리보기 패널의 경계 또는 크기조정 도구를 클릭 및 드래그함으로써, 크기조정될 수 있다. 패널이 크기조정되는 경우, 단계(11710)에서 새로운 크기조정된 패널이 디스플레이된다. 원하는 경우, 크기조정된 패널은 원래의 패널에 있었던 것과 동일한 종횡비를 자동적으로 유지하도록 구성될 수 있다. 어떤 파일 유형은, 연관 등을 통해, 항상 동일한 종횡비를 갖도록 구성될 수 있다(예를 들어, 비디오는 항상 4:3일 수 있음). 프로퍼티 또는 메타데이터가 미리보기에 수반하여 디스플레이되어 있는 경우, 프로퍼티 및/또는 메타데이터 디스플레이 영역도 역시 새로운 미리보기 패널 크기에 대응하여 크기조정될 수 있다. 예를 들어, 프로퍼티 또는 메타데이터 디스플레이 영역은 항상 미리보기 패널과 동일한 높이 또는 폭을 갖도록 구성될 수 있다. 이와 반대로,프로퍼티/메타데이터 디스플레이 영역의 크기조정에 응답하여 프리뷰어가 크기조정될 수 있다. 원하는 경우, 새로운 크기가 특정의 파일 유형, 현재의 뷰, 애플리케이션, 및/또는 사용자와 연관된 새로운 디폴트 크기로서 시스템에 저장될 수 있으며, 다음에 미리보기가 필요할 때 사용될 수 있다.
단계(11711)에서, 미리보기 패널의 새로운 크기가 미리보기를 위한 하나 이상의 미리 결정된 문턱값을 전달했는지 여부를 알아보기 위해 검사가 행해질 수 있다. 상기한 바와 같이, 프리뷰어는 그의 사용을 위한 하나 이상의 기준을 가질 수 있다. 한가지 이러한 기준은 프리뷰어가 이용가능한 디스플레이 영역의 양에 관한 것일 수 있다. 예를 들어, 서로 다른 크기의 미리보기에 대해 서로 다른 레벨의 상호작용 및/또는 기능이 제공될 수 있다. 일례로서 MICROSOFT WORD™ 등의 워드 프로세서를 사용할 때, 보다 큰 미리보기는 문서에서의 내비게이션/페이징 및 뷰잉, 폰트 크기를 변경하는 것, 또는 미리보기에서 커서를 사용하여 텍스트를 편집하는 것 등의 보다 상세한 기능을 제공할 수 있는 반면, MICROSOFT WORD™ 문서의 보다 작은 미리보기는 여전히 내비게이션 및 줌잉 기능을 포함하지만, 디스플레이가 텍스트를 편집하기 위해 커서를 적절하게 사용하기에 너무 작은 경우, 커서 텍스트 편집을 생략할 수 있다. 프리뷰어는, 컴퓨터 시스템의 메모리에 저장되어 있는 연관 동안에 생성될 수 있고 또 문턱값이 만족되거나 초과될 때 사용하기 위한 대용 프리뷰어를 식별해줄 수 있는, 그와 연관된 하나 이상의 문턱값 크기를 가질 수 있다. 예를 들어, 프리뷰어는 어떤 기능을 구현하는 데 최소 256 픽셀의 폭을 요구할 수 있지만, 다른 기능은 512 픽셀이 있는 경우에만 포함될 수 있다.
새로운 크기가, 최소 또는 최대 문턱값 등의, 문턱값을 초과하는 경우, 단계(11712)에서 대체 미리보기가 선택 및 생성될 수 있다. 대체 미리보기의 생성은 단계(11706)에서의 미리보기의 생성과 동일할 수 있다. 따라서, 예를 들어, 미리보기 패널이 어떤 최소 크기를 넘어 크기가 감소된 경우, 보다 작은 크기에서 사용될 수 있는 그 대화형 기능의 보다 작은 서브셋을 제공하는 대체 미리보기가 사용될 수 있다. 다른 대안으로서, 미리보기 패널이 어떤 최대 크기를 넘어 확대된 경우, 더 많은 사용자 인터페이스 컨트롤을 갖거나 미리보기 내에서의 상세한 편집을 가능하게 해주는, 보다 큰 크기인 경우에 유용할 수 있는 더 많은 기능을 제공하는 대체 미리보기가 사용될 수 있다.
단계(11713)에서, 디스플레이된 프로퍼티 또는 메타데이터가 편집되어야 하는지 여부를 판정하기 위해 검사가 행해진다. 이러한 데이터는, 예를 들어 디스플레이된 메타데이터 상에서 마우스 또는 포인터를 클릭하고 텍스트 엔트리 또는 메뉴 사용자 인터페이스를 사용하여 값을 입력함으로써, 편집될 수 있다. 단계(11714)에서, 특정의 프로퍼티를 편집하기 위해 적절한 조치가 취해진다. 실제의 조치들은 편집되는 데이터의 유형에 의존할 수 있다. 날짜 필드는 달력 사용자 인터페이스 요소를 불러와서 사용자가 입력하기 위한 날짜(및/또는 시간) 값을 보고 선택할 수 있게 해준다. 텍스트 입력 박스를 통해 다른 유형의 데이터가 입력될 수 있고, 풀다운 메뉴 등의 메뉴로부터 다른 유형이 선택될 수 있다.
단계(11715)에서, 시스템이 풍부한 프리뷰어의 로드를 기다리고 있는지를 판정하기 위해 검사가 행해진다. 상기한 바와 같이, 풍부한 미리보기가 시스템 상에서 초기화되고 있는 동안에 보다 기본적인 또는 일반적인 미리보기가 제공될 수 있다. 시스템이 풍부한 프리뷰어를 기다리고 있는 경우, 단계(11716)에서, 풍부한 프리뷰어가 준비되어 있는지를 판정하기 위해 검사가 행해진다. 준비되어 있는 경우, 단계(11717)에서 시스템은 기존의 미리보기를 풍부한 미리보기로 대체한다. 단계(11717)는 또한 풍부한 프리뷰어가 여전히 요망되고 있는지 여부를 판정하기 위해 사용자에 대한 질의를 포함할 수 있다. 이 단계가 2개의 프리뷰어를 보여주지만, 3개 이상도 역시 사용될 수 있다. 예를 들어, 이 시스템은 썸네일 미리보기를 기다리고 있는 동안에 아이콘을 디스플레이할 수 있고, 이어서 풍부한 미리보기를 기다리고 있는 동안 썸네일을 디스플레이할 수 있으며, 이하 마찬가지이다.
단계(11718)에서, 프리뷰어가 닫혀져야 하는지 여부를 판정하기 위해 검사가 행해지고, 닫혀야 하는 경우, 단계(11719)에서 프리뷰어가 닫힌다. 이어서, 프로세스는 단계(11702)로 되돌아가서 다시 시작한다. 물론, 도 117a 및 도 117b에 도시된 프로세스는 다수의 단계들을 정렬하는 방식을 나타내는 단지 일례에 불과하며, 그 단계들 중 임의의 것이 본 명세서에 기술된 임의의 기능을 구현(또는 제거)하기 위해 원하는 바에 따라 재정렬, 반복, 제거, 또는 수정될 수 있다.
도 118은 본 발명의 하나 이상의 측면을 포함하는 다른 쉘 브라우저 인터페이스(11800)(또는 시스템 브라우저)의 예이다. 브라우저(11800)는 하나 이상의 디렉토리, 네트워크, 드라이브, 폴더, 기타 등등의 내용을 보기 위해 운영 체제의 일부로서 제공될 수 있고, 범용, 즉 애플리케이션-관련된 것이 아닐 수 있다. 브라우저(11800)에, 다수의 항목(11801)이 열거되어 있으며, 여러가지 항목에 대한 파일 이름, 파일 유형 및 다른 데이터가 열거되어 있다. 이 예에 나타낸 바와 같이, 다수의 서로 다른 유형의 파일(예를 들어, 워드 프로세싱 애플리케이션 등의 기존의 애플리케이션에 대한 텍스트 파일, 이미지 파일, 오디오 파일, 및/또는 커스텀 데이터 파일)이 전부 쉘 브라우저에 디스플레이될 수 있다. 항목(11801)이 날짜별로 구성되어 나타내어져 있지만(예를 들어, 오늘 파일 및 어제 파일), 임의의 정렬 또는 구성이 사용될 수 있다(예를 들어, 파일 크기, 파일 이름, 프로젝트 이름, 파일 유형, 음악가, 앨범, 생성 일자, 편집 일자, 기타 등등). 사용자는 리스트(11801a)(적색일 수 있는 제1 패턴으로 시각적으로 구별되게 표시됨) 등의 리스트들 중 하나를 선택할 수 있고, 쉘 브라우저(11800)는 선택된 항목(11801a)에 대응하는 대화형 미리보기 패널(11802)을 디스플레이할 수 있다.
대화형 미리보기 패널(11802)은, 예를 들어, 항목(11801a)이 MICROSOFT WORD™ 파일 또는 다른 워드 프로세싱 프로그램 등의 텍스트 데이터를 포함하는 파일일 때, 선택된 항목(11801a)에 나타나는 하나 이상의 텍스트 페이지를 디스플레이할 수 있다. 대화형 미리보기(11802)는 사용자가 디스플레이된 텍스트를 미리보기 패널에서 직접 편집 및/또는 조작할 수 있게 해줄 수 있다. 예를 들어, 사용자는, 커서가 패널에 나타나도록 하기 위해, 대화형 미리보기(11802) 내에서 마우스 포인터를 클릭하도록 허용될 수 있으며, 사용자는 디스플레이된 텍스트를 추가, 삭제, 및/또는 다른 방식으로 수정하기 위해 커서를 조작하거나 키보드 입력을 입력할 수 있다. 페이징 컨트롤, 폰트/포맷 컨트롤, 스크롤링 컨트롤, 파일 관리 컨트롤, 입력/출력 컨트롤, 기타 등등의 다른 유형의 컨트롤도 역시 미리보기 패널(11802)에 나타날 수 있다.
서로 다른 유형의 데이터 파일은 서로 다른 유형의 대화형 미리보기를 가질 수 있다. 예를 들어, 오디오 파일에 대한 대화형 미리보기는 컴퓨터 시스템의 하나 이상의 스피커(스피커(197) 등)를 통한 선택된 오디오 파일의 오디오 미리보기의 재생을 제어하는 컨트롤을 포함할 수 있다. wav. 파일 또는 .mp3 파일의 미리보기는 이러한 오디오 명령을 포함할 수 있다. 오디오 파일의 재생을 재생, 일시정지 또는 개시하는 컨트롤이 있을 수 있다. 사진의 미리보기 등의 어떤 미리보기는 디스플레이된 이미지의 조작을 가능하게 해주기 위해 줌잉/패닝(zooming/panning) 컨트롤을 포함할 수 있다. 비디오 미리보기는 디스플레이 상에서의 비디오의 재생을, 또한 컴퓨터 시스템의 스피커를 통한 오디오의 재생을 재생, 일시정지 또는 개시하는 컨트롤을 가질 수 있다.
대화형 미리보기(11802)는 또한, 도 118에서 라벨(11803a) 및 대응하는 값(11803b)을 갖는 것으로 나타내어져 있는, 복수의 프로퍼티(11803)(메타데이터를 포함함)와 관련하여 디스플레이될 수 있다. 임의의 유형의 파일 프로퍼티가 라벨과 함께 디스플레이될 수 있다. 예시적인 프로퍼티는 파일 크기, 폴더 위치, 파일 이름, 프로젝트 이름, 편집/생성 일자, 애플리케이션 유형, 기타 등등을 포함할 수 있다. 나타나는 여러가지 라벨 및 프로퍼티(11803)는 선택된 파일의 유형에 따라 커스터마이즈될 수 있으며, 따라서, 선택된 파일의 유형에 무엇이 적절한지에 따라, 서로 다른 일련의 프로퍼티가 서로 다른 유형의 파일에 대해 나타날 수 있다. 예를 들어, 노래를 포함하는 선택된 오디오 파일은 앨범 이름, 음악가, 노래 이름, 및 발매 일자에 대한 프로퍼티를 가질 수 있는 반면, 선택된 스프레드쉬트 파일은 그 프로퍼티를, 그룹 이름, 프로젝트 이름, 프로젝트 리더 및 프로젝트 시작일 등의 다른 프로퍼티로 대체할 수 있다. 어느 프로퍼티가 디스플레이되어야 하는지의 판정은 자동적으로 구성될 수 있거나, 다른 대안으로서 사용자는 특정의 파일 유형에 대한 프로퍼티 영역에 나타날 프로퍼티를 선택(및/또는 선택 해제)하는 옵션을 제공받을 수 있다. 프로퍼티는 이 디스플레이를 용이하게 해주기 위해 파일별로 우선순위가 매겨질 수 있다(예를 들어, "앨범 이름" 프로퍼티 유형은 이미지 파일보다 노래 파일에 더 중요할 수 있다).
디스플레이된 정보에 대한 다른 변형들도 역시 가능하다. 예를 들어, 어떤 라벨(파일 이름 및 파일 유형 등)은 선택적인 것으로 간주될 수 있거나, 디스플레이로부터 완전히 생략될 수 있다. 도 118로부터의 한 예는 화면 상의 다른 곳에 이미 디스플레이되어 있는 파일 이름 및 파일 유형일 수 있으며, 프리뷰어에 의해 프로퍼티 영역에 다시 디스플레이된다면 중복될 것이다. 이러한 비디스플레이된 라벨에 이용가능한 공간이 부가의 프로퍼티 정보를 디스플레이하는 데 사용될 수 있다. 값을 갖지 않는 프로퍼티는 디폴트로 생략될 수 있거나 비어있음에도 불구하고 나타나도록 플래그되어 있을 수 있다. 다른 변형으로서, 어떤 프로퍼티는 보다 긴 프로퍼티를 수용하기 위해 다른 양의 공간을 제공받을 수 있다.
프로퍼티는 프로퍼티 디스플레이 영역으로부터 편집가능할 수 있다. 예를 들어, 사용자는 디스플레이된 프로퍼티 값을 단순히 클릭하거나 그 위에서 허버링하여, 데이터를 입력/편집하는 프로세스를 시작할 수 있다. 데이터를 입력/편집하기 위한 인터페이스는 관여된 특정 프로퍼티 또는 유형에 의존할 수 있다. 날짜 등의 어떤 프로퍼티는 값을 선택하기 위한 달력 디스플레이 및/또는 풀다운 메뉴를 가질 수 있다. 예를 들어, 사용자는 단순히 마우스 포인터를 날짜 필드 상으로 이동시킬 수 있고, 사용자가 달력으로부터 선택함으로써 날짜를 입력하는 것을 돕기 위해 달력의 디스플레이가 나타날 수 있다. 입력을 간단화해주기 위해 가능한 것들의 풀다운 메뉴 또는 리스트가 디스플레이될 수 있다. 예를 들어, 월 필드 상에서 마우스 포인터를 클릭함으로써, 시스템은 월의 리스트를 디스플레이할 수 있고, 이 리스트로부터 사용자는 필드를 채우기 위해 선택을 할 수 있다. 데이터를 위한 별도의 대화상자를 필요로 하지 않고, 사용자가 미리보기 디스플레이로부터 프로퍼티 값을 직접 타이핑 및/또는 편집할 수 있게 해주기 위해 간단한 텍스트박스가 커서와 함께 디스플레이될 수 있다. 이 텍스트박스는, 사용자가 커서 및 키보드를 사용하여 타이핑할 수 있는, 빈칸을 채우는 박스일 수 있다. 임의의 다른 형태의 데이터 입력이 사용될 수 있다. 사용자가 편집될 수 있는 프로퍼티를 식별하는 것을 돕기 위해, 그 프로퍼티는 그 디스플레이에서 어떤 방식으로 시각적으로 구별되거나 강조될 수 있다. 예를 들어, 다른 컬러(예를 들어, 황색), 폰트(예를 들어, 굵은체 문자 또는 ALL CAPS 폰트), 외관 및/또는 심볼이, 사용자에 의해 편집가능한 값 및 그렇지 않은 값을 나타내기 위해, 사용될 수 있다. 하이라이팅도 역시 어떤 필드를 구별 또는 강조하기 위해 사용될 수 있다. 예를 들어, 편집가능 필드는, 황색 하이라이터가 인쇄된 문서에서 사용될 때 생성되는 효과와 유사하게, 그 안에 및/또는 그를 둘러싸고 있는 어떤 컬러를 가질 수 있다.
어떤 파일 유형은 주어진 미리보기 디스플레이에 적합한 것보다 더 많은 프로퍼티를 가질 수 있다. 어떤 실시예에서, 사용자가 주어진 파일에 대한 모든 프로퍼티를 볼 수 있게 또는 적어도 부가의 프로퍼티를 볼 수 있게 해줄 수 있는 ALL 버튼(11804) 등의 옵션이 있을 수 있다.
단계(11709)에서 상기한 바와 같이, 사용자는 브라우저(11800)에서 사용되는 미리보기 및/또는 프로퍼티 디스플레이를 크기조정하는 옵션을 제공받을 수 있다. 예를 들어, 미리보기 패널(11802)에서 크기조정 도구(11805)가 사용될 수 있으며, 이 도구를 선택 및 이동시킴으로써, 사용자는 브라우저(11800)가 프리뷰어 및/또는 프로퍼티 영역이 차지하는 디스플레이 영역을 자동적으로 조정하게 할 수 있다.
도 119는 사용자가 더 큰 크기를 갖도록 대화형 미리보기(11802)를 크기조정하여 보다 큰 대화형 미리보기(11901)가 얻어진 예시적인 사용자 인터페이스를 나타낸 것이다. 새로운 미리보기(11901)는 이전의 미리보기(11802)와 동일한 종횡비를 갖도록 구성될 수 있거나, 사용자가 크기조정 프로세스의 일부로서 종횡비를 수정하도록 허용되어 있을 수 있다. 더 큰 미리보기(11901)에서, 브라우저(11800)는 또한, 프로퍼티와 미리보기가 크기에 있어서 대응하도록, 프로퍼티의 디스플레이에 할당된 공간을 증가시킬 수 있다. 예를 들어, 프로퍼티 영역(11902)은 크기조정된 미리보기와 동일한 높이를 갖도록 구성될 수 있으며, 새로운 크기에 대응하도록 디스플레이된 데이터를 자동적으로 재정렬할 수 있다. 부가의 프로퍼티가 이 보다 큰 영역에 디스플레이될 수 있다.
상기한 바와 같이, 미리보기의 크기의 변경은 어떤 경우에, 미리보기 패널의 크기가 다르게 되면 대화형 미리보기의 유형이 다르게 되도록, 제공된 미리보기의 유형의 변경을 가져올 수 있다. 따라서, 미리보기(11901)는 대화성의 레벨 및/또는 제공된 특징의 유형의 관점에서 미리보기(11802)와 다를 수 있다. 한 예로서, 미리보기가 폭이 256 픽셀보다 작은 경우에, 어떤 그래픽 편집 기능이 의미가 없을 수 있다. 사용자가 프로퍼티를 디스플레이하는 데 사용되는 영역을 크기조정하는 경우, 동일한 유형의 크기조정이 일어날 수 있다. 예를 들어, 사용자는 프로퍼티 영역(11902)의 경계 상에서 마우스 포인터를 클릭하여 드래그하고 이를 크기조정하여, 미리보기 영역(11901)이 새로운 프로퍼티 영역(11902) 크기와 일치하도록 크기를 변경하게 할 수 있다.
도 120은 미리보기가 보다 작은 미리보기(12001)로 크기조정되어 있는 예를 나타낸 것이다. 보다 작은 미리보기 패널(12001)은, 그의 보다 작은 크기가 주어진 경우, 축소된 일련의 기능을 가질 수 있다. 프로퍼티 영역(12002)도 역시 미리보기 패널(12001)에 따라 축소될 수 있고, 이용가능한 공간의 축소에 대응하기 위해 디스플레이된 프로퍼티 또는 메타데이터를 재정렬 및/또는 제거할 수 있다. 어떤 미리보기는 마이크로소프트 WINDOWS™ 운영 체제에서 발견되는 아이콘 거동을 나타낼 수 있으며, 따라서 우측 클릭, 좌측 클릭, 드래그, 기타 등등이 동일한 효과를 가질 수 있다. 예를 들어, 한 아이콘을 다른 아이콘으로 드래그 및 드롭하는 것에 의해 제1 파일을 제2 파일에 첨부되게 할 수 있다.
미리보기 패널 및/또는 프로퍼티 디스플레이 영역을 크기조정하는 것 이외에, 이들 요소는 자동적으로 또는 사용자 요청에 의해 재정렬될 수 있다. 예를 들어, 사용자는 (예를 들어, 선호하는 것을 선택함으로써, 미리보기를 클릭 및 드래그함으로써, 또는 어떤 다른 사용자 입력에 의해) 다른 배향 및 외관을 갖도록 미리보기(12101)(도 121)를 이동시키고자 할 수 있다. 어떤 유형의 파일이 미리보기될 때 다른 배향이 바람직할 수 있다. 예를 들어, "가로로 길게(landscape)" 형식으로 찍은 사진 또는 비디오 이미지의 미리보기는 세로가 긴 것보다 가로가 긴 배향(예를 들어, "가로로 길게")에 더 적합할 수 있고, 다른 유형의 파일(예를 들어, 텍스트 문서 또는 "세로로 길게(portrait)" 이미지)은 가로보다 세로가 긴 배향에 더 적합할 수 있다. 이들 형식 간의 선택도 역시, 예를 들어 파일 유형에 기초하여, 자동적으로 행해질 수 있다. 시스템은 어느 미리보기 배향이 미리보기될 선택에 대해 가장 적절한지를 판정하기 위해, 예를 들어 단계(11706)에서의 미리보기 선택 또는 단계(11703)에서의 연관의 일부로서, 파일 유형, 프로퍼티 및/또는 메타데이터를 자동적으로 검사할 수 있다.
미리보기 패널에 대한 재정렬, 및 상기한 장애/속도 저하 내성을 용이하게 해주기 위해, 미리보기 패널 및 프로퍼티/메타데이터 영역이 별도의 소프트웨어 모듈로서 구현될 수 있다. 각각의 모듈은 시스템의 프로세싱 유닛(들)(120) 상에서 별개의 프로세스로서 실행될 수 있다. 다른 대안으로서, 미리보기 및 프로퍼티/메타데이터 패널은 시스템에서 별개의 소프트웨어 또는 소프트웨어 모듈로서 구현될 필요가 없으며, 그 대신에 공통의 모듈로서 구현될 수 있다. 통합의 레벨은 원하는 확장 레벨, 소프트웨어 메모리 풋프린트, 및 다른 인자들에 기초한 설계 선택사항일 수 있다.
상기한 바와 같이, 미리보기 패널은 컴퓨터 시스템의 통상적인 파일 대화상자 내에 포함될 수 있다. 통상적인 파일 대화상자는, 시스템 상에서 실행되는 여러가지 애플리케이션에 의해 공유될, 컴퓨터 시스템에 의해 제공되는 사용자 인터페이스 요소 및/또는 프로그램일 수 있다. 예를 들어, 운영 체제는 시스템 상에 파일을 생성하고자 하는 임의의 애플리케이션에 의해 사용될 수 있는 통상적인 "파일 열기" 또는 "파일 저장" 대화상자를 제공할 수 있다. 이러한 통상적인 파일 대화상자에 프리뷰어를 포함시키면, 다수의 서로 다른 유형의 애플리케이션이 미리보기를 갖는 것으로부터 이득을 볼 수 있고 또 애플리케이션이, 애플리케이션 개발자에게 그 자신의 프리뷰어를 개발하도록 요구하지 않고서는 본질적으로 지원되지 않는, 풍부한 대화형 파일 미리보기를 효과적으로 제공할 수 있다. 통상적인 파일 대화상자에 프리뷰어를 포함시키는 것은 또한 다수의 애플리케이션에 걸쳐 일관성있는 인터페이스를 제공하며, 사용자 선호 및 연관이 여러가지 애플리케이션에 걸쳐 일관성있게 사용될 수 있다. 게다가, 통상적이니 파일 대화상자에 프리뷰어를 제공하는 것은 애플리케이션이 다양한 파일 유형(심지어 애플리케이션이 본질적으로 지원하지 않는 파일 유형까지)의 풍부한 대화형 미리보기를 효과적으로 제공할 수 있게 해줄 수 있다. 예를 들어, 스프레드쉬트애플리케이션은 데이터-집약적인 스프레드쉬트의 미리보기를 처리하기 위해 그 자신의 풍부한 대화형 프리뷰어를 설치할 수 있다. 스프레드쉬트애플리케이션의 데이터 파일을 편집하기 위한 어떤 기능도 갖지 않을 수 있는 별도의 워드 프로세싱 애플리케이션은 그럼에도 불구하고, 통상적인 파일 대화상자를 사용함으로써, 이러한 미리보기를 제공할 수 있다. 도 122는 통상적인 "파일 열기" 대화상자의 일부인 프리뷰어의 일례를 나타낸 것이다. 이들 통상적인 파일 대화상자는 확장가능하게도, 그의 미리보기와 함께, 어떤 API를 통해 다른 애플리케이션에 제공될 수 있다.
어떤 경우에, 사용자는 한번에 다수의 파일을 선택하고자 할 수 있거나 동시에 다수의 파일을 적극적으로 선택할 수 있다. 이들 겨우에, 프리뷰어는 상기한 바와 같이 동작하여, 각각의 선택된 파일에 대한 별도의 미리보기를 제공할 수 있다. 다른 대안으로서, 시스템은 그의 거동을 변경할 수 있다. 예를 들어, 단계(11705)에서, 시스템은 다수의 파일이 선택된 것으로 판정하고, 미리보기를 생성하는 단계(11706)는 선택된 파일이 미리보기될 것인지 그렇지 않을 것인지를 판정하는 프로세스를 필요로 할 수 있다. 이 판정은 상기한 연관 및 선호 등의 다양한 기준(예를 들어, 첫번째 것 선택, 마지막 것 선택, 가장 새로운 것 선택, 가장 큰 것 선택, 가장 간단한 미리보기, 사용자 프리뷰어 선호, 기타 등등)에 기초하여 행해질 수 있다.
시스템은 또한 다수의 선택에 대응하는 동시적인 미리보기를 생성하기 위해 조치를 취할 수 있다. 도 123에 나타낸 바와 같이, 다중 미리보기 패널(12301)은 다중 선택이 미리보기된다는 것을 나타내기 위해 스태킹된 외관을 부여받을 수 있다. 주 미리보기(12301a)는 상단에 나타날 수 있고, 다른 미리보기에서 상기한 동일한 풍부한 상호작용성 전부를 가질 수 있다. 다른 선택에 대한 부가적인 미리보기(12301b, 12301c, 200d)는 주 미리보기(12301a) 뒤에 스태킹되어 나타날 수 있으며, 수평 오프셋 X 및 수직 오프셋 Y를 가질 수 있다. 이들 오프셋은 균일한 외관을 제공하기 위한 상수일 수 있다. 다른 대안으로서, 각각의 연속적인 미리보기에 대한 오프셋은 배경에 더 많은 미리보기가 배치됨에 따라 더 작아질 수 있다. 스태킹된 미리보기의 미리 정해진 최대 수가 있을 수 있으며, 이를 넘어가면 다른 외관이 사용될 수 있다. 예를 들어, 미리보기의 미리 정해진 최대 수가 6으로 설정되어 있는 경우(시스템에 의해 또는 사용자에 의해 설정될 수 있음) 또한 7개 이상의 파일이 선택되는 경우, 스태킹된 미리보기는, 도 124에 나타낸 바와 같이, 다른 외관을 가질 수 있다. 동 도면에서, 처음 6개를 넘는 미리보기(12401a, 12401b, 12401c)는 보다 적은 오프셋으로 스태킹되어 있는 것으로 도시되어 있다. 이들 부가적인 미리보기는 단지, 미리보기되지 않은 더 많은 선택된 파일이 있음을 사용자에게 알려주기 위해 미리 정해진 패턴을 갖는 및/또는 어느 정도의 투명도 또는 불투명도를 갖는, 비어있는 미리보기로서 렌더링될 수 있다.
다중 미리보기의 대안적인 디스플레이도 역시 사용될 수 있다. 예를 들어, 도 125에 나타낸 것 등의, 회전하는 3-D 회전목마의 미리보기가 사용될 수 있다. 6면 회전목마(12501)는 그의 서로 다른 면(12502a, 12502b, 12502c(뒤에서 본 것임), 12502d(뒤에서 본 것임), 12502e(뒤에서 본 것임) 및 12502f) 상에 6개의 별개의 미리보기를 디스플레이할 수 있다. 회전 또는 줌 등의 회전목마를 통한 수동 내비게이션을 가능하게 해주기 위해 사용자 인터페이스 요소(12503)가 제공될 수 있거나, 회전목마가 자동적으로 회전될 수 있다(또는 전혀 회전되지 않을 수 있다). 다른 방법들로는 팬-아웃 디스플레이로로 다수의 미리보기를 디스플레이하는 것, 다수의 미리보기를 나란히 디스플레이하는 것(원하는 경우 크기조정함), 이들을 스택의 3-D 등각 투상도로 디스플레이하는 것(종이의 스택과 유사함), 및 자동 또는 수동 내비게이션으로 이들을 순차적으로 디스플레이하는 것이 있다.
다수의 선택된(예를 들어, 다수의 파일 상에서 마우스 커서를 클릭하거나, SHIFT 또는 CTRL 키를 누른 채로 클릭하거나, 또는 선택 영역을 클릭하여 다수의 파일 주변에 드래그함으로써 선택된) 파일의 미리보기도 역시 선택된 파일의 유형에 따라 변할 수 있고, 선택된 파일의 다른 조합에 대해 다른 미리보기 시퀀스가 사용될 수 있다. 예를 들어, 시스템은 (예를 들어, 운영 체제, 하드웨어, 애플리케이션, 기타 등등을 통해) 다수의 이미지 파일이 선택될 때, 스태킹된 프리젠테이션을 사용할 수 있고 또, 다수의 비디오 파일이 선택될 때, 순차적 비디오 미리보기를 사용할 수 있다. 시스템은 또한, 자원을 절약하기 위해, 다수의 파일이 선택될 때 제공되는 미리보기를 크기 축소시키거나 단순화시킬 수 있다.
상기한 여러가지 특징이 단일의 통합된 코드로서 또는 서브루틴이나 모듈의 컬렉션으로서 구현될 수 있다. 예를 들어, 다수의 파일의 미리보기를 처리하는 반복자 모듈, 미리보기에서 제공되는 사용자 인터페이스 명령을 맡고 있는 명령 모듈, 미리보기 자체를 생성하는 미리보기 모듈, 미리보기 디스플레이의 프로퍼티/메타데이터 부분을 처리하는 프로퍼티 모듈, 기타 등등이 있을 수 있다.
상기한 바와 같이, 이들 미리보기 특징들은 사용자에게 시스템 상의 파일 또는 다른 데이터의 리스트가 보여질 때마다 제공될 수 있다. 디스플레이가 사용자-요청된 키워드 검색의 결과인 경우 등의, 특정의 리스트가 하나 이상의 기준의 사용을 통해 생성될 때, 프리뷰어는 미리보기를 조립하는 데 검색 기준을 사용할 수 있다. 예를 들어, 애플리케이션은 검색에서 사용되는 키워드를 프리뷰어에 통지하고자 할 수 있으며, 따라서 프리뷰어는 어느 미리보기를 사용할지, 미리보기를 어떤 순서로 할지, 언제 다중 미리보기를 사용할지를 결정할 수 있다. 이것은 확장가능한 특징일 수 있으며, 이 때 프리뷰어는 검색 기준을 제공받는다.
상기한 바와 같이, 다중 선택이 행해질 수 있고, 디스플레이된 미리보기 이미지가 결과로서 변할 수 있다. 이들 다중 선택은 또한 프로퍼티 및/또는 메타데이터의 디스플레이에 변화를 가져올 수 있다. 예를 들어, 도 126은 2개의 파일(12601, 12602)이 선택되어 있는 예시적인 뷰를 나타낸 것이다. 이 선택된 파일들은 고유의 방식으로 또는, 다른 컬러, 폰트, 형상, 텍스처, 스타일, 크기, 배경색, 패턴, 기타 등등을 갖는 등, 고유의 외관으로 구별 및/또는 강조될 수 있다. 선택된 파일에 대한 프로퍼티 및 메타데이터는 양쪽 파일(12603, 12604)에 대한 동일한 프로퍼티(각각에 대한 프로젝트 이름 등)를 디스플레이할 수 있고, 사용자가 용이하게 그의 대응하는 파일과 프로퍼티를 일치시키기 위해 대응하는 외관을 가질 수 있다. 예를 들어, 프로퍼티는, 이들 프로퍼티가 속하는 선택된 파일을 식별하기 위해, 컬러-코딩될 수 있다. 파일(12601)에 대해 나타낸 패턴은 컬러(예를 들어, 적색), 하이라이팅(예를 들어, 종이 문서에서의 하이라이터에서와 같이, 텍스트를 둘러싸고 있는 서로 다른 컬러), 폰트(예를 들어, 굵은체, 밑줄, ALL CAPS, Times New Roman, 기타 등등), 크기(예를 들어, 큰 텍스트), 기타 등등에 의해, 그 파일을 강조 및/또는 구별할 수 있다. 파일(12601)의 프로퍼티를 디스플레이할 수 있는 프로퍼티(12603)는, 프로퍼티와 그 각자의 파일을 상관시키기 위해, 그 파일에 대해 사용되는 동일한 강조 및/또는 구별을 가질 수 있다.
다수의 선택된 파일에 대한 많은 프로퍼티 및/또는 메타데이터는 취합되어 편집물 또는 합산으로서 한번에 제공될 수 있다. 예를 들어, 하나의 디스플레이된 프로퍼티가 파일 크기(예를 들어, 몇 킬로바이트(kb) 또는 메가바이트(Mb)가 사용되는지)이고 다수의 파일이 선택된 경우, 파일 크기 프로퍼티는, 선택된 파일의 파일 크기의 총계인, 취합된 파일 크기 값(예를 들어, 4.3Mb)을 디스플레이할 수 있다. 다른 예로서, 하나의 디스플레이된 프로퍼티가 키워드를 갖는 경우, 다수의 선택된 파일에 대한 키워드는 모두 취합되어 단일의 키워드 프로퍼티로서 제공될 수 있다. 몇개의 취합은 그 결과 더 큰 프로퍼티 디스플레이가 얻어질 수 있고, 취합된 프로퍼티를 그의 대응하는 파일과 상관시키기 위해 상기한 동일한 외관 강조/구별을 사용할 수 있다. 다른 대안으로서, 프로퍼티는, 프로퍼티가 모든 선택된 파일의 취합임을 나타내기 위해, 선택된 파일과 추가적으로 구별될 수 있다(예를 들어, 서로 다른 컬러, 폰트, 하이라이팅, 외관, 크기, 기타). 도 127은 취합된 프로퍼티 값(12701)이, 선택된 파일(12601, 12602) 개개에 대한 패턴과 다른, 음영으로 표현된 다른 외관으로 디스플레이되어 있는 예를 나타낸 것이다. 음영은 예를 들어 적색 컬러를 나타낼 수 있는 반면, 파일(12601, 12602)에 대한 패턴은 녹색 및 황색일 수 있다.
취합된 값의 강조 및/또는 구별은, 어떤 경우에, 값의 소스를 나타내는 방식으로 행해질 수 있다. 예를 들어, 도 128은 도 127에 나타낸 뷰의 확대된 프로퍼티/메타데이터 디스플레이를 나타낸 것이다. 키워드 등의 몇개의 프로퍼티의 취합은 그 결과 다중 선택으로부터 취합된 다중 프로퍼티 값의 리스트(12801)가 얻어질 수 있다. 이들 취합된 프로퍼티는 어느 값이 어느 선택된 파일로부터 온 것인지를 나타내는 다른 외관을 부여받을 수 있다. 도 128 예에서, 값(12802, 12803)은, 그 특정의 값(예를 들어, 키워드)이 선택된 파일(12601, 12602) 둘다에 공통임을 나타내기 위해, 한 형태의 음영으로 나타내어져 있다. 그 음영은 상기한 구별 및/또는 강조의 형태들 중 임의의 것(예를 들어, 적색 컬러)을 반영할 수 있다. 값(12804, 12805)은, 이들이 동일한 패턴(예를 들어, 파일 및 그의 값이 둘다 청색임)을 공유하는 하나의 선택된 파일(12601)과 연관되어 있음을 나타내기 위해, 제1 패턴으로 나타내어져 있으며, 값(12806)은, 이 값이 동일한 패턴(예를 들어, 이 파일 및 그의 값은 녹색임)을 공유하는 다른 선택된 파일(12602)과 연관되어 있음을 나타내기 위해, 다른 패턴을 갖는다. 모든 선택된 파일에 공통인 값들을 그렇지 않은 것들로부터 분리하여 구획하기 위해 분리선(12807)이 사용될 수 있다. 물론, 라벨(12808)도 역시, 그것이 취합된 프로퍼티임을 나타내기 위해, 시각적으로 구별 및/또는 강조될 수 있다. 예를 들어, 라벨(12808)은 또한 적색으로 되어 있을 수 있다.
강조 및/또는 구별은 또한 취합된 값들 중 어떤 값의 사용자 선택으로 시작할 수 있다. 예를 들어, 사용자는 취합된 리스트 내의 값들 중 하나를 선택하고 어느 파일이 선택된 값을 공유하는지를 나타내는 후속 디스플레이가 나타나게 할 수 있다. 이 표시는 공통 외관의 형태로 될 수 있으며, 여기서 선택된 값 및 그의 대응하는 파일은 공통의 방식으로 디스플레이된다. 예를 들어, 값(12806)을 클릭함으로써, 시스템은 그 프로퍼티 값의 폰트를 굵은체 폰트로 자동적으로 변경할 수 있고, 선택된 속성을 갖는 파일을 식별하기 위해 파일 리스트(12602)에 동일한 것을 할 수 있다.
상기의 설명이 쉘 브라우저에서 미리보기로 디스플레이된 프로퍼티 및 메타데이터에 관한 것이지만, 이들 특징은 다른 상황에서도 역시 사용될 수 있다. 다중 프로퍼티 및/또는 메타데이터의 디스플레이를 수반하는 임의의 상황은 상기한 특징으로부터 이득을 볼 수 있다.
어떤 종류의 프로퍼티가 취합하기가 더 쉬운 것은 이들이 숫자를 가지기 때문이지만(예를 들어, 파일 크기는 단지 개개의 크기의 총계임), 다른 유형의 프로퍼티는 취합하기가 더 어려울 수 있다. 예를 들어, 어떤 프로퍼티는 텍스트 워드를 값(예를 들어, 키워드)으로서 갖는다. 게다가, 어떤 개개의 프로퍼티 및/또는 메타데이터는 다중값 프로퍼티라고 하는 다수의 값 자체를 가질 수 있다. 예를 들어, 주어진 파일의 "키워드" 프로퍼티가 값으로서 서로 다른 키워드를 전혀 갖지 않거나, 1개, 2개, 3개 또는 임의의 갯수 가질 수 있다(예를 들어, 하나의 파일은 파일과 관련된 키워드로서 "땅콩", "음식" 및 "캔디"를 열거할 수 있다). 이들 다수의 값은 또한 각각의 파일에 대해 의미있는 방식으로 배열되어 있을 수 있으며, 따라서 첫번째 값이 보다 더 중요할 수 있다(예를 들어, 땅콩을 주로 처리하는 기사는 첫번째 키워드로서 "땅콩"을 열거할 수 있는데 그 이유는 그것이 가장 중요하기 때문이고, 중요도의 내림차순으로 두번째 및 세번째로 "음식" 및 "캔디"를 열거할 수 있다). 각각이 다수의 키워드를 갖는 다수의 파일이 선택되는 경우, 그 프로퍼티를 취합하는 프로세스는 단지 숫자를 더하는 것처럼 간단하지는 않다. 그러한 일이 일어나는 경우, 시스템은 개개의 선택된 파일에 대해 값들이 나타나는 순서에 기초하여 어떤 형태의 순위 순서로 되어 있는 값들의 리스트를 디스플레이할 수 있다. 값들이 여러가지 선택된 파일에 대해 나타날 때, 취합된 값들의 결과 리스트가 값들의 상대적 중요도에 대응하도록 하는 데 도움을 주기 위해 조치들이 취해질 수 있다. 예를 들어, 5개의 신문 기사는 기사에서 논의된 도시들을 식별해주는 키워드를 가질 수 있으며, 이하의 순서로 순위가 매겨질 수 있다.
파일 1: 오스틴, 시카고, 보스톤, 디트로이트
파일 2: 시카고, 디트로이트, 보스톤
파일 3: 시카고, 보스톤
파일 4: 디트로이트, 시카고
파일 5: 보스톤, 오스틴
이 예에서, 시카고는 "1등"을 2번 하였고(예를 들어, 파일 2 및 파일 3이 시카고를 많이 논의함), "2등"을 두번 하였다(예를 들어, 파일 1 및 파일 4는 시카고에 중점을 두지는 않지만, 언급은 함). 그 결과 얻은 이들 프로퍼티의 취합은 중복성을 제거할 수 있고, 파일에 대한 "시카고"의 상대적 중요도(및 다른 값)를 나타내는 순서로 프로퍼티를 디스플레이할 수 있으며, 또한 특정의 값이 파일의 프로퍼티 "시카고, 보스톤, 디트로이트, 오스틴"에 나타나는 횟수를 고려할 수 있다. 따라서, 이 예에서, 다수의 선택된 파일은, 전체로서, 대부분 시카고를 다루고 있고, 이어서 보스톤을, 이어서 디트로이트를, 그리고 오스틴을 가장 적게 다루고 있다.
도 129a 및 도 129b는 다중값 프로퍼티에 대한 취합된 값이 디스플레이될 수 있고 이러한 취합된 디스플레이가 필요할 때마다 및/또는 다중값 프로퍼티가 변경될 때마다 실행될 수 있는 순서를 결정하는 예시적인 프로세스를 나타낸 것이다. 이 프로세스는 비례 대표제(Single Transferable Vote) 알고리즘의 수정된 형태이다. 이 프로세스에서, 특정의 값이 파일의 프로퍼티에서 첫번째로 열거되어 있는 경우, 그것은 1등을 위한 "투표"인 것으로 간주된다. 그 값이 두번째로 열거되어 있는 경우, 그것은 2등을 위한 투표이고, 이하 마찬가지이다. 이 프로세스는, 각각의 특정의 값이 선택된 파일에 나타나는 횟수 및 선택된 파일 각각에 의해 그 값에 주어진 상대적 중요도 둘다에 기초하는, 중복성 없는 순위를 생성한다.
단계(12901)에서, 전역적 정수 상수(C)는 자동적으로(예를 들어, 컴퓨터 시스템은 시스템 자원의 이용가능성을 검출하고 시스템의 교착 상태를 회피하도록 그 상수를 조정할 수 있음) 또는 수동적으로(예를 들어, 사용자는, 다중값 프로퍼티의 취합에서 얼마만큼의 상세를 원하는지에 따라, C를 원하는 만큼 높게 또는 낮게 설정하는 옵션을 부여받을 수 있음) 설정될 수 있다. 이 상수는 프로세스가 수행되는 장소 또는 순위의 번호를 나타낸다. 예를 들어, C는 10일 수 있다. 보다 높은 상수 C는 순위에 있어서 보다 큰 입도를 가능하게 해주지만, 더 많은 처리 용량 및 더 많은 시간을 필요로 한다. 이 값은 사용자 선호, 시스템 설정, 가용 자원, 시스템 부하, 기타 등등에 따라 동적으로 설정될 수 있다.
단계(12902)에서, 선택된 파일 중에 존재하는 각각의 값에 대해 루프가 시작된다. 단계(12903)에서, 투표에서의 처음 C개의 자리에 대해 내포된 루프가 실행된다. 단계(12904)에서, 각각의 자리에 대해, 시스템은 그 자리에 대해 현재의 값이 받은 투표의 수를 기록한다. 이들 2개의 루프의 결과, 시스템은 각각의 값에 대해 그 값이 처음 C개의 "자리" 각각에 대해 몇개의 "투표"를 받았는지를 판정한다. 이어서, 단계(12905)에서, 최상위 자리(첫번째 자리)에서 시작하여 C번째 자리까지 계속하여, C개의 자리 각각을 처리하기 위해 또하나의 루프가 시작된다.
단계(12906)에서, 임의의 단일의 값이 고려 중인 자리에 대해 가장 많은 투표를 받았는지를 판정하기 위해 검사가 행해진다. 값이 이 자리에 대해 가장 많은 투표를 받은 경우, 그 값은 이 자리를 수여받으며, 단계(12907)에서, 이 값은 투표 도표 작성 프로세스에서의 나머지 계산으로부터 제거된다. 따라서, 상기 예에서, 시카고는 첫번째 자리에 대해 가장 많은 투표를 받았다(2번의 투표).
단계(12906)에서, 이 자리에 대해 가장 많은 투표를 받은 값이 하나도 없는 경우, 현재의 자리에 대해 동점이 있으며(2개 이상의 값이 이 자리에 대해 동일한 수의 투표를 가지거나 모든 값이 이 자리에 대해 0개의 투표를 가짐), 프로세스는 단계(12908)로 이동하여, 검사되고 있는 현재의 자리가 검사될 마지막 자리(C번째 자리)인지 여부를 판정하기 위해 검사가 행해진다. 그렇지 않은 경우, 프로세스는 단계(12909)로 이동한다. 단계(12909)에서, 시스템은 현재 동점인 값이 그 다음 자리에 대해 받은 투표의 수를 식별하기 위해 한자리 앞을 "엿본다". 단계(12910)에서, 동점인 값들 중 하나가 그 다음 자리에 대해 가장 많은 투표를 가진 경우, 단계(12911)에서 그 값은 현재의 자리를 부여받으며, 나머지 동점인 값들이 보유하는 현재의 자리에 대한 투표가 그 다음 자리로 이동, 즉 이전된다. 환언하면, 단계(12911)에서의 "탈락자"는 현재의 자리에 대한 그의 투표를 그 다음 자리에 대한 그의 투표 총계에 가산하고, 따라서 고려중인 자리에서 투표를 받았지만 그 자리를 수여받지 않은 모든 값에 대해, 현재 라운드에서의 그의 투표는, 그 다음 라운드에 대한 승리자를 계산할 때, 그 다음 라운드에서의 그의 투표로 이월되어 부가된다.
단계(12910)에서, 동점인 값들 중 어느 것도 그 다음 자리에 대해 가장 많은 투표를 갖지 않은 경우, 단계(12913)에서 동점인 값들 전부가 현재의 자리에 대해(동점인 값들 전부가 자리를 부여받을 때까지 그 다음 몇개 자리에 대해) 알파벳 순서로 순위가 매겨지고, 프로세스는 단계(12905)로 되돌아간다. 이와 유사하게, 단계(12908)에서, 동점이 발생했을 때 프로세스가 우연히 마지막 자리(자리 C)를 검사하고 있는 경우, 프로세스는 또한 단계(12913)로 이동하여 동점인 값들을 알파벳 순서로 순위를 매기고 단계(12905)로 계속된다.
단계(12905)로부터, 마지막 자리(C번째 자리)가 처리되면, 프로세스는 단계(12914)로 이동하여, 나머지 순위가 매겨지지 않은 값들에 대한 모든 나머지 투표가 C번째 자리에 대한 투표로서 처리되고, 나머지 값들은 누가 C번째 자리에 대해 가장 많은 투표를 가지고 있는지의 순서로 순위가 매겨지며, 동점은 알파벳 순서를 사용하여 깨진다.
도 129a 및 도 129b에 나타낸 알고리즘은 여러가지 투표 카운트 및 값을 도표로 작성하는 요약 테이블을 메모리에 유지할 수 있다. 이 테이블은, 프로세스가 실행될 때 시스템이 그 테이블을 동작 중인 RAM에 점차적으로 로드하고, 더 이상 필요하지 않은 부분을 RAM으로부터 삭제함으로써 프로세스를 실행하는 데 요구되는 런타임 메모리의 양을 감소시킬 수 있다는 점에서, 유익할 수 있다.
어떤 경우에, 여러가지 다중-프로퍼티 값은 정규화 프로세스를 겪을 수 있다. 정규화 프로세스는 파일의 다중-프로퍼티 필드에 값들이 중복 출현하는 것을 삭제할 수 있다. 예를 들어, 파일은 키워드(개, 고양이, 개)를 가질 수 있으며, 정규화 프로세스는 값들의 첫번째 출현은 유지하고 동일한 값의 그 다음 출현은 제거할 수 있다(예를 들어, 그 결과 "개, 고양이"가 됨). 비정규화된 데이터는 시스템의 메모리에 저장될 수 있고, 정규화된 버전은 그 데이터를 덮어쓰기할 수 있거나 정규화 데이터가 단지 메모리에 따로 저장될 수 있다. 어떤 경우에, 정규화는 사용자가 다중값 프로퍼티를 수정할 때 일어날 수 있다.
어떤 경우에, 사용자는 취합된 디스플레이와의 상호작용을 통해 다중값 프로퍼티를 편집하고자 할 수 있다. 그러할 경우에, 시스템은, 취합된 다중값 프로퍼티 디스플레이에 행해진 변화에 응답하여, 각각의 파일에 대한 다중값 프로퍼티를 수정할 수 있다. 예를 들어, 취합된 디스플레이의 끝에 새로운 프로퍼티를 추가하는 것은 단지 새로운 프로퍼티가 파일들 각각에 대한 다중값 프로퍼티에 첨부되게 할 수 있을 뿐이다. 새로운 프로퍼티가 취합된 다중값 프로퍼티 디스플레이의 시작에 삽입되는 경우 또는 임의의 다른 삽입의 경우에, 동일한 일이 일어날 수 있다. 취합된 프로퍼티 디스플레이 내에서의 프로퍼티의 재정렬 등의 어떤 변화가 파일들 각각에 대한 다중값 프로퍼티의 대응하는 재정렬을 가져올 수 있다.
다중값 프로퍼티는 또한 고유의 데이터 편집 방법을 가질 수 있다. 예를 들어, 이러한 프로퍼티에 대한 필드가, 도 130에 나타낸 것과 유사하게, 리스트에 나타날 수 있다. 필드(13001)는 사용자가 데이터를 입력하기 위해 타이핑할 수 있고 또 다수의 값들(13002)(이들은 세미콜론 등의 문자로 필드에서 구획되어 있을 수 있음)을 가질 수 있는 활성 텍스트 편집 박스일 수 있다. 값들(13002)은, 전체 값이 한번의 선택으로 선택될 수 있도록, 원자적 거동, 즉 토큰 거동을 나타낼 수 있다. 따라서, 어떤 경우에, 데이터를 편집하기 위해 필드(13001)에 삽입 지점이 배치되어 있을 때, 원자적 값(13002)은, 복수의 문자와는 달리, 하나의 단위처럼 거동할 수 있으며(예를 들어, "N" "Y" "C와는 달리 "NYC"), 원자적 값 내에 삽입 지점을 배치하는 것은 심지어 금지될 수 있으며, 따라서 (예를 들어 그 안에서 마우스를 클릭함으로써) 원자적 값 내에 삽입 지점을 배치하려는 시도는 그 결과 삽입 지점이 원자적 값의 이전 또는 이후에 배치될 수 있다. 원자적 값 주변을 내비게이션하기 위해 화살키를 누르는 것도 또한 한번의 키누름으로 그 값의 한쪽에서 다른쪽으로 이동할 수 있다. 게다가, 선택 영역이 있을 수 있는 경우, 이러한 영역은 원자적 값의 일부만을 선택하지 못하게 되어 있을 수 있으며, 따라서 값의 미리 정해진 부분(예를 들어, 절반)의 선택의 결과 전체 값이 선택되어진다. 원자적 값 상에서 허버링하는 것에 의해 그 값이 원자적 값임을 나타내기 위해 그 값을 허버 상태(hover state)에 들어가게 할 수 있다. 예를 들어, 이 허버 상태는 박스 또는 하이라이팅, 또는 전체 원자적 값 주변의 다른 시각적 구별 또는 강조를 포함할 수 있다. 원자적 값의 경우, 그 값들은 또한 드래그-드롭 동작에 의해 재배열될 수 있다.
토큰 거동은 단지 전체 워드를 한번에 선택하는 것에 한정되지 않는다. 워드는 대안적인 사용자 인터페이스 요소로 대체될 수 있다. 예를 들어, 시간은 시계의 그래픽 이미지로 대체될 수 있고, 날짜는 달력의 이미지로 대체될 수 있다. 원자적 값은 아이콘 거동을 나타낼 수 있으며, 따라서 그를 클릭(즉, 우측 클릭)하면 명령 메뉴, 옵션 리스트, 다른 팝업, 기타 등등을 나타나게 하는 것 등의 부가의 레벨들의 상호작용성을 야기할 수 있다. 값들은 또한 다른 파일 및/또는 프로퍼티로 드래그될 수 있으며, 그 값들은 다른 파일 및/또는 프로퍼티에 부가될 수 있다.
파일의 리스트의 끝에, 사용자에게 그 필드가 무슨 데이터를 포함하는지를 알려주는 프롬프트 문자열(13003)이 있을 수 있다. 어떤 경우에, 프롬프트 문자열(13003)은, 필드가 데이터의 입력을 위해 키보드 포커스를 부여받은 때 등의, 필드(13001)가 편집 상태에 있을 때에만 나타날 수 있으며, 프롬프트 문자열(13003)은 다중값 필드에서 실제값으로서 취급되지 않는다(예를 들어, 그것은 필드에서의 값으로 메모리에 저장되지 않고 오히려 사용자 인터페이스의 일부로서 생성된다).
프롬프트 문자열(13003)은 전술한 유형들 중 임의의 것을 사용하여 시각적으로 구별 및/또는 강조될 수 있으며(예를 들어, 이는 문자 주변의 영역에 어떤 컬러의 하이라이팅을 가질 수 있으며), 어떤 유형의 디폴트 거동을 나타낼 수 있다. 예를 들어, 프롬프트 문자열(13003)은 필드(13001)가 편집 상태에 있을 때마다 자동적으로 나타날 수 있으며, 삽입 지점은 값들의 문자열의 끝에 있다. 사용자가 (예를 들어, 텍스트박스에 타이핑하기 시작함으로써) 삽입 지점에 새로운 값들을 삽입하기 위해 타이핑하기 시작하고 새로운 문자가 부가되면, 프롬프트 문자열(13003)이 자동적으로 사라질 수 있다. 사용자가 새로운 값의 입력을 완료하거나 중단하면, 프롬프트 문자열이 자동적으로 다시 나타날 수 있다.
편집 상태에서, 필드는 또한 다중값 필드(13001)에 추가하기 위한 가능한 값들의 리스트를 사용자에게 제공하는 드롭다운 메뉴(13004)를 디스플레이할 수 있으며, 사용자는 그 메뉴로부터 엔트리를 선택할 수 있다. 드롭다운 메뉴(13004)는, 도 131에 도시한 프로세스에 따라 구현될 수 있는, 자동제안(autosuggest) 특징을 포함할 수 있다. 먼저, 이 프로세스는 단계(13101)에서 주어진 프로퍼티에 대해 이미 사용 중인 및/또는 주어진 사용자에 의해 사용되는 모든 값들을 수집하는 것으로 시작할 수 있다. 단계(13102)에서, 메뉴(13004)는 선택된 파일(들)에 대한 다중값 프로퍼티에 이미 존재하는 값들을 생략할 수 있는데, 그 이유는 사용자가 중복된 것을 추가할 가능성이 없기 때문이다. 단계(13103)에서, 리스트는 인기도별로, 알파벳 순으로, 또는 임의의 다른 원하는 방법으로 정렬될 수 있다. 이어서, 단계(13104)에서, 메뉴가 자동제안과 함께 디스플레이될 수 있다. 열거된 값들 중 일부가 선택된 파일 중 일부(그렇지만, 전부는 아님)에 대해 이미 존재하는 경우, 그 값들은 그 사실을 나타내기 위해 다른 외관(예를 들어, 상기한 바와 같이, 하이라이팅, 컬러, 패널, 폰트, 기타 등등)을 제공받을 수 있다. 선택된 파일 중 어느 것에서도 사용되지 않는 값도 역시 그 사실을 나타내기 위해 다른 외관을 제공받을 수 있다.
이 필드는 또한, 도 132에 도시한 바와 같이, 자동 완성 기능을 가질 수 있다. 자동 완성 기능에 있어서, 사용자가 (예를 들어, 도 132 예에서 "D"를 타이핑함으로써) 다중값 프로퍼티에 추가할 새로운 값을 타이핑하기 시작할 때, 시스템은 예상된 값으로 엔트리를 완성하려고 자동적으로 시도할 수 있다. 자동 완성 기능은 도 133에 나타낸 프로세스를 사용하여 구현될 수 있다. 단계(13301)에서 주어진 프로퍼티에 대해 사용 중인 값들 전부를 가져오고 단계(13302)에서 선택된 파일(들)에 이미 적용되는 것들을 필터링 제거함으로써 예상된 값이 선택될 수 있다. 사용자에 의해 이미 입력된 문자로 시작하는 값들을 식별하고 사용자가 이미 타이핑한 문자(들)로 시작하는 첫번째 값(알파벳 순)을 선택하기 위해 단계(13303)에서 추가의 필터링이 행해질 수 있다. 단계(13304)에서, 나머지 가능한 것들은 인기도별로, 알파벳 순으로, 또는 임의의 다른 원하는 방법에 의해 정렬될 수 있으며, 단계(13304)에서 나머지 리스트가 디스플레이될 수 있다. 리스트에서의 첫번째 엔트리가 디폴트로 선택될 수 있고 하이라이트될 수 있으며, 나머지 문자들은 필드에서 사용자가 입력한 데이터 다음에, 원하는 경우 부가적인 하이라이팅과 함께, 자동적으로 배치될 수 있다.
상기한 자동 제안 및 자동 완성 기능은 다른 유형의 필터링 단계들도 역시 포함할 수 있다. 예를 들어, 필터는 사용자에 의해 선택 및/또는 입력된 가장 최근의 값들을 선택하거나, 프로퍼티의 리스트를 생성한 상황에 기초하여 가능한 값들을 필터링할 수 있다. 예를 들어, 선택된 파일이 프로젝트 뷰의 일부로서 디스플레이하기 위해(예를 들어, 주어진 프로젝트에 관한 파일을 디스플레이하기 위해) 선택된 경우, 시스템은 어떤 가능한 갑사들이 그 프로젝트에서 더(또는 덜) 사용될 가능성이 있는지를 자동적으로 판정할 수 있고, 그에 따라 리스트를 필터링할 수 있다.
사용자가 필드에 데이터를 입력하고 있을 때, 그 입력을 검증하기 위해 검사가 행해질 수 있다. 예를 들어, 어떤 필드는 지정된 범위 또는 리스트의 가능한 값들(예를 들어, 요일)만을 갖도록 사전 결정되어 있을 수 있으며, 사용자가 다중-프로퍼티 필드에 유효하지 않은 엔트리를 입력하려고 시도하는 경우, 시스템은 단순히 그 엔트리를 거부하고 사용자에게 그 엔트리가 유효하지 않음을 나타내는 메시지를 제공할 수 있다.
본 발명의 대체 실시예 및 구현은, 첨부 도면을 비롯하여 본 명세서를 살펴보면, 관련 업계의 당업자에게는 자명할 것이다. 예를 들어, 기술된 프로세스에서의 여러가지 단계는 본 명세서에 기술된 특징들의 선택된 서브셋을 구현하기 위해 원하는 바에 따라 재정렬, 수정 및/또는 삭제될 수 있다. 게다가, 이상에서, "본 발명"의 하나 이상의 "측면" 또는 "실시예"에서 발견되는 어떤 특징에 대한 언급은 단지 단독으로 또는 다른 개념과 조합하여 사용되는 것이 유익할 수 있는 여러가지 개념을 예시하기 위한 것에 불과하며, 단지 하나의 발명 개념이 본 명세서에 개시되어 있음을 암시하는 것으로 또는 상기한 특징들 전부가 이하의 청구항들 중 임의의 것에서 요구되는 것으로 해석되어서는 안된다. 오히려, 이하의 청구항들 각각은 그 자신의 별개의 발명이며, 인용된 것을 넘어서는 어떤 제한을 갖는 것으로 해석되어서는 안된다.
동적 스크롤링: 본 발명의 여러가지 측면들은 종래의 폴더 트리 컨트롤(예를 들어, 내비게이션 창, 내비게이션 패널, 페이지 공간 컨트롤, 기타 등등)을 통한 내비게이션 또는 다른 데이터의 내비게이션을 개선하는 데 사용될 수 있다. 도 136의 종래의 폴더 트리 컨트롤(13600)은 사용자가 데이터을 보고, 구성하며, 검색할 수 있게 해준다. 일반적으로, 수직 스크롤 바(13602) 및 수평 스크롤 바(13604)는 폴더 트리 구조를 통한 사용자 내비게이션을 가능하게 해주는 한 메카니즘으로서 폴더 트리 컨트롤에 수반된다. 사용자가 폴더 트리 구조의 계층 구조를 통해 수직으로 내비게이션할 때, 관련 노드가 볼 수 있는 좁은 윈도우 창에서 더 이상 완전히 보이지 않을 수 있다. 예를 들어, 도 136에서, 도 136의 "Installer"라고 표시된 노드(13606)가 처음에 포커스를 가지고 있을 때 사용자가 반복적으로 "아래 화살표" 키를 누르는 것에 응답하여, "Installer" 노드 아래의 보이지 않는 또는 흐릿한 노드(13608) 각각은 차례로 하이라이트되어 포커스를 받는다. 그렇지만, 이들 노드는 좁은 윈도우 창에서 완전히 보이지는 않는다. 사용자는 그 노드들(13608)을 완전히 보이게 하기 위해 뒤이어서 볼 수 있는 좁은 윈도우 창을 우측으로 수평으로 스크롤해야만 한다.
도 137에서, 본 발명의 여러가지 측면에 따른 폴더 트리가 디스플레이되어 있다. 당업자라면 도 137이 본 발명의 여러가지 측면에 따른 폴더 트리의 한 예에 불과하다는 것을 잘 알 것이다. 본 발명의 측면들은 다양한 트리 컨트롤 또는 다른 데이터 내비게이션으로 구현될 수 있다. 한 예에서, 폴더 트리는 사용자에 의해 내비게이션될 때 계층적 레벨로 트리의 브랜치를 보여주는 계층적으로 트리-형상인 일련의 사용자 인터페이스 컨트롤일 수 있다. 폴더 트리 컨트롤의 사용자는 정위치의 노드를 확장하기 위해 트리 컨트롤에 의해 노출된 노드를 클릭할 수 있으며, 그 노드가 이미 확장되어 있는 경우 그 노드는 축소될 수 있다. '+' 또는 '-'를 나타내는 것 등의 작은 위젯이, 기술 분야에 공지되어 있는 바와 같이, 노드가 축소되어 있는지 확장되어 있는지를 나타내기 위해, 사용될 수 있다. 노드의 확장은 현재 선택된 노드 아래에 계층적으로 내포된 노드를 보여준다. 사용자는, 예를 들어 버튼을 클릭하거나, 노드를 클릭하거나, 또는 디스플레이된 위젯을 클릭함으로써, 노드를 확장/축소할 수 있다.
폴더 트리 컨트롤은, 기술 분야에 공지되어 있는 바와 같이, 사용자가 계층적으로 정렬된 데이터를 통해 내비게이션하게 해줄 수 있다. 도 137에서, 수직 스크롤 바(13702)는 폴더 트리 구조를 통한 사용자 내비게이션을 가능하게 해주는 한 메카니즘으로서 폴더 트리 컨트롤에 수반한다. 예를 들어, 도 137에서, 사용자가 떠있는 수직 스크롤 바 컨트롤(13707)을 윈도우 창의 하부쪽으로 드래그하는 것에 응답하여, 폴더 트리 컨트롤은 보이는 내용을 위쪽으로 스크롤함으로써 이전에 디스플레이되지 않은 노드를 윈도우(13700) 아래쪽으로부터 디스플레이한다.
본 발명의 예시적인 측면에 따르면, 사용자가 한 차원을 따라(예를 들어, 수직으로) 내비게이션할 때, 폴더 트리 컨트롤은, 사용자와 관련된 노드가 윈도우(13700)의 가시 영역 내에 있도록 하기 위해, 다른 차원에서(예를 들어, 수평으로) 자동적으로 스크롤할 수 있다. 관련 노드는 현재 노드, 입력 포커스를 갖는 노드, 또는 다른 방식으로 선택된 노드일 수 있다. 관련 노드는 마우스 포인터의 위치와 수평으로 나란히 있는 예를 들어 트리 구조 내의 노드일 수 있다. 사용자가 폴더 트리 컨트롤의 임의의 노드를 스크롤, 확장 또는 축소함으로써 관련 노드가 더 이상 완전히 및/또는 부분적으로 보이지 않게 될 때, 폴더 트리 컨트롤은 관련 노드가 윈도우(13700) 내에서 보이도록 폴더 트리를 자동적으로 수평으로 스크롤할 수 있다.
당업자라면 이 예시적인 실시예가 자동적인 수평 스크롤링을 수행하고 있지만, 예를 들어 사용자가 수직보다는 수평 배열에 적합한 다른 유형의 데이터를 내비게이션하는 경우에, 다른 실시예들이 사용자에 의한 수평 스크롤링에 응답하여 자동적으로 수직으로 스크롤할 수 있다는 것을 잘 알 것이다. 예를 들어, 본 발명의 여러가지 측면들은 내비게이션을 나타내는 사용자 입력의 상당 부분이 수평 차원인 시스템에서 구현될 수 있다. 그 경우에, 당업자라면 자동적인 동적 수직 스크롤링이 있도록 본 발명의 여러가지 측면을 구현할 수 있다.
예를 들어, 도 137의 예에서, 마우스 포인터가 그 때의 관련 노드(13704)의 바로 우측의 장소(13705)에 있을 때, 디스플레이된 트리는 수평으로 스크롤될 필요가 없는데, 그 이유는 노드(13704)의 폴더 이름이 완전히 보이기 때문이다. 그렇지만, 사용자가, 마우스 포인터(13705)가 노드(13706)과 수평으로 나란한 위치에 있도록, 마우스 포인터(13705)를 사용하여 떠있는 수직 스크롤 바 컨트롤(13708)을 드래그할 때, 디스플레이된 트리 뷰는, 이하에서 더 기술하는 바와 같이, 자동적으로 수평으로 스크롤될 수 있다. 이 예에서, 마우스 포인터(13705)는 노드(13706)에 수평으로 근접해 있다. 게다가, 이 예에서, 디스플레이된 트리 뷰는 우측으로 수평으로 스크롤되고, 그 결과 폴더 이름이 완전히 보이도록, 즉 미리 정해진 가시 영역(13700)의 폭을 고려할 때 가능한 한 완전히 보이도록, 트리가 미리 정해진 거리만큼 좌측으로 이동한다. 폴더 이름이 어떤 이유로 절단되어 있는 경우, 미리 정해진 거리는 동적 수평 스크롤링의 결과 절단된 폴더 이름 전체가 완전히 보이게 되도록 될 수 있다.
당업자라면, 본 명세서에 개시된 내용을 살펴본 후에, 내비게이션 컨트롤(예를 들어, 폴더 트리 컨트롤)을 자동적으로 스크롤하는 미리 정해진 거리가 본 발명의 실시예들 간에 다를 수 있다는 것을 잘 알 것이다. 한 예에서, 자동적으로 스크롤하기 위한 미리 정해진 거리는 관련 노드(13706)를 미리 정해진 가시 영역(13700)의 우측 경계에 맞춰 정렬하는 데 필요한 거리와 같다. 제2 예에서, 관련 노드는 미리 정해진 가시 영역(13700)보다 폭이 넓고, 자동적으로 스크롤하기 위한 미리 정해진 거리는 관련 노드(13706)를 미리 정해진 가시 영역(13700)의 좌측 경계에 맞춰 정렬하는 데 필요한 거리와 같을 수 있다. 제3 예에서, 자동적으로 스크롤하기 위한 미리 정해진 거리는 미리 정해진 가시 영역(13700)의 중앙에 관련 노드(13706)를 정렬하는 데 필요한 거리와 같을 수 있다. 이들 예는 관련 노드(13706)를 미리 정해진 가시 영역(13700)에 대략적으로 정렬하기 위해 사용되는 적절한 미리 정해진 거리의 예시에 불과하며, 이들은 청구항의 범위를 제한하는 것으로 좁게 해석되어서는 안된다.
본 발명의 여러가지 측면에 따르면, 전술한 동적 수평 스크롤링은 적절한 기간만큼 지연될 수 있다. 예를 들어, 수평 스크롤링은 즉각적으로 행해지도록 설정되거나, 사용자가 처음으로 관련 노드와 나란하게 마우스 포인터를 위치시키고 나서 100ms 후에 일어나도록 설정될 수 있다. 시간 지연을 구현하는 것의 적어도 하나의 이점은 원활한 이동의 외관을 생성 또는 제공하는 것이다. 당업자라면 시간 지연량이 적절한 경우 변경될 수 있다는 것을 잘 알 것이다.
도 138a 및 도 138b는 본 발명의 여러가지 측면에 따라 저장된 데이터를 보고 구성하는 예시적인 사용자 인터페이스의 스크린샷을 나타낸 것이다. 당업자라면 문서, 메시지, 비디오 파일, 및 연락처에 대해 유사한 내비게이션 컨트롤 인터페이스가 이용가능하며, 각각의 경우에 내비게이션 컨트롤 인터페이스가 제공되는 데이터 항목의 종류에 특히 적합하게 되어 있다는 것을 잘 알 것이다. 이러한 컨텐츠-지향 인터페이스는 사용자 인터페이스의 컴포넌트, 즉 쉘로서 운영 체제 제품을 구비하고 있을 수 있다.
도 138a에서, 노드(13802)는 사용자 입력에 응답하여 현재 포커스를 가지고 있다. 단지 한 예로서, 이러한 사용자 입력은 사용자가 마우스 포인터를 노드(13802)의 근방 또는 그 위에서 이동시키는 것을 포함할 수 있다. 관련 노드(노드(13802)) 상에서 포커스를 받을 때, 트리 컨트롤은 수평 스크롤이 적절한지 여부를 판정한다. 이 경우에, 폴더 이름(즉, 기술자)는 완전히 보인다. 따라서, 자동 수평 스크롤링이 수행되지 않는다. 그렇지만, 사용자가 마우스 포인터를 노드(13804) 근방 또는 그 위에서 이동시킬 때, 노드(13804)는 포커스를 받는다. 도 138b는 본 발명의 여러가지 측면에 따른 이러한 폴더 트리 컨트롤을 나타낸 것에 불과하다. 그 때의 관련 노드(13808)는 도 138b에서 현재 포커스를 가지고 있다. 노드(13808)는 그렇지만 노드(13804)와 동일한 데이터 항목이고, 노드(13808)가 도 138b에서 포커스를 가지고 있는 반면, 노드(13804)는 도 138a에서 포커스를 가지고 있지 않았다. 게다가, 도 138b에서 폴더 트리는 노드(13808)의 전체 이름이 보이게 되도록 자동적으로 동적으로 미리 정해진 거리만큼 우측으로 수평 스크롤되었다. 이 경우에, 노드 이름은 "폴더 이름"이고, 절단되어 있지 않다. 폴더 트리 컨트롤이 수평으로 스크롤되는 미리 정해진 거리는 노드 이름의 끝이 대략적으로 내부 윈도우 창의 경계에 또는 그 근방에 정렬되기 위해 요구되는 거리량을 계산함으로써 결정될 수 있다. 한편, 이전에 포커싱된 노드(13806)는 더 이상 하이라이트되어 있지 않으며 완전히 보이지 않을 수 있다.
내비게이션 컨트롤의 뷰는, 스크롤링(예를 들어, 수평 스크롤링)이 요망되는 것으로 판정된 후에, 적절한 거리만큼 동적으로 수평 스크롤된다. 당업자라면 본 발명의 적어도 하나의 이점이 수평 스크롤 바의 디스플레이를 필요로 하지 않으며, 그 결과 제한된 디스플레이 화면 상에 폴더 트리의 영역을 디스플레이하기 위한 부가적인 가시 영역이 얻어진다는 것임을 잘 알 것이다. 수평 스크롤 바가 요구되지는 않지만, 본 발명은 수평 스크롤 바가 포함 및/또는 사용되는 것을 배제하지 않는다. 예를 들어, 수평 스크롤 바가 폴더 트리와 관련하여 디스플레이된 뷰의 현재의 수평 위치를 시각적으로 나타내기 위해 사용자에게 유익할 수 있는 것으로 생각될 수 있다.
본 발명의 여러가지 측면에 따르면, 도 139는, 다른 차원에서의 내용의 사용자-제어 스크롤링 또는 내비게이션에 응답하여, 한 차원에서 내용을 자동적으로 동적으로 스크롤하는 컴퓨터 구현 방법을 기술하는 플로우차트를 나타낸 것이다. 당업자라면 도 139에 도시된 단계들이 인용된 순서와 다르게 수행될 수 있다는 것과 도 139에 도시된 하나 이상의 단계들이 선택적일 수 있다는 것을 잘 알 것이다.
단계(13902)에서, 사용자는 내용의 초기 뷰를 제공받는다. 이 내용은 다중 레벨의 노드를 갖는 계층적 폴더 트리 컨트롤의 형태로 디스플레이될 수 있다. 도 138a는 계층적 폴더 트리의 제1 뷰의 한 예에 불과하다. 도 136은 계층적 폴더 트리의 제1 뷰의 또다른 예이다.
단계(13906)에서, 사용자는 제1 차원에서 내용을 스크롤하고 및/또는 그 내용과 상호작용한다. 이들 동작은 내용의 내비게이션을 나타내는 사용자 입력의 어떤 예들에 불과하다. 여러가지 사용자 입력은 미리 정해진 가시 영역에서 그의 위치를 이동시킴으로써 관련 내용을 스크롤한다. 예를 들어, 내용의 수직 스크롤링을 가져오는 한 형태의 사용자 내비게이션은 사용자가 떠있는 수직 스크롤 바 컨트롤(13606)을, 폴더 트리 컨트롤을 포함하는 윈도우 창(13600)의 상단 또는 하단쪽으로 드래그할 때이다. 한편, 여러가지 비스크롤링 사용자 입력은, 어느 내용이 사용자와 관련이 있는지의 지정을 갱신함으로써, 관련 내용과 상호작용한다. 일례는, 폴더 트리 컨트롤 창이 활성인 동안에, 사용자가 입력 장치(115) 상의 "위쪽 화살표", "아래쪽 화살표", "한 페이지 위로" 또는 "한 페이지 아래로" 버튼을 누를 때이다. 게다가, 비스크롤링 사용자 입력의 한 예는 도 138a에 예시될 수 있다. 도 138a에 예시된 내용의 뷰를 제공받은 사용자가 마우스 포인터를 노드(13808) 위에서 또는 그 근방에서 이동시키는 경우, 노드(13808)는 포커스를 받는다. 이 예에서, 사용자는, 내용을 제1 차원으로 스크롤링하기보다는, 내용과 상호작용한다. 다른 예에서, 사용자는 내용과 상호작용하는 것과 제1 차원으로 내용을 스크롤하는 것 둘다를 동시에 할 수 있다. 또다른 예에서, 도 136과 관련하여, 사용자는 확장 위젯을 누름으로써 폴더 트리와 상호작용할 수 있으며, 그 결과 위젯이 대응하는 노드(13610)의 서브노드(13608)가 폴더 트리 컨트롤의 가시 영역에서 부분적으로만 디스플레이된다.
단계(13908)에서, 관련 내용이 완전히 보이는 경우, 자동적인 스크롤링이 필요하지 않을 수 있다. 관련 내용이 미리 정해진 가시 영역에서 완전히 보이는 것이 아닌 경우(또는 적어도 부분적으로 흐릿한 경우), 관련 내용은 제2 차원에서 관련 내용이 가시도를 증가시킨 상태로 스크롤될 수 있다. 단지 한 예로서, 도 138a에서의 관련 내용은 노드(13802)이고, 이 노드는 그 예시에서 포커스를 가지고 있다. 사용자가 (예를 들어, 단계(13906)에서) 노드(13804) 위에서 또는 그 근방에서 마우스 포인터를 이동시킴으로써 도 138a에 디스플레이된 내용과 상호작용한 후에, 노드(13804)는 포커스를 받고 관련 내용이 된다. 노드(13804)가 미리 정해진 가시 영역에서 적어도 부분적으로 보이지 않기(흐릿하기) 때문에, 관련 내용은 이하에서 더 기술하는 바와 같이 수평 차원에서 자동적으로 스크롤될 수 있다. 다른 예에서, 도 136과 관련하여, 사용자가 노드(13610)에 대응하는 확장 위젯을 선택하여 서브노드(13608)로 하여금 가시 영역에서 단지 부분적으로만 디스플레이되게 한 경우, 관련 내용은 노드(13610) 및 그의 서브노드(13608) 둘다를 포함할 수 있다.
단계(13910)에서, 단계(13912)의 수행이 미리 정해진 시간 동안 지연된다. 본 발명의 여러가지 실시예에서, 미리 정해진 지연 시간의 양은 0이거나 0보다 큰 임의의 다른 값일 수 있다. 예를 들어, 도 138a에서, 폴더 트리 컨트롤이 미리 정해진 거리만큼 동적으로 수평으로 스크롤되기 이전에, 100ms의 미리 정해진 지연 시간이 만료될 수 있으며, 그 결과 도 138b에 나타낸 뷰가 얻어진다. 당업자라면 설정된 시간 지연량이 적절한 경우 변할 수 있다는 것을 잘 알 것이다.
단계(13912)에서, 이 내용은 제2 차원에서 미리 정해진 거리 동안 자동적으로 동적으로 스크롤된다. 예를 들어, 도 137의 폴더 트리 컨트롤의 경우에, 관련 노드(13706)가 완전히 보이지는 않는 것으로 발견된 경우, 폴더 트리 컨트롤은, 노드 기술자(예를 들어, 폴더 이름)의 끝이 미리 정해진 가시 영역의 우측 경계와 대략적으로 정렬되도록, 미리 정해진 거리만큼 수평으로 스크롤될 수 있다. 당업자라면 여러가지 경우에서 관련 노드를 미리 정해진 가시 영역의 좌측 경계와 대략적으로 정렬시키는 것이 또는 관련 노드를 미리 정해진 가시 영역의 중심에 또는 그 근방에 대략적으로 정렬시키는 것이 바람직할 수 있다는 것을 잘 알 것이다. 이들 경우 각각에서, 노드는 가시 영역의 미리 정해진 경계와 대략적으로 정렬되어 있는 것으로 해석될 것이다. 각 경우에서의 이 미리 정해진 거리도 역시 그에 따라 변할 수 있다. 예를 들어, 도 136과 관련하여, 사용자가 노드(13610)에 대응하는 확장 위젯을 선택한 것에 응답하여, 관련 내용은, 서브노드(13608)가 증가된 가시도를 제공받도록, 미리 정해진 가시 영역의 좌측 경계와 대략적으로 정렬될 것이다.
게다가, 수식어 "제2"의 사용이 제1 차원이 필요하거나 요구되는 것을 의미하는 것으로 해석되어서는 안된다는 것을 알아야 한다. 예를 들어, 단계(13906)에서, 사용자는, 마우스 포인터가 포커스를 노드(13802)로부터 노드(13804)로 변경하도록 마우스 포인터를 이동시킴으로써, 도 138a에 디스플레이된 내용과 상호작용하는 경우, 단계(13912)에서, 내용은 수평 차원에서 자동적으로 동적으로 스크롤될 수 있다. 그 경우에, 수직 차원에서 초기 스크롤링이 없었을지라도, "제2 차원"은 수평 차원이 된다.
마지막으로, 단계(13914)에서, 사용자는 미리 정해진 가시 영역에서 내용의 갱신된 뷰를 제공받는다. 예를 들어, 도 138b는 단계(13914) 이후에 얻어지는 폴더 트리의 스크롤된 내용 뷰이다. 갱신된 뷰는 도 138b에서의 좁은 가시 영역에서 사용자에게 관련 내용(노드(13808))의 증가된 가시도를 제공한다.
통상의 파일 대화상자: 본 발명의 여러가지 측면은 하나 이상의 프로그래밍 인터페이스를 통해 다른 프로그램, 시스템, 모듈, 기타 등등과 통신할 수 있다. 프로그래밍 인터페이스(또는 보다 간단하게, 인터페이스)는 하나 이상의 코드 세그먼트(들)이 하나 이상의 다른 코드 세그먼트(들)에 의해 제공되는 기능과 통신하거나 그에 액세스할 수 있게 해주는 임의의 메카니즘, 프로세스 또는 프로토콜로 볼 수 있다. 다른 대안으로서, 프로그래밍 인터페이스는 다른 컴포넌트(들)의 하나 이상의 메카니즘(들), 방법(들), 함수 호출(들), 모듈(들), 기타 등등과 통신 연결될 수 있는 시스템의 컴포넌트의 하나 이상의 메카니즘(들), 방법(들), 함수 호출(들), 모듈(들), 객체(들), 기타 등등으로 볼 수 있다. 이전의 문장에서의 용어 "코드 세그먼트"는, 적용되는 전문 용어 또는 코드 세그먼트가 따로따로 컴파일되는지 여부에 상관없이, 코드 세그먼트가 소스 코드, 중간 코드, 또는 오브젝트 코드로서 제공되는지에 상관없이, 코드 세그먼트가 런타임 시스템에서 또는 프로세스에서 이용되는지에 상관없이, 이들이 동일한 또는 다른 머신 상에 있는지 또는 다수의 머신에 걸쳐 분산되어 있는지에 상관없이, 또한 코드 세그먼트로 표현된 기능이 전적으로 소프트웨어로, 전적으로 하드웨어로, 또는 소프트웨어와 하드웨어의 조합으로 구현되는지에 상관없이, 하나 이상의 명령어 또는 라인의 코드를 포함시키고 또 예를 들어 코드 모듈, 객체, 서브루틴, 함수, 기타 등등을 포함시키기 위한 것이다. 제한이 아닌 예로서, 애플리케이션 프로그래밍 인터페이스(API), 진입점, 메소드, 함수, 서브루틴, 원격 절차 호출, 및 컴포넌트 객체 모듈(COM) 인터페이스 등의 용어는 프로그래밍 인터페이스의 정의 내에 포함된다.
프로그래밍 인터페이스는 일반적으로 도 145a, 도 145b, 또는 도 145c에 도시된 것처럼 생각될 수 있다. 도 145a는 2개의 컴퓨터 간의 인터페이스를 나타낸 것이다. 도 145b는 제1 및 제2 코드 세그먼트가 통신하는 도관으로서 인터페이스(인터페이스-1)을 나타낸 것이다. 도 145c는, 시스템의 제1 및 제2 코드 세그먼트가 매체(M)를 통해 통신할 수 있게 해주는, 인터페이스 객체(I1, I2)(제1 및 제2 코드 세그먼트의 일부일 수도 일부가 아닐 수도 있음)를 포함하는 것으로 인터페이스를 나타낸 것이다. 도 145c의 도면에서, 인터페이스 객체(I1, I2)를 동일한 시스템의 별개의 인터페이스로 볼 수 있고, 또한 객체(I1, I2)와 매체(M)가 함께 인터페이스를 구성하는 것으로 볼 수 있다. 도 145a, 도 145b 및 도 145c가 양방향 흐름 및 그 흐름의 양측에서의 인터페이스를 나타내고 있지만, 어떤 구현은 단지 한쪽 방향의 정보 흐름만을 가질 수 있고 및/또는 단지 한쪽에서만 인터페이스 객체를 가질 수 있다.
프로그래밍 인터페이스의 측면은 제1 코드 세그먼트가 정보를 제2 코드 세그먼트로 전송하는 메소드(여기서, "정보"는 최광의로 사용되며, 데이터, 명령, 요청, 기타 등등을 포함함), 제2 코드 세그먼트가 정보를 수신하는 메소드, 및 정보의 구조, 시퀀스, 신택스, 구성, 스키마, 타이밍 및 내용을 포함할 수 있다. 이 점에서, 정보가 인터페이스에 의해 정의된 방식으로 전송되는 한, 매체가 유선이든 무선이든 또는 둘다의 조합이든간에 상관없이, 기본적인 전송 매체 자체는 인터페이스의 동작에 중요하지 않을 수 있다. 어떤 상황에서, 정보는 종래의 개념에서 단방향 또는 양방향으로 전달되지 않을 수 있는데, 그 이유는 정보 전송이 다른 메카니즘을 통하거나(예를 들어, 코드 세그먼트 간의 정보 흐름과 별개인, 버퍼, 파일, 기타 등등에 있는 정보) 존재하지 않을 수(한 코드 세그먼트가 단지 제2 코드 세그먼트에 의해 수행되는 기능에 액세스할 때) 있기 때문이다. 이들 측면 중 임의의 것 또는 그 전부는, 예를 들어 코드 세그먼트가 느슨하게 결합된 또는 긴밀하게 결합된 구성에서 시스템의 일부인지에 따라, 주어진 상황에서 중요할 수 있으며, 따라서 이 설명이 예시적이고 비제한적인 것으로 생각되어야 한다.
프로그래밍 인터페이스의 개념은 당업자라면 잘 알고 있는 것이다. 프로그래밍 인터페이스를 구현하는 여러가지 다른 방법이 있다. 이러한 다른 방법은 도 145b 및 도 145c의 단순한 도면보다 더 정교하거나 복잡한 것처럼 보일 수 있지만, 그럼에도 불구하고 동일한 전체적인 결과를 달성하기 위해 유사한 기능을 수행한다. 프로그래밍 인터페이스의 어떤 예시적인 대안의 구현은 도 145d 내지 도 145m과 관련하여 기술한다.
인수 분해. 한 코드 세그먼트에서 다른 것으로의 통신은 그 통신을 다수의 개별적인 통신으로 분해함으로써 간접적으로 달성될 수 있다. 이것은 도 145d 및 도 145e에 개략적으로 나타내어져 있다. 도시된 바와 같이, 어떤 인터페이스는 분할가능한 일련의 기능의 관점에서 기술될 수 있다. 따라서, 도 145b 및 도 145c 의 인터페이스 기능은, 수학적으로 24 또는 2x2x3x2를 제공할 수 있는 것처럼, 동일한 결과를 달성하기 위해 인수분해될 수 있다. 따라서, 도 145d에 나타낸 바와 같이, 인터페이스(인터페이스1)에 의해 제공되는 기능은, 동일한 결과를 달성하면서, 인터페이스의 통신을 다수의 인터페이스(인터페이스1A, 인터페이스1B, 인터페이스1C, 기타 등등)으로 변환하기 위해 세분될 수 있다. 도 145e에 나타낸 바와 같이, 인터페이스(I1)에 의해 제공되는 기능은, 동일한 결과를 달성하면서, 다수의 인터페이스(I1a, I1b, I1c, 기타 등등)으로 세분될 수 있다. 이와 유사하게, 제1 코드 세그먼트로부터 정보를 수신하는 제2 코드 세그먼트의 인터페이스(I2)는 다수의 인터페이스(I2a, I2b, I2c, 기타 등등)으로 인수분해될 수 있다. 인수분해할 때, 제1 코드 세그먼트에 포함되는 인터페이스의 수는 제1 코드 세그먼트에 포함되는 인터페이스의 수와 일치할 필요가 없다. 도 145d 및 도 145e의 경우 중 어느 하나에서, 인터페이스(인터페이스1 및 I1)의 기능상의 핵심은 각각 도 145b 및 도 145c에서와 같이 동일한 채로 있다. 인터페이스의 인수분해도 역시 결합 특성, 교환 특성, 및 다른 수학적 특성을 따를 수 있으며, 따라서 인수분해를 이해하는 것이 어려울 수 있다. 예를 들어, 동작의 순서가 중요하지 않을 수 있으며, 그 결과 인터페이스에 의해 수행되는 기능이 인터페이스에 도달하기에 훨씬 앞서, 다른 코드 또는 인터페이스에 의해, 실행될 수 있거나, 시스템의 별도의 컴포넌트에 의해 수행될 수 있다. 게다가, 프로그래밍 기술 분야의 당업자라면 동일한 결과를 달성하는 서로 다른 함수 호출을 작성하는 다양한 방법이 있다는 것을 잘 알 수 있다.
재정의. 어떤 경우에, 의도된 결과를 여전히 달성하면서 프로그래밍 인터페이스의 어떤 측면(예를 들어, 파라미터)를 무시, 추가, 또는 재정의하는 것이 가능할 수 있다. 이것은 도 145f 및 도 145g에 예시되어 있다. 예를 들어, 도 145b의 인터페이스(인터페이스1)가, 3개의 파라미터("input", "precision" 및 "output")를 포함하고 제1 코드 세그먼트로부터 제2 코드 세그먼트로 발행되는 호출인, 함수 호출 Square(input, precision, output)을 포함하는 것으로 가정하자. 중간 파라미터("precision")가 주어진 시나리오에서 중요하지 않은 경우, 도 145f에 나타낸 바와 같이, 이는 무시되거나 다른 파라미터로 대체될 수 있다. 어느 경우든지, 제2 코드 세그먼트에 의해 입력이 제곱된 후에 출력이 반환되는 한, Square의 기능은 달성될 수 있다. precision은 컴퓨팅 시스템의 어떤 다운스트림 또는 다른 부분에 대해 의미있는 파라미터일 수 있지만, 제곱을 계산하는 좁은 목적으로 정밀도가 필요하지 않은 것으로 생각되는 경우, 이는 대체되거나 무시될 수 있다. 예를 들어, 유효한 정밀도 값을 전달하지 않고, 생일 등의 무의미한 값이 결과에 역효과를 주지 않고 전달될 수 있다. 이와 유사하게, 도 145g에 도시한 바와 같이, 인터페이스(I1)는 인터페이스(I1')로 대체되고, 파라미터를 무시하거나 인터페이스에 추가하도록 재정의된다. 인터페이스(I2)도 불필요한 파라미터 또는 다른 곳에서 처리될 수 있는 파라미터를 무시하도록 이와 유사하게 (인터페이스(I2')으로) 재정의될 수 있다. 이상으로부터 명백한 바와 같이, 프로그래밍 인터페이스는 어떤 경우에 어떤 목적으로는 필요하지 않고 다른 목적으로는 무시되거나 재정의되거나 다른 곳에서 처리하기 위해 전달될 수 있는 파라미터 등의 측면을 포함할 수 있다.
인라인 코딩: 2개의 별도의 코드 모듈의 기능의 일부 또는 그 전부를 병합하여 이들 간의 "인터페이스"가 형태를 바꾸는 것이 실행가능할 수도 있다. 예를 들어, 도 145b 및 도 145c의 기능은 각각 도 145h 및 도 145i의 기능으로 변환될 수 있다. 도 145h에서, 도 145b의 이전의 제1 및 제2 코드 세그먼트는 이들 둘다를 포함하는 모듈로 병합될 수 있다. 이 경우에, 코드 세그먼트는 여전히 서로 통신하고 있을 수 있지만, 인터페이스는 단일의 모듈에 더 적합한 형태로 구성될 수 있다. 따라서, 예를 들어, 정식의 Call 및 Return 문이 더 이상 필요하지 않고, 인터페이스(인터페이스1)에 따른 유사한 처리 또는 응답(들)이 여전히 유효할 수 있다. 이와 유사하게, 도 145i에 나타낸 바와 같이, 도 145c의 인터페이스(I2)의 일부(또는 그 전부)는 인터페이스(I1")를 형성하기 위해 인터페이스(I1) 내에 인라인으로 작성될 수 있다. 예시된 바와 같이, 인터페이스(I2)는 I2a 및 I2b로 분할되고, 인터페이스 일부분(I2a)은 인터페이스(I1")를 형성하기 위해 인터페이스(I1)에 인라인으로 코딩되어 있다.
분리(divorce). 한 코드 세그먼트로부터 다른 것으로의 통신은 그 통신을 다수의 개별적인 통신으로 분해함으로써 간접적으로 달성될 수 있다. 이것은 도 145j 및 도 145k에 개략적으로 나타내어져 있다. 도 145j에 나타낸 바와 같이, 제1 인터페이스(인터페이스1)를 통한 통신을 다른 인터페이스, 이 경우에 인터페이스(인터페이스2A, 인터페이스2B, 인터페이스2C)에 부합하도록 변환하기 위해 하나 이상의 미들웨어(분리 인터페이스(들), 왜냐하면 이들이 기능 및/또는 인터페이스 기능을 원래의 인터페이스로부터 분리시키기 때문임)이 제공된다. 이것은, 예를 들어 애플리케이션의 설치된 베이스가 인터페이스1 프로토콜에 따라 말하자면 운영 체제와 통신하도록 설계되어 있지만 그 다음에 운영 체제가 다른 인터페이스, 이 경우에 인터페이스(인터페이스2A, 인터페이스2B, 인터페이스2C)를 사용하도록 변경되는 경우에, 행해질 수 있다. 요점은 제2 코드 세그먼트에 의해 사용되는 원래의 인터페이스가 제1 코드 세그먼트에 의해 사용되는 인터페이스와 더 이상 호환되지 않도록 변경되며 따라서 이전의 인터페이스와 새로운 인터페이스를 호환되게 하기 위해 매개물이 사용된다는 것이다. 이와 유사하게, 도 145k에 나타낸 바와 같이, 분리 인터페이스(divorce interface)(DI1)에서 인터페이스(I1)로부터의 통신을 수신하도록 또한 분리 인터페이스(DI2)에서 인터페이스 기능을 예를 들어 인터페이스(I2a, I2b)(DI2와 동작하지만 동일한 기능적 결과를 제공하도록 재설계됨)로 전송하도록 제3 코드 세그먼트가 도입될 수 있다. 이와 유사하게, DI1 및 DI2는, 동일 또는 유사한 기능적 결과를 제공하면서, 도 145c의 인터페이스(I1, I2)의 기능을 새로운 운영 체제로 변환시키기 위해 함께 동작할 수 있다.
재작성. 또다른 가능한 변형은, 인터페이스 기능을 동일한 전체적인 결과를 달성하는 다른 어떤 것으로 대체시키기 위해, 코드를 동적으로 재작성하는 것이다. 예를 들어, 중간 언어(intermediate language)(예를 들어, 마이크로소프트 IL, 자바 ByteCode, 기타 등등)로 제공되는 코드 세그먼트가 실행 환경(.Net 프레임워크, 자바 런타임 환경, 또는 다른 유사한 런타임 유형 환경에 의해 제공되는 것 등)에서 JIT(Just-in-Time) 컴파일러 또는 인터프리터에 제공되는 시스템이 있을 수 있다. JIT 컴파일러는 제1 코드 세그먼트로부터의 통신을 제2 코드 세그먼트로 동적으로 변환하도록, 즉 이들을 제2 코드 세그먼트(원래의 코드 세그먼트 또는 다른 제2 코드 세그먼트)에 의해 요구될 수 있는 다른 인터페이스로 변환하도록 작성될 수 있다. 이것은 도 145l 및 도 145m에 나타내어져 있다. 도 145l에서 알 수 있는 바와 같이, 이 방법은 상기한 분리 시나리오와 유사하다. 이는, 예를 들어 애플리케이션의 설치된 베이스가 인터페이스1 프로토콜에 따라 운영 체제와 통신하도록 설계되어 있지만 이어서 운영 체제가 다른 인터페이스를 사용하도록 변경되는 경우에, 행해질 수 있다. JIT 컴파일러는 통신을 동작 중에 설치된-베이스 애플리케이션으로부터 운영 체제의 새로운 인터페이스에 부합시키기 위해 사용될 수 있다. 도 145m에 나타낸 바와 같이, 인터페이스(들)를 동적으로 재작성하는 이 방법은 인터페이스(들)을 동적으로 인수분해하거나 또는 다른 방식으로 이를 변경하기 위해 적용될 수 있다.
또한 유의할 점은 대안의 실시예를 통한 인터페이스로서 동일 또는 유사한 결과를 달성하기 위한 상기한 시나리오가 여러가지 방식으로, 직렬로 및/또는 병렬로, 또는 다른 중재 코드로 조합될 수 있다는 것이다. 따라서, 상기한 대체 실시예는 상호 배타적이 아니며 도 145b 및 도 145c에 제공된 일반 시나리오와 동일한 또는 등가의 시나리오를 생성하기 위해 혼합, 매칭 및 조합될 수 있다. 또한, 유의할 점은, 대부분의 프로그래밍 구조에서와 같이, 본 명세서에 기술되어 있지 않을 수 있지만 그럼에도 불구하고 본 발명의 정신 및 범위에 의해 표현되는 인터페이스의 동일 또는 유사한 기능을 달성하는 다른 유사한 방법이 있다는 것이다.
"파일 대화상자"는 열기, 저장, 또는 파일이 처리되어야 한다는 것 및/또는 파일이 어떻게 처리되어야 하는지를 다른 방식으로 나타내기 위해 생성된 대화상자를 말할 수 있다. 본 발명의 실시예들이 파일의 열기 및 저장을 위한 대화상자의 예와 관련하여 기술되어 있지만, 본 발명은 이 점에서 한정되지 않는다. 파일 대화상자의 다른 예들은 파일 첨부물을 삽입하기 위한, 파일을 가져오기하기 위한, 기타 등등을 위한 대화상자를 포함한다. 본 명세서에서 사용되는 바와 같이, 단어 "파일"은 광의의 의미를 가지며, 일반적으로 컴퓨터에 의해 액세스가능한 정보의 집합체를 말한다. 파일은 텍스트, 프로그래밍 명령어 및/또는 여러가지 다른 유형의 데이터를 포함할 수 있다. 파일은 사용자에게는 문서, 사진, 또는 파일이 데이터를 포함하고 있는 어떤 다른 유형의 항목으로서 식별될 수 있다. 파일은 또한 프래그먼트화되거나 디스크 또는 다른 저장 매체 상의 하나 이상의 물리적 장소에 다른 방식으로 저장될 수 있다.
본 발명은 종래의 계층적 파일 트리 구조로 저장된 파일로 제한되지 않는다. 적어도 어떤 실시예에서, 파일은 상기한 바와 같이 다수의 메타데이터 속성(다른 대안으로서, "프로퍼티"라고 함)을 가질 수 있다. 이들 속성에 대한 값을 사용하여, 파일은 이어서 사용자에 관심있는 집합체로 그룹화될 수 있다. 예로서, 한 컴퓨터 상의 파일들은 파일 저작자, 파일이 관련된 고객, 및 파일 유형 등의 메타데이터 속성을 가질 수 있다. 사용자 A는 이어서 고객 X, Y 및 Z에 관한 스프레드쉬트, 워드 프로세싱 및 슬라이드쇼 프리젠테이션 파일을 생성하고 그 파일들 전부를 디렉토리 서브폴더 "C:\\Users\User_A"에 저장한다. 사용자 B는 그 동일한 고객들에 대한 스프레드쉬트, 워드 프로세싱 및 jpeg 파일을 생성한다. 사용자 B는 스프레드쉬트 및 워드 프로세싱 파일을 "C:\\Users\User_B"에 저장하지만 이미지 파일은 ""C:\\Media\Photos""에 저장한다. 이들 파일 전부는 이어서 리스트에 기초하여 액세스가능하다. 예를 들어, "고객 X" 리스트는 고객 X에 대한 모든 스프레드쉬트, 워드 프로세싱, 슬라이드 쇼, 및 jpeg 파일을, 저작자와 상관없이, 그룹화한다. 고객 X 리스트를 지정함으로써, 사용자는 다수의 서브디렉토리를 따로따로 내비게이션할 필요없이 그 파일들의 그룹을 볼 수 있다. 이들 "저작자", "고객" 및 "파일 유형" 메타데이터 속성은 예시를 위해 제공되어 있다. 다른 예들은 평가, 코멘트, 프로젝트, 기타 등등의 프로퍼티를 포함한다. 아주 많은 수의 메타데이터 속성 유형이 구현될 수 있으며, 본 발명은 메타데이터 속성의 유형에 의해 제한되지 않는다.
본 발명의 적어도 어떤 실시예들에 따른 "파일 열기" 대화상자(14600)가 도 146에 도시되어 있다. 도면 중의 예시적인 대화상자가 OS(WINDOWS OS의 여러가지 버전 등)에 의해 생성된 그래픽 사용자 인터페이스(GUI) 내에 독립적인 윈도우으로서 도시되어 있지만, 본 발명은 이 점에서 제한되지 않는다. 예를 들어, 본 발명의 파일 대화상자는 또한 기존의 윈도우의 창(또는 프레임)으로서 생성될 수 있다. 파일 열기 대화상자(14600)는 대화상자 윈도우의 프레임(14601)에 포함되어 있고 타이틀(14602)을 갖는다. 컨트롤(14603)은 각각 사용자가 대화상자(14600)를 최소화, 최대화 또는 닫을 수 있게 해준다. 화살표(14604)는 사용자가 이전에 보았던 파일 그룹으로 되돌아가기 위해 사용자가 선택할 수 있는 "뒤로" 컨트롤이다. 타이틀(14602)에 인접하여 내비게이션 바(14605) 및 검색 바(14606)이 있으며, 이들 둘다에 대해 이하에서 기술한다.
파일 열기 대화상자(14600)는 4개의 영역(14607-14610)으로 나누어져 있다. 브라우저 영역(14607)은 플레이스 바(places bar) 서브영역(14611) 및 페이지공간(pagespace) 서브영역(14612)을 포함한다. 플레이스 바(14611)에서의 엔트리는 리스트, 디렉토리 장소, 또는 다른 파일 그룹에 대응하고, 사용자가 파일을 찾아내기 위해 내비게이션할 수 있는 "장소들"을 나타낸다. 플레이스 바(14611)에서의 엔트리들 중 하나를 선택하면 페이지공간 영역(14612)에 대응하는 디스플레이를 생기게 한다. 어떤 경우에, 그 디스플레이는 선택된 장소(예를 들어, 선택된 리스트 또는 다른 그룹)에 있는 파일들에 대응하는 아이콘의 집합체일 수 있다. 어떤 경우에, WINDOWS XP OS의 WINDOWS EXPLORER 컴포넌트와 유사하게, 특정의 플레이스 바 엔트리를 선택하면 하나 이상의 폴더, 디렉토리 또는 사용자가 내비게이션할 수 있는 다른 장소들에 대한 아이콘과 함께 파일 아이콘의 집합체를 디스플레이할 수 있다. 플레이스 바(14611)에서의 하나 이상의 엔트리는 문서의 서브리스트 또는 다른 서브그룹을 보여주기 위해 확장가능할 수 있다. 예를 들어, 도 146에서의 "사람들" 엔트리는 서로 다른 개인들에 관한(즉, 이들에 대응하는 적절한 메타데이터 속성 값을 갖는) 파일의 리스트를 보여주기 위해 확장가능할 수 있다.
도 146의 예에서, 사용자는 "최근 사진" 리스트에 대응하는 플레이스 바 엔트리를 선택하였고, 따라서 페이지공간(14612)에서 그 리스트에서의 파일에 대응하는 썸네일 이미지의 집합체를 제공받는다. 사용자는 이어서 페이지공간(14612)의 상단에 있는 "이름", "크기", "장소", "이벤트", "날짜"를 선택함으로써 파일 이름, 파일 크기, 장소, 이벤트, 또는 파일 생성 일자에 대한 프로퍼티 값에 기초하여 그 파일들을 정렬할 수 있다. 페이지공간(14612) 내의 파일들이 정렬될 수 있는 카테고리는 플레이스 바(14611) 상의 선택된 엔트리에 기초하여 변화될 수 있다. 이와 유사하게, 페이지공간(14612)에서 파일들이 보여지는 방식도 파일 유형에 기초하여 변할 수 있다. 텍스트 파일은 그 파일에 저장된 문서의 첫번째 페이지의 썸네일 이미지로서 표현될 수 있다. 어떤 경우에, 파일은 파일을 생성한(그 파일과 다른 방식으로 연관되어 있는) 애플리케이션 프로그램에 대응하는 아이콘으로 표현될 수 있다. 스크롤 바(14613)는 사용자가 부가의 파일들을 볼 수 있게 해준다.
페이지공간(14612)에 디스플레이된 파일들 중 하나를 선택한 후에, 그 파일에 대한 보다 상세한 정보가 정보창 영역(14608)에 제공된다. 선택된 파일의 보다 큰 미리보기(또는 "고스트")(14614)는, 여러가지 메타데이터 속성에 대한 값(14615)과 함께, 정보창 영역(14608)에 디스플레이된다. 도 146의 예가 이미지 파일의 선택을 나타내고 있지만, 본 발명은 이 점에서 제한되지 않는다. 예를 들어, 페이지공간(14612)에 디스플레이된 파일들 중 하나 이상은 텍스트 파일일 수 있다. 이러한 파일의 선택 시에, 그 텍스트 파일의 첫번째 페이지의 이미지가 고스트(14614)로서 나타내어진다. 물론, 선택된 파일에 대해 정보창 영역(14608)에 보여지는 프로퍼티 및 값이 변할 수 있다. 사용자 A 및 사용자 B의 이전의 예를 사용하면, "고객 X"에서의 파일의 선택은 정보창 영역(14608)에서의 저작자 및 고객에 대한 값을 보여줄 수 있다.
내비게이션 바(14605)로 돌아가면, 사용자는 현재의 페이지공간 디스플레이에 도달하기 위해 사용자가 따라갔던 "흔적"을 나타내는 정보를 제공받는다. 도 146의 예에서, 사용자는 먼저 "사진 및 비디오" 리스트로, 이어서 "최근 사진" 서브리스트로 내비게이션하였다. 사용자는 이어서, 타이틀 또는 키워드 값에 기초하여, 현재의 페이지공간 내에서 검색 바(14606)를 사용하여 파일을 찾아낼 수 있다.
브라우저 영역(14607) 및 정보창 영역(14608) 아래에 확장 영역(14609)이 있다. 이하에서 보다 상세히 설명하는 바와 같이, 파일 대화상자의 확장 영역은 대화상자(14600)를 인스턴스화하는 소프트웨어 프로그램의 개발자에 의해 지정될 수 있는 광범위한 사용자 인터페이스(UI) 컨트롤 중 임의의 것을 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, "UI 컨트롤"은 사용자가 대화상자를 인스턴스화한 애플리케이션(또는 다른 컴퓨터 프로그램)과 상호작용하기 위해 (예를 들어, 컨트롤 상에서 커서를 허버링하고 마우스 버튼을 클릭함으로써) 선택할 수 있는 여러가지 유형의 그래픽 요소를 포함한다. UI 컨트롤은 푸시(또는 "명령") 버튼, "라디오" 버튼, 체크 박스, 텍스트 입력(또는 "편집") 박스, 기타 등등을 포함한다. UI 컨트롤은 또한 사용자에게 정보만을 제공하는(즉, 사용자에게 무언가를 선택할 또는 다른 방식으로 입력을 제공할 기회를 제공하지 않는) 그래픽 요소를 포함한다. 이러한 정보 전용 UI 컨트롤의 예는 텍스트 블록 또는 다른 UI 컨트롤을 분할하는 스페이서(spacer)를 포함한다. 도 146은 일련의 라디오 버튼 컨트롤 및 그 라디오 버튼들에 대한 텍스트 라벨("옵션")만을 나타내고 있다. 다른 유형의 컨트롤의 예에 대해서는 이하에서 기술한다. 적어도 어떤 실시예들에서, 확장 영역(14609)은 선택적이며, 개발자가 이를 완전히 빠뜨릴 수 있다.
확장 영역(14609) 아래에 명령 영역(14610)이 있다. 명령 영역(14610)은 사용자가 열고자 하는 파일의 이름의 입력을 가능하게 해주는 텍스트 입력 컨트롤(14616)을 포함한다. 도시되어 있지는 않지만, 명령 영역(14610)은 또한 사용자가 열고자 하는 파일의 유형을 사용자가 입력(또는 드롭다운 리스트로부터 선택)할 수 있게 해주는 컨트롤을 포함할 수 있다. 이 컨트롤은, 예를 들어 서로 다른 유형의 2개의 파일이 동일한 타이틀(예를 들어, "report.DOC" 및 "report.PDF")을 갖는 경우에, 유용하다. 뷰 컨트롤(14617)은 사용자가 페이지공간(14612)에서 파일이 보여지는 방식을 변경할 수 있게 해준다. 아이콘의 집합체 대신에, 예를 들어 사용자는 그 대신에 파일 이름, 유형, 크기, 기타 등등의 테이블을 제공하는 "자세히" 모드(도시 생략)에서 식별된 파일들을 보고자 할 수 있다. 적어도 어떤 실시예들에서, 보기 모드는 브라우저 영역(14607)에서 사용자가 내비게이션한 리스트 또는 다른 장소와 연관된 디폴트 보기에 기초한다. 개발자는 임의의 장소에 대한 디폴트 보기 모드를 설정할 수 있고, 사용자는 보기 모드 설정을 무시하도록 허용될 수 있다. "자세히" 모드에 있을 때, 디스플레이된 열들도 역시 사용자가 내비게이션한 장소에 기초하지만, 어느 열이 보이는지를 개발자가 지정할 수 있다(사용자는 무시할 수 있다).
컨트롤(14618)은 사용자가 정보창 영역(14608)이 디스플레이되지 않도록 대화상자(14600)의 외관을 변경할 수 있게 해주거나(도 147 참조) 또는 정보창 영역(14608)이 이미 감추어져 있는 경우 정보창 영역(14608)을 보여주게 할 수 있다. 명령 버튼(14619)은 사용자가 페이지공간(14607)에서 선택된 또는 컨트롤(14616)에서 식별된 파일을 열 수 있게 해준다. 명령 버튼(14620)은 사용자가 대화상자(14600)를 취소할 수 있게 해준다. 개발자는 또한 디폴트 버튼 라벨을 무시하고 다른 텍스트를 지정할 수 있다(예를 들어, "열기" 버튼을 "체크 아웃"으로 변경할 수 있다).
도 148에는 본 발명의 적어도 어떤 실시예들에 따른 "파일 저장" 대화상자(14800)가 도시되어 있다. 파일 저장 대화상자(14800)는 대화상자 윈도우의 프레임(14801)에 포함되어 있으며, 타이틀(14802)을 갖는다. 컨트롤(14803) 및 뒤로 화살표(14804)는 도 146의 파일 열기 대화상자(14600)에서의 컨트롤(14603, 14604)과 유사하게 동작한다. 내비게이션 바(14805) 및 검색 바(14806)는 파일 열기 대화상자(14600)의 내비게이션 바(14605) 및 검색 바(14606)와 유사하게 기능한다. 파일 저장 대화상자(14800)는 또한 플레이스 바(14811) 및 페이지공간(14812)을 갖는 브라우저 영역(14807)을 포함한다. 파일 열기 대화상자(14600)(도 146)에서와 같이, 플레이스 바(14811)에서 엔트리를 선택하면 그 결과 리스트, 디렉토리 폴더 또는 다른 파일 그룹과 연관된 파일들에 관한 정보가 페이지공간(14812)에 디스플레이되고, 및/또는 다른 장소로의 내비게이션을 가능하게 해주는 아이콘이 디스플레이된다. 페이지공간(14812)에 디스플레이되는 파일들은 페이지공간(14812)의 상단에 있는 컨트롤("이름", "유형", 기타 등등)을 사용하여 이와 유사하게 정렬될 수 있다.
파일 저장 대화상자(14800)는 정보창 영역(14808)을 더 포함한다. 적어도 어떤 실시예에서, 도 148에 도시된 바와 같이, 파일 저장 대화상자에 대한 정보창은 브라우저 영역 아래에 위치하고 있다. 정보창 영역(14808)은 저장될 파일의 고스트(14814)를 포함한다. 저장되고 있는 파일의 유형에 따라서, 고스트(14814)는 문서, 사진 또는 파일에 저장된 다른 항목의 썸네일 이미지일 수 있거나, 파일과 연관된 애플리케이션에 대응하는 아이콘일 수 있거나, 또는 어떤 다른 유형의 그래픽 표현일 수 있다. 파일 이름 컨트롤(14816)은 사용자가 저장되고 있는 파일에 대한 이름을 입력할 수 있게 해준다. 이 필드는 파일 저장 대화상자를 인스턴스화하는 애플리케이션 프로그램에 의해 제안되는 파일 이름(예를 들어, 저장되는 파일의 첫번째 단어)을 가질 수 있다. 어떤 경우에, 사용자는 페이지공간(14812)으로부터 파일을 선택함으로써 기존의 파일을 바꿀 수 있으며, 이 경우 대체된 파일의 파일이름이 컨트롤(14816)에 자동적으로 추가될 수 있다. 다른 경우에, 사용자는 파일이 어디에 저장되어야 하는지에 관하여 확신하지 못할 수 있다. 플레이스 바(14811)(페이지 공간 컨트롤)를 사용하여, 사용자는 하나 이상의 리스트 또는 다른 파일 그룹으로 내비게이션하여 적절한 장소를 찾을 수 있다. 사용자가 이러한 그룹을 내비게이션할 때, 사용자는 페이지공간(14812)에서 그 그룹 내의 다른 파일에 관한 정보를 볼 수 있으며 그 정보를 사용하여 현재 파일이 그 그룹들 중 하나에 저장되어야만 하는지를 판정할 수 있다. 어떤 경우에, 사용자가 파일에 대한 여러가지 가능한 장소를 내비게이션할 때, 저장되고 있는 파일의 고스트(14826)도 역시 페이지공간(14812)에 보여진다. 이와 같이, 사용자는 사용자가 나중에 파일을 찾을 수 있는 장소의 시각적 표시를 제공받는다. 페이지공간(14812)에 고스트(14826)가 존재하는 것은 또한 현재 리스트 또는 다른 그룹이 유효한 저장 장소임을 신호한다.
또한, 정보창 영역(14808)에는 저장되고 있는 파일에 관한 여러가지 메타데이터에 대한 필드(14815)가 보여진다. 어떤 경우에, 사용자는 이들 필드 중 하나 이상을 선택할 수 있다. 예를 들어, 사용자는 "키워드" 필드를 선택하고 장래의 키워드 검색에서 파일을 찾는 것을 보다 용이하도록 해줄 수 있는 단어를 추가할 수 있다. 다른 경우에, 메타데이터 필드 중 하나에 대한 값은 (적어도 처음에는) 대화상자(14800)를 인스턴스화하는 애플리케이션에 의해 채워질 수 있다. 또다른 경우에, 메타데이터 필드의 값은 파일에 대한 선택된 저장 장소에 기초하여 자동적으로 채워질 수 있다. 예를 들어, 사용자가 "프로젝트 X" 리스트에 파일을 저장하는 경우, "프로젝트"(도면에 도시되지 않음)에 대한 메타데이터 필드는 "X"로 자동적으로 채워진다. 파일 열기 대화상자(14600)에서와 같이, 파일에 대한 정보창 영역(14808)에 보여진 메타데이터 카테고리 및 값은 변할 수 있다.
정보창 영역(14808) 아래에는 확장 영역(14809)이 있다. 파일 열기 대화상자(14600)의 확장 영역(14608)과 유사하게, 파일 저장 대화상자의 확장 영역은 소프트웨어 개발자가 지정할 수 있는 광범위한 사용자 인터페이스(UI) 컨트롤 중 임의의 것을 포함할 수 있다. 한쌍의 체크박스가 도 148에 도시되어 있지만, 다른 UI 컨트롤이 포함될 수 있다. 확장 영역(14809)은 적어도 어떤 실시예에서 선택적이다. 달리 말하면, 개발자는 확장 영역이 없는 파일 저장 대화상자를 자유롭게 생성한다.
확장 영역(14809) 아래에 명령 영역(14810)이 있다. 명령 영역(14810)은 선택된 장소에 파일을 저장하기 위한 명령 버튼(14819)은 물론 파일 저장 대화상자(14800)를 취소시키는 명령 버튼(14820)도 포함한다. 이들 버튼에 대한 텍스트는 개발자에 의해 변경될 수 있다(예를 들어, "저장"을 "체크인"으로 변경할 수 있음). 또한, 명령 영역(14810)에는 브라우저 영역(14807)을 감추는 컨트롤(14821)이 포함되어 있다. 이 컨트롤을 선택함으로써, 도 149에 도시된 바와 같이, 브라우저 영역(14807)은 더 이상 디스플레이되지 않는다. 이와 같이, 보다 콤팩트한 파일 저장 대화상자가 제공될 수 있다. 내비게이션 바(14805) 및 검색 바(14806), 및/또는 컨트롤(14803)의 최대화 및 최소화 화살표도 역시 간결화된 파일 저장 대화상자에서 제거될 수 있다. 컨트롤(14821)(이에 대한 라벨이 도 149에서 "브라우저 보여주기"로 변경되었음)을 재선택함으로써, 브라우저 영역(14807)이 다시 디스플레이된다. 브라우저 영역(14807)이 디스플레이될 때 보기 선택 컨트롤(14817)(도 144)이 보이며, 파일 열기 대화상자(14600)(도 146)의 보기 선택 컨트롤(14617)과 유사하게 기능한다. 파일 열기 대화상자(14600)에서와 같이, 파일 저장 브라우저가 디스플레이될 때 디폴트 보기 모드(예를 들어, 아이콘 대 자세히)는 사용자가 내비게이션한 리스트 또는 다른 장소에 기초한다. 개발자는 보기 모드 설정 및 자세히 보기 모드에 있을 때 보여지는 열들을 이와 유사하게 설정할 수 있다.
도 146과 도 148을 비교하면 알 수 있는 바와 같이, 파일 열기 대화상자(14600)에서의 정보창 영역(14608)의 장소는 파일 저장 대화상자(14800)의 정보창 영역(14808)의 장소와 다르다. 이 재배치는 이들 2가지 유형의 대화상자의 서로 다른 목적에 대응한다. 사용자는 일반적으로 파일 열기 대화상장에서 특정의 파일을 찾고 있다. 파일 내용의 그래픽 표현은 종종 상세한 메타데이터보다 더 도움이 된다. 따라서, 파일 열기 대화상자에서의 정보창 영역의 포커스는 일반적으로 파일 미리보기 상에 있으며, 정보창은 더 큰 고스트 이미지를 가능하게 해주도록 배치된다. 파일 저장 대화상자에서의 정보창 영역의 포커스는 장래의 검색을 위해 파일의 편집 및 적당한 저장 상에 있다. 따라서, 파일 저장 대화상자의 정보창 영역은 메타데이터의 입력 및 수정을 촉진시키도록 배치되어 있다.
적어도 어떤 실시예에서, 메타데이터 필드는 미리 정해진 순서에 기초하여 파일 열기 및 파일 저장 대화상자 둘다의 정보창 영역에 디스플레이된다. 상세하게는, 시스템-요구 메타데이터 속성(예를 들어, 파일 이름, 파일 유형, 저장 장소)이 먼저 나타난다. 그 다음에, 대화상자를 인스턴스화하는 애플리케이션에 의해 요구되는 메타데이터 속성이 나타나지만, 이는 모든 애플리케이션에서 반드시 요구되는 것은 아니다(예를 들어, 압축비, 파일 보호). 그 다음에, 나머지 프로퍼티가 나타난다. 모든 시스템-요구 및 애플리케이션-요구 프로퍼티를 보여주기 위해 정보창 영역(및, 필요한 경우, 전체 대화상자)이 자동적으로 크기조정된다. 적어도 어떤 실시예에서, 애플리케이션 프로그램은 어떤 메타데이터가 요구되는지를 지정할 수 없지만, 이 애플리케이션은, 대응하는 필드가 디폴트-크기의 대화상자에 디스플레이되게 하는 우선순위를 갖도록 메타데이터 유형을 "격상"시킬 수 있다.
도 146 및 도 148에는 개발자가 파일 열기 또는 파일 저장 대화상자의 확장 영역에 배치할 수 있는 여러가지 유형의 UI 컨트롤 중 2개가 도시되어 있다. 개발자는 동일한 유형의 다수의 컨트롤을 포함할 수 있고 및/또는 서로 다른 유형의 컨트롤을 조합할 수 있다. 도 148은 한 쌍의 검증(또는 "체크박스") UI 컨트롤을 나타낸 것이다. 이러한 UI 컨트롤은 텍스트("옵션 1" 및 "옵션 2")를 포함할 수 있고, 다수의 체크박스에 적용가능한 라벨("옵션 저장")을 포함할 수 있다. 사용자는 마우스를 사용하여 체크박스에 체크를 할 수 있다(또는 그로부터 체크를 제거할 수 있다). 컨트롤의 체크된/체크되지 않은 상태는 이어서 프로그램으로 반환된다. LTR(left-to-right) 언어로 구현된 적어도 어떤 실시예에서, 체크박스 컨트롤에 대한 텍스트가 좌측 정렬되어 있고 컨트롤이 위치하고 있는 열로 넘어간다. 확장 영역에 있는 라벨은 정보창 영역에 있는 메타데이터 필드 라벨에 자동적으로 정렬될 수 있다. 도 148에서 알 수 있는 바와 같이, 확장 영역(14809)에서의 "옵션 저장" 라벨은 정보창 영역(14808)에서의 "저장 위치(Save In)" 및 "파일 유형"에 정렬되어 있다. 이하에서 보다 상세히 설명하는 바와 같이, 확장 영역에서의 UI 컨트롤은 또한 하나 이상의 그룹으로 구성되고 또 다수의 열로 디스플레이될 수 있다.
도 146은 라디오 버튼 UI 컨트롤의 집합체를 나타낸 것이다. 각각의 라디오 버튼 컨트롤은 일반적으로 가능한 입력 옵션에 대한 하나 이상의 라인의 텍스트(예를 들어, "원본 파일 열기")를 디스플레이한다. 각각의 옵션에 대한 텍스트 옆에 사용자가 마우스로 선택할 수 있는 작은 원 또는 다른 영역이 있다. 선택되면, 이 영역은 검은 점 또는 다른 선택 표시로 채워진다. 일반적으로, 옵션들 중 단지 하나만이 선택될 수 있다. 사용자가 하나의 옵션을 선택하고 이어서 옵션들 중 또하나를 선택하면, 첫번째 선택에 대한 검은 점이 제거된다. 라디오 버튼 컨트롤은 또한 라벨("옵션")을 포함할 수 있다. LTR 언어로 구현된 적어도 어떤 실시예에서, 라디오 버튼 컨트롤에 대한 텍스트는 좌측 정렬되어 있고 컨트롤이 위치하는 열로 넘어간다.
도 150 내지 도 154b에는, 확장 영역에 포함시키기 위해 소프트웨어 개발자가 지정할 수 있는 여러가지 다른 유형의 UI 컨트롤이 도시되어 있다. 도 150 내지 도 154b가 파일 저장 대화상자의 확장 영역에 이들 다른 유형의 UI 컨트롤을 나타내고 있지만, 이들 UI 컨트롤은 또한 파일 열기 대화상자(또는 다른 유형의 파일 대화상자) 확장 영역에 포함될 수 있다. 도 150에서 알 수 있는 바와 같이, 드롭다운 박스는 가능한 선택의 리스트를 보여주기 위해 사용자가 박스를 확장시킬 수 있게 해준다. 드롭다운 리스트로부터 선택된 옵션은 이어서 박스에 자동적으로 배치된다. 도 151은 콤보-박스 컨트롤을 나타낸 것이다. 이 UI 컨트롤은 사용자가 박스를 가능한 선택의 리스트로 확장할 수 있게 해주지만(드롭다운 박스와 유사함), 또한 사용자가 그 박스 안에 텍스트를 타이핑할 수 있게 해준다(도 151에서 "여기에 타이핑하시오"로 도시됨).
도 152는 푸시 버튼 UI 컨트롤(15201, 15202)은 물론, 편집 박스 컨트롤(15203)도 나타내고 있다. 또한, 도 152에는 UI 컨트롤의 그룹이 예시되어 있다. 적어도 어떤 실시예에서, 컨트롤 그룹은 하나 이상의 컨트롤 및 그룹 내의 컨트롤에 적용가능한 라벨을 포함할 수 있다. 도 152의 예에서, 4개의 그룹이 도시되어 있다. 그룹(15211)은 그룹 라벨 및 3개의 체크박스 UI 컨트롤을 포함한다. 그룹(15212)은 그룹 라벨을 가지지 않지만, 2개의 라디오 버튼 UI 컨트롤을 포함한다. 그룹(15213)은 그룹 라벨, 편집 박스 UI 컨트롤(15203), 및 2개의 푸시 버튼 UI 컨트롤(15201, 15202)을 포함한다. 그룹(15214)은 평문 텍스트, 예를 들어 특정의 컨트롤을 라벨링하거나 그와 연관되지 않은 텍스트를 포함한다. 그룹(15211-15214)이 설명을 위해 도152에 개략적으로 나타내어져 있지만, 이러한 개요가 반드시 실제 대화상자에 나타날 필요는 없다. 컨트롤 그룹들 간에 배치하기 위해 분리자(15204)가 지정될 수 있다. 적어도 어떤 실시예들에서, 분리자는 단지 한 열에 걸쳐 있으며, 그룹의 마지막 요소로서 부가된다. 첫번째 또는 마지막 열 요소로서 나타나는 분리자는 감추어진다. 적어도 어떤 실시예에서, 도 152에서 알 수 있는 바와 같이, 그룹 내의 컨트롤은, 대화상자가 디스플레이될 때, 확장 영역의 동일 열에 모두 유지되어 있다. 어떤 실시예들에서, 또한 도 152에서 알 수 있는 바와 같이, 파일 저장 대화상자 확장 영역에서의 UI 컨트롤 그룹 라벨의 우측 경계는 정보창 영역에서의 메타데이터 라벨("파일 유형" 및 "키워드")의 우측 경계와 자동적으로 정렬된다. 파일 저장 대화상자 확장 영역에서의 UI 컨트롤의 좌측 경계는 이와 유사하게 정보창 영역에서의 메타데이터 값 필드의 좌측 경계와 자동적으로 정렬된다. 평문 텍스트는 자동적으로 좌측 정렬되고 텍스트가 포함되어 있는 열로 넘어간다.
어떤 실시예들에서, 드롭다운 메뉴 UI 컨트롤은, 도 153a 및 도 153b에 나타낸 바와 같이, 명령 영역에 포함될 수 있다. 메뉴를 선택하면 선택가능한 옵션의 리스트가 나타난다. 어떤 옵션을 선택하면 그 결과 서브메뉴 및/또는 다른 대화상자가 디스플레이될 수 있다. 어떤 경우에, 드롭다운 메뉴 및 명령 버튼은 "분할 버튼" UI 컨트롤로 결합될 수 있으며, 이는 또한 명령 영역에 위치될 수 있다. 분할 버튼 UI는 사용자가 드롭다운 메뉴에서 옵션을 선택할 수 있게 해준다. 분할 버튼은 이어서 선택된 옵션으로 라벨이 변경되고, 사용자는 이어서 선택된 옵션에 작용하도록 버튼을 누를 수 있다. 도 154a(푸시 버튼 UI 컨트롤 "<텍스트>") 및 도 154b(체크박스 UI 컨트롤)에 나타낸 바와 같이, 다른 컨트롤도 역시 명령 영역에 부가될 수 있다. 이것은, 개발자가 단일의 전문화된 컨트롤을 포함시키기만 하면 되는 경우에, 바람직할 수 있으며, 확장 영역을 위해 디스플레이 영역을 소모하는 것을 방지한다. 적어도 어떤 실시예들에서, 개발자는 라디오 버튼 그룹 및 라벨을 명령 영역에 추가할 수 없다. 명령 영역에 컨트롤을 포함시키는 것은 또한 개발자가 그 컨트롤을 강조할 수 있고 및/또는 그 컨트롤을 확장 영역 내의 컨트롤로부터 분리시킬 수 있게 해준다. 따라서, 개발자는 확장 영역에 대한 어떤 컨트롤 및 명령 영역에 대한 컨트롤을 지정할 수 있다. 그렇지만, 다른 실시예에서, 메뉴 UI 컨트롤을 제외하고는, 확장 영역이 디스플레이되는 경우(예를 들어, 2개 이상의 UI 컨트롤이 추가되어야 하는 경우) 명령 영역에 추가의 컨트롤이 배치되지 않는다. 메뉴는 종종 애플리케이션에 의해 인스턴스화된 다수의 대화상자에 적용가능한 선택항목을 포함하며, 명령 영역에 메뉴를 허용하는 것은 어떤 경우에 더욱 효율적일 수 있다. 어떤 실시예에서, 메뉴는 항상 명령 영역에 위치되어 있다.
적어도 어떤 실시예에서, 확장 영역에서의 UI 컨트롤의 배열 및 외관은 자동적이다. 대화상자를 인스턴스화하는 애플리케이션은 단지 OS에 (하나 이상의 프로그래밍 인터페이스를 통해) 원하는 UI 컨트롤 및/또는 그룹을 알려준다. 그러면, OS는 배열 및 외관을 제어한다. 그룹에 명시적으로 추가되지 않은 컨트롤은 그 자신의 그룹으로서 취급된다. OS는 UI 컨트롤 또는 그룹이 프로그래밍 인터페이스(들)에서 처음으로 식별되는 순서에 기초하여 확장 영역에 각각의 그룹을 배치한다. 도 155는 파일 저장 대화상자에서의 컨트롤 그룹의 자동적 레이아웃을 나타낸 것이다. 도 155에서 알 수 있는 바와 같이, 저장 대화상자 정보창 영역에서의 메타데이터 필드 라벨/값 쌍은 2개의 열을 형성한다. 컨트롤 그룹은 이어서, 확장 영역의 높이를 최소화하기 위해, 그 열들에 정렬된 상태로 확장 영역에 추가된다. 그룹들 간의 간격은 물론 그룹 내에서의 개개의 컨트롤들 간의 간격도 역시 자동적이다. 환언하면, 애플리케이션 개발자는 각각의 UI 컨트롤의 위치를 정밀하게 지정할 필요가 없다. 이와 유사하게, UI 컨트롤, 그룹 라벨 및 평문 텍스트에 대한 텍스트의 외관은 하나 이상의 OS 테마 파일에 의해 자동적으로 제어된다.
도 156은 적어도 어떤 실시예들에 따른 파일 열기 대화상자에서의 UI 컨트롤의 자동적인 레이아웃을 나타낸 것이다. 도 146에서 알 수 있는 바와 같이, 파일 열기 대화상자의 정보창 영역은 파일 저장 대화상자의 정보창 영역과 다르게 배열되어 있다. 따라서, 파일 열기 대화상자 확장 영역에서의 UI 컨트롤 및 UI 컨트롤 그룹은 명령 영역에서의 "파일 이름" 라벨 및 대응하는 텍스트 박스 컨트롤에 정렬되어 있다. 2개 이상의 컨트롤 그룹이 파일 열기 대화상자 확장 영역에 대해 지정되어 있는 경우, 제2 열이 사용된다. 적어도 어떤 실시예들에서, 파일 저장 대화상자와 유사하게, 파일 열기 대화상자를 인스턴스화하는 애플리케이션은 단지 하나 이상의 프로그래밍 인터페이스를 통해 UI 컨트롤 및/또는 그룹을 OS에 알려준다. 그러면, OS는 UI 컨트롤의 배열 및 외관을 제어한다. 컨트롤 그룹은 그 컨트롤 그룹이 개발자에 의해 지정된 순서로 파일 열기 대화상자에 추가되고 확장 영역의 높이를 최소화하도록 자동적으로 레이아웃된다. 간격, 텍스트 폰트, 기타 등등이 하나 이상의 OS 테마 파일에 의해 제어된다.
확장 영역(및, 어떤 경우에, 명령 영역)에 포함시키기 위한 UI 컨트롤을 지정하는 것 이외에, 애플리케이션 개발자는 여러가지 다른 방식으로 파일 대화상자를 커스터마이즈할 수 있다. (상기한 바와 같이) 적절한 프로그래밍 인터페이스를 사용하여, 개발자는 대화상자 타이틀(예를 들어, 도146에서의 "파일 열기" 타이틀(14604), 도 148에서의 "파일 저장" 타이틀(14804))을 무시할 수 있고 또 어떤 다른 타이틀이 디스플레이되게 할 수 있다. 개발자는 또한 대화상자가 열릴 때 대화상자가 내비게이션하게 될 장소에 영향을 미치는 선택을 할 수 있다. 상세하게는, 도 146 또는 도 148에 도시된 것 등의 대화상자가 처음으로 열릴 때, 대화상자는 종종 파일을 저장할(또는 파일을 열) 제안된 장소로서 특정의 리스트 또는 다른 파일 그룹을 보여준다. 어떤 실시예에서, 파일 대화상자는 먼저 이하의 장소(선호 순서로 열거됨), 즉 (1) 인스턴스화하는 애플리케이션이 지정하는 장소(예를 들어, 애플리케이션이 방문한 마지막 장소), (2) 그 애플리케이션에 의해 파일이 열려진 또는 저장된 마지막 장소(OS에 의해 추적됨), (3) 애플리케이션에 의해 지정된 디폴트 장소, 또는 (4) OS-지정된 디폴트 장소(예를 들어, 루트 디렉토리, WINDOWS OS에서의 바탕화면, 기타 등등) 중 하나로 내비게이션하려고 시도한다.
애플리케이션 개발자는 또한 초기 브라우저 모드를 지정할 수 있다. 어떤 실시예에서, 예를 들어, 파일 저장 대화상자는 자동적으로 열리며, 이 때 브라우저 영역은, 애플리케이션이 다른 방식으로 요청하지 않는 한, 감춰져 있다. 어떤 실시예에서, 파일 열기 대화상자는 브라우저 영역에서 항상 디스플레이된다. 애플리케이션 요청에 응답하여 파일 대화상자를 생성하는 OS는 또한 대화상자를 디폴트 크기로 또한 화면 상의 디폴트 장소에 렌더링할 수 있다. 예를 들어, OS는 디스플레이의 중앙에 대화상자를 자동적을 위치시킬 수 있고 또 대화상자 및/또는 대화상자의 여러가지 영역을 어떤 크기로 제한할 수 있다. 애플리케이션 개발자는 대화상자에 대한 크기 및/또는 장소를 지정함으로써 이들 디폴트 값을 무시할 수 있다. 이것은 크기 및/또는 장소에 대한 값을 명시적으로 공급함으로써 행해질 수 있다. 이것은 또한 암시적으로 행해질 수 있다. 예를 들어, 애플리케이션은 확장 영역에 대해 디폴트 크기 내에 포함될 수 있는 것보다 더 많은 컨트롤을 지정할 수 있다.
디스플레이에서의 다른 윈도우에서와 같이, 사용자는 또한 대화상자를 이동 및/또는 크기조정할 수 있다. 이와 유사하게, 사용자는 브라우저 영역(표시된 경우) 및 정보창 영역을 크기조정할 수 있다. 정보창 영역이 (예를 들어, 정보창 영역의 경계를 마우스로 선택하고 그 경계를 화면을 가로질러 잡아당김으로써) 확장됨에 따라, 부가적인 메타데이터 프로퍼티/값 쌍이 보이게 된다. 정보창 영역이 축소됨에 따라, 더 적은 프로퍼티/값 쌍이 보이게 된다. 대화상자 또는 대화상자 영역의 크기 또는 위치에 대한 사용자 변경(은 물론 보기 모드, 자세히 보기 모드에서의 보이는 열, 기타 등등에 대한 변경)은 사용자가 대화상자를 종료 또는 취소할 때까지 존속될 수 있다. 어떤 실시예에서, 이러한 사용자 변경의 일부 또는 그 전부는 후속하는 대화상자에 존속될 수 있다.
도 157 및 도 158은 애플리케이션이 본 발명의 실시예들에 따른 파일 대화상자의 생성을 요청하는 방식과 종래 기술에서 파일 대화상자가 요청되는 방식 간의 차이를 나타낸 블록도이다. 도 157은 애플리케이션 프로그램이 WINDOWS OS의 여러가지 버전에 대해 파일 대화상자의 디스플레이를 요청하는 기존의 방식을 나타낸 블록도이다. 도 157에서, 애플리케이션은 먼저 디스플레이될 대화상자에 대응하는 데이터 구조체("DialgStr")를 생성한다. 이 구조체는 대화상자의 거동을 제어하는 다수의 변수 및 플래그에 대한 값들을 포함한다. WINDOWS OS의 여러가지 버전에서, 이 구조체는 "OPENFILENAME" 구조체이다. 대화상자를 인스턴스화하기 위해, 애플리케이션은 이어서 DialgStr 구조체에 대한 포인터를 인수(argument)로서 갖는 OS 함수를 호출한다. 구체적으로는, 애플리케이션은 파일을 열기 위한 대화상자를 인스턴스화하기 위해 "GetOpenFileName" 함수를 호출하고 파일을 저장하기 위한 대화상자를 인스턴스화하기 위해 "GetSaveFileName" 함수를 호출한다. 간단함을 위해, 이들 함수는 일반적으로 도 157에서 "GetFN(pDialgStr)"로 나타내어져 있다. 이 함수 호출에 응답하여, OS는 이어서 디폴트 대화상자를 포함하는 윈도우를 생성한다.
애플리케이션 개발자가, 커스텀 UI 컨트롤을 포함시키기 위해, 디폴트 대화상자를 커스터마이즈하고자 하는 경우, 부가적인 단계들이 필요하다. 구체적으로는, 개발자는 커스터마이즈된 UI 컨트롤을 보유하는 영역(들)을 정의하는 디폴트 대화상자의 일부분(들)에 대한 커스텀 템플릿을 작성해야만 한다. 그 템플릿에 대한 포인터가 이어서 DialgStr 구조체에 포함된다. OS는 커스텀 템플릿으로부터 데이터를 검색하고 그 데이터를 사용하여 디폴트 대화상자의 자식 윈도우 내에 커스터마이즈된 컨트롤을 생성한다.
언뜻 보기에, 도 157의 절차는 간단하게 보인다. 그렇지만, 커스텀 템플릿은 모든 원하는 UI 컨트롤 및 그의 위치, 컨트롤이 어떻게 디스플레이될 것인지, 기타 등등을 지정해야만 한다. 커스텀 템플릿을 생성하는 것은 애플리케이션 개발자에게 상당한 노력일 수 있다. 게다가, 개발자는 또한 커스텀 UI 컨트롤에 의해 수신되는 사용자 입력을 처리하기 위해 콜백 함수를 작성해야만 한다.
도 157의 절차는 또한 OS 개발자에게 문제를 제공한다. 애플리케이션 개발자가 디폴트 대화상자의 커스터마이즈된 영역에 무엇을 포함시킬 수 있는지에 거의 제한이 없다. 이와 유사하게, 애플리케이션 개발자가 디폴트 대화상자 내에 커스터마이즈된 영역을 어디에 배치할 수 있는지에 거의 제한이 없다. 도 157이 단일의 인접한 블록 내부의 모든 커스터마이즈된 컨트롤을 보여주고 있지만, 항상 이러한 것은 아니다. 커스텀 템플릿은 디폴트 대화상자의 다수의 자식 윈도우에 배치될 수많은 커스텀 컨트롤을 지정할 수 있고, 커스터마이즈된 영역(들)은 여러가지 형상을 가질 수 있다. 이들 인자들 전부를 고려하여, 여러가지 애플리케이션이 디폴트 대화상자를 커스터마이즈하는 방식들 전부를 OS 개발자가 안다는 것이 (불가능하지는 않지만) 어렵다. 차례로, 이것은 OS를 업그레이드하는 데 있어서의 어려움을 증가시킨다. 예를 들어, 특정의 장소에 새로운 요소를 추가하는 디폴트 대화상자 포맷에 대한 변경이 동일한 장소를 커스터마이즈하여 대화상자를 인스턴스화하는 애플리케이션에 부합되지 않을 수 있다.
도 158은 본 발명의 실시예들에 따른 파일 대화상자의 생성을 나타낸 블록도이다. 애플리케이션 개발자는 디스플레이될 대화상자에 대응하는 객체를 생성한다. 이 객체는 OS에 의해 이용가능하게 되는 객체 클래스의 인스턴스화이다. 생성되면, 이 객체는 대화상자를 디스플레이하기 위해, 대화상자에 컨트롤을 추가하기 위해, 또한 다른 방식으로 대화상자의 거동을 설정하기 위해, 애플리케이션이 호출할 수 있는 메소드를 자동적으로 포함한다. 이것은 도 158에 개략적으로 도시되어 있으며, 여기서 애플리케이션은 어떤 컨트롤을 대화상자에 추가하기 위해 인스턴스화된 대화상자 객체의 여러가지 메소드(예를 들어, "AddControl1()", 기타 등등)를 호출하였다. 대화상자의 외관 및 거동의 다른 측면들을 제어하기 위해 다른 메소드들이 호출된다(및/또는 지정된 변수 값 및/또는 플래그가 그 호출들에 포함된다). 이하에서 이들 메소드에 대한 호출을 통해 개발자가 수행할 수 있는 동작들의 예가 기술되어 있다.
Figure 112007022760413-PCT00017
드롭다운 박스를 추가함
Figure 112007022760413-PCT00018
드롭다운 메뉴의 열기를 가능하게 해줌
Figure 112007022760413-PCT00019
메뉴를 추가함
Figure 112007022760413-PCT00020
명령 버튼을 추가함
Figure 112007022760413-PCT00021
콤보 박스를 추가함
Figure 112007022760413-PCT00022
라디오 버튼을 추가함
Figure 112007022760413-PCT00023
체크 박스를 추가함
Figure 112007022760413-PCT00024
텍스트 입력 박스를 추가함
Figure 112007022760413-PCT00025
분리자를 추가함
Figure 112007022760413-PCT00026
텍스트를 추가함
Figure 112007022760413-PCT00027
그룹 컨트롤
Figure 112007022760413-PCT00028
컨트롤에 대한 라벨을 설정함
Figure 112007022760413-PCT00029
컨트롤 상태를 검색함
Figure 112007022760413-PCT00030
컨트롤 상태를 설정함
Figure 112007022760413-PCT00031
텍스트 입력 박스에서 텍스트를 검색함
Figure 112007022760413-PCT00032
텍스트 입력 박스에서 텍스트를 설정함
Figure 112007022760413-PCT00033
컨트롤을 (예를 들어, 이미 디스플레이된 대화상자에) 추가함
Figure 112007022760413-PCT00034
컨트롤을 보다 눈에 띄게 만듦
Figure 112007022760413-PCT00035
컨트롤 항목을 제거함
Figure 112007022760413-PCT00036
대화상자가 열거나 저장할 수 있는 파일 유형을 설정함(파일 열기 대화상자의 경우, 사용자에 대한 뷰를 필터링하기 위해 파일 유형이 사용될 수 있고, 파일 저장 대화상자의 경우, 파일 유형은 사용자-지정된 파일 이름에 어느 확장자가 첨부되어야 하는지를 결정할 수 있음)
Figure 112007022760413-PCT00037
현재 선택된 파일 유형을 설정함
Figure 112007022760413-PCT00038
현재 선택된 파일 유형을 검색함
Figure 112007022760413-PCT00039
대화상자로부터 이벤트를 리스닝하기 위해 이벤트 핸들러를 첨부함
Figure 112007022760413-PCT00040
대화상자 거동을 제어하기 위해 플래그를 설정함(이하의 것을 포함함)
o 파일을 덮어쓰기 이전에 확인을 위해 사용자에게 프롬프트할지 여부(파일 저장 대화상자)
o 사용자에 의해 반환된 파일 이름에 대한 파일 확장자가 현재 선택된 파일 유형의 확장자와 일치하도록 요구할지 여부(파일 저장 대화상자)
o 사용자에 의해 반환되는 항목 이름이 파일 시스템 항목이도록 요구할지 여부
o 사용자가 열기 위해 다수의 파일을 선택할 수 있는지 여부
o 사용자가 기존의 폴더에 파일을 지정해야 하는지 여부
o 열려질 파일이 이미 존재해야만 하는지 여부
o 사용자가 이미 존재하는 것이 아닌 사용자에 의해 식별된 항목(예를 들어, 폴더 또는 리스트)을 생성하도록 프롬프트되는지 여부, 및
o 공유 위반을 검출할 시의 거동
Figure 112007022760413-PCT00041
여러가지 플래그에 관한 현재의 설정을 검색함
Figure 112007022760413-PCT00042
대화상자가 열리게 될 폴더 또는 다른 장소를 설정함
Figure 112007022760413-PCT00043
대화상자에서의 사용자의 현재의 선택(들)을 검색함
Figure 112007022760413-PCT00044
대화상자가 보여주고 있거나 (대화상자가 현재 디스플레이되어 있지 않은 경우) 대화상자가 열게 될 현재의 폴더를 검색함
Figure 112007022760413-PCT00045
파일 이름 텍스트 박스 UI 컨트롤에서의 현재의 텍스트를 검색함
Figure 112007022760413-PCT00046
대화상자의 타이틀을 설정함
Figure 112007022760413-PCT00047
"열기" 또는 "저장" 버튼의 텍스트를 설정함
Figure 112007022760413-PCT00048
파일 이름 텍스트 박스 UI 컨트롤 옆에 있는 라벨의 텍스트를 설정함
Figure 112007022760413-PCT00049
디스플레이된 대화상자에서 사용자가 행한 선택을 검색함
Figure 112007022760413-PCT00050
플레이스 바에 장소를 추가함
Figure 112007022760413-PCT00051
사용자에 의해 타이핑된 파일 이름에 대한 디폴트 확장자를 설정함
Figure 112007022760413-PCT00052
대화상자를 닫음
Figure 112007022760413-PCT00053
상태가 존속되도록 식별자를 대화상자의 상태(예를 들어, 마지막 방문 폴더, 위치, 크기)와 연관시킴
Figure 112007022760413-PCT00054
대화상자에 대한 존속된 상태를 클리어함
Figure 112007022760413-PCT00055
파일 이름 필드에 처음으로 나타나게 될 이름을 설정함
저장 대화상자에서 수집될 메타데이터 속성 값을 지정함
Figure 112007022760413-PCT00057
저장되고 있는 파일에 대한 프로퍼티 저장소를 설정함
Figure 112007022760413-PCT00058
애플리케이션이 정보창 영역에서 현재 메타데이터 값을 검색할 수 있는지 또는 대화상자가 닫힌 후에 마지막 일련의 값을 기다려 수신해야 하는지를 지정함
Figure 112007022760413-PCT00059
일련의 프로퍼티를 파일에 적용함
Figure 112007022760413-PCT00060
대화상자가 닫히지 않도록 함(예를 들어, 사용자가 유효하지 않는 선택을 입력한 경우)
호출된 메소드(도 158에서 대화상자 객체로부터의 화살표로 나타냄)에 기초하여, OS는 요청된 대화상자를 생성한다. 앞서 언급한 바와 같이, UI 컨트롤의 배열은 OS에 의해 설정된다. 따라서, UI 컨트롤에 대한 상세한 배치 정보(예를 들어, 기준 위치로부터의 픽셀 x 및 y 오프셋을 지정하는 것)가 애플리케이션 개발자에 의해 제공될 필요가 없다. 대화상자 커스터마이제이션이 대화상자 객체 내에서의 메소드에 대한 호출에 의해 용이하게 되기 때문에, 또한 그 메소드들이 파일 대화상자를 커스터마이즈할 수 있는 방식이 OS 개발자에게 알려져 있기 때문에, OS 개발자는 OS 수정이 어떻게 애플리케이션에 영향을 주는지를 더 많이 알 수 있다. 상세하게는, 커스터마이즈된 컨트롤은 메소드 호출들 중 하나를 통해 지정될 수 있는 것으로 제한된다. 그 UI 컨트롤들이 대화상자의 기지의 영역 내에 배치되기 때문에, OS는 나중에 대화상자의 다른 부분을 변경하기 위해 수정될 수 있다.
게다가, 애플리케이션에 여러가지 이벤트를 알려주기 위해 다수의 대화상자 객체 메소드가 OS에 의해 호출될 수 있다. 이어서, 애플리케이션은 그에 응답하여 원하는 동작을 수행할 수 있다. 예를 들어, 지정된 파일의 패스워드 보호에 대응하는 컨트롤의 사용자 선택의 결과 애플리케이션이 (직접적으로 또는 OS 또는 다른 애플리케이션에 대한 프로그래밍 인터페이스를 통해) 그 파일을 보호하기 위해 적절한 조치를 취할 수 있다. 이하에서 이러한 메소드에 대한 호출을 통해 OS가 애플리케이션에 알려줄 수 있는 이벤트의 예가 기술되어 있다.
Figure 112007022760413-PCT00061
대화상자가 닫힐 예정임
Figure 112007022760413-PCT00062
사용자가 새로운 폴더로 내비게이션함(내비게이션하는 중임)
Figure 112007022760413-PCT00063
도움말 버튼이 눌러졌음
Figure 112007022760413-PCT00064
사용자 보기 선택이 행해졌음
Figure 112007022760413-PCT00065
파일 공유 위반이 발생함
Figure 112007022760413-PCT00066
파일 유형 선택이 변경됨
Figure 112007022760413-PCT00067
사용자가 파일이 덮어쓰기되어야 함을 알려줌
Figure 112007022760413-PCT00068
콤보 박스에서, 라디오 버튼의 집합체 또는 메뉴에서 새로운 선택이 행해짐
Figure 112007022760413-PCT00069
명령 버튼이 눌러짐
Figure 112007022760413-PCT00070
체크 박스 상태가 변경됨
Figure 112007022760413-PCT00071
버튼에 관한 드롭다운 메뉴가 열릴 예정임
본 발명을 실행하는 특정의 예가 기술되어 있지만, 당업자라면 상기한 시스템 및 기술의 수많은 다른 변형 및 치환이 있다는 것을 잘 알 것이다. 단지 하나의 이러한 변형으로서, 대화상자의 확장 영역 또는 다른 곳에 있는 UI 컨트롤의 일부 또는 그 전부는 키보드를 사용하여 선택가능할 수 있다. 예를 들어, 사용자는 특정의 컨트롤을 하이라이트하기 위해 탭 키를 누를 수 있고 이어서 "엔터" 키를 누름으로써 그 컨트롤을 활성화시킬 수 있다. 다른 예로서, 특정의 컨트롤은 대응하는 키 조합(예를 들어, "Alt + S")을 가질 수 있다. 적어도 어떤 실시예에서, 애플리케이션 개발자는 사용자가 키보드를 통해 대화상자에 액세스하는 방법의 측면들을 수정할 수 있다. 또한 주어진 애플리케이션에 대하 다수의 동시적인 파일 대화상자의 인스턴스가 있을 수 있다. 본 발명의 실시에들은 또한, 프로세서에 의해 실행될 때 방법의 단계들을 수행하는 및/또는 소프트웨어 아키텍처를 구현하는, 그 위에 명령어가 기록되어 있는 컴퓨터-판독가능 매체를 포함한다. 청구항에서 사용되는 바와 같이, 구문 "을 나타내는 데이터"는 다른 곳에 위치하는 데이터에 대한 포인터 또는 다른 참조는 물론, 실제 데이터 자체를 포함한다.
본 발명의 양호한 실시예가 예시되고 기술되어 있지만, 본 발명의 정신 및 범위를 벗어나지 않고 여러가지 변경이 그 안에서 행해질 수 있다는 것을 잘 알 것이다. 예를 들어, 본 명세서에 나타내어져 있는 여러가지 UI 기능들의 위치가 예시적인 것이며 변경될 수 있다는 것과 여러가지 UI 기능들의 서로 다른 배치가 여전히 본 발명의 정신 및 범위 내에 속한다는 것을 잘 알 것이다. 게다가, 본 명세서에 기술되어 있는 본 발명의 서로 다른 측면들이 역시 본 발명의 정신 및 범위를 벗어나지 않고 여러가지 조합으로 형성될 수 있다. 게다가, 기술된 프로세스에서의 여러가지 단계들이 본 명세서에 기술된 특징들의 선택된 서브셋을 구현하기 위해 원하는 바에 따라 재배열, 수정 및/또는 삭제될 수 있다. 또한, 이상에서, "본 발명"의 하나 이상의 "측면" 또는 "실시예"에서 발견되는 어떤 특징에 대한 언급은 단지 단독으로 또는 다른 개념들과 조합하여 사용되면 유익할 수 있는 여러가지 개 념을 예시하기 위한 것이며, 본 명세서에 단지 하나의 발명 개념만이 개시되어 있음을 암시하거나 기술된 특징들 전부가 이하의 청구항들 중 임의의 것에서 요구되는 것으로 보아서는 안된다. 오히려, 이하의 청구항들 각각은 그 자신의 별개의 발명이며, 인용된 것을 넘어서 어떤 제한을 갖는 것으로 보아서는 안된다.

Claims (31)

  1. 하나 이상의 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 실행가능 명령어에 의해 정의된 파일 시스템 쉘 브라우저로서,
    상기 파일 시스템 쉘 브라우저는 복수의 데이터 항목을 관리하기 위해 사용자에 의해 내비게이션가능하고,
    상기 파일 시스템 쉘 브라우저는,
    공통의 메타데이터를 갖는 제1 일련의 데이터 항목을 식별하기 위한 사용자에 의해 내비게이션가능한 페이지 공간 컨트롤,
    상기 제1 일련의 데이터 항목의 가상 장소를 식별해주는 가상 주소 바,
    상기 제1 일련의 데이터 항목의 제1 디스플레이를 제공하는 리스트 창,
    상기 제1 일련의 데이터 항목 중 사용자가 선택한 데이터 항목에 대응하는 정보를 제공하는 미리보기 창을 포함하는 것인 파일 시스템 쉘 브라우저.
  2. 제1항에 있어서, 상기 페이지 공간 컨트롤러는 메타데이터 값의 계층적 트리를 포함하는 것인 파일 시스템 쉘 브라우저.
  3. 제1항에 있어서, 상기 가상 주소 바는 복수의 계층적 요소를 포함하며, 각각의 요소는, 사용자에 의해 선택될 때, 사용자에 의해 선택가능한 계층적으로 등가인 메타데이터 값의 리스트를 제공하는 것인 파일 시스템 쉘 브라우저.
  4. 제3항에 있어서, 사용자가 상기 계층적으로 등가인 메타데이터 값 중 하나를 선택할 때, 상기 리스트 창은 상기 계층적으로 등가인 메타데이터 값 중 상기 하나에 대응하는 제2 일련의 데이터 항목의 제2 디스플레이를 제공하는 것인 파일 시스템 쉘 브라우저.
  5. 제1항에 있어서, 상기 리스트 창은 상기 제1 일련의 데이터 항목 중 하나의 데이터 항목을, 상기 하나의 데이터 항목에 대응하는 추가의 데이터 항목들의 수를 나타내는 아이콘 형태로 제공하는 것인 파일 시스템 쉘 브라우저.
  6. 제5항에 있어서, 상기 아이콘 형태는 상기 하나의 데이터 항목에 대응하는 추가의 데이터 항목의 수에 기초한 높이를 갖는 스택을 포함하는 것인 파일 시스템 쉘 브라우저.
  7. 제2항에 있어서, 상기 계층적 트리의 노드는 자동리스트를 나타내고, 상기 자동리스트는 저장 장소의 범위 및 메타데이터 값의 하나 이상의 기준에 의해 정의되는 것인 파일 시스템 쉘 브라우저.
  8. 제1항에 있어서, 상기 리스트 창에서 상기 제1 일련의 데이터 항목의 표현 방식을 선택하기 위해 사용자에 의해 선택가능하게 변경가능한 리스트 뷰 슬라이더 를 더 포함하는 파일 시스템 쉘 브라우저.
  9. 제8항에 있어서, 상기 리스트 뷰 슬라이더는 아이콘 표현 방식 및 리스트 표현 방식을 비롯한 사전 설정된 표현 방식을 포함하는 것인 파일 시스템 쉘 브라우저.
  10. 제1항에 있어서, 자동리스트 빌더를 더 포함하며,
    사용자는 하나 이상의 명시적인 포함 및 하나 이상의 명시적인 배제를 포함하는 자동리스트 범위를 정의하는 것인 파일 시스템 쉘 브라우저.
  11. 제1항에 있어서, 사용자가 정적 리스트를 작성하는 기능을 보여주는 리스트 빌더를 더 포함하는 파일 시스템 쉘 브라우저.
  12. 제1항에 있어서, 상기 페이지 공간 컨트롤은 사용자가 상기 페이지 공간 컨트롤을 수직으로 스크롤하는 것에 기초하여 동적으로 수평으로 스크롤하도록 구성되어 있는 것인 파일 시스템 쉘 브라우저.
  13. 제1항에 있어서, 사용자가 상기 제1 일련의 데이터 항목에서의 항목들 중 임의의 것을 선택할 때, 상기 파일 시스템 쉘 브라우저는 상기 선택된 항목에 대응하는 기동 동작을 수행하는 것인 파일 시스템 쉘 브라우저.
  14. 데이터 처리 장치의 운영 체제 내에서 실행가능한 사용자 내비게이션가능한 파일 시스템 쉘 브라우저를 제공하는 컴퓨터 실행가능 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체로서,
    상기 파일 시스템 쉘 브라우저는,
    메타데이터 프로퍼티 및 프로퍼티 값의 계층적 트리를 제공하는 제1 창,
    가상 저장 장소를 식별해주는 메타데이터 값의 순차 리스트를 제공하는 제2 창 - 상기 제2 창은 상기 제1 창으로부터의 선택된 프로퍼티 값을 반영함 -, 및
    상기 가상 저장 장소에 대응하는 제1 일련의 데이터 항목의 디스플레이를 제공하는 제3 창을 포함하는 것인 컴퓨터 판독가능 매체.
  15. 제14항에 있어서, 상기 파일 시스템 쉘 브라우저는 상기 제1 일련의 데이터 항목 중 사용자가 선택한 데이터 항목에 대응하는 정보를 제공하는 미리보기 창을 더 포함하는 것인 컴퓨터 판독가능 매체.
  16. 제14항에 있어서, 상기 제2 창 내의 각각의 메타데이터 값은 사용자에 의해 선택가능한 계층적으로 등가인 메타데이터 값의 리스트에 대응하고,
    사용자가 상기 계층적으로 등가인 메타데이터 값 중 하나를 선택할 때, 상기 제3 창은 상기 선택된 가상 저장 장소에 대응하는 제2 일련의 데이터 항목의 디스플레이를 제공하는 것인 컴퓨터 판독가능 매체.
  17. 제14항에 있어서, 상기 계층적 트리의 노드는 가상 폴더를 나타내고,
    상기 가상 폴더는 저장 장소의 범위 및 메타데이터 값의 하나 이상의 기준에 의해 정의되며,
    상기 가상 폴더는 상기 범위 내에 저장되고 상기 하나 이상의 기준에 일치하는 모든 항목에 대응하는 것인 컴퓨터 판독가능 매체.
  18. 제14항에 있어서, 상기 파일 시스템 쉘 브라우저는 상기 리스트 창에서의 상기 제1 일련의 데이터 항목의 표현 방식을 선택하기 위해 사용자에 의해 선택가능하게 변경가능한 리스트 뷰 슬라이더를 더 포함하는 것인 컴퓨터 판독가능 매체.
  19. 제14항에 있어서, 상기 파일 시스템 쉘 브라우저는 가상 폴더 빌더를 더 포함하며,
    사용자가 하나 이상의 명시적인 포함 및 하나 이상의 명시적인 배제를 포함하는 가상 폴더 범위를 정의하는 것인 컴퓨터 판독가능 매체.
  20. 제14항에 있어서, 상기 파일 시스템 쉘 브라우저는 사용자가 정적 리스트를 작성하는 기능을 보여주는 리스트 빌더를 더 포함하는 것인 컴퓨터 판독가능 매체.
  21. 제14항에 있어서, 상기 제1 창은 사용자가 상기 계층적 트리를 수직으로 스 크롤하는 것에 기초하여 동적으로 수평으로 스크롤하도록 구성되어 있는 것인 컴퓨터 판독가능 매체.
  22. 제14항에 있어서, 사용자가 상기 제1 일련의 데이터 항목에서의 항목들 중 임의의 것을 선택할 때, 상기 파일 시스템 쉘 브라우저는 상기 선택된 항목에 대응하는 기동 동작을 수행하는 것인 컴퓨터 판독가능 매체.
  23. 하나 이상의 컴퓨터 판독가능 매체 상에 컴퓨터 실행가능 명령어로서 저장되어 있는 사용자 인터페이스로서,
    상기 사용자 인터페이스는 파일 시스템 쉘 브라우저에 대응하고,
    상기 사용자 인터페이스는 서로에 대응하는 디스플레이된 3개 이상의 기능 모듈을 포함하고,
    상기 기능 모듈은,
    메타데이터 프로퍼티 및 값의 계층적 트리를 제공하는 페이지 공간 컨트롤 모듈 - 상기 트리는 선택된 메타데이터 값을 식별하기 위해 사용자에 의해 내비게이션가능함 -,
    상기 선택된 메타데이터 값에 대응하는 제1 일련의 데이터 항목의 가상 장소를 식별해주는 가상 주소 바 모듈,
    사용자가 리스트 창 모듈에서 상기 제1 일련의 데이터 항목의 표현 방식을 선택할 수 있게 해주기 위해 선택가능하게 변경가능한 디스플레이 요소를 제공하는 리스트 뷰 슬라이더 모듈,
    사용자가 하나 이상의 명시적으로 포함된 저장 장소 및 하나 이상의 명시적으로 배제된 저장 장소를 포함하는 자동리스트 범위를 정의하는 기능을 보여주는 자동리스트 빌더 모듈, 및
    사용자가 정적 리스트를 작성하는 기능을 보여주는 리스트 빌더 모듈
    의 세트로부터 선택되는 것인 사용자 인터페이스.
  24. 제23항에 있어서, 상기 3개의 요소 중 하나는 가상 주소 바 요소이고,
    상기 가상 장소는 메타데이터 값의 순차 리스트로서 제공되는 것인 사용자 인터페이스.
  25. 제24항에 있어서, 상기 순차 리스트에서의 각각의 메타데이터 값은 상기 리스트 창 모듈에서의 요소들의 디스플레이를 변경하기 위해 사용자에 의해 선택가능한 계층적으로 등가인 메타데이터 값의 리스트에 대응하는 것인 사용자 인터페이스.
  26. 제23항에 있어서, 상기 3개의 요소 중 하나는 상기 페이지 공간 컨트롤 모듈이고,
    상기 3개의 요소 중 다른 하나는 상기 자동리스트 빌더 모듈이며,
    상기 계층적 트리의 제1 노드는 자동리스트를 나타내고, 상기 자동리스트는 상기 자동리스트 범위 내에 저장되고 하나 이상의 사용자 지정된 메타데이터 기준에 일치하는 모든 항목에 대응하는 것인 사용자 인터페이스.
  27. 제23항에 있어서, 상기 3개의 요소 중 하나는 상기 페이지 공간 컨트롤 모듈이고,
    상기 페이지 공간 컨트롤 모듈은 사용자가 상기 계층적 트리를 수직으로 스크롤하는 것에 기초하여 동적으로 수평으로 스크롤하도록 구성되어 있는 것인 사용자 인터페이스.
  28. 제23항에 있어서, 상기 리스트 창 모듈은 상기 제1 일련의 데이터 항목 중 하나의 데이터 항목을, 상기 하나의 데이터 항목에 대응하는 추가적인 데이터 항목의 수를 나타내는 아이콘 형태로 제공하는 것인 사용자 인터페이스.
  29. 제28항에 있어서, 상기 아이콘 형태는 상기 하나의 데이터 항목에 대응하는 추가적인 데이터 항목의 상기 수에 기초한 높이를 갖는 스택을 포함하는 것인 사용자 인터페이스.
  30. 제23항에 있어서, 상기 3개의 요소 중 하나는 상기 리스트 뷰 슬라이더 모듈이고,
    상기 선택가능하게 변경가능한 디스플레이 요소는 아이콘 표현 방식 및 리스 트 표현 방식을 포함하는 사전 설정된 표현 방식을 포함하는 것인 사용자 인터페이스.
  31. 제23항에 있어서, 사용자가 상기 리스트 창 모듈에 디스플레이되는 임의의 항목을 선택할 때, 상기 파일 시스템 쉘 브라우저는 상기 선택된 항목에 대응하는 기동 동작을 수행하는 것인 사용자 인터페이스.
KR1020077006591A 2004-09-24 2005-08-01 파일 시스템 쉘 KR101203274B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10/950,075 US7421438B2 (en) 2004-04-29 2004-09-24 Metadata editing control
US10/950,075 2004-09-24
US11/111,978 US7769794B2 (en) 2003-03-24 2005-04-22 User interface for a file system shell
US11/111,978 2005-04-22
PCT/US2005/027258 WO2006036290A1 (en) 2004-09-24 2005-08-01 File system shell

Publications (2)

Publication Number Publication Date
KR20070058517A true KR20070058517A (ko) 2007-06-08
KR101203274B1 KR101203274B1 (ko) 2012-11-20

Family

ID=36119207

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077006591A KR101203274B1 (ko) 2004-09-24 2005-08-01 파일 시스템 쉘

Country Status (5)

Country Link
US (1) US7769794B2 (ko)
EP (1) EP1836602A4 (ko)
KR (1) KR101203274B1 (ko)
TW (1) TWI363295B (ko)
WO (1) WO2006036290A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101496255B1 (ko) * 2012-11-30 2015-02-26 네이버 주식회사 카드 탐색을 이용한 검색결과 제공 방법 및 장치
KR20220018186A (ko) * 2020-08-06 2022-02-15 주식회사 파수 가상 파일 관리 방법, 장치, 컴퓨터 프로그램 및 기록 매체

Families Citing this family (559)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1331553A1 (en) * 2001-06-08 2003-07-30 Sap Ag Method and computer system for graphical assignments in hierarchies
US7312785B2 (en) 2001-10-22 2007-12-25 Apple Inc. Method and apparatus for accelerated scrolling
CN1656455A (zh) * 2002-09-05 2005-08-17 八十岛广至 管理文件的方法、操作对象显示限制程序和记录介质
US7136874B2 (en) * 2002-10-16 2006-11-14 Microsoft Corporation Adaptive menu system for media players
US7421438B2 (en) * 2004-04-29 2008-09-02 Microsoft Corporation Metadata editing control
US7240292B2 (en) 2003-04-17 2007-07-03 Microsoft Corporation Virtual address bar user interface control
US7627552B2 (en) * 2003-03-27 2009-12-01 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7823077B2 (en) 2003-03-24 2010-10-26 Microsoft Corporation System and method for user modification of metadata in a shell browser
US7712034B2 (en) 2003-03-24 2010-05-04 Microsoft Corporation System and method for shell browser
US7769794B2 (en) 2003-03-24 2010-08-03 Microsoft Corporation User interface for a file system shell
US7890960B2 (en) * 2003-03-26 2011-02-15 Microsoft Corporation Extensible user context system for delivery of notifications
US7827561B2 (en) 2003-03-26 2010-11-02 Microsoft Corporation System and method for public consumption of communication events between arbitrary processes
US7650575B2 (en) * 2003-03-27 2010-01-19 Microsoft Corporation Rich drag drop user interface
US7925682B2 (en) * 2003-03-27 2011-04-12 Microsoft Corporation System and method utilizing virtual folders
US7587411B2 (en) * 2003-03-27 2009-09-08 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7536386B2 (en) * 2003-03-27 2009-05-19 Microsoft Corporation System and method for sharing items in a computer system
US7499925B2 (en) * 2003-03-27 2009-03-03 Microsoft Corporation File system for displaying items of different types and from different physical locations
US7526483B2 (en) * 2003-03-27 2009-04-28 Microsoft Corporation System and method for virtual folder sharing including utilization of static and dynamic lists
US7444598B2 (en) * 2003-06-30 2008-10-28 Microsoft Corporation Exploded views for providing rich regularized geometric transformations and interaction models on content for viewing, previewing, and interacting with documents, projects, and tasks
TW200511029A (en) * 2003-07-24 2005-03-16 Matsushita Electric Ind Co Ltd File management method and data processing device
US8024335B2 (en) 2004-05-03 2011-09-20 Microsoft Corporation System and method for dynamically generating a selectable search extension
US7181463B2 (en) 2003-10-24 2007-02-20 Microsoft Corporation System and method for managing data using static lists
US20050235223A1 (en) * 2004-04-15 2005-10-20 Udo Arend User interface adaptable by an end user
US7657846B2 (en) 2004-04-23 2010-02-02 Microsoft Corporation System and method for displaying stack icons
US7694236B2 (en) * 2004-04-23 2010-04-06 Microsoft Corporation Stack icons representing multiple objects
US7992103B2 (en) 2004-04-26 2011-08-02 Microsoft Corporation Scaling icons for representing files
US8707209B2 (en) 2004-04-29 2014-04-22 Microsoft Corporation Save preview representation of files being created
US8108430B2 (en) * 2004-04-30 2012-01-31 Microsoft Corporation Carousel control for metadata navigation and assignment
JP4533007B2 (ja) * 2004-06-09 2010-08-25 キヤノン株式会社 画像管理装置、画像管理方法、及びプログラム
US9552141B2 (en) 2004-06-21 2017-01-24 Apple Inc. Methods and apparatuses for operating a data processing system
US7788301B2 (en) * 2004-06-21 2010-08-31 Canon Kabushiki Kaisha Metadata driven user interface
US7437358B2 (en) 2004-06-25 2008-10-14 Apple Inc. Methods and systems for managing data
US7730012B2 (en) 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US7774326B2 (en) 2004-06-25 2010-08-10 Apple Inc. Methods and systems for managing data
US7475365B2 (en) * 2004-06-25 2009-01-06 International Business Machines Corporation Method to enhance navigation and scalability in table and tree viewers
GB0418067D0 (en) * 2004-08-13 2004-09-15 Ibm Hierarchical modelling method and software tool
US20060041879A1 (en) * 2004-08-19 2006-02-23 Bower Shelley K System and method for changing defined user interface elements in a previously compiled program
US8495023B1 (en) * 2004-09-01 2013-07-23 Symantec Operating Corporation Delta catalogs in a backup system
US8805934B2 (en) 2004-09-02 2014-08-12 Vmware, Inc. System and method for enabling an external-system view of email attachments
WO2006031741A2 (en) * 2004-09-10 2006-03-23 Topixa, Inc. User creating and rating of attachments for conducting a search directed by a hierarchy-free set of topics, and a user interface therefor
US9189756B2 (en) * 2004-09-21 2015-11-17 International Business Machines Corporation Case management system and method for collaborative project teaming
US8032482B2 (en) 2004-09-30 2011-10-04 Microsoft Corporation Method, system, and apparatus for providing a document preview
US7640552B2 (en) * 2004-10-29 2009-12-29 Microsoft Corporation Multimedia filter resilience
US7610560B2 (en) 2004-11-16 2009-10-27 Microsoft Corporation Methods for automated and semiautomated composition of visual sequences, flows, and flyovers based on content and context
US7926052B2 (en) * 2004-11-19 2011-04-12 Hewlett-Packard Development Company, L.P. Stacked file systems and methods
US7383503B2 (en) * 2005-02-23 2008-06-03 Microsoft Corporation Filtering a collection of items
US20060197762A1 (en) * 2005-03-02 2006-09-07 Microsoft Corporation Scalable visualizer for heterogeneous data
US8543943B2 (en) * 2005-04-07 2013-09-24 Sap Ag Methods and systems for entering object assignments
US7644374B2 (en) 2005-04-14 2010-01-05 Microsoft Corporation Computer input control for specifying scope with explicit exclusions
US8490015B2 (en) * 2005-04-15 2013-07-16 Microsoft Corporation Task dialog and programming interface for same
US7614016B2 (en) * 2005-04-21 2009-11-03 Microsoft Corporation Multiple roots in navigation pane
US8522154B2 (en) * 2005-04-22 2013-08-27 Microsoft Corporation Scenario specialization of file browser
US20060242122A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US8195646B2 (en) * 2005-04-22 2012-06-05 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US7162488B2 (en) * 2005-04-22 2007-01-09 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US20060242591A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation File dialog user interfaces and creation of same
US20060248192A1 (en) * 2005-04-29 2006-11-02 Morris Stanley S Iii Method for pulling images from the internet for viewing on a remote digital display
US9384171B2 (en) * 2005-05-16 2016-07-05 Adobe Systems Incorporated Object resizing with content reflow
US7370060B2 (en) * 2005-05-24 2008-05-06 Microsoft Corporation System and method for user edit merging with preservation of unrepresented data
US8020110B2 (en) * 2005-05-26 2011-09-13 Weisermazars Llp Methods for defining queries, generating query results and displaying same
US20060271550A1 (en) * 2005-05-26 2006-11-30 Siemens Communications, Inc. Method and system for remote document editing using a wireless communication device
US20060271855A1 (en) * 2005-05-27 2006-11-30 Microsoft Corporation Operating system shell management of video files
US7424472B2 (en) * 2005-05-27 2008-09-09 Microsoft Corporation Search query dominant location detection
US7975219B2 (en) * 2005-05-31 2011-07-05 Sorenson Media, Inc. Method, graphical interface and computer-readable medium for reformatting data
US7814090B2 (en) * 2005-05-31 2010-10-12 Oracle International Corporation Query generator
US8296649B2 (en) * 2005-05-31 2012-10-23 Sorenson Media, Inc. Method, graphical interface and computer-readable medium for generating a preview of a reformatted preview segment
US7885979B2 (en) * 2005-05-31 2011-02-08 Sorenson Media, Inc. Method, graphical interface and computer-readable medium for forming a batch job
JP2006343933A (ja) * 2005-06-08 2006-12-21 Sony Corp データ処理方法、電子機器およびプログラム
US7382102B2 (en) * 2005-06-13 2008-06-03 Chrysler Llc Heating of batteries using reactive power
CN101243449A (zh) * 2005-06-16 2008-08-13 文字点击有限公司 用于从计算机显示的内容中自动启动搜索查询的方法和系统
JP4559943B2 (ja) * 2005-06-24 2010-10-13 株式会社東芝 プレイリスト作成装置、プレイリスト作成方法、プレイリスト作成プログラム、著作権情報管理装置、および視聴端末装置
US7665028B2 (en) 2005-07-13 2010-02-16 Microsoft Corporation Rich drag drop user interface
US7478092B2 (en) * 2005-07-21 2009-01-13 International Business Machines Corporation Key term extraction
US8447781B2 (en) * 2005-07-29 2013-05-21 International Business Machines Corporation Content-based file system security
US20070038647A1 (en) * 2005-08-04 2007-02-15 Microsoft Corporation Management of media sources in memory constrained devices
US7685175B2 (en) * 2005-08-12 2010-03-23 Michael Lee Carroll Content manager
US20070048713A1 (en) * 2005-08-12 2007-03-01 Microsoft Corporation Media player service library
KR100645965B1 (ko) * 2005-08-29 2006-11-14 삼성전자주식회사 호스트 장치 및 그의 데이터 관리방법
US20070050445A1 (en) * 2005-08-31 2007-03-01 Hugh Hyndman Internet content analysis
US20070055928A1 (en) * 2005-09-02 2007-03-08 Microsoft Corporation User workflow lists to organize multimedia files
US7949684B2 (en) 2005-09-09 2011-05-24 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
KR100736076B1 (ko) * 2005-10-24 2007-07-06 삼성전자주식회사 화면 캡처 기능을 제공하는 휴대용 장치 및 그 방법
US10324899B2 (en) * 2005-11-07 2019-06-18 Nokia Technologies Oy Methods for characterizing content item groups
US9329897B2 (en) * 2005-11-10 2016-05-03 The Mathworks, Inc. Use of dynamic profiles for creating and using a distributed computing environment
US8819119B2 (en) * 2005-11-10 2014-08-26 The Mathworks, Inc. Dynamic definition for concurrent computing environments
US7802203B2 (en) * 2005-12-23 2010-09-21 Sap Ag Method for providing selectable alternate menu views
US7509588B2 (en) 2005-12-30 2009-03-24 Apple Inc. Portable electronic device with interface reconfiguration mode
US8010909B1 (en) * 2006-02-06 2011-08-30 Microsoft Corporation Derived hierarchy methods and system for definition, visualization and editing of data
US8904286B2 (en) * 2006-02-13 2014-12-02 Blackberry Limited Method and arrangement for providing a primary actions menu on a wireless handheld communication device
US8065351B2 (en) 2006-02-23 2011-11-22 Microsoft Corporation Default location that may be dynamically changed
JP2007232920A (ja) * 2006-02-28 2007-09-13 Nikon Corp 表示システム
US8046703B2 (en) * 2006-02-28 2011-10-25 Sap Ag Monitoring and integration of an organization's planning processes
US20070226200A1 (en) * 2006-03-22 2007-09-27 Microsoft Corporation Grouping and regrouping using aggregation
JP4701124B2 (ja) * 2006-04-07 2011-06-15 キヤノン株式会社 情報処理装置、情報処理方法
US8463000B1 (en) * 2007-07-02 2013-06-11 Pinehill Technology, Llc Content identification based on a search of a fingerprint database
US7840540B2 (en) 2006-04-20 2010-11-23 Datascout, Inc. Surrogate hashing
US8156132B1 (en) 2007-07-02 2012-04-10 Pinehill Technology, Llc Systems for comparing image fingerprints
US7991206B1 (en) 2007-07-02 2011-08-02 Datascout, Inc. Surrogate heuristic identification
US9020964B1 (en) 2006-04-20 2015-04-28 Pinehill Technology, Llc Generation of fingerprints for multimedia content based on vectors and histograms
US8549022B1 (en) 2007-07-02 2013-10-01 Datascout, Inc. Fingerprint generation of multimedia content based on a trigger point with the multimedia content
US20070255677A1 (en) * 2006-04-28 2007-11-01 Sun Microsystems, Inc. Method and apparatus for browsing search results via a virtual file system
US8856105B2 (en) * 2006-04-28 2014-10-07 Hewlett-Packard Development Company, L.P. Dynamic data navigation
US7698351B1 (en) * 2006-04-28 2010-04-13 Netapp, Inc. GUI architecture for namespace and storage management
US20070294647A1 (en) * 2006-06-01 2007-12-20 Via Technologies, Inc. Transferring software assertions to hardware design language code
US7765475B2 (en) 2006-06-13 2010-07-27 International Business Machines Corporation List display with redundant text removal
US8132106B2 (en) * 2006-06-23 2012-03-06 Microsoft Corporation Providing a document preview
US20070300177A1 (en) * 2006-06-23 2007-12-27 Microsoft Corporation User interface for specifying multi-valued properties
KR100765789B1 (ko) * 2006-06-27 2007-10-12 삼성전자주식회사 외부 기기에 대한 정보를 디스플레이하는 방법 및 장치와,그 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능한기록 매체
US20080005109A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation One Click View Arrangement
DE102006034251B8 (de) 2006-07-21 2014-08-21 Senvion Se Verfahren zum Betreiben einer Windenergieanlage
US20080034017A1 (en) * 2006-08-04 2008-02-07 Dominic Giampaolo Links to a common item in a data structure
US9009115B2 (en) 2006-08-04 2015-04-14 Apple Inc. Restoring electronic information
US20080288891A1 (en) * 2006-09-01 2008-11-20 Peter Buth Using a number shortcut
US10313505B2 (en) 2006-09-06 2019-06-04 Apple Inc. Portable multifunction device, method, and graphical user interface for configuring and displaying widgets
GB2468417B (en) * 2006-09-27 2011-03-16 Yisia Young Suk Lee Data object management apparatus and method
US10409849B2 (en) * 2006-09-29 2019-09-10 A9.Com, Inc. System and method for displaying columns of search results
US20080177708A1 (en) * 2006-11-01 2008-07-24 Koollage, Inc. System and method for providing persistent, dynamic, navigable and collaborative multi-media information packages
US20080111826A1 (en) * 2006-11-14 2008-05-15 Microsoft Corporation Displaying resources using multiple visualization dimensions
US8688749B1 (en) 2011-03-31 2014-04-01 Palantir Technologies, Inc. Cross-ontology multi-master replication
US8515912B2 (en) 2010-07-15 2013-08-20 Palantir Technologies, Inc. Sharing and deconflicting data changes in a multimaster database system
WO2008063275A2 (en) * 2006-11-20 2008-05-29 Nikon Corporation Folder collage that functions as an index for a folder database
KR100851302B1 (ko) * 2006-11-27 2008-08-08 삼성전자주식회사 휴대 단말기의 대기화면에서의 기능 실행 방법
US7934164B2 (en) * 2006-12-12 2011-04-26 Canon Kabushiki Kaisha Information processing apparatus and control method thereof, and program
US8171061B2 (en) * 2006-12-14 2012-05-01 Cisco Technology, Inc. File-system based data store for a workgroup server
US8519964B2 (en) 2007-01-07 2013-08-27 Apple Inc. Portable multifunction device, method, and graphical user interface supporting user navigations of graphical objects on a touch screen display
KR101276843B1 (ko) * 2007-01-19 2013-06-18 엘지전자 주식회사 콘텐츠 표시 방법 및 이를 이용한 단말기
KR101524572B1 (ko) * 2007-02-15 2015-06-01 삼성전자주식회사 터치스크린을 구비한 휴대 단말기의 인터페이스 제공 방법
US8156201B2 (en) 2007-02-20 2012-04-10 Microsoft Corporation Unifying discoverability of a website's services
US9069883B2 (en) * 2007-03-17 2015-06-30 Samsung Electronics Co., Ltd. Document management method and document management apparatus using the same
JP4933932B2 (ja) * 2007-03-23 2012-05-16 ソニー株式会社 情報処理システム、情報処理装置、情報処理方法、プログラム
JP4367662B2 (ja) * 2007-03-23 2009-11-18 ソニー株式会社 情報処理システム、端末装置、情報処理方法、プログラム
WO2008124793A2 (en) * 2007-04-09 2008-10-16 Topia Technology Graphical user interface for electronic file sharing
JP4928333B2 (ja) * 2007-04-12 2012-05-09 キヤノン株式会社 コンテンツ表示装置及びコンテンツ表示方法
EP1980961A1 (en) * 2007-04-12 2008-10-15 Swiss Reinsurance Company System and method for aggregation and monitoring of multimedia data stored in a decentralized way
KR20080096005A (ko) * 2007-04-26 2008-10-30 엔에이치엔(주) 키워드 제공 범위에 따라 키워드 제공 방법 및 그 시스템
US8677270B2 (en) * 2007-05-04 2014-03-18 Microsoft Corporation Live companion user interface
US8209358B2 (en) * 2007-05-09 2012-06-26 Illinois Institute Of Technology Hierarchical structured abstract data organization system
US8577937B1 (en) * 2007-05-09 2013-11-05 Vmware, Inc. Repository including exclusion list
US9633028B2 (en) * 2007-05-09 2017-04-25 Illinois Institute Of Technology Collaborative and personalized storage and search in hierarchical abstract data organization systems
US9128954B2 (en) * 2007-05-09 2015-09-08 Illinois Institute Of Technology Hierarchical structured data organization system
US10042898B2 (en) * 2007-05-09 2018-08-07 Illinois Institutre Of Technology Weighted metalabels for enhanced search in hierarchical abstract data organization systems
US7788297B2 (en) * 2007-05-15 2010-08-31 Microsoft Corporation Interactive storage meter for a storage container
US9286309B2 (en) * 2007-05-23 2016-03-15 Adobe Systems Incorporated Representation of last viewed or last modified portion of a document
US8010900B2 (en) 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
US20080307017A1 (en) 2007-06-08 2008-12-11 Apple Inc. Searching and Restoring of Backups
US8819080B2 (en) * 2007-06-13 2014-08-26 The Boeing Company System and method for collection, retrieval, and distribution of data
US8954507B2 (en) * 2007-06-22 2015-02-10 Microsoft Corporation Gathering and using awareness information
US20090006433A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Extensible category and property grouping for object editing
US9627006B2 (en) * 2007-08-07 2017-04-18 Samsung Electronics Co., Ltd. Content information display method and apparatus
US9536009B2 (en) * 2007-08-08 2017-01-03 Microsoft Technology Licensing, Llc Embedding a representation of an item in a host
US8484239B2 (en) * 2007-08-29 2013-07-09 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus in a database system
US20090064006A1 (en) * 2007-08-30 2009-03-05 Indran Naick Techniques for Performing Tasks Associated with Custom Folder Controls
US20090063517A1 (en) * 2007-08-30 2009-03-05 Microsoft Corporation User interfaces for scoped hierarchical data sets
US8619038B2 (en) 2007-09-04 2013-12-31 Apple Inc. Editing interface
US8683378B2 (en) 2007-09-04 2014-03-25 Apple Inc. Scrolling techniques for user interfaces
US8010910B2 (en) 2007-09-04 2011-08-30 Microsoft Corporation Breadcrumb list supplementing for hierarchical data sets
KR100905494B1 (ko) * 2007-09-07 2009-07-01 박수민 파일 관리 시스템 및 파일 관리를 실행하기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
US20090083213A1 (en) * 2007-09-20 2009-03-26 Haynes Thomas R Method and System for Fast Navigation in a Hierarchical Tree Control
JP4450048B2 (ja) * 2007-10-10 2010-04-14 ブラザー工業株式会社 表示装置及びプログラム
USD730391S1 (en) 2007-10-29 2015-05-26 Carbonite, Inc. Icon for a backup and restore system for a computer
US20090112870A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Management of distributed storage
US8326814B2 (en) 2007-12-05 2012-12-04 Box, Inc. Web-based file management system and service
US8146110B2 (en) 2007-12-10 2012-03-27 Microsoft Corporation Service platform for in-context results
US9779181B2 (en) * 2007-12-14 2017-10-03 Bmc Software, Inc. Dynamic folding of listed items for display
US7836053B2 (en) * 2007-12-28 2010-11-16 Group Logic, Inc. Apparatus and methods of identifying potentially similar content for data reduction
US20110145733A1 (en) * 2008-01-09 2011-06-16 Smart Technologies Ulc Multi-page organizing and manipulating electronic documents
US8042054B2 (en) 2008-01-10 2011-10-18 At&T Intellectual Property I, L.P. System for managing media content
US20090193392A1 (en) * 2008-01-29 2009-07-30 Michael David Downen Dynamic intermediate language modification and replacement
US8688674B2 (en) * 2008-02-14 2014-04-01 Beats Music, Llc Fast search in a music sharing environment
US20090216743A1 (en) * 2008-02-25 2009-08-27 International Business Machines Corporation Systems, Methods and Computer Program Products for the Use of Annotations for Media Content to Enable the Selective Management and Playback of Media Content
JP5309607B2 (ja) * 2008-02-26 2013-10-09 日本電気株式会社 タグ情報に基づく情報分類表示システム
US20090222762A1 (en) * 2008-02-29 2009-09-03 Microsoft Corporation Cascading item and action browser
US8751947B2 (en) * 2008-02-29 2014-06-10 Adobe Systems Incorporated Visual and functional transform
US20090228831A1 (en) * 2008-03-04 2009-09-10 Andreas Wendker Customization of user interface elements
US8302017B2 (en) * 2008-03-05 2012-10-30 Microsoft Corporation Definition for service interface
US20090228804A1 (en) * 2008-03-05 2009-09-10 Microsoft Corporation Service Preview And Access From an Application Page
US8204916B2 (en) 2008-03-06 2012-06-19 Microsoft Corporation Hierarchical presentation of search results
US20090241018A1 (en) * 2008-03-18 2009-09-24 Cuill, Inc. Apparatus and method for displaying search results with configurable columns and textual summary lengths
TWI421700B (zh) * 2008-06-02 2014-01-01 無線虛擬儲存裝置及取得遠端檔案之方法
US8631340B2 (en) * 2008-06-25 2014-01-14 Microsoft Corporation Tab management in a user interface window
US20090327904A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Presenting dynamic folders
JP5346506B2 (ja) * 2008-06-30 2013-11-20 株式会社日立ソリューションズ ファイル管理装置
US8489572B2 (en) * 2008-07-11 2013-07-16 Thomson Reuters Global Resources Systems, methods, and interfaces for researching contractual precedents
US20100023557A1 (en) * 2008-07-28 2010-01-28 Novell, Inc. System and method to extend a file manager user interface
US8171045B2 (en) * 2008-07-31 2012-05-01 Xsevo Systems, Inc. Record based code structure
US9396281B2 (en) * 2008-08-13 2016-07-19 Microsoft Technology Licensing, Llc Activities operating on structured data
JP4636141B2 (ja) * 2008-08-28 2011-02-23 ソニー株式会社 情報処理装置および方法、並びにプログラム
US20100064249A1 (en) * 2008-09-05 2010-03-11 Gateway Inc. Visual indicator in GUI system for notifying user of data storage device
US8290971B2 (en) 2008-09-09 2012-10-16 Applied Systems, Inc. Method and apparatus for remotely displaying a list by determining a quantity of data to send based on the list size and the display control size
US8924876B1 (en) * 2008-09-29 2014-12-30 Emc Corporation File-driven drag and drop
JP2010097292A (ja) * 2008-10-14 2010-04-30 Canon Inc 情報処理装置及び情報処理方法
US9760234B2 (en) * 2008-10-14 2017-09-12 International Business Machines Corporation Desktop icon management and grouping using desktop containers
US9928242B2 (en) * 2008-11-05 2018-03-27 Oracle International Corporation Managing the content of shared slide presentations
AU2008246236B1 (en) * 2008-11-18 2009-10-01 International Business Machines Corporation Presentation of items arranged in a hierarchy
US20100131851A1 (en) 2008-11-21 2010-05-27 Randall Reese Machine, Program Product, And Computer-Implemented Method For Randomized Slide Show Of Files
JP2012510672A (ja) 2008-11-28 2012-05-10 フジフイルム メディカル システムズ ユーエスエイ インコーポレイテッド 画像表示にアクセスし、それを操作するためのアクティブ・オーバーレイ・システムおよび方法
WO2010064784A2 (ko) 2008-12-02 2010-06-10 (주)엘지전자 3차원 캡션 디스플레이 방법 및 이를 구현하기 위한 3차원 디스플레이 장치
US20100185627A1 (en) * 2009-01-12 2010-07-22 Kinpo Electronics, Inc. Sorting method of multimedia files
JP5366562B2 (ja) * 2009-01-13 2013-12-11 キヤノン株式会社 情報処理装置および情報処理装置の制御方法およびプログラム
US20100192098A1 (en) * 2009-01-29 2010-07-29 Microsoft Corporation Accelerators for capturing content
US9176747B2 (en) * 2009-02-17 2015-11-03 Sandisk Il Ltd. User-application interface
US8656346B2 (en) * 2009-02-18 2014-02-18 Microsoft Corporation Converting command units into workflow activities
USD838288S1 (en) * 2009-02-24 2019-01-15 Tixtrack, Inc. Display screen or portion of a display screen with a computer generated venue map and a pop-up window appearing in response to an electronic pointer
US20100235769A1 (en) * 2009-03-16 2010-09-16 Microsoft Corporation Smooth layout animation of continuous and non-continuous properties
DE102009019562A1 (de) * 2009-04-30 2010-11-04 Volkswagen Ag Verfahren zum Steuern der Informationsanzeige auf einer Anzeigefläche
WO2010138112A1 (en) * 2009-05-27 2010-12-02 Hitachi Software Engineering Co., Ltd. Retrieval system, retrieval space map server apparatus and program
US9298350B2 (en) * 2009-05-27 2016-03-29 Microsoft Technology Licensing, Llc Menu searching of a hierarchical menu structure
JP5676859B2 (ja) * 2009-06-22 2015-02-25 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及びプログラム
EP2275952A1 (en) 2009-07-01 2011-01-19 Thomson Telecom Belgium Method for accessing files of a file system according to metadata and device implementing the method
US20110010656A1 (en) * 2009-07-13 2011-01-13 Ta Keo Ltd Apparatus and method for improved user interface
US9513403B2 (en) * 2009-07-27 2016-12-06 Peck Labs, Inc Methods and systems for displaying customized icons
KR101686913B1 (ko) * 2009-08-13 2016-12-16 삼성전자주식회사 전자기기에서 이벤트 서비스 제공 방법 및 장치
JP5531497B2 (ja) * 2009-08-18 2014-06-25 ソニー株式会社 表示装置及び表示方法
KR101259549B1 (ko) * 2009-09-21 2013-04-30 한국전자통신연구원 사용자 단말 시스템, 상기 시스템을 포함하는 디지털 저작권 관리 시스템 및 그 관리방법
CA2684540A1 (en) 2009-11-05 2011-05-05 Ibm Canada Limited - Ibm Canada Limitee Navigation through historical stored interactions associated with a multi-user view
US20110113357A1 (en) * 2009-11-12 2011-05-12 International Business Machines Corporation Manipulating results of a media archive search
US20110119634A1 (en) * 2009-11-16 2011-05-19 Apple Inc. Global view for digital assets
TWI408564B (zh) * 2009-11-25 2013-09-11 Giga Byte Tech Co Ltd 搜尋文件方法及其人機介面裝置
US8621391B2 (en) * 2009-12-16 2013-12-31 Apple Inc. Device, method, and computer readable medium for maintaining a selection order in a displayed thumbnail stack of user interface elements acted upon via gestured operations
KR101725887B1 (ko) * 2009-12-21 2017-04-11 삼성전자주식회사 터치 스크린 디바이스의 컨텐츠 검색 방법 및 장치
US10397639B1 (en) 2010-01-29 2019-08-27 Sitting Man, Llc Hot key systems and methods
US9366862B2 (en) 2010-02-28 2016-06-14 Microsoft Technology Licensing, Llc System and method for delivering content to a group of see-through near eye display eyepieces
US9134534B2 (en) 2010-02-28 2015-09-15 Microsoft Technology Licensing, Llc See-through near-eye display glasses including a modular image source
US20150309316A1 (en) 2011-04-06 2015-10-29 Microsoft Technology Licensing, Llc Ar glasses with predictive control of external device based on event input
US9182596B2 (en) 2010-02-28 2015-11-10 Microsoft Technology Licensing, Llc See-through near-eye display glasses with the optical assembly including absorptive polarizers or anti-reflective coatings to reduce stray light
US8488246B2 (en) 2010-02-28 2013-07-16 Osterhout Group, Inc. See-through near-eye display glasses including a curved polarizing film in the image source, a partially reflective, partially transmitting optical element and an optically flat film
US9229227B2 (en) 2010-02-28 2016-01-05 Microsoft Technology Licensing, Llc See-through near-eye display glasses with a light transmissive wedge shaped illumination system
US10180572B2 (en) 2010-02-28 2019-01-15 Microsoft Technology Licensing, Llc AR glasses with event and user action control of external applications
US8477425B2 (en) 2010-02-28 2013-07-02 Osterhout Group, Inc. See-through near-eye display glasses including a partially reflective, partially transmitting optical element
US9341843B2 (en) 2010-02-28 2016-05-17 Microsoft Technology Licensing, Llc See-through near-eye display glasses with a small scale image source
US9759917B2 (en) 2010-02-28 2017-09-12 Microsoft Technology Licensing, Llc AR glasses with event and sensor triggered AR eyepiece interface to external devices
US9097891B2 (en) 2010-02-28 2015-08-04 Microsoft Technology Licensing, Llc See-through near-eye display glasses including an auto-brightness control for the display brightness based on the brightness in the environment
US8472120B2 (en) 2010-02-28 2013-06-25 Osterhout Group, Inc. See-through near-eye display glasses with a small scale image source
US9129295B2 (en) 2010-02-28 2015-09-08 Microsoft Technology Licensing, Llc See-through near-eye display glasses with a fast response photochromic film system for quick transition from dark to clear
KR20130000401A (ko) 2010-02-28 2013-01-02 오스터하우트 그룹 인코포레이티드 대화형 머리­장착식 아이피스 상의 지역 광고 컨텐츠
US8467133B2 (en) 2010-02-28 2013-06-18 Osterhout Group, Inc. See-through display with an optical assembly including a wedge-shaped illumination system
US9285589B2 (en) 2010-02-28 2016-03-15 Microsoft Technology Licensing, Llc AR glasses with event and sensor triggered control of AR eyepiece applications
US9097890B2 (en) 2010-02-28 2015-08-04 Microsoft Technology Licensing, Llc Grating in a light transmissive illumination system for see-through near-eye display glasses
US8482859B2 (en) 2010-02-28 2013-07-09 Osterhout Group, Inc. See-through near-eye display glasses wherein image light is transmitted to and reflected from an optically flat film
US9091851B2 (en) 2010-02-28 2015-07-28 Microsoft Technology Licensing, Llc Light control in head mounted displays
US9128281B2 (en) 2010-09-14 2015-09-08 Microsoft Technology Licensing, Llc Eyepiece with uniformly illuminated reflective display
US20120249797A1 (en) 2010-02-28 2012-10-04 Osterhout Group, Inc. Head-worn adaptive display
US9223134B2 (en) 2010-02-28 2015-12-29 Microsoft Technology Licensing, Llc Optical imperfections in a light transmissive illumination system for see-through near-eye display glasses
TWI410867B (zh) * 2010-03-24 2013-10-01 Acer Inc 應用軟體的安裝方法
US8935212B2 (en) * 2010-03-29 2015-01-13 Carbonite, Inc. Discovery of non-standard folders for backup
US10788976B2 (en) 2010-04-07 2020-09-29 Apple Inc. Device, method, and graphical user interface for managing folders with multiple pages
US20110252349A1 (en) 2010-04-07 2011-10-13 Imran Chaudhri Device, Method, and Graphical User Interface for Managing Folders
US20110258569A1 (en) * 2010-04-20 2011-10-20 Microsoft Corporation Display of filtered data via frequency distribution
USD666631S1 (en) * 2010-04-22 2012-09-04 Wenjin Ma Display screen with graphical user interface
US20110264705A1 (en) * 2010-04-22 2011-10-27 Brandon Diamond Method and system for interactive generation of presentations
US8751939B2 (en) * 2010-04-26 2014-06-10 Salesforce.Com, Inc. Side tab navigation and page views personalization systems and methods
CA2738428A1 (en) * 2010-04-30 2011-10-30 Iliv Technologies Inc. Collaboration tool
US20110276921A1 (en) * 2010-05-05 2011-11-10 Yahoo! Inc. Selecting content based on interest tags that are included in an interest cloud
TWI408594B (zh) * 2010-06-04 2013-09-11 Edamak Corp 電容式近接感測暨觸控偵測裝置與方法
US9081481B2 (en) * 2010-06-16 2015-07-14 Google Inc. Adjusting list views based on list sorting and item highlighting
KR101110202B1 (ko) * 2010-08-02 2012-02-16 (주)엔써즈 동영상 데이터들의 상호 관계에 기초한 데이터베이스 형성 방법 및 데이터베이스 형성 시스템
US8774561B2 (en) 2010-09-01 2014-07-08 Apple Inc. Consolidating information relating to duplicate images
US11016938B2 (en) 2010-09-01 2021-05-25 Apple Inc. Consolidating information relating to duplicate images
KR101811743B1 (ko) * 2010-09-09 2018-01-25 삼성전자주식회사 멀티미디어 장치 및 그의 컨텐츠 제공 방법
US20120227115A1 (en) * 2010-09-28 2012-09-06 Adam Kidron License management platform apparatuses, methods and systems
US20120084657A1 (en) * 2010-09-30 2012-04-05 Yahoo! Inc. Providing content to a user from multiple sources based on interest tag(s) that are included in an interest cloud
KR20130052743A (ko) * 2010-10-15 2013-05-23 삼성전자주식회사 항목 선택 방법
US8892578B2 (en) 2010-10-29 2014-11-18 Microsoft Corporation Visual preview of search results
TWI426401B (zh) * 2010-10-29 2014-02-11 Inventec Corp 透過自訂標籤開啟對應目標檔案之系統及其方法
US9930092B2 (en) 2010-12-06 2018-03-27 Zoho Corporation Private Limited Editing an unhosted third party application
US20120151397A1 (en) * 2010-12-08 2012-06-14 Tavendo Gmbh Access to an electronic object collection via a plurality of views
EP2463784A1 (en) * 2010-12-10 2012-06-13 Giga-Byte Technology Co., Ltd. Method and human-to-machine interface apparatus for searching files
CN102541881A (zh) * 2010-12-17 2012-07-04 联想(北京)有限公司 文件预览图像的显示方法和电子设备
US9996620B2 (en) 2010-12-28 2018-06-12 Excalibur Ip, Llc Continuous content refinement of topics of user interest
US8984029B2 (en) 2011-01-14 2015-03-17 Apple Inc. File system management
US8943026B2 (en) 2011-01-14 2015-01-27 Apple Inc. Visual representation of a local backup
US8966396B2 (en) * 2011-01-14 2015-02-24 Apple Inc. Information management with non-hierarchical views
WO2012099617A1 (en) 2011-01-20 2012-07-26 Box.Net, Inc. Real time notification of activities that occur in a web-based collaboration environment
WO2012108714A2 (en) 2011-02-11 2012-08-16 Samsung Electronics Co., Ltd. Method and apparatus for providing graphic user interface in mobile terminal
US20120254790A1 (en) * 2011-03-31 2012-10-04 Xerox Corporation Direct, feature-based and multi-touch dynamic search and manipulation of image sets
US20120266106A1 (en) * 2011-04-13 2012-10-18 Pugazendhi Asaimuthu Method and system for multi-level browsing
US20120266079A1 (en) * 2011-04-18 2012-10-18 Mark Lee Usability of cross-device user interfaces
KR101830777B1 (ko) * 2011-05-11 2018-02-21 삼성전자 주식회사 아이템 표시 제어 방법 및 장치
US10789272B2 (en) * 2011-06-06 2020-09-29 International Business Machines Corporation Scalable, distributed containerization across homogenous and heterogeneous data stores
US9015601B2 (en) 2011-06-21 2015-04-21 Box, Inc. Batch uploading of content to a web-based collaboration environment
US9063912B2 (en) 2011-06-22 2015-06-23 Box, Inc. Multimedia content preview rendering in a cloud content management system
US9176645B1 (en) * 2011-06-29 2015-11-03 Amazon Technologies, Inc. Manipulating collections of items in a user interface
US20130007061A1 (en) * 2011-06-29 2013-01-03 Nokia Corporation Apparatus and associated methods
US9280273B2 (en) * 2011-06-30 2016-03-08 Nokia Technologies Oy Method, apparatus, and computer program for displaying content items in display regions
US8060533B1 (en) 2011-07-07 2011-11-15 Google Inc. Panel-based management of data objects from a plurality of data sources
US8751538B1 (en) * 2011-07-07 2014-06-10 Google Inc. Method and apparatus for panel-based management of data
WO2013009337A2 (en) 2011-07-08 2013-01-17 Arnold Goldberg Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
US9978040B2 (en) 2011-07-08 2018-05-22 Box, Inc. Collaboration sessions in a workspace on a cloud-based content management system
KR101857571B1 (ko) * 2011-07-19 2018-05-14 삼성전자 주식회사 아이템 이동 방법 및 장치
US20130036369A1 (en) * 2011-08-02 2013-02-07 SquaredOut, Inc. Systems and methods for managing event-related information
US20130067408A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Contextually applicable commands
US9152612B2 (en) * 2011-09-13 2015-10-06 Microsoft Technology Licensing, Llc Input control processing
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US8515902B2 (en) 2011-10-14 2013-08-20 Box, Inc. Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution
JP2013089140A (ja) * 2011-10-20 2013-05-13 Canon Inc 文書管理装置およびその制御方法、並びにプログラム
US9098474B2 (en) 2011-10-26 2015-08-04 Box, Inc. Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience
WO2013062599A1 (en) 2011-10-26 2013-05-02 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US9087064B2 (en) * 2011-10-27 2015-07-21 International Business Machines Corporation User-defined hierarchies in file system data sets
US9411797B2 (en) * 2011-10-31 2016-08-09 Microsoft Technology Licensing, Llc Slicer elements for filtering tabular data
US10248439B2 (en) * 2011-11-10 2019-04-02 Microsoft Technology Licensing, Llc Format object task pane
US8990307B2 (en) 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
US20130127899A1 (en) * 2011-11-21 2013-05-23 Jiunn-Sheng Yan Apparatus and method for dynamic film review on an e-book
GB2500152A (en) 2011-11-29 2013-09-11 Box Inc Mobile platform file and folder selection functionalities for offline access and synchronization
US8977978B2 (en) * 2011-12-12 2015-03-10 Inkling Systems, Inc. Outline view
US8938550B2 (en) * 2011-12-15 2015-01-20 Microsoft Corporation Autonomous network streaming
US8832296B2 (en) 2011-12-15 2014-09-09 Microsoft Corporation Fast application streaming using on-demand staging
US9019123B2 (en) 2011-12-22 2015-04-28 Box, Inc. Health check services for web-based collaboration environments
US20130162670A1 (en) * 2011-12-23 2013-06-27 Sap Ag Dynamic card view
KR101995775B1 (ko) * 2012-01-06 2019-07-03 삼성전자 주식회사 복수의 아이템 검색 지원 방법 및 이를 지원하는 단말기
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
US8782004B2 (en) 2012-01-23 2014-07-15 Palantir Technologies, Inc. Cross-ACL multi-master replication
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US9645724B2 (en) 2012-02-01 2017-05-09 Facebook, Inc. Timeline based content organization
US9235317B2 (en) * 2012-02-01 2016-01-12 Facebook, Inc. Summary and navigation of hierarchical levels
US9557876B2 (en) 2012-02-01 2017-01-31 Facebook, Inc. Hierarchical user interface
US10055419B2 (en) * 2012-02-03 2018-08-21 Apple Inc. User interface for accessing documents from a computing device
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
EP2631818A1 (en) * 2012-02-24 2013-08-28 Research in Motion TAT AB Method and apparatus for displaying files by categories in a graphical user interface
WO2013124468A1 (en) * 2012-02-24 2013-08-29 Research In Motion Limited Method and apparatus for displaying files by categories in a graphical user interface
TWI479346B (zh) * 2012-03-01 2015-04-01 Altek Corp 影像縮圖瀏覽的裝置及其方法
US9195636B2 (en) 2012-03-07 2015-11-24 Box, Inc. Universal file type preview for mobile devices
KR20130108758A (ko) * 2012-03-26 2013-10-07 삼성전자주식회사 단말기에 항목 목록을 표시하는 gui 제공방법 및 장치
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
GB2505272B (en) 2012-05-04 2014-07-09 Box Inc Repository redundancy implementation of a system which incrementally updates clients with events that occurred via cloud-enabled platform
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US9027108B2 (en) 2012-05-23 2015-05-05 Box, Inc. Systems and methods for secure file portability between mobile applications on a mobile device
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
JP5950698B2 (ja) * 2012-05-31 2016-07-13 キヤノン株式会社 情報処理装置
US10002164B2 (en) * 2012-06-01 2018-06-19 Ansys, Inc. Systems and methods for context based search of simulation objects
EP2856280A4 (en) * 2012-06-01 2016-05-18 Sas Ip USER INTERFACE AND METHOD FOR DATA NAVIGATION IN THE USER INTERFACE OF TECHNICAL ANALYSIS APPLICATIONS
US8898165B2 (en) 2012-07-02 2014-11-25 International Business Machines Corporation Identification of null sets in a context-based electronic document search
US9460200B2 (en) 2012-07-02 2016-10-04 International Business Machines Corporation Activity recommendation based on a context-based electronic files search
US8903813B2 (en) 2012-07-02 2014-12-02 International Business Machines Corporation Context-based electronic document search using a synthetic event
US9021099B2 (en) 2012-07-03 2015-04-28 Box, Inc. Load balancing secure FTP connections among multiple FTP servers
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
US9792320B2 (en) 2012-07-06 2017-10-17 Box, Inc. System and method for performing shard migration to support functions of a cloud-based service
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
US9237170B2 (en) 2012-07-19 2016-01-12 Box, Inc. Data loss prevention (DLP) methods and architectures by a cloud service
US9658672B2 (en) 2012-07-30 2017-05-23 Sap Se Business object representations and detail boxes display
US9483086B2 (en) * 2012-07-30 2016-11-01 Sap Se Business object detail display
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US8868574B2 (en) * 2012-07-30 2014-10-21 Box, Inc. System and method for advanced search and filtering mechanisms for enterprise administrators in a cloud-based environment
US9262499B2 (en) 2012-08-08 2016-02-16 International Business Machines Corporation Context-based graphical database
US8745267B2 (en) 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US9369520B2 (en) 2012-08-19 2016-06-14 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US20140059488A1 (en) * 2012-08-21 2014-02-27 Sap Ag System and method for viewing selected descendant nodes in a tree hierarchy displayed in tabular form
US8959119B2 (en) 2012-08-27 2015-02-17 International Business Machines Corporation Context-based graph-relational intersect derived database
GB2513671A (en) 2012-08-27 2014-11-05 Box Inc Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
TWI456494B (zh) * 2012-08-30 2014-10-11 Shuttle Inc 電子裝置的內容分類方法及其應用程式
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
US9311071B2 (en) 2012-09-06 2016-04-12 Box, Inc. Force upgrade of a mobile application via a server side configuration file
US8620958B1 (en) 2012-09-11 2013-12-31 International Business Machines Corporation Dimensionally constrained synthetic context objects database
US9218118B2 (en) 2012-09-11 2015-12-22 Apple Inc. Media player playlist management
US9558278B2 (en) 2012-09-11 2017-01-31 Apple Inc. Integrated content recommendation
US9251237B2 (en) 2012-09-11 2016-02-02 International Business Machines Corporation User-specific synthetic context object matching
US9619580B2 (en) 2012-09-11 2017-04-11 International Business Machines Corporation Generation of synthetic context objects
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US10200256B2 (en) 2012-09-17 2019-02-05 Box, Inc. System and method of a manipulative handle in an interactive mobile user interface
US9553758B2 (en) 2012-09-18 2017-01-24 Box, Inc. Sandboxing individual applications to specific user folders in a cloud-based service
US9223846B2 (en) 2012-09-18 2015-12-29 International Business Machines Corporation Context-based navigation through a database
US10915492B2 (en) 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
US9705967B2 (en) 2012-10-04 2017-07-11 Box, Inc. Corporate user discovery and identification of recommended collaborators in a cloud platform
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
US9741138B2 (en) * 2012-10-10 2017-08-22 International Business Machines Corporation Node cluster relationships in a graph database
JP2013054364A (ja) * 2012-10-15 2013-03-21 Nikon Corp 表示処理装置、表示システム、表示方法およびプログラム。
GB2507191B (en) 2012-10-17 2015-03-04 Box Inc Remote key management in a cloud-based environment
US9250781B2 (en) 2012-10-17 2016-02-02 Sap Se Method and device for navigating time and timescale using movements
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9081975B2 (en) 2012-10-22 2015-07-14 Palantir Technologies, Inc. Sharing information between nexuses that use different classification schemes for information access control
US8863035B2 (en) * 2012-10-26 2014-10-14 International Business Machines Corporation Dynamic self-reorganizing trees in a user interface
US20140129545A1 (en) * 2012-11-02 2014-05-08 Google Inc. Sorting search results
US9501761B2 (en) 2012-11-05 2016-11-22 Palantir Technologies, Inc. System and method for sharing investigation results
USD752070S1 (en) * 2012-11-13 2016-03-22 Karl Storz Imaging, Inc. Medical imaging display screen or portion thereof with graphical user interface
USD738885S1 (en) * 2012-11-13 2015-09-15 Karl Storz Imaging, Inc. Medical imaging display screen or portion thereof with graphical user interface
CN103810221B (zh) * 2012-11-15 2019-03-15 腾讯科技(深圳)有限公司 一种文件的预览方法及装置
US8931109B2 (en) 2012-11-19 2015-01-06 International Business Machines Corporation Context-based security screening for accessing data
TWI554939B (zh) * 2012-12-17 2016-10-21 華碩電腦股份有限公司 電腦裝置及應用程式預覽介面的操作方法
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US10241643B2 (en) * 2012-12-21 2019-03-26 Microsoft Technology Licensing, Llc Navigating content hierarchies and persisting content item collections
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US8914413B2 (en) 2013-01-02 2014-12-16 International Business Machines Corporation Context-based data gravity wells
US8983981B2 (en) 2013-01-02 2015-03-17 International Business Machines Corporation Conformed dimensional and context-based data gravity wells
US9229932B2 (en) 2013-01-02 2016-01-05 International Business Machines Corporation Conformed dimensional data gravity wells
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9507795B2 (en) 2013-01-11 2016-11-29 Box, Inc. Functionalities, features, and user interface of a synchronization client to a cloud-based environment
EP2757491A1 (en) 2013-01-17 2014-07-23 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
US9275206B2 (en) * 2013-01-23 2016-03-01 International Business Machines Corporation Managing sensitive information
US8856946B2 (en) 2013-01-31 2014-10-07 International Business Machines Corporation Security filter for context-based data gravity wells
US9069752B2 (en) 2013-01-31 2015-06-30 International Business Machines Corporation Measuring and displaying facets in context-based conformed dimensional data gravity wells
US9053102B2 (en) 2013-01-31 2015-06-09 International Business Machines Corporation Generation of synthetic context frameworks for dimensionally constrained hierarchical synthetic context-based objects
US9342530B2 (en) * 2013-02-22 2016-05-17 Pro Softnet Corporation Method for skipping empty folders when navigating a file system
US9292537B1 (en) 2013-02-23 2016-03-22 Bryant Christopher Lee Autocompletion of filename based on text in a file to be saved
US9292506B2 (en) 2013-02-28 2016-03-22 International Business Machines Corporation Dynamic generation of demonstrative aids for a meeting
USD763860S1 (en) * 2013-03-04 2016-08-16 Tixtrack, Inc. Display panel or portion thereof with graphical user interface
US20140289641A1 (en) * 2013-03-20 2014-09-25 Jerome Eymard Whitcroft Adaptive User Interface
JP6132617B2 (ja) * 2013-03-26 2017-05-24 キヤノン株式会社 受信した画像データをフォルダに格納する画像処理システム、画像処理方法、及びプログラム
US20140298219A1 (en) * 2013-03-29 2014-10-02 Microsoft Corporation Visual Selection and Grouping
US10152526B2 (en) 2013-04-11 2018-12-11 International Business Machines Corporation Generation of synthetic context objects using bounded context objects
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US9348794B2 (en) 2013-05-17 2016-05-24 International Business Machines Corporation Population of context-based data gravity wells
US9195608B2 (en) 2013-05-17 2015-11-24 International Business Machines Corporation Stored data analysis
US9633037B2 (en) 2013-06-13 2017-04-25 Box, Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US8886601B1 (en) 2013-06-20 2014-11-11 Palantir Technologies, Inc. System and method for incrementally replicating investigative analysis data
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US10229134B2 (en) 2013-06-25 2019-03-12 Box, Inc. Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform
US10110656B2 (en) 2013-06-25 2018-10-23 Box, Inc. Systems and methods for providing shell communication in a cloud-based platform
US9256614B1 (en) * 2013-06-28 2016-02-09 Emc Corporation File system snapshots over fully provisioned volume file in direct mode
US9256629B1 (en) * 2013-06-28 2016-02-09 Emc Corporation File system snapshots over thinly provisioned volume file in mapped mode
US9329803B1 (en) 2013-06-28 2016-05-03 Emc Corporation File system over thinly provisioned volume file in mapped mode
US9256603B1 (en) 2013-06-28 2016-02-09 Emc Corporation File system over fully provisioned volume file in direct mode
US9619128B2 (en) * 2013-07-01 2017-04-11 Microsoft Technology Licensing, Llc Dynamic presentation prototyping and generation
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US20150052459A1 (en) * 2013-08-13 2015-02-19 Unisys Corporation Shortcut command button for a hierarchy tree
US9892131B2 (en) 2013-08-26 2018-02-13 Xiaomi Inc. Method, electronic device, and storage medium for creating virtual directory
US9704137B2 (en) 2013-09-13 2017-07-11 Box, Inc. Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
US9213684B2 (en) 2013-09-13 2015-12-15 Box, Inc. System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
US9535909B2 (en) 2013-09-13 2017-01-03 Box, Inc. Configurable event-based automation architecture for cloud-based collaboration platforms
US10509527B2 (en) 2013-09-13 2019-12-17 Box, Inc. Systems and methods for configuring event-based automation in cloud-based collaboration platforms
GB2518298A (en) 2013-09-13 2015-03-18 Box Inc High-availability architecture for a cloud-based concurrent-access collaboration platform
WO2015042901A1 (en) 2013-09-29 2015-04-02 Microsoft Technology Licensing, Llc Media presentation effects
US9727636B2 (en) 2013-09-30 2017-08-08 Microsoft Technology Licensing, Llc Generating excutable code from complaint and non-compliant controls
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
CN105849675B (zh) 2013-10-30 2019-09-24 苹果公司 显示相关的用户界面对象
US9569070B1 (en) * 2013-11-11 2017-02-14 Palantir Technologies, Inc. Assisting in deconflicting concurrency conflicts
US9423927B2 (en) * 2013-12-04 2016-08-23 Cellco Partnership Managing user interface elements using gestures
USD827654S1 (en) * 2013-12-20 2018-09-04 Sony Corporation Wearable player with graphical user interface
US9378276B1 (en) * 2014-01-03 2016-06-28 Google Inc. Systems and methods for generating navigation filters
US20150212662A1 (en) * 2014-01-30 2015-07-30 Unisys Corporation Dropdown mode command button
US9009827B1 (en) 2014-02-20 2015-04-14 Palantir Technologies Inc. Security sharing system
US10431259B2 (en) * 2014-04-23 2019-10-01 Sony Corporation Systems and methods for reviewing video content
US10452484B2 (en) * 2014-05-15 2019-10-22 Carbonite, Inc. Systems and methods for time-based folder restore
US10331297B2 (en) * 2014-05-30 2019-06-25 Apple Inc. Device, method, and graphical user interface for navigating a content hierarchy
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US9602514B2 (en) 2014-06-16 2017-03-21 Box, Inc. Enterprise mobility management and verification of a managed application by a content provider
USD776143S1 (en) * 2014-06-23 2017-01-10 Sartorius Stedim Biotech Gmbh Display with a graphical user interface
US10261659B2 (en) * 2014-06-25 2019-04-16 Oracle International Corporation Orbit visualization for displaying hierarchical data
TWI570626B (zh) * 2014-06-30 2017-02-11 廣達電腦股份有限公司 虛擬檔案分享方法
US10572496B1 (en) 2014-07-03 2020-02-25 Palantir Technologies Inc. Distributed workflow system and database with access controls for city resiliency
US20160019268A1 (en) * 2014-07-18 2016-01-21 Kobo Inc. User-interface for providing a stack view of an e-book collection
US20160041698A1 (en) * 2014-08-05 2016-02-11 Vladimlr Tkach Enhanced Object Organization in a Container
US10574442B2 (en) 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
EP3156864B1 (en) * 2014-09-04 2019-11-13 Yamazaki Mazak Corporation Device having menu display function
US20160078474A1 (en) * 2014-09-15 2016-03-17 DataLlogix, Inc. Apparatus and methods for measurement of campaign effectiveness
WO2016065567A1 (en) 2014-10-30 2016-05-06 Microsoft Technology Licensing, Llc Authoring tools for synthesizing hybrid slide-canvas presentations
EP3021209A1 (en) * 2014-11-14 2016-05-18 Dot Hill Systems Corporation Method and apparatus for processing slow infrequent streams
US10963126B2 (en) * 2014-12-10 2021-03-30 D2L Corporation Method and system for element navigation
US10955992B2 (en) * 2015-01-22 2021-03-23 NetSuite Inc. System and methods for implementing visual interface for use in sorting and organizing records
US10013433B2 (en) 2015-02-24 2018-07-03 Canon Kabushiki Kaisha Virtual file system
US10528345B2 (en) * 2015-03-27 2020-01-07 Intel Corporation Instructions and logic to provide atomic range modification operations
US10719220B2 (en) * 2015-03-31 2020-07-21 Autodesk, Inc. Dynamic scrolling
US20160314180A1 (en) * 2015-04-27 2016-10-27 Honeywell International Inc. System of dynamic hierarchies based on a searchable entity model
USD769287S1 (en) * 2015-04-27 2016-10-18 Vericle Corporation Computer screen with practice health monitor and radar graphical user interface
KR20160139810A (ko) * 2015-05-28 2016-12-07 삼성전자주식회사 의료 영상 디스플레이 장치 및 그에 따른 의료 영상 디스플레이 방법
EP3329354A4 (en) * 2015-07-31 2019-03-20 WiseTech Global Limited METHOD AND SYSTEMS FOR GENERATING CONFIGURABLE FORMS, CONFIGURING FORMS AND FORM FLOW AND FORM CORRELATION
US10609171B2 (en) * 2015-12-22 2020-03-31 Intel IP Corporation Methods and apparatus to improve interprocess communication
US11971860B2 (en) 2015-12-28 2024-04-30 Dropbox, Inc. Embedded folder views
US10621198B1 (en) 2015-12-30 2020-04-14 Palantir Technologies Inc. System and method for secure database replication
CN108463784B (zh) 2016-01-15 2022-03-25 皮尔森教育有限公司 用于交互式演示控制的系统和方法
EP3430527A4 (en) * 2016-03-11 2019-11-06 Saliba, Jad, John SYSTEMS AND METHOD FOR DISPLAYING DIGITAL FORENSIC EVIDENCE
US20170285889A1 (en) * 2016-04-05 2017-10-05 Microsoft Technology Licensing, Llc Scenario based pinning in a collaboration environment
US10262006B2 (en) 2016-04-29 2019-04-16 Microsoft Technology Licensing, Llc Contextually triggered entry point
DK201670595A1 (en) 2016-06-11 2018-01-22 Apple Inc Configuring context-specific user interfaces
US11816325B2 (en) 2016-06-12 2023-11-14 Apple Inc. Application shortcuts for carplay
AU2017100670C4 (en) 2016-06-12 2019-11-21 Apple Inc. User interfaces for retrieving contextually relevant media content
US11734228B2 (en) 2016-06-24 2023-08-22 Yildirim YAZGANARIKAN Visual file manager
US11074219B2 (en) * 2016-06-24 2021-07-27 Yildirim YAZGANARIKAN Visual file manager
US10353548B2 (en) * 2016-07-11 2019-07-16 International Business Machines Corporation Random access to properties for lists in user interfaces
USD934269S1 (en) * 2016-08-23 2021-10-26 Workiva Inc. Display screen or portion thereof with animated graphical user interface
WO2018081628A1 (en) * 2016-10-28 2018-05-03 Roam Analytics, Inc. Dataset networking and database modeling
WO2018081633A1 (en) 2016-10-28 2018-05-03 Roam Analytics, Inc. Semantic parsing engine
US10606924B2 (en) 2016-11-18 2020-03-31 Microsoft Technology Licensing, Llc Contextual file manager
US10162566B2 (en) 2016-11-22 2018-12-25 Pure Storage, Inc. Accumulating application-level statistics in a storage system
US11620075B2 (en) 2016-11-22 2023-04-04 Pure Storage, Inc. Providing application aware storage
US10262053B2 (en) 2016-12-22 2019-04-16 Palantir Technologies Inc. Systems and methods for data replication synchronization
US10705889B2 (en) 2016-12-27 2020-07-07 Dropbox, Inc. Kernel event triggers
US10521397B2 (en) * 2016-12-28 2019-12-31 Hyland Switzerland Sarl System and methods of proactively searching and continuously monitoring content from a plurality of data sources
US10417183B2 (en) * 2017-03-14 2019-09-17 Salesforce.Com, Inc. Database and file structure configurations for managing text strings to be provided by a graphical user interface
US10068002B1 (en) 2017-04-25 2018-09-04 Palantir Technologies Inc. Systems and methods for adaptive data replication
TWD192856S (zh) * 2017-04-28 2018-09-11 陳永晏 Graphical user interface of the display
US20180335902A1 (en) * 2017-05-16 2018-11-22 Apple Inc. Techniques for dynamically displaying relevant files for selection
US10430062B2 (en) 2017-05-30 2019-10-01 Palantir Technologies Inc. Systems and methods for geo-fenced dynamic dissemination
US11030494B1 (en) 2017-06-15 2021-06-08 Palantir Technologies Inc. Systems and methods for managing data spills
CN107562347B (zh) * 2017-09-07 2021-04-13 北京小米移动软件有限公司 显示对象的方法和装置
US10331623B2 (en) 2017-10-16 2019-06-25 Dropbox, Inc. Workflow functions of content management system enforced by client device
JP7027800B2 (ja) * 2017-10-23 2022-03-02 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US11741300B2 (en) 2017-11-03 2023-08-29 Dropbox, Inc. Embedded spreadsheet data implementation and synchronization
US10380196B2 (en) 2017-12-08 2019-08-13 Palantir Technologies Inc. Systems and methods for using linked documents
US10866926B2 (en) 2017-12-08 2020-12-15 Dropbox, Inc. Hybrid search interface
US10915542B1 (en) 2017-12-19 2021-02-09 Palantir Technologies Inc. Contextual modification of data sharing constraints in a distributed database system that uses a multi-master replication scheme
US10346284B1 (en) * 2018-01-11 2019-07-09 Microsoft Technology Licensing, Llc Feature usage prediction using shell application feature telemetry
JP7094703B2 (ja) * 2018-01-15 2022-07-04 キヤノン株式会社 画像形成装置、画像形成方法及びプログラム
USD924884S1 (en) * 2018-02-28 2021-07-13 Siemens Medical Solutions Usa, Inc. Touch screen with graphical user interface
US11145096B2 (en) * 2018-03-07 2021-10-12 Samsung Electronics Co., Ltd. System and method for augmented reality interaction
US10684764B2 (en) * 2018-03-28 2020-06-16 Microsoft Technology Licensing, Llc Facilitating movement of objects using semantic analysis and target identifiers
US11112948B2 (en) 2018-04-27 2021-09-07 Dropbox, Inc. Dynamic preview in a file browser interface
US11249950B2 (en) * 2018-04-27 2022-02-15 Dropbox, Inc. Aggregated details displayed within file browser interface
US11151086B2 (en) 2018-04-27 2021-10-19 Dropbox, Inc. Comment previews displayed in context within content item
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10471297B1 (en) 2018-05-16 2019-11-12 Hydrow, Inc. Rowing
WO2019236348A1 (en) * 2018-06-03 2019-12-12 Dakiana Research Llc Method and device for presenting a synthesized reality user interface
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
US11199944B2 (en) * 2018-09-24 2021-12-14 Salesforce.Com, Inc. System and method for navigation within widget-sized browser panels
US11308109B2 (en) * 2018-10-12 2022-04-19 International Business Machines Corporation Transfer between different combinations of source and destination nodes
USD929431S1 (en) * 2019-01-17 2021-08-31 Bae Systems Controls Inc. Display screen or portion thereof with animated graphical user interface
CN109981881B (zh) * 2019-01-21 2021-02-26 华为技术有限公司 一种图像分类的方法和电子设备
US11113270B2 (en) 2019-01-24 2021-09-07 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
JP2022526242A (ja) 2019-03-11 2022-05-24 パレクセル・インターナショナル・エルエルシー テキストドキュメントのアノテーションのための方法、装置、およびシステム
US10809994B1 (en) * 2019-04-05 2020-10-20 Sap Se Declarative multi-artefact software installation
US11113249B2 (en) 2019-04-05 2021-09-07 Sap Se Multitenant application server using a union file system
US11232078B2 (en) 2019-04-05 2022-01-25 Sap Se Multitenancy using an overlay file system
US10942723B2 (en) 2019-04-05 2021-03-09 Sap Se Format for multi-artefact software packages
US10956140B2 (en) 2019-04-05 2021-03-23 Sap Se Software installation through an overlay file system
US11675476B2 (en) 2019-05-05 2023-06-13 Apple Inc. User interfaces for widgets
US10828531B1 (en) 2019-05-30 2020-11-10 Hydrow, Inc. Rowing exercise machines having a configurable rowing feel
US11150783B1 (en) * 2019-07-29 2021-10-19 Jason Kim GUI based methods and systems for working with large numbers of interactive items
CN110809024B (zh) * 2019-09-27 2022-06-24 口碑(上海)信息技术有限公司 服务资源的提供方法及装置,订阅套餐提供方法及装置
US11487411B2 (en) * 2020-02-20 2022-11-01 Servicenow, Inc. Context-driven group pill in a user interface
US11947549B2 (en) * 2020-04-10 2024-04-02 Dropbox, Inc. Generating modified view based on identified subset of content items and providing modified view to user associated with user account for display
CN111597323B (zh) * 2020-04-16 2023-06-02 RealMe重庆移动通信有限公司 关键字段过滤方法、装置、存储介质及电子设备
US11599546B2 (en) * 2020-05-01 2023-03-07 EMC IP Holding Company LLC Stream browser for data streams
US11604759B2 (en) 2020-05-01 2023-03-14 EMC IP Holding Company LLC Retention management for data streams
US11829953B1 (en) 2020-05-01 2023-11-28 Monday.com Ltd. Digital processing systems and methods for managing sprints using linked electronic boards
US11501255B2 (en) 2020-05-01 2022-11-15 Monday.com Ltd. Digital processing systems and methods for virtual file-based electronic white board in collaborative work systems
US11620329B2 (en) * 2020-06-19 2023-04-04 Apple Inc. Virtual photos library
US20220019340A1 (en) * 2020-07-15 2022-01-20 yuchen du Social knowledge graph for collective learning
US11599420B2 (en) 2020-07-30 2023-03-07 EMC IP Holding Company LLC Ordered event stream event retention
US11229825B1 (en) 2020-08-24 2022-01-25 Hydrow, Inc. Rank listing of competitive performances of exercise on a machine
JP2022052179A (ja) * 2020-09-23 2022-04-04 富士フイルムビジネスイノベーション株式会社 ファイル管理装置およびプログラム
US11513871B2 (en) 2020-09-30 2022-11-29 EMC IP Holding Company LLC Employing triggered retention in an ordered event stream storage system
US11537661B2 (en) * 2020-10-02 2022-12-27 PolyAI Limited Systems and methods for conversing with a user
US11755555B2 (en) 2020-10-06 2023-09-12 EMC IP Holding Company LLC Storing an ordered associative array of pairs using an append-only storage medium
US11599293B2 (en) 2020-10-14 2023-03-07 EMC IP Holding Company LLC Consistent data stream replication and reconstruction in a streaming data storage platform
USD983813S1 (en) * 2020-11-12 2023-04-18 Life Technologies Corporation Cell counter display screen with graphical user interface
US11803690B2 (en) * 2021-01-11 2023-10-31 Microsoft Technology Licensing, Llc Simulated thumbnail previews for files
US11816065B2 (en) 2021-01-11 2023-11-14 EMC IP Holding Company LLC Event level retention management for data streams
US11782582B2 (en) 2021-01-14 2023-10-10 Monday.com Ltd. Digital processing systems and methods for detectable codes in presentation enabling targeted feedback in collaborative work systems
US11687538B2 (en) * 2021-03-08 2023-06-27 Microsoft Technology Licensing, Llc Multi-data store content identification and display interface
US11740828B2 (en) 2021-04-06 2023-08-29 EMC IP Holding Company LLC Data expiration for stream storages
US11954537B2 (en) 2021-04-22 2024-04-09 EMC IP Holding Company LLC Information-unit based scaling of an ordered event stream
US11954303B2 (en) * 2021-05-17 2024-04-09 Apple Inc. Ephemeral navigation bar
US11681460B2 (en) 2021-06-03 2023-06-20 EMC IP Holding Company LLC Scaling of an ordered event stream based on a writer group characteristic
US11735282B2 (en) 2021-07-22 2023-08-22 EMC IP Holding Company LLC Test data verification for an ordered event stream storage system
JP2023018734A (ja) * 2021-07-28 2023-02-09 セイコーエプソン株式会社 表示方法、及び、表示装置
CN113593479B (zh) * 2021-09-27 2022-01-07 华兴源创(成都)科技有限公司 一种显示面板子像素级mura补偿方法
US11971850B2 (en) 2021-10-15 2024-04-30 EMC IP Holding Company LLC Demoted data retention via a tiered ordered event stream data storage system
US20230185768A1 (en) * 2021-12-11 2023-06-15 Dropbox, Inc. Classifying and organizing digital content items automatically utilizing content item classification models
EP4227826A1 (en) * 2022-02-10 2023-08-16 Gregor Zebic Method and system for processing and arranging data items
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes

Family Cites Families (507)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US156895A (en) * 1874-11-17 Improvement in tram-staffs for truing millstones
US117422A (en) * 1871-07-25 Improvement in elastic tires for traction-engines
US88374A (en) * 1869-03-30 Improvement in cotton-gins
US215600A (en) * 1879-05-20 Improvement in protecting wooden piles
US30731A (en) * 1860-11-27 Improvement in sewing-machines
US177422A (en) * 1876-05-16 Improvement in lanterns
US34771A (en) * 1862-03-25 parmenter
US233419A (en) * 1880-10-19 jones
US220899A (en) * 1879-10-21 Improvement in car-couplings
US192953A (en) * 1877-07-10 A hptci wnp o
US135495A (en) * 1873-02-04 Improvement in finger-bars for harvesters
US120505A (en) * 1871-10-31 Improvement in mill-stone dressings
SE7813440L (sv) 1977-12-29 1979-06-30 Kobe Steel Ltd Pulverbagsvetsning med multipelelektrod
JPS55108075A (en) 1979-02-09 1980-08-19 Sharp Corp Data retrieval system
US4829423A (en) 1983-01-28 1989-05-09 Texas Instruments Incorporated Menu-based natural language understanding system
JPS6410300A (en) 1987-07-03 1989-01-13 Hitachi Ltd User's interface system for searching
US4881179A (en) 1988-03-11 1989-11-14 International Business Machines Corp. Method for providing information security protocols to an electronic calendar
US5060135A (en) 1988-09-16 1991-10-22 Wang Laboratories, Inc. Apparatus for manipulating documents in a data processing system utilizing reduced images of sheets of information which are movable
US6024843A (en) 1989-05-22 2000-02-15 Novellus Systems, Inc. Sputtering apparatus with a rotating magnet array having a geometry for specified target erosion profile
FR2647239B1 (fr) 1989-05-22 1991-07-05 Bull Sa Procede de generation d'interfaces pour applications-utilisateurs visualisables sur l'ecran d'un systeme informatique et dispositif pour mettre en oeuvre ledit procede
US5241671C1 (en) * 1989-10-26 2002-07-02 Encyclopaedia Britannica Educa Multimedia search system using a plurality of entry path means which indicate interrelatedness of information
US5513306A (en) * 1990-08-09 1996-04-30 Apple Computer, Inc. Temporal event viewing and editing system
US5388196A (en) 1990-09-07 1995-02-07 Xerox Corporation Hierarchical shared books with database
US5327529A (en) 1990-09-24 1994-07-05 Geoworks Process of designing user's interfaces for application programs
US5333315A (en) 1991-06-27 1994-07-26 Digital Equipment Corporation System of device independent file directories using a tag between the directories and file descriptors that migrate with the files
US5504852A (en) 1991-09-09 1996-04-02 Apple Computer, Inc. Method for creating a collection of aliases representing computer system files
JP3303926B2 (ja) 1991-09-27 2002-07-22 富士ゼロックス株式会社 構造化文書分類装置及び方法
US5461710A (en) * 1992-03-20 1995-10-24 International Business Machines Corporation Method for providing a readily distinguishable template and means of duplication thereof in a computer system graphical user interface
US5333266A (en) 1992-03-27 1994-07-26 International Business Machines Corporation Method and apparatus for message handling in computer systems
US5416895A (en) 1992-04-08 1995-05-16 Borland International, Inc. System and methods for improved spreadsheet interface with user-familiar objects
AU3969093A (en) 1992-04-30 1993-11-29 Apple Computer, Inc. Method and apparatus for organizing information in a computer system
FR2694105B1 (fr) 1992-07-22 1994-11-25 Bull Sa Utilisation d'un langage à interprète embarqué pour la réalisation d'un outil interactif de définition d'interface utilisateurs.
DE69328522T2 (de) * 1992-08-27 2001-01-11 Sun Microsystems Inc Verfahren und Vorrichtung zur Benutzung von Browsern für Sammlungen
JP2525546B2 (ja) 1992-09-08 1996-08-21 インターナショナル・ビジネス・マシーンズ・コーポレイション グラフィックリソ―ス・エディタ
US6947959B1 (en) 1992-10-01 2005-09-20 Quark, Inc. Digital media asset management system and process
AU5670394A (en) 1992-11-23 1994-06-22 Paragon Concepts, Inc. Computer filing system with user selected categories to provide file access
US5559948A (en) 1992-12-23 1996-09-24 International Business Machines Corporation Apparatus and method for manipulating an object in a computer system graphical user interface
EP0676067B1 (en) 1992-12-23 1997-04-23 Otlc Dialog system
AU5960594A (en) 1992-12-28 1994-07-19 Apple Computer, Inc. File translation system
US5864844A (en) 1993-02-18 1999-01-26 Apple Computer, Inc. System and method for enhancing a user interface with a computer based training tool
US5420605A (en) 1993-02-26 1995-05-30 Binar Graphics, Inc. Method of resetting a computer video display mode
US5598524A (en) * 1993-03-03 1997-01-28 Apple Computer, Inc. Method and apparatus for improved manipulation of data between an application program and the files system on a computer-controlled display system
US5596702A (en) 1993-04-16 1997-01-21 International Business Machines Corporation Method and system for dynamically sharing user interface displays among a plurality of application program
US5710926A (en) 1993-09-03 1998-01-20 Maurer; Joseph Clark Developers tool for object-oriented programming
US5499364A (en) 1993-10-14 1996-03-12 Digital Equipment Corporation System and method for optimizing message flows between agents in distributed computations
US6243071B1 (en) * 1993-11-03 2001-06-05 Apple Computer, Inc. Tool set for navigating through an electronic book
US6339767B1 (en) * 1997-06-02 2002-01-15 Aurigin Systems, Inc. Using hyperbolic trees to visualize data generated by patent-centric and group-oriented data processing
WO1995020794A1 (en) 1994-01-27 1995-08-03 Minnesota Mining And Manufacturing Company Software notes
US7106843B1 (en) 1994-04-19 2006-09-12 T-Netix, Inc. Computer-based method and apparatus for controlling, monitoring, recording and reporting telephone access
US6453311B1 (en) * 1994-05-06 2002-09-17 Apple Computer, Inc. System and method for performing context checks
WO1995031776A1 (en) 1994-05-16 1995-11-23 Apple Computer, Inc. Pattern and color abstraction in a graphical user interface
US5546527A (en) 1994-05-23 1996-08-13 International Business Machines Corporation Overriding action defaults in direct manipulation of objects on a user interface by hovering a source object
EP0684716B1 (en) 1994-05-25 2002-02-27 International Business Machines Corporation A data communication network and method for operating said network
US5680563A (en) * 1994-07-25 1997-10-21 Object Technology Licensing Corporation Object-oriented operating system enhancement for filtering items in a window
US5625783A (en) 1994-12-13 1997-04-29 Microsoft Corporation Automated system and method for dynamic menu construction in a graphical user interface
US5831606A (en) * 1994-12-13 1998-11-03 Microsoft Corporation Shell extensions for an operating system
US5956715A (en) 1994-12-13 1999-09-21 Microsoft Corporation Method and system for controlling user access to a resource in a networked computing environment
SE503936C2 (sv) 1995-02-01 1996-09-30 Etp Transmission Ab Hydraulisk spännbussning med sigmaformade gavlar
US5550852A (en) 1995-02-10 1996-08-27 Opto Power Corporation Laser package with reversed laser diode
JPH08263664A (ja) 1995-03-22 1996-10-11 Honda Motor Co Ltd 人工的視覚システム及びイメージ認識方法
US5696486A (en) 1995-03-29 1997-12-09 Cabletron Systems, Inc. Method and apparatus for policy-based alarm notification in a distributed network management environment
US5675520A (en) 1995-03-30 1997-10-07 Microsoft Corporation Method for extending a common user interface
US5721908A (en) 1995-06-07 1998-02-24 International Business Machines Corporation Computer network for WWW server data access over internet
US5838317A (en) 1995-06-30 1998-11-17 Microsoft Corporation Method and apparatus for arranging displayed graphical representations on a computer interface
US5907837A (en) 1995-07-17 1999-05-25 Microsoft Corporation Information retrieval system in an on-line network including separate content and layout of published titles
US6535230B1 (en) 1995-08-07 2003-03-18 Apple Computer, Inc. Graphical user interface providing consistent behavior for the dragging and dropping of content objects
US5929854A (en) * 1995-11-30 1999-07-27 Ross; Michael M. Dialog box method and system for arranging document windows
US5867163A (en) * 1995-12-01 1999-02-02 Silicon Graphics, Inc. Graphical user interface for defining and invoking user-customized tool shelf execution sequence
US5628309A (en) * 1996-01-25 1997-05-13 Raya Systems, Inc. Meter for electrically measuring and recording injection syringe doses
US6014137A (en) 1996-02-27 2000-01-11 Multimedia Adventures Electronic kiosk authoring system
US6405265B1 (en) 1996-05-08 2002-06-11 Mijenix Corporation Device driver for accessing computer files
US5907703A (en) 1996-05-08 1999-05-25 Mijenix Corporation Device driver for accessing computer files
US5870088A (en) 1996-05-09 1999-02-09 National Instruments Corporation System and method for editing a control via direct graphical user interaction
US5760770A (en) 1996-05-15 1998-06-02 Microsoft Corporation System and method for defining a view to display data
US6768999B2 (en) 1996-06-28 2004-07-27 Mirror Worlds Technologies, Inc. Enterprise, stream-based, information management system
US6006227A (en) 1996-06-28 1999-12-21 Yale University Document stream operating system
US6021262A (en) 1996-07-12 2000-02-01 Microsoft Corporation System and method for detection of, notification of, and automated repair of problem conditions in a messaging system
US5757925A (en) * 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method
US5923328A (en) 1996-08-07 1999-07-13 Microsoft Corporation Method and system for displaying a hierarchical sub-tree by selection of a user interface element in a sub-tree bar control
US6025843A (en) * 1996-09-06 2000-02-15 Peter Sklar Clustering user interface
US5790121A (en) * 1996-09-06 1998-08-04 Sklar; Peter Clustering user interface
US5878410A (en) 1996-09-13 1999-03-02 Microsoft Corporation File system sort order indexes
US5828376A (en) 1996-09-23 1998-10-27 J. D. Edwards World Source Company Menu control in a graphical user interface
US6101509A (en) 1996-09-27 2000-08-08 Apple Computer, Inc. Method and apparatus for transmitting documents over a network
DE69721424T2 (de) 1996-09-30 2004-05-06 Kabushiki Kaisha Toshiba, Kawasaki Vorrichtung und Verfahren zum Edieren einer graphischen Benutzerschnittstelle
JP3658471B2 (ja) 1996-09-30 2005-06-08 株式会社日立製作所 電子ショッピングシステムにおける買物かご機能の提示方法及び電子ショッピングシステム
US5875448A (en) 1996-10-08 1999-02-23 Boys; Donald R. Data stream editing system including a hand-held voice-editing apparatus having a position-finding enunciator
US6918096B2 (en) 1996-11-07 2005-07-12 Thebrain Technologies, Corp. Method and apparatus for displaying a network of thoughts from a thought's perspective
US6037944A (en) * 1996-11-07 2000-03-14 Natrificial Llc Method and apparatus for displaying a thought network from a thought's perspective
US6544295B1 (en) 1996-11-18 2003-04-08 Starfish Software, Inc. Methods for managing preferred internet sites in a computer system having a browser
US5987506A (en) 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US20060129627A1 (en) 1996-11-22 2006-06-15 Mangosoft Corp. Internet-based shared file service with native PC client access and semantics and distributed version control
US5909540A (en) 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
CA2272708A1 (en) 1996-11-27 1998-06-04 Kurt E. Godwin File directory and file navigation system
US5935210A (en) 1996-11-27 1999-08-10 Microsoft Corporation Mapping the structure of a collection of computer resources
US6061695A (en) * 1996-12-06 2000-05-09 Microsoft Corporation Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document
US6023708A (en) 1997-05-29 2000-02-08 Visto Corporation System and method for using a global translator to synchronize workspace elements across a network
US5835094A (en) * 1996-12-31 1998-11-10 Compaq Computer Corporation Three-dimensional computer environment
US6160552A (en) 1997-01-09 2000-12-12 Sun Microsystems, Inc. Method and apparatus for managing multiple hierarchical lists within a browser
US6944819B2 (en) 1997-01-10 2005-09-13 Eastman-Kodak Company Computer method and apparatus for previewing files outside of an application program
US5933139A (en) * 1997-01-31 1999-08-03 Microsoft Corporation Method and apparatus for creating help functions
US5875446A (en) 1997-02-24 1999-02-23 International Business Machines Corporation System and method for hierarchically grouping and ranking a set of objects in a query context based on one or more relationships
US7062500B1 (en) 1997-02-25 2006-06-13 Intertrust Technologies Corp. Techniques for defining, using and manipulating rights management data structures
US6144968A (en) * 1997-03-04 2000-11-07 Zellweger; Paul Method and apparatus for menu access to information objects indexed by hierarchically-coded keywords
US5930801A (en) 1997-03-07 1999-07-27 Xerox Corporation Shared-data environment in which each file has independent security properties
US6175364B1 (en) 1997-04-01 2001-01-16 Sun Microsystems, Inc. Framework and method for interfacing a GUI, container with a GUI component
US6317142B1 (en) * 1997-04-04 2001-11-13 Avid Technology, Inc. Taxonomy of objects and a system of non-modal property inspectors
JPH10301938A (ja) * 1997-04-22 1998-11-13 Canon Inc 画像処理装置およびその方法、画像処理システム、記憶媒体
US6057844A (en) 1997-04-28 2000-05-02 Adobe Systems Incorporated Drag operation gesture controller
US6016692A (en) 1997-04-28 2000-01-25 Seagate Technology, Inc. Glide test slider having electrically isolated piezoelectric crystal for improved noise suppression
EP2278503A3 (en) 1997-04-30 2011-04-20 Sony Corporation Browser apparatus with address registering and browser system
US5924090A (en) 1997-05-01 1999-07-13 Northern Light Technology Llc Method and apparatus for searching a database of records
US7631012B2 (en) * 1997-05-22 2009-12-08 Computer Associates Think, Inc. System and method of operating a database
US6268852B1 (en) 1997-06-02 2001-07-31 Microsoft Corporation System and method for facilitating generation and editing of event handlers
US5987454A (en) 1997-06-09 1999-11-16 Hobbs; Allen Method and apparatus for selectively augmenting retrieved text, numbers, maps, charts, still pictures and/or graphics, moving pictures and/or graphics and audio information from a network resource
US6055540A (en) 1997-06-13 2000-04-25 Sun Microsystems, Inc. Method and apparatus for creating a category hierarchy for classification of documents
US5899995A (en) 1997-06-30 1999-05-04 Intel Corporation Method and apparatus for automatically organizing information
US6573907B1 (en) 1997-07-03 2003-06-03 Obvious Technology Network distribution and management of interactive video and multi-media containers
US6208985B1 (en) 1997-07-09 2001-03-27 Caseventure Llc Data refinery: a direct manipulation user interface for data querying with integrated qualitative and quantitative graphical representations of query construction and query result presentation
US5886694A (en) 1997-07-14 1999-03-23 Microsoft Corporation Method for automatically laying out controls in a dialog window
GB2327564A (en) 1997-07-16 1999-01-27 Ibm Apparatus and method for accessing a data file in a data communication network
US6182068B1 (en) 1997-08-01 2001-01-30 Ask Jeeves, Inc. Personalized search methods
US5877766A (en) 1997-08-15 1999-03-02 International Business Machines Corporation Multi-node user interface component and method thereof for use in accessing a plurality of linked records
US6249866B1 (en) 1997-09-16 2001-06-19 Microsoft Corporation Encrypting file system and method
US6279016B1 (en) 1997-09-21 2001-08-21 Microsoft Corporation Standardized filtering control techniques
US6301586B1 (en) 1997-10-06 2001-10-09 Canon Kabushiki Kaisha System for managing multimedia objects
US6237011B1 (en) 1997-10-08 2001-05-22 Caere Corporation Computer-based document management system
US6810404B1 (en) 1997-10-08 2004-10-26 Scansoft, Inc. Computer-based document management system
US6202061B1 (en) * 1997-10-24 2001-03-13 Pictra, Inc. Methods and apparatuses for creating a collection of media
US6097389A (en) * 1997-10-24 2000-08-01 Pictra, Inc. Methods and apparatuses for presenting a collection of digital media in a media container
US6061692A (en) * 1997-11-04 2000-05-09 Microsoft Corporation System and method for administering a meta database as an integral component of an information server
US6359892B1 (en) 1997-11-04 2002-03-19 Inventions, Inc. Remote access, emulation, and control of office equipment, devices and services
US6216122B1 (en) 1997-11-19 2001-04-10 Netscape Communications Corporation Electronic mail indexing folder having a search scope and interval
US6055543A (en) 1997-11-21 2000-04-25 Verano File wrapper containing cataloging information for content searching across multiple platforms
US6275829B1 (en) 1997-11-25 2001-08-14 Microsoft Corporation Representing a graphic image on a web page with a thumbnail-sized image
US6401097B1 (en) 1998-01-23 2002-06-04 Mccotter Thomas M. System and method for integrated document management and related transmission and access
US6003040A (en) 1998-01-23 1999-12-14 Mital; Vijay Apparatus and method for storing, navigating among and adding links between data items in computer databases
US6807632B1 (en) 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
US6078924A (en) 1998-01-30 2000-06-20 Aeneid Corporation Method and apparatus for performing data collection, interpretation and analysis, in an information platform
US6061059A (en) 1998-02-06 2000-05-09 Adobe Systems Incorporated Providing a preview capability to a graphical user interface dialog
US6237004B1 (en) 1998-02-24 2001-05-22 International Business Machines Corporation System and method for displaying data using graphical user interface control elements
US6065012A (en) 1998-02-27 2000-05-16 Microsoft Corporation System and method for displaying and manipulating user-relevant data
US6784925B1 (en) 1998-03-24 2004-08-31 Canon Kabushiki Kaisha System to manage digital camera images
US6128623A (en) 1998-04-15 2000-10-03 Inktomi Corporation High performance object cache
US7756892B2 (en) 2000-05-02 2010-07-13 Digimarc Corporation Using embedded data with file sharing
US6240407B1 (en) 1998-04-29 2001-05-29 International Business Machines Corp. Method and apparatus for creating an index in a database system
US6473100B1 (en) 1998-05-20 2002-10-29 Microsoft Corporation Hosting controls in a window via an interface for controlling the window
US6496203B1 (en) 1998-05-27 2002-12-17 Microsoft Corporation Standardized and application-independent graphical user interface components implemented with web technology
JP2002517863A (ja) 1998-06-11 2002-06-18 ボードウォーク アクチェンゲゼルシャフト エンティティ間のリレーショナル・パターンを提供するためのシステム、方法、およびコンピュータ・プログラム製品
US6326953B1 (en) 1998-06-24 2001-12-04 Microsoft Corporation Method for converting text corresponding to one keyboard mode to text corresponding to another keyboard mode
US6256031B1 (en) * 1998-06-26 2001-07-03 Microsoft Corporation Integration of physical and virtual namespace
US6466238B1 (en) 1998-06-30 2002-10-15 Microsoft Corporation Computer operating system that defines default document folder for application programs
US6181342B1 (en) * 1998-07-06 2001-01-30 International Business Machines Corp. Computer file directory system displaying visual summaries of visual data in desktop computer documents for quickly identifying document content
US7278106B1 (en) 1998-07-14 2007-10-02 Computer Associates Think, Inc. Method and apparatus for interacting with a source code control system
US6363377B1 (en) 1998-07-30 2002-03-26 Sarnoff Corporation Search data processor
JP3792405B2 (ja) 1998-08-10 2006-07-05 富士通株式会社 ファイル操作装置およびファイル操作プログラムを記録した記録媒体
US6466932B1 (en) 1998-08-14 2002-10-15 Microsoft Corporation System and method for implementing group policy
US6324551B1 (en) 1998-08-31 2001-11-27 Xerox Corporation Self-contained document management based on document properties
US6240421B1 (en) * 1998-09-08 2001-05-29 Edwin J. Stolarz System, software and apparatus for organizing, storing and retrieving information from a computer database
US6356863B1 (en) 1998-09-08 2002-03-12 Metaphorics Llc Virtual network file server
US6373507B1 (en) * 1998-09-14 2002-04-16 Microsoft Corporation Computer-implemented image acquistion system
US20020054096A1 (en) 1998-09-17 2002-05-09 Robert P. Thomas Man-machine interface for a custom tabular display
US6803926B1 (en) 1998-09-18 2004-10-12 Microsoft Corporation System and method for dynamically adjusting data values and enforcing valid combinations of the data in response to remote user input
CA2345241A1 (en) 1998-09-22 2000-03-30 Science Applications International Corporation User-defined dynamic collaborative environments
US6271846B1 (en) 1998-09-30 2001-08-07 International Business Machines Corporation Method for reanchoring branches within a directory tree
US8332478B2 (en) 1998-10-01 2012-12-11 Digimarc Corporation Context sensitive connected content
JP2000112797A (ja) 1998-10-02 2000-04-21 Nippon Telegr & Teleph Corp <Ntt> ビューディレクトリ処理方法および装置とビューディレクトリ処理プログラムを記録した記録媒体
US6342907B1 (en) 1998-10-19 2002-01-29 International Business Machines Corporation Specification language for defining user interface panels that are platform-independent
US6134568A (en) 1998-10-30 2000-10-17 Kinko's Ventures, Inc. Previewing an assembled document
US6341280B1 (en) * 1998-10-30 2002-01-22 Netscape Communications Corporation Inline tree filters
US7730089B2 (en) 1998-11-16 2010-06-01 Punch Networks Corporation Method and system for providing remote access to the facilities of a server computer
US6823344B1 (en) 1998-12-03 2004-11-23 International Business Machines Corporation File manager system providing faster and more efficient interactive user access to files in computer displays
US20030097361A1 (en) 1998-12-07 2003-05-22 Dinh Truong T Message center based desktop systems
US6571245B2 (en) 1998-12-07 2003-05-27 Magically, Inc. Virtual desktop in a computer network
US6330007B1 (en) 1998-12-18 2001-12-11 Ncr Corporation Graphical user interface (GUI) prototyping and specification tool
US6480835B1 (en) 1998-12-31 2002-11-12 Intel Corporation Method and system for searching on integrated metadata
US6762777B2 (en) * 1998-12-31 2004-07-13 International Business Machines Corporation System and method for associating popup windows with selective regions of a document
US6751604B2 (en) 1999-01-06 2004-06-15 Hewlett-Packard Development Company, L.P. Method of displaying temporal and storage media relationships of file names protected on removable storage media
US6147601A (en) 1999-01-09 2000-11-14 Heat - Timer Corp. Electronic message delivery system utilizable in the monitoring of remote equipment and method of same
US6628309B1 (en) 1999-02-05 2003-09-30 International Business Machines Corporation Workspace drag and drop
US6411311B1 (en) 1999-02-09 2002-06-25 International Business Machines Corporation User interface for transferring items between displayed windows
US6356915B1 (en) 1999-02-22 2002-03-12 Starbase Corp. Installable file system having virtual file system drive, virtual device driver, and virtual disks
US6369840B1 (en) 1999-03-10 2002-04-09 America Online, Inc. Multi-layered online calendaring and purchasing
US6438590B1 (en) 1999-04-13 2002-08-20 Hewlett-Packard Company Computer system with preferential naming service
US6636238B1 (en) * 1999-04-20 2003-10-21 International Business Machines Corporation System and method for linking an audio stream with accompanying text material
JP3284543B2 (ja) * 1999-04-23 2002-05-20 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム格納媒体
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
US20020174329A1 (en) 1999-04-28 2002-11-21 Bowler Richard A. Method and system for automatically transitioning files among computer systems
US6539399B1 (en) 1999-04-29 2003-03-25 Amada Company, Limited Stand alone data management system for facilitating sheet metal part production
US6340977B1 (en) 1999-05-07 2002-01-22 Philip Lui System and method for dynamic assistance in software applications using behavior and host application models
US6470344B1 (en) 1999-05-29 2002-10-22 Oracle Corporation Buffering a hierarchical index of multi-dimensional data
US6526399B1 (en) * 1999-06-15 2003-02-25 Microsoft Corporation Method and system for grouping and displaying a database
US6535229B1 (en) 1999-06-29 2003-03-18 International Business Machines Corporation Graphical user interface for selection of options within mutually exclusive subsets
IL130972A0 (en) * 1999-07-15 2001-01-28 Hotbar Com Israel Ltd Method for the dynamic improvement of internet browser appearance and connectivity
JP3759344B2 (ja) 1999-08-02 2006-03-22 アルプス電気株式会社 磁気ヘッド及び磁気ヘッドの製造方法
US6462762B1 (en) 1999-08-05 2002-10-08 International Business Machines Corporation Apparatus, method, and program product for facilitating navigation among tree nodes in a tree structure
US6448985B1 (en) 1999-08-05 2002-09-10 International Business Machines Corporation Directory tree user interface having scrollable subsections
US6549916B1 (en) 1999-08-05 2003-04-15 Oracle Corporation Event notification system tied to a file system
US6763388B1 (en) 1999-08-10 2004-07-13 Akamai Technologies, Inc. Method and apparatus for selecting and viewing portions of web pages
US6505233B1 (en) * 1999-08-30 2003-01-07 Zaplet, Inc. Method for communicating information among a group of participants
JP3211956B2 (ja) 1999-08-31 2001-09-25 勲 清水 データベースシステム
US6430575B1 (en) 1999-09-10 2002-08-06 Xerox Corporation Collaborative document management system with customizable filing structures that are mutually intelligible
US6871348B1 (en) 1999-09-15 2005-03-22 Intel Corporation Method and apparatus for integrating the user interfaces of multiple applications into one application
US6763458B1 (en) 1999-09-27 2004-07-13 Captaris, Inc. System and method for installing and servicing an operating system in a computer or information appliance
US7444390B2 (en) 1999-10-20 2008-10-28 Cdimensions, Inc. Method and apparatus for providing a web-based active virtual file system
US7039860B1 (en) 1999-10-01 2006-05-02 Netspinner Solutions As Creating web pages category list prior to the list being served to a browser
JP4025475B2 (ja) 1999-11-10 2007-12-19 日本電気株式会社 データベース交換システム
US7146575B2 (en) 1999-11-24 2006-12-05 Shutterfly, Inc. Image uploading
US6583799B1 (en) * 1999-11-24 2003-06-24 Shutterfly, Inc. Image uploading
JP3570940B2 (ja) 1999-11-25 2004-09-29 北海道日本電気ソフトウェア株式会社 ダイナミックリンクライブラリ制御方式,方法および記録媒体
US7917628B2 (en) 1999-12-02 2011-03-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7613695B1 (en) 1999-12-06 2009-11-03 Reed Elsevier Inc. Relationship management system that provides an indication of users having a relationship with a specified contact
US7325012B2 (en) 1999-12-06 2008-01-29 Interface Software, Inc. Relationship management system determining contact pathways in a contact relational database
US6820111B1 (en) 1999-12-07 2004-11-16 Microsoft Corporation Computer user interface architecture that saves a user's non-linear navigation history and intelligently maintains that history
US6754829B1 (en) 1999-12-14 2004-06-22 Intel Corporation Certificate-based authentication system for heterogeneous environments
US6408298B1 (en) 1999-12-15 2002-06-18 Microsoft Corporation Methods and systems for copying and moving across virtual namespaces
US6606105B1 (en) 1999-12-22 2003-08-12 Adobe Systems Incorporated Layer enhancements in digital illustration system
JP2001188702A (ja) 1999-12-28 2001-07-10 Hitachi Ltd 分散ファイルシステム及びファイル操作方法
US6686938B1 (en) 2000-01-05 2004-02-03 Apple Computer, Inc. Method and system for providing an embedded application toolbar
US6847959B1 (en) 2000-01-05 2005-01-25 Apple Computer, Inc. Universal interface for retrieval of information in a computer system
US20010053996A1 (en) 2000-01-06 2001-12-20 Atkinson Paul D. System and method for distributing and controlling the output of media in public spaces
US6425120B1 (en) 2000-01-14 2002-07-23 Softwire Technology Llc Repeating program object for use with a graphical program-development system
US6425121B1 (en) 2000-01-14 2002-07-23 Softwire Technology, Llp Method and apparatus for resolving divergent paths in graphical programming environments
EP1117220A1 (en) 2000-01-14 2001-07-18 Sun Microsystems, Inc. Method and system for protocol conversion
EP1259901A1 (en) 2000-01-27 2002-11-27 Synquiry Technologies, Ltd Software composition using graph types, graphs, and agents
US6658436B2 (en) 2000-01-31 2003-12-02 Commvault Systems, Inc. Logical view and access to data managed by a modular data and storage management system
US6195650B1 (en) 2000-02-02 2001-02-27 Hewlett-Packard Company Method and apparatus for virtualizing file access operations and other I/O operations
US20020046299A1 (en) 2000-02-09 2002-04-18 Internet2Anywhere, Ltd. Method and system for location independent and platform independent network signaling and action initiating
US6735623B1 (en) 2000-02-09 2004-05-11 Mitch Prust Method and system for accessing a remote storage area
US7412462B2 (en) 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
AU2001235940A1 (en) 2000-02-23 2001-09-03 Eyal, Yehoshua Systems and methods for generating and providing previews of electronic files such as web files
US6760720B1 (en) 2000-02-25 2004-07-06 Pedestrian Concepts, Inc. Search-on-the-fly/sort-on-the-fly search engine for searching databases
JP2001243244A (ja) 2000-02-28 2001-09-07 Hitachi Ltd 多次元データベースの検索方法、検索装置、および多次元データベース検索プログラムを記録したコンピュータ読み取り可能な記録媒体。
WO2001067309A2 (en) 2000-03-03 2001-09-13 Radiant Logic, Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces
US20060173873A1 (en) 2000-03-03 2006-08-03 Michel Prompt System and method for providing access to databases via directories and other hierarchical structures and interfaces
US6757362B1 (en) 2000-03-06 2004-06-29 Avaya Technology Corp. Personal virtual assistant
US20020010736A1 (en) 2000-03-06 2002-01-24 Telenova Communications Corp. Internet based audio and video communication system using a virtual desktop
GB2367661B (en) 2000-03-09 2004-11-24 Ibm A method and system for managing objects
US7406596B2 (en) 2000-03-10 2008-07-29 Herbert Street Technologies Data transfer and management system
US6549217B1 (en) * 2000-03-23 2003-04-15 Koninklijke Philips Electronics N.V. System and method for computer system management using bookmarks
JP2001282813A (ja) 2000-03-29 2001-10-12 Toshiba Corp マルチメディアデータ検索方法、インデックス情報提供方法、マルチメディアデータ検索装置、インデックスサーバ及びマルチメディアデータ検索サーバ
US6658406B1 (en) 2000-03-29 2003-12-02 Microsoft Corporation Method for selecting terms from vocabularies in a category-based system
US20020073033A1 (en) 2000-04-07 2002-06-13 Sherr Scott Jeffrey Online digital video signal transfer apparatus and method
US6636250B1 (en) 2000-04-12 2003-10-21 Emc Corp Methods and apparatus for presenting information to a user of a computer system
US6563514B1 (en) * 2000-04-13 2003-05-13 Extensio Software, Inc. System and method for providing contextual and dynamic information retrieval
US6760721B1 (en) 2000-04-14 2004-07-06 Realnetworks, Inc. System and method of managing metadata data
JP4325075B2 (ja) 2000-04-21 2009-09-02 ソニー株式会社 データオブジェクト管理装置
US7188319B2 (en) * 2000-04-21 2007-03-06 Microsoft Corporation Displaying graphical information and user selected properties on a computer interface
US20010056434A1 (en) 2000-04-27 2001-12-27 Smartdisk Corporation Systems, methods and computer program products for managing multimedia content
US6430835B1 (en) * 2000-04-28 2002-08-13 Daimlerchrysler Corporation Setting fixture for door measurement
US20020049717A1 (en) 2000-05-10 2002-04-25 Routtenberg Michael D. Digital content distribution system and method
US20010056508A1 (en) 2000-05-12 2001-12-27 Kenneth Arneson Event notification system and method
US6760722B1 (en) 2000-05-16 2004-07-06 International Business Machines Corporation Computer implemented automated remote support
US20040133572A1 (en) * 2000-05-18 2004-07-08 I2 Technologies Us, Inc., A Delaware Corporation Parametric searching
US9213836B2 (en) 2000-05-28 2015-12-15 Barhon Mayer, Batya System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages
US6745207B2 (en) 2000-06-02 2004-06-01 Hewlett-Packard Development Company, L.P. System and method for managing virtual storage
US7043472B2 (en) 2000-06-05 2006-05-09 International Business Machines Corporation File system with access and retrieval of XML documents
US6745206B2 (en) * 2000-06-05 2004-06-01 International Business Machines Corporation File system with access and retrieval of XML documents
US6983424B1 (en) 2000-06-23 2006-01-03 International Business Machines Corporation Automatically scaling icons to fit a display area within a data processing system
US6925608B1 (en) 2000-07-05 2005-08-02 Kendyl A. Roman Graphical user interface for building Boolean queries and viewing search results
US7219332B2 (en) 2000-07-07 2007-05-15 Microsoft Corporation Configuring software components(merge) with transformation component using configurable and non-configurable data elements
US7219302B1 (en) 2000-07-19 2007-05-15 Everez Systems Limited System and method for organizing, managing, and manipulating desktop objects with an activity-oriented user interface
US6938207B1 (en) * 2000-07-19 2005-08-30 International Business Machines Corporation Method and system for indicating document traversal direction in a hyper linked navigation system
JP2004507717A (ja) 2000-07-20 2004-03-11 ファジックス コーポレイション ベッセル関数を使用する高分子結晶学的位相のアブイニシオ決定のための方法
WO2002010984A2 (en) 2000-07-21 2002-02-07 Triplehop Technologies, Inc. System and method for obtaining user preferences and providing user recommendations for unseen physical and information goods and services
US8538770B2 (en) 2000-08-01 2013-09-17 Logical Images, Inc. System and method to aid diagnoses using cross-referenced knowledge and image databases
JP2002140216A (ja) 2000-08-22 2002-05-17 Ns Solutions Corp ファイル管理システム
AU2001288469A1 (en) 2000-08-28 2002-03-13 Emotion, Inc. Method and apparatus for digital media management, retrieval, and collaboration
US7451099B2 (en) 2000-08-30 2008-11-11 Kontera Technologies, Inc. Dynamic document context mark-up technique implemented over a computer network
WO2002021413A2 (en) * 2000-09-05 2002-03-14 Zaplet, Inc. Methods and apparatus providing electronic messages that are linked and aggregated
JP2002082745A (ja) 2000-09-07 2002-03-22 Sony Corp 情報処理装置及び方法、並びにプログラム格納媒体
AUPR015700A0 (en) 2000-09-15 2000-10-12 Filecat Pty Ltd Distributed file-sharing network
US20020062310A1 (en) 2000-09-18 2002-05-23 Smart Peer Llc Peer-to-peer commerce system
JP2002099565A (ja) 2000-09-26 2002-04-05 Fujitsu Ltd 情報検索装置
US7168051B2 (en) 2000-10-10 2007-01-23 Addnclick, Inc. System and method to configure and provide a network-enabled three-dimensional computing environment
US6738770B2 (en) * 2000-11-04 2004-05-18 Deep Sky Software, Inc. System and method for filtering and sorting data
AU2002230648A1 (en) 2000-11-06 2002-05-15 Envoy Worlwide, Inc. System and method for service specific notification
US6684222B1 (en) 2000-11-09 2004-01-27 Accenture Llp Method and system for translating data associated with a relational database
US7242421B2 (en) * 2000-11-10 2007-07-10 Perceptive Network Technologies, Inc. Methods of establishing a communications link using perceptual sensing of a user's presence
US6762776B2 (en) 2000-11-10 2004-07-13 Microsoft Corporation Mouse input panel windows class list
JP3754912B2 (ja) * 2000-11-13 2006-03-15 キヤノン株式会社 マルチメディアコンテンツの配信方法
US6948120B1 (en) 2000-11-14 2005-09-20 Sas Institute Inc. Computer-implemented system and method for hosting design-time controls
US20020118231A1 (en) 2000-11-14 2002-08-29 Jeff Smith Method of realistically displaying and interacting with electronic files
US7039875B2 (en) 2000-11-30 2006-05-02 Lucent Technologies Inc. Computer user interfaces that are generated as needed
US20020156792A1 (en) 2000-12-06 2002-10-24 Biosentients, Inc. Intelligent object handling device and method for intelligent object data in heterogeneous data environments with high data density and dynamic application needs
JP2002269145A (ja) 2000-12-08 2002-09-20 Fujitsu Ltd 情報処理装置、端末装置、方法、媒体、およびプログラム
US7409382B2 (en) 2000-12-08 2008-08-05 Fujitsu Limited Information processing system, terminal device, method and medium
JP2002182953A (ja) 2000-12-12 2002-06-28 Hitachi Ltd 分散ファイル管理方法
US20020105548A1 (en) 2000-12-12 2002-08-08 Richard Hayton Methods and apparatus for creating a user interface using property paths
US7134085B2 (en) 2000-12-13 2006-11-07 National Instruments Corporation System and method for automatically configuring program data exchange
US6907580B2 (en) * 2000-12-14 2005-06-14 Microsoft Corporation Selection paradigm for displayed user interface
US7020848B2 (en) 2000-12-20 2006-03-28 Eastman Kodak Company Comprehensive, multi-dimensional graphical user interface using picture metadata for navigating and retrieving pictures in a picture database
US6950989B2 (en) 2000-12-20 2005-09-27 Eastman Kodak Company Timeline-based graphical user interface for efficient image database browsing and retrieval
US7032182B2 (en) 2000-12-20 2006-04-18 Eastman Kodak Company Graphical user interface adapted to allow scene content annotation of groups of pictures in a picture database to promote efficient database browsing
US6883146B2 (en) 2000-12-20 2005-04-19 Eastman Kodak Company Picture database graphical user interface utilizing map-based metaphors for efficient browsing and retrieving of pictures
AUPR230700A0 (en) * 2000-12-22 2001-01-25 Canon Kabushiki Kaisha A method for facilitating access to multimedia content
US7403952B2 (en) 2000-12-28 2008-07-22 International Business Machines Corporation Numa system resource descriptors including performance characteristics
US20020087969A1 (en) 2000-12-28 2002-07-04 International Business Machines Corporation Interactive TV audience estimation and program rating in real-time using multi level tracking methods, systems and program products
US20040205698A1 (en) 2000-12-29 2004-10-14 Schliesmann Barry Edward System and method for event driven programming
US7028262B2 (en) 2000-12-29 2006-04-11 International Business Machines Corporation Method and system for designing a theme and associating it with a collaboration space user interface
US20020089540A1 (en) * 2001-01-08 2002-07-11 Freddie Geier Media editing and creating interface
US7266768B2 (en) * 2001-01-09 2007-09-04 Sharp Laboratories Of America, Inc. Systems and methods for manipulating electronic information using a three-dimensional iconic representation
US20020091679A1 (en) 2001-01-09 2002-07-11 Wright James E. System for searching collections of linked objects
GB0100753D0 (en) 2001-01-11 2001-02-21 Bate Matthew Data system
US6839721B2 (en) 2001-01-12 2005-01-04 Hewlett-Packard Development Company, L.P. Integration of a database into file management software for protecting, tracking, and retrieving data
US20020100039A1 (en) 2001-01-19 2002-07-25 Nicholas Iatropoulos Media interactivity method and architecture
US6885860B2 (en) 2001-01-19 2005-04-26 Microsoft Corporation Information management and processing in a wireless network
AU2002234258A1 (en) 2001-01-22 2002-07-30 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7437363B2 (en) 2001-01-25 2008-10-14 International Business Machines Corporation Use of special directories for encoding semantic information in a file system
US7043644B2 (en) 2001-01-31 2006-05-09 Qurio Holdings, Inc. Facilitating file access from firewall-protected nodes in a peer-to-peer network
CA2335395A1 (en) * 2001-02-09 2002-08-09 Opengraphics Corporation Controlled access system for online communities
US6831655B2 (en) * 2001-02-20 2004-12-14 Sun Microsystems, Inc. Method and apparatus for determining display element attribute values
US6813474B2 (en) 2001-02-24 2004-11-02 Echalk: L.L.C. System and method for creating, processing and managing educational content within and between schools
WO2002077871A1 (en) 2001-02-26 2002-10-03 Walter Reed Army Institute Of Research Browser for an accident and incident registry
US6760047B2 (en) 2001-02-26 2004-07-06 Microsoft Corporation Method for flagging and relating information in a computer system
US7139762B2 (en) 2001-02-27 2006-11-21 Microsoft Corporation System and method for filtering database records
US6828988B2 (en) * 2001-02-27 2004-12-07 Microsoft Corporation Interactive tooltip
US7603657B2 (en) 2001-03-02 2009-10-13 Oracle International Corporation Customization of client-server interaction in an internet application
US7302634B2 (en) 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US7925513B2 (en) 2001-03-15 2011-04-12 Versata Development Group, Inc. Framework for processing sales transaction data
US7216289B2 (en) 2001-03-16 2007-05-08 Microsoft Corporation Method and apparatus for synchronizing multiple versions of digital data
US20020138552A1 (en) 2001-03-21 2002-09-26 Debruine Timothy S. Method and system for optimizing private network file transfers in a public peer-to-peer network
US7047406B2 (en) 2001-03-21 2006-05-16 Qurlo Holdings, Inc. Method and system for providing a secure peer-to-peer file delivery network
US7062490B2 (en) 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
US7689711B2 (en) 2001-03-26 2010-03-30 Salesforce.Com, Inc. System and method for routing messages between applications
US7263666B2 (en) 2001-04-09 2007-08-28 Triveni Digital, Inc. Targeted remote GUI for metadata generator
US20020152262A1 (en) 2001-04-17 2002-10-17 Jed Arkin Method and system for preventing the infringement of intellectual property rights
US20020156895A1 (en) 2001-04-20 2002-10-24 Brown Michael T. System and method for sharing contact information
US7185050B2 (en) 2001-04-30 2007-02-27 Hewlett-Packard Development Company, L.P. Document management system and method using content grouping system
US6751626B2 (en) 2001-05-03 2004-06-15 International Business Machines Corporation Method, system, and program for mining data in a personal information manager database
JP2002334103A (ja) 2001-05-11 2002-11-22 Fujitsu Ltd 検索処理システム及び検索処理方法
US7058891B2 (en) 2001-05-25 2006-06-06 Learning Tree International, Inc. Interface for a system of method of electronic presentations having multiple display screens with remote input
US7228383B2 (en) 2001-06-01 2007-06-05 Visto Corporation System and method for progressive and hierarchical caching
US20020188735A1 (en) * 2001-06-06 2002-12-12 Needham Bradford H. Partially replicated, locally searched peer to peer file sharing system
US6910049B2 (en) 2001-06-15 2005-06-21 Sony Corporation System and process of managing media content
WO2003001720A2 (en) 2001-06-21 2003-01-03 Isc, Inc. Database indexing method and apparatus
BR0210589A (pt) * 2001-06-22 2005-04-26 Nosa Omoigui Sistema e método para a recuperação, o gerenciamento, a entrega e a apresentação do conhecimento
US20040230572A1 (en) * 2001-06-22 2004-11-18 Nosa Omoigui System and method for semantic knowledge retrieval, management, capture, sharing, discovery, delivery and presentation
JP2003087785A (ja) 2001-06-29 2003-03-20 Toshiba Corp 動画像符号化データの形式変換方法及び装置
US6944647B2 (en) * 2001-06-29 2005-09-13 International Business Machines Corporation Methods and apparatus for bookmarking and annotating data in a log file
JP2003022206A (ja) 2001-07-06 2003-01-24 Fujitsu Ltd ファイル管理プログラムおよびファイル管理装置
US7440994B2 (en) 2001-07-06 2008-10-21 Intel Corporation Method and apparatus for peer-to-peer services to shift network traffic to allow for an efficient transfer of information between devices via prioritized list
KR20030006734A (ko) 2001-07-14 2003-01-23 엠텍비젼 주식회사 통신망을 이용한 영상 데이터 관리 방법 및 시스템
US6865568B2 (en) 2001-07-16 2005-03-08 Microsoft Corporation Method, apparatus, and computer-readable medium for searching and navigating a document database
US20030018657A1 (en) 2001-07-18 2003-01-23 Imation Corp. Backup of data on a network
US6801919B2 (en) * 2001-07-27 2004-10-05 Hewlett-Packard Development Company, L.P. Object oriented database interface encapsulation that allows for chronologically overlapping transactions in a multi-threaded environment
US7610218B2 (en) 2001-07-31 2009-10-27 Lightsurf Technologies, Inc. Integrated shopping cart for sale of third party products and services via the internet
JP3807961B2 (ja) 2001-08-01 2006-08-09 インターナショナル・ビジネス・マシーンズ・コーポレーション セッション管理方法、セッション管理システムおよびプログラム
US7139811B2 (en) 2001-08-01 2006-11-21 Actona Technologies Ltd. Double-proxy remote data access system
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US20030028610A1 (en) * 2001-08-03 2003-02-06 Pearson Christopher Joel Peer-to-peer file sharing system and method using user datagram protocol
US7062718B2 (en) 2001-08-14 2006-06-13 National Instruments Corporation Configuration diagram which graphically displays program relationship
US7107299B2 (en) 2001-08-14 2006-09-12 Hewlett-Packard Development Company, L.P. Method and apparatus for managing large numbers of objects having the same property
AU2002323413A1 (en) 2001-08-27 2003-03-10 Gracenote, Inc. Playlist generation, delivery and navigation
US6662198B2 (en) 2001-08-30 2003-12-09 Zoteca Inc. Method and system for asynchronous transmission, backup, distribution of data and file sharing
CA2357969A1 (en) 2001-09-28 2003-03-28 Dirk Alexander Seelemann Customazation of object property layout for a user interface
US7203948B2 (en) 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US6952714B2 (en) 2001-10-02 2005-10-04 Citrix Systems, Inc. Method for distributed program execution with server-based file type association
US8015204B2 (en) 2001-10-16 2011-09-06 Microsoft Corporation Scoped access control metadata element
US8549434B2 (en) 2001-10-18 2013-10-01 Microsoft Corporation Method for graphical representation of a content collection
US7290245B2 (en) 2001-10-18 2007-10-30 Microsoft Corporation Methods and systems for navigating deterministically through a graphical user interface
CA2464102C (en) 2001-10-22 2021-04-13 Apple Computer, Inc. Intelligent synchronization for a media player
US20030078918A1 (en) 2001-10-23 2003-04-24 Souvignier Todd J. Method, apparatus and system for file sharing between computers
US7171626B2 (en) 2001-10-29 2007-01-30 Microsoft Corporation System and method for presenting the contents of a content collection based on content type
US7069547B2 (en) 2001-10-30 2006-06-27 International Business Machines Corporation Method, system, and program for utilizing impact analysis metadata of program statements in a development environment
US20030081002A1 (en) 2001-10-30 2003-05-01 Microsoft Corporation Method and system for chaining and extending wizards
US20030081007A1 (en) 2001-10-31 2003-05-01 James Cyr Object oriented explorer type environment
US20030093580A1 (en) 2001-11-09 2003-05-15 Koninklijke Philips Electronics N.V. Method and system for information alerts
US7171468B2 (en) * 2001-11-10 2007-01-30 Kabushiki Kaisha Toshiba System and method for accessing a document management repository
US6876996B2 (en) 2001-11-14 2005-04-05 Sun Microsystems, Inc. Method and apparatus for using a shared library mechanism to facilitate sharing of metadata
US6944626B2 (en) 2001-11-26 2005-09-13 Microsoft Corp. Dynamically generated schema representing multiple hierarchies of inter-object relationships
JP4186456B2 (ja) * 2001-11-28 2008-11-26 沖電気工業株式会社 分散ファイル共有システムおよびその制御方法
US7430723B2 (en) 2001-11-29 2008-09-30 Gse Advanced Industrial Technologies, Gmbh System and method for implementing a three-dimensional graphic user interface
US6826443B2 (en) 2001-11-29 2004-11-30 Agilent Technologies, Inc. Systems and methods for managing interaction with a presentation of a tree structure in a graphical user interface
CN1421800A (zh) 2001-11-30 2003-06-04 英业达股份有限公司 电子文件预览系统与方法
CA2364631A1 (en) 2001-12-04 2003-06-04 Kevin W. Jameson Collection extensible action gui
US20030105745A1 (en) 2001-12-05 2003-06-05 Davidson Jason A. Text-file based relational database
JP4225038B2 (ja) 2001-12-11 2009-02-18 トヨタ自動車株式会社 ユニット設計装置およびユニット設計方法
US7133874B2 (en) 2001-12-13 2006-11-07 Microsoft Corporation Prototyping model for components of a software program
US7024427B2 (en) 2001-12-19 2006-04-04 Emc Corporation Virtual file system
JP3778079B2 (ja) 2001-12-20 2006-05-24 株式会社日立製作所 表示装置
US20030120928A1 (en) 2001-12-21 2003-06-26 Miles Cato Methods for rights enabled peer-to-peer networking
KR100436815B1 (ko) 2001-12-24 2004-06-23 한국전자통신연구원 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산최적화 시스템 및 그 방법
US7266843B2 (en) 2001-12-26 2007-09-04 Mcafee, Inc. Malware scanning to create clean storage locations
US7143362B2 (en) * 2001-12-28 2006-11-28 International Business Machines Corporation System and method for visualizing and navigating content in a graphical user interface
US7266563B2 (en) 2001-12-28 2007-09-04 Fotomedia Technologies, Llc Specifying, assigning, and maintaining user defined metadata in a network-based photosharing system
WO2003058519A2 (en) 2002-01-08 2003-07-17 Sap Aktiengesellschaft Enhanced email management system
JP2003208343A (ja) 2002-01-10 2003-07-25 Ricoh Co Ltd ファイル作成・閲覧方法、ファイル作成方法、ファイル閲覧方法、ファイル構造及びプログラム
US20040205633A1 (en) 2002-01-11 2004-10-14 International Business Machines Corporation Previewing file or document content
US7243334B1 (en) 2002-01-16 2007-07-10 Prelude Systems, Inc. System and method for generating user interface code
US7089287B2 (en) * 2002-01-16 2006-08-08 Xerox Corporation Message-based system having embedded information management capabilities
US6961734B2 (en) 2002-01-17 2005-11-01 International Business Machines Corporation Method, system, and program for defining asset classes in a digital library
US7552189B2 (en) 2002-01-18 2009-06-23 Bea Systems, Inc. System and method for using virtual directories to service URL requests URL requests in application servers
US7424715B1 (en) 2002-01-28 2008-09-09 Verint Americas Inc. Method and system for presenting events associated with recorded data exchanged between a server and a user
US6922709B2 (en) * 2002-02-19 2005-07-26 International Business Machines Corporation Method for maintaining consistent dual copies of vital product data in a dual accessor library of portable data storage media
US7343365B2 (en) 2002-02-20 2008-03-11 Microsoft Corporation Computer system architecture for automatic context associations
AU2003212463A1 (en) 2002-03-01 2003-09-16 Paul Jeffrey Krupin A method and system for creating improved search queries
US6763777B1 (en) 2002-03-08 2004-07-20 Christian F. Rosenberg Conversion cockpit for a sailboat
US20040003247A1 (en) 2002-03-11 2004-01-01 Fraser John D. Non-centralized secure communication services
US7607102B2 (en) 2002-03-14 2009-10-20 Apple Inc. Dynamically changing appearances for user interface elements during drag-and-drop operations
US7107285B2 (en) 2002-03-16 2006-09-12 Questerra Corporation Method, system, and program for an improved enterprise spatial system
EP1535195A4 (en) 2002-03-18 2008-04-02 Corporation Bigtribe COMMUNITY LIST
US20040044776A1 (en) 2002-03-22 2004-03-04 International Business Machines Corporation Peer to peer file sharing system using common protocols
WO2003083700A1 (en) 2002-03-22 2003-10-09 Thought, Inc. Micro edition dynamic object- driven database manipulation and mapping system
US20030212710A1 (en) 2002-03-27 2003-11-13 Michael J. Guy System for tracking activity and delivery of advertising over a file network
US6938042B2 (en) 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US20040030731A1 (en) 2002-04-03 2004-02-12 Liviu Iftode System and method for accessing files in a network
US7010755B2 (en) * 2002-04-05 2006-03-07 Microsoft Corporation Virtual desktop manager
US7068291B1 (en) * 2002-04-11 2006-06-27 Bellsouth Intellectual Property Corp. Video display screen segmentation
US20040019875A1 (en) 2002-04-29 2004-01-29 Welch Keith C. Masked edit control for use in a graphical programming environment
US7389242B2 (en) 2002-05-07 2008-06-17 Re3W Worldwide Limited Interactive processing of real estate transactions
US20030210281A1 (en) 2002-05-07 2003-11-13 Troy Ellis Magnifying a thumbnail image of a document
US6816863B2 (en) 2002-05-09 2004-11-09 International Business Machines Corporation Method, system, and computer product for providing a distribution list
US7457810B2 (en) 2002-05-10 2008-11-25 International Business Machines Corporation Querying markup language data sources using a relational query processor
US7080059B1 (en) 2002-05-13 2006-07-18 Quasm Corporation Search and presentation engine
US20030222915A1 (en) 2002-05-30 2003-12-04 International Business Machines Corporation Data processor controlled display system with drag and drop movement of displayed items from source to destination screen positions and interactive modification of dragged items during the movement
US7574488B2 (en) 2002-05-31 2009-08-11 Hitachi, Ltd. Method and apparatus for peer-to-peer file sharing
US20030227487A1 (en) 2002-06-01 2003-12-11 Hugh Harlan M. Method and apparatus for creating and accessing associative data structures under a shared model of categories, rules, triggers and data relationship permissions
US7191411B2 (en) 2002-06-06 2007-03-13 Moehrle Armin E Active path menu navigation system
US7100150B2 (en) 2002-06-11 2006-08-29 Sun Microsystems, Inc. Method and apparatus for testing embedded examples in GUI documentation
JP4308587B2 (ja) * 2002-06-24 2009-08-05 株式会社リコー 文書群管理装置
US20040002993A1 (en) 2002-06-26 2004-01-01 Microsoft Corporation User feedback processing of metadata associated with digital media files
US20040001106A1 (en) * 2002-06-26 2004-01-01 John Deutscher System and process for creating an interactive presentation employing multi-media components
US20040004638A1 (en) 2002-07-02 2004-01-08 Ketan Babaria Method and apparatus for multiple-window multiple-selection operations in graphical-user-interface environments
US7275063B2 (en) * 2002-07-16 2007-09-25 Horn Bruce L Computer system for automatic organization, indexing and viewing of information from multiple sources
JP2004054721A (ja) 2002-07-23 2004-02-19 Hitachi Ltd ネットワークストレージ仮想化方法
US20040117405A1 (en) 2002-08-26 2004-06-17 Gordon Short Relating media to information in a workflow system
US20040054674A1 (en) 2002-09-13 2004-03-18 Carpenter Keith A. Enabling a web application to access a protected file on a secured server
US6956942B2 (en) 2002-09-18 2005-10-18 Sbc Properties, L.P. Multi-modal address book
US20040056894A1 (en) 2002-09-19 2004-03-25 Igor Zaika System and method for describing and instantiating extensible user interfaces
US7197517B2 (en) 2002-09-25 2007-03-27 International Business Machines Corporation Systems, methods, and computer program products to display and select hierarchical database segments and fields
US7337409B2 (en) 2002-09-25 2008-02-26 Siemens Aktiengesellschaft Customizable drag and drop for industrial software applications
AU2002951709A0 (en) 2002-09-26 2002-10-17 Canon Information Systems Research Australia Pty Ltd Efficient printing of frames pages
KR100953806B1 (ko) 2002-09-30 2010-04-21 마이크로소프트 코포레이션 어플리케이션 및 사용자에게 공지되는 사용자 인터페이스엘리먼트들을 형성하기 위한 시스템 및 방법
US8935202B2 (en) 2002-09-30 2015-01-13 Reed Elsevier Inc. Managing changes in a relationship management system
US20040073705A1 (en) 2002-10-15 2004-04-15 Madril Robert John Print preview with edit hyperlink
US20040153968A1 (en) * 2002-10-24 2004-08-05 Jennie Ching Method and system for user customizable asset metadata generation in a web-based asset management system
EP1573462A2 (en) 2002-10-28 2005-09-14 Gracenote, Inc. Personal audio recording system
US20040088374A1 (en) 2002-10-31 2004-05-06 Webb James D. Aggregation and sharing of patient data
GB0226294D0 (en) 2002-11-12 2002-12-18 Autodesk Canada Inc Image processing
WO2004046969A1 (en) 2002-11-15 2004-06-03 Bigchampagne, Llc. Monitor file storage and transfer on a peer-to-peer network
AU2003302050A1 (en) 2002-11-15 2004-06-15 Creo Inc. Methods and systems for sharing data
TWI221746B (en) 2002-11-18 2004-10-01 Ulead Systems Inc Preview file generating method applicable on multiple systems and device thereof
US20040098379A1 (en) * 2002-11-19 2004-05-20 Dan Huang Multi-indexed relationship media organization system
US20040103073A1 (en) 2002-11-21 2004-05-27 Blake M. Brian System for and method of using component-based development and web tools to support a distributed data management system
US7549047B2 (en) 2002-11-21 2009-06-16 Xerox Corporation Method and system for securely sharing files
US7293031B1 (en) 2002-11-21 2007-11-06 Ncr Corp. Report specification generators and interfaces
US7386529B2 (en) * 2002-12-19 2008-06-10 Mathon Systems, Inc. System and method for managing content with event driven actions to facilitate workflow and other features
AU2002953500A0 (en) 2002-12-20 2003-01-09 Redbank Manor Pty Ltd A system and method of requesting, viewing and acting on search results in a time-saving manner
JP4102199B2 (ja) * 2003-01-06 2008-06-18 オリンパス株式会社 撮像システム、カメラ、外部機器、撮像プログラム、記録媒体、および撮像方法
US7581164B2 (en) 2003-01-06 2009-08-25 Apple Inc. User interface for accessing presentations
JP3900085B2 (ja) 2003-01-14 2007-04-04 ミツミ電機株式会社 ゲーム用コントローラ
US7383494B2 (en) 2003-01-15 2008-06-03 Xerox Corporation Generating a confirmation sheet listing identifiers, thumbnails, and pages associated with page thumbnails
US7769881B2 (en) 2003-01-24 2010-08-03 Hitachi, Ltd. Method and apparatus for peer-to peer access
US7945618B2 (en) 2003-02-10 2011-05-17 Oren Asher Peer-to-peer service designer
US7565618B2 (en) 2003-02-13 2009-07-21 LumaPix Inc. Method and system for distributing multiple dragged objects
US7739597B2 (en) 2003-02-24 2010-06-15 Microsoft Corporation Interactive media frame display
US20040230917A1 (en) 2003-02-28 2004-11-18 Bales Christopher E. Systems and methods for navigating a graphical hierarchy
US7930350B2 (en) 2003-03-05 2011-04-19 Canon U.S.A., Inc. Digital image sharing enabled chat application
US20040181516A1 (en) 2003-03-13 2004-09-16 First Data Corporation Methods and systems for monitoring document-production processes
US7487460B2 (en) * 2003-03-21 2009-02-03 Microsoft Corporation Interface for presenting data representations in a screen-area inset
US7823077B2 (en) 2003-03-24 2010-10-26 Microsoft Corporation System and method for user modification of metadata in a shell browser
US7240292B2 (en) 2003-04-17 2007-07-03 Microsoft Corporation Virtual address bar user interface control
US7769794B2 (en) 2003-03-24 2010-08-03 Microsoft Corporation User interface for a file system shell
US7712034B2 (en) 2003-03-24 2010-05-04 Microsoft Corporation System and method for shell browser
US20050080807A1 (en) 2003-10-12 2005-04-14 Microsoft Corporation Extensible creation and editing of integrated collections
US7409644B2 (en) 2003-05-16 2008-08-05 Microsoft Corporation File system shell
US7627552B2 (en) * 2003-03-27 2009-12-01 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7587411B2 (en) * 2003-03-27 2009-09-08 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7650575B2 (en) 2003-03-27 2010-01-19 Microsoft Corporation Rich drag drop user interface
US7536386B2 (en) * 2003-03-27 2009-05-19 Microsoft Corporation System and method for sharing items in a computer system
US7526483B2 (en) * 2003-03-27 2009-04-28 Microsoft Corporation System and method for virtual folder sharing including utilization of static and dynamic lists
US7925682B2 (en) 2003-03-27 2011-04-12 Microsoft Corporation System and method utilizing virtual folders
US7499925B2 (en) 2003-03-27 2009-03-03 Microsoft Corporation File system for displaying items of different types and from different physical locations
US7493614B2 (en) 2003-03-31 2009-02-17 Microsoft Corporation System architecture and related methods for dynamically adding software components to extend functionality of system processes
US7512885B2 (en) 2003-03-31 2009-03-31 Avid Technology, Inc. Graphical user interface for navigating and displaying relationships among media data and metadata
US8001088B2 (en) 2003-04-04 2011-08-16 Avid Technology, Inc. Indexing media files in a distributed, multi-user system for managing and editing digital media
US7415484B1 (en) 2003-05-09 2008-08-19 Vignette Corporation Method and system for modeling of system content for businesses
US7693867B2 (en) 2003-05-14 2010-04-06 Pixar Model referencing method and apparatus
US6882242B2 (en) 2003-06-19 2005-04-19 Radio Frequency Systems, Inc. Frequency selective low loss transmission line system
US20050015405A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Multi-valued properties
JP4343633B2 (ja) 2003-09-19 2009-10-14 旭化成エンジニアリング株式会社 糸状物の巻取り方法及び装置
US20050188174A1 (en) 2003-10-12 2005-08-25 Microsoft Corporation Extensible creation and editing of collections of objects
US8024335B2 (en) 2004-05-03 2011-09-20 Microsoft Corporation System and method for dynamically generating a selectable search extension
US20050114672A1 (en) 2003-11-20 2005-05-26 Encryptx Corporation Data rights management of digital information in a portable software permission wrapper
US7392278B2 (en) 2004-01-23 2008-06-24 Microsoft Corporation Building and using subwebs for focused search
JP2005208515A (ja) 2004-01-26 2005-08-04 Sumitomo Electric Ind Ltd 波長変換方法および波長変換器
US8832600B2 (en) 2004-01-27 2014-09-09 International Business Machines Corporation Method, system, and program for navigating files
US7412447B2 (en) 2004-03-01 2008-08-12 Fuji Xerox Co., Ltd. Remote file management using shared credentials for remote clients outside firewall
WO2005103874A2 (en) 2004-04-16 2005-11-03 Cascade Basic Research Corp. Modelling relationships within an on-line connectivity universe
US7657846B2 (en) 2004-04-23 2010-02-02 Microsoft Corporation System and method for displaying stack icons
US7694236B2 (en) 2004-04-23 2010-04-06 Microsoft Corporation Stack icons representing multiple objects
US8707209B2 (en) 2004-04-29 2014-04-22 Microsoft Corporation Save preview representation of files being created
US7853895B2 (en) 2004-05-11 2010-12-14 Sony Computer Entertainment Inc. Control of background media when foreground graphical user interface is invoked
US20060059204A1 (en) 2004-08-25 2006-03-16 Dhrubajyoti Borthakur System and method for selectively indexing file system content
US8683351B2 (en) 2004-10-26 2014-03-25 International Business Machines Corporation Chat user interface for threaded text chat systems
US20070168885A1 (en) 2005-01-21 2007-07-19 Michael Muller Sorting and filtering activities in an activity-centric collaborative computing environment
US7614016B2 (en) 2005-04-21 2009-11-03 Microsoft Corporation Multiple roots in navigation pane
US8522154B2 (en) 2005-04-22 2013-08-27 Microsoft Corporation Scenario specialization of file browser
US7536410B2 (en) 2005-04-22 2009-05-19 Microsoft Corporation Dynamic multi-dimensional scrolling
US8195646B2 (en) 2005-04-22 2012-06-05 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US20060242122A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US20060242591A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation File dialog user interfaces and creation of same
US7565613B2 (en) 2005-12-01 2009-07-21 Microsoft Corporation User interface incorporating data ecosystem awareness
US7613713B2 (en) 2005-12-01 2009-11-03 Microsoft Corporation Data ecosystem awareness
US7653638B2 (en) 2005-12-01 2010-01-26 Microsoft Corporation Data ecosystem awareness
US20070186183A1 (en) 2006-02-06 2007-08-09 International Business Machines Corporation User interface for presenting a palette of items

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101496255B1 (ko) * 2012-11-30 2015-02-26 네이버 주식회사 카드 탐색을 이용한 검색결과 제공 방법 및 장치
KR20220018186A (ko) * 2020-08-06 2022-02-15 주식회사 파수 가상 파일 관리 방법, 장치, 컴퓨터 프로그램 및 기록 매체
US11625365B2 (en) 2020-08-06 2023-04-11 Fasoo Co., Ltd Method for managing virtual file, apparatus for the same, computer program for the same, and recording medium storing computer program thereof

Also Published As

Publication number Publication date
US20060036568A1 (en) 2006-02-16
EP1836602A1 (en) 2007-09-26
KR101203274B1 (ko) 2012-11-20
TWI363295B (en) 2012-05-01
EP1836602A4 (en) 2008-11-26
TW200622895A (en) 2006-07-01
US7769794B2 (en) 2010-08-03
WO2006036290A1 (en) 2006-04-06

Similar Documents

Publication Publication Date Title
KR101203274B1 (ko) 파일 시스템 쉘
JP4861988B2 (ja) ファイルシステムシェルブラウザを実現するコンピュータ・プログラム
US7188316B2 (en) System and method for viewing and editing multi-value properties
US7496583B2 (en) Property tree for metadata navigation and assignment
US8108430B2 (en) Carousel control for metadata navigation and assignment
US7409644B2 (en) File system shell
US8104048B2 (en) Browsing or searching user interfaces and other aspects
KR100991027B1 (ko) 파일 시스템 셸
US20050188174A1 (en) Extensible creation and editing of collections of objects
KR20080002815A (ko) 전자 정보의 탐색, 내비게이션 및 검색

Legal Events

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

Payment date: 20151016

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 7