KR102055356B1 - 데이터 리소스들에 대한 엑세스 제어 - Google Patents

데이터 리소스들에 대한 엑세스 제어 Download PDF

Info

Publication number
KR102055356B1
KR102055356B1 KR1020177028130A KR20177028130A KR102055356B1 KR 102055356 B1 KR102055356 B1 KR 102055356B1 KR 1020177028130 A KR1020177028130 A KR 1020177028130A KR 20177028130 A KR20177028130 A KR 20177028130A KR 102055356 B1 KR102055356 B1 KR 102055356B1
Authority
KR
South Korea
Prior art keywords
entity
access control
fact
enterprise
access
Prior art date
Application number
KR1020177028130A
Other languages
English (en)
Other versions
KR20170126991A (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 KR20170126991A publication Critical patent/KR20170126991A/ko
Application granted granted Critical
Publication of KR102055356B1 publication Critical patent/KR102055356B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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/604Tools and structures for managing or administering access control systems
    • 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/21Design, administration or maintenance of databases
    • 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
    • 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
    • G06F21/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • G06Q10/1097Task assignment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

기술적으로 효율적인 방식으로 정보를 프로세싱하는 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램들을 포함하는 방법, 시스템 및 장치가 제공되며, 이는 보안 요구사항들을 보존하면서 정보에 대한 엑세스의 용이성을 개선할 수 있다. 일 양태에서, 엔터프라이즈 내의 정보 프로세싱의 컨텍스트에서, 방법은 엔터프라이즈의 리소스들을 수신하는 단계, 각 리소스는 상기 엔터프라이즈의 하나 이상의 멤버들에 대한 상기 리소스에 대한 엑세스 권한들을 특정하는 각각의 엑세스 제어 목록을 가지며, 상기 리소스들은 상기 엔터프라이즈와 관련된 엔터티들 및 상기 엔터티들 간의 관계들을 기술하는 데이터를 포함하며; 상기 엔터프라이즈의 상기 리소스들로부터 상기 엔터티들의 엔터티 사실들을 식별하는 단계; 각 엔터티 사실에 대해, 각 리소스의 상기 엑세스 제어 목록으로부터, 엔터티 사실 엑세스 제어 목록을 결정하는 단계; 상기 엔터티들, 엔터티 사실들 및 상기 각각의 엔터티 사실 엑세스 제어 목록들을 기술하는 데이터를 검색가능한 인덱스에 저장하는 단계, 상기 각 엔터티 사실은 그것의 대응하는 엔터티 사실 엑세스 제어 목록과 관련되며; 그리고 상기 엔터프라이즈의 각각의 상기 멤버들에게, 상기 각각의 엔터티 사실 엑세스 제어 목록들에 따라 상기 검색가능한 인덱스에서 상기 엔터티들 및 상기 엔터티 사실들을 기술하는 상기 데이터에 대한 엑세스 권한들을 제공하는 단계를 포함한다.

Description

데이터 리소스들에 대한 엑세스 제어
본 명세서는 일반적으로 데이터 프로세싱과 관련되며, 특히 정보에 대한 액세스 제어, 정보를 기반으로 한 개인 지원 및 정보와 관련된 검색과 관련된다.
엔터프라이즈는 많은 수의 다양한 리소스들(예를 들어, 문서들)에 대한 액세스를 가질 수 있다. 각 자원들은 누가 리소스를 보고 및/또는 변경할 수 있는지 지시하는 리소스와 관련된 액세스 제어 목록들을 가질 수 있다. 엔터프라이즈의 멤버들은 리소스가 의미 있는 방식으로 서로 연결되거나 관련되어 있지 않기 때문에 필요한 정보를 찾고 검색하는데 어려움을 겪을 수 있다. 또한, 이와 유사한 이유로, 전자 개인 비서는 일반적으로 사용자의 정보 요구를 충족시키기 위해 의미 있는 방식으로 엔터프라이즈 정보를 활용할 수 없다.
본 명세서는 정보에 대한 엑세스 제어, 정보에 기초하는 개인 보조 및 정보와 관련된 검색들과 관련된 기술들을 설명한다. 예시로서, 정보 프로세싱에 관한 기술들이 설명되며, 이는 정보 리소스들 및 엔터프라이즈와 관련된 엔터티들에 대한 컨텐츠를 저장하거나 프로세싱하는 다수의 하드웨어 및 소프트웨어 컴포넌트들을 가지는 엔터프라이즈의 맥락에서 수행될 수 있다.
일반적으로 본 명세서에 기술된 본 발명의 일 혁신적 양태는 엔터프라이즈의 리소스들을 수신하는 액션을 포함하며, 각 리소스는 상기 엔터프라이즈의 하나 이상의 멤버들에 대한 상기 리소스에 대한 엑세스 권한들을 특정하는 각각의 엑세스 제어 목록을 가지며, 상기 리소스들은 상기 엔터프라이즈와 관련된 엔터티들 및 상기 엔터티들 간의 관계들을 기술하는 데이터를 포함하는 방법으로 구현될 수 있다. 엔터티 사실들은 상기 엔터프라이즈의 상기 리소스들로부터 상기 엔터티들로부터 식별될 수 있고, 각 엔터티 사실은 상기 엔터티의 적어도 하나의 구성을 기술하며, 상기 구성들은 상기 엔터티들 사이의 대응하는 관계들을 포함한다. 각 엔터티 사실에 대해, 각 리소스의 상기 엑세스 제어 목록, 엔터티 사실 엑세스 제어 목록으로부터, 엔터티 사실 엑세스 제어 목록의 결정이 이루어질 수 있고, 상기 엔터티들, 엔터티 사실들 및 상기 각각의 엔터티 사실 엑세스 제어 목록들을 기술하는 데이터는 검색가능한 인덱스에 저장될 수 있고, 상기 각 엔터티 사실은 그것의 대응하는 엔터티 사실 엑세스 제어 목록과 관련된다. 또한, 방법은 상기 엔터프라이즈의 각각의 상기 멤버들에게, 상기 각각의 엔터티 사실 엑세스 제어 목록들에 따라 상기 검색가능한 인덱스에서 상기 엔터티들 및 상기 엔터티 사실들을 기술하는 상기 데이터에 대한 엑세스 권한들을 제공하는 단계를 포함할 수 있다.
본 발명의 실시예들은 상기 기술된 정보-엑세스 개선들은 정보 보안 요구사항들이 보존될 수 있게 한다는 이점을 가진다. 정보 요청들을 사용자 입력 감소된 수의 사용자 입력들로 프로세스하는 것이 가능하며, 이는 정보-검색 프로세스를 보다 효율적으로 만드는 것에 더하여, 사기성 정보가 시스템에 입력될 가능성을 감소시킨다.
본 명세서에서 기술된 본 발명의 특정 구현예들은 다음 이점 중 하나 이상을 실현하도록 구현될 수 있다. 추출된 정보로 리소스의 엑세스 제어 목록을 여전히 존중하면서 정보를 리소스들로부터 추출하고 상기 정보를 컴파일하는 것은 유용할 수 있고, 이는 추출된 정보를 획득하기 쉽게 하면서 상기 리소스들과 관련된 엑세스 제어 목록들을 보호할 수 있을 것이다. 추출된 정보의 액세스의 용이성은 필요한 정보에 액세스하는데 소요되는 시간 및 필요한 정보를 획득하기 위해 사용자에 의해 요구되는 단계의 수로 실현될 수 있다. 본 발명의 실시예들은 또한 정보 아이템 들간의 연결을 개선하여, 요구된 정보가 특정 정보 요구에 포함된 정보로부터 프로세싱 시스템에 의해 더 쉽게 액세스되게 한다. 정보 액세스의 개선은 액세스 권한과 같은 정보 아이템을 특정 사용자들과 연결하는 것으로부터 도출될 수 있다.
정보 액세스의 개선은 하드웨어 또는 소프트웨어 리소스들을 최적화 되게 할 수 있으며, 이는 보다 짧은 또는 덜 집중적인 하드웨어 사용을 요구함으로써 소비 전력의 감소, 쿼리에 응답할 때 처리되어야 하는 정보량을 줄임으로써 메모리 요구사항의 감소, 또는 그러한 정보가 저장될 필요가 있는 시간의 양을 줄이고, 예를 들어 리소스의 필터링 및 본 발명에 이용되는 하드웨어 및/또는 소프트웨어 시스템의 상이한 컴포넌트들 또는 모듈들 간에 수행될 필요한 쿼리 단계의 수를 감소시킴으로써 대역폭 사용과 같은 데이터 송신 및 수신과 관련된 네트워크 리소스를 가능하게 하는 것을 포함한다.
전술한 방식으로 하드웨어 및/또는 소프트웨어 리소스들이 본 발명의 실시예에 의해 최적화될 수 있으므로, 많은 양의 정보 리소스들이 보다 효율적으로 처리될 수 있기 때문에 본 발명의 실시예는 더 많은 수의 정보 리소스와 함께 동작하도록 구성될 수 있다. 따라서, 본 발명의 실시예의 액세스 가능성이 증가될 수 있다.
또한 컴퓨터로 구현되는 개인 비서가 각 멤버의 정보를 사용하고 리소스의 액세스 제어 목록을 존중하면서 리소스의 정보를 추출하는 작업을 수행하기 위해 컴퓨터로 구현되는 개인 비서를 갖는 것이 유용할 수 있다.
본 명세서에서 설명된 주제의 하나 이상의 실시예의 세부 사항은 첨부된 도면 및 이하의 설명에서 기술된다. 본 발명의 다른 구성, 양태 및 이점은 상세한 설명, 도면 및 청구범위로부터 명백해질 것이다.
도 1은 엔터프라이즈 데이터가 통합된 예시적인 환경의 블록도이다.
도 2는 데이터 시스템의 블록도이다.
도 3은 엔터티 사실에 대한 액세스 권한을 제공하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 예시적인 엔터프라이즈 지식 그래프의 일부의 블록도이다.
도 5는 검색 결과를 엔터프라이즈 멤버에게 제공하기 위한 예시적인 프로세스의 흐름도이다.
도 6은 검색 결과를 랭킹하고 엔터프라이즈 멤버에게 제공하는 예시적인 프로세스의 흐름도이다.
도 7은 도 1의 예시적인 환경 구조에 컴퓨터로 구현되는 보조들을 통합한 블록도이다.
도 8은 컴퓨터로 구현되는 보조에 의한 엔터프라이즈 동작을 제공하기 위한 예시적인 프로세스의 흐름도이다.
개요
도 1은 엔터프라이즈 데이터가 통합된 예시적인 환경(100)의 블록도이다. 예시적인 환경(100)은 네트워크(102) 예를 들어, 근거리 통신망(LAN), 광역 네트워크(WAN), 인터넷, 또는 이들의 조합과 같은 네트워크(102)를 포함하며, 엔터프라이즈 정보 시스템(110), 애플리케이션 프로그래밍 인터페이스(120) 및 데이터 시스템(130)을 포함한다. 네트워크(102)는 유선 및/또는 무선 통신 링크를 통해 액세스될 수 있다. 예를 들어, 스마트폰과 같은 모바일 컴퓨팅 디바이스들은 셀룰러 네트워크를 활용하여 네트워크에 액세스할 수 있다.
엔터프라이즈 정보 시스템(110)은 하나 이상의 정보 소스들(112)을 포함할 수 있다. 도 1에서 보여지는 바와 같이, 정보 소스들(112)은 다른 것들 중에서도 하나 이상의 서브 시스템, 애플리케이션, 프로그램 또는 데이터베이스를 포함하는 (112a, 112b,… 112N)으로 식별된다. 예를 들어, 정보 소스들(112)은 엔터프라이즈, 엔터프라이즈 인트라넷, 엔터프라이즈 이메일 애플리케이션, 또는 엔터프라이즈 정보 시스템(110)이 연결된 임의의 임의의 서드 파티 정보 소스(예를 들어, 인터넷, 소프트웨어 애플리케이션)에 대한 내부 문서 데이터베이스일 수 있다. 각각의 정보 소스들(112)은 도 1에서의 리소스들(115)을 포함하며, (115a1, 115a2 ... 115an ... 115n1 ... 115NN)으로 식별될 수 있다. 예를 들어, 리소스들(115)은 엔터프라이즈 정보 시스템(110) 내에 저장된 문서, 인트라넷 URL, 이메일 메시지, 인터넷 URL, 또는 임의의 유사한 유형의 정보 컨텐츠일 수 있다(예를 들어, 엔터프라이즈 정보 시스템(110)이 액세스하는 서드 파티 애플리케이션에 저장된 정보).
본 명세서에서 사용되는 "엔터프라이즈"는 멤버들이 속한 공법 또는 사법 엔터티이며, 멤버들은 엔터프라이즈를 대신하여 프로젝트, 업무 및 기타 액션들을 수행한다. 엔터프라이즈의 예로는 비상장 엔터프라이즈, 공개 상장 엔터프라이즈 등이 있다. "엔터프라이즈 정보"는 최소한 엔터프라이즈에서 부분적으로 또는 독점적으로 저작, 소유, 큐레이팅 또는 다른 방법으로 제어되는 정보이다.
각각의 리소스(115)는 엔터프라이즈의 어느 멤버가 그 특정 리소스에 액세스 및/또는 수정하도록 허용되는지를 나타내는 관련된 액세스 제어 목록(ACL)를 갖는다. 각 리소스에 대한 액세스 제어 목록은 다른 것들 중에서도 리소스 소유자(또는 작성자), 읽기 액세스, 쓰기 액세스 및 삭제 액세스와 같은 액세스 권한들을 표시할 수 있다. 각 리소스에 대한 액세스 제어 목록은 개별 멤버 및/또는 멤버들의 하나 이상의 그룹들(예를 들어, 엔터프라이즈의 판매 부서)에 대한 액세스 및/또는 수정 권한들을 정의 할 수 있다. 각각의 리소스(115)는 또한 특정 리소스(예를 들어, 리소스 (115a1)의 버전 1 및 리소스 (115a1)의 버전 2)의 버전 관리를 허용할 수 있으며, 특정 리소스의 각 버전에 대한 액세스 제어 목록은 서로 다를 수 있다. 또한 특정 리소스는 다른 리소스의 "부모(parent)" 또는 "자식(child)"로 생성되거나 정의 될 수 있다. 모든 자식 리소스에 대한 액세스 제어 목록은 정의된 부모 리소스에 대한 액세스 제어 목록을 상속한다. 그러나 일부 구현예들에서는 이는 기본 액세스 제어 목록일 뿐이므로 자식 리소스 및/또는 부모 리소스에 대한 액세스 제어 목록은 다른 자식 리소스에 영향을 주지 않고 수정 될 수 있다. 이 구현예의 변형들에서 자식 리소스는 부모 리소스에서 상속 된 것 이외의 추가 액세스 제어 목록 요구 사항을 가질 수 있다.
리소스들(115)은 네트워크(102)를 통해 애플리케이션 프로그래밍 인터페이스(API)(120)를 통해 데이터 시스템(130)에 제공 될 수 있다. API(120)는 엔터프라이즈, 데이터 시스템(130)의 운영자, 또는 서드 파티(예를 들어, 특정 애플리케이션 또는 보다 일반적으로 적용 가능한 API에 대한 서드 파티에 의해 개발된)에 의해 디자인될 수 있다. API(120)는 더 많거나 적은 상이한 정의들 또는 필드들(예를 들어, 소유자, 읽기 또는 쓰기 액세스, 부모, 자식, 버전 등)을 포함하는 정보 소스들(112)에서 사용되거나 제시되는 상이한 액세스 제어 목록 유형들을 수용할 수 있다. 추가적으로, API(120)는 엔터프라이즈의 각 멤버에 대해 다수의 식별들을 허용한다. 예를 들어, 멤버가 정보 소스(112a)에 대해 "Jane Doe"의 식별을 갖고, 정보 소스(112b)에 대해 식별 "JaneDoe@enterprise.com"을 가지며, 엔터프라이즈 정보 시스템(110)이 이들 식별들은 둘 다 동일한 멤버에 관련된다는 설명을 제공하였으면, API(120)는 이들 식별들 둘 다를 그 특정 멤버와 링크할 수 있다. 추가적으로, API(120)는 멤버가 하나 이상의 그룹으로 분류될 수 있게 하고, 만약 그룹이 엔터프라이즈 정보 시스템(110)에서 업데이트, 추가 또는 제거되면, API(120)는 상기 API(120)에서 상기 변경들을 반영하기 위해 엔터프라이즈 정보 시스템(110)을 동기화할 수 있다.
리소스들(115)는 데이터 시스템(130)에 의해 API(120)를 통해 수신된다. 데이터 시스템(130)에 의해 구현되는 데이터베이스 스키마는 정보를 통합하고 구조화하기 위해 API(120)를 통해 엔터프라이즈 정보 시스템(110)에 의해 제공된 정보를 이해하기 위해 데이터 시스템(130)을 제공한다. 또한, API(120)는 데이터 시스템(130)이 정보를 통합할 수 있도록 미리 정의된 스키마에 따라 리소스들(115)과 관련된 정보를 태그할 수 있다. 현재 구현예에서, 데이터 시스템(130)은 통합 시스템(132), 데이터 저장소(134) 및 인덱서(136)를 포함한다. 통합 시스템(132)은 데이터베이스, 서버, 모듈, 애플리케이션 또는 이들의 조합일 수 있다. 통합 시스템(132)으로부터의 정보는 데이터 저장소(134)에 저장되고, 인덱서(136)는 데이터 저장소(134)에 저장된 정보를 인덱싱하여 엔터프라이즈의 멤버들에 의해 검색될 정보를 인덱싱한다.
엔터티 사실 엑세스 제어
도 2는 데이터 시스템(130)의 블록도이다. 일부 구현예에서, 통합 시스템(132)은 엔터프라이즈의 하나 이상의 멤버에 대한 리소스(115)에 대한 액세스 권한을 특정하는 액세스 제어 목록을 각각 갖는 복수의 리소스들(115)을 수신한다. 각각의 리소스는 도 2의 엔터티(210a, 210b ... 210N)로서 식별될 수 있는 엔터티들(210)을 기술하는 데이터 및/또는 정보를 포함한다. 엔터티들(210)은 엔터프라이즈 및 엔터티들 간의 관계와 관련된다. 엔터프라이즈의 엔터티들(210)은 예를 들어 사람(또는 멤버), 위치, 프로젝트, 부서, 판매 정보, 성과 평가 또는 엔터프라이즈의 리소스들(115)에 있는 기타 정보일 수 있다. 더 일반적으로, 일부 구현예에서, 엔터티는 담론, 개념 또는 각각 뚜렷하고 독립적인 존재이며, 텍스트 조각(예를 들어, 용어 또는 구)에 의해 참조될 수 있는 것이며 예를 들어, 맥락에 기초하여 서로 구별될 수 있다. 따라서 엔터티는 사실적인 정의와 속성을 갖는 물리적 또는 개념적 실현일 수 있다.
추가적으로, 통합 시스템(132)은 리소스들(115)의 엔터티들(210)로부터, 도 2의 엔터티 사실들(220a, 220b, ... 220N)로 식별될 수 있는, 엔터티 사실들(220)을 도출한다. 각각의 엔터티 사실(220)은 엔터티(210)의 적어도 하나의 구성을 기술하며, 상기 구성은 엔터티들(210) 간의 대응 관계를 기술한다. 예를 들어, 엔터프라이즈의 리소스(115)(예를 들어, 문서)는 엔터프라이즈를 관리하는 사람의 이름과 직책을 식별할 수 있고, "Jane Doe"가 "판매 담당 부사장"의 직책에서 엔터프라이즈를 관리할 수 있다. 현재 예시에서, "Jane Doe" 및 "판매 담당 부사장"이 엔터티들이고, 엔터티 사실(220)는 사실적 관계 "Jane Doe "---"Vice President "로 표현될 수 있는 엔터티 관계로 엔터티들 간의 관계를 생성하는 통합 시스템(132)에서 정의될 수 있다. 다양한 기법들이 엔터티 사실들을 식별하는데 사용될 수 있다. 이들은 예를 들어, 명사 및 관련 속성 등을 결정하기 위해 발행할 수 있는 언어 파서, 날짜 필드 간의 주요 관계를 결정하는데 사용할 수 있는 데이터베이스 파서 등이 포함한다.
또한, 통합 시스템(132)은 도 2의 (230a, 230b, ... 230N)으로 식별될 수 있는 엔터티 사실 액세스 제어 목록(230)를 결정한다. 엔터티 사실 액세스 제어 목록(230)는 각 리소스(115)의 액세스 제어 목록으로부터 결정되는 각각의 엔터티 사실(220)에 대해 결정된다. 일부 구현예에서, 리소스의 액세스 제어 목록은 리소스로부터 도출되는 각 엔터티 사실을 상속한다. 예를 들어, 리소스(115a1)는 엔터프라이즈 멤버의 급여 정보를 포함하는 문서일 수 있다. 리소스(115a1)은 엔터티(210a)로서 "Jane Doe"를, 별도의 열(Jane Doe의 급여를 나타냄)에 엔터티(210b)로서 "$ 50,000"를 포함할 수 있다. 급여 정보가 개인적이고 및 민감한 정보이기 때문에, 리소스(115a1)에 대한 액세스 제어 목록에는 예를 들어, "Mary"와 같은 인사 담당 책임자만 포함될 수 있다. 리소스(115b1)는 멤버의 급여 금액을 백분율로 나눈 인트라넷 페이지일 수 있고, "Jane Doe"를 엔터티(211a)로, "상위 5 %"를 엔터티(211b)(Jane Doe의 소득 비율을 나타냄)로 포함할 수 있다. 이 정보에 대한 액세스 제어 목록은 엔터프라이즈의 모든 멤버(또는 리소스(115a1)보다 큰 멤버 그룹)에 대한 액세스를 제공할 수 있다. 그런 다음 엔터티 사실들이 식별될 수 있으며, 이 예에서는 "Jane Doe" 및 "$ 50,000" 급여가 엔터티 사실(220a), "Jane Doe" 및 "Top 5 %"가 엔터티 사실(220b)일 수 있고, 이들은 리소스들(115a1, 115b1)의 엔터티들(210a, 210b, 211a, 211b)로부터 도출된다.
그 후, 엔터티 사실 액세스 제어 목록들(230)은 각각의 엔터티 사실이 도출된 자원에 기초하여 결정될 수 있다. 예를 들어, 엔터티 사실(220a)에 대한 엔터티 사실 액세스 제어 목록(230a)은 엔터티 사실(220a)이 도출된 리소스(115a1)이 액세스 제어 목록에 Mary를 포함하기 때문에 Mary만을 포함할 것이다. 엔터티 사실(220b)에 대한 엔터티 사실 액세스 제어 목록(230b)은 리소스(115b1)가 엔터프라이즈의 모든 멤버를 액세스 제어 목록에 포함했기 때문에 엔터프라이즈의 모든 멤버를 포함할 것이다. 현재 예시에 기초하면, Mary는 리소스(115a1)과 리소스(115b1)에 대한 액세스 제어 목록에 포함되어 있기 때문에 엔터티 사실(220a) 및 엔터티 사실(220b)에 액세스할 수 있다. 그러나 판매 담당자인 "Alvin"과 같은 다른 멤버는 기본 리소스(115a1)에 대한 액세스 제어 목록에 포함되어 있지 않기 때문에 (220a)에 액세스 할 수 없지만 사실(220b)이 도출된 문서와 관련된 액세스 제어 목록에 기초하여 리소스(115b1)에 대한 액세스 권한을 가지기 때문에 엔터티 사실(220b)에는 액세스할 수 있다.
통합 시스템(132)에 전송되거나 그로부터 획득되는 정보는 데이터 저장소(134)에 저장된다. 데이터 저장소(134)는 예를 들어, 엔터티들(210), 엔터티 사실들(220) 및 각각의 엔터티 사실 액세스 제어 목록(230)을 기술하는 데이터를 저장하고, 여기서 각 엔터티 사실(220)은 그것의 대응하는 엔터티 사실 엑세스 제어 목록(230)과 관련된다. 그 후, 인덱서(136)는 데이터 저장소(134)의 정보를 인덱싱한다. 그 후, 엔터프라이즈의 멤버는 검색 엔진(138)을 사용하여 예를 들어, 데이터 저장소(134)를 검색하여 엔터프라이즈의 리소스(115)의 엔터티 사실들(220)에 엑세스한다. 엔터프라이즈의 각 멤버에게는 각각의 엔터티 사실 액세스 제어 목록(230)에 따라 엔터티들(210) 및 엔터티 사실들(220)을 기술하는 데이터에 대한 액세스 권한이 제공된다.
임의의 적절한 검색 프로세스가 검색 엔진(138)을 실현하는데 사용될 수 있다. 검색 엔진(138)은 예를 들어 정보 검색(IR) 점수 알고리즘, 권한 점수 알고리즘, 또는 관련성 및 권한 알고리즘의 조합 중 하나 이상을 사용할 수 있다.
도 3은 엔터프라이즈의 기본 리소스(115)으로부터 획득된 각각의 엔터티 사실 액세스 제어 목록(230)에 기초하여 엔터티 사실들(220)에 대한 액세스 권한을 제공하기 위한 예시적인 프로세스(300)의 흐름도이다. 프로세스(300)는 예를 들어, 데이터 시스템(130)에 의해 구현될 수 있다. 일부 구현예에서, 예시적인 프로세스(300)의 동작은 비-일시적인 컴퓨터 판독 가능 매체에 저장된 명령어들로서 구현될 수 있으며, 상기 명령어들은 데이터 프로세싱 장치로 하여금 예시적인 프로세스(300)의 동작들을 수행하게 한다.
엔터프라이즈의 리소스들(115), 각 리소스는 엔터프라이즈의 하나 이상의 멤버에 대한 리소스에 대한 액세스 권한을 특정하는 각각의 액세스 제어 목록을 가지며, 그리고 상기 엔터프라이즈와 관련된 엔터티(210) 및 엔터티들(210) 간의 관계를 기술하는 데이터를 포함하는 리소스가 수신된다(302). 엔터프라이즈 정보 시스템(110)의 각각의 정보 소스(112)는 리소스들(115)을 포함하고, 리소스들(115)은 네트워크(102)를 통해 API(120)를 통해 데이터 시스템(130)에 제공될 수 있다. 각각의 리소스(115)는 엔터프라이즈의 어떤 멤버가 그 특정 리소스를 액세스 및/또는 수정하도록 허용되는지 표시하는 엑세스 제어 목록을 포함하며, 각각의 리소스(115)에 대한 액세스 제어 목록 정보는 각각의 리소스와 함께 수신된다. 각각의 리소스(115)는 엔터프라이즈와 관련된 정보인 엔터티들(210)을 포함한다. 예를 들어, "Jane Doe"가 "판매 담당 부사장"의 직책에서 엔터프라이즈를 관리 하는 곳에서, 엔터프라이즈를 관리하는 사람의 이름과 직책을 식별하는 엔터프라이즈의 리소스(115a1)는 "Jane Doe"를 엔터티(210a)로, “판매 담당 부사장”을 엔터티(210b)로 포함할 수 있다.
엔터프라이즈의 리소스들(115)로부터의 엔터티들(210)의 엔터티 사실들(220)이 식별되며, 여기서 각 엔터티 사실(220)은 엔터티(210)의 적어도 하나의 구성을 기술하고, 상기 구성들은 엔터티들(210) 간의 대응 관계를 포함한다(304). 예를 들어, 위의 예에서, 엔터티 사실(220)은 "Jane Doe"가 "판매 담당 부사장"인 경우, 엔터티 사실(220)은 "Jane Doe"와 "판매 담당 부사장"간의 관계일 수 있다. 이와 같이 "Jane Doe"의 구성은 "판매 담당 부사장"이고 "판매 담당 부사장"의 구성은 "Jane Doe"이다.
각 엔터티 사실(220)에 대해, 엔터티 사실 액세스 제어 목록(230)는 엔터티 사실(220)의 엔터티들(210)이 도출된 리소스의 액세스 제어 목록으로부터 결정된다(306). 현재 구현예에서, 엔터티들(210a 및 210b)을 포함하는 리소스(115a1)의 액세스 제어 목록은 엔터티 사실(220)의 엔터티 사실 액세스 제어 목록(230)로서 사용될 것이다. 예를 들어, 리소스(115a1)에 대한 액세스 제어 목록이 "판매 부서"인 경우, 엔터프라이즈 정보 시스템(110)에 정의된 바와 같이, "판매 부서"그룹에 포함된 엔터프라이즈 멤버는 "Jane Doe"이 “판매 담당 부사장”이라는 엔터티 사실(220)에 대한 액세스 권한을 가질 것이다.
엔터티들(210), 엔터티 사실들(220) 및 각각의 엔터티 사실 액세스 제어 목록(230)을 기술하는 데이터는 데이터 저장소(134)에 저장된다(308). 그 후, 인덱서(136)는 데이터 저장소(134)의 정보를 인덱싱한다. 그 후, 엔터프라이즈의 멤버는 인덱서(136)를 사용하여 예를 들어 데이터 저장소 (134)를 검색하여 엔터프라이즈의 리소스들(115)의 엔터티 사실들(220)에 액세스할 수 있다.
엔터프라이즈의 각 멤버에게 엔터티들(210) 및 엔터티 사실들(220)을 기술하는 데이터에 대한 액세스 권한은 인덱서(136) 내의 각각의 엔터티 사실 액세스 제어 목록(230)에 따라 액세스 권한이 제공된다. 예를 들어, 위의 예에서, "Alvin"이 "판매 부서"의 멤버인 경우, Alvin은 엔터티 사실 액세스 제어 목록(230)에 포함되어 있기 때문에, Alvin은 "Jane Doe"이 “판매 담당 부사장”이라는 엔터티 사실(220)에 대한 액세스 권한을 가진다.
엔터프라이즈의 멤버들은 검색 엔진(138)에 정보 및/또는 하나 이상의 리소스들(115)을 쿼리할 수 있다. 엔터프라이즈의 멤버에 의해 제공되는 쿼리는 데이터 저장 장치 (134)에 저장된 리소스들(115), 엔터티들(210) 및 엔터티 사실들(220)을 포함하는 데이터에 대해 인덱서(136)를 검색할 것이며, 이는 멤버의 쿼리와 관련될 수 있다. 일부 실시예에서, 엔터티 사실 액세스 제어 목록들(230)은 멤버에 의해 제공된 쿼리에 적용되고, 멤버는 리소스들(115), 엔터티들(210) 및 엔터티 사실들(220)을 포함하는 정보를 수신할 수 있으며, 멤버는 정보와 관련된 액세스 제어 목록들에 따라 엑세스 권한들을 가진다. 추가적으로, 일부 구현예에서, 아래에 기술된 바와 같이, 멤버 정보는 또한 엔터프라이즈 정보 시스템(110)으로부터 데이터 시스템(130)으로 제공될 수 있다. 멤버 정보는 예를 들어, 엔터프라이즈 내의 하나 이상의 멤버들의 역할 또는 위치, 엔터프라이즈의 조직 구조, 엔터프라이즈에서 하나 이상의 멤버들의 연락처(예를 들어, 전자메일 또는 전화), 제공된 쿼리와의 멤버의 관계를 포함할 수 있다.
리소스, 엔터티 및/또는 엔터티 사실이 멤버 쿼리에 어떻게 관련이 있는지에 기초하여 정보가 멤버의 쿼리와 관련이 있다고 결정될 수 있다. 멤버의 쿼리에 대한 응답으로 제공될 내용을 결정하기 위해 멤버의 쿼리에 추가적 분석 및 기준을 적용할 수 있다. 예를 들어, 엔터프라이즈 내의 멤버의 타이틀, 위치 또는 엔터프라이즈 내의 그룹 뿐만 아니라 소스 정보(112) 및 리소스들(115)를 포함하는 멤버가 인터렉션하고 사용하는 컨텐츠는 무엇이 멤버와 관련있는지의 팩터일 수 있다. 추가적으로, 멤버의 활동과 쿼리가 제공된 시간 및 날짜는 관련성의 팩터일 수 있다. 예를 들어 쿼리 멤버와 관련된 관심사 및 쿼리 멤버의 전자 메일 및 달력 리소스에 있는 정보는 관련성의 팩터일 수 있다. 검색 엔진(138)은 지식 그래프의 사용에 의해 멤버의 쿼리에 대한 관련성을 결정 및 분석할 수 있고; 그러나, 리소스들(115), 엔터티들(210) 및 엔터티 사실들(220) 간의 관련성 및 관계들을 결정하는 다른 방법도 사용될 수 있다.
엔터티(210) 또는 엔터티 사실(220)이 멤버에 의해 제공된 쿼리와 관련이 있는지를 결정하는 과정에서, 검색 엔진(138)은 또한 하나 이상의 엔터티(210) 및 엔터티 사실(220)과 쿼리 멤버의 관계를 결정한다. 일부 구현예에서, 검색 엔진(138)은 제공된 쿼리가 엔터티(210) 및 엔터티 사실(220) 중 적어도 하나에 대응하는지 또는 관련 있는 것을 결정되는지 여부에 대해 먼저 결정할 수 있다. 그 후, 검색 엔진(138)은 제공된 쿼리와 엔터티들(210) 및 엔터티 사실들(220) 사이의 관계를 형성한다. 또한, 검색 엔진(138a)은 제공된 쿼리와 관련이 있다고 결정된 엔터티들(210) 및 엔터티 사실들(220)과 쿼리 멤버의 관계를 결정할 수 있다.
도 4는 통합 시스템(132)에 의해 도출된 엔터프라이즈 관계 정보의 예시적인 엔터프라이즈 지식 그래프 표현(400)의 일부의 블록도이다. 지식 그래프는 노드 및 에지를 갖는다. 지식 그래프의 각 노드는 리소스(115) 및 엔터티(210)를 나타내고, 지식 그래프의 노드 쌍은 하나 이상의 에지들에 의해 연결된다. 각 에지는 2개의 리소스들(115), 2개의 엔터티들(210) 또는 노드 쌍에 의해 표현되는 각각의 리소스(115) 및 엔터티(210) 중 하나 간의 엔터티 사실(220)을 정의하는 관계 차원(relationship dimension)을 표시하며, 또는 몇 개의 에지는 하나 이상의 중간 노드에 의해 2 개의 노드를 연결하는 일련의 관계들을 표현한다. 전술한 바와 같이, 엔터티들(210) 간의 엔터티 사실(220)을 형성하기 위한 정보는 리소스들(115)에 제공되는 컨텐츠로부터 결정된다. 도 4에 도시된 바와 같이, 에지는 단방향이지만, 다른 변형 예에서는, 에지가 양방향일 수 있다.
예를 들어, 엔터프라이즈 지식 그래프(400)는 에지(412)에 의해 연결된 노드(410 및 414)를 포함한다. 이 예에서, 엔터프라이즈의 멤버인 "Jane Doe"라는 노드(410)는 에지(412)에 의해 “판매 부서”인 노드(414)에 연결되는 것으로 정의된다. 추가적으로, 노드(410)는 에지(416)에 의해, "프로젝트 A"인 노드(418)에 연결될 것으로 결정된다. 노드(422)와 노드(414) 사이의 에지(424)에 의해 도시된 다른 "판매 부서" 직원인 "Karen" 노드(422)는 에지(420)에 의해 노드(418)에 연결된다. 이 예에서, 노드(410)는 두 개의 별개의 관계들(노드(414) 및 노드(418))를 통해 노드(422)에 간접적으로 연결된다. 노드(410)는 또한 에지(426)에 의해 노드(428)에서 다른 프로젝트인 "프로젝트 B"에 접속되고, 노드(410)는 에지(430)에 의해 노드(432)에서 "엔지니어링 부서"에 연결된다. 예를 들어, 노드(410)에서 “Jane Doe”는 프로젝트가 가능했는지 결정하기 위해 또는 이벤트 또는 프로젝트의 상태를 확인하기 위해 과거에 "엔지니어링 부서"와 대응했을 수 있다. 이와 같이, 정보 소스(112)(예를 들어, 엔터프라이즈 이메일)는 "Jane Doe"및 "Engineering Department"의 엔터티들을 포함하는 리소스(115)(예를 들어, 이메일 메시지)을 포함할 수 있으며, 여기서 엔터티 사실(220)은 엔터티들 간의 관계를 기술한다. 또한, 엔지니어링 부서에서 일하는 또 다른 엔터프라이즈 멤버인 "Karen"은 노드(436)에서 에지(434)에 의해 노드(432)에 연결된다.
예시적인 엔터프라이즈 지식 그래프(400)에 기초하여, 만약 노드 (410)에서의 엔터티인 엔터프라이즈 멤버 "Jane Doe"가 검색 쿼리 "Karen"을 제공한다면, 데이터 시스템(130)은 엔터프라이즈 지식 그래프(400)를 분석하여 무엇이 쿼리와 관련되는지 결정한다. 예를 들어 노드(410)에서 "Jane Doe"와 노드(418) "Project A" 및 노드(420) "판매 부서"를 통해 노드(422)에서 "Karen" 사이의 연결에 기초하여, 노드(422)에서 "Karen"의 연락처 정보 또는 미팅 옵션, 및 "Jane Doe" 및 "Karen"과 관련된 식별들 사이의 리소스들(예를 들어, 공유된 문서 또는 이메일 메시지들)(115)은 제공된 쿼리와 관련이 있는 것으로 결정될 수 있다. 그러나, 노드(436)에서의 "Karen"에 관한 연락처 정보 또는 다른 정보는 노드(410)에서의 "Jane Doe"와 노드(436)에서의 "Karen" 사이에 보여지는 연결에 기초하여 덜 중요하거나 관련이 없는 것으로 결정될 수 있다.
추가적으로, 예시적인 검색 쿼리 "Karen"에 기초하여, 데이터 시스템(130)은 노드(418)에 도시된 "프로젝트 A"와 관련된 정보 및 리소스(115)가 노드(410) 및 노드(422) 둘 다 “프로젝트 A”에 대한 연결에 기초하여 상기 쿼리와 관련이 있는 것으로 결정할 수 있다. 그러나, 노드(428)에 도시된 "프로젝트 B"와 관련된 정보 및 리소스(115)는 노드 (428)와 노드(422) 사이의 연결 부재에 기초하여 관련성이 있다고 결정되지 않을 수 있다.
또한, 엔터프라이즈 지식 그래프(400)는 에지(438)에 의해 노드(410)에서 "Jane Doe"에 연결된 노드(440)에서 "Susan"을 포함한다. "Susan"은 예를 들어, "Jane Doe"를 이전에 만났고 및/또는 서신들을 주고 받은 판매 리드(sales lead)일 수 있다. 현재의 예에서, 노드(440)에서의 "Susan"은 그녀가 예를 들어 "회사 A"의 회계 관리자일 수 있기 때문에, 에지(442)에 의해 노드(444)에서 "회사 A"에 연결된다. 또한, 노드(444)는 에지(446)에 의해 엔터프라이즈의 노드(448)에서 "클라이언트"에 연결되고, 노드(448)는 에지(450)에 의해 노드(414)에서 "판매 부서"에 연결된다. 예를 들어, 노드(458)에서 보이는 "Mark"가 “회사 A”의 다른 회계 관리자이고, Jane Doe의 Susan과 이전 이메일 교환에서, Jane Doe에게 그녀의 판매 제안은 승인을 위해 “Mark”와 논의될 필요가 있다고 말한 경우, 리소스(115) (예를 들어, 엔터프라이즈 이메일)에서 제공되는 엔터티들에 기초로 노드 (440)과 (458) 사이에 엣지(451)이 생성될 수 있다.
예시적인 엔터프라이즈 지식 그래프(400)에 기초하여, 엔터프라이즈 멤버인 노드(410)에서의 엔터티 "Jane Doe"가 검색 쿼리 "회사 A"를 제공한다면, 데이터 시스템(130)은 엔터프라이즈 지식 그래프(400)를 분석하여, 무엇이 쿼리와 관련이 있는지 결정한다. 예를 들어, 노드(410)와 노드(440) 간의 연결에 기초하여, "Susan"과 관련된 문서, 전자 메일 및 전기 및 연락처 정보가 관련성이 있다고 결정될 수 있다. 또한 Susan이 Jane Doe에게 Mark에게 이야기 할 것을 권한 예시적 판매 리드 이메일에 기초하여, Mark의 전기 및 연락처 정보도 관련성이 있다고 결정될 수 있다.
추가로, 예를 들어, Jane Doe는 노드(454)에서 보여지는 "Atlanta"로 예정된 다가오는 여행이 있고, 에지(452)에 의해 노드(410)에 연결된다. 예를 들어, 만약 노드(458)에서 마크와 관련된 정보가 마크(Mark)의 사무실이 "Atlanta”에 있는 것을 표시하는 경우, 에지(456)에 의해 애틀란타 노드(454)와 Mark 노드(458)에지 사이가 연결될 수 있다. 이와 같이, "회사 A"의 엔터프라이즈 멤버 Jane Doe의 쿼리에 제공된 결과에서, 데이터 시스템(130)은 엔터프라이즈 멤버인 Jane Doe에게 Mark에게 이메일을 작성하거나, Mark에 전화를 걸거나, Mark와 만나기 위해 캘린더 초대를 예약하는 옵션을 제공하는 것이 관련이 있다고 결정할 수 있다. 이와 같이, 일부 구현예에서, 엔터티들(210) 및 리소스들(115)에 기초하여 생성된 엔터티 사실들(220)은 현재 또는 미래의 액션을 위한 기회일 수 있다. 전술한 바와 같은 쿼리 결과는 단지 예시적인 것이며, 쿼리 결과를 제공하는 다른 유형 및 방법이 포함될 수 있다. 일부 구현예에서, 엔터프라이즈 지식 그래프(400)는 하나 이상의 리소스(115)으로부터 획득될 수 있는 엔터프라이즈의 조직 구조와 관련된 정보를 포함할 수 있으며, 상기 위치를 유지하는 위치 및 멤버는 엔터프라이즈 지식 그래프(400)에서 관계적으로 구성된다.
도 5는 엔터프라이즈 멤버에 의해 제공된 쿼리에 기초하여 엔터프라이즈 멤버에게 검색 결과를 제공하는 예시적인 프로세스(500)의 흐름도이다. 프로세스(500)는 예를 들어 데이터 시스템(130)에 의해 구현될 수 있다. 일부 구현예에서, 예시적인 프로세스(500)의 동작은 비-일시적인 컴퓨터 판독 가능 매체 상에 저장된 명령어들에 의해 구현될 수 있으며, 상기 명령어들은 데이터 프로세싱 장치로 하여금 예시적인 프로세스의 동작을 수행하게 한다.
엔터프라이즈 멤버에 의해 제공되는 검색 쿼리는 데이터 시스템(130)에 의해 수신된다(502). 일부 구현예에서, 엔터프라이즈 정보 시스템(110)은 멤버에 의해 입력되는 쿼리를 수신하기 위해 엔터프라이즈 멤버에게 인터페이스를 제공할 수 있다. 인터페이스는 예를 들어, 데이터 시스템(130)과 통신하는 애플리케이션 또는 프로그램을 통해 제공되거나, 일부 구현예에서, 인터페이스는 데이터 시스템(130)과 직접 통신할 수 있다.
쿼리가 수신되면, 검색 엔진(138)은 엔터프라이즈 정보 시스템(110)으로부터 수신되고 인덱싱된 데이터를 저장하는 데이터 저장소(134)를 검색할 수 있다(504). 전술한 바와 같이, 데이터 시스템(130)은 멤버 정보를 포함하는 리소스(115)를 수신하고, 리소스들(115)는 리소스(115)의 엔터티(210)로부터 식별되는 엔터티 사실들(220) 및 엔터티들(210)를 기술하는 데이터를 포함한다. 추가적으로, 인덱서(136)는 각 엔터티 사실(220)에 대한 데이터 엔터티 사실 액세스 제어 목록(230)에 대한 액세스 권한을 정의하는 데이터를 포함하며, 이전에 기술된 바와 같이, 이는 각 자원 (115)의 액세스 제어 목록으로부터 결정된다.
멤버가 액세스 가능한 엔터티 사실들(220)은 전술한 바와 같이 엔터티 사실 액세스 제어 목록(230)에 기초하여 결정된다(506). 예를 들어, 사실 또는 자원에 대한 액세스 권한이 있는 멤버를 특정하는 액세스 제어 목록을 갖는 사실들 및 리소스만 제공된다. 멤버가 읽기 액세스 권한이 없는 다른 사실들 및 리소스들은 해당 멤버에 대해 식별되지 않는다.
또한, 쿼리와 관련된 엔터티(210) 및 엔터티 사실(220)을 기술하는 데이터를 포함하는 검색 결과 데이터는 회원 정보 및 멤버가 액세스 가능한 엔터티 사실(220)에 기초하여 결정된다(508). 예를 들어, 전술한 바와 같이, 멤버의 쿼리와 관련이 있는 것으로 결정된 엔터티(210) 및 엔터티 사실(220)이 식별된다. 또한, 엔터프라이즈 내의 멤버의 위치 또는 관계는 무엇이 회원 쿼리뿐만 아니라 멤버가 인터렉션하고 사용하는 소스 정보(112) 및 리소스(115)와 관련 있는지에 관한 팩터일 수 있다. 멤버의 활동과 쿼리가 제공된 시간과 날짜는 관련성을 결정하거나 고려될 수 있다. 또한, 엔터프라이즈 지식 그래프(400)와 같은 엔터프라이즈 지식 그래프 표현은 리소스(115), 엔터티(210) 및 엔터프라이즈 관계 정보의 엔터티 사실(220)의 관련성을 결정하는데 사용될 수 있다.
엔터프라이즈 멤버에 의해 제공된 쿼리에 대한 검색 결과는 검색 결과 데이터에 기초하여 제공된다(510). 검색 결과 데이터는 엔터티(210), 엔터티 사실(220), 엔터티(210) 및/또는 엔터티 사실(220)이 도출되는 기초가 되는 리소스(115), 또는 이들의 조합을 포함할 수 있다. 엔터티들(210) 및/또는 엔터티 사실(220)이 도출되는 기초 리소스들(115)은 제시되는 엔터티(210) 및/또는 엔터티 사실(220)에 내장 될 수 있다. 예를 들어, 기본 리소스(115)는 링크(예를 들어, 하이퍼링크), 드롭 다운 선택 박스, 호버 선택(hover selection) 등으로 제공될 수 있다. 일부 구현예에서, 예를 들어, (220a)와 같은 엔터티 사실이 하나 이상의 리소스, 예를 들어 리소스(115a1) 및 리소스(115b1) 둘 다로부터 도출된다면, 엔터티 사실(220a)에 대한 내장된 기본 리소스는 엔터티 사실(220a)이 도출된 리소스 중 하나 이상을 포함할 수 있다. 기본 리소스들(115) 중 하나만이 제공되는 일부 구현예에서, 기본 리소스의 선택은 멤버에 대한 각각의 기본 리소스 중 가장 관련 있는 리소스에 기초 할 수 있다. 예를 들어, 쿼리 멤버가 판매 부서의 일원이고, 기본 리소스(115a1)가 데이터베이스의 판매 부서 위치에 저장되어 있고, 기본 리소스(115b1)가 데이터베이스의 엔지니어링 부서 위치에 저장되는 경우, 리소스(115a1)는 멤버와 가장 관련이 있는 것으로 결정될 수 있다. 또한, 일부 구현예에서, 제공되었거나 제공되는 과정에 있는(예를 들어, 멤버가 현재 입력하고 있는) 쿼리 및/또는 검색 결과에 기초하여 멤버에게 쿼리 제안이 제공될 수 있다. 데이터 시스템(130)은 자연 언어 입력을 해석하고 이해하도록 구성 될 수 있다.
검색 결과의 제시는 검색 결과 데이터의 목록으로서 제공될 수 있고, 일부 구현예에서 하나 이상의 지식 패널이 검색 결과에 제공될 수 있다. 지식 패널은 수신된 쿼리에 대한 다른 검색 결과와 함께 또는 인접하여, 또는 다른 검색 결과 대신에 제공될 수 있다. 지식 패널은 검색 쿼리에 의해 참조되는 엔터티(210) 및/또는 엔터티 사실(220)에 관련된 정보를 제공할 수 있다. 일부 구현예에서, 지식 패널은 엔터티(210) 및/또는 엔터티 사실(220)에 대한 정보 요약을 제공할 수 있다. 예를 들어, 노드(410)에서 위에 제공된 바와 같은 "Jane Doe"에 대한 지식 패널은 다른 여러 컨텐츠들 중에서 Jane Doe 의 엔터프라이즈 프로필 사진, 그녀가 일하는 부서, 그녀의 연락처 정보, 전기를(Jane Doe의 엔터프라이즈 웹 페이지에 대한 링크 포함) 포함할 수 있다. 대안적으로, 특정 엔터티(210) 및/또는 엔터티 사실(220)에 대한 지식 패널은 특정 엔터티 (210) 및/또는 엔터티 사실(220)과 관련된 것으로 식별된 다른 엔터티(210) 및/또는 엔터티 사실(220)에 관한 정보를 또한 포함할 수 있다. 예를 들어, 위에서 참조된 엔터프라이즈 회원 Jane Doe이 "회사 A"의 판매 회계 관리자 인 경우, 엔터프라이즈 멤버 Jane Doe의 지식 패널에는 연락처 및 위치 정보와 같은 A 회사에 관한 정보가 포함될 수 있다. 예를 들어, 회사 A에 대한 정보에는 회사 A의 판매 리드 연락처 (예를 들어, "Susan"(노드 440))에 대한 정보가 포함될 수 있다. Susan에 대한 정보에는 다른 컨텐츠들 중에서, Susan의 회사 프로필 사진, 그녀가 근무하는 부서, 연락처 정보, 전기(Susan 's Company A 엔터프라이즈 웹 페이지 링크 포함)가 포함될 수 있다.
엔터티 사실 검색 프로세싱
도 6은 엔터프라이즈 멤버에 의해 제공된 쿼리에 기초하여 검색 결과를 랭킹하고 엔터프라이즈 멤버에게 제공하는 예시적인 프로세스(600)의 흐름도이다. 프로세스(600)는 예를 들어 데이터 시스템(130)에 의해 구현될 수있다. 일부 구현예에서, 예시적인 프로세스(600)의 동작은 비-일시적인 컴퓨터 판독 가능 매체 상에 저장된 명령어들에 의해 구현될 수 있으며, 상기 명령어들은 데이터 프로세싱 장치로 하여금 예시적인 프로세스의 동작을 수행하게 한다.
일부 구현예에서, 검색 결과 데이터는 쿼리 및 쿼리 멤버의 및 멤버 정보과 관련하여 엔터티(210) 및 엔터티 사실(220)의 관련성에 기초하여 랭킹될 수 있다(602). 상술한 바와 같이, 관련 엔터티들(210) 및 엔터티 사실들(220)이 결정될 수 있고, 그 결과는 쿼리 멤버 및 제공된 쿼리에 기초하여 관련성 레벨에 기초하여 랭킹되거나 구성될 수 있다. 그 후, 검색 결과 데이터는 엔터프라이즈의 멤버에 대한 랭킹의 순서로 제공될 수 있다(604).
일부 구현예에서, 품질 스코어는 엔터프라이즈 멤버에 의해 제공되는 쿼리에 기초하여 각각의 엔터티(210) 및 엔터티 사실(220)에 대해 결정될 수 있다. 품질 스코어는 쿼리에 대한 각 엔터티(210) 및 엔터티 사실(220)에 대한 관련성 레벨을 나타낼 수 있다. 품질 스코어는 회원 특정 부분 또는 전체 집합 또는 이들의 조합일 수 있다. 도 4에 기술된 바와 같이, 엔터프라이즈 지식 그래프는 쿼리를 제공하는 엔터프라이즈의 멤버 및 쿼리와 관련하여 엔터티(210) 및 엔터티 사실(220)의 관련성을 연관시키기 위해 품질 스코어에 사용 및 고려될 수 있다. 또한, 엔터티(210) 및 엔터티 사실(220)에 대한 품질 스코어는 엔터프라이즈의 멤버 또는 엔터프라이즈의 멤버들의 집합에 의한 명시적 표시 및/또는 암시적 표시에 기초할 수 있다. 예를 들어, 엔터프라이즈의 멤버는 특정 리소스(115) 또는 정보 소스(112) (예를 들어, 인터넷, 이메일 또는 판매 부서 데이터베이스)로부터의 정보(예를 들어, 엔터티(210) 및 엔터티 사실(220))를 선호함을 명시적으로 표시할 수 있다. 다른 명백한 표시는 다른 여러 것들 중에 멤버가 저작자인 리소스(115)의 선호도, 엔터프라이즈의 부서 또는 그룹의 멤버가 생성한 리소스(115) 또는 사용자가 표현한 관심사(예를 들어, 기업의 주식 시장 가격)을 포함할 수 있다.
암시적 표시는 멤버의 명시적 입력 없이 제공되는 모든 유형의 표시 일 수 있다. 이미 상술한 바와 같이, 엔터티(210) 및 엔터티 사실(220)의 관련성을 결정하기 위해, 상기 엔터프라이즈 시스템(110) 및 데이터 시스템(130)과의 멤버의 인터렉션과 관련된 상이한 정보가 암시적인 표시를 제공 할 수 있다. 예를 들어, 암시적 표시에는 엔터프라이즈 내의 멤버의 위치, 그룹 또는 부서, 멤버가 최근 또는 정기적으로 인터렉션한 정보 소스(112) 및 리소스(115) 및 회원의 활동이 포함될 수 있다.
또한 암시적 표시는 멤버 또는 멤버들의 집합이 쿼리에 대해 제공된 검색 결과와 어떻게 인터렉션하는지에 기초하여 멤버 또는 멤버들의 집합에 제공될 수 있다. 예를 들어, 일부 구현예에서, 파라미터는 품질 스코어에 적용될 수 있다. 예시적인 파라미터는 다른 여러 것들 중에 평균 상호성 랭크(mean reciprocal rank), 평균 정밀도, 평균 클릭 위치, 클릭 스루 레이트 및 포기율 중 하나 이상일 수 있다. 평균 상호성 랭크는 정확성의 확률로 정렬된 쿼리 샘플에 대한 가능한 쿼리 결과의 목록을 생성하는 임의의 프로세스를 평가하기 위한 통계적 척도일 수 있다. 쿼리 응답의 상호성 랭크는 제1 정답의 랭크의 곱셈 역(multiplicative inverse)이며, 평균 상호성 랭크는 쿼리 샘플에 대한 역(reciprocal)의 랭크의 평균이다. 평균 클릭 위치는 멤버가 선택한 제공된 검색 결과의 순서대로의 평균 순위일 수 있다. 클릭 스루 레이트는 특정 쿼리 검색 결과가 선택되는 비율일 수 있으며, 포기율은 포기된 쿼리들의 수를 동일한 또는 유사한 하나 이상의 쿼리 또는 멤버 또는 멤버들의 집합에 의해 제공된 동일하거나 유사한 쿼리와 관련된 쿼리의 수로 나눈 것일 수 있다. 포기된 쿼리는 후속 쿼리 검색 결과 선택이 없으며 쿼리에 대한 이후의 세분화가 없는 쿼리이다. 이들은 단지 예시적인 파라미터이며, 상기 파라미터에 대한 다른 파라미터 또는 수정이 제공될 수 있다.
또한, 일부 구현예에서, 클릭 결과 정보가 품질 스코어에 포함될 수 있다. 예를 들어, 멤버 또는 멤버들의 집합의 평균이 검색 결과를 긴 클릭(예를 들어, 임계 기간보다 오래 지속되는 클릭)으로 선택하면, 검색 쿼리와 관련된 검색 결과는 짧은 클릭으로 검색 결과를 선택한 경우보다 관련성이 높은 것으로 결정될 수 있고, 검색 결과가 짧은 클릭으로 선택된 시간의 일정 퍼센티지는 잘못 선택된 것을 결정될 수 있다. 추가적으로, 선택되기 위해 클릭되지 않은 검색 결과들은 제공된 쿼리와 적게 관련이 있는 것을 결정될 수 있다.
품질 스코어를 포함하는 제공된 각각의 쿼리에 대한 각 검색 결과의 관련성은 멤버들 또는 멤버들의 집합의 검색 결과와의 인터렉션에 기초하여 데이터 시스템(130)에 의해 자동 조정, 즉 수정 및/또는 조정될 수 있다. 예를 들어, 멤버가 "회사 A"에 대한 쿼리를 제공하고 회사 A의 "Susan"에 대한 엔터티 사실(220)과 관련된 제2 검색 결과를 선택한 경우, 해당 엔터티 사실(220)의 품질 스코어는 증가할 수 있지만, 관련이 있는 것으로 결정된 검색 결과에 제공된 다른 엔터티(210) 및 엔터티 사실(220)에 대한 품질 스코어들은 감소 또는 조정될 수 있다. 추가적으로, 엔터티(210) 및 엔터티 사실(220)과 관련된 엔터프라이즈 약어 및 동의어는 자동-조정 프로세스에 기초하여 데이터 시스템(130)에 의해 결정될 수 있다.
일부 구현예에서, 자동-조정 프로세스는 자동-조정 프로세스가 설정된 후에 사람의 입력 또는 개입 없이 데이터 시스템(130)에 의해 자동으로 수행될 수 있다. 많은 엔터프라이즈 데이터 시스템(110)은 엔터프라이즈 내에서 기밀로 유지되어야 하는 민감한 비밀 정보를 포함한다. 그러므로, 데이터 시스템(130)에서의 개입 또는 입력은 엔터프라이즈 내의 정보의 기밀성 및 보안성을 보존하기 위해 제공되지 않을 수 있다. 일부 실시예에서, 품질 스코어를 포함하는 관련성 결정은 정적 및/또는 동적 알고리즘, 공식, 휴리스틱 또는 이들의 조합에 기초할 수 있다.
엔터프라이즈 보조들
엔터티 사실 및 관련 정보는 또한 엔터프라이즈 멤버를 위한 동작을 지원하는 다른 정보에 사용될 수 있다. 일 예시는 액세스 제어 목록에 따라 엔터프라이즈 정보를 사용하도록 컴퓨터 구현되는 보조의 역할을 확장한다.
도 7은 예시적인 환경(100)의 예시적 환경 구조에 컴퓨터로 구현되는 보조를 통한하는 예시적인 환경(700)을 도시한다. 추가적으로, 일부 구현예에서, 예시적 환경(700)에서 볼 수 있는 바와 같이, 엔터프라이즈의 하나 이상의 멤버들은 컴퓨터로 구현되는 보조들(710)을 사용할 수 있다. 도 7에 도시된 바와 같이, 하나 이상의 컴퓨터 구현 보조들(710a, 710b, ..., 710N)은 엔터프라이즈 정보 시스템(110), 데이터 시스템(130), 멤버 정보 시스템(720) (도 7에서 (720a, 720b,…, 720N)으로 도시됨) 또는 이들의 조합을 포함할 수 있다. 그러나, 상기 통신은 요구되지 않으며, 일부 실시예에서는, 더 많거나 적은 디바이스들 및 시스템들과의 통신이 포함될 수 있다. 멤버 정보 시스템(720)은 리소스(115)에 기술되거나 포함되지 않지만 특정 컴퓨터 구현 보조와 연관된 특정 멤버가 액세스할 수 있는 정보를 포함할 수 있다. 예를 들어, 멤버의 개인 이메일, 개인 캘린더 또는 개인 여행 정보가 멤버 정보 시스템(720)에 포함될 수 있다. 멤버 정보 시스템(720)은 하나 이상의 디바이스들(예를 들어, 컴퓨터, 모바일 디바이스, 스마트 폰, 태블릿)에서 구현될 수 있고, 멤버 개인 정보의 저장은 상기 하나 이상의 디바이스들, 다른 디바이스 또는 클라우드 저장소 환경에서 저장될 수 있다. 컴퓨터로 구현되는 보조 (710)는 임의의 호환 가능한 소프트웨어 애플리케이션에서 구현되도록 구성되며, 컴퓨터로 구현되는 보조(710)는 단지 하나의 애플리케이션 및/또는 하나의 사용자 디바이스에서만 사용될 필요는 없다. 추가적으로, 도 7에 도시 된 바와 같이, 일부 구현예에서, 컴퓨터로 구현되는 보조(710)는 API (120)의 사용 없이 데이터 시스템(130)과 통신할 수 있다.
전술한 바와 같이, 데이터 시스템(130)은 엔터티(210) 및 엔터티 사실(220)을 기술하는 데이터를 포함하는 엔터프라이즈 리소스(115)에 액세스하고 통합한다. 각각의 엔터티 사실(220)은 엔터티 사실(220)이 획득되는 기본 리소스(115)로부터 제공되는 엔터티 사실 엑세스 제어 목록(230)을 포함하며, 각 멤버는 각각의 엔터티 사실 액세스 제어 목록(230)에 따라 리소스(115), 엔터티(210) 및 엔터티 사실(220)에 대한 액세스 권한을 갖는다. 추가적으로, 일부 구현예에서, 멤버 개인 정보는 또한 멤버 정보 시스템으로부터 엔터프라이즈 정보 시스템(110) 및/또는 데이터 시스템(130)에 제공될 수 있다.
엔터프라이즈의 각 멤버에 대한 컴퓨터 구현 보조(710)는 엔터티(210) 및 엔터티 사실(220)을 포함하는 상기 멤버에 특정한 엔터프라이즈 정보를 결정할 수 있고, 상기 멤버 개인 정보를 상기 멤버에 특정한 엔터프라이즈 정보와 통합할 수 있다. 예를 들어, 컴퓨터 구현 보조(710)는 멤버 개인 정보 및 멤버에 특정된 엔터프라이즈 정보에 기초하여 특정 멤버에 대한 일정을 결정할 수 있다. 이 정보를 결합하는 컴퓨터 구현 보조(710)에 기초하여, 컴퓨터 구현 보조(710)는 멤버에 대해 수행될 엔터프라이즈 액션을 결정할 수 있으며, 여기서 엔터프라이즈 액션은 멤버의 엔터프라이즈 관련 책임에 고유 한 액션들이다. 예를 들어, 엔터프라이즈 관련 책임에는 다른 것들 중에서도 업무 회의, 준비 및 여행이 포함되지만 개인 휴가 일정은 포함되지 않을 수 있다.
멤버에 대한 엔터프라이즈 액션들을 제공하기 위해, 컴퓨터 구현 보조(710)는 사용자 디바이스가 방문했거나 방문하기로 예정된 하나 이상의 위치, 사용자 디바이스가 인터렉션하는 하나 이상의 엔터프라이즈 멤버 사용자 디바이스들, 멤버의 관심사들, 멤버와 관련된 산업 정보 및 멤버의 일정 정보와 관련된 데이터를 분석하고 결정할 수 있다. 이러한 예시적인 데이터는 멤버의 하나 이상의 사용자 디바이스, 엔터프라이즈 정보 시스템(110), 데이터 시스템(130), 멤버 정보 시스템(720), 또는 이들의 조합에 의해 제공될 수 있다. 또한, 일부 구현예에서, 엔터프라이즈 외부의 엔터티에 의해 공개되는 공공 자원(730)(도 7에서 730a, 730b, ..., 730N으로 나타냄)은 컴퓨터로 구현되는 보조(710)이 멤버에 대한 엔터프라이즈 액션들을 수행하는데 사용하는 정보에 포함될 수 있다. 전술한 바와 같이, 컴퓨터 구현 보조(710)는 데이터 시스템(130)과 통신할 수 있고, 데이터 시스템(130)에 제공된 스키마는 컴퓨터 구현 보조(710)에 의해 이용되어, 공공 리소스들에 의해 제공된 정보를 분류하고 이해한다. 일부 구현예에서, API(120)는 컴퓨터 구현 보조(710)에 의해 수신된 컨텐츠 및 정보를 태그하고 인덱스하기 위해 사용된다. 공개 리소스는 다른 여러 것들 중에 예를 들어, 인터넷, 여행 데이터베이스 시스템, 전문 네트워킹 애플리케이션일 수 있다. 현재 구현예에서, 컴퓨터 구현 보조 (710)는 특정 멤버와 관련된 공공 리소스로부터 공공 정보의 서브셋을 결정할 수 있다. 예를 들어, 공공 리소스가 여행 데이터베이스 시스템이고 멤버가 "Atlanta"에서 예정된 회의를 갖는 경우, 컴퓨터 구현 시스템(710)은 특정 멤버와 관련된 공개 정보의 서브셋은 항공편 또는 멤버가 위치하는 현재 도시로부터 조지아, 애틀란타까지의 다른 교통 수단임을 결정할 수 있다. 컴퓨터 구현 보조(710)는 다른 개인 정보 중에서 멤버 개인 정보, 멤버 고유의 엔터프라이즈 정보 및 엔터티 사실(220)에 기초하여 특정 멤버에게 관련된 공개 정보의 서브셋을 결정할 수 있다. 특정 멤버와 관련된 공개 정보의 서브셋을 결정한 후에, 컴퓨터 구현 보조(710)는 멤버에 대해 수행할 엔터프라이즈 액션을 결정할 수 있다.
멤버에 대해 수행할 엔터프라이즈 액션은 컨텍스트에 따라 달라질 수 있으며, 멤버에게 통찰력이나 정보를 제시하고, 회원에게 기회들(예를 들어, 사업 단서) 또는 멤버에 대한 하나 이상의 과제 완료를 표시하는 것을 포함 할 수 있다. 예를 들어, 엔터프라이즈 액션은 회의 초대 취소가 포함될 수 있다. 취소는 멤버가 예정된 휴가가 있음(멤버의 개인 캘린더에만 표시되어 있더라도)이나 일정 충돌을 포함하여 여러 가지 이유를 기반으로 할 수 있다. 또한 엔터프라이즈 액션들은 충돌하는 회의 일정 변경, 항공편 예약, 호텔 방 예약, 지역 교통 옵션 제시, 회원에게 적합한 레스토랑 찾기, 회원에게 적합한 식당 예약 만들기, 일일 일정 표시(일부 항목은 자동 생성)를 포함할 수 있다.
또한, 엔터프라이즈 액션은 예정된 회의 또는 이벤트의 시간에 관련 정보(예를 들어, 문서 또는 슬라이드 프리젠테이션)를 회원에게 제공하는 것을 포함할 수 있다. 예정된 회의 또는 이벤트에 대한 정보의 관련성은 멤버 개인 정보, 멤버 고유의 엔터프라이즈 정보, 엔터티 사실 및 공개 정보의 서브셋을 포함하는 컴퓨터 구현 보조(710)가 이용가능한 정보에 기초할 수 있다. 컴퓨터 구현 보조(710)는 예정된 이벤트 또는 회의의 시간에 앞서 또는 그 시간에 엔터프라이즈 리소스를 포함하는 관련 정보를 멤버의 하나 이상의 사용자 디바이스에 제공할 수 있다. 예를 들어, 회원이 엔터프라이즈의 다른 멤버인 "Tom"과 예정된 회의를 갖고 Tom이 특정 문서에 대해 토론하도록 회의를 예약한 경우 컴퓨터 구현 보조(710)는 특정 문서가 회의와 관련이 있는지를 결정할 수 있고(예를 들어, 회의 제목, Tom과 회원 간의 전자 메일 교환을 기반으로), 회의를 시작할 때 또는 예정된 회의 이전에 회원에게 문서를 제공할 수 있다. 또한, 일부 구현예에서, 컴퓨터 구현 보조(710)는 예정된 회의 또는 이벤트와 관련이 있는 것으로 결정된 경우, 멤버의 하나 이상의 사용자 디바이스에 공공 리소스를 포함하는 정보 자료를 제공할 수 있다. 예를 들어, 멤버는 복잡한 기술 주제에 관해 논의하도록 예정된 회의를 가질 수 있으며, 컴퓨터 구현 보조(710)는 회의 이전에 멤버에게 기술적 인 배경정보 또는 다른 유형의 정보를 제공할 수 있다.
일부 구현예에서, 엔터프라이즈 액션은 멤버에게 기회(예를 들어, 비즈니스 리드)를 제공하는 것을 포함한다. 예를 들어, 회원이 엔터프라이즈의 판매 부서에 있고 판매 리드가 방문하는 "Atlanta"로의 예정된 출장을 가지고 있는 경우(예를 들어, 회원과 판매 리드 간의 이전 전자 메일 교환을 기반으로 알려진 경우) 컴퓨터 구현 보조(710)는 판매 리드가 또한 그 당시 애틀란타에 있을 것이라는 통지를 멤버의 하나 이상의 사용자 디바이스에 제공할 수 있고, 컴퓨터 구현 보조(710)는 멤버에게 애틀란타에 있는 동안 판매 리드와 회의를 잡거나 또는 이와 달리 연락할 것인지 묻거나 프롬프트할 수 있다. 각각의 엔터프라이즈 액션이 수행되도록 결정된 후에, 컴퓨터 구현 보조(710)는 멤버의 하나 이상의 사용자 디바이스로 하여금 엔터프라이즈 액션을 멤버에게 설명하는 통지를 제시하게 한다.
일부 실시예에서, 컴퓨터 구현 보조(710)는 엔터프라이즈의 하나 이상의 다른 멤버의 컴퓨터 구현 보조(710) 사이에서 조정할 수 있다. 컴퓨터 구현 보조(710)는 엔터프라이즈 액션이 적어도 하나의 다른 엔터프라이즈 멤버와 관련되는지 결정할 수 있다. 예를 들어, 멤버의 컴퓨터 구현 보조(710)가 다른 엔터프라이즈 멤버와의 회의를 계획한 후에 출장을 계획 한 경우, 멤버의 컴퓨터 구현 보조(710)는 스케줄된 출장이 현재 예정된 회의에 영향을 미침을 결정할 수 있다. 컴퓨터 구현 보조(710)는 다른 멤버의 컴퓨터 구현 보조(710)와 통신할 수 있고, 적어도 하나의 다른 멤버와 관련된 엔터프라이즈 액션에 관한 정보를 포함할 수 있다. 예를 들어, 새로 예정된 출장이 예정된 비즈니스 미팅과 충돌하는 경우, 멤버의 컴퓨터 구현 보조(710)는 다른 멤버의 컴퓨터 구현 보조(710)에게 멤버가 회의를 할 수 없고 다른 회의 시간에 제안될 수 있다는 것을 다른 멤버의 컴퓨터 구현 보조(710)에게 통지하는 정보를 제공할 수 있다. 그러나 멤버가 여행 중인 곳, 멤버가 미팅 중인 사람, 언제 멤버가 떠났는지에 관한 엔터프라이즈 액션으로부터의 정보는 다른 멤버의 컴퓨터 구현 보조(710)에게 제공되지 않으며, 이는 그 정보는 적어도 하나의 다른 멤버와 관련되지 않기 때문이다. 또한, 일부 구현예에서, 적어도 하나 이상의 다른 멤버 각각의 컴퓨터 구현 보조(710)는 멤버의 엔터프라이즈 액션의 관련 정보를 수신하는 것에 기초하여 엔터프라이즈 액션을 수행할 수 있다.
또한, 일부 구현예에서, 컴퓨터 구현 보조(710)는 멤버 디바이스상의 서드파티 애플리케이션 상에서 구현되도록 구성된다. 예를 들어, 서드 파티 애플리케이션은 회원 탑승권 및 기타 여행 정보가 포함된 여행 시스템 애플리케이션일 수 있다. 이와 같이, 서드파티 애플리케이션은 관련된 서드 파티 애플리케이션 멤버 개인 정보를 컴퓨터 구현 보조(710)에 제공할 수 있다. 추가적인 서드파티 애플리케이션은 예를 들어, 뱅킹, 통신(이메일), 전문 네트워킹에 대한 애플리케이션들을 사용할 수 있다.
도 8은 엔터프라이즈 멤버에 대해 컴퓨터 구현 보조(710)에 의해 엔터프라이즈 액션을 제공하기 위한 예시적인 프로세스(800)의 흐름도이다. 프로세스(800)는 예를 들어, 컴퓨터 구현 보조(710)에 의해 구현될 수 있다. . 일부 구현예에서, 예시적인 프로세스(800)의 동작은 비-일시적인 컴퓨터 판독 가능 매체 상에 저장된 명령어들에 의해 구현될 수 있으며, 상기 명령어들은 데이터 프로세싱 장치로 하여금 예시적인 프로세스(800)의 동작을 수행하게 한다.
엔터티 사실 액세스 제어 목록(230)에 기초하여, 엔터프라이즈의 멤버가 엑세스할 수 있는 엔터프라이즈 리소스들(115) 및 멤버에 고유한 엔터프라이즈 정보가 엑세스되며(802), 여기서 리소스들(115)은 엔터티들(210) 및 엔터티들(엔터티 사실들(220)을 포함하는) 간의 관계를 기술하는 데이터를 포함한다. 추가적으로, 전술한 바와 같이, 리소스(115)으로부터의 엔터티(210)의 엔터티 사실(220)이 식별되며(804), 각각의 엔터티 사실(220)은 엔터티(210)의 적어도 하나의 구성을 기술한다. 또한, 전술한 바와 같이, 멤버에게 고유한 멤버 개인 정보는 멤버가 엑세스되며(806), 상기 멤버 개인 정보는 멤버가 엑세스 가능한 엔터프라이즈 리소스들에 의해 기술되지 않는다. 그 후, 상술한 바와 같이, 컴퓨터 구현 보조(710)는 멤버 개인 정보, 멤버에 고유한 엔터프라이즈 정보 및 엔터티 사실들에 기초하여 멤버에 대해 수행될 엔터프라이즈 액션을 결정한다(808). 수행될 것으로 결정된 각각의 엔터프라이즈 액션에 대해, 컴퓨터 구현 보조(710)는 수행되는 엔터프라이즈 액션을 설명하는 통지를 멤버에게 제공한다(810).
본 명세서기 기술된 주제 및 동작의 실시예는 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어 또는 그것들의 하나 이상의 조합들에서 구현될 수 있고, 이들은 본 명세서에 개시된 구조들 및 그들의 구조적 균등물을들 포함한다. 본 명세서에 기술된 주제의 실시예들은 하나 이상의 컴퓨터 프로그램들 즉, 데이터 프로세싱 장치에 의한 실행 또는 그에 의핸 동작의 제어를 위해 컴퓨터 저장 매체에 수록되는 컴퓨터 프로그램 명령들의 하나 이상의 모듈들로서 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령들은 인공적으로 생성된 전파된 신호 예를 들어, 데이터 프로세싱 장치에 의한 실행을 위한 적절한 수신 장치에 정보를 전송하기 위해 인코딩하여 생성되는 기계 생성 전기, 광학 또는 전자기적 신호에 인코딩 될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 장치, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 장치, 또는 이들 중 하나 이상의 조합 일 수 있거나 이에 포함될 수 있다. 또한, 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인공적으로 생성된 전파된 신호에 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지일 수 있다. 또한, 컴퓨터 저장 매체는 하나 이상의 개별 물리적 컴포넌트 또는 매체(예를 들어, 다수의 CD, 디스크 또는 다른 저장 장치)일 수 있거나 이에 포함될 수 있다.
본 명세서에서 기술된 동작은 하나 이상의 컴퓨터 판독가능 저장 장치에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로서 구현될 수 있다.
"데이터 처리 장치"라는 용어는 데이터를 처리하기 위한 모든 종류의 장치, 장치 및 기계를 포함하며, 예를 들어 프로그램 가능 프로세서, 컴퓨터, 칩상의 시스템, 또는 복수의 것들 또는 이들의 조합을 포함한다. 장치는 FPGA (field programmable gate array) 또는 ASIC (주문형 집적 회로)과 같은 특수 목적 논리 회로를 포함 할 수 있다. 또한, 장치는 하드웨어 이외에 문제되는 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임 (cross-platform runtime) 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램 (프로그램, 소프트웨어, 소프트웨어 응용 프로그램, 스크립트 또는 코드라고도 함)은 컴파일된 또는 해석된 언어, 선언적 또는 절차적 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 모든 형식, 독립 실행형 프로그램 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 구성 요소, 서브 루틴, 객체 또는 기타 유닛을 포함할 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트), 문제의 프로그램 전용 파일 또는 여러 개의 조정 파일(예를 들어, 하나 이상의 모듈, 하위 프로그램 또는 코드의 일부를 저장하는 파일)의 부분에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 있거나 여러 사이트에 분산되어 있으며 통신 네트워크로 상호 연결된 여러 대의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서 설명되는 프로세스 및 논리 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 동작을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 FPGA 또는 ASIC과 같은 특수 목적 논리 회로에 의해 수행 될 수 있고, 장치는 또한 특수 목적 논리 회로로 구현 될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예로서, 일반 및 특수 목적 마이크로 프로세서, 디지털 컴퓨터의 임의의 종류의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 구성 요소는 명령어에 따라 액션을 수행하는 프로세서, 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치(예를 들어, 자기, 광 자기 디스크 또는 광 디스크)로부터 데이터를 수신하거나 전송하기 위해 동작 가능하게 결합될 것이다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 디바이스는 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치를 포함하는 모든 형태의 비 휘발성 메모리, 매체 및 메모리 장치; 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 포함될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 설명된 본 발명의 실시예는 사용자에게 정보를 디스플레이하는 CRT (cathode ray tube) 또는 LCD (liquid crystal display) 모니터와 같은 디스플레이 장치를 갖는 컴퓨터상에서 구현될 수 있으며, 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 장치 및 키보드를 포함할 수 있다.
본 명세서에서 기술된 시스템 및 기법은 백 엔드 컴포넌트(예: 데이터 서버)를 포함하거나 미들웨어 컴포넌트(예: 응용 프로그램 서버)를 포함하거나 또는 프론트 컴포넌트(예: 사용자가 본 명세서에 기술된 시스템 및 기법의 구현과 인터렉션할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 가지는 클라이언트 컴퓨터)를 포함하는 컴퓨팅 시스템에서 또는 상기 백 엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합에서 구현될 수 있다. 시스템의 컴포넌트들은 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들어, 통신 네트워크)에 의해 상호연결될 수 있다. 통신 네트워크의 예시는 근거리 통신망("LAN"), 광역 통신망("WAN"), 인터네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크(예를 들어, 애드혹 피어-투-피어 네트워크)을 포함한다.
본 명세서가 많은 특정 구현예 세부사항들을 포함하고 있지만, 이들은 어떠한 발명의 범위 또는 청구된 것에 대한 제한들로서 여겨져서는 아니되며, 오히려 특정 발명들의 특정 실시예들에 국한된 구성들의 설명들로서 여겨져야 한다. 또한 별개의 실시예들의 맥락에서 본 명세서에 기술된 특정 구성들은 단일의 실시예들에서 조합으로 구현될 수 있다. 또한 반대로, 단일의 실시예의 맥락에서 기술된 다양한 구성들은 다수의 실시예들에서 별개로 또는 임의의 적절한 서브컴비네이션으로 구현될 수 있다. 게다가, 비록 구성들이 특정 조합들에서 동작하는 것으로 상기 기술되고 심지어 상기와 같이 초기적으로 청구되었지만, 일부 경우들에서, 청구된 조합으로부터 하나 이상의 구성들이 조합으로부터 실행될 수 있고, 청구된 조합은 서브컴비네이션 또는 서브 컴비네이션의 변화를 지시할 수 있다.
유사하게, 동작들이 특정 순서로 도면들에서 도시되었지만, 이는 상기 동작들이 도시된 특정 순서 또는 순차적 순서로 수행되거나 또는 모든 도시된 동작들이 원하는 결과들을 달성하기 위해 수행되어야 할 것을 요구하는 것으로서 이해되어서는 아니된다. 특정 환경들에서, 멀티태스킹 및 병렬 프로세싱은 이점이 있다. 게다가, 상기 기술된 실시예들에서 다양한 시스템 모듈들 및 컴포넌트들의 분리도 모든 실시예들에서 상기 분리를 요구하는 것으로서 이해되어서는 아니되며, 기술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일의 소프트웨어 제품에 함께 통합되거나 또는 다수의 소프트웨어 제품들에 패키징될 수 있다.
본 발명의 특정 실시예들이 기술되었다. 다른 실시예들도 다음의 청구항들의 범위 내에 있다. 예를 들면, 청구항들에 기재된 액션들은 다른 순서로 수행될 수 있고 여전히 원하는 결과를 달성한다. 일 예시로서, 첨부 도면들에서 도시된 프로세스들은 원하는 결과들을 달성하기 위해 도시된 특정 순서 또는 순차적 순서를 필수적으로 요구하지 않는다. 특정 구현예들에서, 멀티태스킹 및 병렬 프로세싱은 이점이 있다.

