KR101597858B1 - 동적으로 변화하는 검색 코퍼스의 인덱싱 및 검색을 위한 시스템 및 방법 - Google Patents

동적으로 변화하는 검색 코퍼스의 인덱싱 및 검색을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101597858B1
KR101597858B1 KR1020117015958A KR20117015958A KR101597858B1 KR 101597858 B1 KR101597858 B1 KR 101597858B1 KR 1020117015958 A KR1020117015958 A KR 1020117015958A KR 20117015958 A KR20117015958 A KR 20117015958A KR 101597858 B1 KR101597858 B1 KR 101597858B1
Authority
KR
South Korea
Prior art keywords
search
user
document
documents
ranking
Prior art date
Application number
KR1020117015958A
Other languages
English (en)
Other versions
KR20110120865A (ko
Inventor
쿠틀레이 토파탄
지펭 왕
루드라 라즈 미트라
마이클 미에크지슬라브 말리노브스키
웨이예 장
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20110120865A publication Critical patent/KR20110120865A/ko
Application granted granted Critical
Publication of KR101597858B1 publication Critical patent/KR101597858B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Document Processing Apparatus (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하기 위한 도구들 및 기법들이 제공된다. 이들 도구들은 문서들을 네트워크를 통하여 온라인 문서 리포지토리에 업로드하라는 요청들을 수신하고, 업로드를 용이하게 하는 사용자 인터페이스를 제시할 수 있다. 사용자 인터페이스는 적어도 하나의 다른 사용자에게 문서들 내에 포함된 콘텐트를 검색하는 허가를 주는 사용자 활성화에 응답하는 디바이스들을 포함할 수 있다. 사용자 인터페이스를 통하여, 이들 도구들은 허가를 주는 것에 관련된 사용자로부터의 선택들을 수신할 수 있고, 문서들은 사용자 선택들을 통합하는 공유 파라미터들과 연관된다. 마지막으로, 도구들은 업로드될 문서들의 ID(identification)들을 수신할 수 있다.

Description

동적으로 변화하는 검색 코퍼스의 인덱싱 및 검색{INDEXING AND SEARCHING DYNAMICALLY CHANGING SEARCH CORPORA}
다양한 데이터 저장소들에 대하여 키워드 검색을 수행하기 위한 각종 검색 엔진들이 현재 이용가능하다. 그러나, 이들 검색 엔진들은 일반적으로 사용자들을 익명의 엔티티들로 간주하고, 전형적으로 어느 특정한 사용자들이 주어진 질의를 수행하고 있는지에 관계 없이 동일한 결과들을 리턴한다.
동적으로 변화하는 검색 코퍼스(search corpora)를 인덱싱하고 검색하기 위한 도구들 및 기법들이 제공된다. 이들 도구들은 문서들을 네트워크를 통하여 온라인 문서 리포지토리(online document repository)에 업로드하라는 요청들을 수신하고, 업로드를 용이하게 하는 사용자 인터페이스를 제시할 수 있다. 사용자 인터페이스는 적어도 하나의 다른 사용자에게 문서들 내에 포함된 콘텐트를 검색하는 허가를 주는 사용자 활성화에 응답하는 디바이스들을 포함할 수 있다. 사용자 인터페이스를 통하여, 이들 도구들은 허가를 주는 것에 관련된 사용자로부터의 선택들을 수신할 수 있고, 문서들은 사용자 선택들을 통합하는 공유 파라미터들과 연관된다. 마지막으로, 도구들은 업로드될 문서들의 ID(identification)들을 수신할 수 있다.
전술한 대상은 컴퓨터 제어 장치, 컴퓨터 프로세스, 컴퓨팅 시스템 또는 컴퓨터 판독가능 매체와 같은 제조물로서 구현될 수 있다는 것을 인식해야 한다. 이들 특징 및 다양한 다른 특징들은 다음의 상세한 설명을 읽고 연관된 도면들을 정밀하게 살피는 것으로부터 명백할 것이다.
이 개요는 아래 상세한 설명에서 더 설명되는 개념들 중 선택된 것을 간소화한 형태로 소개하기 위해 제공된다. 이 개요는 청구 대상의 중요한 특징들 또는 본질적인 특징들을 식별하고자 의도하는 것이 아니고, 이 개요가 청구 대상의 범위를 제한하기 위해 사용될 것을 의도하는 것도 아니다. 또한, 청구 대상은 이 명세서의 임의의 부분에서 지적된 임의의 또는 모든 불리한 점들을 해결하는 구현들에 제한되지 않는다.
도 1은 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것에 관련된 도구들 및 기법들을 구현하기에 적합한 시스템들 또는 동작 환경들을 예시하는 조합된 블록 및 흐름도이다.
도 2는 문서들과 연관될 수 있는 공유 허가들의 예들을 예시하는 블록도이다.
도 3은 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것과 관련하여 사용자 디바이스들에 의해 수행되는 프로세스 흐름들뿐만 아니라, 도 2에 도시된 공유 허가들을 사용자들이 지정할 수 있는 사용자 인터페이스들(UI들)을 예시하는 조합된 블록 및 흐름도이다.
도 4는 동적 인덱싱 및 검색 시스템에 의해 수행되는 바와 같은 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것에 관련된 프로세스 흐름들을 예시하는 흐름도이다.
도 5는 사용자 디바이스들로부터 네트워크를 통하여 문서 및 인덱스 저장 엘리먼트로의 문서 흐름들을 예시하는 조합된 블록 및 흐름도이다.
도 6은 상이한 사용자들과 연관된 상이한 검색 코퍼스를 예시하는, 문서 및 인덱스 저장 엘리먼트에 관련된 추가 상세를 제공하는 블록도이다.
도 7은 특정한 문서들과 연관된 상이한 동적 네트워크들 및 폴더들을 예시하는, 문서 및 인덱스 저장 엘리먼트에 관련된 추가 상세를 제공하는 블록도이다.
도 8은 사용자 디바이스들에 의해 제공된 검색 인터페이스들 및 도구들을 예시할 뿐만 아니라, 사용자들이 주어진 검색에 대한 검색 범위 파라미터들을 정의할 수 있는 예시적인 UI들을 예시하는 블록도이다.
도 9는 사용자 디바이스들 및 동적 인덱싱 및 검색 시스템들이 동적으로 변화하는 검색 코퍼스를 검색하는 것과 관련하여 협력할 수 있는 프로세스 흐름들을 예시하는 흐름도이다.
도 10은 시간에 따라 수행되는 다양한 예시적인 검색들 및 업로드들에 대한 검색 코퍼스의 동적 속성을 예시하는 타임라인 다이어그램이다.
다음의 상세한 설명은 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하기 위한 기술들을 제공한다. 여기에 설명된 대상은 컴퓨터 시스템 상의 운영 체제 및 애플리케이션 프로그램들의 실행과 함께 실행되는 프로그램 모듈들의 일반적인 컨텍스트를 제시하지만, 당업자들은 다른 유형의 프로그램 모듈들과 조합하여 다른 구현들이 수행될 수 있다는 것을 인지할 것이다. 일반적으로, 프로그램 모듈들은 특정 태스크들을 수행하거나 특정 추상 데이터 유형들을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 및 다른 유형의 구조를 포함한다. 또한, 당업자들이라면, 여기에 설명된 대상은 핸드-헬드 디바이스들, 멀티프로세서 시스템들, 마이크로프로세서 기반 또는 프로그래머블 컨슈머 일렉트로닉스, 미니컴퓨터들, 메인프레임 컴퓨터들 등을 포함하는 다른 컴퓨터 시스템 구성들과 함께 실시될 수 있다는 것을 인식할 것이다.
다음의 상세한 설명은 그 일부를 구성하고 특정한 예시적인 구현들을 예시로서 보여주는 첨부 도면들을 참조한다. 이하, 몇몇 도면들에 걸쳐서 동일한 번호들이 동일한 엘리먼트들을 나타내는 도면들을 참조하여, 이 설명은 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하기 위한 다양한 도구들 및 기법들을 논의한다.
도 1은 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것을 구현하기에 적합한 시스템들 또는 동작 환경들(일반적으로 100으로 표시됨)을 예시한다. 도 1을 더 상세히 살펴보면, 임의의 수의 사용자들(102a, 102b 및 102c)(총괄하여, 사용자들(102))이 대응하는 사용자 디바이스들(104a, 104b 및 104c)(총괄하여, 사용자 디바이스들(104))과 상호작용할 수 있다. 도 1은 이들 상호작용들을 각각 106a, 106b 및 106c(총괄하여, 상호작용들(106))에서 나타낸다. 일반적으로, 이들 상호작용들(106)은 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것과 관련하여 사용자들에 의해 디바이스들(104)에 발행된 커맨드들, 이들 커맨드들에 대한 응답들 등을 나타낼 수 있다.
상호작용들(106)과 관련하여, 사용자 디바이스들(104)은 하나 이상의 네트워크들(108)을 통하여 하나 이상의 동적 인덱싱 및 검색 시스템들(110)과 통신할 수 있다. 더 구체적으로, 사용자 디바이스들(104)을 통하여 동작하는 사용자들(102)은 각각의 문서들(112a-112c)(총괄하여, 업로드된 문서들(112))을 인덱싱 및 검색 시스템(110)에 의해 제공된 온라인 문서 저장소(111)에 업로드할 수 있다. 그 후, 인덱싱 프로세스들은 이들 업로드된 문서들(112)을 검색하고 후속 검색을 위해 그것들을 인덱싱할 수 있다. 일단 업로드된 문서들(112)이 인덱싱되면, 사용자들은 이들 업로드된 문서들(112)에 대하여 검색을 수행할 수 있다. 시스템(110)은 임의의 수의 사용자 디바이스들(104)이 액세스할 수 있는 온라인 문서 리포지토리를 제공할 수 있다.
네트워크들(108)을 더 상세히 살펴보면, 이들 네트워크들(108)은 하나 이상의 통신 네트워크들을 나타낼 수 있다. 예를 들면, 네트워크들(108)은 LAN(local area network), WAN(wide area network) 및/또는 PAN(personal area network)(예를 들면, 블루투스 타입 네트워크)을 나타낼 수 있고, 이들 중 어느 것이든 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것을 용이하게 하기 위해 단독으로 또는 조합하여 동작할 수 있다. 도 1에 도시된 네트워크들(108)은 또한 이들 네트워크들을 구현하는 것과 연관된 임의의 하드웨어(예를 들면, 어댑터, 인터페이스, 케이블 등), 소프트웨어 또는 펌웨어를 나타내고, 또한 이들 네트워크들이 동작할 수 있는 임의의 프로토콜들을 나타낼 수 있다.
인덱싱 및 검색 시스템들(110)을 더 상세히 살펴보면, 도 1에 도시된 이들 시스템들(110)은 임의의 수의 그러한 시스템들을 나타낼 수 있다. 인덱싱 및 검색 시스템들(110)은 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것과 관련하여 임의의 수의 사용자 디바이스들(104)과 협력할 수 있다. 예를 들면, 인덱싱 및 검색 시스템들(110) 및 사용자 디바이스들(104)은 상이한 구현들에 대하여 적절한 것으로서 클라이언트-서버 관계, 피어-투-피어 관계 또는 임의의 다른 적합한 관계로 협력할 수 있다.
시스템들(110)을 더 상세히 살펴보면, 이들 시스템들은 특정한 구현들에 대하여 적절한 것으로서 선택된 특정한 유형 또는 아키텍처를 가질 수 있는 하나 이상의 프로세서들(114)을 포함할 수 있다. 프로세서들(114)은 프로세서들(114)과의 호환성을 위해 선택된 하나 이상의 버스 시스템들(116)에 연결될 수 있다.
시스템들(110)은 또한 버스 시스템들(116)에 연결되는 컴퓨터 판독가능 저장 매체 또는 매체들(118)의 하나 이상의 인스턴스들을 포함할 수 있다. 버스 시스템들(116)은 프로세서들(114)이 컴퓨터 판독가능 저장 매체(118)로/로부터 코드 및/또는 데이터를 판독하는 것을 가능하게 할 수 있다. 매체(118)는 반도체, 자기 재료, 광학 등을 포함하지만 이에 제한되지 않는 임의의 적합한 기술을 이용하여 구현되는 저장 엘리먼트들의 형태의 장치를 나타낼 수 있다. 매체(118)는, RAM, ROM, 플래시 또는 다른 유형들로 분류되든지 간에, 메모리 컴포넌트들을 포함할 수 있고, 또한 하드 디스크 드라이브를 나타낼 수 있다.
저장 매체(118)는, 프로세서(114)로 로딩되어 실행되는 경우, 시스템들(110)로 하여금 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것에 관련된 다양한 기법들을 수행하게 하는 명령어들의 하나 이상의 모듈들을 포함할 수 있다. 이 설명 전체에 걸쳐 상술되는 바와 같이, 이들 명령어들의 모듈들은 또한 시스템들(110)이 이 설명 전체에 걸쳐 더 상세히 논의된 컴포넌트들, 흐름들 및 데이터 구조들을 이용하여 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것을 제공할 수 있는 다양한 도구들 또는 기법들을 제공할 수 있다. 예를 들면, 저장 매체(118)는 동적 인덱싱 및 검색 도구들(120)을 구현하는 하나 이상의 소프트웨어 모듈들을 포함할 수 있다. 이들 인덱싱 및 검색 도구들(120)은 일반적으로 여기서 시스템들(110)에 할당된 다양한 기능들을 수행하도록 프로그램되거나 구성된 소프트웨어를 나타낸다.
저장 매체(118)는 또한 업로드된 문서들(112)을 저장하기 위한 온라인 문서 저장 엘리먼트들(111)의 하나 이상의 인스턴스들을 포함할 수 있다. 저장 매체는 또한 인덱스 저장 엘리먼트들(122)을 포함할 수 있다. 후속 도면들은 저장 엘리먼트들(111 및 122)을 더 상세히 설명한다. 그러나, 개괄하여, 도 1에 도시된 문서 저장 엘리먼트들(111)은 일반적으로 다양한 문서들, 허가 레벨들, 공유 명세들 등을 나타내는 데이터 구조들에 대한 저장 위치들을 나타낸다. 인덱스 저장 엘리먼트들(122)은 일반적으로 업로드된 문서들(112)의 검색을 용이하게 하는 인덱스들에 대한 저장 위치들을 나타낸다.
도 2는 사용자 디바이스들(예를 들면, 도 1의 104, 도 2로 이월됨)의 컴포넌트들(일반적으로 200으로 표시됨)을 예시한다. 도 2는 또한 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것과 관련하여 문서들과 연관될 수 있는 공유 허가들의 예들을 예시한다.
사용자 디바이스들(104)을 더 상세히 살펴보면, 이들 디바이스들은 특정한 구현들에 대한 적절한 것으로서 선택된 특정한 유형 또는 아키텍처를 가질 수 있는 하나 이상의 프로세서들(202)을 포함할 수 있다. 사용자 디바이스들(104) 내의 프로세서들(202)은 인덱싱 및 검색 시스템들(110) 내의 프로세서들(114)과 동일한 유형 또는 아키텍처일 수도 있고 동일한 유형 또는 아키텍처가 아닐 수도 있다. 프로세서들(202)은 프로세서들(202)과의 호환성을 위해 선택된 하나 이상의 버스 시스템들(204)에 연결될 수 있다. 사용자 디바이스들(104) 내의 버스 시스템들(204)은 인덱싱 및 검색 시스템들(110)에 대하여 선택된 버스 시스템들(116)과 동일한 유형 및 아키텍처일 수도 있고 동일한 유형 및 아키텍처가 아닐 수도 있다.
사용자 디바이스들(104)은 또한 버스 시스템들(204)에 연결되는 컴퓨터 판독가능 저장 매체 또는 매체들(206)의 하나 이상의 인스턴스들을 포함할 수 있다. 버스 시스템들(204)은 프로세서들(202)이 컴퓨터 판독가능 저장 매체(206)로/로부터 코드 및/또는 데이터를 판독하는 것을 가능하게 할 수 있다. 매체(206)는 반도체, 자기 재료, 광학 등을 포함하지만 이에 제한되지 않는 임의의 적합한 기술을 이용하여 구현되는 저장 엘리먼트들의 형태의 장치를 나타낼 수 있다. 매체(206)는, RAM, ROM, 플래시 또는 다른 유형들로 분류되든지 간에, 메모리 컴포넌트들을 포함할 수 있고, 또한 하드 디스크 드라이브를 나타낼 수 있다.
저장 매체(206)는, 프로세서(202)로 로딩되어 실행되는 경우, 사용자 디바이스들(104)로 하여금 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것에 관련된 다양한 기법들을 수행하게 하는 명령어들의 하나 이상의 모듈들을 포함할 수 있다. 이 설명 전체에 걸쳐 상술되는 바와 같이, 이들 명령어들의 모듈들은 또한 사용자 디바이스들(104)이 이 설명 전체에 걸쳐 더 상세히 논의된 컴포넌트들, 흐름들 및 데이터 구조들을 이용하여, 동적으로 변화하는 검색 코퍼스에 걸쳐서 인덱싱하고 검색할 수 있는 다양한 도구들 또는 기법들을 제공할 수 있다. 예를 들면, 저장 매체(206)는 문서 업로드 도구들(208), 일반적으로, 사용자 디바이스들(104)이 적합한 인덱싱 및 검색 시스템들(예를 들면, 도 1의 110) 상의 저장 및 인덱싱을 위해 네트워크(예를 들면, 도 1의 108)를 가로질러 임의의 수의 문서들(210)을 업로드하는 것을 가능하게 하도록 동작하는 소프트웨어를 나타내는 문서 업로드 도구들을 구현하는 하나 이상의 소프트웨어 모듈들을 포함할 수 있다.
업로드된 문서들(210)은 일반적으로 212에서 표시된 공유 허가들과 연관될 수 있다. 공유 허가들(212)은 사용자들(102)에게 제시될 수 있는 적합한 사용자 인터페이스들을 이용하여 채워질(populated) 수 있다. 도 3은 이들 사용자 인터페이스의 예들을 예시하고, 도 2의 설명을 끝낸 후에 아래 논의될 것이다.
공유 허가들(212)을 더 상세히 살펴보면, 도 2는 사용자가 문서(210)를 업로드할 때 지정할 수 있는 공유 및/또는 검색 허가들의 몇몇 예들을 예시한다. 예를 들면, 일반적으로 214에서 나타내어진 바와 같이, 업로드하는 사용자는 주어진 문서(210)가 임의의 다른 사용자들과 공유되거나 임의의 다른 사용자들에 의해 검색가능하지 않아야 한다고 지정할 수 있다. 이러한 방식으로, 업로드하는 사용자는 그의 업로드된 문서들(210) 중 적어도 일부를 사적인 것으로서 유지할 수 있다.
216에서 나타내어진 바와 같이, 업로드하는 사용자는 업로드된 문서들 내에서 액세스하고, 편집하고/하거나, 검색하는 허가를 받은 하나 이상의 다른 개인 사용자들을 식별할 수 있다. 더 구체적으로, 블록 216에서 주어진 액세스 허가들은 개인들이 멤버들일 수 있는 그룹 또는 다른 집합적인 구조에 허가를 주는 것과 구별되는, 구체적으로 식별되거나 열거된 사람들에게 주어지는 허가들을 나타낼 수 있다.
218에서 나타내어진 바와 같이, 업로드하는 사용자는 하나 이상의 그룹들 또는 다른 집합적인 구조들을 식별할 수 있고, 이들 그룹들 또는 다른 구조들은 임의의 수의 구성원들 또는 멤버들을 포함할 수 있다. 따라서, 업로드하는 사용자 이외의 주어진 사용자는 블록 216에서 명시적인 식별 또는 열거를 통해 액세스 허가들을 받을 수 있고, 또는 블록 218에서 액세스를 받는 그룹 내의 멤버십을 통하여 액세스 허가들을 상속할 수 있다.
블록 220에서 나타내어진 바와 같이, 업로드하는 사용자는 업로드된 문서에 대한 공유 및/또는 검색 허가들을 받게 될 멤버들을 갖는 도메인을 식별할 수 있다. "도메인"의 개념을 더 상세히 살펴보면, 기업 컨텍스트(예를 들면, ABC Inc.라고 명명된 가상 회사)에서, 도메인의 멤버들은 이메일 주소들(예를 들면, john.smith@abc.com) 또는 사용자 로그인들이 그 기업과의 제휴를 나타내는 사용자들을 포함할 수 있다. 일부 경우에, 업로드하는 사용자는 업로드된 문서들을 도메인과 연관된 사용자들의 일부 서브세트와 공유하기로 결정할 수 있다. 예를 들면, 업로드하는 사용자는 업로드된 문서들을 "emp*@abc.com"에 제한하는 공유 허가들을 지정할 수 있고, 그에 따라 이메일 주소들이 "emp"로 시작하는 모든 사용자들은 업로드된 문서에 액세스할 수 있다. 이러한 방식으로, 업로드하는 사용자는 이 도메인의 일부 또는 모든 멤버들이 업로드된 문서 내에서 공유 및/또는 검색하는 것을 가능하게 할 수 있다.
블록 222에서 나타내어진 바와 같이, 업로드하는 사용자는 또한 업로드된 문서가 인덱싱 및 검색 시스템(110)의 임의의 사용자들에 의한 검색 및/또는 공유를 위해 자유롭게 이용가능하다는 것을 지시할 수 있다. 이러한 방식으로, 업로드하는 사용자는 업로드된 문서가 이들 다른 사용자들 중 임의의 사용자에게 "공개적으로" 이용가능하게 할 수 있다.
도 3은 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것과 관련하여 사용자 디바이스들에 의해 수행되는 프로세스 흐름들(일반적으로 300으로 표시됨)을 예시한다. 도 3은 또한 도 2에 도시된 바와 같이 업로드하는 사용자들이 공유 및/또는 검색 허가들을 지정할 수 있는 사용자 인터페이스들(UI들)(일반적으로 302로 표시됨)을 예시한다.
도 3을 더 상세히 살펴보면, 프로세스 흐름들(300)은 문서 업로드 도구들(208)에 의해 수행되는 처리를 더 상세히 설명하는 것으로서 이해될 수 있다. 그러나, 이 설명의 구현은 이 설명의 범위 및 사상으로부터 벗어나지 않고 다른 컴포넌트들과 함께 프로세스 흐름들(300)의 적어도 부분들을 수행할 수 있다.
블록 304는 주어진 업로드하는 사용자(예를 들면, 도 1의 102)로부터 하나 이상의 문서들을 업로드하라는 요청을 수신하는 것을 나타낸다. 도 2는 210에서 그러한 문서들의 예들을 제공한다.
블록 306은 블록 304에서 수신된 요청에 응답하여 업로드하는 사용자에게 적합한 사용자 인터페이스(UI)를 제공하는 것을 나타낸다. 예를 들면, 블록 306은 UI(302)를 제시하는 것을 포함할 수 있다. UI(302)를 더 상세히 살펴보면, 그것은 업로드될 파일을 선택하기 위한 문서 선택 디바이스(308)를 포함할 수 있다. 예를 들면, 문서 선택 디바이스(308)는 사용자가 업로드된 문서와 연관된 경로 및 명칭을 직접 입력하는 것을 가능하게 할 수 있고, 또는 사용자가 디렉터리 구조 내에서 업로드된 문서에 대해 브라우징하여 그 업로드된 문서를 선택하는 것을 가능하게 할 수 있다.
UI(302)는 업로드된 문서가 업로드하는 사용자에게 사적으로 유지되어야 할 것을 지시하는 사용자 입력 또는 활성화에 응답하는 디바이스(310)를 포함할 수 있다. 여러가지 가능한 구현들에서, 디바이스(310)는 사용자가 문서를 업로드하고 있을 때 업로드하는 사용자에게 제시될 수 있고, 또는 사용자가 문서를 업로드한 후에 업로드하는 사용자에게 제시될 수 있다. 예를 들면, 디바이스(310)를 활성화함으로써, 업로드하는 사용자는, 일단 업로드된 문서가 인덱싱 및 검색 시스템(110)에 저장되면, 업로드된 문서가 임의의 다른 사용자들과 공유되지 않거나 그들에 의해 검색가능하지 않아야 하는 것을 지정할 수 있다.
UI(302)는 업로드된 문서가 인덱싱 및 검색 시스템(110) 상의 하나 이상의 구체적으로 열거된 또는 식별된 다른 사용자들과 공유될 수 있다는 것을 지시하는 사용자 입력 또는 활성화에 응답하는 디바이스(312)를 포함할 수 있다. 예를 들면, 업로드하는 사용자는 디바이스(312)를 체크하거나 다른 식으로 활성화할 수 있고, 그 후 업로드된 문서에 대한 액세스가 허가되는 다른 사용자들을 구체적으로 식별하는 정보를 필드(314)에 입력할 수 있다. 필드(314)에 입력된 정보는 이메일 주소들, 인덱싱 및 검색 시스템(110)에 의해 발행된 고유의 사용자 식별자들 또는 다른 적합한 식별 정보를 포함할 수 있다. 일부 시나리오들에서, 업로드하는 사용자는 필드(314)를 선택하고 그 필드에 문자들을 입력할 수 있다. 사용자가 필드(314)에 문자들을 입력할 때, 문서 업로드 도구들(208)은 입력된 문자들과 매칭하는 식별자들을 갖는 다른 사용자들의 목록을 필터링하며 업데이트할 수 있다.
UI(302)는 다른 사용자들의 하나 이상의 그룹들이 업로드된 문서 내에서 공유 및/또는 검색할 수 있는 것을 지시하는 사용자 입력 또는 활성화에 응답하는 디바이스(316)를 포함할 수 있다. 예를 들면, 업로드하는 사용자는 디바이스(316)를 체크하거나 다른 식으로 활성화할 수 있고, 그 후 업로드된 문서에 액세스할 수 있는 다른 사용자들의 그룹 또는 그룹들을 식별하는 정보를 필드(318)에 입력할 수 있다. 필드(314)에 대한 상기 설명과 유사하게, 필드(318)는 이 필드에 입력된 문자들에 응답할 수 있고, 그에 따라 필드(318)는 입력된 문자들과 매칭하는 미리 정의된 그룹들의 필터링된 목록을 제시한다.
디바이스(320)는 업로드된 문서가 하나 이상의 주어진 도메인들과 연관되는 사용자들과 공유되거나 그 사용자들에 의해 검색가능할 수 있는 것을 지시하는 사용자 입력 또는 활성화에 응답한다. 예를 들면, 업로드하는 사용자는 디바이스(320)를 체크하거나 다른 식으로 활성화할 수 있고, 업로드된 문서가 공유되어야 할 도메인들을 식별하는 정보를 필드(322)에 입력할 수 있다. 상기 필드들(314 및 318)과 같이, 필드(322)는 또한 필드(322)에 입력된 임의의 문자들에 기초하여 판독하기 어려운 도메인들을 제시하기 위한 필터링 기능을 제공할 수 있다.
디바이스(324)는 업로드된 문서가 인덱싱 및 검색 시스템(110)에 정당하게 액세스할 수 있는 임의의 사용자들과 공유되거나 그 사용자들에 의해 검색가능해야 하는 것을 지시하는 사용자 입력 또는 활성화에 응답한다. 이러한 방식으로, 업로드하는 사용자는 디바이스(324)를 활성화함으로써 주어진 업로드된 문서가 인덱싱 및 검색 시스템(110)에 걸쳐서 공개적으로 액세스가능하고 검색가능하게 할 수 있다.
도 3은 주어진 업로드된 문서에 대하여 업로드하는 사용자에 의해 표현된 공유 또는 검색 선호들(326)로서 디바이스들(310-324)을 총괄하여 나타낸다. 주어진 업로드된 문서에 대하여, 상이한 컨텍스트들에서 적절한 것으로서, 선호들(326) 중 하나 이상이 활성화될 수 있다는 것에 유의한다. 예를 들면, 주어진 업로드된 문서를 사적인 것으로서 유지하도록 디바이스(310)가 활성화되는 경우, 나머지 디바이스들(312-324)은 비활성화될 수 있다(예를 들면, 그레이-아웃되고(grayed-out) 사용자 선택에 응답하지 않을 수 있다). 마찬가지로, 주어진 업로드된 문서를 제한 없이 공개적으로 공유하도록 디바이스(324)가 활성화되는 경우, 디바이스들(310-322)은 비활성화될 수 있다.
디바이스들(312-322)에 관하여, 사용자는, 사용자가 주어진 업로드된 문서를 어떻게 관리하기를 원하는지에 따라서, 이들 디바이스들 중 하나 이상을 활성화할 수 있다. 예를 들면, 사용자는 2명의 상이한 구체적으로 명명된 사용자들과 업로드된 문서를 공유하기를 원할 수 있고, 디바이스(312)를 활성화하고 필드(314)에서 명명된 사용자들을 식별함으로써 그렇게 할 수 있다. 이들 2명의 구체적으로 명명된 사용자들에 추가하여, 사용자는 디바이스(316)를 활성화하고 필드(318)에서 원하는 그룹들을 식별함으로써 사용자들의 하나 이상의 그룹들과 업로드된 문서를 공유할 수 있다. 필드(314)에서 식별된 2명의 구체적으로 명명된 사용자들은 필드(318)에서 식별된 그룹들의 멤버들일 수도 있고 멤버들이 아닐 수도 있다. 유사하게, 업로드된 문서는 디바이스(320)를 활성화하고 필드(322)를 채움으로써 특정한 도메인과 연관된 사용자들과 공유될 수 있다. 일반적으로, 사용자들은 특정한 업로드된 문서들에 대하여 적절한 것으로서 디바이스들(312, 316 및 320)을 함께 또는 개별적으로 활성화하거나 비활성화할 수 있다.
프로세스 흐름들(300)로 리턴하여, 블록 328은 UI(302)에 의해 제공된 다양한 도구들을 통하여 사용자에 의해 선택되고 입력된 공유/검색 파라미터들(326)을 수신하는 것을 나타낸다. 다음으로, 블록 330은 인덱싱 및 검색 시스템(110)에 문서를 업로드하는 것을 나타낸다. 업로드된 문서는 공유/검색 선호들(326)과 연관될 수 있고, 그에 따라 인덱싱 및 검색 시스템(110)는 업로드된 문서를 나중의 검색을 위해 적절하게 인덱싱할 수 있다.
도 4는 동적 인덱싱 및 검색 시스템(110)에 의해 수행되는 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하는 것에 관련된 프로세스 흐름들(일반적으로 400으로 표시됨)을 예시한다. 더 구체적으로, 프로세스 흐름들(400)은 도 1에 도시된 동적 인덱싱 및 검색 도구들(120)을 더 상세히 설명하는 것으로서 이해될 수 있다. 그러나, 프로세스 흐름들(400)은 동적 인덱싱 및 검색 시스템(110)과 관련하여 설명되지만, 이 설명의 구현들은 이 설명의 범위 및 사상으로부터 벗어나지 않고 다른 컴포넌트들과 함께 이들 프로세스 흐름들(400)의 적어도 부분들을 수행할 수 있다.
프로세스 흐름들(400)을 더 상세히 살펴보면, 블록 402은 주어진 업로드된 문서를 수신하는 것을 나타낸다. 예를 들면, 이전의 도면들과 함께 논의된 시나리오들을 계속하여, 블록 402는 도 2에 도시된 문서(210)를 수신하는 것을 나타낼 수 있다. 또한, 블록 402는 업로드된 문서를 하나 이상의 중간 네트워크들(예를 들면, 도 1의 108)을 통하여 수신하는 것을 포함할 수 있다.
블록 404는 업로드된 문서에 대하여 지정된 임의의 적용가능한 공유/검색 선호들을 추출하는 것을 나타낸다. 공유/검색 선호들의 예들은 UI 디바이스들(310-324)을 이용하여 정의될 수 있는 것으로서 도 3에서 326으로 도시되어 있다.
블록 406은 후속 검색을 지원하기에 적절한 것으로서 업로드된 문서를 인덱싱하는 것을 나타낸다. 예를 들면, 블록 406은 업로드된 문서의 콘텐트를 처리하고 업로드된 문서에 대한 검색 인덱스를 형성하는 것을 포함할 수 있다. 검색 인덱스는 업로드된 문서 내에서 발견되는 키워드들을 포함할 수 있고, 업로드된 문서 내에서 이들 키워드들이 출현하는 곳을 지시할 수 있다. 따라서, 주어진 수신되는 검색 요청들이 이들 키워드들의 출현들을 포함하는 경우, 검색 인덱스는 업로드된 문서 내에서 발견된 이들 키워드들의 임의의 위치들을 효율적으로 리턴할 수 있고, 또한 문서 자체를 리턴할 수 있다.
또한, 블록 406은, 일반적으로 블록 408에서 나타내어진 바와 같이, 업로드된 문서와 연관된 소유자 레코드를 채우는 것을 포함할 수 있다. 여기서 사용되는 바와 같이, 문서의 "소유자"는 인덱싱 및 검색 시스템(110)에 문서를 업로드하는 사용자를 지칭한다. 일반적으로, 업로드된 문서의 소유자는 그 업로드된 문서와 연관된 공유/검색 선호들(326)을 지정한다.
블록 406은 또한 블록 404에서 추출된 공유/검색 선호들을 분석하여, 업로드된 문서가 문서의 소유자 이외의 사용자들에 의해 공유되거나 검색가능해야 하는지 여부를 판정하는 것을 포함할 수 있다. 도 4는 일반적으로 판정 블록 410에서의 이 분석을 나타낸다. 예를 들면, 블록 410은 공유/검색 선호들(326) 또는 업로드된 문서를 참조하여, 소유자가 문서를 업로드할 때 디바이스(310)를 활성화했는지 여부를 판정할 수 있다.
판정 블록 410으로부터, 업로드된 문서가 소유자 이외의 임의의 사용자에 의해 공유되거나 검색가능하지 않아야 하는 경우에는, 프로세스 흐름들(400)은 아니오(No) 분기(412)를 취하여 블록 406으로 리턴할 수 있다(일반적으로 414에서 나타내어짐). 그러나, 판정 블록 410으로 리턴하여, 업로드된 문서가 소유자 이외의 적어도 하나의 사용자에 의해 공유되거나 검색가능해야 하는 경우에는, 프로세스 흐름들(400)은 예(Yes) 분기(416)를 취하여 블록 418로 진행할 수 있다. 블록 418은 다른 사용자들이 업로드된 문서를 검색할 수 있다는 것을 지시하도록 인덱싱 및 검색 시스템(110)에 의해 내부에 유지된 레코드들을 채우는 것을 나타낸다. 또한, 다른 프로세스 흐름들은 어느 다른 사용자들이 업로드된 문서를 보거나 편집할 수 있는지를 지시하도록 이들 레코드들을 더 채울 수 있다. 그 후, 프로세스 흐름들(400)은 블록 414를 통해 블록 406으로 리턴할 수 있다.
블록 406을 완료한 후에, 프로세스 흐름들(400)은 업로드된 문서와 연관된 공유/검색 선호들에 응답하여 하나 이상의 검색 코퍼스를 업데이트하는 것을 나타내는 블록 420으로 진행할 수 있다. 예를 들면, 422에서 나타내어진 바와 같이, 소유자가 새로운 문서를 제공하는 경우, 소유자와 연관된 검색 코퍼스는 적어도 그 새로운 업로드된 문서를 포함할 수 있다. 또한, 소유자가 적어도 하나의 다른 사용자가 업로드된 문서에 액세스할 수 있다고 식별하는 경우, 다른 사용자에 대한 검색 코퍼스는 또한 적어도 업로드된 문서를 포함하도록 업데이트될 수 있다.
다른 시나리오들에서, 소유자의 관점으로부터, 하나 이상의 다른 사용자들이 소유자가 그 다른 사용자들에 의해 업로드된 문서들에 액세스하는 것을 허가할 수 있다. 따라서, 블록 424는, 다른 사용자들이 이 다른 사용자들에 의해 업로드된 문서들을 소유자가 액세스하는 것을 명시적으로 또는 암시적으로 허가하는 경우에, 그러한 문서들을 통합하거나 포함하도록 소유자의 검색 코퍼스를 업데이트하는 것을 나타낸다.
소유자에게 명시적으로 주어지는 허가들의 예들은 다른 사용자들이 소유자를 그 다른 사용자들에 의해 업로드된 문서들에 액세스할 수 있는 것으로서 구체적으로 식별하는 시나리오들을 포함할 수 있다. 소유자에게 암시적으로 주어지는 허가들의 예들은 소유자가 일반적으로 블록 426에서 나타내어진 바와 같이 다른 사용자들에 의해 지정된 그룹의 멤버인 시나리오들을 포함할 수 있다. 그러한 시나리오들에서, 소유자는 그러한 다른 사용자들에 의해 지정된 그룹 내의 멤버십을 통하여 액세스 권리를 상속할 수 있다.
암시적으로 주어지는 허가들의 다른 예로서, 블록 428은 소유자가 도메인과의 연관을 통하여 주어진 업로드된 문서에 대한 공유 또는 검색 권리를 받는 것을 나타낸다. 예를 들면, 다른 사용자들은 주어진 문서를 업로드할 수 있고, 도메인의 모든 멤버들이 업로드된 문서에 액세스할 수 있다고 지정할 수 있다. 또한, 블록 430은 주어진 업로드된 문서의 소유자가 그 문서를 공개적으로 이용가능하게 하는 경우에 그 소유자가 그 문서에 대한 공유 또는 검색 권리를 받는 것을 나타낸다.
도 5는 사용자 디바이스들이 문서들을 네트워크를 통하여 온라인 문서 및 인덱스 저장 엘리먼트들에 업로드하는 컴포넌트들 및 문서 흐름들(일반적으로 500으로 표시됨)을 예시한다. 도 5를 더 상세히 살펴보면, 이 도면은 104a, 104b 및 104c에서 사용자 디바이스들의 예들을 이월한다. 도 5는 또한 108에서의 대표적인 네트워크, 210a 및 210c에서의 대표적인 업로드된 문서들 및 122에서의 대표적인 온라인 문서 저장 엘리먼트를 이월한다.
도 5에 도시된 예시적인 시나리오에서, 사용자 디바이스(104a)는 네트워크(108)를 통하여 문서(210a)를 업로드한다. 업로드된 문서(210a)는 212a에서 이월된 대응하는 허가들의 세트와 연관될 수 있다. 허가들(212a)은 업로드된 문서의 소유자를 식별할 수 있고, 또한 (만일 있다면) 어느 다른 사용자들이 업로드된 문서 내에서 공유하거나 검색하도록 허가되는지를 지시할 수 있다. 도시된 바와 같이, 허가들(212a)은 (도 1에 도시된) 사용자(102a)가 업로드된 문서(210a)를 소유한다는 것과, 사용자(102a)가 사용자(102b)만이 이 업로드된 문서를 공유하거나 검색하는 것을 허용했다는 것을 지시한다.
도 5에 도시된 다른 예에서, 사용자 디바이스(104c)는 문서(210c)를 업로드하는 것으로 도시되어 있고, 이 문서는 대응하는 허가들(212c)과 연관된다. 도시된 바와 같이, 허가들(212c)은 (도 1에 도시된) 사용자(102c)가 업로드된 문서(210c)를 소유한다는 것과, 사용자(102c)가 사용자(102a)만이 이 업로드된 문서를 공유하거나 검색하는 것을 허용했다는 것을 지시한다.
업로드된 문서들(210a 및 210c)이 인덱싱 및 검색 시스템(110)에 도착할 때, 이 시스템(110)은 업로드된 문서들(210)을 온라인 문서 및 인덱스 저장 엘리먼트들(122) 안에 처리할 수 있다. 도 5에 도시된 바와 같이, 저장 엘리먼트들(122)은 업로드된 문서들(210a 및 210c)에 각각 대응하는 표현들(502a 및 502c)(총괄하여, 문서 표현들(502))을 포함할 수 있다.
문서 표현(502a)을 살펴보면, 저장 엘리먼트들(122)은 표현들(504a 및 506a)을 그것과 연관시킬 수 있다. 더 구체적으로, 표현(504a)은 업로드된 문서(210a)의 소유자가 사용자(102a)인 것을 지시할 수 있는 반면, 표현(506a)은 사용자(102a)가 사용자(102b)에게 업로드된 문서(210a)를 공유/검색하는 허가를 주었다는 것을 지시할 수 있다.
유사하게, 문서 표현(502c)을 살펴보면, 저장 엘리먼트들(122)은 표현들(504c 및 506c)을 그것과 연관시킬 수 있다. 더 구체적으로, 표현(504c)은 업로드된 문서(210c)의 소유자가 사용자(102c)인 것을 지시할 수 있는 반면, 표현(506c)은 사용자(102c)가 사용자(102a)에게 업로드된 문서(210c)를 공유/검색하는 허가를 주었다는 것을 지시할 수 있다.
이제 도 6을 살펴보면, 이 도면은 온라인 문서 및 인덱스 저장 엘리먼트들(122)에 관련된 추가적인 상세(일반적으로 600으로 표시됨)를 예시한다. 또한, 도 6은 상이한 사용자들과 연관된 상이한 검색 코퍼스를 예시한다.
도 6을 더 상세히 살펴보면, 새로운 업로드된 문서들이 인덱싱 및 검색 시스템(110)에 도착함에 따라, 업로드된 문서들이 제거, 삭제 또는 수정됨에 따라, 또는 기존의 업로드된 문서들의 공유 허가들이 시간에 따라 변경됨에 따라, 시스템(110)은 온라인 문서 및 인덱스 저장 엘리먼트들(122)을 업데이트할 수 있다. 더 구체적으로, 전술한 이벤트들 중 임의의 것이 시간에 따라 일어날 때, 저장 엘리먼트들(122)은 상이한 사용자들과 연관되는 검색 코퍼스의 표현들을 동적으로 정의하고, 유지하고, 업데이트할 수 있다.
도 6은 복수의 상이한 사용자들에 대하여 유지된 검색 코퍼스를 602에서 총괄하여 나타낸다. 인덱스 저장 엘리먼트들(122)을 더 상세히 살펴보면, 이들 엘리먼트들(122)은 상이한 문서들(예를 들면, 210a 및 210c)의 표현들을 포함할 수 있다. 도시된 예에서, 표현(604a)은 문서(210)에 대응하고 표현(604c)은 문서(210c)에 대응하고, 명확성을 위하여 사용자들(102a-102c)은 도 6에서 생략되어 있다.
다음으로, 문서 표현들(604a-604c)(총괄하여, 문서 표현들(604))은 어느 사용자들이 문서를 소유하고 공유하거나 검색할 수 있는지를 지시할 수 있다. 도시된 예에서, 문서 표현(604a)은 사용자(102a)가 업로드된 문서(210a)를 소유하는 것을 지시하는 소유권 레코드(606a)와 연관된다. 그러나, 이 설명의 구현들에서, 주어진 사용자는 임의의 수의 업로드된 문서들을 소유할 수 있다.
또한, 문서 표현(604a)은 적어도 사용자(102b)가 문서(210a) 내에서 공유하거나 검색하는 것을 문서(210a)의 소유자가 허가한 것을 지시하는 검색 레코드(608a)와 연관된다. 이 예의 이전의 설명을 상기하여, 사용자(102a)는 문서(210a)를 업로드하였고, 허가 정보는 사용자(102c)가 업로드된 문서(210a)에 액세스하는 것을 허용한다. 그러나, 이 설명의 구현에서, 주어진 사용자는 다수의 업로드된 문서들에 액세스하는 허가를 가질 수 있다. 또한, 그러한 구현들에서, 허가의 예들은 도 6에서 예시된 검색 또는 공유 허가들을 넘어서 확장될 수 있다.
도 6에 도시된 예에서, 문서 표현(604c)을 살펴보면, 소유권 레코드(606c)는 사용자(102c)가 문서(210c)를 업로드하였고 소유한다는 것을 지시할 수 있다. 또한, 검색 레코드(608c)는 사용자(102c)가 적어도 사용자(102a)와 문서(210c)를 공유하였고, 적어도 사용자(102a)가 문서(210c)를 검색하는 것을 허가한다는 것을 지시할 수 있다.
도 7은 저장 엘리먼트들(122)에 관련된 추가 상세(일반적으로 700으로 표시됨)를 예시한다. 더 구체적으로, 도 7은 특정한 업로드된 문서들(210)과 연관된 상이한 동적 네트워크들 및 폴더들을 예시한다.
도 7을 더 상세히 살펴보면, 상이한 업로드된 문서들에 대하여 유지된 동적 네트워크들이 702에서 총괄하여 나타내어져 있다. 도 7에 도시된 스냅샷에서, 인덱스 저장 엘리먼트(122)는 사용자(102a)와 연관되는 동적 네트워크(702a), 사용자(102b)와 연관되는 동적 네트워크(702b), 및 사용자(102c)와 연관되는 동적 네트워크(702c)를 정의하고 유지한다.
일반적으로, 이들 동적 네트워크들(702)은, 주어진 사용자들에 대하여, 그 사용자들이 그 문서들을 소유하는 것에 의하든지 또는 그 문서들의 소유자들에 의해 주어진 허가들을 공유하는 것에 의하든지 간에, 검색하도록 허용되는 문서들을 지시할 수 있다. 본 명세서의 다른 곳에서 설명된 바와 같이, 이들 동적 네트워크들은, 새로운 문서들이 추가되거나 또는 삭제됨에 따라, 또는 이들 문서들의 소유자들이 그 문서들의 허가 설정들을 변경함에 따라, 그들의 범위가 시간에 따라 변화할 수 있다는 점에서 "동적"이다.
사용자(102a)에 대응하는 동적 네트워크(702a)를 살펴보면, 이 동적 네트워크(702a)는 사용자(102a)가 적어도 (소유권을 통하여) 문서(210a) 및 (소유하는 사용자(102c)에 의해 주어진 허가를 통하여) 문서(210c)에 액세스하며 그 문서들을 검색하도록 허가되는 것을 지시할 수 있다. 따라서, 도 7에 도시된 스냅샷에서, 문서(210a)와 연관된 동적 네트워크(702a)는 사용자들(102a 및 102b)을 포함한다. 또한, 사용자(102a)가 검색할 수 있는 문서들의 동적 검색 코퍼스(704a)는 그 문서들을 포함한다.
마찬가지로, 사용자(102b)에 대응하는 동적 네트워크(702b)를 살펴보면, 이 동적 네트워크(702b)는 사용자(102b)가 어떠한 문서도 소유하지 않는 것을 지시할 수 있다. 그러나, 도 7에 도시된 예에서, 사용자(102a)는 사용자(102b)에게 문서(210a) 내에서 검색하는 허가를 주었다. 따라서, 도 7에 도시된 스냅샷에서, 사용자(102b)와 연관된 동적 네트워크(702b)는 사용자(102a)를 포함할 수 있다. 또한, 사용자(102b)와 연관된 동적 검색 코퍼스(704b)는 문서(210a)를 포함할 수 있다.
마지막으로, 사용자(102c)에 대응하는 동적 네트워크(702c)는 사용자(102c)가 문서(210c)를 소유하는 것을 지시할 수 있다. 따라서, 도 7에 도시된 스냅샷에서, 사용자(102c)와 연관된 동적 네트워크(702c)는 사용자들(102c 및 102a)을 포함할 수 있다. 또한, 사용자(102c)와 연관된 동적 검색 코퍼스(704c)는 문서(210c)를 포함할 수 있다.
위에 설명된 바와 같이, 사용자(102a)와 연관되는 검색 코퍼스(704a)는 사용자(102a)가 (사용자(102a)에 의해 소유된) 문서(210a) 내에서 그리고 (사용자(102c)에 의해 허가가 주어진) 문서(210c) 내에서 검색할 수 있다는 것을 지시할 수 있다. 그러나, 아래에 더 상세히 설명되는 바와 같이, 사용자(102a)는 주어진 검색을 위하여 그 전체 허가된 검색 코퍼스에 걸쳐서 검색할 수도 있고 검색하지 않을 수도 있다. 따라서, 검색 코퍼스(704a)는 사용자(102a)가 임의의 주어진 시간에 검색하도록 허가되는 문서들의 최대 범위를 지시한다.
이 설명 전체에 걸쳐 논의된 바와 같이, 검색 코퍼스(704a)의 정도 및 범위는, 문서들(210)이 문서 저장소(111) 및 인덱스 저장소(122)에 추가되거나 이들로부터 삭제됨에 따라, 시간에 따라 동적으로 변화할 수 있다. 또한, 이들 문서들(210)의 소유자들은 그들의 문서들(210)에 대하여 설정된 허가들을 조정하거나 수정할 수 있다. 전술한 이벤트들 중 임의의 이벤트 및 가능하게는 다른 이벤트들은 상이한 사용자들(102)에 대한 검색 코퍼스(704)에 일종의 물결 효과(ripple effect)를 미칠 수 있다.
유사하게, 도 7에 도시된 예시적인 스냅샷에서, 사용자(102b)는 어떠한 문서도 업로드하지 않았다. 그러나, 검색 코퍼스(704b)는 사용자(102b)가 주어진 검색을 위하여 그렇게 선택한다면, 문서(210a)에 액세스하는 허가를 받았다는 것을 지시한다. 또한, 검색 코퍼스(704b)는 사용자(102b) 또는 다른 사용자들(102)에 의해 취해진 동작들에 따라서 또한 동적으로 변화할 수 있다.
사용자(102c)에 대하여 유지된 동적 검색 코퍼스(704c)에 대해 유사한 고려사항들이 적용된다. 도 7에 도시된 스냅샷에서, 검색 코퍼스(704c)는 사용자(102c)가 (소유권을 통하여) 문서(210c) 내에서 검색할 수 있다는 것을 지시한다. 그러나, 검색 코퍼스(704c)는 사용자(102c)가 임의의 다른 업로드된 문서들에 액세스하는 허가를 받지 않았다는 것을 지시할 수 있다.
전술한 도면들 도 1 내지 도 7은 사용자 디바이스들로부터 문서들을 업로드하며, 이들 업로드된 문서들을 문서 및 인덱스 저장 엘리먼트들(122) 안에 처리하는 것에 관련된 다양한 기법들을 설명한다. 도 8에서 시작하여, 이 설명은 문서 및 인덱스 저장 엘리먼트들(122) 안에 처리된 이들 업데이트된 문서들을 검색하는 것에 관련된 기법들을 논의하기 시작한다.
도 8은 사용자 디바이스들에 의해 제공된 검색 인터페이스들 및 도구들(일반적으로 800으로 표시됨)을 예시할 뿐만 아니라, 사용자들이 주어진 검색을 위한 검색 범위 파라미터들을 정의할 수 있는 예시적인 UI들을 예시한다. 예시의 편의를 위하여, 도 8은 편의상 206에서 이월된 대표적인 컴퓨터 판독가능 저장 매체를 포함할 수 있는 대표적인 사용자 디바이스를 104에서 이월한다. 도 8에 도시된 바와 같이, 저장 매체(206)는 검색 인터페이스 및 관련 도구들(802)을 제공하는 소프트웨어 모듈들을 포함할 수 있다.
검색 인터페이스 및 도구들(802)을 더 상세히 살펴보면, 이들 도구들(802)은 업로드된 문서들의 검색을 시작하라는 사용자 요청에 응답하여 UI(804)를 제공할 수 있다. 도 8에 도시된 바와 같이, UI(804)는 사용자가 업로드된 문서들에 위치할 하나 이상의 키워드들 또는 다른 용어들을 입력할 수 있는 필드(806)를 포함할 수 있다.
UI(804)는 주어진 사용자가 그가 업로드한 문서들에서만 키워드들을 검색하기를 원한다는 것을 지시하는 사용자 입력 또는 활성화에 응답하는 디바이스(808)를 포함할 수 있다. 다르게 말하여, 디바이스(808)가 활성화되는 경우, 인덱싱 및 검색 시스템(110) 상에서 수행되는 검색은 주어진 사용자에 의해 소유되는 문서들만을 포함할 것이다.
UI(804)는 또한 주어진 사용자가 다른 사용자들이 그들이 업로드한 문서들에 그 주어진 사용자가 액세스하는 것을 허가한 그 문서들에서만 키워드들을 검색하기를 원한다는 것을 지시하는 사용자 입력 또는 활성화에 응답하는 디바이스(810)를 포함할 수 있다. 다르게 말하여, 디바이스(810)가 활성화되는 경우, 인덱싱 및 검색 시스템(110) 상에서 수행되는 검색은 주어진 사용자에 의해 소유되지는 않지만, 그 사용자가 액세스하는 것이 허가된 문서들만을 포함할 것이다.
디바이스(812)는 주어진 사용자가 그 주어진 사용자가 액세스하는 것이 허가된 문서들에 추가하여, 그가 업로드하였고 소유하는 문서들에서 키워드들을 검색하기를 원한다는 것을 지시하는 사용자 입력 또는 활성화에 응답한다. 다르게 말하여, 디바이스(812)를 활성화함으로써 생성된 검색 결과들은 디바이스들(808 및 810) 양쪽 모두를 체크함으로써 생성될 결과 세트와 동등할 수 있다.
마지막으로, 디바이스(814)는 주어진 사용자가 모든 사용자들이 "공개적으로" 액세스할 수 있는 업로드된 문서들에서 키워드들을 검색하기를 원한다는 것을 지시하는 사용자 입력 또는 활성화에 응답한다. 다르게 말하여, 디바이스(814)를 활성화하면, 누가 그 문서들을 소유하는지 또는 누가 그 문서들에 액세스하는 것을 허가받았는지에 관계 없이 "공개(public)"로 설정되어 있는 허가들을 갖는 모든 문서들을 검색하게 된다.
디바이스들(808-814)은 상이한 주어진 검색들에 대한 범위를 정의하기 위해 그 검색들에 대하여 적절한 것으로서 선택될 수 있다는 것에 유의한다. 이 컨텍스트에서, 용어 "범위(scope)"는 주어진 검색이 실행되어야 할 업로드된 문서들의 코퍼스를 지칭한다. 총괄적으로, 디바이스들(808-814)은 검색 범위를 정의하기 위한 선택 디바이스들로서 특징지어질 수 있다. 이 정의된 검색 범위는 검색 범위 파라미터들(816)로서 표현될 수 있다. 이들 범위 선택 디바이스들은 상이한 주어진 검색들에 대한 원하는 범위를 정의하기 위해 개별적으로 또는 조합하여 활성화될 수 있다. 예를 들면, 디바이스들(808 및 814)을 활성화(예를 들면, 체크)함으로써, 주어진 사용자는 그 주어진 사용자가 소유하는 문서들에 대하여 그리고 다른 사용자들이 공개적으로 이용가능하게 한 문서들에 대하여 검색을 실행할 수 있다. 다른 예로서, 디바이스들(812 및 814)을 활성화함으로써, 주어진 사용자는 (직접적인 소유권에 의하든지 또는 다른 소유자에 의해 주어진 허가에 의하든지 간에) 그 주어진 사용자가 액세스할 수 있는 문서들에 대하여 검색을 실행할 수 있다.
UI(804)의 일부 구현들에서, 이 UI는 일반적으로 818에서 표시된 랭킹 도구들을 포함할 수 있다. 개괄하여, 이들 랭크 도구들(818)은 사용자가 검색 결과들이 위치하는 업로드된 문서들의 유형에 따라서, 검색 결과들이 서로에 관하여 어떻게 랭킹되어야 할지를 지정하는 것을 가능하게 할 수 있다. 예를 들면, 주어진 사용자가 그 소유의 문서들을 업로드하였고, 그 후 주어진 검색을 수행한다고 가정하면, 사용자는 그 소유의 문서들에서 발생하는 검색 결과들이 검색 결과들에서 먼저 나타나게 하고, 비소유의 업로드된 문서들에서 발생하는 임의의 다른 히트들(hits)이 그 뒤를 잇는 것을 원할 수 있다.
랭킹 도구들(818)을 더 상세히 살펴보면, 이들 랭킹 도구들은 임의의 활성화되거나 선택된 디바이스들(808-814)과 협력하여 그 활성화된 디바이스들에 대응하는 검색 결과들을 서로에 관하여 랭킹할 수 있다. 예를 들면, 랭킹 도구들(820a 및 820b)(총괄하여, 랭킹 도구들(820))은 UI 디바이스(808)와 연관될 수 있고, 랭킹 도구들(822a 및 822b)(총괄하여, 랭킹 도구들(822))은 UI 디바이스(810)와 연관될 수 있다. 유사하게, 랭킹 도구들(824a 및 824b)(총괄하여, 랭킹 도구들(824))은 UI 디바이스(812)와 연관될 수 있고, 랭킹 도구들(826a 및 826b)(총괄하여, 랭킹 도구들(826))은 UI 디바이스(814)와 연관될 수 있다.
동작 시에, 주어진 사용자가, 그 주어진 사용자 소유의 문서들 내에서 발생하는 히트들이 검색 결과들에서 나타나도록, UI 디바이스(808)를 활성화하거나 선택한다고 가정하면, 랭킹 도구들(820)은 그 주어진 사용자가 이들 히트들이 검색 결과들에서, 다른 유형의 업로드된 문서들에서 발생하는 히트들에 관하여 어디에 제시되는지를 지정하는 것을 가능하게 할 수 있다. 예를 들면, 주어진 사용자는 검색 결과들에서 이들 히트들의 상대적인 랭크를 증가시키도록 랭킹 도구(820a)를 활성화할 수 있고, 이들 히트들의 상대적인 랭크를 감소시키도록 랭킹 도구(820b)를 활성화할 수 있다. 사용자는 원하는 랭킹에 도달할 때까지 랭킹 도구들(820)을 적절하게 반복하여 활성화할 수 있다.
예시의 구현들에서, 랭킹 도구들(820a-826a)은 "업(up)" 화살표들일 수 있고, 랭킹 도구들(820b-826b)은 "다운(down)" 화살표들일 수 있다. 일부 시나리오들에서, 랭킹 도구들(820-826)은, 대응하는 UI 디바이스들(808-814)이 활성화될 때까지, "그레이 아웃"되거나 비활성화될 수 있다. 또한, UI(804)는 디바이스들(808-814)이 제시되는 순서를 조정하기 위해 랭킹 도구들(820-826)의 조작에 응답할 수 있다. 다르게 말하여, 디바이스들(808-814)이 UI(804)에서 나타나는 순서는 랭킹 도구들(818)을 통하여 사용자에 의해 지정된 검색 결과들의 랭킹을 반영할 수 있다.
도 9는 사용자 디바이스들(104) 및 동적 인덱싱 및 검색 시스템들(110)이 동적으로 변화하는 검색 코퍼스를 검색하는 것과 관련하여 협력할 수 있는 프로세스 흐름들(일반적으로 900으로 표시됨)을 예시한다. 이전의 도면들에서 도시된 바와 같이, 사용자 디바이스들(104) 및 검색 시스템들(110)은 하나 이상의 적합한 네트워크들(108)을 통하여 통신할 수 있다.
먼저 사용자 디바이스들(104)을 살펴보면, 프로세스 흐름들(900)은 사용자 디바이스(104)에 제공된 사용자로부터의 검색 커맨드 또는 요청을 수신하는 것을 나타내는 블록 902에서 시작될 수 있다. 다음으로, 블록 904는 블록 902에서 수신된 검색 커맨드에 응답하여 사용자에게 적합한 UI를 제시하는 것을 나타낸다. 도 8은 일반적으로 804에서 표시된 그러한 UI의 일례를 제공한다.
블록 906은 블록 904에서 제시된 UI에 입력되는 하나 이상의 키워드들 또는 다른 검색어들을 수신하는 것을 나타낸다. 예를 들면, 이 UI는 사용자가 원하는 키워드들을 입력할 수 있는 도 8의 806에서 도시된 것과 같은 필드를 포함할 수 있다.
블록 908은 사용자에 의해 제공된 검색 범위의 선택을 수신하는 것을 나타낸다. 예를 들면, 블록 904에서 제시된 UI는 도 8의 808 내지 814에서 도시된 것과 같은 디바이스들을 포함할 수 있다. 이러한 방식으로, 사용자는 사용자가 그의 소유의 업로드된 문서들만을 검색하기를 원하는지; 문서들을 업로드하였고 그 문서들을 사용자가 액세스하는 것을 허가한 또는 이들 문서들을 업로드하고 그것들을 공개적으로 액세스가능하게 한 다른 사용자들에 의해 업로드된 문서들을 검색하기를 원하는지; 또는 전술한 시나리오들의 임의의 조합을 지시할 수 있다.
블록 908은 또한 검색 결과들에 적용가능한 지정된 랭킹들을 수신하는 것을 포함할 수 있다. 예를 들면, 블록 908은 도 8에서 예시되고 위에서 논의된 랭킹 도구들(818)로부터 입력을 수신하는 것을 포함할 수 있다.
일부 구현 시나리오들에서, 프로세스 흐름들(800)은 나중의 검색을 위해 템플릿에 검색어들, 범위 정의들 및 랭킹 명세들을 저장하는 것을 나타내는 블록 910을 포함할 수 있다. 예를 들면, 주어진 사용자가 반복적으로 동일한 검색을 수행하는 경우에, 사용자가 각각의 반복된 검색마다 동일한 파라미터들을 재입력하게 하는 것보다 템플릿으로부터 검색 파라미터들을 검색하는 것이 더 효율적일 수 있다.
블록 912는 사용자 디바이스(104)로부터 네트워크(102)를 통하여 동적 인덱싱 및 검색 시스템(110)에 검색 요청을 송신하는 것을 나타낸다. 도 9는 사용자 디바이스(104)로부터 송신된 검색 요청을 914에서 나타낸다. 일반적으로, 검색 요청(914)은 요청, 키워드들 또는 다른 검색어들을 제출하는 사용자의 ID(identification), 검색 범위의 지시, 및 일부 경우에는 선호되는 또는 결과들의 랭킹의 지시를 포함할 수 있다.
이제 동적 인덱싱 및 검색 시스템(110)을 참조하여, 블록 916은 검색 요청(914)을 수신하는 것을 나타낸다. 다음으로, 시스템(110)은 블록 918에 의해 나타내어진 바와 같이 검색 요청(914)으로부터 사용자 ID(user identification)를 추출할 수 있다. 또한, 시스템(110)은 블록 920에 의해 나타내어진 바와 같이 검색 요청(914)으로부터 검색 범위 파라미터들을 추출할 수 있다. 블록 922는 검색 요청(914)에서 지정된 키워드들 또는 다른 검색어들을 추출하는 것을 나타낸다.
블록 924는 블록 918 및 블록 920에서 추출된 사용자 ID 및 검색 범위에 기초하여 인덱싱 및 검색 시스템(110)에 업로드된 문서들을 필터링하는 것을 나타낸다. 이 필터링 프로세스를 촉진시키기 위해, 블록 924는 상이한 사용자들 또는 사용자 ID들과 연관된 검색 코퍼스를 참조하는 것을 포함할 수 있다. 예를 들면, 도 6을 다시 간단히 참조하면, 시스템(110)은 온라인 문서 및 인덱스 저장소(122)를 포함할 수 있다. 다음으로, 저장 엘리먼트들(122)은 각각의 검색 코퍼스(602)를 상이한 사용자들과 연관시킬 수 있다.
도 9를 참조하면, 검색 시간에, 이들 사용자들 중 하나가 검색 요청을 제출할 때, 블록 924는 적절한 사용자에 대한 검색 코퍼스를 찾는 것(locating)을 포함할 수 있다. 다음으로, 블록 926은 그 사용자에 대한 적절한 검색 코퍼스 내에 포함된 문서들 내에서 지정된 키워드들을 검색하는 것을 나타낸다. 또한, 블록 928은 검색 요청들이 랭킹 선호들을 지정하는 경우에 임의의 검색 결과들을 랭킹하는 것을 포함할 수 있다.
블록 930은 검색 요청(914)에 응답하는 업로드된 문서들 내에서 찾은 임의의 검색 결과들을 리턴하는 것을 나타낸다. 도 9는 일반적으로 이들 검색 결과들을 932에서 나타낸다.
사용자 디바이스(104)에서, 블록 934는 검색 결과들(932)을 수신하는 것을 나타낸다. 다음으로, 사용자 디바이스(104)는 검색 결과들을 포맷팅하고 제시할 수 있다. 검색 요청(914)이 랭킹 선호들을 지정한 경우에, 사용자 디바이스(104)는 검색 결과들(932)을 디스플레이할 때 이들 랭킹 선호들을 통합할 수 있다.
도 10은 시간에 따른 검색 코퍼스의 동적 속성을 예시하는 타임라인(일반적으로 1000으로 표시됨)을 제공한다. 도 10은 또한 이 동적 속성이 시간에 따라 수행되는 예시적인 검색들의 결과들에 어떻게 영향을 미칠 수 있는지를 예시한다.
도 10을 더 상세히 살펴보면, 도 10은 시간축(1002)을 따라 임의의 시간들에서 순차적으로 발생하는 일련의 이벤트들을 예시한다. 일반적으로 1004에서 나타내어진 바와 같이, 주어진 사용자 A가 주어진 문서 A를 업로드한다. 이 문서 A는 예시적인 텍스트 "ABC"를 포함할 수 있고, 사용자 A는 다른 사용자 B와 문서 A를 공유할 수 있다.
1004에서 나타내어진 업로드에 응답하여, 동적 인덱싱 및 검색 시스템(110)은 문서 A를 포함하도록 사용자 A와 연관된 검색 코퍼스를 업데이트할 수 있다. 게다가, 시스템(110)은 또한 문서 A를 포함하도록 사용자 B와 연관된 검색 코퍼스를 업데이트할 수 있다.
일반적으로 1006에서 나타내어진 바와 같이, 사용자 B는 그의 검색 코퍼스 내에서 텍스트 "ABC"를 포함하는 임의의 문서들에 대하여 질의할 수 있다. 업로드(1004) 때문에, 사용자 B에 대한 검색 코퍼스는 이제 문서 A를 포함하고, 문서 A는 검색 텍스트 "ABC"에 대한 히트를 포함한다. 따라서, 일반적으로 1008에서 나타내어진 바와 같이, 시스템(110)은 적어도 문서 A를 사용자 B에 리턴할 것이다.
1010에서 나타내어진 바와 같이, 다른 사용자 C가 다른 문서 C를 업로드하고, 이것도 예시적인 텍스트 "ABC"를 포함한다. 또한, 이 사용자 C는 이 문서 C를 공개적으로 공유한다. 이 업로드(1010)에 응답하여, 시스템(110)은 새로이 업로드된 문서 C를 포함하도록 사용자 A, 사용자 B 및 사용자 C에 대한 각각의 코퍼스를 업데이트할 것이다.
1012에서 나타내어진 바와 같이, 사용자 B가 그의 검색 코퍼스 내에서 예시적인 텍스트 "ABC"를 포함하는 문서들에 대한 이전의 질의를 반복하는 경우, 이 질의는 이제 일반적으로 1014에서 나타내어진 바와 같이 문서 A 및 문서 C를 리턴할 것이다. 상이한 사용자들에 대한 검색 코퍼스의 동적 속성이 이 예에 의해 예시되고, 여기서 동일한 사용자에 의해 수행된 동일한 검색은 상이한 시간들에서 상이한 결과들을 리턴한다.
동적 네트워크들 및 검색 코퍼스의 유연성을 더 예시하기 위해, 도 10은 또한 사용자 B에 대하여 수행된 처리와의 대조를 위해 도시된 추가의 대표적인 사용자 D와 연관된 처리를 도시한다. 예를 들면, 1016에서 도시된 바와 같이, 사용자 D는 "ABC"를 포함하는 모든 문서들에 대하여 질의할 수 있다. 얼마간의 시간 후에, 1018에서 도시된 바와 같이, 시스템은 1016에서 나타내어진 질의에 응답하여 사용자 D에게 문서들의 세트를 리턴할 수 있다.
일반적으로 1020에서 나타내어진 바와 같이, 동일한 사용자 D는 "ABC"를 포함하는 모든 문서들에 대한 질의를 반복할 수 있고, 1020에서 수행된 질의는 1016에서 수행된 것과 동일하다. 1020에서 나타내어진 질의에 응답하여, 시스템은 일반적으로 1022에서 나타내어진 바와 같이 사용자 D에게 동일한 문서들의 세트를 리턴할 수 있다. 더 구체적으로, 1022에서 사용자 D에게 리턴된 문서들의 세트는 1018에서 그 사용자에게 리턴된 문서들과 동일할 수 있다. 이와 대조적으로, 사용자 B는 1008 및 1014에서 나타내어진 바와 같이 상이한 시간들에서 동일한 질의를 수행할 때 상이한 문서들의 세트를 수신하였다. 그러나, 사용자 B 및 사용자 D와 연관된 네트워크들은 상이할 수 있고, 결국 이들 상이한 사용자들은 상이한 시간들에서 동일한 질의들을 수행할 때 상이한 결과들을 수신한다. 도시된 예들에서, 사용자 B는 상이한 시간들에서 수행된 동일한 질의에 대해 상이한 결과들을 수신하는 반면, 사용자 D는 상이한 시간들에서 수행된 동일한 질의에 대해 동일한 결과들을 수신한다.
전술한 설명은 동적으로 변화하는 검색 코퍼스를 인덱싱하고 검색하기 위한 기술들을 제공한다. 이 설명은 컴퓨터 구조적 특징들, 방법론적 동작들 및 컴퓨터 판독가능 매체에 특정한 언어를 통합하지만, 첨부된 청구항들의 범위는 반드시 여기에 설명된 이 특정한 특징들, 동작들 또는 매체에 제한되는 것은 아니다. 오히려, 이 설명은 제한적이기보다는 예시적인 구현들을 제공한다. 또한, 이들 구현들은 다음의 청구항들에서 제시되는 이 설명의 참된 범위 및 사상으로부터 벗어나지 않고 이 설명의 다양한 양태들을 수정하고 변경할 수 있다.

Claims (15)

  1. 시스템으로서,
    적어도 하나의 프로세서 및 컴퓨터 실행가능 명령어들을 저장한 적어도 하나의 컴퓨터 판독가능 저장 매체를 포함하는 적어도 하나의 사용자 장치를 포함하되,
    상기 컴퓨터 실행가능 명령어들은 상기 프로세서에 로딩되어 실행되는 경우, 상기 프로세서로 하여금,
    온라인 문서 라이브러리의 복수의 사용자 각각이 온라인 문서 리포지토리(repository)에 업로드된 하나 이상의 문서 중 다양한 문서들에 공유 허가들(share permissions)을 연관시킬 수 있게 해주는 사용자 인터페이스를 제시하고- 각 공유 허가는 업로드된 문서의 유형을 지정하고, 상기 공유 허가들은 단체로 상기 업로드된 문서의 복수의 검색 범위를 정의하고, 각 검색 범위는 적어도 하나의 사용자 지정 검색어의 출현에 대한 상기 업로드된 문서의 서브세트를 지정함 -,
    상기 사용자 인터페이스 내에 복수의 랭킹 도구를 제시하고- 상기 랭킹 도구는 사용자 활성화에 응답하여 주어진 검색 범위에서 식별된 검색 결과들의 랭크를 증가 또는 감소시키는 랭킹 선호(ranking preferences)를 나타내고, 상기 랭킹 도구는 상기 문서 유형에 따라 랭크에 의거하여 상기 검색 결과들에 보여지는 문서들의 디스플레이를 제어함 -,
    상기 적어도 하나의 검색어의 표현을 상기 사용자 인터페이스를 통해 수신하고,
    상기 검색 범위를 지정하는 적어도 하나의 선택을 상기 사용자 인터페이스를 통해 사용자로부터 수신하고,
    상기 랭킹 도구를 통해 상기 랭킹 선호를 수신하며,
    상기 온라인 문서 리포지토리에 검색 요청- 상기 검색 요청은 상기 사용자와 연관된 사용자 식별자의 표현, 상기 검색어의 표현, 상기 랭킹 선호, 및 상기 복수의 검색 범위의 표현을 포함함 -을 전송하게 하며,
    상기 시스템은 또한 상기 온라인 문서 리포지토리로서 동작하는 동적 인덱싱 및 검색 시스템을 포함하되, 상기 동적 인덱싱 및 검색 시스템은 적어도 추가 프로세서 및 적어도 컴퓨터 실행가능 명령어들을 저장하는 추가 컴퓨터 판독가능 저장 매체를 포함하고, 상기 추가 컴퓨터 판독가능 저장 매체에 저장된 상기 컴퓨터 실행가능 명령어들은 상기 추가 프로세서에 로딩되어 실행되는 경우, 상기 추가 프로세서로 하여금,
    상기 사용자 장치로부터 상기 검색 요청을 수신하고,
    상기 사용자 식별자, 상기 검색어, 상기 랭킹 선호 및 상기 복수의 검색 범위의 표현을 상기 검색 요청으로부터 추출하고,
    상기 문서 리포지토리에 포함된 문서들을 상기 사용자 식별자 및 상기 검색 범위에 기초하여 필터링하고,
    상기 검색어의 임의의 출현에 대해 상기 필터링된 문서를 검색하여 검색 결과들을 생성하고,
    상기 랭킹 선호에 기초하여 상기 복수의 검색 범위 내의 상기 검색 결과들을 랭크하며,
    상기 필터링된 문서 내에서 상기 검색어의 임의의 출현의 표현을 포함하는 상기 랭크된 검색 결과들을 반환하게 하는
    시스템.
  2. 제1항에 있어서,
    상기 사용자가 복수의 검색 범위를 정의할 수 있게 해주는 상기 사용자 인터페이스는 상기 사용자에 의해 업로드된 문서들을 포함하도록, 상기 온라인 문서 리포지토리의 모든 사용자에 의해 검색가능한 문서들을 포함하도록, 또한 상기 사용자가 검색할 수 있는 모든 문서를 포함하도록 검색 범위를 정의하는 도구들을 포함하는
    시스템.
  3. 제1항에 있어서,
    상기 랭킹 도구는 각 연관된 검색 범위 내에서 검색 결과들의 원하는 랭킹을 지정하도록 반복적으로 활성화될 수 있는
    시스템.
  4. 제1항에 있어서,
    상기 복수의 검색 범위를 지정하기 위한 도구들의 배열은 상기 랭킹 도구에 의해 지정되는
    시스템.
  5. 제1항에 있어서,
    상기 문서 유형은 문서 소유자가 제한된 방식으로 공유하는 유형 또는 공개된 방식으로 공유하는 유형을 포함하는
    시스템.
  6. 컴퓨터로 구현되는 방법으로서,
    온라인 문서 라이브러리의 복수의 사용자 각각이 온라인 문서 리포지토리에 업로드된 하나 이상의 문서 중 다양한 문서들에 공유 허가들을 연관시킬 수 있게 해주는 사용자 인터페이스를 컴퓨터를 통해 제시하는 단계- 각 공유 허가는 업로드된 문서의 유형을 지정하고, 상기 공유 허가들은 단체로 상기 업로드된 문서의 복수의 검색 범위를 정의하고, 각 검색 범위는 적어도 하나의 검색어의 출현에 대해 주어진 사용자에 의해 검색가능한 상기 업로드된 문서의 서브세트를 지정함 -,
    상기 사용자 인터페이스 내에 복수의 랭킹 도구를 제시하는 단계- 각 랭킹 도구는 사용자 활성화에 응답하여 주어진 검색 범위에서 식별된 검색 결과들의 랭크를 증가 또는 감소시키는 랭킹 선호를 나타내고, 상기 랭킹 도구는 상기 문서 유형에 따라 랭크에 의거하여 상기 검색 결과들에 보여지는 문서들의 디스플레이를 제어함 -,
    상기 적어도 하나의 검색어의 표현을 상기 사용자 인터페이스를 통해 수신하는 단계,
    상기 검색 범위를 지정하는 적어도 하나의 선택을 상기 사용자 인터페이스를 통해 사용자로부터 수신하는 단계,
    상기 랭킹 도구를 통해 상기 랭킹 선호를 수신하는 단계,
    상기 온라인 문서 리포지토리에 검색 요청을 전송하는 단계- 상기 검색 요청은 상기 사용자와 연관된 사용자 식별자의 표현, 상기 검색어의 표현, 상기 랭킹 도구에 의해 지정된 상기 랭킹 선호, 및 상기 복수의 검색 범위의 표현을 포함함 -,
    상기 검색 요청에 응답하여 상기 문서 리포지토리로부터 랭크된 검색 결과들을 수신하는 단계- 상기 랭크된 검색 결과들은 상기 사용자 식별자 및 상기 검색 범위에 기초하여 필터링되고 상기 랭킹 선호에 기초하여 랭크된 상기 문서 리포지토리의 문서들 내에서의 상기 검색어의 임의의 출현의 표현을 포함함 -
    를 포함하는 컴퓨터로 구현되는 방법.
  7. 제6항에 있어서,
    상기 사용자가 복수의 검색 범위를 정의할 수 있게 해주는 상기 사용자 인터페이스는 상기 사용자에 의해 업로드된 문서들을 포함하도록, 상기 온라인 문서 리포지토리의 모든 사용자에 의해 검색가능한 문서들을 포함하도록, 또한 상기 사용자가 검색할 수 있는 모든 문서를 포함하도록 검색 범위를 정의하는 도구들을 포함하는
    컴퓨터로 구현되는 방법.
  8. 제7항에 있어서,
    상기 랭킹 도구는 각 연관된 검색 범위 내에서 검색 결과들의 원하는 랭킹을 지정하도록 반복적으로 활성화될 수 있는
    컴퓨터로 구현되는 방법.
  9. 제8항에 있어서,
    상기 복수의 검색 범위를 지정하기 위한 도구들의 배열은 상기 랭킹 도구에 의해 지정되는
    컴퓨터로 구현되는 방법.
  10. 컴퓨터 실행가능 명령어들을 저장한 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 실행가능 명령어들은 컴퓨터에 의해 실행되는 경우 상기 컴퓨터로 하여금,
    온라인 문서 리포지토리에 업로드된 하나 이상의 문서에 대한 사용자 지정 공유 허가들을 저장하고- 각각의 사용자 지정 공유 허가는 업로드된 문서의 유형을 지정하고, 상기 사용자 지정 공유 허가들은 단체로 상기 업로드된 문서의 복수의 검색 범위를 정의하고, 각 검색 범위는 적어도 하나의 사용자 지정 검색어의 출현에 대해 주어진 사용자에 의해 검색가능한 상기 업로드된 문서의 서브세트를 지정함 -,
    사용자 장치로부터 검색 요청을 수신하고- 상기 검색 요청은 사용자 식별자의 표현, 하나 이상의 검색어의 표현, 사용자 지정 랭킹 선호, 및 복수의 검색 범위의 표현을 포함함 -,
    상기 검색 요청의 수신에 응답하여, 상기 사용자 식별자, 상기 하나 이상의 검색어, 상기 랭킹 선호 및 상기 복수의 검색 범위의 표현을 상기 수신된 검색 요청으로부터 추출하고- 상기 사용자 지정 랭킹 선호는 각 연관된 검색 범위 내에서 식별된 검색 결과들의 랭크를 증가 또는 감소시킴 -,
    문서 리포지토리에 포함된 문서들을 상기 사용자 식별자 및 상기 복수의 검색 범위에 기초하여 필터링하고- 상기 문서 리포지토리 내의 각 문서는 상기 문서가 상기 문서 리포지토리에 업로드될 때 사용자에 의해 각 문서와 연관된 사용자 지정 공유 허가에 의해 지정된 유형을 가짐 -,
    상기 검색어의 임의의 출현에 대해 상기 필터링된 문서를 검색하여 검색 결과들을 생성하고,
    상기 사용자 지정 랭킹 선호에 기초하여 상기 복수의 검색 범위 내의 상기 검색 결과들을 랭크하며,
    상기 사용자 장치로부터 수신된 상기 검색 요청에 응답하여 상기 필터링된 문서 내에서 상기 검색어의 임의의 출현의 표현을 포함하는 상기 랭크된 검색 결과를 반환하게 하는- 상기 반환된 랭크된 검색 결과들은 상기 문서 유형에 따라 상기 사용자 장치 상에 디스플레이되도록 구성됨 -
    컴퓨터 판독가능 저장 매체.
  11. 제10항에 있어서,
    상기 검색 범위는 상기 사용자에 의해 업로드된 문서들을 포함하는 검색 범위, 온라인 문서 리포지토리의 모든 사용자에 의해 검색가능한 문서들을 포함하는 검색 범위, 및 상기 사용자가 검색할 수 있는 모든 문서를 포함하는 검색 범위 중 하나 이상을 포함하는
    컴퓨터 판독가능 저장 매체.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
KR1020117015958A 2009-01-15 2009-12-04 동적으로 변화하는 검색 코퍼스의 인덱싱 및 검색을 위한 시스템 및 방법 KR101597858B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/353,987 US8589392B2 (en) 2009-01-15 2009-01-15 Indexing and searching dynamically changing search corpora
US12/353,987 2009-01-15

Publications (2)

Publication Number Publication Date
KR20110120865A KR20110120865A (ko) 2011-11-04
KR101597858B1 true KR101597858B1 (ko) 2016-02-25

Family

ID=42337765

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117015958A KR101597858B1 (ko) 2009-01-15 2009-12-04 동적으로 변화하는 검색 코퍼스의 인덱싱 및 검색을 위한 시스템 및 방법

Country Status (11)

Country Link
US (2) US8589392B2 (ko)
EP (1) EP2377057A4 (ko)
JP (1) JP2012515394A (ko)
KR (1) KR101597858B1 (ko)
CN (1) CN102282555B (ko)
CA (1) CA2746645C (ko)
MX (1) MX2011007387A (ko)
RU (1) RU2542936C2 (ko)
SG (1) SG171918A1 (ko)
WO (1) WO2010082984A2 (ko)
ZA (1) ZA201103796B (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IN2012DN03035A (ko) 2009-09-09 2015-07-31 Varonis Systems Inc
US10229191B2 (en) * 2009-09-09 2019-03-12 Varonis Systems Ltd. Enterprise level data management
US10296596B2 (en) 2010-05-27 2019-05-21 Varonis Systems, Inc. Data tagging
CN103026334A (zh) 2010-05-27 2013-04-03 瓦欧尼斯系统有限公司 数据分类
WO2013003932A1 (en) * 2011-07-04 2013-01-10 Research In Motion Limited System and method for sharing mobile device content
US9195773B2 (en) * 2011-07-06 2015-11-24 Microsoft Technology Licensing, Llc Structure-based adaptive document caching
US9009220B2 (en) 2011-10-14 2015-04-14 Mimecast North America Inc. Analyzing stored electronic communications
US9165005B2 (en) * 2012-02-24 2015-10-20 Simplivity Corporation Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory
CN102821136A (zh) * 2012-07-04 2012-12-12 北京小米科技有限责任公司 一种防止违规文件多次上传的方法及装置
US9703815B2 (en) 2012-12-17 2017-07-11 Salesforce.Com, Inc. Third party files in an on-demand database service
US9501503B2 (en) 2013-05-09 2016-11-22 Microsoft Technology Licensing, Llc Inferring entity attribute values
US11163898B2 (en) * 2013-09-11 2021-11-02 Mimecast Services Ltd. Sharing artifacts in permission-protected archives
US9965549B2 (en) * 2013-10-09 2018-05-08 Foxwordy Inc. Excerpted content
US9836530B2 (en) * 2013-12-16 2017-12-05 Entit Software Llc Determining preferred communication explanations using record-relevancy tiers
US9852224B2 (en) * 2014-07-03 2017-12-26 Google Llc Promoting preferred content in a search query
RU2580516C2 (ru) * 2014-08-19 2016-04-10 Общество С Ограниченной Ответственностью "Яндекс" Способ формирования персонализированной модели ранжирования, способ формирования модели ранжирования, электронное устройство и сервер
US10229143B2 (en) * 2015-06-23 2019-03-12 Microsoft Technology Licensing, Llc Storage and retrieval of data from a bit vector search index
US11281639B2 (en) 2015-06-23 2022-03-22 Microsoft Technology Licensing, Llc Match fix-up to remove matching documents
US11392568B2 (en) 2015-06-23 2022-07-19 Microsoft Technology Licensing, Llc Reducing matching documents for a search query
US10242071B2 (en) 2015-06-23 2019-03-26 Microsoft Technology Licensing, Llc Preliminary ranker for scoring matching documents
US10242112B2 (en) * 2015-07-15 2019-03-26 Google Llc Search result filters from resource content
US10795642B2 (en) 2016-09-21 2020-10-06 International Business Machines Corporation Preserving temporal relevance in a response to a query
US10877730B2 (en) 2016-09-21 2020-12-29 International Business Machines Corporation Preserving temporal relevance of content within a corpus
US20190102841A1 (en) * 2017-10-04 2019-04-04 Servicenow, Inc. Mapping engine configurations with task managed workflows and grid user interfaces
CN109284350B (zh) * 2018-11-16 2020-11-13 天津字节跳动科技有限公司 检索内容的更新方法、装置、存储介质及电子设备
CN111582815A (zh) * 2020-04-15 2020-08-25 岭东核电有限公司 一种核电站的工程管理方法、装置、终端设备及存储介质
US11552966B2 (en) * 2020-09-25 2023-01-10 International Business Machines Corporation Generating and mutually maturing a knowledge corpus
US11995135B2 (en) 2021-02-18 2024-05-28 Glean Technologies, Inc. Permissions-aware search with user suggested results
US11593409B2 (en) 2021-02-19 2023-02-28 Glean Technologies, Inc. Permissions-aware search with intelligent activity tracking and scoring across group hierarchies
US11790104B2 (en) 2021-02-18 2023-10-17 Glean Technologies, Inc. Permissions-aware search with document verification
US11797612B2 (en) 2021-09-29 2023-10-24 Glean Technologies, Inc. Identification of permissions-aware enterprise-specific term substitutions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002202973A (ja) 2000-10-25 2002-07-19 Matsushita Electric Ind Co Ltd 構造化文書管理装置
WO2007093035A1 (en) 2006-02-14 2007-08-23 Sand Box Technologies Inc. System and method for searching rights enabled documents
US20080168048A1 (en) 2007-01-04 2008-07-10 Yahoo! Inc. User content feeds from user storage devices to a public search engine
US20090006356A1 (en) 2007-06-27 2009-01-01 Oracle International Corporation Changing ranking algorithms based on customer settings

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133846B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US5752242A (en) * 1996-04-18 1998-05-12 Electronic Data Systems Corporation System and method for automated retrieval of information
AUPP252298A0 (en) 1998-03-24 1998-04-23 80-20 Software Pty Limited Document management software
CN1288579C (zh) * 2000-07-07 2006-12-06 夏普公司 信息提供装置
PT1327209E (pt) 2000-10-11 2008-11-28 United Video Properties Inc Sistemas e métodos para proporcionar o armazenamento de dados em servidores num sistema de fornecimento a pedido de media
JP2002202987A (ja) * 2000-11-02 2002-07-19 At System:Kk データ管理方法
US20020108115A1 (en) * 2000-12-11 2002-08-08 The Associated Press News and other information delivery system and method
US20080091761A1 (en) 2002-08-06 2008-04-17 Stt Webos, Inc. Method and apparatus for information exchange over a web based environment
US20050004873A1 (en) 2003-02-03 2005-01-06 Robin Pou Distribution and rights management of digital content
US7321886B2 (en) * 2003-07-29 2008-01-22 Accenture Global Services Gmbh Rapid knowledge transfer among workers
US20050091316A1 (en) 2003-10-03 2005-04-28 Oscar Ponce System and method for creating and selectively sharing data elements in a peer-to-peer network
WO2005103867A1 (en) 2004-04-22 2005-11-03 Denis Fompeyrine Multi-terminal control interface to manage information within user groups connected to each other in peer-to-peer networks
CN1707496A (zh) * 2004-06-11 2005-12-14 丁力 基于活动的知识管理方法及系统
US9081872B2 (en) 2004-06-25 2015-07-14 Apple Inc. Methods and systems for managing permissions data and/or indexes
US7593924B2 (en) * 2004-09-20 2009-09-22 Microsoft Corporation Method, system, and apparatus for receiving and responding to knowledge interchange queries
US20070011155A1 (en) * 2004-09-29 2007-01-11 Sarkar Pte. Ltd. System for communication and collaboration
US20060117247A1 (en) * 2004-11-30 2006-06-01 Fite William R Web based data collaboration tool
US7594258B2 (en) * 2005-06-27 2009-09-22 Yahoo! Inc. Access control systems and methods using visibility tokens with automatic propagation
US20080005064A1 (en) 2005-06-28 2008-01-03 Yahoo! Inc. Apparatus and method for content annotation and conditional annotation retrieval in a search context
US7568005B2 (en) * 2005-09-01 2009-07-28 Microsoft Corporation Enhanced application behavior in the presence of application sharing
US7779347B2 (en) * 2005-09-02 2010-08-17 Fourteen40, Inc. Systems and methods for collaboratively annotating electronic documents
US8688673B2 (en) * 2005-09-27 2014-04-01 Sarkar Pte Ltd System for communication and collaboration
KR100807264B1 (ko) 2006-04-29 2008-02-28 강찬구 온라인 컨텐츠 마켓플레이스 시스템 및 운영방법
US20080104408A1 (en) 2006-10-25 2008-05-01 Darcy Mayer Notary document processing and storage system and methods
US20080103875A1 (en) * 2006-10-31 2008-05-01 Michael Kokernak Methods and systems for an interactive data finder
US20080183680A1 (en) 2007-01-31 2008-07-31 Laurent Meynier Documents searching on peer-to-peer computer systems
US20090144657A1 (en) * 2007-11-30 2009-06-04 Verizon Laboratories Inc. Method and system of sharing images captured by a mobile communication device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002202973A (ja) 2000-10-25 2002-07-19 Matsushita Electric Ind Co Ltd 構造化文書管理装置
WO2007093035A1 (en) 2006-02-14 2007-08-23 Sand Box Technologies Inc. System and method for searching rights enabled documents
US20080168048A1 (en) 2007-01-04 2008-07-10 Yahoo! Inc. User content feeds from user storage devices to a public search engine
US20090006356A1 (en) 2007-06-27 2009-01-01 Oracle International Corporation Changing ranking algorithms based on customer settings

Also Published As

Publication number Publication date
US9098556B2 (en) 2015-08-04
ZA201103796B (en) 2012-08-29
WO2010082984A2 (en) 2010-07-22
JP2012515394A (ja) 2012-07-05
US8589392B2 (en) 2013-11-19
US20100185650A1 (en) 2010-07-22
EP2377057A2 (en) 2011-10-19
CA2746645C (en) 2016-09-13
CN102282555B (zh) 2014-12-10
WO2010082984A3 (en) 2010-09-10
RU2542936C2 (ru) 2015-02-27
SG171918A1 (en) 2011-07-28
KR20110120865A (ko) 2011-11-04
CA2746645A1 (en) 2010-07-22
CN102282555A (zh) 2011-12-14
RU2011129313A (ru) 2013-01-20
EP2377057A4 (en) 2013-06-12
MX2011007387A (es) 2011-07-28
US20140059045A1 (en) 2014-02-27

Similar Documents

Publication Publication Date Title
KR101597858B1 (ko) 동적으로 변화하는 검색 코퍼스의 인덱싱 및 검색을 위한 시스템 및 방법
US7139974B1 (en) Framework for managing document objects stored on a network
US8224851B2 (en) Tag creation system
US8244766B2 (en) Applying a model of a persona to search results
US20020120858A1 (en) Method and apparatus for document management utilizing a messaging system
US8521726B2 (en) File management system and computer readable record medium for the same
US20080005101A1 (en) Method and apparatus for determining the significance and relevance of a web page, or a portion thereof
US20050198559A1 (en) Document information management system, document information management program, and document information management method
US20070157100A1 (en) System and method for organization and retrieval of files
US20070198486A1 (en) Internet search engine with browser tools
US20080140710A1 (en) Systems and methods for providing enhanced job searching
US11308177B2 (en) System and method for accessing and managing cognitive knowledge
EP3480706A1 (en) Automatic search dictionary and user interfaces
Miele et al. A methodology for preference-based personalization of contextual data
JP4207417B2 (ja) 文書管理装置
US20140095465A1 (en) Method and apparatus for determining rank of web pages based upon past content portion selections
US6768989B2 (en) Collection recognizer
JP2013011940A (ja) 情報提供サーバ、情報検索システム、情報検索方法、および情報検索プログラム
US11366814B2 (en) Systems and methods for federated search with dynamic selection and distributed relevance
JP4186452B2 (ja) 文書管理装置
US20200125680A1 (en) Systems and methods for producing search results based on user preferences
US12019626B1 (en) Iterative search tool and user interface
US20240169088A1 (en) Systems and methods for providing searchable access to documents across separate document repositories
Bakalov et al. Personalized semantic assistance for the curation of biochemical literature
JP2003141162A (ja) 文書検索装置、文書検索方法およびその方法をコンピュータに実行させるプログラム

Legal Events

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

Payment date: 20190116

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 5