KR20060030014A - 범용 주석의 구성 및 디플로이 방법 및 시스템 - Google Patents

범용 주석의 구성 및 디플로이 방법 및 시스템 Download PDF

Info

Publication number
KR20060030014A
KR20060030014A KR1020057017869A KR20057017869A KR20060030014A KR 20060030014 A KR20060030014 A KR 20060030014A KR 1020057017869 A KR1020057017869 A KR 1020057017869A KR 20057017869 A KR20057017869 A KR 20057017869A KR 20060030014 A KR20060030014 A KR 20060030014A
Authority
KR
South Korea
Prior art keywords
annotation
data
annotations
user
users
Prior art date
Application number
KR1020057017869A
Other languages
English (en)
Inventor
브라이언 제이 크래건
데이비드 엘 대링턴
로니 에이 맥컬러프
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20060030014A publication Critical patent/KR20060030014A/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/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Library & Information Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Document Processing Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

상이한 다수 유형 애플리케이션들에 의해 조작(예를 들어, 생성, 편집, 및 뷰잉)되는 상이한 다수 유형 데이터 오브젝트들에 대해 형성된 주석들을 관리하기 위한 방법들, 시스템들, 및 제품들이 제공된다. 일부 실시예들은, 프로젝트에서 공동 연구 중인 사용자들로 하여금 주석된 데이터 오브젝트들을 조작하는데 사용된 애플리케이션들내에서 주석들을 생성, 뷰잉, 및 편집할 수 있게 하는데, 이것은 주석들을 통한 묵시적 지식의 포착 및 공유를 용이하게 하고 촉진시킬 수 있다. 또한, 주석들은, 주석들에서 포착되는 묵시적 지식을 주석된 데이터를 조작하는데 사용되는 애플리케이션들과 분리시키면서, 주석들이 설명하는 애플리케이션 데이터와 별도로 저장될 수 있다.
애플리케이션들, 데이터 오브젝트들, 주석들, 묵시적 지식, 주석된 데이터, 애플리케이션 데이터

Description