Claims (20)

  1. 데이터 프로세싱 장치에서 구현되는 방법으로서,
    엔터프라이즈의 문서들을 수신하는 단계, 각 문서는 상기 엔터프라이즈의 하나 이상의 멤버들에 대한 상기 문서에 대한 엑세스 권한들(access privileges)을 특정하는 각각의 엑세스 제어 목록(respective access control list)을 가지며, 상기 문서들은 상기 엔터프라이즈와 관련된 엔터티들 및 상기 엔터티들 간의 관계들을 기술하는 데이터를 포함하며;
    상기 엔터프라이즈의 상기 문서들로부터 상기 엔터티들의 엔터티 사실들(entity facts)을 도출하는 단계, 각 엔터티 사실은 상기 문서들의 상기 엔터티들 중 엔터티의 적어도 하나의 구성을 기술하며, 상기 엔터티의 상기 구성은 상기 엔터티와 다른 엔터티 간의 관계이며, 각 엔터티 사실은 상기 엔터티 사실이 기술된 하나 이상의 대응 문서들로부터 도출되며, 상기 엔터티 사실들을 도출하는 단계는 상기 문서들로부터 각 문서를 선택하고 상기 선택된 문서에 대해:
    상기 문서 내에서 식별된 제1 엔터티를 결정하는 것;
    상기 문서 내에서 식별된 제2 엔터티를 결정하는 것;
    상기 문서 내에서 기술된 상기 제1 엔터티와 상기 제2 엔터티 간의 관계를 결정하는 것; 그리고
    상기 제1 엔터티, 상기 제2 엔터티 및 상기 문서에서 기술된 상기 제1 엔터티와 상기 제2 엔터티 간의 상기 관계를 기술하는 데이터를 상기 엔터티 사실로서 생성하는 것을 포함하며;
    다수의 엔터티 사실들이 선택된 문서로부터 도출되며;
    각 엔터티 사실에 대해, 상기 엔터티 사실이 도출된 각 문서의 상기 각각의 엑세스 제어 목록으로부터, 엔터티 사실 엑세스 제어 목록을 결정하는 단계,
    각 엔터티 사실 엑세스 제어 목록은 상기 엔터프라이즈의 상기 문서들에 대해 제공된 상기 엑세스 제어 목록들과 상이하며, 그리고
    적어도 하나의 엔터티 사실 엑세스 제어 목록은 상기 적어도 하나의 엔터티 사실이 식별된 각기 별개의 문서들에 대한 엑세스 권한들을 각각 특정하는 2 이상의 별개의 엑세스 제어 목록들로부터 결정되며;
    상기 엔터티들, 엔터티 사실들 및 상기 각각의 엔터티 사실 엑세스 제어 목록들을 기술하는 데이터를 검색가능한 인덱스에 저장하는 단계, 상기 각 엔터티 사실은 그것의 대응하는 엔터티 사실 엑세스 제어 목록과 관련되며; 그리고
    상기 엔터프라이즈의 각각의 상기 멤버들에게, 상기 각각의 엔터티 사실 엑세스 제어 목록들에 따라 상기 검색가능한 인덱스에서 상기 엔터티들 및 상기 엔터티 사실들을 기술하는 상기 데이터에 대한 엑세스 권한들을 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 청구항 1에 있어서,
    각 엔터티 사실 엑세스 제어 목록은 상기 엔터프라이즈의 상기 문서들에 대해 제공되는 상기 엑세스 제어 목록들과 상이한 것을 특징으로 하는 방법.
  3. 청구항 2에 있어서,
    상기 엔터프라이즈의 상기 멤버들은 복수의 그룹들에 속하며, 각 그룹은 상기 엔터프라이즈의 상기 멤버들의 각각의 멤버들의 서브셋을 포함하며;
    적어도 하나의 엔터티 사실 엑세스 제어 목록은 적어도 하나의 그룹에 대한 엑세스 권한들을 특정하며; 그리고
    상기 엔터프라이즈의 각각의 상기 멤버들에게, 상기 각각의 엔터티 사실 엑세스 제어 목록들에 따라 상기 검색가능한 인덱스에서 상기 엔터티들 및 상기 엔터티 사실들을 기술하는 상기 데이터에 대한 엑세스 권한들을 제공하는 단계는 상기 엑세스 권한들에 따라 상기 적어도 하나의 그룹의 각 멤버에게 엑세스를 제공하는 것을 포함하는 것을 특징으로 하는 방법.
  4. 청구항 1에 있어서,
    상기 엔터프라이즈의 멤버로부터 쿼리를 수신하는 단계;
    상기 검색가능한 인덱스에서 검색 동작에 응답하여, 상기 쿼리에 대한 응답인 엔터티들과 엔터티 사실들을 식별하는 검색 결과 데이터를 수신하는 단계;
    각 식별된 엔터티 사실에 대해, 상기 멤버가 상기 엔터티 사실에 대한 엑세스를 가지는지 여부를 상기 엔터티 사실 엑세스 제어 목록에 기초하여 결정하는 단계;
    상기 엔터티 사실 엑세스 제어 목록에 기초하여 상기 멤버가 상기 엔터티 사실에 대한 엑세스를 가지는 각 식별된 엔터티 사실에 대해, 상기 엔터티 사실을 기술하는 데이터에 대한 엑세스를 상기 멤버에게 제공하는 단계; 그리고
    상기 엔터티 사실 엑세스 제어 목록에 기초하여 상기 멤버가 상기 엔터티 사실에 대한 엑세스를 가지지 않는 각 식별된 엔터티 사실에 대해, 상기 엔터티 사실을 기술하는 데이터를 상기 멤버에게 제공하지 않는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 청구항 4에 있어서,
    상기 엔터티 사실을 기술하는 데이터에 대한 엑세스를 상기 멤버에게 제공하는 단계는 상기 엔터티 사실들을 디스플레이하는 지식 패널 디스플레이를 제공하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 청구항 1에 있어서,
    각 엔터티 사실에 대해, 각 문서의 상기 각각의 엑세스 제어 목록으로부터, 엔터티 사실 엑세스 제어 목록을 결정하는 단계는:
    상기 문서에 대한 상기 엑세스 제어 목록에 의해 특정된 상기 엑세스 권한들을 상기 엔터티 사실에 대한 상기 엔터티 사실 엑세스 제어 목록에 복제하는 것을 포함하는 것을 특징으로 하는 방법.
  7. 청구항 1에 있어서,
    적어도 하나의 문서는 복수의 엑세스 제어 목록들을 포함하며, 상기 복수의 엑세스 제어 목록들 각각은 상기 문서의 엔터티 사실들의 서브셋에 대응하며, 상기 하나 이상의 멤버들 각각에게 엔터티 사실들의 상기 서브셋들 각각에 대한 엑세스 권한들이 제공되며, 상기 하나 이상의 멤버들은 상기 엔터티 사실들의 각각의 서브셋에 대응하는 상기 엑세스 제어 목록에 포함되는 것을 특징으로 하는 방법.
  8. 데이터 리소스에 대한 엑세스를 제어하기 위한 시스템으로서,
    프로세서; 및
    상기 프로세서에 연결되고 명령어들이 저장된 비일시적 컴퓨터 판독가능 매체를 포함하며, 상기 명령어들은 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 동작들을 수행하게 하며, 상기 동작들은:
    엔터프라이즈의 문서들을 수신하는 동작, 각 문서는 상기 엔터프라이즈의 하나 이상의 멤버들에 대한 상기 문서에 대한 엑세스 권한들을 특정하는 각각의 엑세스 제어 목록을 가지며, 상기 문서들은 상기 엔터프라이즈와 관련된 엔터티들 및 상기 엔터티들 간의 관계들을 기술하는 데이터를 포함하며;
    상기 엔터프라이즈의 상기 문서들로부터 상기 엔터티들의 엔터티 사실들을 도출하는 동작, 각 엔터티 사실은 상기 문서의 상기 엔터티들 중 엔터티의 적어도 하나의 구성을 기술하며, 각 엔터티 사실은 상기 문서들의 상기 엔터티들 중 엔터티의 적어도 하나의 구성을 기술하며, 상기 엔터티의 상기 구성은 상기 엔터티와 다른 엔터티 간의 관계이며, 각 엔터티 사실은 상기 엔터티 사실이 기술된 하나 이상의 대응 문서들로부터 도출되며, 상기 엔터티 사실들을 도출하는 동작은 상기 문서들로부터 각 문서를 선택하고 상기 선택된 문서에 대해:
    상기 문서 내에서 식별된 제1 엔터티를 결정하는 것;
    상기 문서 내에서 식별된 제2 엔터티를 결정하는 것;
    상기 문서 내에서 기술된 상기 제1 엔터티와 상기 제2 엔터티 간의 관계를 결정하는 것; 그리고
    상기 제1 엔터티, 상기 제2 엔터티 및 상기 문서에서 기술된 상기 제1 엔터티와 상기 제2 엔터티 간의 상기 관계를 기술하는 데이터를 상기 엔터티 사실로서 생성하는 것을 포함하며;
    다수의 엔터티 사실들이 선택된 문서로부터 도출되며;
    각 엔터티 사실에 대해, 상기 엔터티 사실이 도출된 각 문서의 상기 각각의 엑세스 제어 목록으로부터, 엔터티 사실 엑세스 제어 목록을 결정하는 동작,
    각 엔터티 사실 엑세스 제어 목록은 상기 엔터프라이즈의 상기 문서들에 대해 제공된 상기 엑세스 제어 목록들과 상이하며, 그리고
    적어도 하나의 엔터티 사실 엑세스 제어 목록은 상기 적어도 하나의 엔터티 사실이 식별된 각기 별개의 문서들에 대한 엑세스 권한들을 각각 특정하는 2 이상의 별개의 엑세스 제어 목록들로부터 결정되며;
    상기 엔터티들, 엔터티 사실들 및 상기 각각의 엔터티 사실 엑세스 제어 목록들을 기술하는 데이터를 검색가능한 인덱스에 저장하는 동작, 상기 각 엔터티 사실은 그것의 대응하는 엔터티 사실 엑세스 제어 목록과 관련되며; 그리고
    상기 엔터프라이즈의 각각의 상기 멤버들에게, 상기 각각의 엔터티 사실 엑세스 제어 목록들에 따라 상기 검색가능한 인덱스에서 상기 엔터티들 및 상기 엔터티 사실들을 기술하는 상기 데이터에 대한 엑세스 권한들을 제공하는 동작을 포함하는 것을 특징으로 하는 시스템.
  9. 청구항 8에 있어서,
    각 엔터티 사실 엑세스 제어 목록은 상기 엔터프라이즈의 상기 문서들에 대해 제공되는 상기 엑세스 제어 목록들과 상이한 것을 특징으로 하는 시스템.
  10. 청구항 9에 있어서,
    상기 엔터프라이즈의 상기 멤버들은 복수의 그룹들에 속하며, 각 그룹은 상기 엔터프라이즈의 상기 멤버들의 각각의 멤버들의 서브셋을 포함하며;
    적어도 하나의 엔터티 사실 엑세스 제어 목록은 적어도 하나의 그룹에 대한 엑세스 권한들을 특정하며; 그리고
    상기 엔터프라이즈의 각각의 상기 멤버들에게, 상기 각각의 엔터티 사실 엑세스 제어 목록들에 따라 상기 검색가능한 인덱스에서 상기 엔터티들 및 상기 엔터티 사실들을 기술하는 상기 데이터에 대한 엑세스 권한들을 제공하는 동작은 상기 엑세스 권한들에 따라 상기 적어도 하나의 그룹의 각 멤버에게 엑세스를 제공하는 것을 포함하는 것을 특징으로 하는 시스템.
  11. 청구항 8에 있어서,
    상기 엔터프라이즈의 멤버로부터 쿼리를 수신하는 동작;
    상기 검색가능한 인덱스에서 검색 동작에 응답하여, 상기 쿼리에 대한 응답인 엔터티들과 엔터티 사실들을 식별하는 검색 결과 데이터를 수신하는 동작;
    각 식별된 엔터티 사실에 대해, 상기 멤버가 상기 엔터티 사실에 대한 엑세스를 가지는지 여부를 상기 엔터티 사실 엑세스 제어 목록에 기초하여 결정하는 동작;
    상기 엔터티 사실 엑세스 제어 목록에 기초하여 상기 멤버가 상기 엔터티 사실에 대한 엑세스를 가지는 각 식별된 엔터티 사실에 대해, 상기 엔터티 사실을 기술하는 데이터에 대한 엑세스를 상기 멤버에게 제공하는 동작; 그리고
    상기 엔터티 사실 엑세스 제어 목록에 기초하여 상기 멤버가 상기 엔터티 사실에 대한 엑세스를 가지지 않는 각 식별된 엔터티 사실에 대해, 상기 엔터티 사실을 기술하는 데이터를 상기 멤버에게 제공하지 않는 동작을 더 포함하는 것을 특징으로 하는 시스템.
  12. 청구항 11에 있어서,
    상기 엔터티 사실을 기술하는 데이터에 대한 엑세스를 상기 멤버에게 제공하는 동작은 상기 엔터티 사실들을 디스플레이하는 지식 패널 디스플레이를 제공하는 것을 포함하는 것을 특징으로 하는 시스템.
  13. 청구항 8에 있어서,
    각 엔터티 사실에 대해, 각 문서의 상기 각각의 엑세스 제어 목록으로부터, 엔터티 사실 엑세스 제어 목록을 결정하는 동작은:
    상기 문서에 대한 상기 엑세스 사실 제어 목록에 의해 특정된 상기 엑세스 권한들을 상기 엔터티 사실에 대한 상기 엔터티 엑세스 제어 목록에 복제하는 것을 포함하는 것을 특징으로 하는 시스템.
  14. 청구항 8에 있어서,
    적어도 하나의 문서는 복수의 엑세스 제어 목록들을 포함하며, 상기 복수의 엑세스 제어 목록들 각각은 상기 문서의 엔터티 사실들의 서브셋에 대응하며, 상기 하나 이상의 멤버들 각각에게 엔터티 사실들의 상기 서브셋들 각각에 대한 엑세스 권한들이 제공되며, 상기 하나 이상의 멤버들은 상기 엔터티 사실들의 각각의 서브셋에 대응하는 상기 엑세스 제어 목록에 포함되는 것을 특징으로 하는 시스템.
  15. 명령어들이 저장된 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어들은 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 동작들을 수행하게 하며, 상기 동작들은:
    엔터프라이즈의 문서들을 수신하는 동작, 각 문서는 상기 엔터프라이즈의 하나 이상의 멤버들에 대한 상기 문서에 대한 엑세스 권한들을 특정하는 각각의 엑세스 제어 목록을 가지며, 상기 문서들은 상기 엔터프라이즈와 관련된 엔터티들 및 상기 엔터티들 간의 관계들을 기술하는 데이터를 포함하며;
    상기 엔터프라이즈의 상기 문서들로부터 상기 엔터티들의 엔터티 사실들을 도출하는 동작, 각 엔터티 사실은 상기 엔터티의 적어도 하나의 구성을 기술하며, 각 엔터티 사실은 상기 문서들의 상기 엔터티들 중 엔터티의 적어도 하나의 구성을 기술하며, 상기 엔터티의 상기 구성은 상기 엔터티와 다른 엔터티 간의 관계이며, 각 엔터티 사실은 상기 엔터티 사실이 기술된 하나 이상의 대응 문서들로부터 도출되며, 상기 엔터티 사실들을 도출하는 동작은 상기 문서들로부터 각 문서를 선택하고 상기 선택된 문서에 대해:
    상기 문서 내에서 식별된 제1 엔터티를 결정하는 것;
    상기 문서 내에서 식별된 제2 엔터티를 결정하는 것;
    상기 문서 내에서 기술된 상기 제1 엔터티와 상기 제2 엔터티 간의 관계를 결정하는 것; 그리고
    상기 제1 엔터티, 상기 제2 엔터티 및 상기 문서에서 기술된 상기 제1 엔터티와 상기 제2 엔터티 간의 상기 관계를 기술하는 데이터를 상기 엔터티 사실로서 생성하는 것을 포함하며;
    다수의 엔터티 사실들이 선택된 문서로부터 도출되며;
    각 엔터티 사실에 대해, 상기 엔터티 사실이 도출된 각 문서의 상기 각각의 엑세스 제어 목록으로부터, 엔터티 사실 엑세스 제어 목록을 결정하는 동작,
    각 엔터티 사실 엑세스 제어 목록은 상기 엔터프라이즈의 상기 문서들에 대해 제공된 상기 엑세스 제어 목록들과 상이하며, 그리고
    적어도 하나의 엔터티 사실 엑세스 제어 목록은 상기 적어도 하나의 엔터티 사실이 식별된 각기 별개의 문서들에 대한 엑세스 권한들을 각각 특정하는 2 이상의 별개의 엑세스 제어 목록들로부터 결정되며;
    상기 엔터티들, 엔터티 사실들 및 상기 각각의 엔터티 사실 엑세스 제어 목록들을 기술하는 데이터를 검색가능한 인덱스에 저장하는 동작, 상기 각 엔터티 사실은 그것의 대응하는 엔터티 사실 엑세스 제어 목록과 관련되며; 그리고
    상기 엔터프라이즈의 각각의 상기 멤버들에게, 상기 각각의 엔터티 사실 엑세스 제어 목록들에 따라 상기 검색가능한 인덱스에서 상기 엔터티들 및 상기 엔터티 사실들을 기술하는 상기 데이터에 대한 엑세스 권한들을 제공하는 동작을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  16. 청구항 15에 있어서,
    각 엔터티 사실 엑세스 제어 목록은 상기 엔터프라이즈의 상기 문서들에 대해 제공되는 상기 엑세스 제어 목록들과 상이한 것을 특징으로 하는 컴퓨터 판독가능 매체.
  17. 청구항 16에 있어서,
    상기 엔터프라이즈의 상기 멤버들은 복수의 그룹들에 속하며, 각 그룹은 상기 엔터프라이즈의 상기 멤버들의 각각의 멤버들의 서브셋을 포함하며;
    적어도 하나의 엔터티 사실 엑세스 제어 목록은 적어도 하나의 그룹에 대한 엑세스 권한들을 특정하며; 그리고
    상기 엔터프라이즈의 각각의 상기 멤버들에게, 상기 각각의 엔터티 사실 엑세스 제어 목록들에 따라 상기 검색가능한 인덱스에서 상기 엔터티들 및 상기 엔터티 사실들을 기술하는 상기 데이터에 대한 엑세스 권한들을 제공하는 동작은 상기 엑세스 권한들에 따라 상기 적어도 하나의 그룹의 각 멤버에게 엑세스를 제공하는 것을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  18. 청구항 15에 있어서,
    상기 엔터프라이즈의 멤버로부터 쿼리를 수신하는 동작;
    상기 검색가능한 인덱스에서 검색 동작에 응답하여, 상기 쿼리에 대한 응답인 엔터티들과 엔터티 사실들을 식별하는 검색 결과 데이터를 수신하는 동작;
    각 식별된 엔터티 사실에 대해, 상기 멤버가 상기 엔터티 사실에 대한 엑세스를 가지는지 여부를 상기 엔터티 사실 엑세스 제어 목록에 기초하여 결정하는 동작;
    상기 엔터티 사실 엑세스 제어 목록에 기초하여 상기 멤버가 상기 엔터티 사실에 대한 엑세스를 가지는 각 식별된 엔터티 사실에 대해, 상기 엔터티 사실을 기술하는 데이터에 대한 엑세스를 상기 멤버에게 제공하는 동작; 그리고
    상기 엔터티 사실 엑세스 제어 목록에 기초하여 상기 멤버가 상기 엔터티 사실에 대한 엑세스를 가지지 않는 각 식별된 엔터티 사실에 대해, 상기 엔터티 사실을 기술하는 데이터를 상기 멤버에게 제공하지 않는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  19. 청구항 15에 있어서,
    각 엔터티 사실에 대해, 각 문서의 상기 각각의 엑세스 제어 목록으로부터, 엔터티 사실 엑세스 제어 목록을 결정하는 동작은:
    상기 문서에 대한 상기 엑세스 사실 제어 목록에 의해 특정된 상기 엑세스 권한들을 상기 엔터티 사실에 대한 상기 엔터티 엑세스 제어 목록에 복제하는 것을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  20. 청구항 15에 있어서,
    상기 엔터프라이즈는 회사이며, 상기 문서들 내의 정보는 상기 엔터프라이즈에 의해 독점적으로 제어되는 정보인 것을 특징으로 하는 컴퓨터 판독가능 매체.
KR1020177028130A 2015-05-28 2016-05-09 데이터 리소스들에 대한 엑세스 제어 KR102055356B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/723,760 2015-05-28
US14/723,760 US10326768B2 (en) 2015-05-28 2015-05-28 Access control for enterprise knowledge
PCT/US2016/031457 WO2016191081A1 (en) 2015-05-28 2016-05-09 Access control for data resources

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020197036117A Division KR102172278B1 (ko) 2015-05-28 2016-05-09 데이터 리소스들에 대한 엑세스 제어

Publications (2)

Publication Number Publication Date
KR20170126991A KR20170126991A (ko) 2017-11-20
KR102055356B1 true KR102055356B1 (ko) 2019-12-12

Family

ID=56027217

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197036117A KR102172278B1 (ko) 2015-05-28 2016-05-09 데이터 리소스들에 대한 엑세스 제어
KR1020177028130A KR102055356B1 (ko) 2015-05-28 2016-05-09 데이터 리소스들에 대한 엑세스 제어

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020197036117A KR102172278B1 (ko) 2015-05-28 2016-05-09 데이터 리소스들에 대한 엑세스 제어

Country Status (8)

Country Link
US (2) US10326768B2 (ko)
EP (2) EP3268874B1 (ko)
JP (2) JP6469884B2 (ko)
KR (2) KR102172278B1 (ko)
CN (2) CN107466403B (ko)
DE (1) DE112016002395T5 (ko)
GB (1) GB2553959A (ko)
WO (1) WO2016191081A1 (ko)