범용 주석의 구성 및 디플로이 방법 및 시스템{UNIVERSAL ANNOTATION CONFIGURATION AND DEPLOYMENT}
관련 출원에 대한 상호-참조
본 출원은 "Method And System For Organizing An Annotation Structure And For Querying Data And Annotations"라는 명칭의, 동일-양수인의 미국특허 제 6,519,603호, "Improved Application Portability And Extensibility Through Database Schema And Query Abstraction"이라는 명칭의, 동일-양수인의 계류 중인 특허출원 제 10/083,075호, "Annotation Validity Using Partial Checksums"라는 명칭의, 동일-양수인의 계류 중인 특허출원 제 10/310,192호, 및 (Attorney Docket No.ROC920030127US1)로써 출원된 "Heterogeneous Multi-Level Extendable Indexing For General Purpose Annotation Systems"라는 명칭의, 동일-양수인의 계류 중인 특허출원과 관련이 있으며, 이들 모두는 여기에 참조로써 포함되어 있다.
발명의 배경
발명의 분야
본 발명은 데이터 입력 및 검색에 관한 것으로서, 보다 구체적으로는, 다수의 상이한 애플리케이션들에 의해 조작되는 다수의 이종 데이터 오브젝트들을 주석하는 방법 및 시스템에 관한 것이다.
관련 기술의 설명
명시적 지식(explicit knowledge)을, 예를 들어, 관계 데이터베이스들, 문서들, 단층 파일들(flat files), 및 2진 파일들에서의 다양한 독점 포맷들의 데이터로서 포착하고 저장하는 주지의 방법들이 존재한다. 대부분, 이런 데이터는 다양한 당사자들(예를 들어, 전문가들, 기술자들, 관리자들 등)에 의해 분석되어, 흔히 묵시적 지식(tacit knowledge)이라고 하는, 풍부한 해석 정보를 발생시킨다. 그러나, 이러한 묵시적 지식은 대부분, 예를 들어, 실험실 노트의 불가해한 주석들, 논의들/대화들, 프레젠테이션들, 인스턴트 메시징 교환들, 이-메일들 등으로서 일시적으로 포착될 뿐이다. 이러한 묵시적 지식은 통상적으로, 관련 데이터가 뷰잉되고 분석되는 애플리케이션 환경에서 포착되지 않기 때문에, 대부분 상실된다.
묵시적 지식을 좀더 영구적으로 포착하기 위한 일 접근 방법은, 데이터 오브젝트들에 관한 설명적 정보를 포함하는 주석들(annotations)을 생성하는 것이다. 사실상, 데이터의 행렬(예를 들어, 스프레드시트 또는 데이터베이스 테이블), 텍스트 문서, 또는 이미지와 같은, 식별 가능한 임의 유형 오브젝트가 주석될 수 있다. 또한, 데이터베이스 테이블의 셀, 로우, 또는 컬럼이나 텍스트 문서의 섹션, 문단, 또는 단어와 같은, 오브젝트들의 하위 부분들(서브-오브젝트들)이 주석될 수도 있다. 인덱싱 방식은 통상적으로, 대부분 인덱스 형태의 식별 정보에 기초해, 각각의 주석을 주석된 데이터 오브젝트 또는 서브-오브젝트에 매핑하는데 사용된다. 인덱스는, 인덱싱 방식이 주석된 데이터 오브젝트(또는 서브-오브젝트)를 찾아내기에 충분한 특이성을 제공해야 한다. 또한, 유효하기 위해서는, 인덱싱 방식이 양자의 방법들로 연산해야 하는데, 다시 말해, 인덱스가 주어질 경우, 인덱싱 방식은 주석된 데이터 오브젝트를 찾아낼 수 있어야 하고, 오브젝트가 주어질 경우, 인덱싱 방식은 (예를 들어, 소정 데이터 오브젝트에 대한 주석들을 찾아내기 위한) 분류, 비교, 및 검색에 사용할 인덱스를 계산할 수 있어야 한다.
그러나, 현대의 비지니스 기업들에서 상당히 빈번한 상황인, 상이한 다수 애플리케이션 프로그램들에 의해 조작되는 상이한 다수 유형(즉, 이종) 데이터 소스들로부터의 오브젝트들에 대해 주석들이 형성되어야 할 경우, 많은 어려움들이 발생한다. 예를 들어, 생물 의학 기업에서는, (워드 프로세서/텍스트 편집기에 의해 조작되는) 텍스트 문서들, 데이터베이스 또는 스프레드시트 애플리케이션에 의해 조작되는) 실험 데이터, (특수 애플리케이션에 의해 조작되는) 유전자 데이터, (이미지 뷰 애플리케이션에 의해 조작되는) 이미지들 등을 참조하기 위해 주석들이 필요할 수 있다.
상이한 애플리케이션들에 의해 조작되는 상이한 유형들의 오브젝트들 뿐만 아니라 동일한 애플리케이션에 의해 조작되는 상이한 유형들의 오브젝트들 또한 상이한 방법들로 스스로를 식별하기 때문에, 제기되는 한가지 어려움은 주석들을 인덱싱하는 방법(즉, 주석들을 주석된 데이터 오브젝트들과 관련짓는 방법)에 관한 것이다. 또한, 각각의 오브젝트는, 각각에 대해 상이한 유형들의 식별 정보(예를 들어, 인덱스들)를 초래하는, 상이한 수와 유형 서브-오브젝트들을 가질 수도 있다. 예를 들어, 데이터베이스 테이블은 4개의 파라미터들(로케이션, 테이블, 로우, 및 컬럼)을 사용해 식별될 수 있는 한편, 텍스트 문서는 5개의 파라미터들(로케이션, 파일, 섹션명, 문단, 및 단어)을 사용해 식별될 수 있다. 이상적으로는, 여전히 기존의 데이터베이스 인덱싱 기술이 광범위한 데이터 오브젝트들에 대한 인덱스들을 조직하는데 사용될 수 있게 하면서, 각 유형 오브젝트에 대한 인덱싱 방법이 상이할 수도 있다.
다른 어려움은, 다양한 애플리케이션들에 의해 조작되는 다양한 데이터 오브젝트들에 대해 생성된 주석들을 관리하기 위한 범용 메커니즘을 제공하는 것이다. 바람직스럽게도, 본 메커니즘은 주석될 데이터를 생성하고 뷰잉하는데 사용될 애플리케이션 또는 애플리케이션들내에서 쉽게 액세스될 수 있을 것이다. 데이터를 뷰잉하고 분석하는데 사용되는 애플리케이션들내에 주석 인터페이스를 제공하는 것은 주석들내에 포함되어 있는 암시적 지식의 포착 및 공유를 촉진할 수 있는데, 이것은 공동 연구를 촉진하고 효율성을 증가시킬 수 있다. 예를 들어, 신약을 개발 중인 한무리의 사람들이 식견들을 공유하여, 신약의 개발을 가속화함으로써 신약의 상품화를 앞당길 수도 있는데, 이것은 비용을 감소시킬 뿐만 아니라, 궁극적으로, 생명을 구하는 일이다.
따라서, 다수의 상이한 데이터 오브젝트들에 대해 형성된 주석들을 관리하는 향상된 방법들 및 시스템들에 대한 수요가 존재한다. 바람직스럽게도, 본 방법들 및 시스템들은, 주석된 데이터 오브젝트들을 뷰잉하고 분석하는데 사용되는 상이한 다수 유형 애플리케이션들내에서 주석들이 생성되고 액세스될 수 있게 함으로써, 크로스-플랫폼의 묵시적 지식 관리(cross-platform tacit knowledge management)를 제공한다.
발명의 요약
본 발명은 일반적으로, 상이한 다수 애플리케이션들에 의해 조작되는 상이한 다수 유형 오브젝트들에 대해 생성된 주석들을 관리하는 방법들, 시스템들, 및 제품들에 관한 것이다.
일 실시예는 기업에 주석 시스템을 디플로이하는 방법을 제공한다. 본 방법은 일반적으로, 기업내의 프로세스들을 식별하는 단계, 프로세스들에 관련된 역할들을 식별하는 단계, 프로세스들에 관련된 주석 가능한 데이터 오브젝트들을 식별하는 단계, 하나 이상의 주석과 하나 이상의 주석 가능한 데이터 오브젝트의 각 조합에 대해, 유지될 주석 메타데이터를 식별하는 단계, 하나 이상의 역할과 하나 이상 범위의 각 조합에 대해, 조합과 관련된 식별된 주석 메타데이터와 관련된 필드들을 포함하는, 주석 구조들을 생성하는 단계를 제공한다.
다른 실시예는 네트워크상의 엔티티들 사이에서 정보를 교환하는 방법을 제공한다. 본 방법은 일반적으로, 네트워크에 주석 관리 시스템을 설치하는 단계, 네트워크상의 복수개 애플리케이션들에 의해 조작되는 복수개의 주석 가능한 데이터 오브젝트들을 식별하는 단계, 및 사용자로 하여금 하나 이상의 주석 필드들을 포함하는 주석 구조를 정의하고 주석 구조를 하나 이상의 주석 가능한 데이터 오브젝트들과 관련지을 수 있게 하는 하나 이상의 구성 도구들의 세트를 제공하는 단계를 제공한다.
또 다른 실시예는 네트워크상의 하나 이상의 애플리케이션들에 의해 조작되는 데이터 오브젝트들에 대해 생성된 주석들을 관리하는 주석 시스템을 구성하기 위한 실행 가능 컴포넌트를 포함하는 컴퓨터 판독가능 매체를 제공한다. 프로세서 에 의해 실행될 경우, 실행 가능 컴포넌트는 일반적으로, 하나 이상의 주석 필드들을 포함하는 주석 구조들을 정의하기 위해 하나 이상의 그래픽 사용자 인터페이스를 제공하는 단계 및 주석 구조들을 하나 이상의 주석 가능한 데이터 오브젝트와 관련짓기 위한 하나 이상의 그래픽 사용자 인터페이스를 제공하는 단계를 포함하는 연산들을 수행한다.
또 다른 실시예는 복수개의 상이한 유형 애플리케이션들에 의해 조작되는 하나 이상의 상이한 유형 데이터 소스들에 대한 주석들을 관리하기 위한 시스템을 제공한다. 본 시스템은 일반적으로, 주석들과 관련된 데이터 소스들과 별도로 주석들을 저장하기 위한 주석 데이터베이스, 관련 주석들에 의해 설명되는, 주석들과 관련된 데이터 소스들의 부분들을 정의하는 주석 가능한 데이터 오브젝트 포인트들의 세트, 주석 서버, 및 하나 이상의 구성 도구들의 세트를 포함한다. 주석 서버는 일반적으로, 클라이언트 컴퓨터에서 실행 중인 하나 이상의 애플리케이션들에 의해 발행되는, 하나 이상의 주석 가능한 데이터 오브젝트 포인트들에 대한 주석들에 액세스하기 위한 요청들을 수신하고, 하나 이상의 주석 가능한 데이터 오브젝트 포인트들과 관련된 주석 구조에 기초해, 하나 이상의 주석 가능한 데이터 오브젝트 포인트들에 대한 주석들을 생성하거나 뷰잉하기 위한 그래픽 사용자 인터페이스 스크린을 생성하도록 구성되어 있다. 구성 도구들은, 사용자로 하여금 주석 구조들을 정의할 수 있게 하며 주석 구조들을 하나 이상의 주석 가능한 데이터 오브젝트 포인트들과 관련지을 수 있게 한다.
도면의 간단한 설명
본 발명의 상술된 사양들, 이점들 및 목적들을 달성하고 상세하게 이해할 수 있도록 하기 위해, 첨부 도면들에 도시되어 있는 본 발명의 실시예들을 참조하여, 위에서 간단하게 요약된 본 발명을 좀더 상세하게 설명한다.
그러나, 본 발명은 동일한 효과를 가진 다른 실시예들을 허용할 수도 있으므로, 첨부 도면들은 본 발명의 대표적인 실시예들을 예시할 뿐이고 따라서 본 발명의 범위를 한정하는 것으로 간주되지 않는다는 것에 주의해야 한다.
도 1은 본 발명의 실시예들에 이용될 수 있는 예시적인 컴퓨팅 환경이다.
도 2는 도 1의 컴퓨팅 환경에 대한 일 실시예의 클라이언트 서버 도면이다.
도 3a는 본 발명의 일 실시예에 따른 주석 시스템의 관계 도면이다.
도 3b 및 도 3c는 본 발명의 일 실시예에 따른, 예시적인 인덱싱 컴포넌트들의 관계 도면들을 도시한다.
도 3d는 본 발명의 일 실시예에 따른, 예시적인 주석 API(application programming interface) 펑크션들의 리스트를 도시한다.
도 4a, 도 4b, 및 도 4d는 본 발명의 일 실시예에 따른 주석 시스템을 구성하기 위한 예시적 연산들을 도시하는 흐름도들이다.
도 4c는 본 발명의 일 실시예에 따른, 예시적인 주석 가능 데이터 소스들 및 데이터 포인트들을 열거하는 테이블이다.
도 5a 내지 도 5h는 본 발명의 일 실시예에 따른 주석 시스템을 구성하는데 사용될 수 있는 예시적 GUI(graphical user interface) 스크린들을 도시한다.
도 6a 및 도 6b는 각각, 본 발명의 일 실시예에 따른, 주석들을 생성하고 검 색하기 위한 예시적 연산들을 도시하는 흐름도들이다.
도 7a 및 도 7b는 각각, 본 발명의 일 실시예에 따라 주석 컴포넌트를 선택하고 변환하기 위한 예시적 컴포넌트들을 도시한다.
도 6a 및 도 6b는 각각, 본 발명의 일 실시예에 따른, 텍스트 문서 및 데이터베이스 테이블에 대한 예시적 데이터 오브젝트 인덱스들을 도시한다.
도 8a 내지 도 8c는 본 발명의 일 실시예에 따라 주석을 생성하기 위한 예시적 GUI(graphical user interface) 스크린들이다.
도 9a 및 도 9b는 본 발명의 일 실시예에 따라 데이터 및 주석들을 뷰잉하기 위한 예시적 GUI 스크린들이다.
도 10a 내지 도 10c는 본 발명의 일 실시예에 따라 주석들 및 주석된 데이터를 검색하기 위한 예시적 GUI 스크린들이다.
바람직한 실시예들의 상세한 설명
본 발명은, 상이한 다수 유형 애플리케이션들에 의해 조작(예를 들어, 생성, 편집, 및 뷰잉)되는 상이한 다수 유형 데이터 오브젝트들에 대해 형성된 주석들의 범용(예를 들어, 크로스-플랫폼) 관리를 위해 사용될 수 있는 방법들, 시스템들, 및 제품들을 제공한다. 일부 실시예들은, 프로젝트에 공동 참여 중인 사용자들로 하여금 주석된 데이터 오브젝트들을 조작하는데 사용되는 애플리케이션들내에서 주석들을 생성, 뷰잉, 및 편집할 수 있게 하는데, 이것은 주석들을 통한 묵시적 지식의 포착 및 공유를 용이하게 할 수 있으며 촉진할 수 있다. 또한, 주석들은, 주석들에서 포착되는 묵시적 지식을 주석된 데이터를 조작하는데 사용되는 애플리케이 션들과 분리시키면서, 그들이 설명하는 애플리케이션 데이터로부터 분리되어 저장될 수 있다. 따라서, 협력자들이 특정 애플리케이션으로부터 이동한다고 하더라도, 주석들에서 포착된 묵시적 지식은 이용 가능한 상태를 유지할 수 있다.
여기에서 사용되는 바와 같이, 주석이라는 용어는 일반적으로, 하나 이상의 데이터 오브젝트들과 관련되어 있는 임의 유형 설명적 정보를 의미한다. 주석들은, 텍스트 주석들(설명들, 개정들, 해명들, 코멘트들, 지시들 등), 그래픽 주석들(그림들, 기호들 등), 사운드 클립들 등을 포함하여, 다양한 형태들로 존재할 수 있다. 주석은 이러한 형태들 중 어느 하나 또는 이러한 형태들 모두로 존재할 수 있지만, 이해를 돕기 위해, 본 발명의 실시예들은, 이에 한정되는 것은 아닌, 주석의 특정 예로서의 텍스트 주석들을 참조하여 후술될 수 있다. 따라서, 텍스트 주석들을 참조하여 설명된 다음 기술들은 다른 유형 주석들에도 적용될 수 있을 뿐만 아니라, 좀더 일반적으로는, 데이터 오브젝트에 대한 임의 유형 참조에도 적용될 수 있다는 것을 알 수 있어야 한다.
또한, 여기에서 사용되는 바와 같이, 사용자라는 용어는 일반적으로, 예를 들어, 자동화된 태스크들을 수행 중인 애플리케이션 프로그램과 상호 작용 중인 사람(예를 들어, 개인) 또는 애플리케이션 프로그램 자체와 같은, 여기에서 설명되는 주석 시스템을 이용 중인 임의의 엔티티에 적용될 수 있다. 다음 설명은 대개, 사람에게 정보를 제시하고 사람으로부터 정보를 수신하기 위한 GUI(graphical user interface)를 언급하겠지만, 다수의 경우들에서는, 동일한 기능이, 명령 라인과 같은, 비-그래픽 사용자 인터페이스를 통해 제공될 수 있으며, 또한, 유사한 정보가 프로그래밍 인터페이스를 통해 사람이 아닌 사용자와 교환될 수도 있다는 것을 알 수 있어야 한다.
본 발명의 일 실시예는, 예를 들어, 도 1에 도시되어 있으며 후술되는 기업 시스템(100;enterprise system)과 같은, 컴퓨터 시스템에서의 사용을 위한 프로그램 제품으로 구현된다. 프로그램 제품의 프로그램(들)은 (여기에서 설명되는 방법들을 포함하여) 실시예들의 펑크션들을 정의하며 다양한 신호-보유 매체들에 포함될 수 있다. 예시적인 신호-보유 매체들로는 (i) 고쳐쓰기가 불가능한 저장 매체들(예를 들어, CD-ROM 드라이브에 의해 판독 가능한 CD-ROM 디스크들과 같은 컴퓨터내의 ROM 장치들)에 영구적으로 저장되어 있는 정보; (ii) 고쳐쓰기 가능한 저장 매체들(예를 들어, 디스켓 드라이브 또는 하드-디스크 드라이브내의 플로피 디스크들)에 저장되어 있는 변경 가능한 정보; 또는 (iii) 무선 통신을 포함하여, 컴퓨터 또는 전화 네트워크를 매개로 하는 것과 같이, 통신 매체에 의해 컴퓨터로 전달되는 정보를 들 수 있지만, 이에 한정되는 것은 아니다. 후자의 실시예는 구체적으로 인터넷 및 다른 네트워크들로부터 다운로드되는 정보를 포함한다. 이러한 신호-보유 매체들은, 본 발명의 펑크션들을 지시하는 컴퓨터 판독가능 명령어들을 수행할 때, 본 발명의 실시예들을 표현한다.
일반적으로, 본 발명의 실시예들을 구현하도록 실행되는 루틴들은 오퍼레이팅 시스템 또는 특정 애플리케이션, 컴포넌트, 프로그램, 모듈, 오브젝트, 또는 명령어들의 시퀀스 일부일 수 있다. 본 발명의 소프트웨어는 통상적으로, 원시 컴퓨터에 의해 머신-판독 가능 포맷 및 그에 따른 실행 가능 명령어들로 변환될 다수 명령어들로 이루어진다. 또한, 프로그램들은, 프로그램에 국지적으로 상주하거나 메모리 또는 저장 장치들에서 발견되는 변수들 및 데이터 구조들로 이루어진다. 또한, 여기에서 설명되는 다양한 프로그램들은 이후에, 이들이 구현되는 본 발명의 특정 실시예에서의 애플리케이션에 기초해 식별될 수 있다. 그러나, 수반되는 임의의 특정한 전문 용어는 단지 편의를 위해 사용되는 것이므로, 이러한 전문 용어에 의해 식별되거나 그리고/또는 함축되는 임의의 특정 애플리케이션으로 본 발명이 한정되어서는 안된다는 것을 알 수 있어야 한다.
예시적 실시예
도 1은, 본 발명에 따른 범용 주석 시스템(111)이, 프로젝트에서 공동 연구 중인 사용자들 사이에서, 주석들(132)의 형태로 포착된 정보를 교환하는데 이용될 수 있는 예시적 기업 시스템(100)을 도시한다. 범용 주석 시스템(111)은, 예를 들어, 이러한 시스템들을 설치하는 사업의 서비스 제공자로부터, 이러한 산업 구성원들에게 제공될 수 있다. 주석 시스템의 성공적인 디플로이먼트를 보장하기 위한 시도로서, 서비스 제공자는 묵시적 지식의 포착 및 수확(검색) 모두를 주석들(132) 형태로 다룰 수 있다. 포착 프로세스는 일반적으로, 사용자들(예를 들어, 사람들 또는, 일부 경우들에서는, 애플리케이션 프로그램들)이 "타깃" 데이터의 소정 항목에 관한 주석 내용을 입력하는 단계를 수반한다.
상술된 바와 같이, 타깃 데이터는, 텍스트 문서, 흐름도, (예를 들어, 전자적이거나 기계적인) 결선도 또는 임의의 멀티미디어 파일(예를 들어, 오디오 파일, 이미지 파일, 또는 비디오 클립)과 같은, 텍스트나 (대개는 비-텍스트의 구조화된) 표, 그래픽, 또는 임의 유형 데이터 소스에 유지되어 있는 다른 유형일 수 있다. 포착 프로세스 동안, 주석 내용을 입력하는 사용자는 통상적으로 (예를 들어, 플러그-인 컴포넌트로서) 그들의 특정한 전문 애플리케이션들내에서 구체화될 수 있는 소프트웨어와 또는, 다른 방법으로는, 그들의 전문 애플리케이션들 외부에 존재하는 별개의 주석 애플리케이션, 예를 들어, 독립형 브라우저와 상호 작용할 것이다. 주석들(132)은, 독립적으로 또는 주석된 데이터와 함께 검색될 수 있는 중앙 주석 레포지토리(예를 들어, 주석 저장 장치(130))에 저장됨으로써, 사용자들로 하여금, 관심있는 데이터에 관해 다른 사용자들에 의해 포착된 지식을 수확하게 할 수 있다.
예를 들어, 주석들(132)은, 생물 화학 기업에서 일하는, 관리자, 화학자 및 생물학자와 같은, 상이한 사용자들의 식견들을 포착할 수 있다. 주석들(132)은, 제 1 애플리케이션(120;예를 들어, 워드 프로세서)을 사용해 관리자에 의해 생성된 문서들(117;예를 들어, 프로젝트 상태 보고서들), 제 2 애플리케이션(1202;예를 들어, 데이터베이스 애플리케이션)을 사용해 화학자에 의해 조작되는(예를 들어, 생성/뷰잉/편집되는) 화학 데이터(1172), 및 N번째 애플리케이션(120N;예를 들어, 데이터베이스 애플리케이션 또는 특수한 유전자 데이터 애플리케이션)을 사용해 생물학자에 의해 생성되는 생화학 데이터(117N;예를 들어, 유전자 데이터)와 같은, 다양한 데이터 소스들에 포함되어 있는 다양한 유형 데이터 오브젝트들을 설명하는 주석들을 포함할 수 있다.
주석 저장 장치(130)에 주석들(132)을 저장하는 것으로 인해, 데이터를 포함하는 데이터 소스들의 변경없이 데이터에 관한 묵시적 지식이 포착될 수 있다. 그러나, 실제로는 주석 저장 장치(130)가 주석된 데이터 소스들과 동일한 시스템에 상주할 수도 있다는 것을 알 수 있어야 한다. 어떤 경우에서든, 다양한 애플리케이션 데이터(115)가 전문가들(예를 들어, 화학자들, 생물학자들, 및 관리자들)의 의견들 및 평가들로써 향상될 수 있고, 이러한 보충 지식은 주석 시스템(111)을 통해 다른 사람들에게 이용될 수 있다.
다음에서 부연되는 바와 같이, 주석 시스템(111)은, 주석들이 주석된 데이터를 조작하기 위해 기업 전체에 걸쳐 사용되는 동일한 애플리케이션들(120)로부터 조작될 수 있게 하면서, 중앙 주석 서버와 통신 중인 독립적인 주석 브라우저 및 플러그-인 컴포넌트들을 통해 기업 시스템(100)의 나머지와 통합될 수 있다. 따라서, 주석 시스템(111)은, 광범위한 산업들에서, 기존 프로세스들과 관련하여 분석되고 사용될 수 있는 묵시적 지식을 포착하고 공유하기 위한 수단을 제공한다.
이제 도 2를 참조하면, 기업 시스템(100)의 일 실시예에 대한 클라이언트-서버 뷰가 도시되어 있다. 도시된 바와 같이, 시스템(100)은 일반적으로, 하나 이상의 서버 컴퓨터(104)에서 실행 중인 주석 서버(140;예를 들어, 소프트웨어 컴포넌트)를 통해, 주석 저장 장치(130)의 주석들(132)에 액세스하도록 구성되어 있는 하나 이상의 클라이언트 컴퓨터들(102;예를 들어, 사용자 워크스테이션들)을 포함한다. 클라이언트 컴퓨터들(102) 및 서버 컴퓨터는 네트워크(127)를 통해 접속될 수 있다. 일반적으로, 네트워크(127)는 LAN(local area network), WAN(wide area network), 무선 네트워크 또는, 인터넷을 포함하여, 임의의 여타 적합한 유형 네트워크의 임의 조합일 수 있다.
도시된 바와 같이, 클라이언트 컴퓨터들(102)은 일반적으로, 버스(108)를 통해 메모리(112)에 접속되어 있는 CPU(Central Processing Unit;110), 저장 장치(114), 입력 장치들(116), 출력 장치들(119), 및 네트워크 인터페이스 장치(118)를 포함한다. 입력 장치들(116)은, 마우스, 키보드, 키패드, 광펜, 터치-스크린, 트랙-볼, 또는 음성 인식 유닛, 오디오/비디오 플레이어 등과 같이, 클라이언트 컴퓨터(102)에 입력을 제공하는 임의의 장치일 수 있다. 출력 장치들(119)은, 스피커들 및 다양한 임의 유형 디스플레이 스크린을 포함하여, 사용자에게 출력을 제공하는 임의의 적합한 장치들일 수 있다. 입력 장치(116)와 별개로 표시되어 있기는 하지만, 출력 장치(119) 및 입력 장치(116)는 통합될 수 있다(예를 들어, 통합된 터치-스크린을 갖춘 디스플레이 스크린).
네트워크 인터페이스 장치(118)는, 네트워크(127)를 통해 클라이언트 컴퓨터(102)와 서버 컴퓨터(104) 사이에서 네트워크 통신을 허용하도록 구성되어 있는 임의의 입/출구 장치(entry/exit device)일 수 있다. 예를 들어, 네트워크 인터페이스 장치(118)는 네트워크 어댑터 또는 다른 NIC(network interface card)일 수 있다. 저장 장치(114)는 DASD(Direct Access Storage Device)인 것이 바람직하다. 단일 유닛으로 도시되어 있기는 하지만, 저장 장치(114)는, 고정형 디스크 드라이브들, 플로피 디스크 드라이브들, 테이프 드라이브들, 분리형 메모리 카드들, 또는 광학 저장 장치와 같은, 고정형 및/또는 분리형 저장 장치들의 임의 조합일 수 있 다. 메모리(112) 및 저장 장치(114)는 다수의 일차 및 이차 저장 장치들로 확장하는 하나의 가상 어드레스 공간의 일부일 수 있다.
메모리(112)는 본 발명의 필요한 프로그래밍 및 데이터 구조들을 보유할 수 있을 정도로 충분히 대용량인 RAM(random access memory)인 것이 바람직하다. 메모리(112)가 하나의 엔티티로서 도시되어 있기는 하지만, 메모리(112)가 실제로는 복수개 모듈들을 구비할 수 있으며, 고속의 레지스터들 및 캐시들에서 저속이지만 대용량인 DRAM 칩들에 이르기까지, 다수 레벨들로 메모리(112)가 존재할 수 있다는 것을 알 수 있어야 한다. 예시적으로, 메모리(112)는 오퍼레이팅 시스템(124)을 포함한다. 바람직하게 사용될 수 있는 적합한 오퍼레이팅 시스템들의 예로는, Linux 및 Microsoft의 Windows® 뿐만 아니라, Palm OS®, Windows® CE 등과 같이, 핸드헬드 장치들을 위해 설계된 임의의 오퍼레이팅 시스템들을 들 수 있다. 좀더 일반적으로는, 여기에 개시되어 있는 펑크션들을 지원하는 임의의 오퍼레이팅 시스템이 사용될 수 있다.
또한, 메모리(112)는 (선택적으로, 관련된 주석 플러그-인(122) 및 주석 매개자(128)를 갖는 것으로 도시되어 있는) 하나 이상의 애플리케이션(120)을 포함하는 것으로 도시되어 있다. 애플리케이션(120)은, 주석될 수 있는 데이터를 조작(예를 들어, 생성, 뷰잉, 및/또는 편집)하는데 사용되는 다양한 애플리케이션들 중 하나일 수 있다. 예를 들어, 애플리케이션(120)은 주석 가능한 문서들을 조작하는데 사용되는 텍스트 편집기/워드 프로세서, 데이터를 조작하는데 사용되는 데이터베이스 애플리케이션이나 스프레트시트, 문서들을 조작하는데 사용되는 (Adobe's Acrobat® 및 Acrobat Reader와 같은) 문서 생성기/뷰어, Spotfire,Inc.로부터 입수 가능한 Decision Site와 같은, 데이터 분석 소프트웨어, 이미지들을 조작하는데 사용되는 이미징 소프트웨어, 및 데이터의 다양한 유형들 및 형태들을 조작하는데 사용되는 여타의 임의 유형 애플리케이션들일 수 있다.
일부 애플리케이션 프로그램들(120)은, 예를 들어, 주석 서버(140)를 위해 제공되는 한 세트의 API(application programming interface;142) 펑크션들을 통해, 주석 서버(140)와 직접적으로 통신하도록 구성될 수도 있다. 여기에서 사용되는 바와 같이, API라는 용어는 일반적으로, 클라이언트 컴퓨터 또는 프로세스와 서버 컴퓨터 또는 프로세서 사이에서 통신하는데 사용될 수 있는 (예를 들어, 상호-프로세스 프로토콜을 구현하는) 임의 세트의 인터페이스 펑크션들을 의미한다. 그러나, 다른 애플리케이션 프로그램들은 플러그-인 컴포넌트들(122) 및/또는 주석 매개자(128;annotation broker)를 통해(예를 들어, API(142)를 통해서도) 주석 서버(140)와 통신할 수도 있다. 다시 말해, 주석 기능은 플러그-인 컴포넌트들(122)을 통해 기존 애플리케이션(120)에 추가될 수도 있다. 플러그-인 컴포넌트들(122)은, 예를 들어, 애플리케이션들(120)의 사용자들에게 GUI(graphical user interface) 스크린들을 제시함으로써, 주석된 데이터를 조작하는데 사용되는 애플리케이션들내에서의 주석들의 생성 및 검색을 가능하게 할 수 있다.
주석 매개자(128)는 선택적 컴포넌트이며, 예를 들어, 동일한 클라이언트 컴퓨터(102)에서 실행 중인 다수 애플리케이션들로부터의 플러그-인 컴포넌트들(122)과 통신 중인 다양한 애플리케이션들(120)으로부터의 주석 서버(140)에 표준 인터 페이스를 제시하도록 구성되어 있는 소프트웨어 컴포넌트로서 구현될 수도 있다. 따라서, 주석 매개자(128)는, 주석 서버(140)의 세부 연산을 은닉하고 플러그-인 컴포넌트들(122)의 개발을 용이하게 하면서, 애플리케이셔들(120)과 주석 서버(140) 사이에 어느 정도의 분리를 제공할 수 있다. 다시 말해, 주석 매개자 인터페이스에 따라 기입된 플러그-인 컴포넌트들(122)의 개발을 통해, 새로운 애플리케이션들(120)이 지원될 수 있다.
서버 컴퓨터(104)의 컴포넌트들은 물리적으로 클라이언트 컴퓨터(102)의 컴포넌트들과 유사한 방식으로 배열될 수 있다. 예를 들어, 서버 컴퓨터(104)는 일반적으로, 모두가 클라이언트 컴퓨터(102)를 참조하여 설명된 유사 컴포넌트들처럼 연산할 수 있는, 버스(136)에 의해 서로 결합되어 있는, CPU(135), 메모리(133), 및 저장 장치(134)를 구비하는 것으로 도시되어 있다. 서버 컴퓨터(104)는 일반적으로, 메모리(133)에 상주하는 것으로 도시되어 있는 오퍼레이팅 시스템(138;예를 들어, IBM OS/400®, UNIX, Microsoft Windows® 등)의 제어에 따른다.
도시된 바와 같이, 서버 컴퓨터(104)는, 이 또한 메모리(133)에 상주하는 것으로 도시되어 있는 주석 서버(140)를 갖추도록 구성될 수 있다. 주석 서버(140)는 (예를 들어, 하나 이상의 클라이언트 컴퓨터들(102)에서 실행 중인) 주석 클라이언트들에, 예를 들어, 주석 API(142)를 통해, 주석 저장 장치(130)로의 액세스를 제공한다. 다시 말해, 주석 API(142)는 일반적으로 주석 클라이언트들과 주석 서버(140) 사이의 인터페이스를 정의한다. 여기에서 사용되는 바와 같이, 주석 클라이언트라는 용어는 일반적으로, 주석 데이터를 조작(예를 들어, 생성, 업데이트, 판독 및 조회)하기 위해 주석 서버와 통신하는 주석 시스템의 임의의 사용자 인터페이스(또는 다른 유형 전단 로직)를 의미한다. 주석 클라이언트들의 예로는 (직접적으로 또는 플러그-인 컴포넌트들(122)을 통해) 주석 서버(140)와 통신 중인 애플리케이션들(120) 및 주석 브라우저(126)를 들 수 있다.
다음에서 부연되는 바와 같이, 주석 서버(140)는, 특정 데이터 오브젝트들에 대한 주석들을 생성하기 위한 요청들에 응답하는 것, 특정 데이터 오브젝트에 대한 주석들을 검색하기 위해 주석 저장 장치(130)에 대한 쿼리들을 공식화하여 발행하는 것, 및 하나 이상의 특정 조건들을 충족시키는 (예를 들어, 특정된 저자, 생성 날짜, 내용 등을 가진) 주석들을 검색하기 위해 주석 저장 장치(130)에 대한 쿼리들을 공식화하여 발행하는 것과 같은, 다양한 연산들을 수행하도록 구성될 수 있다.
일부 실시예들의 경우, 기업을 위한 분산형 주석 시스템은, 예를 들어, 각각이 상이한 서버 컴퓨터(104)에서 실행 중인, 복수개의 분산형 주석 서버들(140)을 구비할 수 있다. 각각의 분산형 주석 서버(140)는 사용자들의 상이한 집합(예를 들어, 공통 기업 또는 개별 기업들내의, 상이한 부서들, 또는 심지어 상이한 지리적 위치들 등)을 지원할 수 있으며, 별개의 주석 저장 장치(130)를 유지할 수 있다. 그러나, 각각의 분산형 주석 서버(140)는 (예를 들어, 직접적으로 또는 유지 중인 대응 주석 서버들(140)과의 통신을 통해) 다른 주석 서버들에 의해 유지되는 주석 저장 장치들(130)로부터의 주석 내용에 액세스하도록 구성됨으로써, 주석들이 분산형 기업 전체에 걸친 광범위한 사용자들에 의해 생성 및 공유될 수 있게 한다.
일부 실시예들의 경우, 한 세트의 관리 도구들(144)을 통해, 주석 서버(140) 및 다양한 관련 컴포넌트들이 구성될 수 있다. 예를 들어, 도구들(144)은, 주석 정보, 주석 가능한 다양한 데이터 소스 유형들 및 그것의 인덱싱, 사용자들이 수행할 수 있는 역할들, 및 주석 서버(140)의 연산에 영향을 미칠 수 있는 다른 정의 정보를 디스플레이하고 수집하는데 사용하기 위한 한 세트의 주석 템플릿 구조들과 같은, 다양한 정보를 포함할 수 있는 한 세트의 주석 구성 파일들(148)을 생성하는데 사용될 수 있다. 주석 구조들은, 주석에 어떤 데이터가 저장되어 있는지 및, 예를 들어, 사용자의 역할에 기초해, 주석을 뷰잉 중인 사용자에게 어떤 데이터가 제시되는지를 판정하는 한 세트의 필드들 및 필드들의 그룹을 포함할 수 있다.
주석 시스템의 관계도
도 3a는 본 발명의 일 실시예에 따른, 주석 시스템의 주석 서버(140)와 여타 다양한 컴포넌트들간의 관계도를 도시한다. 상술된 바와 같이, (예를 들어, 하나 이상의 클라이언트 컴퓨터들(102)에 상주하는) 하나 이상의 애플리케이션들(120)은, 애플리케이션들(120)에 의해 조작되는 데이터 오브젝트에 대한 주석들을 생성하거나 뷰잉하기 위해, 직접적으로(예를 들어, 애플리케이션(1201)) 또는 주석 플러그-인들(122) 및/또는 주석 매개자(128)를 통해(예를 들어, 애플리케이션들(1202-120N)) 주석 서버(140)와 통신할 수 있다.
도시된 바와 같이, 주석 서버(140)는 쿼리 인터페이스(119)를 통해 주석 저장 장치(130)에 대한 쿼리들을 발행할 수 있다. 일부 실시예들의 경우, 주석 서버 (140)는 주석 저장 장치(130)에 대한 추상적 쿼리들을 발행할 수 있고 쿼리 인터페이스(119)는 추상적 쿼리의 논리 필드들을 주석 저장 장치(130)의 대응되는 물리 필드들에 매핑하도록 구성되어 있는 추상적 쿼리 인터페이스일 수 있다. 그 전체가 여기에 참조로써 포함되어 있는, 2002년 2월 26일에 "Improved Application Portability And Extensibility Through Database Schema And Query Abstraction"이라는 명칭으로 출원된, 양수인이 동일한, 계류 중인 특허출원 제 10/083,075호에 데이터 추상화 및 추상적 쿼리들의 개념들이 상세하게 설명되어 있다.
도시된 바와 같이, 주석 매개자(128)는 다수 애플리케이션들에 대한 주석 플러그-인들(122)과 주석 서버(140)간의 인터페이스로서 기능할 수 있다. 예를 들어, 주석 매개자(128)는 다수의 주석 플러그-인들 및 (예를 들어, 주석 서버(140)에 동시에 액세스하고자 하는 다수의 플러그-인 컴포넌트들(122)간에 중재를 제공하는) 주석 서버로 그리고 그로부터 송신되는 메시지들을 관리할 수 있다. 일부 실시예들의 경우, 주석 매개자(128)는, 표준 인터페이스를 제공하며 Windows 애플리케이션들(예를 들어, Microsoft Internet Explorer, Microsoft Word, Microsoft Excel, Adobe Acrobat, Spotfire, 및 다른 Windows 애플리케이션들)용 주석 플러그-인들(122)에 대한 주석 서버(140)로의 액세스를 용이하게 하는 Windows COM(Component Object Model) 서버로서 구현될 수 있다. 다시 말해, 주석 서버(140)에 표준 인터페이스를 제공하는 것에 의해, 주석 매개자(128)는, 그것의 인터페이스에 따라 기입된 플러그-인 컴포넌트들의 개발을 통해, 새로운 애플리케이션들(120)을 지원하기 위한 주석 시스템의 확장을 용이하게 할 수 있다.
도시된 바와 같이, 주석 브라우저(126)는, 애플리케이션들(120) 중 어느 하나와 무관하게, 애플리케이션 데이터 및 주석들을 생성하고 뷰잉하는 것을 허용할 수 있다. 일부 실시예들의 경우, 주석 브라우저(126)는 구조화된 데이터 내용(예를 들어, 쿼리 인터페이스(119)에 의한 쿼리들을 통해 직접적으로 액세스될 수 있는 애플리케이션 소스 데이터)을 뷰잉하기 위한 그리고 그것에 관한 주석들을 생성하고 뷰잉하기 위한 일반화된 웹-기반 사용자 인터페이스를 제공할 수 있다. 다음에서 후술되는 바와 같이, 일부 실시예들의 경우, 주석 브라우저는 사용자에게 동시적인 쿼리 데이터 소스들(117) 및 관련 주석들(132)을 허용하는 인터페이스를 제공할 수 있다.
일부 실시예들의 경우, 주석된 데이터 오브젝트(들)를 식별하기 위해, 대응되는 주석된 데이터 오브젝트(들)를 식별하는데 사용될 수 있는 인덱스 또는 인덱스들의 세트가 주석 데이터와 함께 저장될 수 있다. 도시된 바와 같이, 주석 레코드로부터 획득되는 인덱스는, 공통적으로, 주석된 포인트들(113)이라고 하는, 주석된 데이터 오브젝트 또는 서브-오브젝트들을 식별하는데 사용될 수 있는 정보를 하나 이상의 인덱스 테이블들(134)로부터 검색하는데 사용될 수 있다.
여기에서 사용되는 바와 같이, 포인트라는 용어는 일반적으로, 주석될 수 있는 임의의 식별 가능한 데이터 유닛(또는 데이터 유닛들의 그룹)을 언급할 수 있다. 주석 가능한 포인트들의 예로는 데이터베이스 테이블들, 로우들, 컬럼들, 셀들, 또는 셀들의 그룹들, (예를 들어, 오프셋과 길이, 시작과 중단 로케이션들, 또는 여타 적합한 임의의 정의 정보에 의해 정의되는) 텍스트 문서의 선택된 부분들 등을 들 수 있지만, 이에 한정되는 것은 아니다. 오브젝트의 다수 포인트들이 동일한 주석에 의해 참조될 수도 있고 오브젝트의 어떤 한 포인트가 다수 주석들에 의해 참조될 수도 있다. 또한, 도 3a의 인덱스 테이블(134)로부터의 화살표로써 지시되는 바와 같이, 주석은 하나 이상의 주석 가능한 데이터 소스(117)에서의 포인트들을 참조할 수 있다. 일부 실시예들의 경우, 추가 포인트들은, 주석을 실제로 추가 포인트들로 전파하는, 예를 들어, 주석 API(142)에 의해 주석과 관련될 수 있다.
일부 경우들에서는, 임의의 특정 포인트와 관련되지 않은 주석들이 생성되고 관리될 수 있다. 예를 들어, 이러한 주석들은, 주석 가능한 특정 포인트들에 대해 형성된 주석보다 본질적으로 좀더 일반적인 식견들의 포착을 용이하게 할 수 있다. 그러나, 여기에서 설명되는 방법 및 시스템들은 여전히, 이러한 주석들의 생성, 조직, 및 검색에 바람직하게 이용될 수 있다. 예를 들어, 여기에서 "포인트-특정(point-specific)" 주석들을 참조하여 설명되는 바와 같이, 이러한 주석들은 하나 이상의 주석 구조들을 사용해 생성되고 뷰잉될 수 있다.
이종 인덱싱
주석 저장 장치에 저장되어 있는 인덱스를 사용해, 주석 저장 장치로부터 주석 레코드(150)를 검색할 때, 주석에 의해 설명되는 오브젝트가 주석 레코드내의 정보로부터 발견될 수 있고, 반대로, 그것의 식별 정보로부터 생성된 인덱스에 기초해, 소정 오브젝트에 대한 주석들이 주석 저장 장치에서 룩업될 수 있다. 따라서, 인덱스들은 주석들로부터 대응되는 데이터를 찾아내고 데이터와 관련된 주석들 을 찾아내기 위한 능력을 제공한다. 상이한 유형 데이터 오브젝트들은 상이한 식별 파라미터들을 갖기 때문에(예를 들어, 데이터베이스 엔티티들은 테이블, 컬럼 및/또는 로우 값들에 의해 식별될 수 있는 한편, 텍스트 문서들의 부분들은 문서내의 오프셋과 길이 또는 시작과 중단 값들 등에 의해 식별될 수 있다), 주석된 데이터 오브젝트의 유형에 따라, 상이한 인덱싱 방법들이 사용될 수 있다.
데이터 소스들은 통상적으로, 각각이 상이한 이유들을 위해 주석될 수 있는 데이터 오브젝트들의 상이한 "레벨들"에 대한 "입상" 계층 구조들("granular" hierarchical structures)로서 정렬된다. 예를 들어, 데이터베이스 테이블은 그것이 생성된 이유(그것의 목적)를 설명하도록 주석될 수 있고, 데이터베이스 컬럼은 어떤 유형 데이터가 거기에 저장되어 있는지를 밝히도록 주석될 수 있으며, 데이터베이스 로우는 특정 세트의 데이터(보통 환자에 관한 모든 것)에 대해 설명하도록 주석될 수 있는 한편, 데이터베이스 셀은 거기에 저장되어 있는 특정 값(예를 들어, 놀랍도록 높은 실험 값)의 중요성에 대해 설명하도록 주석될 수 있다. 일반적으로, 더 높은 레벨의 데이터 오브젝트들은 (더 높은 레벨의 데이터 오브젝트들에 대한 서브-오브젝트들로서 간주될 수 있는) 더 낮은 레벨의 데이터 오브젝트들에 대한 인덱스들보다 더 적은 컬럼 값들을 가진 인덱스들에 의해 식별될 수 있다.
상이한 다수 유형 데이터 오브젝트들을 인덱싱하기 위한 적합한 기술들의 예들이, 여기에 참조로써 포함되어 있는, 2003년 6월 20일에 "Heterogeneous Multi-Level Extendable Indexing For General Purpose Annotation Systems"라는 명칭으로 출원된, 동일한 양수인의, 계류 중인 특허출원 제 10/600382호에 상세하게 설명 되어 있다. 도 3b 및 도 3c는, 본 발명의 실시예들에 따라 사용될 수도 있는, 각각, 주석 생성 및 검색 동안에, 상기 애플리케이션에서 설명된 예시적인 일 인덱싱 기술에서 이용되는 컴포넌트들을 도시한다.
도 3b에 도시된 바와 같이, 주석을 생성할 때, 주석 서버의 인덱싱 컴포넌트(153)는 애플리케이션 프로그램(120)에 의해 조작되는 주석된 데이터 오브젝트(121)에 대한 하나 이상의 식별 파라미터들에 기초해 인덱스(151)를 계산할 수 있다. 인덱싱 컴포넌트는 주석된 데이터 오브젝트(121)의 유형을 판정할 수 있고, 데이터 오브젝트(121)의 식별(ID) 파라미터들을 인덱스 테이블(134)에서의 한 세트의 컬럼 값들에 매핑하는데 사용되는 매핑 펑크션들을 포함하는 인덱스 매핑 테이블(155)을 선택할 수 있다. 다시 말해, 인덱스 매핑 테이블들(154)은 데이터 오브젝트들의 이종 세트에 대한 상이한 유형 ID 파라미터들을 인덱스 값들의 이종 세트에 매핑하는데 사용될 수 있다. 상기 애플리케이션에서 설명된 바와 같이, 각 유형 서브-오브젝트들이 공통 인덱스 컬럼 값들에 매핑될 수 있게 하는, 상이한 매핑 테이블들(155)이 각 유형 데이터 소스(데이터베이스 테이블, 텍스트 문서, PDF 파일 등)에 대해 제공될 수 있다.
인덱스 테이블(134)은, 예를 들어, 어떤 데이터 오브젝트들이 주석들을 갖는지의 지시(예를 들어, 아이콘)를 애플리케이션 프로그램(120)에 제공하기 위해, 개별적으로 조회되어 특정 데이터 오브젝트(또는 그것의 서브-오브젝트)에 대해 주석들이 존재하는지를 판정할 수 있다. 다시 말해, 인덱스 테이블(134)에서의 데이터 오브젝트에 대한 인덱스 존재는, 그 데이터 오브젝트에 대해 주석이 형성되었다는 것을 지시한다. 도 3c에 도시된 바와 같이, 주석 데이터베이스(130)로부터 주석을 검색할 때, 인덱싱 컴포넌트는 검색된 주석에 대한 인덱스를, 애플리케이션 프로그램(120)으로 하여금 주석과 관련된 데이터 오브젝트를 식별할 수 있게 하는, 한 세트의 ID 파라미터들로 변환할 수 있다. 그러나, 일부 실시예들의 경우, 실제 주석들은, 예를 들어, 마우스로 대응되는 주석 아이콘을 클릭하는 것에 의해 사용자가 그것을 요청할 때까지, 검색되지 않을 수도 있다.
주석 API
상술된 바와 같이, 일부 실시예들의 경우, 주석 API(142)는 주석 서버(140)와, API로 코딩된 애플리케이션 프로그램들(120), 플러그-인 컴포넌트들을 통해 주석을 위해 인에이블된 애플리케이션 프로그램들(120) 및 주석 브라우저(126)와 같은, 주석 클라이언트들간에 인터페이스를 제공할 수 있다. 주석 API(142)는, 주석 클라이언트들로 하여금 다양한 주석-관련 펑크션들을 수행하게 할 수 있는 다양한 펑크션들을 포함할 수 있다. 도 3d는, 본 발명의 일 실시예에 따라, 주석 API(142)에 포함될 수 있는 가능한 API 펑크션들의 샘플을 도시하는 테이블(480)이다.
테이블 480에 도시된 바와 같이, 주석 API(142)는, 주석 클라이언트들로 하여금, 특정 데이터 오브젝트들에 대한 주석들에 관한 광범위한 정보(예를 들어, QueryStructureNames, QueryStructureTransforms, QueryAllowedPointTypes, QueryDataSourceSubtypes, 및 GetAnnotation)를 검색하고 주석들에 의해 설명되는 데이터 오브젝트들에 관한 광범위한 정보(예를 들어, QueryPoints)를 검색하기 위 해, 주석 시스템을 조회할 수 있게 하는 펑크션들을 포함할 수 있다. 또한, 주석 데이터는 특정 쿼리 조건들(예를 들어, QueryAnnotationlDs)을 충족시키는 데이터를 위해 조회될 수도 있고, 주석들은 생성 및/또는 편집된 주석들(예를 들어, AddPoint, DeletePoint, CreateAnnotation, UpdateAnnotation, 및 DeleteAnnotation)일 수도 있다. 또한, 주석 세션에 대한 사용자의 역할을 뷰잉 및/또는 설정하기 위한 펑크션들(예를 들어, QueryRoles 및 SetRole)이 존재할 수도 있다.
다음 설명의 여러 곳에서 지적되는 바와 같이, 후술되는 일부 연산들을 실현하기 위해, API 펑크션 호들의 시퀀스(sequence of API function calls)가 형성될 수도 있다. 그러나, 당업자들은, 제공되는 정확한 API 펑크션들 및 펑크션 이름들, 펑크션들로 그리고 펑크션들로부터 전달되는 파라미터들, 및 그에 의해 수행되는 정확한 기능은 상이한 구현들에 따라 광범위하게 달라질 수 있으며, 설계자의 판단에 따라, 다양한 펑크션들이 하나의 펑크션으로 조합되거나 별개의 펑크션들로 분리될 수도 있다는 것을 알 수 있을 것이다. 따라서, 다음의 참조들이 도 3d에 열거된 예시적인 특정 펑크션들을 언급할 수도 있지만, 다음의 연산들 중 어느 하나를 수행하는데 사용되는 실제의 시퀀스들 및 펑크션들은 상이한 구현들에 따라 광범위하게 달라질 수 있을 것이다.
주석 시스템 구성
다시 도 3a를 참조하면, 일부 실시예들의 경우, 관리 도구들(144)이 주석 시스템의 다양한 컴포넌트들을 구성하는데 사용될 수 있다. 예를 들어, 관리 도구들 (144)은 (일반적으로, 주석 도구들(144)을 실행 중인 임의의 사용자로서 정의되는) 관리자로 하여금, 단일 인터페이스로부터, 예를 들어, 역할들을 정의하고, 사용자들을 역할들과 관련지으며, 다양한 데이터 소스들에 대한 주석 가능한 포인트들을 정의하고, 다른 유형 구성 연산들을 수행하게 하기 위해, 다양한 구성 파일들(148)을 통해 네비게이션할 수 있게 하는 GUI를 제공하는 하나 이상의 애플리케이션 프로그램들의 세트를 포함할 수 있다. 도 4d는, 예를 들어, 관리 도구들(144)에 의해 제공되는 GUI 스크린들을 사용해, 사용자에 의해 수행될 수 있는 주석 시스템을 구성하기 위한 예시적 연산들(400)을 도시한다.
그러나, 관리 도구들(144)을 실행시켜 주석 시스템을 구성하기 전에, 관리자는, 주석 시스템이 어떻게 구성되어야 하는지(예를 들어, 어떤 데이터가 주석될 수 있어야 하는지 그리고 어떤 유형 정보가 주석들로서 포착되어야 하는지)를 판정하는데 사용되는 다양한 정보를 수집해야 할 수 있다. 수집되는 이 데이터는, 예를 들어, 주석들이 도움이 될 것 같은 데이터에 대한 주석들을 지원하도록 주석 시스템을 한정하는 목표로써, 주석 시스템을 실제로 구성하기 위한 전조(precusor)로 간주될 수 있다. 관리자가, 주석 시스템이 디플로이될 시스템에 그다지 익숙하지 않을 경우, 도메인 전문가 뿐만 아니라 다른 유형 컨설턴트(예를 들어, 주석 시스템들을 설치하는 사업의 서비스 제공자)에게도 주석 시스템을 구성하기 전에 적당한 고려들이 취해졌다는 것을 보장하기 위한 조언을 구할 수 있다.
도 4a는, 주석 도구들(144)을 실제로 실행시키기 위한 준비로서, 주석 시스템이 어떻게 (그리고 어떤 데이터에 대해) 연산해야 하는지를 판정하기 위해, 예를 들어, 관리자 및/또는 도메인 전문가에 의해 수행될 수 있는 예시적인 연산들(420)의 흐름도이다. 연산들(420)은, 주석 시스템 구성을 도메인의 사용자들 및 데이터에 맞추려는 노력으로 주석 시스템이 디플로이될 도메인을 점검하기 위한 일종의 감사(audit)로 간주될 수 있다.
연산들(420)은, 단계 422에서, 주석으로부터 이점을 취할 프로세스들을 식별하는 것으로써 시작한다. 예를 들어, 프로세스의 일부로서 주관적 측정들, 전문가 판정, 및 의견들을 수반하는 프로세스들은 모두 주석들로부터 이점을 취할 수 있다. 어떤 필드들이 주석되어야 할 것인지를 판정하는 후속적인 사용을 위해, 프로세스들의 각각을 위해 유지된 데이터도 식별될 수 있다. 또한, 식별된 프로세스를 위해 유지된 데이터가 주석되어야 한다는 것이 나중에 판정될 경우, 주석에서 (메타데이터라고 하는) 데이터에 관한 어떤 정보가 포착되어야 하는지에 관한 판정도 수행될 수 있다.
이러한 판정은, 예를 들어, 데이터를 분석 중인 사용자가 어떤 유형들의 질문들을 질문할 것 같은지를 뷰잉하는 것에 의해 수행될 수 있으며, 사실적 정보(예를 들어, 어떤 유형 테스트 장비가 사용되었는지) 및 주관적 정보(예를 들어, 결과들이 수용 가능한지, 데이터가 믿을만한 것인지 등)를 포함할 수 있다. 이러한 질문들은, 소정 데이터 오브젝트에 대한 주석에 어떤 필드들이 포함되어야 하는지를 지시할 수 있다. 또한, 개개인들이 식별된 메타데이터를 제공하기 위한 충분한 동기가 존재하는지(즉, 사용자가 메타데이터를 포착하기 위해 주석을 생성할 것 같은지)의 여부에 관한 고려도 주어질 수 있다.
단계 424에서는, 식별된 프로세스들에 대한 역할들이 식별된다. 상술된 바와 같이, 사용자가 수행하는 역할은, 사용자가 주석에서 포착하거나 주석에서 뷰잉하는데 관심이 있을 것 같은 정보의 유형을 판정하는 것일 수 있다. 예를 들어, 생화학 기업에서, 관리 역할을 수행 중인 사용자는 프로젝트 예산 데이터에 좀더 관심을 가질 수 있는 한편, 연구 역할을 수행 중인 사용자는 기술적인 테스트 결과들에 좀더 관심을 가질 수 있다. 다양한 역할들을 수행 중인 사용자들이 어떻게 정보를 생성, 변경, 또는 소비하는지에 대한 고려가 있을 수도 있다(예를 들어, 관리자는 작업을 리뷰하고 승인할 수 있을 것 같은 한편, 연구자는 단순히 데이터가 수집된 조건들을 설명할 수도 있다).
단계 426에서는, 프로세스들에 대해 주석 가능한 데이터 범위들이 식별된다. 주석 가능한 데이터 범위라는 용어는 일반적으로, 정확하게 주석이 형성되고 있는 장소(예를 들어, 데이터 오브젝트내의 어떤 데이터 오브젝트 또는 로케이션에 대해 주석이 형성되고 있는지)를 의미한다. 엔티티는 광범위한 데이터(예를 들어, 상이한 관련 토픽들, 상이한 학문 분야들 등)를 다룰 수 있으므로, 각각의 상이한 데이터 유형에 대해 포착된 식견들(즉, 메타데이터)은 그에 따라 달라질 수 있다. 다시 말해, 주석될 데이터 범위는, 대응되는 주석에 대해 어떤 유형의 정보가 포착될 것인지를 판정할 수 있다.
도 4b는, 주석 가능한 데이터 범위들을 식별하기 위해 수행될 수 있는 예시적 연산들(440)을 도시한다. 연산들은, 단계 442에서 시작하고, 단계 444에서는, 유효한 주석 가능한 데이터 소스들이 열거된다(예를 들어, 데이터베이스 테이블들, 스프레드시트들, PDF 문서들, 텍스트 문서들, 이미지 파일들, 또는 식별 가능한 임의 유형 데이터 소스). 단계 446에서는, 열거된 데이터 소스들 각각에 대해 수행될 연산들(448-452)의 루프에 진입한다.
단계 448에서는, 데이터 소스 서브-유형들이 열거된다. 데이터 소스 서브-유형들은, 특정 유형 데이터 소스에 대한 내용이 다른 유형들이 아니라 (주석들에서 포착된) 상이한 유형의 메타데이터를 필요로 하는 경우로서 식별될 수 있다. 예를 들어, 데이터베이스 테이블의 경우, 서브-유형들은 특정 유형들의 테이블들(예를 들어, 임상 데이터 테이블, 인사 이동 일정 테이블, 환자 기록들 등)을 포함할 수 있는 한편, 텍스트 문서의 경우, 서브-유형들은 상이한 유형들의 문서들(예를 들어, 품질 제어 문서들, 이력서, 특허 출원서 등)을 포함할 수 있다. 다음에서 좀더 상세하게 부연되는 바와 같이, 데이터 소스 서브-유형 및 선택된 포인트(및 뿐만 아니라 어쩌면 사용자 역할)에 기초해, 상이한 주석 필드들을 가진 주석들을 생성하는데 사용하기 위한 상이한 주석 형태들이 사용자들에게 제시될 수 있다.
단계 450에서는, 각각의 유형 및 서브-유형에 대한 주석 가능 포인트들이 열거된다. 예를 들어, 상술된 바와 같이, 데이터베이스 테이블에 대한 주석들이 로우, 컬럼, 셀, 또는 전체 테이블에 대해 형성될 수 있는 한편, 텍스트 문서에 대한 주석들은 문서 또는 그것의 임의 섹션(예를 들어, 시작 문자와 중단 문자 또는 오프셋과 길이에 의해 정의된 단어들의 그룹)에 대해 형성될 수 있다.
도 4c는 데이터 소스 유형들의 예시적 세트에 대한 주석 가능한 예시적 포인트들을 열거하는 테이블(460)을 도시한다. 예시적으로, 데이터 소스 유형들의 예 시적 세트는, 데이터베이스 테이블들 및 스프레드시트들과 같은, 관계 데이터 소스들, 워드 문서들, HTML 파일들, Spotfire 파일들, 및 PDF 파일들을 포함한다. 그러나, 지원될 수 있는 데이터 소스 유형들 및 주석 가능한 포인트들에는 제한이 없으며, 지원되는 정확한 수와 유형은 상이한 실시예들에 따라 달라질 수 있다. Meta Information 컬럼은, 주석 가능한 대응 포인트를 고유하게 식별할 수 있는 정보를 지시한다. 나타내지는 않았지만, 하나 이상의 주석 가능한 포인트들의 그룹들도 주석될 수 있다.
단계 452에서는 (예를 들어, 주석 가능한 포인트를 추가적으로 특정하는) 여타의 데이터 소스 수식어들(data source qualifiers)이 열거된다. 특정 범위에 대한 여타의 데이터 소스 수식어들의 예로는, 특정한 컬럼명과 같은, 주석 가능한 엔티티의 이름을 들 수 있다. 다시 말해, 이러한 소스 수식어로 인해, 한 컬럼에 대한 주석들이 다른 컬럼에 대한 주석들과 상이할 수 있다. 데이터 소스 수식어의 다른 예로서, 선택된 주석 가능 데이터 오브젝트의 내용은, 예를 들어, 특정된 검색 스트링, 하나 이상의 키워드들, 소정 값, 값들의 세트 또는 범위 등을 포함하도록 한정될 수 있다.
도 4a로 돌아가면, 단계 428에서는, 각각의 역할 및 범위 조합에 대해 유지될 메타데이터가 식별된다. 예를 들어, 각각의 역할 및 범위 조합에 대해 유지될 메타데이터는, 단계 426에서 식별된 주석 가능한 데이터 범위들 각각에 대해 포착될 수 있는 메타데이터의 상이한 유형들을 점검하고 (어떤 역할들을 수행 중인) 어떤 사용자들이 이러한 메타데이터에 관심이 있을 것인지(그리고/또는 이러한 메타 데이터에 액세스하도록 인증될 것인지)를 판정하는 것에 의해 식별될 수 있다. 다음에서 좀더 상세하게 부연되는 바와 같이, 식별된 메타데이터에 기초한 주석 필드들을 갖춘 주석 구조들이 생성되어 대응되는 역할 및 범위 조합과 관련될 수 있다.
도 4a의 데이터 수집 연산들이 수행된 후, 사용자는, 예를 들어, 데이터 정의 파일(146), 구성 파일들(148), 및 주석 구조들(149)을 생성하기 위해, 관리 도구들(140)을 실행시킬 준비를 갖추게 될 수 있다. 일반적으로, 데이터 정의 파일(146)은, 거기에 포함되어 있는 어떤 데이터 소스들(117) 및 포인트들(113)이 주석될 수 있는지를 정의할 수 있다.
도 4d는 사용자로부터의 입력으로써 주석 시스템을 구성하기 위해, 관리 도구들(144)을 통해, 수행될 수 있는 예시적인 연산들(400)을 도시한다. 연산들(400)은, 관리 도구들(144)의 일부로서 사용자들에게 제시될 수 있는 예시적인 GUI 스크린들을 도시하는 도 5a 내지 도 5h를 참조하여 설명될 수 있다. 물론, GUI 스크린들의 세부 사항들은 단지 예시적인 목적을 위한 것일 뿐이고, 연산들(400)은 주석 시스템을 구성하기 위해 수행될 수 있는 연산들의 유형들 중 일부를 표현할 뿐이며, 사용자는 관리 도구들(144)에 의해 또는 임의의 여타 구성 인터페이스를 통해 다양한 여타의 구성 프로세스들을 수행할 수도 있다는 것을 알 수 있어야 한다.
연산들(400)은, 예를 들어, 관리 도구들(144)을 호출할 때, 단계 402에서 시작하고, 단계 404에서는, 주석 구조들 및 다른 관련 정보를 정의하기 위한 인터페이스가 제공된다. 도 5a의 GUI 스크린은, 사용자에게 제공될 수 있는 인터페이스 유형의 일례를 도시한다. 도시된 바와 같이, GUI 스크린은, 사용자로 하여금 별개의 폴더들(예를 들어, Data Sources, Roles, Users 등)에 편성되어 있는 (XML의 구성 파일들(148)로서 구현될 수 있는) 다양한 구성 데이터 구조들을 통해 네비게이션할 수 있게 하는 구성 네비게이션 패널(520)을 포함할 수 있다. 소정 폴더를 선택하는 것에 응답하여, 사용자에게는 선택된 폴더에 대응되는 (네비게이션 패널(520)과 대향하도록 표시되어 있는) GUI 패널이 제공될 수 있다.
사용자는, 데이터 범위 및 정의된 사용자 역할의 소정 조합과 관련된 주석 정보를 포착하기 위해 선택된 주석 필드들을 포함할 수 있는 주석 구조들을 정의하기 위해, 예를 들어, 다양한 GUI 패널들을 사용해, 연산들(406-412)의 루프를 수행할 수 있다.
단계 406에서는, 다양한 역할들(예를 들어, 생물학자, 화학자, 관리자 등)이 정의된다. 예를 들어, 네비게이션 패널(520)에서 Roles 폴더를 선택하는 것에 응답하여, 사용자에게는, 사용자로 하여금 새로운 역할들을 추가할 수 있게 하는, 도 5a에 나타낸 GUI 패널(530)이 제공될 수 있다. 사용자는, 네비게이션 패널(520)에서 특정 역할을 선택하는 것에 의해 액세스될 수 있는, 도 5b에 나타낸 GUI 패널(532)을 통해 사용자들을 역할들과 관련지을 수 있다. 다른 방법으로서, 역할들은, 네비게이션 패널(520)에서 특정 사용자를 선택하는 것에 의해 액세스되는 도 5c의 유사한 GUI 패널(534)을 통해 사용자들과 관련될 수도 있다. 도시된 바와 같이, 다수 역할들이 단일 사용자와 관련될 수도 있다.
단계 408에서는 포인트 유형들(예를 들어, 데이터 소스들의 주석 가능한 데 이터 오브젝트들 및 서브-오브젝트들)이 정의된다. 도 4b를 참조하여 상술된 바와 같이, 일부 실시예들의 경우, 사용자는 특정된 데이터 소스의 어떤 서브-유형들 뿐만 아니라 서브-유형들내의 어떤 포인트들이 주석 가능할 것인지를 선택할 수 있다. 도 5a에 도시된 바와 같이, 주석 가능한 데이터 소스들(예를 들어, 관계 데이터베이스), 서브-유형들(Table X), 및 포인트들(셀들, 컬럼들, 및 로우들)이 네비게이션 패널(520)에 계층 포맷으로 열거될 수 있다.
단계 410에서는 예를 들어, 주석 구조에 포함될 유효한 주석 필드들을 특정하는 것에 의해, 주석 구조들이 정의된다. 상술된 바와 같이, 주석 구조에 포함되는 필드들은 일반적으로, 주석에서 포착될 메타데이터를 표현한다. 반드시 그래야 하는 것은 아니지만, 주석 구조는 통상적으로, 주석들을 입력하기 위한 하나 이상의 필드를 포함할 것이다.
도 5d에 도시된 바와 같이, 일부 실시예들의 경우, 사용자들은, GUI 패널(540)을 통해, 주석 필드들(544)의 관련 세트로부터 주석 필드 그룹(542)을 생성할 수 있다. 필드들에 대한 특성들(예를 들어, 필드에 입력되는 데이터가 가질 수 있는 가능한 데이터 유형들 및 값들)도 특정될 수 있다. 예를 들어, 일부 필드들은 선택 리스트로서 제공되는 값들의 특정 리스트로 한정될 수 있다. 또한, 그룹의 각 필드(544)에 대해 디폴트 값들(546)이 특정될 수도 있다. 주석 필드 그룹들의 생성은, 거기에서의 공통 필드들의 재사용을 용이하게 하는 것에 의해 주석 구조 정의를 용이하게 할 수 있다. 예를 들어, 도 5e에 도시된 바와 같이, 주석 필드 그룹들(552) 뿐만 아니라 (예를 들어, 주석 필드 그룹들과 관련되지 않은) 추가적 인 개별 주석 필드들을 추가하는 것에 의해, 주석 구조들이 생성될 수도 있다.
일부 실시예들의 경우, 주석 구조들은 사용자에 의해 입력되거나 사용자에게 디스플레이되는 주석 데이터를 추가적으로 한정하기 위한 정보를 포함할 수도 있다. 예를 들어, 도 5f에 도시된 바와 같이, 필터들의 GUI 패널(560)은, 사용자로 하여금 하나 이상의 사용자들 또는 역할들(564)이 대응되는 필드들 또는 주석 필드 그룹들(562)의 리스트에 대해 갖게 되는, 판독/기입 권한, 판독 전용 권한, 관리 권한(예를 들어, 판독/기입/생성/삭제)과 같은, 권한을 특정하게 할 수 있다. 필터들은, 사용자 또는 그룹에 기초해 필드들로의 액세스를 한정하기 위해 필드 레벨 액세스 제어를 적용하는데 사용될 수 있다. 예를 들어, 일부 사용자들은 구조의 일부 필드들에 대해 판독-전용 액세스만을 가질 수 있는 한편(예를 들어, 그러한 사용자들은 그 필드들의 주석 데이터를 생성 또는 편집할 수 없다), 다른 필드들은 일부 사용자들로부터 은닉될 수 있다(예를 들어, 일부 주석 필드들은 관리자들에게만 보여질 수 있다). 도시된 바와 같이, 특정 필터를 사용하는 구조들이 필터링된 구조 창(568)에 열거될 수 있다.
단계 412에서는, 구조들이 주석 가능한 포인트-역할 세트들과 관련된다. 도 5g에 도시된 바와 같이, 범위들의 GUI 패널(570)은, 사용자들로 하여금 (범위명(572)과 관련된) 주석 가능한 데이터 포인트들(574)의 세트 및 하나 이상의 열거된 역할들(576)을 하나 이상의 열거된 주석 구조들(578)과 관련지을 수 있게 한다. 이러한 관련의 영향을 설명하기 위해, 특정 역할을 수행 중인 사용자가 특정 데이터 포인트에 대한 주석을 생성하고자 할 때, 사용자에게는, 사용자로 하여금 관련 된 주석 구조에 포함되어 있는 주석 필드들에 대응되는 주석 정보를 입력할 수 있게 하는 주석 형태가 제시될 수 있다. 예를 들어, 도 5g에 도시된 바와 같이, 흑색종 연구를 수행하는 프로세스에 참여하는 동안, 데이터베이스(Table X)의 셀 또는 컬럼에 대한 주석을 생성 중인 생물학자(예를 들어, 생물학자의 역할을 수행 중인 사용자)에게는 주석 구조(578;mel_rel_biologist)에 포함되어 있는 주석 필드들에 대한 데이터를 입력하기 위한 형태가 제시될 수 있다. 하나 이상의 주석 구조가 생물학자의 선택된 데이터 범위 및 역할과 관련되어 있다면, 사용자에게는, 사용자가 주석하고자 시도 중인 것에 가장 적절한 주석 구조들의 리스트가 제시되었을 수도 있다.
사용자에게 제시된 주석 형태들의 특정 포맷(예를 들어, 룩 앤드 필(look and feel))은 일반적으로, 선택된 주석 포맷에 기초해 주석 형태(예를 들어, 주석 GUI)를 생성하도록 정의되어 있는 선택된 변환에 의해 판정될 수 있다. 다시 말해, 변환은, 사용자로 하여금 주석 구조에 포함되어 있는 주석 필드들을 위한 정보 뿐만 아니라, 컬러, 폰트 등과 같은, 주석 구조의 외관을 제어하는 추가 정보를 입력할 수 있게 하는 주석 형태를 생성하기에 충분한 정보를 포함할 수 있다. 일부 실시예들에서, 이러한 변환들은 XSL(Extensible Stylesheet Language) 파일들 또는 XSLT(XSL transforms)로서 구현될 수 있다. 도 5h에 도시된 바와 같이, 일부 실시예들의 경우, 형태들의 GUI 패널(580)은, 사용자로 하여금 (이용 가능한 스타일 시트들(582)의 리스트로부터의) 하나 이상의 스타일 시트들(586)을 주석 구조(584)와 관련지을 수 있게 할 수 있다.
단계 414에서 판정될 때, 더 많은 주석 구조들이 정의되어야 한다면, 연산들(406-412)이 반복될 수 있고, 그렇지 않다면, 연산들(400)은 단계 416에서 퇴거된다. 하나 이상의 주석 구조가 특정한 역할-포인트 조합과 관련될 수 있다는 것에 주의해야 한다. 또한, 특정한 주석 구조가 하나 이상의 역할-포인트 조합과 관련될 수도 있다. 또한, 다양한 데이터 구조들이 주석 구조들을 주석 가능한 포인트-역할 세트들과 관련짓는데 이용될 수도 있다. 예를 들어, 데이터 소스 정의 파일(146)은, 소정 역할을 수행 중인 사용자가 특정한 데이터 오브젝트(포인트)에 대한 주석을 생성하고자 시도할 때 사용되어야 하는 특정한 주석 구조(149)를 (예를 들어, 구조 ID를 통해) 지시하는 엔트리들로 채워질 수 있다.
주석들 생성하기
도 6a는 주석들을 생성하기 위한 예시적 연산들(500)을 도시한다. 나타내지는 않았지만, 사용자의 ID 및/또는 역할이 공지되어 있다고 가정될 수 있다. 예를 들어, 사용자에게 주석 시스템에 로그인할 것이 요구되었을 수도 있고 (예를 들어, 사용자의 역할, 보안 레벨, 관련된 사용자 그룹 등을 포함하는) 한 세트의 사용자 자격 증명들(user credentials)이 이러한 사용자 자격 증명들을 포함하는 보안 데이터베이스(159)로부터 검색되었을 수도 있다.
이러한 로그온 절차 동안, 사용자가 수행할 수 있는 이용 가능한 역할들을 판정하기 위해, 예를 들어, API call QueryRoles이 형성될 수 있다. 단 하나의 역할만이 이용 가능하다면, 시스템은, 예를 들어, SetRole API call을 통해, 그에 따라 사용자의 역할을 자동적으로 설정할 수 있다. 일부 실시예들의 경우, 이용 가 능한 역할이 하나 이상이라면(예를 들어, 사용자가, 관리자 및 연구자와 같은, 하나 이상의 관련 역할을 가질 수 있다면), 사용자에게는, 사용자가 수행할 수 있는 유효한 역할들의 리스트가 제시될 수 있다. 그 다음, 세션에 대한 사용자의 역할을 사용자에 의해 선택된 역할로 설정하기 위해 SetRole API call이 형성될 수 있다. 후술되는 바와 같이, 다음으로는, 사용자에 의해 선택된 역할이 주석 구조 및, 그에 따라, 주석들을 생성하기 위해 사용자에게 제시되는 주석 형태들을 판정할 수 있다.
연산들(500)은, 요청 엔티티(예를 들어, 개별 사용자 또는 애플리케이션)로부터 특정한 데이터 오브젝트에 대한 주석을 생성하기 위한 요청을 수신하는 것에 의해, 단계 502에서 시작한다. 단계 504에서는 특정한 데이터 오브젝트의 유형/범위, 데이터 오브젝트의 내용, 요청이 수신되는 애플리케이션, 및 사용자의 역할(또는 다른 자격 증명) 중 하나 이상에 기초해, 주석을 생성하는데 사용될 필드들을 정의하는 주석 구조(149)가 선택된다. 예를 들어, (예를 들어, 데이터 소스 유형, 서브 유형 및 선택된 포인트들에 의해) 선택된 데이터 오브젝트가 주어진 상태에서, 이용 가능한 구조들의 리스트를 리턴하는 QueryStructureNames API call에 의해 이용 가능한 구조들의 리스트가 획득될 수 있다.
일부 실시예들의 경우, 도 7a에 도시된 바와 같이, 이용 가능한 구조들의 리스트를 리턴하는 단계는 주석될 포인트에서의 매칭을 위한 데이터 소스 정의 파일(146) 및/또는 하나 이상의 사용자 자격 증명들(예를 들어, 역할, 보안 레벨, 사용자 ID, 멤버 그룹 등)을 검색하는 단계를 수반할 수 있고, 그로부터, 사용될 구조 를 지시하는, 대응되는 주석 구조 ID가 획득될 수 있다. 예를 들어, 데이터 소스 정의 파일은 주석 가능한 다양한 포인트-역할 쌍들에 대한 주석 구조 ID를 열거하는 XML 문서로서 구현될 수 있다.
사용자 자격 증명들 및 데이터 오브젝트 유형 이외에 또는 그 대신에, (주석을 생성하기 위한) 요청이 수신되는 애플리케이션 또는 주석된 데이터 오브젝트의 내용과 같은, 다양한 여타 파라미터들의 임의 조합에 의해, 주석 구조들이 판정될 수 있다. 예를 들어, 특정 토픽에 관련된 데이터 엔트리를 자동적으로 검출하기 위한 노력으로, 하나 이상의 소정 텍스트 스트링들과의 텍스트 매칭을 위해, 주석된 데이터 오브젝트의 내용이 검색될 수도 있다. 데이터 내용에서 텍스트 스트링(들)을 검출할 때, 그러한 토픽에 특징적인 주석 구조가 선택될 수 있다. 데이터 내용의 포맷 또한, 거기에 저장되어 있는 데이터 유형을 지시할 수 있다. 간단한 일례로서, 사회 보장 번호 및 전화 번호들은 통상적으로 각각 별개의 포맷(예를 들어, 각각, ###-##-#### 및 (###)-###-####)으로 저장된다.
또한, 텍스트 스트링을 검색하기 위한 다른 방법으로서, 특정 값 또는 주석된 데이터 오브젝트에 저장되어 있는 값에 대한 조건을 위해, 주석 가능한 데이터 오브젝트의 내용이 검색될 수도 있다. 일례로서, 사용자는 주석 구조를 소정 필드에 대한 특정 값 또는 값들의 범위와 관련지을 수 있다. 다른 일례로서, 데이터 오브젝트 값이 소정 임계치를 초과하거나, 소정 값과 매칭되거나, 소정 범위내에 또는 소정 범위외에 해당하면, 특정한 주석 구조가 자동적으로 선택될 수도 있다. 일부 실시예들의 경우, 자동화된 프로세스는, 예를 들어, 사람들에게 경고 값들(지 나치게 높거나 낮은 값들)을 경보하고자 하는 노력으로, 데이터를 스캔할 수 있고 (예를 들어, 값들의 정의된 임계 범위내에서) 소정 조건들을 충족시키는 값들에 대한 주석들을 자동적으로 생성할 수 있다.
주석 구조들이 선택되는 방법과 무관하게, 단계 506에서는 선택된 주석 구조에 기초해, 예를 들어, 사용자로 하여금 선택된 주석 구조의 필드들에 데이터를 입력할 수 있게 하는 GUI 스크린이 생성된다. GUI 스크린은, 예를 들어, 특정 주석 구조와 관련된 이용 가능한 변환들의 어레이를 리턴하는 QueryStructureTransforms API call에 의해 획득되는 XSL 변환들의 세트 중 하나에 기초해, 주석 구조를 변환하는 것에 의해 생성될 수 있다.
단계 508에서는 생성된 GUI 스크린에 의해 주석 데이터가 수신된다. 주석 데이터는 주석 레코드(150)에 저장될 수 있다. 각각의 주석 레코드는, 주석 저자 및 주석이 형성된 때를 지시하는 날짜/시간 소인과 같은, 모든 주석들에 공통되는 "헤더" 정보를 포함할 수 있다. (예를 들어, 저자, 생성 날짜 등에 의해) 특정 주석들이 검색될 수 있게 하며, 주석 내용으로써, 이러한 헤더 정보 및 주석 데이터가 검색될 수 있다. 주석 레코드는, 주석 데이터가 전달되는 CreateAnnotation API call에 의해 생성될 수 있다.
또한, 각각의 주석 레코드(150)는, 각각의 주석 유형에 대해 특징적인, 특수화된 주석 세부 사항으로의 링크들, 주석을 고유하게 식별하는 GUID(global unique identifier) 뿐만 아니라 주석된 오브젝트(및 선택적으로는 그것내에서 포인트)를 배치하는데 사용되는 인덱스를 포함할 수도 있다. 따라서, 단계 510에서는, 주석 된 데이터 오브젝트에 대한 인덱스 및 주석에 대한 GUID가 생성된다. 단계 512에서는, 주석 데이터, 인덱스, 및 GUID를 포함하는 주석 레코드(150)가 생성된다. 단계 514에서는, 주석 레코드가, 주석된 데이터와는 별도로, 주석 저장 장치(130)에 저장된다.
일부 실시예들의 경우, 주석된 데이터의 함수로서 계산되는 변화 검출 값(예를 들어, 체크섬, 해시 값, 또는 여타 유사한 파라미터) 또한 주석 데이터와 함께 저장될 수 있다. 이러한 변화 검출 값으로 인해, 주석된 데이터에 대한 변화들이 검출될 수 있다. 예를 들어, 주석이 검색될 때(또는 소정 유형의 스케줄에 따라), 현재의 주석된 데이터에 대한 변화 검출 값이 계산되어, 저장되어 있는 변화 검출 값과 비교될 수 있다. 주석된 데이터에서의 변화는 주석의 유효성에 영향을 미치기 때문에, 주석된 데이터에서 변화가 검출되면, 사용자에게 통지될 수 있다. 변화 검출 값들을 사용하는 개념들은, 그 전부가 여기에 참조로써 포함되어 있는, 2002년 12월 4일에 "Annotation Validity Using Partial Checksums"라는 명칭으로 출원된, 양수인이 동일한, 계류 중인 특허출원 제 10/310,192호에 상세하게 설명되어 있다.
주석들 검색하기
도 6b는 주석들을 검색하기 위한 예시적 연산들(600)을 도시한다. 연산들(600)은 단계 602에서, 주석된 특정 데이터 오브젝트에 대한 주석들을 뷰잉하기 위한 요청을 수신하는 것에 의해 시작한다. 단계 604에서는, 특정된 데이터 오브젝트에 대한 주석(또는 주석들)이 검색된다. 예를 들어, 주석은, 도 3b 및 도 3c를 참조하여 상술된 바와 같이, 데이터 오브젝트의 ID 파라미터들을 인덱스로 변환하고 인덱스를 사용해 주석 저장 장치를 검색하는 것에 의해 검색될 수 있다. 일부 실시예들의 경우, 이러한 검색은, 특정된 검색 기준들에 매칭되는 주석들에 대해 주석 GUID들(global user IDs)이 리턴되는 QueryAnnotationlDs API call에 의해 실현될 수 있다. 그 다음, 대응되는 주석들은, GUID 또는 GUID들의 어레이가 주어진 상태에서, 주석 또는 주석들을 리턴하는 GetAnnotation(s) API call에 의해 검색될 수 있다.
단계 606에서는 검색된 주석을 디스플레이하기 위한 준비로서, 특정된 데이터 오브젝트에 대응되는 하나 이상의 주석 구조들(149)이 검색된다. 주석들의 생성을 참조하여 상술된 바와 같이, 주석 구조는 특정된 데이터 오브젝트 뿐만 아니라, 사용자의 역할과 같은, 다른 파라미터들에 기초해서 선택될 수도 있다. 예를 들어, 소정 역할을 수행 중인(또는 소정 사용자 그룹 등에 속하는 소정 보안 레벨을 가진) 소정 사용자들만이 민감한 데이터를 포함하는 소정 필드들을 뷰잉하도록 허가될 수 있다. 따라서, 선택된 주석 구조(149)는 사용자가 뷰잉하도록 허가된 필드들만을 포함할 수도 있다.
단계 608에서는 주석 데이터가 선택적으로 필터링되고, 주석 구조의 필드들이 필터링된 주석 데이터로 채워진다. 예를 들어, (사용자의 역할에 기초한) 사용자가 뷰잉하도록 허가되지 않은 필드들은 디스플레이되지 않을 것이다(예를 들어, 필터링 제거될 것이다).
단계 610에서는, 채워진 구조에 기초해, 주석된 데이터를 디스플레이하는 GUI 스크린이 생성된다. 예를 들어, 도 7b에 도시된 바와 같이, 일부 실시예들의 경우, 선택된 주석 구조(149) 및, 통상적으로, 주석 저장 장치(130)와 같은, 보호된 리소스에 대한 특권들의 공통 세트를 가진 userID의 리스트 및/또는 groupID의 리스트를 포함하는 액세스 제어 리스트(ACL;159)에 기초해 (예를 들어, 애플리케이션(120), 그것의 플러그-인 컴포넌트(122), 또는 주석 브라우저(128)내에서) 필터링된 주석 구조(749)가 생성될 수 있다. 예를 들어, 필터링된 주석 구조(749)는 선택된 주석 구조(149)에 포함되어 있는 필드들의 한정된 서브세트를 가질 수 있다. 그 다음, 필터링된 주석 구조(749)는 (예를 들어, 변환(750)을 사용해) 변환되어, 사용자에게 디스플레이되는 최종적인 GUI를 생성할 수 있다. 상술된 바와 같이, 변환(750)은 QueryStructureTransforms API에 의해 획득되는 이용 가능한 변환들의 리스트로부터 선택될 수 있다.
일부 실시예들의 경우, 주석 구조들 및 ACL들은 XML 문서들로서 구현될 수 있다. 변환들(750)은 XML 문서들을 다른 XML 문서들로 변환하는데 흔히 사용되는 XSLT(Extensible Stylesheet Language Transformations)로서 구현될 수 있다. 변환(750)은, 적당한 데이터 유형들, 허용 가능한 값들을 점검하는 것 뿐만 아니라, 폰트, 컬러 등과 같은, 스타일 사양들을 구현하는 것과 같이, 구조에 대해 다양한 포매팅 및 다른 펑크션들을 수행할 수 있다.
각각의 애플리케이션(120)은 하나 이상의 관련 변환들(750)을 가질 수 있거나, 하나 이상의 변환들의 공통 세트를 공유할 수 있다. 도시된 바와 같이, 일부 실시예들의 경우, 예를 들어, 주석 브라우저(126)로부터의 주석들을 뷰잉할 때, 최 종 결과는 HTML 포맷일 수 있다. 그러나, 일반적으로, 변환(750)은, 애플리케이션(120)에 따른 인터페이스를 제공하기 위한 시도로서, 주석이 뷰잉될 애플리케이션(120)에 기초해 선택될 수 있다. 일례로서, 워드 및 엑셀과 같은, Microsoft Office 애플리케이션들은, 그로부터 제공되는 주석 GUI들에 공통적인 룩 앤드 필을 제공하는, 변환들(750)의 공통 세트를 공유할 수 있다.
예시적인 애플리케이션들
도 8 내지 도 10은 다양한 애플리케이션들에 의해 조작되는 상이한 유형 데이터 오브젝트들에 대한 주석들을 생성 및/또는 뷰잉하는데 적용되는 본 발명의 일부 개념들을 도시하는 예시적 GUI 스크린들이다. 물론, 도 8 내지 도 10에 나타낸 예시적 GUI 스크린들의 세부 사항들은 예시적인 목적을 위한 것이며, 유사한 기능을 제공하는 광범위한 여타 유형 GUI 스크린들이 이용될 수도 있다.
도 8a는 특허 출원서를 편집하는데 사용되는 텍스트 편집기의 예시적 스크린(800)을 도시한다. 나타낸 바와 같이, 스크린(800)은, 예를 들어, 텍스트 편집기에 대한 주석 플러그-인의 일부로서 제공되는, 사용자로 하여금 주석들을 생성 및 뷰잉할 수 있게 하는, Create 및 View Annotations 버튼들(802 및 804)을 포함할 수 있다.
많은 경우들에서, 특허 출원서를 생성하기 위해, 발명자들, 입안 법률가, 및 관리 법률가(예를 들어, 입안 법률가는 고용된 "외부 상담자"일 수 있는 한편, 관리 법률가는, 발명자들이 근무하며 특허출원이 양수될 엔티티를 위한 "사내 상담자"일 수 있다)를 포함하는 수 개의 상이한 엔티티들이 협력할 수 있다. 발명자 들, 입안 법률가, 및 관리 법률가 모두는 특허 출원을 위한 협력에서 상이한 역할들을 가질 수 있다. 예를 들어, 입안 법률가는 실제로 출원서를 기재하는 것을 담당하는 한편, 발명자들은 통상적으로, 설명이 기술적으로 정확하고, 적절하게 설명하고 있으며, 그들의 발명을 가능하게 한다는 것을 보장하기 위해 출원서를 검토하는 것을 담당한다. 한편, 관리 법률가 또한 출원서를 검토하지만, 예를 들어, 대개는 특허 포트폴리오의 다른 특허들 또는 출원들의 관점에서, 특허 출원서가 경쟁자들에 대해 가능한 최선(예를 들어, 최광)의 보호를 제공한다는 것을 보장하기 위해, 약간은 상이한 초점으로, 출원서를 검토할 수 있다. 이와 같이, 상이한 정보를 포착하기 위해 상이한 당사자들에 의해 형성된 주석들은 상이할 수 있다.
따라서, 상술된 바와 같이, 상이한 정보의 포착을 허용하기 위해, (상이한 주석 구조들에 기초한) 상이한 유형 주석 형태들이 제공될 수 있다. 상술된 바와 같이, 일부 경우들에 대해, 주석 구조는, 주석될 특정된 데이터 오브젝트, 사용자의 역할(또는 다른 자격 증명), 주석된 데이터의 내용/포맷 등에 기초해, 자동적으로 선택될 수 있다. 예를 들어, 타이틀의 스트링 "patent" 또는 문서의 다른 부분에 대한 텍스트 검색에 기초해, 한 세트의 특허-특정 형태들이 제시될 수 있다. 소정 세트의 파라미터들(예를 들어, 주석된 데이터 포인트 및 사용자의 역할)에 대응되는 하나 이상의 주석 구조가 존재한다면, 사용자에게는 선택을 위한 구조들/형태들의 선택이 제시될 수 있다. 다른 방법으로, 일부 구현들은 자동적인 역할 점검을 수행하지 않을 수도 있고 사용자에게는 이용 가능한 모든 주석 형태들의 선택이 제시될 수 있다.
어떤 경우에서든, 주석을 생성하기 위한 요청을 제출하는 것에 응답하여, 사용자에게는, 도 8a에 나타낸 GUI(810A)와 같은, GUI에서의 선택을 위한 주석 형태들의 리스트가 제시될 수 있다. 나타낸 바와 같이, 사용자는 풀 다운 메뉴(8121)로부터 원하는 주석 형태를 선택할 수 있다. 예시적으로, 4개의 주석 형태들, 디폴트 형태, 발명자 피드백 형태, 입안 법률가 형태, 및 관리 법률가 형태가 제공된다(다른 방법으로는, 에를 들어, 사용자의 역할에 기초해, 이러한 형태들 중 하나가 자동적으로 선택될 수 있다).
도 8b는, 예를 들어, 풀 다운 메뉴(812)로부터 디폴트 형태를 선택하는 것에 응답하여, 사용자에게 제시될 수 있는 예시적인 디폴트 주석 형태(810B)를 도시한다. 디폴트 주석 형태(810B)는, 예를 들어, 한 세트의 디폴트 주석 필드들을 특정하는 디폴트 주석 구조를 변환하는 것에 의해 생성될 수 있다. 도시된 바와 같이, 디폴트 주석 형태(810B)는 일반적인 품질 점검 박스들(812B) 및 일반적인 코멘트 텍스트 박스(814B)를 포함할 수 있다.
도 8c는, 예를 들어, 풀 다운 메뉴(812)를 통해 사용자에 의해 또는 사용자의 역할에 기초해 자동적으로 선택될 수 있는 예시적인 발명자 피드백 주석 형태(81OC)를 도시한다. 도시된 바와 같이, 발명자 피드백 주석 형태(810C)는 특허출원 절차에 관한 좀더 구체적인 점검 박스들(812C), 발명자 코멘트 텍스트 박스(814C)를 가질 수 있고, 특허 법률가 및 발명자를 이름으로써 열거할 수 있다. (나타내지 않은) 선택적인 다른 필드들로는 문서 번호, 발명 명칭, 및 검색에 유용할 수 있는 다른 필드들을 들 수 있다.
도 9a는 의료 연구 데이터(예를 들어, 어쩌면 조회의 결과들)를 디스플레이하는, 브라우저 애플리케이션의 예시적 스크린(900)을 도시한다. 도시된 바와 같이, 주석 아이콘(150)은 (이 예에서는, 연구 프로젝트의 유형, 결장암을 특정하는) 주석된 데이터 항목들을 지시하도록 디스플레이될 수 있다. 예를 들어, 상술된 바와 같이, 조회 결과들로서 리턴되는 데이터 오브젝트들에 대한 주석들이 존재하는지를 판정하기 위해, 주석 저장 장치(130;예를 들어, 인덱스 테이블들(134))가 검색될 수 있다. 도 9b에 도시된 바와 같이, 다수의 주석들을 가진 데이터 오브젝트들 옆에는 다수의 주석 아이콘들(1501 및 1502)이 디스플레이될 수 있다. 다른 방법으로는, 다수의 주석들을 표현하는 단일 아이콘이 디스플레이될 수 있다.
도 9a로 돌아가면, 결장암 연구 프로젝트를 위한 주석 아이콘(150)을 선택(예를 들어, 클릭)하는 것에 응답하여, GUI(910A)는 대응되는 주석을 갖도록 디스플레이될 수 있다. GUI(910A)는 프로젝트의 상태를 주석하도록 특화되어 있는 상당히 포괄적인 주석 형태를 도시한다. 그러나, 도 9b에 도시된 바와 같이, 동일한 유형 데이터 오브젝트(예를 들어, 프로젝트 설명)에 대해, 예를 들어, 데이터가 수집되는 방법의 구체적인 세부 사항들에 특징이 있는 다른 유형 주석이 GUI(910B)에 디스플레이될 수도 있다. 예를 들어, GUI(910B)는 데이터를 수집하는데 사용된 특정 장비(예를 들어, 레이저 스캐너) 및 장비에 대한 소정 설정들을 특정하는 필드들을 포함할 수 있다.
데이터 및 주석들 검색하기
일부 애플리케이션들의 경우, 데이터 뿐만 아니라, 주석 브라우저(126)와 같은, 단일 애플리케이션으로부터 그 데이터에 대해 생성된 주석들을 검색할 수 있는 것이 바람직할 수 있다. 일례로서, 의료 연구자는 그의 관리자에 의해 기록된 주석들 및/또는 소정 시간 내에(예를 들어, 지난 달 내에) 생성된 주석들을 검토하는 것 뿐만 아니라 주석된 데이터를 검토하는 것에 관심을 가질 수 있다. 예를 들어, 관리자는 소정 데이터의 유효성을 의심하는 주석들을 생성했을 수 있고, 연구자는 의심스러운 데이터를 확인하고 그리고/또는 정정하는 것을 담당할 수 있다.
상술된 바와 같이, 일부 실시예들의 경우, 주석 브라우저(126)는 구조화된 데이터 내용(예를 들어, 쿼리 인터페이스(119)에 의한 쿼리들을 통해 직접적으로 액세스될 수 있는 애플리케이션 소스 데이터)을 뷰잉하고 그것에 대한 주석들을 생성 및 뷰잉하기 위한 일반화된 웹-기반 사용자 인터페이스를 제공할 수 있다. 다시 말해, 주석 브라우저(126)는 데이터 및 데이터의 주석들 모두로의 검색 가능한 통합 액세스를 제공할 수 있다. 도 10a 내지 도 10c는 타깃 데이터, 타깃 데이터에 대해 형성된 주석들, 또는 양자일 수 있는 쿼리를 구축하기 위해 주석 브라우저(126)에 의해 제시될 수 있는 예시적 GUI 스크린들(1000 및 1040)을 도시한다.
예를 들어, 사용자에게는, 사용자로 하여금 데이터 또는 주석들의 검색 가능한 필드들에 기초한 검색 조건들(즉, 쿼리 술어들)을 추가하는 것에 의해 데이터 및/또는 주석들에 대한 쿼리를 구축할 수 있게 하는, 도 10a의 메인 쿼리 구축 GUI 스크린이 제시될 수 있다. 데이터를 목표로 하는 제 1 검색 조건(1042;프로젝트명에 기초한 검색 조건) 및 주석들을 목표로 하는 제 2 조건(1044)을 가진 예시적 쿼 리가 도시되어 있다. 나타낸 바와 같이, 사용자는 Add Condition 버튼을 통해 검색 조건들을 추가할 수 있다.
Add Condition 버튼을 선택하는 것에 응답하여, 사용자에게는, 사용자에게 데이터에 관한 검색 가능한 필드 카테고리들(1010)의 세트 및 데이터의 주석들에 관한 검색 가능한 필드 카테고리들(1020)의 세트를 제시하는, 도 10b의 GUI 스크린(1000)이 제시될 수 있다. 카테고리를 선택하는 것에 응답하여, 사용자에게는 선택된 카테고리와 관련된 한 세트의 필드들이 제시될 수 있다. 예를 들어, 도 10c에 도시된 바와 같이, AnnotationData 카테고리를 선택하는 것에 응답하여, 사용자에게는 주석 데이터와 관련된 검색 가능한 주석 필드들의 선택 리스트(1030)가 제시될 수 있다.
선택 리스트(1030)로부터 필드를 선택한 후, 사용자에게는 선택된 필드에 기초해 검색 조건(즉, 쿼리 술어)을 특정하기 위한 (나타내지 않은) 또 하나의 GUI가 제시될 수 있다. 검색 조건을 특정하기 위해 제시되는 GUI는 선택된 필드 및 선택된 필드의 데이터 유형에 의존할 수 있다. 예를 들어, 텍스트 필드가 선택되면, 사용자에게는, 예를 들어, 텍스트 스트링에 기초해 조건을 특정하기 위한 GUI가 제시될 수 있다. 한편, 데이터 필드가 선택되면, 사용자에게는 값 또는 값들의 범위를 특정하기 위한 GUI가 제시될 수 있다.
어떤 경우에서든, 검색 조건을 특정한 후, 사용자는 도 10a의 메인 쿼리 구축 GUI 스크린(1040)으로 복귀할 수 있다. 그 다음, 사용자는 더 많은 검색 조건들을 추가하거나 쿼리를 실행시킬 수 있다. 도시된 쿼리를 실행시키는 것은, 구현 에 따라, 상이한 정보 유형들을 리턴할 수 있다. 예를 들어, 쿼리를 실행시키는 것은 데이터 조건(1042)을 충족시키는 데이터에 대한 (주석 조건(1044)을 충족시키는) 주석들의 리스트, 주석 조건(1044)을 충족시키는 주석들에 의해 주석된 (데이터 조건(1042)을 충족시키는) 데이터, 또는 양자를 리턴할 수 있다.
데이터가 표 형태이면, 쿼리를 실행시키는 것은, 사용자로 하여금 대응되는 주석들을 선택적으로 뷰잉할 수 있게 하는, 주석 아이콘들을 갖춘, 도 9a 및 도 9b에 나타낸 것과 유사한 포맷의, 데이터 조건(1042)을 충족시키는 데이터를 리턴할 수 있다. 다른 방법으로, (데이터 조건들(1042)을 충족시키는 데이터를 설명하는) 주석 조건(1044)을 충족시키는 주석들은 주석된 데이터로의 링크로써 열거될 수 있다(주석이 하나 이상의 데이터 소스에 포함되어 있는 데이터를 설명한다면, 각 데이터 소스로의 링크가 제공될 수 있다). 사용자는, 예를 들어, 주석된 데이터의 지시(예를 들어, 강조된 텍스트, 주석 아이콘, 또는 다른 유형 어떤 지시)와 함께, 주석된 데이터 소스와 관련된 애플리케이션(120)을 자동적으로 호출할 수 있는 링크를 선택하는 것에 의해 주석된 데이터를 선택적으로 뷰잉할 수 있다.
주석 브라우저(126)는, 상술된 바와 같이, 데이터 및 데이터의 주석들 모두로의 검색 가능한 통합 액세스를 제공할 수 있지만, 일부 실시예들의 경우, 유사한 기능이 (도 2 및 도 3에 나타낸) 주석 API(142) 또는 이러한 다른 인터페이스를 통해 제공될 수 있다. 예를 들어, 요청 엔티티(예를 들어, 애플리케이션(120))는 주석 API(142) 펑크션을 통해 주석 및/또는 데이터 검색 조건들을 주석 서버(140)로 전달할 수 있다. 그 다음, 주석 서버(140)는, 필요에 따라, 데이터 및 주석들에 대한 쿼리들을 구성하여, 검색 조건들을 충족시키는 주석들 및/또는 데이터를 리턴할 수 있다.
결론
범용 주석 시스템으로 인해, 상이한 다수 유형 애플리케이션들에 의해 조작되는 상이한 다수 유형 데이터 오브젝트들에 대해 생성된 주석들이 생성, 조직, 및 검색될 수 있다. 다양한 애플리케이션들은 주석 저장 장치로부터의 주석들에 액세스하기 위해 주석 서버와 통신할 수 있다. 주석 저장 장치는 주석된 데이터로부터 구별되어, 주석된 데이터를 변경할 필요없이, 데이터에 대한 주석들을 허용할 수 있다. 플러그-인 컴포넌트들은 주석 데이터를 조작하는데 사용되는 기존 애플리케이션들내에서 주석 서버로의 액세스를 제공할 수 있다. 따라서, 주석 서버를 재설계할 필요없이, 새로운 플러그-인 컴포넌트들의 추가를 통해, 새로운 애플리케이션들에 주석 기능이 추가될 수 있으므로, 개발 시간 및 관련 비용을 절감할 수 있다. 주석 브라우저와 같은, 공통 인터페이스는 주석들 및 주석된 데이터 모두를 개별적으로 또는 동시에 검색하기 위한 중앙 소스를 제공할 수 있다.
상기 설명이 본 발명의 실시예들에 관한 것이기는 하지만, 그것의 기본적인 범위를 벗어나지 않으면서, 본 발명의 추가적 실시예들이 고안될 수 있고, 그것의 범위는 다음의 청구항들에 의해 판정된다.

Claims (26)

  1. 기업의 주석 시스템을 디플로이하는 방법으로서,
    주석 가능한 데이터 오브젝트들을 식별하는 단계;
    하나 이상의 역할 및 하나 이상의 주석 가능한 데이터 오브젝트의 각 조합에 대해, 보존될 주석 메타데이터를 식별하는 단계; 및
    하나 이상의 역할 및 하나 이상의 주석 가능한 데이터 오브젝트의 각 조합에 대해, 상기 식별된 주석 메타데이터와 관련된 필드들을 포함하는 주석 구조들을 생성하는 단계
    를 포함하는 주석 시스템 디플로이 방법.
  2. 제1항에 있어서, 상기 주석 가능한 데이터 오브젝트들을 식별하는 단계는,
    데이터 소스들을 식별하는 단계; 및
    상기 데이터 소스들의 서브-유형들을 식별하는 단계
    를 포함하는 것인 주석 시스템 디플로이 방법.
  3. 제2항에 있어서, 하나 이상의 식별된 데이터 소스는 데이터베이스 테이블이고, 상기 데이터베이스 테이블의 하나 이상의 식별된 서브-유형은 특정 유형의 데이터베이스 테이블인 것인 주석 시스템 디플로이 방법.
  4. 제3항에 있어서, 하나 이상의 식별된 데이터 소스는 텍스트 문서이고, 상기 텍스트 문서의 하나 이상의 식별된 서브-유형은 특정 유형의 텍스트 문서인 것인 주석 시스템 디플로이 방법.
  5. 제1항에 있어서,
    상기 주석 시스템들을 상기 기업내의 다양한 사용자들에 의해 액세스될 수 있도록 설치하는 단계를 더 포함하고,
    상기 다양한 사용자들은 데이터 오브젝트들 및 상기 사용자들의 역할들과 관련된 주석 구조들에 기초해, 상기 데이터 오브젝트들에 대한 주석들을 생성할 수 있는 것인 주석 시스템 디플로이 방법.
  6. 제5항에 있어서, 상기 주석 시스템은 상기 다양한 사용자들에게, 데이터 오브젝트들에 대한 주석들을 생성하기 위한 그래픽 사용자 인터페이스 스크린들을 제시하고, 상기 그래픽 사용자 인터페이스 스크린들은 사용자로 하여금 상기 데이터 오브젝트 및 상기 사용자 역할과 관련된 주석 구조에 포함되어 있는 주석 필드들에 대한 정보를 입력할 수 있게 하는 것인 주석 시스템 디플로이 방법.
  7. 네트워크의 엔티티들 사이에서 정보를 교환하는 방법으로서,
    상기 네트워크에 주석 관리 시스템을 설치하는 단계;
    상기 네트워크의 복수개 애플리케이션들에 의해 조작되는 주석 가능한 복수 개 데이터 오브젝트들을 식별하는 단계; 및
    사용자로 하여금 하나 이상의 주석 필드들을 포함하는 주석 구조를 정의할 수 있게 하며 상기 주석 구조를 상기 주석 가능한 데이터 오브젝트들 중 하나와 관련지을 수 있게 하는 하나 이상의 구성 도구들의 세트를 제공하는 단계
    를 포함하는 네트워크 엔티티 간 정보 교환 방법.
  8. 제7항에 있어서, 상기 구성 도구들은 부가적으로, 사용자로 하여금 역할들을 정의할 수 있게 하며 주석 구조들을 역할들 및 주석 가능한 데이터 오브젝트들의 조합들과 관련지을 수 있게 하는 것인 네트워크 엔티티 간 정보 교환 방법.
  9. 제8항에 있어서, 상기 구성 도구들은 하나 이상의 역할들을 사용자와 관련짓기 위한 하나 이상의 그래픽 사용자 인터페이스 스크린들을 제공하는 것인 네트워크 엔티티 간 정보 교환 방법.
  10. 제8항에 있어서, 상기 구성 도구들은 하나 이상의 사용자들을 역할과 관련짓기 위한 하나 이상의 그래픽 사용자 인터페이스 스크린들을 제공하는 것인 네트워크 엔티티 간 정보 교환 방법.
  11. 제7항에 있어서, 상기 구성 도구들은 사용자로 하여금 주석 구조에 포함되어 있는 주석 필드들이 사용자 역할들에 기초해 조작될 수 있는 방법들을 특정하는 하 나 이상의 필터들을 특정할 수 있게 하는 것인 네트워크 엔티티 간 정보 교환 방법.
  12. 제7항에 있어서, 상기 구성 도구들은 사용자로 하여금 하나 이상의 주석 필드 그룹들을 특정할 수 있게 하고, 주석 필드 그룹들이 주석 구조들에 추가될 수 있게 하는 것인 네트워크 엔티티 간 정보 교환 방법.
  13. 제7항에 있어서, 상기 구성 도구들은 사용자로 하여금 상기 주석 구조를 그래픽 사용자 인터페이스로 변환하는데 사용하기 위한 하나 이상의 변환들을 주석 구조와 관련지을 수 있게 하는 것인 네트워크 엔티티 간 정보 교환 방법.
  14. 제7항에 있어서, 상기 구성 도구들은 사용자로 하여금 주석 구조를 하나 이상의 데이터 소스와 관련된 주석 가능한 데이터 오브젝트들과 관련지을 수 있게 하는 것인 네트워크 엔티티 간 정보 교환 방법.
  15. 제7항에 있어서, 상기 구성 도구들은 데이터 오브젝트들의 주석 가능한 서브-오브젝트들이 주석 구조들과 관련될 수 있게 하는 것인 네트워크 엔티티 간 정보 교환 방법.
  16. 프로세서에 의해 실행될 경우,
    하나 이상의 주석 필드들을 포함하는 주석 구조들을 정의하기 위한 하나 이상의 그래픽 사용자 인터페이스 스크린을 제공하는 연산; 및
    주석 구조들을 하나 이상의 주석 가능한 데이터 오브젝트와 관련짓기 위한 하나 이상의 그래픽 사용자 인터페이스 스크린을 제공하는 연산
    을 수행하는, 네트워크의 하나 이상의 애플리케이션들에 의해 조작되는 데이터 오브젝트들에 대해 생성된 주석들을 관리하는 주석 시스템을 구성하기 위한 실행 가능 컴포넌트를 포함하는 컴퓨터 판독가능 매체.
  17. 제16항에 있어서, 하나 이상의 역할을 하나 이상의 사용자와 관련짓기 위한 하나 이상의 그래픽 사용자 인터페이스 스크린을 제공하는 연산을 더 포함하는 컴퓨터 판독가능 매체.
  18. 제16항에 있어서, 주석 구조에 기초한 그래픽 사용자 인터페이스를 생성하는데 사용하기 위한 하나 이상의 변환을 상기 주석 구조와 관련짓기 위한 하나 이상의 그래픽 사용자 인터페이스 스크린을 제공하는 연산을 더 포함하는 컴퓨터 판독가능 매체.
  19. 제16항에 있어서, 상이한 역할들을 수행 중인 사용자들이 주석 구조에 포함되어 있는 필드들에 액세스할 수 있는 방법을 특정하기 위한 하나 이상의 그래픽 사용자 인터페이스 스크린을 제공하는 연산을 더 포함하는 컴퓨터 판독가능 매체.
  20. 복수개의 상이한 유형 애플리케이션들에 의해 조작되는 하나 이상의 상이한 유형 데이터 소스들에 대한 주석들을 관리하는 시스템으로서,
    주석들을 상기 주석들과 관련된 상기 데이터 소스들과 별도로 저장하기 위한 주석 데이터베이스;
    상기 주석들과 관련된, 상기 관련된 주석들에 의해 설명되는 데이터 소스들의 부분들을 정의하는 주석 가능한 데이터 오브젝트 포인트들의 세트;
    클라이언트 컴퓨터에서 실행 중인 하나 이상의 애플리케이션들에 의해 발행되는, 상기 주석 가능한 데이터 오브젝트 포인트들 중 하나 이상에 대한 주석들을 액세스하기 위한 요청들을 수신하고, 상기 주석 가능한 데이터 오브젝트 포인트들 중 하나 이상과 관련된 주석 구조에 기초해, 상기 하나 이상의 주석 가능한 데이터 오브젝트 포인트들에 대한 주석들을 생성 또는 뷰잉하기 위한 그래픽 사용자 인터페이스 스크린을 생성하도록 구성되어 있는 주석 서버; 및
    사용자로 하여금 주석 구조들을 정의하고 주석 구조들을 상기 주석 가능한 데이터 오브젝트 포인트들 중 하나 이상과 관련지을 수 있게 하는 하나 이상의 구성 도구들
    을 포함하는 데이터 소스 주석 관리 시스템.
  21. 제20항에 있어서, 상기 구성 도구들은 사용자들로 하여금 단일 주석 구조를 하나 이상의 데이터 소스와 관련된 주석 가능한 데이터 오브젝트 포인트들과 관련 지을 수 있게 하는 것인 데이터 소스 주석 관리 시스템.
  22. 제20항에 있어서, 상기 구성 도구들은 사용자들로 하여금 하나 이상의 역할들을 하나 이상의 사용자들과 관련지을 수 있게 하는 것인 데이터 소스 주석 관리 시스템.
  23. 제22항에 있어서, 상기 구성 도구들은 사용자들로 하여금 하나 이상의 주석 구조들을,
    주석 가능한 데이터 오브젝트 포인트들 및 역할들의 하나 이상의 조합들과, 주석 가능한 데이터 오브젝트 포인트들 및 사용자들의 하나 이상의 조합들 중 하나 이상의 조합과 관련지을 수 있게 하는 것인 데이터 소스 주석 관리 시스템.
  24. 제20항에 있어서, 상기 구성 도구들은 사용자들로 하여금, 관련된 주석 구조에 기초한 그래픽 사용자 인터페이스를 생성하는데 각각 사용하기 위한 하나 이상의 변환들을 하나 이상의 주석 구조들과 관련지을 수 있게 하는 것인 데이터 소스 주석 관리 시스템.
  25. 제20항에 있어서, 복수개 구성 파일들을 더 포함하고, 상기 구성 도구들은 사용자로 하여금 상기 구성 파일들을 하나 이상을 네비게이션하고 변경할 수 있게 하는 것인 데이터 소스 주석 관리 시스템.
  26. 제25항에 있어서, 상기 구성 파일들은 XML(extensible markup language) 파일들인 것인 데이터 소스 주석 관리 시스템.
KR1020057017869A 2003-06-20 2004-05-28 범용 주석의 구성 및 디플로이 방법 및 시스템 KR20060030014A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/600,317 US7620648B2 (en) 2003-06-20 2003-06-20 Universal annotation configuration and deployment
US10/600,317 2003-06-20

Publications (1)

Publication Number Publication Date
KR20060030014A true KR20060030014A (ko) 2006-04-07

Family

ID=33517721

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057017869A KR20060030014A (ko) 2003-06-20 2004-05-28 범용 주석의 구성 및 디플로이 방법 및 시스템

Country Status (3)

Country Link
US (2) US7620648B2 (ko)
KR (1) KR20060030014A (ko)
WO (1) WO2004114150A1 (ko)

Families Citing this family (216)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233389B1 (en) 1998-07-30 2001-05-15 Tivo, Inc. Multimedia time warping system
US6996558B2 (en) 2002-02-26 2006-02-07 International Business Machines Corporation Application portability and extensibility through database schema and query abstraction
US20050038788A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation Annotation security to prevent the divulgence of sensitive information
US8239400B2 (en) * 2003-08-21 2012-08-07 International Business Machines Corporation Annotation of query components
US7418656B1 (en) * 2003-10-03 2008-08-26 Adobe Systems Incorporated Dynamic annotations for electronics documents
US7900133B2 (en) 2003-12-09 2011-03-01 International Business Machines Corporation Annotation structure type determination
JP2005190088A (ja) * 2003-12-25 2005-07-14 Matsushita Electric Ind Co Ltd メール処理装置及びメール処理システム
KR101222294B1 (ko) * 2004-03-15 2013-01-15 야후! 인크. 사용자 주석이 통합된 검색 시스템 및 방법
US8499248B1 (en) * 2004-04-29 2013-07-30 Paul Erich Keel Methods and apparatus for managing and exchanging information using information objects
US20060041564A1 (en) * 2004-08-20 2006-02-23 Innovative Decision Technologies, Inc. Graphical Annotations and Domain Objects to Create Feature Level Metadata of Images
US7870480B1 (en) * 2005-03-14 2011-01-11 Actuate Corporation Methods and apparatus for storing and retrieving annotations accessible by a plurality of reports
US7734631B2 (en) * 2005-04-25 2010-06-08 Microsoft Corporation Associating information with an electronic document
US7636883B2 (en) * 2005-05-18 2009-12-22 International Business Machines Corporation User form based automated and guided data collection
US7650324B2 (en) * 2005-08-25 2010-01-19 Sap Ag. Methods and systems for providing context-based reference information
US8015482B2 (en) * 2005-09-14 2011-09-06 Microsoft Corporation Dynamic anchoring of annotations to editable content
US20070073770A1 (en) * 2005-09-29 2007-03-29 Morris Robert P Methods, systems, and computer program products for resource-to-resource metadata association
US20070073751A1 (en) * 2005-09-29 2007-03-29 Morris Robert P User interfaces and related methods, systems, and computer program products for automatically associating data with a resource as metadata
US7797337B2 (en) 2005-09-29 2010-09-14 Scenera Technologies, Llc Methods, systems, and computer program products for automatically associating data with a resource as metadata based on a characteristic of the resource
US7433741B2 (en) * 2005-09-30 2008-10-07 Rockwell Automation Technologies, Inc. Hybrid user interface having base presentation information with variably prominent supplemental information
US20070078535A1 (en) * 2005-09-30 2007-04-05 Rockwell Automation Technologies, Inc. System and method for identifying particularized equipment information of interest to varied users in an industrial automation environment
US7962847B2 (en) * 2005-10-20 2011-06-14 International Business Machines Corporation Method for providing dynamic process step annotations
US20070198542A1 (en) * 2006-02-09 2007-08-23 Morris Robert P Methods, systems, and computer program products for associating a persistent information element with a resource-executable pair
US10909197B2 (en) 2006-06-22 2021-02-02 Rohit Chandra Curation rank: content portion search
US11429685B2 (en) 2006-06-22 2022-08-30 Rohit Chandra Sharing only a part of a web page—the part selected by a user
US10289294B2 (en) 2006-06-22 2019-05-14 Rohit Chandra Content selection widget for visitors of web pages
US11301532B2 (en) 2006-06-22 2022-04-12 Rohit Chandra Searching for user selected portions of content
US11853374B2 (en) 2006-06-22 2023-12-26 Rohit Chandra Directly, automatically embedding a content portion
US11288686B2 (en) 2006-06-22 2022-03-29 Rohit Chandra Identifying micro users interests: at a finer level of granularity
US10866713B2 (en) 2006-06-22 2020-12-15 Rohit Chandra Highlighting on a personal digital assistant, mobile handset, eBook, or handheld device
US10884585B2 (en) 2006-06-22 2021-01-05 Rohit Chandra User widget displaying portions of content
US11763344B2 (en) 2006-06-22 2023-09-19 Rohit Chandra SaaS for content curation without a browser add-on
US8910060B2 (en) * 2006-06-22 2014-12-09 Rohit Chandra Method and apparatus for highlighting a portion of an internet document for collaboration and subsequent retrieval
US9292617B2 (en) * 2013-03-14 2016-03-22 Rohit Chandra Method and apparatus for enabling content portion selection services for visitors to web pages
US8104075B2 (en) * 2006-08-10 2012-01-24 Intertrust Technologies Corp. Trust management systems and methods
US8930331B2 (en) 2007-02-21 2015-01-06 Palantir Technologies Providing unique views of data based on changes or rules
US7975215B2 (en) * 2007-05-14 2011-07-05 Microsoft Corporation Sharing editable ink annotated images with annotation-unaware applications
US8880529B2 (en) * 2007-05-15 2014-11-04 Tivo Inc. Hierarchical tags with community-based ratings
EP2153356A4 (en) 2007-05-15 2011-03-16 Tivo Inc MEDIA DATA CONTENT SEARCH SYSTEM
US20090063416A1 (en) * 2007-08-31 2009-03-05 Norman Lee Faus Methods and systems for tagging a variety of applications
US10417586B2 (en) * 2007-08-31 2019-09-17 Red Hat, Inc. Attaching ownership to data
US8997054B2 (en) * 2007-11-30 2015-03-31 Red Hat, Inc. Software application certification service
US8291308B2 (en) * 2007-12-28 2012-10-16 International Business Machines Corporation Annotating collaborative information structures
US10699242B2 (en) * 2008-01-16 2020-06-30 International Business Machines Corporation Automated surfacing of tagged content adjunct to vertical applications
US8156053B2 (en) * 2008-05-09 2012-04-10 Yahoo! Inc. Automated tagging of documents
US8001145B1 (en) * 2008-05-09 2011-08-16 Amazon Technologies, Inc. State management for user interfaces
US8249263B2 (en) * 2008-05-15 2012-08-21 International Business Machines Corporation Method and apparatus for providing audio motion feedback in a simulated three-dimensional environment
JP4741634B2 (ja) * 2008-06-20 2011-08-03 シャープ株式会社 画像処理装置並びに画像形成装置及び画像送信装置
US8510646B1 (en) * 2008-07-01 2013-08-13 Google Inc. Method and system for contextually placed chat-like annotations
US8429194B2 (en) 2008-09-15 2013-04-23 Palantir Technologies, Inc. Document-based workflows
US8751559B2 (en) * 2008-09-16 2014-06-10 Microsoft Corporation Balanced routing of questions to experts
US9195739B2 (en) * 2009-02-20 2015-11-24 Microsoft Technology Licensing, Llc Identifying a discussion topic based on user interest information
US20100325557A1 (en) * 2009-06-17 2010-12-23 Agostino Sibillo Annotation of aggregated content, systems and methods
US20110145240A1 (en) * 2009-12-15 2011-06-16 International Business Machines Corporation Organizing Annotations
US8380732B2 (en) * 2010-04-13 2013-02-19 ReFrame-It, Inc Systematic process for creating large numbers of relevant, contextual marginal comments based on existing discussions of quotations and links
US9298473B2 (en) * 2010-10-29 2016-03-29 Sap Se System and method for a generic object access layer
US9569416B1 (en) * 2011-02-07 2017-02-14 Iqnavigator, Inc. Structured and unstructured data annotations to user interfaces and data objects
US9959326B2 (en) * 2011-03-23 2018-05-01 International Business Machines Corporation Annotating schema elements based on associating data instances with knowledge base entities
AU2012261986B2 (en) * 2011-06-03 2016-02-04 Apple Inc. Cloud storage
US9092482B2 (en) 2013-03-14 2015-07-28 Palantir Technologies, Inc. Fair scheduling for mixed-query loads
US8799240B2 (en) 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
US9547693B1 (en) 2011-06-23 2017-01-17 Palantir Technologies Inc. Periodic database search manager for multiple data sources
IN2011CH02818A (ko) * 2011-08-18 2015-05-29 Infosys Ltd
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US8504542B2 (en) 2011-09-02 2013-08-06 Palantir Technologies, Inc. Multi-row transactions
US20150199308A1 (en) 2011-10-17 2015-07-16 Google Inc. Systems and methods for controlling the display of online documents
US9064237B2 (en) * 2012-01-23 2015-06-23 Microsoft Technology Licensing, Llc Collaborative communication in a web application
US9378526B2 (en) 2012-03-02 2016-06-28 Palantir Technologies, Inc. System and method for accessing data objects via remote references
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US9529785B2 (en) 2012-11-27 2016-12-27 Google Inc. Detecting relationships between edits and acting on a subset of edits
US9443098B2 (en) * 2012-12-19 2016-09-13 Pandexio, Inc. Multi-layered metadata management system
US9123086B1 (en) 2013-01-31 2015-09-01 Palantir Technologies, Inc. Automatically generating event objects from images
US10037314B2 (en) 2013-03-14 2018-07-31 Palantir Technologies, Inc. Mobile reports
US9367463B2 (en) 2013-03-14 2016-06-14 Palantir Technologies, Inc. System and method utilizing a shared cache to provide zero copy memory mapped database
US9740369B2 (en) * 2013-03-15 2017-08-22 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US9229694B2 (en) 2013-03-15 2016-01-05 Gamesys Ltd. Systems and methods for facilitating application development utilizing plugins
US10275778B1 (en) 2013-03-15 2019-04-30 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures
US8937619B2 (en) 2013-03-15 2015-01-20 Palantir Technologies Inc. Generating an object time series from data objects
US8903717B2 (en) 2013-03-15 2014-12-02 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US9898167B2 (en) 2013-03-15 2018-02-20 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US8818892B1 (en) 2013-03-15 2014-08-26 Palantir Technologies, Inc. Prioritizing data clusters with customizable scoring strategies
US8917274B2 (en) 2013-03-15 2014-12-23 Palantir Technologies Inc. Event matrix based on integrated data
US9965937B2 (en) 2013-03-15 2018-05-08 Palantir Technologies Inc. External malware data item clustering and analysis
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US11579072B2 (en) 2013-03-15 2023-02-14 Particles Plus, Inc. Personal air quality monitoring system
US9677990B2 (en) * 2014-04-30 2017-06-13 Particles Plus, Inc. Particle counter with advanced features
US8930897B2 (en) 2013-03-15 2015-01-06 Palantir Technologies Inc. Data integration tool
US8799799B1 (en) 2013-05-07 2014-08-05 Palantir Technologies Inc. Interactive geospatial map
CN104331405B (zh) * 2013-07-22 2020-01-10 腾讯科技(深圳)有限公司 数据报表的处理方法及装置
US9335897B2 (en) 2013-08-08 2016-05-10 Palantir Technologies Inc. Long click display of a context menu
US9223773B2 (en) 2013-08-08 2015-12-29 Palatir Technologies Inc. Template system for custom document generation
US8713467B1 (en) 2013-08-09 2014-04-29 Palantir Technologies, Inc. Context-sensitive views
US9971752B2 (en) 2013-08-19 2018-05-15 Google Llc Systems and methods for resolving privileged edits within suggested edits
US9785317B2 (en) 2013-09-24 2017-10-10 Palantir Technologies Inc. Presentation and analysis of user interaction data
US8938686B1 (en) 2013-10-03 2015-01-20 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US8812960B1 (en) 2013-10-07 2014-08-19 Palantir Technologies Inc. Cohort-based presentation of user interaction data
US8924872B1 (en) 2013-10-18 2014-12-30 Palantir Technologies Inc. Overview user interface of emergency call data of a law enforcement agency
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US9348803B2 (en) 2013-10-22 2016-05-24 Google Inc. Systems and methods for providing just-in-time preview of suggestion resolutions
US9021384B1 (en) 2013-11-04 2015-04-28 Palantir Technologies Inc. Interactive vehicle information map
US8868537B1 (en) 2013-11-11 2014-10-21 Palantir Technologies, Inc. Simple web search
US9898451B2 (en) 2013-11-26 2018-02-20 Adobe Systems Incorporated Content adaptation based on selected reviewer comment
CN103646656B (zh) * 2013-11-29 2016-05-04 腾讯科技(成都)有限公司 音效处理方法、装置、插件管理器及音效插件
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US9727622B2 (en) 2013-12-16 2017-08-08 Palantir Technologies, Inc. Methods and systems for analyzing entity performance
US9552615B2 (en) 2013-12-20 2017-01-24 Palantir Technologies Inc. Automated database analysis to detect malfeasance
US10356032B2 (en) 2013-12-26 2019-07-16 Palantir Technologies Inc. System and method for detecting confidential information emails
US9043696B1 (en) 2014-01-03 2015-05-26 Palantir Technologies Inc. Systems and methods for visual definition of data associations
US8832832B1 (en) 2014-01-03 2014-09-09 Palantir Technologies Inc. IP reputation
US9483162B2 (en) 2014-02-20 2016-11-01 Palantir Technologies Inc. Relationship visualizations
US9009827B1 (en) 2014-02-20 2015-04-14 Palantir Technologies Inc. Security sharing system
US9727376B1 (en) 2014-03-04 2017-08-08 Palantir Technologies, Inc. Mobile tasks
US8924429B1 (en) 2014-03-18 2014-12-30 Palantir Technologies Inc. Determining and extracting changed data from a data source
US9857958B2 (en) 2014-04-28 2018-01-02 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive access of, investigation of, and analysis of data objects stored in one or more databases
US9009171B1 (en) 2014-05-02 2015-04-14 Palantir Technologies Inc. Systems and methods for active column filtering
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US9535974B1 (en) 2014-06-30 2017-01-03 Palantir Technologies Inc. Systems and methods for identifying key phrase clusters within documents
US9256664B2 (en) 2014-07-03 2016-02-09 Palantir Technologies Inc. System and method for news events detection and visualization
US9202249B1 (en) 2014-07-03 2015-12-01 Palantir Technologies Inc. Data item clustering and analysis
US10572496B1 (en) 2014-07-03 2020-02-25 Palantir Technologies Inc. Distributed workflow system and database with access controls for city resiliency
US9021260B1 (en) 2014-07-03 2015-04-28 Palantir Technologies Inc. Malware data item analysis
US9785773B2 (en) 2014-07-03 2017-10-10 Palantir Technologies Inc. Malware data item analysis
US20160026923A1 (en) 2014-07-22 2016-01-28 Palantir Technologies Inc. System and method for determining a propensity of entity to take a specified action
US9454281B2 (en) 2014-09-03 2016-09-27 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US10257184B1 (en) 2014-09-29 2019-04-09 Amazon Technologies, Inc. Assigning policies for accessing multiple computing resource services
US9767172B2 (en) 2014-10-03 2017-09-19 Palantir Technologies Inc. Data aggregation and analysis system
US9501851B2 (en) 2014-10-03 2016-11-22 Palantir Technologies Inc. Time-series analysis system
US9785328B2 (en) 2014-10-06 2017-10-10 Palantir Technologies Inc. Presentation of multivariate data on a graphical user interface of a computing system
US9984133B2 (en) 2014-10-16 2018-05-29 Palantir Technologies Inc. Schematic and database linking system
US9229952B1 (en) 2014-11-05 2016-01-05 Palantir Technologies, Inc. History preserving data pipeline system and method
US9043894B1 (en) 2014-11-06 2015-05-26 Palantir Technologies Inc. Malicious software detection in a computing system
US9760260B2 (en) * 2014-11-21 2017-09-12 International Business Machines Corporation System for retrieving, visualizing and editing semantic annotations
US9513876B2 (en) * 2014-12-17 2016-12-06 International Business Machines Corporation Access operation with dynamic linking and access of data within plural data sources
US9348920B1 (en) 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US9367872B1 (en) 2014-12-22 2016-06-14 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures
US10552994B2 (en) 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US10362133B1 (en) 2014-12-22 2019-07-23 Palantir Technologies Inc. Communication data processing architecture
US9870205B1 (en) 2014-12-29 2018-01-16 Palantir Technologies Inc. Storing logical units of program code generated using a dynamic programming notebook user interface
US9817563B1 (en) 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US9335911B1 (en) 2014-12-29 2016-05-10 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
US10372879B2 (en) 2014-12-31 2019-08-06 Palantir Technologies Inc. Medical claims lead summary report generation
US10387834B2 (en) 2015-01-21 2019-08-20 Palantir Technologies Inc. Systems and methods for accessing and storing snapshots of a remote application in a document
US9727560B2 (en) 2015-02-25 2017-08-08 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
US9753921B1 (en) 2015-03-05 2017-09-05 Dropbox, Inc. Comment management in shared documents
EP3611632A1 (en) 2015-03-16 2020-02-19 Palantir Technologies Inc. Displaying attribute and event data along paths
US9886467B2 (en) 2015-03-19 2018-02-06 Plantir Technologies Inc. System and method for comparing and visualizing data entities and data entity series
US9454785B1 (en) 2015-07-30 2016-09-27 Palantir Technologies Inc. Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data
US9996595B2 (en) 2015-08-03 2018-06-12 Palantir Technologies, Inc. Providing full data provenance visualization for versioned datasets
US9456000B1 (en) 2015-08-06 2016-09-27 Palantir Technologies Inc. Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications
US10489391B1 (en) 2015-08-17 2019-11-26 Palantir Technologies Inc. Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface
US9600146B2 (en) 2015-08-17 2017-03-21 Palantir Technologies Inc. Interactive geospatial map
US10102369B2 (en) 2015-08-19 2018-10-16 Palantir Technologies Inc. Checkout system executable code monitoring, and user account compromise determination system
US10853378B1 (en) 2015-08-25 2020-12-01 Palantir Technologies Inc. Electronic note management via a connected entity graph
US11150917B2 (en) 2015-08-26 2021-10-19 Palantir Technologies Inc. System for data aggregation and analysis of data from a plurality of data sources
US9485265B1 (en) 2015-08-28 2016-11-01 Palantir Technologies Inc. Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces
US10706434B1 (en) 2015-09-01 2020-07-07 Palantir Technologies Inc. Methods and systems for determining location information
US9576015B1 (en) 2015-09-09 2017-02-21 Palantir Technologies, Inc. Domain-specific language for dataset transformations
US10558339B1 (en) 2015-09-11 2020-02-11 Palantir Technologies Inc. System and method for analyzing electronic communications and a collaborative electronic communications user interface
US10296617B1 (en) 2015-10-05 2019-05-21 Palantir Technologies Inc. Searches of highly structured data
US9542446B1 (en) 2015-12-17 2017-01-10 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields
US9823818B1 (en) 2015-12-29 2017-11-21 Palantir Technologies Inc. Systems and interactive user interfaces for automatic generation of temporal representation of data objects
US10089289B2 (en) 2015-12-29 2018-10-02 Palantir Technologies Inc. Real-time document annotation
US9612723B1 (en) 2015-12-30 2017-04-04 Palantir Technologies Inc. Composite graphical interface with shareable data-objects
US10698938B2 (en) 2016-03-18 2020-06-30 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
CN105843879B (zh) * 2016-03-21 2019-07-09 刘春阳 基于光盘的异构类型数据库存储系统及利用该系统的方法
US10104152B2 (en) * 2016-04-28 2018-10-16 TeamMate Licensing B.V. Inter-application communication and integration broker
US10554516B1 (en) 2016-06-09 2020-02-04 Palantir Technologies Inc. System to collect and visualize software usage metrics
US10007674B2 (en) 2016-06-13 2018-06-26 Palantir Technologies Inc. Data revision control in large-scale data analytic systems
US10324609B2 (en) 2016-07-21 2019-06-18 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US10719188B2 (en) 2016-07-21 2020-07-21 Palantir Technologies Inc. Cached database and synchronization system for providing dynamic linked panels in user interface
US10552531B2 (en) 2016-08-11 2020-02-04 Palantir Technologies Inc. Collaborative spreadsheet data validation and integration
US10373078B1 (en) 2016-08-15 2019-08-06 Palantir Technologies Inc. Vector generation for distributed data sets
US10437840B1 (en) 2016-08-19 2019-10-08 Palantir Technologies Inc. Focused probabilistic entity resolution from multiple data sources
US11630708B2 (en) * 2016-09-16 2023-04-18 Oracle International Corporation OSN/PCS collaboration mechanism integration
US10650086B1 (en) 2016-09-27 2020-05-12 Palantir Technologies Inc. Systems, methods, and framework for associating supporting data in word processing
US10152306B2 (en) 2016-11-07 2018-12-11 Palantir Technologies Inc. Framework for developing and deploying applications
US10102229B2 (en) 2016-11-09 2018-10-16 Palantir Technologies Inc. Validating data integrations using a secondary data store
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US10824681B2 (en) * 2016-11-21 2020-11-03 Sap Se Enterprise resource textual analysis
US10261763B2 (en) 2016-12-13 2019-04-16 Palantir Technologies Inc. Extensible data transformation authoring and validation system
US9946777B1 (en) 2016-12-19 2018-04-17 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US10621159B2 (en) * 2016-12-20 2020-04-14 Palantir Technologies Inc. Multi-platform alerting system
US9836496B1 (en) * 2016-12-20 2017-12-05 Palantir Technologies Inc. Multi-platform alerting system
US10460602B1 (en) 2016-12-28 2019-10-29 Palantir Technologies Inc. Interactive vehicle information mapping system
US9922108B1 (en) 2017-01-05 2018-03-20 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US10509844B1 (en) 2017-01-19 2019-12-17 Palantir Technologies Inc. Network graph parser
US10180934B2 (en) 2017-03-02 2019-01-15 Palantir Technologies Inc. Automatic translation of spreadsheets into scripts
US10572576B1 (en) 2017-04-06 2020-02-25 Palantir Technologies Inc. Systems and methods for facilitating data object extraction from unstructured documents
US10824604B1 (en) 2017-05-17 2020-11-03 Palantir Technologies Inc. Systems and methods for data entry
US10956406B2 (en) 2017-06-12 2021-03-23 Palantir Technologies Inc. Propagated deletion of database records and derived data
US10534595B1 (en) 2017-06-30 2020-01-14 Palantir Technologies Inc. Techniques for configuring and validating a data pipeline deployment
US10691729B2 (en) 2017-07-07 2020-06-23 Palantir Technologies Inc. Systems and methods for providing an object platform for a relational database
US10403011B1 (en) 2017-07-18 2019-09-03 Palantir Technologies Inc. Passing system with an interactive user interface
US10204119B1 (en) 2017-07-20 2019-02-12 Palantir Technologies, Inc. Inferring a dataset schema from input files
US10754820B2 (en) 2017-08-14 2020-08-25 Palantir Technologies Inc. Customizable pipeline for integrating data
US11016936B1 (en) 2017-09-05 2021-05-25 Palantir Technologies Inc. Validating data for integration
US11048695B2 (en) * 2017-09-12 2021-06-29 Sap Se Context-aware data commenting system
US10956508B2 (en) 2017-11-10 2021-03-23 Palantir Technologies Inc. Systems and methods for creating and managing a data integration workspace containing automatically updated data models
US11379525B1 (en) 2017-11-22 2022-07-05 Palantir Technologies Inc. Continuous builds of derived datasets in response to other dataset updates
US10552524B1 (en) 2017-12-07 2020-02-04 Palantir Technolgies Inc. Systems and methods for in-line document tagging and object based data synchronization
US10360252B1 (en) 2017-12-08 2019-07-23 Palantir Technologies Inc. Detection and enrichment of missing data or metadata for large data sets
US11176116B2 (en) 2017-12-13 2021-11-16 Palantir Technologies Inc. Systems and methods for annotating datasets
US10853352B1 (en) 2017-12-21 2020-12-01 Palantir Technologies Inc. Structured data collection, presentation, validation and workflow management
GB201800595D0 (en) 2018-01-15 2018-02-28 Palantir Technologies Inc Management of software bugs in a data processing system
US10599762B1 (en) 2018-01-16 2020-03-24 Palantir Technologies Inc. Systems and methods for creating a dynamic electronic form
US11599369B1 (en) 2018-03-08 2023-03-07 Palantir Technologies Inc. Graphical user interface configuration system
US10754822B1 (en) 2018-04-18 2020-08-25 Palantir Technologies Inc. Systems and methods for ontology migration
US10885021B1 (en) 2018-05-02 2021-01-05 Palantir Technologies Inc. Interactive interpreter and graphical user interface
US11461355B1 (en) 2018-05-15 2022-10-04 Palantir Technologies Inc. Ontological mapping of data
US11263263B2 (en) 2018-05-30 2022-03-01 Palantir Technologies Inc. Data propagation and mapping system
US10795909B1 (en) 2018-06-14 2020-10-06 Palantir Technologies Inc. Minimized and collapsed resource dependency path
US11119630B1 (en) 2018-06-19 2021-09-14 Palantir Technologies Inc. Artificial intelligence assisted evaluations and user interface for same
US11348448B1 (en) * 2018-10-31 2022-05-31 Palantir Technologies Inc. Enhanced alert generation system based on real-time manipulation of datasets
US10970547B2 (en) * 2018-12-07 2021-04-06 Microsoft Technology Licensing, Llc Intelligent agents for managing data associated with three-dimensional objects
US20210265016A1 (en) 2020-02-20 2021-08-26 Illumina, Inc. Data Compression for Artificial Intelligence-Based Base Calling
US20220261439A1 (en) * 2021-02-16 2022-08-18 Radical Hq Limited System and method for annotating website content

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404295A (en) * 1990-08-16 1995-04-04 Katz; Boris Method and apparatus for utilizing annotations to facilitate computer retrieval of database material
US5548739A (en) * 1993-11-04 1996-08-20 Sun Microsystems, Inc. Method and apparatus for rapidly retrieving data from a physically addressed data storage structure using address page crossing predictive annotations
US5806079A (en) * 1993-11-19 1998-09-08 Smartpatents, Inc. System, method, and computer program product for using intelligent notes to organize, link, and manipulate disparate data objects
US5623679A (en) * 1993-11-19 1997-04-22 Waverley Holdings, Inc. System and method for creating and manipulating notes each containing multiple sub-notes, and linking the sub-notes to portions of data objects
JPH1021261A (ja) * 1996-07-05 1998-01-23 Hitachi Ltd マルチメディアデータベース検索方法及びシステム
JPH10232878A (ja) * 1997-02-19 1998-09-02 Hitachi Ltd ドキュメント管理方法および装置
US6546405B2 (en) 1997-10-23 2003-04-08 Microsoft Corporation Annotating temporally-dimensioned multimedia content
US6078924A (en) 1998-01-30 2000-06-20 Aeneid Corporation Method and apparatus for performing data collection, interpretation and analysis, in an information platform
US6105055A (en) * 1998-03-13 2000-08-15 Siemens Corporate Research, Inc. Method and apparatus for asynchronous multimedia collaboration
AU5926499A (en) * 1998-09-15 2000-04-03 Microsoft Corporation Interactive playlist generation using annotations
US6687878B1 (en) * 1999-03-15 2004-02-03 Real Time Image Ltd. Synchronizing/updating local client notes with annotations previously made by other clients in a notes database
JP2000276387A (ja) 1999-03-23 2000-10-06 Toshiba Corp メタデータ登録方法および装置、データサーバ装置、並びにメタデータ登録用プログラムを記憶した記憶媒体
US6519603B1 (en) * 1999-10-28 2003-02-11 International Business Machine Corporation Method and system for organizing an annotation structure and for querying data and annotations
JP2002007287A (ja) * 2000-06-21 2002-01-11 Hitachi Ltd 電子メール情報のアクセス権管理方法、装置、及び記録媒体
US6721921B1 (en) * 2000-07-26 2004-04-13 Itm Associates Method and system for annotating documents using an independent annotation repository
US20020116420A1 (en) * 2000-09-28 2002-08-22 Allam Scott Gerald Method and apparatus for displaying and viewing electronic information
US20020099552A1 (en) * 2001-01-25 2002-07-25 Darryl Rubin Annotating electronic information with audio clips
US7366979B2 (en) * 2001-03-09 2008-04-29 Copernicus Investments, Llc Method and apparatus for annotating a document
US20020178184A1 (en) * 2001-05-22 2002-11-28 Allan Kuchinsky Software system for biological storytelling
US7370269B1 (en) * 2001-08-31 2008-05-06 Oracle International Corporation System and method for real-time annotation of a co-browsed document
US20030135565A1 (en) * 2002-01-14 2003-07-17 Julio Estrada Electronic mail application with integrated collaborative space management
US6996558B2 (en) * 2002-02-26 2006-02-07 International Business Machines Corporation Application portability and extensibility through database schema and query abstraction
US7243301B2 (en) * 2002-04-10 2007-07-10 Microsoft Corporation Common annotation framework
US7392267B2 (en) * 2002-12-04 2008-06-24 International Business Machines Corporation Annotation validity using partial checksums
US7269787B2 (en) * 2003-04-28 2007-09-11 International Business Machines Coporation Multi-document context aware annotation system
US8321470B2 (en) * 2003-06-20 2012-11-27 International Business Machines Corporation Heterogeneous multi-level extendable indexing for general purpose annotation systems

Also Published As

Publication number Publication date
US7941444B2 (en) 2011-05-10
WO2004114150A1 (en) 2004-12-29
US20100063971A1 (en) 2010-03-11
US7620648B2 (en) 2009-11-17
US20040260702A1 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
US7941444B2 (en) Universal annotation configuration and deployment
US20040260714A1 (en) Universal annotation management system
US20040260717A1 (en) Universal annotation server and interface
US20040267798A1 (en) Federated annotation browser
US9811513B2 (en) Annotation structure type determination
US7899843B2 (en) Expanding the scope of an annotation to an entity level
US7669117B2 (en) Method and system for creation and retrieval of global annotations
US7865873B1 (en) Browser-based system and method for defining and manipulating expressions
US20050038788A1 (en) Annotation security to prevent the divulgence of sensitive information
US20020138297A1 (en) Apparatus for and method of analyzing intellectual property information
US9026901B2 (en) Viewing annotations across multiple applications
US20050234894A1 (en) Techniques for maintaining collections of generated web forms that are hyperlinked by subject
US20100145985A1 (en) Document management apparatus, method, and program
US7802722B1 (en) Techniques for managing fraud information
Steele Bibliographic citation management software as a tool for building knowledge
US8612431B2 (en) Multi-part record searches
US20050171966A1 (en) Relational to hierarchical tree data conversion technique
JP7221665B2 (ja) データ管理システム
AU2006344965A1 (en) Record review system and method
Edmunds et al. Cataloging in CORC: A work in progress
Chan Metadata Quality for Digital Libraries
Iturrioz et al. Turning the mouse into a semantic device: the seMouse experience
Small Ayeaye: An Ontology-Based Document Management System
He Survey data management and access
Asprey et al. Functional Requirements-Digital Office Documents

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application