Families Citing this family (164)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9729583B1 (en) 2016-06-10 2017-08-08 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10181051B2 (en) 2016-06-10 2019-01-15 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US10326768B2 (en) 2015-05-28 2019-06-18 Google Llc Access control for enterprise knowledge
US10706447B2 (en) 2016-04-01 2020-07-07 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US10454973B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10438017B2 (en) 2016-06-10 2019-10-08 OneTrust, LLC Data processing systems for processing data subject access requests
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10496846B1 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US10509894B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10585968B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10452866B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10762236B2 (en) 2016-06-10 2020-09-01 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10242228B2 (en) 2016-06-10 2019-03-26 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US10586075B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US10708305B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Automated data processing systems and methods for automatically processing requests for privacy-related information
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10726158B2 (en) 2016-06-10 2020-07-28 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US10776514B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10713387B2 (en) 2016-06-10 2020-07-14 OneTrust, LLC Consent conversion optimization systems and related methods
US11410106B2 (en) 2016-06-10 2022-08-09 OneTrust, LLC Privacy management systems and methods
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US10776518B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Consent receipt management systems and related methods
US10706176B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data-processing consent refresh, re-prompt, and recapture systems and related methods
US10282700B2 (en) * 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US10798133B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10353673B2 (en) 2016-06-10 2019-07-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10509920B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for processing data subject access requests
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10706131B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US10873606B2 (en) 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10452864B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US10282559B2 (en) * 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10572686B2 (en) 2016-06-10 2020-02-25 OneTrust, LLC Consent receipt management systems and related methods
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US10706379B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for automatic preparation for remediation and related methods
US10440062B2 (en) 2016-06-10 2019-10-08 OneTrust, LLC Consent receipt management systems and related methods
US10437412B2 (en) 2016-06-10 2019-10-08 OneTrust, LLC Consent receipt management systems and related methods
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US10642870B2 (en) 2016-06-10 2020-05-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10416966B2 (en) 2016-06-10 2019-09-17 OneTrust, LLC Data processing systems for identity validation of data subject access requests and related methods
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US10204154B2 (en) 2016-06-10 2019-02-12 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US10614247B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems for automated classification of personal information from documents and related methods
US10949170B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10769301B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10275614B2 (en) 2016-06-10 2019-04-30 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10848523B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10776517B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10706174B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US10565397B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US10496803B2 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US10621368B2 (en) 2018-02-13 2020-04-14 International Business Machines Corporation Dynamic access control for knowledge graph
US10609038B2 (en) * 2018-02-20 2020-03-31 Cyberark Software Ltd. Discovering and evaluating privileged entities in a network environment
US10754963B2 (en) 2018-02-26 2020-08-25 International Business Machines Corporation Secure zones in knowledge graph
US11379598B2 (en) 2018-02-28 2022-07-05 International Business Machines Corporation Knowledge graph access limitation by discovery restrictions
US11687794B2 (en) * 2018-03-22 2023-06-27 Microsoft Technology Licensing, Llc User-centric artificial intelligence knowledge base
CN109271557B (zh) * 2018-08-31 2022-03-22 北京字节跳动网络技术有限公司 用于输出信息的方法和装置
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
KR102352654B1 (ko) 2019-05-06 2022-01-18 구글 엘엘씨 추론된 의도에 기반한 로컬 확장 트리거
CN110705297A (zh) * 2019-09-23 2020-01-17 北京海致星图科技有限公司 一种企业曾用名识别方法、系统、介质及设备
CN110955903B (zh) * 2019-11-22 2021-03-30 支付宝(杭州)信息技术有限公司 基于智能图计算的隐私资源权限控制方法、装置及设备
WO2022011142A1 (en) 2020-07-08 2022-01-13 OneTrust, LLC Systems and methods for targeted data discovery
EP4189569A1 (en) 2020-07-28 2023-06-07 OneTrust LLC Systems and methods for automatically blocking the use of tracking tools
US11475165B2 (en) 2020-08-06 2022-10-18 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US11436373B2 (en) 2020-09-15 2022-09-06 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
WO2022061270A1 (en) 2020-09-21 2022-03-24 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
WO2022099023A1 (en) 2020-11-06 2022-05-12 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
WO2022170047A1 (en) 2021-02-04 2022-08-11 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
US20240111899A1 (en) 2021-02-08 2024-04-04 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
WO2022173912A1 (en) 2021-02-10 2022-08-18 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
WO2022178089A1 (en) 2021-02-17 2022-08-25 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
US11546661B2 (en) 2021-02-18 2023-01-03 OneTrust, LLC Selective redaction of media content
WO2022192269A1 (en) 2021-03-08 2022-09-15 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
WO2023064180A1 (en) * 2021-10-13 2023-04-20 People Center, Inc. Assignment and dynamic application of a permission rule to a group of entities
US11663354B1 (en) 2021-10-13 2023-05-30 People Center, Inc. Assignment and dynamic application of a permission rule to a group of entities
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128616A1 (en) * 2002-12-28 2004-07-01 International Business Machines Corporation System and method for providing a runtime environment for active web based document resources
US20080140679A1 (en) * 2006-12-11 2008-06-12 Microsoft Corporation Relational linking among resoures
US20130238659A1 (en) 2012-03-11 2013-09-12 International Business Machines Corporation Access control for entity search
US20140282219A1 (en) 2013-03-15 2014-09-18 Robert Haddock Intelligent internet system with adaptive user interface providing one-step access to knowledge

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021403A (en) 1996-07-19 2000-02-01 Microsoft Corporation Intelligent user assistance facility
US7233933B2 (en) 2001-06-28 2007-06-19 Microsoft Corporation Methods and architecture for cross-device activity monitoring, reasoning, and visualization for providing status and forecasts of a users' presence and availability
US7730063B2 (en) 2002-12-10 2010-06-01 Asset Trust, Inc. Personalized medicine service
US6901408B2 (en) * 2002-03-27 2005-05-31 International Business Machines Corporation Method of structuring a catalog
JP3910492B2 (ja) 2002-06-13 2007-04-25 株式会社エヌ・ティ・ティ・データ アクセスレベル管理装置およびアクセスレベル管理プログラム
EP1507402A3 (en) 2003-06-23 2005-07-20 Ricoh Company, Ltd. Access control decision system, access control enforcing system, and security policy
US7251822B2 (en) * 2003-10-23 2007-07-31 Microsoft Corporation System and methods providing enhanced security model
CN100472522C (zh) 2004-09-16 2009-03-25 特里诺尔公司 用于搜索、导航和排名个人网中的文档的方法、系统和计算机程序产品
US7730010B2 (en) * 2004-09-20 2010-06-01 Microsoft Corporation Method, system, and apparatus for maintaining user privacy in a knowledge interchange system
US20060129445A1 (en) 2004-12-09 2006-06-15 Mccallum Rodney H Jr System and method for scheduling a litigation event
US20060129538A1 (en) 2004-12-14 2006-06-15 Andrea Baader Text search quality by exploiting organizational information
US8365293B2 (en) 2005-01-25 2013-01-29 Redphone Security, Inc. Securing computer network interactions between entities with authorization assurances
JP4791760B2 (ja) * 2005-05-17 2011-10-12 株式会社リコー アクセス制御装置、アクセス制御方法、及びアクセス制御プログラム
US20070005654A1 (en) 2005-05-20 2007-01-04 Avichai Schachar Systems and methods for analyzing relationships between entities
US7627569B2 (en) 2005-06-30 2009-12-01 Google Inc. Document access control
US8060487B2 (en) 2005-08-01 2011-11-15 Sap Ag Searching for and launching data files not associated with an application
US8131718B2 (en) 2005-12-13 2012-03-06 Muse Green Investments LLC Intelligent data retrieval system
US8332430B2 (en) 2006-03-01 2012-12-11 Oracle International Corporation Secure search performance improvement
US8655914B2 (en) 2006-10-17 2014-02-18 Commvault Systems, Inc. System and method for storage operation access security
US20080140579A1 (en) 2006-12-07 2008-06-12 Agarwal Sanjiv Payment system for travelers and other checks and a debit cum credit card
US7797295B2 (en) 2007-01-04 2010-09-14 Yahoo! Inc. User content feeds from user storage devices to a public search engine
US7934249B2 (en) * 2007-08-27 2011-04-26 Oracle International Corporation Sensitivity-enabled access control model
JP2009059247A (ja) * 2007-08-31 2009-03-19 Fuji Xerox Co Ltd 電子情報管理装置及びアクセス制御プログラム
CN101159556B (zh) * 2007-11-09 2011-01-26 清华大学 基于组密钥服务器的共享加密文件系统中的密钥管理方法
KR101003095B1 (ko) 2007-12-06 2010-12-22 한국전자통신연구원 다중 접근 개체에 대한 접근제어 방법 및 그 시스템
CN101499061A (zh) * 2008-01-30 2009-08-05 国际商业机器公司 面向多租户的数据库引擎及其数据访问方法
US8024324B2 (en) 2008-06-30 2011-09-20 International Business Machines Corporation Information retrieval with unified search using multiple facets
JP4848407B2 (ja) 2008-09-29 2011-12-28 日本電信電話株式会社 分散情報連携システム及び分散情報連携方法
US8135655B2 (en) 2008-10-02 2012-03-13 Global Healthcare Exchange, Llc Dynamic intelligent objects
JP5549596B2 (ja) 2008-11-14 2014-07-16 日本電気株式会社 情報処理システムと方法並びにプログラム
CN101505216B (zh) * 2008-12-19 2011-02-09 西安电子科技大学 基于分层映射的内部威胁模型建立方法
US9026456B2 (en) * 2009-01-16 2015-05-05 Oracle International Corporation Business-responsibility-centric identity management
US20150026260A1 (en) 2009-03-09 2015-01-22 Donald Worthley Community Knowledge Management System
US9104737B2 (en) 2009-10-08 2015-08-11 Microsoft Technology Licensing, Llc Social distance based search result order adjustment
DE102010006432A1 (de) * 2009-12-29 2011-06-30 Siemens Aktiengesellschaft, 80333 Verfahren und System zum Bereitstellen von EDRM-geschützten Datenobjekten
US8464319B2 (en) * 2010-01-08 2013-06-11 Microsoft Corporation Resource access based on multiple scope levels
US8630882B2 (en) 2010-01-13 2014-01-14 International Business Machines Corporation Implementing an optimal intelligent enterprise architecture via virtualization, information intelligence, social computing and green environmental considerations
US20110225139A1 (en) * 2010-03-11 2011-09-15 Microsoft Corporation User role based customizable semantic search
US8355905B2 (en) 2010-05-14 2013-01-15 International Business Machines Corporation Mapping of relationship entities between ontologies
US8954863B2 (en) 2010-11-15 2015-02-10 Cisco Technology, Inc. Intelligent social collaboration unified media
GB2486002A (en) 2010-11-30 2012-06-06 Youview Tv Ltd Media Content Provision
US9842299B2 (en) 2011-01-25 2017-12-12 Telepathy Labs, Inc. Distributed, predictive, dichotomous decision engine for an electronic personal assistant
US8924545B2 (en) * 2012-01-13 2014-12-30 Microsoft Corporation Cross-property identity management
US8751505B2 (en) 2012-03-11 2014-06-10 International Business Machines Corporation Indexing and searching entity-relationship data
US9177168B2 (en) 2012-03-19 2015-11-03 Alcatel Lucent Method of modifying access control for web services using query languages
EP2667337A3 (en) 2012-05-22 2014-03-12 Hasso-Plattner-Institut für Softwaresystemtechnik GmbH Transparent control of access invoking real-time analysis of the query history
US8862159B2 (en) 2012-07-11 2014-10-14 Sap Se Business process oriented navigation
US9390174B2 (en) 2012-08-08 2016-07-12 Google Inc. Search result ranking and presentation
WO2014062192A1 (en) 2012-10-19 2014-04-24 Hewlett-Packard Development Company, L.P. Performing a search based on entity-related criteria
US10182054B2 (en) 2013-03-14 2019-01-15 Open Text Sa Ulc Systems, methods and computer program products for information integration across disparate information systems
US20150302088A1 (en) 2013-03-15 2015-10-22 Yahoo! Inc. Method and System for Providing Personalized Content
CN103620616B (zh) 2013-03-28 2016-03-09 华为技术有限公司 一种访问控制权限管理方法和装置
US9111104B2 (en) 2013-03-29 2015-08-18 Jive Software, Inc. Entitlements determination via access control lists
US9330183B2 (en) 2013-05-08 2016-05-03 Facebook, Inc. Approximate privacy indexing for search queries on online social networks
US9438648B2 (en) 2013-05-09 2016-09-06 Rockwell Automation Technologies, Inc. Industrial data analytics in a cloud platform
US9870129B2 (en) 2013-06-21 2018-01-16 Oracle International Corporation Method and system for reconfiguring a multidimensional interface using dimension tiles
US11163898B2 (en) 2013-09-11 2021-11-02 Mimecast Services Ltd. Sharing artifacts in permission-protected archives
US20160071140A1 (en) 2014-09-05 2016-03-10 Ebay Inc. Systems and methods for managing loyalty reward programs
US20160350134A1 (en) 2015-05-28 2016-12-01 Google Inc. Personal assistant providing predictive intelligence using enterprise content
US10326768B2 (en) 2015-05-28 2019-06-18 Google Llc Access control for enterprise knowledge
US9998472B2 (en) 2015-05-28 2018-06-12 Google Llc Search personalization and an enterprise knowledge graph

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128616A1 (en) * 2002-12-28 2004-07-01 International Business Machines Corporation System and method for providing a runtime environment for active web based document resources
US20080140679A1 (en) * 2006-12-11 2008-06-12 Microsoft Corporation Relational linking among resoures
US20130238659A1 (en) 2012-03-11 2013-09-12 International Business Machines Corporation Access control for entity search
US20140282219A1 (en) 2013-03-15 2014-09-18 Robert Haddock Intelligent internet system with adaptive user interface providing one-step access to knowledge

Also Published As

Publication number Publication date
GB2553959A (en) 2018-03-21
WO2016191081A1 (en) 2016-12-01
CN112800302A (zh) 2021-05-14
JP6469884B2 (ja) 2019-02-13
US10798098B2 (en) 2020-10-06
GB201716576D0 (en) 2017-11-22
US10326768B2 (en) 2019-06-18
JP6688913B2 (ja) 2020-04-28
DE112016002395T5 (de) 2018-03-15
KR20170126991A (ko) 2017-11-20
CN107466403A (zh) 2017-12-12
CN107466403B (zh) 2021-02-02
KR102172278B1 (ko) 2020-10-30
EP3268874B1 (en) 2020-01-08
JP2019091474A (ja) 2019-06-13
US20160352743A1 (en) 2016-12-01
KR20190137972A (ko) 2019-12-11
JP2018513478A (ja) 2018-05-24
US20190260749A1 (en) 2019-08-22
EP3268874A1 (en) 2018-01-17
EP3654262B1 (en) 2021-03-31
EP3654262A1 (en) 2020-05-20
CN112800302B (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
KR102055356B1 (ko) 데이터 리소스들에 대한 엑세스 제어
US9998472B2 (en) Search personalization and an enterprise knowledge graph
CN107533692B (zh) 提供预测智能的个人助理
Cillo et al. Niche tourism destinations’ online reputation management and competitiveness in big data era: Evidence from three Italian cases
US10438172B2 (en) Automatic ranking and scoring of meetings and its attendees within an organization
US20170213272A1 (en) Computer resource ranking for interconnected user profiles
US11593409B2 (en) Permissions-aware search with intelligent activity tracking and scoring across group hierarchies
AU2011224385A1 (en) User role based customizable semantic search
US8200666B2 (en) Providing relevant information based on data space activity items
US20220261492A1 (en) Permissions-aware search with document verification
US20170316380A1 (en) Profile enrichment
US11734243B2 (en) Sparse mapping of hierarchical subset
WO2021153676A1 (ja) 情報処理システム
Rajmohan et al. Tutorial on Semantic Automation for Data Discovery
Powell et al. EgoSystem: Where are our Alumni?
Biega Enhancing Privacy and Fairness in Search Systems
Moreira Knowledge analytics
US20150039358A1 (en) Data persistence technology configurator
Moreira Pedro José Ribeiro Moreira Knowledge Analytics

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent